@temelj/workflow 0.0.0-alpha.2 → 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 +127 -282
  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,17 +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);
28
- const events = await store.appendEventIfRunCurrent(executionOwner, event);
29
- if (events === void 0) WorkflowStaleExecutionError.stale(executionOwner.id);
30
- appendedEvents = events;
31
- return events;
31
+ enforceEventHistoryNextLimit(history.events, limits);
32
+ for (let attempt = 0; attempt < 16; attempt++) {
33
+ const current = await store.getRun(executionOwner.id);
34
+ if (current === void 0 || !isCurrentExecutionOwner(current, executionOwner)) StaleExecutionError.stale(executionOwner.id);
35
+ const events = await store.appendEventIfRunCurrent(current, event);
36
+ if (events !== void 0) {
37
+ appendedEvents = events;
38
+ return events;
39
+ }
40
+ }
41
+ StaleExecutionError.stale(executionOwner.id);
32
42
  });
33
43
  if (appendedEvents !== void 0) afterAppend?.(event, appendedEvents);
34
44
  }
35
- async function requireCurrentExecutionOwner(store, runId, executionOwner) {
36
- const current = await store.getRun(runId);
37
- 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;
38
52
  }
39
53
  async function patchRun(store, current, patch) {
40
54
  const next = {
@@ -50,266 +64,155 @@ async function patchRunIfCurrent(store, current, patch) {
50
64
  });
51
65
  }
52
66
  async function updateRunMetadataIfCurrent(store, runId, metadata, timestamp) {
53
- for (let attempt = 0; attempt < 16; attempt++) {
54
- const updated = await patchRunIfCurrent(store, await getRequiredRun(store, runId), {
55
- metadata,
56
- updatedAt: timestamp
57
- });
58
- if (updated !== void 0) return updated;
59
- }
60
- 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);
61
71
  }
62
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) {
63
77
  for (let attempt = 0; attempt < 16; attempt++) {
64
78
  const current = await getRequiredRun(store, runId);
65
- const updated = await patchRunIfCurrent(store, current, {
66
- attributes: applyWorkflowAttributePatch(current.attributes, attributes),
67
- updatedAt: timestamp
68
- });
79
+ const updated = await patchRunIfCurrent(store, current, patch(current));
69
80
  if (updated !== void 0) return updated;
70
81
  }
71
- 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
+ };
72
92
  }
73
93
  async function patchCurrentExecutionRun(store, executionOwner, patch) {
74
- const current = await store.getRun(executionOwner.id);
75
- if (current === void 0 || !isCurrentExecutionOwner(current, executionOwner)) return;
94
+ const current = await currentExecution(store, executionOwner);
95
+ if (current === void 0) return;
76
96
  return await patchRunIfCurrent(store, current, patch);
77
97
  }
78
98
  async function patchCurrentExecutionRunAttributes(store, executionOwner, attributes, timestamp) {
79
- const current = await store.getRun(executionOwner.id);
80
- if (current === void 0 || !isCurrentExecutionOwner(current, executionOwner)) return;
81
- return await patchRunIfCurrent(store, current, {
82
- attributes: applyWorkflowAttributePatch(current.attributes, attributes),
83
- updatedAt: timestamp
84
- });
99
+ const current = await currentExecution(store, executionOwner);
100
+ if (current === void 0) return;
101
+ return await patchRunIfCurrent(store, current, attributesPatch(current, attributes, timestamp));
85
102
  }
86
- 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) {
87
105
  return {
88
106
  ...run,
89
- status: "waiting",
90
- error,
91
107
  updatedAt: timestamp,
92
108
  lastTransitionAt: timestamp,
93
- lastTransitionReason: "missing_implementation",
94
- availableAt,
95
- retryAt: availableAt,
96
- retryReason: "missing_implementation",
97
- retryAttempt,
98
- retryStepId: void 0,
99
- retryStepName: void 0,
100
- workerId: void 0,
101
- leaseExpiresAt: void 0,
102
- deadlineAt: run.deadlineAt,
103
- output: void 0,
104
- finishedAt: void 0
109
+ lastTransitionReason: reason
105
110
  };
106
111
  }
