@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,31 +1,35 @@
1
+ import { WorkflowErrorCode } from "../errors/codes.mjs";
1
2
  import { WorkflowOptionsError } from "../errors/base.mjs";
2
3
  import { WorkflowDurationError, WorkflowReplayDivergenceError } from "../errors/failures.mjs";
3
4
  import { WorkflowChildWorkflowTimeoutError, WorkflowRunCanceledError, WorkflowRunInvalidError } from "../errors/run.mjs";
4
- import { getRequiredRun, isPositiveSafeInteger, nextPositiveSafeInteger, safeDuration } from "../utility.mjs";
5
5
  import { WorkflowStepAttemptLimitError, WorkflowStepExecutionError } from "../errors/step.mjs";
6
- import { defineWorkflowFromTarget } from "../definition.mjs";
7
6
  import { workflowErrorFromRecord } from "../errors/records.mjs";
7
+ import { defineFromTarget } from "../definition.mjs";
8
+ import { isPositiveSafeInteger, nextPositiveSafeInteger, safeDuration } from "../values.mjs";
9
+ import { getRequiredRun } from "../store/query.mjs";
8
10
  import { serializeError, toOptionalPersistedValue } from "./serialization.mjs";
9
11
  import { enforceStepAttemptBudget, nextRetryAt, resolveChildWorkflowRetryConfig } from "./retry.mjs";
10
- import { WorkflowSuspended, requireCurrentExecutionOwner } from "./state.mjs";
11
- import { resolveWorkflowCommandIdentityFromCandidates } from "./command-identity.mjs";
12
- import { appendDurableStepStartedEvent, appendDurableStepTerminalEvent } from "./durable-command.mjs";
13
- import { requireRecordedDurableTerminalStarted } from "./replay.mjs";
12
+ import { Suspended } from "./signals.mjs";
13
+ import { requireCurrentExecutionOwner, requireDefinitionMatchesRun } from "./state.mjs";
14
+ import { cancelWorkflowRun } from "./run-service.mjs";
15
+ import { resolveCommandIdentityFromCandidates } from "./command-identity.mjs";
16
+ import { appendDurableEvent, appendDurableStepStartedEvent } from "./durable-command.mjs";
17
+ import { recordedInstant, requireRecordedDurableTerminalStarted } from "./replay.mjs";
14
18
  import { deepEquals } from "@temelj/value";
15
19
  //#region src/engine/child-workflow.ts
