bunqueue 2.8.0 → 2.8.2

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 (1014) hide show
  1. package/README.md +44 -11
  2. package/dist/application/backgroundTasks.d.ts +0 -1
  3. package/dist/application/backgroundTasks.js +83 -1
  4. package/dist/application/cleanupTasks.d.ts +0 -1
  5. package/dist/application/cleanupTasks.js +0 -1
  6. package/dist/application/clientTracking.d.ts +23 -1
  7. package/dist/application/clientTracking.js +80 -26
  8. package/dist/application/contextFactory.d.ts +6 -1
  9. package/dist/application/contextFactory.js +7 -1
  10. package/dist/application/dependencyProcessor.d.ts +0 -1
  11. package/dist/application/dependencyProcessor.js +0 -1
  12. package/dist/application/dlqManager.d.ts +0 -1
  13. package/dist/application/dlqManager.js +5 -1
  14. package/dist/application/eventsManager.d.ts +0 -1
  15. package/dist/application/eventsManager.js +0 -1
  16. package/dist/application/jobLogsManager.d.ts +0 -1
  17. package/dist/application/jobLogsManager.js +0 -1
  18. package/dist/application/latencyTracker.d.ts +0 -1
  19. package/dist/application/latencyTracker.js +0 -1
  20. package/dist/application/lockManager.d.ts +1 -2
  21. package/dist/application/lockManager.js +1 -2
  22. package/dist/application/lockOperations.d.ts +0 -1
  23. package/dist/application/lockOperations.js +0 -1
  24. package/dist/application/metricsExporter.d.ts +0 -1
  25. package/dist/application/metricsExporter.js +0 -1
  26. package/dist/application/monitoringChecks.d.ts +0 -1
  27. package/dist/application/monitoringChecks.js +0 -1
  28. package/dist/application/operations/ack.d.ts +0 -1
  29. package/dist/application/operations/ack.js +32 -34
  30. package/dist/application/operations/ackHelpers.d.ts +0 -1
  31. package/dist/application/operations/ackHelpers.js +0 -1
  32. package/dist/application/operations/index.d.ts +0 -1
  33. package/dist/application/operations/index.js +0 -1
  34. package/dist/application/operations/jobManagement.d.ts +1 -2
  35. package/dist/application/operations/jobManagement.js +3 -3
  36. package/dist/application/operations/jobStateTransitions.d.ts +0 -1
  37. package/dist/application/operations/jobStateTransitions.js +0 -1
  38. package/dist/application/operations/pull.d.ts +0 -1
  39. package/dist/application/operations/pull.js +0 -1
  40. package/dist/application/operations/push.d.ts +0 -1
  41. package/dist/application/operations/push.js +0 -1
  42. package/dist/application/operations/queryOperations.d.ts +0 -1
  43. package/dist/application/operations/queryOperations.js +37 -4
  44. package/dist/application/operations/queueControl.d.ts +16 -5
  45. package/dist/application/operations/queueControl.js +119 -24
  46. package/dist/application/queueManager.d.ts +17 -4
  47. package/dist/application/queueManager.js +106 -28
  48. package/dist/application/stallDetection.d.ts +0 -1
  49. package/dist/application/stallDetection.js +1 -1
  50. package/dist/application/statsManager.d.ts +0 -1
  51. package/dist/application/statsManager.js +0 -1
  52. package/dist/application/taskErrorTracking.d.ts +0 -1
  53. package/dist/application/taskErrorTracking.js +0 -1
  54. package/dist/application/throughputTracker.d.ts +0 -1
  55. package/dist/application/throughputTracker.js +0 -1
  56. package/dist/application/types.d.ts +2 -2
  57. package/dist/application/types.js +0 -1
  58. package/dist/application/webhookManager.d.ts +0 -1
  59. package/dist/application/webhookManager.js +0 -1
  60. package/dist/application/workerManager.d.ts +0 -1
  61. package/dist/application/workerManager.js +0 -1
  62. package/dist/cli/client.d.ts +0 -1
  63. package/dist/cli/client.js +15 -3
  64. package/dist/cli/commands/backup.d.ts +0 -1
  65. package/dist/cli/commands/backup.js +0 -1
  66. package/dist/cli/commands/core.d.ts +0 -1
  67. package/dist/cli/commands/core.js +0 -1
  68. package/dist/cli/commands/cron.d.ts +0 -1
  69. package/dist/cli/commands/cron.js +0 -1
  70. package/dist/cli/commands/dlq.d.ts +0 -1
  71. package/dist/cli/commands/dlq.js +0 -1
  72. package/dist/cli/commands/doctor.d.ts +0 -1
  73. package/dist/cli/commands/doctor.js +0 -1
  74. package/dist/cli/commands/job.d.ts +0 -1
  75. package/dist/cli/commands/job.js +0 -1
  76. package/dist/cli/commands/monitor.d.ts +0 -1
  77. package/dist/cli/commands/monitor.js +0 -1
  78. package/dist/cli/commands/queue.d.ts +0 -1
  79. package/dist/cli/commands/queue.js +0 -1
  80. package/dist/cli/commands/rateLimit.d.ts +0 -1
  81. package/dist/cli/commands/rateLimit.js +0 -1
  82. package/dist/cli/commands/server.d.ts +0 -1
  83. package/dist/cli/commands/server.js +0 -1
  84. package/dist/cli/commands/types.d.ts +0 -1
  85. package/dist/cli/commands/types.js +0 -1
  86. package/dist/cli/commands/webhook.d.ts +0 -1
  87. package/dist/cli/commands/webhook.js +0 -1
  88. package/dist/cli/commands/worker.d.ts +0 -1
  89. package/dist/cli/commands/worker.js +0 -1
  90. package/dist/cli/help.d.ts +0 -1
  91. package/dist/cli/help.js +0 -1
  92. package/dist/cli/index.d.ts +0 -1
  93. package/dist/cli/index.js +31 -3
  94. package/dist/cli/output.d.ts +1 -2
  95. package/dist/cli/output.js +71 -10
  96. package/dist/client/bunqueue/aging.d.ts +0 -1
  97. package/dist/client/bunqueue/aging.js +0 -1
  98. package/dist/client/bunqueue/batch.d.ts +0 -1
  99. package/dist/client/bunqueue/batch.js +2 -3
  100. package/dist/client/bunqueue/cancellation.d.ts +0 -1
  101. package/dist/client/bunqueue/cancellation.js +0 -1
  102. package/dist/client/bunqueue/circuitBreaker.d.ts +0 -1
  103. package/dist/client/bunqueue/circuitBreaker.js +0 -1
  104. package/dist/client/bunqueue/dedupDebounce.d.ts +0 -1
  105. package/dist/client/bunqueue/dedupDebounce.js +0 -1
  106. package/dist/client/bunqueue/dlqRateLimit.d.ts +0 -1
  107. package/dist/client/bunqueue/dlqRateLimit.js +0 -1
  108. package/dist/client/bunqueue/retry.d.ts +0 -1
  109. package/dist/client/bunqueue/retry.js +0 -1
  110. package/dist/client/bunqueue/triggers.d.ts +0 -1
  111. package/dist/client/bunqueue/triggers.js +0 -1
  112. package/dist/client/bunqueue/ttl.d.ts +0 -1
  113. package/dist/client/bunqueue/ttl.js +0 -1
  114. package/dist/client/bunqueue/types.d.ts +0 -1
  115. package/dist/client/bunqueue/types.js +0 -1
  116. package/dist/client/bunqueue.d.ts +0 -1
  117. package/dist/client/bunqueue.js +3 -4
  118. package/dist/client/errors.d.ts +0 -1
  119. package/dist/client/errors.js +0 -1
  120. package/dist/client/events.d.ts +0 -1
  121. package/dist/client/events.js +0 -1
  122. package/dist/client/flow.d.ts +0 -1
  123. package/dist/client/flow.js +3 -2
  124. package/dist/client/flowJobFactory.d.ts +8 -2
  125. package/dist/client/flowJobFactory.js +328 -57
  126. package/dist/client/flowPush.d.ts +0 -1
  127. package/dist/client/flowPush.js +95 -47
  128. package/dist/client/flowTypes.d.ts +0 -1
  129. package/dist/client/flowTypes.js +0 -1
  130. package/dist/client/index.d.ts +0 -1
  131. package/dist/client/index.js +0 -1
  132. package/dist/client/jobConversion.d.ts +0 -1
  133. package/dist/client/jobConversion.js +12 -5
  134. package/dist/client/jobConversionHelpers.d.ts +0 -1
  135. package/dist/client/jobConversionHelpers.js +0 -1
  136. package/dist/client/jobConversionTypes.d.ts +0 -1
  137. package/dist/client/jobConversionTypes.js +0 -1
  138. package/dist/client/jobHelpers.d.ts +0 -1
  139. package/dist/client/jobHelpers.js +0 -1
  140. package/dist/client/manager.d.ts +0 -1
  141. package/dist/client/manager.js +0 -1
  142. package/dist/client/queue/addBatcher.d.ts +0 -1
  143. package/dist/client/queue/addBatcher.js +0 -1
  144. package/dist/client/queue/bullmqCompat.d.ts +1 -1
  145. package/dist/client/queue/bullmqCompat.js +0 -1
  146. package/dist/client/queue/deduplication.d.ts +0 -1
  147. package/dist/client/queue/deduplication.js +0 -1
  148. package/dist/client/queue/dlq.d.ts +0 -1
  149. package/dist/client/queue/dlq.js +0 -1
  150. package/dist/client/queue/dlqOps.d.ts +0 -1
  151. package/dist/client/queue/dlqOps.js +0 -1
  152. package/dist/client/queue/helpers.d.ts +0 -1
  153. package/dist/client/queue/helpers.js +0 -1
  154. package/dist/client/queue/index.d.ts +0 -1
  155. package/dist/client/queue/index.js +0 -1
  156. package/dist/client/queue/jobMove.d.ts +0 -1
  157. package/dist/client/queue/jobMove.js +0 -1
  158. package/dist/client/queue/jobProxy.d.ts +22 -4
  159. package/dist/client/queue/jobProxy.js +347 -67
  160. package/dist/client/queue/operations/add.d.ts +1 -1
  161. package/dist/client/queue/operations/add.js +126 -30
  162. package/dist/client/queue/operations/control.d.ts +0 -1
  163. package/dist/client/queue/operations/control.js +0 -1
  164. package/dist/client/queue/operations/counts.d.ts +0 -1
  165. package/dist/client/queue/operations/counts.js +0 -1
  166. package/dist/client/queue/operations/index.d.ts +0 -1
  167. package/dist/client/queue/operations/index.js +0 -1
  168. package/dist/client/queue/operations/management.d.ts +1 -2
  169. package/dist/client/queue/operations/management.js +27 -10
  170. package/dist/client/queue/operations/query.d.ts +12 -1
  171. package/dist/client/queue/operations/query.js +44 -5
  172. package/dist/client/queue/queue.d.ts +0 -1
  173. package/dist/client/queue/queue.js +8 -2
  174. package/dist/client/queue/queueTypes.d.ts +0 -1
  175. package/dist/client/queue/queueTypes.js +0 -1
  176. package/dist/client/queue/rateLimit.d.ts +0 -1
  177. package/dist/client/queue/rateLimit.js +0 -1
  178. package/dist/client/queue/scheduler.d.ts +2 -1
  179. package/dist/client/queue/scheduler.js +28 -1
  180. package/dist/client/queue/stall.d.ts +0 -1
  181. package/dist/client/queue/stall.js +0 -1
  182. package/dist/client/queue/workers.d.ts +0 -1
  183. package/dist/client/queue/workers.js +0 -1
  184. package/dist/client/queue.d.ts +0 -1
  185. package/dist/client/queue.js +0 -1
  186. package/dist/client/queueGroup.d.ts +0 -1
  187. package/dist/client/queueGroup.js +0 -1
  188. package/dist/client/resolveToken.d.ts +0 -1
  189. package/dist/client/resolveToken.js +0 -1
  190. package/dist/client/sandboxed/index.d.ts +0 -1
  191. package/dist/client/sandboxed/index.js +0 -1
  192. package/dist/client/sandboxed/queueOps.d.ts +0 -1
  193. package/dist/client/sandboxed/queueOps.js +0 -1
  194. package/dist/client/sandboxed/types.d.ts +0 -1
  195. package/dist/client/sandboxed/types.js +0 -1
  196. package/dist/client/sandboxed/worker.d.ts +0 -1
  197. package/dist/client/sandboxed/worker.js +57 -16
  198. package/dist/client/sandboxed/wrapper.d.ts +0 -1
  199. package/dist/client/sandboxed/wrapper.js +62 -11
  200. package/dist/client/sandboxedWorker.d.ts +0 -1
  201. package/dist/client/sandboxedWorker.js +0 -1
  202. package/dist/client/tcp/client.d.ts +9 -1
  203. package/dist/client/tcp/client.js +84 -29
  204. package/dist/client/tcp/connection.d.ts +0 -1
  205. package/dist/client/tcp/connection.js +6 -2
  206. package/dist/client/tcp/health.d.ts +0 -1
  207. package/dist/client/tcp/health.js +0 -1
  208. package/dist/client/tcp/index.d.ts +0 -1
  209. package/dist/client/tcp/index.js +0 -1
  210. package/dist/client/tcp/reconnect.d.ts +0 -1
  211. package/dist/client/tcp/reconnect.js +0 -1
  212. package/dist/client/tcp/shared.d.ts +0 -1
  213. package/dist/client/tcp/shared.js +0 -1
  214. package/dist/client/tcp/types.d.ts +7 -1
  215. package/dist/client/tcp/types.js +0 -1
  216. package/dist/client/tcpClient.d.ts +0 -1
  217. package/dist/client/tcpClient.js +0 -1
  218. package/dist/client/tcpPool.d.ts +0 -1
  219. package/dist/client/tcpPool.js +0 -1
  220. package/dist/client/types.d.ts +8 -5
  221. package/dist/client/types.js +0 -1
  222. package/dist/client/worker/ackBatcher.d.ts +0 -1
  223. package/dist/client/worker/ackBatcher.js +18 -9
  224. package/dist/client/worker/groupConcurrency.d.ts +0 -1
  225. package/dist/client/worker/groupConcurrency.js +0 -1
  226. package/dist/client/worker/index.d.ts +0 -1
  227. package/dist/client/worker/index.js +0 -1
  228. package/dist/client/worker/jobParser.d.ts +0 -1
  229. package/dist/client/worker/jobParser.js +0 -1
  230. package/dist/client/worker/processor.d.ts +0 -1
  231. package/dist/client/worker/processor.js +54 -100
  232. package/dist/client/worker/processorHandlers.d.ts +54 -0
  233. package/dist/client/worker/processorHandlers.js +372 -0
  234. package/dist/client/worker/types.d.ts +0 -1
  235. package/dist/client/worker/types.js +0 -1
  236. package/dist/client/worker/worker.d.ts +0 -1
  237. package/dist/client/worker/worker.js +0 -1
  238. package/dist/client/worker/workerHeartbeat.d.ts +0 -1
  239. package/dist/client/worker/workerHeartbeat.js +0 -1
  240. package/dist/client/worker/workerPull.d.ts +0 -1
  241. package/dist/client/worker/workerPull.js +0 -1
  242. package/dist/client/worker/workerRateLimiter.d.ts +0 -1
  243. package/dist/client/worker/workerRateLimiter.js +0 -1
  244. package/dist/client/worker.d.ts +0 -1
  245. package/dist/client/worker.js +0 -1
  246. package/dist/client/workflow/compensator.d.ts +14 -0
  247. package/dist/client/workflow/compensator.js +45 -0
  248. package/dist/client/workflow/emitter.d.ts +0 -1
  249. package/dist/client/workflow/emitter.js +15 -4
  250. package/dist/client/workflow/engine.d.ts +8 -2
  251. package/dist/client/workflow/engine.js +9 -1
  252. package/dist/client/workflow/executor.d.ts +5 -3
  253. package/dist/client/workflow/executor.js +43 -61
  254. package/dist/client/workflow/index.d.ts +1 -2
  255. package/dist/client/workflow/index.js +0 -1
  256. package/dist/client/workflow/loops.d.ts +1 -2
  257. package/dist/client/workflow/loops.js +10 -2
  258. package/dist/client/workflow/recovery.d.ts +22 -0
  259. package/dist/client/workflow/recovery.js +73 -0
  260. package/dist/client/workflow/runner.d.ts +0 -1
  261. package/dist/client/workflow/runner.js +7 -6
  262. package/dist/client/workflow/store.d.ts +2 -1
  263. package/dist/client/workflow/store.js +6 -1
  264. package/dist/client/workflow/types.d.ts +41 -23
  265. package/dist/client/workflow/types.js +0 -1
  266. package/dist/client/workflow/workflow.d.ts +17 -15
  267. package/dist/client/workflow/workflow.js +30 -21
  268. package/dist/config/index.d.ts +0 -1
  269. package/dist/config/index.js +0 -1
  270. package/dist/config/loader.d.ts +0 -1
  271. package/dist/config/loader.js +0 -1
  272. package/dist/config/resolve.d.ts +0 -1
  273. package/dist/config/resolve.js +0 -1
  274. package/dist/config/types.d.ts +0 -1
  275. package/dist/config/types.js +0 -1
  276. package/dist/domain/queue/dependencyTracker.d.ts +0 -1
  277. package/dist/domain/queue/dependencyTracker.js +0 -1
  278. package/dist/domain/queue/dlqShard.d.ts +0 -1
  279. package/dist/domain/queue/dlqShard.js +6 -1
  280. package/dist/domain/queue/index.d.ts +0 -1
  281. package/dist/domain/queue/index.js +0 -1
  282. package/dist/domain/queue/limiterManager.d.ts +0 -1
  283. package/dist/domain/queue/limiterManager.js +0 -1
  284. package/dist/domain/queue/priorityQueue.d.ts +2 -3
  285. package/dist/domain/queue/priorityQueue.js +5 -4
  286. package/dist/domain/queue/shard.d.ts +0 -1
  287. package/dist/domain/queue/shard.js +0 -1
  288. package/dist/domain/queue/shardCounters.d.ts +0 -1
  289. package/dist/domain/queue/shardCounters.js +0 -1
  290. package/dist/domain/queue/temporalManager.d.ts +0 -1
  291. package/dist/domain/queue/temporalManager.js +0 -1
  292. package/dist/domain/queue/uniqueKeyManager.d.ts +0 -1
  293. package/dist/domain/queue/uniqueKeyManager.js +0 -1
  294. package/dist/domain/queue/waiterManager.d.ts +0 -1
  295. package/dist/domain/queue/waiterManager.js +0 -1
  296. package/dist/domain/types/command.d.ts +22 -1
  297. package/dist/domain/types/command.js +0 -1
  298. package/dist/domain/types/cron.d.ts +21 -1
  299. package/dist/domain/types/cron.js +1 -1
  300. package/dist/domain/types/deduplication.d.ts +0 -1
  301. package/dist/domain/types/deduplication.js +0 -1
  302. package/dist/domain/types/dlq.d.ts +0 -1
  303. package/dist/domain/types/dlq.js +0 -1
  304. package/dist/domain/types/index.d.ts +0 -1
  305. package/dist/domain/types/index.js +0 -1
  306. package/dist/domain/types/job.d.ts +0 -1
  307. package/dist/domain/types/job.js +9 -3
  308. package/dist/domain/types/queue.d.ts +0 -1
  309. package/dist/domain/types/queue.js +0 -1
  310. package/dist/domain/types/response.d.ts +2 -1
  311. package/dist/domain/types/response.js +0 -1
  312. package/dist/domain/types/stall.d.ts +0 -1
  313. package/dist/domain/types/stall.js +0 -1
  314. package/dist/domain/types/webhook.d.ts +0 -1
  315. package/dist/domain/types/webhook.js +0 -1
  316. package/dist/domain/types/worker.d.ts +0 -1
  317. package/dist/domain/types/worker.js +0 -1
  318. package/dist/infrastructure/backup/index.d.ts +0 -1
  319. package/dist/infrastructure/backup/index.js +0 -1
  320. package/dist/infrastructure/backup/s3Backup.d.ts +0 -1
  321. package/dist/infrastructure/backup/s3Backup.js +0 -1
  322. package/dist/infrastructure/backup/s3BackupConfig.d.ts +0 -1
  323. package/dist/infrastructure/backup/s3BackupConfig.js +0 -1
  324. package/dist/infrastructure/backup/s3BackupOperations.d.ts +0 -1
  325. package/dist/infrastructure/backup/s3BackupOperations.js +44 -7
  326. package/dist/infrastructure/cloud/buffer.d.ts +0 -1
  327. package/dist/infrastructure/cloud/buffer.js +0 -1
  328. package/dist/infrastructure/cloud/circuitBreaker.d.ts +0 -1
  329. package/dist/infrastructure/cloud/circuitBreaker.js +0 -1
  330. package/dist/infrastructure/cloud/cloudAgent.d.ts +1 -2
  331. package/dist/infrastructure/cloud/cloudAgent.js +9 -12
  332. package/dist/infrastructure/cloud/commandHandler.d.ts +0 -1
  333. package/dist/infrastructure/cloud/commandHandler.js +0 -1
  334. package/dist/infrastructure/cloud/commands.d.ts +0 -1
  335. package/dist/infrastructure/cloud/commands.js +2 -3
  336. package/dist/infrastructure/cloud/config.d.ts +0 -1
  337. package/dist/infrastructure/cloud/config.js +0 -1
  338. package/dist/infrastructure/cloud/httpSender.d.ts +0 -1
  339. package/dist/infrastructure/cloud/httpSender.js +0 -1
  340. package/dist/infrastructure/cloud/index.d.ts +0 -1
  341. package/dist/infrastructure/cloud/index.js +0 -1
  342. package/dist/infrastructure/cloud/logger.d.ts +0 -1
  343. package/dist/infrastructure/cloud/logger.js +0 -1
  344. package/dist/infrastructure/cloud/redact.d.ts +10 -0
  345. package/dist/infrastructure/cloud/redact.js +21 -0
  346. package/dist/infrastructure/cloud/snapshotCollector.d.ts +4 -1
  347. package/dist/infrastructure/cloud/snapshotCollector.js +32 -18
  348. package/dist/infrastructure/cloud/snapshotHelpers.d.ts +9 -3
  349. package/dist/infrastructure/cloud/snapshotHelpers.js +10 -9
  350. package/dist/infrastructure/cloud/statsRefresh.d.ts +0 -1
  351. package/dist/infrastructure/cloud/statsRefresh.js +0 -1
  352. package/dist/infrastructure/cloud/statsUpdate.d.ts +0 -1
  353. package/dist/infrastructure/cloud/statsUpdate.js +0 -1
  354. package/dist/infrastructure/cloud/types.d.ts +0 -1
  355. package/dist/infrastructure/cloud/types.js +0 -1
  356. package/dist/infrastructure/cloud/wsSender.d.ts +0 -1
  357. package/dist/infrastructure/cloud/wsSender.js +0 -1
  358. package/dist/infrastructure/persistence/index.d.ts +0 -1
  359. package/dist/infrastructure/persistence/index.js +0 -1
  360. package/dist/infrastructure/persistence/schema.d.ts +2 -3
  361. package/dist/infrastructure/persistence/schema.js +16 -3
  362. package/dist/infrastructure/persistence/sqlite.d.ts +54 -2
  363. package/dist/infrastructure/persistence/sqlite.js +174 -3
  364. package/dist/infrastructure/persistence/sqliteBatch.d.ts +14 -1
  365. package/dist/infrastructure/persistence/sqliteBatch.js +29 -1
  366. package/dist/infrastructure/persistence/sqliteSerializer.d.ts +16 -1
  367. package/dist/infrastructure/persistence/sqliteSerializer.js +73 -9
  368. package/dist/infrastructure/persistence/statements.d.ts +2 -2
  369. package/dist/infrastructure/persistence/statements.js +3 -3
  370. package/dist/infrastructure/scheduler/cronParser.d.ts +0 -1
  371. package/dist/infrastructure/scheduler/cronParser.js +0 -1
  372. package/dist/infrastructure/scheduler/cronScheduler.d.ts +0 -1
  373. package/dist/infrastructure/scheduler/cronScheduler.js +19 -2
  374. package/dist/infrastructure/scheduler/index.d.ts +0 -1
  375. package/dist/infrastructure/scheduler/index.js +0 -1
  376. package/dist/infrastructure/server/handler.d.ts +0 -1
  377. package/dist/infrastructure/server/handler.js +0 -1
  378. package/dist/infrastructure/server/handlerRoutes.d.ts +0 -1
  379. package/dist/infrastructure/server/handlerRoutes.js +0 -1
  380. package/dist/infrastructure/server/handlers/advanced.d.ts +7 -2
  381. package/dist/infrastructure/server/handlers/advanced.js +41 -11
  382. package/dist/infrastructure/server/handlers/core.d.ts +0 -1
  383. package/dist/infrastructure/server/handlers/core.js +8 -1
  384. package/dist/infrastructure/server/handlers/cron.d.ts +0 -1
  385. package/dist/infrastructure/server/handlers/cron.js +1 -1
  386. package/dist/infrastructure/server/handlers/dashboard.d.ts +0 -1
  387. package/dist/infrastructure/server/handlers/dashboard.js +1 -1
  388. package/dist/infrastructure/server/handlers/dlq.d.ts +0 -1
  389. package/dist/infrastructure/server/handlers/dlq.js +0 -1
  390. package/dist/infrastructure/server/handlers/index.d.ts +0 -1
  391. package/dist/infrastructure/server/handlers/index.js +0 -1
  392. package/dist/infrastructure/server/handlers/management.d.ts +1 -2
  393. package/dist/infrastructure/server/handlers/management.js +27 -13
  394. package/dist/infrastructure/server/handlers/monitoring.d.ts +0 -1
  395. package/dist/infrastructure/server/handlers/monitoring.js +0 -1
  396. package/dist/infrastructure/server/handlers/query.d.ts +0 -1
  397. package/dist/infrastructure/server/handlers/query.js +0 -1
  398. package/dist/infrastructure/server/http.d.ts +0 -1
  399. package/dist/infrastructure/server/http.js +0 -1
  400. package/dist/infrastructure/server/httpEndpoints.d.ts +0 -1
  401. package/dist/infrastructure/server/httpEndpoints.js +0 -1
  402. package/dist/infrastructure/server/httpRouteJobs.d.ts +0 -1
  403. package/dist/infrastructure/server/httpRouteJobs.js +0 -1
  404. package/dist/infrastructure/server/httpRouteQueueConfig.d.ts +0 -1
  405. package/dist/infrastructure/server/httpRouteQueueConfig.js +0 -1
  406. package/dist/infrastructure/server/httpRouteQueues.d.ts +0 -1
  407. package/dist/infrastructure/server/httpRouteQueues.js +0 -1
  408. package/dist/infrastructure/server/httpRouteResources.d.ts +0 -1
  409. package/dist/infrastructure/server/httpRouteResources.js +0 -1
  410. package/dist/infrastructure/server/index.d.ts +0 -1
  411. package/dist/infrastructure/server/index.js +0 -1
  412. package/dist/infrastructure/server/protocol.d.ts +4 -1
  413. package/dist/infrastructure/server/protocol.js +17 -3
  414. package/dist/infrastructure/server/rateLimiter.d.ts +0 -1
  415. package/dist/infrastructure/server/rateLimiter.js +0 -1
  416. package/dist/infrastructure/server/socketWriteQueue.d.ts +66 -0
  417. package/dist/infrastructure/server/socketWriteQueue.js +126 -0
  418. package/dist/infrastructure/server/sseHandler.d.ts +0 -1
  419. package/dist/infrastructure/server/sseHandler.js +0 -1
  420. package/dist/infrastructure/server/tcp.d.ts +17 -1
  421. package/dist/infrastructure/server/tcp.js +112 -15
  422. package/dist/infrastructure/server/types.d.ts +0 -1
  423. package/dist/infrastructure/server/types.js +0 -1
  424. package/dist/infrastructure/server/wsHandler.d.ts +0 -1
  425. package/dist/infrastructure/server/wsHandler.js +0 -1
  426. package/dist/main.d.ts +0 -1
  427. package/dist/main.js +48 -44
  428. package/dist/mcp/adapter.d.ts +3 -4
  429. package/dist/mcp/adapter.js +48 -16
  430. package/dist/mcp/httpHandler.d.ts +0 -1
  431. package/dist/mcp/httpHandler.js +0 -1
  432. package/dist/mcp/index.d.ts +3 -4
  433. package/dist/mcp/index.js +26 -90
  434. package/dist/mcp/prompts.d.ts +0 -1
  435. package/dist/mcp/prompts.js +0 -1
  436. package/dist/mcp/resources.d.ts +0 -1
  437. package/dist/mcp/resources.js +0 -1
  438. package/dist/mcp/server.d.ts +15 -0
  439. package/dist/mcp/server.js +100 -0
  440. package/dist/mcp/tools/consumptionTools.d.ts +0 -1
  441. package/dist/mcp/tools/consumptionTools.js +0 -1
  442. package/dist/mcp/tools/cronTools.d.ts +0 -1
  443. package/dist/mcp/tools/cronTools.js +0 -1
  444. package/dist/mcp/tools/dlqTools.d.ts +0 -1
  445. package/dist/mcp/tools/dlqTools.js +0 -1
  446. package/dist/mcp/tools/flowTools.d.ts +0 -1
  447. package/dist/mcp/tools/flowTools.js +0 -1
  448. package/dist/mcp/tools/handlerTools.d.ts +0 -1
  449. package/dist/mcp/tools/handlerTools.js +0 -1
  450. package/dist/mcp/tools/jobMgmtTools.d.ts +0 -1
  451. package/dist/mcp/tools/jobMgmtTools.js +0 -1
  452. package/dist/mcp/tools/jobTools.d.ts +0 -1
  453. package/dist/mcp/tools/jobTools.js +0 -1
  454. package/dist/mcp/tools/mcpTracker.d.ts +0 -1
  455. package/dist/mcp/tools/mcpTracker.js +0 -1
  456. package/dist/mcp/tools/monitoringTools.d.ts +0 -1
  457. package/dist/mcp/tools/monitoringTools.js +0 -1
  458. package/dist/mcp/tools/queueTools.d.ts +0 -1
  459. package/dist/mcp/tools/queueTools.js +6 -4
  460. package/dist/mcp/tools/rateLimitTools.d.ts +0 -1
  461. package/dist/mcp/tools/rateLimitTools.js +0 -1
  462. package/dist/mcp/tools/webhookTools.d.ts +0 -1
  463. package/dist/mcp/tools/webhookTools.js +1 -2
  464. package/dist/mcp/tools/withErrorHandler.d.ts +0 -1
  465. package/dist/mcp/tools/withErrorHandler.js +0 -1
  466. package/dist/mcp/tools/workerMgmtTools.d.ts +0 -1
  467. package/dist/mcp/tools/workerMgmtTools.js +0 -1
  468. package/dist/shared/boundedMap.d.ts +0 -1
  469. package/dist/shared/boundedMap.js +0 -1
  470. package/dist/shared/boundedSet.d.ts +0 -1
  471. package/dist/shared/boundedSet.js +0 -1
  472. package/dist/shared/hash.d.ts +0 -1
  473. package/dist/shared/hash.js +0 -1
  474. package/dist/shared/histogram.d.ts +0 -1
  475. package/dist/shared/histogram.js +0 -1
  476. package/dist/shared/index.d.ts +0 -1
  477. package/dist/shared/index.js +0 -1
  478. package/dist/shared/lock.d.ts +0 -1
  479. package/dist/shared/lock.js +15 -1
  480. package/dist/shared/logger.d.ts +0 -1
  481. package/dist/shared/logger.js +0 -1
  482. package/dist/shared/lru.d.ts +0 -1
  483. package/dist/shared/lru.js +0 -1
  484. package/dist/shared/lruMap.d.ts +0 -1
  485. package/dist/shared/lruMap.js +0 -1
  486. package/dist/shared/lruSet.d.ts +0 -1
  487. package/dist/shared/lruSet.js +0 -1
  488. package/dist/shared/minHeap.d.ts +0 -1
  489. package/dist/shared/minHeap.js +0 -1
  490. package/dist/shared/semaphore.d.ts +0 -1
  491. package/dist/shared/semaphore.js +0 -1
  492. package/dist/shared/serialization.d.ts +0 -1
  493. package/dist/shared/serialization.js +0 -1
  494. package/dist/shared/skipList.d.ts +0 -1
  495. package/dist/shared/skipList.js +0 -1
  496. package/dist/shared/ttlMap.d.ts +0 -1
  497. package/dist/shared/ttlMap.js +0 -1
  498. package/dist/shared/version.d.ts +0 -1
  499. package/dist/shared/version.js +0 -1
  500. package/dist/shared/webhookValidation.d.ts +0 -1
  501. package/dist/shared/webhookValidation.js +0 -1
  502. package/package.json +12 -9
  503. package/dist/application/backgroundTasks.d.ts.map +0 -1
  504. package/dist/application/backgroundTasks.js.map +0 -1
  505. package/dist/application/cleanupTasks.d.ts.map +0 -1
  506. package/dist/application/cleanupTasks.js.map +0 -1
  507. package/dist/application/clientTracking.d.ts.map +0 -1
  508. package/dist/application/clientTracking.js.map +0 -1
  509. package/dist/application/contextFactory.d.ts.map +0 -1
  510. package/dist/application/contextFactory.js.map +0 -1
  511. package/dist/application/dependencyProcessor.d.ts.map +0 -1
  512. package/dist/application/dependencyProcessor.js.map +0 -1
  513. package/dist/application/dlqManager.d.ts.map +0 -1
  514. package/dist/application/dlqManager.js.map +0 -1
  515. package/dist/application/eventsManager.d.ts.map +0 -1
  516. package/dist/application/eventsManager.js.map +0 -1
  517. package/dist/application/jobLogsManager.d.ts.map +0 -1
  518. package/dist/application/jobLogsManager.js.map +0 -1
  519. package/dist/application/latencyTracker.d.ts.map +0 -1
  520. package/dist/application/latencyTracker.js.map +0 -1
  521. package/dist/application/lockManager.d.ts.map +0 -1
  522. package/dist/application/lockManager.js.map +0 -1
  523. package/dist/application/lockOperations.d.ts.map +0 -1
  524. package/dist/application/lockOperations.js.map +0 -1
  525. package/dist/application/metricsExporter.d.ts.map +0 -1
  526. package/dist/application/metricsExporter.js.map +0 -1
  527. package/dist/application/monitoringChecks.d.ts.map +0 -1
  528. package/dist/application/monitoringChecks.js.map +0 -1
  529. package/dist/application/operations/ack.d.ts.map +0 -1
  530. package/dist/application/operations/ack.js.map +0 -1
  531. package/dist/application/operations/ackHelpers.d.ts.map +0 -1
  532. package/dist/application/operations/ackHelpers.js.map +0 -1
  533. package/dist/application/operations/index.d.ts.map +0 -1
  534. package/dist/application/operations/index.js.map +0 -1
  535. package/dist/application/operations/jobManagement.d.ts.map +0 -1
  536. package/dist/application/operations/jobManagement.js.map +0 -1
  537. package/dist/application/operations/jobStateTransitions.d.ts.map +0 -1
  538. package/dist/application/operations/jobStateTransitions.js.map +0 -1
  539. package/dist/application/operations/pull.d.ts.map +0 -1
  540. package/dist/application/operations/pull.js.map +0 -1
  541. package/dist/application/operations/push.d.ts.map +0 -1
  542. package/dist/application/operations/push.js.map +0 -1
  543. package/dist/application/operations/queryOperations.d.ts.map +0 -1
  544. package/dist/application/operations/queryOperations.js.map +0 -1
  545. package/dist/application/operations/queueControl.d.ts.map +0 -1
  546. package/dist/application/operations/queueControl.js.map +0 -1
  547. package/dist/application/queueManager.d.ts.map +0 -1
  548. package/dist/application/queueManager.js.map +0 -1
  549. package/dist/application/stallDetection.d.ts.map +0 -1
  550. package/dist/application/stallDetection.js.map +0 -1
  551. package/dist/application/statsManager.d.ts.map +0 -1
  552. package/dist/application/statsManager.js.map +0 -1
  553. package/dist/application/taskErrorTracking.d.ts.map +0 -1
  554. package/dist/application/taskErrorTracking.js.map +0 -1
  555. package/dist/application/throughputTracker.d.ts.map +0 -1
  556. package/dist/application/throughputTracker.js.map +0 -1
  557. package/dist/application/types.d.ts.map +0 -1
  558. package/dist/application/types.js.map +0 -1
  559. package/dist/application/webhookManager.d.ts.map +0 -1
  560. package/dist/application/webhookManager.js.map +0 -1
  561. package/dist/application/workerManager.d.ts.map +0 -1
  562. package/dist/application/workerManager.js.map +0 -1
  563. package/dist/cli/client.d.ts.map +0 -1
  564. package/dist/cli/client.js.map +0 -1
  565. package/dist/cli/commands/backup.d.ts.map +0 -1
  566. package/dist/cli/commands/backup.js.map +0 -1
  567. package/dist/cli/commands/core.d.ts.map +0 -1
  568. package/dist/cli/commands/core.js.map +0 -1
  569. package/dist/cli/commands/cron.d.ts.map +0 -1
  570. package/dist/cli/commands/cron.js.map +0 -1
  571. package/dist/cli/commands/dlq.d.ts.map +0 -1
  572. package/dist/cli/commands/dlq.js.map +0 -1
  573. package/dist/cli/commands/doctor.d.ts.map +0 -1
  574. package/dist/cli/commands/doctor.js.map +0 -1
  575. package/dist/cli/commands/job.d.ts.map +0 -1
  576. package/dist/cli/commands/job.js.map +0 -1
  577. package/dist/cli/commands/monitor.d.ts.map +0 -1
  578. package/dist/cli/commands/monitor.js.map +0 -1
  579. package/dist/cli/commands/queue.d.ts.map +0 -1
  580. package/dist/cli/commands/queue.js.map +0 -1
  581. package/dist/cli/commands/rateLimit.d.ts.map +0 -1
  582. package/dist/cli/commands/rateLimit.js.map +0 -1
  583. package/dist/cli/commands/server.d.ts.map +0 -1
  584. package/dist/cli/commands/server.js.map +0 -1
  585. package/dist/cli/commands/types.d.ts.map +0 -1
  586. package/dist/cli/commands/types.js.map +0 -1
  587. package/dist/cli/commands/webhook.d.ts.map +0 -1
  588. package/dist/cli/commands/webhook.js.map +0 -1
  589. package/dist/cli/commands/worker.d.ts.map +0 -1
  590. package/dist/cli/commands/worker.js.map +0 -1
  591. package/dist/cli/help.d.ts.map +0 -1
  592. package/dist/cli/help.js.map +0 -1
  593. package/dist/cli/index.d.ts.map +0 -1
  594. package/dist/cli/index.js.map +0 -1
  595. package/dist/cli/output.d.ts.map +0 -1
  596. package/dist/cli/output.js.map +0 -1
  597. package/dist/client/bunqueue/aging.d.ts.map +0 -1
  598. package/dist/client/bunqueue/aging.js.map +0 -1
  599. package/dist/client/bunqueue/batch.d.ts.map +0 -1
  600. package/dist/client/bunqueue/batch.js.map +0 -1
  601. package/dist/client/bunqueue/cancellation.d.ts.map +0 -1
  602. package/dist/client/bunqueue/cancellation.js.map +0 -1
  603. package/dist/client/bunqueue/circuitBreaker.d.ts.map +0 -1
  604. package/dist/client/bunqueue/circuitBreaker.js.map +0 -1
  605. package/dist/client/bunqueue/dedupDebounce.d.ts.map +0 -1
  606. package/dist/client/bunqueue/dedupDebounce.js.map +0 -1
  607. package/dist/client/bunqueue/dlqRateLimit.d.ts.map +0 -1
  608. package/dist/client/bunqueue/dlqRateLimit.js.map +0 -1
  609. package/dist/client/bunqueue/retry.d.ts.map +0 -1
  610. package/dist/client/bunqueue/retry.js.map +0 -1
  611. package/dist/client/bunqueue/triggers.d.ts.map +0 -1
  612. package/dist/client/bunqueue/triggers.js.map +0 -1
  613. package/dist/client/bunqueue/ttl.d.ts.map +0 -1
  614. package/dist/client/bunqueue/ttl.js.map +0 -1
  615. package/dist/client/bunqueue/types.d.ts.map +0 -1
  616. package/dist/client/bunqueue/types.js.map +0 -1
  617. package/dist/client/bunqueue.d.ts.map +0 -1
  618. package/dist/client/bunqueue.js.map +0 -1
  619. package/dist/client/errors.d.ts.map +0 -1
  620. package/dist/client/errors.js.map +0 -1
  621. package/dist/client/events.d.ts.map +0 -1
  622. package/dist/client/events.js.map +0 -1
  623. package/dist/client/flow.d.ts.map +0 -1
  624. package/dist/client/flow.js.map +0 -1
  625. package/dist/client/flowJobFactory.d.ts.map +0 -1
  626. package/dist/client/flowJobFactory.js.map +0 -1
  627. package/dist/client/flowPush.d.ts.map +0 -1
  628. package/dist/client/flowPush.js.map +0 -1
  629. package/dist/client/flowTypes.d.ts.map +0 -1
  630. package/dist/client/flowTypes.js.map +0 -1
  631. package/dist/client/index.d.ts.map +0 -1
  632. package/dist/client/index.js.map +0 -1
  633. package/dist/client/jobConversion.d.ts.map +0 -1
  634. package/dist/client/jobConversion.js.map +0 -1
  635. package/dist/client/jobConversionHelpers.d.ts.map +0 -1
  636. package/dist/client/jobConversionHelpers.js.map +0 -1
  637. package/dist/client/jobConversionTypes.d.ts.map +0 -1
  638. package/dist/client/jobConversionTypes.js.map +0 -1
  639. package/dist/client/jobHelpers.d.ts.map +0 -1
  640. package/dist/client/jobHelpers.js.map +0 -1
  641. package/dist/client/manager.d.ts.map +0 -1
  642. package/dist/client/manager.js.map +0 -1
  643. package/dist/client/queue/addBatcher.d.ts.map +0 -1
  644. package/dist/client/queue/addBatcher.js.map +0 -1
  645. package/dist/client/queue/bullmqCompat.d.ts.map +0 -1
  646. package/dist/client/queue/bullmqCompat.js.map +0 -1
  647. package/dist/client/queue/deduplication.d.ts.map +0 -1
  648. package/dist/client/queue/deduplication.js.map +0 -1
  649. package/dist/client/queue/dlq.d.ts.map +0 -1
  650. package/dist/client/queue/dlq.js.map +0 -1
  651. package/dist/client/queue/dlqOps.d.ts.map +0 -1
  652. package/dist/client/queue/dlqOps.js.map +0 -1
  653. package/dist/client/queue/helpers.d.ts.map +0 -1
  654. package/dist/client/queue/helpers.js.map +0 -1
  655. package/dist/client/queue/index.d.ts.map +0 -1
  656. package/dist/client/queue/index.js.map +0 -1
  657. package/dist/client/queue/jobMove.d.ts.map +0 -1
  658. package/dist/client/queue/jobMove.js.map +0 -1
  659. package/dist/client/queue/jobProxy.d.ts.map +0 -1
  660. package/dist/client/queue/jobProxy.js.map +0 -1
  661. package/dist/client/queue/operations/add.d.ts.map +0 -1
  662. package/dist/client/queue/operations/add.js.map +0 -1
  663. package/dist/client/queue/operations/control.d.ts.map +0 -1
  664. package/dist/client/queue/operations/control.js.map +0 -1
  665. package/dist/client/queue/operations/counts.d.ts.map +0 -1
  666. package/dist/client/queue/operations/counts.js.map +0 -1
  667. package/dist/client/queue/operations/index.d.ts.map +0 -1
  668. package/dist/client/queue/operations/index.js.map +0 -1
  669. package/dist/client/queue/operations/management.d.ts.map +0 -1
  670. package/dist/client/queue/operations/management.js.map +0 -1
  671. package/dist/client/queue/operations/query.d.ts.map +0 -1
  672. package/dist/client/queue/operations/query.js.map +0 -1
  673. package/dist/client/queue/queue.d.ts.map +0 -1
  674. package/dist/client/queue/queue.js.map +0 -1
  675. package/dist/client/queue/queueTypes.d.ts.map +0 -1
  676. package/dist/client/queue/queueTypes.js.map +0 -1
  677. package/dist/client/queue/rateLimit.d.ts.map +0 -1
  678. package/dist/client/queue/rateLimit.js.map +0 -1
  679. package/dist/client/queue/scheduler.d.ts.map +0 -1
  680. package/dist/client/queue/scheduler.js.map +0 -1
  681. package/dist/client/queue/stall.d.ts.map +0 -1
  682. package/dist/client/queue/stall.js.map +0 -1
  683. package/dist/client/queue/workers.d.ts.map +0 -1
  684. package/dist/client/queue/workers.js.map +0 -1
  685. package/dist/client/queue.d.ts.map +0 -1
  686. package/dist/client/queue.js.map +0 -1
  687. package/dist/client/queueGroup.d.ts.map +0 -1
  688. package/dist/client/queueGroup.js.map +0 -1
  689. package/dist/client/resolveToken.d.ts.map +0 -1
  690. package/dist/client/resolveToken.js.map +0 -1
  691. package/dist/client/sandboxed/index.d.ts.map +0 -1
  692. package/dist/client/sandboxed/index.js.map +0 -1
  693. package/dist/client/sandboxed/queueOps.d.ts.map +0 -1
  694. package/dist/client/sandboxed/queueOps.js.map +0 -1
  695. package/dist/client/sandboxed/types.d.ts.map +0 -1
  696. package/dist/client/sandboxed/types.js.map +0 -1
  697. package/dist/client/sandboxed/worker.d.ts.map +0 -1
  698. package/dist/client/sandboxed/worker.js.map +0 -1
  699. package/dist/client/sandboxed/wrapper.d.ts.map +0 -1
  700. package/dist/client/sandboxed/wrapper.js.map +0 -1
  701. package/dist/client/sandboxedWorker.d.ts.map +0 -1
  702. package/dist/client/sandboxedWorker.js.map +0 -1
  703. package/dist/client/tcp/client.d.ts.map +0 -1
  704. package/dist/client/tcp/client.js.map +0 -1
  705. package/dist/client/tcp/connection.d.ts.map +0 -1
  706. package/dist/client/tcp/connection.js.map +0 -1
  707. package/dist/client/tcp/health.d.ts.map +0 -1
  708. package/dist/client/tcp/health.js.map +0 -1
  709. package/dist/client/tcp/index.d.ts.map +0 -1
  710. package/dist/client/tcp/index.js.map +0 -1
  711. package/dist/client/tcp/reconnect.d.ts.map +0 -1
  712. package/dist/client/tcp/reconnect.js.map +0 -1
  713. package/dist/client/tcp/shared.d.ts.map +0 -1
  714. package/dist/client/tcp/shared.js.map +0 -1
  715. package/dist/client/tcp/types.d.ts.map +0 -1
  716. package/dist/client/tcp/types.js.map +0 -1
  717. package/dist/client/tcpClient.d.ts.map +0 -1
  718. package/dist/client/tcpClient.js.map +0 -1
  719. package/dist/client/tcpPool.d.ts.map +0 -1
  720. package/dist/client/tcpPool.js.map +0 -1
  721. package/dist/client/types.d.ts.map +0 -1
  722. package/dist/client/types.js.map +0 -1
  723. package/dist/client/worker/ackBatcher.d.ts.map +0 -1
  724. package/dist/client/worker/ackBatcher.js.map +0 -1
  725. package/dist/client/worker/groupConcurrency.d.ts.map +0 -1
  726. package/dist/client/worker/groupConcurrency.js.map +0 -1
  727. package/dist/client/worker/index.d.ts.map +0 -1
  728. package/dist/client/worker/index.js.map +0 -1
  729. package/dist/client/worker/jobParser.d.ts.map +0 -1
  730. package/dist/client/worker/jobParser.js.map +0 -1
  731. package/dist/client/worker/processor.d.ts.map +0 -1
  732. package/dist/client/worker/processor.js.map +0 -1
  733. package/dist/client/worker/types.d.ts.map +0 -1
  734. package/dist/client/worker/types.js.map +0 -1
  735. package/dist/client/worker/worker.d.ts.map +0 -1
  736. package/dist/client/worker/worker.js.map +0 -1
  737. package/dist/client/worker/workerHeartbeat.d.ts.map +0 -1
  738. package/dist/client/worker/workerHeartbeat.js.map +0 -1
  739. package/dist/client/worker/workerPull.d.ts.map +0 -1
  740. package/dist/client/worker/workerPull.js.map +0 -1
  741. package/dist/client/worker/workerRateLimiter.d.ts.map +0 -1
  742. package/dist/client/worker/workerRateLimiter.js.map +0 -1
  743. package/dist/client/worker.d.ts.map +0 -1
  744. package/dist/client/worker.js.map +0 -1
  745. package/dist/client/workflow/emitter.d.ts.map +0 -1
  746. package/dist/client/workflow/emitter.js.map +0 -1
  747. package/dist/client/workflow/engine.d.ts.map +0 -1
  748. package/dist/client/workflow/engine.js.map +0 -1
  749. package/dist/client/workflow/executor.d.ts.map +0 -1
  750. package/dist/client/workflow/executor.js.map +0 -1
  751. package/dist/client/workflow/index.d.ts.map +0 -1
  752. package/dist/client/workflow/index.js.map +0 -1
  753. package/dist/client/workflow/loops.d.ts.map +0 -1
  754. package/dist/client/workflow/loops.js.map +0 -1
  755. package/dist/client/workflow/runner.d.ts.map +0 -1
  756. package/dist/client/workflow/runner.js.map +0 -1
  757. package/dist/client/workflow/store.d.ts.map +0 -1
  758. package/dist/client/workflow/store.js.map +0 -1
  759. package/dist/client/workflow/types.d.ts.map +0 -1
  760. package/dist/client/workflow/types.js.map +0 -1
  761. package/dist/client/workflow/workflow.d.ts.map +0 -1
  762. package/dist/client/workflow/workflow.js.map +0 -1
  763. package/dist/config/index.d.ts.map +0 -1
  764. package/dist/config/index.js.map +0 -1
  765. package/dist/config/loader.d.ts.map +0 -1
  766. package/dist/config/loader.js.map +0 -1
  767. package/dist/config/resolve.d.ts.map +0 -1
  768. package/dist/config/resolve.js.map +0 -1
  769. package/dist/config/types.d.ts.map +0 -1
  770. package/dist/config/types.js.map +0 -1
  771. package/dist/domain/queue/dependencyTracker.d.ts.map +0 -1
  772. package/dist/domain/queue/dependencyTracker.js.map +0 -1
  773. package/dist/domain/queue/dlqShard.d.ts.map +0 -1
  774. package/dist/domain/queue/dlqShard.js.map +0 -1
  775. package/dist/domain/queue/index.d.ts.map +0 -1
  776. package/dist/domain/queue/index.js.map +0 -1
  777. package/dist/domain/queue/limiterManager.d.ts.map +0 -1
  778. package/dist/domain/queue/limiterManager.js.map +0 -1
  779. package/dist/domain/queue/priorityQueue.d.ts.map +0 -1
  780. package/dist/domain/queue/priorityQueue.js.map +0 -1
  781. package/dist/domain/queue/shard.d.ts.map +0 -1
  782. package/dist/domain/queue/shard.js.map +0 -1
  783. package/dist/domain/queue/shardCounters.d.ts.map +0 -1
  784. package/dist/domain/queue/shardCounters.js.map +0 -1
  785. package/dist/domain/queue/temporalManager.d.ts.map +0 -1
  786. package/dist/domain/queue/temporalManager.js.map +0 -1
  787. package/dist/domain/queue/uniqueKeyManager.d.ts.map +0 -1
  788. package/dist/domain/queue/uniqueKeyManager.js.map +0 -1
  789. package/dist/domain/queue/waiterManager.d.ts.map +0 -1
  790. package/dist/domain/queue/waiterManager.js.map +0 -1
  791. package/dist/domain/types/command.d.ts.map +0 -1
  792. package/dist/domain/types/command.js.map +0 -1
  793. package/dist/domain/types/cron.d.ts.map +0 -1
  794. package/dist/domain/types/cron.js.map +0 -1
  795. package/dist/domain/types/deduplication.d.ts.map +0 -1
  796. package/dist/domain/types/deduplication.js.map +0 -1
  797. package/dist/domain/types/dlq.d.ts.map +0 -1
  798. package/dist/domain/types/dlq.js.map +0 -1
  799. package/dist/domain/types/index.d.ts.map +0 -1
  800. package/dist/domain/types/index.js.map +0 -1
  801. package/dist/domain/types/job.d.ts.map +0 -1
  802. package/dist/domain/types/job.js.map +0 -1
  803. package/dist/domain/types/queue.d.ts.map +0 -1
  804. package/dist/domain/types/queue.js.map +0 -1
  805. package/dist/domain/types/response.d.ts.map +0 -1
  806. package/dist/domain/types/response.js.map +0 -1
  807. package/dist/domain/types/stall.d.ts.map +0 -1
  808. package/dist/domain/types/stall.js.map +0 -1
  809. package/dist/domain/types/webhook.d.ts.map +0 -1
  810. package/dist/domain/types/webhook.js.map +0 -1
  811. package/dist/domain/types/worker.d.ts.map +0 -1
  812. package/dist/domain/types/worker.js.map +0 -1
  813. package/dist/infrastructure/backup/index.d.ts.map +0 -1
  814. package/dist/infrastructure/backup/index.js.map +0 -1
  815. package/dist/infrastructure/backup/s3Backup.d.ts.map +0 -1
  816. package/dist/infrastructure/backup/s3Backup.js.map +0 -1
  817. package/dist/infrastructure/backup/s3BackupConfig.d.ts.map +0 -1
  818. package/dist/infrastructure/backup/s3BackupConfig.js.map +0 -1
  819. package/dist/infrastructure/backup/s3BackupOperations.d.ts.map +0 -1
  820. package/dist/infrastructure/backup/s3BackupOperations.js.map +0 -1
  821. package/dist/infrastructure/cloud/buffer.d.ts.map +0 -1
  822. package/dist/infrastructure/cloud/buffer.js.map +0 -1
  823. package/dist/infrastructure/cloud/circuitBreaker.d.ts.map +0 -1
  824. package/dist/infrastructure/cloud/circuitBreaker.js.map +0 -1
  825. package/dist/infrastructure/cloud/cloudAgent 2.d.ts +0 -55
  826. package/dist/infrastructure/cloud/cloudAgent 2.d.ts.map +0 -1
  827. package/dist/infrastructure/cloud/cloudAgent 2.js +0 -243
  828. package/dist/infrastructure/cloud/cloudAgent 2.js.map +0 -1
  829. package/dist/infrastructure/cloud/cloudAgent.d.ts.map +0 -1
  830. package/dist/infrastructure/cloud/cloudAgent.js.map +0 -1
  831. package/dist/infrastructure/cloud/commandHandler 2.d.ts +0 -52
  832. package/dist/infrastructure/cloud/commandHandler 2.d.ts.map +0 -1
  833. package/dist/infrastructure/cloud/commandHandler 2.js +0 -84
  834. package/dist/infrastructure/cloud/commandHandler 2.js.map +0 -1
  835. package/dist/infrastructure/cloud/commandHandler.d.ts.map +0 -1
  836. package/dist/infrastructure/cloud/commandHandler.js.map +0 -1
  837. package/dist/infrastructure/cloud/commands 2.d.ts +0 -11
  838. package/dist/infrastructure/cloud/commands 2.d.ts.map +0 -1
  839. package/dist/infrastructure/cloud/commands 2.js +0 -343
  840. package/dist/infrastructure/cloud/commands 2.js.map +0 -1
  841. package/dist/infrastructure/cloud/commands.d.ts.map +0 -1
  842. package/dist/infrastructure/cloud/commands.js.map +0 -1
  843. package/dist/infrastructure/cloud/config.d.ts.map +0 -1
  844. package/dist/infrastructure/cloud/config.js.map +0 -1
  845. package/dist/infrastructure/cloud/httpSender.d.ts.map +0 -1
  846. package/dist/infrastructure/cloud/httpSender.js.map +0 -1
  847. package/dist/infrastructure/cloud/index.d.ts.map +0 -1
  848. package/dist/infrastructure/cloud/index.js.map +0 -1
  849. package/dist/infrastructure/cloud/instanceId.d.ts +0 -7
  850. package/dist/infrastructure/cloud/instanceId.d.ts.map +0 -1
  851. package/dist/infrastructure/cloud/instanceId.js +0 -34
  852. package/dist/infrastructure/cloud/instanceId.js.map +0 -1
  853. package/dist/infrastructure/cloud/logger.d.ts.map +0 -1
  854. package/dist/infrastructure/cloud/logger.js.map +0 -1
  855. package/dist/infrastructure/cloud/snapshotCollector.d.ts.map +0 -1
  856. package/dist/infrastructure/cloud/snapshotCollector.js.map +0 -1
  857. package/dist/infrastructure/cloud/snapshotHelpers.d.ts.map +0 -1
  858. package/dist/infrastructure/cloud/snapshotHelpers.js.map +0 -1
  859. package/dist/infrastructure/cloud/statsRefresh.d.ts.map +0 -1
  860. package/dist/infrastructure/cloud/statsRefresh.js.map +0 -1
  861. package/dist/infrastructure/cloud/statsUpdate.d.ts.map +0 -1
  862. package/dist/infrastructure/cloud/statsUpdate.js.map +0 -1
  863. package/dist/infrastructure/cloud/types.d.ts.map +0 -1
  864. package/dist/infrastructure/cloud/types.js.map +0 -1
  865. package/dist/infrastructure/cloud/wsSender.d.ts.map +0 -1
  866. package/dist/infrastructure/cloud/wsSender.js.map +0 -1
  867. package/dist/infrastructure/persistence/index.d.ts.map +0 -1
  868. package/dist/infrastructure/persistence/index.js.map +0 -1
  869. package/dist/infrastructure/persistence/schema.d.ts.map +0 -1
  870. package/dist/infrastructure/persistence/schema.js.map +0 -1
  871. package/dist/infrastructure/persistence/sqlite.d.ts.map +0 -1
  872. package/dist/infrastructure/persistence/sqlite.js.map +0 -1
  873. package/dist/infrastructure/persistence/sqliteBatch.d.ts.map +0 -1
  874. package/dist/infrastructure/persistence/sqliteBatch.js.map +0 -1
  875. package/dist/infrastructure/persistence/sqliteSerializer.d.ts.map +0 -1
  876. package/dist/infrastructure/persistence/sqliteSerializer.js.map +0 -1
  877. package/dist/infrastructure/persistence/statements.d.ts.map +0 -1
  878. package/dist/infrastructure/persistence/statements.js.map +0 -1
  879. package/dist/infrastructure/scheduler/cronParser.d.ts.map +0 -1
  880. package/dist/infrastructure/scheduler/cronParser.js.map +0 -1
  881. package/dist/infrastructure/scheduler/cronScheduler.d.ts.map +0 -1
  882. package/dist/infrastructure/scheduler/cronScheduler.js.map +0 -1
  883. package/dist/infrastructure/scheduler/index.d.ts.map +0 -1
  884. package/dist/infrastructure/scheduler/index.js.map +0 -1
  885. package/dist/infrastructure/server/handler.d.ts.map +0 -1
  886. package/dist/infrastructure/server/handler.js.map +0 -1
  887. package/dist/infrastructure/server/handlerRoutes.d.ts.map +0 -1
  888. package/dist/infrastructure/server/handlerRoutes.js.map +0 -1
  889. package/dist/infrastructure/server/handlers/advanced.d.ts.map +0 -1
  890. package/dist/infrastructure/server/handlers/advanced.js.map +0 -1
  891. package/dist/infrastructure/server/handlers/core.d.ts.map +0 -1
  892. package/dist/infrastructure/server/handlers/core.js.map +0 -1
  893. package/dist/infrastructure/server/handlers/cron.d.ts.map +0 -1
  894. package/dist/infrastructure/server/handlers/cron.js.map +0 -1
  895. package/dist/infrastructure/server/handlers/dashboard.d.ts.map +0 -1
  896. package/dist/infrastructure/server/handlers/dashboard.js.map +0 -1
  897. package/dist/infrastructure/server/handlers/dlq.d.ts.map +0 -1
  898. package/dist/infrastructure/server/handlers/dlq.js.map +0 -1
  899. package/dist/infrastructure/server/handlers/index.d.ts.map +0 -1
  900. package/dist/infrastructure/server/handlers/index.js.map +0 -1
  901. package/dist/infrastructure/server/handlers/management.d.ts.map +0 -1
  902. package/dist/infrastructure/server/handlers/management.js.map +0 -1
  903. package/dist/infrastructure/server/handlers/monitoring.d.ts.map +0 -1
  904. package/dist/infrastructure/server/handlers/monitoring.js.map +0 -1
  905. package/dist/infrastructure/server/handlers/query.d.ts.map +0 -1
  906. package/dist/infrastructure/server/handlers/query.js.map +0 -1
  907. package/dist/infrastructure/server/http.d.ts.map +0 -1
  908. package/dist/infrastructure/server/http.js.map +0 -1
  909. package/dist/infrastructure/server/httpEndpoints.d.ts.map +0 -1
  910. package/dist/infrastructure/server/httpEndpoints.js.map +0 -1
  911. package/dist/infrastructure/server/httpRouteJobs.d.ts.map +0 -1
  912. package/dist/infrastructure/server/httpRouteJobs.js.map +0 -1
  913. package/dist/infrastructure/server/httpRouteQueueConfig.d.ts.map +0 -1
  914. package/dist/infrastructure/server/httpRouteQueueConfig.js.map +0 -1
  915. package/dist/infrastructure/server/httpRouteQueues.d.ts.map +0 -1
  916. package/dist/infrastructure/server/httpRouteQueues.js.map +0 -1
  917. package/dist/infrastructure/server/httpRouteResources.d.ts.map +0 -1
  918. package/dist/infrastructure/server/httpRouteResources.js.map +0 -1
  919. package/dist/infrastructure/server/index.d.ts.map +0 -1
  920. package/dist/infrastructure/server/index.js.map +0 -1
  921. package/dist/infrastructure/server/protocol.d.ts.map +0 -1
  922. package/dist/infrastructure/server/protocol.js.map +0 -1
  923. package/dist/infrastructure/server/rateLimiter.d.ts.map +0 -1
  924. package/dist/infrastructure/server/rateLimiter.js.map +0 -1
  925. package/dist/infrastructure/server/sseHandler.d.ts.map +0 -1
  926. package/dist/infrastructure/server/sseHandler.js.map +0 -1
  927. package/dist/infrastructure/server/tcp.d.ts.map +0 -1
  928. package/dist/infrastructure/server/tcp.js.map +0 -1
  929. package/dist/infrastructure/server/types.d.ts.map +0 -1
  930. package/dist/infrastructure/server/types.js.map +0 -1
  931. package/dist/infrastructure/server/wsHandler.d.ts.map +0 -1
  932. package/dist/infrastructure/server/wsHandler.js.map +0 -1
  933. package/dist/main.d.ts.map +0 -1
  934. package/dist/main.js.map +0 -1
  935. package/dist/mcp/adapter.d.ts.map +0 -1
  936. package/dist/mcp/adapter.js.map +0 -1
  937. package/dist/mcp/httpHandler.d.ts.map +0 -1
  938. package/dist/mcp/httpHandler.js.map +0 -1
  939. package/dist/mcp/index.d.ts.map +0 -1
  940. package/dist/mcp/index.js.map +0 -1
  941. package/dist/mcp/mcpHandlers.d.ts +0 -129
  942. package/dist/mcp/mcpHandlers.d.ts.map +0 -1
  943. package/dist/mcp/mcpHandlers.js +0 -204
  944. package/dist/mcp/mcpHandlers.js.map +0 -1
  945. package/dist/mcp/mcpTools.d.ts +0 -15
  946. package/dist/mcp/mcpTools.d.ts.map +0 -1
  947. package/dist/mcp/mcpTools.js +0 -277
  948. package/dist/mcp/mcpTools.js.map +0 -1
  949. package/dist/mcp/prompts.d.ts.map +0 -1
  950. package/dist/mcp/prompts.js.map +0 -1
  951. package/dist/mcp/resources.d.ts.map +0 -1
  952. package/dist/mcp/resources.js.map +0 -1
  953. package/dist/mcp/tools/consumptionTools.d.ts.map +0 -1
  954. package/dist/mcp/tools/consumptionTools.js.map +0 -1
  955. package/dist/mcp/tools/cronTools.d.ts.map +0 -1
  956. package/dist/mcp/tools/cronTools.js.map +0 -1
  957. package/dist/mcp/tools/dlqTools.d.ts.map +0 -1
  958. package/dist/mcp/tools/dlqTools.js.map +0 -1
  959. package/dist/mcp/tools/flowTools.d.ts.map +0 -1
  960. package/dist/mcp/tools/flowTools.js.map +0 -1
  961. package/dist/mcp/tools/handlerTools.d.ts.map +0 -1
  962. package/dist/mcp/tools/handlerTools.js.map +0 -1
  963. package/dist/mcp/tools/jobMgmtTools.d.ts.map +0 -1
  964. package/dist/mcp/tools/jobMgmtTools.js.map +0 -1
  965. package/dist/mcp/tools/jobTools.d.ts.map +0 -1
  966. package/dist/mcp/tools/jobTools.js.map +0 -1
  967. package/dist/mcp/tools/mcpTracker.d.ts.map +0 -1
  968. package/dist/mcp/tools/mcpTracker.js.map +0 -1
  969. package/dist/mcp/tools/monitoringTools.d.ts.map +0 -1
  970. package/dist/mcp/tools/monitoringTools.js.map +0 -1
  971. package/dist/mcp/tools/queueTools.d.ts.map +0 -1
  972. package/dist/mcp/tools/queueTools.js.map +0 -1
  973. package/dist/mcp/tools/rateLimitTools.d.ts.map +0 -1
  974. package/dist/mcp/tools/rateLimitTools.js.map +0 -1
  975. package/dist/mcp/tools/webhookTools.d.ts.map +0 -1
  976. package/dist/mcp/tools/webhookTools.js.map +0 -1
  977. package/dist/mcp/tools/withErrorHandler.d.ts.map +0 -1
  978. package/dist/mcp/tools/withErrorHandler.js.map +0 -1
  979. package/dist/mcp/tools/workerMgmtTools.d.ts.map +0 -1
  980. package/dist/mcp/tools/workerMgmtTools.js.map +0 -1
  981. package/dist/shared/boundedMap.d.ts.map +0 -1
  982. package/dist/shared/boundedMap.js.map +0 -1
  983. package/dist/shared/boundedSet.d.ts.map +0 -1
  984. package/dist/shared/boundedSet.js.map +0 -1
  985. package/dist/shared/hash.d.ts.map +0 -1
  986. package/dist/shared/hash.js.map +0 -1
  987. package/dist/shared/histogram.d.ts.map +0 -1
  988. package/dist/shared/histogram.js.map +0 -1
  989. package/dist/shared/index.d.ts.map +0 -1
  990. package/dist/shared/index.js.map +0 -1
  991. package/dist/shared/lock.d.ts.map +0 -1
  992. package/dist/shared/lock.js.map +0 -1
  993. package/dist/shared/logger.d.ts.map +0 -1
  994. package/dist/shared/logger.js.map +0 -1
  995. package/dist/shared/lru.d.ts.map +0 -1
  996. package/dist/shared/lru.js.map +0 -1
  997. package/dist/shared/lruMap.d.ts.map +0 -1
  998. package/dist/shared/lruMap.js.map +0 -1
  999. package/dist/shared/lruSet.d.ts.map +0 -1
  1000. package/dist/shared/lruSet.js.map +0 -1
  1001. package/dist/shared/minHeap.d.ts.map +0 -1
  1002. package/dist/shared/minHeap.js.map +0 -1
  1003. package/dist/shared/semaphore.d.ts.map +0 -1
  1004. package/dist/shared/semaphore.js.map +0 -1
  1005. package/dist/shared/serialization.d.ts.map +0 -1
  1006. package/dist/shared/serialization.js.map +0 -1
  1007. package/dist/shared/skipList.d.ts.map +0 -1
  1008. package/dist/shared/skipList.js.map +0 -1
  1009. package/dist/shared/ttlMap.d.ts.map +0 -1
  1010. package/dist/shared/ttlMap.js.map +0 -1
  1011. package/dist/shared/version.d.ts.map +0 -1
  1012. package/dist/shared/version.js.map +0 -1
  1013. package/dist/shared/webhookValidation.d.ts.map +0 -1
  1014. package/dist/shared/webhookValidation.js.map +0 -1
