bunqueue-client 0.1.9 → 0.2.1

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 (582) hide show
  1. package/CHANGELOG.md +165 -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 +934 -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 +16510 -0
  10. package/dist/frame.js +14 -57
  11. package/dist/index.d.ts +1 -27
  12. package/dist/index.js +10953 -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/clientOwnership.d.ts +65 -0
  67. package/dist/types/src/application/clientTracking.d.ts +40 -0
  68. package/dist/types/src/application/completedCleanup.d.ts +34 -0
  69. package/dist/types/src/application/completedRetry.d.ts +21 -0
  70. package/dist/types/src/application/contextFactory.d.ts +49 -0
  71. package/dist/types/src/application/dependencyCompletions.d.ts +63 -0
  72. package/dist/types/src/application/dependencyProcessor.d.ts +15 -0
  73. package/dist/types/src/application/dependencyResultTracker.d.ts +18 -0
  74. package/dist/types/src/application/dlqManager.d.ts +49 -0
  75. package/dist/types/src/application/dlqRetry.d.ts +12 -0
  76. package/dist/types/src/application/emptyQueueCleanup.d.ts +3 -0
  77. package/dist/types/src/application/eventsManager.d.ts +50 -0
  78. package/dist/types/src/application/flowFailureRecovery.d.ts +20 -0
  79. package/dist/types/src/application/flowParentBackpatch.d.ts +27 -0
  80. package/dist/types/src/application/jobLogsManager.d.ts +21 -0
  81. package/dist/types/src/application/latencyTracker.d.ts +39 -0
  82. package/dist/types/src/application/lockManager.d.ts +15 -0
  83. package/dist/types/src/application/lockOperations.d.ts +38 -0
  84. package/dist/types/src/application/metricsExporter.d.ts +27 -0
  85. package/dist/types/src/application/monitoringChecks.d.ts +36 -0
  86. package/dist/types/src/application/operations/ack/batch.d.ts +8 -0
  87. package/dist/types/src/application/operations/ack/completion.d.ts +3 -0
  88. package/dist/types/src/application/operations/ack/failure.d.ts +3 -0
  89. package/dist/types/src/application/operations/ack.d.ts +5 -0
  90. package/dist/types/src/application/operations/ackHelpers.d.ts +36 -0
  91. package/dist/types/src/application/operations/customId.d.ts +51 -0
  92. package/dist/types/src/application/operations/flowPush.d.ts +9 -0
  93. package/dist/types/src/application/operations/flowTopologyValidation.d.ts +3 -0
  94. package/dist/types/src/application/operations/flowValidation.d.ts +3 -0
  95. package/dist/types/src/application/operations/jobClaim.d.ts +17 -0
  96. package/dist/types/src/application/operations/jobManagement.d.ts +45 -0
  97. package/dist/types/src/application/operations/jobMoveOperations.d.ts +9 -0
  98. package/dist/types/src/application/operations/jobPromotion.d.ts +7 -0
  99. package/dist/types/src/application/operations/jobStateTransitions.d.ts +15 -0
  100. package/dist/types/src/application/operations/parentLink.d.ts +36 -0
  101. package/dist/types/src/application/operations/parentLinkInput.d.ts +8 -0
  102. package/dist/types/src/application/operations/pull.d.ts +20 -0
  103. package/dist/types/src/application/operations/pullFinalization.d.ts +6 -0
  104. package/dist/types/src/application/operations/pullStateTransition.d.ts +51 -0
  105. package/dist/types/src/application/operations/push.d.ts +13 -0
  106. package/dist/types/src/application/operations/pushAdmission.d.ts +36 -0
  107. package/dist/types/src/application/operations/pushBatch.d.ts +4 -0
  108. package/dist/types/src/application/operations/pushContext.d.ts +48 -0
  109. package/dist/types/src/application/operations/pushDeduplication.d.ts +42 -0
  110. package/dist/types/src/application/operations/pushInsert.d.ts +39 -0
  111. package/dist/types/src/application/operations/pushLocks.d.ts +15 -0
  112. package/dist/types/src/application/operations/query/collect.d.ts +12 -0
  113. package/dist/types/src/application/operations/query/jobLookup.d.ts +9 -0
  114. package/dist/types/src/application/operations/query/pagination.d.ts +8 -0
  115. package/dist/types/src/application/operations/query/state.d.ts +4 -0
  116. package/dist/types/src/application/operations/queryOperations.d.ts +5 -0
  117. package/dist/types/src/application/operations/queueControl.d.ts +50 -0
  118. package/dist/types/src/application/orphanRecovery.d.ts +25 -0
  119. package/dist/types/src/application/prometheusOperationalMetrics.d.ts +31 -0
  120. package/dist/types/src/application/queue-manager/ack.d.ts +23 -0
  121. package/dist/types/src/application/queue-manager/configuration.d.ts +27 -0
  122. package/dist/types/src/application/queue-manager/context.d.ts +5 -0
  123. package/dist/types/src/application/queue-manager/control.d.ts +20 -0
  124. package/dist/types/src/application/queue-manager/delivery.d.ts +33 -0
  125. package/dist/types/src/application/queue-manager/dependencies.d.ts +8 -0
  126. package/dist/types/src/application/queue-manager/dependency-runtime.d.ts +8 -0
  127. package/dist/types/src/application/queue-manager/flow-failures.d.ts +18 -0
  128. package/dist/types/src/application/queue-manager/flow-options.d.ts +8 -0
  129. package/dist/types/src/application/queue-manager/job-management.d.ts +17 -0
  130. package/dist/types/src/application/queue-manager/lifecycle.d.ts +4 -0
  131. package/dist/types/src/application/queue-manager/limits.d.ts +58 -0
  132. package/dist/types/src/application/queue-manager/locks.d.ts +21 -0
  133. package/dist/types/src/application/queue-manager/observability.d.ts +16 -0
  134. package/dist/types/src/application/queue-manager/queries.d.ts +24 -0
  135. package/dist/types/src/application/queue-manager/repeat.d.ts +4 -0
  136. package/dist/types/src/application/queue-manager/services.d.ts +19 -0
  137. package/dist/types/src/application/queue-manager/state.d.ts +98 -0
  138. package/dist/types/src/application/queue-manager/stats.d.ts +28 -0
  139. package/dist/types/src/application/queueManager.d.ts +5 -0
  140. package/dist/types/src/application/queueStatsAggregator.d.ts +23 -0
  141. package/dist/types/src/application/queueTelemetryJournal.d.ts +24 -0
  142. package/dist/types/src/application/repeatJobs.d.ts +7 -0
  143. package/dist/types/src/application/stallDetection.d.ts +26 -0
  144. package/dist/types/src/application/statsManager.d.ts +59 -0
  145. package/dist/types/src/application/taskErrorTracking.d.ts +22 -0
  146. package/dist/types/src/application/throughputTracker.d.ts +34 -0
  147. package/dist/types/src/application/types/ack.d.ts +136 -0
  148. package/dist/types/src/application/types/background.d.ts +18 -0
  149. package/dist/types/src/application/types/config.d.ts +41 -0
  150. package/dist/types/src/application/types/contextFactory.d.ts +89 -0
  151. package/dist/types/src/application/types/contexts.d.ts +117 -0
  152. package/dist/types/src/application/types/index.d.ts +7 -0
  153. package/dist/types/src/application/types/query.d.ts +23 -0
  154. package/dist/types/src/application/types/queueManager.d.ts +100 -0
  155. package/dist/types/src/application/webhookManager.d.ts +47 -0
  156. package/dist/types/src/application/workerManager.d.ts +61 -0
  157. package/dist/types/src/client/bunqueue/aging.d.ts +16 -0
  158. package/dist/types/src/client/bunqueue/batch.d.ts +16 -0
  159. package/dist/types/src/client/bunqueue/cancellation.d.ts +21 -0
  160. package/dist/types/src/client/bunqueue/circuitBreaker.d.ts +21 -0
  161. package/dist/types/src/client/bunqueue/dedupDebounce.d.ts +12 -0
  162. package/dist/types/src/client/bunqueue/dlqRateLimit.d.ts +26 -0
  163. package/dist/types/src/client/bunqueue/retry.d.ts +8 -0
  164. package/dist/types/src/client/bunqueue/runtime.d.ts +35 -0
  165. package/dist/types/src/client/bunqueue/triggers.d.ts +17 -0
  166. package/dist/types/src/client/bunqueue/ttl.d.ts +17 -0
  167. package/dist/types/src/client/bunqueue/types.d.ts +147 -0
  168. package/dist/types/src/client/bunqueue.d.ts +73 -0
  169. package/dist/types/src/client/dlqConversion.d.ts +5 -0
  170. package/dist/types/src/client/errors.d.ts +24 -0
  171. package/dist/types/src/client/events.d.ts +85 -0
  172. package/dist/types/src/client/flow.d.ts +70 -0
  173. package/dist/types/src/client/flowAtomic.d.ts +9 -0
  174. package/dist/types/src/client/flowJobCoreMethods.d.ts +28 -0
  175. package/dist/types/src/client/flowJobDependencies.d.ts +7 -0
  176. package/dist/types/src/client/flowJobFactory.d.ts +24 -0
  177. package/dist/types/src/client/flowJobMoveMethods.d.ts +16 -0
  178. package/dist/types/src/client/flowJobTypes.d.ts +29 -0
  179. package/dist/types/src/client/flowLegacyPlan.d.ts +16 -0
  180. package/dist/types/src/client/flowOptions.d.ts +10 -0
  181. package/dist/types/src/client/flowPlan.d.ts +16 -0
  182. package/dist/types/src/client/flowPush.d.ts +27 -0
  183. package/dist/types/src/client/flowReader.d.ts +10 -0
  184. package/dist/types/src/client/flowResults.d.ts +11 -0
  185. package/dist/types/src/client/flowTypes.d.ts +77 -0
  186. package/dist/types/src/client/forwarder.d.ts +75 -0
  187. package/dist/types/src/client/groupId.d.ts +1 -0
  188. package/dist/types/src/client/index.d.ts +46 -0
  189. package/dist/types/src/client/jobConversion.d.ts +10 -0
  190. package/dist/types/src/client/jobConversionHelpers.d.ts +28 -0
  191. package/dist/types/src/client/jobConversionTypes.d.ts +88 -0
  192. package/dist/types/src/client/jobDeduplication.d.ts +6 -0
  193. package/dist/types/src/client/jobHelpers.d.ts +31 -0
  194. package/dist/types/src/client/legacyConnectionOptions.d.ts +8 -0
  195. package/dist/types/src/client/manager.d.ts +15 -0
  196. package/dist/types/src/client/pro.d.ts +9 -0
  197. package/dist/types/src/client/queue/addBatcher.d.ts +59 -0
  198. package/dist/types/src/client/queue/bullmqCompat.d.ts +57 -0
  199. package/dist/types/src/client/queue/deduplication.d.ts +14 -0
  200. package/dist/types/src/client/queue/dlq.d.ts +61 -0
  201. package/dist/types/src/client/queue/dlqJobMethods.d.ts +9 -0
  202. package/dist/types/src/client/queue/dlqOps.d.ts +26 -0
  203. package/dist/types/src/client/queue/dlqStats.d.ts +3 -0
  204. package/dist/types/src/client/queue/failWire.d.ts +17 -0
  205. package/dist/types/src/client/queue/helpers.d.ts +19 -0
  206. package/dist/types/src/client/queue/job-proxy/dependencies.d.ts +9 -0
  207. package/dist/types/src/client/queue/job-proxy/reflection.d.ts +2 -0
  208. package/dist/types/src/client/queue/job-proxy/simple.d.ts +3 -0
  209. package/dist/types/src/client/queue/job-proxy/tcp.d.ts +4 -0
  210. package/dist/types/src/client/queue/jobMetadata.d.ts +10 -0
  211. package/dist/types/src/client/queue/jobMove.d.ts +32 -0
  212. package/dist/types/src/client/queue/jobProxy.d.ts +4 -0
  213. package/dist/types/src/client/queue/operations/add/bulk.d.ts +7 -0
  214. package/dist/types/src/client/queue/operations/add/payload.d.ts +25 -0
  215. package/dist/types/src/client/queue/operations/add/single.d.ts +3 -0
  216. package/dist/types/src/client/queue/operations/add.d.ts +2 -0
  217. package/dist/types/src/client/queue/operations/control.d.ts +42 -0
  218. package/dist/types/src/client/queue/operations/counts.d.ts +48 -0
  219. package/dist/types/src/client/queue/operations/groups.d.ts +24 -0
  220. package/dist/types/src/client/queue/operations/management.d.ts +51 -0
  221. package/dist/types/src/client/queue/operations/query.d.ts +50 -0
  222. package/dist/types/src/client/queue/operations/queryStates.d.ts +13 -0
  223. package/dist/types/src/client/queue/operations/queryTcpPages.d.ts +14 -0
  224. package/dist/types/src/client/queue/queue.d.ts +12 -0
  225. package/dist/types/src/client/queue/rateLimit.d.ts +46 -0
  226. package/dist/types/src/client/queue/runtime/compatibility.d.ts +13 -0
  227. package/dist/types/src/client/queue/runtime/configuration.d.ts +46 -0
  228. package/dist/types/src/client/queue/runtime/connection.d.ts +6 -0
  229. package/dist/types/src/client/queue/runtime/control.d.ts +41 -0
  230. package/dist/types/src/client/queue/runtime/queries.d.ts +66 -0
  231. package/dist/types/src/client/queue/runtime/scheduling.d.ts +33 -0
  232. package/dist/types/src/client/queue/runtime/state.d.ts +101 -0
  233. package/dist/types/src/client/queue/scheduler.d.ts +58 -0
  234. package/dist/types/src/client/queue/schedulerPagination.d.ts +7 -0
  235. package/dist/types/src/client/queue/stall.d.ts +20 -0
  236. package/dist/types/src/client/queue/types/add.d.ts +40 -0
  237. package/dist/types/src/client/queue/types/contexts.d.ts +33 -0
  238. package/dist/types/src/client/queue/types/index.d.ts +3 -0
  239. package/dist/types/src/client/queue/types/job.d.ts +50 -0
  240. package/dist/types/src/client/queue/types/runtime.d.ts +35 -0
  241. package/dist/types/src/client/queue/workers.d.ts +36 -0
  242. package/dist/types/src/client/queue-events/tcpSubscription.d.ts +23 -0
  243. package/dist/types/src/client/queue.d.ts +5 -0
  244. package/dist/types/src/client/queueGroup.d.ts +51 -0
  245. package/dist/types/src/client/resolveToken.d.ts +10 -0
  246. package/dist/types/src/client/sandboxed/index.d.ts +7 -0
  247. package/dist/types/src/client/sandboxed/queueOps.d.ts +24 -0
  248. package/dist/types/src/client/sandboxed/runtime/dispatch.d.ts +13 -0
  249. package/dist/types/src/client/sandboxed/runtime/lifecycle.d.ts +20 -0
  250. package/dist/types/src/client/sandboxed/runtime/log.d.ts +1 -0
  251. package/dist/types/src/client/sandboxed/runtime/pool.d.ts +11 -0
  252. package/dist/types/src/client/sandboxed/runtime/recovery.d.ts +11 -0
  253. package/dist/types/src/client/sandboxed/runtime/state.d.ts +39 -0
  254. package/dist/types/src/client/sandboxed/types/index.d.ts +2 -0
  255. package/dist/types/src/client/sandboxed/types/options.d.ts +27 -0
  256. package/dist/types/src/client/sandboxed/types/process.d.ts +39 -0
  257. package/dist/types/src/client/sandboxed/worker.d.ts +4 -0
  258. package/dist/types/src/client/sandboxed/wrapper.d.ts +12 -0
  259. package/dist/types/src/client/sandboxedWorker.d.ts +6 -0
  260. package/dist/types/src/client/tcp/client.d.ts +6 -0
  261. package/dist/types/src/client/tcp/commandQueue.d.ts +23 -0
  262. package/dist/types/src/client/tcp/connection.d.ts +4 -0
  263. package/dist/types/src/client/tcp/errors.d.ts +6 -0
  264. package/dist/types/src/client/tcp/health.d.ts +60 -0
  265. package/dist/types/src/client/tcp/index.d.ts +11 -0
  266. package/dist/types/src/client/tcp/reconnect.d.ts +47 -0
  267. package/dist/types/src/client/tcp/runtime/commands.d.ts +9 -0
  268. package/dist/types/src/client/tcp/runtime/connectivity.d.ts +13 -0
  269. package/dist/types/src/client/tcp/runtime/health.d.ts +14 -0
  270. package/dist/types/src/client/tcp/runtime/lifecycle.d.ts +8 -0
  271. package/dist/types/src/client/tcp/runtime/state.d.ts +50 -0
  272. package/dist/types/src/client/tcp/shared.d.ts +12 -0
  273. package/dist/types/src/client/tcp/transport.d.ts +18 -0
  274. package/dist/types/src/client/tcp/types/command.d.ts +9 -0
  275. package/dist/types/src/client/tcp/types/connection.d.ts +31 -0
  276. package/dist/types/src/client/tcp/types/index.d.ts +5 -0
  277. package/dist/types/src/client/tcp/types/socket.d.ts +8 -0
  278. package/dist/types/src/client/tcp/types/tls.d.ts +4 -0
  279. package/dist/types/src/client/tcp/types.d.ts +2 -0
  280. package/dist/types/src/client/tcpClient.d.ts +6 -0
  281. package/dist/types/src/client/tcpPool.d.ts +69 -0
  282. package/dist/types/src/client/types/connection.d.ts +30 -0
  283. package/dist/types/src/client/types/dlq.d.ts +45 -0
  284. package/dist/types/src/client/types/events.d.ts +54 -0
  285. package/dist/types/src/client/types/flow.d.ts +22 -0
  286. package/dist/types/src/client/types/index.d.ts +10 -0
  287. package/dist/types/src/client/types/job.d.ts +131 -0
  288. package/dist/types/src/client/types/metrics.d.ts +1 -0
  289. package/dist/types/src/client/types/options.d.ts +72 -0
  290. package/dist/types/src/client/types/worker.d.ts +54 -0
  291. package/dist/types/src/client/types.d.ts +2 -0
  292. package/dist/types/src/client/worker/ackBatcher.d.ts +55 -0
  293. package/dist/types/src/client/worker/ackFrontier.d.ts +21 -0
  294. package/dist/types/src/client/worker/ackOutcome.d.ts +8 -0
  295. package/dist/types/src/client/worker/batchExecution.d.ts +14 -0
  296. package/dist/types/src/client/worker/constants.d.ts +7 -0
  297. package/dist/types/src/client/worker/groupConcurrency.d.ts +49 -0
  298. package/dist/types/src/client/worker/handlers/completion.d.ts +29 -0
  299. package/dist/types/src/client/worker/handlers/dependencies.d.ts +11 -0
  300. package/dist/types/src/client/worker/handlers/mutations.d.ts +23 -0
  301. package/dist/types/src/client/worker/handlers/queries.d.ts +15 -0
  302. package/dist/types/src/client/worker/jobParser.d.ts +9 -0
  303. package/dist/types/src/client/worker/processor.d.ts +11 -0
  304. package/dist/types/src/client/worker/processorHandlers.d.ts +4 -0
  305. package/dist/types/src/client/worker/processorOutcome.d.ts +14 -0
  306. package/dist/types/src/client/worker/processorResult.d.ts +2 -0
  307. package/dist/types/src/client/worker/runtime/buffer.d.ts +8 -0
  308. package/dist/types/src/client/worker/runtime/control.d.ts +28 -0
  309. package/dist/types/src/client/worker/runtime/execution.d.ts +16 -0
  310. package/dist/types/src/client/worker/runtime/lifecycle.d.ts +7 -0
  311. package/dist/types/src/client/worker/runtime/manual.d.ts +10 -0
  312. package/dist/types/src/client/worker/runtime/options.d.ts +5 -0
  313. package/dist/types/src/client/worker/runtime/polling.d.ts +14 -0
  314. package/dist/types/src/client/worker/runtime/state.d.ts +121 -0
  315. package/dist/types/src/client/worker/types/index.d.ts +5 -0
  316. package/dist/types/src/client/worker/types/manual.d.ts +7 -0
  317. package/dist/types/src/client/worker/types/options.d.ts +26 -0
  318. package/dist/types/src/client/worker/types/outcome.d.ts +23 -0
  319. package/dist/types/src/client/worker/types/processor.d.ts +25 -0
  320. package/dist/types/src/client/worker/types/transport.d.ts +11 -0
  321. package/dist/types/src/client/worker/worker.d.ts +6 -0
  322. package/dist/types/src/client/worker/workerHeartbeat.d.ts +15 -0
  323. package/dist/types/src/client/worker/workerPull.d.ts +24 -0
  324. package/dist/types/src/client/worker/workerRateLimiter.d.ts +51 -0
  325. package/dist/types/src/client/worker.d.ts +6 -0
  326. package/dist/types/src/client/workflow/admission.d.ts +45 -0
  327. package/dist/types/src/client/workflow/clock.d.ts +60 -0
  328. package/dist/types/src/client/workflow/compensationChild.d.ts +33 -0
  329. package/dist/types/src/client/workflow/compensationClaim.d.ts +11 -0
  330. package/dist/types/src/client/workflow/compensationPass.d.ts +17 -0
  331. package/dist/types/src/client/workflow/compensationSupport.d.ts +24 -0
  332. package/dist/types/src/client/workflow/compensator.d.ts +34 -0
  333. package/dist/types/src/client/workflow/definitionGuard.d.ts +11 -0
  334. package/dist/types/src/client/workflow/emitter.d.ts +17 -0
  335. package/dist/types/src/client/workflow/engine.d.ts +66 -0
  336. package/dist/types/src/client/workflow/eventTypes.d.ts +44 -0
  337. package/dist/types/src/client/workflow/executionFence.d.ts +15 -0
  338. package/dist/types/src/client/workflow/executionTypes.d.ts +133 -0
  339. package/dist/types/src/client/workflow/executor.d.ts +52 -0
  340. package/dist/types/src/client/workflow/executorLifecycle.d.ts +19 -0
  341. package/dist/types/src/client/workflow/executorNodes.d.ts +18 -0
  342. package/dist/types/src/client/workflow/executorQueue.d.ts +9 -0
  343. package/dist/types/src/client/workflow/forEachRunner.d.ts +4 -0
  344. package/dist/types/src/client/workflow/identity.d.ts +48 -0
  345. package/dist/types/src/client/workflow/index.d.ts +23 -0
  346. package/dist/types/src/client/workflow/loops.d.ts +11 -0
  347. package/dist/types/src/client/workflow/mapRunner.d.ts +4 -0
  348. package/dist/types/src/client/workflow/recovery.d.ts +32 -0
  349. package/dist/types/src/client/workflow/rollbackControl.d.ts +37 -0
  350. package/dist/types/src/client/workflow/runner.d.ts +23 -0
  351. package/dist/types/src/client/workflow/runnerTiming.d.ts +14 -0
  352. package/dist/types/src/client/workflow/stepTypes.d.ts +171 -0
  353. package/dist/types/src/client/workflow/store.d.ts +83 -0
  354. package/dist/types/src/client/workflow/storeCodec.d.ts +7 -0
  355. package/dist/types/src/client/workflow/storeExecutionCodec.d.ts +11 -0
  356. package/dist/types/src/client/workflow/storeListing.d.ts +11 -0
  357. package/dist/types/src/client/workflow/storeMaintenance.d.ts +4 -0
  358. package/dist/types/src/client/workflow/storeSignals.d.ts +70 -0
  359. package/dist/types/src/client/workflow/subWorkflowRunner.d.ts +14 -0
  360. package/dist/types/src/client/workflow/types.d.ts +4 -0
  361. package/dist/types/src/client/workflow/unwindPlan.d.ts +87 -0
  362. package/dist/types/src/client/workflow/waitFor.d.ts +56 -0
  363. package/dist/types/src/client/workflow/workflow.d.ts +70 -0
  364. package/dist/types/src/client/workflow/workflowDecisions.d.ts +11 -0
  365. package/dist/types/src/client/workflow/workflowDefinition.d.ts +16 -0
  366. package/dist/types/src/client/workflow/workflowIntrospection.d.ts +5 -0
  367. package/dist/types/src/client/workflow/workflowValidation.d.ts +44 -0
  368. package/dist/types/src/config/index.d.ts +9 -0
  369. package/dist/types/src/config/loader.d.ts +7 -0
  370. package/dist/types/src/config/resolve.d.ts +59 -0
  371. package/dist/types/src/config/types.d.ts +88 -0
  372. package/dist/types/src/domain/job/constants.d.ts +14 -0
  373. package/dist/types/src/domain/job/create.d.ts +9 -0
  374. package/dist/types/src/domain/job/groupFifoOrder.d.ts +9 -0
  375. package/dist/types/src/domain/job/ids.d.ts +7 -0
  376. package/dist/types/src/domain/job/locks.d.ts +16 -0
  377. package/dist/types/src/domain/job/payload.d.ts +18 -0
  378. package/dist/types/src/domain/job/state.d.ts +23 -0
  379. package/dist/types/src/domain/job/terminal.d.ts +3 -0
  380. package/dist/types/src/domain/queue/dependencyTracker.d.ts +78 -0
  381. package/dist/types/src/domain/queue/dlqShard.d.ts +66 -0
  382. package/dist/types/src/domain/queue/groupLimiterManager.d.ts +30 -0
  383. package/dist/types/src/domain/queue/groupScheduler.d.ts +31 -0
  384. package/dist/types/src/domain/queue/groupSchedulerOrder.d.ts +6 -0
  385. package/dist/types/src/domain/queue/limiterManager.d.ts +68 -0
  386. package/dist/types/src/domain/queue/priorityQueue.d.ts +54 -0
  387. package/dist/types/src/domain/queue/priorityQueueOrder.d.ts +3 -0
  388. package/dist/types/src/domain/queue/shard/dependencies.d.ts +11 -0
  389. package/dist/types/src/domain/queue/shard/dlq.d.ts +26 -0
  390. package/dist/types/src/domain/queue/shard/keys.d.ts +19 -0
  391. package/dist/types/src/domain/queue/shard/lifecycle.d.ts +10 -0
  392. package/dist/types/src/domain/queue/shard/limits.d.ts +47 -0
  393. package/dist/types/src/domain/queue/shard/metrics.d.ts +32 -0
  394. package/dist/types/src/domain/queue/shard/state.d.ts +40 -0
  395. package/dist/types/src/domain/queue/shard.d.ts +7 -0
  396. package/dist/types/src/domain/queue/shardCounters.d.ts +35 -0
  397. package/dist/types/src/domain/queue/temporalIndex.d.ts +24 -0
  398. package/dist/types/src/domain/queue/temporalManager.d.ts +72 -0
  399. package/dist/types/src/domain/queue/uniqueKeyManager.d.ts +33 -0
  400. package/dist/types/src/domain/queue/waiterManager.d.ts +18 -0
  401. package/dist/types/src/domain/response/builders.d.ts +15 -0
  402. package/dist/types/src/domain/types/command.d.ts +2 -0
  403. package/dist/types/src/domain/types/commands/base.d.ts +5 -0
  404. package/dist/types/src/domain/types/commands/core.d.ts +107 -0
  405. package/dist/types/src/domain/types/commands/cron.d.ts +36 -0
  406. package/dist/types/src/domain/types/commands/dashboard.d.ts +13 -0
  407. package/dist/types/src/domain/types/commands/dlq.d.ts +44 -0
  408. package/dist/types/src/domain/types/commands/extended.d.ts +63 -0
  409. package/dist/types/src/domain/types/commands/index.d.ts +12 -0
  410. package/dist/types/src/domain/types/commands/limits.d.ts +108 -0
  411. package/dist/types/src/domain/types/commands/management.d.ts +73 -0
  412. package/dist/types/src/domain/types/commands/monitoring.d.ts +49 -0
  413. package/dist/types/src/domain/types/commands/protocol.d.ts +20 -0
  414. package/dist/types/src/domain/types/commands/query.d.ts +46 -0
  415. package/dist/types/src/domain/types/commands/union.d.ts +13 -0
  416. package/dist/types/src/domain/types/commands/workers.d.ts +39 -0
  417. package/dist/types/src/domain/types/cron.d.ts +89 -0
  418. package/dist/types/src/domain/types/deduplication.d.ts +43 -0
  419. package/dist/types/src/domain/types/dlq.d.ts +136 -0
  420. package/dist/types/src/domain/types/flow.d.ts +25 -0
  421. package/dist/types/src/domain/types/group.d.ts +26 -0
  422. package/dist/types/src/domain/types/job.d.ts +8 -0
  423. package/dist/types/src/domain/types/jobs/model.d.ts +150 -0
  424. package/dist/types/src/domain/types/metrics.d.ts +16 -0
  425. package/dist/types/src/domain/types/priorityQueue.d.ts +13 -0
  426. package/dist/types/src/domain/types/protocol.d.ts +5 -0
  427. package/dist/types/src/domain/types/queue.d.ts +110 -0
  428. package/dist/types/src/domain/types/response.d.ts +3 -0
  429. package/dist/types/src/domain/types/responses/model.d.ts +152 -0
  430. package/dist/types/src/domain/types/shard.d.ts +4 -0
  431. package/dist/types/src/domain/types/stall.d.ts +48 -0
  432. package/dist/types/src/domain/types/webhook.d.ts +42 -0
  433. package/dist/types/src/domain/types/worker.d.ts +40 -0
  434. package/dist/types/src/infrastructure/backup/backupTelemetry.d.ts +30 -0
  435. package/dist/types/src/infrastructure/backup/s3BackupConfig.d.ts +80 -0
  436. package/dist/types/src/infrastructure/cloud/types/config.d.ts +18 -0
  437. package/dist/types/src/infrastructure/cloud/types/event.d.ts +14 -0
  438. package/dist/types/src/infrastructure/cloud/types/snapshot.d.ts +52 -0
  439. package/dist/types/src/infrastructure/cloud/types/snapshotCore.d.ts +125 -0
  440. package/dist/types/src/infrastructure/cloud/types/snapshotJobs.d.ts +124 -0
  441. package/dist/types/src/infrastructure/cloud/types/snapshotTelemetry.d.ts +100 -0
  442. package/dist/types/src/infrastructure/cloud/types.d.ts +3 -0
  443. package/dist/types/src/infrastructure/persistence/batchInsert.d.ts +13 -0
  444. package/dist/types/src/infrastructure/persistence/completedJobCountSchema.d.ts +6 -0
  445. package/dist/types/src/infrastructure/persistence/dependencyCompletionSchema.d.ts +6 -0
  446. package/dist/types/src/infrastructure/persistence/dependencyCompletionStore.d.ts +40 -0
  447. package/dist/types/src/infrastructure/persistence/index.d.ts +5 -0
  448. package/dist/types/src/infrastructure/persistence/jobOptionsBlob.d.ts +19 -0
  449. package/dist/types/src/infrastructure/persistence/legacyNameMigration.d.ts +17 -0
  450. package/dist/types/src/infrastructure/persistence/migrationProgressSchema.d.ts +2 -0
  451. package/dist/types/src/infrastructure/persistence/migrations.d.ts +3 -0
  452. package/dist/types/src/infrastructure/persistence/schema.d.ts +8 -0
  453. package/dist/types/src/infrastructure/persistence/sqlite/admission.d.ts +9 -0
  454. package/dist/types/src/infrastructure/persistence/sqlite/completed.d.ts +17 -0
  455. package/dist/types/src/infrastructure/persistence/sqlite/control.d.ts +48 -0
  456. package/dist/types/src/infrastructure/persistence/sqlite/flows.d.ts +26 -0
  457. package/dist/types/src/infrastructure/persistence/sqlite/jobLifecycle.d.ts +17 -0
  458. package/dist/types/src/infrastructure/persistence/sqlite/jobs.d.ts +15 -0
  459. package/dist/types/src/infrastructure/persistence/sqlite/lifecycle.d.ts +6 -0
  460. package/dist/types/src/infrastructure/persistence/sqlite/mutations.d.ts +27 -0
  461. package/dist/types/src/infrastructure/persistence/sqlite/queries.d.ts +23 -0
  462. package/dist/types/src/infrastructure/persistence/sqlite/queueDeletionSql.d.ts +3 -0
  463. package/dist/types/src/infrastructure/persistence/sqlite/records.d.ts +24 -0
  464. package/dist/types/src/infrastructure/persistence/sqlite/state.d.ts +42 -0
  465. package/dist/types/src/infrastructure/persistence/sqlite/telemetry.d.ts +17 -0
  466. package/dist/types/src/infrastructure/persistence/sqlite/telemetryStore.d.ts +30 -0
  467. package/dist/types/src/infrastructure/persistence/sqlite/telemetryWrites.d.ts +47 -0
  468. package/dist/types/src/infrastructure/persistence/sqlite.d.ts +6 -0
  469. package/dist/types/src/infrastructure/persistence/sqliteBatch.d.ts +4 -0
  470. package/dist/types/src/infrastructure/persistence/sqliteMigration.d.ts +5 -0
  471. package/dist/types/src/infrastructure/persistence/sqliteSerializer.d.ts +50 -0
  472. package/dist/types/src/infrastructure/persistence/statements.d.ts +86 -0
  473. package/dist/types/src/infrastructure/persistence/types/admission.d.ts +8 -0
  474. package/dist/types/src/infrastructure/persistence/types/batch.d.ts +12 -0
  475. package/dist/types/src/infrastructure/persistence/types/sqlite.d.ts +27 -0
  476. package/dist/types/src/infrastructure/persistence/writeBuffer.d.ts +48 -0
  477. package/dist/types/src/infrastructure/persistence/writeBufferPending.d.ts +11 -0
  478. package/dist/types/src/infrastructure/scheduler/cron/execution.d.ts +12 -0
  479. package/dist/types/src/infrastructure/scheduler/cron/persisted.d.ts +5 -0
  480. package/dist/types/src/infrastructure/scheduler/cron/runtime.d.ts +31 -0
  481. package/dist/types/src/infrastructure/scheduler/cron/validation.d.ts +3 -0
  482. package/dist/types/src/infrastructure/scheduler/cronParser.d.ts +45 -0
  483. package/dist/types/src/infrastructure/scheduler/cronScheduler.d.ts +5 -0
  484. package/dist/types/src/infrastructure/scheduler/types/cronScheduler.d.ts +16 -0
  485. package/dist/types/src/infrastructure/server/protocol/commands.d.ts +8 -0
  486. package/dist/types/src/infrastructure/server/protocol/frameParser.d.ts +16 -0
  487. package/dist/types/src/infrastructure/server/protocol/lineBuffer.d.ts +6 -0
  488. package/dist/types/src/infrastructure/server/protocol/validation.d.ts +10 -0
  489. package/dist/types/src/infrastructure/server/protocol.d.ts +6 -0
  490. package/dist/types/src/infrastructure/server/socketWriteQueue.d.ts +66 -0
  491. package/dist/types/src/infrastructure/server/types/protocol.d.ts +4 -0
  492. package/dist/types/src/require-bun.d.ts +13 -0
  493. package/dist/types/src/shared/asyncLock.d.ts +13 -0
  494. package/dist/types/src/shared/boundedMap.d.ts +30 -0
  495. package/dist/types/src/shared/boundedSet.d.ts +26 -0
  496. package/dist/types/src/shared/hash.d.ts +30 -0
  497. package/dist/types/src/shared/histogram.d.ts +23 -0
  498. package/dist/types/src/shared/lock.d.ts +13 -0
  499. package/dist/types/src/shared/lockError.d.ts +3 -0
  500. package/dist/types/src/shared/lockTimeout.d.ts +2 -0
  501. package/dist/types/src/shared/logger.d.ts +48 -0
  502. package/dist/types/src/shared/lru.d.ts +9 -0
  503. package/dist/types/src/shared/lruMap.d.ts +42 -0
  504. package/dist/types/src/shared/lruSet.d.ts +36 -0
  505. package/dist/types/src/shared/minHeap.d.ts +43 -0
  506. package/dist/types/src/shared/msgpack.d.ts +3 -0
  507. package/dist/types/src/shared/pausedView.d.ts +19 -0
  508. package/dist/types/src/shared/rwLock.d.ts +22 -0
  509. package/dist/types/src/shared/serialization.d.ts +24 -0
  510. package/dist/types/src/shared/skipList.d.ts +97 -0
  511. package/dist/types/src/shared/skipListNodes.d.ts +6 -0
  512. package/dist/types/src/shared/storageHealth.d.ts +9 -0
  513. package/dist/types/src/shared/ttlMap.d.ts +81 -0
  514. package/dist/types/src/shared/types/lock.d.ts +7 -0
  515. package/dist/types/src/shared/types/skipList.d.ts +4 -0
  516. package/dist/types/src/shared/version.d.ts +4 -0
  517. package/dist/types/src/shared/webhookValidation.d.ts +6 -0
  518. package/package.json +27 -9
  519. package/src/ack-batcher.ts +8 -5
  520. package/src/bunqueue/bunqueue-api.ts +1 -1
  521. package/src/bunqueue/bunqueue.ts +2 -1
  522. package/src/canonical-transport/bun-sqlite-types.ts +22 -0
  523. package/src/canonical-transport/dlq.ts +12 -0
  524. package/src/canonical-transport/embedded.ts +55 -0
  525. package/src/canonical-transport/runtime.ts +49 -0
  526. package/src/canonical-transport/thread-worker.ts +83 -0
  527. package/src/canonical-transport/transport.ts +153 -0
  528. package/src/connection.ts +25 -30
  529. package/src/errors.ts +3 -0
  530. package/src/flow-commit.ts +45 -0
  531. package/src/flow-plan-legacy.ts +117 -0
  532. package/src/flow-plan.ts +209 -0
  533. package/src/flow-types.ts +4 -0
  534. package/src/flow.ts +31 -163
  535. package/src/frame.ts +5 -2
  536. package/src/index.ts +7 -75
  537. package/src/job.ts +43 -9
  538. package/src/legacy.ts +91 -0
  539. package/src/observability.ts +59 -1
  540. package/src/queue-admin.ts +5 -5
  541. package/src/queue-control.ts +8 -6
  542. package/src/queue.ts +10 -6
  543. package/src/serialization.ts +93 -0
  544. package/src/terminal-outcome.ts +58 -0
  545. package/src/types.ts +3 -6
  546. package/src/worker-base.ts +9 -6
  547. package/src/worker-slot-signal.ts +23 -0
  548. package/src/worker.ts +11 -5
  549. package/dist/backpressure.js +0 -39
  550. package/dist/bunqueue/aging.js +0 -53
  551. package/dist/bunqueue/batch.js +0 -60
  552. package/dist/bunqueue/bunqueue-api.js +0 -116
  553. package/dist/bunqueue/bunqueue.js +0 -194
  554. package/dist/bunqueue/cancellation.js +0 -48
  555. package/dist/bunqueue/circuit-breaker.js +0 -69
  556. package/dist/bunqueue/dedup-debounce.js +0 -37
  557. package/dist/bunqueue/dlq-rate-limit.js +0 -65
  558. package/dist/bunqueue/rate-gate.js +0 -61
  559. package/dist/bunqueue/retry.js +0 -56
  560. package/dist/bunqueue/triggers.js +0 -42
  561. package/dist/bunqueue/ttl.js +0 -31
  562. package/dist/bunqueue/types.js +0 -6
  563. package/dist/connection-pool.js +0 -60
  564. package/dist/connection-types.js +0 -2
  565. package/dist/connection.js +0 -281
  566. package/dist/errors.js +0 -25
  567. package/dist/flow-types.js +0 -2
  568. package/dist/flow.js +0 -212
  569. package/dist/job.js +0 -155
  570. package/dist/observability.js +0 -110
  571. package/dist/queue-admin.js +0 -158
  572. package/dist/queue-control.js +0 -107
  573. package/dist/queue-query.js +0 -187
  574. package/dist/queue.js +0 -92
  575. package/dist/responses.js +0 -10
  576. package/dist/socket-factory.js +0 -47
  577. package/dist/types.js +0 -50
  578. package/dist/worker-base.js +0 -159
  579. package/dist/worker-types.js +0 -5
  580. package/dist/worker.js +0 -211
  581. /package/dist/{backpressure.d.ts → types/sdk/typescript/src/backpressure.d.ts} +0 -0
  582. /package/dist/{bunqueue → types/sdk/typescript/src/bunqueue}/cancellation.d.ts +0 -0
