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,315 +1,3 @@
1
- /**
2
- * TCP Connection Handler
3
- * Manages low-level socket connection and data handling (msgpack binary protocol)
4
- */
5
- import { readFileSync } from 'node:fs';
6
- import { FrameParser, FrameSizeError } from '../../infrastructure/server/protocol';
7
- /**
8
- * Map client TLS options to the `tls` value accepted by Bun.connect.
9
- * Returns undefined when TLS is disabled (plaintext, the default).
10
- *
11
- * The CA is read into bytes (not passed as a `Bun.file` handle): Bun computes
12
- * the peer's `authorizationError` from this `ca`, and we enforce it in the
13
- * `handshake` handler (see `tlsRequiresVerification` / #109) — Bun.connect
14
- * itself never rejects an unauthorized peer on the client side.
15
- */
16
- export function buildClientTls(tls) {
17
- if (!tls)
18
- return undefined;
19
- if (tls === true)
20
- return true;
21
- return {
22
- ...(tls.rejectUnauthorized !== undefined && { rejectUnauthorized: tls.rejectUnauthorized }),
23
- ...(tls.caFile !== undefined && { ca: readFileSync(tls.caFile) }),
24
- };
25
- }
26
- /**
27
- * Whether the caller asked us to authenticate the server certificate.
28
- * Verification is the default for any TLS connection; only an explicit
29
- * `rejectUnauthorized: false` opts out (encryption-only). #109
30
- */
31
- export function tlsRequiresVerification(tls) {
32
- if (!tls)
33
- return false;
34
- if (tls === true)
35
- return true;
36
- return tls.rejectUnauthorized !== false;
37
- }
38
- /**
39
- * Establish TCP connection to server
40
- */
41
- export async function createConnection(target, connectTimeout, events) {
42
- return new Promise((resolve, reject) => {
43
- const socketData = {
44
- write: () => { },
45
- end: () => { },
46
- frameParser: new FrameParser(),
47
- };
48
- let connectionResolved = false;
49
- let timeoutId = null;
50
- // TLS server-certificate verification. Bun.connect never rejects an
51
- // unauthorized peer on the client side, but it DOES compute the peer's
52
- // authorizationError and hand it to the `handshake` callback — so we gate
53
- // the connection on it ourselves. #109
54
- //
55
- // Crucially, once a `handshake` handler is registered, Bun fires `open`
56
- // BEFORE the TLS handshake completes (without it, `open` fires only after).
57
- // So for EVERY TLS connection we must resolve on `handshake`, not `open` —
58
- // otherwise the pool writes its first command onto a socket whose handshake
59
- // is still in flight and the bytes are lost. Plaintext has no handshake
60
- // event, so it still resolves in `open`.
61
- const tlsValue = buildClientTls(target.tls);
62
- const isTls = tlsValue !== undefined;
63
- const verifyTls = tlsRequiresVerification(target.tls);
64
- let opened = false;
65
- let handshakeOk = !isTls; // plaintext: nothing to wait for; TLS: wait for handshake
66
- const maybeResolveOpen = () => {
67
- if (opened && handshakeOk && !connectionResolved) {
68
- connectionResolved = true;
69
- // Clear the connect timeout only now that we are actually resolving.
70
- // For TLS, `open` fires BEFORE `handshake`, so clearing the timeout in
71
- // `open` would leave the handshake phase unbounded — a stalled/malicious
72
- // peer that completes TCP but never drives the TLS handshake (no error,
73
- // no close) would hang this promise forever. Keeping the timeout armed
74
- // until resolve preserves connectTimeout as a bound over the handshake.
75
- cleanup();
76
- resolve({ socket: socketData, cleanup });
77
- }
78
- };
79
- const cleanup = () => {
80
- if (timeoutId) {
81
- clearTimeout(timeoutId);
82
- timeoutId = null;
83
- }
84
- };
85
- const targetDesc = `${target.host}:${target.port}`;
86
- // Socket handlers
87
- const socketHandlers = {
88
- data(_sock, data) {
89
- let frames;
90
- try {
91
- // `data` (Bun Buffer) is copied into addData's own buffer synchronously
92
- // and never retained, so the `new Uint8Array(data)` wrapper was a
93
- // redundant full copy per read on the client response path.
94
- frames = socketData.frameParser.addData(data);
95
- }
96
- catch (err) {
97
- if (err instanceof FrameSizeError) {
98
- events.onError(new Error(`Frame too large: ${err.requestedSize} bytes exceeds maximum ${err.maxSize}`));
99
- return;
100
- }
101
- throw err;
102
- }
103
- for (const frame of frames) {
104
- events.onData(frame);
105
- }
106
- },
107
- open(sock) {
108
- // NB: do NOT clear the connect timeout here. For TLS, `open` precedes
109
- // `handshake`; the timeout must stay armed until `maybeResolveOpen`
110
- // actually resolves (or a stalled handshake could hang forever). #109
111
- // Enable TCP keepalive so the OS probes idle connections and surfaces a
112
- // dead peer (suspended host, NAT/LB drop) via an error/close event,
113
- // instead of a half-open socket lingering until tcp_retries2 (~15 min).
114
- // Best-effort: not all platforms honor the delay, and older Bun builds
115
- // may lack the method — never let it abort connection setup. See #94.
116
- try {
117
- sock.setKeepAlive?.(true, 15000);
118
- }
119
- catch {
120
- /* keepalive unsupported on this platform/runtime */
121
- }
122
- socketData.write = (d) => sock.write(d);
123
- socketData.end = () => sock.end();
124
- opened = true;
125
- maybeResolveOpen();
126
- },
127
- handshake(sock, success, authorizationError) {
128
- // Fires only for TLS. When verification is required, a failed handshake
129
- // or any authorizationError (wrong/absent CA, self-signed, host
130
- // mismatch) must abort — otherwise TLS is encryption-only and an active
131
- // MITM can impersonate the broker and harvest the auth token. #109
132
- if (verifyTls && (!success || authorizationError)) {
133
- if (!connectionResolved) {
134
- connectionResolved = true;
135
- cleanup();
136
- const why = authorizationError?.message ?? 'handshake failed';
137
- reject(new Error(`TLS verification failed for ${targetDesc}: ${why}`));
138
- }
139
- try {
140
- sock.end();
141
- }
142
- catch {
143
- /* already closing */
144
- }
145
- return;
146
- }
147
- handshakeOk = true;
148
- maybeResolveOpen();
149
- },
150
- close() {
151
- if (!connectionResolved) {
152
- connectionResolved = true;
153
- cleanup();
154
- reject(new Error('Connection closed'));
155
- }
156
- events.onClose();
157
- },
158
- error(_sock, error) {
159
- if (!connectionResolved) {
160
- connectionResolved = true;
161
- cleanup();
162
- reject(new Error(`Connection error: ${error.message}`));
163
- }
164
- events.onError(error);
165
- },
166
- connectError(_sock, error) {
167
- if (!connectionResolved) {
168
- connectionResolved = true;
169
- cleanup();
170
- reject(new Error(`Failed to connect to ${targetDesc}: ${error.message}`));
171
- }
172
- },
173
- };
174
- // Connect via TCP (optionally wrapped in TLS — protocol is unchanged).
175
- // `tlsValue`/`isTls` were computed above to drive handshake-gated resolve.
176
- void Bun.connect({
177
- hostname: target.host ?? 'localhost',
178
- port: target.port ?? 6789,
179
- ...(tlsValue !== undefined && { tls: tlsValue }),
180
- socket: socketHandlers,
181
- }).catch((error) => {
182
- // Bun.connect rejects (instead of firing connectError) for some failure
183
- // modes, e.g. a TLS handshake refused synchronously. Route it through the
184
- // same rejection path so callers never hang until the connect timeout.
185
- if (!connectionResolved) {
186
- connectionResolved = true;
187
- cleanup();
188
- const message = error instanceof Error ? error.message : String(error);
189
- reject(new Error(`Failed to connect to ${targetDesc}: ${message}`));
190
- }
191
- });
192
- timeoutId = setTimeout(() => {
193
- if (!connectionResolved) {
194
- connectionResolved = true;
195
- reject(new Error(`Connection timeout to ${targetDesc}`));
196
- }
197
- }, connectTimeout);
198
- });
199
- }
200
- /**
201
- * Command queue for managing pending commands
202
- * Supports both legacy single-command mode and pipelining mode with reqId tracking
203
- */
204
- export class CommandQueue {
205
- pendingCommands = new Map();
206
- pendingQueue = [];
207
- currentCommand = null;
208
- commandIdCounter = 0;
209
- /** In-flight commands tracked by reqId for pipelining */
210
- inFlightByReqId = new Map();
211
- /** Get current command being processed (legacy mode) */
212
- getCurrentCommand() {
213
- return this.currentCommand;
214
- }
215
- /** Set current command (legacy mode) */
216
- setCurrentCommand(cmd) {
217
- this.currentCommand = cmd;
218
- }
219
- /** Check if has pending commands in queue */
220
- hasPending() {
221
- return this.pendingCommands.size > 0;
222
- }
223
- /** Get number of in-flight commands */
224
- getInFlightCount() {
225
- return this.inFlightByReqId.size;
226
- }
227
- /** Check if can send more commands (pipelining backpressure) */
228
- canSendMore(maxInFlight) {
229
- return this.inFlightByReqId.size < maxInFlight;
230
- }
231
- /** Add command to in-flight tracking by reqId */
232
- addInFlight(command) {
233
- this.inFlightByReqId.set(command.reqId, command);
234
- }
235
- /** Get in-flight command by reqId */
236
- getByReqId(reqId) {
237
- return this.inFlightByReqId.get(reqId);
238
- }
239
- /** Remove in-flight command by reqId */
240
- removeByReqId(reqId) {
241
- const cmd = this.inFlightByReqId.get(reqId);
242
- if (cmd) {
243
- this.inFlightByReqId.delete(reqId);
244
- }
245
- return cmd;
246
- }
247
- /** Add command to queue */
248
- enqueue(command) {
249
- this.pendingCommands.set(command.id, command);
250
- this.pendingQueue.push(command.id);
251
- }
252
- /** Get next command ID */
253
- nextId() {
254
- return ++this.commandIdCounter;
255
- }
256
- /** Dequeue next command */
257
- dequeue() {
258
- const nextId = this.pendingQueue.shift();
259
- if (nextId === undefined)
260
- return null;
261
- const next = this.pendingCommands.get(nextId);
262
- if (!next)
263
- return null;
264
- this.pendingCommands.delete(nextId);
265
- return next;
266
- }
267
- /** Remove command by ID */
268
- remove(id) {
269
- if (!this.pendingCommands.has(id))
270
- return false;
271
- this.pendingCommands.delete(id);
272
- const queueIdx = this.pendingQueue.indexOf(id);
273
- if (queueIdx !== -1) {
274
- this.pendingQueue.splice(queueIdx, 1);
275
- }
276
- return true;
277
- }
278
- /** Reject all pending and in-flight commands */
279
- rejectAll(error) {
280
- // Reject queued commands. Attach a silent .catch BEFORE rejecting so that
281
- // callers without a .catch in place (fire-and-forget heartbeats, polling
282
- // loops mid-await on intentional close) don't surface as unhandled
283
- // rejections and force non-zero process exit.
284
- for (const cmd of this.pendingCommands.values()) {
285
- clearTimeout(cmd.timeout);
286
- cmd.promise?.catch(() => { });
287
- cmd.reject(error);
288
- }
289
- this.pendingCommands.clear();
290
- this.pendingQueue = [];
291
- // Reject in-flight commands (pipelining)
292
- for (const cmd of this.inFlightByReqId.values()) {
293
- clearTimeout(cmd.timeout);
294
- cmd.promise?.catch(() => { });
295
- cmd.reject(error);
296
- }
297
- this.inFlightByReqId.clear();
298
- // Reject current command (legacy)
299
- if (this.currentCommand) {
300
- clearTimeout(this.currentCommand.timeout);
301
- this.currentCommand.reject(error);
302
- this.currentCommand = null;
303
- }
304
- }
305
- /** Clear current command with optional rejection (legacy mode) */
306
- clearCurrent(error) {
307
- if (this.currentCommand) {
308
- clearTimeout(this.currentCommand.timeout);
309
- if (error) {
310
- this.currentCommand.reject(error);
311
- }
312
- this.currentCommand = null;
313
- }
314
- }
315
- }
1
+ /** Stable low-level TCP connection import surface. */
2
+ export { CommandQueue } from './commandQueue';
3
+ export { buildClientTls, createConnection, tlsRequiresVerification, } from './transport';
@@ -0,0 +1,6 @@
1
+ /** Synthetic rejection issued when a client closes with commands pending. */
2
+ export declare class ClientClosedError extends Error {
3
+ constructor(message?: string);
4
+ }
5
+ /** Install the one-time process filter for synthetic close rejections. */
6
+ export declare function installClientClosedFilter(): void;
@@ -0,0 +1,18 @@
1
+ /** Synthetic rejection issued when a client closes with commands pending. */
2
+ export class ClientClosedError extends Error {
3
+ constructor(message = 'Client closed') {
4
+ super(message);
5
+ this.name = 'ClientClosedError';
6
+ }
7
+ }
8
+ let clientClosedFilterInstalled = false;
9
+ /** Install the one-time process filter for synthetic close rejections. */
10
+ export function installClientClosedFilter() {
11
+ if (clientClosedFilterInstalled)
12
+ return;
13
+ clientClosedFilterInstalled = true;
14
+ process.on('unhandledRejection', (reason) => {
15
+ if (reason instanceof ClientClosedError)
16
+ return;
17
+ });
18
+ }
@@ -0,0 +1,9 @@
1
+ import type { HelloResponse } from '../../../domain/types/response';
2
+ import { TcpClientHealth } from './health';
3
+ /** Command framing, queueing, pipelining, and timeout handling. */
4
+ export declare abstract class TcpClientCommands extends TcpClientHealth {
5
+ hello(): Promise<HelloResponse>;
6
+ protected sendDirect(command: Record<string, unknown>): Promise<Record<string, unknown>>;
7
+ protected processQueue(): void;
8
+ send(command: Record<string, unknown>): Promise<Record<string, unknown>>;
9
+ }
@@ -0,0 +1,124 @@
1
+ import { FrameParser } from '../../../infrastructure/server/protocol';
2
+ import { PROTOCOL_CAPABILITIES, PROTOCOL_VERSION } from '../../../domain/types/protocol';
3
+ import { encodeMessagePack } from '../../../shared/msgpack';
4
+ import { TcpClientHealth } from './health';
5
+ /** Command framing, queueing, pipelining, and timeout handling. */
6
+ export class TcpClientCommands extends TcpClientHealth {
7
+ async hello() {
8
+ const response = await this.send({
9
+ cmd: 'Hello',
10
+ protocolVersion: PROTOCOL_VERSION,
11
+ capabilities: [...PROTOCOL_CAPABILITIES],
12
+ });
13
+ if (response.ok !== true) {
14
+ const message = typeof response.error === 'string' ? response.error : 'Hello failed';
15
+ throw new Error(message);
16
+ }
17
+ return response;
18
+ }
19
+ sendDirect(command) {
20
+ if (!this.socket)
21
+ return Promise.reject(new Error('Not connected'));
22
+ const startTime = Date.now();
23
+ this.health.recordCommandSent();
24
+ const reqId = this.generateReqId();
25
+ const commandWithReqId = { ...command, reqId };
26
+ let pendingRef;
27
+ const promise = new Promise((resolve, reject) => {
28
+ const timeout = setTimeout(() => {
29
+ const removed = this.commands.removeByReqId(reqId);
30
+ if (removed) {
31
+ this.health.recordError();
32
+ reject(new Error('Command timeout'));
33
+ }
34
+ }, this.options.commandTimeout);
35
+ pendingRef = {
36
+ id: 0,
37
+ reqId,
38
+ command: commandWithReqId,
39
+ resolve: (result) => {
40
+ this.health.recordSuccess(Date.now() - startTime);
41
+ resolve(result);
42
+ },
43
+ reject: (error) => {
44
+ this.health.recordError();
45
+ reject(error);
46
+ },
47
+ timeout,
48
+ };
49
+ });
50
+ pendingRef.promise = promise;
51
+ this.commands.addInFlight(pendingRef);
52
+ this.socket.write(FrameParser.frame(encodeMessagePack(commandWithReqId)));
53
+ return promise;
54
+ }
55
+ processQueue() {
56
+ if (!this.connected || !this.socket)
57
+ return;
58
+ while (this.commands.hasPending() && this.commands.canSendMore(this.options.maxInFlight)) {
59
+ const next = this.commands.dequeue();
60
+ if (!next)
61
+ break;
62
+ clearTimeout(next.timeout);
63
+ const newTimeout = setTimeout(() => {
64
+ const removed = this.commands.removeByReqId(next.reqId);
65
+ if (removed) {
66
+ this.health.recordError();
67
+ next.reject(new Error('Command timeout'));
68
+ this.handleCommandTimeout();
69
+ }
70
+ }, this.options.commandTimeout);
71
+ next.timeout = newTimeout;
72
+ this.commands.addInFlight(next);
73
+ this.socket.write(FrameParser.frame(encodeMessagePack(next.command)));
74
+ }
75
+ }
76
+ send(command) {
77
+ const startTime = Date.now();
78
+ this.health.recordCommandSent();
79
+ const reqId = this.generateReqId();
80
+ const commandWithReqId = { ...command, reqId };
81
+ const id = this.commands.nextId();
82
+ let pendingRef;
83
+ const promise = new Promise((resolve, reject) => {
84
+ const timeout = setTimeout(() => {
85
+ if (this.commands.remove(id)) {
86
+ this.health.recordError();
87
+ reject(new Error('Command timeout'));
88
+ return;
89
+ }
90
+ const removed = this.commands.removeByReqId(reqId);
91
+ if (removed) {
92
+ this.health.recordError();
93
+ reject(new Error('Command timeout'));
94
+ this.handleCommandTimeout();
95
+ }
96
+ }, this.options.commandTimeout);
97
+ pendingRef = {
98
+ id,
99
+ reqId,
100
+ command: commandWithReqId,
101
+ resolve: (result) => {
102
+ this.health.recordSuccess(Date.now() - startTime);
103
+ resolve(result);
104
+ },
105
+ reject: (error) => {
106
+ this.health.recordError();
107
+ reject(error);
108
+ },
109
+ timeout,
110
+ };
111
+ });
112
+ pendingRef.promise = promise;
113
+ this.commands.enqueue(pendingRef);
114
+ if (!this.connected && !this.connecting) {
115
+ this.connect().catch(() => {
116
+ // The queued command owns timeout and rejection reporting.
117
+ });
118
+ }
119
+ else if (this.connected) {
120
+ this.processQueue();
121
+ }
122
+ return promise;
123
+ }
124
+ }
@@ -0,0 +1,13 @@
1
+ import { TcpClientState } from './state';
2
+ /** Connection establishment and authentication lifecycle. */
3
+ export declare abstract class TcpClientConnectivity extends TcpClientState {
4
+ protected abstract handleData(frame: Uint8Array): void;
5
+ protected abstract handleClose(): void;
6
+ protected abstract processQueue(): void;
7
+ protected abstract sendDirect(command: Record<string, unknown>): Promise<Record<string, unknown>>;
8
+ connect(): Promise<void>;
9
+ protected abstract ping(): Promise<boolean>;
10
+ private waitForConnection;
11
+ private doConnect;
12
+ private authenticate;
13
+ }
@@ -0,0 +1,77 @@
1
+ import { createConnection } from '../connection';
2
+ import { TcpClientState } from './state';
3
+ /** Connection establishment and authentication lifecycle. */
4
+ export class TcpClientConnectivity extends TcpClientState {
5
+ async connect() {
6
+ if (this.connected)
7
+ return;
8
+ if (this.connecting)
9
+ return this.waitForConnection();
10
+ this.connecting = true;
11
+ this.reconnect.setClosed(false);
12
+ try {
13
+ await this.doConnect();
14
+ this.reconnect.reset();
15
+ this.emit('connected');
16
+ this.health.startPing(async () => {
17
+ await this.ping();
18
+ });
19
+ this.processQueue();
20
+ }
21
+ catch (error) {
22
+ this.connecting = false;
23
+ if (this.reconnect.canReconnect()) {
24
+ this.reconnect.scheduleReconnect(() => this.connect());
25
+ }
26
+ throw error;
27
+ }
28
+ }
29
+ waitForConnection() {
30
+ return new Promise((resolve, reject) => {
31
+ const onConnect = () => {
32
+ this.off('error', onError);
33
+ resolve();
34
+ };
35
+ const onError = (error) => {
36
+ this.off('connected', onConnect);
37
+ reject(error);
38
+ };
39
+ this.once('connected', onConnect);
40
+ this.once('error', onError);
41
+ });
42
+ }
43
+ async doConnect() {
44
+ const { socket } = await createConnection({
45
+ host: this.options.host,
46
+ port: this.options.port,
47
+ tls: this.options.tls,
48
+ }, this.options.connectTimeout, {
49
+ onData: (frame) => {
50
+ this.handleData(frame);
51
+ },
52
+ onClose: () => {
53
+ this.handleClose();
54
+ },
55
+ onError: (error) => this.emit('error', error),
56
+ });
57
+ this.socket = socket;
58
+ if (this.options.token) {
59
+ try {
60
+ await this.authenticate();
61
+ }
62
+ catch (error) {
63
+ this.socket.end();
64
+ this.socket = null;
65
+ throw error;
66
+ }
67
+ }
68
+ this.connected = true;
69
+ this.connecting = false;
70
+ this.health.recordConnected();
71
+ }
72
+ async authenticate() {
73
+ const response = await this.sendDirect({ cmd: 'Auth', token: this.options.token });
74
+ if (!response.ok)
75
+ throw new Error('Authentication failed');
76
+ }
77
+ }
@@ -0,0 +1,14 @@
1
+ import { TcpClientConnectivity } from './connectivity';
2
+ /** Response dispatch, health tracking, and reconnect decisions. */
3
+ export declare abstract class TcpClientHealth extends TcpClientConnectivity {
4
+ protected handleData(frame: Uint8Array): void;
5
+ protected handleClose(): void;
6
+ ping(): Promise<boolean>;
7
+ protected abstract send(command: Record<string, unknown>): Promise<Record<string, unknown>>;
8
+ private handlePingFailure;
9
+ protected handleCommandTimeout(): void;
10
+ private forceReconnect;
11
+ getHealth(): import("..").ConnectionHealth;
12
+ protected abstract getState(): 'connected' | 'connecting' | 'disconnected' | 'closed';
13
+ protected generateReqId(): string;
14
+ }