bunqueue-client 0.1.9 → 0.2.0

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 (580) hide show
  1. package/CHANGELOG.md +150 -0
  2. package/LEGACY.md +460 -0
  3. package/README.md +204 -349
  4. package/dist/ack-batcher.js +7 -67
  5. package/dist/canonical-manifest.json +930 -0
  6. package/dist/chunk-b967v3w3.js +79 -0
  7. package/dist/chunk-fekm0ma6.js +110 -0
  8. package/dist/chunk-jxkszwqp.js +573 -0
  9. package/dist/embedded.js +16418 -0
  10. package/dist/frame.js +14 -57
  11. package/dist/index.d.ts +1 -27
  12. package/dist/index.js +10905 -16
  13. package/dist/legacy.d.ts +1 -0
  14. package/dist/legacy.js +2081 -0
  15. package/dist/{ack-batcher.d.ts → types/sdk/typescript/src/ack-batcher.d.ts} +3 -3
  16. package/dist/{bunqueue → types/sdk/typescript/src/bunqueue}/aging.d.ts +2 -2
  17. package/dist/{bunqueue → types/sdk/typescript/src/bunqueue}/batch.d.ts +2 -2
  18. package/dist/{bunqueue → types/sdk/typescript/src/bunqueue}/bunqueue-api.d.ts +5 -5
  19. package/dist/{bunqueue → types/sdk/typescript/src/bunqueue}/bunqueue.d.ts +13 -13
  20. package/dist/{bunqueue → types/sdk/typescript/src/bunqueue}/circuit-breaker.d.ts +2 -2
  21. package/dist/{bunqueue → types/sdk/typescript/src/bunqueue}/dedup-debounce.d.ts +2 -2
  22. package/dist/{bunqueue → types/sdk/typescript/src/bunqueue}/dlq-rate-limit.d.ts +2 -2
  23. package/dist/{bunqueue → types/sdk/typescript/src/bunqueue}/rate-gate.d.ts +1 -1
  24. package/dist/{bunqueue → types/sdk/typescript/src/bunqueue}/retry.d.ts +1 -1
  25. package/dist/{bunqueue → types/sdk/typescript/src/bunqueue}/triggers.d.ts +3 -3
  26. package/dist/{bunqueue → types/sdk/typescript/src/bunqueue}/ttl.d.ts +1 -1
  27. package/dist/{bunqueue → types/sdk/typescript/src/bunqueue}/types.d.ts +4 -4
  28. package/dist/types/sdk/typescript/src/canonical-transport/bun-sqlite-types.d.ts +21 -0
  29. package/dist/{connection-pool.d.ts → types/sdk/typescript/src/connection-pool.d.ts} +1 -1
  30. package/dist/{connection-types.d.ts → types/sdk/typescript/src/connection-types.d.ts} +1 -1
  31. package/dist/{connection.d.ts → types/sdk/typescript/src/connection.d.ts} +6 -19
  32. package/dist/{errors.d.ts → types/sdk/typescript/src/errors.d.ts} +3 -0
  33. package/dist/types/sdk/typescript/src/flow-commit.d.ts +5 -0
  34. package/dist/types/sdk/typescript/src/flow-plan-legacy.d.ts +13 -0
  35. package/dist/types/sdk/typescript/src/flow-plan.d.ts +29 -0
  36. package/dist/{flow-types.d.ts → types/sdk/typescript/src/flow-types.d.ts} +7 -4
  37. package/dist/{flow.d.ts → types/sdk/typescript/src/flow.d.ts} +6 -10
  38. package/dist/{frame.d.ts → types/sdk/typescript/src/frame.d.ts} +1 -1
  39. package/dist/types/sdk/typescript/src/index.d.ts +10 -0
  40. package/dist/{job.d.ts → types/sdk/typescript/src/job.d.ts} +4 -3
  41. package/dist/types/sdk/typescript/src/legacy.d.ts +27 -0
  42. package/dist/{observability.d.ts → types/sdk/typescript/src/observability.d.ts} +14 -0
  43. package/dist/{queue-admin.d.ts → types/sdk/typescript/src/queue-admin.d.ts} +3 -4
  44. package/dist/{queue-control.d.ts → types/sdk/typescript/src/queue-control.d.ts} +5 -5
  45. package/dist/{queue-query.d.ts → types/sdk/typescript/src/queue-query.d.ts} +3 -3
  46. package/dist/{queue.d.ts → types/sdk/typescript/src/queue.d.ts} +8 -8
  47. package/dist/{responses.d.ts → types/sdk/typescript/src/responses.d.ts} +2 -2
  48. package/dist/types/sdk/typescript/src/serialization.d.ts +10 -0
  49. package/dist/{socket-factory.d.ts → types/sdk/typescript/src/socket-factory.d.ts} +1 -1
  50. package/dist/types/sdk/typescript/src/terminal-outcome.d.ts +8 -0
  51. package/dist/{types.d.ts → types/sdk/typescript/src/types.d.ts} +5 -2
  52. package/dist/{worker-base.d.ts → types/sdk/typescript/src/worker-base.d.ts} +6 -6
  53. package/dist/types/sdk/typescript/src/worker-slot-signal.d.ts +6 -0
  54. package/dist/{worker-types.d.ts → types/sdk/typescript/src/worker-types.d.ts} +3 -3
  55. package/dist/{worker.d.ts → types/sdk/typescript/src/worker.d.ts} +3 -2
  56. package/dist/types/src/application/background/dlq.d.ts +2 -0
  57. package/dist/types/src/application/background/lifecycle.d.ts +4 -0
  58. package/dist/types/src/application/background/recovery/active.d.ts +5 -0
  59. package/dist/types/src/application/background/recovery/index.d.ts +2 -0
  60. package/dist/types/src/application/background/recovery/pending.d.ts +3 -0
  61. package/dist/types/src/application/background/recovery/restore.d.ts +5 -0
  62. package/dist/types/src/application/background/recovery/shared.d.ts +6 -0
  63. package/dist/types/src/application/background/timeouts.d.ts +25 -0
  64. package/dist/types/src/application/backgroundTasks.d.ts +7 -0
  65. package/dist/types/src/application/cleanupTasks.d.ts +10 -0
  66. package/dist/types/src/application/clientTracking.d.ts +44 -0
  67. package/dist/types/src/application/completedCleanup.d.ts +34 -0
  68. package/dist/types/src/application/completedRetry.d.ts +21 -0
  69. package/dist/types/src/application/contextFactory.d.ts +49 -0
  70. package/dist/types/src/application/dependencyCompletions.d.ts +63 -0
  71. package/dist/types/src/application/dependencyProcessor.d.ts +15 -0
  72. package/dist/types/src/application/dependencyResultTracker.d.ts +18 -0
  73. package/dist/types/src/application/dlqManager.d.ts +49 -0
  74. package/dist/types/src/application/dlqRetry.d.ts +12 -0
  75. package/dist/types/src/application/emptyQueueCleanup.d.ts +3 -0
  76. package/dist/types/src/application/eventsManager.d.ts +50 -0
  77. package/dist/types/src/application/flowFailureRecovery.d.ts +20 -0
  78. package/dist/types/src/application/flowParentBackpatch.d.ts +27 -0
  79. package/dist/types/src/application/jobLogsManager.d.ts +21 -0
  80. package/dist/types/src/application/latencyTracker.d.ts +39 -0
  81. package/dist/types/src/application/lockManager.d.ts +15 -0
  82. package/dist/types/src/application/lockOperations.d.ts +38 -0
  83. package/dist/types/src/application/metricsExporter.d.ts +27 -0
  84. package/dist/types/src/application/monitoringChecks.d.ts +36 -0
  85. package/dist/types/src/application/operations/ack/batch.d.ts +8 -0
  86. package/dist/types/src/application/operations/ack/completion.d.ts +3 -0
  87. package/dist/types/src/application/operations/ack/failure.d.ts +3 -0
  88. package/dist/types/src/application/operations/ack.d.ts +5 -0
  89. package/dist/types/src/application/operations/ackHelpers.d.ts +36 -0
  90. package/dist/types/src/application/operations/customId.d.ts +51 -0
  91. package/dist/types/src/application/operations/flowPush.d.ts +9 -0
  92. package/dist/types/src/application/operations/flowTopologyValidation.d.ts +3 -0
  93. package/dist/types/src/application/operations/flowValidation.d.ts +3 -0
  94. package/dist/types/src/application/operations/jobClaim.d.ts +17 -0
  95. package/dist/types/src/application/operations/jobManagement.d.ts +43 -0
  96. package/dist/types/src/application/operations/jobMoveOperations.d.ts +9 -0
  97. package/dist/types/src/application/operations/jobPromotion.d.ts +7 -0
  98. package/dist/types/src/application/operations/jobStateTransitions.d.ts +15 -0
  99. package/dist/types/src/application/operations/parentLink.d.ts +36 -0
  100. package/dist/types/src/application/operations/parentLinkInput.d.ts +8 -0
  101. package/dist/types/src/application/operations/pull.d.ts +20 -0
  102. package/dist/types/src/application/operations/pullFinalization.d.ts +6 -0
  103. package/dist/types/src/application/operations/pullStateTransition.d.ts +51 -0
  104. package/dist/types/src/application/operations/push.d.ts +13 -0
  105. package/dist/types/src/application/operations/pushAdmission.d.ts +36 -0
  106. package/dist/types/src/application/operations/pushBatch.d.ts +4 -0
  107. package/dist/types/src/application/operations/pushContext.d.ts +48 -0
  108. package/dist/types/src/application/operations/pushDeduplication.d.ts +42 -0
  109. package/dist/types/src/application/operations/pushInsert.d.ts +39 -0
  110. package/dist/types/src/application/operations/pushLocks.d.ts +15 -0
  111. package/dist/types/src/application/operations/query/collect.d.ts +12 -0
  112. package/dist/types/src/application/operations/query/jobLookup.d.ts +9 -0
  113. package/dist/types/src/application/operations/query/pagination.d.ts +8 -0
  114. package/dist/types/src/application/operations/query/state.d.ts +4 -0
  115. package/dist/types/src/application/operations/queryOperations.d.ts +5 -0
  116. package/dist/types/src/application/operations/queueControl.d.ts +50 -0
  117. package/dist/types/src/application/prometheusOperationalMetrics.d.ts +31 -0
  118. package/dist/types/src/application/queue-manager/ack.d.ts +23 -0
  119. package/dist/types/src/application/queue-manager/configuration.d.ts +27 -0
  120. package/dist/types/src/application/queue-manager/context.d.ts +5 -0
  121. package/dist/types/src/application/queue-manager/control.d.ts +20 -0
  122. package/dist/types/src/application/queue-manager/delivery.d.ts +33 -0
  123. package/dist/types/src/application/queue-manager/dependencies.d.ts +8 -0
  124. package/dist/types/src/application/queue-manager/dependency-runtime.d.ts +8 -0
  125. package/dist/types/src/application/queue-manager/flow-failures.d.ts +18 -0
  126. package/dist/types/src/application/queue-manager/flow-options.d.ts +8 -0
  127. package/dist/types/src/application/queue-manager/job-management.d.ts +17 -0
  128. package/dist/types/src/application/queue-manager/lifecycle.d.ts +4 -0
  129. package/dist/types/src/application/queue-manager/limits.d.ts +58 -0
  130. package/dist/types/src/application/queue-manager/locks.d.ts +21 -0
  131. package/dist/types/src/application/queue-manager/observability.d.ts +16 -0
  132. package/dist/types/src/application/queue-manager/queries.d.ts +24 -0
  133. package/dist/types/src/application/queue-manager/repeat.d.ts +4 -0
  134. package/dist/types/src/application/queue-manager/services.d.ts +19 -0
  135. package/dist/types/src/application/queue-manager/state.d.ts +96 -0
  136. package/dist/types/src/application/queue-manager/stats.d.ts +28 -0
  137. package/dist/types/src/application/queueManager.d.ts +5 -0
  138. package/dist/types/src/application/queueStatsAggregator.d.ts +23 -0
  139. package/dist/types/src/application/queueTelemetryJournal.d.ts +24 -0
  140. package/dist/types/src/application/repeatJobs.d.ts +7 -0
  141. package/dist/types/src/application/stallDetection.d.ts +10 -0
  142. package/dist/types/src/application/statsManager.d.ts +59 -0
  143. package/dist/types/src/application/taskErrorTracking.d.ts +22 -0
  144. package/dist/types/src/application/throughputTracker.d.ts +34 -0
  145. package/dist/types/src/application/types/ack.d.ts +136 -0
  146. package/dist/types/src/application/types/background.d.ts +18 -0
  147. package/dist/types/src/application/types/config.d.ts +41 -0
  148. package/dist/types/src/application/types/contextFactory.d.ts +87 -0
  149. package/dist/types/src/application/types/contexts.d.ts +114 -0
  150. package/dist/types/src/application/types/index.d.ts +7 -0
  151. package/dist/types/src/application/types/query.d.ts +23 -0
  152. package/dist/types/src/application/types/queueManager.d.ts +98 -0
  153. package/dist/types/src/application/webhookManager.d.ts +47 -0
  154. package/dist/types/src/application/workerManager.d.ts +61 -0
  155. package/dist/types/src/client/bunqueue/aging.d.ts +16 -0
  156. package/dist/types/src/client/bunqueue/batch.d.ts +16 -0
  157. package/dist/types/src/client/bunqueue/cancellation.d.ts +21 -0
  158. package/dist/types/src/client/bunqueue/circuitBreaker.d.ts +21 -0
  159. package/dist/types/src/client/bunqueue/dedupDebounce.d.ts +12 -0
  160. package/dist/types/src/client/bunqueue/dlqRateLimit.d.ts +26 -0
  161. package/dist/types/src/client/bunqueue/retry.d.ts +8 -0
  162. package/dist/types/src/client/bunqueue/runtime.d.ts +35 -0
  163. package/dist/types/src/client/bunqueue/triggers.d.ts +17 -0
  164. package/dist/types/src/client/bunqueue/ttl.d.ts +17 -0
  165. package/dist/types/src/client/bunqueue/types.d.ts +147 -0
  166. package/dist/types/src/client/bunqueue.d.ts +73 -0
  167. package/dist/types/src/client/dlqConversion.d.ts +5 -0
  168. package/dist/types/src/client/errors.d.ts +24 -0
  169. package/dist/types/src/client/events.d.ts +85 -0
  170. package/dist/types/src/client/flow.d.ts +70 -0
  171. package/dist/types/src/client/flowAtomic.d.ts +9 -0
  172. package/dist/types/src/client/flowJobCoreMethods.d.ts +28 -0
  173. package/dist/types/src/client/flowJobDependencies.d.ts +7 -0
  174. package/dist/types/src/client/flowJobFactory.d.ts +24 -0
  175. package/dist/types/src/client/flowJobMoveMethods.d.ts +16 -0
  176. package/dist/types/src/client/flowJobTypes.d.ts +29 -0
  177. package/dist/types/src/client/flowLegacyPlan.d.ts +16 -0
  178. package/dist/types/src/client/flowOptions.d.ts +10 -0
  179. package/dist/types/src/client/flowPlan.d.ts +16 -0
  180. package/dist/types/src/client/flowPush.d.ts +27 -0
  181. package/dist/types/src/client/flowReader.d.ts +10 -0
  182. package/dist/types/src/client/flowResults.d.ts +11 -0
  183. package/dist/types/src/client/flowTypes.d.ts +77 -0
  184. package/dist/types/src/client/forwarder.d.ts +74 -0
  185. package/dist/types/src/client/groupId.d.ts +1 -0
  186. package/dist/types/src/client/index.d.ts +46 -0
  187. package/dist/types/src/client/jobConversion.d.ts +10 -0
  188. package/dist/types/src/client/jobConversionHelpers.d.ts +28 -0
  189. package/dist/types/src/client/jobConversionTypes.d.ts +88 -0
  190. package/dist/types/src/client/jobDeduplication.d.ts +6 -0
  191. package/dist/types/src/client/jobHelpers.d.ts +31 -0
  192. package/dist/types/src/client/legacyConnectionOptions.d.ts +8 -0
  193. package/dist/types/src/client/manager.d.ts +15 -0
  194. package/dist/types/src/client/pro.d.ts +9 -0
  195. package/dist/types/src/client/queue/addBatcher.d.ts +59 -0
  196. package/dist/types/src/client/queue/bullmqCompat.d.ts +57 -0
  197. package/dist/types/src/client/queue/deduplication.d.ts +14 -0
  198. package/dist/types/src/client/queue/dlq.d.ts +61 -0
  199. package/dist/types/src/client/queue/dlqJobMethods.d.ts +9 -0
  200. package/dist/types/src/client/queue/dlqOps.d.ts +26 -0
  201. package/dist/types/src/client/queue/dlqStats.d.ts +3 -0
  202. package/dist/types/src/client/queue/failWire.d.ts +17 -0
  203. package/dist/types/src/client/queue/helpers.d.ts +19 -0
  204. package/dist/types/src/client/queue/job-proxy/dependencies.d.ts +9 -0
  205. package/dist/types/src/client/queue/job-proxy/reflection.d.ts +2 -0
  206. package/dist/types/src/client/queue/job-proxy/simple.d.ts +3 -0
  207. package/dist/types/src/client/queue/job-proxy/tcp.d.ts +4 -0
  208. package/dist/types/src/client/queue/jobMetadata.d.ts +10 -0
  209. package/dist/types/src/client/queue/jobMove.d.ts +32 -0
  210. package/dist/types/src/client/queue/jobProxy.d.ts +4 -0
  211. package/dist/types/src/client/queue/operations/add/bulk.d.ts +7 -0
  212. package/dist/types/src/client/queue/operations/add/payload.d.ts +25 -0
  213. package/dist/types/src/client/queue/operations/add/single.d.ts +3 -0
  214. package/dist/types/src/client/queue/operations/add.d.ts +2 -0
  215. package/dist/types/src/client/queue/operations/control.d.ts +42 -0
  216. package/dist/types/src/client/queue/operations/counts.d.ts +48 -0
  217. package/dist/types/src/client/queue/operations/groups.d.ts +24 -0
  218. package/dist/types/src/client/queue/operations/management.d.ts +51 -0
  219. package/dist/types/src/client/queue/operations/query.d.ts +50 -0
  220. package/dist/types/src/client/queue/operations/queryStates.d.ts +13 -0
  221. package/dist/types/src/client/queue/operations/queryTcpPages.d.ts +14 -0
  222. package/dist/types/src/client/queue/queue.d.ts +12 -0
  223. package/dist/types/src/client/queue/rateLimit.d.ts +46 -0
  224. package/dist/types/src/client/queue/runtime/compatibility.d.ts +13 -0
  225. package/dist/types/src/client/queue/runtime/configuration.d.ts +46 -0
  226. package/dist/types/src/client/queue/runtime/connection.d.ts +6 -0
  227. package/dist/types/src/client/queue/runtime/control.d.ts +41 -0
  228. package/dist/types/src/client/queue/runtime/queries.d.ts +66 -0
  229. package/dist/types/src/client/queue/runtime/scheduling.d.ts +33 -0
  230. package/dist/types/src/client/queue/runtime/state.d.ts +101 -0
  231. package/dist/types/src/client/queue/scheduler.d.ts +58 -0
  232. package/dist/types/src/client/queue/schedulerPagination.d.ts +7 -0
  233. package/dist/types/src/client/queue/stall.d.ts +20 -0
  234. package/dist/types/src/client/queue/types/add.d.ts +40 -0
  235. package/dist/types/src/client/queue/types/contexts.d.ts +33 -0
  236. package/dist/types/src/client/queue/types/index.d.ts +3 -0
  237. package/dist/types/src/client/queue/types/job.d.ts +50 -0
  238. package/dist/types/src/client/queue/types/runtime.d.ts +35 -0
  239. package/dist/types/src/client/queue/workers.d.ts +36 -0
  240. package/dist/types/src/client/queue-events/tcpSubscription.d.ts +23 -0
  241. package/dist/types/src/client/queue.d.ts +5 -0
  242. package/dist/types/src/client/queueGroup.d.ts +51 -0
  243. package/dist/types/src/client/resolveToken.d.ts +10 -0
  244. package/dist/types/src/client/sandboxed/index.d.ts +7 -0
  245. package/dist/types/src/client/sandboxed/queueOps.d.ts +24 -0
  246. package/dist/types/src/client/sandboxed/runtime/dispatch.d.ts +13 -0
  247. package/dist/types/src/client/sandboxed/runtime/lifecycle.d.ts +20 -0
  248. package/dist/types/src/client/sandboxed/runtime/log.d.ts +1 -0
  249. package/dist/types/src/client/sandboxed/runtime/pool.d.ts +11 -0
  250. package/dist/types/src/client/sandboxed/runtime/recovery.d.ts +11 -0
  251. package/dist/types/src/client/sandboxed/runtime/state.d.ts +39 -0
  252. package/dist/types/src/client/sandboxed/types/index.d.ts +2 -0
  253. package/dist/types/src/client/sandboxed/types/options.d.ts +27 -0
  254. package/dist/types/src/client/sandboxed/types/process.d.ts +39 -0
  255. package/dist/types/src/client/sandboxed/worker.d.ts +4 -0
  256. package/dist/types/src/client/sandboxed/wrapper.d.ts +12 -0
  257. package/dist/types/src/client/sandboxedWorker.d.ts +6 -0
  258. package/dist/types/src/client/tcp/client.d.ts +6 -0
  259. package/dist/types/src/client/tcp/commandQueue.d.ts +23 -0
  260. package/dist/types/src/client/tcp/connection.d.ts +4 -0
  261. package/dist/types/src/client/tcp/errors.d.ts +6 -0
  262. package/dist/types/src/client/tcp/health.d.ts +60 -0
  263. package/dist/types/src/client/tcp/index.d.ts +11 -0
  264. package/dist/types/src/client/tcp/reconnect.d.ts +47 -0
  265. package/dist/types/src/client/tcp/runtime/commands.d.ts +9 -0
  266. package/dist/types/src/client/tcp/runtime/connectivity.d.ts +13 -0
  267. package/dist/types/src/client/tcp/runtime/health.d.ts +14 -0
  268. package/dist/types/src/client/tcp/runtime/lifecycle.d.ts +8 -0
  269. package/dist/types/src/client/tcp/runtime/state.d.ts +50 -0
  270. package/dist/types/src/client/tcp/shared.d.ts +12 -0
  271. package/dist/types/src/client/tcp/transport.d.ts +18 -0
  272. package/dist/types/src/client/tcp/types/command.d.ts +9 -0
  273. package/dist/types/src/client/tcp/types/connection.d.ts +31 -0
  274. package/dist/types/src/client/tcp/types/index.d.ts +5 -0
  275. package/dist/types/src/client/tcp/types/socket.d.ts +8 -0
  276. package/dist/types/src/client/tcp/types/tls.d.ts +4 -0
  277. package/dist/types/src/client/tcp/types.d.ts +2 -0
  278. package/dist/types/src/client/tcpClient.d.ts +6 -0
  279. package/dist/types/src/client/tcpPool.d.ts +69 -0
  280. package/dist/types/src/client/types/connection.d.ts +30 -0
  281. package/dist/types/src/client/types/dlq.d.ts +45 -0
  282. package/dist/types/src/client/types/events.d.ts +54 -0
  283. package/dist/types/src/client/types/flow.d.ts +22 -0
  284. package/dist/types/src/client/types/index.d.ts +10 -0
  285. package/dist/types/src/client/types/job.d.ts +131 -0
  286. package/dist/types/src/client/types/metrics.d.ts +1 -0
  287. package/dist/types/src/client/types/options.d.ts +70 -0
  288. package/dist/types/src/client/types/worker.d.ts +54 -0
  289. package/dist/types/src/client/types.d.ts +2 -0
  290. package/dist/types/src/client/worker/ackBatcher.d.ts +55 -0
  291. package/dist/types/src/client/worker/ackFrontier.d.ts +21 -0
  292. package/dist/types/src/client/worker/ackOutcome.d.ts +8 -0
  293. package/dist/types/src/client/worker/batchExecution.d.ts +14 -0
  294. package/dist/types/src/client/worker/constants.d.ts +7 -0
  295. package/dist/types/src/client/worker/groupConcurrency.d.ts +49 -0
  296. package/dist/types/src/client/worker/handlers/completion.d.ts +29 -0
  297. package/dist/types/src/client/worker/handlers/dependencies.d.ts +11 -0
  298. package/dist/types/src/client/worker/handlers/mutations.d.ts +23 -0
  299. package/dist/types/src/client/worker/handlers/queries.d.ts +15 -0
  300. package/dist/types/src/client/worker/jobParser.d.ts +9 -0
  301. package/dist/types/src/client/worker/processor.d.ts +11 -0
  302. package/dist/types/src/client/worker/processorHandlers.d.ts +4 -0
  303. package/dist/types/src/client/worker/processorOutcome.d.ts +14 -0
  304. package/dist/types/src/client/worker/processorResult.d.ts +2 -0
  305. package/dist/types/src/client/worker/runtime/buffer.d.ts +8 -0
  306. package/dist/types/src/client/worker/runtime/control.d.ts +28 -0
  307. package/dist/types/src/client/worker/runtime/execution.d.ts +16 -0
  308. package/dist/types/src/client/worker/runtime/lifecycle.d.ts +7 -0
  309. package/dist/types/src/client/worker/runtime/manual.d.ts +10 -0
  310. package/dist/types/src/client/worker/runtime/options.d.ts +5 -0
  311. package/dist/types/src/client/worker/runtime/polling.d.ts +14 -0
  312. package/dist/types/src/client/worker/runtime/state.d.ts +121 -0
  313. package/dist/types/src/client/worker/types/index.d.ts +5 -0
  314. package/dist/types/src/client/worker/types/manual.d.ts +7 -0
  315. package/dist/types/src/client/worker/types/options.d.ts +26 -0
  316. package/dist/types/src/client/worker/types/outcome.d.ts +23 -0
  317. package/dist/types/src/client/worker/types/processor.d.ts +25 -0
  318. package/dist/types/src/client/worker/types/transport.d.ts +11 -0
  319. package/dist/types/src/client/worker/worker.d.ts +6 -0
  320. package/dist/types/src/client/worker/workerHeartbeat.d.ts +15 -0
  321. package/dist/types/src/client/worker/workerPull.d.ts +24 -0
  322. package/dist/types/src/client/worker/workerRateLimiter.d.ts +51 -0
  323. package/dist/types/src/client/worker.d.ts +6 -0
  324. package/dist/types/src/client/workflow/admission.d.ts +45 -0
  325. package/dist/types/src/client/workflow/clock.d.ts +60 -0
  326. package/dist/types/src/client/workflow/compensationChild.d.ts +33 -0
  327. package/dist/types/src/client/workflow/compensationClaim.d.ts +11 -0
  328. package/dist/types/src/client/workflow/compensationPass.d.ts +17 -0
  329. package/dist/types/src/client/workflow/compensationSupport.d.ts +24 -0
  330. package/dist/types/src/client/workflow/compensator.d.ts +34 -0
  331. package/dist/types/src/client/workflow/definitionGuard.d.ts +11 -0
  332. package/dist/types/src/client/workflow/emitter.d.ts +17 -0
  333. package/dist/types/src/client/workflow/engine.d.ts +66 -0
  334. package/dist/types/src/client/workflow/eventTypes.d.ts +44 -0
  335. package/dist/types/src/client/workflow/executionFence.d.ts +15 -0
  336. package/dist/types/src/client/workflow/executionTypes.d.ts +133 -0
  337. package/dist/types/src/client/workflow/executor.d.ts +52 -0
  338. package/dist/types/src/client/workflow/executorLifecycle.d.ts +19 -0
  339. package/dist/types/src/client/workflow/executorNodes.d.ts +18 -0
  340. package/dist/types/src/client/workflow/executorQueue.d.ts +9 -0
  341. package/dist/types/src/client/workflow/forEachRunner.d.ts +4 -0
  342. package/dist/types/src/client/workflow/identity.d.ts +48 -0
  343. package/dist/types/src/client/workflow/index.d.ts +23 -0
  344. package/dist/types/src/client/workflow/loops.d.ts +11 -0
  345. package/dist/types/src/client/workflow/mapRunner.d.ts +4 -0
  346. package/dist/types/src/client/workflow/recovery.d.ts +32 -0
  347. package/dist/types/src/client/workflow/rollbackControl.d.ts +37 -0
  348. package/dist/types/src/client/workflow/runner.d.ts +23 -0
  349. package/dist/types/src/client/workflow/runnerTiming.d.ts +14 -0
  350. package/dist/types/src/client/workflow/stepTypes.d.ts +171 -0
  351. package/dist/types/src/client/workflow/store.d.ts +83 -0
  352. package/dist/types/src/client/workflow/storeCodec.d.ts +7 -0
  353. package/dist/types/src/client/workflow/storeExecutionCodec.d.ts +11 -0
  354. package/dist/types/src/client/workflow/storeListing.d.ts +11 -0
  355. package/dist/types/src/client/workflow/storeMaintenance.d.ts +4 -0
  356. package/dist/types/src/client/workflow/storeSignals.d.ts +70 -0
  357. package/dist/types/src/client/workflow/subWorkflowRunner.d.ts +14 -0
  358. package/dist/types/src/client/workflow/types.d.ts +4 -0
  359. package/dist/types/src/client/workflow/unwindPlan.d.ts +87 -0
  360. package/dist/types/src/client/workflow/waitFor.d.ts +56 -0
  361. package/dist/types/src/client/workflow/workflow.d.ts +70 -0
  362. package/dist/types/src/client/workflow/workflowDecisions.d.ts +11 -0
  363. package/dist/types/src/client/workflow/workflowDefinition.d.ts +16 -0
  364. package/dist/types/src/client/workflow/workflowIntrospection.d.ts +5 -0
  365. package/dist/types/src/client/workflow/workflowValidation.d.ts +44 -0
  366. package/dist/types/src/config/index.d.ts +9 -0
  367. package/dist/types/src/config/loader.d.ts +7 -0
  368. package/dist/types/src/config/resolve.d.ts +59 -0
  369. package/dist/types/src/config/types.d.ts +88 -0
  370. package/dist/types/src/domain/job/constants.d.ts +12 -0
  371. package/dist/types/src/domain/job/create.d.ts +2 -0
  372. package/dist/types/src/domain/job/groupFifoOrder.d.ts +9 -0
  373. package/dist/types/src/domain/job/ids.d.ts +7 -0
  374. package/dist/types/src/domain/job/locks.d.ts +4 -0
  375. package/dist/types/src/domain/job/payload.d.ts +18 -0
  376. package/dist/types/src/domain/job/state.d.ts +8 -0
  377. package/dist/types/src/domain/job/terminal.d.ts +3 -0
  378. package/dist/types/src/domain/queue/dependencyTracker.d.ts +78 -0
  379. package/dist/types/src/domain/queue/dlqShard.d.ts +66 -0
  380. package/dist/types/src/domain/queue/groupLimiterManager.d.ts +30 -0
  381. package/dist/types/src/domain/queue/groupScheduler.d.ts +31 -0
  382. package/dist/types/src/domain/queue/groupSchedulerOrder.d.ts +6 -0
  383. package/dist/types/src/domain/queue/limiterManager.d.ts +68 -0
  384. package/dist/types/src/domain/queue/priorityQueue.d.ts +54 -0
  385. package/dist/types/src/domain/queue/priorityQueueOrder.d.ts +3 -0
  386. package/dist/types/src/domain/queue/shard/dependencies.d.ts +11 -0
  387. package/dist/types/src/domain/queue/shard/dlq.d.ts +26 -0
  388. package/dist/types/src/domain/queue/shard/keys.d.ts +19 -0
  389. package/dist/types/src/domain/queue/shard/lifecycle.d.ts +10 -0
  390. package/dist/types/src/domain/queue/shard/limits.d.ts +47 -0
  391. package/dist/types/src/domain/queue/shard/metrics.d.ts +32 -0
  392. package/dist/types/src/domain/queue/shard/state.d.ts +40 -0
  393. package/dist/types/src/domain/queue/shard.d.ts +7 -0
  394. package/dist/types/src/domain/queue/shardCounters.d.ts +35 -0
  395. package/dist/types/src/domain/queue/temporalIndex.d.ts +24 -0
  396. package/dist/types/src/domain/queue/temporalManager.d.ts +72 -0
  397. package/dist/types/src/domain/queue/uniqueKeyManager.d.ts +33 -0
  398. package/dist/types/src/domain/queue/waiterManager.d.ts +18 -0
  399. package/dist/types/src/domain/response/builders.d.ts +15 -0
  400. package/dist/types/src/domain/types/command.d.ts +2 -0
  401. package/dist/types/src/domain/types/commands/base.d.ts +5 -0
  402. package/dist/types/src/domain/types/commands/core.d.ts +110 -0
  403. package/dist/types/src/domain/types/commands/cron.d.ts +36 -0
  404. package/dist/types/src/domain/types/commands/dashboard.d.ts +13 -0
  405. package/dist/types/src/domain/types/commands/dlq.d.ts +44 -0
  406. package/dist/types/src/domain/types/commands/extended.d.ts +63 -0
  407. package/dist/types/src/domain/types/commands/index.d.ts +12 -0
  408. package/dist/types/src/domain/types/commands/limits.d.ts +108 -0
  409. package/dist/types/src/domain/types/commands/management.d.ts +73 -0
  410. package/dist/types/src/domain/types/commands/monitoring.d.ts +49 -0
  411. package/dist/types/src/domain/types/commands/protocol.d.ts +20 -0
  412. package/dist/types/src/domain/types/commands/query.d.ts +46 -0
  413. package/dist/types/src/domain/types/commands/union.d.ts +13 -0
  414. package/dist/types/src/domain/types/commands/workers.d.ts +39 -0
  415. package/dist/types/src/domain/types/cron.d.ts +91 -0
  416. package/dist/types/src/domain/types/deduplication.d.ts +43 -0
  417. package/dist/types/src/domain/types/dlq.d.ts +136 -0
  418. package/dist/types/src/domain/types/flow.d.ts +25 -0
  419. package/dist/types/src/domain/types/group.d.ts +26 -0
  420. package/dist/types/src/domain/types/job.d.ts +8 -0
  421. package/dist/types/src/domain/types/jobs/model.d.ts +153 -0
  422. package/dist/types/src/domain/types/metrics.d.ts +16 -0
  423. package/dist/types/src/domain/types/priorityQueue.d.ts +13 -0
  424. package/dist/types/src/domain/types/protocol.d.ts +5 -0
  425. package/dist/types/src/domain/types/queue.d.ts +110 -0
  426. package/dist/types/src/domain/types/response.d.ts +3 -0
  427. package/dist/types/src/domain/types/responses/model.d.ts +152 -0
  428. package/dist/types/src/domain/types/shard.d.ts +4 -0
  429. package/dist/types/src/domain/types/stall.d.ts +48 -0
  430. package/dist/types/src/domain/types/webhook.d.ts +42 -0
  431. package/dist/types/src/domain/types/worker.d.ts +40 -0
  432. package/dist/types/src/infrastructure/backup/backupTelemetry.d.ts +30 -0
  433. package/dist/types/src/infrastructure/backup/s3BackupConfig.d.ts +80 -0
  434. package/dist/types/src/infrastructure/cloud/types/config.d.ts +18 -0
  435. package/dist/types/src/infrastructure/cloud/types/event.d.ts +14 -0
  436. package/dist/types/src/infrastructure/cloud/types/snapshot.d.ts +52 -0
  437. package/dist/types/src/infrastructure/cloud/types/snapshotCore.d.ts +125 -0
  438. package/dist/types/src/infrastructure/cloud/types/snapshotJobs.d.ts +124 -0
  439. package/dist/types/src/infrastructure/cloud/types/snapshotTelemetry.d.ts +100 -0
  440. package/dist/types/src/infrastructure/cloud/types.d.ts +3 -0
  441. package/dist/types/src/infrastructure/persistence/batchInsert.d.ts +13 -0
  442. package/dist/types/src/infrastructure/persistence/completedJobCountSchema.d.ts +6 -0
  443. package/dist/types/src/infrastructure/persistence/dependencyCompletionSchema.d.ts +6 -0
  444. package/dist/types/src/infrastructure/persistence/dependencyCompletionStore.d.ts +40 -0
  445. package/dist/types/src/infrastructure/persistence/index.d.ts +5 -0
  446. package/dist/types/src/infrastructure/persistence/jobOptionsBlob.d.ts +19 -0
  447. package/dist/types/src/infrastructure/persistence/legacyNameMigration.d.ts +17 -0
  448. package/dist/types/src/infrastructure/persistence/migrationProgressSchema.d.ts +2 -0
  449. package/dist/types/src/infrastructure/persistence/migrations.d.ts +3 -0
  450. package/dist/types/src/infrastructure/persistence/schema.d.ts +8 -0
  451. package/dist/types/src/infrastructure/persistence/sqlite/admission.d.ts +9 -0
  452. package/dist/types/src/infrastructure/persistence/sqlite/completed.d.ts +17 -0
  453. package/dist/types/src/infrastructure/persistence/sqlite/control.d.ts +48 -0
  454. package/dist/types/src/infrastructure/persistence/sqlite/flows.d.ts +26 -0
  455. package/dist/types/src/infrastructure/persistence/sqlite/jobLifecycle.d.ts +17 -0
  456. package/dist/types/src/infrastructure/persistence/sqlite/jobs.d.ts +15 -0
  457. package/dist/types/src/infrastructure/persistence/sqlite/lifecycle.d.ts +6 -0
  458. package/dist/types/src/infrastructure/persistence/sqlite/mutations.d.ts +27 -0
  459. package/dist/types/src/infrastructure/persistence/sqlite/queries.d.ts +23 -0
  460. package/dist/types/src/infrastructure/persistence/sqlite/queueDeletionSql.d.ts +3 -0
  461. package/dist/types/src/infrastructure/persistence/sqlite/records.d.ts +24 -0
  462. package/dist/types/src/infrastructure/persistence/sqlite/state.d.ts +42 -0
  463. package/dist/types/src/infrastructure/persistence/sqlite/telemetry.d.ts +17 -0
  464. package/dist/types/src/infrastructure/persistence/sqlite/telemetryStore.d.ts +30 -0
  465. package/dist/types/src/infrastructure/persistence/sqlite/telemetryWrites.d.ts +47 -0
  466. package/dist/types/src/infrastructure/persistence/sqlite.d.ts +6 -0
  467. package/dist/types/src/infrastructure/persistence/sqliteBatch.d.ts +4 -0
  468. package/dist/types/src/infrastructure/persistence/sqliteMigration.d.ts +5 -0
  469. package/dist/types/src/infrastructure/persistence/sqliteSerializer.d.ts +50 -0
  470. package/dist/types/src/infrastructure/persistence/statements.d.ts +86 -0
  471. package/dist/types/src/infrastructure/persistence/types/admission.d.ts +8 -0
  472. package/dist/types/src/infrastructure/persistence/types/batch.d.ts +12 -0
  473. package/dist/types/src/infrastructure/persistence/types/sqlite.d.ts +27 -0
  474. package/dist/types/src/infrastructure/persistence/writeBuffer.d.ts +48 -0
  475. package/dist/types/src/infrastructure/persistence/writeBufferPending.d.ts +11 -0
  476. package/dist/types/src/infrastructure/scheduler/cron/execution.d.ts +12 -0
  477. package/dist/types/src/infrastructure/scheduler/cron/persisted.d.ts +5 -0
  478. package/dist/types/src/infrastructure/scheduler/cron/runtime.d.ts +31 -0
  479. package/dist/types/src/infrastructure/scheduler/cron/validation.d.ts +3 -0
  480. package/dist/types/src/infrastructure/scheduler/cronParser.d.ts +45 -0
  481. package/dist/types/src/infrastructure/scheduler/cronScheduler.d.ts +5 -0
  482. package/dist/types/src/infrastructure/scheduler/types/cronScheduler.d.ts +16 -0
  483. package/dist/types/src/infrastructure/server/protocol/commands.d.ts +8 -0
  484. package/dist/types/src/infrastructure/server/protocol/frameParser.d.ts +16 -0
  485. package/dist/types/src/infrastructure/server/protocol/lineBuffer.d.ts +6 -0
  486. package/dist/types/src/infrastructure/server/protocol/validation.d.ts +10 -0
  487. package/dist/types/src/infrastructure/server/protocol.d.ts +6 -0
  488. package/dist/types/src/infrastructure/server/socketWriteQueue.d.ts +66 -0
  489. package/dist/types/src/infrastructure/server/types/protocol.d.ts +4 -0
  490. package/dist/types/src/require-bun.d.ts +13 -0
  491. package/dist/types/src/shared/asyncLock.d.ts +13 -0
  492. package/dist/types/src/shared/boundedMap.d.ts +30 -0
  493. package/dist/types/src/shared/boundedSet.d.ts +26 -0
  494. package/dist/types/src/shared/hash.d.ts +30 -0
  495. package/dist/types/src/shared/histogram.d.ts +23 -0
  496. package/dist/types/src/shared/lock.d.ts +13 -0
  497. package/dist/types/src/shared/lockError.d.ts +3 -0
  498. package/dist/types/src/shared/lockTimeout.d.ts +2 -0
  499. package/dist/types/src/shared/logger.d.ts +48 -0
  500. package/dist/types/src/shared/lru.d.ts +9 -0
  501. package/dist/types/src/shared/lruMap.d.ts +42 -0
  502. package/dist/types/src/shared/lruSet.d.ts +36 -0
  503. package/dist/types/src/shared/minHeap.d.ts +43 -0
  504. package/dist/types/src/shared/msgpack.d.ts +3 -0
  505. package/dist/types/src/shared/pausedView.d.ts +19 -0
  506. package/dist/types/src/shared/rwLock.d.ts +22 -0
  507. package/dist/types/src/shared/serialization.d.ts +24 -0
  508. package/dist/types/src/shared/skipList.d.ts +97 -0
  509. package/dist/types/src/shared/skipListNodes.d.ts +6 -0
  510. package/dist/types/src/shared/storageHealth.d.ts +9 -0
  511. package/dist/types/src/shared/ttlMap.d.ts +81 -0
  512. package/dist/types/src/shared/types/lock.d.ts +7 -0
  513. package/dist/types/src/shared/types/skipList.d.ts +4 -0
  514. package/dist/types/src/shared/version.d.ts +4 -0
  515. package/dist/types/src/shared/webhookValidation.d.ts +6 -0
  516. package/package.json +27 -9
  517. package/src/ack-batcher.ts +8 -5
  518. package/src/bunqueue/bunqueue-api.ts +1 -1
  519. package/src/bunqueue/bunqueue.ts +2 -1
  520. package/src/canonical-transport/bun-sqlite-types.ts +22 -0
  521. package/src/canonical-transport/dlq.ts +12 -0
  522. package/src/canonical-transport/embedded.ts +55 -0
  523. package/src/canonical-transport/runtime.ts +49 -0
  524. package/src/canonical-transport/thread-worker.ts +83 -0
  525. package/src/canonical-transport/transport.ts +153 -0
  526. package/src/connection.ts +25 -30
  527. package/src/errors.ts +3 -0
  528. package/src/flow-commit.ts +45 -0
  529. package/src/flow-plan-legacy.ts +117 -0
  530. package/src/flow-plan.ts +209 -0
  531. package/src/flow-types.ts +4 -0
  532. package/src/flow.ts +31 -163
  533. package/src/frame.ts +5 -2
  534. package/src/index.ts +7 -75
  535. package/src/job.ts +43 -9
  536. package/src/legacy.ts +91 -0
  537. package/src/observability.ts +59 -1
  538. package/src/queue-admin.ts +5 -5
  539. package/src/queue-control.ts +8 -6
  540. package/src/queue.ts +10 -6
  541. package/src/serialization.ts +93 -0
  542. package/src/terminal-outcome.ts +58 -0
  543. package/src/types.ts +3 -6
  544. package/src/worker-base.ts +9 -6
  545. package/src/worker-slot-signal.ts +23 -0
  546. package/src/worker.ts +11 -5
  547. package/dist/backpressure.js +0 -39
  548. package/dist/bunqueue/aging.js +0 -53
  549. package/dist/bunqueue/batch.js +0 -60
  550. package/dist/bunqueue/bunqueue-api.js +0 -116
  551. package/dist/bunqueue/bunqueue.js +0 -194
  552. package/dist/bunqueue/cancellation.js +0 -48
  553. package/dist/bunqueue/circuit-breaker.js +0 -69
  554. package/dist/bunqueue/dedup-debounce.js +0 -37
  555. package/dist/bunqueue/dlq-rate-limit.js +0 -65
  556. package/dist/bunqueue/rate-gate.js +0 -61
  557. package/dist/bunqueue/retry.js +0 -56
  558. package/dist/bunqueue/triggers.js +0 -42
  559. package/dist/bunqueue/ttl.js +0 -31
  560. package/dist/bunqueue/types.js +0 -6
  561. package/dist/connection-pool.js +0 -60
  562. package/dist/connection-types.js +0 -2
  563. package/dist/connection.js +0 -281
  564. package/dist/errors.js +0 -25
  565. package/dist/flow-types.js +0 -2
  566. package/dist/flow.js +0 -212
  567. package/dist/job.js +0 -155
  568. package/dist/observability.js +0 -110
  569. package/dist/queue-admin.js +0 -158
  570. package/dist/queue-control.js +0 -107
  571. package/dist/queue-query.js +0 -187
  572. package/dist/queue.js +0 -92
  573. package/dist/responses.js +0 -10
  574. package/dist/socket-factory.js +0 -47
  575. package/dist/types.js +0 -50
  576. package/dist/worker-base.js +0 -159
  577. package/dist/worker-types.js +0 -5
  578. package/dist/worker.js +0 -211
  579. /package/dist/{backpressure.d.ts → types/sdk/typescript/src/backpressure.d.ts} +0 -0
  580. /package/dist/{bunqueue → types/sdk/typescript/src/bunqueue}/cancellation.d.ts +0 -0
