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
@@ -0,0 +1,8 @@
1
+ import type { Command } from '../../../domain/types/command';
2
+ import { type Response } from '../../../domain/types/response';
3
+ import type { ConnectionState } from '../types/protocol';
4
+ export declare function parseCommand(data: string): Command | null;
5
+ export declare function serializeResponse(response: Response): string;
6
+ export declare function parseCommands(data: string): Command[];
7
+ export declare function createConnectionState(clientId: string): ConnectionState;
8
+ export declare function errorResponse(message: string, requestId?: string): string;
@@ -0,0 +1,31 @@
1
+ import { error } from '../../../domain/types/response';
2
+ export function parseCommand(data) {
3
+ try {
4
+ const parsed = JSON.parse(data);
5
+ if (!parsed['cmd'])
6
+ return null;
7
+ return parsed;
8
+ }
9
+ catch {
10
+ return null;
11
+ }
12
+ }
13
+ export function serializeResponse(response) {
14
+ return JSON.stringify(response);
15
+ }
16
+ export function parseCommands(data) {
17
+ const lines = data.split('\n').filter((line) => line.trim().length > 0);
18
+ const commands = [];
19
+ for (const line of lines) {
20
+ const command = parseCommand(line);
21
+ if (command)
22
+ commands.push(command);
23
+ }
24
+ return commands;
25
+ }
26
+ export function createConnectionState(clientId) {
27
+ return { authenticated: false, clientId };
28
+ }
29
+ export function errorResponse(message, requestId) {
30
+ return serializeResponse(error(message, requestId));
31
+ }
@@ -0,0 +1,16 @@
1
+ export declare const MAX_FRAME_SIZE: number;
2
+ export declare class FrameSizeError extends Error {
3
+ readonly requestedSize: number;
4
+ readonly maxSize: number;
5
+ constructor(requestedSize: number, maxSize: number);
6
+ }
7
+ export declare class FrameParser {
8
+ private buffer;
9
+ private readonly maxFrameSize;
10
+ constructor(maxFrameSize?: number);
11
+ addData(data: Uint8Array): Uint8Array[];
12
+ get bufferedBytes(): number;
13
+ get hasPartialFrame(): boolean;
14
+ clear(): void;
15
+ static frame(data: Uint8Array): Uint8Array;
16
+ }
@@ -0,0 +1,65 @@
1
+ export const MAX_FRAME_SIZE = 64 * 1024 * 1024;
2
+ export class FrameSizeError extends Error {
3
+ requestedSize;
4
+ maxSize;
5
+ constructor(requestedSize, maxSize) {
6
+ super(`Frame size ${requestedSize} exceeds maximum allowed size ${maxSize}`);
7
+ this.requestedSize = requestedSize;
8
+ this.maxSize = maxSize;
9
+ this.name = 'FrameSizeError';
10
+ }
11
+ }
12
+ export class FrameParser {
13
+ buffer = new Uint8Array(0);
14
+ maxFrameSize;
15
+ constructor(maxFrameSize = MAX_FRAME_SIZE) {
16
+ this.maxFrameSize = maxFrameSize;
17
+ }
18
+ addData(data) {
19
+ const buffer = new Uint8Array(this.buffer.length + data.length);
20
+ buffer.set(this.buffer);
21
+ buffer.set(data, this.buffer.length);
22
+ const frames = [];
23
+ let offset = 0;
24
+ while (buffer.length - offset >= 4) {
25
+ const length = ((buffer[offset] << 24) |
26
+ (buffer[offset + 1] << 16) |
27
+ (buffer[offset + 2] << 8) |
28
+ buffer[offset + 3]) >>>
29
+ 0;
30
+ if (length > this.maxFrameSize) {
31
+ this.buffer = new Uint8Array(0);
32
+ throw new FrameSizeError(length, this.maxFrameSize);
33
+ }
34
+ if (buffer.length - offset < 4 + length)
35
+ break;
36
+ frames.push(buffer.slice(offset + 4, offset + 4 + length));
37
+ offset += 4 + length;
38
+ }
39
+ if (offset >= buffer.length)
40
+ this.buffer = new Uint8Array(0);
41
+ else if (offset === 0)
42
+ this.buffer = buffer;
43
+ else
44
+ this.buffer = buffer.slice(offset);
45
+ return frames;
46
+ }
47
+ get bufferedBytes() {
48
+ return this.buffer.length;
49
+ }
50
+ get hasPartialFrame() {
51
+ return this.buffer.length > 0;
52
+ }
53
+ clear() {
54
+ this.buffer = new Uint8Array(0);
55
+ }
56
+ static frame(data) {
57
+ const frame = new Uint8Array(4 + data.length);
58
+ frame[0] = (data.length >> 24) & 0xff;
59
+ frame[1] = (data.length >> 16) & 0xff;
60
+ frame[2] = (data.length >> 8) & 0xff;
61
+ frame[3] = data.length & 0xff;
62
+ frame.set(data, 4);
63
+ return frame;
64
+ }
65
+ }
@@ -0,0 +1,6 @@
1
+ export declare class LineBuffer {
2
+ private buffer;
3
+ addData(data: string): string[];
4
+ getRemaining(): string;
5
+ clear(): void;
6
+ }
@@ -0,0 +1,21 @@
1
+ export class LineBuffer {
2
+ buffer = '';
3
+ addData(data) {
4
+ this.buffer += data;
5
+ const lines = [];
6
+ let newlineIndex;
7
+ while ((newlineIndex = this.buffer.indexOf('\n')) !== -1) {
8
+ const line = this.buffer.slice(0, newlineIndex).trim();
9
+ this.buffer = this.buffer.slice(newlineIndex + 1);
10
+ if (line.length > 0)
11
+ lines.push(line);
12
+ }
13
+ return lines;
14
+ }
15
+ getRemaining() {
16
+ return this.buffer;
17
+ }
18
+ clear() {
19
+ this.buffer = '';
20
+ }
21
+ }
@@ -0,0 +1,9 @@
1
+ export declare function validateQueueName(name: string): string | null;
2
+ export declare function validateJobData(data: unknown): string | null;
3
+ export declare function validateNumericField(value: unknown, name: string, options?: {
4
+ min?: number;
5
+ max?: number;
6
+ required?: boolean;
7
+ }): string | null;
8
+ export declare function validateBackoffField(value: unknown): string | null;
9
+ export declare function validateJobOptions(options: Record<string, unknown>): string | null;
@@ -0,0 +1,75 @@
1
+ export function validateQueueName(name) {
2
+ if (!name || name.length === 0)
3
+ return 'Queue name is required';
4
+ if (name.length > 256)
5
+ return 'Queue name too long (max 256 characters)';
6
+ if (!/^[a-zA-Z0-9_\-.:]+$/.test(name))
7
+ return 'Queue name contains invalid characters';
8
+ return null;
9
+ }
10
+ export function validateJobData(data) {
11
+ let json;
12
+ try {
13
+ json = JSON.stringify(data);
14
+ }
15
+ catch {
16
+ return 'Job data must be JSON serializable';
17
+ }
18
+ if (json !== undefined && json.length > 10 * 1024 * 1024) {
19
+ return 'Job data too large (max 10MB)';
20
+ }
21
+ return null;
22
+ }
23
+ export function validateNumericField(value, name, options = {}) {
24
+ const { min = 0, max = Number.MAX_SAFE_INTEGER, required = false } = options;
25
+ if (value === undefined || value === null)
26
+ return required ? `${name} is required` : null;
27
+ if (typeof value !== 'number')
28
+ return `${name} must be a number`;
29
+ if (!Number.isFinite(value))
30
+ return `${name} must be a finite number`;
31
+ if (!Number.isInteger(value) &&
32
+ (name === 'priority' || name === 'attempts' || name === 'maxAttempts')) {
33
+ return `${name} must be an integer`;
34
+ }
35
+ if (value < min)
36
+ return `${name} must be at least ${min}`;
37
+ if (value > max)
38
+ return `${name} must be at most ${max}`;
39
+ return null;
40
+ }
41
+ export function validateBackoffField(value) {
42
+ if (value === undefined || value === null)
43
+ return null;
44
+ if (typeof value === 'object') {
45
+ const object = value;
46
+ if (object['type'] !== 'fixed' && object['type'] !== 'exponential') {
47
+ return "backoff.type must be 'fixed' or 'exponential'";
48
+ }
49
+ return validateNumericField(object['delay'], 'backoff.delay', {
50
+ min: 0,
51
+ max: 24 * 60 * 60 * 1000,
52
+ required: true,
53
+ });
54
+ }
55
+ return validateNumericField(value, 'backoff', { min: 0, max: 24 * 60 * 60 * 1000 });
56
+ }
57
+ export function validateJobOptions(options) {
58
+ const validations = [
59
+ validateNumericField(options['priority'], 'priority', { min: -1000000, max: 1000000 }),
60
+ validateNumericField(options['delay'], 'delay', { min: 0, max: 365 * 24 * 60 * 60 * 1000 }),
61
+ validateNumericField(options['timeout'], 'timeout', { min: 0, max: 24 * 60 * 60 * 1000 }),
62
+ validateNumericField(options['maxAttempts'], 'maxAttempts', { min: 1, max: 1000 }),
63
+ validateBackoffField(options['backoff']),
64
+ validateNumericField(options['ttl'], 'ttl', { min: 0, max: 365 * 24 * 60 * 60 * 1000 }),
65
+ validateNumericField(options['stallTimeout'], 'stallTimeout', {
66
+ min: 0,
67
+ max: 24 * 60 * 60 * 1000,
68
+ }),
69
+ ];
70
+ for (const error of validations) {
71
+ if (error)
72
+ return error;
73
+ }
74
+ return null;
75
+ }
@@ -1,78 +1,6 @@
1
- /**
2
- * Protocol Parser
3
- * Handles JSON text protocol parsing and serialization
4
- */
5
- import type { Command } from '../../domain/types/command';
6
- import { type Response } from '../../domain/types/response';
7
- /** Parse a command from JSON string */
8
- export declare function parseCommand(data: string): Command | null;
9
- /** Serialize response to JSON string */
10
- export declare function serializeResponse(response: Response): string;
11
- /** Parse multiple commands from newline-delimited JSON */
12
- export declare function parseCommands(data: string): Command[];
13
- /** Validate queue name */
14
- export declare function validateQueueName(name: string): string | null;
15
- /** Validate job data size */
16
- export declare function validateJobData(data: unknown): string | null;
17
- /** Validate a numeric field is within safe bounds */
18
- export declare function validateNumericField(value: unknown, name: string, options?: {
19
- min?: number;
20
- max?: number;
21
- required?: boolean;
22
- }): string | null;
23
- /**
24
- * Validate the backoff field, which the public JobOptions type allows in two
25
- * forms: a plain number (delay ms) or `{ type: 'fixed' | 'exponential', delay
26
- * }`. Embedded mode already accepts both (domain parseBackoff); the TCP path
27
- * must too, or the object form throws over the wire while working embedded.
28
- */
29
- export declare function validateBackoffField(value: unknown): string | null;
30
- /** Validate job options numeric fields */
31
- export declare function validateJobOptions(options: Record<string, unknown>): string | null;
32
- /** Re-export from shared module for backward compatibility */
1
+ export { createConnectionState, errorResponse, parseCommand, parseCommands, serializeResponse, } from './protocol/commands';
2
+ export { FrameParser, FrameSizeError, MAX_FRAME_SIZE } from './protocol/frameParser';
3
+ export { LineBuffer } from './protocol/lineBuffer';
4
+ export { validateBackoffField, validateJobData, validateJobOptions, validateNumericField, validateQueueName, } from './protocol/validation';
5
+ export type { ConnectionState } from './types/protocol';
33
6
  export { validateWebhookUrl } from '../../shared/webhookValidation';