107
- 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) {
108
114
  return {
109
- ...run,
110
- status: "failed",
111
- error,
112
- updatedAt: timestamp,
113
- lastTransitionAt: timestamp,
114
- lastTransitionReason,
115
+ ...moved(run, timestamp, reason),
116
+ status,
117
+ output: result.output,
118
+ error: result.error,
115
119
  finishedAt: timestamp,
116
- output: void 0,
117
120
  availableAt: void 0,
118
- retryAt: void 0,
119
- retryReason: void 0,
120
- retryAttempt: void 0,
121
- retryStepId: void 0,
122
- retryStepName: void 0,
123
- workerId: void 0,
124
- leaseExpiresAt: void 0,
125
- deadlineAt: deadlineAt ?? run.deadlineAt
121
+ ...CLEARED_LEASE,
122
+ ...CLEARED_RETRY
126
123
  };
127
124
  }
128
125
  function transitionRunToRunning(run, timestamp, attempts) {
129
126
  return {
130
- ...run,
127
+ ...moved(run, timestamp, "started"),
128
+ ...UNFINISHED,
129
+ ...CLEARED_RETRY,
131
130
  status: "running",
132
131
  attempts,
133
- updatedAt: timestamp,
134
- lastTransitionAt: timestamp,
135
- lastTransitionReason: "started",
136
132
  startedAt: run.startedAt ?? timestamp,
137
- availableAt: void 0,
138
- error: void 0,
139
- output: void 0,
140
- finishedAt: void 0,
141
- retryAt: void 0,
142
- retryReason: void 0,
143
- retryAttempt: void 0,
144
- retryStepId: void 0,
145
- retryStepName: void 0
133
+ availableAt: void 0
146
134
  };
147
135
  }
148
136
  function transitionRunToCompleted(run, output, timestamp) {
137
+ return finished(run, timestamp, "completed", "completed", { output });
138
+ }
139
+ function transitionRunToFailed(run, error, timestamp, reason, deadlineAt) {
149
140
  return {
150
- ...run,
151
- status: "completed",
152
- ...output === void 0 ? { output: void 0 } : { output },
153
- error: void 0,
154
- updatedAt: timestamp,
155
- lastTransitionAt: timestamp,
156
- lastTransitionReason: "completed",
157
- finishedAt: timestamp,
158
- availableAt: void 0,
159
- workerId: void 0,
160
- leaseExpiresAt: void 0,
161
- retryAt: void 0,
162
- retryReason: void 0,
163
- retryAttempt: void 0,
164
- retryStepId: void 0,
165
- retryStepName: void 0
141
+ ...finished(run, timestamp, "failed", reason, { error }),
142
+ deadlineAt: deadlineAt ?? run.deadlineAt
166
143
  };
167
144
  }
168
- 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) {
169
149
  return {
170
- ...run,
150
+ ...moved(run, timestamp, "waiting"),
151
+ ...UNFINISHED,
152
+ ...CLEARED_LEASE,
171
153
  status: "waiting",
172
- availableAt,
173
- updatedAt: timestamp,
174
- 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),
175
161
  lastTransitionReason: options.retryReason === void 0 ? "waiting" : "retry",
176
- workerId: void 0,
177
- leaseExpiresAt: void 0,
178
162
  retryAt: options.retryAt,
179
163
  retryReason: options.retryReason,
180
164
  retryAttempt: options.retryAttempt,
181
165
  retryStepId: options.retryStepId,
182
166
  retryStepName: options.retryStepName,
183
- error: options.error,
184
- output: void 0,
185
- finishedAt: void 0
167
+ error: options.error
186
168
  };
187
169
  }
