@temelj/workflow 0.0.0-alpha.3 → 0.0.0-alpha.4

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 (461) hide show
  1. package/README.md +394 -2
  2. package/dist/attributes.d.mts +11 -9
  3. package/dist/attributes.mjs +23 -5
  4. package/dist/bundle.d.mts +5 -23
  5. package/dist/bundle.mjs +2 -18
  6. package/dist/client/create.d.mts +26 -23
  7. package/dist/client/create.mjs +26 -32
  8. package/dist/client/facades.d.mts +12 -18
  9. package/dist/client/facades.mjs +102 -93
  10. package/dist/client/mod.mjs +1 -2
  11. package/dist/client/run-handle.d.mts +17 -54
  12. package/dist/client/run-handle.mjs +35 -105
  13. package/dist/client/worker-options.d.mts +8 -8
  14. package/dist/client/worker-options.mjs +11 -11
  15. package/dist/cloudflare/cloudflare.d.mts +4 -5
  16. package/dist/cloudflare/codec.d.mts +28 -13
  17. package/dist/cloudflare/codec.mjs +40 -17
  18. package/dist/cloudflare/entrypoint.d.mts +3 -4
  19. package/dist/cloudflare/entrypoint.mjs +4 -3
  20. package/dist/cloudflare/execution.d.mts +3 -4
  21. package/dist/cloudflare/execution.mjs +20 -13
  22. package/dist/cloudflare/host.d.mts +6 -7
  23. package/dist/cloudflare/host.mjs +7 -6
  24. package/dist/cloudflare/mod.d.mts +4 -4
  25. package/dist/cloudflare/mod.mjs +2 -2
  26. package/dist/cloudflare/name.d.mts +3 -4
  27. package/dist/cloudflare/name.mjs +3 -3
  28. package/dist/cloudflare/registry.d.mts +3 -23
  29. package/dist/cloudflare/registry.mjs +2 -20
  30. package/dist/cloudflare/runtime.d.mts +11 -18
  31. package/dist/cloudflare/runtime.mjs +52 -73
  32. package/dist/cloudflare/step.d.mts +6 -6
  33. package/dist/cloudflare/step.mjs +69 -57
  34. package/dist/cloudflare/types.d.mts +17 -36
  35. package/dist/collection.d.mts +8 -11
  36. package/dist/collection.mjs +10 -14
  37. package/dist/compiled-function.d.mts +14 -19
  38. package/dist/compiled-function.mjs +12 -24
  39. package/dist/compiled.d.mts +4 -0
  40. package/dist/compiled.mjs +4 -0
  41. package/dist/compiler/ast.d.mts +26 -0
  42. package/dist/{vite → compiler}/ast.mjs +24 -16
  43. package/dist/{vite → compiler}/error.d.mts +4 -6
  44. package/dist/{vite → compiler}/error.mjs +14 -16
  45. package/dist/compiler/manifest.d.mts +6 -0
  46. package/dist/{vite → compiler}/manifest.mjs +9 -7
  47. package/dist/compiler/plugin.d.mts +7 -0
  48. package/dist/{vite → compiler}/plugin.mjs +45 -46
  49. package/dist/compiler/safety.d.mts +12 -0
  50. package/dist/{vite → compiler}/safety.mjs +5 -11
  51. package/dist/{vite → compiler}/source-edit.d.mts +3 -4
  52. package/dist/{vite → compiler}/source-edit.mjs +1 -1
  53. package/dist/{vite → compiler}/source-map.d.mts +4 -3
  54. package/dist/{vite → compiler}/source-map.mjs +3 -3
  55. package/dist/compiler/source.d.mts +7 -0
  56. package/dist/{vite → compiler}/source.mjs +1 -1
  57. package/dist/compiler/transform.d.mts +12 -0
  58. package/dist/{vite → compiler}/transform.mjs +37 -38
  59. package/dist/definition.d.mts +17 -25
  60. package/dist/definition.mjs +19 -35
  61. package/dist/engine/child-workflow.d.mts +5 -9
  62. package/dist/engine/child-workflow.mjs +46 -67
  63. package/dist/engine/command-identity.d.mts +5 -6
  64. package/dist/engine/command-identity.mjs +9 -5
  65. package/dist/engine/context.d.mts +17 -0
  66. package/dist/engine/create.d.mts +36 -94
  67. package/dist/engine/create.mjs +55 -260
  68. package/dist/engine/deterministic.d.mts +6 -11
  69. package/dist/engine/deterministic.mjs +47 -68
  70. package/dist/engine/durable-command.d.mts +5 -5
  71. package/dist/engine/durable-command.mjs +2 -2
  72. package/dist/engine/execution-service.d.mts +20 -24
  73. package/dist/engine/execution-service.mjs +54 -52
  74. package/dist/engine/hooks.d.mts +17 -39
  75. package/dist/engine/hooks.mjs +73 -94
  76. package/dist/engine/inspection.d.mts +23 -15
  77. package/dist/engine/inspection.mjs +55 -29
  78. package/dist/engine/lifecycle.d.mts +6 -12
  79. package/dist/engine/lifecycle.mjs +5 -5
  80. package/dist/engine/lock-replay.d.mts +8 -15
  81. package/dist/engine/lock-replay.mjs +12 -25
  82. package/dist/engine/lock.d.mts +10 -15
  83. package/dist/engine/lock.mjs +65 -51
  84. package/dist/engine/message.d.mts +14 -34
  85. package/dist/engine/message.mjs +94 -127
  86. package/dist/engine/observation.d.mts +9 -11
  87. package/dist/engine/observation.mjs +18 -27
  88. package/dist/engine/replay.d.mts +18 -19
  89. package/dist/engine/replay.mjs +32 -56
  90. package/dist/engine/resume.d.mts +16 -0
  91. package/dist/engine/resume.mjs +24 -0
  92. package/dist/engine/retry.d.mts +15 -19
  93. package/dist/engine/retry.mjs +17 -17
  94. package/dist/engine/run-data.d.mts +4 -8
  95. package/dist/engine/run-data.mjs +24 -22
  96. package/dist/engine/run-service.d.mts +24 -33
  97. package/dist/engine/run-service.mjs +125 -93
  98. package/dist/engine/run-utils.d.mts +11 -13
  99. package/dist/engine/run-utils.mjs +23 -46
  100. package/dist/engine/schedule.d.mts +8 -22
  101. package/dist/engine/schedule.mjs +37 -34
  102. package/dist/engine/serialization.d.mts +9 -6
  103. package/dist/engine/serialization.mjs +30 -21
  104. package/dist/engine/signals.d.mts +23 -0
  105. package/dist/engine/signals.mjs +41 -0
  106. package/dist/engine/start.d.mts +18 -0
  107. package/dist/engine/start.mjs +88 -0
  108. package/dist/engine/state.d.mts +37 -67
  109. package/dist/engine/state.mjs +119 -280
  110. package/dist/engine/step-api.d.mts +5 -8
  111. package/dist/engine/step-api.mjs +16 -16
  112. package/dist/engine/stream-reader.d.mts +12 -0
  113. package/dist/engine/stream-reader.mjs +154 -0
  114. package/dist/engine/stream.d.mts +9 -54
  115. package/dist/engine/stream.mjs +54 -196
  116. package/dist/engine/summary/recovery.d.mts +35 -0
  117. package/dist/engine/summary/recovery.mjs +363 -0
  118. package/dist/engine/summary/runs.d.mts +43 -0
  119. package/dist/engine/summary/runs.mjs +294 -0
  120. package/dist/engine/summary/step-attempts.d.mts +5 -10
  121. package/dist/engine/summary/step-attempts.mjs +157 -36
  122. package/dist/engine/summary/tally.d.mts +44 -0
  123. package/dist/engine/summary/tally.mjs +142 -0
  124. package/dist/engine/task.d.mts +4 -5
  125. package/dist/engine/task.mjs +40 -48
  126. package/dist/errors/base.d.mts +17 -77
  127. package/dist/errors/base.mjs +26 -327
  128. package/dist/errors/capability.d.mts +3 -6
  129. package/dist/errors/capability.mjs +4 -8
  130. package/dist/errors/codes.d.mts +116 -0
  131. package/dist/{types/error-code.mjs → errors/codes.mjs} +2 -17
  132. package/dist/errors/definition.d.mts +3 -17
  133. package/dist/errors/definition.mjs +5 -42
  134. package/dist/errors/failures.d.mts +17 -51
  135. package/dist/errors/failures.mjs +35 -102
  136. package/dist/errors/hook.d.mts +5 -9
  137. package/dist/errors/hook.mjs +4 -16
  138. package/dist/errors/implementation.d.mts +3 -6
  139. package/dist/errors/implementation.mjs +7 -12
  140. package/dist/errors/lock.d.mts +7 -20
  141. package/dist/errors/lock.mjs +8 -44
  142. package/dist/errors/message.d.mts +14 -59
  143. package/dist/errors/message.mjs +13 -39
  144. package/dist/errors/mod.d.mts +4 -5
  145. package/dist/errors/mod.mjs +5 -7
  146. package/dist/errors/records.d.mts +10 -4
  147. package/dist/errors/records.mjs +256 -256
  148. package/dist/errors/run.d.mts +27 -68
  149. package/dist/errors/run.mjs +31 -85
  150. package/dist/errors/schedule.d.mts +7 -18
  151. package/dist/errors/schedule.mjs +7 -39
  152. package/dist/errors/step.d.mts +12 -45
  153. package/dist/errors/step.mjs +13 -34
  154. package/dist/errors/stream.d.mts +8 -16
  155. package/dist/errors/stream.mjs +7 -41
  156. package/dist/esbuild.d.mts +6 -4
  157. package/dist/esbuild.mjs +2 -1
  158. package/dist/events/descriptors.d.mts +12 -241
  159. package/dist/events/descriptors.mjs +12 -5
  160. package/dist/history/projection.d.mts +4 -6
  161. package/dist/history/projection.mjs +22 -26
  162. package/dist/history/replay-projection.d.mts +44 -48
  163. package/dist/history/replay-projection.mjs +41 -50
  164. package/dist/history/{mod.d.mts → replay.d.mts} +16 -21
  165. package/dist/history/{mod.mjs → replay.mjs} +21 -25
  166. package/dist/history/sequencer.d.mts +10 -11
  167. package/dist/history/sequencer.mjs +11 -7
  168. package/dist/history/step-attempts.d.mts +4 -7
  169. package/dist/history/step-attempts.mjs +8 -9
  170. package/dist/history/timeline.d.mts +4 -13
  171. package/dist/history/timeline.mjs +46 -265
  172. package/dist/history/validator.d.mts +5 -7
  173. package/dist/history/validator.mjs +9 -24
  174. package/dist/hook-token.d.mts +7 -0
  175. package/dist/hook-token.mjs +32 -0
  176. package/dist/ids.d.mts +8 -0
  177. package/dist/ids.mjs +21 -0
  178. package/dist/message-options.d.mts +11 -5
  179. package/dist/message-options.mjs +9 -7
  180. package/dist/mod.d.mts +32 -36
  181. package/dist/mod.mjs +9 -13
  182. package/dist/otel/metrics.d.mts +31 -0
  183. package/dist/otel/metrics.mjs +60 -0
  184. package/dist/otel/mod.d.mts +3 -0
  185. package/dist/otel/mod.mjs +3 -0
  186. package/dist/otel/spans.d.mts +24 -0
  187. package/dist/otel/spans.mjs +218 -0
  188. package/dist/otel/support.d.mts +15 -8
  189. package/dist/otel/support.mjs +18 -40
  190. package/dist/{otel.d.mts → otel/telemetry.d.mts} +5 -6
  191. package/dist/otel/telemetry.mjs +305 -0
  192. package/dist/pagination.d.mts +6 -12
  193. package/dist/pagination.mjs +10 -14
  194. package/dist/registry.d.mts +8 -5
  195. package/dist/registry.mjs +19 -10
  196. package/dist/rolldown.d.mts +6 -4
  197. package/dist/rolldown.mjs +2 -1
  198. package/dist/rollup.d.mts +6 -4
  199. package/dist/rollup.mjs +2 -1
  200. package/dist/rspack.d.mts +6 -4
  201. package/dist/rspack.mjs +2 -1
  202. package/dist/run-status.d.mts +29 -0
  203. package/dist/run-status.mjs +42 -0
  204. package/dist/schema/common.d.mts +22 -0
  205. package/dist/schema/common.mjs +54 -0
  206. package/dist/schema/error.d.mts +17 -0
  207. package/dist/schema/error.mjs +39 -0
  208. package/dist/schema/events.d.mts +446 -0
  209. package/dist/schema/events.mjs +235 -0
  210. package/dist/schema/pagination.d.mts +5 -0
  211. package/dist/schema/pagination.mjs +11 -0
  212. package/dist/schema/persisted-value.d.mts +8 -0
  213. package/dist/schema/persisted-value.mjs +94 -0
  214. package/dist/schema/run.d.mts +51 -0
  215. package/dist/schema/run.mjs +88 -0
  216. package/dist/schema/store.d.mts +94 -0
  217. package/dist/schema/store.mjs +116 -0
  218. package/dist/step-definition.d.mts +4 -9
  219. package/dist/step-definition.mjs +2 -2
  220. package/dist/store/capabilities.d.mts +8 -9
  221. package/dist/store/capabilities.mjs +7 -7
  222. package/dist/store/cleanup.d.mts +9 -14
  223. package/dist/store/cleanup.mjs +86 -85
  224. package/dist/store/create.d.mts +28 -29
  225. package/dist/store/create.mjs +10 -11
  226. package/dist/store/events.d.mts +48 -0
  227. package/dist/store/events.mjs +263 -0
  228. package/dist/store/indexes.d.mts +25 -0
  229. package/dist/store/indexes.mjs +282 -0
  230. package/dist/store/instrumentation.d.mts +2 -3
  231. package/dist/store/instrumentation.mjs +30 -30
  232. package/dist/store/lock.d.mts +4 -5
  233. package/dist/store/lock.mjs +5 -7
  234. package/dist/store/materialization.d.mts +10 -17
  235. package/dist/store/materialization.mjs +39 -33
  236. package/dist/store/mod.d.mts +3 -3
  237. package/dist/store/mod.mjs +2 -2
  238. package/dist/store/query.d.mts +13 -17
  239. package/dist/store/query.mjs +13 -13
  240. package/dist/store/run.d.mts +25 -34
  241. package/dist/store/run.mjs +67 -108
  242. package/dist/store/schedule.d.mts +6 -8
  243. package/dist/store/schedule.mjs +11 -11
  244. package/dist/store/step-attempt.d.mts +9 -12
  245. package/dist/store/step-attempt.mjs +9 -9
  246. package/dist/store/storage-value.d.mts +3 -3
  247. package/dist/store/storage-value.mjs +17 -1
  248. package/dist/store/validation.d.mts +17 -20
  249. package/dist/store/validation.mjs +30 -33
  250. package/dist/store-keys.d.mts +35 -47
  251. package/dist/store-keys.mjs +9 -17
  252. package/dist/telemetry.d.mts +16 -16
  253. package/dist/telemetry.mjs +3 -3
  254. package/dist/temporal.d.mts +11 -16
  255. package/dist/temporal.mjs +8 -9
  256. package/dist/timer.d.mts +12 -10
  257. package/dist/timer.mjs +11 -3
  258. package/dist/types/cleanup.d.mts +13 -50
  259. package/dist/types/cleanup.mjs +1 -22
  260. package/dist/types/client.d.mts +101 -162
  261. package/dist/types/{vite.d.mts → compiler.d.mts} +17 -24
  262. package/dist/types/compiler.mjs +1 -0
  263. package/dist/types/definition.d.mts +22 -34
  264. package/dist/types/engine-options.d.mts +10 -17
  265. package/dist/types/engine.d.mts +15 -274
  266. package/dist/types/error.d.mts +15 -217
  267. package/dist/types/error.mjs +1 -48
  268. package/dist/types/events.d.mts +59 -2730
  269. package/dist/types/events.mjs +1 -283
  270. package/dist/types/hook.d.mts +27 -85
  271. package/dist/types/hook.mjs +1 -66
  272. package/dist/types/ids.d.mts +9 -0
  273. package/dist/types/ids.mjs +1 -0
  274. package/dist/types/lock.d.mts +8 -26
  275. package/dist/types/lock.mjs +1 -18
  276. package/dist/types/message.d.mts +29 -43
  277. package/dist/types/observation.d.mts +43 -58
  278. package/dist/types/pagination.d.mts +6 -22
  279. package/dist/types/pagination.mjs +1 -13
  280. package/dist/types/result.d.mts +11 -43
  281. package/dist/types/retry.d.mts +7 -14
  282. package/dist/types/run-list.d.mts +9 -11
  283. package/dist/types/run-options.d.mts +25 -32
  284. package/dist/types/run.d.mts +35 -315
  285. package/dist/types/run.mjs +1 -207
  286. package/dist/types/runtime.d.mts +33 -145
  287. package/dist/types/runtime.mjs +1 -21
  288. package/dist/types/schedule.d.mts +13 -72
  289. package/dist/types/schedule.mjs +1 -48
  290. package/dist/types/step-attempts.d.mts +65 -261
  291. package/dist/types/step-attempts.mjs +1 -43
  292. package/dist/types/step.d.mts +66 -77
  293. package/dist/types/step.mjs +1 -5
  294. package/dist/types/store.d.mts +50 -182
  295. package/dist/types/stream.d.mts +19 -40
  296. package/dist/types/summary.d.mts +174 -278
  297. package/dist/types/telemetry.d.mts +23 -28
  298. package/dist/types/telemetry.mjs +1 -9
  299. package/dist/types/timeline.d.mts +46 -233
  300. package/dist/types/worker.d.mts +22 -29
  301. package/dist/values.d.mts +15 -0
  302. package/dist/values.mjs +57 -0
  303. package/dist/vite.d.mts +5 -6
  304. package/dist/vite.mjs +3 -4
  305. package/dist/webpack.d.mts +6 -4
  306. package/dist/webpack.mjs +2 -1
  307. package/dist/worker/error.d.mts +2 -9
  308. package/dist/worker/error.mjs +20 -32
  309. package/dist/worker/missing-implementation.d.mts +19 -0
  310. package/dist/worker/missing-implementation.mjs +62 -0
  311. package/dist/worker/worker.d.mts +18 -0
  312. package/dist/{worker.mjs → worker/worker.mjs} +64 -118
  313. package/package.json +28 -47
  314. package/dist/engine/execution-api.d.mts +0 -29
  315. package/dist/engine/execution-api.mjs +0 -33
  316. package/dist/engine/inspection-api.d.mts +0 -34
  317. package/dist/engine/inspection-api.mjs +0 -78
  318. package/dist/engine/mod.d.mts +0 -4
  319. package/dist/engine/mod.mjs +0 -2
  320. package/dist/engine/recovery.d.mts +0 -26
  321. package/dist/engine/recovery.mjs +0 -92
  322. package/dist/engine/retry-policy.d.mts +0 -4
  323. package/dist/engine/retry-policy.mjs +0 -4
  324. package/dist/engine/start-api.d.mts +0 -30
  325. package/dist/engine/start-api.mjs +0 -99
  326. package/dist/engine/summary/active-events.d.mts +0 -34
  327. package/dist/engine/summary/active-events.mjs +0 -69
  328. package/dist/engine/summary/child-workflow-runs.d.mts +0 -24
  329. package/dist/engine/summary/child-workflow-runs.mjs +0 -138
  330. package/dist/engine/summary/child-workflow-waits.d.mts +0 -21
  331. package/dist/engine/summary/child-workflow-waits.mjs +0 -67
  332. package/dist/engine/summary/recovery-child-workflow-waits.d.mts +0 -11
  333. package/dist/engine/summary/recovery-child-workflow-waits.mjs +0 -89
  334. package/dist/engine/summary/recovery-due-runs.d.mts +0 -16
  335. package/dist/engine/summary/recovery-due-runs.mjs +0 -52
  336. package/dist/engine/summary/recovery-failed-runs.d.mts +0 -14
  337. package/dist/engine/summary/recovery-failed-runs.mjs +0 -33
  338. package/dist/engine/summary/recovery-lease-runs.d.mts +0 -16
  339. package/dist/engine/summary/recovery-lease-runs.mjs +0 -69
  340. package/dist/engine/summary/recovery-locks.d.mts +0 -18
  341. package/dist/engine/summary/recovery-locks.mjs +0 -100
  342. package/dist/engine/summary/recovery-message-waits.d.mts +0 -11
  343. package/dist/engine/summary/recovery-message-waits.mjs +0 -74
  344. package/dist/engine/summary/recovery-retry-runs.d.mts +0 -17
  345. package/dist/engine/summary/recovery-retry-runs.mjs +0 -65
  346. package/dist/engine/summary/recovery-run-timestamps.d.mts +0 -13
  347. package/dist/engine/summary/recovery-run-timestamps.mjs +0 -18
  348. package/dist/engine/summary/recovery-runs.d.mts +0 -23
  349. package/dist/engine/summary/recovery-runs.mjs +0 -54
  350. package/dist/engine/summary/recovery-schedules.d.mts +0 -10
  351. package/dist/engine/summary/recovery-schedules.mjs +0 -46
  352. package/dist/engine/summary/recovery-sleep-waits.d.mts +0 -10
  353. package/dist/engine/summary/recovery-sleep-waits.mjs +0 -53
  354. package/dist/engine/summary/recovery-waits.d.mts +0 -21
  355. package/dist/engine/summary/recovery-waits.mjs +0 -29
  356. package/dist/engine/summary/run-availability.d.mts +0 -13
  357. package/dist/engine/summary/run-availability.mjs +0 -37
  358. package/dist/engine/summary/run-cleanup.d.mts +0 -14
  359. package/dist/engine/summary/run-cleanup.mjs +0 -44
  360. package/dist/engine/summary/run-failure.d.mts +0 -14
  361. package/dist/engine/summary/run-failure.mjs +0 -62
  362. package/dist/engine/summary/run-hooks.d.mts +0 -14
  363. package/dist/engine/summary/run-hooks.mjs +0 -63
  364. package/dist/engine/summary/run-lease.d.mts +0 -11
  365. package/dist/engine/summary/run-lease.mjs +0 -64
  366. package/dist/engine/summary/run-message-waits.d.mts +0 -15
  367. package/dist/engine/summary/run-message-waits.mjs +0 -62
  368. package/dist/engine/summary/run-metrics.d.mts +0 -31
  369. package/dist/engine/summary/run-metrics.mjs +0 -93
  370. package/dist/engine/summary/run-retry.d.mts +0 -9
  371. package/dist/engine/summary/run-retry.mjs +0 -69
  372. package/dist/engine/summary/run-sleeps.d.mts +0 -15
  373. package/dist/engine/summary/run-sleeps.mjs +0 -61
  374. package/dist/engine/summary/run-state.d.mts +0 -26
  375. package/dist/engine/summary/run-state.mjs +0 -48
  376. package/dist/engine/summary/run-status.d.mts +0 -16
  377. package/dist/engine/summary/run-status.mjs +0 -35
  378. package/dist/engine/summary/run-streams.d.mts +0 -14
  379. package/dist/engine/summary/run-streams.mjs +0 -46
  380. package/dist/engine/summary/run-transition.d.mts +0 -9
  381. package/dist/engine/summary/run-transition.mjs +0 -39
  382. package/dist/engine/summary/run-workflow.d.mts +0 -9
  383. package/dist/engine/summary/run-workflow.mjs +0 -47
  384. package/dist/engine/summary/step-attempt-active-child-workflows.d.mts +0 -13
  385. package/dist/engine/summary/step-attempt-active-child-workflows.mjs +0 -55
  386. package/dist/engine/summary/step-attempt-active-fields.d.mts +0 -23
  387. package/dist/engine/summary/step-attempt-active-fields.mjs +0 -14
  388. package/dist/engine/summary/step-attempt-active-message-waits.d.mts +0 -12
  389. package/dist/engine/summary/step-attempt-active-message-waits.mjs +0 -47
  390. package/dist/engine/summary/step-attempt-active-sleeps.d.mts +0 -19
  391. package/dist/engine/summary/step-attempt-active-sleeps.mjs +0 -44
  392. package/dist/engine/summary/step-attempt-buckets.d.mts +0 -22
  393. package/dist/engine/summary/step-attempt-buckets.mjs +0 -152
  394. package/dist/engine/summary/step-attempt-failure.d.mts +0 -12
  395. package/dist/engine/summary/step-attempt-failure.mjs +0 -61
  396. package/dist/engine/summary/step-attempt-lifecycle.d.mts +0 -13
  397. package/dist/engine/summary/step-attempt-lifecycle.mjs +0 -19
  398. package/dist/engine/summary.d.mts +0 -32
  399. package/dist/engine/summary.mjs +0 -37
  400. package/dist/errors/details.d.mts +0 -13
  401. package/dist/errors/details.mjs +0 -66
  402. package/dist/errors/record-view.d.mts +0 -11
  403. package/dist/errors/record-view.mjs +0 -24
  404. package/dist/errors/runtime.d.mts +0 -12
  405. package/dist/errors/runtime.mjs +0 -24
  406. package/dist/events/mod.d.mts +0 -3
  407. package/dist/events/mod.mjs +0 -2
  408. package/dist/history/attempt-key.d.mts +0 -6
  409. package/dist/history/attempt-key.mjs +0 -7
  410. package/dist/inspection/mod.d.mts +0 -5
  411. package/dist/inspection/mod.mjs +0 -3
  412. package/dist/otel.mjs +0 -590
  413. package/dist/runtime.d.mts +0 -35
  414. package/dist/runtime.mjs +0 -198
  415. package/dist/store/append-projection.d.mts +0 -15
  416. package/dist/store/append-projection.mjs +0 -26
  417. package/dist/store/compaction.d.mts +0 -5
  418. package/dist/store/compaction.mjs +0 -8
  419. package/dist/store/event-append-project.d.mts +0 -15
  420. package/dist/store/event-append-project.mjs +0 -77
  421. package/dist/store/event-append.d.mts +0 -37
  422. package/dist/store/event-append.mjs +0 -80
  423. package/dist/store/event-history.d.mts +0 -22
  424. package/dist/store/event-history.mjs +0 -75
  425. package/dist/store/event.d.mts +0 -10
  426. package/dist/store/event.mjs +0 -28
  427. package/dist/store/idempotency.d.mts +0 -10
  428. package/dist/store/idempotency.mjs +0 -167
  429. package/dist/store/message-index.d.mts +0 -21
  430. package/dist/store/message-index.mjs +0 -122
  431. package/dist/store/revision.d.mts +0 -4
  432. package/dist/store/revision.mjs +0 -7
  433. package/dist/store/schema.d.mts +0 -14
  434. package/dist/store/schema.mjs +0 -17
  435. package/dist/types/common.d.mts +0 -20
  436. package/dist/types/common.mjs +0 -16
  437. package/dist/types/error-code.d.mts +0 -256
  438. package/dist/types/message-id.d.mts +0 -7
  439. package/dist/types/message-id.mjs +0 -5
  440. package/dist/types/run-id.d.mts +0 -7
  441. package/dist/types/run-id.mjs +0 -5
  442. package/dist/types/step-id.d.mts +0 -7
  443. package/dist/types/step-id.mjs +0 -5
  444. package/dist/types/stream-id.d.mts +0 -7
  445. package/dist/types/stream-id.mjs +0 -5
  446. package/dist/types/worker-id.d.mts +0 -7
  447. package/dist/types/worker-id.mjs +0 -5
  448. package/dist/utility.d.mts +0 -49
  449. package/dist/utility.mjs +0 -122
  450. package/dist/vite/ast.d.mts +0 -23
  451. package/dist/vite/generated-name.d.mts +0 -7
  452. package/dist/vite/generated-name.mjs +0 -9
  453. package/dist/vite/manifest.d.mts +0 -7
  454. package/dist/vite/plugin.d.mts +0 -7
  455. package/dist/vite/safety.d.mts +0 -12
  456. package/dist/vite/source.d.mts +0 -7
  457. package/dist/vite/transform.d.mts +0 -7
  458. package/dist/webhook.d.mts +0 -16
  459. package/dist/webhook.mjs +0 -17
  460. package/dist/worker.d.mts +0 -19
  461. /package/dist/{types/vite.mjs → engine/context.mjs} +0 -0
