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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (461) hide show
  1. package/README.md +394 -2
  2. package/dist/attributes.d.mts +11 -9
  3. package/dist/attributes.mjs +23 -5
  4. package/dist/bundle.d.mts +5 -23
  5. package/dist/bundle.mjs +2 -18
  6. package/dist/client/create.d.mts +26 -23
  7. package/dist/client/create.mjs +26 -32
  8. package/dist/client/facades.d.mts +12 -18
  9. package/dist/client/facades.mjs +102 -93
  10. package/dist/client/mod.mjs +1 -2
  11. package/dist/client/run-handle.d.mts +17 -54
  12. package/dist/client/run-handle.mjs +35 -105
  13. package/dist/client/worker-options.d.mts +8 -8
  14. package/dist/client/worker-options.mjs +11 -11
  15. package/dist/cloudflare/cloudflare.d.mts +4 -5
  16. package/dist/cloudflare/codec.d.mts +28 -13
  17. package/dist/cloudflare/codec.mjs +40 -17
  18. package/dist/cloudflare/entrypoint.d.mts +3 -4
  19. package/dist/cloudflare/entrypoint.mjs +4 -3
  20. package/dist/cloudflare/execution.d.mts +3 -4
  21. package/dist/cloudflare/execution.mjs +20 -13
  22. package/dist/cloudflare/host.d.mts +6 -7
  23. package/dist/cloudflare/host.mjs +7 -6
  24. package/dist/cloudflare/mod.d.mts +4 -4
  25. package/dist/cloudflare/mod.mjs +2 -2
  26. package/dist/cloudflare/name.d.mts +3 -4
  27. package/dist/cloudflare/name.mjs +3 -3
  28. package/dist/cloudflare/registry.d.mts +3 -23
  29. package/dist/cloudflare/registry.mjs +2 -20
  30. package/dist/cloudflare/runtime.d.mts +11 -18
  31. package/dist/cloudflare/runtime.mjs +52 -73
  32. package/dist/cloudflare/step.d.mts +6 -6
  33. package/dist/cloudflare/step.mjs +69 -57
  34. package/dist/cloudflare/types.d.mts +17 -36
  35. package/dist/collection.d.mts +8 -11
  36. package/dist/collection.mjs +10 -14
  37. package/dist/compiled-function.d.mts +14 -19
  38. package/dist/compiled-function.mjs +12 -24
  39. package/dist/compiled.d.mts +4 -0
  40. package/dist/compiled.mjs +4 -0
  41. package/dist/compiler/ast.d.mts +26 -0
  42. package/dist/{vite → compiler}/ast.mjs +24 -16
  43. package/dist/{vite → compiler}/error.d.mts +4 -6
  44. package/dist/{vite → compiler}/error.mjs +14 -16
  45. package/dist/compiler/manifest.d.mts +6 -0
  46. package/dist/{vite → compiler}/manifest.mjs +9 -7
  47. package/dist/compiler/plugin.d.mts +7 -0
  48. package/dist/{vite → compiler}/plugin.mjs +45 -46
  49. package/dist/compiler/safety.d.mts +12 -0
  50. package/dist/{vite → compiler}/safety.mjs +5 -11
  51. package/dist/{vite → compiler}/source-edit.d.mts +3 -4
  52. package/dist/{vite → compiler}/source-edit.mjs +1 -1
  53. package/dist/{vite → compiler}/source-map.d.mts +4 -3
  54. package/dist/{vite → compiler}/source-map.mjs +3 -3
  55. package/dist/compiler/source.d.mts +7 -0
  56. package/dist/{vite → compiler}/source.mjs +1 -1
  57. package/dist/compiler/transform.d.mts +12 -0
  58. package/dist/{vite → compiler}/transform.mjs +37 -38
  59. package/dist/definition.d.mts +17 -25
  60. package/dist/definition.mjs +19 -35
  61. package/dist/engine/child-workflow.d.mts +5 -9
  62. package/dist/engine/child-workflow.mjs +46 -67
  63. package/dist/engine/command-identity.d.mts +5 -6
  64. package/dist/engine/command-identity.mjs +9 -5
  65. package/dist/engine/context.d.mts +17 -0
  66. package/dist/engine/create.d.mts +36 -94
  67. package/dist/engine/create.mjs +55 -260
  68. package/dist/engine/deterministic.d.mts +6 -11
  69. package/dist/engine/deterministic.mjs +47 -68
  70. package/dist/engine/durable-command.d.mts +5 -5
  71. package/dist/engine/durable-command.mjs +2 -2
  72. package/dist/engine/execution-service.d.mts +20 -24
  73. package/dist/engine/execution-service.mjs +54 -52
  74. package/dist/engine/hooks.d.mts +17 -39
  75. package/dist/engine/hooks.mjs +73 -94
  76. package/dist/engine/inspection.d.mts +23 -15
  77. package/dist/engine/inspection.mjs +55 -29
  78. package/dist/engine/lifecycle.d.mts +6 -12
  79. package/dist/engine/lifecycle.mjs +5 -5
  80. package/dist/engine/lock-replay.d.mts +8 -15
  81. package/dist/engine/lock-replay.mjs +12 -25
  82. package/dist/engine/lock.d.mts +10 -15
  83. package/dist/engine/lock.mjs +65 -51
  84. package/dist/engine/message.d.mts +14 -34
  85. package/dist/engine/message.mjs +94 -127
  86. package/dist/engine/observation.d.mts +9 -11
  87. package/dist/engine/observation.mjs +18 -27
  88. package/dist/engine/replay.d.mts +18 -19
  89. package/dist/engine/replay.mjs +32 -56
  90. package/dist/engine/resume.d.mts +16 -0
  91. package/dist/engine/resume.mjs +24 -0
  92. package/dist/engine/retry.d.mts +15 -19
  93. package/dist/engine/retry.mjs +17 -17
  94. package/dist/engine/run-data.d.mts +4 -8
  95. package/dist/engine/run-data.mjs +24 -22
  96. package/dist/engine/run-service.d.mts +24 -33
  97. package/dist/engine/run-service.mjs +125 -93
  98. package/dist/engine/run-utils.d.mts +11 -13
  99. package/dist/engine/run-utils.mjs +23 -46
  100. package/dist/engine/schedule.d.mts +8 -22
  101. package/dist/engine/schedule.mjs +37 -34
  102. package/dist/engine/serialization.d.mts +9 -6
  103. package/dist/engine/serialization.mjs +30 -21
  104. package/dist/engine/signals.d.mts +23 -0
  105. package/dist/engine/signals.mjs +41 -0
  106. package/dist/engine/start.d.mts +18 -0
  107. package/dist/engine/start.mjs +88 -0
  108. package/dist/engine/state.d.mts +37 -67
  109. package/dist/engine/state.mjs +119 -280
  110. package/dist/engine/step-api.d.mts +5 -8
  111. package/dist/engine/step-api.mjs +16 -16
  112. package/dist/engine/stream-reader.d.mts +12 -0
  113. package/dist/engine/stream-reader.mjs +154 -0
  114. package/dist/engine/stream.d.mts +9 -54
  115. package/dist/engine/stream.mjs +54 -196
  116. package/dist/engine/summary/recovery.d.mts +35 -0
  117. package/dist/engine/summary/recovery.mjs +363 -0
  118. package/dist/engine/summary/runs.d.mts +43 -0
  119. package/dist/engine/summary/runs.mjs +294 -0
  120. package/dist/engine/summary/step-attempts.d.mts +5 -10
  121. package/dist/engine/summary/step-attempts.mjs +157 -36
  122. package/dist/engine/summary/tally.d.mts +44 -0
  123. package/dist/engine/summary/tally.mjs +142 -0
  124. package/dist/engine/task.d.mts +4 -5
  125. package/dist/engine/task.mjs +40 -48
  126. package/dist/errors/base.d.mts +17 -77
  127. package/dist/errors/base.mjs +26 -327
  128. package/dist/errors/capability.d.mts +3 -6
  129. package/dist/errors/capability.mjs +4 -8
  130. package/dist/errors/codes.d.mts +116 -0
  131. package/dist/{types/error-code.mjs → errors/codes.mjs} +2 -17
  132. package/dist/errors/definition.d.mts +3 -17
  133. package/dist/errors/definition.mjs +5 -42
  134. package/dist/errors/failures.d.mts +17 -51
  135. package/dist/errors/failures.mjs +35 -102
  136. package/dist/errors/hook.d.mts +5 -9
  137. package/dist/errors/hook.mjs +4 -16
  138. package/dist/errors/implementation.d.mts +3 -6
  139. package/dist/errors/implementation.mjs +7 -12
  140. package/dist/errors/lock.d.mts +7 -20
  141. package/dist/errors/lock.mjs +8 -44
  142. package/dist/errors/message.d.mts +14 -59
  143. package/dist/errors/message.mjs +13 -39
  144. package/dist/errors/mod.d.mts +4 -5
  145. package/dist/errors/mod.mjs +5 -7
  146. package/dist/errors/records.d.mts +10 -4
  147. package/dist/errors/records.mjs +256 -256
  148. package/dist/errors/run.d.mts +27 -68
  149. package/dist/errors/run.mjs +31 -85
  150. package/dist/errors/schedule.d.mts +7 -18
  151. package/dist/errors/schedule.mjs +7 -39
  152. package/dist/errors/step.d.mts +12 -45
  153. package/dist/errors/step.mjs +13 -34
  154. package/dist/errors/stream.d.mts +8 -16
  155. package/dist/errors/stream.mjs +7 -41
  156. package/dist/esbuild.d.mts +6 -4
  157. package/dist/esbuild.mjs +2 -1
  158. package/dist/events/descriptors.d.mts +12 -241
  159. package/dist/events/descriptors.mjs +12 -5
  160. package/dist/history/projection.d.mts +4 -6
  161. package/dist/history/projection.mjs +22 -26
  162. package/dist/history/replay-projection.d.mts +44 -48
  163. package/dist/history/replay-projection.mjs +41 -50
  164. package/dist/history/{mod.d.mts → replay.d.mts} +16 -21
  165. package/dist/history/{mod.mjs → replay.mjs} +21 -25
  166. package/dist/history/sequencer.d.mts +10 -11
  167. package/dist/history/sequencer.mjs +11 -7
  168. package/dist/history/step-attempts.d.mts +4 -7
  169. package/dist/history/step-attempts.mjs +8 -9
  170. package/dist/history/timeline.d.mts +4 -13
  171. package/dist/history/timeline.mjs +46 -265
  172. package/dist/history/validator.d.mts +5 -7
  173. package/dist/history/validator.mjs +9 -24
  174. package/dist/hook-token.d.mts +7 -0
  175. package/dist/hook-token.mjs +32 -0
  176. package/dist/ids.d.mts +8 -0
  177. package/dist/ids.mjs +21 -0
  178. package/dist/message-options.d.mts +11 -5
  179. package/dist/message-options.mjs +9 -7
  180. package/dist/mod.d.mts +32 -36
  181. package/dist/mod.mjs +9 -13
  182. package/dist/otel/metrics.d.mts +31 -0
  183. package/dist/otel/metrics.mjs +60 -0
  184. package/dist/otel/mod.d.mts +3 -0
  185. package/dist/otel/mod.mjs +3 -0
  186. package/dist/otel/spans.d.mts +24 -0
  187. package/dist/otel/spans.mjs +218 -0
  188. package/dist/otel/support.d.mts +15 -8
  189. package/dist/otel/support.mjs +18 -40
  190. package/dist/{otel.d.mts → otel/telemetry.d.mts} +5 -6
  191. package/dist/otel/telemetry.mjs +305 -0
  192. package/dist/pagination.d.mts +6 -12
  193. package/dist/pagination.mjs +10 -14
  194. package/dist/registry.d.mts +8 -5
  195. package/dist/registry.mjs +19 -10
  196. package/dist/rolldown.d.mts +6 -4
  197. package/dist/rolldown.mjs +2 -1
  198. package/dist/rollup.d.mts +6 -4
  199. package/dist/rollup.mjs +2 -1
  200. package/dist/rspack.d.mts +6 -4
  201. package/dist/rspack.mjs +2 -1
  202. package/dist/run-status.d.mts +29 -0
  203. package/dist/run-status.mjs +42 -0
  204. package/dist/schema/common.d.mts +22 -0
  205. package/dist/schema/common.mjs +54 -0
  206. package/dist/schema/error.d.mts +17 -0
  207. package/dist/schema/error.mjs +39 -0
  208. package/dist/schema/events.d.mts +446 -0
  209. package/dist/schema/events.mjs +235 -0
  210. package/dist/schema/pagination.d.mts +5 -0
  211. package/dist/schema/pagination.mjs +11 -0
  212. package/dist/schema/persisted-value.d.mts +8 -0
  213. package/dist/schema/persisted-value.mjs +94 -0
  214. package/dist/schema/run.d.mts +51 -0
  215. package/dist/schema/run.mjs +88 -0
  216. package/dist/schema/store.d.mts +94 -0
  217. package/dist/schema/store.mjs +116 -0
  218. package/dist/step-definition.d.mts +4 -9
  219. package/dist/step-definition.mjs +2 -2
  220. package/dist/store/capabilities.d.mts +8 -9
  221. package/dist/store/capabilities.mjs +7 -7
  222. package/dist/store/cleanup.d.mts +9 -14
  223. package/dist/store/cleanup.mjs +86 -85
  224. package/dist/store/create.d.mts +28 -29
  225. package/dist/store/create.mjs +10 -11
  226. package/dist/store/events.d.mts +48 -0
  227. package/dist/store/events.mjs +263 -0
  228. package/dist/store/indexes.d.mts +25 -0
  229. package/dist/store/indexes.mjs +282 -0
  230. package/dist/store/instrumentation.d.mts +2 -3
  231. package/dist/store/instrumentation.mjs +30 -30
  232. package/dist/store/lock.d.mts +4 -5
  233. package/dist/store/lock.mjs +5 -7
  234. package/dist/store/materialization.d.mts +10 -17
  235. package/dist/store/materialization.mjs +39 -33
  236. package/dist/store/mod.d.mts +3 -3
  237. package/dist/store/mod.mjs +2 -2
  238. package/dist/store/query.d.mts +13 -17
  239. package/dist/store/query.mjs +13 -13
  240. package/dist/store/run.d.mts +25 -34
  241. package/dist/store/run.mjs +67 -108
  242. package/dist/store/schedule.d.mts +6 -8
  243. package/dist/store/schedule.mjs +11 -11
  244. package/dist/store/step-attempt.d.mts +9 -12
  245. package/dist/store/step-attempt.mjs +9 -9
  246. package/dist/store/storage-value.d.mts +3 -3
  247. package/dist/store/storage-value.mjs +17 -1
  248. package/dist/store/validation.d.mts +17 -20
  249. package/dist/store/validation.mjs +30 -33
  250. package/dist/store-keys.d.mts +35 -47
  251. package/dist/store-keys.mjs +9 -17
  252. package/dist/telemetry.d.mts +16 -16
  253. package/dist/telemetry.mjs +3 -3
  254. package/dist/temporal.d.mts +11 -16
  255. package/dist/temporal.mjs +8 -9
  256. package/dist/timer.d.mts +12 -10
  257. package/dist/timer.mjs +11 -3
  258. package/dist/types/cleanup.d.mts +13 -50
  259. package/dist/types/cleanup.mjs +1 -22
  260. package/dist/types/client.d.mts +101 -162
  261. package/dist/types/{vite.d.mts → compiler.d.mts} +17 -24
  262. package/dist/types/compiler.mjs +1 -0
  263. package/dist/types/definition.d.mts +22 -34
  264. package/dist/types/engine-options.d.mts +10 -17
  265. package/dist/types/engine.d.mts +15 -274
  266. package/dist/types/error.d.mts +15 -217
  267. package/dist/types/error.mjs +1 -48
  268. package/dist/types/events.d.mts +59 -2730
  269. package/dist/types/events.mjs +1 -283
  270. package/dist/types/hook.d.mts +27 -85
  271. package/dist/types/hook.mjs +1 -66
  272. package/dist/types/ids.d.mts +9 -0
  273. package/dist/types/ids.mjs +1 -0
  274. package/dist/types/lock.d.mts +8 -26
  275. package/dist/types/lock.mjs +1 -18
  276. package/dist/types/message.d.mts +29 -43
  277. package/dist/types/observation.d.mts +43 -58
  278. package/dist/types/pagination.d.mts +6 -22
  279. package/dist/types/pagination.mjs +1 -13
  280. package/dist/types/result.d.mts +11 -43
  281. package/dist/types/retry.d.mts +7 -14
  282. package/dist/types/run-list.d.mts +9 -11
  283. package/dist/types/run-options.d.mts +25 -32
  284. package/dist/types/run.d.mts +35 -315
  285. package/dist/types/run.mjs +1 -207
  286. package/dist/types/runtime.d.mts +33 -145
  287. package/dist/types/runtime.mjs +1 -21
  288. package/dist/types/schedule.d.mts +13 -72
  289. package/dist/types/schedule.mjs +1 -48
  290. package/dist/types/step-attempts.d.mts +65 -261
  291. package/dist/types/step-attempts.mjs +1 -43
  292. package/dist/types/step.d.mts +66 -77
  293. package/dist/types/step.mjs +1 -5
  294. package/dist/types/store.d.mts +50 -182
  295. package/dist/types/stream.d.mts +19 -40
  296. package/dist/types/summary.d.mts +174 -278
  297. package/dist/types/telemetry.d.mts +23 -28
  298. package/dist/types/telemetry.mjs +1 -9
  299. package/dist/types/timeline.d.mts +46 -233
  300. package/dist/types/worker.d.mts +22 -29
  301. package/dist/values.d.mts +15 -0
  302. package/dist/values.mjs +57 -0
  303. package/dist/vite.d.mts +5 -6
  304. package/dist/vite.mjs +3 -4
  305. package/dist/webpack.d.mts +6 -4
  306. package/dist/webpack.mjs +2 -1
  307. package/dist/worker/error.d.mts +2 -9
  308. package/dist/worker/error.mjs +20 -32
  309. package/dist/worker/missing-implementation.d.mts +19 -0
  310. package/dist/worker/missing-implementation.mjs +62 -0
  311. package/dist/worker/worker.d.mts +18 -0
  312. package/dist/{worker.mjs → worker/worker.mjs} +64 -118
  313. package/package.json +28 -47
  314. package/dist/engine/execution-api.d.mts +0 -29
  315. package/dist/engine/execution-api.mjs +0 -33
  316. package/dist/engine/inspection-api.d.mts +0 -34
  317. package/dist/engine/inspection-api.mjs +0 -78
  318. package/dist/engine/mod.d.mts +0 -4
  319. package/dist/engine/mod.mjs +0 -2
  320. package/dist/engine/recovery.d.mts +0 -26
  321. package/dist/engine/recovery.mjs +0 -92
  322. package/dist/engine/retry-policy.d.mts +0 -4
  323. package/dist/engine/retry-policy.mjs +0 -4
  324. package/dist/engine/start-api.d.mts +0 -30
  325. package/dist/engine/start-api.mjs +0 -99
  326. package/dist/engine/summary/active-events.d.mts +0 -34
  327. package/dist/engine/summary/active-events.mjs +0 -69
  328. package/dist/engine/summary/child-workflow-runs.d.mts +0 -24
  329. package/dist/engine/summary/child-workflow-runs.mjs +0 -138
  330. package/dist/engine/summary/child-workflow-waits.d.mts +0 -21
  331. package/dist/engine/summary/child-workflow-waits.mjs +0 -67
  332. package/dist/engine/summary/recovery-child-workflow-waits.d.mts +0 -11
  333. package/dist/engine/summary/recovery-child-workflow-waits.mjs +0 -89
  334. package/dist/engine/summary/recovery-due-runs.d.mts +0 -16
  335. package/dist/engine/summary/recovery-due-runs.mjs +0 -52
  336. package/dist/engine/summary/recovery-failed-runs.d.mts +0 -14
  337. package/dist/engine/summary/recovery-failed-runs.mjs +0 -33
  338. package/dist/engine/summary/recovery-lease-runs.d.mts +0 -16
  339. package/dist/engine/summary/recovery-lease-runs.mjs +0 -69
  340. package/dist/engine/summary/recovery-locks.d.mts +0 -18
  341. package/dist/engine/summary/recovery-locks.mjs +0 -100
  342. package/dist/engine/summary/recovery-message-waits.d.mts +0 -11
  343. package/dist/engine/summary/recovery-message-waits.mjs +0 -74
  344. package/dist/engine/summary/recovery-retry-runs.d.mts +0 -17
  345. package/dist/engine/summary/recovery-retry-runs.mjs +0 -65
  346. package/dist/engine/summary/recovery-run-timestamps.d.mts +0 -13
  347. package/dist/engine/summary/recovery-run-timestamps.mjs +0 -18
  348. package/dist/engine/summary/recovery-runs.d.mts +0 -23
  349. package/dist/engine/summary/recovery-runs.mjs +0 -54
  350. package/dist/engine/summary/recovery-schedules.d.mts +0 -10
  351. package/dist/engine/summary/recovery-schedules.mjs +0 -46
  352. package/dist/engine/summary/recovery-sleep-waits.d.mts +0 -10
  353. package/dist/engine/summary/recovery-sleep-waits.mjs +0 -53
  354. package/dist/engine/summary/recovery-waits.d.mts +0 -21
  355. package/dist/engine/summary/recovery-waits.mjs +0 -29
  356. package/dist/engine/summary/run-availability.d.mts +0 -13
  357. package/dist/engine/summary/run-availability.mjs +0 -37
  358. package/dist/engine/summary/run-cleanup.d.mts +0 -14
  359. package/dist/engine/summary/run-cleanup.mjs +0 -44
  360. package/dist/engine/summary/run-failure.d.mts +0 -14
  361. package/dist/engine/summary/run-failure.mjs +0 -62
  362. package/dist/engine/summary/run-hooks.d.mts +0 -14
  363. package/dist/engine/summary/run-hooks.mjs +0 -63
  364. package/dist/engine/summary/run-lease.d.mts +0 -11
  365. package/dist/engine/summary/run-lease.mjs +0 -64
  366. package/dist/engine/summary/run-message-waits.d.mts +0 -15
  367. package/dist/engine/summary/run-message-waits.mjs +0 -62
  368. package/dist/engine/summary/run-metrics.d.mts +0 -31
  369. package/dist/engine/summary/run-metrics.mjs +0 -93
  370. package/dist/engine/summary/run-retry.d.mts +0 -9
  371. package/dist/engine/summary/run-retry.mjs +0 -69
  372. package/dist/engine/summary/run-sleeps.d.mts +0 -15
  373. package/dist/engine/summary/run-sleeps.mjs +0 -61
  374. package/dist/engine/summary/run-state.d.mts +0 -26
  375. package/dist/engine/summary/run-state.mjs +0 -48
  376. package/dist/engine/summary/run-status.d.mts +0 -16
  377. package/dist/engine/summary/run-status.mjs +0 -35
  378. package/dist/engine/summary/run-streams.d.mts +0 -14
  379. package/dist/engine/summary/run-streams.mjs +0 -46
  380. package/dist/engine/summary/run-transition.d.mts +0 -9
  381. package/dist/engine/summary/run-transition.mjs +0 -39
  382. package/dist/engine/summary/run-workflow.d.mts +0 -9
  383. package/dist/engine/summary/run-workflow.mjs +0 -47
  384. package/dist/engine/summary/step-attempt-active-child-workflows.d.mts +0 -13
  385. package/dist/engine/summary/step-attempt-active-child-workflows.mjs +0 -55
  386. package/dist/engine/summary/step-attempt-active-fields.d.mts +0 -23
  387. package/dist/engine/summary/step-attempt-active-fields.mjs +0 -14
  388. package/dist/engine/summary/step-attempt-active-message-waits.d.mts +0 -12
  389. package/dist/engine/summary/step-attempt-active-message-waits.mjs +0 -47
  390. package/dist/engine/summary/step-attempt-active-sleeps.d.mts +0 -19
  391. package/dist/engine/summary/step-attempt-active-sleeps.mjs +0 -44
  392. package/dist/engine/summary/step-attempt-buckets.d.mts +0 -22
  393. package/dist/engine/summary/step-attempt-buckets.mjs +0 -152
  394. package/dist/engine/summary/step-attempt-failure.d.mts +0 -12
  395. package/dist/engine/summary/step-attempt-failure.mjs +0 -61
  396. package/dist/engine/summary/step-attempt-lifecycle.d.mts +0 -13
  397. package/dist/engine/summary/step-attempt-lifecycle.mjs +0 -19
  398. package/dist/engine/summary.d.mts +0 -32
  399. package/dist/engine/summary.mjs +0 -37
  400. package/dist/errors/details.d.mts +0 -13
  401. package/dist/errors/details.mjs +0 -66
  402. package/dist/errors/record-view.d.mts +0 -11
  403. package/dist/errors/record-view.mjs +0 -24
  404. package/dist/errors/runtime.d.mts +0 -12
  405. package/dist/errors/runtime.mjs +0 -24
  406. package/dist/events/mod.d.mts +0 -3
  407. package/dist/events/mod.mjs +0 -2
  408. package/dist/history/attempt-key.d.mts +0 -6
  409. package/dist/history/attempt-key.mjs +0 -7
  410. package/dist/inspection/mod.d.mts +0 -5
  411. package/dist/inspection/mod.mjs +0 -3
  412. package/dist/otel.mjs +0 -590
  413. package/dist/runtime.d.mts +0 -35
  414. package/dist/runtime.mjs +0 -198
  415. package/dist/store/append-projection.d.mts +0 -15
  416. package/dist/store/append-projection.mjs +0 -26
  417. package/dist/store/compaction.d.mts +0 -5
  418. package/dist/store/compaction.mjs +0 -8
  419. package/dist/store/event-append-project.d.mts +0 -15
  420. package/dist/store/event-append-project.mjs +0 -77
  421. package/dist/store/event-append.d.mts +0 -37
  422. package/dist/store/event-append.mjs +0 -80
  423. package/dist/store/event-history.d.mts +0 -22
  424. package/dist/store/event-history.mjs +0 -75
  425. package/dist/store/event.d.mts +0 -10
  426. package/dist/store/event.mjs +0 -28
  427. package/dist/store/idempotency.d.mts +0 -10
  428. package/dist/store/idempotency.mjs +0 -167
  429. package/dist/store/message-index.d.mts +0 -21
  430. package/dist/store/message-index.mjs +0 -122
  431. package/dist/store/revision.d.mts +0 -4
  432. package/dist/store/revision.mjs +0 -7
  433. package/dist/store/schema.d.mts +0 -14
  434. package/dist/store/schema.mjs +0 -17
  435. package/dist/types/common.d.mts +0 -20
  436. package/dist/types/common.mjs +0 -16
  437. package/dist/types/error-code.d.mts +0 -256
  438. package/dist/types/message-id.d.mts +0 -7
  439. package/dist/types/message-id.mjs +0 -5
  440. package/dist/types/run-id.d.mts +0 -7
  441. package/dist/types/run-id.mjs +0 -5
  442. package/dist/types/step-id.d.mts +0 -7
  443. package/dist/types/step-id.mjs +0 -5
  444. package/dist/types/stream-id.d.mts +0 -7
  445. package/dist/types/stream-id.mjs +0 -5
  446. package/dist/types/worker-id.d.mts +0 -7
  447. package/dist/types/worker-id.mjs +0 -5
  448. package/dist/utility.d.mts +0 -49
  449. package/dist/utility.mjs +0 -122
  450. package/dist/vite/ast.d.mts +0 -23
  451. package/dist/vite/generated-name.d.mts +0 -7
  452. package/dist/vite/generated-name.mjs +0 -9
  453. package/dist/vite/manifest.d.mts +0 -7
  454. package/dist/vite/plugin.d.mts +0 -7
  455. package/dist/vite/safety.d.mts +0 -12
  456. package/dist/vite/source.d.mts +0 -7
  457. package/dist/vite/transform.d.mts +0 -7
  458. package/dist/webhook.d.mts +0 -16
  459. package/dist/webhook.mjs +0 -17
  460. package/dist/worker.d.mts +0 -19
  461. /package/dist/{types/vite.mjs → engine/context.mjs} +0 -0
