@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,50 +1,38 @@
1
- import { RunId } from "./types/run-id.mjs";
1
+ import { RunId, StepId } from "./types/ids.mjs";
2
2
  import { ScheduleId } from "./types/schedule.mjs";
3
- import "./types/run.mjs";
4
- import { WorkflowIdempotencyKeyOptions } from "./types/store.mjs";
3
+ import { StepAttemptRecord } from "./types/step-attempts.mjs";
4
+ import { IdempotencyKeyOptions } from "./types/store.mjs";
5
5
  //#region src/store-keys.d.ts
6
- type WorkflowIdempotencyKey = `workflow:${string}:idempotency:${string}:${string}`;
7
- type MessageIdempotencyKey = `workflow:${string}:message-idempotency:${string}:${string}`;
8
- type WorkflowRunKey = `workflow:${string}:run:${string}`;
9
- type WorkflowEventsKey = `workflow:${string}:events:${string}`;
10
- type WorkflowStepAttemptKey = `workflow:${string}:step-attempt:${string}:${string}`;
11
- type WorkflowScheduleKey = `workflow:${string}:schedule:${string}`;
12
- type WorkflowLockKey = `workflow:${string}:lock:${string}`;
13
- type WorkflowCleanupMarkerKey = `workflow:${string}:cleanup:${string}`;
14
- type WorkflowNamespacePrefix = `workflow:${string}:`;
15
- type WorkflowRunKeyPrefix = `workflow:${string}:run:`;
16
- type WorkflowStepAttemptKeyPrefix = `workflow:${string}:step-attempt:${string}:`;
17
- type WorkflowScheduleKeyPrefix = `workflow:${string}:schedule:`;
18
- type WorkflowLockKeyPrefix = `workflow:${string}:lock:`;
19
- type WorkflowCleanupMarkerKeyPrefix = `workflow:${string}:cleanup:`;
20
- /** Builds a validated workflow idempotency storage key. */
21
- declare function makeWorkflowIdempotencyKey(namespace: string, options: WorkflowIdempotencyKeyOptions): WorkflowIdempotencyKey;
22
- /** Builds a workflow run storage key. */
23
- declare function makeRunKey(namespace: string, runId: RunId): WorkflowRunKey;
24
- /** Builds a workflow event-history storage key. */
25
- declare function makeEventsKey(namespace: string, runId: RunId): WorkflowEventsKey;
26
- /** Builds a workflow step-attempt storage key. */
27
- declare function makeStepAttemptKey(namespace: string, runId: RunId, attemptKey: string): WorkflowStepAttemptKey;
28
- /** Builds a workflow step-attempt storage key prefix. */
29
- declare function makeStepAttemptKeyPrefix(namespace: string, runId: RunId): WorkflowStepAttemptKeyPrefix;
30
- declare function isStepAttemptKey(key: string, namespace: string, runId: RunId): boolean;
31
- /** Builds a workflow message idempotency storage key. */
32
- declare function makeMessageIdempotencyKey(namespace: string, runId: RunId, idempotencyKey: string): MessageIdempotencyKey;
33
- /** Builds a workflow schedule storage key. */
34
- declare function makeScheduleKey(namespace: string, scheduleId: ScheduleId): WorkflowScheduleKey;
35
- /** Builds a workflow schedule storage key prefix. */
36
- declare function makeScheduleKeyPrefix(namespace: string): WorkflowScheduleKeyPrefix;
37
- /** Builds a workflow lock storage key. */
38
- declare function makeLockKey(namespace: string, key: string): WorkflowLockKey;
39
- /** Builds a workflow cleanup marker storage key. */
40
- declare function makeCleanupMarkerKey(namespace: string, runId: RunId): WorkflowCleanupMarkerKey;
41
- /** Builds a workflow cleanup marker storage key prefix. */
42
- declare function makeCleanupMarkerKeyPrefix(namespace: string): WorkflowCleanupMarkerKeyPrefix;
43
- /** Builds a workflow lock storage key prefix. */
44
- declare function makeLockKeyPrefix(namespace: string): WorkflowLockKeyPrefix;
45
- /** Builds a workflow idempotency storage key. */
46
- declare function makeIdempotencyKey(namespace: string, options: WorkflowIdempotencyKeyOptions): WorkflowIdempotencyKey;
47
- /** Builds a workflow run storage key prefix. */
48
- declare function makeRunKeyPrefix(namespace: string): WorkflowRunKeyPrefix;
6
+ /** The key of one step attempt within a run, such as `run:step_1:2`. */
7
+ export declare function stepAttemptKey(stepId: StepId, attempt: number): string;
8
+ export type IdempotencyKey = `workflow:${string}:idempotency:${string}:${string}`;
9
+ export type MessageIdempotencyKey = `workflow:${string}:message-idempotency:${string}:${string}`;
10
+ type RunKey = `workflow:${string}:run:${string}`;
11
+ export type EventsKey = `workflow:${string}:events:${string}`;
12
+ type StepAttemptKey = `workflow:${string}:step-attempt:${string}:${string}`;
13
+ type ScheduleKey = `workflow:${string}:schedule:${string}`;
14
+ type LockKey = `workflow:${string}:lock:${string}`;
15
+ type CleanupMarkerKey = `workflow:${string}:cleanup:${string}`;
16
+ type RunKeyPrefix = `workflow:${string}:run:`;
17
+ type StepAttemptKeyPrefix = `workflow:${string}:step-attempt:${string}:`;
18
+ type ScheduleKeyPrefix = `workflow:${string}:schedule:`;
19
+ type LockKeyPrefix = `workflow:${string}:lock:`;
20
+ type CleanupMarkerKeyPrefix = `workflow:${string}:cleanup:`;
21
+ export declare function makeWorkflowIdempotencyKey(namespace: string, options: IdempotencyKeyOptions): IdempotencyKey;
22
+ export declare function makeRunKey(namespace: string, runId: RunId): RunKey;
23
+ export declare function makeEventsKey(namespace: string, runId: RunId): EventsKey;
24
+ export declare function makeStepAttemptKey(namespace: string, runId: RunId, attemptKey: string): StepAttemptKey;
25
+ export declare function makeStepAttemptKeyPrefix(namespace: string, runId: RunId): StepAttemptKeyPrefix;
26
+ export declare function isStepAttemptKey(key: string, namespace: string, runId: RunId): boolean;
27
+ export declare function makeMessageIdempotencyKey(namespace: string, runId: RunId, idempotencyKey: string): MessageIdempotencyKey;
28
+ export declare function makeScheduleKey(namespace: string, scheduleId: ScheduleId): ScheduleKey;
29
+ export declare function makeScheduleKeyPrefix(namespace: string): ScheduleKeyPrefix;
30
+ export declare function makeLockKey(namespace: string, key: string): LockKey;
31
+ export declare function makeCleanupMarkerKey(namespace: string, runId: RunId): CleanupMarkerKey;
32
+ export declare function makeCleanupMarkerKeyPrefix(namespace: string): CleanupMarkerKeyPrefix;
33
+ export declare function makeLockKeyPrefix(namespace: string): LockKeyPrefix;
34
+ export declare function makeIdempotencyKey(namespace: string, options: IdempotencyKeyOptions): IdempotencyKey;
35
+ export declare function makeRunKeyPrefix(namespace: string): RunKeyPrefix;
36
+ export declare function runStepAttemptKey(runId: RunId, attempt: StepAttemptRecord): string;
49
37
  //#endregion
