@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,12 +1,14 @@
1
1
  import { Registry } from "../registry.mjs";
2
- import { createWorkflowBundleRegistry } from "../bundle.mjs";
3
- import { createWorkflowClientAdminApi, createWorkflowClientHooksApi, createWorkflowClientLocksApi, createWorkflowClientMessagesApi, createWorkflowClientRunsApi, createWorkflowClientSchedulesApi, createWorkflowClientStreamsApi, createWorkflowClientWorkersApi } from "./facades.mjs";
2
+ import { createClientAdminApi, createClientHooksApi, createClientLocksApi, createClientMessagesApi, createClientRunsApi, createClientSchedulesApi, createClientStreamsApi, createClientWorkersApi } from "./facades.mjs";
4
3
  import { createWorkflowEngine } from "../engine/create.mjs";
5
4
  //#region src/client/create.ts
6
5
  function createWorkflowClient(options = {}) {
7
6
  return new WorkflowClient(options);
8
7
  }
9
- /** Workflow client facade implementation. */
8
+ /** A client over an existing engine, so several clients and workers share one engine. Internal. */
9
+ function clientForEngine(engine, options = {}) {
10
+ return new WorkflowClient(options, engine);
11
+ }
10
12
  var WorkflowClient = class {
11
13
  runs;
12
14
  admin;
@@ -17,27 +19,34 @@ var WorkflowClient = class {
17
19
  messages;
18
20
  workers;
19
21
  #engine;
20
- #workerEngine;
21
22
  #now;
22
23
  #registry;
23
- constructor(options = {}) {
24
- const { engine, workerEngine, registry, workflows, now, ...engineOptions } = options;
24
+ constructor(options = {}, engine) {
25
+ const { registry, workflows, now, ...engineOptions } = options;
25
26
  if (registry !== void 0 && workflows !== void 0) throw new TypeError("Workflow client options cannot include both registry and workflows");
26
27
  this.#now = now ?? Temporal.Now.instant;
27
28
  this.#engine = engine ?? createWorkflowEngine({
28
29
  ...engineOptions,
29
30
  now: this.#now
30
31
  });
31
- this.#workerEngine = workerEngine ?? workflowWorkerEngineFromCandidate(this.#engine);
32
- this.#registry = registry ?? (workflows === void 0 ? new Registry() : createWorkflowBundleRegistry(workflows));
33
- this.runs = createWorkflowClientRunsApi(() => this.#engine, this.#now);
34
- this.admin = createWorkflowClientAdminApi(() => this.#engine, this.#now);
35
- this.schedules = createWorkflowClientSchedulesApi(() => this.#engine, this.#now);
36
- this.locks = createWorkflowClientLocksApi(() => this.#engine);
37
- this.hooks = createWorkflowClientHooksApi(() => this.#engine);
38
- this.streams = createWorkflowClientStreamsApi(() => this.#engine);
39
- this.messages = createWorkflowClientMessagesApi(() => this.#engine);
40
- this.workers = createWorkflowClientWorkersApi(() => this.#workerEngine, () => this.#registry, this.#now);
32
+ this.#registry = registry ?? new Registry(workflows?.workflows);
33
+ this.runs = createClientRunsApi(this.#engine, this.#now, this.#registry);
34
+ this.admin = createClientAdminApi(this.#engine, this.#now);
35
+ this.schedules = createClientSchedulesApi(this.#engine, this.#now);
36
+ this.locks = createClientLocksApi(this.#engine);
37
+ this.hooks = createClientHooksApi(this.#engine);
38
+ this.streams = createClientStreamsApi(this.#engine);
39
+ this.messages = createClientMessagesApi(this.#engine);
40
+ this.workers = createClientWorkersApi(this.#engine, this.#registry, this.#now);
41
+ }
42
+ on(pattern, handler) {
43
+ return this.#engine.observation.on(pattern, handler);
44
+ }
45
+ once(pattern, handler) {
46
+ return this.#engine.observation.once(pattern, handler);
47
+ }
48
+ off(pattern, handler) {
49
+ this.#engine.observation.off(pattern, handler);
41
50
  }
42
51
  async close() {
43
52
  await this.#engine.close?.();
@@ -49,21 +58,6 @@ var WorkflowClient = class {
49
58
  if (this.#registry.get(implementation.definition) === implementation) return;
50
59
  this.#registry.register(implementation);
51
60
  }
52
- workflow(definition, handler) {
53
- this.#registry.implementWorkflow(definition, handler);
54
- return {
55
- definition,
56
- run: (...runArgs) => this.runs.start(definition, ...runArgs)
57
- };
58
- }
59
61
  };
60
- function workflowWorkerEngineFromCandidate(engine) {
61
- return isWorkflowWorkerEngine(engine) ? engine : void 0;
62
- }
63
- function isWorkflowWorkerEngine(candidate) {
64
- const engine = candidate;
65
- if (typeof engine.resumeWorkflow !== "function" || typeof engine.getRun !== "function" || typeof engine.getRunSummary !== "function" || typeof engine.listSchedules !== "function" || typeof engine.tickSchedules !== "function" || engine.store === void 0) return false;
66
- return true;
67
- }
68
62
  //#endregion
69
- export { WorkflowClient, createWorkflowClient };
63
+ export { WorkflowClient, clientForEngine, createWorkflowClient };
@@ -1,21 +1,15 @@
1
1
  import { RegistryLike } from "../types/definition.mjs";
2
- import { LockManager, WorkflowCleanupAdmin, WorkflowHookManager, WorkflowMessageSender, WorkflowRunHandleReader, WorkflowRunMaintenance, WorkflowRunReader, WorkflowRunRerunner, WorkflowScheduler, WorkflowStarter, WorkflowStepAttemptReader, WorkflowStreamReader, WorkflowWorkerEngine } from "../types/engine.mjs";
3
- import { WorkflowClientAdminApi, WorkflowClientHooksApi, WorkflowClientLocksApi, WorkflowClientMessagesApi, WorkflowClientRunsApi, WorkflowClientSchedulesApi, WorkflowClientStreamsApi, WorkflowClientWorkersApi } from "../types/client.mjs";
2
+ import { WorkflowEngine } from "../engine/create.mjs";
3
+ import { ClientAdminApi, ClientHooksApi, ClientLocksApi, ClientMessagesApi, ClientRunsApi, ClientSchedulesApi, ClientStreamsApi, ClientWorkersApi } from "../types/client.mjs";
4
4
  //#region src/client/facades.d.ts
5
- type WorkflowRunHandleEngine = WorkflowRunMaintenance & WorkflowRunHandleReader & WorkflowStreamReader;
6
- type WorkflowClientRunsEngine = WorkflowStarter & WorkflowRunReader & WorkflowRunHandleEngine & WorkflowStepAttemptReader;
7
- type WorkflowClientAdminEngine = WorkflowCleanupAdmin & WorkflowRunRerunner & WorkflowRunHandleEngine;
8
- type WorkflowClientSchedulesEngine = WorkflowRunHandleEngine & WorkflowScheduler;
9
- type WorkflowWorkerEngineAccessor = () => WorkflowWorkerEngine | undefined;
10
- type WorkflowRegistryAccessor = () => RegistryLike;
11
- type WorkflowClockAccessor = () => Temporal.Instant;
12
- declare function createWorkflowClientRunsApi(getEngine: () => WorkflowClientRunsEngine, now: WorkflowClockAccessor): WorkflowClientRunsApi;
13
- declare function createWorkflowClientAdminApi(getEngine: () => WorkflowClientAdminEngine, now: WorkflowClockAccessor): WorkflowClientAdminApi;
14
- declare function createWorkflowClientSchedulesApi(getEngine: () => WorkflowClientSchedulesEngine, now: WorkflowClockAccessor): WorkflowClientSchedulesApi;
15
- declare function createWorkflowClientLocksApi(getEngine: () => LockManager): WorkflowClientLocksApi;
16
- declare function createWorkflowClientHooksApi(getEngine: () => WorkflowHookManager): WorkflowClientHooksApi;
17
- declare function createWorkflowClientStreamsApi(getEngine: () => WorkflowStreamReader): WorkflowClientStreamsApi;
18
- declare function createWorkflowClientMessagesApi(getEngine: () => WorkflowMessageSender): WorkflowClientMessagesApi;
19
- declare function createWorkflowClientWorkersApi(getEngine: WorkflowWorkerEngineAccessor, getRegistry: WorkflowRegistryAccessor, now: WorkflowClockAccessor): WorkflowClientWorkersApi;
5
+ type ClockAccessor = () => Temporal.Instant;
6
+ export declare function createClientRunsApi(engine: WorkflowEngine, now: ClockAccessor, registry: RegistryLike): ClientRunsApi;
7
+ export declare function createClientAdminApi(engine: WorkflowEngine, now: ClockAccessor): ClientAdminApi;
8
+ export declare function createClientSchedulesApi(engine: WorkflowEngine, now: ClockAccessor): ClientSchedulesApi;
9
+ export declare function createClientLocksApi(engine: WorkflowEngine): ClientLocksApi;
10
+ export declare function createClientHooksApi(engine: WorkflowEngine): ClientHooksApi;
11
+ export declare function createClientStreamsApi(engine: WorkflowEngine): ClientStreamsApi;
12
+ export declare function createClientMessagesApi(engine: WorkflowEngine): ClientMessagesApi;
13
+ export declare function createClientWorkersApi(engine: WorkflowEngine, registry: RegistryLike, now: ClockAccessor): ClientWorkersApi;
20
14
  //#endregion
21
- export { createWorkflowClientAdminApi, createWorkflowClientHooksApi, createWorkflowClientLocksApi, createWorkflowClientMessagesApi, createWorkflowClientRunsApi, createWorkflowClientSchedulesApi, createWorkflowClientStreamsApi, createWorkflowClientWorkersApi };
15
+ export {};
@@ -1,135 +1,144 @@
1
- import { resolvePositiveSafeIntegerOption } from "../utility.mjs";
2
- import { WorkflowCapabilityError } from "../errors/capability.mjs";
3
- import { defineWorkflowFromName, defineWorkflowFromTarget } from "../definition.mjs";
4
- import { resolveBroadcastMessageInput, resolveSendMessageInput } from "../message-options.mjs";
5
- import { createWorkflowRunHandle } from "./run-handle.mjs";
1
+ import { WorkflowDefinitionError } from "../errors/definition.mjs";
2
+ import "../errors/mod.mjs";
3
+ import { getCompiledDefinition } from "../compiled-function.mjs";
4
+ import { defineFromTarget } from "../definition.mjs";
5
+ import { resolvePositiveSafeIntegerOption } from "../values.mjs";
6
+ import { countRunStepAttempts, getRunStepAttemptSummary, getRunTimeline, getWorkflowRecoverySummary, pageRunStepAttempts } from "../engine/inspection.mjs";
7
+ import { applyRetentionPolicy, cancelWorkflowRun, cleanupRuns, markWorkflowRunPermanentlyFailed, releaseStaleWorkflowRunLease, rescheduleWorkflowRun, retryFailedWorkflowRun, setRunAttributes, updateWorkflowRunMetadata } from "../engine/run-service.mjs";
8
+ import { followStream, getStreamInfo, readStream, waitForStream, waitForStreamChunk, waitForStreamTerminal } from "../engine/stream-reader.mjs";
9
+ import { createRunHandle } from "./run-handle.mjs";
6
10
  import { workerOptionsFromClientOptions, workerOptionsFromWakeOptions } from "./worker-options.mjs";
7
- import { resolveScheduleNextOptions } from "../engine/start-api.mjs";
8
- import { WorkflowWorker } from "../worker.mjs";
11
+ import { broadcastMessageInput, sendMessageInput } from "../engine/message.mjs";
12
+ import { disposeHook, getHookByToken, resumeHook } from "../engine/hooks.mjs";
13
+ import { releaseStaleLock } from "../engine/lock.mjs";
14
+ import { updateScheduleStatus, upsertSchedule } from "../engine/schedule.mjs";
15
+ import { resolveScheduleNextOptions } from "../engine/start.mjs";
16
+ import { WorkflowWorker } from "../worker/worker.mjs";
17
+ import { isFunction } from "@temelj/value";
9
18
  //#region src/client/facades.ts
10
- function requireWorkflowWorkerEngine(engine) {
11
- if (engine === void 0) WorkflowCapabilityError.unsupported("workflow worker engine");
12
- return engine;
13
- }
14
- function createWorkflowClientRunsApi(getEngine, now) {
19
+ function createClientRunsApi(engine, now, registry) {
20
+ const register = (implementation) => {
21
+ if (registry.get(implementation.definition) === void 0) registry.register(implementation);
22
+ };
23
+ async function start(workflow, ...args) {
24
+ if (isFunction(workflow)) {
25
+ const implementation = getCompiledDefinition(workflow);
26
+ if (implementation === void 0) WorkflowDefinitionError.compiledMetadataMissing();
27
+ register(implementation);
28
+ const handle = await engine.startWorkflow(implementation.definition, args);
29
+ return createRunHandle(engine, handle, now);
30
+ }
31
+ if (workflow.kind === "implementation") register(workflow);
32
+ const [input, options] = args;
33
+ const handle = await engine.startWorkflow(defineFromTarget(workflow), input, options);
34
+ return createRunHandle(engine, handle, now);
35
+ }
15
36
  return {
16
- async start(workflow, ...runArgs) {
17
- const [input, runOptions] = runArgs;
18
- const definition = defineWorkflowFromTarget(workflow);
19
- const handle = await getEngine().startWorkflow(definition, input, runOptions);
20
- return createWorkflowRunHandle(getEngine(), definition, handle.runId, now);
21
- },
37
+ start,
38
+ getHandle: async (runId) => createRunHandle(engine, await engine.getRunRef(runId), now),
22
39
  async startBatch(workflow, items) {
23
- const definition = defineWorkflowFromTarget(workflow);
24
- return (await getEngine().startWorkflows(definition, items)).map((handle) => createWorkflowRunHandle(getEngine(), definition, handle.runId, now));
40
+ const definition = defineFromTarget(workflow);
41
+ return (await engine.startWorkflows(definition, items)).map((handle) => createRunHandle(engine, handle, now));
25
42
  },
26
- get: async (runId) => await getEngine().getRun(runId),
27
- events: async (runId) => await getEngine().getEvents(runId),
28
- eventsPage: async (runId, options) => await getEngine().listEventsPage(runId, options),
29
- list: async (options) => await getEngine().listRuns(options),
30
- page: async (options) => await getEngine().listRunsPage(options),
31
- count: async (options) => await getEngine().countRuns(options),
32
- summary: async (options) => await getEngine().getRunSummary(options),
33
- recovery: async (options) => await getEngine().getRecoverySummary(options),
34
- timeline: async (runId) => await getEngine().getTimeline(runId),
35
- listStepAttempts: async (runId, options) => await getEngine().listStepAttempts(runId, options),
36
- listStepAttemptsPage: async (runId, options) => await getEngine().listStepAttemptsPage(runId, options),
37
- countStepAttempts: async (runId, options) => await getEngine().countStepAttempts(runId, options),
38
- stepAttemptSummary: async (runId, options) => await getEngine().getStepAttemptSummary(runId, options)
43
+ get: (runId) => engine.store.getRun(runId),
44
+ events: (runId) => engine.store.getEvents(runId),
45
+ list: (options) => engine.store.listRunsPage(options),
46
+ count: (options) => engine.store.countRuns(options),
47
+ summary: (options) => engine.getRunSummary(options),
48
+ recoverySummary: (options) => getWorkflowRecoverySummary({
49
+ store: engine.store,
50
+ now: engine.context.now(),
51
+ filters: options
52
+ }),
53
+ timeline: (runId) => getRunTimeline(engine.context, runId),
54
+ listStepAttempts: (runId, options) => pageRunStepAttempts(engine.context, runId, options),
55
+ countStepAttempts: (runId, options) => countRunStepAttempts(engine.context, runId, options),
56
+ stepAttemptSummary: (runId, options) => getRunStepAttemptSummary(engine.context, runId, options)
39
57
  };
40
58
  }
41
- function createWorkflowClientAdminApi(getEngine, now) {
59
+ function createClientAdminApi(engine, now) {
42
60
  return {
43
- cleanup: async (options) => await getEngine().cleanupRuns(options),
44
- cleanupMarkers: async () => await getEngine().listCleanupMarkers(),
45
- applyRetentionPolicy: async (options) => await getEngine().applyRetentionPolicy(options),
61
+ cleanup: (options) => cleanupRuns(engine.context, options),
62
+ cleanupMarkers: () => engine.store.listCleanupMarkers(),
63
+ applyRetentionPolicy: (options) => applyRetentionPolicy(engine.context, options),
46
64
  rerun: async (runId, options) => {
47
- const handle = await getEngine().rerunWorkflow(runId, options);
48
- return createWorkflowRunHandle(getEngine(), defineWorkflowFromName(handle.workflowName, handle.workflowVersion), handle.runId, now);
65
+ const handle = await engine.rerunWorkflow(runId, options);
66
+ return createRunHandle(engine, handle, now);
49
67
  },
50
- reschedule: async (runId, options) => await getEngine().rescheduleRun(runId, options),
51
- releaseStaleLease: async (runId, options) => await getEngine().releaseStaleRunLease(runId, options),
52
- retryFailed: async (runId, options) => await getEngine().retryFailedRun(runId, options),
53
- markPermanentlyFailed: async (runId, options) => await getEngine().markRunPermanentlyFailed(runId, options),
54
- updateMetadata: async (runId, metadata) => await getEngine().updateRunMetadata(runId, metadata),
55
- setAttributes: async (runId, attributes) => await getEngine().setRunAttributes(runId, attributes),
56
- cancel: async (runId) => await getEngine().cancelRun(runId)
68
+ reschedule: (runId, options) => rescheduleWorkflowRun(engine.context, engine.lifecycle, runId, options),
69
+ releaseStaleLease: (runId, options) => releaseStaleWorkflowRunLease(engine.context, engine.lifecycle, runId, options),
70
+ retryFailed: (runId, options) => retryFailedWorkflowRun(engine.context, engine.lifecycle, runId, options),
71
+ markPermanentlyFailed: (runId, options) => markWorkflowRunPermanentlyFailed(engine.context, engine.lifecycle, runId, options),
72
+ setMetadata: (runId, metadata) => updateWorkflowRunMetadata(engine.context, engine.lifecycle, runId, metadata),
73
+ setAttributes: (runId, attributes) => setRunAttributes(engine.context, runId, attributes),
74
+ cancel: (runId) => cancelWorkflowRun(engine.context, engine.lifecycle, runId)
57
75
  };
58
76
  }
59
- function createWorkflowClientSchedulesApi(getEngine, now) {
77
+ function createClientSchedulesApi(engine, now) {
60
78
  return {
61
79
  async next(workflow, input, scheduleOptions) {
62
- const definition = defineWorkflowFromTarget(workflow);
80
+ const definition = defineFromTarget(workflow);
63
81
  const options = resolveScheduleNextOptions(scheduleOptions, now);
64
- const handle = await getEngine().scheduleNextWorkflow(definition, input, options.schedule);
65
- return createWorkflowRunHandle(getEngine(), definition, handle.runId, now);
82
+ const handle = await engine.scheduleNextWorkflow(definition, input, options.schedule);
83
+ return createRunHandle(engine, handle, now);
66
84
  },
67
- create: async (workflow, options) => await getEngine().createSchedule(workflow, options),
68
- upsert: async (workflow, options) => await getEngine().upsertSchedule(workflow, options),
69
- get: async (scheduleId) => await getEngine().getSchedule(scheduleId),
70
- list: async (options) => await getEngine().listSchedules(options),
71
- page: async (options) => await getEngine().listSchedulesPage(options),
72
- pause: async (scheduleId) => await getEngine().pauseSchedule(scheduleId),
73
- resume: async (scheduleId) => await getEngine().resumeSchedule(scheduleId),
74
- archive: async (scheduleId) => await getEngine().archiveSchedule(scheduleId),
75
- delete: async (scheduleId) => await getEngine().deleteSchedule(scheduleId),
76
- tick: async (options) => await getEngine().tickSchedules(options)
85
+ create: (workflow, options) => engine.createSchedule(workflow, options),
86
+ upsert: (workflow, options) => upsertSchedule(engine.store, defineFromTarget(workflow), options, engine.context.now(), engine.context.limits),
87
+ get: (scheduleId) => engine.store.getSchedule(scheduleId),
88
+ list: (options) => engine.store.listSchedulesPage(options),
89
+ pause: (scheduleId) => updateScheduleStatus(engine.store, scheduleId, "paused", engine.context.now()),
90
+ resume: (scheduleId) => updateScheduleStatus(engine.store, scheduleId, "active", engine.context.now()),
91
+ archive: (scheduleId) => updateScheduleStatus(engine.store, scheduleId, "archived", engine.context.now()),
92
+ delete: (scheduleId) => updateScheduleStatus(engine.store, scheduleId, "deleted", engine.context.now()),
93
+ tick: (options) => engine.tickSchedules(options)
77
94
  };
78
95
  }
79
- function createWorkflowClientLocksApi(getEngine) {
96
+ function createClientLocksApi(engine) {
80
97
  return {
81
- acquire: async (key, options) => await getEngine().acquireLock(key, options),
82
- get: async (key) => await getEngine().getLock(key),
83
- list: async () => await getEngine().listLocks(),
84
- release: async (key, options) => await getEngine().releaseLock(key, options),
85
- releaseStale: async (key, options) => await getEngine().releaseStaleLock(key, options)
98
+ acquire: (key, options) => engine.acquireLock(key, options),
99
+ get: (key) => engine.store.getLock(key),
100
+ list: () => engine.store.listLocks(),
101
+ release: (key, options) => engine.releaseLock(key, options),
102
+ releaseStale: (key, options) => releaseStaleLock(engine.store, key, options?.now ?? engine.context.now())
86
103
  };
87
104
  }
88
- function createWorkflowClientHooksApi(getEngine) {
105
+ function createClientHooksApi(engine) {
89
106
  return {
90
- resume: async (token, options) => await getEngine().resumeHook(token, options),
91
- resumeWebhook: async (token, options) => await getEngine().resumeWebhook(token, options),
92
- dispose: async (token) => await getEngine().disposeHook(token),
93
- disposeWebhook: async (token) => await getEngine().disposeWebhook(token),
94
- getByToken: async (token) => await getEngine().getHookByToken(token)
107
+ resume: (token, options) => resumeHook(token, options, engine.context),
108
+ dispose: (token) => disposeHook(token, engine.context),
109
+ getByToken: (token) => getHookByToken(token, engine.store, engine.context.now())
95
110
  };
96
111
  }
97
- function createWorkflowClientStreamsApi(getEngine) {
112
+ function createClientStreamsApi(engine) {
98
113
  return {
99
- getInfo: async (runId, streamIdOrName) => await getEngine().getStreamInfo(runId, streamIdOrName),
100
- follow: (runId, streamIdOrName, options) => getEngine().followStream(runId, streamIdOrName, options),
101
- wait: async (runId, streamIdOrName, options) => await getEngine().waitForStream(runId, streamIdOrName, options),
102
- waitForChunk: async (runId, streamIdOrName, afterIndex, options) => await getEngine().waitForStreamChunk(runId, streamIdOrName, afterIndex, options),
103
- waitForTerminal: async (runId, streamIdOrName, options) => await getEngine().waitForStreamTerminal(runId, streamIdOrName, options),
104
- read: async (runId, streamIdOrName, options) => await getEngine().readStream(runId, streamIdOrName, options),
105
- readPage: async (runId, streamIdOrName, options) => await getEngine().readStreamPage(runId, streamIdOrName, options)
114
+ getInfo: (runId, streamIdOrName) => getStreamInfo(engine.context, runId, streamIdOrName),
115
+ follow: (runId, streamIdOrName, options) => followStream(engine.context, runId, streamIdOrName, options),
116
+ wait: (runId, streamIdOrName, options) => waitForStream(engine.context, runId, streamIdOrName, options),
117
+ waitForChunk: (runId, streamIdOrName, afterIndex, options) => waitForStreamChunk(engine.context, runId, streamIdOrName, afterIndex, options),
118
+ waitForTerminal: (runId, streamIdOrName, options) => waitForStreamTerminal(engine.context, runId, streamIdOrName, options),
119
+ read: (runId, streamIdOrName, options) => readStream(engine.context, runId, streamIdOrName, options)
106
120
  };
107
121
  }
108
- function createWorkflowClientMessagesApi(getEngine) {
122
+ function createClientMessagesApi(engine) {
109
123
  return {
110
124
  async send(runId, messageInput, channelOptions) {
111
- const options = await resolveSendMessageInput(messageInput, channelOptions);
112
- await getEngine().sendMessage(runId, options);
125
+ await sendMessageInput(engine.context, runId, messageInput, channelOptions);
113
126
  },
114
127
  async broadcast(messageInput, channelOptions) {
115
- const options = await resolveBroadcastMessageInput(messageInput, channelOptions);
116
- return getEngine().broadcastMessage(options);
128
+ return await broadcastMessageInput(engine.context, messageInput, channelOptions);
117
129
  }
118
130
  };
119
131
  }
120
- function createWorkflowClientWorkersApi(getEngine, getRegistry, now) {
132
+ function createClientWorkersApi(engine, registry, now) {
121
133
  return {
122
134
  create: (options) => {
123
- const engine = requireWorkflowWorkerEngine(getEngine());
124
- return new WorkflowWorker(workerOptionsFromClientOptions(engine, getRegistry(), now, options));
135
+ return new WorkflowWorker(workerOptionsFromClientOptions(engine, registry, now, options));
125
136
  },
126
137
  processRun: async (runId, options) => {
127
- const engine = requireWorkflowWorkerEngine(getEngine());
128
- await new WorkflowWorker(workerOptionsFromClientOptions(engine, getRegistry(), now, workerOptionsFromWakeOptions(options))).processRun(runId);
138
+ await new WorkflowWorker(workerOptionsFromClientOptions(engine, registry, now, workerOptionsFromWakeOptions(options))).processRun(runId);
129
139
  },
130
140
  wakeDueRuns: async (options) => {
131
- const engine = requireWorkflowWorkerEngine(getEngine());
132
- const worker = new WorkflowWorker(workerOptionsFromClientOptions(engine, getRegistry(), now, workerOptionsFromWakeOptions(options)));
141
+ const worker = new WorkflowWorker(workerOptionsFromClientOptions(engine, registry, now, workerOptionsFromWakeOptions(options)));
133
142
  const filters = options === void 0 ? {} : options;
134
143
  const maxRuns = resolvePositiveSafeIntegerOption(options?.maxRuns, "Workflow worker maxRuns") ?? 1;
135
144
  let processedRuns = 0;
@@ -142,4 +151,4 @@ function createWorkflowClientWorkersApi(getEngine, getRegistry, now) {
142
151
  };
143
152
  }
144
153
  //#endregion
145
- export { createWorkflowClientAdminApi, createWorkflowClientHooksApi, createWorkflowClientLocksApi, createWorkflowClientMessagesApi, createWorkflowClientRunsApi, createWorkflowClientSchedulesApi, createWorkflowClientStreamsApi, createWorkflowClientWorkersApi };
154
+ export { createClientAdminApi, createClientHooksApi, createClientLocksApi, createClientMessagesApi, createClientRunsApi, createClientSchedulesApi, createClientStreamsApi, createClientWorkersApi };
@@ -1,2 +1 @@
1
- import { createWorkflowClient } from "./create.mjs";
2
- export { createWorkflowClient };
1
+ export { createWorkflowClient } from "./create.mjs";
@@ -1,67 +1,30 @@
1
- import { RunId } from "../types/run-id.mjs";
2
- import { WorkflowDefinition } from "../types/definition.mjs";
3
- import { StreamIdOrName } from "../types/stream-id.mjs";
4
- import { FollowStreamOptions, ReadStreamOptions, ReadStreamPageOptions, StreamChunk, StreamInfo, StreamPage, StreamState, StreamUpdate, WaitStreamOptions } from "../types/stream.mjs";
5
- import { Timeline } from "../types/timeline.mjs";
1
+ import { RunId } from "../types/ids.mjs";
6
2
  import { ResultOptions } from "../types/result.mjs";
7
- import { WorkflowAttributePatch, WorkflowRunRecord, WorkflowRunStatus } from "../types/run.mjs";
3
+ import { AttributePatch, RunRecord, RunStatus } from "../types/run.mjs";
8
4
  import { EventRecord } from "../types/events.mjs";
9
- import { WorkflowMarkRunPermanentlyFailedOptions, WorkflowReleaseStaleLeaseOptions, WorkflowRescheduleRunOptions, WorkflowRetryFailedRunOptions } from "../types/run-options.mjs";
10
- import { WorkflowRunHandleReader, WorkflowRunMaintenance, WorkflowStreamReader } from "../types/engine.mjs";
11
- import { WorkflowRunHandle as WorkflowRunHandle$1 } from "../types/client.mjs";
5
+ import { RunRef } from "../engine/start.mjs";
6
+ import { WorkflowEngine } from "../engine/create.mjs";
7
+ import { Timeline } from "../types/timeline.mjs";
8
+ import { RunStreamsApi, WorkflowRunHandle as WorkflowRunHandle$1 } from "../types/client.mjs";
12
9
  import "../mod.mjs";
13
- import { StorageValue } from "@temelj/storage";
14
10
  import "temporal-polyfill/global";
11
+ import { StorageValue } from "@temelj/storage";
15
12
  //#region src/client/run-handle.d.ts
16
- type WorkflowRunHandleEngine = WorkflowRunHandleReader & WorkflowStreamReader & WorkflowRunMaintenance;
17
- declare function createWorkflowRunHandle<TOutput>(engine: WorkflowRunHandleEngine, definition: WorkflowDefinition<unknown, TOutput>, runId: RunId, now: () => Temporal.Instant): WorkflowRunHandle$1<TOutput>;
18
- declare class WorkflowRunHandle<TOutput> implements WorkflowRunHandle$1<TOutput> {
13
+ export declare function createRunHandle<TOutput>(engine: WorkflowEngine, ref: RunRef<TOutput>, now: () => Temporal.Instant): WorkflowRunHandle$1<TOutput>;
14
+ export declare class WorkflowRunHandle<TOutput> implements WorkflowRunHandle$1<TOutput> {
19
15
  #private;
20
- /** @inheritdoc */
21
16
  readonly runId: RunId;
22
- /** @inheritdoc */
23
17
  readonly workflowName: string;
24
- /** @inheritdoc */
25
18
  readonly workflowVersion?: string;
26
- constructor(engine: WorkflowRunHandleEngine, definition: WorkflowDefinition<unknown, TOutput>, runId: RunId, now: () => Temporal.Instant);
27
- /** @inheritdoc */
28
- getRun(): Promise<WorkflowRunRecord<StorageValue, StorageValue>>;
29
- /** @inheritdoc */
30
- status(): Promise<WorkflowRunStatus>;
31
- /** @inheritdoc */
19
+ readonly streams: RunStreamsApi;
20
+ constructor(engine: WorkflowEngine, ref: RunRef<TOutput>, now: () => Temporal.Instant);
21
+ getRun(): Promise<RunRecord<StorageValue, StorageValue>>;
22
+ status(): Promise<RunStatus>;
32
23
  events(): Promise<readonly EventRecord[]>;
33
- /** @inheritdoc */
34
24
  timeline(): Promise<Timeline>;
35
- /** @inheritdoc */
36
25
  result(options?: ResultOptions): Promise<TOutput>;
37
- /** @inheritdoc */
38
- getStreamInfo(streamIdOrName: StreamIdOrName): Promise<StreamInfo>;
39
- /** @inheritdoc */
40
- followStream<TChunk = unknown>(streamIdOrName: StreamIdOrName, followOptions?: FollowStreamOptions): AsyncIterable<StreamUpdate<TChunk>>;
41
- /** @inheritdoc */
42
- waitForStream(streamIdOrName: StreamIdOrName, waitOptions?: WaitStreamOptions): Promise<StreamInfo | undefined>;
43
- /** @inheritdoc */
44
- waitForStreamChunk<TChunk = unknown>(streamIdOrName: StreamIdOrName, afterIndex: number, waitOptions?: WaitStreamOptions): Promise<StreamChunk<TChunk> | undefined>;
45
- /** @inheritdoc */
46
- waitForStreamTerminal(streamIdOrName: StreamIdOrName, waitOptions?: WaitStreamOptions): Promise<StreamInfo | undefined>;
47
- /** @inheritdoc */
48
- readStream<TChunk = unknown>(streamIdOrName: StreamIdOrName, readOptions?: ReadStreamOptions): Promise<StreamState<TChunk>>;
49
- /** @inheritdoc */
50
- readStreamPage<TChunk = unknown>(streamIdOrName: StreamIdOrName, readOptions?: ReadStreamPageOptions): Promise<StreamPage<TChunk>>;
51
- /** @inheritdoc */
52
- reschedule(options?: WorkflowRescheduleRunOptions): Promise<WorkflowRunRecord<StorageValue, StorageValue>>;
53
- /** @inheritdoc */
54
- releaseStaleLease(options?: WorkflowReleaseStaleLeaseOptions): Promise<WorkflowRunRecord<StorageValue, StorageValue>>;
55
- /** @inheritdoc */
56
- retryFailed(options?: WorkflowRetryFailedRunOptions): Promise<WorkflowRunRecord<StorageValue, StorageValue>>;
57
- /** @inheritdoc */
58
- markPermanentlyFailed(options: WorkflowMarkRunPermanentlyFailedOptions): Promise<WorkflowRunRecord<StorageValue, StorageValue>>;
59
- /** @inheritdoc */
60
- setMetadata(metadata: unknown): Promise<WorkflowRunRecord<StorageValue, StorageValue>>;
61
- /** @inheritdoc */
62
- setAttributes(attributes: WorkflowAttributePatch): Promise<WorkflowRunRecord<StorageValue, StorageValue>>;
63
- /** @inheritdoc */
64
- cancel(): Promise<WorkflowRunRecord<StorageValue, StorageValue>>;
26
+ setMetadata(metadata: StorageValue): Promise<RunRecord<StorageValue, StorageValue>>;
27
+ setAttributes(attributes: AttributePatch): Promise<RunRecord<StorageValue, StorageValue>>;
28
+ cancel(): Promise<RunRecord<StorageValue, StorageValue>>;
65
29
  }
66
- //#endregion
67
- export { WorkflowRunHandle, createWorkflowRunHandle };
30
+ //#endregion