@@ -1,280 +1,280 @@
1
- import { workflowErrorCodeSchema } from "../types/error-code.mjs";
1
+ import { positiveSafeIntegerSchema } from "../schema/common.mjs";
2
2
  import { WorkflowError, WorkflowMessageError, WorkflowOptionsError, WorkflowRunError, WorkflowStateError, WorkflowStepError } from "./base.mjs";
3
- import { WorkflowDurationError, WorkflowNonRetryableError, WorkflowPermanentFailureError, WorkflowReplayDivergenceError, WorkflowRetryableError, WorkflowSerializationError } from "./failures.mjs";
4
- import { WorkflowChildWorkflowTimeoutError, WorkflowResultTimeoutError, WorkflowRunCanceledError, WorkflowRunCancellationError, WorkflowRunDeadlineExceededError, WorkflowRunMismatchError, WorkflowRunNotFoundError, WorkflowRunParentError, WorkflowRunTransitionError } from "./run.mjs";
5
- import { sanitizedWorkflowErrorDetails } from "../types/error.mjs";
6
3
  import { WorkflowCapabilityError } from "./capability.mjs";
7
4
  import { WorkflowDefinitionError } from "./definition.mjs";
5
+ import { WorkflowDurationError, WorkflowNonRetryableError, WorkflowPermanentFailureError, WorkflowReplayDivergenceError, WorkflowRetryableError, WorkflowSerializationError } from "./failures.mjs";
8
6
  import { WorkflowHookError } from "./hook.mjs";