50
- export { MessageIdempotencyKey, WorkflowCleanupMarkerKey, WorkflowCleanupMarkerKeyPrefix, WorkflowEventsKey, WorkflowIdempotencyKey, WorkflowLockKey, WorkflowLockKeyPrefix, WorkflowNamespacePrefix, WorkflowRunKey, WorkflowRunKeyPrefix, WorkflowScheduleKey, WorkflowScheduleKeyPrefix, WorkflowStepAttemptKey, WorkflowStepAttemptKeyPrefix, isStepAttemptKey, makeCleanupMarkerKey, makeCleanupMarkerKeyPrefix, makeEventsKey, makeIdempotencyKey, makeLockKey, makeLockKeyPrefix, makeMessageIdempotencyKey, makeRunKey, makeRunKeyPrefix, makeScheduleKey, makeScheduleKeyPrefix, makeStepAttemptKey, makeStepAttemptKeyPrefix, makeWorkflowIdempotencyKey };
38
+ export {};
@@ -1,22 +1,20 @@
1
- import { makeWorkflowStepAttemptKey } from "./history/attempt-key.mjs";
2
1
  //#region src/store-keys.ts
3
- /** Builds a validated workflow idempotency storage key. */
2
+ /** The key of one step attempt within a run, such as `run:step_1:2`. */
3
+ function stepAttemptKey(stepId, attempt) {
4
+ return `run:${stepId}:${attempt}`;
5
+ }
4
6
  function makeWorkflowIdempotencyKey(namespace, options) {
5
7
  return makeIdempotencyKey(namespace, options);
6
8
  }
7
- /** Builds a workflow run storage key. */
8
9
  function makeRunKey(namespace, runId) {
9
10
  return `${namespacePrefix(namespace)}run:${runId}`;
10
11
  }
11
- /** Builds a workflow event-history storage key. */
12
12
  function makeEventsKey(namespace, runId) {
13
13
  return `${namespacePrefix(namespace)}events:${runId}`;
14
14
  }
15
- /** Builds a workflow step-attempt storage key. */
16
15
  function makeStepAttemptKey(namespace, runId, attemptKey) {
17
16
  return `${makeStepAttemptKeyPrefix(namespace, runId)}${encodeURIComponent(attemptKey)}`;
18
17
  }
19
- /** Builds a workflow step-attempt storage key prefix. */
20
18
  function makeStepAttemptKeyPrefix(namespace, runId) {
21
19
  return `${namespacePrefix(namespace)}step-attempt:${runId}:`;
22
20
  }