16
- function createWorkflowStepWorkflowApi(environment, engine) {
20
+ function createStepWorkflowApi(environment, engine) {
17
21
  return {
18
22
  async run(workflow, input, options) {
19
- return await runChildWorkflow(environment, engine, defineWorkflowFromTarget(workflow), input, options);
23
+ return await runChildWorkflow(environment, engine, defineFromTarget(workflow), input, options);
20
24
  },
21
25
  async start(workflow, input, options) {
22
- return await startBackgroundChildWorkflow(environment, engine, defineWorkflowFromTarget(workflow), input, options);
26
+ return await startBackgroundChildWorkflow(environment, engine, defineFromTarget(workflow), input, options);
23
27
  }
24
28
  };
25
29
  }
26
30
  async function runChildWorkflow(environment, engine, definition, input, options) {
27
31
  const { store, runId, history, now, maximumStepAttemptsPerRun, limits, executionOwner } = environment;
28
- const identity = resolveWorkflowCommandIdentityFromCandidates(history, "workflow", [
32
+ const identity = resolveCommandIdentityFromCandidates(history, "workflow", [
29
33
  options?.commandId,
30
34
  options?.name,
31
35
  definition.name
@@ -36,7 +40,7 @@ async function runChildWorkflow(environment, engine, definition, input, options)
36
40
  requireRecordedDurableTerminalStarted(identity, history.hasStartedEventBeforeTerminalEvent(completed));
37
41
  if (started === void 0 || isChildWorkflowTerminalForStartedAttempt(completed, started)) {
38
42
  requireChildWorkflowReplayMatches(runId, identity, started, definition, input, options, limits);
39
- recordedChildWorkflowCompletionTimestamp(identity, completed.timestamp);
43
+ recordedInstant("workflow", identity, "completion", completed.timestamp);
40
44
  return completed.result;
41
45
  }
42
46
  }
@@ -50,7 +54,7 @@ async function runChildWorkflow(environment, engine, definition, input, options)
50
54
  const pollInterval = resolveChildWorkflowPollInterval(options);
51
55
  const latestFailedAttempt = failed !== void 0 && (started === void 0 || isChildWorkflowTerminalForStartedAttempt(failed, started)) ? failed : void 0;
52
56
  if (latestFailedAttempt !== void 0) {
53
- const failedAt = recordedChildWorkflowFailureTimestamp(identity, latestFailedAttempt.timestamp);
57
+ const failedAt = recordedInstant("workflow", identity, "failure", latestFailedAttempt.timestamp);
54
58
  const nextAttempt = nextChildWorkflowRetryAttempt(runId, latestFailedAttempt.attempt, maximumStepAttemptsPerRun);
55
59
  if (retry.maximumAttempts !== 0 && nextAttempt > retry.maximumAttempts) WorkflowStepExecutionError.failed({
56
60
  stepId: identity.id,
@@ -59,14 +63,15 @@ async function runChildWorkflow(environment, engine, definition, input, options)
59
63
  cause: workflowErrorFromRecord(latestFailedAttempt.error)
60
64
  });
61
65
  const retryAt = nextRetryAt(failedAt, retry, latestFailedAttempt.attempt, "Workflow step retry delay");
62
- if (retryAt !== void 0 && Temporal.Instant.compare(retryAt, now()) > 0) WorkflowSuspended.forStepRetry(retryAt, identity, nextAttempt);
66
+ if (retryAt !== void 0 && Temporal.Instant.compare(retryAt, now()) > 0) Suspended.forStepRetry(retryAt, identity, nextAttempt);
63
67
  }
64
68
  const attempt = latestFailedAttempt === void 0 ? started?.attempt ?? 1 : latestFailedAttempt.attempt + 1;
65
69
  const childRunId = started === void 0 || latestFailedAttempt !== void 0 ? await startChildWorkflow(store, engine, runId, history, now, maximumStepAttemptsPerRun, identity, definition, input, options, attempt, limits, executionOwner, environment.createRecordedId, environment.createDeterministicRandom, environment.createDeterministicUuid, environment.createDeterministicBytes, environment.telemetry, environment.logger, environment.replaying, environment.observeChildWorkflowStarted) : started.childRunId;
66
70
  const childRun = await getRequiredRun(store, childRunId);
67
71
  const activeStarted = history.startedChildWorkflow(identity.id);
68
- const timeoutAt = activeStarted?.timeoutAt === void 0 ? void 0 : recordedChildWorkflowTimeoutAt(identity, activeStarted.timeoutAt);
69
- if (!childRunMatchesParentStepAttempt(childRun, runId, identity, attempt)) WorkflowSuspended.until(childWorkflowPollAt(now(), childRun, pollInterval));
72
+ const timeoutAt = activeStarted?.timeoutAt === void 0 ? void 0 : recordedInstant("workflow", identity, "timeout", activeStarted.timeoutAt);
73
+ if (!childRunMatchesParentStepAttempt(childRun, runId, identity, attempt)) Suspended.until(childWorkflowPollAt(now(), childRun, pollInterval));
74
+ requireDefinitionMatchesRun(definition, childRun);
70
75
  if (timeoutAt !== void 0 && Temporal.Instant.compare(timeoutAt, now()) <= 0 && childRun.status !== "completed" && childRun.status !== "failed" && childRun.status !== "canceled") {
71
76
  const error = childWorkflowTimeoutErrorRecord({
72
77
  runId,
@@ -74,7 +79,7 @@ async function runChildWorkflow(environment, engine, definition, input, options)
74
79
  stepId: identity.id,
75
80
  timeoutAt
76
81
  });
77
- await appendDurableStepTerminalEvent(environment, {
82
+ await appendDurableEvent(environment, {
78
83
  kind: "child_workflow_failed",
79
84
  timestamp: now(),
80
85
  stepId: identity.id,
@@ -83,8 +88,8 @@ async function runChildWorkflow(environment, engine, definition, input, options)
83
88
  childRunId,
84
89
  error
85
90
  });
86
- await requireCurrentExecutionOwner(store, runId, executionOwner);
87
- await engine.cancelRun(childRunId);
91
+ await requireCurrentExecutionOwner(store, executionOwner);
92
+ await cancelWorkflowRun(engine.context, engine.lifecycle, childRunId);
88
93
  if (retry.maximumAttempts === 0 || attempt < retry.maximumAttempts) suspendChildWorkflowRetry(runId, timeoutAt, retry, identity, attempt, maximumStepAttemptsPerRun);
89
94
  WorkflowStepExecutionError.failed({
90
95
  stepId: identity.id,
@@ -94,7 +99,7 @@ async function runChildWorkflow(environment, engine, definition, input, options)
94
99
  });
95
100
  }
96
101
  if (childRun.status === "completed") {
97
- await appendDurableStepTerminalEvent(environment, {
102
+ await appendDurableEvent(environment, {
98
103
  kind: "child_workflow_completed",
99
104
  timestamp: now(),
100
105
  stepId: identity.id,
@@ -106,14 +111,14 @@ async function runChildWorkflow(environment, engine, definition, input, options)
106
111
  return childRun.output;
107
112
  }
108
113
  if (childRun.status === "failed" || childRun.status === "canceled") {
109
- const error = childRun.error ?? (childRun.status === "canceled" ? serializeError(WorkflowRunCanceledError.create(childRun.id)) : {
114
+ const error = childRun.error ?? (childRun.status === "canceled" ? serializeError(new WorkflowRunCanceledError(childRun.id)) : {
110
115
  name: "WorkflowError",
111
116
  message: `Child workflow failed: ${childRun.id}`
112
117
  });
113
118
  const failedAt = childRun.finishedAt === void 0 ? now() : childRun.finishedAt instanceof Temporal.Instant ? childRun.finishedAt : (() => {
114
- WorkflowRunInvalidError.invalid(childRun.id, "Workflow child failure timestamp must be valid");
119
+ throw new WorkflowRunInvalidError(childRun.id, "Workflow child failure timestamp must be valid");
115
120
  })();
116
- await appendDurableStepTerminalEvent(environment, {
121
+ await appendDurableEvent(environment, {
117
122
  kind: "child_workflow_failed",
118
123
  timestamp: failedAt,
119
124
  stepId: identity.id,
@@ -130,7 +135,7 @@ async function runChildWorkflow(environment, engine, definition, input, options)
130
135
  });
131
136
  if (retry.maximumAttempts === 0 || attempt < retry.maximumAttempts) {
132
137
  const nextAttempt = nextChildWorkflowRetryAttempt(runId, attempt, maximumStepAttemptsPerRun);
133
- WorkflowSuspended.forStepRetry(nextRetryAt(failedAt, retry, attempt, "Workflow step retry delay") ?? failedAt, identity, nextAttempt);
138
+ Suspended.forStepRetry(nextRetryAt(failedAt, retry, attempt, "Workflow step retry delay") ?? failedAt, identity, nextAttempt);
134
139
  }
135
140
  WorkflowStepExecutionError.failed({
136
141
  stepId: identity.id,
@@ -139,11 +144,11 @@ async function runChildWorkflow(environment, engine, definition, input, options)
139
144
  cause: workflowErrorFromRecord(error)
140
145
  });
141
146
  }
142
- WorkflowSuspended.until(childWorkflowPollAt(now(), childRun, pollInterval));
147
+ Suspended.until(childWorkflowPollAt(now(), childRun, pollInterval));
143
148
  }
144
149
  async function startBackgroundChildWorkflow(environment, engine, definition, input, options) {
145
150
  const { store, runId, history, now, maximumStepAttemptsPerRun, limits, executionOwner } = environment;
146
- const identity = resolveWorkflowCommandIdentityFromCandidates(history, "workflow", [
151
+ const identity = resolveCommandIdentityFromCandidates(history, "workflow", [
147
152
  options?.commandId,
148
153
  options?.name,
149
154
  definition.name
@@ -162,27 +167,6 @@ function childRunMatchesParentStepAttempt(childRun, parentRunId, identity, attem
162
167
  function isChildWorkflowTerminalForStartedAttempt(terminal, started) {
163
168
  return terminal.attempt === started.attempt && terminal.childRunId === started.childRunId;
164
169
  }
165
- function recordedChildWorkflowTimeoutAt(identity, value) {
166
- if (value instanceof Temporal.Instant) return value;
167
- WorkflowReplayDivergenceError.diverged(`recorded workflow step ${identity.id} has invalid timeout timestamp: ` + String(value), {
168
- expectedStepId: identity.id,
169
- actualStepId: identity.id
170
- });
171
- }
172
- function recordedChildWorkflowCompletionTimestamp(identity, value) {
173
- if (value instanceof Temporal.Instant) return value;
174
- WorkflowReplayDivergenceError.diverged(`recorded workflow step ${identity.id} has invalid completion timestamp: ` + String(value), {
175
- expectedStepId: identity.id,
176
- actualStepId: identity.id
177
- });
178
- }
179
- function recordedChildWorkflowFailureTimestamp(identity, value) {
180
- if (value instanceof Temporal.Instant) return value;
181
- WorkflowReplayDivergenceError.diverged(`recorded workflow step ${identity.id} has invalid failure timestamp: ` + String(value), {
182
- expectedStepId: identity.id,
183
- actualStepId: identity.id
184
- });
185
- }
186
170
  function requireChildWorkflowReplayMatches(runId, identity, started, definition, input, options, limits) {
187
171
  if (started === void 0) return;
188
172
  const replayChildRunId = options?.id === void 0 ? void 0 : started.attempt === 1 ? options.id : `${options.id}:attempt:${started.attempt}`;
@@ -204,20 +188,14 @@ function requireChildWorkflowReplayMatches(runId, identity, started, definition,
204
188
  const replayTimeout = options?.timeout === void 0 ? "no timeout" : "a timeout";
205
189
  message = `recorded workflow step ${identity.id} had ${String(recordedTimeout)}, but replay used ${replayTimeout}`;
206
190
  }
207
- WorkflowReplayDivergenceError.diverged(message, {
208
- expectedStepId: identity.id,
209
- actualStepId: identity.id
210
- });
191
+ WorkflowReplayDivergenceError.atStep(identity.id, message);
211
192
  }
212
193
  function requireRecordedChildWorkflowStartedAttempt(identity, started) {
213
194
  if (isPositiveSafeInteger(started.attempt)) return;
214
- WorkflowReplayDivergenceError.diverged(`recorded workflow step ${identity.id} has an invalid attempt number`, {
215
- expectedStepId: identity.id,
216
- actualStepId: identity.id
217
- });
195
+ WorkflowReplayDivergenceError.atStep(identity.id, `recorded workflow step ${identity.id} has an invalid attempt number`);
218
196
  }
219
197
  function suspendChildWorkflowRetry(runId, failedAt, retry, identity, attempt, maximumStepAttemptsPerRun) {
220
- WorkflowSuspended.forStepRetry(nextRetryAt(failedAt, retry, attempt, "Workflow step retry delay") ?? failedAt, identity, nextChildWorkflowRetryAttempt(runId, attempt, maximumStepAttemptsPerRun));
198
+ Suspended.forStepRetry(nextRetryAt(failedAt, retry, attempt, "Workflow step retry delay") ?? failedAt, identity, nextChildWorkflowRetryAttempt(runId, attempt, maximumStepAttemptsPerRun));
221
199
  }
222
200
  function nextChildWorkflowRetryAttempt(runId, failedAttempt, maximumStepAttemptsPerRun) {
223
201
  const nextAttempt = nextPositiveSafeInteger(failedAttempt);
@@ -225,24 +203,25 @@ function nextChildWorkflowRetryAttempt(runId, failedAttempt, maximumStepAttempts
225
203
  return nextAttempt;
226
204
  }
227
205
  async function startChildWorkflow(store, engine, runId, history, now, maximumStepAttemptsPerRun, identity, definition, input, options, attempt, limits, executionOwner, createRecordedId, createDeterministicRandom, createDeterministicUuid, createDeterministicBytes, telemetry, logger, replaying, observeChildWorkflowStarted) {
228
- await requireCurrentExecutionOwner(store, runId, executionOwner);
206
+ await requireCurrentExecutionOwner(store, executionOwner);
229
207
  enforceStepAttemptBudget(runId, history, maximumStepAttemptsPerRun);
230
208
  const timeoutAt = childWorkflowTimeoutAt(now(), options);
231
209
  const deadlineAt = childWorkflowDeadlineAt(timeoutAt, executionOwner.deadlineAt);
232
210
  const idempotencyKey = childWorkflowIdempotencyKey(runId, identity, options, attempt);
233
211
  const cancellation = resolveChildWorkflowCancellationPolicy(options);
234
212
  const persistedInput = toOptionalPersistedValue(input, "child workflow input", limits);
235
- const handle = await engine.startWorkflow(definition, input, {
236
- ...options?.id === void 0 ? {} : { id: attempt === 1 ? options.id : `${options.id}:attempt:${attempt}` },
213
+ const startOptions = {
214
+ id: options?.id !== void 0 ? attempt === 1 ? options.id : `${options.id}:attempt:${attempt}` : void 0,
237
215
  idempotencyKey,
238
- ...deadlineAt === void 0 ? {} : { deadlineAt },
216
+ deadlineAt,
239
217
  parent: {
240
218
  runId,
241
219
  stepId: identity.id,
242
220
  stepName: identity.name,
243
221
  stepAttempt: attempt
244
222
  }
245
- });
223
+ };
224
+ const handle = await engine.startWorkflow(definition, input, startOptions);
246
225
  const startedEvent = {
247
226
  kind: "child_workflow_started",
248
227
  timestamp: now(),
@@ -252,11 +231,11 @@ async function startChildWorkflow(store, engine, runId, history, now, maximumSte
252
231
  attempt,
253
232
  childRunId: handle.runId,
254
233
  workflowName: definition.name,
255
- ...definition.version === void 0 ? {} : { workflowVersion: definition.version },
234
+ workflowVersion: definition.version,
256
235
  cancellation,
257
236
  input: persistedInput,
258
237
  idempotencyKey,
259
- ...timeoutAt === void 0 ? {} : { timeoutAt }
238
+ timeoutAt
260
239
  };
261
240
  await appendDurableStepStartedEvent({
262
241
  store,
@@ -289,7 +268,7 @@ function childWorkflowPollAt(now, childRun, pollInterval) {
289
268
  }
290
269
  function resolveChildWorkflowPollInterval(options) {
291
270
  const pollInterval = options?.pollInterval === void 0 ? 100 : options.pollInterval.total({ unit: "millisecond" });
292
- if (!isPositiveSafeInteger(pollInterval)) WorkflowDurationError.childPollIntervalTimerSafe();
271
+ if (!isPositiveSafeInteger(pollInterval)) throw new WorkflowDurationError("Workflow child pollInterval must be a timer-safe duration");
293
272
  return pollInterval;
294
273
  }
295
274
  function hasDueChildSchedule(now, childRun) {
@@ -297,19 +276,19 @@ function hasDueChildSchedule(now, childRun) {
297
276
  }
298
277
  function childWorkflowTimeoutAt(now, options) {
299
278
  if (options?.timeout === void 0) return;
300
- if (safeDuration(options.timeout.total({ unit: "millisecond" }), "Workflow child timeout") <= 0) WorkflowDurationError.childTimeoutPositive();
279
+ if (safeDuration(options.timeout.total({ unit: "millisecond" }), "Workflow child timeout") <= 0) throw new WorkflowDurationError("Workflow child timeout must be greater than zero");
301
280
  return now.add(options.timeout);
302
281
  }
303
282
  function resolveChildWorkflowCancellationPolicy(options) {
304
283
  const policy = options?.cancellation ?? "cascade";
305
- if (policy !== "cascade" && policy !== "detach") WorkflowOptionsError.childCancellationPolicy();
284
+ if (policy !== "cascade" && policy !== "detach") throw new WorkflowOptionsError("Workflow child cancellation policy must be cascade or detach", { code: WorkflowErrorCode.OPTIONS_CHILD_CANCELLATION_POLICY_INVALID });
306
285
  return policy;
307
286
  }
308
287
  function childWorkflowDeadlineAt(timeoutAt, parentDeadlineAt) {
309
288
  return [timeoutAt, parentDeadlineAt].filter((value) => value !== void 0).sort((left, right) => Temporal.Instant.compare(left, right))[0];
310
289
  }
311
290
  function childWorkflowTimeoutErrorRecord(options) {
312
- const error = WorkflowChildWorkflowTimeoutError.create({
291
+ const error = new WorkflowChildWorkflowTimeoutError({
313
292
  runId: options.runId,
314
293
  childRunId: options.childRunId,
315
294
  stepId: options.stepId,
@@ -330,4 +309,4 @@ function childWorkflowIdempotencyKey(runId, identity, options, attempt) {
330
309
  return `${options?.idempotencyKey === void 0 ? `parent:${runId}:step:${identity.id}` : options.idempotencyKey}:attempt:${attempt}`;
331
310
  }
332
311
  //#endregion
333
- export { createWorkflowStepWorkflowApi, runChildWorkflow, startBackgroundChildWorkflow };
312
+ export { createStepWorkflowApi };
@@ -1,9 +1,8 @@
1
- import { WorkflowStepIdentity, WorkflowStepType } from "../types/run.mjs";
2
- import { WorkflowHistory } from "../history/mod.mjs";
1
+ import { StepIdentity, StepType } from "../types/run.mjs";
2
+ import { History } from "../history/replay.mjs";
3
3
  //#region src/engine/command-identity.d.ts
4
4
  /** Resolves the durable identity for a workflow command occurrence. */
5
- declare function resolveWorkflowCommandIdentity<TType extends WorkflowStepType>(history: WorkflowHistory, kind: TType, commandId: string): WorkflowStepIdentity<TType>;
5
+ export declare function resolveCommandIdentity<TType extends StepType>(history: History, kind: TType, commandId: string): StepIdentity<TType>;
6
6
  /** Resolves a durable command identity from ordered command-name candidates. */
7
- declare function resolveWorkflowCommandIdentityFromCandidates<TType extends WorkflowStepType>(history: WorkflowHistory, kind: TType, candidates: readonly (string | undefined)[], label: string): WorkflowStepIdentity<TType>;
8
- //#endregion
9
- export { resolveWorkflowCommandIdentity, resolveWorkflowCommandIdentityFromCandidates };
7
+ export declare function resolveCommandIdentityFromCandidates<TType extends StepType>(history: History, kind: TType, candidates: readonly (string | undefined)[], label: string): StepIdentity<TType>;
8
+ //#endregion
@@ -1,14 +1,18 @@
1
+ import { WorkflowErrorCode } from "../errors/codes.mjs";
1
2
  import { WorkflowOptionsError } from "../errors/base.mjs";
2
3
  import "../errors/mod.mjs";
3
4
  //#region src/engine/command-identity.ts
4
5
  /** Resolves the durable identity for a workflow command occurrence. */
5
- function resolveWorkflowCommandIdentity(history, kind, commandId) {
6
+ function resolveCommandIdentity(history, kind, commandId) {
6
7
  return history.nextStep(kind, commandId);
7
8
  }
8
9
  /** Resolves a durable command identity from ordered command-name candidates. */
9
- function resolveWorkflowCommandIdentityFromCandidates(history, kind, candidates, label) {
10
- for (const candidate of candidates) if (candidate !== void 0) return resolveWorkflowCommandIdentity(history, kind, candidate);
11
- throw WorkflowOptionsError.required(label);
10
+ function resolveCommandIdentityFromCandidates(history, kind, candidates, label) {
11
+ for (const candidate of candidates) if (candidate !== void 0) return resolveCommandIdentity(history, kind, candidate);
12
+ throw new WorkflowOptionsError(`${label} is required`, {
13
+ code: WorkflowErrorCode.OPTIONS_REQUIRED,
14
+ details: { label }
15
+ });
12
16
  }
13
17
  //#endregion
14
- export { resolveWorkflowCommandIdentity, resolveWorkflowCommandIdentityFromCandidates };
18
+ export { resolveCommandIdentity, resolveCommandIdentityFromCandidates };
@@ -0,0 +1,17 @@
1
+ import { ObservationEmitter } from "../types/observation.mjs";
2
+ import { Telemetry } from "../types/telemetry.mjs";
3
+ import { WorkflowStore } from "../types/store.mjs";
4
+ import { ExecutionLimits } from "../types/engine-options.mjs";
5
+ import { Logger } from "@temelj/log";
6
+ //#region src/engine/context.d.ts
7
+ /** What engine operations share: the store, the clock, limits, IDs, logging, and observation. */
8
+ export interface EngineContext {
9
+ readonly store: WorkflowStore;
10
+ readonly now: () => Temporal.Instant;
11
+ readonly limits: ExecutionLimits;
12
+ readonly observation: ObservationEmitter;
13
+ readonly telemetry?: Telemetry;
14
+ readonly logger: Logger;
15
+ readonly createRunId: () => string;
16
+ }
17
+ //#endregion
@@ -1,106 +1,48 @@
1
- import { RunId } from "../types/run-id.mjs";
2
- import { CleanupMarkerRecord, CleanupRunsOptions, CleanupRunsResult, RetentionPolicyOptions } from "../types/cleanup.mjs";
3
- import { PageOptions, WorkflowPage } from "../types/pagination.mjs";
4
- import { ListSchedulesOptions, ListSchedulesPageOptions, ScheduleConfig, ScheduleId, ScheduleRecord, TickSchedulesOptions, TickSchedulesResult } from "../types/schedule.mjs";
5
- import { WorkflowImplementation, WorkflowStartTarget } from "../types/definition.mjs";
6
- import { HookInspection, ResumeHookOptions, ResumeWebhookOptions } from "../types/hook.mjs";
7
- import { AcquireLockOptions, LockRecord, ReleaseLockOptions, ReleaseStaleLockOptions } from "../types/lock.mjs";
8
- import { WorkflowListRunsOptions, WorkflowListRunsPageOptions, WorkflowListStepAttemptsPageOptions } from "../types/run-list.mjs";
9
- import { BroadcastMessageChannelOptions, BroadcastMessageInput, BroadcastMessageResult, MessageChannel, SendMessageChannelOptions, SendMessageInput } from "../types/message.mjs";
10
- import { StreamIdOrName } from "../types/stream-id.mjs";
11
- import { FollowStreamOptions, ReadStreamOptions, ReadStreamPageOptions, StreamChunk, StreamInfo, StreamPage, StreamState, StreamUpdate, WaitStreamOptions } from "../types/stream.mjs";
12
- import { WorkflowRecoverySummary, WorkflowRecoverySummaryOptions, WorkflowRunSummary, WorkflowRunSummaryOptions } from "../types/summary.mjs";
13
- import { WorkflowListStepAttemptsOptions, WorkflowStepAttemptRecord, WorkflowStepAttemptSummary } from "../types/step-attempts.mjs";
14
- import { ObservationEventHandler, ObservationEventPattern, ObservationUnsubscribe, ScheduleRunCreatedObservationEvent, WorkerOperationObservationEvent } from "../types/observation.mjs";
15
- import { Timeline } from "../types/timeline.mjs";
16
- import { ExecutionResult, WorkflowHandle } from "../types/result.mjs";
17
- import { WorkflowAttributePatch, WorkflowRunRecord } from "../types/run.mjs";
18
- import { EventRecord } from "../types/events.mjs";
19
- import { ScheduleNextOptions, WorkflowBatchStartItem, WorkflowExecutionOptions, WorkflowMarkRunPermanentlyFailedOptions, WorkflowReleaseStaleLeaseOptions, WorkflowRerunOptions, WorkflowRescheduleRunOptions, WorkflowResumeOptions, WorkflowRetryFailedRunOptions, WorkflowStartOptions } from "../types/run-options.mjs";
20
- import { WorkflowMessageIdempotencyIndex, WorkflowStorage, WorkflowStore } from "../types/store.mjs";
1
+ import { RunId } from "../types/ids.mjs";
2
+ import { ScheduleConfig, ScheduleRecord, TickSchedulesOptions, TickSchedulesResult } from "../types/schedule.mjs";
3
+ import { StartTarget, WorkflowImplementation } from "../types/definition.mjs";
4
+ import { AcquireLockOptions, LockRecord, ReleaseLockOptions } from "../types/lock.mjs";
5
+ import { ListRunsOptions } from "../types/run-list.mjs";
6
+ import { RunSummary } from "../types/summary.mjs";
7
+ import { ObservationEmitter } from "../types/observation.mjs";
8
+ import { ExecutionResult } from "../types/result.mjs";
9
+ import { RunRecord } from "../types/run.mjs";
10
+ import { WorkflowStorage, WorkflowStore } from "../types/store.mjs";
21
11
  import { CreateWorkflowEngineOptions } from "../types/engine-options.mjs";
22
- import { WorkflowEngine as WorkflowEngine$1 } from "../types/engine.mjs";
23
- import "../mod.mjs";
12
+ import { BatchStartItem, ExecutionOptions, RerunOptions, ResumeOptions, ScheduleNextOptions, StartOptions } from "../types/run-options.mjs";
13
+ import { EngineContext } from "./context.mjs";
14
+ import { RunRef } from "./start.mjs";
15
+ import { StorageValue } from "@temelj/storage";
24
16
  //#region src/engine/create.d.ts
25
- /** Creates workflow engine. */
26
- declare function createWorkflowEngine(options?: CreateWorkflowEngineOptions): WorkflowEngine$1;
27
- /** Storage-backed workflow engine implementation used by the default client and runtime. */
28
- declare class WorkflowEngine implements WorkflowEngine$1 {
17
+ interface EngineRunLifecycle {
18
+ readonly emitLifecycleEvent: (next: RunRecord, previous: RunRecord) => void | Promise<void>;
19
+ readonly emitRunMetadataUpdated: (next: RunRecord, previous: RunRecord) => void;
20
+ }
21
+ export declare function createWorkflowEngine(options?: CreateWorkflowEngineOptions): WorkflowEngine;
22
+ /** Executes workflows against a store; the client and workers build on it. */
23
+ export declare class WorkflowEngine {
29
24
  #private;
30
25
  readonly storage: WorkflowStorage;
31
26
  readonly store: WorkflowStore;
27
+ readonly observation: ObservationEmitter;
28
+ /** Shared by the engine's services and the client facades. */
29
+ readonly context: EngineContext;
30
+ readonly lifecycle: EngineRunLifecycle;
32
31
  constructor(options?: CreateWorkflowEngineOptions);
33
- on<Pattern extends ObservationEventPattern>(pattern: Pattern, handler: ObservationEventHandler<Pattern>): ObservationUnsubscribe;
34
- once<Pattern extends ObservationEventPattern>(pattern: Pattern, handler: ObservationEventHandler<Pattern>): ObservationUnsubscribe;
35
- off<Pattern extends ObservationEventPattern>(pattern: Pattern, handler: ObservationEventHandler<Pattern>): void;
36
- listeners(): readonly ObservationEventHandler[];
37
- listeners<Pattern extends ObservationEventPattern>(pattern: Pattern): readonly ObservationEventHandler<Pattern>[];
38
- clearListeners(pattern?: ObservationEventPattern): void;
39
- listenerCount(pattern?: ObservationEventPattern): number;
40
32
  close(): Promise<void>;
41
- observeWorkerOperation(event: WorkerOperationObservationEvent): void;
42
- observeScheduleRunCreated(event: ScheduleRunCreatedObservationEvent): void;
43
- startWorkflow<TInput, TOutput, TRawInput = TInput>(workflow: WorkflowStartTarget<TInput, TOutput, TRawInput>, input: TRawInput, options?: WorkflowStartOptions): Promise<WorkflowHandle<TOutput>>;
44
- startWorkflows<TInput, TOutput, TRawInput = TInput>(workflow: WorkflowStartTarget<TInput, TOutput, TRawInput>, items: readonly WorkflowBatchStartItem<TRawInput>[]): Promise<readonly WorkflowHandle<TOutput>[]>;
45
- scheduleNextWorkflow<TInput, TOutput, TRawInput = TInput>(workflow: WorkflowStartTarget<TInput, TOutput, TRawInput>, input: TRawInput, options: ScheduleNextOptions): Promise<WorkflowHandle<TOutput>>;
46
- createSchedule<TInput, TOutput, TRawInput = TInput>(workflow: WorkflowStartTarget<TInput, TOutput, TRawInput>, scheduleOptions: ScheduleConfig<TInput, TRawInput>): Promise<ScheduleRecord<TInput>>;
47
- upsertSchedule<TInput, TOutput, TRawInput = TInput>(workflow: WorkflowStartTarget<TInput, TOutput, TRawInput>, scheduleOptions: ScheduleConfig<TInput, TRawInput>): Promise<ScheduleRecord<TInput>>;
48
- getSchedule(scheduleId: ScheduleId): Promise<ScheduleRecord | undefined>;
49
- listSchedules(options?: ListSchedulesOptions): Promise<readonly ScheduleRecord[]>;
50
- listSchedulesPage(options?: ListSchedulesPageOptions): Promise<WorkflowPage<ScheduleRecord>>;
51
- pauseSchedule(scheduleId: ScheduleId): Promise<ScheduleRecord>;
52
- resumeSchedule(scheduleId: ScheduleId): Promise<ScheduleRecord>;
53
- archiveSchedule(scheduleId: ScheduleId): Promise<ScheduleRecord>;
54
- deleteSchedule(scheduleId: ScheduleId): Promise<ScheduleRecord>;
33
+ startWorkflow<TInput, TOutput, TRawInput = TInput>(workflow: StartTarget<TInput, TOutput, TRawInput>, input: TRawInput, options?: StartOptions): Promise<RunRef<TOutput>>;
34
+ startWorkflows<TInput, TOutput, TRawInput = TInput>(workflow: StartTarget<TInput, TOutput, TRawInput>, items: readonly BatchStartItem<TRawInput>[]): Promise<readonly RunRef<TOutput>[]>;
35
+ getRunRef(runId: RunId): Promise<RunRef<StorageValue | undefined>>;
36
+ scheduleNextWorkflow<TInput, TOutput, TRawInput = TInput>(workflow: StartTarget<TInput, TOutput, TRawInput>, input: TRawInput, options: ScheduleNextOptions): Promise<RunRef<TOutput>>;
37
+ createSchedule<TInput, TOutput, TRawInput = TInput>(workflow: StartTarget<TInput, TOutput, TRawInput>, scheduleOptions: ScheduleConfig<TInput, TRawInput>): Promise<ScheduleRecord>;
55
38
  tickSchedules(options?: TickSchedulesOptions): Promise<TickSchedulesResult>;
56
39
  acquireLock(key: string, options: AcquireLockOptions): Promise<LockRecord>;
57
- getLock(key: string): Promise<LockRecord | undefined>;
58
- listLocks(): Promise<readonly LockRecord[]>;
59
40
  releaseLock(key: string, options: ReleaseLockOptions): Promise<LockRecord>;
60
- releaseStaleLock(key: string, options?: ReleaseStaleLockOptions): Promise<LockRecord>;
61
- runWorkflow<TInput, TOutput, TRawInput = TInput>(implementation: WorkflowImplementation<TInput, TOutput, TRawInput>, input: TRawInput, options?: WorkflowExecutionOptions): Promise<WorkflowHandle<TOutput>>;
62
- runWorkflowNow<TInput, TOutput, TRawInput = TInput>(implementation: WorkflowImplementation<TInput, TOutput, TRawInput>, input: TRawInput, options?: WorkflowExecutionOptions): Promise<ExecutionResult<TOutput>>;
63
- resumeWorkflow<TInput, TOutput, TRawInput = TInput>(implementation: WorkflowImplementation<TInput, TOutput, TRawInput>, runId: RunId, options?: WorkflowResumeOptions): Promise<ExecutionResult<TOutput>>;
64
- getRun(runId: RunId): Promise<WorkflowRunRecord | undefined>;
65
- getEvents(runId: RunId): Promise<readonly EventRecord[]>;
66
- listEventsPage(runId: RunId, options?: PageOptions): Promise<WorkflowPage<EventRecord>>;
67
- listRuns(options?: WorkflowListRunsOptions): Promise<readonly WorkflowRunRecord[]>;
68
- listRunsPage(options?: WorkflowListRunsPageOptions): Promise<WorkflowPage<WorkflowRunRecord>>;
69
- countRuns(options?: WorkflowListRunsOptions): Promise<number>;
70
- getRunSummary(options?: WorkflowRunSummaryOptions): Promise<WorkflowRunSummary>;
71
- getRecoverySummary(options?: WorkflowRecoverySummaryOptions): Promise<WorkflowRecoverySummary>;
72
- getTimeline(runId: RunId): Promise<Timeline>;
73
- listStepAttempts(runId: RunId, options?: WorkflowListStepAttemptsOptions): Promise<readonly WorkflowStepAttemptRecord[]>;
74
- listStepAttemptsPage(runId: RunId, options?: WorkflowListStepAttemptsPageOptions): Promise<WorkflowPage<WorkflowStepAttemptRecord>>;
75
- countStepAttempts(runId: RunId, options?: WorkflowListStepAttemptsOptions): Promise<number>;
76
- repairStepAttempts(runId: RunId): Promise<readonly WorkflowStepAttemptRecord[]>;
77
- repairMessageIdempotencyIndexes(runId: RunId): Promise<readonly WorkflowMessageIdempotencyIndex[]>;
78
- getStepAttemptSummary(runId: RunId, options?: WorkflowListStepAttemptsOptions): Promise<WorkflowStepAttemptSummary>;
79
- cleanupRuns(options: CleanupRunsOptions): Promise<CleanupRunsResult>;
80
- listCleanupMarkers(): Promise<readonly CleanupMarkerRecord[]>;
81
- applyRetentionPolicy(retentionOptions: RetentionPolicyOptions): Promise<CleanupRunsResult>;
82
- rerunWorkflow(runId: RunId, options?: WorkflowRerunOptions): Promise<WorkflowHandle<unknown>>;
83
- rescheduleRun(runId: RunId, options?: WorkflowRescheduleRunOptions): Promise<WorkflowRunRecord>;
84
- releaseStaleRunLease(runId: RunId, options?: WorkflowReleaseStaleLeaseOptions): Promise<WorkflowRunRecord>;
85
- retryFailedRun(runId: RunId, options?: WorkflowRetryFailedRunOptions): Promise<WorkflowRunRecord>;
86
- markRunPermanentlyFailed(runId: RunId, options: WorkflowMarkRunPermanentlyFailedOptions): Promise<WorkflowRunRecord>;
87
- updateRunMetadata(runId: RunId, metadata: unknown): Promise<WorkflowRunRecord>;
88
- setRunAttributes(runId: RunId, attributes: WorkflowAttributePatch): Promise<WorkflowRunRecord>;
89
- cancelRun(runId: RunId): Promise<WorkflowRunRecord>;
90
- resumeHook(token: string, options?: ResumeHookOptions): Promise<void>;
91
- resumeWebhook(token: string, options?: ResumeWebhookOptions): Promise<void>;
92
- disposeHook(token: string): Promise<HookInspection>;
93
- disposeWebhook(token: string): Promise<HookInspection>;
94
- getHookByToken(token: string): Promise<HookInspection>;
95
- getStreamInfo(runId: RunId, streamIdOrName: StreamIdOrName): Promise<StreamInfo>;
96
- followStream<TChunk = unknown>(runId: RunId, streamIdOrName: StreamIdOrName, followOptions?: FollowStreamOptions): AsyncIterable<StreamUpdate<TChunk>>;
97
- waitForStream(runId: RunId, streamIdOrName: StreamIdOrName, waitOptions?: WaitStreamOptions): Promise<StreamInfo | undefined>;
98
- waitForStreamChunk<TChunk = unknown>(runId: RunId, streamIdOrName: StreamIdOrName, afterIndex: number, waitOptions?: WaitStreamOptions): Promise<StreamChunk<TChunk> | undefined>;
99
- waitForStreamTerminal(runId: RunId, streamIdOrName: StreamIdOrName, waitOptions?: WaitStreamOptions): Promise<StreamInfo | undefined>;
100
- readStream<TChunk = unknown>(runId: RunId, streamIdOrName: StreamIdOrName, readOptions?: ReadStreamOptions): Promise<StreamState<TChunk>>;
101
- readStreamPage<TChunk = unknown>(runId: RunId, streamIdOrName: StreamIdOrName, readOptions?: ReadStreamPageOptions): Promise<StreamPage<TChunk>>;
102
- sendMessage<TPayload, TKey = void>(runId: RunId, messageInput: SendMessageInput | MessageChannel<TPayload, TKey>, channelOptions?: SendMessageChannelOptions<TPayload, TKey>): Promise<void>;
103
- broadcastMessage<TPayload, TKey = void>(messageInput: BroadcastMessageInput | MessageChannel<TPayload, TKey>, channelOptions?: BroadcastMessageChannelOptions<TPayload, TKey>): Promise<BroadcastMessageResult>;
41
+ runWorkflow<TInput, TOutput, TRawInput = TInput>(implementation: WorkflowImplementation<TInput, TOutput, TRawInput>, input: TRawInput, options?: ExecutionOptions): Promise<RunRef<TOutput>>;
42
+ runWorkflowNow<TInput, TOutput, TRawInput = TInput>(implementation: WorkflowImplementation<TInput, TOutput, TRawInput>, input: TRawInput, options?: ExecutionOptions): Promise<ExecutionResult<TOutput>>;
43
+ resumeWorkflow<TInput, TOutput, TRawInput = TInput>(implementation: WorkflowImplementation<TInput, TOutput, TRawInput>, runId: RunId, options?: ResumeOptions): Promise<ExecutionResult<TOutput>>;
44
+ getRunSummary(options?: ListRunsOptions): Promise<RunSummary>;
45
+ rerunWorkflow(runId: RunId, options?: RerunOptions): Promise<RunRef<unknown>>;
104
46
  }
105
47
  //#endregion
106
- export { WorkflowEngine, createWorkflowEngine };
48
+ export {};