bunqueue-client 0.1.8 → 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 +162 -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} +7 -6
  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 +12 -8
  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 -105
  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,114 @@
1
+ import type { Shard } from "../../domain/queue/shard.js";
2
+ import type { FailureReason } from "../../domain/types/dlq.js";
3
+ import type { Job, JobId, JobLock } from "../../domain/types/job.js";
4
+ import type { JobLocation } from "../../domain/types/queue.js";
5
+ import type { JobLogEntry } from "../../domain/types/worker.js";
6
+ import type { SqliteStorage } from "../../infrastructure/persistence/sqlite.js";
7
+ import type { RWLock } from "../../shared/lock.js";
8
+ import type { BoundedMap, BoundedSet, LRUMap, MapLike, SetLike } from "../../shared/lru.js";
9
+ import type { DependencyCompletionTracker } from "../dependencyCompletions.js";
10
+ import type { DependencyResultTracker } from "../dependencyResultTracker.js";
11
+ import type { EventsManager } from "../eventsManager.js";
12
+ import type { MonitoringState } from "../monitoringChecks.js";
13
+ import type { WebhookManager } from "../webhookManager.js";
14
+ import type { WorkerManager } from "../workerManager.js";
15
+ import type { DEFAULT_CONFIG } from "./config.js";
16
+ import type { JobTimeoutScheduler } from "../background/timeouts.js";
17
+ import type { RetiredTimeoutGeneration } from "./background.js";
18
+ export interface QueueManagerState {
19
+ readonly config: typeof DEFAULT_CONFIG & {
20
+ dataPath?: string;
21
+ };
22
+ readonly storage: SqliteStorage | null;
23
+ readonly shards: Shard[];
24
+ readonly shardLocks: RWLock[];
25
+ readonly processingShards: Map<JobId, Job>[];
26
+ readonly processingLocks: RWLock[];
27
+ readonly jobIndex: Map<JobId, JobLocation>;
28
+ readonly completedJobs: BoundedSet<JobId>;
29
+ readonly jobResults: LRUMap<JobId, unknown>;
30
+ readonly jobResultQueues: Map<JobId, string>;
31
+ readonly dependencyResults: DependencyResultTracker;
32
+ readonly customIdMap: LRUMap<string, JobId>;
33
+ readonly jobLogs: LRUMap<JobId, JobLogEntry[]>;
34
+ readonly jobLogQueues: Map<JobId, string>;
35
+ readonly jobLocks: Map<JobId, JobLock>;
36
+ readonly timedOutJobs: MapLike<JobId, RetiredTimeoutGeneration>;
37
+ readonly retiredTimeoutLeaseTokens: MapLike<string, RetiredTimeoutGeneration>;
38
+ readonly retiredCronLeaseTokens: MapLike<JobId, string>;
39
+ readonly timeoutScheduler: JobTimeoutScheduler;
40
+ readonly clientJobs: Map<string, Set<JobId>>;
41
+ readonly stalledCandidates: Set<JobId>;
42
+ readonly pendingDepChecks: Set<JobId>;
43
+ readonly pendingQueueAdmissions: Map<string, number>;
44
+ readonly queueNamesCache: Set<string>;
45
+ readonly eventsManager: EventsManager;
46
+ readonly webhookManager: WebhookManager;
47
+ readonly metrics: QueueManagerMetrics;
48
+ readonly startTime: number;
49
+ readonly perQueueMetrics: MapLike<string, {
50
+ totalCompleted: bigint;
51
+ totalFailed: bigint;
52
+ }>;
53
+ }
54
+ export interface QueueManagerMetrics {
55
+ totalPushed: {
56
+ value: bigint;
57
+ };
58
+ totalPulled: {
59
+ value: bigint;
60
+ };
61
+ totalCompleted: {
62
+ value: bigint;
63
+ };
64
+ totalFailed: {
65
+ value: bigint;
66
+ };
67
+ }
68
+ export interface LockContext {
69
+ jobIndex: Map<JobId, JobLocation>;
70
+ jobLocks: Map<JobId, JobLock>;
71
+ retiredCronLeaseTokens: MapLike<JobId, string>;
72
+ clientJobs: Map<string, Set<JobId>>;
73
+ processingShards: Map<JobId, Job>[];
74
+ processingLocks: RWLock[];
75
+ shards: Shard[];
76
+ shardLocks: RWLock[];
77
+ eventsManager: EventsManager;
78
+ dashboardEmit?: (event: string, data: Record<string, unknown>) => void;
79
+ storage: SqliteStorage | null;
80
+ timeoutScheduler: JobTimeoutScheduler;
81
+ }
82
+ export interface BackgroundContext extends QueueManagerState {
83
+ fail: (jobId: JobId, error?: string, failureReason?: FailureReason) => Promise<void>;
84
+ registerQueueName: (queue: string) => void;
85
+ unregisterQueueName: (queue: string) => void;
86
+ dashboardEmit?: (event: string, data: Record<string, unknown>) => void;
87
+ workerManager: WorkerManager;
88
+ monitoringState: MonitoringState;
89
+ completedJobsData: BoundedMap<JobId, Job>;
90
+ depCompletions?: DependencyCompletionTracker;
91
+ maxDependencyCompletions: number;
92
+ timedOutJobs: BoundedMap<JobId, RetiredTimeoutGeneration>;
93
+ retiredTimeoutLeaseTokens: BoundedMap<string, RetiredTimeoutGeneration>;
94
+ }
95
+ export interface StatsContext {
96
+ storage?: SqliteStorage | null;
97
+ shards: Shard[];
98
+ processingShards: Map<JobId, Job>[];
99
+ completedJobs: SetLike<JobId>;
100
+ jobIndex: Map<JobId, JobLocation>;
101
+ jobResults: LRUMap<JobId, unknown>;
102
+ jobLogs: LRUMap<JobId, JobLogEntry[]>;
103
+ customIdMap: LRUMap<string, JobId>;
104
+ jobLocks: Map<JobId, JobLock>;
105
+ clientJobs: Map<string, Set<JobId>>;
106
+ pendingDepChecks: Set<JobId>;
107
+ stalledCandidates: Set<JobId>;
108
+ metrics: QueueManagerMetrics;
109
+ startTime: number;
110
+ perQueueMetrics?: MapLike<string, {
111
+ totalCompleted: bigint;
112
+ totalFailed: bigint;
113
+ }>;
114
+ }
@@ -0,0 +1,7 @@
1
+ export { DEFAULT_CONFIG } from "./config.js";
2
+ export type { AckContext, BatchContext, ExtractedJob, FinalizeContext } from "./ack.js";
3
+ export type { BackgroundTaskHandles } from "./background.js";
4
+ export type { QueueManagerConfig } from "./config.js";
5
+ export type { BackgroundContext, LockContext, QueueManagerMetrics, QueueManagerState, StatsContext, } from "./contexts.js";
6
+ export type { QueueManagerRuntime, QueueManagerRuntimeApi, QueueManagerStateView, } from "./queueManager.js";
7
+ export type { GetJobsContext, QueryContext } from "./query.js";
@@ -0,0 +1,23 @@
1
+ import type { Shard } from "../../domain/queue/shard.js";
2
+ import type { JobLocation } from "../../domain/types/queue.js";
3
+ import type { Job, JobId } from "../../domain/types/job.js";
4
+ import type { SqliteStorage } from "../../infrastructure/persistence/sqlite.js";
5
+ import type { RWLock } from "../../shared/lock.js";
6
+ import type { MapLike, SetLike } from "../../shared/lru.js";
7
+ import type { DependencyResultTracker } from "../dependencyResultTracker.js";
8
+ export interface QueryContext {
9
+ storage: SqliteStorage | null;
10
+ shards: Shard[];
11
+ shardLocks: RWLock[];
12
+ processingShards: Map<JobId, Job>[];
13
+ processingLocks: RWLock[];
14
+ jobIndex: Map<JobId, JobLocation>;
15
+ completedJobs: SetLike<JobId>;
16
+ completedJobsData: MapLike<JobId, Job>;
17
+ jobResults: MapLike<JobId, unknown>;
18
+ dependencyResults: DependencyResultTracker;
19
+ customIdMap: MapLike<string, JobId>;
20
+ }
21
+ export interface GetJobsContext extends QueryContext {
22
+ shardCount: number;
23
+ }
@@ -0,0 +1,98 @@
1
+ import type { Shard } from "../../domain/queue/shard.js";
2
+ import type { DlqEntry } from "../../domain/types/dlq.js";
3
+ import type { FailureReason } from "../../domain/types/dlq.js";
4
+ import type { Job, JobId, JobInput, JobLock } from "../../domain/types/job.js";
5
+ import type { JobLocation } from "../../domain/types/queue.js";
6
+ import type { JobLogEntry } from "../../domain/types/worker.js";
7
+ import type { SqliteStorage } from "../../infrastructure/persistence/sqlite.js";
8
+ import type { CronScheduler } from "../../infrastructure/scheduler/cronScheduler.js";
9
+ import type { RWLock } from "../../shared/lock.js";
10
+ import type { BoundedMap, BoundedSet, LRUMap } from "../../shared/lru.js";
11
+ import type { DependencyCompletionTracker } from "../dependencyCompletions.js";
12
+ import type { DependencyResultTracker } from "../dependencyResultTracker.js";
13
+ import type { EventsManager } from "../eventsManager.js";
14
+ import type { OperationalMetrics } from "../metricsExporter.js";
15
+ import type { MonitoringState } from "../monitoringChecks.js";
16
+ import type { WebhookManager } from "../webhookManager.js";
17
+ import type { WorkerManager } from "../workerManager.js";
18
+ import type { DEFAULT_CONFIG } from "./config.js";
19
+ import type { JobTimeoutScheduler } from "../background/timeouts.js";
20
+ import type { RetiredTimeoutGeneration } from "./background.js";
21
+ import type { AckOutcome } from "./ack.js";
22
+ export interface QueueManagerStateView {
23
+ config: typeof DEFAULT_CONFIG & {
24
+ dataPath?: string;
25
+ };
26
+ storage: SqliteStorage | null;
27
+ shards: Shard[];
28
+ shardLocks: RWLock[];
29
+ customIdLock: RWLock;
30
+ processingShards: Map<JobId, Job>[];
31
+ processingLocks: RWLock[];
32
+ jobIndex: Map<JobId, JobLocation>;
33
+ completedJobs: BoundedSet<JobId>;
34
+ completedJobsData: BoundedMap<JobId, Job>;
35
+ depCompletions: DependencyCompletionTracker;
36
+ timedOutJobs: BoundedMap<JobId, RetiredTimeoutGeneration>;
37
+ retiredTimeoutLeaseTokens: BoundedMap<string, RetiredTimeoutGeneration>;
38
+ retiredCronLeaseTokens: BoundedMap<JobId, string>;
39
+ timeoutScheduler: JobTimeoutScheduler;
40
+ jobResults: LRUMap<JobId, unknown>;
41
+ jobResultQueues: Map<JobId, string>;
42
+ dependencyResults: DependencyResultTracker;
43
+ customIdMap: LRUMap<string, JobId>;
44
+ jobLogs: LRUMap<JobId, JobLogEntry[]>;
45
+ jobLogQueues: Map<JobId, string>;
46
+ pendingDepChecks: Set<JobId>;
47
+ pendingQueueAdmissions: Map<string, number>;
48
+ stalledCandidates: Set<JobId>;
49
+ jobLocks: Map<JobId, JobLock>;
50
+ clientJobs: Map<string, Set<JobId>>;
51
+ repeatChain: Map<JobId, JobId>;
52
+ queueNamesCache: Set<string>;
53
+ eventsManager: EventsManager;
54
+ webhookManager: WebhookManager;
55
+ workerManager: WorkerManager;
56
+ monitoringState: MonitoringState;
57
+ metrics: {
58
+ totalPushed: {
59
+ value: bigint;
60
+ };
61
+ totalPulled: {
62
+ value: bigint;
63
+ };
64
+ totalCompleted: {
65
+ value: bigint;
66
+ };
67
+ totalFailed: {
68
+ value: bigint;
69
+ };
70
+ };
71
+ startTime: number;
72
+ maxLogsPerJob: number;
73
+ perQueueMetrics: LRUMap<string, {
74
+ totalCompleted: bigint;
75
+ totalFailed: bigint;
76
+ }>;
77
+ failedChildrenValues: Map<JobId, Record<string, string>>;
78
+ ignoredChildrenFailures: Map<JobId, Record<string, string>>;
79
+ cronScheduler: CronScheduler;
80
+ operationalMetricsProvider: (() => OperationalMetrics) | null;
81
+ }
82
+ export interface QueueManagerRuntimeApi {
83
+ push(queue: string, input: JobInput): Promise<Job>;
84
+ fail(jobId: JobId, error?: string): Promise<AckOutcome>;
85
+ failWithReason(jobId: JobId, error: string | undefined, reason: FailureReason): Promise<AckOutcome>;
86
+ registerQueueName(queue: string): void;
87
+ unregisterQueueName(queue: string): void;
88
+ onQueueAdmissionsDrained(queue: string): void;
89
+ onJobCompleted(jobId: JobId): void;
90
+ onJobFailed(jobId: JobId): void;
91
+ onJobsCompleted(jobIds: JobId[]): void;
92
+ hasPendingDeps(): boolean;
93
+ emitDashboardEvent(event: string, data: Record<string, unknown>): void;
94
+ failParentOnChildFailure(job: Job, error: string | undefined): Promise<void>;
95
+ onChildDependencyOption(job: Job, error: string | undefined): Promise<void>;
96
+ onDlqEvicted(entry: DlqEntry): void;
97
+ }
98
+ export type QueueManagerRuntime = QueueManagerStateView & QueueManagerRuntimeApi;
@@ -0,0 +1,47 @@
1
+ /**
2
+ * Webhook Manager
3
+ * Manages webhooks and sends HTTP callbacks
4
+ */
5
+ import { type Webhook, type WebhookId, type WebhookEvent } from "../domain/types/webhook.js";
6
+ /**
7
+ * Webhook Manager
8
+ */
9
+ export declare class WebhookManager {
10
+ private readonly webhooks;
11
+ private readonly maxRetries;
12
+ private readonly retryDelay;
13
+ private readonly validateUrls;
14
+ private dashboardEmit;
15
+ /** Running counter for enabled webhooks - avoids O(n) filter in getStats */
16
+ private enabledCount;
17
+ constructor(options?: {
18
+ validateUrls?: boolean;
19
+ });
20
+ /** Set the dashboard event emitter callback */
21
+ setDashboardEmit(callback: (event: string, data: Record<string, unknown>) => void): void;
22
+ /** Add a webhook (validates URL to prevent SSRF) */
23
+ add(url: string, events: string[], queue?: string, secret?: string): Webhook;
24
+ /** Remove a webhook */
25
+ remove(id: WebhookId): boolean;
26
+ /** Get webhook by ID */
27
+ get(id: WebhookId): Webhook | undefined;
28
+ /** Set webhook enabled state - properly maintains running counter */
29
+ setEnabled(id: WebhookId, enabled: boolean): boolean;
30
+ /** List all webhooks */
31
+ list(): Webhook[];
32
+ /** Trigger webhooks for an event */
33
+ trigger(event: WebhookEvent, jobId: string, queue: string, extra?: {
34
+ data?: unknown;
35
+ error?: string;
36
+ progress?: number;
37
+ }): Promise<void>;
38
+ /** Send webhook with retries */
39
+ private sendWebhook;
40
+ /** Check if there are any enabled webhooks - O(1) */
41
+ hasEnabledWebhooks(): boolean;
42
+ /** Get stats - O(1) using running counter */
43
+ getStats(): {
44
+ total: number;
45
+ enabled: number;
46
+ };
47
+ }
@@ -0,0 +1,61 @@
1
+ /**
2
+ * Worker Manager
3
+ * Tracks connected workers and their status
4
+ */
5
+ import { type Worker, type WorkerId, type CreateWorkerOptions } from "../domain/types/worker.js";
6
+ /**
7
+ * Worker Manager
8
+ */
9
+ export declare class WorkerManager {
10
+ private readonly workers;
11
+ private cleanupInterval;
12
+ private dashboardEmit;
13
+ /** Running counters for O(1) stats - avoids O(n) reduce operations */
14
+ private totalProcessedCounter;
15
+ private totalFailedCounter;
16
+ private totalActiveJobsCounter;
17
+ constructor();
18
+ /** Set the dashboard event emitter callback */
19
+ setDashboardEmit(callback: (event: string, data: Record<string, unknown>) => void): void;
20
+ /** Register a new worker */
21
+ register(name: string, queues: string[], concurrency?: number, opts?: CreateWorkerOptions): Worker;
22
+ /** Unregister a worker */
23
+ unregister(id: WorkerId): boolean;
24
+ /** Unregister all workers associated with a TCP client ID */
25
+ unregisterByClientId(clientId: string): number;
26
+ /** Get worker by ID */
27
+ get(id: WorkerId): Worker | undefined;
28
+ /** Update worker last seen time and optionally client-reported stats */
29
+ heartbeat(id: WorkerId, stats?: {
30
+ activeJobs?: number;
31
+ processed?: number;
32
+ failed?: number;
33
+ }): boolean;
34
+ /** Increment active jobs count */
35
+ incrementActive(id: WorkerId, jobId?: string): void;
36
+ /** Decrement active jobs and increment processed */
37
+ jobCompleted(id: WorkerId): void;
38
+ /** Decrement active jobs and increment failed */
39
+ jobFailed(id: WorkerId): void;
40
+ /** List all workers */
41
+ list(): Worker[];
42
+ /** List active workers (seen recently) */
43
+ listActive(): Worker[];
44
+ /** Get workers for a specific queue (only active workers with recent heartbeat) */
45
+ getForQueue(queue: string): Worker[];
46
+ /** Start cleanup interval */
47
+ private startCleanup;
48
+ /** Remove stale workers */
49
+ private cleanupStale;
50
+ /** Stop cleanup */
51
+ stop(): void;
52
+ /** Get stats - O(n) only for active count, O(1) for other metrics */
53
+ getStats(): {
54
+ total: number;
55
+ active: number;
56
+ totalProcessed: number;
57
+ totalFailed: number;
58
+ activeJobs: number;
59
+ concurrencySlots: number;
60
+ };
61
+ }
@@ -0,0 +1,16 @@
1
+ /**
2
+ * Bunqueue — Priority Aging
3
+ * Automatically boosts priority of old waiting jobs.
4
+ */
5
+ import type { Queue } from "../queue/queue.js";
6
+ import type { PriorityAgingConfig } from "./types.js";
7
+ export declare class PriorityAger<T = unknown> {
8
+ private timer;
9
+ private generation;
10
+ private readonly config;
11
+ private readonly queue;
12
+ constructor(config: PriorityAgingConfig, queue: Queue<T>);
13
+ start(): void;
14
+ private tick;
15
+ destroy(): void;
16
+ }
@@ -0,0 +1,16 @@
1
+ /**
2
+ * Bunqueue — Batch Processing
3
+ * Accumulates jobs and processes them in groups.
4
+ */
5
+ import type { Processor } from "../types.js";
6
+ import type { BatchConfig } from "./types.js";
7
+ export declare class BatchAccumulator<T = unknown, R = unknown> {
8
+ private readonly buffer;
9
+ private timer;
10
+ private readonly config;
11
+ constructor(config: BatchConfig<T, R>);
12
+ /** Build a Processor that buffers jobs into batches */
13
+ buildProcessor(): Processor<T, R>;
14
+ flush(): void;
15
+ destroy(): void;
16
+ }
@@ -0,0 +1,21 @@
1
+ /**
2
+ * Bunqueue — Graceful Job Cancellation
3
+ * AbortController-based cancellation with optional grace period.
4
+ */
5
+ export declare class CancellationManager {
6
+ private readonly currentByJob;
7
+ private readonly registrations;
8
+ /** Register a new AbortController for a job */
9
+ register(jobId: string): AbortController;
10
+ /** Remove a job's controller (on completion) */
11
+ unregister(jobId: string, controller?: AbortController): void;
12
+ /** Cancel a job with optional grace period */
13
+ cancel(jobId: string, gracePeriodMs?: number): void;
14
+ /** Check if a job is cancelled */
15
+ isCancelled(jobId: string): boolean;
16
+ /** Get the AbortSignal for a job */
17
+ getSignal(jobId: string): AbortSignal | null;
18
+ /** Cancel all and clear */
19
+ destroyAll(): void;
20
+ private clearTimer;
21
+ }
@@ -0,0 +1,21 @@
1
+ /**
2
+ * Bunqueue — Circuit Breaker for worker protection
3
+ */
4
+ import type { Worker } from "../worker/worker.js";
5
+ import type { CircuitBreakerConfig, CircuitState } from "./types.js";
6
+ export declare class WorkerCircuitBreaker {
7
+ private state;
8
+ private failures;
9
+ private timer;
10
+ private destroyed;
11
+ private readonly config;
12
+ private readonly worker;
13
+ constructor(config: CircuitBreakerConfig, worker: Worker);
14
+ get currentState(): CircuitState;
15
+ isOpen(): boolean;
16
+ onSuccess(): void;
17
+ onFailure(): void;
18
+ private open;
19
+ reset(): void;
20
+ destroy(): void;
21
+ }
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Bunqueue — Deduplication & Debounce defaults merger
3
+ */
4
+ import type { JobOptions } from "../types.js";
5
+ import type { BunqueueDeduplicationConfig, BunqueueDebounceConfig } from "./types.js";
6
+ export declare class DedupDebounceMerger {
7
+ private readonly dedup;
8
+ private readonly debounce;
9
+ constructor(dedup: BunqueueDeduplicationConfig | null, debounce: BunqueueDebounceConfig | null);
10
+ get active(): boolean;
11
+ merge(name: string, opts?: JobOptions, data?: unknown): JobOptions | undefined;
12
+ }
@@ -0,0 +1,26 @@
1
+ /**
2
+ * Bunqueue — DLQ & Rate Limit helpers
3
+ * Mixin-style functions that delegate to Queue methods.
4
+ */
5
+ import type { Queue } from "../queue/queue.js";
6
+ import type { DlqConfig, DlqEntry, DlqStats, DlqFilter } from "../types.js";
7
+ export declare class DlqRateLimitManager<T = unknown> {
8
+ private readonly queue;
9
+ constructor(queue: Queue<T>);
10
+ setDlqConfig(config: Partial<DlqConfig>): void;
11
+ setDlqConfigAsync(config: Partial<DlqConfig>): Promise<void>;
12
+ getDlqConfig(): DlqConfig;
13
+ getDlqConfigAsync(): Promise<DlqConfig>;
14
+ getDlq(filter?: DlqFilter): DlqEntry<T>[];
15
+ getDlqAsync(filter?: DlqFilter): Promise<DlqEntry<T>[]>;
16
+ getDlqStats(): DlqStats;
17
+ getDlqStatsAsync(): Promise<DlqStats>;
18
+ retryDlq(id?: string): number;
19
+ retryDlqAsync(id?: string): Promise<number>;
20
+ purgeDlq(): number;
21
+ purgeDlqAsync(): Promise<number>;
22
+ setGlobalRateLimit(max: number, duration?: number): void;
23
+ setGlobalRateLimitAsync(max: number, duration?: number): Promise<void>;
24
+ removeGlobalRateLimit(): void;
25
+ removeGlobalRateLimitAsync(): Promise<void>;
26
+ }
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Bunqueue — Advanced Retry with backoff strategies
3
+ */
4
+ import type { RetryConfig, RetryStrategy } from "./types.js";
5
+ /** Calculate backoff delay based on strategy */
6
+ export declare function calculateBackoff(strategy: RetryStrategy, attempt: number, baseDelay: number, error: Error, config: RetryConfig): number;
7
+ /** Execute a function with retry logic */
8
+ export declare function executeWithRetry<R>(fn: () => Promise<R>, config: RetryConfig, signal?: AbortSignal): Promise<R>;
@@ -0,0 +1,35 @@
1
+ import { Queue } from "../queue/queue.js";
2
+ import { Worker } from "../worker/worker.js";
3
+ import { PriorityAger } from "./aging.js";
4
+ import { BatchAccumulator } from "./batch.js";
5
+ import { CancellationManager } from "./cancellation.js";
6
+ import { WorkerCircuitBreaker } from "./circuitBreaker.js";
7
+ import { DedupDebounceMerger } from "./dedupDebounce.js";
8
+ import { DlqRateLimitManager } from "./dlqRateLimit.js";
9
+ import { TriggerManager } from "./triggers.js";
10
+ import { TtlChecker } from "./ttl.js";
11
+ import type { BunqueueMiddleware, BunqueueOptions } from "./types.js";
12
+ /** Construction and processing pipeline shared by the compact Bunqueue façade. */
13
+ export declare abstract class BunqueueRuntime<T, R> {
14
+ readonly name: string;
15
+ readonly queue: Queue<T>;
16
+ readonly worker: Worker<T, R>;
17
+ private readonly middlewares;
18
+ private readonly baseProcessor;
19
+ protected readonly cb: WorkerCircuitBreaker | null;
20
+ private readonly retryConfig;
21
+ protected readonly triggerMgr: TriggerManager<T, R>;
22
+ protected readonly ager: PriorityAger<T> | null;
23
+ protected readonly cancellation: CancellationManager;
24
+ protected readonly ttlChecker: TtlChecker | null;
25
+ protected readonly batchAcc: BatchAccumulator<T, R> | null;
26
+ protected readonly merger: DedupDebounceMerger;
27
+ protected readonly dlqrl: DlqRateLimitManager<T>;
28
+ constructor(name: string, options: BunqueueOptions<T, R>);
29
+ private buildRouteProcessor;
30
+ private buildQueueOptions;
31
+ private buildWorkerOptions;
32
+ private processJob;
33
+ private runMiddlewareChain;
34
+ use(middleware: BunqueueMiddleware<T, R>): this;
35
+ }
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Bunqueue — Event Triggers
3
+ * When a job completes/fails, automatically create another job.
4
+ */
5
+ import type { Queue } from "../queue/queue.js";
6
+ import type { Worker } from "../worker/worker.js";
7
+ import type { TriggerRule } from "./types.js";
8
+ export declare class TriggerManager<T = unknown, R = unknown> {
9
+ private readonly rules;
10
+ private active;
11
+ private readonly queue;
12
+ private readonly worker;
13
+ constructor(queue: Queue<T>, worker: Worker<T, R>);
14
+ add(rule: TriggerRule<T>): void;
15
+ private ensureActive;
16
+ private fire;
17
+ }
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Bunqueue — Job TTL (Time To Live)
3
+ * Expire unprocessed jobs based on configurable TTL.
4
+ */
5
+ import type { JobTtlConfig } from "./types.js";
6
+ export declare class TtlChecker {
7
+ private readonly config;
8
+ constructor(config: JobTtlConfig);
9
+ /** Get TTL for a specific job name */
10
+ getTtl(jobName: string): number;
11
+ /** Check if a job has expired */
12
+ isExpired(jobName: string, jobTimestamp: number): boolean;
13
+ /** Set default TTL */
14
+ setDefaultTtl(ttlMs: number): void;
15
+ /** Set TTL for a specific job name */
16
+ setNameTtl(jobName: string, ttlMs: number): void;
17
+ }