@@ -1,13 +1,17 @@
1
+ import { applyAttributePatch } from "../attributes.mjs";
2
+ import { WorkflowErrorCode } from "../errors/codes.mjs";
1
3
  import { WorkflowStateError } from "../errors/base.mjs";
2
4
  import { WorkflowRunCanceledError, WorkflowRunCancellationError, WorkflowRunDeadlineExceededError, WorkflowRunMismatchError } from "../errors/run.mjs";
3
- import { getRequiredRun, isPositiveSafeInteger } from "../utility.mjs";
4
- import { applyWorkflowAttributePatch } from "../attributes.mjs";
5
- import "./retry-policy.mjs";
5
+ import { History } from "../history/replay.mjs";
6
+ import { isPositiveSafeInteger } from "../values.mjs";
7
+ import { CLEARED_LEASE, CLEARED_RETRY, UNFINISHED } from "../run-status.mjs";
8
+ import { getRequiredRun } from "../store/query.mjs";
6
9
  import { serializeError } from "./serialization.mjs";
7
- import { WorkflowHistory } from "../history/mod.mjs";
8
- import { enforceWorkflowEventHistoryNextLimit } from "./retry.mjs";
10
+ import { enforceEventHistoryNextLimit } from "./retry.mjs";
11
+ import { StaleExecutionError } from "./signals.mjs";
9
12
  import { readRunResult } from "./run-utils.mjs";