@@ -30,7 +28,7 @@ function isStepAttemptKey(key, namespace, runId) {
30
28
  const stepId = attemptKey.slice(4, separator);
31
29
  const attempt = Number(attemptKey.slice(separator + 1));
32
30
  try {
33
- return makeWorkflowStepAttemptKey(stepId, attempt) === attemptKey;
31
+ return stepAttemptKey(stepId, attempt) === attemptKey;
34
32
  } catch {
35
33
  return false;
36
34
  }
@@ -42,45 +40,39 @@ function decodeStepAttemptKey(key, prefix) {
42
40
  return;
43
41
  }
44
42
  }
45
- /** Builds a workflow message idempotency storage key. */
46
43
  function makeMessageIdempotencyKey(namespace, runId, idempotencyKey) {
47
44
  return `${namespacePrefix(namespace)}message-idempotency:${encodeURIComponent(runId)}:${encodeURIComponent(idempotencyKey)}`;
48
45
  }
49
- /** Builds a workflow schedule storage key. */
50
46
  function makeScheduleKey(namespace, scheduleId) {
51
47
  return `${namespacePrefix(namespace)}schedule:${encodeURIComponent(scheduleId)}`;
52
48
  }
53
- /** Builds a workflow schedule storage key prefix. */
54
49
  function makeScheduleKeyPrefix(namespace) {
55
50
  return `${namespacePrefix(namespace)}schedule:`;
56
51
  }
57
- /** Builds a workflow lock storage key. */
58
52
  function makeLockKey(namespace, key) {
59
53
  return `${namespacePrefix(namespace)}lock:${encodeURIComponent(key)}`;
60
54
  }
61
- /** Builds a workflow cleanup marker storage key. */
62
55
  function makeCleanupMarkerKey(namespace, runId) {
63
56
  return `${namespacePrefix(namespace)}cleanup:${encodeURIComponent(runId)}`;
64
57
  }
65
- /** Builds a workflow cleanup marker storage key prefix. */
66
58
  function makeCleanupMarkerKeyPrefix(namespace) {
67
59
  return `${namespacePrefix(namespace)}cleanup:`;
68
60
  }
69
- /** Builds a workflow lock storage key prefix. */
70
61
  function makeLockKeyPrefix(namespace) {
71
62
  return `${namespacePrefix(namespace)}lock:`;
72
63
  }
73
- /** Builds a workflow idempotency storage key. */
74
64
  function makeIdempotencyKey(namespace, options) {
75
65
  const versionedName = options.workflowVersion === void 0 ? options.workflowName : `${options.workflowName}@${options.workflowVersion}`;
76
66
  return `${namespacePrefix(namespace)}idempotency:${encodeURIComponent(versionedName)}:${encodeURIComponent(options.idempotencyKey)}`;
77
67
  }
78
- /** Builds a workflow run storage key prefix. */
79
68
  function makeRunKeyPrefix(namespace) {
80
69
  return `${namespacePrefix(namespace)}run:`;
81
70
  }
82
71
  function namespacePrefix(namespace) {
83
72
  return `workflow:${encodeURIComponent(namespace)}:`;
84
73
  }
74
+ function runStepAttemptKey(runId, attempt) {
75
+ return `${runId}:${stepAttemptKey(attempt.stepId, attempt.attempt)}`;
76
+ }
85
77
  //#endregion
86
- export { isStepAttemptKey, makeCleanupMarkerKey, makeCleanupMarkerKeyPrefix, makeEventsKey, makeIdempotencyKey, makeLockKey, makeLockKeyPrefix, makeMessageIdempotencyKey, makeRunKey, makeRunKeyPrefix, makeScheduleKey, makeScheduleKeyPrefix, makeStepAttemptKey, makeStepAttemptKeyPrefix, makeWorkflowIdempotencyKey };
78
+ export { isStepAttemptKey, makeCleanupMarkerKey, makeCleanupMarkerKeyPrefix, makeEventsKey, makeIdempotencyKey, makeLockKey, makeLockKeyPrefix, makeMessageIdempotencyKey, makeRunKey, makeRunKeyPrefix, makeScheduleKey, makeScheduleKeyPrefix, makeStepAttemptKey, makeStepAttemptKeyPrefix, makeWorkflowIdempotencyKey, runStepAttemptKey, stepAttemptKey };
@@ -1,14 +1,15 @@
1
- import { ObservationEventMap } from "./types/observation.mjs";
1
+ import { ObservationEventArgs } from "./types/observation.mjs";
2
+ import { ExecutionResult } from "./types/result.mjs";
2
3
  import { RunTelemetryContext, StepTelemetryContext, StorageTelemetryContext, Telemetry, TelemetryContext } from "./types/telemetry.mjs";
4
+ import "temporal-polyfill/global";
3
5
  //#region src/telemetry.d.ts
4
6
  /** Instrumentation scope used by workflow telemetry adapters. */
