bunqueue 2.8.53 → 2.8.56

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 (747) 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 -438
  19. package/dist/application/cleanupTasks.js +2 -1
  20. package/dist/application/clientTracking.js +3 -1
  21. package/dist/application/contextFactory.d.ts +13 -90
  22. package/dist/application/contextFactory.js +9 -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 +9 -9
  26. package/dist/application/dlqManager.js +49 -167
  27. package/dist/application/dlqRetry.d.ts +12 -0
  28. package/dist/application/dlqRetry.js +97 -0
  29. package/dist/application/lockManager.js +24 -4
  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 +11 -4
  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 +50 -11
  45. package/dist/application/operations/jobMoveOperations.js +3 -3
  46. package/dist/application/operations/jobStateTransitions.d.ts +1 -1
  47. package/dist/application/operations/jobStateTransitions.js +16 -2
  48. package/dist/application/operations/parentLink.d.ts +36 -0
  49. package/dist/application/operations/parentLink.js +153 -0
  50. package/dist/application/operations/parentLinkInput.d.ts +8 -0
  51. package/dist/application/operations/parentLinkInput.js +23 -0
  52. package/dist/application/operations/push.d.ts +5 -44
  53. package/dist/application/operations/push.js +62 -152
  54. package/dist/application/operations/pushAdmission.d.ts +32 -0
  55. package/dist/application/operations/pushAdmission.js +38 -0
  56. package/dist/application/operations/pushBatch.d.ts +4 -0
  57. package/dist/application/operations/pushBatch.js +136 -0
  58. package/dist/application/operations/pushContext.d.ts +39 -0
  59. package/dist/application/operations/pushContext.js +1 -0
  60. package/dist/application/operations/pushDeduplication.d.ts +42 -0
  61. package/dist/application/operations/pushDeduplication.js +131 -0
  62. package/dist/application/operations/pushInsert.d.ts +13 -1
  63. package/dist/application/operations/pushInsert.js +33 -17
  64. package/dist/application/operations/pushLocks.js +13 -9
  65. package/dist/application/operations/query/collect.d.ts +12 -0
  66. package/dist/application/operations/query/collect.js +118 -0
  67. package/dist/application/operations/query/jobLookup.d.ts +9 -0
  68. package/dist/application/operations/query/jobLookup.js +110 -0
  69. package/dist/application/operations/query/pagination.d.ts +8 -0
  70. package/dist/application/operations/query/pagination.js +90 -0
  71. package/dist/application/operations/query/state.d.ts +4 -0
  72. package/dist/application/operations/query/state.js +63 -0
  73. package/dist/application/operations/queryOperations.d.ts +5 -50
  74. package/dist/application/operations/queryOperations.js +4 -474
  75. package/dist/application/queue-manager/ack.d.ts +23 -0
  76. package/dist/application/queue-manager/ack.js +242 -0
  77. package/dist/application/queue-manager/configuration.d.ts +27 -0
  78. package/dist/application/queue-manager/configuration.js +84 -0
  79. package/dist/application/queue-manager/context.d.ts +5 -0
  80. package/dist/application/queue-manager/context.js +61 -0
  81. package/dist/application/queue-manager/control.d.ts +17 -0
  82. package/dist/application/queue-manager/control.js +133 -0
  83. package/dist/application/queue-manager/delivery.d.ts +32 -0
  84. package/dist/application/queue-manager/delivery.js +143 -0
  85. package/dist/application/queue-manager/dependencies.d.ts +8 -0
  86. package/dist/application/queue-manager/dependencies.js +127 -0
  87. package/dist/application/queue-manager/dependency-runtime.d.ts +8 -0
  88. package/dist/application/queue-manager/dependency-runtime.js +40 -0
  89. package/dist/application/queue-manager/flow-failures.d.ts +18 -0
  90. package/dist/application/queue-manager/flow-failures.js +107 -0
  91. package/dist/application/queue-manager/flow-options.d.ts +8 -0
  92. package/dist/application/queue-manager/flow-options.js +129 -0
  93. package/dist/application/queue-manager/job-management.d.ts +17 -0
  94. package/dist/application/queue-manager/job-management.js +100 -0
  95. package/dist/application/queue-manager/lifecycle.d.ts +4 -0
  96. package/dist/application/queue-manager/lifecycle.js +41 -0
  97. package/dist/application/queue-manager/limits.d.ts +41 -0
  98. package/dist/application/queue-manager/limits.js +108 -0
  99. package/dist/application/queue-manager/locks.d.ts +21 -0
  100. package/dist/application/queue-manager/locks.js +59 -0
  101. package/dist/application/queue-manager/observability.d.ts +16 -0
  102. package/dist/application/queue-manager/observability.js +44 -0
  103. package/dist/application/queue-manager/queries.d.ts +17 -0
  104. package/dist/application/queue-manager/queries.js +118 -0
  105. package/dist/application/queue-manager/repeat.d.ts +4 -0
  106. package/dist/application/queue-manager/repeat.js +26 -0
  107. package/dist/application/queue-manager/services.d.ts +19 -0
  108. package/dist/application/queue-manager/services.js +80 -0
  109. package/dist/application/queue-manager/state.d.ts +92 -0
  110. package/dist/application/queue-manager/state.js +144 -0
  111. package/dist/application/queue-manager/stats.d.ts +28 -0
  112. package/dist/application/queue-manager/stats.js +52 -0
  113. package/dist/application/queueManager.d.ts +4 -380
  114. package/dist/application/queueManager.js +3 -1880
  115. package/dist/application/queueTelemetryJournal.d.ts +20 -0
  116. package/dist/application/queueTelemetryJournal.js +133 -0
  117. package/dist/application/repeatJobs.d.ts +7 -0
  118. package/dist/application/repeatJobs.js +132 -0
  119. package/dist/application/stallDetection.js +9 -4
  120. package/dist/application/types/ack.d.ts +132 -0
  121. package/dist/application/types/ack.js +1 -0
  122. package/dist/application/types/background.d.ts +18 -0
  123. package/dist/application/types/background.js +1 -0
  124. package/dist/application/types/config.d.ts +37 -0
  125. package/dist/application/types/config.js +15 -0
  126. package/dist/application/types/contextFactory.d.ts +83 -0
  127. package/dist/application/types/contextFactory.js +1 -0
  128. package/dist/application/types/contexts.d.ts +110 -0
  129. package/dist/application/types/contexts.js +1 -0
  130. package/dist/application/types/index.d.ts +7 -0
  131. package/dist/application/types/index.js +1 -0
  132. package/dist/application/types/query.d.ts +23 -0
  133. package/dist/application/types/query.js +1 -0
  134. package/dist/application/types/queueManager.d.ts +94 -0
  135. package/dist/application/types/queueManager.js +1 -0
  136. package/dist/cli/commandRouter.d.ts +1 -1
  137. package/dist/cli/commands/core.js +1 -0
  138. package/dist/cli/output/collections.d.ts +8 -0
  139. package/dist/cli/output/collections.js +131 -0
  140. package/dist/cli/output/jobs.d.ts +2 -0
  141. package/dist/cli/output/jobs.js +61 -0
  142. package/dist/cli/output/style.d.ts +14 -0
  143. package/dist/cli/output/style.js +28 -0
  144. package/dist/cli/output/success.d.ts +1 -0
  145. package/dist/cli/output/success.js +108 -0
  146. package/dist/cli/output.d.ts +1 -6
  147. package/dist/cli/output.js +7 -395
  148. package/dist/client/bunqueue/dlqRateLimit.d.ts +8 -0
  149. package/dist/client/bunqueue/dlqRateLimit.js +24 -0
  150. package/dist/client/bunqueue/runtime.d.ts +35 -0
  151. package/dist/client/bunqueue/runtime.js +138 -0
  152. package/dist/client/bunqueue.d.ts +19 -34
  153. package/dist/client/bunqueue.js +45 -166
  154. package/dist/client/dlqConversion.d.ts +5 -0
  155. package/dist/client/dlqConversion.js +28 -0
  156. package/dist/client/events.d.ts +7 -56
  157. package/dist/client/events.js +38 -15
  158. package/dist/client/flow.d.ts +6 -12
  159. package/dist/client/flow.js +16 -34
  160. package/dist/client/flowJobDependencies.js +3 -1
  161. package/dist/client/flowJobFactory.d.ts +9 -1
  162. package/dist/client/flowJobFactory.js +25 -9
  163. package/dist/client/flowJobMoveMethods.d.ts +5 -5
  164. package/dist/client/flowJobMoveMethods.js +37 -17
  165. package/dist/client/flowLegacyPlan.js +22 -8
  166. package/dist/client/flowOptions.d.ts +1 -1
  167. package/dist/client/flowOptions.js +2 -1
  168. package/dist/client/flowPlan.js +2 -3
  169. package/dist/client/flowPush.d.ts +1 -0
  170. package/dist/client/flowPush.js +5 -1
  171. package/dist/client/flowReader.js +5 -5
  172. package/dist/client/flowResults.d.ts +11 -0
  173. package/dist/client/flowResults.js +42 -0
  174. package/dist/client/index.d.ts +3 -1
  175. package/dist/client/jobConversion.d.ts +3 -7
  176. package/dist/client/jobConversion.js +36 -33
  177. package/dist/client/jobConversionHelpers.d.ts +19 -3
  178. package/dist/client/jobConversionHelpers.js +20 -16
  179. package/dist/client/jobConversionTypes.d.ts +8 -0
  180. package/dist/client/jobDeduplication.d.ts +6 -0
  181. package/dist/client/jobDeduplication.js +14 -0
  182. package/dist/client/jobHelpers.d.ts +7 -2
  183. package/dist/client/jobHelpers.js +16 -8
  184. package/dist/client/queue/bullmqCompat.d.ts +18 -8
  185. package/dist/client/queue/bullmqCompat.js +39 -71
  186. package/dist/client/queue/deduplication.d.ts +2 -0
  187. package/dist/client/queue/deduplication.js +20 -11
  188. package/dist/client/queue/dlq.d.ts +11 -6
  189. package/dist/client/queue/dlq.js +57 -16
  190. package/dist/client/queue/dlqJobMethods.d.ts +9 -0
  191. package/dist/client/queue/dlqJobMethods.js +177 -0
  192. package/dist/client/queue/dlqOps.d.ts +2 -1
  193. package/dist/client/queue/dlqOps.js +4 -10
  194. package/dist/client/queue/dlqStats.d.ts +3 -0
  195. package/dist/client/queue/dlqStats.js +21 -0
  196. package/dist/client/queue/job-proxy/dependencies.d.ts +9 -0
  197. package/dist/client/queue/job-proxy/dependencies.js +67 -0
  198. package/dist/client/queue/job-proxy/reflection.d.ts +2 -0
  199. package/dist/client/queue/job-proxy/reflection.js +18 -0
  200. package/dist/client/queue/job-proxy/simple.d.ts +3 -0
  201. package/dist/client/queue/job-proxy/simple.js +316 -0
  202. package/dist/client/queue/job-proxy/tcp.d.ts +4 -0
  203. package/dist/client/queue/job-proxy/tcp.js +191 -0
  204. package/dist/client/queue/jobMetadata.d.ts +10 -0
  205. package/dist/client/queue/jobMetadata.js +24 -0
  206. package/dist/client/queue/jobMove.d.ts +4 -4
  207. package/dist/client/queue/jobMove.js +87 -24
  208. package/dist/client/queue/jobProxy.d.ts +4 -50
  209. package/dist/client/queue/jobProxy.js +3 -511
  210. package/dist/client/queue/operations/add/bulk.d.ts +7 -0
  211. package/dist/client/queue/operations/add/bulk.js +129 -0
  212. package/dist/client/queue/operations/add/payload.d.ts +24 -0
  213. package/dist/client/queue/operations/add/payload.js +85 -0
  214. package/dist/client/queue/operations/add/single.d.ts +3 -0
  215. package/dist/client/queue/operations/add/single.js +107 -0
  216. package/dist/client/queue/operations/add.d.ts +2 -47
  217. package/dist/client/queue/operations/add.js +2 -347
  218. package/dist/client/queue/operations/index.d.ts +1 -0
  219. package/dist/client/queue/operations/index.js +1 -0
  220. package/dist/client/queue/operations/management.d.ts +0 -4
  221. package/dist/client/queue/operations/management.js +35 -6
  222. package/dist/client/queue/operations/query.d.ts +1 -20
  223. package/dist/client/queue/operations/query.js +38 -116
  224. package/dist/client/queue/operations/queryStates.d.ts +13 -0
  225. package/dist/client/queue/operations/queryStates.js +32 -0
  226. package/dist/client/queue/operations/queryTcpPages.d.ts +14 -0
  227. package/dist/client/queue/operations/queryTcpPages.js +40 -0
  228. package/dist/client/queue/queue.d.ts +6 -189
  229. package/dist/client/queue/queue.js +6 -547
  230. package/dist/client/queue/rateLimit.d.ts +4 -4
  231. package/dist/client/queue/rateLimit.js +17 -8
  232. package/dist/client/queue/runtime/compatibility.d.ts +13 -0
  233. package/dist/client/queue/runtime/compatibility.js +38 -0
  234. package/dist/client/queue/runtime/configuration.d.ts +42 -0
  235. package/dist/client/queue/runtime/configuration.js +109 -0
  236. package/dist/client/queue/runtime/connection.d.ts +6 -0
  237. package/dist/client/queue/runtime/connection.js +16 -0
  238. package/dist/client/queue/runtime/control.d.ts +41 -0
  239. package/dist/client/queue/runtime/control.js +87 -0
  240. package/dist/client/queue/runtime/queries.d.ts +48 -0
  241. package/dist/client/queue/runtime/queries.js +95 -0
  242. package/dist/client/queue/runtime/scheduling.d.ts +33 -0
  243. package/dist/client/queue/runtime/scheduling.js +56 -0
  244. package/dist/client/queue/runtime/state.d.ts +96 -0
  245. package/dist/client/queue/runtime/state.js +149 -0
  246. package/dist/client/queue/scheduler.d.ts +2 -5
  247. package/dist/client/queue/scheduler.js +25 -23
  248. package/dist/client/queue/schedulerPagination.d.ts +7 -0
  249. package/dist/client/queue/schedulerPagination.js +10 -0
  250. package/dist/client/queue/types/add.d.ts +40 -0
  251. package/dist/client/queue/types/add.js +1 -0
  252. package/dist/client/queue/types/contexts.d.ts +33 -0
  253. package/dist/client/queue/types/contexts.js +5 -0
  254. package/dist/client/queue/types/index.d.ts +3 -0
  255. package/dist/client/queue/types/index.js +1 -0
  256. package/dist/client/queue/types/job.d.ts +50 -0
  257. package/dist/client/queue/types/job.js +1 -0
  258. package/dist/client/queue/types/runtime.d.ts +35 -0
  259. package/dist/client/queue/types/runtime.js +1 -0
  260. package/dist/client/queue/workers.d.ts +16 -8
  261. package/dist/client/queue/workers.js +42 -16
  262. package/dist/client/queue-events/tcpSubscription.d.ts +23 -0
  263. package/dist/client/queue-events/tcpSubscription.js +99 -0
  264. package/dist/client/queueGroup.d.ts +11 -0
  265. package/dist/client/queueGroup.js +28 -1
  266. package/dist/client/sandboxed/queueOps.d.ts +2 -2
  267. package/dist/client/sandboxed/queueOps.js +32 -5
  268. package/dist/client/sandboxed/runtime/dispatch.d.ts +13 -0
  269. package/dist/client/sandboxed/runtime/dispatch.js +186 -0
  270. package/dist/client/sandboxed/runtime/lifecycle.d.ts +20 -0
  271. package/dist/client/sandboxed/runtime/lifecycle.js +95 -0
  272. package/dist/client/sandboxed/runtime/log.d.ts +1 -0
  273. package/dist/client/sandboxed/runtime/log.js +15 -0
  274. package/dist/client/sandboxed/runtime/pool.d.ts +11 -0
  275. package/dist/client/sandboxed/runtime/pool.js +121 -0
  276. package/dist/client/sandboxed/runtime/recovery.d.ts +11 -0
  277. package/dist/client/sandboxed/runtime/recovery.js +122 -0
  278. package/dist/client/sandboxed/runtime/state.d.ts +39 -0
  279. package/dist/client/sandboxed/runtime/state.js +59 -0
  280. package/dist/client/sandboxed/types/index.d.ts +2 -0
  281. package/dist/client/sandboxed/types/index.js +1 -0
  282. package/dist/client/sandboxed/types/options.d.ts +27 -0
  283. package/dist/client/sandboxed/types/options.js +1 -0
  284. package/dist/client/sandboxed/types/process.d.ts +30 -0
  285. package/dist/client/sandboxed/types/process.js +1 -0
  286. package/dist/client/sandboxed/worker.d.ts +3 -85
  287. package/dist/client/sandboxed/worker.js +3 -557
  288. package/dist/client/sandboxed/wrapper.js +1 -0
  289. package/dist/client/tcp/client.d.ts +5 -112
  290. package/dist/client/tcp/client.js +5 -481
  291. package/dist/client/tcp/commandQueue.d.ts +23 -0
  292. package/dist/client/tcp/commandQueue.js +89 -0
  293. package/dist/client/tcp/connection.d.ts +4 -85
  294. package/dist/client/tcp/connection.js +3 -315
  295. package/dist/client/tcp/errors.d.ts +6 -0
  296. package/dist/client/tcp/errors.js +18 -0
  297. package/dist/client/tcp/runtime/commands.d.ts +9 -0
  298. package/dist/client/tcp/runtime/commands.js +124 -0
  299. package/dist/client/tcp/runtime/connectivity.d.ts +13 -0
  300. package/dist/client/tcp/runtime/connectivity.js +77 -0
  301. package/dist/client/tcp/runtime/health.d.ts +14 -0
  302. package/dist/client/tcp/runtime/health.js +127 -0
  303. package/dist/client/tcp/runtime/lifecycle.d.ts +8 -0
  304. package/dist/client/tcp/runtime/lifecycle.js +32 -0
  305. package/dist/client/tcp/runtime/state.d.ts +50 -0
  306. package/dist/client/tcp/runtime/state.js +45 -0
  307. package/dist/client/tcp/transport.d.ts +18 -0
  308. package/dist/client/tcp/transport.js +158 -0
  309. package/dist/client/tcp/types/command.d.ts +9 -0
  310. package/dist/client/tcp/types/command.js +1 -0
  311. package/dist/client/tcp/types/connection.d.ts +31 -0
  312. package/dist/client/tcp/types/connection.js +17 -0
  313. package/dist/client/tcp/types/index.d.ts +5 -0
  314. package/dist/client/tcp/types/index.js +1 -0
  315. package/dist/client/tcp/types/socket.d.ts +8 -0
  316. package/dist/client/tcp/types/socket.js +1 -0
  317. package/dist/client/tcp/types/tls.d.ts +4 -0
  318. package/dist/client/tcp/types/tls.js +1 -0
  319. package/dist/client/tcp/types.d.ts +2 -106
  320. package/dist/client/tcp/types.js +2 -22
  321. package/dist/client/types/connection.d.ts +29 -0
  322. package/dist/client/types/connection.js +1 -0
  323. package/dist/client/types/dlq.d.ts +45 -0
  324. package/dist/client/types/dlq.js +1 -0
  325. package/dist/client/types/events.d.ts +54 -0
  326. package/dist/client/types/events.js +1 -0
  327. package/dist/client/types/flow.d.ts +10 -0
  328. package/dist/client/types/flow.js +1 -0
  329. package/dist/client/types/index.d.ts +10 -0
  330. package/dist/client/types/index.js +1 -0
  331. package/dist/client/types/job.d.ts +127 -0
  332. package/dist/client/types/job.js +1 -0
  333. package/dist/client/types/metrics.d.ts +1 -0
  334. package/dist/client/types/metrics.js +1 -0
  335. package/dist/client/types/options.d.ts +62 -0
  336. package/dist/client/types/options.js +1 -0
  337. package/dist/client/types/worker.d.ts +38 -0
  338. package/dist/client/types/worker.js +1 -0
  339. package/dist/client/types.d.ts +2 -583
  340. package/dist/client/types.js +2 -6
  341. package/dist/client/worker/ackBatcher.d.ts +1 -1
  342. package/dist/client/worker/ackBatcher.js +17 -5
  343. package/dist/client/worker/ackOutcome.d.ts +8 -0
  344. package/dist/client/worker/ackOutcome.js +58 -0
  345. package/dist/client/worker/constants.d.ts +7 -0
  346. package/dist/client/worker/constants.js +7 -0
  347. package/dist/client/worker/groupConcurrency.js +3 -0
  348. package/dist/client/worker/handlers/completion.d.ts +28 -0
  349. package/dist/client/worker/handlers/completion.js +68 -0
  350. package/dist/client/worker/handlers/dependencies.d.ts +11 -0
  351. package/dist/client/worker/handlers/dependencies.js +107 -0
  352. package/dist/client/worker/handlers/mutations.d.ts +23 -0
  353. package/dist/client/worker/handlers/mutations.js +211 -0
  354. package/dist/client/worker/handlers/queries.d.ts +15 -0
  355. package/dist/client/worker/handlers/queries.js +100 -0
  356. package/dist/client/worker/index.d.ts +2 -2
  357. package/dist/client/worker/index.js +1 -1
  358. package/dist/client/worker/jobParser.js +4 -2
  359. package/dist/client/worker/processor.d.ts +2 -15
  360. package/dist/client/worker/processor.js +68 -125
  361. package/dist/client/worker/processorHandlers.d.ts +4 -65
  362. package/dist/client/worker/processorHandlers.js +4 -400
  363. package/dist/client/worker/processorOutcome.d.ts +14 -0
  364. package/dist/client/worker/processorOutcome.js +125 -0
  365. package/dist/client/worker/runtime/buffer.d.ts +8 -0
  366. package/dist/client/worker/runtime/buffer.js +50 -0
  367. package/dist/client/worker/runtime/control.d.ts +26 -0
  368. package/dist/client/worker/runtime/control.js +175 -0
  369. package/dist/client/worker/runtime/execution.d.ts +11 -0
  370. package/dist/client/worker/runtime/execution.js +123 -0
  371. package/dist/client/worker/runtime/lifecycle.d.ts +7 -0
  372. package/dist/client/worker/runtime/lifecycle.js +114 -0
  373. package/dist/client/worker/runtime/manual.d.ts +10 -0
  374. package/dist/client/worker/runtime/manual.js +137 -0
  375. package/dist/client/worker/runtime/options.d.ts +5 -0
  376. package/dist/client/worker/runtime/options.js +39 -0
  377. package/dist/client/worker/runtime/polling.d.ts +12 -0
  378. package/dist/client/worker/runtime/polling.js +123 -0
  379. package/dist/client/worker/runtime/state.d.ts +110 -0
  380. package/dist/client/worker/runtime/state.js +156 -0
  381. package/dist/client/worker/types/index.d.ts +5 -0
  382. package/dist/client/worker/types/index.js +1 -0
  383. package/dist/client/worker/types/manual.d.ts +7 -0
  384. package/dist/client/worker/types/manual.js +1 -0
  385. package/dist/client/worker/types/options.d.ts +24 -0
  386. package/dist/client/worker/types/options.js +1 -0
  387. package/dist/client/worker/types/outcome.d.ts +23 -0
  388. package/dist/client/worker/types/outcome.js +1 -0
  389. package/dist/client/worker/types/processor.d.ts +22 -0
  390. package/dist/client/worker/types/processor.js +1 -0
  391. package/dist/client/worker/types/transport.d.ts +11 -0
  392. package/dist/client/worker/types/transport.js +1 -0
  393. package/dist/client/worker/worker.d.ts +3 -160
  394. package/dist/client/worker/worker.js +3 -904
  395. package/dist/client/worker/workerRateLimiter.d.ts +5 -1
  396. package/dist/client/worker/workerRateLimiter.js +40 -20
  397. package/dist/client/worker.d.ts +1 -0
  398. package/dist/client/workflow/compensationChild.d.ts +2 -1
  399. package/dist/client/workflow/compensationChild.js +1 -1
  400. package/dist/client/workflow/compensationClaim.d.ts +11 -0
  401. package/dist/client/workflow/compensationClaim.js +30 -0
  402. package/dist/client/workflow/compensator.d.ts +7 -2
  403. package/dist/client/workflow/compensator.js +5 -11
  404. package/dist/client/workflow/recovery.js +25 -2
  405. package/dist/client/workflow/rollbackControl.js +1 -1
  406. package/dist/domain/job/constants.d.ts +12 -0
  407. package/dist/domain/job/constants.js +12 -0
  408. package/dist/domain/job/create.d.ts +2 -0
  409. package/dist/domain/job/create.js +103 -0
  410. package/dist/domain/job/ids.d.ts +5 -0
  411. package/dist/domain/job/ids.js +12 -0
  412. package/dist/domain/job/locks.d.ts +4 -0
  413. package/dist/domain/job/locks.js +23 -0
  414. package/dist/domain/job/payload.d.ts +18 -0
  415. package/dist/domain/job/payload.js +43 -0
  416. package/dist/domain/job/state.d.ts +8 -0
  417. package/dist/domain/job/state.js +51 -0
  418. package/dist/domain/job/terminal.d.ts +3 -0
  419. package/dist/domain/job/terminal.js +9 -0
  420. package/dist/domain/queue/dlqShard.d.ts +2 -0
  421. package/dist/domain/queue/dlqShard.js +34 -9
  422. package/dist/domain/queue/limiterManager.d.ts +11 -0
  423. package/dist/domain/queue/limiterManager.js +28 -0
  424. package/dist/domain/queue/priorityQueue.js +3 -39
  425. package/dist/domain/queue/priorityQueueOrder.d.ts +3 -0
  426. package/dist/domain/queue/priorityQueueOrder.js +21 -0
  427. package/dist/domain/queue/shard/dependencies.d.ts +11 -0
  428. package/dist/domain/queue/shard/dependencies.js +22 -0
  429. package/dist/domain/queue/shard/dlq.d.ts +25 -0
  430. package/dist/domain/queue/shard/dlq.js +71 -0
  431. package/dist/domain/queue/shard/keys.d.ts +18 -0
  432. package/dist/domain/queue/shard/keys.js +45 -0
  433. package/dist/domain/queue/shard/lifecycle.d.ts +10 -0
  434. package/dist/domain/queue/shard/lifecycle.js +43 -0
  435. package/dist/domain/queue/shard/limits.d.ts +24 -0
  436. package/dist/domain/queue/shard/limits.js +57 -0
  437. package/dist/domain/queue/shard/metrics.d.ts +32 -0
  438. package/dist/domain/queue/shard/metrics.js +72 -0
  439. package/dist/domain/queue/shard/state.d.ts +34 -0
  440. package/dist/domain/queue/shard/state.js +80 -0
  441. package/dist/domain/queue/shard.d.ts +5 -137
  442. package/dist/domain/queue/shard.js +4 -390
  443. package/dist/domain/queue/uniqueKeyManager.d.ts +3 -1
  444. package/dist/domain/queue/uniqueKeyManager.js +9 -1
  445. package/dist/domain/response/builders.d.ts +15 -0
  446. package/dist/domain/response/builders.js +39 -0
  447. package/dist/domain/types/command.d.ts +2 -522
  448. package/dist/domain/types/command.js +2 -5
  449. package/dist/domain/types/commands/base.d.ts +5 -0
  450. package/dist/domain/types/commands/base.js +1 -0
  451. package/dist/domain/types/commands/core.d.ts +106 -0
  452. package/dist/domain/types/commands/core.js +1 -0
  453. package/dist/domain/types/commands/cron.d.ts +36 -0
  454. package/dist/domain/types/commands/cron.js +1 -0
  455. package/dist/domain/types/commands/dashboard.d.ts +13 -0
  456. package/dist/domain/types/commands/dashboard.js +1 -0
  457. package/dist/domain/types/commands/dlq.d.ts +39 -0
  458. package/dist/domain/types/commands/dlq.js +1 -0
  459. package/dist/domain/types/commands/extended.d.ts +63 -0
  460. package/dist/domain/types/commands/extended.js +1 -0
  461. package/dist/domain/types/commands/index.d.ts +12 -0
  462. package/dist/domain/types/commands/index.js +12 -0
  463. package/dist/domain/types/commands/limits.d.ts +54 -0
  464. package/dist/domain/types/commands/limits.js +1 -0
  465. package/dist/domain/types/commands/management.d.ts +73 -0
  466. package/dist/domain/types/commands/management.js +1 -0
  467. package/dist/domain/types/commands/monitoring.d.ts +49 -0
  468. package/dist/domain/types/commands/monitoring.js +1 -0
  469. package/dist/domain/types/commands/protocol.d.ts +20 -0
  470. package/dist/domain/types/commands/protocol.js +1 -0
  471. package/dist/domain/types/commands/query.d.ts +46 -0
  472. package/dist/domain/types/commands/query.js +1 -0
  473. package/dist/domain/types/commands/union.d.ts +13 -0
  474. package/dist/domain/types/commands/union.js +1 -0
  475. package/dist/domain/types/commands/workers.d.ts +39 -0
  476. package/dist/domain/types/commands/workers.js +1 -0
  477. package/dist/domain/types/cron.d.ts +4 -2
  478. package/dist/domain/types/cron.js +3 -0
  479. package/dist/domain/types/dlq.d.ts +17 -0
  480. package/dist/domain/types/dlq.js +70 -14
  481. package/dist/domain/types/index.d.ts +2 -0
  482. package/dist/domain/types/index.js +1 -0
  483. package/dist/domain/types/job.d.ts +8 -269
  484. package/dist/domain/types/job.js +8 -234
  485. package/dist/domain/types/jobs/model.d.ts +152 -0
  486. package/dist/domain/types/jobs/model.js +1 -0
  487. package/dist/domain/types/metrics.d.ts +16 -0
  488. package/dist/domain/types/metrics.js +1 -0
  489. package/dist/domain/types/priorityQueue.d.ts +12 -0
  490. package/dist/domain/types/priorityQueue.js +1 -0
  491. package/dist/domain/types/protocol.d.ts +5 -0
  492. package/dist/domain/types/protocol.js +4 -0
  493. package/dist/domain/types/queue.d.ts +7 -0
  494. package/dist/domain/types/queue.js +13 -0
  495. package/dist/domain/types/response.d.ts +3 -192
  496. package/dist/domain/types/response.js +3 -101
  497. package/dist/domain/types/responses/model.d.ts +152 -0
  498. package/dist/domain/types/responses/model.js +1 -0
  499. package/dist/domain/types/shard.d.ts +4 -0
  500. package/dist/domain/types/shard.js +1 -0
  501. package/dist/infrastructure/cloud/cloudAgent.js +6 -0
  502. package/dist/infrastructure/cloud/commandHandler.d.ts +2 -41
  503. package/dist/infrastructure/cloud/commandHandler.js +1 -1
  504. package/dist/infrastructure/cloud/commands/integrations.d.ts +2 -0
  505. package/dist/infrastructure/cloud/commands/integrations.js +31 -0
  506. package/dist/infrastructure/cloud/commands/jobMapper.d.ts +56 -0
  507. package/dist/infrastructure/cloud/commands/jobMapper.js +72 -0
  508. package/dist/infrastructure/cloud/commands/jobs.d.ts +2 -0
  509. package/dist/infrastructure/cloud/commands/jobs.js +111 -0
  510. package/dist/infrastructure/cloud/commands/queues.d.ts +2 -0
  511. package/dist/infrastructure/cloud/commands/queues.js +126 -0
  512. package/dist/infrastructure/cloud/commands.d.ts +3 -10
  513. package/dist/infrastructure/cloud/commands.js +7 -344
  514. package/dist/infrastructure/cloud/snapshot/analytics.d.ts +16 -0
  515. package/dist/infrastructure/cloud/snapshot/analytics.js +132 -0
  516. package/dist/infrastructure/cloud/snapshot/collector.d.ts +24 -0
  517. package/dist/infrastructure/cloud/snapshot/collector.js +105 -0
  518. package/dist/infrastructure/cloud/snapshot/config.d.ts +5 -0
  519. package/dist/infrastructure/cloud/snapshot/config.js +86 -0
  520. package/dist/infrastructure/cloud/snapshot/jobs.d.ts +5 -0
  521. package/dist/infrastructure/cloud/snapshot/jobs.js +148 -0
  522. package/dist/infrastructure/cloud/snapshot/stalls.d.ts +3 -0
  523. package/dist/infrastructure/cloud/snapshot/stalls.js +34 -0
  524. package/dist/infrastructure/cloud/snapshotCollector.d.ts +2 -53
  525. package/dist/infrastructure/cloud/snapshotCollector.js +5 -107
  526. package/dist/infrastructure/cloud/snapshotHelpers.d.ts +5 -45
  527. package/dist/infrastructure/cloud/snapshotHelpers.js +4 -426
  528. package/dist/infrastructure/cloud/types/collector.d.ts +54 -0
  529. package/dist/infrastructure/cloud/types/collector.js +1 -0
  530. package/dist/infrastructure/cloud/types/command.d.ts +44 -0
  531. package/dist/infrastructure/cloud/types/command.js +1 -0
  532. package/dist/infrastructure/cloud/types/config.d.ts +18 -0
  533. package/dist/infrastructure/cloud/types/config.js +1 -0
  534. package/dist/infrastructure/cloud/types/event.d.ts +14 -0
  535. package/dist/infrastructure/cloud/types/event.js +1 -0
  536. package/dist/infrastructure/cloud/types/redact.d.ts +4 -0
  537. package/dist/infrastructure/cloud/types/redact.js +1 -0
  538. package/dist/infrastructure/cloud/types/snapshot.d.ts +52 -0
  539. package/dist/infrastructure/cloud/types/snapshot.js +1 -0
  540. package/dist/infrastructure/cloud/types/snapshotCore.d.ts +125 -0
  541. package/dist/infrastructure/cloud/types/snapshotCore.js +1 -0
  542. package/dist/infrastructure/cloud/types/snapshotJobs.d.ts +124 -0
  543. package/dist/infrastructure/cloud/types/snapshotJobs.js +1 -0
  544. package/dist/infrastructure/cloud/types/snapshotTelemetry.d.ts +100 -0
  545. package/dist/infrastructure/cloud/types/snapshotTelemetry.js +1 -0
  546. package/dist/infrastructure/cloud/types.d.ts +3 -445
  547. package/dist/infrastructure/cloud/types.js +0 -4
  548. package/dist/infrastructure/persistence/batchInsert.d.ts +13 -0
  549. package/dist/infrastructure/persistence/batchInsert.js +96 -0
  550. package/dist/infrastructure/persistence/jobOptionsBlob.d.ts +18 -0
  551. package/dist/infrastructure/persistence/jobOptionsBlob.js +56 -0
  552. package/dist/infrastructure/persistence/legacyNameMigration.d.ts +5 -0
  553. package/dist/infrastructure/persistence/legacyNameMigration.js +42 -0
  554. package/dist/infrastructure/persistence/migrations.d.ts +3 -0
  555. package/dist/infrastructure/persistence/migrations.js +120 -0
  556. package/dist/infrastructure/persistence/schema.d.ts +3 -5
  557. package/dist/infrastructure/persistence/schema.js +40 -136
  558. package/dist/infrastructure/persistence/sqlite/admission.d.ts +9 -0
  559. package/dist/infrastructure/persistence/sqlite/admission.js +34 -0
  560. package/dist/infrastructure/persistence/sqlite/control.d.ts +32 -0
  561. package/dist/infrastructure/persistence/sqlite/control.js +90 -0
  562. package/dist/infrastructure/persistence/sqlite/flows.d.ts +26 -0
  563. package/dist/infrastructure/persistence/sqlite/flows.js +167 -0
  564. package/dist/infrastructure/persistence/sqlite/jobs.d.ts +23 -0
  565. package/dist/infrastructure/persistence/sqlite/jobs.js +166 -0
  566. package/dist/infrastructure/persistence/sqlite/lifecycle.d.ts +6 -0
  567. package/dist/infrastructure/persistence/sqlite/lifecycle.js +30 -0
  568. package/dist/infrastructure/persistence/sqlite/mutations.d.ts +20 -0
  569. package/dist/infrastructure/persistence/sqlite/mutations.js +149 -0
  570. package/dist/infrastructure/persistence/sqlite/queries.d.ts +23 -0
  571. package/dist/infrastructure/persistence/sqlite/queries.js +89 -0
  572. package/dist/infrastructure/persistence/sqlite/records.d.ts +24 -0
  573. package/dist/infrastructure/persistence/sqlite/records.js +115 -0
  574. package/dist/infrastructure/persistence/sqlite/state.d.ts +36 -0
  575. package/dist/infrastructure/persistence/sqlite/state.js +207 -0
  576. package/dist/infrastructure/persistence/sqlite/telemetry.d.ts +16 -0
  577. package/dist/infrastructure/persistence/sqlite/telemetry.js +126 -0
  578. package/dist/infrastructure/persistence/sqlite.d.ts +5 -276
  579. package/dist/infrastructure/persistence/sqlite.js +3 -997
  580. package/dist/infrastructure/persistence/sqliteBatch.d.ts +4 -121
  581. package/dist/infrastructure/persistence/sqliteBatch.js +3 -422
  582. package/dist/infrastructure/persistence/sqliteSerializer.d.ts +6 -1
  583. package/dist/infrastructure/persistence/sqliteSerializer.js +33 -11
  584. package/dist/infrastructure/persistence/statements.d.ts +5 -1
  585. package/dist/infrastructure/persistence/statements.js +14 -9
  586. package/dist/infrastructure/persistence/types/admission.d.ts +8 -0
  587. package/dist/infrastructure/persistence/types/admission.js +1 -0
  588. package/dist/infrastructure/persistence/types/batch.d.ts +12 -0
  589. package/dist/infrastructure/persistence/types/batch.js +1 -0
  590. package/dist/infrastructure/persistence/types/sqlite.d.ts +17 -0
  591. package/dist/infrastructure/persistence/types/sqlite.js +1 -0
  592. package/dist/infrastructure/persistence/writeBuffer.d.ts +38 -0
  593. package/dist/infrastructure/persistence/writeBuffer.js +221 -0
  594. package/dist/infrastructure/scheduler/cron/execution.d.ts +12 -0
  595. package/dist/infrastructure/scheduler/cron/execution.js +150 -0
  596. package/dist/infrastructure/scheduler/cron/runtime.d.ts +31 -0
  597. package/dist/infrastructure/scheduler/cron/runtime.js +143 -0
  598. package/dist/infrastructure/scheduler/cronScheduler.d.ts +4 -117
  599. package/dist/infrastructure/scheduler/cronScheduler.js +3 -436
  600. package/dist/infrastructure/scheduler/types/cronScheduler.d.ts +16 -0
  601. package/dist/infrastructure/scheduler/types/cronScheduler.js +1 -0
  602. package/dist/infrastructure/server/bootstrap.js +3 -0
  603. package/dist/infrastructure/server/handler-routes/control.d.ts +8 -0
  604. package/dist/infrastructure/server/handler-routes/control.js +82 -0
  605. package/dist/infrastructure/server/handler-routes/jobs.d.ts +6 -0
  606. package/dist/infrastructure/server/handler-routes/jobs.js +110 -0
  607. package/dist/infrastructure/server/handler-routes/monitoring.d.ts +5 -0
  608. package/dist/infrastructure/server/handler-routes/monitoring.js +65 -0
  609. package/dist/infrastructure/server/handlerRoutes.d.ts +3 -26
  610. package/dist/infrastructure/server/handlerRoutes.js +3 -257
  611. package/dist/infrastructure/server/handlers/advanced/configNumbers.d.ts +2 -0
  612. package/dist/infrastructure/server/handlers/advanced/configNumbers.js +26 -0
  613. package/dist/infrastructure/server/handlers/advanced/dependencies.d.ts +15 -0
  614. package/dist/infrastructure/server/handlers/advanced/dependencies.js +38 -0
  615. package/dist/infrastructure/server/handlers/advanced/jobs.d.ts +33 -0
  616. package/dist/infrastructure/server/handlers/advanced/jobs.js +136 -0
  617. package/dist/infrastructure/server/handlers/advanced/queue.d.ts +42 -0
  618. package/dist/infrastructure/server/handlers/advanced/queue.js +111 -0
  619. package/dist/infrastructure/server/handlers/advanced.d.ts +3 -121
  620. package/dist/infrastructure/server/handlers/advanced.js +3 -336
  621. package/dist/infrastructure/server/handlers/core.d.ts +1 -4
  622. package/dist/infrastructure/server/handlers/core.js +37 -20
  623. package/dist/infrastructure/server/handlers/cron.js +9 -1
  624. package/dist/infrastructure/server/handlers/dlq.d.ts +3 -0
  625. package/dist/infrastructure/server/handlers/dlq.js +18 -4
  626. package/dist/infrastructure/server/handlers/flow.js +6 -1
  627. package/dist/infrastructure/server/handlers/introspection.d.ts +19 -0
  628. package/dist/infrastructure/server/handlers/introspection.js +21 -0
  629. package/dist/infrastructure/server/handlers/management.d.ts +8 -0
  630. package/dist/infrastructure/server/handlers/management.js +30 -0
  631. package/dist/infrastructure/server/handlers/monitoring/health.d.ts +13 -0
  632. package/dist/infrastructure/server/handlers/monitoring/health.js +61 -0
  633. package/dist/infrastructure/server/handlers/monitoring/operations.d.ts +8 -0
  634. package/dist/infrastructure/server/handlers/monitoring/operations.js +28 -0
  635. package/dist/infrastructure/server/handlers/monitoring/webhooks.d.ts +7 -0
  636. package/dist/infrastructure/server/handlers/monitoring/webhooks.js +56 -0
  637. package/dist/infrastructure/server/handlers/monitoring/workers.d.ts +6 -0
  638. package/dist/infrastructure/server/handlers/monitoring/workers.js +57 -0
  639. package/dist/infrastructure/server/handlers/monitoring.d.ts +4 -30
  640. package/dist/infrastructure/server/handlers/monitoring.js +4 -222
  641. package/dist/infrastructure/server/handlers/pushBatchValidation.d.ts +1 -1
  642. package/dist/infrastructure/server/handlers/pushBatchValidation.js +7 -0
  643. package/dist/infrastructure/server/handlers/query.js +13 -4
  644. package/dist/infrastructure/server/http-routes/jobAdvanced.d.ts +2 -0
  645. package/dist/infrastructure/server/http-routes/jobAdvanced.js +106 -0
  646. package/dist/infrastructure/server/http-routes/jobManagement.d.ts +2 -0
  647. package/dist/infrastructure/server/http-routes/jobManagement.js +74 -0
  648. package/dist/infrastructure/server/http-routes/queueJobs.d.ts +2 -0
  649. package/dist/infrastructure/server/http-routes/queueJobs.js +108 -0
  650. package/dist/infrastructure/server/httpRouteJobs.d.ts +1 -8
  651. package/dist/infrastructure/server/httpRouteJobs.js +33 -222
  652. package/dist/infrastructure/server/httpRouteQueues.d.ts +1 -6
  653. package/dist/infrastructure/server/httpRouteQueues.js +51 -217
  654. package/dist/infrastructure/server/httpRouteResources.js +1 -0
  655. package/dist/infrastructure/server/protocol/commands.d.ts +8 -0
  656. package/dist/infrastructure/server/protocol/commands.js +31 -0
  657. package/dist/infrastructure/server/protocol/frameParser.d.ts +16 -0
  658. package/dist/infrastructure/server/protocol/frameParser.js +65 -0
  659. package/dist/infrastructure/server/protocol/lineBuffer.d.ts +6 -0
  660. package/dist/infrastructure/server/protocol/lineBuffer.js +21 -0
  661. package/dist/infrastructure/server/protocol/validation.d.ts +9 -0
  662. package/dist/infrastructure/server/protocol/validation.js +75 -0
  663. package/dist/infrastructure/server/protocol.d.ts +5 -77
  664. package/dist/infrastructure/server/protocol.js +4 -265
  665. package/dist/infrastructure/server/rateLimiter.js +1 -0
  666. package/dist/infrastructure/server/socketWriteQueue.d.ts +1 -1
  667. package/dist/infrastructure/server/socketWriteQueue.js +8 -5
  668. package/dist/infrastructure/server/sse/constants.d.ts +5 -0
  669. package/dist/infrastructure/server/sse/constants.js +5 -0
  670. package/dist/infrastructure/server/sse/eventBuffer.d.ts +3 -0
  671. package/dist/infrastructure/server/sse/eventBuffer.js +21 -0
  672. package/dist/infrastructure/server/sseHandler.d.ts +2 -6
  673. package/dist/infrastructure/server/sseHandler.js +20 -96
  674. package/dist/infrastructure/server/tcp/clientRelease.d.ts +2 -0
  675. package/dist/infrastructure/server/tcp/clientRelease.js +18 -0
  676. package/dist/infrastructure/server/tcp/connections.d.ts +24 -0
  677. package/dist/infrastructure/server/tcp/connections.js +162 -0
  678. package/dist/infrastructure/server/tcp/constants.d.ts +3 -0
  679. package/dist/infrastructure/server/tcp/constants.js +3 -0
  680. package/dist/infrastructure/server/tcp/eventSubscriptions.d.ts +10 -0
  681. package/dist/infrastructure/server/tcp/eventSubscriptions.js +17 -0
  682. package/dist/infrastructure/server/tcp/responses.d.ts +3 -0
  683. package/dist/infrastructure/server/tcp/responses.js +8 -0
  684. package/dist/infrastructure/server/tcp.d.ts +10 -68
  685. package/dist/infrastructure/server/tcp.js +47 -256
  686. package/dist/infrastructure/server/types/protocol.d.ts +4 -0
  687. package/dist/infrastructure/server/types/protocol.js +1 -0
  688. package/dist/infrastructure/server/types/sse.d.ts +11 -0
  689. package/dist/infrastructure/server/types/sse.js +1 -0
  690. package/dist/infrastructure/server/types/tcpServer.d.ts +25 -0
  691. package/dist/infrastructure/server/types/tcpServer.js +1 -0
  692. package/dist/infrastructure/server/types/ws.d.ts +6 -0
  693. package/dist/infrastructure/server/types/ws.js +1 -0
  694. package/dist/infrastructure/server/ws/constants.d.ts +6 -0
  695. package/dist/infrastructure/server/ws/constants.js +130 -0
  696. package/dist/infrastructure/server/ws/snapshots.d.ts +4 -0
  697. package/dist/infrastructure/server/ws/snapshots.js +52 -0
  698. package/dist/infrastructure/server/ws/subscriptions.d.ts +10 -0
  699. package/dist/infrastructure/server/ws/subscriptions.js +39 -0
  700. package/dist/infrastructure/server/wsHandler.d.ts +2 -10
  701. package/dist/infrastructure/server/wsHandler.js +12 -237
  702. package/dist/mcp/adapter.d.ts +5 -403
  703. package/dist/mcp/adapter.js +6 -778
  704. package/dist/mcp/backend/embedded/base.d.ts +7 -0
  705. package/dist/mcp/backend/embedded/base.js +15 -0
  706. package/dist/mcp/backend/embedded/index.d.ts +14 -0
  707. package/dist/mcp/backend/embedded/index.js +22 -0
  708. package/dist/mcp/backend/embedded/jobs.d.ts +44 -0
  709. package/dist/mcp/backend/embedded/jobs.js +98 -0
  710. package/dist/mcp/backend/embedded/queues.d.ts +27 -0
  711. package/dist/mcp/backend/embedded/queues.js +84 -0
  712. package/dist/mcp/backend/embedded/services.d.ts +29 -0
  713. package/dist/mcp/backend/embedded/services.js +107 -0
  714. package/dist/mcp/backend/serializers.d.ts +7 -0
  715. package/dist/mcp/backend/serializers.js +32 -0
  716. package/dist/mcp/backend/tcp/base.d.ts +19 -0
  717. package/dist/mcp/backend/tcp/base.js +54 -0
  718. package/dist/mcp/backend/tcp/index.d.ts +14 -0
  719. package/dist/mcp/backend/tcp/index.js +20 -0
  720. package/dist/mcp/backend/tcp/jobs.d.ts +44 -0
  721. package/dist/mcp/backend/tcp/jobs.js +122 -0
  722. package/dist/mcp/backend/tcp/queues.d.ts +27 -0
  723. package/dist/mcp/backend/tcp/queues.js +89 -0
  724. package/dist/mcp/backend/tcp/services.d.ts +30 -0
  725. package/dist/mcp/backend/tcp/services.js +161 -0
  726. package/dist/mcp/types/adapter.d.ts +176 -0
  727. package/dist/mcp/types/adapter.js +1 -0
  728. package/dist/shared/asyncLock.d.ts +13 -0
  729. package/dist/shared/asyncLock.js +65 -0
  730. package/dist/shared/lock.d.ts +10 -72
  731. package/dist/shared/lock.js +7 -231
  732. package/dist/shared/lockError.d.ts +3 -0
  733. package/dist/shared/lockError.js +6 -0
  734. package/dist/shared/lockTimeout.d.ts +2 -0
  735. package/dist/shared/lockTimeout.js +2 -0
  736. package/dist/shared/rwLock.d.ts +22 -0
  737. package/dist/shared/rwLock.js +124 -0
  738. package/dist/shared/serialization.js +1 -0
  739. package/dist/shared/skipList.d.ts +0 -5
  740. package/dist/shared/skipList.js +10 -57
  741. package/dist/shared/skipListNodes.d.ts +6 -0
  742. package/dist/shared/skipListNodes.js +43 -0
  743. package/dist/shared/types/lock.d.ts +7 -0
  744. package/dist/shared/types/lock.js +1 -0
  745. package/dist/shared/types/skipList.d.ts +4 -0
  746. package/dist/shared/types/skipList.js +1 -0
  747. package/package.json +2 -1
@@ -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';