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,400 +1,4 @@
1
- /**
2
- * Processor Handler Factories
3
- * Creates callback handlers for job operations during processing
4
- */
5
- import { jobId } from '../../domain/types/job';
6
- import { getSharedManager } from '../manager';
7
- import { UnrecoverableError } from '../errors';
8
- export function createProgressHandler(embedded, tcp, emitter, jobHolder) {
9
- return async (id, progress, message) => {
10
- if (embedded) {
11
- const manager = getSharedManager();
12
- await manager.updateProgress(jobId(id), progress, message);
13
- }
14
- else if (tcp) {
15
- await tcp.send({ cmd: 'Progress', id, progress, message });
16
- }
17
- emitter.emit('progress', jobHolder.current, progress);
18
- };
19
- }
20
- export function createLogHandler(embedded, tcp, emitter, jobHolder) {
21
- return async (id, message) => {
22
- if (embedded) {
23
- const manager = getSharedManager();
24
- manager.addLog(jobId(id), message);
25
- }
26
- else if (tcp) {
27
- await tcp.send({ cmd: 'AddLog', id, message });
28
- }
29
- emitter.emit('log', jobHolder.current, message);
30
- };
31
- }
32
- export function createGetStateHandler(embedded, tcp) {
33
- return async (id) => {
34
- if (embedded) {
35
- const manager = getSharedManager();
36
- return (await manager.getJobState(jobId(id)));
37
- }
38
- else if (tcp) {
39
- const response = await tcp.send({ cmd: 'GetState', id });
40
- return (response.state ?? 'unknown');
41
- }
42
- return 'unknown';
43
- };
44
- }
45
- export function createGetChildrenValuesHandler(embedded, tcp) {
46
- return async (id) => {
47
- if (embedded) {
48
- const manager = getSharedManager();
49
- return manager.getChildrenValues(jobId(id));
50
- }
51
- else if (tcp) {
52
- const response = await tcp.send({ cmd: 'GetChildrenValues', id });
53
- const data = response.data;
54
- return data?.values ?? {};
55
- }
56
- return {};
57
- };
58
- }
59
- export function createGetFailedChildrenValuesHandler(embedded, tcp) {
60
- return async (id) => {
61
- if (embedded) {
62
- const manager = getSharedManager();
63
- return manager.getFailedChildrenValues(jobId(id));
64
- }
65
- if (!tcp)
66
- return {};
67
- const res = await tcp.send({ cmd: 'GetFailedChildrenValues', id });
68
- return res.values ?? {};
69
- };
70
- }
71
- export function createGetIgnoredChildrenFailuresHandler(embedded, tcp) {
72
- return async (id) => {
73
- if (embedded) {
74
- const manager = getSharedManager();
75
- return manager.getIgnoredChildrenFailures(jobId(id));
76
- }
77
- if (!tcp)
78
- return {};
79
- const res = await tcp.send({ cmd: 'GetIgnoredChildrenFailures', id });
80
- return res.values ?? {};
81
- };
82
- }
83
- export function createRemoveChildDependencyHandler(embedded, tcp) {
84
- return async (id) => {
85
- if (embedded) {
86
- const manager = getSharedManager();
87
- return manager.removeChildDependency(jobId(id));
88
- }
89
- if (!tcp)
90
- return false;
91
- const res = await tcp.send({ cmd: 'RemoveChildDependency', id });
92
- return res.ok === true;
93
- };
94
- }
95
- export function createRemoveUnprocessedChildrenHandler(embedded, tcp) {
96
- return async (id) => {
97
- if (embedded) {
98
- const manager = getSharedManager();
99
- return manager.removeUnprocessedChildren(jobId(id));
100
- }
101
- if (!tcp)
102
- return;
103
- await tcp.send({ cmd: 'RemoveUnprocessedChildren', id });
104
- };
105
- }
106
- /**
107
- * Bug #74: split an Error's stack into trimmed, non-empty lines.
108
- * `wireStack` is the bandwidth-capped copy sent to the server (50 lines); the
109
- * authoritative cap (job.stackTraceLimit) is applied server-side in failJob.
110
- * Shared by the natural-throw path (handleJobFailure) and the explicit
111
- * moveToFailed() path so both persist the stack identically.
112
- */
113
- export function computeStackLines(err) {
114
- const stackLines = err.stack
115
- ? err.stack
116
- .split('\n')
117
- .map((l) => l.trim())
118
- .filter(Boolean)
119
- : [];
120
- const wireStack = stackLines.length > 0 ? stackLines.slice(0, 50) : undefined;
121
- return { stackLines, wireStack };
122
- }
123
- /** Issue #82: Create moveToFailed handler for use inside processor */
124
- export function createMoveToFailedHandler(embedded, tcp, internalJob, token, onCalled) {
125
- return async (_id, error, _lockToken) => {
126
- // Bug #74 follow-up: carry the stack on explicit moveToFailed() too. The
127
- // natural-throw path already does; @arthurvanl's repro showed the manual
128
- // path lost it. Compute before the send so the server can persist it.
129
- const { wireStack } = computeStackLines(error);
130
- // Honour UnrecoverableError on the in-processor moveToFailed() path too, so
131
- // it matches the natural-throw and Queue-reflection paths (skeptic: this was
132
- // the one site still retrying an UnrecoverableError). #74/#82/#111-class.
133
- const unrecoverable = error instanceof UnrecoverableError;
134
- if (embedded) {
135
- const manager = getSharedManager();
136
- await manager.fail(internalJob.id, error.message, token ?? undefined, unrecoverable, wireStack);
137
- }
138
- else if (tcp) {
139
- await tcp.send({
140
- cmd: 'FAIL',
141
- id: internalJob.id,
142
- error: error.message,
143
- ...(wireStack ? { stack: wireStack } : {}),
144
- ...(token ? { token } : {}),
145
- ...(unrecoverable ? { unrecoverable: true } : {}),
146
- });
147
- }
148
- onCalled(error);
149
- };
150
- }
151
- /** Issue #82: Create moveToCompleted handler for use inside processor */
152
- export function createMoveToCompletedHandler(embedded, ackBatcher, internalJob, token, onCalled) {
153
- return async (_id, returnValue, _lockToken) => {
154
- if (embedded) {
155
- const manager = getSharedManager();
156
- await manager.ack(internalJob.id, returnValue, token ?? undefined);
157
- }
158
- else {
159
- await ackBatcher.queue(String(internalJob.id), returnValue, token ?? undefined);
160
- }
161
- onCalled(returnValue);
162
- return null;
163
- };
164
- }
165
- // ============================================================
166
- // Job mutation handlers (Issue #82 follow-up: wire remaining no-op methods)
167
- // ============================================================
168
- export function createRemoveHandler(embedded, tcp) {
169
- return async (id) => {
170
- if (embedded) {
171
- await getSharedManager().cancel(jobId(id));
172
- return;
173
- }
174
- if (!tcp)
175
- return;
176
- await tcp.send({ cmd: 'Cancel', id });
177
- };
178
- }
179
- export function createRetryHandler(embedded, tcp, internalJob) {
180
- return async (id) => {
181
- // BullMQ contract: Job.retry() moves a failed job back to waiting.
182
- // Dispatch by state so it also works on an active job that wants to requeue.
183
- if (embedded) {
184
- const mgr = getSharedManager();
185
- const state = await mgr.getJobState(jobId(id));
186
- if (state === 'failed') {
187
- const count = mgr.retryDlq(internalJob.queue, jobId(id));
188
- if (count === 0)
189
- throw new Error(`Job ${id} is failed but not present in DLQ`);
190
- return;
191
- }
192
- if (state === 'active') {
193
- const ok = await mgr.moveActiveToWait(jobId(id));
194
- if (!ok)
195
- throw new Error(`Failed to retry active job ${id}`);
196
- return;
197
- }
198
- if (state === 'waiting' || state === 'prioritized' || state === 'delayed')
199
- return;
200
- throw new Error(`Cannot retry job ${id} from state '${state}'`);
201
- }
202
- if (!tcp)
203
- return;
204
- const res = await tcp.send({ cmd: 'MoveToWait', id });
205
- if (res.ok !== true) {
206
- const err = typeof res.error === 'string' ? res.error : 'retry failed';
207
- throw new Error(err);
208
- }
209
- };
210
- }
211
- export function createUpdateDataHandler(embedded, tcp) {
212
- return async (id, data) => {
213
- if (embedded) {
214
- await getSharedManager().updateJobData(jobId(id), data);
215
- return;
216
- }
217
- if (!tcp)
218
- return;
219
- await tcp.send({ cmd: 'Update', id, data });
220
- };
221
- }
222
- export function createPromoteHandler(embedded, tcp) {
223
- return async (id) => {
224
- if (embedded) {
225
- await getSharedManager().promote(jobId(id));
226
- return;
227
- }
228
- if (!tcp)
229
- return;
230
- await tcp.send({ cmd: 'Promote', id });
231
- };
232
- }
233
- export function createChangeDelayHandler(embedded, tcp) {
234
- return async (id, delay) => {
235
- if (embedded) {
236
- await getSharedManager().changeDelay(jobId(id), delay);
237
- return;
238
- }
239
- if (!tcp)
240
- return;
241
- await tcp.send({ cmd: 'ChangeDelay', id, delay });
242
- };
243
- }
244
- export function createChangePriorityHandler(embedded, tcp) {
245
- return async (id, opts) => {
246
- if (embedded) {
247
- await getSharedManager().changePriority(jobId(id), opts.priority, opts.lifo);
248
- return;
249
- }
250
- if (!tcp)
251
- return;
252
- await tcp.send({ cmd: 'ChangePriority', id, priority: opts.priority, lifo: opts.lifo });
253
- };
254
- }
255
- export function createExtendLockHandler(embedded, tcp) {
256
- return async (id, token, duration) => {
257
- if (embedded) {
258
- const ok = await getSharedManager().extendLock(jobId(id), token, duration);
259
- return ok ? duration : 0;
260
- }
261
- if (!tcp)
262
- return 0;
263
- const res = await tcp.send({ cmd: 'ExtendLock', id, token, duration });
264
- return res.ok === true ? duration : 0;
265
- };
266
- }
267
- export function createClearLogsHandler(embedded, tcp) {
268
- return async (id, keepLogs) => {
269
- if (embedded) {
270
- getSharedManager().clearLogs(jobId(id), keepLogs);
271
- return;
272
- }
273
- if (!tcp)
274
- return;
275
- await tcp.send({ cmd: 'ClearLogs', id, keepLogs });
276
- };
277
- }
278
- export function createMoveToWaitHandler(embedded, tcp) {
279
- return async (id, _token) => {
280
- if (embedded) {
281
- return await getSharedManager().moveActiveToWait(jobId(id));
282
- }
283
- if (!tcp)
284
- return false;
285
- const res = await tcp.send({ cmd: 'MoveToWait', id });
286
- return res.ok === true;
287
- };
288
- }
289
- export function createMoveToDelayedHandler(embedded, tcp) {
290
- return async (id, timestamp, _token) => {
291
- // BullMQ API passes absolute timestamp; server expects relative delay (ms)
292
- const delay = Math.max(0, timestamp - Date.now());
293
- if (embedded) {
294
- await getSharedManager().moveToDelayed(jobId(id), delay);
295
- return;
296
- }
297
- if (!tcp)
298
- return;
299
- await tcp.send({ cmd: 'MoveToDelayed', id, delay });
300
- };
301
- }
302
- export function createMoveToWaitingChildrenHandler(embedded, tcp) {
303
- return async (id) => {
304
- if (embedded) {
305
- return await getSharedManager().moveToWaitingChildren(jobId(id));
306
- }
307
- if (!tcp)
308
- return false;
309
- throw new Error('moveToWaitingChildren is not supported in TCP mode — no server command available');
310
- };
311
- }
312
- export function createWaitUntilFinishedHandler(embedded, tcp) {
313
- return async (id, _queueEvents, ttl) => {
314
- const timeout = ttl ?? 30000;
315
- if (embedded) {
316
- const manager = getSharedManager();
317
- const job = await manager.getJob(jobId(id));
318
- if (!job)
319
- throw new Error(`Job ${id} not found`);
320
- if (job.completedAt)
321
- return manager.getResult(jobId(id));
322
- const completed = await manager.waitForJobCompletion(jobId(id), timeout);
323
- if (!completed)
324
- throw new Error(`waitUntilFinished timed out after ${timeout}ms`);
325
- return manager.getResult(jobId(id));
326
- }
327
- if (!tcp)
328
- throw new Error('waitUntilFinished: no connection');
329
- const res = await tcp.send({ cmd: 'WaitJob', id, timeout });
330
- const typed = res;
331
- if (!typed.completed)
332
- throw new Error(`waitUntilFinished timed out after ${timeout}ms`);
333
- return typed.result;
334
- };
335
- }
336
- export function createDiscardHandler(embedded, tcp) {
337
- return (id) => {
338
- if (embedded) {
339
- void getSharedManager().discard(jobId(id));
340
- return;
341
- }
342
- if (!tcp)
343
- return;
344
- void tcp.send({ cmd: 'Discard', id });
345
- };
346
- }
347
- /**
348
- * getDependencies — compute from internalJob.childrenIds by querying each child's state.
349
- * No dedicated server API; derive from existing job state queries.
350
- */
351
- export function createGetDependenciesHandler(embedded, tcp, internalJob) {
352
- return async () => {
353
- const childIds = internalJob.childrenIds;
354
- const processed = {};
355
- const unprocessed = [];
356
- for (const cid of childIds) {
357
- let state = 'unknown';
358
- let result;
359
- if (embedded) {
360
- const mgr = getSharedManager();
361
- state = await mgr.getJobState(cid);
362
- if (state === 'completed')
363
- result = mgr.getResult(cid);
364
- }
365
- else if (tcp) {
366
- const r = await tcp.send({ cmd: 'GetState', id: String(cid) });
367
- state = r.state ?? 'unknown';
368
- if (state === 'completed') {
369
- const rr = await tcp.send({ cmd: 'GetResult', id: String(cid) });
370
- result = rr.result;
371
- }
372
- }
373
- const key = `${internalJob.queue}:${String(cid)}`;
374
- if (state === 'completed' || state === 'failed') {
375
- processed[key] = result ?? null;
376
- }
377
- else {
378
- unprocessed.push(key);
379
- }
380
- }
381
- return { processed, unprocessed };
382
- };
383
- }
384
- export function createGetDependenciesCountHandler(embedded, tcp, internalJob) {
385
- const getDeps = createGetDependenciesHandler(embedded, tcp, internalJob);
386
- return async (id) => {
387
- const deps = await getDeps(id);
388
- return {
389
- processed: Object.keys(deps.processed).length,
390
- unprocessed: deps.unprocessed.length,
391
- };
392
- };
393
- }
394
- /**
395
- * removeDeduplicationKey — no server primitive; throw explicit error so callers
396
- * learn this isn't supported rather than silently getting `false`.
397
- */
398
- export function createRemoveDeduplicationKeyHandler() {
399
- return () => Promise.reject(new Error('removeDeduplicationKey is not implemented — no server primitive available'));
400
- }
1
+ export * from './handlers/completion';
2
+ export * from './handlers/dependencies';
3
+ export * from './handlers/mutations';
4
+ export * from './handlers/queries';
@@ -0,0 +1,14 @@
1
+ import type { EventEmitter } from 'events';
2
+ import type { Job as InternalJob } from '../../domain/types/job';
3
+ import type { FlowJobData, Job } from '../types';
4
+ import type { FailureContext, ProcessorConfig } from './types';
5
+ import type { ManualMove } from './types';
6
+ /** Settle an explicit processor-owned outcome or nonterminal transition. */
7
+ export declare function handleManualMove<T extends FlowJobData>(manualMove: ManualMove, job: Job<T>, config: {
8
+ onOutcome?: (succeeded: boolean) => void;
9
+ emitter: EventEmitter;
10
+ shouldAbandonOutcome?: () => boolean;
11
+ }, internalJob: InternalJob): Promise<boolean>;
12
+ /** Identify an outcome that lost its processing generation before completion. */
13
+ export declare function isJobNotFoundError(err: Error): boolean;
14
+ export declare function handleJobFailure<T, R>(internalJob: InternalJob, error: unknown, config: ProcessorConfig<T, R>, context: FailureContext<T & FlowJobData>): Promise<void>;
@@ -0,0 +1,125 @@
1
+ import { DelayedError, UnrecoverableError } from '../errors';
2
+ import { getSharedManager } from '../manager';
3
+ import { computeStackLines } from './processorHandlers';
4
+ import { outcomeWasApplied } from './ackOutcome';
5
+ /** Settle an explicit processor-owned outcome or nonterminal transition. */
6
+ export async function handleManualMove(manualMove, job, config, internalJob) {
7
+ const result = manualMove.result;
8
+ if (result?.type === 'pending-transition') {
9
+ const settlement = await result.pending;
10
+ manualMove.result = { type: 'transitioned' };
11
+ if (settlement.status === 'failed' && !config.shouldAbandonOutcome?.()) {
12
+ config.emitter.emit('error', Object.assign(settlement.error, {
13
+ context: result.context,
14
+ jobId: String(internalJob.id),
15
+ }));
16
+ }
17
+ return true;
18
+ }
19
+ if (result?.type === 'ignored' || result?.type === 'transitioned') {
20
+ return true;
21
+ }
22
+ if (result?.type === 'failed') {
23
+ const err = result.error ?? new Error('Job manually moved to failed');
24
+ job.failedReason = err.message;
25
+ if (err.stack) {
26
+ const { stackLines } = computeStackLines(err);
27
+ job.stacktrace = stackLines.slice(0, internalJob.stackTraceLimit);
28
+ }
29
+ config.onOutcome?.(false);
30
+ config.emitter.emit('failed', job, err);
31
+ return true;
32
+ }
33
+ if (result?.type === 'completed') {
34
+ job.returnvalue = result.value;
35
+ config.onOutcome?.(true);
36
+ config.emitter.emit('completed', job, result.value);
37
+ return true;
38
+ }
39
+ return false;
40
+ }
41
+ /** Identify an outcome that lost its processing generation before completion. */
42
+ export function isJobNotFoundError(err) {
43
+ return err.message.includes('not found') || err.message.includes('not in processing');
44
+ }
45
+ async function handleDelayedError(internalJob, config, context) {
46
+ const { embedded, tcp, emitter } = config;
47
+ if (config.shouldAbandonOutcome?.())
48
+ return;
49
+ try {
50
+ if (embedded) {
51
+ await getSharedManager().moveToDelayed(internalJob.id, internalJob.backoff || 1000, context.token ?? undefined);
52
+ }
53
+ else if (tcp) {
54
+ await tcp.send({
55
+ cmd: 'MoveToDelayed',
56
+ id: internalJob.id,
57
+ delay: internalJob.backoff || 1000,
58
+ ...(context.token ? { token: context.token } : {}),
59
+ });
60
+ }
61
+ }
62
+ catch (delayError) {
63
+ if (config.shouldAbandonOutcome?.())
64
+ return;
65
+ const wrappedError = delayError instanceof Error ? delayError : new Error(String(delayError));
66
+ if (!isJobNotFoundError(wrappedError)) {
67
+ emitter.emit('error', Object.assign(wrappedError, { context: 'delay', jobId: context.jobIdStr }));
68
+ }
69
+ }
70
+ }
71
+ export async function handleJobFailure(internalJob, error, config, context) {
72
+ const { embedded, tcp, emitter } = config;
73
+ const { job, jobIdStr, token } = context;
74
+ const err = error instanceof Error ? error : new Error(String(error));
75
+ if (config.shouldAbandonOutcome?.())
76
+ return;
77
+ if (err instanceof DelayedError) {
78
+ await handleDelayedError(internalJob, config, { jobIdStr, token });
79
+ return;
80
+ }
81
+ if (err instanceof UnrecoverableError) {
82
+ internalJob.maxAttempts = 1;
83
+ internalJob.attempts = 0;
84
+ }
85
+ const { stackLines, wireStack } = computeStackLines(err);
86
+ try {
87
+ let applied = true;
88
+ if (embedded) {
89
+ const outcome = await getSharedManager().fail(internalJob.id, err.message, token ?? undefined, undefined, wireStack, config.removeOnFail);
90
+ applied = outcome?.applied !== false;
91
+ }
92
+ else if (tcp) {
93
+ const response = await tcp.send({
94
+ cmd: 'FAIL',
95
+ id: internalJob.id,
96
+ error: err.message,
97
+ ...(wireStack ? { stack: wireStack } : {}),
98
+ ...(token ? { token } : {}),
99
+ ...(err instanceof UnrecoverableError ? { unrecoverable: true } : {}),
100
+ ...(config.removeOnFail ? { removeOnFail: true } : {}),
101
+ });
102
+ if (response.ok !== true) {
103
+ throw new Error(typeof response.error === 'string' ? response.error : 'FAIL failed');
104
+ }
105
+ applied = outcomeWasApplied(response.data);
106
+ }
107
+ if (!applied)
108
+ return;
109
+ }
110
+ catch (failError) {
111
+ if (config.shouldAbandonOutcome?.())
112
+ return;
113
+ const wrappedError = failError instanceof Error ? failError : new Error(String(failError));
114
+ if (!isJobNotFoundError(wrappedError)) {
115
+ emitter.emit('error', Object.assign(wrappedError, { context: 'fail', jobId: jobIdStr }));
116
+ }
117
+ return;
118
+ }
119
+ job.failedReason = err.message;
120
+ if (err.stack) {
121
+ job.stacktrace = stackLines.slice(0, internalJob.stackTraceLimit);
122
+ }
123
+ config.onOutcome?.(false);
124
+ emitter.emit('failed', job, err);
125
+ }
@@ -0,0 +1,8 @@
1
+ import { WorkerLifecycle } from './lifecycle';
2
+ import type { PulledJob, WorkerDelivery } from './state';
3
+ export declare abstract class WorkerBuffer<T = unknown, R = unknown> extends WorkerLifecycle<T, R> {
4
+ protected registerPulledJobs(items: PulledJob[]): WorkerDelivery[];
5
+ protected getBufferedJob(): WorkerDelivery | null;
6
+ protected requeueItem(item: WorkerDelivery): void;
7
+ protected getNextEligibleJob(): WorkerDelivery | null;
8
+ }
@@ -0,0 +1,50 @@
1
+ import { sendHeartbeat } from '../workerHeartbeat';
2
+ import { WorkerLifecycle } from './lifecycle';
3
+ export class WorkerBuffer extends WorkerLifecycle {
4
+ registerPulledJobs(items) {
5
+ const deliveries = items.map((item) => this.trackDelivery(item));
6
+ if (this.opts.useLocks && items.length > 0 && this.tcpPool && this.tcpPool.getPoolSize() > 1) {
7
+ void sendHeartbeat(this.getHeartbeatDeps());
8
+ }
9
+ return deliveries;
10
+ }
11
+ getBufferedJob() {
12
+ if (this.pendingJobsHead >= this.pendingJobs.length)
13
+ return null;
14
+ const item = this.pendingJobs[this.pendingJobsHead++];
15
+ if (this.pendingJobsHead > 500 && this.pendingJobsHead >= this.pendingJobs.length / 2) {
16
+ this.pendingJobs = this.pendingJobs.slice(this.pendingJobsHead);
17
+ this.pendingJobsHead = 0;
18
+ }
19
+ return item;
20
+ }
21
+ requeueItem(item) {
22
+ if (this.pendingJobsHead > 0) {
23
+ this.pendingJobs[--this.pendingJobsHead] = item;
24
+ }
25
+ else {
26
+ this.pendingJobs.unshift(item);
27
+ }
28
+ }
29
+ getNextEligibleJob() {
30
+ if (this.pendingJobsHead >= this.pendingJobs.length)
31
+ return null;
32
+ if (!this.groupLimiter)
33
+ return this.getBufferedJob();
34
+ const start = this.pendingJobsHead;
35
+ const end = this.pendingJobs.length;
36
+ for (let index = start; index < end; index++) {
37
+ const item = this.pendingJobs[index];
38
+ if (this.groupLimiter.canProcess(item.job)) {
39
+ this.pendingJobs[index] = this.pendingJobs[this.pendingJobsHead];
40
+ this.pendingJobsHead++;
41
+ if (this.pendingJobsHead > 500 && this.pendingJobsHead >= this.pendingJobs.length / 2) {
42
+ this.pendingJobs = this.pendingJobs.slice(this.pendingJobsHead);
43
+ this.pendingJobsHead = 0;
44
+ }
45
+ return item;
46
+ }
47
+ }
48
+ return null;
49
+ }
50
+ }
@@ -0,0 +1,26 @@
1
+ import { WorkerState } from './state';
2
+ export declare abstract class WorkerControl<T = unknown, R = unknown> extends WorkerState<T, R> {
3
+ run(): void;
4
+ protected subscribeToStalledEvents(): void;
5
+ pause(): void;
6
+ resume(): void;
7
+ isRunning(): boolean;
8
+ isPaused(): boolean;
9
+ isClosed(): boolean;
10
+ get concurrency(): number;
11
+ set concurrency(value: number);
12
+ get closing(): Promise<void> | null;
13
+ waitUntilReady(): Promise<void>;
14
+ cancelJob(jobId: string, reason?: string): boolean;
15
+ cancelAllJobs(reason?: string): void;
16
+ isJobCancelled(jobId: string): boolean;
17
+ getRateLimiterInfo(): {
18
+ current: number;
19
+ max: number;
20
+ duration: number;
21
+ } | null;
22
+ rateLimit(expireTimeMs: number): void;
23
+ isRateLimited(): boolean;
24
+ startStalledCheckTimer(): Promise<void>;
25
+ delay(milliseconds?: number, abortController?: AbortController): Promise<void>;
26
+ }