9
7
  import { WorkflowImplementationNotFoundError } from "./implementation.mjs";
10
8
  import { WorkflowLockError, WorkflowLockStateError } from "./lock.mjs";
11
9
  import { WorkflowHookDisposedError, WorkflowMessageDeliveryError, WorkflowMessageIdempotencyConflictError, WorkflowMessageWaitTimeoutError } from "./message.mjs";
12
- import { WorkflowRuntimeError } from "./runtime.mjs";
10
+ import { WorkflowChildWorkflowTimeoutError, WorkflowResultTimeoutError, WorkflowRunCanceledError, WorkflowRunCancellationError, WorkflowRunDeadlineExceededError, WorkflowRunMismatchError, WorkflowRunNotFoundError, WorkflowRunParentError, WorkflowRunTransitionError } from "./run.mjs";
13
11
  import { WorkflowScheduleAlreadyExistsError, WorkflowScheduleError } from "./schedule.mjs";
14
12
  import { WorkflowStepAttemptLimitError, WorkflowStepExecutionError, WorkflowStepRetryLimitError, WorkflowStepTimeoutError } from "./step.mjs";
15
13
  import { WorkflowStreamError, WorkflowStreamNotFoundError } from "./stream.mjs";
16
- import { hasWorkflowErrorCauseDetails, unprefixWorkflowErrorCauseDetails, workflowErrorDetailDuration, workflowErrorDetailPositiveSafeInteger, workflowErrorDetailString, workflowErrorDetailTimestamp, workflowErrorRunStatusOrUndefined, workflowTerminalErrorRunStatusOrUndefined } from "./details.mjs";
14
+ import { errorCodeSchema, errorDetailsSchema, errorRunStatusSchema, optionalErrorStringSchema, terminalErrorRunStatusSchema } from "../schema/error.mjs";
15
+ import { ss } from "@temelj/standard-schema";
16
+ import { isObject, isString } from "@temelj/value";
17
17
  //#region src/errors/records.ts
