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
@@ -19,8 +19,12 @@ export declare class WorkerRateLimiter {
19
19
  * O(1) amortized — advances head pointer past expired tokens.
20
20
  */
21
21
  canProcessWithinLimit(): boolean;
22
- /** Record a job completion for rate limiting. */
22
+ /** Atomically reserve one start in the current window. */
23
+ tryAcquire(): boolean;
24
+ /** Record a synthetic start, retained for diagnostics and focused unit tests. */
23
25
  recordJobForLimiter(): void;
26
+ /** Number of starts that can be admitted without waiting. */
27
+ getAvailableSlots(): number;
24
28
  /**
25
29
  * Get time until rate limiter allows next job (ms).
26
30
  * Returns 0 if not rate limited.
@@ -13,6 +13,13 @@ export class WorkerRateLimiter {
13
13
  rateLimitExpiration = 0;
14
14
  constructor(limiter) {
15
15
  this.limiter = limiter;
16
+ if (limiter &&
17
+ (!Number.isInteger(limiter.max) ||
18
+ limiter.max <= 0 ||
19
+ !Number.isFinite(limiter.duration) ||
20
+ limiter.duration <= 0)) {
21
+ throw new RangeError('Worker limiter max and duration must be positive finite values');
22
+ }
16
23
  }
17
24
  /**
18
25
  * Check if rate limiter allows processing another job.
@@ -20,35 +27,54 @@ export class WorkerRateLimiter {
20
27
  * O(1) amortized — advances head pointer past expired tokens.
21
28
  */
22
29
  canProcessWithinLimit() {
30
+ return this.getAvailableSlots() > 0;
31
+ }
32
+ /** Atomically reserve one start in the current window. */
33
+ tryAcquire() {
34
+ const now = Date.now();
35
+ if (now < this.rateLimitExpiration)
36
+ return false;
23
37
  if (!this.limiter)
24
38
  return true;
25
- const windowStart = Date.now() - this.limiter.duration;
39
+ const windowStart = now - this.limiter.duration;
26
40
  this.evictExpired(windowStart);
27
- return this.activeCount() < this.limiter.max;
41
+ if (this.activeCount() >= this.limiter.max)
42
+ return false;
43
+ this.limiterTokens.push(now);
44
+ return true;
28
45
  }
29
- /** Record a job completion for rate limiting. */
46
+ /** Record a synthetic start, retained for diagnostics and focused unit tests. */
30
47
  recordJobForLimiter() {
31
48
  if (!this.limiter)
32
49
  return;
33
50
  this.limiterTokens.push(Date.now());
34
51
  }
52
+ /** Number of starts that can be admitted without waiting. */
53
+ getAvailableSlots() {
54
+ const now = Date.now();
55
+ if (now < this.rateLimitExpiration)
56
+ return 0;
57
+ if (!this.limiter)
58
+ return Number.POSITIVE_INFINITY;
59
+ this.evictExpired(now - this.limiter.duration);
60
+ return Math.max(0, this.limiter.max - this.activeCount());
61
+ }
35
62
  /**
36
63
  * Get time until rate limiter allows next job (ms).
37
64
  * Returns 0 if not rate limited.
38
65
  * O(1) — oldest active token is at this.limiterTokens[this.head].
39
66
  */
40
67
  getTimeUntilNextSlot() {
41
- if (!this.limiter)
42
- return 0;
43
68
  const now = Date.now();
44
- const windowStart = now - this.limiter.duration;
45
- this.evictExpired(windowStart);
46
- if (this.activeCount() < this.limiter.max) {
47
- return 0;
48
- }
49
- // Oldest active token is at head — no need for Math.min(...spread)
69
+ const overrideWait = Math.max(0, this.rateLimitExpiration - now);
70
+ if (!this.limiter)
71
+ return overrideWait;
72
+ this.evictExpired(now - this.limiter.duration);
73
+ if (this.activeCount() < this.limiter.max)
74
+ return overrideWait;
50
75
  const oldestToken = this.limiterTokens[this.head];
51
- return oldestToken + this.limiter.duration - now;
76
+ const windowWait = Math.max(0, oldestToken + this.limiter.duration - now);
77
+ return Math.max(overrideWait, windowWait);
52
78
  }
53
79
  /** Get rate limiter info (for debugging/monitoring). */
54
80
  getRateLimiterInfo() {
@@ -67,15 +93,9 @@ export class WorkerRateLimiter {
67
93
  * The worker will not process jobs until the rate limit expires.
68
94
  */
69
95
  rateLimit(expireTimeMs) {
70
- if (expireTimeMs <= 0)
96
+ if (!Number.isFinite(expireTimeMs) || expireTimeMs <= 0)
71
97
  return;
72
- if (this.limiter) {
73
- const now = Date.now();
74
- for (let i = 0; i < this.limiter.max; i++) {
75
- this.limiterTokens.push(now + expireTimeMs - this.limiter.duration);
76
- }
77
- }
78
- this.rateLimitExpiration = Date.now() + expireTimeMs;
98
+ this.rateLimitExpiration = Math.max(this.rateLimitExpiration, Date.now() + expireTimeMs);
79
99
  }
80
100
  /** Check if worker is currently rate limited. */
81
101
  isRateLimited() {
@@ -3,3 +3,4 @@
3
3
  * @deprecated Import from './worker' instead
4
4
  */
5
5
  export { Worker } from './worker/worker';
6
+ export type { ManualJob } from './worker/types';
@@ -1,4 +1,5 @@
1
1
  /** Nested-saga compensation. */
2
+ import type { LostCompensationClaim } from './compensationClaim';
2
3
  import type { WorkflowEmitter } from './emitter';
3
4
  import type { WorkflowStore } from './store';
4
5
  import type { Execution, StepRecord } from './types';
@@ -11,7 +12,7 @@ export interface ChildUnwindRequest {
11
12
  workflows?: Map<string, Workflow>;
12
13
  retryFailed?: boolean;
13
14
  }
14
- export type ChildUnwind = (request: ChildUnwindRequest) => Promise<'ran' | 'claim-lost'>;
15
+ export type ChildUnwind = (request: ChildUnwindRequest) => Promise<'ran' | LostCompensationClaim>;
15
16
  export interface UnwindChildRequest {
16
17
  record: StepRecord;
17
18
  store: WorkflowStore;
@@ -30,7 +30,7 @@ export async function unwindChild(request) {
30
30
  workflows,
31
31
  retryFailed,
32
32
  });
33
- if (outcome === 'claim-lost') {
33
+ if (outcome !== 'ran') {
34
34
  throw new Error(`child "${child.workflowName}" (${childId}) is being rolled back by another driver; ` +
35
35
  'outcome unknown');
36
36
  }
@@ -0,0 +1,11 @@
1
+ /** Process-local ownership for one workflow unwind. */
2
+ export interface AcquiredCompensationClaim {
3
+ readonly kind: 'acquired';
4
+ release(): void;
5
+ }
6
+ export interface LostCompensationClaim {
7
+ readonly kind: 'claim-lost';
8
+ readonly sameOwner: boolean;
9
+ readonly settled: Promise<void>;
10
+ }
11
+ export declare function acquireCompensationClaim(executionId: string, owner: object): AcquiredCompensationClaim | LostCompensationClaim;
@@ -0,0 +1,30 @@
1
+ /** Process-local ownership for one workflow unwind. */
2
+ const active = new Map();
3
+ export function acquireCompensationClaim(executionId, owner) {
4
+ const current = active.get(executionId);
5
+ if (current) {
6
+ return {
7
+ kind: 'claim-lost',
8
+ sameOwner: current.owner === owner,
9
+ settled: current.settled,
10
+ };
11
+ }
12
+ let resolveFinished = () => undefined;
13
+ const settled = new Promise((resolve) => {
14
+ resolveFinished = resolve;
15
+ });
16
+ const claim = { owner, settled, finish: resolveFinished };
17
+ active.set(executionId, claim);
18
+ let released = false;
19
+ return {
20
+ kind: 'acquired',
21
+ release() {
22
+ if (released)
23
+ return;
24
+ released = true;
25
+ if (active.get(executionId) === claim)
26
+ active.delete(executionId);
27
+ claim.finish();
28
+ },
29
+ };
30
+ }
@@ -5,6 +5,7 @@
5
5
  * from overlapping in-process drivers. The execution mechanics live in
6
6
  * compensationPass.ts; record selection lives in compensationSupport.ts.
7
7
  */
8
+ import type { LostCompensationClaim } from './compensationClaim';
8
9
  import type { WorkflowEmitter } from './emitter';
9
10
  import type { WorkflowStore } from './store';
10
11
  import type { Execution } from './types';
@@ -15,8 +16,12 @@ export declare class WaitForSignalError extends Error {
15
16
  readonly event: string;
16
17
  constructor(event: string);
17
18
  }
18
- /** `claim-lost` means another local driver owns the unwind and this call did nothing. */
19
- export type UnwindOutcome = 'ran' | 'claim-lost';
19
+ /**
20
+ * This is not a distributed lock. It prevents two local recovery/operator paths from
21
+ * reading the same unsettled snapshot and issuing the same reversal twice. A losing
22
+ * recovery path receives the current owner's completion latch and can retry safely.
23
+ */
24
+ export type UnwindOutcome = 'ran' | LostCompensationClaim;
20
25
  /** Run compensation handlers in reverse start order for every eligible step. */
21
26
  export declare function runCompensation(exec: Execution, wf: Workflow, store: WorkflowStore, emitter: WorkflowEmitter | null, workflows?: Map<string, Workflow>, opts?: {
22
27
  retryFailed?: boolean;
@@ -7,6 +7,7 @@
7
7
  */
8
8
  import { unwind } from './compensationPass';
9
9
  import { AbandonedCompensationError } from './compensationChild';
10
+ import { acquireCompensationClaim } from './compensationClaim';
10
11
  import { settle, unwindSet } from './compensationSupport';
11
12
  import { owesOutcome } from './unwindPlan';
12
13
  export { AbandonedCompensationError, CommittedChildError } from './compensationChild';
@@ -18,13 +19,6 @@ export class WaitForSignalError extends Error {
18
19
  this.event = event;
19
20
  }
20
21
  }
21
- /**
22
- * Executions with an unwind in flight in this process.
23
- *
24
- * This is not a distributed lock. It prevents two local recovery/operator paths from
25
- * reading the same unsettled snapshot and issuing the same reversal twice.
26
- */
27
- const inFlight = new Set();
28
22
  /** Run compensation handlers in reverse start order for every eligible step. */
29
23
  // biome-ignore lint/complexity/useMaxParams: registry and operator retry are independent inputs
30
24
  export async function runCompensation(exec, wf, store, emitter, workflows, opts = {}) {
@@ -41,14 +35,14 @@ export async function runCompensation(exec, wf, store, emitter, workflows, opts
41
35
  store.update(exec);
42
36
  return 'ran';
43
37
  }
44
- if (inFlight.has(exec.id))
45
- return 'claim-lost';
46
- inFlight.add(exec.id);
38
+ const claim = acquireCompensationClaim(exec.id, store);
39
+ if (claim.kind === 'claim-lost')
40
+ return claim;
47
41
  try {
48
42
  await unwind({ exec, wf, store, emitter, eligible, workflows, ...opts }, ({ exec, workflow, store, emitter, workflows, retryFailed }) => runCompensation(exec, workflow, store, emitter, workflows, { retryFailed }));
49
43
  }
50
44
  finally {
51
- inFlight.delete(exec.id);
45
+ claim.release();
52
46
  }
53
47
  return 'ran';
54
48
  }
@@ -51,14 +51,37 @@ export async function recoverExecutions(deps) {
51
51
  // recoverable until runCompensation writes an explicit rollbackStatus.
52
52
  // A lost claim means another driver owns this unwind, so nothing happened here
53
53
  // and counting it as a recovery would overstate what recover() did.
54
- const outcome = await runCompensation(exec, wf, store, deps.emitter, deps.workflows);
55
- if (outcome === 'ran')
54
+ if (await recoverCompensation(exec.id, wf, deps))
56
55
  result.compensating++;
57
56
  }
58
57
  }
59
58
  result.total = result.running + result.waiting + result.compensating;
60
59
  return result;
61
60
  }
61
+ async function recoverCompensation(executionId, wf, deps) {
62
+ while (true) {
63
+ const exec = deps.store.get(executionId);
64
+ if (!exec ||
65
+ (exec.state !== 'compensating' &&
66
+ !(exec.state === 'failed' && exec.rollbackStatus === undefined))) {
67
+ return false;
68
+ }
69
+ bindExecutionDefinition(exec, wf, (value) => deps.store.update(value));
70
+ const outcome = await runCompensation(exec, wf, deps.store, deps.emitter, deps.workflows);
71
+ if (outcome === 'ran')
72
+ return true;
73
+ // A live unwind owned by this executor's store is not orphaned. Waiting here
74
+ // would deadlock callers that deliberately hold the handler open until recover()
75
+ // returns, and it would make a health-time recovery call wait for user code.
76
+ if (outcome.sameOwner)
77
+ return false;
78
+ // A force-closed Engine can leave its JavaScript compensation handler alive
79
+ // briefly after its store is closed. A replacement Engine has a different store
80
+ // identity, so it waits for that owner, then re-reads the durable row: it may have
81
+ // finished, or this engine must resume the owed unwind.
82
+ await outcome.settled;
83
+ }
84
+ }
62
85
  async function enqueueExecution(exec, queue) {
63
86
  const jobData = {
64
87
  executionId: exec.id,
@@ -27,7 +27,7 @@ import { abandonCompensation, runCompensation } from './compensator';
27
27
  export async function resumeCompensation(deps, executionId) {
28
28
  const { exec, wf } = parked(deps, executionId);
29
29
  const outcome = await runCompensation(exec, wf, deps.store, deps.emitter, deps.workflows, { retryFailed: true });
30
- if (outcome === 'claim-lost') {
30
+ if (outcome !== 'ran') {
31
31
  // Nothing was mutated: `runCompensation` returns this before the unwind begins.
32
32
  throw new Error(`execution "${executionId}" is already being rolled back by another driver`);
33
33
  }
@@ -0,0 +1,12 @@
1
+ export declare const DEFAULT_MAX_BACKOFF = 3600000;
2
+ export declare const MAX_TIMELINE_ENTRIES = 20;
3
+ export declare const DEFAULT_LOCK_TTL = 30000;
4
+ export declare const JOB_DEFAULTS: {
5
+ readonly priority: 0;
6
+ readonly maxAttempts: 3;
7
+ readonly backoff: 1000;
8
+ readonly lifo: false;
9
+ readonly removeOnComplete: false;
10
+ readonly removeOnFail: false;
11
+ readonly stackTraceLimit: 10;
12
+ };
@@ -0,0 +1,12 @@
1
+ export const DEFAULT_MAX_BACKOFF = 3_600_000;
2
+ export const MAX_TIMELINE_ENTRIES = 20;
3
+ export const DEFAULT_LOCK_TTL = 30_000;
4
+ export const JOB_DEFAULTS = {
5
+ priority: 0,
6
+ maxAttempts: 3,
7
+ backoff: 1000,
8
+ lifo: false,
9
+ removeOnComplete: false,
10
+ removeOnFail: false,
11
+ stackTraceLimit: 10,
12
+ };
@@ -0,0 +1,2 @@
1
+ import type { Job, JobId, JobInput } from '../types/jobs/model';
2
+ export declare function createJob(id: JobId, queue: string, input: JobInput, now?: number): Job;
@@ -0,0 +1,103 @@
1
+ import { JOB_DEFAULTS } from './constants';
2
+ import { normalizeJobPayload } from './payload';
3
+ function parseBackoff(input) {
4
+ if (typeof input === 'object') {
5
+ return {
6
+ backoff: input.delay,
7
+ backoffConfig: { type: input.type, delay: input.delay },
8
+ };
9
+ }
10
+ return { backoff: input ?? JOB_DEFAULTS.backoff, backoffConfig: null };
11
+ }
12
+ function parseRepeatConfig(repeat) {
13
+ if (!repeat)
14
+ return null;
15
+ return {
16
+ every: repeat.every,
17
+ limit: repeat.limit,
18
+ pattern: repeat.pattern,
19
+ count: repeat.count ?? 0,
20
+ startDate: repeat.startDate,
21
+ endDate: repeat.endDate,
22
+ tz: repeat.tz,
23
+ immediately: repeat.immediately,
24
+ prevMillis: repeat.prevMillis,
25
+ offset: repeat.offset,
26
+ jobId: repeat.jobId,
27
+ };
28
+ }
29
+ function toBoolean(value, fallback) {
30
+ return value === undefined ? fallback : Boolean(value);
31
+ }
32
+ function parseCoreOptions(input) {
33
+ return {
34
+ priority: input.priority ?? JOB_DEFAULTS.priority,
35
+ lifo: input.lifo ?? JOB_DEFAULTS.lifo,
36
+ maxAttempts: input.maxAttempts ?? JOB_DEFAULTS.maxAttempts,
37
+ removeOnComplete: toBoolean(input.removeOnComplete, JOB_DEFAULTS.removeOnComplete),
38
+ removeOnFail: toBoolean(input.removeOnFail, JOB_DEFAULTS.removeOnFail),
39
+ };
40
+ }
41
+ function parseOptionalFields(input) {
42
+ return {
43
+ ttl: input.ttl ?? null,
44
+ timeout: input.timeout ?? null,
45
+ uniqueKey: input.uniqueKey ?? null,
46
+ customId: input.customId ?? null,
47
+ parentId: input.parentId ?? null,
48
+ groupId: input.groupId ?? null,
49
+ stallTimeout: input.stallTimeout ?? null,
50
+ };
51
+ }
52
+ function parseBullMQV5Options(input) {
53
+ return {
54
+ stackTraceLimit: input.stackTraceLimit ?? JOB_DEFAULTS.stackTraceLimit,
55
+ keepLogs: input.keepLogs ?? null,
56
+ sizeLimit: input.sizeLimit ?? null,
57
+ failParentOnFailure: input.failParentOnFailure ?? false,
58
+ removeDependencyOnFailure: input.removeDependencyOnFailure ?? false,
59
+ continueParentOnFailure: input.continueParentOnFailure ?? false,
60
+ ignoreDependencyOnFailure: input.ignoreDependencyOnFailure ?? false,
61
+ deduplicationTtl: input.dedup?.ttl ?? null,
62
+ deduplicationExtend: input.dedup?.extend ?? false,
63
+ deduplicationReplace: input.dedup?.replace ?? false,
64
+ debounceId: input.debounceId ?? null,
65
+ debounceTtl: input.debounceTtl ?? null,
66
+ };
67
+ }
68
+ export function createJob(id, queue, input, now = Date.now()) {
69
+ const { backoff, backoffConfig } = parseBackoff(input.backoff);
70
+ const coreOpts = parseCoreOptions(input);
71
+ const optionalFields = parseOptionalFields(input);
72
+ const v5Opts = parseBullMQV5Options(input);
73
+ const createdAt = input.timestamp ?? now;
74
+ const payload = normalizeJobPayload(input);
75
+ return {
76
+ id,
77
+ queue,
78
+ name: payload.name,
79
+ data: payload.data,
80
+ createdAt,
81
+ runAt: createdAt + (input.delay ?? 0),
82
+ startedAt: null,
83
+ completedAt: null,
84
+ attempts: 0,
85
+ backoff,
86
+ backoffConfig,
87
+ dependsOn: input.dependsOn ?? [],
88
+ childrenIds: input.childrenIds ?? [],
89
+ childrenCompleted: 0,
90
+ tags: input.tags ?? [],
91
+ progress: 0,
92
+ progressMessage: null,
93
+ stacktrace: null,
94
+ repeat: parseRepeatConfig(input.repeat),
95
+ durable: input.durable ?? false,
96
+ lastHeartbeat: createdAt,
97
+ stallCount: 0,
98
+ ...coreOpts,
99
+ ...optionalFields,
100
+ ...v5Opts,
101
+ timeline: [],
102
+ };
103
+ }
@@ -0,0 +1,5 @@
1
+ import type { JobId, LockToken } from '../types/jobs/model';
2
+ export declare function jobId(id: string): JobId;
3
+ export declare function generateJobId(): JobId;
4
+ export declare function lockToken(token: string): LockToken;
5
+ export declare function generateLockToken(): LockToken;
@@ -0,0 +1,12 @@
1
+ export function jobId(id) {
2
+ return id;
3
+ }
4
+ export function generateJobId() {
5
+ return Bun.randomUUIDv7();
6
+ }
7
+ export function lockToken(token) {
8
+ return token;
9
+ }
10
+ export function generateLockToken() {
11
+ return Bun.randomUUIDv7();
12
+ }
@@ -0,0 +1,4 @@
1
+ import type { JobId, JobLock } from '../types/jobs/model';
2
+ export declare function createJobLock(jobId: JobId, owner: string, ttl?: number, now?: number): JobLock;
3
+ export declare function isLockExpired(lock: JobLock, now?: number): boolean;
4
+ export declare function renewLock(lock: JobLock, newTtl?: number, now?: number): void;
@@ -0,0 +1,23 @@
1
+ import { DEFAULT_LOCK_TTL } from './constants';
2
+ import { generateLockToken } from './ids';
3
+ export function createJobLock(jobId, owner, ttl = DEFAULT_LOCK_TTL, now = Date.now()) {
4
+ return {
5
+ jobId,
6
+ token: generateLockToken(),
7
+ owner,
8
+ createdAt: now,
9
+ expiresAt: now + ttl,
10
+ lastRenewalAt: now,
11
+ renewalCount: 0,
12
+ ttl,
13
+ };
14
+ }
15
+ export function isLockExpired(lock, now = Date.now()) {
16
+ return now >= lock.expiresAt;
17
+ }
18
+ export function renewLock(lock, newTtl, now = Date.now()) {
19
+ const ttl = newTtl ?? lock.ttl;
20
+ lock.expiresAt = now + ttl;
21
+ lock.lastRenewalAt = now;
22
+ lock.renewalCount++;
23
+ }
@@ -0,0 +1,18 @@
1
+ export interface JobPayloadSource {
2
+ readonly name?: unknown;
3
+ readonly data: unknown;
4
+ }
5
+ export interface NormalizedJobPayload {
6
+ readonly name: string;
7
+ readonly data: unknown;
8
+ readonly legacy: boolean;
9
+ }
10
+ /** Return the stable public validation error for an invalid job name. */
11
+ export declare function validateJobName(name: unknown): string | null;
12
+ /**
13
+ * Resolve a modern payload. A missing explicit name defaults without inspecting
14
+ * `data`, so direct QueueManager callers can use `data.name` as an ordinary key.
15
+ */
16
+ export declare function normalizeJobPayload(source: JobPayloadSource, fallback?: string): NormalizedJobPayload;
17
+ /** Decode a pre-2.8.56 wire or persistence envelope at a known legacy boundary. */
18
+ export declare function normalizeLegacyJobPayload(source: JobPayloadSource, fallback?: string): NormalizedJobPayload;
@@ -0,0 +1,43 @@
1
+ const DEFAULT_JOB_NAME = 'default';
2
+ const MAX_JOB_NAME_LENGTH = 256;
3
+ function legacyEnvelope(data) {
4
+ if (typeof data !== 'object' || data === null || Array.isArray(data))
5
+ return null;
6
+ const record = data;
7
+ if (typeof record.name !== 'string')
8
+ return null;
9
+ const { name, ...userData } = record;
10
+ return { name, data: userData };
11
+ }
12
+ /** Return the stable public validation error for an invalid job name. */
13
+ export function validateJobName(name) {
14
+ if (typeof name !== 'string' || name.length === 0 || name.length > MAX_JOB_NAME_LENGTH) {
15
+ return 'Job name must be a non-empty string of at most 256 characters';
16
+ }
17
+ return null;
18
+ }
19
+ function checkedName(name) {
20
+ const error = validateJobName(name);
21
+ if (error)
22
+ throw new Error(error);
23
+ return name;
24
+ }
25
+ /**
26
+ * Resolve a modern payload. A missing explicit name defaults without inspecting
27
+ * `data`, so direct QueueManager callers can use `data.name` as an ordinary key.
28
+ */
29
+ export function normalizeJobPayload(source, fallback = DEFAULT_JOB_NAME) {
30
+ if (source.name !== undefined) {
31
+ return { name: checkedName(source.name), data: source.data, legacy: false };
32
+ }
33
+ return { name: checkedName(fallback), data: source.data, legacy: false };
34
+ }
35
+ /** Decode a pre-2.8.56 wire or persistence envelope at a known legacy boundary. */
36
+ export function normalizeLegacyJobPayload(source, fallback = DEFAULT_JOB_NAME) {
37
+ if (source.name !== undefined)
38
+ return normalizeJobPayload(source, fallback);
39
+ const legacy = legacyEnvelope(source.data);
40
+ if (legacy)
41
+ return { name: checkedName(legacy.name), data: legacy.data, legacy: true };
42
+ return { name: checkedName(fallback), data: source.data, legacy: false };
43
+ }
@@ -0,0 +1,8 @@
1
+ import type { Job } from '../types/jobs/model';
2
+ export declare function normalizeStacktrace(lines: readonly unknown[] | undefined, limit: number): string[] | null;
3
+ export declare function isDelayed(job: Job, now?: number): boolean;
4
+ export declare function isReady(job: Job, now?: number): boolean;
5
+ export declare function isExpired(job: Job, now?: number): boolean;
6
+ export declare function isTimedOut(job: Job, now?: number): boolean;
7
+ export declare function calculateBackoff(job: Job): number;
8
+ export declare function canRetry(job: Job): boolean;
@@ -0,0 +1,51 @@
1
+ import { DEFAULT_MAX_BACKOFF } from './constants';
2
+ export function normalizeStacktrace(lines, limit) {
3
+ if (!lines || lines.length === 0)
4
+ return null;
5
+ const out = [];
6
+ for (const line of lines) {
7
+ if (out.length >= limit)
8
+ break;
9
+ if (typeof line !== 'string')
10
+ continue;
11
+ const trimmed = line.trim();
12
+ if (trimmed)
13
+ out.push(trimmed);
14
+ }
15
+ return out.length > 0 ? out : null;
16
+ }
17
+ export function isDelayed(job, now = Date.now()) {
18
+ return job.runAt > now;
19
+ }
20
+ export function isReady(job, now = Date.now()) {
21
+ return job.runAt <= now;
22
+ }
23
+ export function isExpired(job, now = Date.now()) {
24
+ if (job.ttl === null)
25
+ return false;
26
+ return now > job.createdAt + job.ttl;
27
+ }
28
+ export function isTimedOut(job, now = Date.now()) {
29
+ if (job.timeout === null || job.startedAt === null)
30
+ return false;
31
+ return now > job.startedAt + job.timeout;
32
+ }
33
+ export function calculateBackoff(job) {
34
+ const maxDelay = job.backoffConfig?.maxDelay ?? DEFAULT_MAX_BACKOFF;
35
+ if (job.backoffConfig) {
36
+ if (job.backoffConfig.type === 'fixed') {
37
+ const base = job.backoffConfig.delay;
38
+ const jittered = base * (0.8 + Math.random() * 0.4);
39
+ return Math.min(jittered, maxDelay);
40
+ }
41
+ const base = job.backoffConfig.delay * Math.pow(2, job.attempts);
42
+ const jittered = base * (0.5 + Math.random());
43
+ return Math.min(jittered, maxDelay);
44
+ }
45
+ const base = job.backoff * Math.pow(2, job.attempts);
46
+ const jittered = base * (0.5 + Math.random());
47
+ return Math.min(jittered, maxDelay);
48
+ }
49
+ export function canRetry(job) {
50
+ return job.attempts < job.maxAttempts;
51
+ }
@@ -0,0 +1,3 @@
1
+ import type { Job } from '../types/job';
2
+ /** Return the most recent persisted processor failure for a job. */
3
+ export declare function lastFailedReason(job: Pick<Job, 'timeline'>): string | undefined;
@@ -0,0 +1,9 @@
1
+ /** Return the most recent persisted processor failure for a job. */
2
+ export function lastFailedReason(job) {
3
+ for (let index = job.timeline.length - 1; index >= 0; index--) {
4
+ const entry = job.timeline[index];
5
+ if (entry.state === 'failed' && entry.error)
6
+ return entry.error;
7
+ }
8
+ return undefined;
9
+ }
@@ -9,6 +9,7 @@ import type { StallConfig } from '../types/stall';
9
9
  export interface DlqStatsCallback {
10
10
  incrementDlq(): void;
11
11
  decrementDlq(count?: number): void;
12
+ onEvict?(entry: DlqEntry): void;
12
13
  }
13
14
  /**
14
15
  * Manages Dead Letter Queue operations for a shard
@@ -57,4 +58,5 @@ export declare class DlqShard {
57
58
  getQueueNames(): string[];
58
59
  /** Delete queue data */
59
60
  deleteQueue(queue: string): number;
61
+ private evictUntil;
60
62
  }