188
- function transitionRunToWaiting(run, timestamp, availableAt) {
170
+ function transitionRunToMissingImplementationWait(run, error, timestamp, availableAt, retryAttempt) {
189
171
  return {
190
- ...run,
191
- status: "waiting",
192
- availableAt,
193
- updatedAt: timestamp,
194
- lastTransitionAt: timestamp,
195
- lastTransitionReason: "waiting",
196
- deadlineAt: run.deadlineAt,
197
- workerId: void 0,
198
- leaseExpiresAt: void 0,
199
- error: void 0,
200
- output: void 0,
201
- 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
202
179
  };
203
180
  }
204
- function transitionRunToRescheduled(run, timestamp, availableAt) {
181
+ function transitionRunAfterStaleLeaseRelease(run, timestamp, availableAt) {
205
182
  return {
206
- ...run,
207
- availableAt,
208
- updatedAt: timestamp,
209
- lastTransitionAt: timestamp,
210
- lastTransitionReason: "rescheduled",
211
- deadlineAt: run.deadlineAt,
212
- leaseExpiresAt: void 0,
213
- workerId: void 0,
214
- retryAt: run.retryReason === void 0 ? void 0 : availableAt,
215
- retryReason: run.retryReason,
216
- retryAttempt: run.retryAttempt,
217
- retryStepId: run.retryStepId,
218
- retryStepName: run.retryStepName,
219
- error: void 0,
220
- output: void 0,
221
- finishedAt: void 0
183
+ ...transitionRunToWaiting(run, timestamp, availableAt),
184
+ ...CLEARED_RETRY,
185
+ lastTransitionReason: "lease_released"
222
186
  };
223
187
  }
224
- 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) {
225
190
  return {
226
- ...transitionRunToWaiting(run, timestamp, availableAt),
227
- lastTransitionReason: "lease_released",
228
- retryAt: void 0,
229
- retryReason: void 0,
230
- retryAttempt: void 0,
231
- retryStepId: void 0,
232
- retryStepName: void 0,
233
- deadlineAt: run.deadlineAt,
234
- updatedAt: timestamp,
235
- lastTransitionAt: timestamp
191
+ ...moved(run, timestamp, "rescheduled"),
192
+ ...UNFINISHED,
193
+ ...CLEARED_LEASE,
194
+ availableAt,
195
+ retryAt: run.retryReason === void 0 ? void 0 : availableAt
236
196
  };
237
197
  }
238
198
  function transitionRunToManualRetry(run, timestamp, availableAt, retryAttempt) {
239
199
  return {
240
- ...run,
200
+ ...moved(run, timestamp, "manual_retry"),
201
+ ...UNFINISHED,
202
+ ...CLEARED_LEASE,
241
203
  status: "pending",
242
204
  availableAt,
243
- updatedAt: timestamp,
244
- lastTransitionAt: timestamp,
245
- lastTransitionReason: "manual_retry",
246
- deadlineAt: run.deadlineAt,
247
- workerId: void 0,
248
- leaseExpiresAt: void 0,
249
205
  retryAt: availableAt,
250
206
  retryReason: run.retryReason ?? "workflow",
251
- retryAttempt,
252
- retryStepId: run.retryStepId,
253
- retryStepName: run.retryStepName,
254
- error: void 0,
255
- output: void 0,
256
- finishedAt: void 0
257
- };
258
- }
259
- function transitionRunToPermanentFailure(run, error, timestamp) {
260
- return {
261
- ...run,
262
- status: "failed",
263
- error,
264
- output: void 0,
265
- availableAt: void 0,
266
- updatedAt: timestamp,
267
- lastTransitionAt: timestamp,
268
- lastTransitionReason: "permanent_failure",
269
- deadlineAt: run.deadlineAt,
270
- workerId: void 0,
271
- leaseExpiresAt: void 0,
272
- retryAt: void 0,
273
- retryReason: void 0,
274
- retryAttempt: void 0,
275
- retryStepId: void 0,
276
- retryStepName: void 0,
277
- finishedAt: timestamp
278
- };
279
- }
280
- function transitionRunToCanceled(run, error, timestamp) {
281
- return {
282
- ...run,
283
- status: "canceled",
284
- error,
285
- updatedAt: timestamp,
286
- lastTransitionAt: timestamp,
287
- lastTransitionReason: "canceled",
288
- finishedAt: timestamp,
289
- availableAt: void 0,
290
- output: void 0,
291
- workerId: void 0,
292
- leaseExpiresAt: void 0,
293
- retryAt: void 0,
294
- retryReason: void 0,
295
- retryAttempt: void 0,
296
- retryStepId: void 0,
297
- retryStepName: void 0
207
+ retryAttempt
298
208
  };
299
209
  }
300
210
  function transitionRunAfterParentWake(run, timestamp) {
301
211
  return {
302
- ...run,
212
+ ...moved(run, timestamp, "waiting"),
213
+ ...UNFINISHED,
303
214
  availableAt: timestamp,
304
- updatedAt: timestamp,
305
- lastTransitionAt: timestamp,
306
- lastTransitionReason: "waiting",
307
- deadlineAt: run.deadlineAt,
308
- retryAt: run.retryAt,
309
- startedAt: run.startedAt ?? timestamp,
310
- error: void 0,
311
- output: void 0,
312
- finishedAt: void 0
215
+ startedAt: run.startedAt ?? timestamp
313
216
  };
314
217
  }
315
218
  function isCurrentExecutionOwner(current, execution) {
@@ -319,7 +222,7 @@ async function cancelRunWithChildren(store, runId, canceledAt) {
319
222
  const run = await getRequiredRun(store, runId);
320
223
  if (run.status === "completed" || run.status === "failed") WorkflowRunCancellationError.cannotCancel(runId, run.status);
321
224
  if (run.status === "canceled") return run;
322
- 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));
323
226
  if (canceledRun === void 0) {
324
227
  const latest = await getRequiredRun(store, runId);
325
228
  if (latest.status === "completed" || latest.status === "failed") WorkflowRunCancellationError.cannotCancel(runId, latest.status);
@@ -328,7 +231,7 @@ async function cancelRunWithChildren(store, runId, canceledAt) {
328
231
  }
329
232
  await releaseLocksForRun(store, run.id, canceledAt);
330
233
  await cancelActiveChildRuns(store, run.id, canceledAt);
331
- await wakeParentRunForTerminalChild(store, canceledRun, canceledAt);
234
+ await wakeParentRun(store, canceledRun, canceledAt);
332
235
  return canceledRun;
333
236
  }
334
237
  async function cancelActiveChildRuns(store, parentRunId, canceledAt) {
@@ -346,23 +249,14 @@ async function cancelActiveChildRuns(store, parentRunId, canceledAt) {
346
249
  await cancelRunWithChildren(store, child.id, canceledAt);
347
250
  }
348
251
  }
349
- async function wakeParentRunForTerminalChild(store, childRun, timestamp) {
350
- if (childRun.parentRunId === void 0) return;
351
- const parentRun = await store.getRun(childRun.parentRunId);
352
- if (parentRun === void 0 || parentRun.status !== "waiting") return;
353
- if (!await parentHasActiveChildWorkflowAttemptForRun(store, parentRun.id, childRun)) return;
354
- const wakeAt = timestamp;
355
- if (parentRun.availableAt !== void 0 && Temporal.Instant.compare(parentRun.availableAt, wakeAt) <= 0) return;
356
- await patchRun(store, parentRun, transitionRunAfterParentWake(parentRun, timestamp));
357
- }
358
- 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) {
359
254
  if (childRun.parentRunId === void 0) return;
360
255
  const parentRun = await store.getRun(childRun.parentRunId);
361
256
  if (parentRun === void 0 || parentRun.status !== "waiting") return;
362
257
  if (!await parentHasActiveChildWorkflowAttemptForRun(store, parentRun.id, childRun)) return;
363
- const wakeAt = availableAt;
364
- if (parentRun.availableAt !== void 0 && Temporal.Instant.compare(parentRun.availableAt, wakeAt) <= 0) return;
365
- 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));
366
260
  }