10
13
  //#region src/engine/state.ts
14
+ const MAX_RUN_UPDATE_ATTEMPTS = 16;
11
15
  function requireDefinitionMatchesRun(definition, run) {
12
16
  if (definition.name !== run.workflowName) WorkflowRunMismatchError.mismatch({
13
17
  runId: run.id,
@@ -24,23 +28,27 @@ async function appendEventIfCurrentExecution(store, history, event, executionOwn
24
28
  let appendedEvents;
25
29
  await history.append(async () => {
26
30
  beforeAppend?.();
27
- enforceWorkflowEventHistoryNextLimit(history.events, limits);
31
+ enforceEventHistoryNextLimit(history.events, limits);
28
32
  for (let attempt = 0; attempt < 16; attempt++) {
29
33
  const current = await store.getRun(executionOwner.id);
30
- if (current === void 0 || !isCurrentExecutionOwner(current, executionOwner)) WorkflowStaleExecutionError.stale(executionOwner.id);
34
+ if (current === void 0 || !isCurrentExecutionOwner(current, executionOwner)) StaleExecutionError.stale(executionOwner.id);
31
35
  const events = await store.appendEventIfRunCurrent(current, event);
32
36
  if (events !== void 0) {
33
37
  appendedEvents = events;
34
38
  return events;
35
39
  }
36
40
  }
37
- WorkflowStaleExecutionError.stale(executionOwner.id);
41
+ StaleExecutionError.stale(executionOwner.id);
38
42
  });
39
43
  if (appendedEvents !== void 0) afterAppend?.(event, appendedEvents);
40
44
  }
41
- async function requireCurrentExecutionOwner(store, runId, executionOwner) {
42
- const current = await store.getRun(runId);
43
- if (current === void 0 || !isCurrentExecutionOwner(current, executionOwner)) WorkflowStaleExecutionError.stale(runId);
45
+ async function requireCurrentExecutionOwner(store, executionOwner) {
46
+ if (await currentExecution(store, executionOwner) === void 0) StaleExecutionError.stale(executionOwner.id);
47
+ }
48
+ /** The stored run, while `executionOwner` still holds its lease; otherwise `undefined`. */
49
+ async function currentExecution(store, executionOwner) {
50
+ const current = await store.getRun(executionOwner.id);
51
+ return current !== void 0 && isCurrentExecutionOwner(current, executionOwner) ? current : void 0;
44
52
  }
45
53
  async function patchRun(store, current, patch) {
46
54
  const next = {
@@ -56,266 +64,155 @@ async function patchRunIfCurrent(store, current, patch) {
56
64
  });
57
65
  }
58
66
  async function updateRunMetadataIfCurrent(store, runId, metadata, timestamp) {
59
- for (let attempt = 0; attempt < 16; attempt++) {
60
- const updated = await patchRunIfCurrent(store, await getRequiredRun(store, runId), {
61
- metadata,
62
- updatedAt: timestamp
63
- });
64
- if (updated !== void 0) return updated;
65
- }
66
- WorkflowStateError.failedRunMetadataUpdate(runId);
67
+ return await patchRunWithRetry(store, runId, () => ({
68
+ metadata,
69
+ updatedAt: timestamp
70
+ }), `Failed to update workflow run metadata for run ${runId}`, WorkflowErrorCode.STATE_RUN_METADATA_UPDATE_FAILED);
67
71
  }
68
72
  async function setRunAttributesIfCurrent(store, runId, attributes, timestamp) {
73
+ return await patchRunWithRetry(store, runId, (current) => attributesPatch(current, attributes, timestamp), `Failed to update workflow run attributes for run ${runId}`, WorkflowErrorCode.STATE_RUN_ATTRIBUTES_UPDATE_FAILED);
74
+ }
75
+ /** Patches a run, retrying when another writer updates the run first. */
76
+ async function patchRunWithRetry(store, runId, patch, failureMessage, failureCode) {
69
77
  for (let attempt = 0; attempt < 16; attempt++) {
70
78
  const current = await getRequiredRun(store, runId);
71
- const updated = await patchRunIfCurrent(store, current, {
72
- attributes: applyWorkflowAttributePatch(current.attributes, attributes),
73
- updatedAt: timestamp
74
- });
79
+ const updated = await patchRunIfCurrent(store, current, patch(current));
75
80
  if (updated !== void 0) return updated;
76
81
  }
77
- WorkflowStateError.failedRunAttributesUpdate(runId);
82
+ throw new WorkflowStateError(failureMessage, {
83
+ code: failureCode,
84
+ details: { runId }
85
+ });
86
+ }
87
+ function attributesPatch(current, attributes, timestamp) {
88
+ return {
89
+ attributes: applyAttributePatch(current.attributes, attributes),
90
+ updatedAt: timestamp
91
+ };
78
92
  }
79
93
  async function patchCurrentExecutionRun(store, executionOwner, patch) {
80
- const current = await store.getRun(executionOwner.id);
81
- if (current === void 0 || !isCurrentExecutionOwner(current, executionOwner)) return;
94
+ const current = await currentExecution(store, executionOwner);
95
+ if (current === void 0) return;
82
96
  return await patchRunIfCurrent(store, current, patch);
83
97
  }
84
98
  async function patchCurrentExecutionRunAttributes(store, executionOwner, attributes, timestamp) {
85
- const current = await store.getRun(executionOwner.id);
86
- if (current === void 0 || !isCurrentExecutionOwner(current, executionOwner)) return;
87
- return await patchRunIfCurrent(store, current, {
88
- attributes: applyWorkflowAttributePatch(current.attributes, attributes),
89
- updatedAt: timestamp
90
- });
99
+ const current = await currentExecution(store, executionOwner);
100
+ if (current === void 0) return;
101
+ return await patchRunIfCurrent(store, current, attributesPatch(current, attributes, timestamp));
91
102
  }
92
- function transitionRunToMissingImplementationWait(run, error, timestamp, availableAt, retryAttempt) {
103
+ /** The run with the transition stamped on it; every transition starts here. */
104
+ function moved(run, timestamp, reason) {
93
105
  return {
94
106
  ...run,
95
- status: "waiting",
96
- error,
97
107
  updatedAt: timestamp,
98
108
  lastTransitionAt: timestamp,
99
- lastTransitionReason: "missing_implementation",
100
- availableAt,
101
- retryAt: availableAt,
102
- retryReason: "missing_implementation",
103
- retryAttempt,
104
- retryStepId: void 0,
105
- retryStepName: void 0,
106
- workerId: void 0,
107
- leaseExpiresAt: void 0,
108
- deadlineAt: run.deadlineAt,
109
- output: void 0,
110
- finishedAt: void 0
109
+ lastTransitionReason: reason
111
110
  };
112
111
  }
113
- function transitionRunToFailed(run, error, timestamp, lastTransitionReason, deadlineAt) {
112
+ /** A terminal run: no lease, no retry, nothing left to schedule. */
113
+ function finished(run, timestamp, status, reason, result) {
114
114
  return {
115
- ...run,
116
- status: "failed",
117
- error,
118
- updatedAt: timestamp,
119
- lastTransitionAt: timestamp,
120
- lastTransitionReason,
115
+ ...moved(run, timestamp, reason),
116
+ status,
117
+ output: result.output,
118
+ error: result.error,
121
119
  finishedAt: timestamp,
122
- output: void 0,
123
120
  availableAt: void 0,
124
- retryAt: void 0,
125
- retryReason: void 0,
126
- retryAttempt: void 0,
127
- retryStepId: void 0,
128
- retryStepName: void 0,
129
- workerId: void 0,
130
- leaseExpiresAt: void 0,
131
- deadlineAt: deadlineAt ?? run.deadlineAt
121
+ ...CLEARED_LEASE,
122
+ ...CLEARED_RETRY
132
123
  };
133
124
  }
134
125
  function transitionRunToRunning(run, timestamp, attempts) {
135
126
  return {
136
- ...run,
127
+ ...moved(run, timestamp, "started"),
128
+ ...UNFINISHED,
129
+ ...CLEARED_RETRY,
137
130
  status: "running",
138
131
  attempts,
139
- updatedAt: timestamp,
140
- lastTransitionAt: timestamp,
141
- lastTransitionReason: "started",
142
132
  startedAt: run.startedAt ?? timestamp,
143
- availableAt: void 0,
144
- error: void 0,
145
- output: void 0,
146
- finishedAt: void 0,
147
- retryAt: void 0,
148
- retryReason: void 0,
149
- retryAttempt: void 0,
150
- retryStepId: void 0,
151
- retryStepName: void 0
133
+ availableAt: void 0
152
134
  };
153
135
  }
154
136
  function transitionRunToCompleted(run, output, timestamp) {
137
+ return finished(run, timestamp, "completed", "completed", { output });
138
+ }
139
+ function transitionRunToFailed(run, error, timestamp, reason, deadlineAt) {
155
140
  return {
156
- ...run,
157
- status: "completed",
158
- ...output === void 0 ? { output: void 0 } : { output },
159
- error: void 0,
160
- updatedAt: timestamp,
161
- lastTransitionAt: timestamp,
162
- lastTransitionReason: "completed",
163
- finishedAt: timestamp,
164
- availableAt: void 0,
165
- workerId: void 0,
166
- leaseExpiresAt: void 0,
167
- retryAt: void 0,
168
- retryReason: void 0,
169
- retryAttempt: void 0,
170
- retryStepId: void 0,
171
- retryStepName: void 0
141
+ ...finished(run, timestamp, "failed", reason, { error }),
142
+ deadlineAt: deadlineAt ?? run.deadlineAt
172
143
  };
173
144
  }
174
- function transitionRunToExecutionWait(run, timestamp, availableAt, options = {}) {
145
+ function transitionRunToCanceled(run, error, timestamp) {
146
+ return finished(run, timestamp, "canceled", "canceled", { error });
147
+ }
148
+ function transitionRunToWaiting(run, timestamp, availableAt) {
175
149
  return {
176
- ...run,
150
+ ...moved(run, timestamp, "waiting"),
151
+ ...UNFINISHED,
152
+ ...CLEARED_LEASE,
177
153
  status: "waiting",
178
- availableAt,
179
- updatedAt: timestamp,
180
- lastTransitionAt: timestamp,
154
+ availableAt
155
+ };
156
+ }
157
+ /** Waits after an execution suspended, optionally to retry a failed step or workflow. */
158
+ function transitionRunToExecutionWait(run, timestamp, availableAt, options = {}) {
159
+ return {
160
+ ...transitionRunToWaiting(run, timestamp, availableAt),
181
161
  lastTransitionReason: options.retryReason === void 0 ? "waiting" : "retry",
182
- workerId: void 0,
183
- leaseExpiresAt: void 0,
184
162
  retryAt: options.retryAt,
185
163
  retryReason: options.retryReason,
186
164
  retryAttempt: options.retryAttempt,
187
165
  retryStepId: options.retryStepId,
188
166
  retryStepName: options.retryStepName,
189
- error: options.error,
190
- output: void 0,
191
- finishedAt: void 0
167
+ error: options.error
192
168
  };
193
169
  }
194
- function transitionRunToWaiting(run, timestamp, availableAt) {
170
+ function transitionRunToMissingImplementationWait(run, error, timestamp, availableAt, retryAttempt) {
195
171
  return {
196
- ...run,
197
- status: "waiting",
198
- availableAt,
199
- updatedAt: timestamp,
200
- lastTransitionAt: timestamp,
201
- lastTransitionReason: "waiting",
202
- deadlineAt: run.deadlineAt,
203
- workerId: void 0,
204
- leaseExpiresAt: void 0,
205
- error: void 0,
206
- output: void 0,
207
- finishedAt: void 0
172
+ ...transitionRunToWaiting(run, timestamp, availableAt),
173
+ ...CLEARED_RETRY,
174
+ lastTransitionReason: "missing_implementation",
175
+ retryAt: availableAt,
176
+ retryReason: "missing_implementation",
177
+ retryAttempt,
178
+ error
208
179
  };
209
180
  }
210
- function transitionRunToRescheduled(run, timestamp, availableAt) {
181
+ function transitionRunAfterStaleLeaseRelease(run, timestamp, availableAt) {
211
182
  return {
212
- ...run,
213
- availableAt,
214
- updatedAt: timestamp,
215
- lastTransitionAt: timestamp,
216
- lastTransitionReason: "rescheduled",
217
- deadlineAt: run.deadlineAt,
218
- leaseExpiresAt: void 0,
219
- workerId: void 0,
220
- retryAt: run.retryReason === void 0 ? void 0 : availableAt,
221
- retryReason: run.retryReason,
222
- retryAttempt: run.retryAttempt,
223
- retryStepId: run.retryStepId,
224
- retryStepName: run.retryStepName,
225
- error: void 0,
226
- output: void 0,
227
- finishedAt: void 0
183
+ ...transitionRunToWaiting(run, timestamp, availableAt),
184
+ ...CLEARED_RETRY,
185
+ lastTransitionReason: "lease_released"
228
186
  };
229
187
  }
230
- function transitionRunAfterStaleLeaseRelease(run, timestamp, availableAt) {
188
+ /** Moves the run's next attempt to `availableAt`, keeping its status and retry details. */
189
+ function transitionRunToRescheduled(run, timestamp, availableAt) {
231
190
  return {
232
- ...transitionRunToWaiting(run, timestamp, availableAt),
233
- lastTransitionReason: "lease_released",
234
- retryAt: void 0,
235
- retryReason: void 0,
236
- retryAttempt: void 0,
237
- retryStepId: void 0,
238
- retryStepName: void 0,
239
- deadlineAt: run.deadlineAt,
240
- updatedAt: timestamp,
241
- lastTransitionAt: timestamp
191
+ ...moved(run, timestamp, "rescheduled"),
192
+ ...UNFINISHED,
193
+ ...CLEARED_LEASE,
194
+ availableAt,
195
+ retryAt: run.retryReason === void 0 ? void 0 : availableAt
242
196
  };
243
197
  }
244
198
  function transitionRunToManualRetry(run, timestamp, availableAt, retryAttempt) {
245
199
  return {
246
- ...run,
200
+ ...moved(run, timestamp, "manual_retry"),
201
+ ...UNFINISHED,
202
+ ...CLEARED_LEASE,
247
203
  status: "pending",
248
204
  availableAt,
249
- updatedAt: timestamp,
250
- lastTransitionAt: timestamp,
251
- lastTransitionReason: "manual_retry",
252
- deadlineAt: run.deadlineAt,
253
- workerId: void 0,
254
- leaseExpiresAt: void 0,
255
205
  retryAt: availableAt,
256
206
  retryReason: run.retryReason ?? "workflow",
257
- retryAttempt,
258
- retryStepId: run.retryStepId,
259
- retryStepName: run.retryStepName,
260
- error: void 0,
261
- output: void 0,
262
- finishedAt: void 0
263
- };
264
- }
265
- function transitionRunToPermanentFailure(run, error, timestamp) {
266
- return {
267
- ...run,
268
- status: "failed",
269
- error,
270
- output: void 0,
271
- availableAt: void 0,
272
- updatedAt: timestamp,
273
- lastTransitionAt: timestamp,
274
- lastTransitionReason: "permanent_failure",
275
- deadlineAt: run.deadlineAt,
276
- workerId: void 0,
277
- leaseExpiresAt: void 0,
278
- retryAt: void 0,
279
- retryReason: void 0,
280
- retryAttempt: void 0,
281
- retryStepId: void 0,
282
- retryStepName: void 0,
283
- finishedAt: timestamp
284
- };
285
- }
286
- function transitionRunToCanceled(run, error, timestamp) {
287
- return {
288
- ...run,
289
- status: "canceled",
290
- error,
291
- updatedAt: timestamp,
292
- lastTransitionAt: timestamp,
293
- lastTransitionReason: "canceled",
294
- finishedAt: timestamp,
295
- availableAt: void 0,
296
- output: void 0,
297
- workerId: void 0,
298
- leaseExpiresAt: void 0,
299
- retryAt: void 0,
300
- retryReason: void 0,
301
- retryAttempt: void 0,
302
- retryStepId: void 0,
303
- retryStepName: void 0
207
+ retryAttempt
304
208
  };
305
209
  }
306
210
  function transitionRunAfterParentWake(run, timestamp) {
307
211
  return {
308
- ...run,
212
+ ...moved(run, timestamp, "waiting"),
213
+ ...UNFINISHED,
309
214
  availableAt: timestamp,
310
- updatedAt: timestamp,
311
- lastTransitionAt: timestamp,
312
- lastTransitionReason: "waiting",
313
- deadlineAt: run.deadlineAt,
314
- retryAt: run.retryAt,
315
- startedAt: run.startedAt ?? timestamp,
316
- error: void 0,
317
- output: void 0,
318
- finishedAt: void 0
215
+ startedAt: run.startedAt ?? timestamp
319
216
  };
320
217
  }
321
218
  function isCurrentExecutionOwner(current, execution) {
@@ -325,7 +222,7 @@ async function cancelRunWithChildren(store, runId, canceledAt) {
325
222
  const run = await getRequiredRun(store, runId);
326
223
  if (run.status === "completed" || run.status === "failed") WorkflowRunCancellationError.cannotCancel(runId, run.status);
327
224
  if (run.status === "canceled") return run;
328
- const canceledRun = await patchRunIfCurrent(store, run, transitionRunToCanceled(run, serializeError(WorkflowRunCanceledError.create(runId)), canceledAt));
225
+ const canceledRun = await patchRunIfCurrent(store, run, transitionRunToCanceled(run, serializeError(new WorkflowRunCanceledError(runId)), canceledAt));
329
226
  if (canceledRun === void 0) {
330
227
  const latest = await getRequiredRun(store, runId);
331
228
  if (latest.status === "completed" || latest.status === "failed") WorkflowRunCancellationError.cannotCancel(runId, latest.status);
@@ -334,7 +231,7 @@ async function cancelRunWithChildren(store, runId, canceledAt) {
334
231
  }
335
232
  await releaseLocksForRun(store, run.id, canceledAt);
336
233
  await cancelActiveChildRuns(store, run.id, canceledAt);
337
- await wakeParentRunForTerminalChild(store, canceledRun, canceledAt);
234
+ await wakeParentRun(store, canceledRun, canceledAt);
338
235
  return canceledRun;
339
236
  }
340
237
  async function cancelActiveChildRuns(store, parentRunId, canceledAt) {
@@ -352,23 +249,14 @@ async function cancelActiveChildRuns(store, parentRunId, canceledAt) {
352
249
  await cancelRunWithChildren(store, child.id, canceledAt);
353
250
  }
354
251
  }
355
- async function wakeParentRunForTerminalChild(store, childRun, timestamp) {
356
- if (childRun.parentRunId === void 0) return;
357
- const parentRun = await store.getRun(childRun.parentRunId);
358
- if (parentRun === void 0 || parentRun.status !== "waiting") return;
359
- if (!await parentHasActiveChildWorkflowAttemptForRun(store, parentRun.id, childRun)) return;
360
- const wakeAt = timestamp;
361
- if (parentRun.availableAt !== void 0 && Temporal.Instant.compare(parentRun.availableAt, wakeAt) <= 0) return;
362
- await patchRun(store, parentRun, transitionRunAfterParentWake(parentRun, timestamp));
363
- }
364
- async function wakeParentRunForWaitingChild(store, childRun, availableAt) {
252
+ /** Makes a waiting parent run available by `at` when one of its child workflow steps changes. */
253
+ async function wakeParentRun(store, childRun, at) {
365
254
  if (childRun.parentRunId === void 0) return;
366
255
  const parentRun = await store.getRun(childRun.parentRunId);
367
256
  if (parentRun === void 0 || parentRun.status !== "waiting") return;
368
257
  if (!await parentHasActiveChildWorkflowAttemptForRun(store, parentRun.id, childRun)) return;
369
- const wakeAt = availableAt;
370
- if (parentRun.availableAt !== void 0 && Temporal.Instant.compare(parentRun.availableAt, wakeAt) <= 0) return;
371
- await patchRun(store, parentRun, transitionRunAfterParentWake(parentRun, availableAt));
258
+ if (parentRun.availableAt !== void 0 && Temporal.Instant.compare(parentRun.availableAt, at) <= 0) return;
259
+ await patchRun(store, parentRun, transitionRunAfterParentWake(parentRun, at));
372
260
  }
373
261
  async function parentHasActiveChildWorkflowAttemptForRun(store, parentRunId, childRun) {
374
262
  if (childRun.parentRunId !== parentRunId) return false;
@@ -383,26 +271,26 @@ async function parentHasActiveChildWorkflowAttemptForRun(store, parentRunId, chi
383
271
  async function parentHasActiveChildWorkflowEventForAttempt(store, parentRunId, attempt) {
384
272
  if (attempt.childRunId === void 0) return false;
385
273
  const events = await store.getEvents(parentRunId);
386
- const lifecycle = new WorkflowHistory(events).childWorkflowLifecycleForAttempt(attempt);
274
+ const lifecycle = new History(events).childWorkflowLifecycleForAttempt(attempt);
387
275
  if (lifecycle.started === void 0) return false;
388
276
  if (!isPositiveSafeInteger(lifecycle.started.attempt)) return false;
389
277
  return !lifecycle.hasTerminalAfterStarted;
390
278
  }
391
- async function failRunForDeadline(store, run, deadlineAt, failedAt, executionOwner) {
392
- const serialized = serializeError(WorkflowRunDeadlineExceededError.create(run.id, deadlineAt));
279
+ async function failRunForDeadline(store, definition, run, deadlineAt, failedAt, executionOwner) {
280
+ const serialized = serializeError(new WorkflowRunDeadlineExceededError(run.id, deadlineAt));
393
281
  if (executionOwner !== void 0) {
394
282
  const current = await store.getRun(run.id);
395
- if (current === void 0 || !isCurrentExecutionOwner(current, executionOwner)) return await readRunResult(store, run.id, failedAt);
283
+ if (current === void 0 || !isCurrentExecutionOwner(current, executionOwner)) return await readRunResult(store, definition, run.id, failedAt);
396
284
  }
397
285
  await cancelActiveChildRuns(store, run.id, failedAt);
398
286
  const failedRun = executionOwner === void 0 ? await patchRun(store, run, transitionRunToFailed(run, serialized, failedAt, "deadline")) : await patchCurrentExecutionRun(store, executionOwner, transitionRunToFailed(executionOwner, serialized, failedAt, "deadline"));
399
- if (failedRun === void 0) return await readRunResult(store, run.id, failedAt);
287
+ if (failedRun === void 0) return await readRunResult(store, definition, run.id, failedAt);
400
288
  if (await store.appendEventIfRunCurrent(failedRun, {
401
289
  kind: "workflow_failed",
402
290
  timestamp: failedAt
403
- }) === void 0) return await readRunResult(store, run.id, failedAt);
291
+ }) === void 0) return await readRunResult(store, definition, run.id, failedAt);
404
292
  await releaseLocksForRun(store, run.id, failedAt);
405
- await wakeParentRunForTerminalChild(store, failedRun, failedAt);
293
+ await wakeParentRun(store, failedRun, failedAt);
406
294
  return {
407
295
  kind: "failed",
408
296
  run: failedRun,
@@ -410,62 +298,13 @@ async function failRunForDeadline(store, run, deadlineAt, failedAt, executionOwn
410
298
  };
411
299
  }
412
300
  async function releaseLocksForRun(store, runId, releasedAt) {
413
- const timestamp = releasedAt;
414
301
  const locks = await store.listLocks();
415
302
  await Promise.all(locks.filter((lock) => lock.releasedAt === void 0 && lock.holderRunId === runId).map(async (lock) => {
416
303
  await store.updateLockIfCurrent(lock, {
417
304
  ...lock,
418
- releasedAt: timestamp
305
+ releasedAt
419
306
  });
420
307
  }));
421
308
  }
422
- var WorkflowSuspended = class WorkflowSuspended extends Error {
423
- availableAt;
424
- retryAt;
425
- retryReason;
426
- retryAttempt;
427
- retryStep;
428
- constructor(availableAt, context) {
429
- super(`Workflow suspended until ${availableAt.toString()}`);
430
- this.name = "WorkflowSuspended";
431
- this.availableAt = availableAt;
432
- if (Error.captureStackTrace !== void 0) Error.captureStackTrace(this, context ?? this.constructor);
433
- }
434
- static until(availableAt) {
435
- throw new WorkflowSuspended(availableAt, WorkflowSuspended.until);
436
- }
437
- static forStepRetry(retryAt, retryStep, retryAttempt) {
438
- const suspended = new WorkflowSuspended(retryAt, WorkflowSuspended.forStepRetry);
439
- Object.defineProperties(suspended, {
440
- retryAt: {
441
- value: retryAt,
442
- enumerable: true
443
- },
444
- retryReason: {
445
- value: "step",
446
- enumerable: true
447
- },
448
- retryAttempt: {
449
- value: retryAttempt,
450
- enumerable: true
451
- },
452
- retryStep: {
453
- value: retryStep,
454
- enumerable: true
455
- }
456
- });
457
- throw suspended;
458
- }
459
- };
460
- var WorkflowStaleExecutionError = class WorkflowStaleExecutionError extends Error {
461
- constructor(runId, context) {
462
- super(`Workflow execution no longer owns run: ${runId}`);
463
- this.name = "WorkflowStaleExecutionError";
464
- if (Error.captureStackTrace !== void 0) Error.captureStackTrace(this, context ?? this.constructor);
465
- }
466
- static stale(runId) {
467
- throw new WorkflowStaleExecutionError(runId, WorkflowStaleExecutionError.stale);
468
- }
469
- };
470
309
  //#endregion
471
- export { WorkflowStaleExecutionError, WorkflowSuspended, appendEventIfCurrentExecution, cancelActiveChildRuns, cancelRunWithChildren, failRunForDeadline, getRequiredRun, isCurrentExecutionOwner, parentHasActiveChildWorkflowAttemptForRun, parentHasActiveChildWorkflowEventForAttempt, patchCurrentExecutionRun, patchCurrentExecutionRunAttributes, patchRun, patchRunIfCurrent, releaseLocksForRun, requireCurrentExecutionOwner, requireDefinitionMatchesRun, setRunAttributesIfCurrent, transitionRunAfterParentWake, transitionRunAfterStaleLeaseRelease, transitionRunToCanceled, transitionRunToCompleted, transitionRunToExecutionWait, transitionRunToFailed, transitionRunToManualRetry, transitionRunToMissingImplementationWait, transitionRunToPermanentFailure, transitionRunToRescheduled, transitionRunToRunning, transitionRunToWaiting, updateRunMetadataIfCurrent, wakeParentRunForTerminalChild, wakeParentRunForWaitingChild };
310
+ export { MAX_RUN_UPDATE_ATTEMPTS, appendEventIfCurrentExecution, cancelRunWithChildren, failRunForDeadline, isCurrentExecutionOwner, patchCurrentExecutionRun, patchCurrentExecutionRunAttributes, patchRun, patchRunIfCurrent, releaseLocksForRun, requireCurrentExecutionOwner, requireDefinitionMatchesRun, setRunAttributesIfCurrent, transitionRunAfterStaleLeaseRelease, transitionRunToCanceled, transitionRunToCompleted, transitionRunToExecutionWait, transitionRunToFailed, transitionRunToManualRetry, transitionRunToMissingImplementationWait, transitionRunToRescheduled, transitionRunToRunning, transitionRunToWaiting, updateRunMetadataIfCurrent, wakeParentRun };
@@ -1,9 +1,6 @@
1
- import { WorkflowDeterministicApi, WorkflowStepApi } from "../types/step.mjs";
2
- import { WorkflowExecutionEnvironment } from "../types/engine.mjs";
3
- import { WorkflowChildWorkflowEngine } from "./child-workflow.mjs";
4
- import { WorkflowStepLockEngine } from "./lock.mjs";
1
+ import { DeterministicApi, StepApi } from "../types/step.mjs";
2
+ import { WorkflowEngine } from "./create.mjs";
3
+ import { ExecutionEnvironment } from "../types/engine.mjs";
5
4
  //#region src/engine/step-api.d.ts
6
- type WorkflowStepRuntime = WorkflowChildWorkflowEngine & WorkflowStepLockEngine;
7
- declare function createStepApi(environment: WorkflowExecutionEnvironment, engine: WorkflowStepRuntime, executionSignal: AbortSignal, deterministic: WorkflowDeterministicApi): WorkflowStepApi;
8
- //#endregion
9
- export { createStepApi };
5
+ export declare function createStepApi(environment: ExecutionEnvironment, engine: WorkflowEngine, executionSignal: AbortSignal, deterministic: DeterministicApi): StepApi;
6
+ //#endregion
@@ -1,24 +1,24 @@
1
- import { createWorkflowStepWorkflowApi } from "./child-workflow.mjs";
2
- import { createWorkflowStepMessageApi } from "./message.mjs";
3
- import { createWorkflowStepHookApi } from "./hooks.mjs";
4
- import { createWorkflowStepLockApi } from "./lock.mjs";
5
- import { createWorkflowRunDataApi } from "./run-data.mjs";
6
- import { createWorkflowStepStreamApi } from "./stream.mjs";
7
- import { createWorkflowStepTaskApi } from "./task.mjs";
1
+ import { createStepStreamApi } from "./stream.mjs";
2
+ import { createStepMessageApi } from "./message.mjs";
3
+ import { createStepHookApi } from "./hooks.mjs";
4
+ import { createStepLockApi } from "./lock.mjs";
5
+ import { createStepWorkflowApi } from "./child-workflow.mjs";
6
+ import { createRunDataApi } from "./run-data.mjs";
7
+ import { createStepTaskApi } from "./task.mjs";
8
8
  //#region src/engine/step-api.ts
9
9
  function createStepApi(environment, engine, executionSignal, deterministic) {
10
- const task = createWorkflowStepTaskApi(environment, executionSignal);
11
- const runTask = async (config, callback) => await task.run(config, callback);
10
+ const task = createStepTaskApi(environment, executionSignal);
11
+ const runTask = (config, callback) => task.run(config, callback);
12
12
  return {
13
13
  log: environment.logger,
14
- task,
15
- workflow: createWorkflowStepWorkflowApi(environment, engine),
16
- message: createWorkflowStepMessageApi(environment),
17
- lock: createWorkflowStepLockApi(environment, engine, runTask),
18
- runData: createWorkflowRunDataApi(environment),
14
+ ...task,
15
+ workflow: createStepWorkflowApi(environment, engine),
16
+ message: createStepMessageApi(environment),
17
+ lock: createStepLockApi(environment, engine, runTask),
18
+ runData: createRunDataApi(environment),
19
19
  deterministic,
20
- stream: createWorkflowStepStreamApi(environment),
21
- hook: createWorkflowStepHookApi(environment)
20
+ stream: createStepStreamApi(environment),
21
+ hook: createStepHookApi(environment)
22
22
  };
23
23
  }
24
24
  //#endregion
@@ -0,0 +1,12 @@
1
+ import { RunId, StreamIdOrName } from "../types/ids.mjs";
2
+ import { FollowStreamOptions, ReadStreamOptions, StreamChunk, StreamInfo, StreamState, StreamUpdate, WaitStreamOptions } from "../types/stream.mjs";
3
+ import { EngineContext } from "./context.mjs";
4
+ import "temporal-polyfill/global";
5
+ //#region src/engine/stream-reader.d.ts
6
+ export declare function getStreamInfo(context: EngineContext, runId: RunId, streamIdOrName: StreamIdOrName): Promise<StreamInfo>;
7
+ export declare function readStream(context: EngineContext, runId: RunId, streamIdOrName: StreamIdOrName, readOptions?: ReadStreamOptions): Promise<StreamState>;
8
+ export declare function followStream(context: EngineContext, runId: RunId, streamIdOrName: StreamIdOrName, followOptions?: FollowStreamOptions): AsyncIterable<StreamUpdate>;
9
+ export declare function waitForStream(context: EngineContext, runId: RunId, streamIdOrName: StreamIdOrName, waitOptions?: WaitStreamOptions): Promise<StreamInfo | undefined>;
10
+ export declare function waitForStreamChunk(context: EngineContext, runId: RunId, streamIdOrName: StreamIdOrName, afterIndex: number, waitOptions?: WaitStreamOptions): Promise<StreamChunk | undefined>;
11
+ export declare function waitForStreamTerminal(context: EngineContext, runId: RunId, streamIdOrName: StreamIdOrName, waitOptions?: WaitStreamOptions): Promise<StreamInfo | undefined>;
12
+ //#endregion