18
18
  /** Reconstructs a workflow error instance from a persisted error record. */
19
19
  function workflowErrorFromRecord(record) {
20
- const normalizedRecord = typeof record === "object" && record !== null && !Array.isArray(record) && (Object.getPrototypeOf(record) === Object.prototype || Object.getPrototypeOf(record) === null) ? record : {};
21
- const recordName = typeof normalizedRecord.name === "string" && normalizedRecord.name.trim() !== "" ? normalizedRecord.name : "WorkflowError";
22
- const recordMessage = typeof normalizedRecord.message === "string" && normalizedRecord.message.trim() !== "" ? normalizedRecord.message : recordName;
23
- const error = typedWorkflowErrorFromRecord(normalizedRecord, recordMessage) ?? WorkflowError.fromMessage(recordMessage, { details: sanitizedWorkflowErrorDetails(normalizedRecord.details) });
20
+ const recordName = record.name.trim() === "" ? "WorkflowError" : record.name;
21
+ const recordMessage = record.message.trim() === "" ? recordName : record.message;
22
+ const error = typedErrorFromRecord(record, recordMessage) ?? new WorkflowError(recordMessage, { details: sanitizedErrorDetails(record.details) });
24
23
  error.name = recordName;
25
24
  error.message = recordMessage;
26
- const recordCode = workflowErrorCodeSchema.safeParse(normalizedRecord.code);
27
- if (recordCode.success) Object.defineProperty(error, "code", { value: recordCode.data });
28
- const recordStack = typeof normalizedRecord.stack === "string" && normalizedRecord.stack.trim() !== "" ? normalizedRecord.stack : void 0;
25
+ const recordCode = ss.safeParseSync(errorCodeSchema, record.code);
26
+ if (recordCode.success) Object.defineProperty(error, "code", { value: recordCode.value });
27
+ const recordStack = record.stack !== void 0 && record.stack.trim() !== "" ? record.stack : void 0;
29
28
  if (recordStack !== void 0) error.stack = recordStack;
30
29
  return error;
31
30
  }