367
261
  async function parentHasActiveChildWorkflowAttemptForRun(store, parentRunId, childRun) {
368
262
  if (childRun.parentRunId !== parentRunId) return false;
@@ -377,26 +271,26 @@ async function parentHasActiveChildWorkflowAttemptForRun(store, parentRunId, chi
377
271
  async function parentHasActiveChildWorkflowEventForAttempt(store, parentRunId, attempt) {
378
272
  if (attempt.childRunId === void 0) return false;
379
273
  const events = await store.getEvents(parentRunId);
380
- const lifecycle = new WorkflowHistory(events).childWorkflowLifecycleForAttempt(attempt);
274
+ const lifecycle = new History(events).childWorkflowLifecycleForAttempt(attempt);
381
275
  if (lifecycle.started === void 0) return false;
382
276
  if (!isPositiveSafeInteger(lifecycle.started.attempt)) return false;
383
277
  return !lifecycle.hasTerminalAfterStarted;
384
278
  }
385
- async function failRunForDeadline(store, run, deadlineAt, failedAt, executionOwner) {
386
- 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));
387
281
  if (executionOwner !== void 0) {
388
282
  const current = await store.getRun(run.id);
389
- 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);
390
284
  }
391
285
  await cancelActiveChildRuns(store, run.id, failedAt);