34
- /** Connection state */
35
- export interface ConnectionState {
36
- authenticated: boolean;
37
- clientId: string;
38
- }
39
- /** Create initial connection state */
40
- export declare function createConnectionState(clientId: string): ConnectionState;
41
- /** Error response helper */
42
- export declare function errorResponse(message: string, reqId?: string): string;
43
- /** Line buffer for TCP connections */
44
- export declare class LineBuffer {
45
- private buffer;
46
- /** Add data to buffer and extract complete lines */
47
- addData(data: string): string[];
48
- /** Get remaining buffer content */
49
- getRemaining(): string;
50
- /** Clear buffer */
51
- clear(): void;
52
- }
53
- /** Maximum allowed frame size (64MB) - prevents memory exhaustion DoS */
54
- export declare const MAX_FRAME_SIZE: number;
55
- /** Error thrown when frame size exceeds maximum */
56
- export declare class FrameSizeError extends Error {
57
- readonly requestedSize: number;
58
- readonly maxSize: number;
59
- constructor(requestedSize: number, maxSize: number);
60
- }
61
- /** Binary protocol frame parser */
62
- export declare class FrameParser {
63
- private buffer;
64
- private readonly maxFrameSize;
65
- constructor(maxFrameSize?: number);
66
- /** Add data and extract complete frames
67
- * @throws {FrameSizeError} if frame length exceeds maxFrameSize
68
- */
69
- addData(data: Uint8Array): Uint8Array[];
70
- /** Number of bytes currently buffered awaiting a complete frame. */
71
- get bufferedBytes(): number;
72
- /** True while a partial (incomplete) frame is buffered. */
73
- get hasPartialFrame(): boolean;
74
- /** Clear the internal buffer */
75
- clear(): void;
76
- /** Create a framed message */
77
- static frame(data: Uint8Array): Uint8Array;
78
- }
@@ -1,266 +1,5 @@
1
- /**
2
- * Protocol Parser
3
- * Handles JSON text protocol parsing and serialization
4
- */
5
- import { error } from '../../domain/types/response';
6
- /** Parse a command from JSON string */
7
- export function parseCommand(data) {
8
- try {
9
- const parsed = JSON.parse(data);
10
- if (!parsed['cmd']) {
11
- return null;
12
- }
13
- return parsed;
14
- }
15
- catch {
16
- return null;
17
- }
18
- }
19
- /** Serialize response to JSON string */
20
- export function serializeResponse(response) {
21
- return JSON.stringify(response);
22
- }
23
- /** Parse multiple commands from newline-delimited JSON */
24
- export function parseCommands(data) {
25
- const lines = data.split('\n').filter((line) => line.trim().length > 0);
26
- const commands = [];
27
- for (const line of lines) {
28
- const cmd = parseCommand(line);
29
- if (cmd) {
30
- commands.push(cmd);
31
- }
32
- }
33
- return commands;
34
- }
35
- /** Validate queue name */
36
- export function validateQueueName(name) {
37
- if (!name || name.length === 0) {
38
- return 'Queue name is required';
39
- }
40
- if (name.length > 256) {
41
- return 'Queue name too long (max 256 characters)';
42
- }
43
- if (!/^[a-zA-Z0-9_\-.:]+$/.test(name)) {
44
- return 'Queue name contains invalid characters';
45
- }
46
- return null;
47
- }
48
- /** Validate job data size */
49
- export function validateJobData(data) {
50
- const json = JSON.stringify(data);
51
- if (json.length > 10 * 1024 * 1024) {
52
- return 'Job data too large (max 10MB)';
53
- }
54
- return null;
55
- }
56
- /** Validate a numeric field is within safe bounds */
57
- export function validateNumericField(value, name, options = {}) {
58
- const { min = 0, max = Number.MAX_SAFE_INTEGER, required = false } = options;
59
- if (value === undefined || value === null) {
60
- return required ? `${name} is required` : null;
61
- }
62
- if (typeof value !== 'number') {
63
- return `${name} must be a number`;
64
- }
65
- if (!Number.isFinite(value)) {
66
- return `${name} must be a finite number`;
67
- }
68
- if (!Number.isInteger(value) &&
69
- (name === 'priority' || name === 'attempts' || name === 'maxAttempts')) {
70
- return `${name} must be an integer`;
71
- }
72
- if (value < min) {
73
- return `${name} must be at least ${min}`;
74
- }
75
- if (value > max) {
76
- return `${name} must be at most ${max}`;
77
- }
78
- return null;
79
- }
80
- /**
81
- * Validate the backoff field, which the public JobOptions type allows in two
82
- * forms: a plain number (delay ms) or `{ type: 'fixed' | 'exponential', delay
83
- * }`. Embedded mode already accepts both (domain parseBackoff); the TCP path
84
- * must too, or the object form throws over the wire while working embedded.
85
- */
86
- export function validateBackoffField(value) {
87
- if (value === undefined || value === null)
88
- return null;
89
- if (typeof value === 'object') {
90
- const obj = value;
91
- if (obj['type'] !== 'fixed' && obj['type'] !== 'exponential') {
92
- return "backoff.type must be 'fixed' or 'exponential'";
93
- }
94
- return validateNumericField(obj['delay'], 'backoff.delay', {
95
- min: 0,
96
- max: 24 * 60 * 60 * 1000, // max 1 day
97
- required: true,
98
- });
99
- }
100
- return validateNumericField(value, 'backoff', { min: 0, max: 24 * 60 * 60 * 1000 }); // max 1 day
101
- }
102
- /** Validate job options numeric fields */
103
- export function validateJobOptions(options) {
104
- const validations = [
105
- validateNumericField(options['priority'], 'priority', { min: -1000000, max: 1000000 }),
106
- validateNumericField(options['delay'], 'delay', { min: 0, max: 365 * 24 * 60 * 60 * 1000 }), // max 1 year
107
- validateNumericField(options['timeout'], 'timeout', { min: 0, max: 24 * 60 * 60 * 1000 }), // max 1 day
108
- validateNumericField(options['maxAttempts'], 'maxAttempts', { min: 1, max: 1000 }),
109
- validateBackoffField(options['backoff']),
110
- validateNumericField(options['ttl'], 'ttl', { min: 0, max: 365 * 24 * 60 * 60 * 1000 }), // max 1 year
111
- validateNumericField(options['stallTimeout'], 'stallTimeout', {
112
- min: 0,
113
- max: 24 * 60 * 60 * 1000,
114
- }), // max 1 day
115
- ];
116
- for (const error of validations) {
117
- if (error)
118
- return error;
119
- }
120
- return null;
121
- }
122
- /** Re-export from shared module for backward compatibility */
1
+ export { createConnectionState, errorResponse, parseCommand, parseCommands, serializeResponse, } from './protocol/commands';
2
+ export { FrameParser, FrameSizeError, MAX_FRAME_SIZE } from './protocol/frameParser';
3
+ export { LineBuffer } from './protocol/lineBuffer';
4
+ export { validateBackoffField, validateJobData, validateJobOptions, validateNumericField, validateQueueName, } from './protocol/validation';
123
5
  export { validateWebhookUrl } from '../../shared/webhookValidation';
