bunqueue 2.8.54 → 2.8.57

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 (718) hide show
  1. package/dist/application/background/dlq.d.ts +2 -0
  2. package/dist/application/background/dlq.js +26 -0
  3. package/dist/application/background/lifecycle.d.ts +4 -0
  4. package/dist/application/background/lifecycle.js +90 -0
  5. package/dist/application/background/recovery/active.d.ts +4 -0
  6. package/dist/application/background/recovery/active.js +69 -0
  7. package/dist/application/background/recovery/index.d.ts +2 -0
  8. package/dist/application/background/recovery/index.js +22 -0
  9. package/dist/application/background/recovery/pending.d.ts +3 -0
  10. package/dist/application/background/recovery/pending.js +69 -0
  11. package/dist/application/background/recovery/restore.d.ts +5 -0
  12. package/dist/application/background/recovery/restore.js +58 -0
  13. package/dist/application/background/recovery/shared.d.ts +6 -0
  14. package/dist/application/background/recovery/shared.js +15 -0
  15. package/dist/application/background/timeouts.d.ts +25 -0
  16. package/dist/application/background/timeouts.js +191 -0
  17. package/dist/application/backgroundTasks.d.ts +7 -31
  18. package/dist/application/backgroundTasks.js +6 -442
  19. package/dist/application/cleanupTasks.js +1 -0
  20. package/dist/application/clientTracking.js +2 -0
  21. package/dist/application/contextFactory.d.ts +13 -90
  22. package/dist/application/contextFactory.js +8 -0
  23. package/dist/application/dependencyResultTracker.d.ts +1 -0
  24. package/dist/application/dependencyResultTracker.js +3 -0
  25. package/dist/application/dlqManager.d.ts +2 -8
  26. package/dist/application/dlqManager.js +33 -162
  27. package/dist/application/dlqRetry.d.ts +12 -0
  28. package/dist/application/dlqRetry.js +97 -0
  29. package/dist/application/lockManager.js +21 -1
  30. package/dist/application/lockOperations.js +16 -3
  31. package/dist/application/operations/ack/batch.d.ts +8 -0
  32. package/dist/application/operations/ack/batch.js +64 -0
  33. package/dist/application/operations/ack/completion.d.ts +3 -0
  34. package/dist/application/operations/ack/completion.js +74 -0
  35. package/dist/application/operations/ack/failure.d.ts +3 -0
  36. package/dist/application/operations/ack/failure.js +160 -0
  37. package/dist/application/operations/ack.d.ts +5 -79
  38. package/dist/application/operations/ack.js +4 -319
  39. package/dist/application/operations/ackHelpers.d.ts +3 -52
  40. package/dist/application/operations/ackHelpers.js +10 -3
  41. package/dist/application/operations/customId.d.ts +18 -5
  42. package/dist/application/operations/customId.js +36 -25
  43. package/dist/application/operations/flowValidation.js +9 -4
  44. package/dist/application/operations/jobManagement.js +44 -7
  45. package/dist/application/operations/parentLink.d.ts +36 -0
  46. package/dist/application/operations/parentLink.js +153 -0
  47. package/dist/application/operations/parentLinkInput.d.ts +8 -0
  48. package/dist/application/operations/parentLinkInput.js +23 -0
  49. package/dist/application/operations/push.d.ts +5 -44
  50. package/dist/application/operations/push.js +62 -152
  51. package/dist/application/operations/pushAdmission.d.ts +32 -0
  52. package/dist/application/operations/pushAdmission.js +38 -0
  53. package/dist/application/operations/pushBatch.d.ts +4 -0
  54. package/dist/application/operations/pushBatch.js +136 -0
  55. package/dist/application/operations/pushContext.d.ts +39 -0
  56. package/dist/application/operations/pushContext.js +1 -0
  57. package/dist/application/operations/pushDeduplication.d.ts +42 -0
  58. package/dist/application/operations/pushDeduplication.js +131 -0
  59. package/dist/application/operations/pushInsert.d.ts +13 -1
  60. package/dist/application/operations/pushInsert.js +33 -17
  61. package/dist/application/operations/pushLocks.js +13 -9
  62. package/dist/application/operations/query/collect.d.ts +12 -0
  63. package/dist/application/operations/query/collect.js +118 -0
  64. package/dist/application/operations/query/jobLookup.d.ts +9 -0
  65. package/dist/application/operations/query/jobLookup.js +110 -0
  66. package/dist/application/operations/query/pagination.d.ts +8 -0
  67. package/dist/application/operations/query/pagination.js +90 -0
  68. package/dist/application/operations/query/state.d.ts +4 -0
  69. package/dist/application/operations/query/state.js +63 -0
  70. package/dist/application/operations/queryOperations.d.ts +5 -50
  71. package/dist/application/operations/queryOperations.js +4 -474
  72. package/dist/application/queue-manager/ack.d.ts +23 -0
  73. package/dist/application/queue-manager/ack.js +242 -0
  74. package/dist/application/queue-manager/configuration.d.ts +27 -0
  75. package/dist/application/queue-manager/configuration.js +84 -0
  76. package/dist/application/queue-manager/context.d.ts +5 -0
  77. package/dist/application/queue-manager/context.js +61 -0
  78. package/dist/application/queue-manager/control.d.ts +17 -0
  79. package/dist/application/queue-manager/control.js +133 -0
  80. package/dist/application/queue-manager/delivery.d.ts +32 -0
  81. package/dist/application/queue-manager/delivery.js +143 -0
  82. package/dist/application/queue-manager/dependencies.d.ts +8 -0
  83. package/dist/application/queue-manager/dependencies.js +127 -0
  84. package/dist/application/queue-manager/dependency-runtime.d.ts +8 -0
  85. package/dist/application/queue-manager/dependency-runtime.js +40 -0
  86. package/dist/application/queue-manager/flow-failures.d.ts +18 -0
  87. package/dist/application/queue-manager/flow-failures.js +107 -0
  88. package/dist/application/queue-manager/flow-options.d.ts +8 -0
  89. package/dist/application/queue-manager/flow-options.js +129 -0
  90. package/dist/application/queue-manager/job-management.d.ts +17 -0
  91. package/dist/application/queue-manager/job-management.js +100 -0
  92. package/dist/application/queue-manager/lifecycle.d.ts +4 -0
  93. package/dist/application/queue-manager/lifecycle.js +41 -0
  94. package/dist/application/queue-manager/limits.d.ts +41 -0
  95. package/dist/application/queue-manager/limits.js +108 -0
  96. package/dist/application/queue-manager/locks.d.ts +21 -0
  97. package/dist/application/queue-manager/locks.js +59 -0
  98. package/dist/application/queue-manager/observability.d.ts +16 -0
  99. package/dist/application/queue-manager/observability.js +44 -0
  100. package/dist/application/queue-manager/queries.d.ts +17 -0
  101. package/dist/application/queue-manager/queries.js +118 -0
  102. package/dist/application/queue-manager/repeat.d.ts +4 -0
  103. package/dist/application/queue-manager/repeat.js +26 -0
  104. package/dist/application/queue-manager/services.d.ts +19 -0
  105. package/dist/application/queue-manager/services.js +80 -0
  106. package/dist/application/queue-manager/state.d.ts +92 -0
  107. package/dist/application/queue-manager/state.js +144 -0
  108. package/dist/application/queue-manager/stats.d.ts +28 -0
  109. package/dist/application/queue-manager/stats.js +52 -0
  110. package/dist/application/queueManager.d.ts +4 -400
  111. package/dist/application/queueManager.js +3 -1922
  112. package/dist/application/queueTelemetryJournal.d.ts +20 -0
  113. package/dist/application/queueTelemetryJournal.js +133 -0
  114. package/dist/application/repeatJobs.d.ts +7 -0
  115. package/dist/application/repeatJobs.js +132 -0
  116. package/dist/application/stallDetection.js +6 -1
  117. package/dist/application/types/ack.d.ts +132 -0
  118. package/dist/application/types/ack.js +1 -0
  119. package/dist/application/types/background.d.ts +18 -0
  120. package/dist/application/types/background.js +1 -0
  121. package/dist/application/types/config.d.ts +37 -0
  122. package/dist/application/{types.js → types/config.js} +3 -4
  123. package/dist/application/types/contextFactory.d.ts +83 -0
  124. package/dist/application/types/contextFactory.js +1 -0
  125. package/dist/application/types/contexts.d.ts +110 -0
  126. package/dist/application/types/contexts.js +1 -0
  127. package/dist/application/types/index.d.ts +7 -0
  128. package/dist/application/types/index.js +1 -0
  129. package/dist/application/types/query.d.ts +23 -0
  130. package/dist/application/types/query.js +1 -0
  131. package/dist/application/types/queueManager.d.ts +94 -0
  132. package/dist/application/types/queueManager.js +1 -0
  133. package/dist/cli/commandRouter.d.ts +1 -1
  134. package/dist/cli/commands/core.js +1 -0
  135. package/dist/cli/output/collections.d.ts +8 -0
  136. package/dist/cli/output/collections.js +131 -0
  137. package/dist/cli/output/jobs.d.ts +2 -0
  138. package/dist/cli/output/jobs.js +61 -0
  139. package/dist/cli/output/style.d.ts +14 -0
  140. package/dist/cli/output/style.js +28 -0
  141. package/dist/cli/output/success.d.ts +1 -0
  142. package/dist/cli/output/success.js +108 -0
  143. package/dist/cli/output.d.ts +1 -6
  144. package/dist/cli/output.js +7 -395
  145. package/dist/client/bunqueue/dlqRateLimit.d.ts +8 -0
  146. package/dist/client/bunqueue/dlqRateLimit.js +24 -0
  147. package/dist/client/bunqueue/runtime.d.ts +35 -0
  148. package/dist/client/bunqueue/runtime.js +138 -0
  149. package/dist/client/bunqueue.d.ts +19 -34
  150. package/dist/client/bunqueue.js +45 -166
  151. package/dist/client/dlqConversion.d.ts +5 -0
  152. package/dist/client/dlqConversion.js +28 -0
  153. package/dist/client/events.d.ts +7 -56
  154. package/dist/client/events.js +38 -15
  155. package/dist/client/flow.d.ts +6 -12
  156. package/dist/client/flow.js +16 -34
  157. package/dist/client/flowJobFactory.d.ts +9 -1
  158. package/dist/client/flowJobFactory.js +25 -9
  159. package/dist/client/flowJobMoveMethods.d.ts +5 -5
  160. package/dist/client/flowJobMoveMethods.js +31 -16
  161. package/dist/client/flowLegacyPlan.js +22 -8
  162. package/dist/client/flowOptions.d.ts +1 -1
  163. package/dist/client/flowOptions.js +2 -1
  164. package/dist/client/flowPlan.js +2 -3
  165. package/dist/client/flowPush.d.ts +1 -0
  166. package/dist/client/flowPush.js +5 -1
  167. package/dist/client/flowReader.js +5 -5
  168. package/dist/client/flowResults.d.ts +11 -0
  169. package/dist/client/flowResults.js +42 -0
  170. package/dist/client/index.d.ts +3 -1
  171. package/dist/client/jobConversion.d.ts +0 -4
  172. package/dist/client/jobConversion.js +32 -33
  173. package/dist/client/jobConversionHelpers.d.ts +18 -2
  174. package/dist/client/jobConversionHelpers.js +17 -10
  175. package/dist/client/jobConversionTypes.d.ts +5 -1
  176. package/dist/client/jobHelpers.d.ts +7 -2
  177. package/dist/client/jobHelpers.js +16 -8
  178. package/dist/client/queue/dlq.js +12 -14
  179. package/dist/client/queue/dlqJobMethods.js +11 -10
  180. package/dist/client/queue/dlqOps.js +2 -8
  181. package/dist/client/queue/dlqStats.d.ts +3 -0
  182. package/dist/client/queue/dlqStats.js +21 -0
  183. package/dist/client/queue/job-proxy/dependencies.d.ts +9 -0
  184. package/dist/client/queue/job-proxy/dependencies.js +67 -0
  185. package/dist/client/queue/job-proxy/reflection.d.ts +2 -0
  186. package/dist/client/queue/job-proxy/reflection.js +18 -0
  187. package/dist/client/queue/job-proxy/simple.d.ts +3 -0
  188. package/dist/client/queue/job-proxy/simple.js +316 -0
  189. package/dist/client/queue/job-proxy/tcp.d.ts +4 -0
  190. package/dist/client/queue/job-proxy/tcp.js +191 -0
  191. package/dist/client/queue/jobMetadata.d.ts +10 -0
  192. package/dist/client/queue/jobMetadata.js +24 -0
  193. package/dist/client/queue/jobMove.d.ts +4 -4
  194. package/dist/client/queue/jobMove.js +82 -24
  195. package/dist/client/queue/jobProxy.d.ts +4 -50
  196. package/dist/client/queue/jobProxy.js +3 -516
  197. package/dist/client/queue/operations/add/bulk.d.ts +7 -0
  198. package/dist/client/queue/operations/add/bulk.js +129 -0
  199. package/dist/client/queue/operations/add/payload.d.ts +24 -0
  200. package/dist/client/queue/operations/add/payload.js +85 -0
  201. package/dist/client/queue/operations/add/single.d.ts +3 -0
  202. package/dist/client/queue/operations/add/single.js +107 -0
  203. package/dist/client/queue/operations/add.d.ts +2 -47
  204. package/dist/client/queue/operations/add.js +2 -364
  205. package/dist/client/queue/operations/management.js +2 -1
  206. package/dist/client/queue/operations/query.js +20 -63
  207. package/dist/client/queue/queue.d.ts +6 -192
  208. package/dist/client/queue/queue.js +6 -559
  209. package/dist/client/queue/runtime/compatibility.d.ts +13 -0
  210. package/dist/client/queue/runtime/compatibility.js +38 -0
  211. package/dist/client/queue/runtime/configuration.d.ts +42 -0
  212. package/dist/client/queue/runtime/configuration.js +109 -0
  213. package/dist/client/queue/runtime/connection.d.ts +6 -0
  214. package/dist/client/queue/runtime/connection.js +16 -0
  215. package/dist/client/queue/runtime/control.d.ts +41 -0
  216. package/dist/client/queue/runtime/control.js +87 -0
  217. package/dist/client/queue/runtime/queries.d.ts +48 -0
  218. package/dist/client/queue/runtime/queries.js +95 -0
  219. package/dist/client/queue/runtime/scheduling.d.ts +33 -0
  220. package/dist/client/queue/runtime/scheduling.js +56 -0
  221. package/dist/client/queue/runtime/state.d.ts +96 -0
  222. package/dist/client/queue/runtime/state.js +149 -0
  223. package/dist/client/queue/scheduler.d.ts +2 -5
  224. package/dist/client/queue/scheduler.js +25 -23
  225. package/dist/client/queue/schedulerPagination.d.ts +7 -0
  226. package/dist/client/queue/schedulerPagination.js +10 -0
  227. package/dist/client/queue/types/add.d.ts +40 -0
  228. package/dist/client/queue/types/add.js +1 -0
  229. package/dist/client/queue/{queueTypes.d.ts → types/contexts.d.ts} +2 -2
  230. package/dist/client/queue/types/index.d.ts +3 -0
  231. package/dist/client/queue/types/index.js +1 -0
  232. package/dist/client/queue/types/job.d.ts +50 -0
  233. package/dist/client/queue/types/job.js +1 -0
  234. package/dist/client/queue/types/runtime.d.ts +35 -0
  235. package/dist/client/queue/types/runtime.js +1 -0
  236. package/dist/client/queue/workers.d.ts +4 -8
  237. package/dist/client/queue/workers.js +22 -14
  238. package/dist/client/queue-events/tcpSubscription.d.ts +23 -0
  239. package/dist/client/queue-events/tcpSubscription.js +99 -0
  240. package/dist/client/sandboxed/queueOps.d.ts +2 -2
  241. package/dist/client/sandboxed/queueOps.js +32 -5
  242. package/dist/client/sandboxed/runtime/dispatch.d.ts +13 -0
  243. package/dist/client/sandboxed/runtime/dispatch.js +186 -0
  244. package/dist/client/sandboxed/runtime/lifecycle.d.ts +20 -0
  245. package/dist/client/sandboxed/runtime/lifecycle.js +95 -0
  246. package/dist/client/sandboxed/runtime/log.d.ts +1 -0
  247. package/dist/client/sandboxed/runtime/log.js +15 -0
  248. package/dist/client/sandboxed/runtime/pool.d.ts +11 -0
  249. package/dist/client/sandboxed/runtime/pool.js +121 -0
  250. package/dist/client/sandboxed/runtime/recovery.d.ts +11 -0
  251. package/dist/client/sandboxed/runtime/recovery.js +122 -0
  252. package/dist/client/sandboxed/runtime/state.d.ts +39 -0
  253. package/dist/client/sandboxed/runtime/state.js +59 -0
  254. package/dist/client/sandboxed/types/index.d.ts +2 -0
  255. package/dist/client/sandboxed/types/index.js +1 -0
  256. package/dist/client/sandboxed/types/options.d.ts +27 -0
  257. package/dist/client/sandboxed/types/options.js +1 -0
  258. package/dist/client/sandboxed/types/process.d.ts +30 -0
  259. package/dist/client/sandboxed/types/process.js +1 -0
  260. package/dist/client/sandboxed/worker.d.ts +3 -85
  261. package/dist/client/sandboxed/worker.js +3 -557
  262. package/dist/client/sandboxed/wrapper.js +1 -0
  263. package/dist/client/tcp/client.d.ts +5 -112
  264. package/dist/client/tcp/client.js +5 -481
  265. package/dist/client/tcp/commandQueue.d.ts +23 -0
  266. package/dist/client/tcp/commandQueue.js +89 -0
  267. package/dist/client/tcp/connection.d.ts +4 -85
  268. package/dist/client/tcp/connection.js +3 -315
  269. package/dist/client/tcp/errors.d.ts +6 -0
  270. package/dist/client/tcp/errors.js +18 -0
  271. package/dist/client/tcp/runtime/commands.d.ts +9 -0
  272. package/dist/client/tcp/runtime/commands.js +124 -0
  273. package/dist/client/tcp/runtime/connectivity.d.ts +13 -0
  274. package/dist/client/tcp/runtime/connectivity.js +77 -0
  275. package/dist/client/tcp/runtime/health.d.ts +14 -0
  276. package/dist/client/tcp/runtime/health.js +127 -0
  277. package/dist/client/tcp/runtime/lifecycle.d.ts +8 -0
  278. package/dist/client/tcp/runtime/lifecycle.js +32 -0
  279. package/dist/client/tcp/runtime/state.d.ts +50 -0
  280. package/dist/client/tcp/runtime/state.js +45 -0
  281. package/dist/client/tcp/transport.d.ts +18 -0
  282. package/dist/client/tcp/transport.js +158 -0
  283. package/dist/client/tcp/types/command.d.ts +9 -0
  284. package/dist/client/tcp/types/command.js +1 -0
  285. package/dist/client/tcp/types/connection.d.ts +31 -0
  286. package/dist/client/tcp/types/connection.js +17 -0
  287. package/dist/client/tcp/types/index.d.ts +5 -0
  288. package/dist/client/tcp/types/index.js +1 -0
  289. package/dist/client/tcp/types/socket.d.ts +8 -0
  290. package/dist/client/tcp/types/socket.js +1 -0
  291. package/dist/client/tcp/types/tls.d.ts +4 -0
  292. package/dist/client/tcp/types/tls.js +1 -0
  293. package/dist/client/tcp/types.d.ts +2 -106
  294. package/dist/client/tcp/types.js +2 -22
  295. package/dist/client/types/connection.d.ts +29 -0
  296. package/dist/client/types/connection.js +1 -0
  297. package/dist/client/types/dlq.d.ts +45 -0
  298. package/dist/client/types/dlq.js +1 -0
  299. package/dist/client/types/events.d.ts +54 -0
  300. package/dist/client/types/events.js +1 -0
  301. package/dist/client/types/flow.d.ts +10 -0
  302. package/dist/client/types/flow.js +1 -0
  303. package/dist/client/types/index.d.ts +10 -0
  304. package/dist/client/types/index.js +1 -0
  305. package/dist/client/types/job.d.ts +127 -0
  306. package/dist/client/types/job.js +1 -0
  307. package/dist/client/types/metrics.d.ts +1 -0
  308. package/dist/client/types/metrics.js +1 -0
  309. package/dist/client/types/options.d.ts +62 -0
  310. package/dist/client/types/options.js +1 -0
  311. package/dist/client/types/worker.d.ts +38 -0
  312. package/dist/client/types/worker.js +1 -0
  313. package/dist/client/types.d.ts +2 -583
  314. package/dist/client/types.js +2 -6
  315. package/dist/client/worker/ackBatcher.d.ts +1 -1
  316. package/dist/client/worker/ackBatcher.js +17 -5
  317. package/dist/client/worker/ackOutcome.d.ts +8 -0
  318. package/dist/client/worker/ackOutcome.js +58 -0
  319. package/dist/client/worker/constants.d.ts +7 -0
  320. package/dist/client/worker/{types.js → constants.js} +0 -6
  321. package/dist/client/worker/groupConcurrency.js +3 -0
  322. package/dist/client/worker/handlers/completion.d.ts +28 -0
  323. package/dist/client/worker/handlers/completion.js +68 -0
  324. package/dist/client/worker/handlers/dependencies.d.ts +11 -0
  325. package/dist/client/worker/handlers/dependencies.js +107 -0
  326. package/dist/client/worker/handlers/mutations.d.ts +23 -0
  327. package/dist/client/worker/handlers/mutations.js +211 -0
  328. package/dist/client/worker/handlers/queries.d.ts +15 -0
  329. package/dist/client/worker/handlers/queries.js +100 -0
  330. package/dist/client/worker/index.d.ts +2 -2
  331. package/dist/client/worker/index.js +1 -1
  332. package/dist/client/worker/jobParser.js +4 -2
  333. package/dist/client/worker/processor.d.ts +2 -15
  334. package/dist/client/worker/processor.js +67 -124
  335. package/dist/client/worker/processorHandlers.d.ts +4 -61
  336. package/dist/client/worker/processorHandlers.js +4 -398
  337. package/dist/client/worker/processorOutcome.d.ts +14 -0
  338. package/dist/client/worker/processorOutcome.js +125 -0
  339. package/dist/client/worker/runtime/buffer.d.ts +8 -0
  340. package/dist/client/worker/runtime/buffer.js +50 -0
  341. package/dist/client/worker/runtime/control.d.ts +26 -0
  342. package/dist/client/worker/runtime/control.js +175 -0
  343. package/dist/client/worker/runtime/execution.d.ts +11 -0
  344. package/dist/client/worker/runtime/execution.js +123 -0
  345. package/dist/client/worker/runtime/lifecycle.d.ts +7 -0
  346. package/dist/client/worker/runtime/lifecycle.js +114 -0
  347. package/dist/client/worker/runtime/manual.d.ts +10 -0
  348. package/dist/client/worker/runtime/manual.js +137 -0
  349. package/dist/client/worker/runtime/options.d.ts +5 -0
  350. package/dist/client/worker/runtime/options.js +39 -0
  351. package/dist/client/worker/runtime/polling.d.ts +12 -0
  352. package/dist/client/worker/runtime/polling.js +123 -0
  353. package/dist/client/worker/runtime/state.d.ts +110 -0
  354. package/dist/client/worker/runtime/state.js +156 -0
  355. package/dist/client/worker/types/index.d.ts +5 -0
  356. package/dist/client/worker/types/index.js +1 -0
  357. package/dist/client/worker/types/manual.d.ts +7 -0
  358. package/dist/client/worker/types/manual.js +1 -0
  359. package/dist/client/worker/types/options.d.ts +24 -0
  360. package/dist/client/worker/types/options.js +1 -0
  361. package/dist/client/worker/types/outcome.d.ts +23 -0
  362. package/dist/client/worker/types/outcome.js +1 -0
  363. package/dist/client/worker/types/processor.d.ts +22 -0
  364. package/dist/client/worker/types/processor.js +1 -0
  365. package/dist/client/worker/types/transport.d.ts +11 -0
  366. package/dist/client/worker/types/transport.js +1 -0
  367. package/dist/client/worker/worker.d.ts +3 -160
  368. package/dist/client/worker/worker.js +3 -928
  369. package/dist/client/worker/workerRateLimiter.d.ts +5 -1
  370. package/dist/client/worker/workerRateLimiter.js +40 -20
  371. package/dist/client/worker.d.ts +1 -0
  372. package/dist/client/workflow/compensationChild.d.ts +2 -1
  373. package/dist/client/workflow/compensationChild.js +1 -1
  374. package/dist/client/workflow/compensationClaim.d.ts +11 -0
  375. package/dist/client/workflow/compensationClaim.js +30 -0
  376. package/dist/client/workflow/compensator.d.ts +7 -2
  377. package/dist/client/workflow/compensator.js +5 -11
  378. package/dist/client/workflow/recovery.js +25 -2
  379. package/dist/client/workflow/rollbackControl.js +1 -1
  380. package/dist/domain/job/constants.d.ts +12 -0
  381. package/dist/domain/job/constants.js +12 -0
  382. package/dist/domain/job/create.d.ts +2 -0
  383. package/dist/domain/job/create.js +103 -0
  384. package/dist/domain/job/ids.d.ts +5 -0
  385. package/dist/domain/job/ids.js +12 -0
  386. package/dist/domain/job/locks.d.ts +4 -0
  387. package/dist/domain/job/locks.js +23 -0
  388. package/dist/domain/job/payload.d.ts +18 -0
  389. package/dist/domain/job/payload.js +43 -0
  390. package/dist/domain/job/state.d.ts +8 -0
  391. package/dist/domain/job/state.js +51 -0
  392. package/dist/domain/job/terminal.d.ts +3 -0
  393. package/dist/domain/job/terminal.js +9 -0
  394. package/dist/domain/queue/dlqShard.d.ts +2 -0
  395. package/dist/domain/queue/dlqShard.js +34 -9
  396. package/dist/domain/queue/priorityQueue.js +3 -39
  397. package/dist/domain/queue/priorityQueueOrder.d.ts +3 -0
  398. package/dist/domain/queue/priorityQueueOrder.js +21 -0
  399. package/dist/domain/queue/shard/dependencies.d.ts +11 -0
  400. package/dist/domain/queue/shard/dependencies.js +22 -0
  401. package/dist/domain/queue/shard/dlq.d.ts +25 -0
  402. package/dist/domain/queue/shard/dlq.js +71 -0
  403. package/dist/domain/queue/shard/keys.d.ts +18 -0
  404. package/dist/domain/queue/shard/keys.js +45 -0
  405. package/dist/domain/queue/shard/lifecycle.d.ts +10 -0
  406. package/dist/domain/queue/shard/lifecycle.js +43 -0
  407. package/dist/domain/queue/shard/limits.d.ts +24 -0
  408. package/dist/domain/queue/shard/limits.js +57 -0
  409. package/dist/domain/queue/shard/metrics.d.ts +32 -0
  410. package/dist/domain/queue/shard/metrics.js +72 -0
  411. package/dist/domain/queue/shard/state.d.ts +34 -0
  412. package/dist/domain/queue/shard/state.js +80 -0
  413. package/dist/domain/queue/shard.d.ts +5 -145
  414. package/dist/domain/queue/shard.js +4 -409
  415. package/dist/domain/response/builders.d.ts +15 -0
  416. package/dist/domain/response/builders.js +39 -0
  417. package/dist/domain/types/command.d.ts +2 -555
  418. package/dist/domain/types/command.js +2 -5
  419. package/dist/domain/types/commands/base.d.ts +5 -0
  420. package/dist/domain/types/commands/base.js +1 -0
  421. package/dist/domain/types/commands/core.d.ts +106 -0
  422. package/dist/domain/types/commands/core.js +1 -0
  423. package/dist/domain/types/commands/cron.d.ts +36 -0
  424. package/dist/domain/types/commands/cron.js +1 -0
  425. package/dist/domain/types/commands/dashboard.d.ts +13 -0
  426. package/dist/domain/types/commands/dashboard.js +1 -0
  427. package/dist/domain/types/commands/dlq.d.ts +39 -0
  428. package/dist/domain/types/commands/dlq.js +1 -0
  429. package/dist/domain/types/commands/extended.d.ts +63 -0
  430. package/dist/domain/types/commands/extended.js +1 -0
  431. package/dist/domain/types/commands/index.d.ts +12 -0
  432. package/dist/domain/types/commands/index.js +12 -0
  433. package/dist/domain/types/commands/limits.d.ts +54 -0
  434. package/dist/domain/types/commands/limits.js +1 -0
  435. package/dist/domain/types/commands/management.d.ts +73 -0
  436. package/dist/domain/types/commands/management.js +1 -0
  437. package/dist/domain/types/commands/monitoring.d.ts +49 -0
  438. package/dist/domain/types/commands/monitoring.js +1 -0
  439. package/dist/domain/types/commands/protocol.d.ts +20 -0
  440. package/dist/domain/types/commands/protocol.js +1 -0
  441. package/dist/domain/types/commands/query.d.ts +46 -0
  442. package/dist/domain/types/commands/query.js +1 -0
  443. package/dist/domain/types/commands/union.d.ts +13 -0
  444. package/dist/domain/types/commands/union.js +1 -0
  445. package/dist/domain/types/commands/workers.d.ts +39 -0
  446. package/dist/domain/types/commands/workers.js +1 -0
  447. package/dist/domain/types/cron.d.ts +4 -2
  448. package/dist/domain/types/cron.js +3 -0
  449. package/dist/domain/types/dlq.d.ts +17 -0
  450. package/dist/domain/types/dlq.js +70 -14
  451. package/dist/domain/types/index.d.ts +2 -0
  452. package/dist/domain/types/index.js +1 -0
  453. package/dist/domain/types/job.d.ts +8 -269
  454. package/dist/domain/types/job.js +8 -234
  455. package/dist/domain/types/jobs/model.d.ts +152 -0
  456. package/dist/domain/types/jobs/model.js +1 -0
  457. package/dist/domain/types/metrics.d.ts +16 -0
  458. package/dist/domain/types/metrics.js +1 -0
  459. package/dist/domain/types/priorityQueue.d.ts +12 -0
  460. package/dist/domain/types/priorityQueue.js +1 -0
  461. package/dist/domain/types/protocol.d.ts +5 -0
  462. package/dist/domain/types/protocol.js +4 -0
  463. package/dist/domain/types/queue.d.ts +2 -0
  464. package/dist/domain/types/response.d.ts +3 -192
  465. package/dist/domain/types/response.js +3 -101
  466. package/dist/domain/types/responses/model.d.ts +152 -0
  467. package/dist/domain/types/responses/model.js +1 -0
  468. package/dist/domain/types/shard.d.ts +4 -0
  469. package/dist/domain/types/shard.js +1 -0
  470. package/dist/infrastructure/cloud/cloudAgent.js +6 -0
  471. package/dist/infrastructure/cloud/commandHandler.d.ts +2 -41
  472. package/dist/infrastructure/cloud/commandHandler.js +1 -1
  473. package/dist/infrastructure/cloud/commands/integrations.d.ts +2 -0
  474. package/dist/infrastructure/cloud/commands/integrations.js +31 -0
  475. package/dist/infrastructure/cloud/commands/jobMapper.d.ts +56 -0
  476. package/dist/infrastructure/cloud/commands/jobMapper.js +72 -0
  477. package/dist/infrastructure/cloud/commands/jobs.d.ts +2 -0
  478. package/dist/infrastructure/cloud/commands/jobs.js +111 -0
  479. package/dist/infrastructure/cloud/commands/queues.d.ts +2 -0
  480. package/dist/infrastructure/cloud/commands/queues.js +126 -0
  481. package/dist/infrastructure/cloud/commands.d.ts +3 -10
  482. package/dist/infrastructure/cloud/commands.js +7 -344
  483. package/dist/infrastructure/cloud/snapshot/analytics.d.ts +16 -0
  484. package/dist/infrastructure/cloud/snapshot/analytics.js +132 -0
  485. package/dist/infrastructure/cloud/snapshot/collector.d.ts +24 -0
  486. package/dist/infrastructure/cloud/snapshot/collector.js +105 -0
  487. package/dist/infrastructure/cloud/snapshot/config.d.ts +5 -0
  488. package/dist/infrastructure/cloud/snapshot/config.js +86 -0
  489. package/dist/infrastructure/cloud/snapshot/jobs.d.ts +5 -0
  490. package/dist/infrastructure/cloud/snapshot/jobs.js +148 -0
  491. package/dist/infrastructure/cloud/snapshot/stalls.d.ts +3 -0
  492. package/dist/infrastructure/cloud/snapshot/stalls.js +34 -0
  493. package/dist/infrastructure/cloud/snapshotCollector.d.ts +2 -53
  494. package/dist/infrastructure/cloud/snapshotCollector.js +5 -107
  495. package/dist/infrastructure/cloud/snapshotHelpers.d.ts +5 -45
  496. package/dist/infrastructure/cloud/snapshotHelpers.js +4 -426
  497. package/dist/infrastructure/cloud/types/collector.d.ts +54 -0
  498. package/dist/infrastructure/cloud/types/collector.js +1 -0
  499. package/dist/infrastructure/cloud/types/command.d.ts +44 -0
  500. package/dist/infrastructure/cloud/types/command.js +1 -0
  501. package/dist/infrastructure/cloud/types/config.d.ts +18 -0
  502. package/dist/infrastructure/cloud/types/config.js +1 -0
  503. package/dist/infrastructure/cloud/types/event.d.ts +14 -0
  504. package/dist/infrastructure/cloud/types/event.js +1 -0
  505. package/dist/infrastructure/cloud/types/redact.d.ts +4 -0
  506. package/dist/infrastructure/cloud/types/redact.js +1 -0
  507. package/dist/infrastructure/cloud/types/snapshot.d.ts +52 -0
  508. package/dist/infrastructure/cloud/types/snapshot.js +1 -0
  509. package/dist/infrastructure/cloud/types/snapshotCore.d.ts +125 -0
  510. package/dist/infrastructure/cloud/types/snapshotCore.js +1 -0
  511. package/dist/infrastructure/cloud/types/snapshotJobs.d.ts +124 -0
  512. package/dist/infrastructure/cloud/types/snapshotJobs.js +1 -0
  513. package/dist/infrastructure/cloud/types/snapshotTelemetry.d.ts +100 -0
  514. package/dist/infrastructure/cloud/types/snapshotTelemetry.js +1 -0
  515. package/dist/infrastructure/cloud/types.d.ts +3 -445
  516. package/dist/infrastructure/cloud/types.js +0 -4
  517. package/dist/infrastructure/persistence/batchInsert.d.ts +13 -0
  518. package/dist/infrastructure/persistence/batchInsert.js +96 -0
  519. package/dist/infrastructure/persistence/jobOptionsBlob.d.ts +18 -0
  520. package/dist/infrastructure/persistence/jobOptionsBlob.js +56 -0
  521. package/dist/infrastructure/persistence/legacyNameMigration.d.ts +5 -0
  522. package/dist/infrastructure/persistence/legacyNameMigration.js +42 -0
  523. package/dist/infrastructure/persistence/migrations.d.ts +3 -0
  524. package/dist/infrastructure/persistence/migrations.js +120 -0
  525. package/dist/infrastructure/persistence/schema.d.ts +3 -5
  526. package/dist/infrastructure/persistence/schema.js +40 -136
  527. package/dist/infrastructure/persistence/sqlite/admission.d.ts +9 -0
  528. package/dist/infrastructure/persistence/sqlite/admission.js +34 -0
  529. package/dist/infrastructure/persistence/sqlite/control.d.ts +32 -0
  530. package/dist/infrastructure/persistence/sqlite/control.js +90 -0
  531. package/dist/infrastructure/persistence/sqlite/flows.d.ts +26 -0
  532. package/dist/infrastructure/persistence/sqlite/flows.js +167 -0
  533. package/dist/infrastructure/persistence/sqlite/jobs.d.ts +23 -0
  534. package/dist/infrastructure/persistence/sqlite/jobs.js +166 -0
  535. package/dist/infrastructure/persistence/sqlite/lifecycle.d.ts +6 -0
  536. package/dist/infrastructure/persistence/sqlite/lifecycle.js +30 -0
  537. package/dist/infrastructure/persistence/sqlite/mutations.d.ts +20 -0
  538. package/dist/infrastructure/persistence/sqlite/mutations.js +149 -0
  539. package/dist/infrastructure/persistence/sqlite/queries.d.ts +23 -0
  540. package/dist/infrastructure/persistence/sqlite/queries.js +89 -0
  541. package/dist/infrastructure/persistence/sqlite/records.d.ts +24 -0
  542. package/dist/infrastructure/persistence/sqlite/records.js +115 -0
  543. package/dist/infrastructure/persistence/sqlite/state.d.ts +36 -0
  544. package/dist/infrastructure/persistence/sqlite/state.js +207 -0
  545. package/dist/infrastructure/persistence/sqlite/telemetry.d.ts +16 -0
  546. package/dist/infrastructure/persistence/sqlite/telemetry.js +126 -0
  547. package/dist/infrastructure/persistence/sqlite.d.ts +5 -280
  548. package/dist/infrastructure/persistence/sqlite.js +3 -1013
  549. package/dist/infrastructure/persistence/sqliteBatch.d.ts +4 -121
  550. package/dist/infrastructure/persistence/sqliteBatch.js +3 -422
  551. package/dist/infrastructure/persistence/sqliteSerializer.d.ts +6 -1
  552. package/dist/infrastructure/persistence/sqliteSerializer.js +33 -11
  553. package/dist/infrastructure/persistence/statements.d.ts +5 -1
  554. package/dist/infrastructure/persistence/statements.js +14 -9
  555. package/dist/infrastructure/persistence/types/admission.d.ts +8 -0
  556. package/dist/infrastructure/persistence/types/admission.js +1 -0
  557. package/dist/infrastructure/persistence/types/batch.d.ts +12 -0
  558. package/dist/infrastructure/persistence/types/batch.js +1 -0
  559. package/dist/infrastructure/persistence/types/sqlite.d.ts +17 -0
  560. package/dist/infrastructure/persistence/types/sqlite.js +1 -0
  561. package/dist/infrastructure/persistence/writeBuffer.d.ts +38 -0
  562. package/dist/infrastructure/persistence/writeBuffer.js +221 -0
  563. package/dist/infrastructure/scheduler/cron/execution.d.ts +12 -0
  564. package/dist/infrastructure/scheduler/cron/execution.js +150 -0
  565. package/dist/infrastructure/scheduler/cron/runtime.d.ts +31 -0
  566. package/dist/infrastructure/scheduler/cron/runtime.js +143 -0
  567. package/dist/infrastructure/scheduler/cronScheduler.d.ts +4 -117
  568. package/dist/infrastructure/scheduler/cronScheduler.js +3 -436
  569. package/dist/infrastructure/scheduler/types/cronScheduler.d.ts +16 -0
  570. package/dist/infrastructure/scheduler/types/cronScheduler.js +1 -0
  571. package/dist/infrastructure/server/bootstrap.js +3 -0
  572. package/dist/infrastructure/server/handler-routes/control.d.ts +8 -0
  573. package/dist/infrastructure/server/handler-routes/control.js +82 -0
  574. package/dist/infrastructure/server/handler-routes/jobs.d.ts +6 -0
  575. package/dist/infrastructure/server/handler-routes/jobs.js +110 -0
  576. package/dist/infrastructure/server/handler-routes/monitoring.d.ts +5 -0
  577. package/dist/infrastructure/server/handler-routes/monitoring.js +65 -0
  578. package/dist/infrastructure/server/handlerRoutes.d.ts +3 -26
  579. package/dist/infrastructure/server/handlerRoutes.js +3 -270
  580. package/dist/infrastructure/server/handlers/advanced/configNumbers.d.ts +2 -0
  581. package/dist/infrastructure/server/handlers/advanced/configNumbers.js +26 -0
  582. package/dist/infrastructure/server/handlers/advanced/dependencies.d.ts +15 -0
  583. package/dist/infrastructure/server/handlers/advanced/dependencies.js +38 -0
  584. package/dist/infrastructure/server/handlers/advanced/jobs.d.ts +33 -0
  585. package/dist/infrastructure/server/handlers/advanced/jobs.js +136 -0
  586. package/dist/infrastructure/server/handlers/advanced/queue.d.ts +42 -0
  587. package/dist/infrastructure/server/handlers/advanced/queue.js +111 -0
  588. package/dist/infrastructure/server/handlers/advanced.d.ts +3 -121
  589. package/dist/infrastructure/server/handlers/advanced.js +3 -336
  590. package/dist/infrastructure/server/handlers/core.d.ts +1 -4
  591. package/dist/infrastructure/server/handlers/core.js +37 -20
  592. package/dist/infrastructure/server/handlers/cron.js +9 -1
  593. package/dist/infrastructure/server/handlers/flow.js +6 -1
  594. package/dist/infrastructure/server/handlers/introspection.js +1 -1
  595. package/dist/infrastructure/server/handlers/management.d.ts +8 -0
  596. package/dist/infrastructure/server/handlers/management.js +30 -0
  597. package/dist/infrastructure/server/handlers/monitoring/health.d.ts +13 -0
  598. package/dist/infrastructure/server/handlers/monitoring/health.js +61 -0
  599. package/dist/infrastructure/server/handlers/monitoring/operations.d.ts +8 -0
  600. package/dist/infrastructure/server/handlers/monitoring/operations.js +28 -0
  601. package/dist/infrastructure/server/handlers/monitoring/webhooks.d.ts +7 -0
  602. package/dist/infrastructure/server/handlers/monitoring/webhooks.js +56 -0
  603. package/dist/infrastructure/server/handlers/monitoring/workers.d.ts +6 -0
  604. package/dist/infrastructure/server/handlers/monitoring/workers.js +57 -0
  605. package/dist/infrastructure/server/handlers/monitoring.d.ts +4 -30
  606. package/dist/infrastructure/server/handlers/monitoring.js +4 -222
  607. package/dist/infrastructure/server/handlers/pushBatchValidation.d.ts +1 -1
  608. package/dist/infrastructure/server/handlers/pushBatchValidation.js +7 -0
  609. package/dist/infrastructure/server/handlers/query.js +12 -3
  610. package/dist/infrastructure/server/http-routes/jobAdvanced.d.ts +2 -0
  611. package/dist/infrastructure/server/http-routes/jobAdvanced.js +106 -0
  612. package/dist/infrastructure/server/http-routes/jobManagement.d.ts +2 -0
  613. package/dist/infrastructure/server/http-routes/jobManagement.js +74 -0
  614. package/dist/infrastructure/server/http-routes/queueJobs.d.ts +2 -0
  615. package/dist/infrastructure/server/http-routes/queueJobs.js +108 -0
  616. package/dist/infrastructure/server/httpRouteJobs.d.ts +1 -8
  617. package/dist/infrastructure/server/httpRouteJobs.js +33 -222
  618. package/dist/infrastructure/server/httpRouteQueues.d.ts +1 -6
  619. package/dist/infrastructure/server/httpRouteQueues.js +51 -217
  620. package/dist/infrastructure/server/httpRouteResources.js +1 -0
  621. package/dist/infrastructure/server/protocol/commands.d.ts +8 -0
  622. package/dist/infrastructure/server/protocol/commands.js +31 -0
  623. package/dist/infrastructure/server/protocol/frameParser.d.ts +16 -0
  624. package/dist/infrastructure/server/protocol/frameParser.js +65 -0
  625. package/dist/infrastructure/server/protocol/lineBuffer.d.ts +6 -0
  626. package/dist/infrastructure/server/protocol/lineBuffer.js +21 -0
  627. package/dist/infrastructure/server/protocol/validation.d.ts +9 -0
  628. package/dist/infrastructure/server/protocol/validation.js +75 -0
  629. package/dist/infrastructure/server/protocol.d.ts +5 -77
  630. package/dist/infrastructure/server/protocol.js +4 -265
  631. package/dist/infrastructure/server/rateLimiter.js +1 -0
  632. package/dist/infrastructure/server/socketWriteQueue.d.ts +1 -1
  633. package/dist/infrastructure/server/socketWriteQueue.js +8 -5
  634. package/dist/infrastructure/server/sse/constants.d.ts +5 -0
  635. package/dist/infrastructure/server/sse/constants.js +5 -0
  636. package/dist/infrastructure/server/sse/eventBuffer.d.ts +3 -0
  637. package/dist/infrastructure/server/sse/eventBuffer.js +21 -0
  638. package/dist/infrastructure/server/sseHandler.d.ts +2 -6
  639. package/dist/infrastructure/server/sseHandler.js +20 -96
  640. package/dist/infrastructure/server/tcp/clientRelease.d.ts +2 -0
  641. package/dist/infrastructure/server/tcp/clientRelease.js +18 -0
  642. package/dist/infrastructure/server/tcp/connections.d.ts +24 -0
  643. package/dist/infrastructure/server/tcp/connections.js +162 -0
  644. package/dist/infrastructure/server/tcp/constants.d.ts +3 -0
  645. package/dist/infrastructure/server/tcp/constants.js +3 -0
  646. package/dist/infrastructure/server/tcp/eventSubscriptions.d.ts +10 -0
  647. package/dist/infrastructure/server/tcp/eventSubscriptions.js +17 -0
  648. package/dist/infrastructure/server/tcp/responses.d.ts +3 -0
  649. package/dist/infrastructure/server/tcp/responses.js +8 -0
  650. package/dist/infrastructure/server/tcp.d.ts +10 -68
  651. package/dist/infrastructure/server/tcp.js +47 -256
  652. package/dist/infrastructure/server/types/protocol.d.ts +4 -0
  653. package/dist/infrastructure/server/types/protocol.js +1 -0
  654. package/dist/infrastructure/server/types/sse.d.ts +11 -0
  655. package/dist/infrastructure/server/types/sse.js +1 -0
  656. package/dist/infrastructure/server/types/tcpServer.d.ts +25 -0
  657. package/dist/infrastructure/server/types/tcpServer.js +1 -0
  658. package/dist/infrastructure/server/types/ws.d.ts +6 -0
  659. package/dist/infrastructure/server/types/ws.js +1 -0
  660. package/dist/infrastructure/server/ws/constants.d.ts +6 -0
  661. package/dist/infrastructure/server/ws/constants.js +130 -0
  662. package/dist/infrastructure/server/ws/snapshots.d.ts +4 -0
  663. package/dist/infrastructure/server/ws/snapshots.js +52 -0
  664. package/dist/infrastructure/server/ws/subscriptions.d.ts +10 -0
  665. package/dist/infrastructure/server/ws/subscriptions.js +39 -0
  666. package/dist/infrastructure/server/wsHandler.d.ts +2 -10
  667. package/dist/infrastructure/server/wsHandler.js +12 -237
  668. package/dist/mcp/adapter.d.ts +5 -403
  669. package/dist/mcp/adapter.js +6 -778
  670. package/dist/mcp/backend/embedded/base.d.ts +7 -0
  671. package/dist/mcp/backend/embedded/base.js +15 -0
  672. package/dist/mcp/backend/embedded/index.d.ts +14 -0
  673. package/dist/mcp/backend/embedded/index.js +22 -0
  674. package/dist/mcp/backend/embedded/jobs.d.ts +44 -0
  675. package/dist/mcp/backend/embedded/jobs.js +98 -0
  676. package/dist/mcp/backend/embedded/queues.d.ts +27 -0
  677. package/dist/mcp/backend/embedded/queues.js +84 -0
  678. package/dist/mcp/backend/embedded/services.d.ts +29 -0
  679. package/dist/mcp/backend/embedded/services.js +107 -0
  680. package/dist/mcp/backend/serializers.d.ts +7 -0
  681. package/dist/mcp/backend/serializers.js +32 -0
  682. package/dist/mcp/backend/tcp/base.d.ts +19 -0
  683. package/dist/mcp/backend/tcp/base.js +54 -0
  684. package/dist/mcp/backend/tcp/index.d.ts +14 -0
  685. package/dist/mcp/backend/tcp/index.js +20 -0
  686. package/dist/mcp/backend/tcp/jobs.d.ts +44 -0
  687. package/dist/mcp/backend/tcp/jobs.js +122 -0
  688. package/dist/mcp/backend/tcp/queues.d.ts +27 -0
  689. package/dist/mcp/backend/tcp/queues.js +89 -0
  690. package/dist/mcp/backend/tcp/services.d.ts +30 -0
  691. package/dist/mcp/backend/tcp/services.js +161 -0
  692. package/dist/mcp/types/adapter.d.ts +176 -0
  693. package/dist/mcp/types/adapter.js +1 -0
  694. package/dist/shared/asyncLock.d.ts +13 -0
  695. package/dist/shared/asyncLock.js +65 -0
  696. package/dist/shared/lock.d.ts +10 -72
  697. package/dist/shared/lock.js +7 -231
  698. package/dist/shared/lockError.d.ts +3 -0
  699. package/dist/shared/lockError.js +6 -0
  700. package/dist/shared/lockTimeout.d.ts +2 -0
  701. package/dist/shared/lockTimeout.js +2 -0
  702. package/dist/shared/rwLock.d.ts +22 -0
  703. package/dist/shared/rwLock.js +124 -0
  704. package/dist/shared/serialization.js +1 -0
  705. package/dist/shared/skipList.d.ts +0 -5
  706. package/dist/shared/skipList.js +10 -57
  707. package/dist/shared/skipListNodes.d.ts +6 -0
  708. package/dist/shared/skipListNodes.js +43 -0
  709. package/dist/shared/types/lock.d.ts +7 -0
  710. package/dist/shared/types/lock.js +1 -0
  711. package/dist/shared/types/skipList.d.ts +4 -0
  712. package/dist/shared/types/skipList.js +1 -0
  713. package/package.json +2 -1
  714. package/dist/application/types.d.ts +0 -148
  715. package/dist/client/sandboxed/types.d.ts +0 -79
  716. package/dist/client/sandboxed/types.js +0 -5
  717. package/dist/client/worker/types.d.ts +0 -50
  718. /package/dist/client/queue/{queueTypes.js → types/contexts.js} +0 -0