5
- declare const WORKFLOW_INSTRUMENTATION_NAME = "temelj.workflow";
6
- /** Version of the built-in workflow telemetry instrumentation. */
7
- declare const WORKFLOW_INSTRUMENTATION_VERSION = "0.1.0";
7
+ export declare const WORKFLOW_INSTRUMENTATION_NAME = "temelj.workflow";
8
+ export declare const WORKFLOW_INSTRUMENTATION_VERSION = "0.1.0";
8
9
  /** Stable workflow system identifier used on spans, metrics, and logs. */
9
- declare const WORKFLOW_SYSTEM = "temelj";
10
+ export declare const WORKFLOW_SYSTEM = "temelj";
10
11
  /** Stable OpenTelemetry span names emitted by `@temelj/workflow`. */
11
- declare const WORKFLOW_SPAN_NAMES: {
12
+ export declare const WORKFLOW_SPAN_NAMES: {
12
13
  readonly childWorkflowOperation: "temelj.workflow.child_workflow.operation";
13
14
  readonly cleanupOperation: "temelj.workflow.cleanup.operation";
14
15
  readonly hookResume: "temelj.workflow.hook.resume";
@@ -24,7 +25,7 @@ declare const WORKFLOW_SPAN_NAMES: {
24
25
  readonly workerOperation: "temelj.workflow.worker.operation";
25
26
  };
26
27
  /** Stable metric names emitted by `@temelj/workflow` telemetry. */
27
- declare const WORKFLOW_METRIC_NAMES: {
28
+ export declare const WORKFLOW_METRIC_NAMES: {
28
29
  readonly cleanupDeletedRuns: "temelj.workflow.cleanup.deleted_runs";
29
30
  readonly eventsAppended: "temelj.workflow.events.appended";
30
31
  readonly hooksResumed: "temelj.workflow.hooks.resumed";
@@ -53,7 +54,7 @@ declare const WORKFLOW_METRIC_NAMES: {
53
54
  readonly workerLeaseReleases: "temelj.workflow.worker.lease_releases";
54
55
  };
55
56
  /** Stable workflow attribute names used by traces, metrics, and logs. */
56
- declare const WORKFLOW_ATTRIBUTES: {
57
+ export declare const WORKFLOW_ATTRIBUTES: {
57
58
  readonly canceled: "workflow.canceled";
58
59
  readonly childWorkflowDurationMs: "workflow.child_workflow.duration_ms";
59
60
  readonly childWorkflowOperation: "workflow.child_workflow.operation";
@@ -116,17 +117,16 @@ declare const WORKFLOW_ATTRIBUTES: {
116
117
  readonly workflowVersion: "workflow.version";
117
118
  };
118
119
  /** OpenTelemetry semantic convention attributes used when workflow operations act like messages. */
119
- declare const WORKFLOW_MESSAGING_ATTRIBUTES: {
120
+ export declare const WORKFLOW_MESSAGING_ATTRIBUTES: {
120
121
  readonly destinationName: "messaging.destination.name";
121
122
  readonly messageId: "messaging.message.id";
122
123
  readonly operationName: "messaging.operation.name";
123
124
  readonly operationType: "messaging.operation.type";
124
125
  readonly system: "messaging.system";
125
126
  };
126
- declare function captureTelemetryContext(telemetry: Telemetry | undefined): TelemetryContext | undefined;
127
- declare function withRunTelemetry<T>(telemetry: Telemetry | undefined, context: RunTelemetryContext, callback: () => Promise<T>): Promise<T>;
128
- declare function withStepTelemetry<T>(telemetry: Telemetry | undefined, context: StepTelemetryContext, callback: () => Promise<T>): Promise<T>;
129
- declare function withStorageTelemetry<T>(telemetry: Telemetry | undefined, context: StorageTelemetryContext, callback: () => Promise<T>): Promise<T>;
130
- declare function observeTelemetry<Key extends keyof ObservationEventMap>(telemetry: Telemetry | undefined, name: Key, payload: ObservationEventMap[Key]): void;
131
- //#endregion
132
- export { WORKFLOW_ATTRIBUTES, WORKFLOW_INSTRUMENTATION_NAME, WORKFLOW_INSTRUMENTATION_VERSION, WORKFLOW_MESSAGING_ATTRIBUTES, WORKFLOW_METRIC_NAMES, WORKFLOW_SPAN_NAMES, WORKFLOW_SYSTEM, captureTelemetryContext, observeTelemetry, withRunTelemetry, withStepTelemetry, withStorageTelemetry };
127
+ export declare function captureTelemetryContext(telemetry: Telemetry | undefined): TelemetryContext | undefined;
128
+ export declare function withRunTelemetry<T extends ExecutionResult>(telemetry: Telemetry | undefined, context: RunTelemetryContext, callback: () => Promise<T>): Promise<T>;
129
+ export declare function withStepTelemetry<T>(telemetry: Telemetry | undefined, context: StepTelemetryContext, callback: () => Promise<T>): Promise<T>;
130
+ export declare function withStorageTelemetry<T>(telemetry: Telemetry | undefined, context: StorageTelemetryContext, callback: () => Promise<T>): Promise<T>;
131
+ export declare function observeTelemetry(telemetry: Telemetry | undefined, ...event: ObservationEventArgs): void;
132
+ //#endregion
@@ -1,7 +1,7 @@
1
+ import "temporal-polyfill/global";
1
2
  //#region src/telemetry.ts
2
3
  /** Instrumentation scope used by workflow telemetry adapters. */
3
4
  const WORKFLOW_INSTRUMENTATION_NAME = "temelj.workflow";
4
- /** Version of the built-in workflow telemetry instrumentation. */
5
5
  const WORKFLOW_INSTRUMENTATION_VERSION = "0.1.0";
6
6
  /** Stable workflow system identifier used on spans, metrics, and logs. */
7
7
  const WORKFLOW_SYSTEM = "temelj";
@@ -140,9 +140,9 @@ async function withStorageTelemetry(telemetry, context, callback) {
140
140
  if (telemetry?.withStorageOperation === void 0) return await callback();
141
141
  return await withTelemetry((wrappedCallback) => telemetry.withStorageOperation(context, wrappedCallback), callback);
142
142
  }
143
- function observeTelemetry(telemetry, name, payload) {
143
+ function observeTelemetry(telemetry, ...event) {
144
144
  try {
145
- telemetry?.observe?.(name, payload);
145
+ telemetry?.observe?.(...event);
146
146
  } catch {
147
147
  return;
148
148
  }
@@ -1,23 +1,18 @@
1
1
  //#region src/temporal.d.ts
2
- /** Returns a non-negative millisecond duration between two instants. */
3
- declare function durationBetweenMilliseconds(from: Temporal.Instant, to: Temporal.Instant): number;
2
+ /** Returns a duration's total milliseconds, or NaN when Temporal cannot represent it safely. */
3
+ export declare function durationTotal(value: Temporal.Duration): number;
4
4
  /** Returns a non-negative millisecond duration between optional instants. */
5
- declare function optionalDurationBetweenMilliseconds(from: Temporal.Instant | undefined, to: Temporal.Instant | undefined): number | undefined;
5
+ export declare function optionalDurationBetweenMilliseconds(from: Temporal.Instant | undefined, to: Temporal.Instant | undefined): number | undefined;
6
6
  /** Returns a non-negative Temporal duration between two instants. */
7
- declare function durationBetween(from: Temporal.Instant, to: Temporal.Instant): Temporal.Duration;
7
+ export declare function durationBetween(from: Temporal.Instant, to: Temporal.Instant): Temporal.Duration;
8
8
  /** Returns whether a timestamp falls inside an inclusive optional instant range. */
9
- declare function matchesTimestampRange(timestamp: Temporal.Instant, from: Temporal.Instant | undefined, to: Temporal.Instant | undefined): boolean;
9
+ export declare function matchesTimestampRange(timestamp: Temporal.Instant, from: Temporal.Instant | undefined, to: Temporal.Instant | undefined): boolean;
10
10
  /** Returns whether an optional timestamp falls inside an inclusive optional instant range. */
11
- declare function matchesOptionalTimestampRange(timestamp: Temporal.Instant | undefined, from: Temporal.Instant | undefined, to: Temporal.Instant | undefined): boolean;
11
+ export declare function matchesOptionalTimestampRange(timestamp: Temporal.Instant | undefined, from: Temporal.Instant | undefined, to: Temporal.Instant | undefined): boolean;
12
12
  /** Returns whether an optional duration falls inside an inclusive optional duration range. */
13
- declare function matchesOptionalDurationRange(value: Temporal.Duration | undefined, from: Temporal.Duration | undefined, to: Temporal.Duration | undefined): boolean;
13
+ export declare function matchesOptionalDurationRange(value: Temporal.Duration | undefined, from: Temporal.Duration | undefined, to: Temporal.Duration | undefined): boolean;
14
14
  /** Compares optional timestamps, sorting present timestamps before undefined values. */
15
- declare function compareOptionalTimestamps(left: Temporal.Instant | undefined, right: Temporal.Instant | undefined): number;
16
- /** Returns the earlier of two optional timestamps. */
17
- declare function earliestOptionalTimestamp(current: Temporal.Instant | undefined, next: Temporal.Instant | undefined): Temporal.Instant | undefined;
18
- /** Returns the later of two optional timestamps. */
19
- declare function latestOptionalTimestamp(current: Temporal.Instant | undefined, next: Temporal.Instant | undefined): Temporal.Instant | undefined;
20
- /** Returns whether `next` should replace `current` as the earliest defined instant. */
21
- declare function shouldReplaceWorkflowEarliestDefinedInstant(current: Temporal.Instant | undefined, next: Temporal.Instant | undefined): boolean;
22
- //#endregion
23
- export { compareOptionalTimestamps, durationBetween, durationBetweenMilliseconds, earliestOptionalTimestamp, latestOptionalTimestamp, matchesOptionalDurationRange, matchesOptionalTimestampRange, matchesTimestampRange, optionalDurationBetweenMilliseconds, shouldReplaceWorkflowEarliestDefinedInstant };
15
+ export declare function compareOptionalTimestamps(left: Temporal.Instant | undefined, right: Temporal.Instant | undefined): number;
16
+ export declare function earliestOptionalTimestamp(current: Temporal.Instant | undefined, next: Temporal.Instant | undefined): Temporal.Instant | undefined;
17
+ export declare function latestOptionalTimestamp(current: Temporal.Instant | undefined, next: Temporal.Instant | undefined): Temporal.Instant | undefined;
18
+ //#endregion
package/dist/temporal.mjs CHANGED
@@ -1,4 +1,9 @@
1
1
  //#region src/temporal.ts
2
+ /** Returns a duration's total milliseconds, or NaN when Temporal cannot represent it safely. */
3
+ function durationTotal(value) {
4
+ const total = value.total({ unit: "millisecond" });
5
+ return Number.isFinite(total) ? total : NaN;
6
+ }
2
7
  /** Returns a non-negative millisecond duration between two instants. */
3
8
  function durationBetweenMilliseconds(from, to) {
4
9
  return Math.max(0, to.epochMilliseconds - from.epochMilliseconds);
@@ -28,8 +33,8 @@ function matchesOptionalDurationRange(value, from, to) {
28
33
  if (from === void 0 && to === void 0) return true;
29
34
  if (value === void 0) return false;
30
35
  const current = value.total({ unit: "millisecond" });
31
- const lower = from === void 0 ? void 0 : from.total({ unit: "millisecond" });
32
- const upper = to === void 0 ? void 0 : to.total({ unit: "millisecond" });
36
+ const lower = from?.total({ unit: "millisecond" });
37
+ const upper = to?.total({ unit: "millisecond" });
33
38
  return (lower === void 0 || current >= lower) && (upper === void 0 || current <= upper);
34
39
  }
35
40
  /** Compares optional timestamps, sorting present timestamps before undefined values. */
@@ -39,21 +44,15 @@ function compareOptionalTimestamps(left, right) {
39
44
  if (right !== void 0) return 1;
40
45
  return 0;
41
46
  }
42
- /** Returns the earlier of two optional timestamps. */
43
47
  function earliestOptionalTimestamp(current, next) {
44
48
  if (next === void 0) return current;
45
49
  if (current === void 0) return next;
46
50
  return Temporal.Instant.compare(next, current) < 0 ? next : current;
47
51
  }
48
- /** Returns the later of two optional timestamps. */
49
52
  function latestOptionalTimestamp(current, next) {
50
53
  if (next === void 0) return current;
51
54
  if (current === void 0) return next;
52
55
  return Temporal.Instant.compare(next, current) > 0 ? next : current;
53
56
  }
54
- /** Returns whether `next` should replace `current` as the earliest defined instant. */
55
- function shouldReplaceWorkflowEarliestDefinedInstant(current, next) {
56
- return next !== void 0 && (current === void 0 || Temporal.Instant.compare(next, current) < 0);
57
- }
58
57
  //#endregion
59
- export { compareOptionalTimestamps, durationBetween, durationBetweenMilliseconds, earliestOptionalTimestamp, latestOptionalTimestamp, matchesOptionalDurationRange, matchesOptionalTimestampRange, matchesTimestampRange, optionalDurationBetweenMilliseconds, shouldReplaceWorkflowEarliestDefinedInstant };
58
+ export { compareOptionalTimestamps, durationBetween, durationTotal, earliestOptionalTimestamp, latestOptionalTimestamp, matchesOptionalDurationRange, matchesOptionalTimestampRange, matchesTimestampRange, optionalDurationBetweenMilliseconds };
package/dist/timer.d.mts CHANGED
@@ -1,12 +1,14 @@
1
- import { TimerDelay } from "./types/common.mjs";
2
1
  //#region src/timer.d.ts
3
- declare const MAX_TIMER_DELAY: number;
4
- /** Runtime timer handle returned by setTimeout. */
5
- type TimeoutHandle = ReturnType<typeof setTimeout>;
6
- /** Runtime interval handle returned by setInterval. */
7
- type IntervalHandle = ReturnType<typeof setInterval>;
8
- declare function nonNegativeTimerDelay(duration: Temporal.Duration, label: string, maximumDelay?: number): TimerDelay;
9
- declare function positiveTimerDelay(duration: Temporal.Duration, label: string, maximumDelay?: number): TimerDelay;
10
- declare function sleep(duration: number): Promise<void>;
2
+ /** Timer delay after validation and runtime clamping. */
3
+ interface TimerDelay {
4
+ readonly duration: Temporal.Duration;
5
+ readonly clampedDelay: number;
6
+ }
7
+ export declare const MAX_TIMER_DELAY: number;
8
+ export type TimeoutHandle = ReturnType<typeof setTimeout>;
9
+ export type IntervalHandle = ReturnType<typeof setInterval>;
10
+ export declare function nonNegativeTimerDelay(duration: Temporal.Duration, label: string, maximumDelay?: number): TimerDelay;
11
+ export declare function positiveTimerDelay(duration: Temporal.Duration, label: string, maximumDelay?: number): TimerDelay;
12
+ export declare function sleep(duration: number): Promise<void>;
11
13
  //#endregion
12
- export { IntervalHandle, MAX_TIMER_DELAY, TimeoutHandle, nonNegativeTimerDelay, positiveTimerDelay, sleep };
14
+ export {};
package/dist/timer.mjs CHANGED
@@ -1,11 +1,16 @@
1
+ import { durationTotal } from "./temporal.mjs";
2
+ import { WorkflowErrorCode } from "./errors/codes.mjs";
1
3
  import { WorkflowOptionsError } from "./errors/base.mjs";
2
- import { durationTotal, isNonNegativeSafeInteger, isPositiveSafeInteger } from "./utility.mjs";
3
4
  import "./errors/mod.mjs";
5
+ import { isNonNegativeSafeInteger, isPositiveSafeInteger } from "./values.mjs";
4
6
  //#region src/timer.ts
5
7
  const MAX_TIMER_DELAY = 2 ** 31 - 1;
6
8
  function nonNegativeTimerDelay(duration, label, maximumDelay = MAX_TIMER_DELAY) {
7
9
  const delay = durationTotal(duration);
8
- if (!isNonNegativeSafeInteger(delay)) WorkflowOptionsError.nonNegativeDuration(label);
10
+ if (!isNonNegativeSafeInteger(delay)) throw new WorkflowOptionsError(`${label} must be non-negative`, {
11
+ code: WorkflowErrorCode.OPTIONS_EXPECTED_NON_NEGATIVE_DURATION,
12
+ details: { label }
13
+ });
9
14
  return {
10
15
  duration,
11
16
  clampedDelay: Math.min(delay, maximumDelay)
@@ -13,7 +18,10 @@ function nonNegativeTimerDelay(duration, label, maximumDelay = MAX_TIMER_DELAY)
13
18
  }
14
19
  function positiveTimerDelay(duration, label, maximumDelay = MAX_TIMER_DELAY) {
15
20
  const delay = durationTotal(duration);
16
- if (!isPositiveSafeInteger(delay)) WorkflowOptionsError.positiveDuration(label);
21
+ if (!isPositiveSafeInteger(delay)) throw new WorkflowOptionsError(`${label} must be greater than zero`, {
22
+ code: WorkflowErrorCode.OPTIONS_EXPECTED_POSITIVE_DURATION,
23
+ details: { label }
24
+ });
17
25
  return {
18
26
  duration,
19
27
  clampedDelay: Math.min(delay, maximumDelay)
@@ -1,59 +1,29 @@
1
- import { RunId } from "./run-id.mjs";
2
- import { StepId } from "./step-id.mjs";
3
- import { WorkflowTerminalRunStatus } from "./run.mjs";
4
- import { z } from "zod";
1
+ import { RunId } from "./ids.mjs";
2
+ import { RunLinks, TerminalRunStatus } from "./run.mjs";
5
3
  //#region src/types/cleanup.d.ts
6
- declare const workflowCleanupModeSchema: z.ZodLiteral<"best_effort">;
7
- declare const workflowCleanupMarkerRecordSchema: z.ZodObject<{
8
- mode: z.ZodLiteral<"best_effort">;
9
- runId: z.ZodString;
10
- workflowName: z.ZodString;
11
- workflowVersion: z.ZodOptional<z.ZodString>;
12
- status: z.ZodEnum<{
13
- canceled: "canceled";
14
- completed: "completed";
15
- failed: "failed";
16
- }>;
17
- createdAt: z.ZodCustom<Temporal.Instant, Temporal.Instant>;
18
- finishedAt: z.ZodCustom<Temporal.Instant, Temporal.Instant>;
19
- cleanupStartedAt: z.ZodCustom<Temporal.Instant, Temporal.Instant>;
20
- events: z.ZodNumber;
21
- stepAttempts: z.ZodNumber;
22
- idempotencyKeys: z.ZodNumber;
23
- messageIdempotencyKeys: z.ZodNumber;
24
- }, z.core.$strip>;
25
4
  /** Cleanup strategy used when deleting terminal run data from the store. */
26
- type CleanupMode = "best_effort";
27
- /** Options for workflow cleanup runs. */
28
- interface CleanupRunsOptions extends WorkflowCleanupRunFilterOptions {
5
+ export type CleanupMode = "best_effort";
6
+ export interface CleanupRunsOptions extends CleanupRunFilterOptions {
29
7
  readonly finishedAtBefore: Temporal.Instant;
30
8
  }
31
- /** Status filter accepted by workflow cleanup operations. */
32
- type CleanupStatusFilter = WorkflowTerminalRunStatus | readonly WorkflowTerminalRunStatus[];
33
- /** Options for workflow retention policy. */
34
- interface RetentionPolicyOptions extends WorkflowCleanupRunFilterOptions {
9
+ export type CleanupStatusFilter = TerminalRunStatus | readonly TerminalRunStatus[];
10
+ export interface RetentionPolicyOptions extends CleanupRunFilterOptions {
35
11
  readonly olderThan: Temporal.Duration;
36
12
  readonly now?: Temporal.Instant;
37
13
  }
38
- interface WorkflowCleanupRunFilterOptions {
14
+ interface CleanupRunFilterOptions extends RunLinks {
39
15
  readonly status?: CleanupStatusFilter;
40
16
  readonly workflowName?: string;
41
17
  readonly workflowVersion?: string;
42
- readonly idempotencyKey?: string;
43
- readonly parentRunId?: RunId;
44
- readonly parentStepId?: StepId;
45
- readonly parentStepName?: string;
46
- readonly parentStepAttempt?: number;
47
18
  readonly dryRun?: boolean;
48
19
  readonly limit?: number;
49
20
  }
50
- /** Stored record for workflow cleanup marker. */
51
- interface CleanupMarkerRecord {
21
+ export interface CleanupMarkerRecord {
52
22
  readonly mode: CleanupMode;
53
23
  readonly runId: RunId;
54
24
  readonly workflowName: string;
55
25
  readonly workflowVersion?: string;
56
- readonly status: WorkflowTerminalRunStatus;
26
+ readonly status: TerminalRunStatus;
57
27
  readonly createdAt: Temporal.Instant;
58
28
  readonly finishedAt: Temporal.Instant;
59
29
  readonly cleanupStartedAt: Temporal.Instant;
@@ -62,8 +32,7 @@ interface CleanupMarkerRecord {
62
32
  readonly idempotencyKeys: number;
63
33
  readonly messageIdempotencyKeys: number;
64
34
  }
65
- /** Result returned by workflow cleanup runs. */
66
- interface CleanupRunsResult {
35
+ export interface CleanupRunsResult {
67
36
  readonly mode: CleanupMode;
68
37
  readonly runIds: readonly RunId[];
69
38
  readonly runs: readonly CleanupRunResult[];
@@ -81,21 +50,15 @@ interface CleanupRunsResult {
81
50
  readonly deletedIdempotencyKeys: number;
82
51
  readonly deletedMessageIdempotencyKeys: number;
83
52
  }
84
- /** Result returned by workflow cleanup run. */
85
- interface CleanupRunResult {
53
+ export interface CleanupRunResult extends RunLinks {
86
54
  readonly mode: CleanupMode;
87
55
  readonly runId: RunId;
88
56
  readonly workflowName: string;
89
57
  readonly workflowVersion?: string;
90
- readonly status: WorkflowTerminalRunStatus;
58
+ readonly status: TerminalRunStatus;
91
59
  readonly createdAt: Temporal.Instant;
92
60
  readonly updatedAt: Temporal.Instant;
93
61
  readonly finishedAt: Temporal.Instant;
94
- readonly idempotencyKey?: string;
95
- readonly parentRunId?: RunId;
96
- readonly parentStepId?: StepId;
97
- readonly parentStepName?: string;
98
- readonly parentStepAttempt?: number;
99
62
  readonly events: number;
100
63
  readonly stepAttempts: number;
101
64
  readonly idempotencyKeys: number;
@@ -109,4 +72,4 @@ interface CleanupRunResult {
109
72
  readonly deletedMessageIdempotencyKeys: number;
110
73
  }
111
74
  //#endregion
112
- export { CleanupMarkerRecord, CleanupMode, CleanupRunResult, CleanupRunsOptions, CleanupRunsResult, CleanupStatusFilter, RetentionPolicyOptions, workflowCleanupMarkerRecordSchema, workflowCleanupModeSchema };
75
+ export {};
@@ -1,22 +1 @@
1
- import { nonBlankStringSchema, nonNegativeSafeIntegerSchema, temporalInstantSchema } from "./common.mjs";
2
- import { runIdSchema } from "./run-id.mjs";
3
- import { workflowTerminalRunStatusSchema } from "./run.mjs";
4
- import { z } from "zod";
5
- //#region src/types/cleanup.ts
6
- const workflowCleanupModeSchema = z.literal("best_effort");
7
- const workflowCleanupMarkerRecordSchema = z.object({
8
- mode: workflowCleanupModeSchema,
9
- runId: runIdSchema,
10
- workflowName: nonBlankStringSchema,
11
- workflowVersion: nonBlankStringSchema.optional(),
12
- status: workflowTerminalRunStatusSchema,
13
- createdAt: temporalInstantSchema,
14
- finishedAt: temporalInstantSchema,
15
- cleanupStartedAt: temporalInstantSchema,
16
- events: nonNegativeSafeIntegerSchema,
17
- stepAttempts: nonNegativeSafeIntegerSchema,
18
- idempotencyKeys: nonNegativeSafeIntegerSchema,
19
- messageIdempotencyKeys: nonNegativeSafeIntegerSchema
20
- });
21
- //#endregion
22
- export { workflowCleanupMarkerRecordSchema, workflowCleanupModeSchema };
1
+ export {};