124
- /** Create initial connection state */
125
- export function createConnectionState(clientId) {
126
- return {
127
- authenticated: false,
128
- clientId,
129
- };
130
- }
131
- /** Error response helper */
132
- export function errorResponse(message, reqId) {
133
- return serializeResponse(error(message, reqId));
134
- }
135
- /** Line buffer for TCP connections */
136
- export class LineBuffer {
137
- buffer = '';
138
- /** Add data to buffer and extract complete lines */
139
- addData(data) {
140
- this.buffer += data;
141
- const lines = [];
142
- let newlineIdx;
143
- while ((newlineIdx = this.buffer.indexOf('\n')) !== -1) {
144
- const line = this.buffer.slice(0, newlineIdx).trim();
145
- this.buffer = this.buffer.slice(newlineIdx + 1);
146
- if (line.length > 0) {
147
- lines.push(line);
148
- }
149
- }
150
- return lines;
151
- }
152
- /** Get remaining buffer content */
153
- getRemaining() {
154
- return this.buffer;
155
- }
156
- /** Clear buffer */
157
- clear() {
158
- this.buffer = '';
159
- }
160
- }
161
- /** Maximum allowed frame size (64MB) - prevents memory exhaustion DoS */
162
- export const MAX_FRAME_SIZE = 64 * 1024 * 1024;
163
- /** Error thrown when frame size exceeds maximum */
164
- export class FrameSizeError extends Error {
165
- requestedSize;
166
- maxSize;
167
- constructor(requestedSize, maxSize) {
168
- super(`Frame size ${requestedSize} exceeds maximum allowed size ${maxSize}`);
169
- this.requestedSize = requestedSize;
170
- this.maxSize = maxSize;
171
- this.name = 'FrameSizeError';
172
- }
173
- }
174
- /** Binary protocol frame parser */
175
- export class FrameParser {
176
- buffer = new Uint8Array(0);
177
- maxFrameSize;
178
- constructor(maxFrameSize = MAX_FRAME_SIZE) {
179
- this.maxFrameSize = maxFrameSize;
180
- }
181
- /** Add data and extract complete frames
182
- * @throws {FrameSizeError} if frame length exceeds maxFrameSize
183
- */
184
- addData(data) {
185
- // Concatenate any buffered partial frame with the new data into a single
186
- // owned buffer (one copy). `data` is fully copied here and never retained,
187
- // so the caller may safely reuse its read buffer after this returns.
188
- const buffer = new Uint8Array(this.buffer.length + data.length);
189
- buffer.set(this.buffer);
190
- buffer.set(data, this.buffer.length);
191
- const frames = [];
192
- // Read cursor. Previously the tail was resliced with `buffer.slice(4 + len)`
193
- // after EVERY frame — O(tail) per frame, i.e. O(F²) when F frames arrive
194
- // coalesced in a single read (deep pipelining / OS segment coalescing). The
195
- // cursor advances in O(1) per frame, making the whole pass O(total bytes).
196
- let offset = 0;
197
- while (buffer.length - offset >= 4) {
198
- // Read length prefix (big-endian u32) using unsigned right shift to ensure positive value
199
- // Using >>> 0 at the end converts the result to an unsigned 32-bit integer
200
- const length = ((buffer[offset] << 24) |
201
- (buffer[offset + 1] << 16) |
202
- (buffer[offset + 2] << 8) |
203
- buffer[offset + 3]) >>>
204
- 0;
205
- // Validate frame size to prevent memory exhaustion DoS. A single frame's
206
- // declared length can never exceed maxFrameSize (64MB), so the partial
207
- // buffer is bounded by maxFrameSize regardless of how it is segmented
208
- // across TCP reads. Slowloris (a connection that declares a large frame
209
- // then never completes it) is handled at the transport layer by an idle
210
- // read timeout in the server, NOT by dropping legal large partial frames.
211
- if (length > this.maxFrameSize) {
212
- // Clear buffer to prevent further processing of malicious data
213
- this.buffer = new Uint8Array(0);
214
- throw new FrameSizeError(length, this.maxFrameSize);
215
- }
216
- if (buffer.length - offset < 4 + length) {
217
- // Not enough data for this (legal, < maxFrameSize) frame yet. Keep the
218
- // partial bytes buffered until the rest of the frame arrives across
219
- // subsequent TCP segments.
220
- break;
221
- }
222
- // Extract frame. The body is copied out (slice) so it never aliases the
223
- // retained tail buffer.
224
- frames.push(buffer.slice(offset + 4, offset + 4 + length));
225
- offset += 4 + length;
226
- }
227
- // Retain only the unconsumed tail. Three cases mirror the previous behavior
228
- // without the per-frame reslice:
229
- // - fully drained: a fresh empty buffer (do not pin the read's ArrayBuffer)
230
- // - nothing consumed: keep the concat buffer as-is (no extra copy)
231
- // - partial leftover after ≥1 frame: copy the small tail (no aliasing)
232
- if (offset >= buffer.length) {
233
- this.buffer = new Uint8Array(0);
234
- }
235
- else if (offset === 0) {
236
- this.buffer = buffer;
237
- }
238
- else {
239
- this.buffer = buffer.slice(offset);
240
- }
241
- return frames;
242
- }
243
- /** Number of bytes currently buffered awaiting a complete frame. */
244
- get bufferedBytes() {
245
- return this.buffer.length;
246
- }
247
- /** True while a partial (incomplete) frame is buffered. */
248
- get hasPartialFrame() {
249
- return this.buffer.length > 0;
250
- }
251
- /** Clear the internal buffer */
252
- clear() {
253
- this.buffer = new Uint8Array(0);
254
- }
255
- /** Create a framed message */
256
- static frame(data) {
257
- const frame = new Uint8Array(4 + data.length);
258
- // Write length prefix (big-endian u32)
259
- frame[0] = (data.length >> 24) & 0xff;
260
- frame[1] = (data.length >> 16) & 0xff;
261
- frame[2] = (data.length >> 8) & 0xff;
262
- frame[3] = data.length & 0xff;
263
- frame.set(data, 4);
264
- return frame;
265
- }
266
- }
@@ -96,6 +96,7 @@ export class ProtocolRateLimiter {
96
96
  this.cleanupInterval = setInterval(() => {
97
97
  this.cleanup();
98
98
  }, this.config.cleanupIntervalMs);
99
+ this.cleanupInterval.unref();
99
100
  }
