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,42 @@
1
+ import type { Shard } from "../../domain/queue/shard.js";
2
+ import type { Job, JobId, JobInput } from "../../domain/types/job.js";
3
+ import type { DurableAdmissionMetadata } from "../../infrastructure/persistence/sqlite.js";
4
+ import { type AcceptedCustomId } from "./pushAdmission.js";
5
+ import type { PushContext } from "./push.js";
6
+ type PendingLocation = 'queue' | 'waiting-deps' | 'waiting-children';
7
+ export interface DedupReplacement {
8
+ job: Job;
9
+ location: PendingLocation;
10
+ }
11
+ export interface DedupCommitOptions {
12
+ readonly ctx: PushContext;
13
+ readonly customId: AcceptedCustomId;
14
+ readonly persist?: (admission?: DurableAdmissionMetadata) => void;
15
+ }
16
+ export type DedupResult = {
17
+ skip: true;
18
+ existingId: JobId;
19
+ } | {
20
+ skip: false;
21
+ replacement?: DedupReplacement;
22
+ activeOwnerId?: JobId;
23
+ };
24
+ /** Inspect dedup state while deferring destructive replacement mutations. */
25
+ export declare function handleDeduplication(job: Job, input: JobInput, queue: string, shard: Shard, ctx: PushContext): DedupResult;
26
+ /** Commit the RAM half of a replacement after persistence has succeeded. */
27
+ export declare function commitDedupReplacement(replacement: DedupReplacement, newJob: Job, queue: string, shard: Shard, ctx: PushContext): JobId[];
28
+ /** Defensive cleanup for callers that may have pre-published custom-ID ownership. */
29
+ export declare function rollbackIncomingCustomId(job: Job, ctx: PushContext): void;
30
+ /** Persist, detach, and insert a replacement without exposing a half-transition. */
31
+ export declare function replacePendingDedupJob(replacement: DedupReplacement, newJob: Job, input: JobInput, target: {
32
+ queue: string;
33
+ shard: Shard;
34
+ shardIdx: number;
35
+ }, options: DedupCommitOptions): JobId[];
36
+ /** Persist and publish a successor while leaving its active predecessor live. */
37
+ export declare function replaceActiveDedupJob(activeOwnerId: JobId, newJob: Job, input: JobInput, target: {
38
+ queue: string;
39
+ shard: Shard;
40
+ shardIdx: number;
41
+ }, options: DedupCommitOptions): void;
42
+ export {};
@@ -0,0 +1,39 @@
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 { SetLike } from "../../shared/lru.js";
5
+ import type { MapLike } from "../../shared/lru.js";
6
+ import type { DependencyResultTracker } from "../dependencyResultTracker.js";
7
+ import type { DependencyCompletionTracker } from "../dependencyCompletions.js";
8
+ import type { SqliteStorage } from "../../infrastructure/persistence/sqlite.js";
9
+ export interface PushInsertContext {
10
+ storage: SqliteStorage | null;
11
+ completedJobs: SetLike<JobId>;
12
+ depCompletions?: DependencyCompletionTracker;
13
+ jobResults: MapLike<JobId, unknown>;
14
+ dependencyResults: DependencyResultTracker;
15
+ jobIndex: Map<JobId, JobLocation>;
16
+ dashboardEmit?: (event: string, data: Record<string, unknown>) => void;
17
+ }
18
+ export interface PreparedJobInsertion {
19
+ state: 'waiting-children' | 'delayed' | 'prioritized' | 'waiting';
20
+ completionPins: JobId[];
21
+ }
22
+ /** Emit only after the complete admission is persisted and published. */
23
+ export declare function emitWaitingChildrenAdmission(job: Job, ctx: PushInsertContext): void;
24
+ /** Resolve the first externally visible state without mutating queue structures. */
25
+ export declare function initialJobState(job: Job, ctx: Pick<PushInsertContext, 'completedJobs' | 'depCompletions'>, now?: number): 'waiting-children' | 'delayed' | 'prioritized' | 'waiting';
26
+ /** Complete persistence-sensitive preparation before changing queue membership. */
27
+ export declare function prepareJobInsertion(job: Job, ctx: PushInsertContext, recordTimeline?: boolean, now?: number): PreparedJobInsertion;
28
+ /** Apply only non-throwing in-memory membership changes for a prepared job. */
29
+ export declare function insertPreparedJobToShard(job: Job, target: {
30
+ queue: string;
31
+ shard: Shard;
32
+ shardIdx: number;
33
+ }, ctx: PushInsertContext, prepared: PreparedJobInsertion): void;
34
+ /** Insert a new job into the runnable heap or dependency wait set. */
35
+ export declare function insertJobToShard(job: Job, target: {
36
+ queue: string;
37
+ shard: Shard;
38
+ shardIdx: number;
39
+ }, ctx: PushInsertContext, recordTimeline?: boolean): void;
@@ -0,0 +1,15 @@
1
+ import type { JobId, JobInput } from "../../domain/types/job.js";
2
+ import type { JobLocation } from "../../domain/types/queue.js";
3
+ import type { RWLock } from "../../shared/lock.js";
4
+ interface PushLockContext {
5
+ shardLocks: RWLock[];
6
+ customIdLock: RWLock;
7
+ jobIndex: Map<JobId, JobLocation>;
8
+ }
9
+ /**
10
+ * Lock the target shard plus any shard owning a terminal custom-ID generation.
11
+ * The required set is rechecked after acquisition because jobIndex may change
12
+ * while an earlier lock is awaited.
13
+ */
14
+ export declare function withPushWriteLocks<T>(queue: string, inputs: readonly JobInput[], ctx: PushLockContext, fn: (lockedShardIndexes: ReadonlySet<number>) => T): Promise<T>;
15
+ export {};
@@ -0,0 +1,12 @@
1
+ import type { Shard } from "../../../domain/queue/shard.js";
2
+ import type { Job } from "../../../domain/types/job.js";
3
+ import type { GetJobsContext } from "../../types/query.js";
4
+ export declare function compareJobsByCreatedAt(a: Job, b: Job, asc: boolean): number;
5
+ export declare function collectTemporalJobs(shard: Shard, queue: string, needs: {
6
+ waiting: boolean;
7
+ prioritized: boolean;
8
+ delayed: boolean;
9
+ }, now?: number): Job[];
10
+ export declare function tagState(jobs: Job[], state: string): Job[];
11
+ export declare function collectWaitingChildrenJobs(shard: Shard, queue: string): Job[];
12
+ export declare function collectJobsByState(queue: string, shardIndex: number, states: string[] | null, ctx: GetJobsContext, now?: number): Job[];
@@ -0,0 +1,9 @@
1
+ import type { Job, JobId } from "../../../domain/types/job.js";
2
+ import type { QueryContext } from "../../types/query.js";
3
+ export declare function getJob(jobId: JobId, ctx: QueryContext): Promise<Job | null>;
4
+ export declare function getJobResult(jobId: JobId, ctx: QueryContext): unknown;
5
+ export declare function getJobByCustomId(customId: string, ctx: QueryContext): Job | null;
6
+ export declare function getJobProgress(jobId: JobId, ctx: QueryContext): {
7
+ progress: number;
8
+ message: string | null;
9
+ } | null;
@@ -0,0 +1,8 @@
1
+ import type { Job } from "../../../domain/types/job.js";
2
+ import type { GetJobsContext } from "../../types/query.js";
3
+ export declare function getJobs(queue: string, shardIdx: number, options: {
4
+ state?: string | string[];
5
+ start?: number;
6
+ end?: number;
7
+ asc?: boolean;
8
+ }, ctx: GetJobsContext): Job[];
@@ -0,0 +1,4 @@
1
+ import type { JobId } from "../../../domain/types/job.js";
2
+ import { JobState } from "../../../domain/types/job.js";
3
+ import type { QueryContext } from "../../types/query.js";
4
+ export declare function getJobState(jobId: JobId, ctx: QueryContext): Promise<JobState | 'unknown'>;
@@ -0,0 +1,5 @@
1
+ /** Stable query-operation import surface. */
2
+ export { getJob, getJobByCustomId, getJobProgress, getJobResult } from "./query/jobLookup.js";
3
+ export { getJobs } from "./query/pagination.js";
4
+ export { getJobState } from "./query/state.js";
5
+ export type { GetJobsContext, QueryContext } from "../types/query.js";
@@ -0,0 +1,50 @@
1
+ /**
2
+ * Queue Control Operations
3
+ * Pause, resume, drain, obliterate, clean, list queues
4
+ */
5
+ import type { Job, JobId } from "../../domain/types/job.js";
6
+ import type { Shard } from "../../domain/queue/shard.js";
7
+ import type { SqliteStorage } from "../../infrastructure/persistence/sqlite.js";
8
+ import type { MapLike, SetLike } from "../../shared/lru.js";
9
+ import type { DependencyResultTracker } from "../dependencyResultTracker.js";
10
+ /** Context for queue control operations */
11
+ export interface QueueControlContext {
12
+ shards: Shard[];
13
+ jobIndex: Map<JobId, {
14
+ type: string;
15
+ shardIdx?: number;
16
+ queueName?: string;
17
+ }>;
18
+ processingShards?: Map<JobId, Job>[];
19
+ completedJobs?: SetLike<JobId>;
20
+ completedJobsData?: MapLike<JobId, Job>;
21
+ jobResults?: MapLike<JobId, unknown>;
22
+ jobResultQueues?: Map<JobId, string>;
23
+ jobLogs?: MapLike<JobId, unknown>;
24
+ jobLogQueues?: Map<JobId, string>;
25
+ dependencyResults: DependencyResultTracker;
26
+ storage: SqliteStorage | null;
27
+ }
28
+ /** Pause a queue */
29
+ export declare function pauseQueue(queue: string, ctx: QueueControlContext): void;
30
+ /** Resume a queue */
31
+ export declare function resumeQueue(queue: string, ctx: QueueControlContext): void;
32
+ /** Check if queue is paused */
33
+ export declare function isQueuePaused(queue: string, ctx: QueueControlContext): boolean;
34
+ /** Drain all waiting jobs from queue */
35
+ export declare function drainQueue(queue: string, ctx: QueueControlContext): number;
36
+ /** Remove all queue data */
37
+ export declare function obliterateQueue(queue: string, ctx: QueueControlContext): JobId[];
38
+ /** List all queue names */
39
+ export declare function listAllQueues(ctx: QueueControlContext): string[];
40
+ /**
41
+ * Clean old jobs from queue.
42
+ * Supported states: waiting/wait, delayed, prioritized, paused, completed, failed.
43
+ * State='active' is intentionally unsupported: cleaning in-flight jobs races with
44
+ * the worker's ack path and would leak concurrency/uniqueKey/groupId slots. Use
45
+ * `fail(jobId)` or `cancelJob(jobId)` to terminate an active job safely.
46
+ * @returns Array of removed JobIds.
47
+ */
48
+ export declare function cleanQueue(queue: string, graceMs: number, ctx: QueueControlContext, state?: string, limit?: number): JobId[];
49
+ /** Get count of jobs in queue */
50
+ export declare function getQueueCount(queue: string, ctx: QueueControlContext): number;
@@ -0,0 +1,31 @@
1
+ import { type BackupMetrics } from "../infrastructure/backup/backupTelemetry.js";
2
+ /** Runtime/storage gauges which are not part of queue state. */
3
+ export interface SystemMetrics {
4
+ storageDegraded: boolean;
5
+ storageDiskFull: boolean;
6
+ sqliteDatabaseSizeBytes?: number;
7
+ processHeapUsedBytes: number;
8
+ processHeapTotalBytes: number;
9
+ processResidentMemoryBytes: number;
10
+ processCpuSeconds?: number;
11
+ processStartTimeSeconds?: number;
12
+ perQueueMetricsExported?: number;
13
+ perQueueMetricsOmitted?: number;
14
+ operational?: OperationalMetrics;
15
+ }
16
+ /** Server components that are owned outside QueueManager. */
17
+ export interface OperationalMetrics {
18
+ backup?: BackupMetrics;
19
+ connections?: {
20
+ tcp: number;
21
+ websocket: number;
22
+ sse: number;
23
+ };
24
+ }
25
+ /** Select a deterministic bounded prefix and report exact conservation. */
26
+ export declare function selectPrometheusQueues(queueNames: Iterable<string>, requestedLimit: number): {
27
+ selected: Set<string>;
28
+ omitted: number;
29
+ };
30
+ /** Append bounded operational and standard process collectors. */
31
+ export declare function appendOperationalMetrics(lines: string[], system: SystemMetrics): void;
@@ -0,0 +1,23 @@
1
+ import type { JobId } from "../../domain/types/job.js";
2
+ import { FailureReason } from "../../domain/types/dlq.js";
3
+ import type { AckBatchOutcome, AckOutcome, CompletionOptions } from "../types/ack.js";
4
+ import { QueueManagerDelivery } from "./delivery.js";
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
+ }
@@ -0,0 +1,27 @@
1
+ import type { JobId, JobLock } from "../../domain/types/job.js";
2
+ import type { JobLogEntry } from "../../domain/types/worker.js";
3
+ import type { StallConfig } from "../../domain/types/stall.js";
4
+ import type { DlqConfig } from "../../domain/types/dlq.js";
5
+ import { QueueManagerLimits } from "./limits.js";
6
+ export declare class QueueManagerConfiguration extends QueueManagerLimits {
7
+ getDeduplicationJobId(queue: string, key: string): string | null;
8
+ removeDeduplicationKey(queue: string, key: string): Promise<number>;
9
+ removeJobDeduplicationKey(id: string): Promise<boolean>;
10
+ getAllJobResults(): Map<JobId, unknown>;
11
+ getAllJobLogs(): Map<JobId, JobLogEntry[]>;
12
+ getAllJobLocks(): Map<JobId, JobLock>;
13
+ setStallConfig(queue: string, config: Record<string, unknown>): void;
14
+ getStallConfig(queue: string): StallConfig;
15
+ setDlqConfig(queue: string, config: Record<string, unknown>): void;
16
+ getDlqConfig(queue: string): DlqConfig;
17
+ getCloudTelemetry(queueNames: string[]): {
18
+ perQueue: Record<string, {
19
+ uniqueKeys: number;
20
+ activeGroups: number;
21
+ waitingDeps: number;
22
+ waitingChildren: number;
23
+ }>;
24
+ eventSubscribers: number;
25
+ pendingDepChecks: number;
26
+ };
27
+ }
@@ -0,0 +1,5 @@
1
+ import type { ContextCallbacks, ContextDependencies } from "../contextFactory.js";
2
+ import type { QueueManagerRuntime, QueueManagerStateView } from "../types/index.js";
3
+ export declare function managerRuntime(value: unknown): QueueManagerRuntime;
4
+ export declare function createContextDependencies(state: QueueManagerStateView): ContextDependencies;
5
+ export declare function createContextCallbacks(runtime: QueueManagerRuntime): ContextCallbacks;
@@ -0,0 +1,20 @@
1
+ import type { JobId } from "../../domain/types/job.js";
2
+ import { QueueManagerQueries } from "./queries.js";
3
+ export declare class QueueManagerControl extends QueueManagerQueries {
4
+ pause(queue: string): void;
5
+ resume(queue: string): void;
6
+ isPaused(queue: string): boolean;
7
+ drain(queue: string): number;
8
+ obliterate(queue: string): void;
9
+ protected onQueueAdmissionsDrained(queue: string): void;
10
+ private hasLiveQueueProjection;
11
+ protected purgeQueueMetadata(queue: string): void;
12
+ private dependencyReferencesAfterObliterate;
13
+ listQueues(): string[];
14
+ protected registerQueueName(queue: string): void;
15
+ protected unregisterQueueName(queue: string): void;
16
+ protected releaseCompletionPins(dependencyIds: Iterable<JobId>): void;
17
+ protected reconcileCompletionPins(): void;
18
+ clean(queue: string, graceMs: number, state?: string, limit?: number): JobId[];
19
+ protected persistQueueState(_queue: string): void;
20
+ }
@@ -0,0 +1,33 @@
1
+ import type { Job, JobId, JobInput, JobLock } from "../../domain/types/job.js";
2
+ import type { AtomicFlowBatchInput, AtomicFlowBatchResult } from "../../domain/types/flow.js";
3
+ import type { GroupPullOptions } from "../../domain/types/group.js";
4
+ import { QueueManagerState } from "./state.js";
5
+ export declare class QueueManagerDelivery extends QueueManagerState {
6
+ push(queue: string, input: JobInput): Promise<Job>;
7
+ pushBatch(queue: string, inputs: JobInput[]): Promise<JobId[]>;
8
+ pushFlow(batch: AtomicFlowBatchInput): Promise<AtomicFlowBatchResult>;
9
+ pull(queue: string, timeoutMs?: number, signal?: AbortSignal, groupOptions?: GroupPullOptions): Promise<Job | null>;
10
+ pullWithLock(queue: string, owner: string, timeoutMs?: number, lockTtl?: number, signal?: AbortSignal, groupOptions?: GroupPullOptions): Promise<{
11
+ job: Job | null;
12
+ token: string | null;
13
+ }>;
14
+ pullBatch(queue: string, count: number, timeoutMs?: number, signal?: AbortSignal, groupOptions?: GroupPullOptions): Promise<Job[]>;
15
+ pullBatchWithLock(queue: string, count: number, owner: string, timeoutMs?: number, lockTtl?: number, signal?: AbortSignal, groupOptions?: GroupPullOptions): Promise<{
16
+ jobs: Job[];
17
+ tokens: string[];
18
+ }>;
19
+ protected throwIfOwnershipConflict(jobId: JobId, lockCtx: {
20
+ jobLocks: Map<JobId, JobLock>;
21
+ }): void;
22
+ /** Require the exact current lease token whenever a lock record exists. */
23
+ protected assertLeaseToken(jobId: JobId, token: string | undefined, lockCtx: {
24
+ jobLocks: Map<JobId, JobLock>;
25
+ }): void;
26
+ protected isExpiredButOwned(jobId: JobId, token: string, lockCtx: {
27
+ jobLocks: Map<JobId, JobLock>;
28
+ }): boolean;
29
+ protected isStallRetried(jobId: JobId): boolean;
30
+ /** Match a late outcome to the exact cron lease retired by lock expiry. */
31
+ protected isRetiredCronOutcome(jobId: JobId, token: string | undefined): boolean;
32
+ protected completeStallRetriedJob(jobId: JobId, result: unknown, removeOnComplete?: boolean): Promise<boolean>;
33
+ }
@@ -0,0 +1,8 @@
1
+ import type { JobId } from "../../domain/types/job.js";
2
+ import { QueueManagerFlowOptions } from "./flow-options.js";
3
+ export declare class QueueManagerDependencies extends QueueManagerFlowOptions {
4
+ getFailedChildrenValues(parentJobId: JobId): Promise<Record<string, string>>;
5
+ getIgnoredChildrenFailures(parentJobId: JobId): Promise<Record<string, string>>;
6
+ removeChildDependency(childJobId: JobId): Promise<boolean>;
7
+ removeUnprocessedChildren(parentJobId: JobId): Promise<void>;
8
+ }
@@ -0,0 +1,8 @@
1
+ import type { JobId } from "../../domain/types/job.js";
2
+ import { QueueManagerServices } from "./services.js";
3
+ export declare class QueueManagerDependencyRuntime extends QueueManagerServices {
4
+ protected onJobsCompleted(completedIds: JobId[]): void;
5
+ protected scheduleDependencyFlush(): void;
6
+ protected runDependencyFlush(): Promise<void>;
7
+ protected hasPendingDeps(): boolean;
8
+ }
@@ -0,0 +1,18 @@
1
+ import type { Shard } from "../../domain/queue/shard.js";
2
+ import type { DlqEntry } from "../../domain/types/dlq.js";
3
+ import type { Job, JobId } from "../../domain/types/job.js";
4
+ import type { JobLocation } from "../../domain/types/queue.js";
5
+ import type { SetLike } from "../../shared/lru.js";
6
+ import { QueueManagerDependencyRuntime } from "./dependency-runtime.js";
7
+ export declare class QueueManagerFlowFailures extends QueueManagerDependencyRuntime {
8
+ protected onDlqEvicted(entry: DlqEntry): void;
9
+ getJobIndex(): Map<JobId, JobLocation>;
10
+ getCompletedJobs(): SetLike<JobId>;
11
+ getDepCompletions(): SetLike<JobId>;
12
+ getShards(): Shard[];
13
+ protected onJobCompleted(completedId: JobId): void;
14
+ protected onJobFailed(failedId: JobId): void;
15
+ protected checkFlowCompleted(completedId: JobId): Promise<void>;
16
+ protected failParentOnChildFailure(childJob: Job, error: string | undefined): Promise<void>;
17
+ protected moveParentToFailed(parentId: JobId, childJob: Job, error: string | undefined): Promise<void>;
18
+ }
@@ -0,0 +1,8 @@
1
+ import type { Job, JobId } from "../../domain/types/job.js";
2
+ import { QueueManagerFlowFailures } from "./flow-failures.js";
3
+ export declare class QueueManagerFlowOptions extends QueueManagerFlowFailures {
4
+ protected onChildDependencyOption(childJob: Job, error: string | undefined): Promise<void>;
5
+ protected continueParentOnChildFailure(childJob: Job, error: string | undefined): Promise<void>;
6
+ protected promoteParentAfterChildFailure(parentId: JobId, parentJob: Job, index: number): Promise<void>;
7
+ protected removeChildFromParentDeps(childJob: Job, error: string | undefined, storeIgnored: boolean): Promise<void>;
8
+ }
@@ -0,0 +1,17 @@
1
+ import type { JobId } from "../../domain/types/job.js";
2
+ import { QueueManagerConfiguration } from "./configuration.js";
3
+ export declare class QueueManagerJobManagement extends QueueManagerConfiguration {
4
+ cancel(jobId: JobId): Promise<boolean>;
5
+ updateProgress(jobId: JobId, progress: number, message?: string): Promise<boolean>;
6
+ updateJobData(jobId: JobId, data: unknown): Promise<boolean>;
7
+ changePriority(jobId: JobId, priority: number, lifo?: boolean): Promise<boolean>;
8
+ promote(jobId: JobId): Promise<boolean>;
9
+ promoteJobs(queue: string, count?: number): Promise<number>;
10
+ moveToDelayed(jobId: JobId, delay: number, token?: string): Promise<boolean>;
11
+ changeDelay(jobId: JobId, delay: number, token?: string): Promise<boolean>;
12
+ moveActiveToWait(jobId: JobId, token?: string): Promise<boolean>;
13
+ changeWaitingDelay(jobId: JobId, delay: number): Promise<boolean>;
14
+ moveToWaitingChildren(jobId: JobId, token?: string): Promise<boolean>;
15
+ extendLock(jobId: JobId | string, token: string | null, duration: number): Promise<boolean>;
16
+ discard(jobId: JobId, token?: string): Promise<boolean>;
17
+ }
@@ -0,0 +1,4 @@
1
+ import { QueueManagerDependencies } from "./dependencies.js";
2
+ export declare class QueueManagerLifecycle extends QueueManagerDependencies {
3
+ shutdown(): void;
4
+ }
@@ -0,0 +1,58 @@
1
+ import type { Job, JobId } from "../../domain/types/job.js";
2
+ import type { DlqEntry, DlqFilter, DlqStats } from "../../domain/types/dlq.js";
3
+ import { QueueManagerControl } from "./control.js";
4
+ import { type GroupRateLimitOverride } from "../../domain/types/group.js";
5
+ export declare class QueueManagerLimits extends QueueManagerControl {
6
+ getGroupJobsCount(queue: string, groupId: string): number | Promise<number>;
7
+ getGroupsJobsCount(queue: string): number | Promise<number>;
8
+ getGroupActiveCount(queue: string, groupId: string): number | Promise<number>;
9
+ setGroupRateLimit(queue: string, groupId: string, max: number, duration: number): void | Promise<void>;
10
+ getGroupRateLimit(queue: string, groupId: string): GroupRateLimitOverride | null | Promise<GroupRateLimitOverride | null>;
11
+ removeGroupRateLimit(queue: string, groupId: string): number | Promise<number>;
12
+ getGroupRateLimitTtl(queue: string, groupId: string, maxJobs?: number): number | Promise<number>;
13
+ setGroupConcurrency(queue: string, groupId: string, concurrency: number): void | Promise<void>;
14
+ getGroupConcurrency(queue: string, groupId: string): number | null | Promise<number | null>;
15
+ removeGroupConcurrency(queue: string, groupId: string): number | Promise<number>;
16
+ pauseGroup(queue: string, groupId: string): boolean | Promise<boolean>;
17
+ resumeGroup(queue: string, groupId: string): boolean | Promise<boolean>;
18
+ isGroupPaused(queue: string, groupId: string): boolean | Promise<boolean>;
19
+ rateLimitGroup(queue: string, groupId: string, duration: number): void | Promise<void>;
20
+ getCountsPerPriority(queue: string): Record<number, number>;
21
+ getJobs(queue: string, options?: {
22
+ state?: string | string[];
23
+ start?: number;
24
+ end?: number;
25
+ asc?: boolean;
26
+ }): Job[];
27
+ getDlq(queue: string, count?: number): Job[];
28
+ getDlqEntries(queue: string, filter?: DlqFilter): DlqEntry[];
29
+ getDlqCount(queue: string): number;
30
+ getDlqStats(queue: string): DlqStats;
31
+ retryDlq(queue: string, jobId?: JobId, limit?: number): number;
32
+ retryDlqByFilter(queue: string, filter: DlqFilter): number;
33
+ purgeDlq(queue: string): number;
34
+ /** Remove one terminal DLQ job without re-enqueuing it. */
35
+ removeDlqJob(queue: string, jobId: JobId): boolean;
36
+ retryCompleted(queue: string, jobId?: JobId, options?: {
37
+ limit?: number;
38
+ timestamp?: number;
39
+ }): number;
40
+ setRateLimit(queue: string, limit: number, durationMs?: number, ttlMs?: number): void;
41
+ clearRateLimit(queue: string): void;
42
+ setConcurrency(queue: string, limit: number): void;
43
+ clearConcurrency(queue: string): void;
44
+ protected persistQueueState(queue: string): void;
45
+ getQueueLimits(queue: string): {
46
+ rateLimit: number | null;
47
+ concurrencyLimit: number | null;
48
+ };
49
+ getQueueLimitStatus(queue: string, maxJobs?: number): {
50
+ rateLimit: {
51
+ max: number;
52
+ duration: number;
53
+ } | null;
54
+ rateLimitTtl: number;
55
+ concurrencyLimit: number | null;
56
+ maxed: boolean;
57
+ };
58
+ }
@@ -0,0 +1,21 @@
1
+ import type { JobId, JobLock, LockToken } from "../../domain/types/job.js";
2
+ import { QueueManagerAck } from "./ack.js";
3
+ export declare class QueueManagerLocks extends QueueManagerAck {
4
+ jobHeartbeat(jobId: JobId, token?: string): boolean;
5
+ jobHeartbeatBatch(jobIds: JobId[], tokens?: string[]): number;
6
+ removeLock(jobId: JobId): void;
7
+ createLock(jobId: JobId, owner: string, ttl?: number): LockToken | null;
8
+ verifyLock(jobId: JobId, token: string): boolean;
9
+ renewJobLock(jobId: JobId, token: string, newTtl?: number): boolean;
10
+ renewJobLockBatch(items: Array<{
11
+ id: JobId;
12
+ token: string;
13
+ ttl?: number;
14
+ }>): string[];
15
+ releaseLock(jobId: JobId, token?: string): boolean;
16
+ getLockInfo(jobId: JobId): JobLock | null;
17
+ registerClientJob(clientId: string, jobId: JobId): void;
18
+ unregisterClientJob(clientId: string | undefined, jobId: JobId): void;
19
+ releaseClientJobs(clientId: string): Promise<number>;
20
+ forceReleaseClientJobs(clientId: string): number;
21
+ }
@@ -0,0 +1,16 @@
1
+ import type { JobId } from "../../domain/types/job.js";
2
+ import type { JobLogEntry } from "../../domain/types/worker.js";
3
+ import { type OperationalMetrics } from "../metricsExporter.js";
4
+ import * as statsMgr from "../statsManager.js";
5
+ import type { QueueMetricType } from "../../domain/types/metrics.js";
6
+ import { QueueManagerStats } from "./stats.js";
7
+ export declare class QueueManagerObservability extends QueueManagerStats {
8
+ getQueueMetrics(queue: string, type: QueueMetricType, start?: number, end?: number): import("../../client/index.js").QueueMetrics;
9
+ trimQueueEvents(queue: string, maxLength: number): number;
10
+ addLog(jobId: JobId, message: string, level?: 'info' | 'warn' | 'error'): boolean;
11
+ getLogs(jobId: JobId): JobLogEntry[];
12
+ clearLogs(jobId: JobId, keepLogs?: number): void;
13
+ getPerQueueStats(): Map<string, statsMgr.PerQueueStats>;
14
+ getPrometheusMetrics(): string;
15
+ setOperationalMetricsProvider(provider: () => OperationalMetrics): void;
16
+ }
@@ -0,0 +1,24 @@
1
+ import type { Job, JobId } from "../../domain/types/job.js";
2
+ import { QueueManagerLocks } from "./locks.js";
3
+ export declare class QueueManagerQueries extends QueueManagerLocks {
4
+ getJob(jobId: JobId): Promise<Job | null>;
5
+ getJobState(jobId: JobId): Promise<string>;
6
+ getResult(jobId: JobId): unknown;
7
+ /** Distinguish a completed generation from a valid undefined result. */
8
+ getCompletionAsync(jobId: JobId): Promise<{
9
+ found: boolean;
10
+ result: unknown;
11
+ }>;
12
+ /** Async result port used by transports; memory and SQLite remain synchronous internally. */
13
+ getResultAsync(jobId: JobId): Promise<unknown>;
14
+ getChildrenValues(parentJobId: JobId): Promise<Record<string, unknown>>;
15
+ updateJobParent(childJobId: JobId, parentJobId: JobId): Promise<void>;
16
+ getJobByCustomId(customId: string): Job | null;
17
+ getProgress(jobId: JobId): {
18
+ progress: number;
19
+ message: string | null;
20
+ } | null;
21
+ count(queue: string): number;
22
+ protected moveParentToFailed(_parentId: JobId, _childJob: Job, _error: string | undefined): Promise<void>;
23
+ protected onChildDependencyOption(_childJob: Job, _error: string | undefined): Promise<void>;
24
+ }
@@ -0,0 +1,4 @@
1
+ import type { Job } from "../../domain/types/job.js";
2
+ import type { QueueManagerRuntime } from "../types/index.js";
3
+ /** Schedule one successor after a successful repeat generation. */
4
+ export declare function handleRepeat(runtime: QueueManagerRuntime, job: Job): void;
@@ -0,0 +1,19 @@
1
+ import type { CronJob, CronJobInput } from "../../domain/types/cron.js";
2
+ import type { JobId } from "../../domain/types/job.js";
3
+ import type { JobEvent } from "../../domain/types/queue.js";
4
+ import type { CreateWorkerOptions } from "../../domain/types/worker.js";
5
+ import { QueueManagerObservability } from "./observability.js";
6
+ export declare class QueueManagerServices extends QueueManagerObservability {
7
+ addCron(input: CronJobInput): CronJob;
8
+ protected removeOrphanedCronJob(queue: string, uniqueKey: string): void;
9
+ removeCron(name: string): boolean;
10
+ getCron(name: string): CronJob | undefined;
11
+ listCrons(): CronJob[];
12
+ setDashboardEmit(fn: (event: string, data: Record<string, unknown>) => void): void;
13
+ emitDashboardEvent(event: string, data: Record<string, unknown>): void;
14
+ subscribe(callback: (event: JobEvent) => void): () => void;
15
+ waitForJobCompletion(jobId: JobId, timeoutMs: number, signal?: AbortSignal): Promise<boolean>;
16
+ registerWorker(name: string, queues: string[], concurrency?: number, options?: CreateWorkerOptions): import("../../domain/types/worker.js").Worker;
17
+ unregisterWorker(workerId: string): boolean;
18
+ unregisterWorkersByClientId(clientId: string): number;
19
+ }