@@ -1,482 +1,6 @@
1
- /**
2
- * TCP Client
3
- * Production-ready TCP client with auto-reconnection (msgpack binary protocol)
4
- * Supports pipelining via reqId-based response matching for high throughput
5
- */
6
- import { EventEmitter } from 'events';
7
- import { DEFAULT_CONNECTION } from './types';
8
- import { HealthTracker } from './health';
9
- import { ReconnectManager } from './reconnect';
10
- import { createConnection, CommandQueue } from './connection';
11
- import { FrameParser } from '../../infrastructure/server/protocol';
12
- import { decodeMessagePack, encodeMessagePack } from '../../shared/msgpack';
13
- /**
14
- * Sentinel error class for the synthetic rejection issued by close()/rejectAll().
15
- * Using a dedicated subclass (instead of matching `error.message`) ensures the
16
- * process-level filter never collides with user code that happens to throw an
17
- * Error whose message is "Client closed" (Redis, HTTP, DB pool clients all do).
18
- */
19
- export class ClientClosedError extends Error {
20
- constructor(message = 'Client closed') {
21
- super(message);
22
- this.name = 'ClientClosedError';
23
- }
24
- }
25
- /**
26
- * One-time installer of a process-level filter that swallows the synthetic
27
- * ClientClosedError issued by close()/rejectAll(). Catches the rare chained-
28
- * Promise leak that `cmd.promise?.catch(() => {})` in rejectAll cannot reach
29
- * (e.g. await-then-throw patterns where the rejection propagates through the
30
- * awaiter's own Promise chain).
31
- *
32
- * Implementation note: the listener is intentionally a no-op for non-matching
33
- * rejections. process.on('unhandledRejection', fn) calls all registered
34
- * listeners independently — so existing handlers (e.g. main.ts shutdown
35
- * handler) still fire for real rejections. We must NOT re-throw here because
36
- * a throw inside an unhandledRejection listener becomes an uncaughtException,
37
- * which would interact badly with main.ts's existing uncaughtException
38
- * handler and cause double-shutdown attempts.
39
- */
40
- let clientClosedFilterInstalled = false;
41
- function installClientClosedFilter() {
42
- if (clientClosedFilterInstalled)
43
- return;
44
- clientClosedFilterInstalled = true;
45
- process.on('unhandledRejection', (reason) => {
46
- if (reason instanceof ClientClosedError) {
47
- return; // swallow — other listeners (if any) fire independently
48
- }
49
- // Non-matching rejection: no-op here. Other registered listeners (or the
50
- // runtime default per --unhandled-rejections) handle it independently.
51
- });
52
- }
53
- /**
54
- * TCP Client - manages connection to bunqueue server
55
- * Supports pipelining for high-throughput operations
56
- */
57
- export class TcpClient extends EventEmitter {
58
- // biome-ignore lint/suspicious/noExplicitAny: EventEmitter's fallback overload requires any[]
59
- on(event, listener) {
60
- return super.on(event, listener);
61
- }
62
- // biome-ignore lint/suspicious/noExplicitAny: EventEmitter's fallback overload requires any[]
63
- once(event, listener) {
64
- return super.once(event, listener);
65
- }
66
- socket = null;
67
- connected = false;
68
- connecting = false;
69
- options;
70
- health;
71
- reconnect;
72
- commands;
73
- /** Request ID counter for pipelining support */
74
- reqIdCounter = 0;
75
- constructor(options = {}) {
76
- super();
77
- this.options = { ...DEFAULT_CONNECTION, ...options };
78
- this.commands = new CommandQueue();
79
- this.health = new HealthTracker({
80
- pingInterval: this.options.pingInterval,
81
- maxPingFailures: this.options.maxPingFailures,
82
- maxCommandTimeouts: this.options.maxCommandTimeouts,
83
- });
84
- this.reconnect = new ReconnectManager({
85
- maxReconnectAttempts: this.options.maxReconnectAttempts,
86
- reconnectDelay: this.options.reconnectDelay,
87
- maxReconnectDelay: this.options.maxReconnectDelay,
88
- autoReconnect: this.options.autoReconnect,
89
- });
90
- this.reconnect.on('reconnecting', (data) => this.emit('reconnecting', data));
91
- this.reconnect.on('maxReconnectAttemptsReached', () => {
92
- this.emit('maxReconnectAttemptsReached');
93
- this.commands.rejectAll(new Error('Max reconnection attempts reached'));
94
- });
95
- }
96
- /** Connect to server */
97
- async connect() {
98
- if (this.connected)
99
- return;
100
- if (this.connecting) {
101
- return this.waitForConnection();
102
- }
103
- this.connecting = true;
104
- this.reconnect.setClosed(false);
105
- try {
106
- await this.doConnect();
107
- this.reconnect.reset();
108
- this.emit('connected');
109
- this.health.startPing(async () => {
110
- await this.ping();
111
- });
112
- this.processQueue();
113
- }
114
- catch (err) {
115
- this.connecting = false;
116
- if (this.reconnect.canReconnect()) {
117
- this.reconnect.scheduleReconnect(() => this.connect());
118
- }
119
- throw err;
120
- }
121
- }
122
- waitForConnection() {
123
- return new Promise((resolve, reject) => {
124
- const onConnect = () => {
125
- this.off('error', onError);
126
- resolve();
127
- };
128
- const onError = (err) => {
129
- this.off('connected', onConnect);
130
- reject(err);
131
- };
132
- this.once('connected', onConnect);
133
- this.once('error', onError);
134
- });
135
- }
136
- async doConnect() {
137
- const { socket } = await createConnection({
138
- host: this.options.host,
139
- port: this.options.port,
140
- tls: this.options.tls,
141
- }, this.options.connectTimeout, {
142
- onData: (frame) => {
143
- this.handleData(frame);
144
- },
145
- onClose: () => {
146
- this.handleClose();
147
- },
148
- onError: (error) => this.emit('error', error),
149
- });
150
- this.socket = socket;
151
- if (this.options.token) {
152
- try {
153
- await this.authenticate();
154
- }
155
- catch (err) {
156
- this.socket.end();
157
- this.socket = null;
158
- throw err;
159
- }
160
- }
161
- this.connected = true;
162
- this.connecting = false;
163
- this.health.recordConnected();
164
- }
165
- async authenticate() {
166
- const response = await this.sendDirect({ cmd: 'Auth', token: this.options.token });
167
- if (!response.ok) {
168
- throw new Error('Authentication failed');
169
- }
170
- }
171
- /**
172
- * Handle incoming data frame
173
- * Uses reqId-based matching for pipelining support
174
- */
175
- handleData(frame) {
176
- try {
177
- const response = decodeMessagePack(frame);
178
- const reqId = response.reqId;
179
- // Try pipelining mode first (reqId-based matching)
180
- if (reqId) {
181
- const pending = this.commands.removeByReqId(reqId);
182
- if (pending) {
183
- clearTimeout(pending.timeout);
184
- pending.resolve(response);
185
- // Process more queued commands if we have room
186
- this.processQueue();
187
- return;
188
- }
189
- }
190
- // Fall back to legacy mode (current command)
191
- const current = this.commands.getCurrentCommand();
192
- if (current) {
193
- clearTimeout(current.timeout);
194
- current.resolve(response);
195
- this.commands.setCurrentCommand(null);
196
- this.processQueue();
197
- return;
198
- }
199
- // Unknown response - log warning
200
- this.emit('warning', { type: 'unknown_response', reqId });
201
- }
202
- catch {
203
- // Malformed/unparseable frame: the framed byte stream is now
204
- // unrecoverable (we cannot trust subsequent frame boundaries), and in
205
- // pipelining mode the legacy `currentCommand` slot is null — so checking
206
- // it alone would leave every in-flight command hanging until its
207
- // per-command timeout. Reject ALL pending + in-flight commands promptly
208
- // and tear down the socket so reconnection (if enabled) can re-establish
209
- // a clean stream.
210
- const err = new Error('Invalid response from server');
211
- this.emit('warning', { type: 'malformed_frame' });
212
- this.commands.rejectAll(err);
213
- this.forceReconnect();
214
- }
215
- }
216
- handleClose() {
217
- const wasConnected = this.connected;
218
- this.connected = false;
219
- this.connecting = false;
220
- this.socket = null;
221
- this.health.stopPing();
222
- // Reject all in-flight commands (pipelining + legacy)
223
- this.commands.rejectAll(new Error('Connection lost'));
224
- if (wasConnected) {
225
- this.emit('disconnected');
226
- if (this.reconnect.canReconnect()) {
227
- this.reconnect.scheduleReconnect(() => this.connect());
228
- }
229
- }
230
- }
231
- /** Send ping to check connection health */
232
- async ping() {
233
- if (!this.connected)
234
- return false;
235
- try {
236
- const start = Date.now();
237
- const response = await this.send({ cmd: 'Ping' });
238
- const data = response.data;
239
- const success = data?.pong === true;
240
- if (success) {
241
- this.health.recordPingSuccess(Date.now() - start);
242
- this.emit('health', { type: 'ping_success', latency: Date.now() - start });
243
- }
244
- else {
245
- this.handlePingFailure();
246
- }
247
- return success;
248
- }
249
- catch {
250
- this.handlePingFailure();
251
- return false;
252
- }
253
- }
254
- handlePingFailure() {
255
- if (this.health.recordPingFailure()) {
256
- this.emit('health', { type: 'unhealthy', reason: 'max_ping_failures' });
257
- this.forceReconnect();
258
- }
259
- else {
260
- this.emit('health', { type: 'ping_failed' });
261
- }
262
- }
263
- /**
264
- * A command timed out. On a half-open socket (peer gone, no FIN/RST) writes
265
- * keep succeeding but no response ever returns — every command times out
266
- * while the socket still looks "connected". The health-check ping is one way
267
- * to notice, but it can be disabled or slower than real traffic, leaving a
268
- * worker's PULL loop to time out forever without ever reconnecting (#94).
269
- * Treat a sustained run of timeouts as a dead link and force a reconnect.
270
- */
271
- handleCommandTimeout() {
272
- if (this.health.recordCommandTimeout()) {
273
- this.emit('health', { type: 'unhealthy', reason: 'max_command_timeouts' });
274
- this.forceReconnect();
275
- }
276
- }
277
- forceReconnect() {
278
- if (this.reconnect.isClosed())
279
- return;
280
- if (this.socket) {
281
- // end() can throw on an already-errored/half-dead socket. Swallow it:
282
- // failing to close the corpse must NOT abort the reconnect path below,
283
- // or the connection would stay wedged forever (the #94 failure mode).
284
- try {
285
- this.socket.end();
286
- }
287
- catch {
288
- /* socket already torn down */
289
- }
290
- this.socket = null;
291
- }
292
- this.connected = false;
293
- this.health.stopPing();
294
- // Settle every in-flight/queued command NOW. Otherwise their per-command
295
- // timeouts keep ticking and fire AFTER the fresh socket is up — each stale
296
- // timeout bumps the new connection's dead-link counter and can re-trigger
297
- // forceReconnect in a loop (a reconnect storm that never stabilises). It
298
- // also unblocks awaiting callers (e.g. a Worker's PULL) immediately instead
299
- // of making them wait out the full commandTimeout on a corpse.
300
- this.commands.rejectAll(new Error('Connection lost'));
301
- if (this.reconnect.canReconnect())
302
- this.reconnect.scheduleReconnect(() => this.connect());
303
- }
304
- /** Get connection health metrics */
305
- getHealth() {
306
- return this.health.getHealth(this.getState());
307
- }
308
- /** Generate unique request ID for pipelining */
309
- generateReqId() {
310
- // Use modulo to prevent overflow, wrap at 2^31
311
- this.reqIdCounter = (this.reqIdCounter + 1) & 0x7fffffff;
312
- return String(this.reqIdCounter);
313
- }
314
- /**
315
- * Send command directly (bypass queue)
316
- * Used for authentication and critical commands
317
- */
318
- sendDirect(command) {
319
- if (!this.socket)
320
- return Promise.reject(new Error('Not connected'));
321
- const startTime = Date.now();
322
- this.health.recordCommandSent();
323
- const reqId = this.generateReqId();
324
- const commandWithReqId = { ...command, reqId };
325
- // Definite-assignment assertion: assigned synchronously by Promise executor below.
326
- let pendingRef;
327
- const promise = new Promise((resolve, reject) => {
328
- const timeout = setTimeout(() => {
329
- // Try to remove from in-flight
330
- const removed = this.commands.removeByReqId(reqId);
331
- if (removed) {
332
- this.health.recordError();
333
- reject(new Error('Command timeout'));
334
- }
335
- }, this.options.commandTimeout);
336
- pendingRef = {
337
- id: 0,
338
- reqId,
339
- command: commandWithReqId,
340
- resolve: (result) => {
341
- this.health.recordSuccess(Date.now() - startTime);
342
- resolve(result);
343
- },
344
- reject: (err) => {
345
- this.health.recordError();
346
- reject(err);
347
- },
348
- timeout,
349
- };
350
- });
351
- // Promise constructor executor is synchronous, so pendingRef is assigned.
352
- pendingRef.promise = promise;
353
- this.commands.addInFlight(pendingRef);
354
- // Send immediately (this.socket null-checked at entry of sendDirect)
355
- this.socket.write(FrameParser.frame(encodeMessagePack(commandWithReqId)));
356
- return promise;
357
- }
358
- /**
359
- * Process queued commands
360
- * Sends multiple commands up to maxInFlight (pipelining)
361
- */
362
- processQueue() {
363
- if (!this.connected || !this.socket)
364
- return;
365
- // Send commands while under the maxInFlight limit
366
- while (this.commands.hasPending() && this.commands.canSendMore(this.options.maxInFlight)) {
367
- const next = this.commands.dequeue();
368
- if (!next)
369
- break;
370
- // Clear old timeout and create new one
371
- clearTimeout(next.timeout);
372
- const newTimeout = setTimeout(() => {
373
- const removed = this.commands.removeByReqId(next.reqId);
374
- if (removed) {
375
- this.health.recordError();
376
- next.reject(new Error('Command timeout'));
377
- // In-flight command got no response: count it toward dead-link detection.
378
- this.handleCommandTimeout();
379
- }
380
- }, this.options.commandTimeout);
381
- next.timeout = newTimeout;
382
- // Add to in-flight tracking and send
383
- this.commands.addInFlight(next);
384
- this.socket.write(FrameParser.frame(encodeMessagePack(next.command)));
385
- }
386
- }
387
- /**
388
- * Send command and wait for response
389
- * Uses pipelining for high throughput
390
- */
391
- send(command) {
392
- const startTime = Date.now();
393
- this.health.recordCommandSent();
394
- const reqId = this.generateReqId();
395
- const commandWithReqId = { ...command, reqId };
396
- const id = this.commands.nextId();
397
- // Definite-assignment assertion: assigned synchronously by Promise executor below.
398
- let pendingRef;
399
- const promise = new Promise((resolve, reject) => {
400
- const timeout = setTimeout(() => {
401
- // Try to remove from queue first. A still-queued command never reached
402
- // the socket (e.g. waiting on connect), so it is NOT evidence of a dead
403
- // link — reject it but don't count it toward dead-link detection.
404
- if (this.commands.remove(id)) {
405
- this.health.recordError();
406
- reject(new Error('Command timeout'));
407
- return;
408
- }
409
- // Try to remove from in-flight: this one WAS sent and got no response.
410
- const removed = this.commands.removeByReqId(reqId);
411
- if (removed) {
412
- this.health.recordError();
413
- reject(new Error('Command timeout'));
414
- this.handleCommandTimeout();
415
- }
416
- }, this.options.commandTimeout);
417
- pendingRef = {
418
- id,
419
- reqId,
420
- command: commandWithReqId,
421
- resolve: (result) => {
422
- this.health.recordSuccess(Date.now() - startTime);
423
- resolve(result);
424
- },
425
- reject: (err) => {
426
- this.health.recordError();
427
- reject(err);
428
- },
429
- timeout,
430
- };
431
- });
432
- // Promise constructor executor is synchronous, so pendingRef is assigned.
433
- pendingRef.promise = promise;
434
- this.commands.enqueue(pendingRef);
435
- // Connect if needed, then process queue
436
- if (!this.connected && !this.connecting) {
437
- // Connection errors during send are handled by command timeout/rejection
438
- this.connect().catch(() => {
439
- // The queued command owns timeout and rejection reporting.
440
- });
441
- }
442
- else if (this.connected) {
443
- this.processQueue();
444
- }
445
- return promise;
446
- }
447
- /** Close connection */
448
- close() {
449
- this.reconnect.setClosed(true);
450
- this.health.stopPing();
451
- this.reconnect.cancelReconnect();
452
- // Install a process-level filter for the synthetic ClientClosedError we
453
- // are about to issue. Catches the rare case where a caller's .catch() is
454
- // attached on a chained Promise that our cmd.promise?.catch() cannot
455
- // reach (await-then-throw patterns).
456
- installClientClosedFilter();
457
- this.commands.rejectAll(new ClientClosedError());
458
- if (this.socket) {
459
- this.socket.end();
460
- this.socket = null;
461
- this.connected = false;
462
- }
463
- }
464
- /** Check if connected */
465
- isConnected() {
466
- return this.connected;
467
- }
468
- /** Get connection state */
469
- getState() {
470
- if (this.reconnect.isClosed())
471
- return 'closed';
472
- if (this.connected)
473
- return 'connected';
474
- if (this.connecting)
475
- return 'connecting';
476
- return 'disconnected';
477
- }
478
- /** Get number of in-flight commands (for monitoring) */
479
- getInFlightCount() {
480
- return this.commands.getInFlightCount();
481
- }
1
+ /** Production TCP client façade. */
2
+ import { TcpClientLifecycle } from './runtime/lifecycle';
3
+ export { ClientClosedError } from './errors';
4
+ /** Behavior is composed from focused connection, health, and command layers. */
5
+ export class TcpClient extends TcpClientLifecycle {
482
6
  }
@@ -0,0 +1,23 @@
1
+ import type { PendingCommand } from './types';
2
+ /** Pending-command queue with reqId-based in-flight tracking. */
3
+ export declare class CommandQueue {
4
+ private readonly pendingCommands;
5
+ private pendingQueue;
6
+ private currentCommand;
7
+ private commandIdCounter;
8
+ private readonly inFlightByReqId;
9
+ getCurrentCommand(): PendingCommand | null;
10
+ setCurrentCommand(command: PendingCommand | null): void;
11
+ hasPending(): boolean;
12
+ getInFlightCount(): number;
13
+ canSendMore(maxInFlight: number): boolean;
14
+ addInFlight(command: PendingCommand): void;
15
+ getByReqId(reqId: string): PendingCommand | undefined;
16
+ removeByReqId(reqId: string): PendingCommand | undefined;
17
+ enqueue(command: PendingCommand): void;
18
+ nextId(): number;
19
+ dequeue(): PendingCommand | null;
20
+ remove(id: number): boolean;
21
+ rejectAll(error: Error): void;
22
+ clearCurrent(error?: Error): void;
23
+ }
@@ -0,0 +1,89 @@
1
+ /** Pending-command queue with reqId-based in-flight tracking. */
2
+ export class CommandQueue {
3
+ pendingCommands = new Map();
4
+ pendingQueue = [];
5
+ currentCommand = null;
6
+ commandIdCounter = 0;
7
+ inFlightByReqId = new Map();
8
+ getCurrentCommand() {
9
+ return this.currentCommand;
10
+ }
11
+ setCurrentCommand(command) {
12
+ this.currentCommand = command;
13
+ }
14
+ hasPending() {
15
+ return this.pendingCommands.size > 0;
16
+ }
17
+ getInFlightCount() {
18
+ return this.inFlightByReqId.size;
19
+ }
20
+ canSendMore(maxInFlight) {
21
+ return this.inFlightByReqId.size < maxInFlight;
22
+ }
23
+ addInFlight(command) {
24
+ this.inFlightByReqId.set(command.reqId, command);
25
+ }
26
+ getByReqId(reqId) {
27
+ return this.inFlightByReqId.get(reqId);
28
+ }
29
+ removeByReqId(reqId) {
30
+ const command = this.inFlightByReqId.get(reqId);
31
+ if (command)
32
+ this.inFlightByReqId.delete(reqId);
33
+ return command;
34
+ }
35
+ enqueue(command) {
36
+ this.pendingCommands.set(command.id, command);
37
+ this.pendingQueue.push(command.id);
38
+ }
39
+ nextId() {
40
+ return ++this.commandIdCounter;
41
+ }
42
+ dequeue() {
43
+ const nextId = this.pendingQueue.shift();
44
+ if (nextId === undefined)
45
+ return null;
46
+ const next = this.pendingCommands.get(nextId);
47
+ if (!next)
48
+ return null;
49
+ this.pendingCommands.delete(nextId);
50
+ return next;
51
+ }
52
+ remove(id) {
53
+ if (!this.pendingCommands.has(id))
54
+ return false;
55
+ this.pendingCommands.delete(id);
56
+ const queueIndex = this.pendingQueue.indexOf(id);
57
+ if (queueIndex !== -1)
58
+ this.pendingQueue.splice(queueIndex, 1);
59
+ return true;
60
+ }
61
+ rejectAll(error) {
62
+ for (const command of this.pendingCommands.values()) {
63
+ clearTimeout(command.timeout);
64
+ command.promise?.catch(() => { });
65
+ command.reject(error);
66
+ }
67
+ this.pendingCommands.clear();
68
+ this.pendingQueue = [];
69
+ for (const command of this.inFlightByReqId.values()) {
70
+ clearTimeout(command.timeout);
71
+ command.promise?.catch(() => { });
72
+ command.reject(error);
73
+ }
74
+ this.inFlightByReqId.clear();
75
+ if (this.currentCommand) {
76
+ clearTimeout(this.currentCommand.timeout);
77
+ this.currentCommand.reject(error);
78
+ this.currentCommand = null;
79
+ }
80
+ }
81
+ clearCurrent(error) {
82
+ if (this.currentCommand) {
83
+ clearTimeout(this.currentCommand.timeout);
84
+ if (error)
85
+ this.currentCommand.reject(error);
86
+ this.currentCommand = null;
87
+ }
88
+ }
89
+ }
@@ -1,85 +1,4 @@
1
- /**
2
- * TCP Connection Handler
3
- * Manages low-level socket connection and data handling (msgpack binary protocol)
4
- */
5
- import type { SocketWrapper, PendingCommand, ClientTlsOptions } from './types';
6
- /** Connection events */
7
- export interface ConnectionEvents {
8
- onData: (frame: Uint8Array) => void;
9
- onClose: () => void;
10
- onError: (error: Error) => void;
11
- }
12
- /** Connection result */
13
- export interface ConnectionResult {
14
- socket: SocketWrapper;
15
- cleanup: () => void;
16
- }
17
- /** Connection target */
18
- export interface ConnectionTarget {
19
- /** TCP host */
20
- host?: string;
21
- /** TCP port */
22
- port?: number;
23
- /** Enable TLS: true (system CAs) or per-connection TLS options */
24
- tls?: boolean | ClientTlsOptions;
25
- }
26
- /**
27
- * Map client TLS options to the `tls` value accepted by Bun.connect.
28
- * Returns undefined when TLS is disabled (plaintext, the default).
29
- *
30
- * The CA is read into bytes (not passed as a `Bun.file` handle): Bun computes
31
- * the peer's `authorizationError` from this `ca`, and we enforce it in the
32
- * `handshake` handler (see `tlsRequiresVerification` / #109) — Bun.connect
33
- * itself never rejects an unauthorized peer on the client side.
34
- */
35
- export declare function buildClientTls(tls: boolean | ClientTlsOptions | undefined): true | Record<string, unknown> | undefined;
36
- /**
37
- * Whether the caller asked us to authenticate the server certificate.
38
- * Verification is the default for any TLS connection; only an explicit
39
- * `rejectUnauthorized: false` opts out (encryption-only). #109
40
- */
41
- export declare function tlsRequiresVerification(tls: boolean | ClientTlsOptions | undefined): boolean;
42
- /**
43
- * Establish TCP connection to server
44
- */
45
- export declare function createConnection(target: ConnectionTarget, connectTimeout: number, events: ConnectionEvents): Promise<ConnectionResult>;
46
- /**
47
- * Command queue for managing pending commands
48
- * Supports both legacy single-command mode and pipelining mode with reqId tracking
49
- */
50
- export declare class CommandQueue {
51
- private readonly pendingCommands;
52
- private pendingQueue;
53
- private currentCommand;
54
- private commandIdCounter;
55
- /** In-flight commands tracked by reqId for pipelining */
56
- private readonly inFlightByReqId;
57
- /** Get current command being processed (legacy mode) */
58
- getCurrentCommand(): PendingCommand | null;
59
- /** Set current command (legacy mode) */
60
- setCurrentCommand(cmd: PendingCommand | null): void;
61
- /** Check if has pending commands in queue */
62
- hasPending(): boolean;
63
- /** Get number of in-flight commands */
64
- getInFlightCount(): number;
65
- /** Check if can send more commands (pipelining backpressure) */
66
- canSendMore(maxInFlight: number): boolean;
67
- /** Add command to in-flight tracking by reqId */
68
- addInFlight(command: PendingCommand): void;
69
- /** Get in-flight command by reqId */
70
- getByReqId(reqId: string): PendingCommand | undefined;
71
- /** Remove in-flight command by reqId */
72
- removeByReqId(reqId: string): PendingCommand | undefined;
73
- /** Add command to queue */
74
- enqueue(command: PendingCommand): void;
75
- /** Get next command ID */
76
- nextId(): number;
77
- /** Dequeue next command */
78
- dequeue(): PendingCommand | null;
79
- /** Remove command by ID */
80
- remove(id: number): boolean;
81
- /** Reject all pending and in-flight commands */
82
- rejectAll(error: Error): void;
83
- /** Clear current command with optional rejection (legacy mode) */
84
- clearCurrent(error?: Error): void;
85
- }
1
+ /** Stable low-level TCP connection import surface. */
2
+ export { CommandQueue } from './commandQueue';
3
+ export { buildClientTls, createConnection, tlsRequiresVerification, } from './transport';
4
+ export type { ConnectionEvents, ConnectionResult, ConnectionTarget } from './transport';