32
- function typedWorkflowErrorFromRecord(record, recordMessage) {
33
- return (record.name === void 0 ? void 0 : workflowErrorRecordFactories[record.name])?.(record, recordMessage);
31
+ function typedErrorFromRecord(record, recordMessage) {
32
+ return (record.name === void 0 ? void 0 : workflowErrorRecordFactories().get(record.name))?.(record, recordMessage);
33
+ }
34
+ /**
35
+ * Rebuilds an error from the detail fields its constructor needs. The record is not rebuilt as
36
+ * this class when a field is missing or malformed.
37
+ */
38
+ function fromFields(spec, build) {
39
+ return (record, recordMessage) => {
40
+ const fields = {};
41
+ for (const [key, kind] of Object.entries(spec)) {
42
+ const value = readField(record.details, key, kind);
43
+ if (value === void 0) return;
44
+ fields[key] = value;
45
+ }
46
+ return build(fields, recordMessage, record.details);
47
+ };
34
48
  }
35
- const workflowErrorRecordFactories = {
36
- WorkflowHookError: domainWorkflowErrorFactory(WorkflowHookError),
37
- WorkflowLockError: domainWorkflowErrorFactory(WorkflowLockError),
38
- WorkflowLockStateError: domainWorkflowErrorFactory(WorkflowLockStateError),
39
- WorkflowScheduleError: domainWorkflowErrorFactory(WorkflowScheduleError),
40
- WorkflowStreamError: domainWorkflowErrorFactory(WorkflowStreamError),
41
- WorkflowScheduleAlreadyExistsError(record) {
42
- const scheduleId = workflowErrorDetailString(record.details, "scheduleId");
43
- return scheduleId === void 0 ? void 0 : WorkflowScheduleAlreadyExistsError.create(scheduleId);
44
- },
45
- WorkflowStreamNotFoundError(record) {
46
- const streamIdOrName = workflowErrorDetailString(record.details, "streamIdOrName");
47
- return streamIdOrName === void 0 ? void 0 : WorkflowStreamNotFoundError.create(streamIdOrName);
48
- },
49
- WorkflowImplementationNotFoundError(record) {
50
- const details = record.details;
51
- const workflowName = workflowErrorDetailString(details, "workflowName");
52
- if (workflowName === void 0) return;
53
- return WorkflowImplementationNotFoundError.create(workflowName, workflowErrorDetailString(details, "workflowVersion"));
54
- },
55
- WorkflowDefinitionError: (_record, recordMessage) => WorkflowDefinitionError.create(recordMessage),
56
- WorkflowOptionsError: (_record, recordMessage) => WorkflowOptionsError.create(recordMessage),
57
- WorkflowStateError: (_record, recordMessage) => WorkflowStateError.create(recordMessage),
58
- WorkflowRuntimeError: (_record, recordMessage) => WorkflowRuntimeError.create(recordMessage),
59
- WorkflowRunError(record, recordMessage) {
60
- return WorkflowRunError.fromMessage(recordMessage, { details: sanitizedWorkflowErrorDetails(record.details) });
61
- },
62
- WorkflowStepError(record, recordMessage) {
63
- return WorkflowStepError.fromMessage(recordMessage, { details: sanitizedWorkflowErrorDetails(record.details) });
64
- },
65
- WorkflowMessageError(record, recordMessage) {
66
- return WorkflowMessageError.fromMessage(recordMessage, { details: sanitizedWorkflowErrorDetails(record.details) });
67
- },
68
- WorkflowCapabilityError(record) {
69
- const details = record.details;
70
- const capability = workflowErrorDetailString(details, "capability");
71
- return capability === void 0 ? void 0 : WorkflowCapabilityError.create(capability);
72
- },
73
- WorkflowDurationError: (_record, recordMessage) => WorkflowDurationError.create(recordMessage),
74
- WorkflowSerializationError(record) {
75
- const details = record.details;
76
- const path = workflowErrorDetailString(details, "path");
77
- const reason = workflowErrorDetailString(details, "reason");
78
- return path === void 0 || reason === void 0 ? void 0 : WorkflowSerializationError.create(path, reason);
79
- },
80
- WorkflowNonRetryableError(record, recordMessage) {
81
- return WorkflowNonRetryableError.create(recordMessage, { details: sanitizedWorkflowErrorDetails(record.details) });
82
- },
83
- WorkflowPermanentFailureError(record) {
84
- const details = record.details;
85
- const runId = workflowErrorDetailString(details, "runId");
86
- const reason = workflowErrorDetailString(details, "reason");
87
- return runId === void 0 || reason === void 0 ? void 0 : WorkflowPermanentFailureError.create({
88
- runId,
89
- reason
90
- });
91
- },
92
- WorkflowRetryableError(record, recordMessage) {
93
- const details = record.details;
94
- const retryAt = workflowErrorDetailTimestamp(details, "retryAt");
95
- const retryDelay = workflowErrorDetailDuration(details, "retryDelay");
96
- return WorkflowRetryableError.create(recordMessage, {
97
- ...retryAt === void 0 ? {} : { retryAt },
98
- ...retryDelay === void 0 ? {} : { retryDelay },
99
- details: sanitizedWorkflowErrorDetails(details)
100
- });
101
- },
102
- WorkflowStepTimeoutError(record) {
103
- const details = record.details;
104
- const runId = workflowErrorDetailString(details, "runId");
105
- const stepId = workflowErrorDetailString(details, "stepId");
106
- const stepName = workflowErrorDetailString(details, "stepName");
107
- const attempt = workflowErrorDetailPositiveSafeInteger(details, "attempt");
108
- const timeoutAt = workflowErrorDetailTimestamp(details, "timeoutAt");
109
- return runId === void 0 || stepId === void 0 || stepName === void 0 || attempt === void 0 || timeoutAt === void 0 ? void 0 : WorkflowStepTimeoutError.create({
110
- runId,
111
- stepId,
112
- stepName,
113
- attempt,
114
- timeoutAt
115
- });
116
- },
117
- WorkflowResultTimeoutError(record) {
118
- const details = record.details;
119
- const runId = workflowErrorDetailString(details, "runId");
120
- const timeout = workflowErrorDetailDuration(details, "timeout");
121
- return runId === void 0 || timeout === void 0 ? void 0 : WorkflowResultTimeoutError.create(runId, timeout);
122
- },
123
- WorkflowRunNotFoundError(record) {
124
- const details = record.details;
125
- const runId = workflowErrorDetailString(details, "runId");
126
- return runId === void 0 ? void 0 : WorkflowRunNotFoundError.create(runId);
127
- },
128
- WorkflowRunCanceledError(record) {
129
- const details = record.details;
130
- const runId = workflowErrorDetailString(details, "runId");
131
- return runId === void 0 ? void 0 : WorkflowRunCanceledError.create(runId);
132
- },
133
- WorkflowRunCancellationError(record) {
134
- const details = record.details;
135
- const runId = workflowErrorDetailString(details, "runId");
136
- const status = workflowTerminalErrorRunStatusOrUndefined(workflowErrorDetailString(details, "status"));
137
- return runId === void 0 || status === void 0 ? void 0 : WorkflowRunCancellationError.create(runId, status);
138
- },
139
- WorkflowRunDeadlineExceededError(record) {
140
- const details = record.details;
141
- const runId = workflowErrorDetailString(details, "runId");
142
- const deadlineAt = workflowErrorDetailTimestamp(details, "deadlineAt");
143
- return runId === void 0 || deadlineAt === void 0 ? void 0 : WorkflowRunDeadlineExceededError.create(runId, deadlineAt);
144
- },
145
- WorkflowRunParentError(record) {
146
- const details = record.details;
147
- const runId = workflowErrorDetailString(details, "runId");
148
- const reason = workflowErrorDetailString(details, "reason");
149
- return runId === void 0 || reason === void 0 ? void 0 : WorkflowRunParentError.create(runId, reason);
150
- },
151
- WorkflowRunTransitionError(record) {
152
- const details = record.details;
153
- const runId = workflowErrorDetailString(details, "runId");
154
- const valueFrom = workflowErrorDetailString(details, "from");
155
- const from = valueFrom === void 0 ? void 0 : workflowErrorRunStatusOrUndefined(valueFrom);
156
- const valueTo = workflowErrorDetailString(details, "to");
157
- const to = valueTo === void 0 ? void 0 : workflowErrorRunStatusOrUndefined(valueTo);
158
- return runId === void 0 || from === void 0 || to === void 0 ? void 0 : WorkflowRunTransitionError.create(runId, from, to);
159
- },
160
- WorkflowMessageDeliveryError(record) {
161
- const details = record.details;
162
- const runId = workflowErrorDetailString(details, "runId");
163
- const status = workflowTerminalErrorRunStatusOrUndefined(workflowErrorDetailString(details, "status"));
164
- const messageId = workflowErrorDetailString(details, "messageId");
165
- return runId === void 0 || status === void 0 || messageId === void 0 ? void 0 : WorkflowMessageDeliveryError.create({
166
- runId,
167
- status,
168
- messageId
169
- });
170
- },
171
- WorkflowMessageIdempotencyConflictError(record) {
172
- const details = record.details;
173
- const runId = workflowErrorDetailString(details, "runId");
174
- const messageId = workflowErrorDetailString(details, "messageId");
175
- const idempotencyKey = workflowErrorDetailString(details, "idempotencyKey");
176
- return runId === void 0 || messageId === void 0 || idempotencyKey === void 0 ? void 0 : WorkflowMessageIdempotencyConflictError.create({
177
- runId,
178
- messageId,
179
- idempotencyKey
180
- });
181
- },
182
- WorkflowRunMismatchError(record) {
183
- const details = record.details;
184
- const runId = workflowErrorDetailString(details, "runId");
185
- const expectedWorkflowName = workflowErrorDetailString(details, "expectedWorkflowName");
186
- const actualWorkflowName = workflowErrorDetailString(details, "actualWorkflowName");
187
- return runId === void 0 || expectedWorkflowName === void 0 || actualWorkflowName === void 0 ? void 0 : WorkflowRunMismatchError.create({
188
- runId,
189
- expectedWorkflowName,
190
- actualWorkflowName
191
- });
192
- },
193
- WorkflowChildWorkflowTimeoutError(record) {
194
- const details = record.details;
195
- const runId = workflowErrorDetailString(details, "runId");
196
- const childRunId = workflowErrorDetailString(details, "childRunId");
197
- const stepId = workflowErrorDetailString(details, "stepId");
198
- const timeoutAt = workflowErrorDetailTimestamp(details, "timeoutAt");
199
- return runId === void 0 || childRunId === void 0 || stepId === void 0 || timeoutAt === void 0 ? void 0 : WorkflowChildWorkflowTimeoutError.create({
200
- runId,
201
- childRunId,
202
- stepId,
203
- timeoutAt
204
- });
205
- },
206
- WorkflowMessageWaitTimeoutError(record) {
207
- const details = record.details;
208
- const runId = workflowErrorDetailString(details, "runId");
209
- const stepId = workflowErrorDetailString(details, "stepId");
210
- const stepName = workflowErrorDetailString(details, "stepName");
211
- const messageId = workflowErrorDetailString(details, "messageId");
212
- const timeoutAt = workflowErrorDetailTimestamp(details, "timeoutAt");
213
- return runId === void 0 || stepId === void 0 || stepName === void 0 || messageId === void 0 || timeoutAt === void 0 ? void 0 : WorkflowMessageWaitTimeoutError.create({
214
- runId,
215
- stepId,
216
- stepName,
217
- messageId,
218
- timeoutAt
219
- });
220
- },
221
- WorkflowHookDisposedError(record) {
222
- const details = record.details;
223
- const runId = workflowErrorDetailString(details, "runId");
224
- const stepId = workflowErrorDetailString(details, "stepId");
225
- const stepName = workflowErrorDetailString(details, "stepName");
226
- const messageId = workflowErrorDetailString(details, "messageId");
227
- return runId === void 0 || stepId === void 0 || stepName === void 0 || messageId === void 0 ? void 0 : WorkflowHookDisposedError.create({
228
- runId,
229
- stepId,
230
- stepName,
231
- messageId
232
- });
233
- },
234
- WorkflowStepExecutionError(record, recordMessage) {
235
- const details = record.details;
236
- const stepId = workflowErrorDetailString(details, "stepId");
237
- const stepName = workflowErrorDetailString(details, "stepName");
238
- const attempt = workflowErrorDetailPositiveSafeInteger(details, "attempt");
239
- const cause = details !== void 0 && hasWorkflowErrorCauseDetails(details) ? workflowErrorFromRecord(unprefixWorkflowErrorCauseDetails(details)) : WorkflowError.fromMessage(recordMessage);
240
- return stepId === void 0 || stepName === void 0 || attempt === void 0 ? void 0 : WorkflowStepExecutionError.create({
241
- stepId,
242
- stepName,
243
- attempt,
244
- cause
245
- });
246
- },
247
- WorkflowStepRetryLimitError(record) {
248
- const details = record.details;
249
- const stepId = workflowErrorDetailString(details, "stepId");
250
- const stepName = workflowErrorDetailString(details, "stepName");
251
- const attempt = workflowErrorDetailPositiveSafeInteger(details, "attempt");
252
- return stepId === void 0 || stepName === void 0 || attempt === void 0 ? void 0 : WorkflowStepRetryLimitError.create({
253
- stepId,
254
- stepName,
255
- attempt
256
- });
257
- },
258
- WorkflowStepAttemptLimitError(record) {
259
- const details = record.details;
260
- const runId = workflowErrorDetailString(details, "runId");
261
- const maximumAttempts = workflowErrorDetailPositiveSafeInteger(details, "maximumAttempts");
262
- return runId === void 0 || maximumAttempts === void 0 ? void 0 : WorkflowStepAttemptLimitError.create(runId, maximumAttempts);
263
- },
264
- WorkflowReplayDivergenceError(record) {
265
- const details = record.details;
266
- if (typeof record.message !== "string" || record.message.trim() === "") return;
267
- return WorkflowReplayDivergenceError.create(record.message.replace(/^Workflow replay diverged: /, ""), {
268
- expectedStepId: workflowErrorDetailString(details, "expectedStepId"),
269
- actualStepId: workflowErrorDetailString(details, "actualStepId")
270
- });
49
+ function readField(details, key, kind) {
50
+ switch (kind) {
51
+ case "string": return workflowErrorDetailString(details, key);
52
+ case "integer": return workflowErrorDetailPositiveSafeInteger(details, key);
53
+ case "instant": return workflowErrorDetailTimestamp(details, key);
54
+ case "duration": return workflowErrorDetailDuration(details, key);
55
+ case "runStatus": return workflowErrorRunStatusOrUndefined(workflowErrorDetailString(details, key));
56
+ case "terminalStatus": return workflowTerminalErrorRunStatusOrUndefined(workflowErrorDetailString(details, key));
57
+ default: return kind;
271
58
  }
272
- };
273
- function domainWorkflowErrorFactory(ErrorConstructor) {
59
+ }
60
+ let recordFactories;
61
+ /** Built on first use, because the error modules import this one while they load. */
62
+ function workflowErrorRecordFactories() {
63
+ recordFactories ??= new Map(Object.entries({
64
+ WorkflowHookError: domainErrorFactory(WorkflowHookError),
65
+ WorkflowLockError: domainErrorFactory(WorkflowLockError),
66
+ WorkflowLockStateError: domainErrorFactory(WorkflowLockStateError),
67
+ WorkflowScheduleError: domainErrorFactory(WorkflowScheduleError),
68
+ WorkflowStreamError: domainErrorFactory(WorkflowStreamError),
69
+ WorkflowScheduleAlreadyExistsError: fromFields({ scheduleId: "string" }, ({ scheduleId }) => new WorkflowScheduleAlreadyExistsError(scheduleId)),
70
+ WorkflowStreamNotFoundError: fromFields({ streamIdOrName: "string" }, ({ streamIdOrName }) => new WorkflowStreamNotFoundError(streamIdOrName)),
71
+ WorkflowImplementationNotFoundError: fromFields({ workflowName: "string" }, ({ workflowName }, _message, details) => new WorkflowImplementationNotFoundError(workflowName, workflowErrorDetailString(details, "workflowVersion"))),
72
+ WorkflowDefinitionError: (_record, recordMessage) => new WorkflowDefinitionError(recordMessage),
73
+ WorkflowOptionsError: (_record, recordMessage) => new WorkflowOptionsError(recordMessage),
74
+ WorkflowStateError: (_record, recordMessage) => new WorkflowStateError(recordMessage),
75
+ WorkflowDurationError: (_record, recordMessage) => new WorkflowDurationError(recordMessage),
76
+ WorkflowRunError: withDetails(WorkflowRunError),
77
+ WorkflowStepError: withDetails(WorkflowStepError),
78
+ WorkflowMessageError: withDetails(WorkflowMessageError),
79
+ WorkflowNonRetryableError: withDetails(WorkflowNonRetryableError),
80
+ WorkflowCapabilityError: fromFields({ capability: "string" }, ({ capability }) => new WorkflowCapabilityError(capability)),
81
+ WorkflowSerializationError: fromFields({
82
+ path: "string",
83
+ reason: "string"
84
+ }, ({ path, reason }) => new WorkflowSerializationError(path, reason)),
85
+ WorkflowPermanentFailureError: fromFields({
86
+ runId: "string",
87
+ reason: "string"
88
+ }, (fields) => new WorkflowPermanentFailureError(fields)),
89
+ WorkflowRetryableError(record, recordMessage) {
90
+ const details = record.details;
91
+ return new WorkflowRetryableError(recordMessage, {
92
+ details: sanitizedErrorDetails(details),
93
+ retryAt: workflowErrorDetailTimestamp(details, "retryAt"),
94
+ retryDelay: workflowErrorDetailDuration(details, "retryDelay")
95
+ });
96
+ },
97
+ WorkflowStepTimeoutError: fromFields({
98
+ runId: "string",
99
+ stepId: "string",
100
+ stepName: "string",
101
+ attempt: "integer",
102
+ timeoutAt: "instant"
103
+ }, (fields) => new WorkflowStepTimeoutError(fields)),
104
+ WorkflowResultTimeoutError: fromFields({
105
+ runId: "string",
106
+ timeout: "duration"
107
+ }, ({ runId, timeout }) => new WorkflowResultTimeoutError(runId, timeout)),
108
+ WorkflowRunNotFoundError: fromFields({ runId: "string" }, ({ runId }) => new WorkflowRunNotFoundError(runId)),
109
+ WorkflowRunCanceledError: fromFields({ runId: "string" }, ({ runId }) => new WorkflowRunCanceledError(runId)),
110
+ WorkflowRunCancellationError: fromFields({
111
+ runId: "string",
112
+ status: "terminalStatus"
113
+ }, ({ runId, status }) => new WorkflowRunCancellationError(runId, status)),
114
+ WorkflowRunDeadlineExceededError: fromFields({
115
+ runId: "string",
116
+ deadlineAt: "instant"
117
+ }, ({ runId, deadlineAt }) => new WorkflowRunDeadlineExceededError(runId, deadlineAt)),
118
+ WorkflowRunParentError: fromFields({
119
+ runId: "string",
120
+ reason: "string"
121
+ }, ({ runId, reason }) => new WorkflowRunParentError(runId, reason)),
122
+ WorkflowRunTransitionError: fromFields({
123
+ runId: "string",
124
+ from: "runStatus",
125
+ to: "runStatus"
126
+ }, ({ runId, from, to }) => new WorkflowRunTransitionError(runId, from, to)),
127
+ WorkflowMessageDeliveryError: fromFields({
128
+ runId: "string",
129
+ status: "terminalStatus",
130
+ messageId: "string"
131
+ }, (fields) => new WorkflowMessageDeliveryError(fields)),
132
+ WorkflowMessageIdempotencyConflictError: fromFields({
133
+ runId: "string",
134
+ messageId: "string",
135
+ idempotencyKey: "string"
136
+ }, (fields) => new WorkflowMessageIdempotencyConflictError(fields)),
137
+ WorkflowRunMismatchError: fromFields({
138
+ runId: "string",
139
+ expectedWorkflowName: "string",
140
+ actualWorkflowName: "string"
141
+ }, (fields) => new WorkflowRunMismatchError(fields)),
142
+ WorkflowChildWorkflowTimeoutError: fromFields({
143
+ runId: "string",
144
+ childRunId: "string",
145
+ stepId: "string",
146
+ timeoutAt: "instant"
147
+ }, (fields) => new WorkflowChildWorkflowTimeoutError(fields)),
148
+ WorkflowMessageWaitTimeoutError: fromFields({
149
+ runId: "string",
150
+ stepId: "string",
151
+ stepName: "string",
152
+ messageId: "string",
153
+ timeoutAt: "instant"
154
+ }, (fields) => new WorkflowMessageWaitTimeoutError(fields)),
155
+ WorkflowHookDisposedError: fromFields({
156
+ runId: "string",
157
+ stepId: "string",
158
+ stepName: "string",
159
+ messageId: "string"
160
+ }, (fields) => new WorkflowHookDisposedError(fields)),
161
+ WorkflowStepExecutionError: fromFields({
162
+ stepId: "string",
163
+ stepName: "string",
164
+ attempt: "integer"
165
+ }, (fields, recordMessage, details) => new WorkflowStepExecutionError({
166
+ ...fields,
167
+ cause: details !== void 0 && hasErrorCauseDetails(details) ? workflowErrorFromRecord(unprefixErrorCauseDetails(details)) : new WorkflowError(recordMessage)
168
+ })),
169
+ WorkflowStepRetryLimitError: fromFields({
170
+ stepId: "string",
171
+ stepName: "string",
172
+ attempt: "integer"
173
+ }, (fields) => new WorkflowStepRetryLimitError(fields)),
174
+ WorkflowStepAttemptLimitError: fromFields({
175
+ runId: "string",
176
+ maximumAttempts: "integer"
177
+ }, ({ runId, maximumAttempts }) => new WorkflowStepAttemptLimitError(runId, maximumAttempts)),
178
+ WorkflowReplayDivergenceError(record) {
179
+ const details = record.details;
180
+ if (record.message === void 0 || record.message.trim() === "") return;
181
+ return new WorkflowReplayDivergenceError(record.message.replace(/^Workflow replay diverged: /, ""), {
182
+ expectedStepId: workflowErrorDetailString(details, "expectedStepId"),
183
+ actualStepId: workflowErrorDetailString(details, "actualStepId")
184
+ });
185
+ }
186
+ }));
187
+ return recordFactories;
188
+ }
189
+ function domainErrorFactory(ErrorConstructor) {
274
190
  return (record, recordMessage) => {
275
- const code = workflowErrorCodeSchema.safeParse(record.code);
276
- return code.success ? new ErrorConstructor(recordMessage, code.data, sanitizedWorkflowErrorDetails(record.details)) : void 0;
191
+ const code = ss.safeParseSync(errorCodeSchema, record.code);
192
+ return code.success ? new ErrorConstructor(recordMessage, code.value, sanitizedErrorDetails(record.details)) : void 0;
193
+ };
194
+ }
195
+ function withDetails(ErrorConstructor) {
196
+ return (record, recordMessage) => new ErrorConstructor(recordMessage, { details: sanitizedErrorDetails(record.details) });
197
+ }
198
+ /** Safely exposes fields shared by live workflow errors and persisted workflow error records. */
199
+ function workflowErrorRecordView(cause) {
200
+ if (!isObject(cause)) return;
201
+ const code = "code" in cause ? ss.safeParseSync(errorCodeSchema, cause.code) : void 0;
202
+ if (code === void 0 || !code.success) return;
203
+ if (!("details" in cause) || cause.details === void 0) return { code: code.value };
204
+ const details = ss.safeParseSync(errorDetailsSchema, cause.details);
205
+ return details.success ? {
206
+ code: code.value,
207
+ details: details.value
208
+ } : void 0;
209
+ }
210
+ /**
211
+ * Whether `cause` is a workflow error, or a record of one, with `code` and every given detail value.
212
+ * Detail values left `undefined` match anything.
213
+ */
214
+ function matchesWorkflowError(cause, code, details = {}) {
215
+ const record = workflowErrorRecordView(cause);
216
+ return record?.code === code && Object.entries(details).every(([key, value]) => value === void 0 || record.details?.[key] === value);
217
+ }
218
+ function hasErrorCauseDetails(details) {
219
+ return workflowErrorDetailString(details, "causeName") !== void 0 || workflowErrorDetailString(details, "causeMessage") !== void 0;
220
+ }
221
+ function unprefixErrorCauseDetails(details) {
222
+ const unprefixed = Object.fromEntries(Object.entries(details).filter(([key]) => /^cause[A-Z]/.test(key)).map(([key, value]) => {
223
+ const unprefixedKey = key.slice(5);
224
+ return [`${unprefixedKey[0]?.toLowerCase() ?? ""}${unprefixedKey.slice(1)}`, value];
225
+ }));
226
+ const name = isString(unprefixed.name) && unprefixed.name.trim() !== "" ? unprefixed.name : "WorkflowError";
227
+ const message = isString(unprefixed.message) && unprefixed.message.trim() !== "" ? unprefixed.message : name;
228
+ const stack = isString(unprefixed.stack) && unprefixed.stack.trim() !== "" ? unprefixed.stack : void 0;
229
+ const code = ss.safeParseSync(errorCodeSchema, unprefixed.code);
230
+ const sanitizedDetails = sanitizedErrorDetails(Object.fromEntries(Object.entries(unprefixed).filter(([key]) => key !== "code" && key !== "name" && key !== "message" && key !== "stack")));
231
+ return {
232
+ name,
233
+ message,
234
+ code: code.success ? code.value : void 0,
235
+ stack,
236
+ details: sanitizedDetails
277
237
  };
278
238
  }
239
+ function workflowErrorDetailString(details, key) {
240
+ const parsed = ss.safeParseSync(errorDetailsSchema, details);
241
+ if (!parsed.success) return;
242
+ const result = ss.safeParseSync(optionalErrorStringSchema, parsed.value[key]);
243
+ return result.success ? result.value : void 0;
244
+ }
245
+ function workflowErrorDetailPositiveSafeInteger(details, key) {
246
+ const parsed = ss.safeParseSync(errorDetailsSchema, details);
247
+ if (!parsed.success) return;
248
+ const result = ss.safeParseSync(ss.optional(positiveSafeIntegerSchema), parsed.value[key]);
249
+ return result.success ? result.value : void 0;
250
+ }
251
+ function workflowErrorRunStatusOrUndefined(value) {
252
+ const result = ss.safeParseSync(errorRunStatusSchema, value);
253
+ return result.success ? result.value : void 0;
254
+ }
255
+ function workflowTerminalErrorRunStatusOrUndefined(value) {
256
+ const result = ss.safeParseSync(terminalErrorRunStatusSchema, value);
257
+ return result.success ? result.value : void 0;
258
+ }
259
+ function workflowErrorDetailTimestamp(details, key) {
260
+ return parseDetail(details, key, (value) => Temporal.Instant.from(value));
261
+ }
262
+ function workflowErrorDetailDuration(details, key) {
263
+ return parseDetail(details, key, (value) => Temporal.Duration.from(value));
264
+ }
265
+ function parseDetail(details, key, parse) {
266
+ const value = workflowErrorDetailString(details, key);
267
+ if (value === void 0) return;
268
+ try {
269
+ return parse(value);
270
+ } catch {
271
+ return;
272
+ }
273
+ }
274
+ function sanitizedErrorDetails(details) {
275
+ const parsed = ss.safeParseSync(errorDetailsSchema, details);
276
+ if (!parsed.success) return;
277
+ return Object.keys(parsed.value).length === 0 ? void 0 : parsed.value;
278
+ }
279
279
  //#endregion
280
- export { workflowErrorFromRecord };
280
+ export { matchesWorkflowError, sanitizedErrorDetails, workflowErrorFromRecord };