@@ -1,22 +1,21 @@
1
- import { executeStepWithRetry, executeParallelSteps, executeSubWorkflow, findStepDef, buildContext, } from './runner';
1
+ import { executeStepWithRetry, executeParallelSteps, executeSubWorkflow, buildContext, } from './runner';
2
2
  import { executeDoUntil, executeDoWhile, executeForEach, executeMap } from './loops';
3
- class WaitForSignalError extends Error {
4
- event;
5
- constructor(event) {
6
- super(`Waiting for signal: ${event}`);
7
- this.event = event;
8
- }
9
- }
3
+ import { WaitForSignalError, runCompensation } from './compensator';
4
+ import { recoverExecutions } from './recovery';
10
5
  export class WorkflowExecutor {
11
6
  store;
12
7
  queue;
13
8
  emitter;
14
9
  workflows = new Map();
15
10
  timeoutTimers = new Map();
11
+ updateFn;
16
12
  constructor(store, queue, emitter = null) {
17
13
  this.store = store;
18
14
  this.queue = queue;
19
15
  this.emitter = emitter;
16
+ this.updateFn = (e) => {
17
+ this.store.update(e);
18
+ };
20
19
  }
21
20
  register(workflow) {
22
21
  const names = workflow.getStepNames();
@@ -33,8 +32,9 @@ export class WorkflowExecutor {
33
32
  if (wf.nodes.length === 0)
34
33
  throw new Error(`Workflow "${workflowName}" has no steps`);
35
34
  const now = Date.now();
35
+ const id = `wf_${now}_${Math.random().toString(36).slice(2, 10)}`;
36
36
  const exec = {
37
- id: `wf_${now}_${Math.random().toString(36).slice(2, 10)}`,
37
+ id,
38
38
  workflowName,
39
39
  state: 'running',
40
40
  input,
@@ -45,9 +45,9 @@ export class WorkflowExecutor {
45
45
  updatedAt: now,
46
46
  };
47
47
  this.store.save(exec);
48
- this.emitter?.emitWorkflow('workflow:started', exec.id, workflowName, 'running', { input });
48
+ this.emitter?.emitWorkflow('workflow:started', id, workflowName, 'running', { input });
49
49
  await this.enqueue(exec);
50
- return { id: exec.id, workflowName };
50
+ return { id, workflowName };
51
51
  }
52
52
  async processStep(data) {
53
53
  const exec = this.store.get(data.executionId);
@@ -84,7 +84,6 @@ export class WorkflowExecutor {
84
84
  const exec = this.store.get(executionId);
85
85
  if (!exec)
86
86
  throw new Error(`Execution "${executionId}" not found`);
87
- // Cancel any pending timeout timer for this execution
88
87
  const timer = this.timeoutTimers.get(executionId);
89
88
  if (timer) {
90
89
  clearTimeout(timer);
@@ -99,8 +98,8 @@ export class WorkflowExecutor {
99
98
  getExecution(id) {
100
99
  return this.store.get(id);
101
100
  }
102
- listExecutions(workflowName, state) {
103
- return this.store.list(workflowName, state);
101
+ listExecutions(wfName, state) {
102
+ return this.store.list(wfName, state);
104
103
  }
105
104
  async executeNode(exec, node, idx, wf) {
106
105
  if (node.type === 'step')
@@ -124,9 +123,7 @@ export class WorkflowExecutor {
124
123
  }
125
124
  async runStep(exec, def, idx, wf) {
126
125
  const ctx = buildContext(exec);
127
- await executeStepWithRetry(def, ctx, exec, this.emitter, (e) => {
128
- this.store.update(e);
129
- });
126
+ await executeStepWithRetry(def, ctx, exec, this.emitter, this.updateFn);
130
127
  await this.advance(exec, idx + 1, wf);
131
128
  }
132
129
  async runBranch(exec, node, idx, wf) {
@@ -134,17 +131,13 @@ export class WorkflowExecutor {
134
131
  const pathSteps = node.def.paths.get(pathName);
135
132
  if (pathSteps && pathSteps.length > 0) {
136
133
  for (const step of pathSteps) {
137
- await executeStepWithRetry(step, buildContext(exec), exec, this.emitter, (e) => {
138
- this.store.update(e);
139
- });
134
+ await executeStepWithRetry(step, buildContext(exec), exec, this.emitter, this.updateFn);
140
135
  }
141
136
  }
142
137
  await this.advance(exec, idx + 1, wf);
143
138
  }
144
139
  async runParallel(exec, node, idx, wf) {
145
- await executeParallelSteps(node.def.steps, buildContext(exec), exec, this.emitter, (e) => {
146
- this.store.update(e);
147
- });
140
+ await executeParallelSteps(node.def.steps, buildContext(exec), exec, this.emitter, this.updateFn);
148
141
  await this.advance(exec, idx + 1, wf);
149
142
  }
150
143
  async runSubWorkflow(exec, node, idx, wf) {
@@ -162,24 +155,26 @@ export class WorkflowExecutor {
162
155
  if (node.timeout !== undefined) {
163
156
  const existing = exec.steps[waitKey];
164
157
  const waitingSince = existing?.startedAt ?? Date.now();
165
- if (!existing) {
158
+ if (!existing)
166
159
  exec.steps[waitKey] = { status: 'running', startedAt: waitingSince };
167
- }
168
160
  if (Date.now() - waitingSince >= node.timeout) {
169
161
  this.emitter?.emitSignal('signal:timeout', exec.id, exec.workflowName, node.event);
170
162
  exec.steps[waitKey] = {
171
163
  status: 'failed',
172
- error: `Signal "${node.event}" timed out after ${node.timeout}ms`,
173
164
  startedAt: waitingSince,
174
165
  completedAt: Date.now(),
166
+ error: `Signal "${node.event}" timed out after ${node.timeout}ms`,
175
167
  };
176
168
  exec.state = 'failed';
177
169
  this.store.update(exec);
170
+ // Compensate here, then signal completion via the WaitForSignalError
171
+ // sentinel so processStep short-circuits (return null) instead of
172
+ // re-running compensation through its generic catch path.
178
173
  await this.compensate(exec, wf);
179
- throw new Error(`Signal "${node.event}" timed out`);
174
+ this.emitter?.emitWorkflow('workflow:failed', exec.id, exec.workflowName, 'failed');
175
+ throw new WaitForSignalError(node.event);
180
176
  }
181
177
  this.store.update(exec);
182
- // Schedule a timer to re-check after timeout
183
178
  const remaining = node.timeout - (Date.now() - waitingSince);
184
179
  this.scheduleTimeoutCheck(exec.id, exec.workflowName, exec.currentNodeIndex, remaining);
185
180
  }
@@ -189,21 +184,15 @@ export class WorkflowExecutor {
189
184
  throw new WaitForSignalError(node.event);
190
185
  }
191
186
  async runLoop(exec, node, idx, wf, loopFn) {
192
- await loopFn(node.def, exec, this.emitter, (e) => {
193
- this.store.update(e);
194
- });
187
+ await loopFn(node.def, exec, this.emitter, this.updateFn);
195
188
  await this.advance(exec, idx + 1, wf);
196
189
  }
197
190
  async runForEach(exec, node, idx, wf) {
198
- await executeForEach(node.def, exec, this.emitter, (e) => {
199
- this.store.update(e);
200
- });
191
+ await executeForEach(node.def, exec, this.emitter, this.updateFn);
201
192
  await this.advance(exec, idx + 1, wf);
202
193
  }
203
194
  async runMap(exec, node, idx, wf) {
204
- await executeMap(node.def, exec, (e) => {
205
- this.store.update(e);
206
- });
195
+ await executeMap(node.def, exec, this.emitter, this.updateFn);
207
196
  await this.advance(exec, idx + 1, wf);
208
197
  }
209
198
  async advance(exec, nextIdx, wf) {
@@ -230,33 +219,26 @@ export class WorkflowExecutor {
230
219
  const timer = setTimeout(() => {
231
220
  this.timeoutTimers.delete(execId);
232
221
  const jobData = { executionId: execId, workflowName, nodeIndex: nodeIdx };
233
- this.queue.add('wf:step', jobData).catch(() => { }); // Queue may be closed
222
+ this.queue.add('wf:step', jobData).catch(() => {
223
+ /* Queue may be closed */
224
+ });
234
225
  }, ms);
235
226
  this.timeoutTimers.set(execId, timer);
236
227
  }
237
228
  async compensate(exec, wf) {
238
- const completed = Object.entries(exec.steps)
239
- .filter(([name, s]) => s.status === 'completed' && !name.startsWith('__'))
240
- .reverse();
241
- if (completed.length === 0)
242
- return;
243
- exec.state = 'compensating';
244
- this.store.update(exec);
245
- this.emitter?.emitWorkflow('workflow:compensating', exec.id, exec.workflowName, 'compensating');
246
- const ctx = buildContext(exec);
247
- for (const [name] of completed) {
248
- const def = findStepDef(wf, name);
249
- if (def?.compensate) {
250
- try {
251
- await def.compensate(ctx);
252
- }
253
- catch {
254
- // Compensation errors don't stop the chain
255
- }
256
- }
257
- }
258
- exec.state = 'failed';
259
- this.store.update(exec);
229
+ await runCompensation(exec, wf, this.store, this.emitter);
230
+ }
231
+ /** Recover orphaned executions after a crash/restart */
232
+ async recover() {
233
+ return recoverExecutions({
234
+ store: this.store,
235
+ queue: this.queue,
236
+ workflows: this.workflows,
237
+ emitter: this.emitter,
238
+ timeoutTimers: this.timeoutTimers,
239
+ scheduleTimeoutCheck: (id, name, idx, ms) => {
240
+ this.scheduleTimeoutCheck(id, name, idx, ms);
241
+ },
242
+ });
260
243
  }
261
244
  }
262
- //# sourceMappingURL=executor.js.map
@@ -19,5 +19,4 @@
19
19
  export { Workflow } from './workflow';
20
20
  export { Engine } from './engine';
21
21
  export { WorkflowEmitter } from './emitter';
22
- export type { StepContext, StepHandler, CompensateHandler, StepOptions, SchemaLike, Execution, ExecutionState, StepState, StepRecord, EngineOptions, RunHandle, ParallelDefinition, SubWorkflowInputMapper, LoopCondition, ForEachItemsExtractor, MapTransformFn, LoopDefinition, ForEachDefinition, MapDefinition, CleanupOptions, WorkflowEventType, WorkflowEvent, StepEvent, WorkflowLifecycleEvent, SignalEvent, WorkflowEventListener, } from './types';
23
- //# sourceMappingURL=index.d.ts.map
22
+ export type { StepContext, StepHandler, TypedStepHandler, CompensateHandler, TypedCompensateHandler, StepOptions, SchemaLike, Execution, ExecutionState, StepState, StepRecord, EngineOptions, RunHandle, ParallelDefinition, SubWorkflowInputMapper, LoopCondition, ForEachItemsExtractor, MapTransformFn, LoopDefinition, ForEachDefinition, MapDefinition, RecoverResult, CleanupOptions, WorkflowEventType, WorkflowEvent, StepEvent, WorkflowLifecycleEvent, SignalEvent, WorkflowEventListener, } from './types';
@@ -19,4 +19,3 @@
19
19
  export { Workflow } from './workflow';
20
20
  export { Engine } from './engine';
21
21
  export { WorkflowEmitter } from './emitter';
22
- //# sourceMappingURL=index.js.map
@@ -11,5 +11,4 @@ export declare function executeDoWhile(def: LoopDefinition, exec: Execution, emi
11
11
  /** Execute a forEach loop: iterate over items, executing the step for each */
12
12
  export declare function executeForEach(def: ForEachDefinition, exec: Execution, emitter: WorkflowEmitter | null, updateFn: (exec: Execution) => void): Promise<void>;
13
13
  /** Execute a map node: transform step results into a new value */
14
- export declare function executeMap(def: MapDefinition, exec: Execution, updateFn: (exec: Execution) => void): Promise<void>;
15
- //# sourceMappingURL=loops.d.ts.map
14
+ export declare function executeMap(def: MapDefinition, exec: Execution, emitter: WorkflowEmitter | null, updateFn: (exec: Execution) => void): Promise<void>;
@@ -59,11 +59,19 @@ export async function executeForEach(def, exec, emitter, updateFn) {
59
59
  };
60
60
  const stepCtx = buildContext(exec);
61
61
  await executeStepWithRetry(indexedStep, stepCtx, exec, emitter, updateFn);
62
+ // Persist this iteration's __item/__index alongside the step record so
63
+ // saga compensation can restore the correct per-iteration context later.
64
+ // executeStepWithRetry has just written this record (it throws otherwise).
65
+ const record = exec.steps[indexedName];
66
+ record.loopItem = item;
67
+ record.loopIndex = i;
68
+ updateFn(exec);
62
69
  }
63
70
  }
64
71
  /** Execute a map node: transform step results into a new value */
65
- export async function executeMap(def, exec, updateFn) {
72
+ export async function executeMap(def, exec, emitter, updateFn) {
66
73
  const ctx = buildContext(exec);
74
+ emitter?.emitStep('step:started', exec.id, exec.workflowName, def.name);
67
75
  const result = await def.transform(ctx);
68
76
  exec.steps[def.name] = {
69
77
  status: 'completed',
@@ -72,5 +80,5 @@ export async function executeMap(def, exec, updateFn) {
72
80
  completedAt: Date.now(),
73
81
  };
74
82
  updateFn(exec);
83
+ emitter?.emitStep('step:completed', exec.id, exec.workflowName, def.name, { result });
75
84
  }
76
- //# sourceMappingURL=loops.js.map
@@ -0,0 +1,22 @@
1
+ /**
2
+ * Recovery logic for orphaned workflow executions after crash/restart
3
+ *
4
+ * Handles three states:
5
+ * - 'running': re-enqueue the step at currentNodeIndex
6
+ * - 'waiting': re-arm timeout timer or resume if signal already arrived
7
+ * - 'compensating': re-run compensation from the beginning (must be idempotent)
8
+ */
9
+ import type { Queue } from '../queue/queue';
10
+ import type { Workflow } from './workflow';
11
+ import type { WorkflowStore } from './store';
12
+ import type { WorkflowEmitter } from './emitter';
13
+ import type { RecoverResult } from './types';
14
+ export interface RecoverDeps {
15
+ store: WorkflowStore;
16
+ queue: Queue;
17
+ workflows: Map<string, Workflow>;
18
+ emitter: WorkflowEmitter | null;
19
+ timeoutTimers: Map<string, ReturnType<typeof setTimeout>>;
20
+ scheduleTimeoutCheck: (id: string, wfName: string, nodeIdx: number, ms: number) => void;
21
+ }
22
+ export declare function recoverExecutions(deps: RecoverDeps): Promise<RecoverResult>;
@@ -0,0 +1,73 @@
1
+ /**
2
+ * Recovery logic for orphaned workflow executions after crash/restart
3
+ *
4
+ * Handles three states:
5
+ * - 'running': re-enqueue the step at currentNodeIndex
6
+ * - 'waiting': re-arm timeout timer or resume if signal already arrived
7
+ * - 'compensating': re-run compensation from the beginning (must be idempotent)
8
+ */
9
+ import { runCompensation } from './compensator';
10
+ export async function recoverExecutions(deps) {
11
+ const { store, workflows } = deps;
12
+ const executions = store.listRecoverable();
13
+ const result = { running: 0, waiting: 0, compensating: 0, total: 0 };
14
+ for (const exec of executions) {
15
+ const wf = workflows.get(exec.workflowName);
16
+ if (!wf)
17
+ continue;
18
+ if (exec.state === 'running') {
19
+ await enqueueExecution(exec, deps.queue);
20
+ result.running++;
21
+ }
22
+ else if (exec.state === 'waiting') {
23
+ await recoverWaiting(exec, wf, deps);
24
+ result.waiting++;
25
+ }
26
+ else if (exec.state === 'compensating') {
27
+ await runCompensation(exec, wf, store, deps.emitter);
28
+ result.compensating++;
29
+ }
30
+ }
31
+ result.total = result.running + result.waiting + result.compensating;
32
+ return result;
33
+ }
34
+ async function enqueueExecution(exec, queue) {
35
+ const jobData = {
36
+ executionId: exec.id,
37
+ workflowName: exec.workflowName,
38
+ nodeIndex: exec.currentNodeIndex,
39
+ };
40
+ await queue.add('wf:step', jobData);
41
+ }
42
+ async function recoverWaiting(exec, wf, deps) {
43
+ const node = wf.nodes[exec.currentNodeIndex];
44
+ if (node?.type !== 'waitFor') {
45
+ await enqueueExecution(exec, deps.queue);
46
+ return;
47
+ }
48
+ // Check if signal already arrived while we were down
49
+ if (exec.signals[node.event] !== undefined) {
50
+ exec.state = 'running';
51
+ deps.store.update(exec);
52
+ await enqueueExecution(exec, deps.queue);
53
+ return;
54
+ }
55
+ // Re-arm timeout if configured
56
+ if (node.timeout !== undefined) {
57
+ if (deps.timeoutTimers.has(exec.id))
58
+ return;
59
+ const waitKey = `__waitFor:${node.event}`;
60
+ const waitRecord = exec.steps[waitKey];
61
+ const waitingSince = waitRecord?.startedAt ?? exec.updatedAt;
62
+ const elapsed = Date.now() - waitingSince;
63
+ const remaining = node.timeout - elapsed;
64
+ if (remaining <= 0) {
65
+ exec.state = 'running';
66
+ deps.store.update(exec);
67
+ await enqueueExecution(exec, deps.queue);
68
+ }
69
+ else {
70
+ deps.scheduleTimeoutCheck(exec.id, exec.workflowName, exec.currentNodeIndex, remaining);
71
+ }
72
+ }
73
+ }
@@ -18,4 +18,3 @@ export declare function executeSubWorkflow(workflowName: string, input: unknown,
18
18
  export declare function findStepDef(wf: Workflow, name: string): StepDefinition | null;
19
19
  /** Build a StepContext from the current execution state */
20
20
  export declare function buildContext(exec: Execution): StepContext;
21
- //# sourceMappingURL=runner.d.ts.map
@@ -109,9 +109,8 @@ export async function executeParallelSteps(steps, ctx, exec, emitter, updateFn)
109
109
  const results = await Promise.allSettled(steps.map((def) => executeStepWithRetry(def, ctx, exec, emitter, updateFn)));
110
110
  const failed = results.filter((r) => r.status === 'rejected');
111
111
  if (failed.length > 0) {
112
- throw failed[0].reason instanceof Error
113
- ? failed[0].reason
114
- : new Error(String(failed[0].reason));
112
+ const errors = failed.map((r) => r.reason instanceof Error ? r.reason : new Error(String(r.reason)));
113
+ throw new AggregateError(errors, errors[0].message);
115
114
  }
116
115
  }
117
116
  /** Execute a sub-workflow by starting it and polling for completion */
@@ -158,8 +157,11 @@ export function findStepDef(wf, name) {
158
157
  if (found)
159
158
  return found;
160
159
  }
161
- if (node.type === 'forEach' && node.def.step.name === name)
162
- return node.def.step;
160
+ if (node.type === 'forEach') {
161
+ if (node.def.step.name === name || name.startsWith(node.def.step.name + ':')) {
162
+ return node.def.step;
163
+ }
164
+ }
163
165
  }
164
166
  return null;
165
167
  }
@@ -177,4 +179,3 @@ export function buildContext(exec) {
177
179
  executionId: exec.id,
178
180
  };
179
181
  }
180
- //# sourceMappingURL=runner.js.map
@@ -10,6 +10,8 @@ export declare class WorkflowStore {
10
10
  get(id: string): Execution | null;
11
11
  update(exec: Execution): void;
12
12
  list(workflowName?: string, state?: ExecutionState): Execution[];
13
+ /** List all executions in recoverable states (running, waiting, compensating) */
14
+ listRecoverable(): Execution[];
13
15
  /** Delete executions older than maxAge in terminal states */
14
16
  cleanup(maxAgeMs: number, states?: string[]): number;
15
17
  /** Archive executions older than maxAge to the archive table */
@@ -19,4 +21,3 @@ export declare class WorkflowStore {
19
21
  close(): void;
20
22
  private rowToExecution;
21
23
  }
22
- //# sourceMappingURL=store.d.ts.map
@@ -68,6 +68,7 @@ export class WorkflowStore {
68
68
  listByName: this.db.prepare(`SELECT * FROM workflow_executions WHERE workflow_name = ? ORDER BY created_at DESC LIMIT 100`),
69
69
  listByState: this.db.prepare(`SELECT * FROM workflow_executions WHERE state = ? ORDER BY created_at DESC LIMIT 100`),
70
70
  listByBoth: this.db.prepare(`SELECT * FROM workflow_executions WHERE workflow_name = ? AND state = ? ORDER BY created_at DESC LIMIT 100`),
71
+ listRecoverable: this.db.prepare(`SELECT * FROM workflow_executions WHERE state IN ('running', 'waiting', 'compensating') ORDER BY updated_at ASC`),
71
72
  };
72
73
  }
73
74
  save(exec) {
@@ -97,6 +98,11 @@ export class WorkflowStore {
97
98
  }
98
99
  return rows.map((r) => this.rowToExecution(r));
99
100
  }
101
+ /** List all executions in recoverable states (running, waiting, compensating) */
102
+ listRecoverable() {
103
+ const rows = this.stmts.listRecoverable.all();
104
+ return rows.map((r) => this.rowToExecution(r));
105
+ }
100
106
  /** Delete executions older than maxAge in terminal states */
101
107
  cleanup(maxAgeMs, states = ['completed', 'failed']) {
102
108
  const cutoff = Date.now() - maxAgeMs;
@@ -157,4 +163,3 @@ export class WorkflowStore {
157
163
  };
158
164
  }
159
165
  }
160
- //# sourceMappingURL=store.js.map
@@ -3,29 +3,33 @@
3
3
  */
4
4
  import type { ConnectionOptions } from '../types';
5
5
  /** Context passed to step handlers */
6
- export interface StepContext<TInput = unknown> {
6
+ export interface StepContext<TInput = unknown, TSteps extends Record<string, unknown> = Record<string, unknown>> {
7
7
  /** Original workflow input */
8
8
  readonly input: TInput;
9
9
  /** Results from completed steps (step name → result) */
10
- readonly steps: Readonly<Record<string, unknown>>;
10
+ readonly steps: Readonly<TSteps>;
11
11
  /** Signals received via engine.signal() */
12
12
  readonly signals: Readonly<Record<string, unknown>>;
13
13
  /** Current execution ID */
14
14
  readonly executionId: string;
15
15
  }
16
- /** Step handler function */
17
- export type StepHandler<TInput = unknown, TResult = unknown> = (ctx: StepContext<TInput>) => Promise<TResult> | TResult;
18
- /** Compensate handler (rollback on failure) */
19
- export type CompensateHandler<TInput = unknown> = (ctx: StepContext<TInput>) => Promise<void> | void;
16
+ /** Step handler function (type-erased for internal storage) */
17
+ export type StepHandler<TInput = unknown, TResult = unknown> = (ctx: StepContext<TInput, any>) => Promise<TResult> | TResult;
18
+ /** Typed step handler preserves accumulated step types */
19
+ export type TypedStepHandler<TInput, TSteps extends Record<string, unknown>, TResult> = (ctx: StepContext<TInput, TSteps>) => Promise<TResult> | TResult;
20
+ /** Compensate handler (type-erased for internal storage) */
21
+ export type CompensateHandler<TInput = unknown> = (ctx: StepContext<TInput, any>) => Promise<void> | void;
22
+ /** Typed compensate handler — preserves accumulated step types */
23
+ export type TypedCompensateHandler<TInput, TSteps extends Record<string, unknown>> = (ctx: StepContext<TInput, TSteps>) => Promise<void> | void;
20
24
  /** Schema-like object — any object with a .parse() method (Zod, ArkType, Valibot, etc.) */
21
25
  export interface SchemaLike {
22
26
  parse(data: unknown): unknown;
23
27
  }
24
28
  /** Options for a single step */
25
- export interface StepOptions<TInput = unknown> {
29
+ export interface StepOptions<TInput = unknown, TSteps extends Record<string, unknown> = Record<string, unknown>> {
26
30
  retry?: number;
27
31
  timeout?: number;
28
- compensate?: CompensateHandler<TInput>;
32
+ compensate?: TypedCompensateHandler<TInput, TSteps> | CompensateHandler<TInput>;
29
33
  /** Validate step input before execution */
30
34
  inputSchema?: SchemaLike;
31
35
  /** Validate step output after execution */
@@ -42,10 +46,10 @@ export interface StepDefinition {
42
46
  outputSchema?: SchemaLike;
43
47
  }
44
48
  /** Branch condition function */
45
- export type BranchCondition = (ctx: StepContext) => string;
46
- /** Internal branch definition */
49
+ export type BranchCondition<TInput = unknown, TSteps extends Record<string, unknown> = Record<string, unknown>> = (ctx: StepContext<TInput, TSteps>) => string;
50
+ /** Internal branch definition (type-erased) */
47
51
  export interface BranchDefinition {
48
- condition: BranchCondition;
52
+ condition: BranchCondition<any, any>;
49
53
  paths: Map<string, StepDefinition[]>;
50
54
  }
51
55
  /** Definition of a parallel step group */
@@ -53,29 +57,29 @@ export interface ParallelDefinition {
53
57
  steps: StepDefinition[];
54
58
  }
55
59
  /** Input mapper for sub-workflows */
56
- export type SubWorkflowInputMapper = (ctx: StepContext) => unknown;
60
+ export type SubWorkflowInputMapper<TInput = unknown, TSteps extends Record<string, unknown> = Record<string, unknown>> = (ctx: StepContext<TInput, TSteps>) => unknown;
57
61
  /** Loop condition: receives context + iteration count, returns boolean */
58
- export type LoopCondition = (ctx: StepContext, iteration: number) => boolean | Promise<boolean>;
59
- /** Definition of a doUntil/doWhile loop */
62
+ export type LoopCondition<TInput = unknown, TSteps extends Record<string, unknown> = Record<string, unknown>> = (ctx: StepContext<TInput, TSteps>, iteration: number) => boolean | Promise<boolean>;
63
+ /** Definition of a doUntil/doWhile loop (type-erased) */
60
64
  export interface LoopDefinition {
61
- condition: LoopCondition;
65
+ condition: LoopCondition<any, any>;
62
66
  steps: StepDefinition[];
63
67
  maxIterations: number;
64
68
  }
65
69
  /** Item extractor for forEach */
66
- export type ForEachItemsExtractor = (ctx: StepContext) => unknown[];
67
- /** Definition of a forEach loop */
70
+ export type ForEachItemsExtractor<TInput = unknown, TSteps extends Record<string, unknown> = Record<string, unknown>> = (ctx: StepContext<TInput, TSteps>) => unknown[];
71
+ /** Definition of a forEach loop (type-erased) */
68
72
  export interface ForEachDefinition {
69
- items: ForEachItemsExtractor;
73
+ items: ForEachItemsExtractor<any, any>;
70
74
  step: StepDefinition;
71
75
  maxIterations: number;
72
76
  }
73
77
  /** Transform function for map */
74
- export type MapTransformFn = (ctx: StepContext) => unknown;
75
- /** Definition of a map node */
78
+ export type MapTransformFn<TInput = unknown, TSteps extends Record<string, unknown> = Record<string, unknown>> = (ctx: StepContext<TInput, TSteps>) => unknown;
79
+ /** Definition of a map node (type-erased) */
76
80
  export interface MapDefinition {
77
81
  name: string;
78
- transform: MapTransformFn;
82
+ transform: MapTransformFn<any, any>;
79
83
  }
80
84
  /** Workflow node (discriminated union) */
81
85
  export type WorkflowNode = {
@@ -94,7 +98,7 @@ export type WorkflowNode = {
94
98
  } | {
95
99
  type: 'subWorkflow';
96
100
  name: string;
97
- inputMapper: SubWorkflowInputMapper;
101
+ inputMapper: SubWorkflowInputMapper<any, any>;
98
102
  } | {
99
103
  type: 'doUntil';
100
104
  def: LoopDefinition;
@@ -120,6 +124,10 @@ export interface StepRecord {
120
124
  startedAt?: number;
121
125
  completedAt?: number;
122
126
  attempts?: number;
127
+ /** forEach iteration item — persisted so compensation can restore __item */
128
+ loopItem?: unknown;
129
+ /** forEach iteration index — persisted so compensation can restore __index */
130
+ loopIndex?: number;
123
131
  }
124
132
  /** Full execution state */
125
133
  export interface Execution {
@@ -187,9 +195,19 @@ export interface StepJobData {
187
195
  workflowName: string;
188
196
  nodeIndex: number;
189
197
  }
198
+ /** Result of engine.recover() */
199
+ export interface RecoverResult {
200
+ /** Number of running executions re-enqueued */
201
+ running: number;
202
+ /** Number of waiting executions with re-armed timers */
203
+ waiting: number;
204
+ /** Number of compensating executions re-run */
205
+ compensating: number;
206
+ /** Total recovered */
207
+ total: number;
208
+ }
190
209
  /** Options for cleanup */
191
210
  export interface CleanupOptions {
192
211
  maxAge: number;
193
212
  states?: ExecutionState[];
194
213
  }
195
- //# sourceMappingURL=types.d.ts.map
@@ -2,4 +2,3 @@
2
2
  * Workflow Engine Types
3
3
  */
4
4
  export {};
5
- //# sourceMappingURL=types.js.map
@@ -1,41 +1,43 @@
1
1
  /**
2
2
  * Workflow - DSL builder for defining workflow step graphs
3
3
  * Pure data structure, no side effects.
4
+ *
5
+ * Supports type-safe step chaining: each .step() narrows the return type
6
+ * so subsequent steps can access previous results without casting.
4
7
  */
5
- import type { WorkflowNode, StepHandler, StepOptions, StepContext, BranchCondition, LoopCondition, ForEachItemsExtractor, MapTransformFn } from './types';
6
- export declare class Workflow<TInput = unknown> {
8
+ import type { WorkflowNode, StepOptions, StepContext, BranchCondition, LoopCondition, ForEachItemsExtractor, TypedStepHandler } from './types';
9
+ export declare class Workflow<TInput = unknown, TSteps extends Record<string, unknown> = Record<string, unknown>> {
7
10
  readonly name: string;
8
11
  readonly nodes: WorkflowNode[];
9
12
  constructor(name: string);
10
- /** Add a step to the workflow */
11
- step(name: string, handler: StepHandler<TInput>, options?: StepOptions<TInput>): this;
13
+ /** Add a step to the workflow — return type accumulates into TSteps */
14
+ step<TName extends string, TResult>(name: TName, handler: TypedStepHandler<TInput, TSteps, TResult>, options?: StepOptions<TInput, TSteps>): Workflow<TInput, TSteps & Record<TName, Awaited<TResult>>>;
12
15
  /** Add a branch point — call .path() after this to define paths */
13
- branch(condition: BranchCondition): this;
16
+ branch(condition: BranchCondition<TInput, TSteps>): this;
14
17
  /** Define a branch path (must follow a .branch() call) */
15
- path(name: string, builder: (w: Workflow<TInput>) => Workflow<TInput>): this;
16
- /** Run multiple steps in parallel */
17
- parallel(builder: (w: Workflow<TInput>) => Workflow<TInput>): this;
18
+ path(name: string, builder: (w: Workflow<TInput, TSteps>) => Workflow<TInput, any>): this;
19
+ /** Run multiple steps in parallel — accumulated types from sub-builder merge into TSteps */
20
+ parallel<TNewSteps extends Record<string, unknown>>(builder: (w: Workflow<TInput, TSteps>) => Workflow<TInput, TSteps & TNewSteps>): Workflow<TInput, TSteps & TNewSteps>;
18
21
  /** Call another registered workflow as a step */
19
- subWorkflow(name: string, inputMapper: (ctx: StepContext<TInput>) => unknown): this;
22
+ subWorkflow<TName extends string>(name: TName, inputMapper: (ctx: StepContext<TInput, TSteps>) => unknown): Workflow<TInput, TSteps & Record<`sub:${TName}`, Record<string, unknown>>>;
20
23
  /** Wait for an external signal before continuing */
21
24
  waitFor(event: string, options?: {
22
25
  timeout?: number;
23
26
  }): this;
24
27
  /** Repeat steps until condition returns true (checked after each iteration) */
25
- doUntil(condition: LoopCondition, builder: (w: Workflow<TInput>) => Workflow<TInput>, options?: {
28
+ doUntil(condition: LoopCondition<TInput, TSteps>, builder: (w: Workflow<TInput, TSteps>) => Workflow<TInput, any>, options?: {
26
29
  maxIterations?: number;
27
30
  }): this;
28
31
  /** Repeat steps while condition returns true (checked before each iteration) */
29
- doWhile(condition: LoopCondition, builder: (w: Workflow<TInput>) => Workflow<TInput>, options?: {
32
+ doWhile(condition: LoopCondition<TInput, TSteps>, builder: (w: Workflow<TInput, TSteps>) => Workflow<TInput, any>, options?: {
30
33
  maxIterations?: number;
31
34
  }): this;
32
35
  /** Iterate over items, executing a step for each */
33
- forEach(items: ForEachItemsExtractor, name: string, handler: StepHandler<TInput>, options?: StepOptions<TInput> & {
36
+ forEach<TName extends string, TResult>(items: ForEachItemsExtractor<TInput, TSteps>, name: TName, handler: TypedStepHandler<TInput, TSteps, TResult>, options?: StepOptions<TInput, TSteps> & {
34
37
  maxIterations?: number;
35
- }): this;
38
+ }): Workflow<TInput, TSteps & Record<TName, Awaited<TResult>>>;
36
39
  /** Transform step results into a new value stored under the given name */
37
- map(name: string, transform: MapTransformFn): this;
40
+ map<TName extends string, TResult>(name: TName, transform: (ctx: StepContext<TInput, TSteps>) => TResult): Workflow<TInput, TSteps & Record<TName, Awaited<TResult>>>;
38
41
  /** Get flat list of step names for validation */
39
42
  getStepNames(): string[];
40
43
  }
41
- //# sourceMappingURL=workflow.d.ts.map