@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,29 +0,0 @@
1
- import { RunId } from "../types/run-id.mjs";
2
- import { WorkflowImplementation } from "../types/definition.mjs";
3
- import { ExecutionResult, WorkflowHandle } from "../types/result.mjs";
4
- import { WorkflowRunRecord } from "../types/run.mjs";
5
- import { WorkflowExecutionOptions, WorkflowResumeOptions } from "../types/run-options.mjs";
6
- import { WorkflowConditionalEventAppender, WorkflowEventReader, WorkflowLockConditionalWriterRepository, WorkflowLockListerRepository, WorkflowRunReaderRepository, WorkflowRunWriterRepository, WorkflowStepAttemptLookup } from "../types/store.mjs";
7
- import { WorkflowRunStarter } from "../types/engine.mjs";
8
- import { WorkflowExecutionServiceOptions } from "./execution-service.mjs";
9
- //#region src/engine/execution-api.d.ts
10
- interface WorkflowEngineExecutionApi {
11
- runWorkflow<TInput, TOutput, TRawInput = TInput>(implementation: WorkflowImplementation<TInput, TOutput, TRawInput>, input: TRawInput, options?: WorkflowExecutionOptions): Promise<WorkflowHandle<TOutput>>;
12
- runWorkflowNow<TInput, TOutput, TRawInput = TInput>(implementation: WorkflowImplementation<TInput, TOutput, TRawInput>, input: TRawInput, options?: WorkflowExecutionOptions): Promise<ExecutionResult<TOutput>>;
13
- resumeWorkflow<TInput, TOutput, TRawInput = TInput>(implementation: WorkflowImplementation<TInput, TOutput, TRawInput>, runId: RunId, options?: WorkflowResumeOptions): Promise<ExecutionResult<TOutput>>;
14
- }
15
- type WorkflowEngineExecutionApiStore = WorkflowRunReaderRepository & WorkflowRunWriterRepository & WorkflowConditionalEventAppender & WorkflowEventReader & WorkflowStepAttemptLookup & WorkflowLockListerRepository & WorkflowLockConditionalWriterRepository;
16
- interface WorkflowEngineExecutionResumer {
17
- resumeWorkflow<TInput, TOutput, TRawInput = TInput>(implementation: WorkflowImplementation<TInput, TOutput, TRawInput>, runId: RunId, options?: WorkflowResumeOptions): Promise<ExecutionResult<TOutput>>;
18
- }
19
- interface WorkflowEngineExecutionApiOptions {
20
- readonly store: WorkflowEngineExecutionApiStore;
21
- readonly now: () => Temporal.Instant;
22
- readonly executionService: WorkflowExecutionServiceOptions;
23
- readonly emitResultLifecycleEvent: <TOutput>(result: ExecutionResult<TOutput>, previous?: WorkflowRunRecord) => Promise<ExecutionResult<TOutput>>;
24
- readonly starter: WorkflowRunStarter;
25
- readonly resumer: WorkflowEngineExecutionResumer;
26
- }
27
- declare function createWorkflowEngineExecutionApi(service: WorkflowEngineExecutionApiOptions): WorkflowEngineExecutionApi;
28
- //#endregion
29
- export { WorkflowEngineExecutionApi, createWorkflowEngineExecutionApi };
@@ -1,33 +0,0 @@
1
- import { getRequiredRun } from "../utility.mjs";
2
- import { makeCanceledRunResult, makeCompletedRunResult } from "./run-utils.mjs";
3
- import { failRunForDeadline, requireDefinitionMatchesRun } from "./state.mjs";
4
- import { executeWorkflowRun } from "./execution-service.mjs";
5
- //#region src/engine/execution-api.ts
6
- function createWorkflowEngineExecutionApi(service) {
7
- return {
8
- async runWorkflow(implementation, input, executionOptions) {
9
- return await service.starter.startWorkflow(implementation.definition, input, executionOptions?.start);
10
- },
11
- async runWorkflowNow(implementation, input, executionOptions) {
12
- const handle = await service.starter.startWorkflow(implementation.definition, input, executionOptions?.start);
13
- return await service.resumer.resumeWorkflow(implementation, handle.runId, { signal: executionOptions?.signal });
14
- },
15
- async resumeWorkflow(implementation, runId, resumeOptions) {
16
- const run = await getRequiredRun(service.store, runId);
17
- requireDefinitionMatchesRun(implementation.definition, run);
18
- if (run.status === "completed") return makeCompletedRunResult(run);
19
- if (run.status === "canceled") return makeCanceledRunResult(run);
20
- const timestamp = service.now();
21
- if (run.deadlineAt !== void 0 && Temporal.Instant.compare(run.deadlineAt, timestamp) <= 0) return await service.emitResultLifecycleEvent(await failRunForDeadline(service.store, run, run.deadlineAt, timestamp), run);
22
- const availableAt = run.availableAt;
23
- if (availableAt !== void 0 && Temporal.Instant.compare(availableAt, timestamp) > 0) return {
24
- kind: "waiting",
25
- run,
26
- availableAt
27
- };
28
- return await executeWorkflowRun(service.executionService, implementation, run, resumeOptions);
29
- }
30
- };
31
- }
32
- //#endregion
33
- export { createWorkflowEngineExecutionApi };
@@ -1,34 +0,0 @@
1
- import { RunId } from "../types/run-id.mjs";
2
- import { PageOptions, WorkflowPage } from "../types/pagination.mjs";
3
- import { WorkflowListRunsOptions, WorkflowListRunsPageOptions, WorkflowListStepAttemptsPageOptions } from "../types/run-list.mjs";
4
- import { WorkflowRecoverySummary, WorkflowRecoverySummaryOptions, WorkflowRunSummary, WorkflowRunSummaryOptions } from "../types/summary.mjs";
5
- import { WorkflowListStepAttemptsOptions, WorkflowStepAttemptRecord, WorkflowStepAttemptSummary } from "../types/step-attempts.mjs";
6
- import { Timeline } from "../types/timeline.mjs";
7
- import { WorkflowRunRecord } from "../types/run.mjs";
8
- import { EventRecord } from "../types/events.mjs";
9
- import { WorkflowEventReader, WorkflowLockListerRepository, WorkflowMessageIdempotencyIndex, WorkflowRunQueryRepository, WorkflowScheduleListerRepository, WorkflowStepAttemptReadModel } from "../types/store.mjs";
10
- //#region src/engine/inspection-api.d.ts
11
- interface WorkflowEngineInspectionApi {
12
- getRun(runId: RunId): Promise<WorkflowRunRecord | undefined>;
13
- getEvents(runId: RunId): Promise<readonly EventRecord[]>;
14
- listEventsPage(runId: RunId, options?: PageOptions): Promise<WorkflowPage<EventRecord>>;
15
- listRuns(options?: WorkflowListRunsOptions): Promise<readonly WorkflowRunRecord[]>;
16
- listRunsPage(options?: WorkflowListRunsPageOptions): Promise<WorkflowPage<WorkflowRunRecord>>;
17
- countRuns(options?: WorkflowListRunsOptions): Promise<number>;
18
- getRunSummary(options?: WorkflowRunSummaryOptions): Promise<WorkflowRunSummary>;
19
- getRecoverySummary(options?: WorkflowRecoverySummaryOptions): Promise<WorkflowRecoverySummary>;
20
- getTimeline(runId: RunId): Promise<Timeline>;
21
- listStepAttempts(runId: RunId, options?: WorkflowListStepAttemptsOptions): Promise<readonly WorkflowStepAttemptRecord[]>;
22
- listStepAttemptsPage(runId: RunId, options?: WorkflowListStepAttemptsPageOptions): Promise<WorkflowPage<WorkflowStepAttemptRecord>>;
23
- countStepAttempts(runId: RunId, options?: WorkflowListStepAttemptsOptions): Promise<number>;
24
- repairStepAttempts(runId: RunId): Promise<readonly WorkflowStepAttemptRecord[]>;
25
- repairMessageIdempotencyIndexes(runId: RunId): Promise<readonly WorkflowMessageIdempotencyIndex[]>;
26
- getStepAttemptSummary(runId: RunId, options?: WorkflowListStepAttemptsOptions): Promise<WorkflowStepAttemptSummary>;
27
- }
28
- interface WorkflowInspectionRepairStore {
29
- repairMessageIdempotencyIndexes(runId: RunId): Promise<readonly WorkflowMessageIdempotencyIndex[]>;
30
- }
31
- type WorkflowEngineInspectionStore = WorkflowRunQueryRepository & WorkflowEventReader & WorkflowInspectionRepairStore & WorkflowStepAttemptReadModel & WorkflowLockListerRepository & WorkflowScheduleListerRepository;
32
- declare function createWorkflowEngineInspectionApi(store: WorkflowEngineInspectionStore, now: () => Temporal.Instant): WorkflowEngineInspectionApi;
33
- //#endregion
34
- export { WorkflowEngineInspectionApi, createWorkflowEngineInspectionApi };
@@ -1,78 +0,0 @@
1
- import { getRequiredRun } from "../utility.mjs";
2
- import { createTimeline } from "../history/timeline.mjs";
3
- import "../history/mod.mjs";
4
- import "./state.mjs";
5
- import { makeWorkflowEventCursorKey, pageItems } from "../pagination.mjs";
6
- import { getChildRunsForAttempts } from "./summary/child-workflow-runs.mjs";
7
- import { getWorkflowRecoverySummary, getWorkflowRunSummary } from "./inspection.mjs";
8
- import { createWorkflowStepAttemptSummaryReducer } from "./summary/step-attempts.mjs";
9
- //#region src/engine/inspection-api.ts
10
- function createWorkflowEngineInspectionApi(store, now) {
11
- return {
12
- async getRun(runId) {
13
- return await store.getRun(runId);
14
- },
15
- async getEvents(runId) {
16
- return await store.getEvents(runId);
17
- },
18
- async listEventsPage(runId, options) {
19
- return pageItems(await store.getEvents(runId), options, "Workflow event page", makeWorkflowEventCursorKey);
20
- },
21
- async listRuns(options) {
22
- return await store.listRuns(options);
23
- },
24
- async listRunsPage(options) {
25
- return await store.listRunsPage(options);
26
- },
27
- async countRuns(options) {
28
- return await store.countRuns(options);
29
- },
30
- async getRunSummary(options) {
31
- return await getWorkflowRunSummary({
32
- store,
33
- now: now(),
34
- filters: options
35
- });
36
- },
37
- async getRecoverySummary(options) {
38
- return await getWorkflowRecoverySummary({
39
- store,
40
- now: now(),
41
- filters: options
42
- });
43
- },
44
- async getTimeline(runId) {
45
- const run = await getRequiredRun(store, runId);
46
- return createTimeline(run, await store.getEvents(runId));
47
- },
48
- async listStepAttempts(runId, options) {
49
- await getRequiredRun(store, runId);
50
- return await store.listStepAttempts(runId, options);
51
- },
52
- async listStepAttemptsPage(runId, options) {
53
- await getRequiredRun(store, runId);
54
- return await store.listStepAttemptsPage(runId, options);
55
- },
56
- async countStepAttempts(runId, options) {
57
- await getRequiredRun(store, runId);
58
- return await store.countStepAttempts(runId, options);
59
- },
60
- async repairStepAttempts(runId) {
61
- await getRequiredRun(store, runId);
62
- return await store.repairStepAttempts(runId);
63
- },
64
- async repairMessageIdempotencyIndexes(runId) {
65
- await getRequiredRun(store, runId);
66
- return await store.repairMessageIdempotencyIndexes(runId);
67
- },
68
- async getStepAttemptSummary(runId, options) {
69
- await getRequiredRun(store, runId);
70
- const attempts = await store.listStepAttempts(runId, options);
71
- const reducer = createWorkflowStepAttemptSummaryReducer(await getChildRunsForAttempts(store, runId, attempts));
72
- for (const attempt of attempts) reducer.addAttempt(attempt);
73
- return reducer.finish();
74
- }
75
- };
76
- }
77
- //#endregion
78
- export { createWorkflowEngineInspectionApi };
@@ -1,4 +0,0 @@
1
- import { CreateWorkflowEngineOptions, WorkflowDeterministicBytesContext, WorkflowDeterministicValueContext, WorkflowEngineSerializationLimits, WorkflowExecutionLimits, WorkflowRecordedIdContext } from "../types/engine-options.mjs";
2
- import { LockManager, WorkflowAdmin, WorkflowCleanupAdmin, WorkflowClientEngine, WorkflowEngineLike, WorkflowExecutionEnvironment, WorkflowExecutionEnvironmentStore, WorkflowExecutor, WorkflowHookManager, WorkflowMessageIdempotencyMaintenance, WorkflowMessageSender, WorkflowRunCanceler, WorkflowRunHandleReader, WorkflowRunMaintenance, WorkflowRunReader, WorkflowRunRerunner, WorkflowRunStarter, WorkflowScheduleRunObserver, WorkflowScheduler, WorkflowStarter, WorkflowStepAttemptLookupReader, WorkflowStepAttemptMaintenance, WorkflowStepAttemptReader, WorkflowStreamReader, WorkflowWorkerEngine, WorkflowWorkerEngineStore, WorkflowWorkerOperationObserver } from "../types/engine.mjs";
3
- import { WorkflowEngine, createWorkflowEngine } from "./create.mjs";
4
- export { type CreateWorkflowEngineOptions, type LockManager, type WorkflowAdmin, type WorkflowCleanupAdmin, type WorkflowClientEngine, type WorkflowDeterministicBytesContext, type WorkflowDeterministicValueContext, WorkflowEngine, type WorkflowEngineLike, type WorkflowEngineSerializationLimits, type WorkflowExecutionEnvironment, type WorkflowExecutionEnvironmentStore, type WorkflowExecutionLimits, type WorkflowExecutor, type WorkflowHookManager, type WorkflowMessageIdempotencyMaintenance, type WorkflowMessageSender, type WorkflowRecordedIdContext, type WorkflowRunCanceler, type WorkflowRunHandleReader, type WorkflowRunMaintenance, type WorkflowRunReader, type WorkflowRunRerunner, type WorkflowRunStarter, type WorkflowScheduleRunObserver, type WorkflowScheduler, type WorkflowStarter, type WorkflowStepAttemptLookupReader, type WorkflowStepAttemptMaintenance, type WorkflowStepAttemptReader, type WorkflowStreamReader, type WorkflowWorkerEngine, type WorkflowWorkerEngineStore, type WorkflowWorkerOperationObserver, createWorkflowEngine };
@@ -1,2 +0,0 @@
1
- import { WorkflowEngine, createWorkflowEngine } from "./create.mjs";
2
- export { WorkflowEngine, createWorkflowEngine };
@@ -1,26 +0,0 @@
1
- import { ScheduleRecord } from "../types/schedule.mjs";
2
- import { LockRecord } from "../types/lock.mjs";
3
- import { WorkflowRecoverySummary } from "../types/summary.mjs";
4
- import { WorkflowStepAttemptRecord } from "../types/step-attempts.mjs";
5
- import { WorkflowRunRecord } from "../types/run.mjs";
6
- import { WorkflowRecoveryWaitInputs } from "./summary/recovery-waits.mjs";
7
- //#region src/engine/recovery.d.ts
8
- interface WorkflowRecoverySummaryInputs extends WorkflowRecoveryWaitInputs {
9
- readonly lockWaitAttempts?: readonly WorkflowStepAttemptRecord[];
10
- readonly locks?: readonly LockRecord[];
11
- readonly schedules?: readonly ScheduleRecord[];
12
- }
13
- interface WorkflowRecoverySummaryOptions {
14
- readonly runs: readonly WorkflowRunRecord[];
15
- readonly now: Temporal.Instant;
16
- readonly inputs?: WorkflowRecoverySummaryInputs;
17
- }
18
- interface WorkflowRecoveryDeadline {
19
- readonly timestamp: Temporal.Instant;
20
- }
21
- declare function summarizeWorkflowRecovery(options: WorkflowRecoverySummaryOptions): WorkflowRecoverySummary;
22
- declare function mergeWorkflowRecoveryRunIds(runIdGroups: readonly (readonly string[])[]): readonly string[];
23
- declare function workflowRecoveryDeadline(ownerId: string | undefined, timestamp: Temporal.Instant | undefined): WorkflowRecoveryDeadline | undefined;
24
- declare function earliestWorkflowRecoveryDeadline(candidates: readonly (WorkflowRecoveryDeadline | undefined)[]): WorkflowRecoveryDeadline | undefined;
25
- //#endregion
26
- export { WorkflowRecoveryDeadline, WorkflowRecoverySummaryInputs, WorkflowRecoverySummaryOptions, earliestWorkflowRecoveryDeadline, mergeWorkflowRecoveryRunIds, summarizeWorkflowRecovery, workflowRecoveryDeadline };
@@ -1,92 +0,0 @@
1
- import { createWorkflowRecoveryLockSummaryReducer } from "./summary/recovery-locks.mjs";
2
- import { createWorkflowRecoveryRunSummaryReducer } from "./summary/recovery-runs.mjs";
3
- import { createWorkflowRecoveryScheduleSummaryReducer } from "./summary/recovery-schedules.mjs";
4
- import { createWorkflowRecoveryWaitSummaryReducer } from "./summary/recovery-waits.mjs";
5
- //#region src/engine/recovery.ts
6
- function recoveryWaitInputs(inputs) {
7
- return {
8
- sleepAttempts: inputs.sleepAttempts,
9
- messageWaitAttempts: inputs.messageWaitAttempts,
10
- childWorkflowAttempts: inputs.childWorkflowAttempts,
11
- childRuns: inputs.childRuns,
12
- eventsByRunId: inputs.eventsByRunId
13
- };
14
- }
15
- function recoveryResourceInputs(inputs) {
16
- return {
17
- lockWaitAttempts: inputs.lockWaitAttempts,
18
- locks: inputs.locks,
19
- schedules: inputs.schedules
20
- };
21
- }
22
- function summarizeWorkflowRecovery(options) {
23
- const { runs, now, inputs = {} } = options;
24
- const waitInputs = recoveryWaitInputs(inputs);
25
- const resources = recoveryResourceInputs(inputs);
26
- const runReducer = createWorkflowRecoveryRunSummaryReducer(now);
27
- for (const run of runs) runReducer.addRun(run);
28
- const runSummary = runReducer.finish();
29
- const waitReducer = createWorkflowRecoveryWaitSummaryReducer(waitInputs, now);
30
- waitReducer.addSleepAttempts(waitInputs.sleepAttempts ?? []);
31
- waitReducer.addMessageWaitAttempts(waitInputs.messageWaitAttempts ?? []);
32
- waitReducer.addChildWorkflowAttempts(waitInputs.childWorkflowAttempts ?? []);
33
- const wait = waitReducer.finish();
34
- const lockReducer = createWorkflowRecoveryLockSummaryReducer(runs, now);
35
- for (const lockRecord of resources.locks ?? []) lockReducer.addLock(lockRecord);
36
- for (const attempt of resources.lockWaitAttempts ?? []) lockReducer.addLockWaitAttempt(attempt);
37
- const lock = lockReducer.finish();
38
- const scheduleReducer = createWorkflowRecoveryScheduleSummaryReducer(now);
39
- for (const scheduleRecord of resources.schedules ?? []) scheduleReducer.addSchedule(scheduleRecord);
40
- const schedule = scheduleReducer.finish();
41
- const recoverableRunIds = mergeWorkflowRecoveryRunIds([
42
- runSummary.recoverableRunIds,
43
- wait.sleep.dueRunIds,
44
- wait.message.readyRunIds,
45
- wait.message.timedOutRunIds,
46
- wait.childWorkflow.terminalRunIds,
47
- wait.childWorkflow.missingRunIds,
48
- wait.childWorkflow.timedOutRunIds
49
- ]);
50
- const summary = {
51
- total: runSummary.total,
52
- recoverableRunIds,
53
- due: runSummary.due,
54
- lease: runSummary.lease,
55
- retry: runSummary.retry,
56
- missingImplementation: runSummary.missingImplementation,
57
- failed: runSummary.failed,
58
- schedule,
59
- lock,
60
- wait
61
- };
62
- const nextRecovery = earliestWorkflowRecoveryDeadline([
63
- runSummary.nextAvailable,
64
- runSummary.nextLeaseExpires,
65
- runSummary.nextRetry,
66
- workflowRecoveryDeadline(schedule.nextFireScheduleId, schedule.nextFireAt),
67
- workflowRecoveryDeadline(lock.nextExpiringKey, lock.nextExpiresAt),
68
- workflowRecoveryDeadline(lock.nextWaitDeadlineRunId, lock.nextWaitDeadlineAt),
69
- workflowRecoveryDeadline(wait.sleep.nextWakeRunId, wait.sleep.nextWakeAt),
70
- workflowRecoveryDeadline(wait.message.nextTimeoutRunId, wait.message.nextTimeoutAt),
71
- workflowRecoveryDeadline(wait.childWorkflow.nextTimeoutRunId, wait.childWorkflow.nextTimeoutAt)
72
- ]);
73
- return {
74
- ...summary,
75
- ...nextRecovery === void 0 ? {} : { nextRecoveryAt: nextRecovery.timestamp }
76
- };
77
- }
78
- function mergeWorkflowRecoveryRunIds(runIdGroups) {
79
- return [...new Set(runIdGroups.flat())].sort();
80
- }
81
- function workflowRecoveryDeadline(ownerId, timestamp) {
82
- return ownerId === void 0 || timestamp === void 0 ? void 0 : { timestamp };
83
- }
84
- function earliestWorkflowRecoveryDeadline(candidates) {
85
- return candidates.reduce((current, candidate) => {
86
- if (candidate === void 0) return current;
87
- if (current === void 0) return candidate;
88
- return Temporal.Instant.compare(candidate.timestamp, current.timestamp) < 0 ? candidate : current;
89
- }, void 0);
90
- }
91
- //#endregion
92
- export { earliestWorkflowRecoveryDeadline, mergeWorkflowRecoveryRunIds, summarizeWorkflowRecovery, workflowRecoveryDeadline };
@@ -1,4 +0,0 @@
1
- //#region src/engine/retry-policy.d.ts
2
- declare const MAX_CONCURRENT_RUN_UPDATE_ATTEMPTS = 16;
3
- //#endregion
4
- export { MAX_CONCURRENT_RUN_UPDATE_ATTEMPTS };
@@ -1,4 +0,0 @@
1
- //#region src/engine/retry-policy.ts
2
- const MAX_CONCURRENT_RUN_UPDATE_ATTEMPTS = 16;
3
- //#endregion
4
- export { MAX_CONCURRENT_RUN_UPDATE_ATTEMPTS };
@@ -1,30 +0,0 @@
1
- import { WorkflowStartTarget } from "../types/definition.mjs";
2
- import { HandleOperations, WorkflowHandle } from "../types/result.mjs";
3
- import { Telemetry } from "../types/telemetry.mjs";
4
- import { WorkflowRunRecord } from "../types/run.mjs";
5
- import { ResolvedScheduleNextOptions, ScheduleNextOptions, WorkflowBatchStartItem, WorkflowStartOptions } from "../types/run-options.mjs";
6
- import { WorkflowEventReader, WorkflowIdempotencyIndex, WorkflowRunCreationRepository, WorkflowRunReaderRepository, WorkflowStoreNamespace } from "../types/store.mjs";
7
- import { WorkflowExecutionLimits } from "../types/engine-options.mjs";
8
- import { WorkflowRunStarter } from "../types/engine.mjs";
9
- //#region src/engine/start-api.d.ts
10
- interface WorkflowEngineStartApi {
11
- startWorkflow<TInput, TOutput, TRawInput = TInput>(workflow: WorkflowStartTarget<TInput, TOutput, TRawInput>, input: TRawInput, options?: WorkflowStartOptions): Promise<WorkflowHandle<TOutput>>;
12
- startWorkflows<TInput, TOutput, TRawInput = TInput>(workflow: WorkflowStartTarget<TInput, TOutput, TRawInput>, items: readonly WorkflowBatchStartItem<TRawInput>[]): Promise<readonly WorkflowHandle<TOutput>[]>;
13
- scheduleNextWorkflow<TInput, TOutput, TRawInput = TInput>(workflow: WorkflowStartTarget<TInput, TOutput, TRawInput>, input: TRawInput, options: ScheduleNextOptions): Promise<WorkflowHandle<TOutput>>;
14
- }
15
- /** Resolves schedule-next options and derives the start time for the next run. */
16
- declare function resolveScheduleNextOptions(options: ScheduleNextOptions, now: () => Temporal.Instant): ResolvedScheduleNextOptions;
17
- type WorkflowEngineStartStore = WorkflowStoreNamespace & WorkflowRunCreationRepository & WorkflowRunReaderRepository & WorkflowIdempotencyIndex & WorkflowEventReader;
18
- interface WorkflowEngineStartApiOptions {
19
- readonly store: WorkflowEngineStartStore;
20
- readonly now: () => Temporal.Instant;
21
- readonly limits: WorkflowExecutionLimits;
22
- readonly createRunId: () => string;
23
- readonly telemetry?: Telemetry;
24
- readonly emitRunEvent: (run: WorkflowRunRecord) => void;
25
- readonly starter: WorkflowRunStarter;
26
- readonly handleOperations: HandleOperations;
27
- }
28
- declare function createWorkflowEngineStartApi(service: WorkflowEngineStartApiOptions): WorkflowEngineStartApi;
29
- //#endregion
30
- export { WorkflowEngineStartApi, createWorkflowEngineStartApi, resolveScheduleNextOptions };
@@ -1,99 +0,0 @@
1
- import { defineWorkflowFromTarget, parseWorkflowInput } from "../definition.mjs";
2
- import { captureTelemetryContext } from "../telemetry.mjs";
3
- import { toOptionalPersistedValue, toPersistedValue } from "./serialization.mjs";
4
- import { workflowHandle } from "./run-utils.mjs";
5
- import { resolveWorkflowStartSpec } from "./run-service.mjs";
6
- //#region src/engine/start-api.ts
7
- /** Resolves schedule-next options and derives the start time for the next run. */
8
- function resolveScheduleNextOptions(options, now) {
9
- const from = options.from ?? now();
10
- const start = {
11
- ...options.id === void 0 ? {} : { id: options.id },
12
- idempotencyKey: options.idempotencyKey,
13
- ...options.workflowVersion === void 0 ? {} : { workflowVersion: options.workflowVersion },
14
- ...options.workflowVersionResolver === void 0 ? {} : { workflowVersionResolver: options.workflowVersionResolver },
15
- ...options.context === void 0 ? {} : { context: options.context },
16
- ...options.parent === void 0 ? {} : { parent: options.parent },
17
- availableAt: from.toZonedDateTimeISO("UTC").add(options.every).toInstant(),
18
- ...options.deadlineAt === void 0 ? {} : { deadlineAt: options.deadlineAt }
19
- };
20
- return {
21
- schedule: {
22
- ...options,
23
- from
24
- },
25
- start
26
- };
27
- }
28
- function createWorkflowEngineStartApi(service) {
29
- return {
30
- async startWorkflow(workflow, input, startOptions) {
31
- const definition = defineWorkflowFromTarget(workflow);
32
- const resolvedDefinition = await resolveWorkflowStartSpec(definition, startOptions);
33
- const parsedInput = await parseWorkflowInput(resolvedDefinition, input);
34
- const idempotencyKey = startOptions?.idempotencyKey;
35
- const explicitRunId = startOptions?.id;
36
- const existingRun = idempotencyKey === void 0 ? void 0 : await service.store.getRunByIdempotencyKey({
37
- workflowName: resolvedDefinition.name,
38
- ...resolvedDefinition.version === void 0 ? {} : { workflowVersion: resolvedDefinition.version },
39
- idempotencyKey
40
- });
41
- if (existingRun !== void 0) return workflowStartHandle(service, resolvedDefinition, existingRun.id);
42
- const runId = explicitRunId ?? service.createRunId();
43
- const timestamp = service.now();
44
- const availableAt = startOptions?.availableAt;
45
- const deadlineAt = startOptions?.deadlineAt;
46
- const parent = startOptions?.parent === void 0 ? void 0 : startOptions.parent;
47
- const persistedInput = toOptionalPersistedValue(parsedInput, "workflow input", service.limits);
48
- const run = {
49
- id: runId,
50
- namespace: service.store.namespace,
51
- workflowName: resolvedDefinition.name,
52
- ...resolvedDefinition.version === void 0 ? {} : { workflowVersion: resolvedDefinition.version },
53
- status: "pending",
54
- ...persistedInput === void 0 ? {} : { input: persistedInput },
55
- ...startOptions?.context === void 0 ? {} : { context: toPersistedValue(startOptions.context, "workflow context", service.limits) },
56
- ...(() => {
57
- const telemetryContext = captureTelemetryContext(service.telemetry);
58
- return telemetryContext === void 0 ? {} : { telemetryContext };
59
- })(),
60
- attempts: 0,
61
- ...idempotencyKey === void 0 ? {} : { idempotencyKey },
62
- ...parent === void 0 ? {} : {
63
- parentRunId: parent.runId,
64
- ...parent.stepId === void 0 ? {} : { parentStepId: parent.stepId },
65
- ...parent.stepName === void 0 ? {} : { parentStepName: parent.stepName },
66
- ...parent.stepAttempt === void 0 ? {} : { parentStepAttempt: parent.stepAttempt }
67
- },
68
- createdAt: timestamp,
69
- updatedAt: timestamp,
70
- lastTransitionAt: timestamp,
71
- lastTransitionReason: "created",
72
- ...availableAt === void 0 ? {} : { availableAt },
73
- ...deadlineAt === void 0 ? {} : { deadlineAt }
74
- };
75
- const createdRun = await service.store.createRun(run);
76
- service.emitRunEvent(createdRun);
77
- return workflowStartHandle(service, resolvedDefinition, createdRun.id);
78
- },
79
- async startWorkflows(workflow, items) {
80
- const handles = [];
81
- for (const item of items) handles.push(await service.starter.startWorkflow(workflow, item.input, item.options));
82
- return handles;
83
- },
84
- async scheduleNextWorkflow(workflow, input, scheduleOptions) {
85
- const options = resolveScheduleNextOptions(scheduleOptions, service.now).start;
86
- return await service.starter.startWorkflow(workflow, input, options);
87
- }
88
- };
89
- }
90
- function workflowStartHandle(service, definition, runId) {
91
- return workflowHandle(service.store, definition, runId, service.now, {
92
- getTimeline: async (currentRunId) => await service.handleOperations.getTimeline(currentRunId),
93
- setMetadata: async (currentRunId, metadata) => await service.handleOperations.setMetadata(currentRunId, metadata),
94
- setAttributes: async (currentRunId, attributes) => await service.handleOperations.setAttributes(currentRunId, attributes),
95
- cancel: async (currentRunId) => await service.handleOperations.cancel(currentRunId)
96
- });
97
- }
98
- //#endregion
99
- export { createWorkflowEngineStartApi, resolveScheduleNextOptions };
@@ -1,34 +0,0 @@
1
- import { MessageId } from "../../types/message-id.mjs";
2
- import { StepId } from "../../types/step-id.mjs";
3
- import { StreamId } from "../../types/stream-id.mjs";
4
- import "../../types/step.mjs";
5
- import { EventRecord } from "../../types/events.mjs";
6
- //#region src/engine/summary/active-events.d.ts
7
- interface ActiveWorkflowStreamSummary {
8
- readonly stepId: StepId;
9
- readonly stepName: string;
10
- readonly streamId: StreamId;
11
- readonly startedAt: Temporal.Instant;
12
- readonly chunkCount: number;
13
- }
14
- interface ActiveWorkflowHookSummary {
15
- readonly stepId: StepId;
16
- readonly name: string;
17
- readonly messageId: MessageId;
18
- readonly source: "hook" | "webhook";
19
- readonly startedAt: Temporal.Instant;
20
- readonly timeoutAt?: Temporal.Instant;
21
- }
22
- interface ActiveWorkflowEventSummary {
23
- readonly streams: readonly ActiveWorkflowStreamSummary[];
24
- readonly hooks: readonly ActiveWorkflowHookSummary[];
25
- }
26
- interface ActiveWorkflowEventSummaryReducer {
27
- addEvent(event: EventRecord): void;
28
- finish(): ActiveWorkflowEventSummary;
29
- }
30
- /** Creates a reducer for active stream and hook events within a single workflow run. */
31
- declare function createActiveWorkflowEventSummaryReducer(): ActiveWorkflowEventSummaryReducer;
32
- declare function activeWorkflowEvents(events: readonly EventRecord[]): ActiveWorkflowEventSummary;
33
- //#endregion
34
- export { ActiveWorkflowEventSummary, ActiveWorkflowEventSummaryReducer, ActiveWorkflowHookSummary, ActiveWorkflowStreamSummary, activeWorkflowEvents, createActiveWorkflowEventSummaryReducer };
@@ -1,69 +0,0 @@
1
- //#region src/engine/summary/active-events.ts
2
- /** Creates a reducer for active stream and hook events within a single workflow run. */
3
- function createActiveWorkflowEventSummaryReducer() {
4
- const streams = /* @__PURE__ */ new Map();
5
- const terminalStreamStepIds = /* @__PURE__ */ new Set();
6
- const hooks = /* @__PURE__ */ new Map();
7
- const terminalHookStepIds = /* @__PURE__ */ new Set();
8
- return {
9
- addEvent(event) {
10
- addActiveStreamEvent(streams, terminalStreamStepIds, event);
11
- addActiveHookEvent(hooks, terminalHookStepIds, event);
12
- },
13
- finish() {
14
- return {
15
- streams: [...streams.values()].filter((stream) => isActiveStream(stream, terminalStreamStepIds)),
16
- hooks: [...hooks.values()].filter((hook) => isActiveHook(hook, terminalHookStepIds))
17
- };
18
- }
19
- };
20
- }
21
- function activeWorkflowEvents(events) {
22
- const reducer = createActiveWorkflowEventSummaryReducer();
23
- for (const event of events) reducer.addEvent(event);
24
- return reducer.finish();
25
- }
26
- function addActiveStreamEvent(streams, terminalStreamStepIds, event) {
27
- if (event.kind === "stream_started") {
28
- streams.set(event.stepId, {
29
- stepId: event.stepId,
30
- stepName: event.stepName,
31
- streamId: event.streamId,
32
- startedAt: event.timestamp,
33
- chunkCount: 0
34
- });
35
- return;
36
- }
37
- if (event.kind === "stream_chunk") {
38
- const stream = streams.get(event.stepId);
39
- if (stream !== void 0) streams.set(event.stepId, {
40
- ...stream,
41
- chunkCount: stream.chunkCount + 1
42
- });
43
- return;
44
- }
45
- if (event.kind === "stream_closed" || event.kind === "stream_failed") terminalStreamStepIds.add(event.stepId);
46
- }
47
- function isActiveStream(stream, terminalStreamStepIds) {
48
- return !terminalStreamStepIds.has(stream.stepId);
49
- }
50
- function addActiveHookEvent(hooks, terminalHookStepIds, event) {
51
- if (event.kind === "message_wait_started") {
52
- if (event.source !== "hook" && event.source !== "webhook") return;
53
- hooks.set(event.stepId, {
54
- stepId: event.stepId,
55
- name: event.stepName,
56
- messageId: event.messageId,
57
- source: event.source,
58
- startedAt: event.timestamp,
59
- ...event.timeoutAt === void 0 ? {} : { timeoutAt: event.timeoutAt }
60
- });
61
- return;
62
- }
63
- if (event.kind === "message_wait_completed" || event.kind === "message_wait_failed") terminalHookStepIds.add(event.stepId);
64
- }
65
- function isActiveHook(hook, terminalHookStepIds) {
66
- return !terminalHookStepIds.has(hook.stepId);
67
- }
68
- //#endregion
69
- export { activeWorkflowEvents, createActiveWorkflowEventSummaryReducer };
@@ -1,24 +0,0 @@
1
- import { RunId } from "../../types/run-id.mjs";
2
- import { WorkflowRunFailureSummary, WorkflowRunRetrySummary } from "../../types/summary.mjs";
3
- import { WorkflowStepAttemptRecord } from "../../types/step-attempts.mjs";
4
- import { WorkflowRunRecord, WorkflowRunStatus } from "../../types/run.mjs";
5
- import { WorkflowRunReaderRepository } from "../../types/store.mjs";
6
- //#region src/engine/summary/child-workflow-runs.d.ts
7
- interface WorkflowChildWorkflowRunSummaryFields {
8
- readonly childStatus: Record<WorkflowRunStatus, number>;
9
- readonly retryChildRunIds?: readonly string[];
10
- readonly failedChildRunIds?: readonly string[];
11
- readonly canceledChildRunIds?: readonly string[];
12
- readonly childRetry?: WorkflowRunRetrySummary;
13
- readonly childFailure?: WorkflowRunFailureSummary;
14
- }
15
- interface WorkflowChildWorkflowRunSummaryReducer {
16
- addRun(run: WorkflowRunRecord): void;
17
- finish(): WorkflowChildWorkflowRunSummaryFields;
18
- }
19
- declare function getChildRunsForAttempts(store: WorkflowRunReaderRepository, parentRunId: RunId, attempts: readonly WorkflowStepAttemptRecord[]): Promise<readonly WorkflowRunRecord[]>;
20
- /** Creates a reducer for child workflow run state embedded in active child workflow waits. */
21
- declare function createWorkflowChildWorkflowRunSummaryReducer(): WorkflowChildWorkflowRunSummaryReducer;
22
- declare function summarizeChildWorkflowRuns(runs: readonly WorkflowRunRecord[]): WorkflowChildWorkflowRunSummaryFields;
23
- //#endregion
24
- export { WorkflowChildWorkflowRunSummaryFields, WorkflowChildWorkflowRunSummaryReducer, createWorkflowChildWorkflowRunSummaryReducer, getChildRunsForAttempts, summarizeChildWorkflowRuns };