392
286
  const failedRun = executionOwner === void 0 ? await patchRun(store, run, transitionRunToFailed(run, serialized, failedAt, "deadline")) : await patchCurrentExecutionRun(store, executionOwner, transitionRunToFailed(executionOwner, serialized, failedAt, "deadline"));
393
- if (failedRun === void 0) return await readRunResult(store, run.id, failedAt);
287
+ if (failedRun === void 0) return await readRunResult(store, definition, run.id, failedAt);
394
288
  if (await store.appendEventIfRunCurrent(failedRun, {
395
289
  kind: "workflow_failed",
396
290
  timestamp: failedAt
397
- }) === void 0) return await readRunResult(store, run.id, failedAt);
291
+ }) === void 0) return await readRunResult(store, definition, run.id, failedAt);
398
292
  await releaseLocksForRun(store, run.id, failedAt);
399
- await wakeParentRunForTerminalChild(store, failedRun, failedAt);
293
+ await wakeParentRun(store, failedRun, failedAt);
400
294
  return {
401
295
  kind: "failed",
402
296
  run: failedRun,
@@ -404,62 +298,13 @@ async function failRunForDeadline(store, run, deadlineAt, failedAt, executionOwn
404
298
  };
405
299
  }
406
300
  async function releaseLocksForRun(store, runId, releasedAt) {
407
- const timestamp = releasedAt;
408
301
  const locks = await store.listLocks();
409
302
  await Promise.all(locks.filter((lock) => lock.releasedAt === void 0 && lock.holderRunId === runId).map(async (lock) => {
410
303
  await store.updateLockIfCurrent(lock, {
411
304
  ...lock,
412
- releasedAt: timestamp
305
+ releasedAt
413
306
  });
414
307
  }));
415
308
  }
416
- var WorkflowSuspended = class WorkflowSuspended extends Error {
417
- availableAt;
418
- retryAt;
419
- retryReason;
420
- retryAttempt;
421
- retryStep;
422
- constructor(availableAt, context) {
423
- super(`Workflow suspended until ${availableAt.toString()}`);
424
- this.name = "WorkflowSuspended";
425
- this.availableAt = availableAt;
426
- if (Error.captureStackTrace !== void 0) Error.captureStackTrace(this, context ?? this.constructor);
427
- }
428
- static until(availableAt) {
429
- throw new WorkflowSuspended(availableAt, WorkflowSuspended.until);
430
- }
431
- static forStepRetry(retryAt, retryStep, retryAttempt) {
432
- const suspended = new WorkflowSuspended(retryAt, WorkflowSuspended.forStepRetry);
433
- Object.defineProperties(suspended, {
434
- retryAt: {
435
- value: retryAt,
436
- enumerable: true
437
- },
438
- retryReason: {
439
- value: "step",
440
- enumerable: true
441
- },
442
- retryAttempt: {
443
- value: retryAttempt,
444
- enumerable: true
445
- },
446
- retryStep: {
447
- value: retryStep,
448
- enumerable: true
449
- }
450
- });
451
- throw suspended;
452
- }
453
- };
454
- var WorkflowStaleExecutionError = class WorkflowStaleExecutionError extends Error {
455
- constructor(runId, context) {
456
- super(`Workflow execution no longer owns run: ${runId}`);
457
- this.name = "WorkflowStaleExecutionError";
458
- if (Error.captureStackTrace !== void 0) Error.captureStackTrace(this, context ?? this.constructor);
459
- }
460
- static stale(runId) {
461
- throw new WorkflowStaleExecutionError(runId, WorkflowStaleExecutionError.stale);
462
- }
463
- };
464
309
  //#endregion
465
- 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