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
@@ -1,13 +1,16 @@
1
1
  /**
2
2
  * Cron job domain types
3
3
  */
4
+ import { normalizeJobPayload } from '../job/payload';
4
5
  /** Create a new cron job */
5
6
  export function createCronJob(input, nextRun) {
6
7
  if (!input.schedule && !input.repeatEvery) {
7
8
  throw new Error('Cron job must have either schedule or repeatEvery');
8
9
  }
10
+ const payload = normalizeJobPayload({ name: input.jobName, data: input.data });
9
11
  return {
10
12
  name: input.name,
13
+ jobName: payload.name,
11
14
  queue: input.queue,
12
15
  data: input.data,
13
16
  schedule: input.schedule ?? null,
@@ -35,6 +35,23 @@ export interface AttemptRecord {
35
35
  /** Duration of this attempt in ms */
36
36
  readonly duration: number;
37
37
  }
38
+ /** Internal lifecycle state carried while a DLQ auto-retry is live. */
39
+ export interface DlqRetryState {
40
+ readonly enteredAt: number | null;
41
+ readonly expiresAt: number | null;
42
+ readonly attempts: AttemptRecord[];
43
+ readonly retryCount: number;
44
+ readonly lastRetryAt: number | null;
45
+ readonly nextRetryAt: number | null;
46
+ }
47
+ /** Read internal DLQ state without exposing it on the public Job wire shape. */
48
+ export declare function getDlqRetryState(job: Job): DlqRetryState | null;
49
+ /** Restore internal DLQ state from SQLite as a non-enumerable Job property. */
50
+ export declare function setDlqRetryState(job: Job, state: DlqRetryState | null): void;
51
+ /** Retain a non-terminal failed attempt so a later DLQ entry has full history. */
52
+ export declare function recordJobFailureAttempt(job: Job, reason: FailureReason, error: string | null, failedAt?: number): void;
53
+ /** Carry a dispatched DLQ entry through its live auto-retry execution. */
54
+ export declare function retainDlqRetryState(job: Job, entry: DlqEntry): void;
38
55
  /** DLQ Entry with full metadata */
39
56
  export interface DlqEntry {
40
57
  /** Original job */
@@ -2,6 +2,58 @@
2
2
  * Dead Letter Queue Types
3
3
  * Enhanced DLQ with metadata, auto-retry, and lifecycle management
4
4
  */
5
+ const DLQ_RETRY_STATE = Symbol('bunqueue.dlqRetryState');
6
+ /** Read internal DLQ state without exposing it on the public Job wire shape. */
7
+ export function getDlqRetryState(job) {
8
+ return job[DLQ_RETRY_STATE] ?? null;
9
+ }
10
+ /** Restore internal DLQ state from SQLite as a non-enumerable Job property. */
11
+ export function setDlqRetryState(job, state) {
12
+ if (state === null) {
13
+ delete job[DLQ_RETRY_STATE];
14
+ return;
15
+ }
16
+ Object.defineProperty(job, DLQ_RETRY_STATE, {
17
+ value: state,
18
+ writable: true,
19
+ configurable: true,
20
+ enumerable: false,
21
+ });
22
+ }
23
+ function createAttemptRecord(job, reason, error, failedAt = Date.now()) {
24
+ return {
25
+ attempt: job.attempts,
26
+ startedAt: job.startedAt ?? job.createdAt,
27
+ failedAt,
28
+ reason,
29
+ error,
30
+ duration: job.startedAt ? failedAt - job.startedAt : 0,
31
+ };
32
+ }
33
+ /** Retain a non-terminal failed attempt so a later DLQ entry has full history. */
34
+ export function recordJobFailureAttempt(job, reason, error, failedAt = Date.now()) {
35
+ const state = getDlqRetryState(job) ?? {
36
+ enteredAt: null,
37
+ expiresAt: null,
38
+ attempts: [],
39
+ retryCount: 0,
40
+ lastRetryAt: null,
41
+ nextRetryAt: null,
42
+ };
43
+ state.attempts.push(createAttemptRecord(job, reason, error, failedAt));
44
+ setDlqRetryState(job, state);
45
+ }
46
+ /** Carry a dispatched DLQ entry through its live auto-retry execution. */
47
+ export function retainDlqRetryState(job, entry) {
48
+ setDlqRetryState(job, {
49
+ enteredAt: entry.enteredAt,
50
+ expiresAt: entry.expiresAt,
51
+ attempts: [...entry.attempts],
52
+ retryCount: entry.retryCount,
53
+ lastRetryAt: entry.lastRetryAt,
54
+ nextRetryAt: entry.nextRetryAt,
55
+ });
56
+ }
5
57
  /** Default DLQ configuration */
6
58
  export const DEFAULT_DLQ_CONFIG = {
7
59
  autoRetry: false,
@@ -13,24 +65,28 @@ export const DEFAULT_DLQ_CONFIG = {
13
65
  /** Create a DLQ entry from a failed job */
14
66
  export function createDlqEntry(job, reason, error, config = DEFAULT_DLQ_CONFIG) {
15
67
  const now = Date.now();
16
- const attemptRecord = {
17
- attempt: job.attempts,
18
- startedAt: job.startedAt ?? job.createdAt,
19
- failedAt: now,
20
- reason,
21
- error,
22
- duration: job.startedAt ? now - job.startedAt : 0,
23
- };
68
+ const retained = getDlqRetryState(job);
69
+ const alreadyEntered = retained?.enteredAt !== null && retained?.enteredAt !== undefined;
70
+ const attemptRecord = createAttemptRecord(job, reason, error, now);
71
+ setDlqRetryState(job, null);
24
72
  return {
25
73
  job,
26
- enteredAt: now,
74
+ enteredAt: alreadyEntered ? retained.enteredAt : now,
27
75
  reason,
28
76
  error,
29
- attempts: [attemptRecord],
30
- retryCount: 0,
31
- lastRetryAt: null,
32
- nextRetryAt: config.autoRetry ? now + config.autoRetryInterval : null,
33
- expiresAt: config.maxAge ? now + config.maxAge : null,
77
+ attempts: [...(retained?.attempts ?? []), attemptRecord],
78
+ retryCount: retained?.retryCount ?? 0,
79
+ lastRetryAt: retained?.lastRetryAt ?? null,
80
+ nextRetryAt: alreadyEntered
81
+ ? retained.nextRetryAt
82
+ : config.autoRetry
83
+ ? now + config.autoRetryInterval
84
+ : null,
85
+ expiresAt: alreadyEntered
86
+ ? retained.expiresAt
87
+ : config.maxAge !== null
88
+ ? now + config.maxAge
89
+ : null,
34
90
  };
35
91
  }
36
92
  /** Add attempt record to existing DLQ entry */
@@ -3,6 +3,8 @@
3
3
  */
4
4
  export * from './job';
5
5
  export type * from './command';
6
+ export type * from './metrics';
6
7
  export * from './response';
7
8
  export * from './queue';
8
9
  export * from './cron';
10
+ export * from './protocol';
@@ -5,3 +5,4 @@ export * from './job';
5
5
  export * from './response';
6
6
  export * from './queue';
7
7
  export * from './cron';
8
+ export * from './protocol';
@@ -1,269 +1,8 @@
1
- /**
2
- * Job domain types
3
- * Core job structure and related types
4
- */
5
- /** Branded type for Job IDs (UUIDv7) */
6
- export type JobId = string & {
7
- readonly __brand: 'JobId';
8
- };
9
- /** Create a JobId from string */
10
- export declare function jobId(id: string): JobId;
11
- /** Generate a new UUIDv7 JobId */
12
- export declare function generateJobId(): JobId;
13
- /** Job state enumeration */
14
- export declare const enum JobState {
15
- Waiting = "waiting",
16
- Prioritized = "prioritized",
17
- Delayed = "delayed",
18
- Active = "active",
19
- Completed = "completed",
20
- Failed = "failed"
21
- }
22
- /** Repeat configuration for repeatable jobs */
23
- export interface RepeatConfig {
24
- /** Repeat every N milliseconds */
25
- readonly every?: number;
26
- /** Maximum number of repetitions (null = infinite) */
27
- readonly limit?: number;
28
- /** Cron pattern (alternative to every) */
29
- readonly pattern?: string;
30
- /** Current repeat count */
31
- count: number;
32
- /** Start date timestamp */
33
- readonly startDate?: number;
34
- /** End date timestamp */
35
- readonly endDate?: number;
36
- /** Timezone for cron pattern */
37
- readonly tz?: string;
38
- /** Execute immediately on start */
39
- readonly immediately?: boolean;
40
- /** Previous execution timestamp */
41
- prevMillis?: number;
42
- /** Offset in milliseconds */
43
- readonly offset?: number;
44
- /** Custom job ID for repeat jobs */
45
- readonly jobId?: string;
46
- }
47
- /** Backoff configuration */
48
- export interface BackoffConfig {
49
- /** Backoff strategy type */
50
- readonly type: 'fixed' | 'exponential';
51
- /** Base delay in milliseconds */
52
- readonly delay: number;
53
- /** Maximum delay in milliseconds (default: 3600000 = 1 hour) */
54
- readonly maxDelay?: number;
55
- }
56
- /** Default maximum backoff delay: 1 hour */
57
- export declare const DEFAULT_MAX_BACKOFF = 3600000;
58
- /** Timeline entry — tracks each state transition */
59
- export interface JobTimelineEntry {
60
- readonly state: string;
61
- readonly timestamp: number;
62
- readonly worker?: string;
63
- readonly error?: string;
64
- readonly attempt?: number;
65
- }
66
- /** Max timeline entries per job (prevents unbounded growth) */
67
- export declare const MAX_TIMELINE_ENTRIES = 20;
68
- /** Core job structure */
69
- export interface Job {
70
- readonly id: JobId;
71
- readonly queue: string;
72
- readonly data: unknown;
73
- readonly priority: number;
74
- readonly createdAt: number;
75
- readonly lifo: boolean;
76
- runAt: number;
77
- startedAt: number | null;
78
- completedAt: number | null;
79
- attempts: number;
80
- readonly maxAttempts: number;
81
- /** Backoff delay in ms or backoff configuration */
82
- readonly backoff: number;
83
- /** Backoff configuration (if using object-based backoff) */
84
- readonly backoffConfig: BackoffConfig | null;
85
- readonly ttl: number | null;
86
- readonly timeout: number | null;
87
- readonly uniqueKey: string | null;
88
- readonly customId: string | null;
89
- readonly dependsOn: JobId[];
90
- readonly parentId: JobId | null;
91
- childrenIds: JobId[];
92
- childrenCompleted: number;
93
- readonly tags: string[];
94
- readonly groupId: string | null;
95
- progress: number;
96
- progressMessage: string | null;
97
- /** Last failure's stack trace lines (trimmed, capped at stackTraceLimit). Null until a FAIL carries a stack. (#74) */
98
- stacktrace: string[] | null;
99
- readonly removeOnComplete: boolean;
100
- readonly removeOnFail: boolean;
101
- readonly repeat: RepeatConfig | null;
102
- lastHeartbeat: number;
103
- readonly stallTimeout: number | null;
104
- stallCount: number;
105
- /** Maximum stack trace lines to store */
106
- readonly stackTraceLimit: number;
107
- /** Maximum number of log entries to keep */
108
- readonly keepLogs: number | null;
109
- /** Maximum job data size in bytes */
110
- readonly sizeLimit: number | null;
111
- /** Fail parent job if this child job fails */
112
- readonly failParentOnFailure: boolean;
113
- /** Remove dependency relationship if this job fails */
114
- readonly removeDependencyOnFailure: boolean;
115
- /** Continue parent processing even if this child fails */
116
- readonly continueParentOnFailure: boolean;
117
- /** Move job to parent's failed dependencies instead of blocking parent */
118
- readonly ignoreDependencyOnFailure: boolean;
119
- /** Deduplication TTL in milliseconds */
120
- readonly deduplicationTtl: number | null;
121
- /** Extend deduplication TTL on duplicate */
122
- readonly deduplicationExtend: boolean;
123
- /** Replace job data on duplicate while in delayed state */
124
- readonly deduplicationReplace: boolean;
125
- /** Debounce ID */
126
- readonly debounceId: string | null;
127
- /** Debounce TTL in milliseconds */
128
- readonly debounceTtl: number | null;
129
- /** State transition timeline (in-memory only, not persisted to SQLite) */
130
- timeline: JobTimelineEntry[];
131
- }
132
- /** Input for creating a new job */
133
- export interface JobInput {
134
- data: unknown;
135
- priority?: number;
136
- delay?: number;
137
- maxAttempts?: number;
138
- /** Backoff delay in ms or backoff configuration */
139
- backoff?: number | {
140
- type: 'fixed' | 'exponential';
141
- delay: number;
142
- };
143
- ttl?: number;
144
- timeout?: number;
145
- uniqueKey?: string;
146
- customId?: string;
147
- dependsOn?: JobId[];
148
- childrenIds?: JobId[];
149
- parentId?: JobId;
150
- tags?: string[];
151
- groupId?: string;
152
- lifo?: boolean;
153
- removeOnComplete?: boolean;
154
- removeOnFail?: boolean;
155
- stallTimeout?: number;
156
- repeat?: {
157
- every?: number;
158
- limit?: number;
159
- pattern?: string;
160
- /** Current count (for internal use when re-queueing) */
161
- count?: number;
162
- /** Start date timestamp */
163
- startDate?: number;
164
- /** End date timestamp */
165
- endDate?: number;
166
- /** Timezone for cron pattern */
167
- tz?: string;
168
- /** Execute immediately on start */
169
- immediately?: boolean;
170
- /** Previous execution timestamp */
171
- prevMillis?: number;
172
- /** Offset in milliseconds */
173
- offset?: number;
174
- /** Custom job ID for repeat jobs */
175
- jobId?: string;
176
- };
177
- /** Advanced deduplication options */
178
- dedup?: {
179
- /** TTL for unique key in milliseconds */
180
- ttl?: number;
181
- /** Extend TTL on duplicate instead of rejecting */
182
- extend?: boolean;
183
- /** Replace job data on duplicate instead of rejecting */
184
- replace?: boolean;
185
- };
186
- /**
187
- * Force immediate persistence to disk (bypass write buffer).
188
- * Use for critical jobs where data loss is unacceptable.
189
- * Default: false (uses buffered writes for better throughput)
190
- */
191
- durable?: boolean;
192
- /** Maximum stack trace lines to store */
193
- stackTraceLimit?: number;
194
- /** Maximum number of log entries to keep */
195
- keepLogs?: number;
196
- /** Maximum job data size in bytes */
197
- sizeLimit?: number;
198
- /** Fail parent job if this child job fails */
199
- failParentOnFailure?: boolean;
200
- /** Remove dependency relationship if this job fails */
201
- removeDependencyOnFailure?: boolean;
202
- /** Continue parent processing even if this child fails */
203
- continueParentOnFailure?: boolean;
204
- /** Move job to parent's failed dependencies instead of blocking parent */
205
- ignoreDependencyOnFailure?: boolean;
206
- /** Debounce ID */
207
- debounceId?: string;
208
- /** Debounce TTL in milliseconds */
209
- debounceTtl?: number;
210
- /** Job creation timestamp (default: Date.now()) */
211
- timestamp?: number;
212
- }
213
- /** Job creation defaults */
214
- export declare const JOB_DEFAULTS: {
215
- readonly priority: 0;
216
- readonly maxAttempts: 3;
217
- readonly backoff: 1000;
218
- readonly lifo: false;
219
- readonly removeOnComplete: false;
220
- readonly removeOnFail: false;
221
- readonly stackTraceLimit: 10;
222
- };
223
- /** Create a new job from input */
224
- export declare function createJob(id: JobId, queue: string, input: JobInput, now?: number): Job;
225
- /**
226
- * Normalize raw stack lines for persistence: keep only strings, trim, drop
227
- * empties, cap at `limit` (job.stackTraceLimit). Returns null when nothing
228
- * remains (e.g. stackTraceLimit: 0), matching the 2.6.110 event semantics. (#74)
229
- */
230
- export declare function normalizeStacktrace(lines: readonly unknown[] | undefined, limit: number): string[] | null;
231
- /** Check if job is delayed */
232
- export declare function isDelayed(job: Job, now?: number): boolean;
233
- /** Check if job is ready to process */
234
- export declare function isReady(job: Job, now?: number): boolean;
235
- /** Check if job is expired (TTL exceeded) */
236
- export declare function isExpired(job: Job, now?: number): boolean;
237
- /** Check if job has timed out during processing */
238
- export declare function isTimedOut(job: Job, now?: number): boolean;
239
- /** Calculate next retry delay with backoff strategy, jitter, and max cap */
240
- export declare function calculateBackoff(job: Job): number;
241
- /** Check if job can retry */
242
- export declare function canRetry(job: Job): boolean;
243
- /** Lock token type (UUID) */
244
- export type LockToken = string & {
245
- readonly __brand: 'LockToken';
246
- };
247
- /** Create a LockToken from string */
248
- export declare function lockToken(token: string): LockToken;
249
- /** Generate a new lock token */
250
- export declare function generateLockToken(): LockToken;
251
- /** Job lock structure - tracks ownership of job processing */
252
- export interface JobLock {
253
- readonly jobId: JobId;
254
- readonly token: LockToken;
255
- readonly owner: string;
256
- readonly createdAt: number;
257
- expiresAt: number;
258
- lastRenewalAt: number;
259
- renewalCount: number;
260
- readonly ttl: number;
261
- }
262
- /** Default lock TTL in milliseconds (30 seconds like BullMQ) */
263
- export declare const DEFAULT_LOCK_TTL = 30000;
264
- /** Create a new job lock */
265
- export declare function createJobLock(jobId: JobId, owner: string, ttl?: number, now?: number): JobLock;
266
- /** Check if lock is expired */
267
- export declare function isLockExpired(lock: JobLock, now?: number): boolean;
268
- /** Renew a lock, extending its expiration */
269
- export declare function renewLock(lock: JobLock, newTtl?: number, now?: number): void;
1
+ /** Stable import surface for job types and domain operations. */
2
+ export * from './jobs/model';
3
+ export * from '../job/constants';
4
+ export * from '../job/create';
5
+ export * from '../job/ids';
6
+ export * from '../job/locks';
7
+ export * from '../job/payload';
8
+ export * from '../job/state';
@@ -1,234 +1,8 @@
1
- /**
2
- * Job domain types
3
- * Core job structure and related types
4
- */
5
- /** Create a JobId from string */
6
- export function jobId(id) {
7
- return id;
8
- }
9
- /** Generate a new UUIDv7 JobId */
10
- export function generateJobId() {
11
- return Bun.randomUUIDv7();
12
- }
13
- /** Default maximum backoff delay: 1 hour */
14
- export const DEFAULT_MAX_BACKOFF = 3_600_000;
15
- /** Max timeline entries per job (prevents unbounded growth) */
16
- export const MAX_TIMELINE_ENTRIES = 20;
17
- /** Job creation defaults */
18
- export const JOB_DEFAULTS = {
19
- priority: 0,
20
- maxAttempts: 3,
21
- backoff: 1000,
22
- lifo: false,
23
- removeOnComplete: false,
24
- removeOnFail: false,
25
- stackTraceLimit: 10,
26
- };
27
- /** Parse backoff from input (can be number or object) */
28
- function parseBackoff(input) {
29
- if (typeof input === 'object') {
30
- return {
31
- backoff: input.delay,
32
- backoffConfig: { type: input.type, delay: input.delay },
33
- };
34
- }
35
- return { backoff: input ?? JOB_DEFAULTS.backoff, backoffConfig: null };
36
- }
37
- /** Parse repeat config from input */
38
- function parseRepeatConfig(repeat) {
39
- if (!repeat)
40
- return null;
41
- return {
42
- every: repeat.every,
43
- limit: repeat.limit,
44
- pattern: repeat.pattern,
45
- count: repeat.count ?? 0,
46
- startDate: repeat.startDate,
47
- endDate: repeat.endDate,
48
- tz: repeat.tz,
49
- immediately: repeat.immediately,
50
- prevMillis: repeat.prevMillis,
51
- offset: repeat.offset,
52
- jobId: repeat.jobId,
53
- };
54
- }
55
- /** Parse core job options with defaults */
56
- /** Coerce a wire value to boolean. The JobInput boundary is not type-safe at
57
- * runtime — a hand-crafted/legacy client can send a non-boolean. See issue #90. */
58
- function toBoolean(value, fallback) {
59
- return value === undefined ? fallback : Boolean(value);
60
- }
61
- function parseCoreOptions(input) {
62
- return {
63
- priority: input.priority ?? JOB_DEFAULTS.priority,
64
- lifo: input.lifo ?? JOB_DEFAULTS.lifo,
65
- maxAttempts: input.maxAttempts ?? JOB_DEFAULTS.maxAttempts,
66
- // Coerce to boolean: a stray number/object forwarded over the wire must not
67
- // persist as a non-boolean and diverge from embedded mode. See issue #90.
68
- removeOnComplete: toBoolean(input.removeOnComplete, JOB_DEFAULTS.removeOnComplete),
69
- removeOnFail: toBoolean(input.removeOnFail, JOB_DEFAULTS.removeOnFail),
70
- };
71
- }
72
- /** Parse optional fields (nullable) */
73
- function parseOptionalFields(input) {
74
- return {
75
- ttl: input.ttl ?? null,
76
- timeout: input.timeout ?? null,
77
- uniqueKey: input.uniqueKey ?? null,
78
- customId: input.customId ?? null,
79
- parentId: input.parentId ?? null,
80
- groupId: input.groupId ?? null,
81
- stallTimeout: input.stallTimeout ?? null,
82
- };
83
- }
84
- /** Parse BullMQ v5 specific options */
85
- function parseBullMQV5Options(input) {
86
- return {
87
- stackTraceLimit: input.stackTraceLimit ?? JOB_DEFAULTS.stackTraceLimit,
88
- keepLogs: input.keepLogs ?? null,
89
- sizeLimit: input.sizeLimit ?? null,
90
- failParentOnFailure: input.failParentOnFailure ?? false,
91
- removeDependencyOnFailure: input.removeDependencyOnFailure ?? false,
92
- continueParentOnFailure: input.continueParentOnFailure ?? false,
93
- ignoreDependencyOnFailure: input.ignoreDependencyOnFailure ?? false,
94
- deduplicationTtl: input.dedup?.ttl ?? null,
95
- deduplicationExtend: input.dedup?.extend ?? false,
96
- deduplicationReplace: input.dedup?.replace ?? false,
97
- debounceId: input.debounceId ?? null,
98
- debounceTtl: input.debounceTtl ?? null,
99
- };
100
- }
101
- /** Create a new job from input */
102
- export function createJob(id, queue, input, now = Date.now()) {
103
- const { backoff, backoffConfig } = parseBackoff(input.backoff);
104
- const coreOpts = parseCoreOptions(input);
105
- const optionalFields = parseOptionalFields(input);
106
- const v5Opts = parseBullMQV5Options(input);
107
- const createdAt = input.timestamp ?? now;
108
- return {
109
- id,
110
- queue,
111
- data: input.data,
112
- createdAt,
113
- runAt: createdAt + (input.delay ?? 0),
114
- startedAt: null,
115
- completedAt: null,
116
- attempts: 0,
117
- backoff,
118
- backoffConfig,
119
- dependsOn: input.dependsOn ?? [],
120
- childrenIds: input.childrenIds ?? [],
121
- childrenCompleted: 0,
122
- tags: input.tags ?? [],
123
- progress: 0,
124
- progressMessage: null,
125
- stacktrace: null,
126
- repeat: parseRepeatConfig(input.repeat),
127
- lastHeartbeat: createdAt,
128
- stallCount: 0,
129
- ...coreOpts,
130
- ...optionalFields,
131
- ...v5Opts,
132
- timeline: [],
133
- };
134
- }
135
- /**
136
- * Normalize raw stack lines for persistence: keep only strings, trim, drop
137
- * empties, cap at `limit` (job.stackTraceLimit). Returns null when nothing
138
- * remains (e.g. stackTraceLimit: 0), matching the 2.6.110 event semantics. (#74)
139
- */
140
- export function normalizeStacktrace(lines, limit) {
141
- if (!lines || lines.length === 0)
142
- return null;
143
- const out = [];
144
- for (const line of lines) {
145
- if (out.length >= limit)
146
- break;
147
- if (typeof line !== 'string')
148
- continue;
149
- const trimmed = line.trim();
150
- if (trimmed)
151
- out.push(trimmed);
152
- }
153
- return out.length > 0 ? out : null;
154
- }
155
- /** Check if job is delayed */
156
- export function isDelayed(job, now = Date.now()) {
157
- return job.runAt > now;
158
- }
159
- /** Check if job is ready to process */
160
- export function isReady(job, now = Date.now()) {
161
- return job.runAt <= now;
162
- }
163
- /** Check if job is expired (TTL exceeded) */
164
- export function isExpired(job, now = Date.now()) {
165
- if (job.ttl === null)
166
- return false;
167
- return now > job.createdAt + job.ttl;
168
- }
169
- /** Check if job has timed out during processing */
170
- export function isTimedOut(job, now = Date.now()) {
171
- if (job.timeout === null || job.startedAt === null)
172
- return false;
173
- return now > job.startedAt + job.timeout;
174
- }
175
- /** Calculate next retry delay with backoff strategy, jitter, and max cap */
176
- export function calculateBackoff(job) {
177
- const maxDelay = job.backoffConfig?.maxDelay ?? DEFAULT_MAX_BACKOFF;
178
- if (job.backoffConfig) {
179
- if (job.backoffConfig.type === 'fixed') {
180
- // Fixed backoff with ±20% jitter
181
- const base = job.backoffConfig.delay;
182
- const jittered = base * (0.8 + Math.random() * 0.4);
183
- return Math.min(jittered, maxDelay);
184
- }
185
- else {
186
- // Exponential backoff with ±50% jitter
187
- const base = job.backoffConfig.delay * Math.pow(2, job.attempts);
188
- const jittered = base * (0.5 + Math.random());
189
- return Math.min(jittered, maxDelay);
190
- }
191
- }
192
- // Default: exponential backoff with ±50% jitter and max cap
193
- const base = job.backoff * Math.pow(2, job.attempts);
194
- const jittered = base * (0.5 + Math.random());
195
- return Math.min(jittered, maxDelay);
196
- }
197
- /** Check if job can retry */
198
- export function canRetry(job) {
199
- return job.attempts < job.maxAttempts;
200
- }
201
- /** Create a LockToken from string */
202
- export function lockToken(token) {
203
- return token;
204
- }
205
- /** Generate a new lock token */
206
- export function generateLockToken() {
207
- return Bun.randomUUIDv7();
208
- }
209
- /** Default lock TTL in milliseconds (30 seconds like BullMQ) */
210
- export const DEFAULT_LOCK_TTL = 30_000;
211
- /** Create a new job lock */
212
- export function createJobLock(jobId, owner, ttl = DEFAULT_LOCK_TTL, now = Date.now()) {
213
- return {
214
- jobId,
215
- token: generateLockToken(),
216
- owner,
217
- createdAt: now,
218
- expiresAt: now + ttl,
219
- lastRenewalAt: now,
220
- renewalCount: 0,
221
- ttl,
222
- };
223
- }
224
- /** Check if lock is expired */
225
- export function isLockExpired(lock, now = Date.now()) {
226
- return now >= lock.expiresAt;
227
- }
228
- /** Renew a lock, extending its expiration */
229
- export function renewLock(lock, newTtl, now = Date.now()) {
230
- const ttl = newTtl ?? lock.ttl;
231
- lock.expiresAt = now + ttl;
232
- lock.lastRenewalAt = now;
233
- lock.renewalCount++;
234
- }
1
+ /** Stable import surface for job types and domain operations. */
2
+ export * from './jobs/model';
3
+ export * from '../job/constants';
4
+ export * from '../job/create';
5
+ export * from '../job/ids';
6
+ export * from '../job/locks';
7
+ export * from '../job/payload';
8
+ export * from '../job/state';