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
@@ -0,0 +1,63 @@
1
+ import { withReadLock } from '../../../shared/lock';
2
+ function resolveStateFromStorage(jobId, storage) {
3
+ if (!storage)
4
+ return 'unknown';
5
+ if (storage.hasDlqEntry(jobId))
6
+ return "failed" /* JobState.Failed */;
7
+ const persisted = storage.getJobStateRaw(jobId);
8
+ if (persisted === 'completed')
9
+ return "completed" /* JobState.Completed */;
10
+ if (persisted === 'active')
11
+ return "active" /* JobState.Active */;
12
+ if (persisted !== 'waiting' && persisted !== 'delayed')
13
+ return 'unknown';
14
+ const row = storage.getJob(jobId);
15
+ if (!row)
16
+ return 'unknown';
17
+ if (row.runAt > Date.now())
18
+ return "delayed" /* JobState.Delayed */;
19
+ return row.priority > 0 ? "prioritized" /* JobState.Prioritized */ : "waiting" /* JobState.Waiting */;
20
+ }
21
+ export async function getJobState(jobId, ctx) {
22
+ for (let pass = 0; pass < 4; pass++) {
23
+ const location = ctx.jobIndex.get(jobId);
24
+ if (ctx.completedJobs.has(jobId))
25
+ return "completed" /* JobState.Completed */;
26
+ if (!location)
27
+ return resolveStateFromStorage(jobId, ctx.storage);
28
+ switch (location.type) {
29
+ case 'queue': {
30
+ const result = await withReadLock(ctx.shardLocks[location.shardIdx], () => {
31
+ const shard = ctx.shards[location.shardIdx];
32
+ const queueJob = shard.getQueue(location.queueName).find(jobId);
33
+ if (queueJob)
34
+ return { job: queueJob, waitingDeps: false, waitingChildren: false };
35
+ const depsJob = shard.waitingDeps.get(jobId);
36
+ if (depsJob)
37
+ return { job: depsJob, waitingDeps: true, waitingChildren: false };
38
+ const childrenJob = shard.waitingChildren.get(jobId);
39
+ if (childrenJob)
40
+ return { job: childrenJob, waitingDeps: false, waitingChildren: true };
41
+ return null;
42
+ });
43
+ if (!result) {
44
+ if (ctx.jobIndex.get(jobId) === location)
45
+ return 'unknown';
46
+ break;
47
+ }
48
+ if (result.waitingDeps || result.waitingChildren)
49
+ return 'waiting-children';
50
+ if (result.job.runAt > Date.now())
51
+ return "delayed" /* JobState.Delayed */;
52
+ return result.job.priority > 0 ? "prioritized" /* JobState.Prioritized */ : "waiting" /* JobState.Waiting */;
53
+ }
54
+ case 'processing':
55
+ return "active" /* JobState.Active */;
56
+ case 'completed':
57
+ return "completed" /* JobState.Completed */;
58
+ case 'dlq':
59
+ return "failed" /* JobState.Failed */;
60
+ }
61
+ }
62
+ return 'unknown';
63
+ }
@@ -1,50 +1,5 @@
1
- /**
2
- * Query Operations
3
- * Get job, get result, get progress
4
- */
5
- import type { Job, JobId } from '../../domain/types/job';
6
- import { JobState } from '../../domain/types/job';
7
- import type { JobLocation } from '../../domain/types/queue';
8
- import type { Shard } from '../../domain/queue/shard';
9
- import type { SqliteStorage } from '../../infrastructure/persistence/sqlite';
10
- import { type RWLock } from '../../shared/lock';
11
- import type { SetLike, MapLike } from '../../shared/lru';
12
- import type { DependencyResultTracker } from '../dependencyResultTracker';
13
- /** Context for query operations */
14
- export interface QueryContext {
15
- storage: SqliteStorage | null;
16
- shards: Shard[];
17
- shardLocks: RWLock[];
18
- processingShards: Map<JobId, Job>[];
19
- processingLocks: RWLock[];
20
- jobIndex: Map<JobId, JobLocation>;
21
- completedJobs: SetLike<JobId>;
22
- completedJobsData: MapLike<JobId, Job>;
23
- jobResults: MapLike<JobId, unknown>;
24
- dependencyResults: DependencyResultTracker;
25
- customIdMap: MapLike<string, JobId>;
26
- }
27
- /** Get job by ID */
28
- export declare function getJob(jobId: JobId, ctx: QueryContext): Promise<Job | null>;
29
- /** Get job result */
30
- export declare function getJobResult(jobId: JobId, ctx: QueryContext): unknown;
31
- /** Get job by custom ID */
32
- export declare function getJobByCustomId(customId: string, ctx: QueryContext): Job | null;
33
- /** Get job progress */
34
- export declare function getJobProgress(jobId: JobId, ctx: QueryContext): {
35
- progress: number;
36
- message: string | null;
37
- } | null;
38
- /** Extended context for getJobs (needs SHARD_COUNT) */
39
- export interface GetJobsContext extends QueryContext {
40
- shardCount: number;
41
- }
42
- /** Get job state by ID */
43
- export declare function getJobState(jobId: JobId, ctx: QueryContext): Promise<JobState | 'unknown'>;
44
- /** Get jobs from queue with filters */
45
- export declare function getJobs(queue: string, shardIdx: number, options: {
46
- state?: string | string[];
47
- start?: number;
48
- end?: number;
49
- asc?: boolean;
50
- }, ctx: GetJobsContext): Job[];
1
+ /** Stable query-operation import surface. */
2
+ export { getJob, getJobByCustomId, getJobProgress, getJobResult } from './query/jobLookup';
3
+ export { getJobs } from './query/pagination';
4
+ export { getJobState } from './query/state';
5
+ export type { GetJobsContext, QueryContext } from '../types/query';
@@ -1,474 +1,4 @@
1
- /**
2
- * Query Operations
3
- * Get job, get result, get progress
4
- */
5
- import { withReadLock } from '../../shared/lock';
6
- import { shardIndex } from '../../shared/hash';
7
- /** Get job by ID */
8
- export async function getJob(jobId, ctx) {
9
- // The location snapshot is only valid until the first await: while this
10
- // reader waits on the shard read lock (writers have priority), a concurrent
11
- // pull can pop the job and move it queue -> processing. The pull updates
12
- // jobIndex atomically with the pop (tryDequeueNextJob), so on a miss the
13
- // index re-read below is authoritative: an identity change means the job
14
- // MOVED, and we chase the new location instead of returning a false null
15
- // for a job that still exists (getJob(id) === null must be permanent for
16
- // never-reused uuidv7 ids). Bounded: every extra pass requires a further
17
- // state transition of this very job (queue -> active -> completed/removed),
18
- // so 4 passes cover any realistic chase; index entries are always replaced
19
- // (never mutated), which makes the identity comparison exact.
20
- for (let pass = 0; pass < 4; pass++) {
21
- const location = ctx.jobIndex.get(jobId);
22
- if (!location) {
23
- // Fallback: jobIndex may not be populated after restart for completed/DLQ jobs.
24
- // Consult SQLite directly so getJob survives recovery.
25
- if (ctx.storage) {
26
- const job = ctx.storage.getJob(jobId);
27
- if (job)
28
- return job;
29
- const dlqEntry = ctx.storage.getDlqEntry(jobId);
30
- if (dlqEntry)
31
- return dlqEntry.job;
32
- }
33
- return ctx.completedJobsData.get(jobId) ?? null;
34
- }
35
- let found = null;
36
- switch (location.type) {
37
- case 'queue': {
38
- found = await withReadLock(ctx.shardLocks[location.shardIdx], () => {
39
- const shard = ctx.shards[location.shardIdx];
40
- return (shard.getQueue(location.queueName).find(jobId) ??
41
- shard.waitingDeps.get(jobId) ??
42
- shard.waitingChildren.get(jobId) ??
43
- null);
44
- });
45
- break;
46
- }
47
- case 'processing': {
48
- found = await withReadLock(ctx.processingLocks[location.shardIdx], () => {
49
- return ctx.processingShards[location.shardIdx].get(jobId) ?? null;
50
- });
51
- break;
52
- }
53
- case 'completed':
54
- found = ctx.storage?.getJob(jobId) ?? ctx.completedJobsData.get(jobId) ?? null;
55
- break;
56
- case 'dlq': {
57
- if (ctx.storage) {
58
- const dlqEntry = ctx.storage.getDlqEntry(jobId);
59
- if (dlqEntry)
60
- return dlqEntry.job;
61
- const job = ctx.storage.getJob(jobId);
62
- if (job)
63
- return job;
64
- }
65
- const dlqShardIdx = shardIndex(location.queueName);
66
- const dlqJobs = ctx.shards[dlqShardIdx].getDlq(location.queueName);
67
- found = dlqJobs.find((j) => j.id === jobId) ?? null;
68
- break;
69
- }
70
- }
71
- if (found)
72
- return found;
73
- if (ctx.jobIndex.get(jobId) === location)
74
- return null; // no move: genuine miss
75
- // The job moved while we held the stale snapshot: chase it.
76
- }
77
- return null;
78
- }
79
- /** Get job result */
80
- export function getJobResult(jobId, ctx) {
81
- if (ctx.jobResults.has(jobId))
82
- return ctx.jobResults.get(jobId);
83
- if (ctx.dependencyResults.has(jobId))
84
- return ctx.dependencyResults.get(jobId);
85
- return ctx.storage?.getResult(jobId);
86
- }
87
- /** Get job by custom ID */
88
- export function getJobByCustomId(customId, ctx) {
89
- const jobId = ctx.customIdMap.get(customId);
90
- if (!jobId)
91
- return null;
92
- const location = ctx.jobIndex.get(jobId);
93
- if (!location)
94
- return null;
95
- if (location.type === 'queue') {
96
- const shard = ctx.shards[location.shardIdx];
97
- return (shard.getQueue(location.queueName).find(jobId) ??
98
- shard.waitingDeps.get(jobId) ??
99
- shard.waitingChildren.get(jobId) ??
100
- null);
101
- }
102
- if (location.type === 'processing') {
103
- return ctx.processingShards[location.shardIdx].get(jobId) ?? null;
104
- }
105
- if (location.type === 'completed') {
106
- return ctx.storage?.getJob(jobId) ?? ctx.completedJobsData.get(jobId) ?? null;
107
- }
108
- if (location.type === 'dlq') {
109
- if (ctx.storage) {
110
- const job = ctx.storage.getJob(jobId);
111
- if (job)
112
- return job;
113
- }
114
- const dlqShardIdx = shardIndex(location.queueName);
115
- const dlqJobs = ctx.shards[dlqShardIdx].getDlq(location.queueName);
116
- return dlqJobs.find((j) => j.id === jobId) ?? null;
117
- }
118
- return null;
119
- }
120
- /** Get job progress */
121
- export function getJobProgress(jobId, ctx) {
122
- const location = ctx.jobIndex.get(jobId);
123
- if (location?.type !== 'processing')
124
- return null;
125
- const job = ctx.processingShards[location.shardIdx].get(jobId);
126
- if (!job)
127
- return null;
128
- return { progress: job.progress, message: job.progressMessage };
129
- }
130
- /** Stable total order used by both in-memory collection and SQL queries. */
131
- function compareJobsByCreatedAt(a, b, asc) {
132
- if (a.createdAt !== b.createdAt) {
133
- return asc ? a.createdAt - b.createdAt : b.createdAt - a.createdAt;
134
- }
135
- if (a.id === b.id)
136
- return 0;
137
- if (asc)
138
- return a.id < b.id ? -1 : 1;
139
- return a.id > b.id ? -1 : 1;
140
- }
141
- /** Resolve job state from SQLite when jobIndex has no entry (post-restart recovery). */
142
- function resolveStateFromStorage(jobId, storage) {
143
- if (!storage)
144
- return 'unknown';
145
- if (storage.hasDlqEntry(jobId))
146
- return "failed" /* JobState.Failed */;
147
- const persisted = storage.getJobStateRaw(jobId);
148
- if (persisted === 'completed')
149
- return "completed" /* JobState.Completed */;
150
- if (persisted === 'active')
151
- return "active" /* JobState.Active */;
152
- if (persisted !== 'waiting' && persisted !== 'delayed')
153
- return 'unknown';
154
- const row = storage.getJob(jobId);
155
- if (!row)
156
- return 'unknown';
157
- if (row.runAt > Date.now())
158
- return "delayed" /* JobState.Delayed */;
159
- return row.priority > 0 ? "prioritized" /* JobState.Prioritized */ : "waiting" /* JobState.Waiting */;
160
- }
161
- /** Get job state by ID */
162
- export async function getJobState(jobId, ctx) {
163
- // Same stale-snapshot chase as getJob: a 'queue' location read before the
164
- // read-lock await may be outdated by a concurrent pull (queue -> processing)
165
- // by the time the lookup runs. On a miss with a changed index entry, retry
166
- // with the fresh location instead of reporting a false 'unknown'.
167
- for (let pass = 0; pass < 4; pass++) {
168
- const location = ctx.jobIndex.get(jobId);
169
- // Check completed set first (fast path)
170
- if (ctx.completedJobs.has(jobId)) {
171
- return "completed" /* JobState.Completed */;
172
- }
173
- if (!location) {
174
- return resolveStateFromStorage(jobId, ctx.storage);
175
- }
176
- switch (location.type) {
177
- case 'queue': {
178
- // Check if job is delayed, waiting, or waiting for children/deps
179
- const result = await withReadLock(ctx.shardLocks[location.shardIdx], () => {
180
- const shard = ctx.shards[location.shardIdx];
181
- const queueJob = shard.getQueue(location.queueName).find(jobId);
182
- if (queueJob)
183
- return { job: queueJob, waitingDeps: false, waitingChildren: false };
184
- const depsJob = shard.waitingDeps.get(jobId);
185
- if (depsJob)
186
- return { job: depsJob, waitingDeps: true, waitingChildren: false };
187
- const childrenJob = shard.waitingChildren.get(jobId);
188
- if (childrenJob)
189
- return { job: childrenJob, waitingDeps: false, waitingChildren: true };
190
- return null;
191
- });
192
- if (!result) {
193
- if (ctx.jobIndex.get(jobId) === location)
194
- return 'unknown'; // no move
195
- break; // moved mid-lookup: chase the new location
196
- }
197
- if (result.waitingDeps || result.waitingChildren)
198
- return 'waiting-children';
199
- const now = Date.now();
200
- if (result.job.runAt > now)
201
- return "delayed" /* JobState.Delayed */;
202
- return result.job.priority > 0 ? "prioritized" /* JobState.Prioritized */ : "waiting" /* JobState.Waiting */;
203
- }
204
- case 'processing':
205
- return "active" /* JobState.Active */;
206
- case 'completed':
207
- return "completed" /* JobState.Completed */;
208
- case 'dlq':
209
- return "failed" /* JobState.Failed */;
210
- }
211
- }
212
- return 'unknown';
213
- }
214
- /** Collect completed jobs for a queue from index + storage */
215
- function collectCompletedJobs(queue, ctx) {
216
- const jobs = [];
217
- for (const [jId, location] of ctx.jobIndex) {
218
- if (location.type === 'completed' && location.queueName === queue) {
219
- const job = ctx.storage?.getJob(jId) ?? ctx.completedJobsData?.get(jId) ?? null;
220
- if (job) {
221
- jobs.push(job);
222
- }
223
- }
224
- }
225
- return jobs;
226
- }
227
- /** Collect active jobs for a queue across all processing shards */
228
- function collectActiveJobs(queue, shardIdx, ctx) {
229
- const jobs = [];
230
- // Own shard first (most likely location)
231
- for (const job of ctx.processingShards[shardIdx].values()) {
232
- if (job.queue === queue)
233
- jobs.push(job);
234
- }
235
- // Other shards
236
- for (let i = 0; i < ctx.shardCount; i++) {
237
- if (i === shardIdx)
238
- continue;
239
- for (const job of ctx.processingShards[i].values()) {
240
- if (job.queue === queue)
241
- jobs.push(job);
242
- }
243
- }
244
- return jobs;
245
- }
246
- /** Collect waiting/delayed/prioritized jobs in a single pass */
247
- function collectTemporalJobs(shard, queue, needs, now = Date.now()) {
248
- const { waiting: needWaiting, prioritized: needPrioritized, delayed: needDelayed } = needs;
249
- const jobs = [];
250
- for (const j of shard.getQueue(queue).values()) {
251
- const isDelayed = j.runAt > now;
252
- if (isDelayed && needDelayed) {
253
- jobs.push(j);
254
- }
255
- else if (!isDelayed) {
256
- // BullMQ v5: priority>0 → "prioritized", priority=0 → "waiting"
257
- if (j.priority > 0 ? needPrioritized : needWaiting) {
258
- jobs.push(j);
259
- }
260
- }
261
- }
262
- return jobs;
263
- }
264
- /** Collect jobs from in-memory structures by state filter */
265
- function tagState(jobs, state) {
266
- for (const j of jobs)
267
- j._state = state;
268
- return jobs;
269
- }
270
- /** Tag temporal jobs with their actual state based on runAt/priority */
271
- function tagTemporalState(jobs, now = Date.now()) {
272
- for (const j of jobs) {
273
- const isDelayed = j.runAt > now;
274
- j._state = isDelayed
275
- ? 'delayed'
276
- : j.priority > 0
277
- ? 'prioritized'
278
- : 'waiting';
279
- }
280
- }
281
- /** Collect waiting-children jobs from deps and children maps */
282
- function collectWaitingChildrenFromShard(shard, queue) {
283
- const wcJobs = [];
284
- for (const job of shard.waitingDeps.values()) {
285
- if (job.queue === queue)
286
- wcJobs.push(job);
287
- }
288
- for (const job of shard.waitingChildren.values()) {
289
- if (job.queue === queue)
290
- wcJobs.push(job);
291
- }
292
- return wcJobs;
293
- }
294
- /**
295
- * Resolve which sources to collect for a state filter.
296
- *
297
- * When the queue is paused, an EXPLICIT waiting/prioritized query returns nothing:
298
- * those jobs are reported under 'paused' instead (BullMQ semantics, #92). An
299
- * unfiltered query (states === null) still lists them by their temporal state.
300
- */
301
- function resolveStateNeeds(states, paused) {
302
- const want = (s) => !states || states.includes(s);
303
- const suppressReady = !!states && paused;
304
- return {
305
- waiting: want('waiting') && !suppressReady,
306
- prioritized: want('prioritized') && !suppressReady,
307
- delayed: want('delayed'),
308
- paused: !!states && states.includes('paused') && paused,
309
- active: want('active'),
310
- failed: want('failed'),
311
- completed: want('completed'),
312
- waitingChildren: want('waiting-children'),
313
- };
314
- }
315
- /** When paused, the queue's ready jobs (waiting + prioritized) ARE the paused set (#92). */
316
- function collectPausedJobs(shard, queue, now) {
317
- const pausedJobs = collectTemporalJobs(shard, queue, { waiting: true, prioritized: true, delayed: false }, now);
318
- return tagState(pausedJobs, 'paused');
319
- }
320
- function collectJobsByState(queue, shardIdx, states, ctx, now = Date.now()) {
321
- const shard = ctx.shards[shardIdx];
322
- const jobs = [];
323
- const need = resolveStateNeeds(states, shard.getState(queue).paused);
324
- if (need.waiting || need.prioritized || need.delayed) {
325
- const temporal = collectTemporalJobs(shard, queue, { waiting: need.waiting, prioritized: need.prioritized, delayed: need.delayed }, now);
326
- tagTemporalState(temporal, now);
327
- jobs.push(...temporal);
328
- }
329
- if (need.paused) {
330
- jobs.push(...collectPausedJobs(shard, queue, now));
331
- }
332
- if (need.active) {
333
- jobs.push(...tagState(collectActiveJobs(queue, shardIdx, ctx), 'active'));
334
- }
335
- if (need.failed) {
336
- jobs.push(...tagState(shard.getDlq(queue), 'failed'));
337
- }
338
- if (need.completed) {
339
- jobs.push(...tagState(collectCompletedJobs(queue, ctx), 'completed'));
340
- }
341
- if (need.waitingChildren) {
342
- jobs.push(...tagState(collectWaitingChildrenFromShard(shard, queue), 'waiting-children'));
343
- }
344
- return jobs;
345
- }
346
- /** Collect waiting-children jobs from in-memory shard maps */
347
- function collectWaitingChildrenJobs(shard, queue) {
348
- const jobs = [];
349
- for (const job of shard.waitingDeps.values()) {
350
- if (job.queue === queue)
351
- jobs.push(job);
352
- }
353
- for (const job of shard.waitingChildren.values()) {
354
- if (job.queue === queue)
355
- jobs.push(job);
356
- }
357
- return jobs;
358
- }
359
- /** Query SQLite after translating persisted pending rows to their logical state. */
360
- function querySqliteByLogicalState(storage, queue, sqlFilteredStates, opts) {
361
- if (opts.excludedIds.size === 0) {
362
- return storage.queryJobsByLogicalStates(queue, sqlFilteredStates, opts);
363
- }
364
- // Legacy waitingDeps/waitingChildren rows may be persisted as waiting/delayed,
365
- // while current inserts retain waiting-children. Fetch enough rows to account
366
- // for every possible exclusion, then paginate the logical result so parked
367
- // jobs cannot create short or shifted pages.
368
- const pageEnd = opts.offset + opts.limit;
369
- const jobs = storage.queryJobsByLogicalStates(queue, sqlFilteredStates, {
370
- limit: pageEnd + opts.excludedIds.size,
371
- offset: 0,
372
- asc: opts.asc,
373
- now: opts.now,
374
- });
375
- return jobs.filter((job) => !opts.excludedIds.has(job.id)).slice(opts.offset, pageEnd);
376
- }
377
- /** Merge SQL rows with in-memory extras (each gathered from index 0), sort by
378
- * createdAt, and paginate [start, end) once — so offset-unaware extras don't
379
- * duplicate or drop rows across pages (#92). */
380
- function mergePage(sqlJobs, extras, start, end, asc) {
381
- const byId = new Map();
382
- for (const job of sqlJobs)
383
- byId.set(job.id, job);
384
- for (const job of extras)
385
- byId.set(job.id, job);
386
- const merged = Array.from(byId.values());
387
- merged.sort((a, b) => compareJobsByCreatedAt(a, b, asc));
388
- return merged.slice(start, end);
389
- }
390
- /** Get jobs from queue with filters */
391
- export function getJobs(queue, shardIdx, options, ctx) {
392
- const { state, start = 0, end = 100, asc = true } = options;
393
- const states = !state
394
- ? null
395
- : Array.isArray(state)
396
- ? state.length === 0
397
- ? null
398
- : state
399
- : [state];
400
- const limit = end - start;
401
- const now = Date.now();
402
- if (ctx.storage) {
403
- const shard = ctx.shards[shardIdx];
404
- const isPaused = shard.getState(queue).paused;
405
- // Derived sources are NOT offset-aware (the DLQ and the paused/waiting-children
406
- // views come from in-memory maps). When any contributes, we must gather [0, end)
407
- // from EVERY source, merge, sort, then slice [start, end) exactly once — pushing
408
- // `offset` into the SQL query would drop rows and duplicate across pages (#92).
409
- if (!states) {
410
- const dlq = tagState(shard.getDlq(queue), 'failed');
411
- if (dlq.length === 0) {
412
- return ctx.storage.queryJobs(queue, { limit, offset: start, asc });
413
- }
414
- const all = ctx.storage.queryJobs(queue, { limit: end, offset: 0, asc });
415
- return mergePage(all, dlq, start, end, asc);
416
- }
417
- // jobs-table states. A paused queue reports its waiting/prioritized jobs under
418
- // 'paused', so they must not also surface in the waiting/prioritized lists (#92).
419
- const sqlFilteredStates = states.filter((s) => s !== 'failed' &&
420
- s !== 'waiting-children' &&
421
- s !== 'paused' &&
422
- !(isPaused && (s === 'waiting' || s === 'prioritized')));
423
- // In-memory parked state is authoritative over the persisted row. Current
424
- // inserts retain waiting-children; legacy rows may still be waiting/delayed,
425
- // while parents moved after a pull can still be stored as active.
426
- const parkedJobs = states.includes('waiting-children') || sqlFilteredStates.length > 0
427
- ? collectWaitingChildrenJobs(shard, queue)
428
- : [];
429
- const parkedIds = new Set(parkedJobs.map((job) => job.id));
430
- // States with no jobs-table row are collected from in-memory sources:
431
- // - 'failed' -> DLQ (the failed job lives in the dlq table) (#92)
432
- // - 'waiting-children' -> deps/children maps
433
- // - 'paused' -> when paused, the would-be-waiting jobs ARE the paused set (#92)
434
- const extras = [];
435
- if (states.includes('failed')) {
436
- extras.push(...tagState(shard.getDlq(queue), 'failed'));
437
- }
438
- if (states.includes('waiting-children')) {
439
- extras.push(...tagState(parkedJobs, 'waiting-children'));
440
- }
441
- if (states.includes('paused') && isPaused) {
442
- const pausedJobs = collectTemporalJobs(shard, queue, { waiting: true, prioritized: true, delayed: false }, now);
443
- extras.push(...tagState(pausedJobs, 'paused'));
444
- }
445
- // Fast path: only jobs-table states, no derived sources — SQL paginates directly.
446
- if (extras.length === 0) {
447
- return sqlFilteredStates.length > 0
448
- ? querySqliteByLogicalState(ctx.storage, queue, sqlFilteredStates, {
449
- limit,
450
- offset: start,
451
- asc,
452
- now,
453
- excludedIds: parkedIds,
454
- })
455
- : [];
456
- }
457
- const sqlJobs = sqlFilteredStates.length > 0
458
- ? querySqliteByLogicalState(ctx.storage, queue, sqlFilteredStates, {
459
- limit: end,
460
- offset: 0,
461
- asc,
462
- now,
463
- excludedIds: parkedIds,
464
- })
465
- : [];
466
- return mergePage(sqlJobs, extras, start, end, asc);
467
- }
468
- // In-memory path (embedded mode only)
469
- // Every source must be filtered before the global order is applied. Limiting
470
- // an insertion-ordered Map here loses newer rows on descending pages.
471
- const jobs = collectJobsByState(queue, shardIdx, states, ctx, now);
472
- jobs.sort((a, b) => compareJobsByCreatedAt(a, b, asc));
473
- return jobs.slice(start, end);
474
- }
1
+ /** Stable query-operation import surface. */
2
+ export { getJob, getJobByCustomId, getJobProgress, getJobResult } from './query/jobLookup';
3
+ export { getJobs } from './query/pagination';
4
+ export { getJobState } from './query/state';
@@ -0,0 +1,23 @@
1
+ import type { JobId } from '../../domain/types/job';
2
+ import { FailureReason } from '../../domain/types/dlq';
3
+ import type { AckBatchOutcome, AckOutcome, CompletionOptions } from '../types/ack';
4
+ import { QueueManagerDelivery } from './delivery';
5
+ export declare class QueueManagerAck extends QueueManagerDelivery {
6
+ ack(jobId: JobId, result?: unknown, token?: string, options?: CompletionOptions): Promise<AckOutcome>;
7
+ ackBatch(jobIds: JobId[], tokens?: string[]): Promise<AckBatchOutcome>;
8
+ ackBatchWithResults(items: Array<{
9
+ id: JobId;
10
+ result: unknown;
11
+ token?: string;
12
+ } & CompletionOptions>): Promise<AckBatchOutcome>;
13
+ fail(jobId: JobId, error?: string, token?: string, unrecoverable?: boolean, stack?: string[], removeOnFail?: boolean): Promise<AckOutcome>;
14
+ failWithReason(jobId: JobId, error: string | undefined, failureReason: FailureReason): Promise<AckOutcome>;
15
+ private isRetiredTimeoutOutcome;
16
+ private isRetiredOutcome;
17
+ private isQueuedTimeoutGeneration;
18
+ private ignoredOutcome;
19
+ private batchOutcome;
20
+ private missingJobError;
21
+ private retireTimedOutGeneration;
22
+ private failWithOptions;
23
+ }