@@ -0,0 +1,39 @@
1
+ /**
2
+ * Latency Tracker
3
+ * Centralized latency tracking for all operations
4
+ */
5
+ import { Histogram } from "../shared/histogram.js";
6
+ /** Operation latency histograms */
7
+ export declare class LatencyTracker {
8
+ readonly push: Histogram;
9
+ readonly pull: Histogram;
10
+ readonly ack: Histogram;
11
+ /** Generate Prometheus output for all histograms */
12
+ toPrometheus(): string;
13
+ /** Get average latencies */
14
+ getAverages(): {
15
+ pushMs: number;
16
+ pullMs: number;
17
+ ackMs: number;
18
+ };
19
+ /** Get percentiles for all operations */
20
+ getPercentiles(): {
21
+ push: {
22
+ p50: number;
23
+ p95: number;
24
+ p99: number;
25
+ };
26
+ pull: {
27
+ p50: number;
28
+ p95: number;
29
+ p99: number;
30
+ };
31
+ ack: {
32
+ p50: number;
33
+ p95: number;
34
+ p99: number;
35
+ };
36
+ };
37
+ }
38
+ /** Global singleton */
39
+ export declare const latencyTracker: LatencyTracker;
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Lock Manager - Job lock and client tracking
3
+ * Handles BullMQ-style lock-based job ownership
4
+ */
5
+ import type { LockContext } from "./types/index.js";
6
+ export { createLock, verifyLock, renewJobLock, renewJobLockBatch, releaseLock, getLockInfo, } from "./lockOperations.js";
7
+ export { registerClientJob, unregisterClientJob, releaseClientJobs, forceReleaseClientJobs, } from "./clientTracking.js";
8
+ /**
9
+ * Check and handle expired locks.
10
+ * Jobs with expired locks are requeued for retry.
11
+ *
12
+ * Uses proper locking to prevent race conditions.
13
+ * Lock hierarchy: shards[N] -> processingShards[N] (per CLAUDE.md)
14
+ */
15
+ export declare function checkExpiredLocks(ctx: LockContext): Promise<void>;
@@ -0,0 +1,38 @@
1
+ /**
2
+ * Lock Operations - Job lock creation, verification, renewal
3
+ */
4
+ import type { JobId, JobLock, LockToken } from "../domain/types/job.js";
5
+ import type { LockContext } from "./types/index.js";
6
+ /**
7
+ * Create a lock for a job when it's pulled for processing.
8
+ * @returns The lock token, or null if job not in processing
9
+ */
10
+ export declare function createLock(jobId: JobId, owner: string, ctx: LockContext, ttl?: number): LockToken | null;
11
+ /**
12
+ * Verify that a token is valid for a job.
13
+ * @returns true if token matches the active lock
14
+ */
15
+ export declare function verifyLock(jobId: JobId, token: string, ctx: LockContext): boolean;
16
+ /**
17
+ * Renew a lock with the given token.
18
+ * @returns true if renewal succeeded, false if token invalid or lock expired
19
+ */
20
+ export declare function renewJobLock(jobId: JobId, token: string, ctx: LockContext, newTtl?: number): boolean;
21
+ /**
22
+ * Renew locks for multiple jobs (batch operation).
23
+ * @returns Array of jobIds that were successfully renewed
24
+ */
25
+ export declare function renewJobLockBatch(items: Array<{
26
+ id: JobId;
27
+ token: string;
28
+ ttl?: number;
29
+ }>, ctx: LockContext): string[];
30
+ /**
31
+ * Release a lock when job is completed or failed.
32
+ * Should be called by ACK/FAIL operations.
33
+ */
34
+ export declare function releaseLock(jobId: JobId, ctx: LockContext, token?: string): boolean;
35
+ /**
36
+ * Get lock info for a job (for debugging/monitoring).
37
+ */
38
+ export declare function getLockInfo(jobId: JobId, ctx: LockContext): JobLock | null;
@@ -0,0 +1,27 @@
1
+ /**
2
+ * Metrics Exporter
3
+ * Prometheus metrics generation
4
+ */
5
+ import type { WorkerManager } from "./workerManager.js";
6
+ import type { WebhookManager } from "./webhookManager.js";
7
+ import type { PerQueueStats } from "./statsManager.js";
8
+ import { type SystemMetrics } from "./prometheusOperationalMetrics.js";
9
+ export type { OperationalMetrics, SystemMetrics } from "./prometheusOperationalMetrics.js";
10
+ /** Stats data structure */
11
+ export interface QueueStats {
12
+ waiting: number;
13
+ prioritized: number;
14
+ delayed: number;
15
+ active: number;
16
+ dlq: number;
17
+ completed: number;
18
+ totalPushed: bigint;
19
+ totalPulled: bigint;
20
+ totalCompleted: bigint;
21
+ totalFailed: bigint;
22
+ uptime: number;
23
+ cronJobs: number;
24
+ cronPending: number;
25
+ }
26
+ /** Generate Prometheus metrics */
27
+ export declare function generatePrometheusMetrics(stats: QueueStats, workerManager: WorkerManager, webhookManager: WebhookManager, perQueueStats?: Map<string, PerQueueStats>, systemMetrics?: SystemMetrics): string;
@@ -0,0 +1,36 @@
1
+ /**
2
+ * Monitoring Checks - Periodic threshold/state monitoring
3
+ * Emits dashboard events for queue:idle, queue:threshold,
4
+ * worker:overloaded, storage:size-warning, server:memory-warning
5
+ */
6
+ import type { WorkerManager } from "./workerManager.js";
7
+ import type { Shard } from "../domain/queue/shard.js";
8
+ /** Monitoring state — tracked across intervals */
9
+ export interface MonitoringState {
10
+ /** queue → timestamp when it became idle */
11
+ queueIdleSince: Map<string, number>;
12
+ /** queues that already emitted threshold warning */
13
+ queueThresholdEmitted: Set<string>;
14
+ /** workerId → timestamp when became overloaded */
15
+ workerOverloadedSince: Map<string, number>;
16
+ /** Whether storage warning was already emitted */
17
+ storageWarningEmitted: boolean;
18
+ /** Whether memory warning was already emitted */
19
+ memoryWarningEmitted: boolean;
20
+ }
21
+ export declare function createMonitoringState(): MonitoringState;
22
+ export interface MonitoringContext {
23
+ queueNamesCache: Set<string>;
24
+ shards: Shard[];
25
+ processingShards: Map<unknown, {
26
+ queue: string;
27
+ }>[];
28
+ workerManager: WorkerManager;
29
+ storage: {
30
+ getSize(): number;
31
+ } | null;
32
+ dashboardEmit?: (event: string, data: Record<string, unknown>) => void;
33
+ state: MonitoringState;
34
+ }
35
+ /** Check all monitoring conditions — called from cleanup interval (10s) */
36
+ export declare function runMonitoringChecks(ctx: MonitoringContext): void;
@@ -0,0 +1,8 @@
1
+ import type { JobId } from "../../../domain/types/job.js";
2
+ import type { AckContext, CompletionOptions } from "../../types/ack.js";
3
+ export declare function ackJobBatch(jobIds: JobId[], ctx: AckContext, leaseTokens?: Array<string | undefined>): Promise<boolean[]>;
4
+ export declare function ackJobBatchWithResults(items: Array<{
5
+ id: JobId;
6
+ result: unknown;
7
+ token?: string;
8
+ } & CompletionOptions>, ctx: AckContext): Promise<boolean[]>;
@@ -0,0 +1,3 @@
1
+ import { type JobId } from "../../../domain/types/job.js";
2
+ import type { AckContext, CompletionOptions } from "../../types/ack.js";
3
+ export declare function ackJob(jobId: JobId, result: unknown, ctx: AckContext, options?: CompletionOptions): Promise<boolean>;
@@ -0,0 +1,3 @@
1
+ import { type JobId } from "../../../domain/types/job.js";
2
+ import type { AckContext, FailJobOptions } from "../../types/ack.js";
3
+ export declare function failJob(jobId: JobId, error: string | undefined, ctx: AckContext, options?: FailJobOptions): Promise<void>;
@@ -0,0 +1,5 @@
1
+ /** Stable acknowledgement-operation import surface. */
2
+ export { ackJobBatch, ackJobBatchWithResults } from "./ack/batch.js";
3
+ export { ackJob } from "./ack/completion.js";
4
+ export { failJob } from "./ack/failure.js";
5
+ export type { AckContext } from "../types/ack.js";
@@ -0,0 +1,36 @@
1
+ /** Shared batch acknowledgement utilities. */
2
+ import type { Job, JobId } from "../../domain/types/job.js";
3
+ import type { BatchContext, ExtractedJob, FinalizeContext } from "../types/ack.js";
4
+ export type { BatchContext, ExtractedJob, FinalizeContext } from "../types/ack.js";
5
+ /** Group job IDs by processing shard. */
6
+ export declare function groupByProcShard(jobIds: JobId[]): Map<number, JobId[]>;
7
+ /**
8
+ * Group items by processing shard (with results)
9
+ */
10
+ export declare function groupItemsByProcShard<T extends {
11
+ id: JobId;
12
+ }>(items: T[]): Map<number, T[]>;
13
+ /**
14
+ * Extract jobs from processing shards (one lock per shard)
15
+ */
16
+ export declare function extractJobs(byProcShard: Map<number, JobId[]>, ctx: BatchContext): Promise<ExtractedJob[]>;
17
+ /**
18
+ * Extract jobs with results from processing shards
19
+ */
20
+ export declare function extractJobsWithResults<T>(byProcShard: Map<number, Array<{
21
+ id: JobId;
22
+ result: T;
23
+ removeOnComplete?: boolean;
24
+ }>>, ctx: BatchContext): Promise<Array<ExtractedJob<T>>>;
25
+ /**
26
+ * Group extracted jobs by queue shard
27
+ */
28
+ export declare function groupByQueueShard(extractedJobs: ExtractedJob[]): Map<number, Job[]>;
29
+ /**
30
+ * Release resources for each queue shard (one lock per shard)
31
+ */
32
+ export declare function releaseResources(byQueueShard: Map<number, Job[]>, ctx: BatchContext): Promise<void>;
33
+ /**
34
+ * Finalize batch ack - update indexes, metrics, broadcast, notify
35
+ */
36
+ export declare function finalizeBatchAck<T>(extractedJobs: Array<ExtractedJob<T>>, ctx: FinalizeContext, includeResults: boolean): void;
@@ -0,0 +1,51 @@
1
+ import type { Shard } from "../../domain/queue/shard.js";
2
+ import { type Job, type JobId, type JobInput } from "../../domain/types/job.js";
3
+ import type { JobLocation } from "../../domain/types/queue.js";
4
+ import type { JobLogEntry } from "../../domain/types/worker.js";
5
+ import type { SqliteStorage } from "../../infrastructure/persistence/sqlite.js";
6
+ import type { MapLike, SetLike } from "../../shared/lru.js";
7
+ import type { DependencyCompletionTracker } from "../dependencyCompletions.js";
8
+ import type { RetiredTimeoutGeneration } from "../types/background.js";
9
+ export interface CustomIdContext {
10
+ storage: SqliteStorage | null;
11
+ shards: Shard[];
12
+ completedJobs: SetLike<JobId>;
13
+ completedJobsData: MapLike<JobId, Job>;
14
+ depCompletions?: DependencyCompletionTracker;
15
+ maxDependencyCompletions: number;
16
+ timedOutJobs?: MapLike<JobId, RetiredTimeoutGeneration>;
17
+ retiredTimeoutLeaseTokens?: MapLike<string, RetiredTimeoutGeneration>;
18
+ retiredCronLeaseTokens?: MapLike<JobId, string>;
19
+ jobResults: MapLike<JobId, unknown>;
20
+ jobResultQueues: Map<JobId, string>;
21
+ jobLogs: MapLike<JobId, JobLogEntry[]>;
22
+ jobLogQueues: Map<JobId, string>;
23
+ customIdMap: MapLike<string, JobId>;
24
+ jobIndex: Map<JobId, JobLocation>;
25
+ }
26
+ export type CustomIdResult = {
27
+ skip: true;
28
+ existingJob: Job;
29
+ } | {
30
+ skip: true;
31
+ existingId: JobId;
32
+ } | {
33
+ skip: false;
34
+ id: JobId;
35
+ retirement?: CustomIdRetirement;
36
+ };
37
+ export interface CustomIdRetirement {
38
+ readonly completed: boolean;
39
+ readonly dlqQueue?: string;
40
+ readonly dependencyCompletion: boolean;
41
+ }
42
+ /**
43
+ * Inspect custom-ID idempotency while the caller holds the target shard lock.
44
+ * Terminal retirement is deliberately deferred until persistence commits, so
45
+ * a rejected durable generation cannot destroy the previous one.
46
+ */
47
+ export declare function handleCustomId(input: JobInput, ctx: CustomIdContext, lockedShardIndexes: ReadonlySet<number>): CustomIdResult;
48
+ /** Publish custom-ID ownership after the matching storage admission succeeds. */
49
+ export declare function commitCustomIdAdmission(input: JobInput, decision: Exclude<CustomIdResult, {
50
+ skip: true;
51
+ }>, ctx: CustomIdContext): void;
@@ -0,0 +1,9 @@
1
+ import type { AtomicFlowBatchInput, AtomicFlowBatchResult } from "../../domain/types/flow.js";
2
+ import { type PushContext } from "./pushContext.js";
3
+ /**
4
+ * Commit a complete flow graph as one broker-side operation.
5
+ *
6
+ * SQLite is committed before the graph is published in memory. Workers acquire
7
+ * the same shard locks, so the first visible leaf always observes every edge.
8
+ */
9
+ export declare function pushFlowBatch(batch: AtomicFlowBatchInput, ctx: PushContext): Promise<AtomicFlowBatchResult>;
@@ -0,0 +1,3 @@
1
+ import type { AtomicFlowBatchInput } from "../../domain/types/flow.js";
2
+ /** Validate references, symmetric parent edges, metadata, and acyclicity in O(V+E). */
3
+ export declare function validateFlowTopology(batch: AtomicFlowBatchInput, dataById: ReadonlyMap<string, Record<string, unknown>>): void;
@@ -0,0 +1,3 @@
1
+ import type { AtomicFlowBatchInput } from "../../domain/types/flow.js";
2
+ /** Validate the whole graph before any lock, storage write, or queue mutation. */
3
+ export declare function validateAtomicFlowBatch(batch: AtomicFlowBatchInput): void;
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Cleanup shared ownership state when a management operation claims an active
3
+ * job before its worker can ACK or FAIL it.
4
+ */
5
+ import type { JobId, JobLock } from "../../domain/types/job.js";
6
+ export interface JobClaimContext {
7
+ jobLocks: Map<JobId, JobLock>;
8
+ clientJobs: Map<string, Set<JobId>>;
9
+ }
10
+ /**
11
+ * Release the live lease and detach the job from its TCP client owner.
12
+ *
13
+ * Map/Set deletion is intentionally idempotent: management commands can race
14
+ * with disconnect cleanup, but ownership must be removed exactly once from the
15
+ * observable state.
16
+ */
17
+ export declare function releaseClaimedJobOwnership(jobId: JobId, ctx: JobClaimContext): void;
@@ -0,0 +1,43 @@
1
+ /**
2
+ * Job Management Operations
3
+ * Cancel, update progress, change priority, promote, move to delayed, discard
4
+ */
5
+ import type { Job, JobId, JobLock } from "../../domain/types/job.js";
6
+ import { type JobLocation } from "../../domain/types/queue.js";
7
+ import type { Shard } from "../../domain/queue/shard.js";
8
+ import type { SqliteStorage } from "../../infrastructure/persistence/sqlite.js";
9
+ import type { WebhookManager } from "../webhookManager.js";
10
+ import type { EventsManager } from "../eventsManager.js";
11
+ import { type RWLock } from "../../shared/lock.js";
12
+ import type { DependencyResultTracker } from "../dependencyResultTracker.js";
13
+ import { type DependencyCompletionTracker } from "../dependencyCompletions.js";
14
+ export { discardJob, moveJobToDelayed } from "./jobMoveOperations.js";
15
+ /** Context for job management operations */
16
+ export interface JobManagementContext {
17
+ storage: SqliteStorage | null;
18
+ shards: Shard[];
19
+ shardLocks: RWLock[];
20
+ processingShards: Map<JobId, Job>[];
21
+ processingLocks: RWLock[];
22
+ jobIndex: Map<JobId, JobLocation>;
23
+ jobLocks: Map<JobId, JobLock>;
24
+ clientJobs: Map<string, Set<JobId>>;
25
+ webhookManager: WebhookManager;
26
+ eventsManager: EventsManager;
27
+ repeatChain?: Map<JobId, JobId>;
28
+ dependencyResults: DependencyResultTracker;
29
+ customIdMap: {
30
+ get(id: string): JobId | undefined;
31
+ delete(id: string): boolean;
32
+ };
33
+ depCompletions?: DependencyCompletionTracker;
34
+ maxDependencyCompletions: number;
35
+ }
36
+ /** Cancel a job (remove from queue) */
37
+ export declare function cancelJob(jobId: JobId, ctx: JobManagementContext): Promise<boolean>;
38
+ /** Update job progress */
39
+ export declare function updateJobProgress(jobId: JobId, progress: number, ctx: JobManagementContext, message?: string): Promise<boolean>;
40
+ /** Update job data */
41
+ export declare function updateJobData(jobId: JobId, data: unknown, ctx: JobManagementContext): Promise<boolean>;
42
+ /** Change job priority */
43
+ export declare function changeJobPriority(jobId: JobId, priority: number, ctx: JobManagementContext, lifo?: boolean): Promise<boolean>;
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Job move operations that claim active jobs for delayed or DLQ state.
3
+ */
4
+ import type { JobId } from "../../domain/types/job.js";
5
+ import type { JobManagementContext } from "./jobManagement.js";
6
+ /** Move active job back to delayed. */
7
+ export declare function moveJobToDelayed(jobId: JobId, delay: number, ctx: JobManagementContext): Promise<boolean>;
8
+ /** Discard a waiting or active job to the DLQ. */
9
+ export declare function discardJob(jobId: JobId, ctx: JobManagementContext): Promise<boolean>;
@@ -0,0 +1,7 @@
1
+ /** Delayed-job promotion operations shared by embedded and server modes. */
2
+ import type { JobId } from "../../domain/types/job.js";
3
+ import type { JobManagementContext } from "./jobManagement.js";
4
+ /** Promote one delayed job and persist the transition before resolving. */
5
+ export declare function promoteJob(jobId: JobId, ctx: JobManagementContext): Promise<boolean>;
6
+ /** Promote the oldest delayed jobs from the live shard, never an eventual SQL listing. */
7
+ export declare function promoteJobs(queueName: string, count: number | undefined, ctx: JobManagementContext): Promise<number>;
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Job State Transition Operations
3
+ * BullMQ v5 compatible manual state transitions:
4
+ * - moveActiveToWait: Active -> Waiting
5
+ * - changeWaitingDelay: Waiting -> Delayed
6
+ * - moveToWaitingChildren: Active -> WaitingChildren
7
+ */
8
+ import { type JobId } from "../../domain/types/job.js";
9
+ import type { JobManagementContext } from "./jobManagement.js";
10
+ /** Move active job back to waiting */
11
+ export declare function moveActiveToWait(jobId: JobId, ctx: JobManagementContext): Promise<boolean>;
12
+ /** Change delay for a waiting/delayed job in queue */
13
+ export declare function changeWaitingDelay(jobId: JobId, delay: number, ctx: JobManagementContext): Promise<boolean>;
14
+ /** Move active job to waiting-children state */
15
+ export declare function moveToWaitingChildren(jobId: JobId, ctx: JobManagementContext): Promise<boolean>;
@@ -0,0 +1,36 @@
1
+ import { type Job, type JobId, type JobInput } from "../../domain/types/job.js";
2
+ import type { Shard } from "../../domain/queue/shard.js";
3
+ import { type DedupResult } from "./pushDeduplication.js";
4
+ import { type AcceptedCustomId } from "./pushAdmission.js";
5
+ import type { PushContext } from "./pushContext.js";
6
+ type ParentMembership = 'queue' | 'waiting-deps' | 'waiting-children';
7
+ export interface ParentLinkPlan {
8
+ readonly child: Job;
9
+ readonly parent: Job;
10
+ readonly linkedChild: Job;
11
+ readonly linkedParent: Job;
12
+ readonly parentMembership: ParentMembership;
13
+ readonly childFinished: boolean;
14
+ }
15
+ /** Validate every parent before a batch mutates its accepted prefix. */
16
+ export declare function validateParentLinkInputs(inputs: readonly JobInput[], ctx: PushContext): void;
17
+ export declare function prepareParentLink(child: Job, ctx: PushContext, childFinished?: boolean, parentIdOverride?: JobId, now?: number): ParentLinkPlan;
18
+ /** Publish a persisted link while the parent and child queue shards are locked. */
19
+ export declare function commitParentLink(plan: ParentLinkPlan, ctx: PushContext): void;
20
+ export declare function parentLinkState(plan: ParentLinkPlan): 'waiting-children' | 'waiting' | 'prioritized' | 'delayed';
21
+ /** Persist and publish a new child and its existing parent as one locked operation. */
22
+ export declare function acceptParentedJob(options: {
23
+ job: Job;
24
+ input: JobInput;
25
+ target: {
26
+ queue: string;
27
+ shard: Shard;
28
+ shardIdx: number;
29
+ };
30
+ dedup: Exclude<DedupResult, {
31
+ skip: true;
32
+ }>;
33
+ customId: AcceptedCustomId;
34
+ ctx: PushContext;
35
+ }): JobId[];
36
+ export {};
@@ -0,0 +1,8 @@
1
+ import type { JobInput } from "../../domain/types/job.js";
2
+ /**
3
+ * Queue.add parent options carry the parent queue in reserved metadata. A bare
4
+ * parentId remains the legacy flow forward-reference contract and is linked
5
+ * later when the parent declares the edge.
6
+ */
7
+ export declare function parentLinkQueue(input: JobInput): string | null;
8
+ export declare function isParentLinkInput(input: JobInput): boolean;
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Pull Operations
3
+ * Job pull logic with timeout support
4
+ */
5
+ import type { Job } from "../../domain/types/job.js";
6
+ import { type GroupPullOptions } from "../../domain/types/group.js";
7
+ import { type PullContext } from "./pullStateTransition.js";
8
+ export type { PullContext } from "./pullStateTransition.js";
9
+ interface PullRequestOptions {
10
+ signal?: AbortSignal;
11
+ group?: GroupPullOptions;
12
+ }
13
+ /**
14
+ * Pull next job from queue
15
+ */
16
+ export declare function pullJob(queue: string, timeoutMs: number, ctx: PullContext, signal?: AbortSignal, groupOptions?: GroupPullOptions): Promise<Job | null>;
17
+ /**
18
+ * Pull multiple jobs from queue
19
+ */
20
+ export declare function pullJobBatch(queue: string, count: number, timeoutMs: number, ctx: PullContext, options?: PullRequestOptions): Promise<Job[]>;
@@ -0,0 +1,6 @@
1
+ import type { Job } from "../../domain/types/job.js";
2
+ import type { PullContext } from "./pullStateTransition.js";
3
+ /** Persist and publish a single processing handoff. */
4
+ export declare function finalizeProcessing(job: Job, queue: string, ctx: PullContext): boolean;
5
+ /** Persist and publish all processing handoffs with one durable state transaction. */
6
+ export declare function finalizeProcessingBatch(jobs: Job[], queue: string, ctx: PullContext): Job[];
@@ -0,0 +1,51 @@
1
+ /**
2
+ * Atomic queue-state transitions used by single and batch pull orchestration.
3
+ */
4
+ import type { Shard } from "../../domain/queue/shard.js";
5
+ import { type Job, type JobId } from "../../domain/types/job.js";
6
+ import type { GroupPullOptions } from "../../domain/types/group.js";
7
+ import type { EventType, JobEvent, JobLocation } from "../../domain/types/queue.js";
8
+ import type { SqliteStorage } from "../../infrastructure/persistence/sqlite.js";
9
+ import type { RWLock } from "../../shared/lock.js";
10
+ /** Dependencies shared by the single and batch pull paths. */
11
+ export interface PullContext {
12
+ storage: SqliteStorage | null;
13
+ shards: Shard[];
14
+ shardLocks: RWLock[];
15
+ processingShards: Map<JobId, Job>[];
16
+ processingLocks: RWLock[];
17
+ jobIndex: Map<JobId, JobLocation>;
18
+ totalPulled: {
19
+ value: bigint;
20
+ };
21
+ broadcast: (event: {
22
+ eventType: EventType;
23
+ queue: string;
24
+ jobId: JobId;
25
+ timestamp: number;
26
+ }) => void;
27
+ broadcastBatch?: (events: readonly JobEvent[]) => void;
28
+ dashboardEmit?: (event: string, data: Record<string, unknown>) => void;
29
+ }
30
+ export interface DequeueScan {
31
+ parked: Job[];
32
+ nextRunAt: number | null;
33
+ groupOptions?: GroupPullOptions;
34
+ }
35
+ export type DequeueResult = {
36
+ status: 'job';
37
+ job: Job;
38
+ } | {
39
+ status: 'stop';
40
+ };
41
+ export declare function createDequeueScan(groupOptions?: GroupPullOptions): DequeueScan;
42
+ /** Restore physical heap membership without changing logical queue state. */
43
+ export declare function restoreParkedJobs(shard: Shard, queue: string, scan: DequeueScan): void;
44
+ /**
45
+ * Remove the best eligible job from the shard's secondary group indexes.
46
+ * A batch reuses the same fixed timestamp and group defaults while its
47
+ * synchronous shard critical section is held.
48
+ */
49
+ export declare function tryDequeueNextJob(shard: Shard, queue: string, now: number, ctx: PullContext, scan: DequeueScan): DequeueResult;
50
+ /** Restore a dequeued job when its handoff to the worker cannot complete. */
51
+ export declare function requeueJob(job: Job, queue: string, idx: number, ctx: PullContext): Promise<void>;
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Push Operations
3
+ * Single-job push logic and stable batch re-export
4
+ */
5
+ import { type Job, type JobInput } from "../../domain/types/job.js";
6
+ import type { PushContext } from "./pushContext.js";
7
+ export type { PushContext } from "./pushContext.js";
8
+ export { pushJobBatch } from "./pushBatch.js";
9
+ /**
10
+ * Push a single job to queue
11
+ * NOTE: customId check happens INSIDE lock to prevent race conditions
12
+ */
13
+ export declare function pushJob(queue: string, input: JobInput, ctx: PushContext): Promise<Job>;
@@ -0,0 +1,36 @@
1
+ import type { Job, JobInput } from "../../domain/types/job.js";
2
+ import type { Shard } from "../../domain/queue/shard.js";
3
+ import type { DurableAdmissionMetadata } from "../../infrastructure/persistence/sqlite.js";
4
+ import { type CustomIdResult } from "./customId.js";
5
+ import type { PushContext } from "./pushContext.js";
6
+ import { type PreparedJobInsertion } from "./pushInsert.js";
7
+ export type AcceptedCustomId = Exclude<CustomIdResult, {
8
+ skip: true;
9
+ }>;
10
+ export interface PushTarget {
11
+ queue: string;
12
+ shard: Shard;
13
+ shardIdx: number;
14
+ }
15
+ export interface CapturedPushError {
16
+ readonly value: unknown;
17
+ }
18
+ export declare function capturePushError(value: unknown): CapturedPushError;
19
+ interface PublishPreparedJobOptions {
20
+ job: Job;
21
+ input: JobInput;
22
+ target: PushTarget;
23
+ customId: AcceptedCustomId;
24
+ prepared: PreparedJobInsertion;
25
+ ctx: PushContext;
26
+ registerDedupKey?: boolean;
27
+ }
28
+ export declare function admissionMetadata(customId: AcceptedCustomId, prepared: PreparedJobInsertion): DurableAdmissionMetadata | undefined;
29
+ /** Publish only non-throwing RAM ownership after the storage admission commits. */
30
+ export declare function publishPreparedJob(options: PublishPreparedJobOptions): void;
31
+ /** Persist or buffer every storage-backed admission before exposing it in RAM. */
32
+ export declare function acceptStandardJob(job: Job, input: JobInput, target: PushTarget, customId: AcceptedCustomId, ctx: PushContext): {
33
+ storageHandled: boolean;
34
+ };
35
+ export declare function throwPushErrors(errors: Array<CapturedPushError | undefined>, message: string): void;
36
+ export {};
@@ -0,0 +1,4 @@
1
+ import { type JobId, type JobInput } from "../../domain/types/job.js";
2
+ import type { PushContext } from "./pushContext.js";
3
+ /** Push an ordered batch while preserving its accepted-prefix contract. */
4
+ export declare function pushJobBatch(queue: string, inputs: JobInput[], ctx: PushContext): Promise<JobId[]>;
@@ -0,0 +1,48 @@
1
+ import type { Shard } from "../../domain/queue/shard.js";
2
+ import type { Job, JobId } from "../../domain/types/job.js";
3
+ import type { JobLocation } from "../../domain/types/queue.js";
4
+ import type { JobLogEntry } from "../../domain/types/worker.js";
5
+ import { type EventType, type JobEvent } from "../../domain/types/queue.js";
6
+ import type { SqliteStorage } from "../../infrastructure/persistence/sqlite.js";
7
+ import type { RWLock } from "../../shared/lock.js";
8
+ import type { MapLike, SetLike } from "../../shared/lru.js";
9
+ import type { DependencyCompletionTracker } from "../dependencyCompletions.js";
10
+ import type { DependencyResultTracker } from "../dependencyResultTracker.js";
11
+ import type { RetiredTimeoutGeneration } from "../types/background.js";
12
+ /** Shared mutable state required by queue and flow insertion operations. */
13
+ export interface PushContext {
14
+ storage: SqliteStorage | null;
15
+ shards: Shard[];
16
+ shardLocks: RWLock[];
17
+ customIdLock: RWLock;
18
+ completedJobs: SetLike<JobId>;
19
+ completedJobsData: MapLike<JobId, Job>;
20
+ depCompletions?: DependencyCompletionTracker;
21
+ maxDependencyCompletions: number;
22
+ timedOutJobs?: MapLike<JobId, RetiredTimeoutGeneration>;
23
+ retiredTimeoutLeaseTokens?: MapLike<string, RetiredTimeoutGeneration>;
24
+ retiredCronLeaseTokens?: MapLike<JobId, string>;
25
+ jobResults: MapLike<JobId, unknown>;
26
+ jobResultQueues: Map<JobId, string>;
27
+ jobLogs: MapLike<JobId, JobLogEntry[]>;
28
+ jobLogQueues: Map<JobId, string>;
29
+ dependencyResults: DependencyResultTracker;
30
+ customIdMap: MapLike<string, JobId>;
31
+ jobIndex: Map<JobId, JobLocation>;
32
+ pendingQueueAdmissions: Map<string, number>;
33
+ totalPushed: {
34
+ value: bigint;
35
+ };
36
+ broadcast: (event: {
37
+ eventType: EventType;
38
+ queue: string;
39
+ jobId: JobId;
40
+ timestamp: number;
41
+ }) => void;
42
+ broadcastBatch?: (events: readonly JobEvent[]) => void;
43
+ dashboardEmit?: (event: string, data: Record<string, unknown>) => void;
44
+ registerQueueName?: (queue: string) => void;
45
+ onQueueAdmissionsDrained?: (queue: string) => void;
46
+ }
47
+ /** Keep every target queue owned while an asynchronous admission is in flight. */
48
+ export declare function withPendingQueueAdmissions<T>(queues: Iterable<string>, ctx: Pick<PushContext, 'pendingQueueAdmissions' | 'registerQueueName' | 'onQueueAdmissionsDrained'>, operation: () => Promise<T>): Promise<T>;