bunqueue 2.8.53 → 2.8.56

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (747) hide show
  1. package/dist/application/background/dlq.d.ts +2 -0
  2. package/dist/application/background/dlq.js +26 -0
  3. package/dist/application/background/lifecycle.d.ts +4 -0
  4. package/dist/application/background/lifecycle.js +90 -0
  5. package/dist/application/background/recovery/active.d.ts +4 -0
  6. package/dist/application/background/recovery/active.js +69 -0
  7. package/dist/application/background/recovery/index.d.ts +2 -0
  8. package/dist/application/background/recovery/index.js +22 -0
  9. package/dist/application/background/recovery/pending.d.ts +3 -0
  10. package/dist/application/background/recovery/pending.js +69 -0
  11. package/dist/application/background/recovery/restore.d.ts +5 -0
  12. package/dist/application/background/recovery/restore.js +58 -0
  13. package/dist/application/background/recovery/shared.d.ts +6 -0
  14. package/dist/application/background/recovery/shared.js +15 -0
  15. package/dist/application/background/timeouts.d.ts +25 -0
  16. package/dist/application/background/timeouts.js +191 -0
  17. package/dist/application/backgroundTasks.d.ts +7 -31
  18. package/dist/application/backgroundTasks.js +6 -438
  19. package/dist/application/cleanupTasks.js +2 -1
  20. package/dist/application/clientTracking.js +3 -1
  21. package/dist/application/contextFactory.d.ts +13 -90
  22. package/dist/application/contextFactory.js +9 -0
  23. package/dist/application/dependencyResultTracker.d.ts +1 -0
  24. package/dist/application/dependencyResultTracker.js +3 -0
  25. package/dist/application/dlqManager.d.ts +9 -9
  26. package/dist/application/dlqManager.js +49 -167
  27. package/dist/application/dlqRetry.d.ts +12 -0
  28. package/dist/application/dlqRetry.js +97 -0
  29. package/dist/application/lockManager.js +24 -4
  30. package/dist/application/lockOperations.js +16 -3
  31. package/dist/application/operations/ack/batch.d.ts +8 -0
  32. package/dist/application/operations/ack/batch.js +64 -0
  33. package/dist/application/operations/ack/completion.d.ts +3 -0
  34. package/dist/application/operations/ack/completion.js +74 -0
  35. package/dist/application/operations/ack/failure.d.ts +3 -0
  36. package/dist/application/operations/ack/failure.js +160 -0
  37. package/dist/application/operations/ack.d.ts +5 -79
  38. package/dist/application/operations/ack.js +4 -319
  39. package/dist/application/operations/ackHelpers.d.ts +3 -52
  40. package/dist/application/operations/ackHelpers.js +11 -4
  41. package/dist/application/operations/customId.d.ts +18 -5
  42. package/dist/application/operations/customId.js +36 -25
  43. package/dist/application/operations/flowValidation.js +9 -4
  44. package/dist/application/operations/jobManagement.js +50 -11
  45. package/dist/application/operations/jobMoveOperations.js +3 -3
  46. package/dist/application/operations/jobStateTransitions.d.ts +1 -1
  47. package/dist/application/operations/jobStateTransitions.js +16 -2
  48. package/dist/application/operations/parentLink.d.ts +36 -0
  49. package/dist/application/operations/parentLink.js +153 -0
  50. package/dist/application/operations/parentLinkInput.d.ts +8 -0
  51. package/dist/application/operations/parentLinkInput.js +23 -0
  52. package/dist/application/operations/push.d.ts +5 -44
  53. package/dist/application/operations/push.js +62 -152
  54. package/dist/application/operations/pushAdmission.d.ts +32 -0
  55. package/dist/application/operations/pushAdmission.js +38 -0
  56. package/dist/application/operations/pushBatch.d.ts +4 -0
  57. package/dist/application/operations/pushBatch.js +136 -0
  58. package/dist/application/operations/pushContext.d.ts +39 -0
  59. package/dist/application/operations/pushContext.js +1 -0
  60. package/dist/application/operations/pushDeduplication.d.ts +42 -0
  61. package/dist/application/operations/pushDeduplication.js +131 -0
  62. package/dist/application/operations/pushInsert.d.ts +13 -1
  63. package/dist/application/operations/pushInsert.js +33 -17
  64. package/dist/application/operations/pushLocks.js +13 -9
  65. package/dist/application/operations/query/collect.d.ts +12 -0
  66. package/dist/application/operations/query/collect.js +118 -0
  67. package/dist/application/operations/query/jobLookup.d.ts +9 -0
  68. package/dist/application/operations/query/jobLookup.js +110 -0
  69. package/dist/application/operations/query/pagination.d.ts +8 -0
  70. package/dist/application/operations/query/pagination.js +90 -0
  71. package/dist/application/operations/query/state.d.ts +4 -0
  72. package/dist/application/operations/query/state.js +63 -0
  73. package/dist/application/operations/queryOperations.d.ts +5 -50
  74. package/dist/application/operations/queryOperations.js +4 -474
  75. package/dist/application/queue-manager/ack.d.ts +23 -0
  76. package/dist/application/queue-manager/ack.js +242 -0
  77. package/dist/application/queue-manager/configuration.d.ts +27 -0
  78. package/dist/application/queue-manager/configuration.js +84 -0
  79. package/dist/application/queue-manager/context.d.ts +5 -0
  80. package/dist/application/queue-manager/context.js +61 -0
  81. package/dist/application/queue-manager/control.d.ts +17 -0
  82. package/dist/application/queue-manager/control.js +133 -0
  83. package/dist/application/queue-manager/delivery.d.ts +32 -0
  84. package/dist/application/queue-manager/delivery.js +143 -0
  85. package/dist/application/queue-manager/dependencies.d.ts +8 -0
  86. package/dist/application/queue-manager/dependencies.js +127 -0
  87. package/dist/application/queue-manager/dependency-runtime.d.ts +8 -0
  88. package/dist/application/queue-manager/dependency-runtime.js +40 -0
  89. package/dist/application/queue-manager/flow-failures.d.ts +18 -0
  90. package/dist/application/queue-manager/flow-failures.js +107 -0
  91. package/dist/application/queue-manager/flow-options.d.ts +8 -0
  92. package/dist/application/queue-manager/flow-options.js +129 -0
  93. package/dist/application/queue-manager/job-management.d.ts +17 -0
  94. package/dist/application/queue-manager/job-management.js +100 -0
  95. package/dist/application/queue-manager/lifecycle.d.ts +4 -0
  96. package/dist/application/queue-manager/lifecycle.js +41 -0
  97. package/dist/application/queue-manager/limits.d.ts +41 -0
  98. package/dist/application/queue-manager/limits.js +108 -0
  99. package/dist/application/queue-manager/locks.d.ts +21 -0
  100. package/dist/application/queue-manager/locks.js +59 -0
  101. package/dist/application/queue-manager/observability.d.ts +16 -0
  102. package/dist/application/queue-manager/observability.js +44 -0
  103. package/dist/application/queue-manager/queries.d.ts +17 -0
  104. package/dist/application/queue-manager/queries.js +118 -0
  105. package/dist/application/queue-manager/repeat.d.ts +4 -0
  106. package/dist/application/queue-manager/repeat.js +26 -0
  107. package/dist/application/queue-manager/services.d.ts +19 -0
  108. package/dist/application/queue-manager/services.js +80 -0
  109. package/dist/application/queue-manager/state.d.ts +92 -0
  110. package/dist/application/queue-manager/state.js +144 -0
  111. package/dist/application/queue-manager/stats.d.ts +28 -0
  112. package/dist/application/queue-manager/stats.js +52 -0
  113. package/dist/application/queueManager.d.ts +4 -380
  114. package/dist/application/queueManager.js +3 -1880
  115. package/dist/application/queueTelemetryJournal.d.ts +20 -0
  116. package/dist/application/queueTelemetryJournal.js +133 -0
  117. package/dist/application/repeatJobs.d.ts +7 -0
  118. package/dist/application/repeatJobs.js +132 -0
  119. package/dist/application/stallDetection.js +9 -4
  120. package/dist/application/types/ack.d.ts +132 -0
  121. package/dist/application/types/ack.js +1 -0
  122. package/dist/application/types/background.d.ts +18 -0
  123. package/dist/application/types/background.js +1 -0
  124. package/dist/application/types/config.d.ts +37 -0
  125. package/dist/application/types/config.js +15 -0
  126. package/dist/application/types/contextFactory.d.ts +83 -0
  127. package/dist/application/types/contextFactory.js +1 -0
  128. package/dist/application/types/contexts.d.ts +110 -0
  129. package/dist/application/types/contexts.js +1 -0
  130. package/dist/application/types/index.d.ts +7 -0
  131. package/dist/application/types/index.js +1 -0
  132. package/dist/application/types/query.d.ts +23 -0
  133. package/dist/application/types/query.js +1 -0
  134. package/dist/application/types/queueManager.d.ts +94 -0
  135. package/dist/application/types/queueManager.js +1 -0
  136. package/dist/cli/commandRouter.d.ts +1 -1
  137. package/dist/cli/commands/core.js +1 -0
  138. package/dist/cli/output/collections.d.ts +8 -0
  139. package/dist/cli/output/collections.js +131 -0
  140. package/dist/cli/output/jobs.d.ts +2 -0
  141. package/dist/cli/output/jobs.js +61 -0
  142. package/dist/cli/output/style.d.ts +14 -0
  143. package/dist/cli/output/style.js +28 -0
  144. package/dist/cli/output/success.d.ts +1 -0
  145. package/dist/cli/output/success.js +108 -0
  146. package/dist/cli/output.d.ts +1 -6
  147. package/dist/cli/output.js +7 -395
  148. package/dist/client/bunqueue/dlqRateLimit.d.ts +8 -0
  149. package/dist/client/bunqueue/dlqRateLimit.js +24 -0
  150. package/dist/client/bunqueue/runtime.d.ts +35 -0
  151. package/dist/client/bunqueue/runtime.js +138 -0
  152. package/dist/client/bunqueue.d.ts +19 -34
  153. package/dist/client/bunqueue.js +45 -166
  154. package/dist/client/dlqConversion.d.ts +5 -0
  155. package/dist/client/dlqConversion.js +28 -0
  156. package/dist/client/events.d.ts +7 -56
  157. package/dist/client/events.js +38 -15
  158. package/dist/client/flow.d.ts +6 -12
  159. package/dist/client/flow.js +16 -34
  160. package/dist/client/flowJobDependencies.js +3 -1
  161. package/dist/client/flowJobFactory.d.ts +9 -1
  162. package/dist/client/flowJobFactory.js +25 -9
  163. package/dist/client/flowJobMoveMethods.d.ts +5 -5
  164. package/dist/client/flowJobMoveMethods.js +37 -17
  165. package/dist/client/flowLegacyPlan.js +22 -8
  166. package/dist/client/flowOptions.d.ts +1 -1
  167. package/dist/client/flowOptions.js +2 -1
  168. package/dist/client/flowPlan.js +2 -3
  169. package/dist/client/flowPush.d.ts +1 -0
  170. package/dist/client/flowPush.js +5 -1
  171. package/dist/client/flowReader.js +5 -5
  172. package/dist/client/flowResults.d.ts +11 -0
  173. package/dist/client/flowResults.js +42 -0
  174. package/dist/client/index.d.ts +3 -1
  175. package/dist/client/jobConversion.d.ts +3 -7
  176. package/dist/client/jobConversion.js +36 -33
  177. package/dist/client/jobConversionHelpers.d.ts +19 -3
  178. package/dist/client/jobConversionHelpers.js +20 -16
  179. package/dist/client/jobConversionTypes.d.ts +8 -0
  180. package/dist/client/jobDeduplication.d.ts +6 -0
  181. package/dist/client/jobDeduplication.js +14 -0
  182. package/dist/client/jobHelpers.d.ts +7 -2
  183. package/dist/client/jobHelpers.js +16 -8
  184. package/dist/client/queue/bullmqCompat.d.ts +18 -8
  185. package/dist/client/queue/bullmqCompat.js +39 -71
  186. package/dist/client/queue/deduplication.d.ts +2 -0
  187. package/dist/client/queue/deduplication.js +20 -11
  188. package/dist/client/queue/dlq.d.ts +11 -6
  189. package/dist/client/queue/dlq.js +57 -16
  190. package/dist/client/queue/dlqJobMethods.d.ts +9 -0
  191. package/dist/client/queue/dlqJobMethods.js +177 -0
  192. package/dist/client/queue/dlqOps.d.ts +2 -1
  193. package/dist/client/queue/dlqOps.js +4 -10
  194. package/dist/client/queue/dlqStats.d.ts +3 -0
  195. package/dist/client/queue/dlqStats.js +21 -0
  196. package/dist/client/queue/job-proxy/dependencies.d.ts +9 -0
  197. package/dist/client/queue/job-proxy/dependencies.js +67 -0
  198. package/dist/client/queue/job-proxy/reflection.d.ts +2 -0
  199. package/dist/client/queue/job-proxy/reflection.js +18 -0
  200. package/dist/client/queue/job-proxy/simple.d.ts +3 -0
  201. package/dist/client/queue/job-proxy/simple.js +316 -0
  202. package/dist/client/queue/job-proxy/tcp.d.ts +4 -0
  203. package/dist/client/queue/job-proxy/tcp.js +191 -0
  204. package/dist/client/queue/jobMetadata.d.ts +10 -0
  205. package/dist/client/queue/jobMetadata.js +24 -0
  206. package/dist/client/queue/jobMove.d.ts +4 -4
  207. package/dist/client/queue/jobMove.js +87 -24
  208. package/dist/client/queue/jobProxy.d.ts +4 -50
  209. package/dist/client/queue/jobProxy.js +3 -511
  210. package/dist/client/queue/operations/add/bulk.d.ts +7 -0
  211. package/dist/client/queue/operations/add/bulk.js +129 -0
  212. package/dist/client/queue/operations/add/payload.d.ts +24 -0
  213. package/dist/client/queue/operations/add/payload.js +85 -0
  214. package/dist/client/queue/operations/add/single.d.ts +3 -0
  215. package/dist/client/queue/operations/add/single.js +107 -0
  216. package/dist/client/queue/operations/add.d.ts +2 -47
  217. package/dist/client/queue/operations/add.js +2 -347
  218. package/dist/client/queue/operations/index.d.ts +1 -0
  219. package/dist/client/queue/operations/index.js +1 -0
  220. package/dist/client/queue/operations/management.d.ts +0 -4
  221. package/dist/client/queue/operations/management.js +35 -6
  222. package/dist/client/queue/operations/query.d.ts +1 -20
  223. package/dist/client/queue/operations/query.js +38 -116
  224. package/dist/client/queue/operations/queryStates.d.ts +13 -0
  225. package/dist/client/queue/operations/queryStates.js +32 -0
  226. package/dist/client/queue/operations/queryTcpPages.d.ts +14 -0
  227. package/dist/client/queue/operations/queryTcpPages.js +40 -0
  228. package/dist/client/queue/queue.d.ts +6 -189
  229. package/dist/client/queue/queue.js +6 -547
  230. package/dist/client/queue/rateLimit.d.ts +4 -4
  231. package/dist/client/queue/rateLimit.js +17 -8
  232. package/dist/client/queue/runtime/compatibility.d.ts +13 -0
  233. package/dist/client/queue/runtime/compatibility.js +38 -0
  234. package/dist/client/queue/runtime/configuration.d.ts +42 -0
  235. package/dist/client/queue/runtime/configuration.js +109 -0
  236. package/dist/client/queue/runtime/connection.d.ts +6 -0
  237. package/dist/client/queue/runtime/connection.js +16 -0
  238. package/dist/client/queue/runtime/control.d.ts +41 -0
  239. package/dist/client/queue/runtime/control.js +87 -0
  240. package/dist/client/queue/runtime/queries.d.ts +48 -0
  241. package/dist/client/queue/runtime/queries.js +95 -0
  242. package/dist/client/queue/runtime/scheduling.d.ts +33 -0
  243. package/dist/client/queue/runtime/scheduling.js +56 -0
  244. package/dist/client/queue/runtime/state.d.ts +96 -0
  245. package/dist/client/queue/runtime/state.js +149 -0
  246. package/dist/client/queue/scheduler.d.ts +2 -5
  247. package/dist/client/queue/scheduler.js +25 -23
  248. package/dist/client/queue/schedulerPagination.d.ts +7 -0
  249. package/dist/client/queue/schedulerPagination.js +10 -0
  250. package/dist/client/queue/types/add.d.ts +40 -0
  251. package/dist/client/queue/types/add.js +1 -0
  252. package/dist/client/queue/types/contexts.d.ts +33 -0
  253. package/dist/client/queue/types/contexts.js +5 -0
  254. package/dist/client/queue/types/index.d.ts +3 -0
  255. package/dist/client/queue/types/index.js +1 -0
  256. package/dist/client/queue/types/job.d.ts +50 -0
  257. package/dist/client/queue/types/job.js +1 -0
  258. package/dist/client/queue/types/runtime.d.ts +35 -0
  259. package/dist/client/queue/types/runtime.js +1 -0
  260. package/dist/client/queue/workers.d.ts +16 -8
  261. package/dist/client/queue/workers.js +42 -16
  262. package/dist/client/queue-events/tcpSubscription.d.ts +23 -0
  263. package/dist/client/queue-events/tcpSubscription.js +99 -0
  264. package/dist/client/queueGroup.d.ts +11 -0
  265. package/dist/client/queueGroup.js +28 -1
  266. package/dist/client/sandboxed/queueOps.d.ts +2 -2
  267. package/dist/client/sandboxed/queueOps.js +32 -5
  268. package/dist/client/sandboxed/runtime/dispatch.d.ts +13 -0
  269. package/dist/client/sandboxed/runtime/dispatch.js +186 -0
  270. package/dist/client/sandboxed/runtime/lifecycle.d.ts +20 -0
  271. package/dist/client/sandboxed/runtime/lifecycle.js +95 -0
  272. package/dist/client/sandboxed/runtime/log.d.ts +1 -0
  273. package/dist/client/sandboxed/runtime/log.js +15 -0
  274. package/dist/client/sandboxed/runtime/pool.d.ts +11 -0
  275. package/dist/client/sandboxed/runtime/pool.js +121 -0
  276. package/dist/client/sandboxed/runtime/recovery.d.ts +11 -0
  277. package/dist/client/sandboxed/runtime/recovery.js +122 -0
  278. package/dist/client/sandboxed/runtime/state.d.ts +39 -0
  279. package/dist/client/sandboxed/runtime/state.js +59 -0
  280. package/dist/client/sandboxed/types/index.d.ts +2 -0
  281. package/dist/client/sandboxed/types/index.js +1 -0
  282. package/dist/client/sandboxed/types/options.d.ts +27 -0
  283. package/dist/client/sandboxed/types/options.js +1 -0
  284. package/dist/client/sandboxed/types/process.d.ts +30 -0
  285. package/dist/client/sandboxed/types/process.js +1 -0
  286. package/dist/client/sandboxed/worker.d.ts +3 -85
  287. package/dist/client/sandboxed/worker.js +3 -557
  288. package/dist/client/sandboxed/wrapper.js +1 -0
  289. package/dist/client/tcp/client.d.ts +5 -112
  290. package/dist/client/tcp/client.js +5 -481
  291. package/dist/client/tcp/commandQueue.d.ts +23 -0
  292. package/dist/client/tcp/commandQueue.js +89 -0
  293. package/dist/client/tcp/connection.d.ts +4 -85
  294. package/dist/client/tcp/connection.js +3 -315
  295. package/dist/client/tcp/errors.d.ts +6 -0
  296. package/dist/client/tcp/errors.js +18 -0
  297. package/dist/client/tcp/runtime/commands.d.ts +9 -0
  298. package/dist/client/tcp/runtime/commands.js +124 -0
  299. package/dist/client/tcp/runtime/connectivity.d.ts +13 -0
  300. package/dist/client/tcp/runtime/connectivity.js +77 -0
  301. package/dist/client/tcp/runtime/health.d.ts +14 -0
  302. package/dist/client/tcp/runtime/health.js +127 -0
  303. package/dist/client/tcp/runtime/lifecycle.d.ts +8 -0
  304. package/dist/client/tcp/runtime/lifecycle.js +32 -0
  305. package/dist/client/tcp/runtime/state.d.ts +50 -0
  306. package/dist/client/tcp/runtime/state.js +45 -0
  307. package/dist/client/tcp/transport.d.ts +18 -0
  308. package/dist/client/tcp/transport.js +158 -0
  309. package/dist/client/tcp/types/command.d.ts +9 -0
  310. package/dist/client/tcp/types/command.js +1 -0
  311. package/dist/client/tcp/types/connection.d.ts +31 -0
  312. package/dist/client/tcp/types/connection.js +17 -0
  313. package/dist/client/tcp/types/index.d.ts +5 -0
  314. package/dist/client/tcp/types/index.js +1 -0
  315. package/dist/client/tcp/types/socket.d.ts +8 -0
  316. package/dist/client/tcp/types/socket.js +1 -0
  317. package/dist/client/tcp/types/tls.d.ts +4 -0
  318. package/dist/client/tcp/types/tls.js +1 -0
  319. package/dist/client/tcp/types.d.ts +2 -106
  320. package/dist/client/tcp/types.js +2 -22
  321. package/dist/client/types/connection.d.ts +29 -0
  322. package/dist/client/types/connection.js +1 -0
  323. package/dist/client/types/dlq.d.ts +45 -0
  324. package/dist/client/types/dlq.js +1 -0
  325. package/dist/client/types/events.d.ts +54 -0
  326. package/dist/client/types/events.js +1 -0
  327. package/dist/client/types/flow.d.ts +10 -0
  328. package/dist/client/types/flow.js +1 -0
  329. package/dist/client/types/index.d.ts +10 -0
  330. package/dist/client/types/index.js +1 -0
  331. package/dist/client/types/job.d.ts +127 -0
  332. package/dist/client/types/job.js +1 -0
  333. package/dist/client/types/metrics.d.ts +1 -0
  334. package/dist/client/types/metrics.js +1 -0
  335. package/dist/client/types/options.d.ts +62 -0
  336. package/dist/client/types/options.js +1 -0
  337. package/dist/client/types/worker.d.ts +38 -0
  338. package/dist/client/types/worker.js +1 -0
  339. package/dist/client/types.d.ts +2 -583
  340. package/dist/client/types.js +2 -6
  341. package/dist/client/worker/ackBatcher.d.ts +1 -1
  342. package/dist/client/worker/ackBatcher.js +17 -5
  343. package/dist/client/worker/ackOutcome.d.ts +8 -0
  344. package/dist/client/worker/ackOutcome.js +58 -0
  345. package/dist/client/worker/constants.d.ts +7 -0
  346. package/dist/client/worker/constants.js +7 -0
  347. package/dist/client/worker/groupConcurrency.js +3 -0
  348. package/dist/client/worker/handlers/completion.d.ts +28 -0
  349. package/dist/client/worker/handlers/completion.js +68 -0
  350. package/dist/client/worker/handlers/dependencies.d.ts +11 -0
  351. package/dist/client/worker/handlers/dependencies.js +107 -0
  352. package/dist/client/worker/handlers/mutations.d.ts +23 -0
  353. package/dist/client/worker/handlers/mutations.js +211 -0
  354. package/dist/client/worker/handlers/queries.d.ts +15 -0
  355. package/dist/client/worker/handlers/queries.js +100 -0
  356. package/dist/client/worker/index.d.ts +2 -2
  357. package/dist/client/worker/index.js +1 -1
  358. package/dist/client/worker/jobParser.js +4 -2
  359. package/dist/client/worker/processor.d.ts +2 -15
  360. package/dist/client/worker/processor.js +68 -125
  361. package/dist/client/worker/processorHandlers.d.ts +4 -65
  362. package/dist/client/worker/processorHandlers.js +4 -400
  363. package/dist/client/worker/processorOutcome.d.ts +14 -0
  364. package/dist/client/worker/processorOutcome.js +125 -0
  365. package/dist/client/worker/runtime/buffer.d.ts +8 -0
  366. package/dist/client/worker/runtime/buffer.js +50 -0
  367. package/dist/client/worker/runtime/control.d.ts +26 -0
  368. package/dist/client/worker/runtime/control.js +175 -0
  369. package/dist/client/worker/runtime/execution.d.ts +11 -0
  370. package/dist/client/worker/runtime/execution.js +123 -0
  371. package/dist/client/worker/runtime/lifecycle.d.ts +7 -0
  372. package/dist/client/worker/runtime/lifecycle.js +114 -0
  373. package/dist/client/worker/runtime/manual.d.ts +10 -0
  374. package/dist/client/worker/runtime/manual.js +137 -0
  375. package/dist/client/worker/runtime/options.d.ts +5 -0
  376. package/dist/client/worker/runtime/options.js +39 -0
  377. package/dist/client/worker/runtime/polling.d.ts +12 -0
  378. package/dist/client/worker/runtime/polling.js +123 -0
  379. package/dist/client/worker/runtime/state.d.ts +110 -0
  380. package/dist/client/worker/runtime/state.js +156 -0
  381. package/dist/client/worker/types/index.d.ts +5 -0
  382. package/dist/client/worker/types/index.js +1 -0
  383. package/dist/client/worker/types/manual.d.ts +7 -0
  384. package/dist/client/worker/types/manual.js +1 -0
  385. package/dist/client/worker/types/options.d.ts +24 -0
  386. package/dist/client/worker/types/options.js +1 -0
  387. package/dist/client/worker/types/outcome.d.ts +23 -0
  388. package/dist/client/worker/types/outcome.js +1 -0
  389. package/dist/client/worker/types/processor.d.ts +22 -0
  390. package/dist/client/worker/types/processor.js +1 -0
  391. package/dist/client/worker/types/transport.d.ts +11 -0
  392. package/dist/client/worker/types/transport.js +1 -0
  393. package/dist/client/worker/worker.d.ts +3 -160
  394. package/dist/client/worker/worker.js +3 -904
  395. package/dist/client/worker/workerRateLimiter.d.ts +5 -1
  396. package/dist/client/worker/workerRateLimiter.js +40 -20
  397. package/dist/client/worker.d.ts +1 -0
  398. package/dist/client/workflow/compensationChild.d.ts +2 -1
  399. package/dist/client/workflow/compensationChild.js +1 -1
  400. package/dist/client/workflow/compensationClaim.d.ts +11 -0
  401. package/dist/client/workflow/compensationClaim.js +30 -0
  402. package/dist/client/workflow/compensator.d.ts +7 -2
  403. package/dist/client/workflow/compensator.js +5 -11
  404. package/dist/client/workflow/recovery.js +25 -2
  405. package/dist/client/workflow/rollbackControl.js +1 -1
  406. package/dist/domain/job/constants.d.ts +12 -0
  407. package/dist/domain/job/constants.js +12 -0
  408. package/dist/domain/job/create.d.ts +2 -0
  409. package/dist/domain/job/create.js +103 -0
  410. package/dist/domain/job/ids.d.ts +5 -0
  411. package/dist/domain/job/ids.js +12 -0
  412. package/dist/domain/job/locks.d.ts +4 -0
  413. package/dist/domain/job/locks.js +23 -0
  414. package/dist/domain/job/payload.d.ts +18 -0
  415. package/dist/domain/job/payload.js +43 -0
  416. package/dist/domain/job/state.d.ts +8 -0
  417. package/dist/domain/job/state.js +51 -0
  418. package/dist/domain/job/terminal.d.ts +3 -0
  419. package/dist/domain/job/terminal.js +9 -0
  420. package/dist/domain/queue/dlqShard.d.ts +2 -0
  421. package/dist/domain/queue/dlqShard.js +34 -9
  422. package/dist/domain/queue/limiterManager.d.ts +11 -0
  423. package/dist/domain/queue/limiterManager.js +28 -0
  424. package/dist/domain/queue/priorityQueue.js +3 -39
  425. package/dist/domain/queue/priorityQueueOrder.d.ts +3 -0
  426. package/dist/domain/queue/priorityQueueOrder.js +21 -0
  427. package/dist/domain/queue/shard/dependencies.d.ts +11 -0
  428. package/dist/domain/queue/shard/dependencies.js +22 -0
  429. package/dist/domain/queue/shard/dlq.d.ts +25 -0
  430. package/dist/domain/queue/shard/dlq.js +71 -0
  431. package/dist/domain/queue/shard/keys.d.ts +18 -0
  432. package/dist/domain/queue/shard/keys.js +45 -0
  433. package/dist/domain/queue/shard/lifecycle.d.ts +10 -0
  434. package/dist/domain/queue/shard/lifecycle.js +43 -0
  435. package/dist/domain/queue/shard/limits.d.ts +24 -0
  436. package/dist/domain/queue/shard/limits.js +57 -0
  437. package/dist/domain/queue/shard/metrics.d.ts +32 -0
  438. package/dist/domain/queue/shard/metrics.js +72 -0
  439. package/dist/domain/queue/shard/state.d.ts +34 -0
  440. package/dist/domain/queue/shard/state.js +80 -0
  441. package/dist/domain/queue/shard.d.ts +5 -137
  442. package/dist/domain/queue/shard.js +4 -390
  443. package/dist/domain/queue/uniqueKeyManager.d.ts +3 -1
  444. package/dist/domain/queue/uniqueKeyManager.js +9 -1
  445. package/dist/domain/response/builders.d.ts +15 -0
  446. package/dist/domain/response/builders.js +39 -0
  447. package/dist/domain/types/command.d.ts +2 -522
  448. package/dist/domain/types/command.js +2 -5
  449. package/dist/domain/types/commands/base.d.ts +5 -0
  450. package/dist/domain/types/commands/base.js +1 -0
  451. package/dist/domain/types/commands/core.d.ts +106 -0
  452. package/dist/domain/types/commands/core.js +1 -0
  453. package/dist/domain/types/commands/cron.d.ts +36 -0
  454. package/dist/domain/types/commands/cron.js +1 -0
  455. package/dist/domain/types/commands/dashboard.d.ts +13 -0
  456. package/dist/domain/types/commands/dashboard.js +1 -0
  457. package/dist/domain/types/commands/dlq.d.ts +39 -0
  458. package/dist/domain/types/commands/dlq.js +1 -0
  459. package/dist/domain/types/commands/extended.d.ts +63 -0
  460. package/dist/domain/types/commands/extended.js +1 -0
  461. package/dist/domain/types/commands/index.d.ts +12 -0
  462. package/dist/domain/types/commands/index.js +12 -0
  463. package/dist/domain/types/commands/limits.d.ts +54 -0
  464. package/dist/domain/types/commands/limits.js +1 -0
  465. package/dist/domain/types/commands/management.d.ts +73 -0
  466. package/dist/domain/types/commands/management.js +1 -0
  467. package/dist/domain/types/commands/monitoring.d.ts +49 -0
  468. package/dist/domain/types/commands/monitoring.js +1 -0
  469. package/dist/domain/types/commands/protocol.d.ts +20 -0
  470. package/dist/domain/types/commands/protocol.js +1 -0
  471. package/dist/domain/types/commands/query.d.ts +46 -0
  472. package/dist/domain/types/commands/query.js +1 -0
  473. package/dist/domain/types/commands/union.d.ts +13 -0
  474. package/dist/domain/types/commands/union.js +1 -0
  475. package/dist/domain/types/commands/workers.d.ts +39 -0
  476. package/dist/domain/types/commands/workers.js +1 -0
  477. package/dist/domain/types/cron.d.ts +4 -2
  478. package/dist/domain/types/cron.js +3 -0
  479. package/dist/domain/types/dlq.d.ts +17 -0
  480. package/dist/domain/types/dlq.js +70 -14
  481. package/dist/domain/types/index.d.ts +2 -0
  482. package/dist/domain/types/index.js +1 -0
  483. package/dist/domain/types/job.d.ts +8 -269
  484. package/dist/domain/types/job.js +8 -234
  485. package/dist/domain/types/jobs/model.d.ts +152 -0
  486. package/dist/domain/types/jobs/model.js +1 -0
  487. package/dist/domain/types/metrics.d.ts +16 -0
  488. package/dist/domain/types/metrics.js +1 -0
  489. package/dist/domain/types/priorityQueue.d.ts +12 -0
  490. package/dist/domain/types/priorityQueue.js +1 -0
  491. package/dist/domain/types/protocol.d.ts +5 -0
  492. package/dist/domain/types/protocol.js +4 -0
  493. package/dist/domain/types/queue.d.ts +7 -0
  494. package/dist/domain/types/queue.js +13 -0
  495. package/dist/domain/types/response.d.ts +3 -192
  496. package/dist/domain/types/response.js +3 -101
  497. package/dist/domain/types/responses/model.d.ts +152 -0
  498. package/dist/domain/types/responses/model.js +1 -0
  499. package/dist/domain/types/shard.d.ts +4 -0
  500. package/dist/domain/types/shard.js +1 -0
  501. package/dist/infrastructure/cloud/cloudAgent.js +6 -0
  502. package/dist/infrastructure/cloud/commandHandler.d.ts +2 -41
  503. package/dist/infrastructure/cloud/commandHandler.js +1 -1
  504. package/dist/infrastructure/cloud/commands/integrations.d.ts +2 -0
  505. package/dist/infrastructure/cloud/commands/integrations.js +31 -0
  506. package/dist/infrastructure/cloud/commands/jobMapper.d.ts +56 -0
  507. package/dist/infrastructure/cloud/commands/jobMapper.js +72 -0
  508. package/dist/infrastructure/cloud/commands/jobs.d.ts +2 -0
  509. package/dist/infrastructure/cloud/commands/jobs.js +111 -0
  510. package/dist/infrastructure/cloud/commands/queues.d.ts +2 -0
  511. package/dist/infrastructure/cloud/commands/queues.js +126 -0
  512. package/dist/infrastructure/cloud/commands.d.ts +3 -10
  513. package/dist/infrastructure/cloud/commands.js +7 -344
  514. package/dist/infrastructure/cloud/snapshot/analytics.d.ts +16 -0
  515. package/dist/infrastructure/cloud/snapshot/analytics.js +132 -0
  516. package/dist/infrastructure/cloud/snapshot/collector.d.ts +24 -0
  517. package/dist/infrastructure/cloud/snapshot/collector.js +105 -0
  518. package/dist/infrastructure/cloud/snapshot/config.d.ts +5 -0
  519. package/dist/infrastructure/cloud/snapshot/config.js +86 -0
  520. package/dist/infrastructure/cloud/snapshot/jobs.d.ts +5 -0
  521. package/dist/infrastructure/cloud/snapshot/jobs.js +148 -0
  522. package/dist/infrastructure/cloud/snapshot/stalls.d.ts +3 -0
  523. package/dist/infrastructure/cloud/snapshot/stalls.js +34 -0
  524. package/dist/infrastructure/cloud/snapshotCollector.d.ts +2 -53
  525. package/dist/infrastructure/cloud/snapshotCollector.js +5 -107
  526. package/dist/infrastructure/cloud/snapshotHelpers.d.ts +5 -45
  527. package/dist/infrastructure/cloud/snapshotHelpers.js +4 -426
  528. package/dist/infrastructure/cloud/types/collector.d.ts +54 -0
  529. package/dist/infrastructure/cloud/types/collector.js +1 -0
  530. package/dist/infrastructure/cloud/types/command.d.ts +44 -0
  531. package/dist/infrastructure/cloud/types/command.js +1 -0
  532. package/dist/infrastructure/cloud/types/config.d.ts +18 -0
  533. package/dist/infrastructure/cloud/types/config.js +1 -0
  534. package/dist/infrastructure/cloud/types/event.d.ts +14 -0
  535. package/dist/infrastructure/cloud/types/event.js +1 -0
  536. package/dist/infrastructure/cloud/types/redact.d.ts +4 -0
  537. package/dist/infrastructure/cloud/types/redact.js +1 -0
  538. package/dist/infrastructure/cloud/types/snapshot.d.ts +52 -0
  539. package/dist/infrastructure/cloud/types/snapshot.js +1 -0
  540. package/dist/infrastructure/cloud/types/snapshotCore.d.ts +125 -0
  541. package/dist/infrastructure/cloud/types/snapshotCore.js +1 -0
  542. package/dist/infrastructure/cloud/types/snapshotJobs.d.ts +124 -0
  543. package/dist/infrastructure/cloud/types/snapshotJobs.js +1 -0
  544. package/dist/infrastructure/cloud/types/snapshotTelemetry.d.ts +100 -0
  545. package/dist/infrastructure/cloud/types/snapshotTelemetry.js +1 -0
  546. package/dist/infrastructure/cloud/types.d.ts +3 -445
  547. package/dist/infrastructure/cloud/types.js +0 -4
  548. package/dist/infrastructure/persistence/batchInsert.d.ts +13 -0
  549. package/dist/infrastructure/persistence/batchInsert.js +96 -0
  550. package/dist/infrastructure/persistence/jobOptionsBlob.d.ts +18 -0
  551. package/dist/infrastructure/persistence/jobOptionsBlob.js +56 -0
  552. package/dist/infrastructure/persistence/legacyNameMigration.d.ts +5 -0
  553. package/dist/infrastructure/persistence/legacyNameMigration.js +42 -0
  554. package/dist/infrastructure/persistence/migrations.d.ts +3 -0
  555. package/dist/infrastructure/persistence/migrations.js +120 -0
  556. package/dist/infrastructure/persistence/schema.d.ts +3 -5
  557. package/dist/infrastructure/persistence/schema.js +40 -136
  558. package/dist/infrastructure/persistence/sqlite/admission.d.ts +9 -0
  559. package/dist/infrastructure/persistence/sqlite/admission.js +34 -0
  560. package/dist/infrastructure/persistence/sqlite/control.d.ts +32 -0
  561. package/dist/infrastructure/persistence/sqlite/control.js +90 -0
  562. package/dist/infrastructure/persistence/sqlite/flows.d.ts +26 -0
  563. package/dist/infrastructure/persistence/sqlite/flows.js +167 -0
  564. package/dist/infrastructure/persistence/sqlite/jobs.d.ts +23 -0
  565. package/dist/infrastructure/persistence/sqlite/jobs.js +166 -0
  566. package/dist/infrastructure/persistence/sqlite/lifecycle.d.ts +6 -0
  567. package/dist/infrastructure/persistence/sqlite/lifecycle.js +30 -0
  568. package/dist/infrastructure/persistence/sqlite/mutations.d.ts +20 -0
  569. package/dist/infrastructure/persistence/sqlite/mutations.js +149 -0
  570. package/dist/infrastructure/persistence/sqlite/queries.d.ts +23 -0
  571. package/dist/infrastructure/persistence/sqlite/queries.js +89 -0
  572. package/dist/infrastructure/persistence/sqlite/records.d.ts +24 -0
  573. package/dist/infrastructure/persistence/sqlite/records.js +115 -0
  574. package/dist/infrastructure/persistence/sqlite/state.d.ts +36 -0
  575. package/dist/infrastructure/persistence/sqlite/state.js +207 -0
  576. package/dist/infrastructure/persistence/sqlite/telemetry.d.ts +16 -0
  577. package/dist/infrastructure/persistence/sqlite/telemetry.js +126 -0
  578. package/dist/infrastructure/persistence/sqlite.d.ts +5 -276
  579. package/dist/infrastructure/persistence/sqlite.js +3 -997
  580. package/dist/infrastructure/persistence/sqliteBatch.d.ts +4 -121
  581. package/dist/infrastructure/persistence/sqliteBatch.js +3 -422
  582. package/dist/infrastructure/persistence/sqliteSerializer.d.ts +6 -1
  583. package/dist/infrastructure/persistence/sqliteSerializer.js +33 -11
  584. package/dist/infrastructure/persistence/statements.d.ts +5 -1
  585. package/dist/infrastructure/persistence/statements.js +14 -9
  586. package/dist/infrastructure/persistence/types/admission.d.ts +8 -0
  587. package/dist/infrastructure/persistence/types/admission.js +1 -0
  588. package/dist/infrastructure/persistence/types/batch.d.ts +12 -0
  589. package/dist/infrastructure/persistence/types/batch.js +1 -0
  590. package/dist/infrastructure/persistence/types/sqlite.d.ts +17 -0
  591. package/dist/infrastructure/persistence/types/sqlite.js +1 -0
  592. package/dist/infrastructure/persistence/writeBuffer.d.ts +38 -0
  593. package/dist/infrastructure/persistence/writeBuffer.js +221 -0
  594. package/dist/infrastructure/scheduler/cron/execution.d.ts +12 -0
  595. package/dist/infrastructure/scheduler/cron/execution.js +150 -0
  596. package/dist/infrastructure/scheduler/cron/runtime.d.ts +31 -0
  597. package/dist/infrastructure/scheduler/cron/runtime.js +143 -0
  598. package/dist/infrastructure/scheduler/cronScheduler.d.ts +4 -117
  599. package/dist/infrastructure/scheduler/cronScheduler.js +3 -436
  600. package/dist/infrastructure/scheduler/types/cronScheduler.d.ts +16 -0
  601. package/dist/infrastructure/scheduler/types/cronScheduler.js +1 -0
  602. package/dist/infrastructure/server/bootstrap.js +3 -0
  603. package/dist/infrastructure/server/handler-routes/control.d.ts +8 -0
  604. package/dist/infrastructure/server/handler-routes/control.js +82 -0
  605. package/dist/infrastructure/server/handler-routes/jobs.d.ts +6 -0
  606. package/dist/infrastructure/server/handler-routes/jobs.js +110 -0
  607. package/dist/infrastructure/server/handler-routes/monitoring.d.ts +5 -0
  608. package/dist/infrastructure/server/handler-routes/monitoring.js +65 -0
  609. package/dist/infrastructure/server/handlerRoutes.d.ts +3 -26
  610. package/dist/infrastructure/server/handlerRoutes.js +3 -257
  611. package/dist/infrastructure/server/handlers/advanced/configNumbers.d.ts +2 -0
  612. package/dist/infrastructure/server/handlers/advanced/configNumbers.js +26 -0
  613. package/dist/infrastructure/server/handlers/advanced/dependencies.d.ts +15 -0
  614. package/dist/infrastructure/server/handlers/advanced/dependencies.js +38 -0
  615. package/dist/infrastructure/server/handlers/advanced/jobs.d.ts +33 -0
  616. package/dist/infrastructure/server/handlers/advanced/jobs.js +136 -0
  617. package/dist/infrastructure/server/handlers/advanced/queue.d.ts +42 -0
  618. package/dist/infrastructure/server/handlers/advanced/queue.js +111 -0
  619. package/dist/infrastructure/server/handlers/advanced.d.ts +3 -121
  620. package/dist/infrastructure/server/handlers/advanced.js +3 -336
  621. package/dist/infrastructure/server/handlers/core.d.ts +1 -4
  622. package/dist/infrastructure/server/handlers/core.js +37 -20
  623. package/dist/infrastructure/server/handlers/cron.js +9 -1
  624. package/dist/infrastructure/server/handlers/dlq.d.ts +3 -0
  625. package/dist/infrastructure/server/handlers/dlq.js +18 -4
  626. package/dist/infrastructure/server/handlers/flow.js +6 -1
  627. package/dist/infrastructure/server/handlers/introspection.d.ts +19 -0
  628. package/dist/infrastructure/server/handlers/introspection.js +21 -0
  629. package/dist/infrastructure/server/handlers/management.d.ts +8 -0
  630. package/dist/infrastructure/server/handlers/management.js +30 -0
  631. package/dist/infrastructure/server/handlers/monitoring/health.d.ts +13 -0
  632. package/dist/infrastructure/server/handlers/monitoring/health.js +61 -0
  633. package/dist/infrastructure/server/handlers/monitoring/operations.d.ts +8 -0
  634. package/dist/infrastructure/server/handlers/monitoring/operations.js +28 -0
  635. package/dist/infrastructure/server/handlers/monitoring/webhooks.d.ts +7 -0
  636. package/dist/infrastructure/server/handlers/monitoring/webhooks.js +56 -0
  637. package/dist/infrastructure/server/handlers/monitoring/workers.d.ts +6 -0
  638. package/dist/infrastructure/server/handlers/monitoring/workers.js +57 -0
  639. package/dist/infrastructure/server/handlers/monitoring.d.ts +4 -30
  640. package/dist/infrastructure/server/handlers/monitoring.js +4 -222
  641. package/dist/infrastructure/server/handlers/pushBatchValidation.d.ts +1 -1
  642. package/dist/infrastructure/server/handlers/pushBatchValidation.js +7 -0
  643. package/dist/infrastructure/server/handlers/query.js +13 -4
  644. package/dist/infrastructure/server/http-routes/jobAdvanced.d.ts +2 -0
  645. package/dist/infrastructure/server/http-routes/jobAdvanced.js +106 -0
  646. package/dist/infrastructure/server/http-routes/jobManagement.d.ts +2 -0
  647. package/dist/infrastructure/server/http-routes/jobManagement.js +74 -0
  648. package/dist/infrastructure/server/http-routes/queueJobs.d.ts +2 -0
  649. package/dist/infrastructure/server/http-routes/queueJobs.js +108 -0
  650. package/dist/infrastructure/server/httpRouteJobs.d.ts +1 -8
  651. package/dist/infrastructure/server/httpRouteJobs.js +33 -222
  652. package/dist/infrastructure/server/httpRouteQueues.d.ts +1 -6
  653. package/dist/infrastructure/server/httpRouteQueues.js +51 -217
  654. package/dist/infrastructure/server/httpRouteResources.js +1 -0
  655. package/dist/infrastructure/server/protocol/commands.d.ts +8 -0
  656. package/dist/infrastructure/server/protocol/commands.js +31 -0
  657. package/dist/infrastructure/server/protocol/frameParser.d.ts +16 -0
  658. package/dist/infrastructure/server/protocol/frameParser.js +65 -0
  659. package/dist/infrastructure/server/protocol/lineBuffer.d.ts +6 -0
  660. package/dist/infrastructure/server/protocol/lineBuffer.js +21 -0
  661. package/dist/infrastructure/server/protocol/validation.d.ts +9 -0
  662. package/dist/infrastructure/server/protocol/validation.js +75 -0
  663. package/dist/infrastructure/server/protocol.d.ts +5 -77
  664. package/dist/infrastructure/server/protocol.js +4 -265
  665. package/dist/infrastructure/server/rateLimiter.js +1 -0
  666. package/dist/infrastructure/server/socketWriteQueue.d.ts +1 -1
  667. package/dist/infrastructure/server/socketWriteQueue.js +8 -5
  668. package/dist/infrastructure/server/sse/constants.d.ts +5 -0
  669. package/dist/infrastructure/server/sse/constants.js +5 -0
  670. package/dist/infrastructure/server/sse/eventBuffer.d.ts +3 -0
  671. package/dist/infrastructure/server/sse/eventBuffer.js +21 -0
  672. package/dist/infrastructure/server/sseHandler.d.ts +2 -6
  673. package/dist/infrastructure/server/sseHandler.js +20 -96
  674. package/dist/infrastructure/server/tcp/clientRelease.d.ts +2 -0
  675. package/dist/infrastructure/server/tcp/clientRelease.js +18 -0
  676. package/dist/infrastructure/server/tcp/connections.d.ts +24 -0
  677. package/dist/infrastructure/server/tcp/connections.js +162 -0
  678. package/dist/infrastructure/server/tcp/constants.d.ts +3 -0
  679. package/dist/infrastructure/server/tcp/constants.js +3 -0
  680. package/dist/infrastructure/server/tcp/eventSubscriptions.d.ts +10 -0
  681. package/dist/infrastructure/server/tcp/eventSubscriptions.js +17 -0
  682. package/dist/infrastructure/server/tcp/responses.d.ts +3 -0
  683. package/dist/infrastructure/server/tcp/responses.js +8 -0
  684. package/dist/infrastructure/server/tcp.d.ts +10 -68
  685. package/dist/infrastructure/server/tcp.js +47 -256
  686. package/dist/infrastructure/server/types/protocol.d.ts +4 -0
  687. package/dist/infrastructure/server/types/protocol.js +1 -0
  688. package/dist/infrastructure/server/types/sse.d.ts +11 -0
  689. package/dist/infrastructure/server/types/sse.js +1 -0
  690. package/dist/infrastructure/server/types/tcpServer.d.ts +25 -0
  691. package/dist/infrastructure/server/types/tcpServer.js +1 -0
  692. package/dist/infrastructure/server/types/ws.d.ts +6 -0
  693. package/dist/infrastructure/server/types/ws.js +1 -0
  694. package/dist/infrastructure/server/ws/constants.d.ts +6 -0
  695. package/dist/infrastructure/server/ws/constants.js +130 -0
  696. package/dist/infrastructure/server/ws/snapshots.d.ts +4 -0
  697. package/dist/infrastructure/server/ws/snapshots.js +52 -0
  698. package/dist/infrastructure/server/ws/subscriptions.d.ts +10 -0
  699. package/dist/infrastructure/server/ws/subscriptions.js +39 -0
  700. package/dist/infrastructure/server/wsHandler.d.ts +2 -10
  701. package/dist/infrastructure/server/wsHandler.js +12 -237
  702. package/dist/mcp/adapter.d.ts +5 -403
  703. package/dist/mcp/adapter.js +6 -778
  704. package/dist/mcp/backend/embedded/base.d.ts +7 -0
  705. package/dist/mcp/backend/embedded/base.js +15 -0
  706. package/dist/mcp/backend/embedded/index.d.ts +14 -0
  707. package/dist/mcp/backend/embedded/index.js +22 -0
  708. package/dist/mcp/backend/embedded/jobs.d.ts +44 -0
  709. package/dist/mcp/backend/embedded/jobs.js +98 -0
  710. package/dist/mcp/backend/embedded/queues.d.ts +27 -0
  711. package/dist/mcp/backend/embedded/queues.js +84 -0
  712. package/dist/mcp/backend/embedded/services.d.ts +29 -0
  713. package/dist/mcp/backend/embedded/services.js +107 -0
  714. package/dist/mcp/backend/serializers.d.ts +7 -0
  715. package/dist/mcp/backend/serializers.js +32 -0
  716. package/dist/mcp/backend/tcp/base.d.ts +19 -0
  717. package/dist/mcp/backend/tcp/base.js +54 -0
  718. package/dist/mcp/backend/tcp/index.d.ts +14 -0
  719. package/dist/mcp/backend/tcp/index.js +20 -0
  720. package/dist/mcp/backend/tcp/jobs.d.ts +44 -0
  721. package/dist/mcp/backend/tcp/jobs.js +122 -0
  722. package/dist/mcp/backend/tcp/queues.d.ts +27 -0
  723. package/dist/mcp/backend/tcp/queues.js +89 -0
  724. package/dist/mcp/backend/tcp/services.d.ts +30 -0
  725. package/dist/mcp/backend/tcp/services.js +161 -0
  726. package/dist/mcp/types/adapter.d.ts +176 -0
  727. package/dist/mcp/types/adapter.js +1 -0
  728. package/dist/shared/asyncLock.d.ts +13 -0
  729. package/dist/shared/asyncLock.js +65 -0
  730. package/dist/shared/lock.d.ts +10 -72
  731. package/dist/shared/lock.js +7 -231
  732. package/dist/shared/lockError.d.ts +3 -0
  733. package/dist/shared/lockError.js +6 -0
  734. package/dist/shared/lockTimeout.d.ts +2 -0
  735. package/dist/shared/lockTimeout.js +2 -0
  736. package/dist/shared/rwLock.d.ts +22 -0
  737. package/dist/shared/rwLock.js +124 -0
  738. package/dist/shared/serialization.js +1 -0
  739. package/dist/shared/skipList.d.ts +0 -5
  740. package/dist/shared/skipList.js +10 -57
  741. package/dist/shared/skipListNodes.d.ts +6 -0
  742. package/dist/shared/skipListNodes.js +43 -0
  743. package/dist/shared/types/lock.d.ts +7 -0
  744. package/dist/shared/types/lock.js +1 -0
  745. package/dist/shared/types/skipList.d.ts +4 -0
  746. package/dist/shared/types/skipList.js +1 -0
  747. package/package.json +2 -1