100
101
  }
101
102
  /** Clean up old entries - O(n) but runs infrequently */
@@ -48,7 +48,7 @@ export declare class SocketWriteQueue {
48
48
  * Call from the socket's `drain` handler. Stops at the first short write,
49
49
  * leaving the remainder queued for the next drain.
50
50
  */
51
- flush(socket: WritableSocket): void;
51
+ flush(socket: WritableSocket): boolean;
52
52
  /** Number of bytes still buffered awaiting drain. */
53
53
  get bytesQueued(): number;
54
54
  /** Whether there is unwritten data awaiting drain. */
@@ -84,23 +84,26 @@ export class SocketWriteQueue {
84
84
  written = socket.write(view);
85
85
  }
86
86
  catch {
87
- return;
87
+ return false;
88
88
  }
89
- if (written <= 0) {
90
- // Socket not ready / closed; wait for the next drain.
91
- return;
89
+ if (written < 0)
90
+ return false;
91
+ if (written === 0) {
92
+ // Socket is still backpressured; wait for the next drain.
93
+ return true;
92
94
  }
93
95
  if (written < view.length) {
94
96
  // Still backpressured: advance offset within the current chunk.
95
97
  this.offset += written;
96
98
  this.queuedBytes -= written;
97
- return;
99
+ return true;
98
100
  }
99
101
  // Whole chunk flushed.
100
102
  this.queuedBytes -= view.length;
101
103
  this.pending.shift();
102
104
  this.offset = 0;
103
105
  }
106
+ return true;
104
107
  }
105
108
  /** Number of bytes still buffered awaiting drain. */
106
109
  get bytesQueued() {
@@ -0,0 +1,5 @@
1
+ export declare const sseTextEncoder: TextEncoder;
2
+ export declare const MAX_SSE_CLIENTS = 1000;
3
+ export declare const SSE_HEARTBEAT_MS = 30000;
4
+ export declare const SSE_RETRY_MS = 3000;
5
+ export declare const SSE_EVENT_BUFFER_SIZE = 1000;
@@ -0,0 +1,5 @@
1
+ export const sseTextEncoder = new TextEncoder();
2
+ export const MAX_SSE_CLIENTS = 1000;
3
+ export const SSE_HEARTBEAT_MS = 30_000;
4
+ export const SSE_RETRY_MS = 3_000;
5
+ export const SSE_EVENT_BUFFER_SIZE = 1000;
@@ -0,0 +1,3 @@
1
+ import type { BufferedSseEvent, SseClient } from '../types/sse';
2
+ export declare function bufferSseEvent(buffer: BufferedSseEvent[], event: BufferedSseEvent): void;
3
+ export declare function replaySseEvents(buffer: readonly BufferedSseEvent[], client: SseClient, lastEventId: number): void;