@@ -0,0 +1,136 @@
1
+ /**
2
+ * Dead Letter Queue Types
3
+ * Enhanced DLQ with metadata, auto-retry, and lifecycle management
4
+ */
5
+ import type { Job } from "./job.js";
6
+ /** Failure reason categories */
7
+ export declare const enum FailureReason {
8
+ /** Job explicitly failed via fail() call */
9
+ ExplicitFail = "explicit_fail",
10
+ /** Job exceeded max attempts */
11
+ MaxAttemptsExceeded = "max_attempts_exceeded",
12
+ /** Job timed out during processing */
13
+ Timeout = "timeout",
14
+ /** Job stalled (no heartbeat) */
15
+ Stalled = "stalled",
16
+ /** Job TTL expired */
17
+ TtlExpired = "ttl_expired",
18
+ /** Worker crashed/disconnected */
19
+ WorkerLost = "worker_lost",
20
+ /** Unknown/other reason */
21
+ Unknown = "unknown"
22
+ }
23
+ /** Single attempt record */
24
+ export interface AttemptRecord {
25
+ /** Attempt number (1-based) */
26
+ readonly attempt: number;
27
+ /** When this attempt started */
28
+ readonly startedAt: number;
29
+ /** When this attempt failed */
30
+ readonly failedAt: number;
31
+ /** Failure reason for this attempt */
32
+ readonly reason: FailureReason;
33
+ /** Error message if any */
34
+ readonly error: string | null;
35
+ /** Duration of this attempt in ms */
36
+ readonly duration: number;
37
+ }
38
+ /** Internal lifecycle state carried while a DLQ auto-retry is live. */
39
+ export interface DlqRetryState {
40
+ readonly enteredAt: number | null;
41
+ readonly expiresAt: number | null;
42
+ readonly attempts: AttemptRecord[];
43
+ readonly retryCount: number;
44
+ readonly lastRetryAt: number | null;
45
+ readonly nextRetryAt: number | null;
46
+ }
47
+ /** Read internal DLQ state without exposing it on the public Job wire shape. */
48
+ export declare function getDlqRetryState(job: Job): DlqRetryState | null;
49
+ /** Restore internal DLQ state from SQLite as a non-enumerable Job property. */
50
+ export declare function setDlqRetryState(job: Job, state: DlqRetryState | null): void;
51
+ /** Retain a non-terminal failed attempt so a later DLQ entry has full history. */
52
+ export declare function recordJobFailureAttempt(job: Job, reason: FailureReason, error: string | null, failedAt?: number): void;
53
+ /** Carry a dispatched DLQ entry through its live auto-retry execution. */
54
+ export declare function retainDlqRetryState(job: Job, entry: DlqEntry): void;
55
+ /** DLQ Entry with full metadata */
56
+ export interface DlqEntry {
57
+ /** Original job */
58
+ readonly job: Job;
59
+ /** When first moved to DLQ */
60
+ readonly enteredAt: number;
61
+ /** Last failure reason */
62
+ readonly reason: FailureReason;
63
+ /** Last error message */
64
+ readonly error: string | null;
65
+ /** Full attempt history */
66
+ readonly attempts: AttemptRecord[];
67
+ /** Number of times retried from DLQ */
68
+ retryCount: number;
69
+ /** Last retry attempt from DLQ */
70
+ lastRetryAt: number | null;
71
+ /** Next scheduled auto-retry (null = no auto-retry) */
72
+ nextRetryAt: number | null;
73
+ /** Expires at (for auto-purge) */
74
+ readonly expiresAt: number | null;
75
+ }
76
+ /** DLQ configuration per queue */
77
+ export interface DlqConfig {
78
+ /** Enable auto-retry from DLQ */
79
+ autoRetry: boolean;
80
+ /** Auto-retry interval in ms (default: 1 hour) */
81
+ autoRetryInterval: number;
82
+ /** Max auto-retries before giving up (default: 3) */
83
+ maxAutoRetries: number;
84
+ /** Max age in ms before auto-purge (default: 7 days, null = never) */
85
+ maxAge: number | null;
86
+ /** Max entries per queue (default: 10000) */
87
+ maxEntries: number;
88
+ }
89
+ /** Default DLQ configuration */
90
+ export declare const DEFAULT_DLQ_CONFIG: DlqConfig;
91
+ /** Create a DLQ entry from a failed job */
92
+ export declare function createDlqEntry(job: Job, reason: FailureReason, error: string | null, config?: DlqConfig, now?: number): DlqEntry;
93
+ /** Add attempt record to existing DLQ entry */
94
+ export declare function addAttemptRecord(entry: DlqEntry, reason: FailureReason, error: string | null): void;
95
+ /** Check if DLQ entry is expired */
96
+ export declare function isDlqEntryExpired(entry: DlqEntry, now?: number): boolean;
97
+ /** Check if DLQ entry can be auto-retried */
98
+ export declare function canAutoRetry(entry: DlqEntry, config: DlqConfig, now?: number): boolean;
99
+ /** Schedule next auto-retry */
100
+ export declare function scheduleNextRetry(entry: DlqEntry, config: DlqConfig): void;
101
+ /** DLQ filter options */
102
+ export interface DlqFilter {
103
+ /** Filter by failure reason */
104
+ reason?: FailureReason;
105
+ /** Filter by queue */
106
+ queue?: string;
107
+ /** Only entries older than this timestamp */
108
+ olderThan?: number;
109
+ /** Only entries newer than this timestamp */
110
+ newerThan?: number;
111
+ /** Only entries that can be retried */
112
+ retriable?: boolean;
113
+ /** Only entries that are expired */
114
+ expired?: boolean;
115
+ /** Limit results */
116
+ limit?: number;
117
+ /** Offset for pagination */
118
+ offset?: number;
119
+ }
120
+ /** DLQ statistics */
121
+ export interface DlqStats {
122
+ /** Total entries */
123
+ total: number;
124
+ /** Entries by reason */
125
+ byReason: Record<FailureReason, number>;
126
+ /** Entries by queue */
127
+ byQueue: Record<string, number>;
128
+ /** Entries awaiting auto-retry */
129
+ pendingRetry: number;
130
+ /** Expired entries (awaiting cleanup) */
131
+ expired: number;
132
+ /** Oldest entry timestamp */
133
+ oldestEntry: number | null;
134
+ /** Newest entry timestamp */
135
+ newestEntry: number | null;
136
+ }
@@ -0,0 +1,25 @@
1
+ import type { Job, JobId, JobInput } from "./job.js";
2
+ /** One fully-resolved job in an atomic flow commit. */
3
+ export interface AtomicFlowJobInput {
4
+ readonly id: JobId;
5
+ readonly queue: string;
6
+ readonly input: JobInput;
7
+ }
8
+ /** Wire-neutral batch consumed by embedded and TCP FlowProducer paths. */
9
+ export interface AtomicFlowBatchInput {
10
+ readonly jobs: AtomicFlowJobInput[];
11
+ }
12
+ /** Authoritative snapshots returned after a successful flow commit. */
13
+ export interface AtomicFlowBatchResult {
14
+ readonly jobs: Job[];
15
+ }
16
+ export type FlowFailureMode = 'fail' | 'remove' | 'ignore' | 'continue';
17
+ /** Durable recovery record for a terminal child failure. */
18
+ export interface FlowFailureRecord {
19
+ readonly parentId: JobId;
20
+ readonly childId: JobId;
21
+ readonly childQueue: string;
22
+ readonly mode: FlowFailureMode;
23
+ readonly error: string;
24
+ readonly createdAt: number;
25
+ }
@@ -0,0 +1,26 @@
1
+ export interface GroupRateLimit {
2
+ readonly max: number;
3
+ readonly duration: number;
4
+ }
5
+ /** Worker-side defaults enforced authoritatively by the broker. */
6
+ export interface GroupPullOptions {
7
+ readonly concurrency?: number;
8
+ readonly limit?: GroupRateLimit;
9
+ /** Internal batch affinity: undefined means any group; null means ungrouped only. */
10
+ readonly affinity?: string | null;
11
+ }
12
+ export interface GroupRateLimitOverride extends GroupRateLimit {
13
+ }
14
+ export declare const MAX_GROUP_PRIORITY = 2097151;
15
+ /** Validate the canonical string form shared by every broker and persistence backend. */
16
+ export declare function validateGroupId(value: unknown, required?: boolean): string | null;
17
+ export declare function assertGroupId(value: unknown): asserts value is string;
18
+ export declare function assertOptionalGroupId(value: unknown): asserts value is string | undefined;
19
+ export declare function validateGroupPriority(value: unknown): string | null;
20
+ export declare function assertGroupPriority(value: unknown): void;
21
+ /** Normalize BullMQ-compatible numeric IDs without accepting arbitrary coercion. */
22
+ export declare function normalizeGroupId(value: unknown): string;
23
+ export declare function validatePositiveSafeInteger(value: unknown, name: string): string | null;
24
+ export declare function assertPositiveSafeInteger(value: unknown, name: string): asserts value is number;
25
+ export declare function validateGroupPullOptions(options: unknown): string | null;
26
+ export declare function assertGroupPullOptions(options: unknown): asserts options is GroupPullOptions;
@@ -0,0 +1,8 @@
1
+ /** Stable import surface for job types and domain operations. */
2
+ export * from "./jobs/model.js";
3
+ export * from "../job/constants.js";
4
+ export * from "../job/create.js";
5
+ export * from "../job/ids.js";
6
+ export * from "../job/locks.js";
7
+ export * from "../job/payload.js";
8
+ export * from "../job/state.js";
@@ -0,0 +1,150 @@
1
+ export type JobId = string & {
2
+ readonly __brand: 'JobId';
3
+ };
4
+ export type LockToken = string & {
5
+ readonly __brand: 'LockToken';
6
+ };
7
+ export declare const enum JobState {
8
+ Waiting = "waiting",
9
+ Prioritized = "prioritized",
10
+ Delayed = "delayed",
11
+ Active = "active",
12
+ Completed = "completed",
13
+ Failed = "failed"
14
+ }
15
+ export interface RepeatConfig {
16
+ readonly every?: number;
17
+ readonly limit?: number;
18
+ readonly pattern?: string;
19
+ count: number;
20
+ readonly startDate?: number;
21
+ readonly endDate?: number;
22
+ readonly tz?: string;
23
+ readonly immediately?: boolean;
24
+ prevMillis?: number;
25
+ readonly offset?: number;
26
+ readonly jobId?: string;
27
+ }
28
+ export interface BackoffConfig {
29
+ readonly type: 'fixed' | 'exponential';
30
+ readonly delay: number;
31
+ readonly maxDelay?: number;
32
+ }
33
+ export interface JobTimelineEntry {
34
+ readonly state: string;
35
+ readonly timestamp: number;
36
+ readonly worker?: string;
37
+ readonly error?: string;
38
+ readonly attempt?: number;
39
+ }
40
+ export interface Job {
41
+ readonly id: JobId;
42
+ readonly queue: string;
43
+ readonly name: string;
44
+ readonly data: unknown;
45
+ readonly priority: number;
46
+ readonly createdAt: number;
47
+ readonly lifo: boolean;
48
+ runAt: number;
49
+ startedAt: number | null;
50
+ completedAt: number | null;
51
+ attempts: number;
52
+ readonly maxAttempts: number;
53
+ readonly backoff: number;
54
+ readonly backoffConfig: BackoffConfig | null;
55
+ readonly ttl: number | null;
56
+ readonly timeout: number | null;
57
+ readonly uniqueKey: string | null;
58
+ readonly customId: string | null;
59
+ readonly dependsOn: JobId[];
60
+ readonly parentId: JobId | null;
61
+ childrenIds: JobId[];
62
+ childrenCompleted: number;
63
+ readonly tags: string[];
64
+ readonly groupId: string | null;
65
+ progress: number;
66
+ progressMessage: string | null;
67
+ stacktrace: string[] | null;
68
+ readonly removeOnComplete: boolean;
69
+ readonly removeOnFail: boolean;
70
+ readonly repeat: RepeatConfig | null;
71
+ lastHeartbeat: number;
72
+ readonly stallTimeout: number | null;
73
+ stallCount: number;
74
+ readonly stackTraceLimit: number;
75
+ readonly keepLogs: number | null;
76
+ readonly sizeLimit: number | null;
77
+ readonly failParentOnFailure: boolean;
78
+ readonly removeDependencyOnFailure: boolean;
79
+ readonly continueParentOnFailure: boolean;
80
+ readonly ignoreDependencyOnFailure: boolean;
81
+ readonly deduplicationTtl: number | null;
82
+ readonly deduplicationExtend: boolean;
83
+ readonly deduplicationReplace: boolean;
84
+ readonly debounceId: string | null;
85
+ readonly debounceTtl: number | null;
86
+ /** Whether SQLite admission bypasses its write buffer; PostgreSQL is always transactional. */
87
+ readonly durable?: boolean;
88
+ timeline: JobTimelineEntry[];
89
+ }
90
+ export interface JobInput {
91
+ name?: string;
92
+ data: unknown;
93
+ priority?: number;
94
+ delay?: number;
95
+ maxAttempts?: number;
96
+ backoff?: number | BackoffConfig;
97
+ ttl?: number;
98
+ timeout?: number;
99
+ uniqueKey?: string;
100
+ customId?: string;
101
+ dependsOn?: JobId[];
102
+ childrenIds?: JobId[];
103
+ parentId?: JobId;
104
+ tags?: string[];
105
+ groupId?: string;
106
+ groupMaxSize?: number;
107
+ lifo?: boolean;
108
+ removeOnComplete?: boolean;
109
+ removeOnFail?: boolean;
110
+ stallTimeout?: number;
111
+ repeat?: {
112
+ every?: number;
113
+ limit?: number;
114
+ pattern?: string;
115
+ count?: number;
116
+ startDate?: number;
117
+ endDate?: number;
118
+ tz?: string;
119
+ immediately?: boolean;
120
+ prevMillis?: number;
121
+ offset?: number;
122
+ jobId?: string;
123
+ };
124
+ dedup?: {
125
+ ttl?: number;
126
+ extend?: boolean;
127
+ replace?: boolean;
128
+ };
129
+ durable?: boolean;
130
+ stackTraceLimit?: number;
131
+ keepLogs?: number;
132
+ sizeLimit?: number;
133
+ failParentOnFailure?: boolean;
134
+ removeDependencyOnFailure?: boolean;
135
+ continueParentOnFailure?: boolean;
136
+ ignoreDependencyOnFailure?: boolean;
137
+ debounceId?: string;
138
+ debounceTtl?: number;
139
+ timestamp?: number;
140
+ }
141
+ export interface JobLock {
142
+ readonly jobId: JobId;
143
+ readonly token: LockToken;
144
+ readonly owner: string;
145
+ readonly createdAt: number;
146
+ expiresAt: number;
147
+ lastRenewalAt: number;
148
+ renewalCount: number;
149
+ readonly ttl: number;
150
+ }
@@ -0,0 +1,16 @@
1
+ export type QueueMetricType = 'completed' | 'failed';
2
+ export interface QueueMetricsMeta {
3
+ /** Cumulative number of terminal jobs since the queue metrics were created. */
4
+ readonly count: number;
5
+ /** Timestamp of the most recently recorded terminal job. */
6
+ readonly prevTS: number;
7
+ /** Count in the most recently updated one-minute bucket. */
8
+ readonly prevCount: number;
9
+ }
10
+ export interface QueueMetrics {
11
+ readonly meta: QueueMetricsMeta;
12
+ /** One-minute job-count buckets, newest first. */
13
+ readonly data: number[];
14
+ /** Total number of available buckets before start/end pagination. */
15
+ readonly count: number;
16
+ }
@@ -0,0 +1,13 @@
1
+ import type { Job, JobId } from "./job.js";
2
+ export interface HeapEntry {
3
+ jobId: JobId;
4
+ priority: number;
5
+ runAt: number;
6
+ lifo: boolean;
7
+ generation: bigint;
8
+ groupFifoOrder?: bigint;
9
+ }
10
+ export interface IndexedJob {
11
+ job: Job;
12
+ generation: bigint;
13
+ }
@@ -0,0 +1,5 @@
1
+ /** Current TCP wire protocol revision advertised by the server and Bun client. */
2
+ export declare const PROTOCOL_VERSION: 3;
3
+ /** Capabilities implemented by protocol revision 3. */
4
+ export declare const PROTOCOL_CAPABILITIES: readonly ["pipelining", "separate-job-name"];
5
+ export type ProtocolCapability = (typeof PROTOCOL_CAPABILITIES)[number];
@@ -0,0 +1,110 @@
1
+ /**
2
+ * Queue domain types
3
+ * Queue state and configuration
4
+ */
5
+ /** Queue state configuration */
6
+ export interface QueueState {
7
+ readonly name: string;
8
+ paused: boolean;
9
+ rateLimit: number | null;
10
+ /** Rate-limit window in ms (null = default 1000ms bucket). */
11
+ rateLimitDuration: number | null;
12
+ /** Epoch ms after which the rate limit self-expires (null = permanent). */
13
+ rateLimitExpiresAt: number | null;
14
+ concurrencyLimit: number | null;
15
+ activeCount: number;
16
+ }
17
+ /** Create default queue state */
18
+ export declare function createQueueState(name: string): QueueState;
19
+ /** Rate limiter using token bucket algorithm */
20
+ export declare class RateLimiter {
21
+ private readonly capacity;
22
+ private readonly refillRate;
23
+ private tokens;
24
+ private lastRefill;
25
+ constructor(capacity: number, refillRate?: number);
26
+ /** Try to acquire a token */
27
+ tryAcquire(): boolean;
28
+ /** Refill tokens based on elapsed time */
29
+ private refill;
30
+ /** Get current token count */
31
+ getTokens(): number;
32
+ /**
33
+ * Milliseconds until the bucket can admit another job. When `maxJobs` is
34
+ * provided, report 0 until at least that many tokens have been consumed.
35
+ */
36
+ getTtl(maxJobs?: number): number;
37
+ }
38
+ /** Concurrency limiter */
39
+ export declare class ConcurrencyLimiter {
40
+ private limit;
41
+ private active;
42
+ constructor(limit: number);
43
+ /** Try to acquire a slot */
44
+ tryAcquire(): boolean;
45
+ /** Release a slot */
46
+ release(): void;
47
+ /** Get active count */
48
+ getActive(): number;
49
+ /** Get limit */
50
+ getLimit(): number;
51
+ /** Update limit */
52
+ setLimit(limit: number): void;
53
+ }
54
+ /** Job location for indexing */
55
+ export type JobLocation = {
56
+ type: 'queue';
57
+ shardIdx: number;
58
+ queueName: string;
59
+ } | {
60
+ type: 'processing';
61
+ shardIdx: number;
62
+ queueName: string;
63
+ } | {
64
+ type: 'completed';
65
+ queueName: string;
66
+ } | {
67
+ type: 'dlq';
68
+ queueName: string;
69
+ };
70
+ /** Event types for subscribers */
71
+ export declare const enum EventType {
72
+ Pushed = "pushed",
73
+ Pulled = "pulled",
74
+ Completed = "completed",
75
+ Failed = "failed",
76
+ Progress = "progress",
77
+ Stalled = "stalled",
78
+ Removed = "removed",
79
+ Delayed = "delayed",
80
+ Duplicated = "duplicated",
81
+ Retried = "retried",
82
+ WaitingChildren = "waiting-children",
83
+ Drained = "drained",
84
+ Paused = "paused",
85
+ Resumed = "resumed"
86
+ }
87
+ /** Job event for subscribers */
88
+ export interface JobEvent {
89
+ readonly eventType: EventType;
90
+ readonly queue: string;
91
+ readonly jobId: string;
92
+ readonly timestamp: number;
93
+ readonly data?: unknown;
94
+ readonly error?: string;
95
+ readonly progress?: number;
96
+ /** Previous state (for removed, retried events) */
97
+ readonly prev?: string;
98
+ /** Delay in ms (for delayed event) */
99
+ readonly delay?: number;
100
+ /** Internal marker used to exclude retry-attempt failures from terminal metrics. */
101
+ readonly terminal?: boolean;
102
+ }
103
+ /** Webhook configuration */
104
+ export interface Webhook {
105
+ readonly id: string;
106
+ readonly url: string;
107
+ readonly events: EventType[];
108
+ readonly queue: string | null;
109
+ readonly secret: string | null;
110
+ }
@@ -0,0 +1,3 @@
1
+ /** Stable import surface for protocol response types and builders. */
2
+ export * from "./responses/model.js";
3
+ export * from "../response/builders.js";
@@ -0,0 +1,152 @@
1
+ import type { Job, JobState } from "../job.js";
2
+ import type { ProtocolCapability } from "../protocol.js";
3
+ export type { ProtocolCapability } from "../protocol.js";
4
+ interface BaseResponse {
5
+ readonly ok: boolean;
6
+ readonly reqId?: string;
7
+ }
8
+ export interface OkResponse extends BaseResponse {
9
+ readonly ok: true;
10
+ readonly id?: string;
11
+ }
12
+ export interface BatchResponse extends BaseResponse {
13
+ readonly ok: true;
14
+ readonly ids: string[];
15
+ }
16
+ export interface JobResponse extends BaseResponse {
17
+ readonly ok: true;
18
+ readonly job: Job;
19
+ }
20
+ export interface NullableJobResponse extends BaseResponse {
21
+ readonly ok: true;
22
+ readonly job: Job | null;
23
+ }
24
+ export interface PulledJobResponse extends BaseResponse {
25
+ readonly ok: true;
26
+ readonly job: Job | null;
27
+ readonly token: string | null;
28
+ }
29
+ export interface PulledJobsResponse extends BaseResponse {
30
+ readonly ok: true;
31
+ readonly jobs: Job[];
32
+ readonly tokens: string[];
33
+ }
34
+ export interface JobsResponse extends BaseResponse {
35
+ readonly ok: true;
36
+ readonly jobs: Job[];
37
+ }
38
+ export interface StateResponse extends BaseResponse {
39
+ readonly ok: true;
40
+ readonly id: string;
41
+ readonly state: JobState;
42
+ }
43
+ export interface ResultResponse extends BaseResponse {
44
+ readonly ok: true;
45
+ readonly id: string;
46
+ readonly result: unknown;
47
+ }
48
+ export interface JobCounts {
49
+ readonly waiting: number;
50
+ readonly prioritized: number;
51
+ readonly delayed: number;
52
+ readonly active: number;
53
+ readonly completed: number;
54
+ readonly failed: number;
55
+ readonly 'waiting-children': number;
56
+ readonly paused: number;
57
+ }
58
+ export interface JobCountsResponse extends BaseResponse {
59
+ readonly ok: true;
60
+ readonly counts: JobCounts;
61
+ }
62
+ export interface QueueInfo {
63
+ readonly name: string;
64
+ readonly waiting: number;
65
+ readonly delayed: number;
66
+ readonly active: number;
67
+ readonly paused: boolean;
68
+ }
69
+ export interface QueuesResponse extends BaseResponse {
70
+ readonly ok: true;
71
+ readonly queues: QueueInfo[];
72
+ }
73
+ export interface ProgressResponse extends BaseResponse {
74
+ readonly ok: true;
75
+ readonly progress: number;
76
+ readonly message: string | null;
77
+ }
78
+ export interface BoolResponse extends BaseResponse {
79
+ readonly ok: true;
80
+ readonly value: boolean;
81
+ }
82
+ export interface CountResponse extends BaseResponse {
83
+ readonly ok: true;
84
+ readonly count: number;
85
+ readonly ids?: string[];
86
+ }
87
+ export interface StatsData {
88
+ readonly waiting: number;
89
+ readonly active: number;
90
+ readonly delayed: number;
91
+ readonly dlq: number;
92
+ readonly completed: number;
93
+ readonly failed: number;
94
+ readonly uptime: number;
95
+ readonly pushPerSec: number;
96
+ readonly pullPerSec: number;
97
+ }
98
+ export interface StatsResponse extends BaseResponse {
99
+ readonly ok: true;
100
+ readonly stats: StatsData;
101
+ }
102
+ export interface MetricsData {
103
+ readonly totalPushed: number;
104
+ readonly totalPulled: number;
105
+ readonly totalCompleted: number;
106
+ readonly totalFailed: number;
107
+ readonly avgLatencyMs: number;
108
+ readonly avgProcessingMs: number;
109
+ readonly memoryUsageMb: number;
110
+ readonly sqliteSizeMb: number;
111
+ readonly activeConnections: number;
112
+ }
113
+ export interface MetricsResponse extends BaseResponse {
114
+ readonly ok: true;
115
+ readonly metrics: MetricsData;
116
+ }
117
+ export interface CronInfo {
118
+ readonly name: string;
119
+ readonly jobName?: string;
120
+ readonly queue: string;
121
+ readonly schedule: string | null;
122
+ readonly repeatEvery: number | null;
123
+ readonly nextRun: number;
124
+ readonly executions: number;
125
+ readonly maxLimit?: number | null;
126
+ readonly timezone?: string | null;
127
+ readonly priority?: number;
128
+ }
129
+ export interface CronResponse extends BaseResponse {
130
+ readonly ok: true;
131
+ readonly cron: CronInfo;
132
+ }
133
+ export interface CronListResponse extends BaseResponse {
134
+ readonly ok: true;
135
+ readonly crons: CronInfo[];
136
+ }
137
+ export interface ErrorResponse extends BaseResponse {
138
+ readonly ok: false;
139
+ readonly error: string;
140
+ }
141
+ export interface HelloResponse extends BaseResponse {
142
+ readonly ok: true;
143
+ readonly protocolVersion: number;
144
+ readonly capabilities: ProtocolCapability[];
145
+ readonly server: string;
146
+ readonly version: string;
147
+ }
148
+ export interface DataResponse<T> extends BaseResponse {
149
+ readonly ok: true;
150
+ readonly data: T;
151
+ }
152
+ export type Response = OkResponse | BatchResponse | JobResponse | NullableJobResponse | PulledJobResponse | PulledJobsResponse | JobsResponse | StateResponse | ResultResponse | JobCountsResponse | QueuesResponse | ProgressResponse | BoolResponse | CountResponse | StatsResponse | MetricsResponse | CronResponse | CronListResponse | HelloResponse | ErrorResponse | DataResponse<unknown>;
@@ -0,0 +1,4 @@
1
+ import type { DlqEntry } from "./dlq.js";
2
+ export interface ShardOptions {
3
+ onDlqEvicted?: (entry: DlqEntry) => void;
4
+ }