@@ -13,6 +13,7 @@ import { assertFlowTcpOk } from './flowJobTypes';
13
13
  import { planFlows } from './flowPlan';
14
14
  import { planBulkThen, planChain, planTree } from './flowLegacyPlan';
15
15
  import { readFlow } from './flowReader';
16
+ import { getParentResult as readParentResult, getParentResults as readParentResults, } from './flowResults';
16
17
  const FORCE_EMBEDDED = Bun.env.BUNQUEUE_EMBEDDED === '1';
17
18
  /**
18
19
  * FlowProducer creates job flows with automatic dependencies.
@@ -39,11 +40,10 @@ const FORCE_EMBEDDED = Bun.env.BUNQUEUE_EMBEDDED === '1';
39
40
  * ```
40
41
  */
41
42
  export class FlowProducer extends EventEmitter {
42
- closing = Promise.resolve();
43
+ closing = null;
43
44
  embedded;
44
45
  tcp;
45
46
  useSharedPool;
46
- closed = false;
47
47
  constructor(opts = {}) {
48
48
  super();
49
49
  this.embedded = opts.embedded ?? FORCE_EMBEDDED;
@@ -91,16 +91,14 @@ export class FlowProducer extends EventEmitter {
91
91
  }
92
92
  /** Close the connection pool (only if using dedicated pool) */
93
93
  close() {
94
- if (this.closed)
94
+ if (this.closing)
95
95
  return this.closing;
96
- this.closed = true;
97
- if (this.tcp && !this.useSharedPool) {
98
- this.tcp.close();
99
- }
100
- else if (this.tcp && this.useSharedPool) {
101
- releaseSharedPool(this.tcp);
102
- }
103
- this.closing = Promise.resolve();
96
+ this.closing = Promise.resolve().then(() => {
97
+ if (this.tcp && !this.useSharedPool)
98
+ this.tcp.close();
99
+ else if (this.tcp)
100
+ releaseSharedPool(this.tcp);
101
+ });
104
102
  return this.closing;
105
103
  }
106
104
  /** Disconnect from the server (BullMQ v5 compatible). Alias for close(). */
@@ -131,6 +129,7 @@ export class FlowProducer extends EventEmitter {
131
129
  return plan.roots.map((root) => this.buildPlannedNode(root, snapshotsById));
132
130
  }
133
131
  /** Get a flow tree starting from a job (BullMQ v5 compatible). */
132
+ // biome-ignore lint/suspicious/useAwait: preserves the public Promise return contract.
134
133
  async getFlow(opts) {
135
134
  return readFlow({
136
135
  embedded: this.embedded,
@@ -164,31 +163,14 @@ export class FlowProducer extends EventEmitter {
164
163
  await commitFlow(this.pushCtx, plan.batch);
165
164
  return { jobIds: plan.ids.map(String) };
166
165
  }
167
- /**
168
- * Get the result of a completed parent job (embedded only).
169
- * @template R - Type of the job result
170
- */
166
+ /** Get the result of a completed parent job in embedded or TCP mode. */
171
167
  // eslint-disable-next-line @typescript-eslint/no-unnecessary-type-parameters
172
168
  getParentResult(parentId) {
173
- if (!this.embedded)
174
- throw new Error('getParentResult is only available in embedded mode');
175
- return getSharedManager().getResult(jobId(parentId));
176
- }
177
- /**
178
- * Get results from multiple parent jobs (embedded only).
179
- * @template R - Type of the job results
180
- */
169
+ return readParentResult({ embedded: this.embedded, tcp: this.tcp }, parentId);
170
+ }
171
+ /** Get results from multiple parent jobs in input order in either runtime. */
181
172
  getParentResults(parentIds) {
182
- if (!this.embedded)
183
- throw new Error('getParentResults is only available in embedded mode');
184
- const manager = getSharedManager();
185
- const results = new Map();
186
- for (const id of parentIds) {
187
- const result = manager.getResult(jobId(id));
188
- if (result !== undefined)
189
- results.set(id, result);
190
- }
191
- return results;
173
+ return readParentResults({ embedded: this.embedded, tcp: this.tcp }, parentIds);
192
174
  }
193
175
  // ============================================================================
194
176
  // Private Methods
@@ -216,7 +198,7 @@ export class FlowProducer extends EventEmitter {
216
198
  embedded: true,
217
199
  updateData: (id, data) => managementOps.updateJobData(ctx, id, data),
218
200
  updateProgress: (id, progress) => managementOps.updateJobProgress(ctx, id, progress),
219
- log: (id, msg) => managementOps.addJobLog(ctx, id, msg).then(() => { }),
201
+ log: (id, msg) => managementOps.addJobLog(ctx, id, msg).then(() => undefined),
220
202
  promote: (id) => managementOps.promoteJob(ctx, id),
221
203
  remove: (id) => managementOps.removeAsync(ctx, id),
222
204
  changePriority: (id, opts) => managementOps.changeJobPriority(ctx, id, opts),
@@ -5,12 +5,14 @@ async function fetchChildIds(id, embedded, tcp) {
5
5
  if (embedded) {
6
6
  const job = await getSharedManager().getJob(jobId(id));
7
7
  if (!job)
8
- throw new Error(`Flow job ${id} not found`);
8
+ return [];
9
9
  return job.childrenIds.map(String);
10
10
  }
11
11
  if (!tcp)
12
12
  return [];
13
13
  const response = await tcp.send({ cmd: 'GetJob', id });
14
+ if (response.ok !== true && response.error === 'Job not found')
15
+ return [];
14
16
  assertFlowTcpOk(response, 'GetJob');
15
17
  const parent = response.job;
16
18
  return (parent?.childrenIds ?? []).map(String);
@@ -6,8 +6,16 @@ import type { Job as DomainJob } from '../domain/types/job';
6
6
  import type { FlowJobCallbacks } from './flowJobTypes';
7
7
  import type { Job } from './types';
8
8
  export type { FlowJobCallbacks } from './flowJobTypes';
9
- /** Extract user data while removing internal flow metadata and the stored job name. */
9
+ /** Decode historical flow envelopes for callers that only have the data field. */
10
10
  export declare function extractUserDataFromInternal(data: Record<string, unknown>): unknown;
11
+ /** Resolve a stored flow node while preserving a modern user `data.name` field. */
12
+ export declare function extractFlowJobPayload(job: {
13
+ readonly name?: unknown;
14
+ readonly data?: unknown;
15
+ }): {
16
+ name: string;
17
+ data: unknown;
18
+ };
11
19
  interface FlowJobObjectOptions {
12
20
  callbacks?: FlowJobCallbacks;
13
21
  snapshot?: DomainJob;
@@ -2,7 +2,7 @@
2
2
  * Flow Job Factory
3
3
  * Creates BullMQ-compatible Job objects backed by FlowProducer transports.
4
4
  */
5
- import { jobId } from '../domain/types/job';
5
+ import { jobId, normalizeLegacyJobPayload } from '../domain/types/job';
6
6
  import { buildJobProperties, buildSerializationMethods } from './jobConversionHelpers';
7
7
  import { buildJobOpts } from './jobHelpers';
8
8
  import { buildFlowJobCoreMethods } from './flowJobCoreMethods';
@@ -22,14 +22,16 @@ function stateAsType(state) {
22
22
  return JOB_STATES.has(state) ? state : 'unknown';
23
23
  }
24
24
  function buildStateResolver(id, callbacks) {
25
- if (callbacks?.getState) {
26
- return () => callbacks.getState(id).then(stateAsType);
25
+ const getState = callbacks?.getState;
26
+ if (getState) {
27
+ return () => getState(id).then(stateAsType);
27
28
  }
28
29
  if (callbacks?.embedded) {
29
30
  return () => getSharedManager().getJobState(jobId(id)).then(stateAsType);
30
31
  }
31
- if (callbacks?.tcp) {
32
- return () => callbacks.tcp.send({ cmd: 'GetState', id }).then((response) => {
32
+ const tcp = callbacks?.tcp;
33
+ if (tcp) {
34
+ return () => tcp.send({ cmd: 'GetState', id }).then((response) => {
33
35
  if (response.ok !== true) {
34
36
  throw new Error(typeof response.error === 'string' ? response.error : 'GetState failed');
35
37
  }
@@ -65,15 +67,25 @@ function defaultSerialization(id, name, data, queueName, timestamp) {
65
67
  }),
66
68
  };
67
69
  }
68
- /** Extract user data while removing internal flow metadata and the stored job name. */
69
- export function extractUserDataFromInternal(data) {
70
+ function stripFlowMetadata(data) {
71
+ if (typeof data !== 'object' || data === null || Array.isArray(data))
72
+ return data;
70
73
  const result = {};
71
74
  for (const [key, value] of Object.entries(data)) {
72
- if (!key.startsWith('__') && key !== 'name')
75
+ if (!key.startsWith('__'))
73
76
  result[key] = value;
74
77
  }
75
78
  return result;
76
79
  }
80
+ /** Decode historical flow envelopes for callers that only have the data field. */
81
+ export function extractUserDataFromInternal(data) {
82
+ return stripFlowMetadata(normalizeLegacyJobPayload({ data }).data);
83
+ }
84
+ /** Resolve a stored flow node while preserving a modern user `data.name` field. */
85
+ export function extractFlowJobPayload(job) {
86
+ const payload = normalizeLegacyJobPayload({ name: job.name, data: job.data });
87
+ return { name: payload.name, data: stripFlowMetadata(payload.data) };
88
+ }
77
89
  /** Create a Job object for a newly committed or fetched flow node. */
78
90
  export function createFlowJobObject(id, name, data, queueName, factoryOptions = {}) {
79
91
  const { callbacks, snapshot } = factoryOptions;
@@ -115,7 +127,11 @@ export function createFlowJobObject(id, name, data, queueName, factoryOptions =
115
127
  return result;
116
128
  const options = buildJobOpts(snapshot);
117
129
  Object.assign(result, buildJobProperties(snapshot, name), { data, opts: options });
118
- const serialization = buildSerializationMethods(snapshot, id, name, options);
130
+ const serialization = buildSerializationMethods(snapshot, {
131
+ id,
132
+ name,
133
+ jobOpts: options,
134
+ });
119
135
  Object.assign(result, {
120
136
  toJSON: () => ({ ...serialization.toJSON(), data }),
121
137
  asJSON: () => ({ ...serialization.asJSON(), data: JSON.stringify(data) }),
@@ -1,11 +1,11 @@
1
1
  import { type FlowJobRuntime } from './flowJobTypes';
2
2
  /** Lifecycle and failure-inspection methods exposed by a FlowProducer Job. */
3
3
  export declare function buildFlowJobMoveMethods(runtime: FlowJobRuntime): {
4
- moveToCompleted: (returnValue: unknown) => Promise<null>;
5
- moveToFailed: (error: Error) => Promise<void>;
6
- moveToWait: () => Promise<boolean>;
7
- moveToDelayed: (timestamp: number) => Promise<undefined>;
8
- moveToWaitingChildren: () => Promise<boolean>;
4
+ moveToCompleted: (returnValue: unknown, token?: string) => Promise<null>;
5
+ moveToFailed: (error: Error, token?: string) => Promise<void>;
6
+ moveToWait: (token?: string) => Promise<boolean>;
7
+ moveToDelayed: (timestamp: number, token?: string) => Promise<undefined>;
8
+ moveToWaitingChildren: (token?: string) => Promise<boolean>;
9
9
  waitUntilFinished: (_queueEvents: unknown, ttl?: number) => Promise<unknown>;
10
10
  discard: () => void;
11
11
  getFailedChildrenValues: () => Promise<Record<string, string>>;
@@ -2,47 +2,67 @@ import { jobId } from '../domain/types/job';
2
2
  import { getSharedManager } from './manager';
3
3
  import { buildFailCommand, failEmbeddedArgs } from './queue/failWire';
4
4
  import { assertFlowTcpOk } from './flowJobTypes';
5
+ import { removeJobDeduplicationKey } from './jobDeduplication';
5
6
  /** Lifecycle and failure-inspection methods exposed by a FlowProducer Job. */
6
7
  export function buildFlowJobMoveMethods(runtime) {
7
8
  const { id, embedded, tcp } = runtime;
8
9
  return {
9
- moveToCompleted: async (returnValue) => {
10
+ moveToCompleted: async (returnValue, token) => {
10
11
  if (embedded) {
11
- await getSharedManager().ack(jobId(id), returnValue);
12
+ await getSharedManager().ack(jobId(id), returnValue, token);
12
13
  return null;
13
14
  }
14
- if (tcp)
15
- assertFlowTcpOk(await tcp.send({ cmd: 'ACK', id, result: returnValue }), 'ACK');
15
+ if (tcp) {
16
+ assertFlowTcpOk(await tcp.send({
17
+ cmd: 'ACK',
18
+ id,
19
+ result: returnValue,
20
+ ...(token === undefined ? {} : { token }),
21
+ }), 'ACK');
22
+ }
16
23
  return null;
17
24
  },
18
- moveToFailed: async (error) => {
25
+ moveToFailed: async (error, token) => {
19
26
  if (embedded) {
20
- await getSharedManager().fail(jobId(id), ...failEmbeddedArgs(error));
27
+ await getSharedManager().fail(jobId(id), ...failEmbeddedArgs(error, token));
21
28
  return;
22
29
  }
23
30
  if (tcp)
24
- assertFlowTcpOk(await tcp.send(buildFailCommand(id, error)), 'FAIL');
31
+ assertFlowTcpOk(await tcp.send(buildFailCommand(id, error, token)), 'FAIL');
25
32
  },
26
- moveToWait: async () => {
33
+ moveToWait: async (token) => {
27
34
  if (embedded)
28
- return getSharedManager().moveActiveToWait(jobId(id));
35
+ return getSharedManager().moveActiveToWait(jobId(id), token);
29
36
  if (!tcp)
30
37
  return false;
31
- assertFlowTcpOk(await tcp.send({ cmd: 'MoveToWait', id }), 'MoveToWait');
38
+ assertFlowTcpOk(await tcp.send({ cmd: 'MoveToWait', id, ...(token === undefined ? {} : { token }) }), 'MoveToWait');
32
39
  return true;
33
40
  },
34
- moveToDelayed: async (timestamp) => {
41
+ moveToDelayed: async (timestamp, token) => {
35
42
  const delay = Math.max(0, timestamp - Date.now());
36
43
  if (embedded)
37
- return void (await getSharedManager().moveToDelayed(jobId(id), delay));
44
+ return void (await getSharedManager().moveToDelayed(jobId(id), delay, token));
38
45
  if (!tcp)
39
46
  return;
40
- assertFlowTcpOk(await tcp.send({ cmd: 'MoveToDelayed', id, delay }), 'MoveToDelayed');
47
+ assertFlowTcpOk(await tcp.send({
48
+ cmd: 'MoveToDelayed',
49
+ id,
50
+ delay,
51
+ ...(token === undefined ? {} : { token }),
52
+ }), 'MoveToDelayed');
41
53
  },
42
- moveToWaitingChildren: async () => {
54
+ moveToWaitingChildren: async (token) => {
43
55
  if (embedded)
44
- return getSharedManager().moveToWaitingChildren(jobId(id));
45
- throw new Error('moveToWaitingChildren is not supported in TCP mode — no server command available');
56
+ return getSharedManager().moveToWaitingChildren(jobId(id), token);
57
+ if (!tcp)
58
+ return false;
59
+ const response = await tcp.send({
60
+ cmd: 'MoveToWaitingChildren',
61
+ id,
62
+ ...(token === undefined ? {} : { token }),
63
+ });
64
+ assertFlowTcpOk(response, 'MoveToWaitingChildren');
65
+ return true;
46
66
  },
47
67
  waitUntilFinished: async (_queueEvents, ttl) => {
48
68
  const timeout = ttl ?? 30_000;
@@ -100,7 +120,7 @@ export function buildFlowJobMoveMethods(runtime) {
100
120
  assertFlowTcpOk(response, 'RemoveChildDependency');
101
121
  return response.removed ?? false;
102
122
  },
103
- removeDeduplicationKey: () => Promise.reject(new Error('removeDeduplicationKey is not implemented — no server primitive available')),
123
+ removeDeduplicationKey: () => removeJobDeduplicationKey(id, embedded, tcp),
104
124
  removeUnprocessedChildren: async () => {
105
125
  if (embedded)
106
126
  return void (await getSharedManager().removeUnprocessedChildren(jobId(id)));
@@ -21,7 +21,7 @@ function validateStep(step, depth = 0) {
21
21
  throw new Error('flow job data must be an object');
22
22
  }
23
23
  for (const key of Object.keys(step.data)) {
24
- if (key === 'name' || key.startsWith('__')) {
24
+ if (key.startsWith('__')) {
25
25
  throw new Error(`flow job data key is reserved: ${key}`);
26
26
  }
27
27
  }
@@ -48,7 +48,7 @@ function allocate(step, ids) {
48
48
  return id;
49
49
  }
50
50
  function dataFor(step, internal) {
51
- return { ...step.data, name: step.name, ...internal };
51
+ return { ...step.data, ...internal };
52
52
  }
53
53
  export function planChain(steps) {
54
54
  validateFlatSteps(steps);
@@ -56,10 +56,17 @@ export function planChain(steps) {
56
56
  const ids = steps.map((step) => allocate(step, seen));
57
57
  const jobs = steps.map((step, index) => {
58
58
  const dependency = index > 0 ? ids[index - 1] : undefined;
59
+ const dependencyQueue = index > 0 ? steps[index - 1].queueName : undefined;
59
60
  return {
60
61
  id: ids[index],
61
62
  queue: step.queueName,
62
- input: flowJobInput(dataFor(step, { __flowParentId: dependency ? String(dependency) : null }), step.opts ?? {}, { dependsOn: dependency ? [dependency] : undefined }),
63
+ input: flowJobInput(step.name, dataFor(step, dependency && dependencyQueue
64
+ ? {
65
+ __flowParentId: String(dependency),
66
+ __parentId: String(dependency),
67
+ __parentQueue: dependencyQueue,
68
+ }
69
+ : { __flowParentId: null }), step.opts ?? {}, { dependsOn: dependency ? [dependency] : undefined }),
63
70
  };
64
71
  });
65
72
  return { batch: { jobs }, ids };
@@ -72,7 +79,7 @@ export function planBulkThen(parallel, final) {
72
79
  const parallelJobs = parallel.map((step, index) => ({
73
80
  id: parallelIds[index],
74
81
  queue: step.queueName,
75
- input: flowJobInput(dataFor(step, {
82
+ input: flowJobInput(step.name, dataFor(step, {
76
83
  __parentId: String(finalId),
77
84
  __parentQueue: final.queueName,
78
85
  }), step.opts ?? {}, { parentId: finalId }),
@@ -80,7 +87,7 @@ export function planBulkThen(parallel, final) {
80
87
  const finalJob = {
81
88
  id: finalId,
82
89
  queue: final.queueName,
83
- input: flowJobInput(dataFor(final, {
90
+ input: flowJobInput(final.name, dataFor(final, {
84
91
  __flowParentIds: parallelIds.map(String),
85
92
  __childrenIds: parallelIds.map(String),
86
93
  }), final.opts ?? {}, {
@@ -108,10 +115,17 @@ export function planTree(root) {
108
115
  jobs.push({
109
116
  id,
110
117
  queue: step.queueName,
111
- input: flowJobInput(dataFor(step, { __flowParentId: dependency ? String(dependency) : null }), step.opts ?? {}, { dependsOn: dependency ? [dependency] : undefined }),
118
+ input: flowJobInput(step.name, dataFor(step, dependency
119
+ ? {
120
+ __flowParentId: String(dependency.id),
121
+ __parentId: String(dependency.id),
122
+ __parentQueue: dependency.queue,
123
+ }
124
+ : { __flowParentId: null }), step.opts ?? {}, { dependsOn: dependency ? [dependency.id] : undefined }),
112
125
  });
113
- for (const child of step.children ?? [])
114
- visit(child, id, depth + 1);
126
+ for (const child of step.children ?? []) {
127
+ visit(child, { id, queue: step.queueName }, depth + 1);
128
+ }
115
129
  };
116
130
  visit(root);
117
131
  return { batch: { jobs }, ids };
@@ -3,7 +3,7 @@ import type { JobOptions } from './types';
3
3
  /** Options intentionally unsupported by BullMQ-compatible atomic flows. */
4
4
  export declare function assertAtomicFlowOptions(opts: JobOptions): void;
5
5
  /** Convert public JobOptions into the domain input used by the atomic broker command. */
6
- export declare function flowJobInput(data: unknown, opts: JobOptions, links?: {
6
+ export declare function flowJobInput(name: string, data: unknown, opts: JobOptions, links?: {
7
7
  parentId?: JobId;
8
8
  dependsOn?: JobId[];
9
9
  childrenIds?: JobId[];
@@ -14,9 +14,10 @@ export function assertAtomicFlowOptions(opts) {
14
14
  throw new Error('FlowProducer owns parent links; opts.parent is not allowed');
15
15
  }
16
16
  /** Convert public JobOptions into the domain input used by the atomic broker command. */
17
- export function flowJobInput(data, opts, links = {}) {
17
+ export function flowJobInput(name, data, opts, links = {}) {
18
18
  assertAtomicFlowOptions(opts);
19
19
  return {
20
+ name,
20
21
  data,
21
22
  priority: opts.priority,
22
23
  delay: opts.delay,
@@ -21,7 +21,7 @@ function validateNodeShape(node, depth) {
21
21
  throw new Error('flow job data must be an object');
22
22
  }
23
23
  for (const key of Object.keys(node.data)) {
24
- if (key === 'name' || key.startsWith('__')) {
24
+ if (key.startsWith('__')) {
25
25
  throw new Error(`flow job data key is reserved: ${key}`);
26
26
  }
27
27
  }
@@ -69,7 +69,6 @@ export function planFlows(flows, options) {
69
69
  const opts = defaults ? { ...defaults, ...node.opts } : (node.opts ?? {});
70
70
  const internalData = {
71
71
  ...node.data,
72
- name: node.name,
73
72
  };
74
73
  if (parent) {
75
74
  internalData.__parentId = String(parent.id);
@@ -80,7 +79,7 @@ export function planFlows(flows, options) {
80
79
  jobs.push({
81
80
  id,
82
81
  queue: node.queueName,
83
- input: flowJobInput(internalData, opts, {
82
+ input: flowJobInput(node.name, internalData, opts, {
84
83
  parentId: parent?.id,
85
84
  dependsOn: childIds.length > 0 ? childIds : undefined,
86
85
  childrenIds: childIds.length > 0 ? childIds : undefined,
@@ -12,6 +12,7 @@ export interface PushContext {
12
12
  export declare function pushJob(ctx: PushContext, queueName: string, data: unknown, opts?: JobOptions, dependsOn?: string[]): Promise<string>;
13
13
  export interface PushWithParentOpts {
14
14
  queueName: string;
15
+ name?: string;
15
16
  data: unknown;
16
17
  opts: JobOptions;
17
18
  parentRef: {
@@ -102,6 +102,7 @@ export async function pushJob(ctx, queueName, data, opts = {}, dependsOn) {
102
102
  if (ctx.embedded) {
103
103
  const manager = getSharedManager();
104
104
  const job = await manager.push(queueName, {
105
+ name: 'default',
105
106
  data,
106
107
  ...managerOptions(opts),
107
108
  removeOnComplete,
@@ -115,6 +116,7 @@ export async function pushJob(ctx, queueName, data, opts = {}, dependsOn) {
115
116
  const response = await ctx.tcp.send({
116
117
  cmd: 'PUSH',
117
118
  queue: queueName,
119
+ name: 'default',
118
120
  data,
119
121
  ...tcpOptions(opts),
120
122
  removeOnComplete,
@@ -128,12 +130,13 @@ export async function pushJob(ctx, queueName, data, opts = {}, dependsOn) {
128
130
  }
129
131
  /** Push a job with parent/children tracking */
130
132
  export async function pushJobWithParent(ctx, params) {
131
- const { queueName, data, opts, parentRef, childIds } = params;
133
+ const { queueName, data, opts, parentRef, childIds, name = 'default' } = params;
132
134
  const { removeOnComplete, removeOnFail } = parseRemoveOptions(opts);
133
135
  if (ctx.embedded) {
134
136
  const manager = getSharedManager();
135
137
  const childJobIds = childIds.map((id) => jobId(id));
136
138
  const job = await manager.push(queueName, {
139
+ name,
137
140
  data,
138
141
  ...managerOptions(opts),
139
142
  removeOnComplete,
@@ -154,6 +157,7 @@ export async function pushJobWithParent(ctx, params) {
154
157
  const response = await ctx.tcp.send({
155
158
  cmd: 'PUSH',
156
159
  queue: queueName,
160
+ name,
157
161
  data,
158
162
  ...tcpOptions(opts),
159
163
  removeOnComplete,
@@ -1,5 +1,5 @@
1
1
  import { jobId } from '../domain/types/job';
2
- import { createFlowJobObject, extractUserDataFromInternal } from './flowJobFactory';
2
+ import { createFlowJobObject, extractFlowJobPayload } from './flowJobFactory';
3
3
  import { getSharedManager } from './manager';
4
4
  function traversalLimit(value, name) {
5
5
  if (value === undefined)
@@ -43,9 +43,9 @@ async function buildEmbeddedNode(context, job, traversal) {
43
43
  const nextAncestors = assertNoCycle(id, ancestors);
44
44
  const data = job.data;
45
45
  assertParentLink(id, job.parentId, data, expectedParent);
46
- const name = typeof data.name === 'string' ? data.name : 'default';
46
+ const payload = extractFlowJobPayload(job);
47
47
  const node = {
48
- job: createFlowJobObject(id, name, extractUserDataFromInternal(data), job.queue, {
48
+ job: createFlowJobObject(id, payload.name, payload.data, job.queue, {
49
49
  callbacks: context.buildCallbacks(job.queue),
50
50
  snapshot: job,
51
51
  }),
@@ -91,9 +91,9 @@ async function buildTcpNode(context, job, traversal) {
91
91
  const nextAncestors = assertNoCycle(id, ancestors);
92
92
  const data = typeof job.data === 'object' && job.data !== null ? job.data : {};
93
93
  assertParentLink(id, job.parentId, data, expectedParent);
94
- const name = typeof data.name === 'string' ? data.name : 'default';
94
+ const payload = extractFlowJobPayload(job);
95
95
  const node = {
96
- job: createFlowJobObject(id, name, extractUserDataFromInternal(data), queueName, {
96
+ job: createFlowJobObject(id, payload.name, payload.data, queueName, {
97
97
  callbacks: context.buildCallbacks(queueName),
98
98
  snapshot: job,
99
99
  }),
@@ -0,0 +1,11 @@
1
+ import type { TcpConnectionPool } from './tcpPool';
2
+ interface FlowResultContext {
3
+ embedded: boolean;
4
+ tcp: TcpConnectionPool | null;
5
+ }
6
+ export type RuntimeResult<T> = T | Promise<T>;
7
+ /** Keep the embedded call synchronous while providing the same result over TCP. */
8
+ export declare function getParentResult<R>(ctx: FlowResultContext, parentId: string): RuntimeResult<R | undefined>;
9
+ /** Resolve parent results in input order and preserve falsy completed values. */
10
+ export declare function getParentResults<R>(ctx: FlowResultContext, parentIds: string[]): RuntimeResult<Map<string, R>>;
11
+ export {};
@@ -0,0 +1,42 @@
1
+ import { jobId } from '../domain/types/job';
2
+ import { getSharedManager } from './manager';
3
+ import { assertFlowTcpOk } from './flowJobTypes';
4
+ /** Keep the embedded call synchronous while providing the same result over TCP. */
5
+ export function getParentResult(ctx, parentId) {
6
+ if (ctx.embedded)
7
+ return getSharedManager().getResult(jobId(parentId));
8
+ if (!ctx.tcp)
9
+ return Promise.reject(new Error('FlowProducer TCP connection is unavailable'));
10
+ return ctx.tcp.send({ cmd: 'GetResult', id: parentId }).then((response) => {
11
+ assertFlowTcpOk(response, 'GetResult');
12
+ return response.result;
13
+ });
14
+ }
15
+ /** Resolve parent results in input order and preserve falsy completed values. */
16
+ export function getParentResults(ctx, parentIds) {
17
+ if (ctx.embedded) {
18
+ const manager = getSharedManager();
19
+ const results = new Map();
20
+ for (const id of parentIds) {
21
+ const result = manager.getResult(jobId(id));
22
+ if (result !== undefined)
23
+ results.set(id, result);
24
+ }
25
+ return results;
26
+ }
27
+ const tcp = ctx.tcp;
28
+ if (!tcp)
29
+ return Promise.reject(new Error('FlowProducer TCP connection is unavailable'));
30
+ return Promise.all(parentIds.map(async (id) => {
31
+ const response = await tcp.send({ cmd: 'GetResult', id });
32
+ assertFlowTcpOk(response, 'GetResult');
33
+ return [id, response.result];
34
+ })).then((entries) => {
35
+ const results = new Map();
36
+ for (const [id, result] of entries) {
37
+ if (result !== undefined)
38
+ results.set(id, result);
39
+ }
40
+ return results;
41
+ });
42
+ }
@@ -23,12 +23,14 @@ export { defineConfig } from '../config';
23
23
  export type { BunqueueConfig } from '../config';
24
24
  export { Queue } from './queue';
25
25
  export { Worker } from './worker';
26
+ export type { ManualJob } from './worker/types';
26
27
  export { Bunqueue } from './bunqueue';
27
28
  export type { BunqueueOptions, BunqueueMiddleware, RetryStrategy, RetryConfig, CircuitBreakerConfig, TriggerRule, PriorityAgingConfig, BatchProcessor, BatchConfig, JobTtlConfig, BunqueueDeduplicationConfig, BunqueueDebounceConfig, BunqueueDlqConfig, } from './bunqueue';
28
29
  export { SandboxedWorker } from './sandboxedWorker';
29
30
  export { Forwarder } from './forwarder';
30
31
  export type { ForwardOptions, ForwardedInfo } from './forwarder';
31
32
  export { QueueEvents } from './events';
33
+ export type { ActiveEvent, CompletedEvent, DelayedEvent, DrainedEvent, DuplicatedEvent, FailedEvent, ProgressEvent, QueueEventsOptions, RemovedEvent, RetriedEvent, StalledEvent, WaitingChildrenEvent, WaitingEvent, } from './types/events';
32
34
  export { QueueGroup } from './queueGroup';
33
35
  export { FlowProducer } from './flow';
34
36
  export { UnrecoverableError, DelayedError } from './errors';
@@ -36,7 +38,7 @@ export { shutdownManager } from './manager';
36
38
  export { closeSharedTcpClient } from './tcpClient';
37
39
  export type { ConnectionHealth } from './tcpClient';
38
40
  export { TcpConnectionPool, getSharedPool, closeAllSharedPools } from './tcpPool';
39
- export type { Job, JobOptions, JobJson, JobJsonRaw, QueueOptions, WorkerOptions, Processor, FlowJobData, StallConfig, DlqConfig, DlqEntry, DlqStats, DlqFilter, FailureReason, ConnectionOptions, ParentOpts, RateLimiterOptions, ChangePriorityOpts, GetDependenciesOpts, JobDependencies, JobDependenciesCount, } from './types';
41
+ export type { Job, JobOptions, JobJson, JobJsonRaw, QueueOptions, WorkerOptions, Processor, FlowJobData, StallConfig, DlqConfig, DlqEntry, DlqStats, DlqFilter, FailureReason, ConnectionOptions, ParentOpts, RateLimiterOptions, ChangePriorityOpts, GetDependenciesOpts, JobDependencies, JobDependenciesCount, QueueMetrics, QueueMetricsMeta, QueueMetricType, } from './types';
40
42
  export type { FlowStep, FlowResult, FlowJob, JobNode, FlowProducerOptions, FlowOpts } from './flow';
41
43
  export type { RepeatOpts, JobTemplate, SchedulerInfo } from './queue/scheduler';
42
44
  export type { SandboxedWorkerOptions } from './sandboxedWorker';
@@ -1,14 +1,10 @@
1
- /**
2
- * Job Conversion Functions
3
- * Convert internal job types to public API types
4
- */
5
1
  import type { DlqEntry as InternalDlqEntry } from '../domain/types/dlq';
6
2
  import type { Job, DlqEntry } from './types';
7
- import type { CreatePublicJobOptions, ToPublicJobOptions } from './jobConversionTypes';
8
- export type { CreatePublicJobOptions, ToPublicJobOptions } from './jobConversionTypes';
3
+ import type { CreatePublicJobOptions, PublicJobMethodContext, ToPublicJobOptions } from './jobConversionTypes';
4
+ export type { CreatePublicJobOptions, PublicJobMethodContext, ToPublicJobOptions, } from './jobConversionTypes';
9
5
  /** Convert internal job to public job (with methods) */
10
6
  export declare function createPublicJob<T>(opts: CreatePublicJobOptions): Job<T>;
11
7
  /** Simple public job without methods (for Queue.getJob) */
12
8
  export declare function toPublicJob<T>(opts: ToPublicJobOptions): Job<T>;
13
9
  /** Convert internal DLQ entry to public DLQ entry */
14
- export declare function toDlqEntry<T>(entry: InternalDlqEntry): DlqEntry<T>;
10
+ export declare function toDlqEntry<T>(entry: InternalDlqEntry, methods: PublicJobMethodContext): DlqEntry<T>;