awaitly 1.34.0 → 2.0.0

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 (241) hide show
  1. package/dist/{duration.d.ts → di-BDlT7InM.d.cts} +15 -1
  2. package/dist/{duration.d.cts → di-BbFFfO8y.d.ts} +15 -1
  3. package/dist/errors-DtXvrCiO.d.cts +708 -0
  4. package/dist/errors-DtXvrCiO.d.ts +708 -0
  5. package/dist/index.cjs +4594 -1
  6. package/dist/index.cjs.map +1 -1
  7. package/dist/index.d.cts +1970 -141
  8. package/dist/index.d.ts +1970 -141
  9. package/dist/index.js +4398 -1
  10. package/dist/index.js.map +1 -1
  11. package/dist/result.cjs +641 -1
  12. package/dist/result.cjs.map +1 -1
  13. package/dist/result.d.cts +35 -5
  14. package/dist/result.d.ts +35 -5
  15. package/dist/result.js +561 -1
  16. package/dist/result.js.map +1 -1
  17. package/dist/testing.cjs +4202 -8
  18. package/dist/testing.cjs.map +1 -1
  19. package/dist/testing.d.cts +2 -6
  20. package/dist/testing.d.ts +2 -6
  21. package/dist/testing.js +4154 -8
  22. package/dist/testing.js.map +1 -1
  23. package/dist/{run-entry-D2MmJFj9.d.cts → types-B8NfNRGX.d.ts} +1152 -1499
  24. package/dist/{run-entry-Dduz-is2.d.ts → types-BZ2f4MRR.d.cts} +1152 -1499
  25. package/dist/workflow.cjs +7096 -6
  26. package/dist/workflow.cjs.map +1 -1
  27. package/dist/workflow.d.cts +3346 -22
  28. package/dist/workflow.d.ts +3346 -22
  29. package/dist/workflow.js +6929 -6
  30. package/dist/workflow.js.map +1 -1
  31. package/package.json +13 -178
  32. package/dist/adapters.cjs +0 -7
  33. package/dist/adapters.cjs.map +0 -1
  34. package/dist/adapters.d.cts +0 -179
  35. package/dist/adapters.d.ts +0 -179
  36. package/dist/adapters.js +0 -7
  37. package/dist/adapters.js.map +0 -1
  38. package/dist/batch.cjs +0 -7
  39. package/dist/batch.cjs.map +0 -1
  40. package/dist/batch.d.cts +0 -200
  41. package/dist/batch.d.ts +0 -200
  42. package/dist/batch.js +0 -7
  43. package/dist/batch.js.map +0 -1
  44. package/dist/bind-deps.cjs +0 -2
  45. package/dist/bind-deps.cjs.map +0 -1
  46. package/dist/bind-deps.d.cts +0 -28
  47. package/dist/bind-deps.d.ts +0 -28
  48. package/dist/bind-deps.js +0 -2
  49. package/dist/bind-deps.js.map +0 -1
  50. package/dist/cache.cjs +0 -2
  51. package/dist/cache.cjs.map +0 -1
  52. package/dist/cache.d.cts +0 -269
  53. package/dist/cache.d.ts +0 -269
  54. package/dist/cache.js +0 -2
  55. package/dist/cache.js.map +0 -1
  56. package/dist/circuit-breaker.cjs +0 -7
  57. package/dist/circuit-breaker.cjs.map +0 -1
  58. package/dist/circuit-breaker.d.cts +0 -211
  59. package/dist/circuit-breaker.d.ts +0 -211
  60. package/dist/circuit-breaker.js +0 -7
  61. package/dist/circuit-breaker.js.map +0 -1
  62. package/dist/conditional.cjs +0 -2
  63. package/dist/conditional.cjs.map +0 -1
  64. package/dist/conditional.d.cts +0 -252
  65. package/dist/conditional.d.ts +0 -252
  66. package/dist/conditional.js +0 -2
  67. package/dist/conditional.js.map +0 -1
  68. package/dist/core.cjs +0 -7
  69. package/dist/core.cjs.map +0 -1
  70. package/dist/core.d.cts +0 -5
  71. package/dist/core.d.ts +0 -5
  72. package/dist/core.js +0 -7
  73. package/dist/core.js.map +0 -1
  74. package/dist/di-COl5oFnR.d.cts +0 -15
  75. package/dist/di-CyDj_JyZ.d.ts +0 -15
  76. package/dist/diagnostics.cjs +0 -8
  77. package/dist/diagnostics.cjs.map +0 -1
  78. package/dist/diagnostics.d.cts +0 -68
  79. package/dist/diagnostics.d.ts +0 -68
  80. package/dist/diagnostics.js +0 -8
  81. package/dist/diagnostics.js.map +0 -1
  82. package/dist/durable.cjs +0 -11
  83. package/dist/durable.cjs.map +0 -1
  84. package/dist/durable.d.cts +0 -9
  85. package/dist/durable.d.ts +0 -9
  86. package/dist/durable.js +0 -11
  87. package/dist/durable.js.map +0 -1
  88. package/dist/duration.cjs +0 -2
  89. package/dist/duration.cjs.map +0 -1
  90. package/dist/duration.js +0 -2
  91. package/dist/duration.js.map +0 -1
  92. package/dist/engine.cjs +0 -11
  93. package/dist/engine.cjs.map +0 -1
  94. package/dist/engine.d.cts +0 -115
  95. package/dist/engine.d.ts +0 -115
  96. package/dist/engine.js +0 -11
  97. package/dist/engine.js.map +0 -1
  98. package/dist/errors.cjs +0 -2
  99. package/dist/errors.cjs.map +0 -1
  100. package/dist/errors.d.cts +0 -361
  101. package/dist/errors.d.ts +0 -361
  102. package/dist/errors.js +0 -2
  103. package/dist/errors.js.map +0 -1
  104. package/dist/fetch.cjs +0 -7
  105. package/dist/fetch.cjs.map +0 -1
  106. package/dist/fetch.d.cts +0 -86
  107. package/dist/fetch.d.ts +0 -86
  108. package/dist/fetch.js +0 -7
  109. package/dist/fetch.js.map +0 -1
  110. package/dist/flow.cjs +0 -7
  111. package/dist/flow.cjs.map +0 -1
  112. package/dist/flow.d.cts +0 -163
  113. package/dist/flow.d.ts +0 -163
  114. package/dist/flow.js +0 -7
  115. package/dist/flow.js.map +0 -1
  116. package/dist/functional.cjs +0 -2
  117. package/dist/functional.cjs.map +0 -1
  118. package/dist/functional.d.cts +0 -444
  119. package/dist/functional.d.ts +0 -444
  120. package/dist/functional.js +0 -2
  121. package/dist/functional.js.map +0 -1
  122. package/dist/guards-BodHXLzX.d.cts +0 -72
  123. package/dist/guards-CeWoQ8fn.d.ts +0 -72
  124. package/dist/hitl-BPE_1UiM.d.cts +0 -468
  125. package/dist/hitl-byp570uC.d.ts +0 -468
  126. package/dist/hitl.cjs +0 -7
  127. package/dist/hitl.cjs.map +0 -1
  128. package/dist/hitl.d.cts +0 -442
  129. package/dist/hitl.d.ts +0 -442
  130. package/dist/hitl.js +0 -7
  131. package/dist/hitl.js.map +0 -1
  132. package/dist/index-BYT3amEz.d.ts +0 -417
  133. package/dist/index-C_ak66jy.d.cts +0 -417
  134. package/dist/match-entry-DjI2bLpD.d.cts +0 -209
  135. package/dist/match-entry-DjI2bLpD.d.ts +0 -209
  136. package/dist/match.cjs +0 -2
  137. package/dist/match.cjs.map +0 -1
  138. package/dist/match.d.cts +0 -1
  139. package/dist/match.d.ts +0 -1
  140. package/dist/match.js +0 -2
  141. package/dist/match.js.map +0 -1
  142. package/dist/otel.cjs +0 -2
  143. package/dist/otel.cjs.map +0 -1
  144. package/dist/otel.d.cts +0 -188
  145. package/dist/otel.d.ts +0 -188
  146. package/dist/otel.js +0 -2
  147. package/dist/otel.js.map +0 -1
  148. package/dist/persistence-entry-DOMx3woy.d.ts +0 -822
  149. package/dist/persistence-entry-ymCA4iDu.d.cts +0 -822
  150. package/dist/persistence.cjs +0 -2
  151. package/dist/persistence.cjs.map +0 -1
  152. package/dist/persistence.d.cts +0 -7
  153. package/dist/persistence.d.ts +0 -7
  154. package/dist/persistence.js +0 -2
  155. package/dist/persistence.js.map +0 -1
  156. package/dist/policies.cjs +0 -2
  157. package/dist/policies.cjs.map +0 -1
  158. package/dist/policies.d.cts +0 -379
  159. package/dist/policies.d.ts +0 -379
  160. package/dist/policies.js +0 -2
  161. package/dist/policies.js.map +0 -1
  162. package/dist/ratelimit.cjs +0 -7
  163. package/dist/ratelimit.cjs.map +0 -1
  164. package/dist/ratelimit.d.cts +0 -458
  165. package/dist/ratelimit.d.ts +0 -458
  166. package/dist/ratelimit.js +0 -7
  167. package/dist/ratelimit.js.map +0 -1
  168. package/dist/reliability.cjs +0 -11
  169. package/dist/reliability.cjs.map +0 -1
  170. package/dist/reliability.d.cts +0 -11
  171. package/dist/reliability.d.ts +0 -11
  172. package/dist/reliability.js +0 -11
  173. package/dist/reliability.js.map +0 -1
  174. package/dist/resolver.cjs +0 -7
  175. package/dist/resolver.cjs.map +0 -1
  176. package/dist/resolver.d.cts +0 -68
  177. package/dist/resolver.d.ts +0 -68
  178. package/dist/resolver.js +0 -7
  179. package/dist/resolver.js.map +0 -1
  180. package/dist/resource.cjs +0 -7
  181. package/dist/resource.cjs.map +0 -1
  182. package/dist/resource.d.cts +0 -174
  183. package/dist/resource.d.ts +0 -174
  184. package/dist/resource.js +0 -7
  185. package/dist/resource.js.map +0 -1
  186. package/dist/result/retry.cjs +0 -2
  187. package/dist/result/retry.cjs.map +0 -1
  188. package/dist/result/retry.d.cts +0 -70
  189. package/dist/result/retry.d.ts +0 -70
  190. package/dist/result/retry.js +0 -2
  191. package/dist/result/retry.js.map +0 -1
  192. package/dist/retry.cjs +0 -2
  193. package/dist/retry.cjs.map +0 -1
  194. package/dist/retry.d.cts +0 -388
  195. package/dist/retry.d.ts +0 -388
  196. package/dist/retry.js +0 -2
  197. package/dist/retry.js.map +0 -1
  198. package/dist/run.cjs +0 -7
  199. package/dist/run.cjs.map +0 -1
  200. package/dist/run.d.cts +0 -4
  201. package/dist/run.d.ts +0 -4
  202. package/dist/run.js +0 -7
  203. package/dist/run.js.map +0 -1
  204. package/dist/saga.cjs +0 -11
  205. package/dist/saga.cjs.map +0 -1
  206. package/dist/saga.d.cts +0 -164
  207. package/dist/saga.d.ts +0 -164
  208. package/dist/saga.js +0 -11
  209. package/dist/saga.js.map +0 -1
  210. package/dist/singleflight.cjs +0 -2
  211. package/dist/singleflight.cjs.map +0 -1
  212. package/dist/singleflight.d.cts +0 -145
  213. package/dist/singleflight.d.ts +0 -145
  214. package/dist/singleflight.js +0 -2
  215. package/dist/singleflight.js.map +0 -1
  216. package/dist/slugs.cjs +0 -2
  217. package/dist/slugs.cjs.map +0 -1
  218. package/dist/slugs.d.cts +0 -67
  219. package/dist/slugs.d.ts +0 -67
  220. package/dist/slugs.js +0 -2
  221. package/dist/slugs.js.map +0 -1
  222. package/dist/streaming.cjs +0 -9
  223. package/dist/streaming.cjs.map +0 -1
  224. package/dist/streaming.d.cts +0 -596
  225. package/dist/streaming.d.ts +0 -596
  226. package/dist/streaming.js +0 -9
  227. package/dist/streaming.js.map +0 -1
  228. package/dist/tagged-error.cjs +0 -2
  229. package/dist/tagged-error.cjs.map +0 -1
  230. package/dist/tagged-error.d.cts +0 -275
  231. package/dist/tagged-error.d.ts +0 -275
  232. package/dist/tagged-error.js +0 -2
  233. package/dist/tagged-error.js.map +0 -1
  234. package/dist/types-DQmzO9f4.d.ts +0 -323
  235. package/dist/types-qBUOYi-4.d.cts +0 -323
  236. package/dist/webhook.cjs +0 -7
  237. package/dist/webhook.cjs.map +0 -1
  238. package/dist/webhook.d.cts +0 -499
  239. package/dist/webhook.d.ts +0 -499
  240. package/dist/webhook.js +0 -7
  241. package/dist/webhook.js.map +0 -1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "awaitly",
3
- "version": "1.34.0",
3
+ "version": "2.0.0",
4
4
  "type": "module",
5
5
  "description": "Typed async workflows with automatic error inference. Build type-safe workflows with Result types, step caching, resume state, and human-in-the-loop support.",
6
6
  "main": "./dist/index.cjs",
@@ -13,185 +13,20 @@
13
13
  "import": "./dist/index.js",
14
14
  "require": "./dist/index.cjs"
15
15
  },
16
- "./core": {
17
- "types": "./dist/core.d.ts",
18
- "import": "./dist/core.js",
19
- "require": "./dist/core.cjs"
20
- },
21
- "./run": {
22
- "types": "./dist/run.d.ts",
23
- "import": "./dist/run.js",
24
- "require": "./dist/run.cjs"
25
- },
26
16
  "./result": {
27
17
  "types": "./dist/result.d.ts",
28
18
  "import": "./dist/result.js",
29
19
  "require": "./dist/result.cjs"
30
20
  },
31
- "./result/retry": {
32
- "types": "./dist/result/retry.d.ts",
33
- "import": "./dist/result/retry.js",
34
- "require": "./dist/result/retry.cjs"
35
- },
36
21
  "./workflow": {
37
22
  "types": "./dist/workflow.d.ts",
38
23
  "import": "./dist/workflow.js",
39
24
  "require": "./dist/workflow.cjs"
40
25
  },
41
- "./batch": {
42
- "types": "./dist/batch.d.ts",
43
- "import": "./dist/batch.js",
44
- "require": "./dist/batch.cjs"
45
- },
46
- "./resource": {
47
- "types": "./dist/resource.d.ts",
48
- "import": "./dist/resource.js",
49
- "require": "./dist/resource.cjs"
50
- },
51
- "./retry": {
52
- "types": "./dist/retry.d.ts",
53
- "import": "./dist/retry.js",
54
- "require": "./dist/retry.cjs"
55
- },
56
- "./reliability": {
57
- "types": "./dist/reliability.d.ts",
58
- "import": "./dist/reliability.js",
59
- "require": "./dist/reliability.cjs"
60
- },
61
- "./circuit-breaker": {
62
- "types": "./dist/circuit-breaker.d.ts",
63
- "import": "./dist/circuit-breaker.js",
64
- "require": "./dist/circuit-breaker.cjs"
65
- },
66
- "./ratelimit": {
67
- "types": "./dist/ratelimit.d.ts",
68
- "import": "./dist/ratelimit.js",
69
- "require": "./dist/ratelimit.cjs"
70
- },
71
- "./saga": {
72
- "types": "./dist/saga.d.ts",
73
- "import": "./dist/saga.js",
74
- "require": "./dist/saga.cjs"
75
- },
76
- "./policies": {
77
- "types": "./dist/policies.d.ts",
78
- "import": "./dist/policies.js",
79
- "require": "./dist/policies.cjs"
80
- },
81
- "./persistence": {
82
- "types": "./dist/persistence.d.ts",
83
- "import": "./dist/persistence.js",
84
- "require": "./dist/persistence.cjs"
85
- },
86
- "./hitl": {
87
- "types": "./dist/hitl.d.ts",
88
- "import": "./dist/hitl.js",
89
- "require": "./dist/hitl.cjs"
90
- },
91
- "./webhook": {
92
- "types": "./dist/webhook.d.ts",
93
- "import": "./dist/webhook.js",
94
- "require": "./dist/webhook.cjs"
95
- },
96
- "./otel": {
97
- "types": "./dist/otel.d.ts",
98
- "import": "./dist/otel.js",
99
- "require": "./dist/otel.cjs"
100
- },
101
26
  "./testing": {
102
27
  "types": "./dist/testing.d.ts",
103
28
  "import": "./dist/testing.js",
104
29
  "require": "./dist/testing.cjs"
105
- },
106
- "./conditional": {
107
- "types": "./dist/conditional.d.ts",
108
- "import": "./dist/conditional.js",
109
- "require": "./dist/conditional.cjs"
110
- },
111
- "./duration": {
112
- "types": "./dist/duration.d.ts",
113
- "import": "./dist/duration.js",
114
- "require": "./dist/duration.cjs"
115
- },
116
- "./match": {
117
- "types": "./dist/match.d.ts",
118
- "import": "./dist/match.js",
119
- "require": "./dist/match.cjs"
120
- },
121
- "./slugs": {
122
- "types": "./dist/slugs.d.ts",
123
- "import": "./dist/slugs.js",
124
- "require": "./dist/slugs.cjs"
125
- },
126
- "./tagged-error": {
127
- "types": "./dist/tagged-error.d.ts",
128
- "import": "./dist/tagged-error.js",
129
- "require": "./dist/tagged-error.cjs"
130
- },
131
- "./errors": {
132
- "types": "./dist/errors.d.ts",
133
- "import": "./dist/errors.js",
134
- "require": "./dist/errors.cjs"
135
- },
136
- "./cache": {
137
- "types": "./dist/cache.d.ts",
138
- "import": "./dist/cache.js",
139
- "require": "./dist/cache.cjs"
140
- },
141
- "./bind-deps": {
142
- "types": "./dist/bind-deps.d.ts",
143
- "import": "./dist/bind-deps.js",
144
- "require": "./dist/bind-deps.cjs"
145
- },
146
- "./flow": {
147
- "types": "./dist/flow.d.ts",
148
- "import": "./dist/flow.js",
149
- "require": "./dist/flow.cjs"
150
- },
151
- "./fetch": {
152
- "types": "./dist/fetch.d.ts",
153
- "import": "./dist/fetch.js",
154
- "require": "./dist/fetch.cjs"
155
- },
156
- "./singleflight": {
157
- "types": "./dist/singleflight.d.ts",
158
- "import": "./dist/singleflight.js",
159
- "require": "./dist/singleflight.cjs"
160
- },
161
- "./adapters": {
162
- "types": "./dist/adapters.d.ts",
163
- "import": "./dist/adapters.js",
164
- "require": "./dist/adapters.cjs"
165
- },
166
- "./durable": {
167
- "types": "./dist/durable.d.ts",
168
- "import": "./dist/durable.js",
169
- "require": "./dist/durable.cjs"
170
- },
171
- "./engine": {
172
- "types": "./dist/engine.d.ts",
173
- "import": "./dist/engine.js",
174
- "require": "./dist/engine.cjs"
175
- },
176
- "./streaming": {
177
- "types": "./dist/streaming.d.ts",
178
- "import": "./dist/streaming.js",
179
- "require": "./dist/streaming.cjs"
180
- },
181
- "./functional": {
182
- "types": "./dist/functional.d.ts",
183
- "import": "./dist/functional.js",
184
- "require": "./dist/functional.cjs"
185
- },
186
- "./resolver": {
187
- "types": "./dist/resolver.d.ts",
188
- "import": "./dist/resolver.js",
189
- "require": "./dist/resolver.cjs"
190
- },
191
- "./diagnostics": {
192
- "types": "./dist/diagnostics.d.ts",
193
- "import": "./dist/diagnostics.js",
194
- "require": "./dist/diagnostics.cjs"
195
30
  }
196
31
  },
197
32
  "files": [
@@ -234,7 +69,7 @@
234
69
  },
235
70
  "license": "MIT",
236
71
  "peerDependencies": {
237
- "@standard-schema/spec": "^1.1.0"
72
+ "@standard-schema/spec": "1.1.0"
238
73
  },
239
74
  "peerDependenciesMeta": {
240
75
  "@standard-schema/spec": {
@@ -242,17 +77,17 @@
242
77
  }
243
78
  },
244
79
  "devDependencies": {
245
- "@standard-schema/spec": "^1.1.0",
246
- "@total-typescript/ts-reset": "^0.6.1",
247
- "@total-typescript/tsconfig": "^1.0.4",
248
- "@types/node": "^25.6.0",
249
- "@types/picomatch": "^4.0.3",
250
- "@vitest/coverage-v8": "^4.1.2",
251
- "pino": "^10.3.1",
252
- "tsd": "^0.33.0",
253
- "tsup": "^8.5.1",
254
- "typescript": "^5.9.3",
255
- "vitest": "^4.1.7"
80
+ "@standard-schema/spec": "1.1.0",
81
+ "@total-typescript/ts-reset": "0.6.1",
82
+ "@total-typescript/tsconfig": "1.0.4",
83
+ "@types/node": "25.9.3",
84
+ "@types/picomatch": "4.0.3",
85
+ "@vitest/coverage-v8": "4.1.10",
86
+ "pino": "10.3.1",
87
+ "tsd": "0.33.0",
88
+ "tsup": "8.5.1",
89
+ "typescript": "5.9.3",
90
+ "vitest": "4.1.10"
256
91
  },
257
92
  "publishConfig": {
258
93
  "access": "public",
package/dist/adapters.cjs DELETED
@@ -1,7 +0,0 @@
1
- "use strict";var le=Object.defineProperty;var je=Object.getOwnPropertyDescriptor;var Le=Object.getOwnPropertyNames;var Be=Object.prototype.hasOwnProperty;var Ve=(t,e)=>{for(var i in e)le(t,i,{get:e[i],enumerable:!0})},$e=(t,e,i,p)=>{if(e&&typeof e=="object"||typeof e=="function")for(let b of Le(e))!Be.call(t,b)&&b!==i&&le(t,b,{get:()=>e[b],enumerable:!(p=je(e,b))||p.enumerable});return t};var He=t=>$e(le({},"__esModule",{value:!0}),t);var nt={};Ve(nt,{fromCallback:()=>Ie,fromEvent:()=>De,isEventEmitterLike:()=>Ue,isEventTimeoutError:()=>Oe,isInvalidEmitterError:()=>Me});module.exports=He(nt);var We={"step-require-id":"step-require-id","step-no-immediate-execution":"step-no-immediate-execution","step-require-thunk-for-key":"step-require-thunk-for-key","step-no-bare-await":"step-no-bare-await","step-no-try-catch-wrap":"step-no-try-catch-wrap","step-stable-cache-keys":"step-stable-cache-keys","workflow-no-floating":"workflow-no-floating","workflow-options-position":"workflow-options-position","workflow-callback-shape":"workflow-callback-shape","workflow-no-callable-form":"workflow-no-callable-form","workflow-no-dynamic-import":"workflow-no-dynamic-import","result-no-floating":"result-no-floating","result-require-handling":"result-require-handling","result-no-double-wrap":"result-no-double-wrap","result-no-manual-propagation":"result-no-manual-propagation","result-no-direct-ok-err":"result-no-direct-ok-err","error-check-unexpected-first":"error-check-unexpected-first","error-access-cause":"error-access-cause","error-normalize":"error-normalize","error-no-throw-in-deps":"error-no-throw-in-deps","concurrency-no-promise-all":"concurrency-no-promise-all","concurrency-no-promise-race":"concurrency-no-promise-race","concurrency-no-promise-allsettled":"concurrency-no-promise-allsettled","runtime-step-timeout":"runtime-step-timeout","runtime-step-aborted":"runtime-step-aborted","runtime-retry-exhausted":"runtime-retry-exhausted","runtime-rate-limit":"runtime-rate-limit","runtime-circuit-open":"runtime-circuit-open","runtime-unexpected":"runtime-unexpected","runtime-resolver-not-found":"runtime-resolver-not-found","runtime-saga-compensation":"runtime-saga-compensation"};function ye(t){return`https://jagreehal.github.io/awaitly/rules/#${t}`}var ut=Object.keys(We);var ee=class extends Error{_tag};function K(t,e){return class extends ee{_tag=t;constructor(i,p){let b=e?.message?e.message(i??{}):t;if(super(b),this.name=t,e?.slug!==void 0){if(!e.hint)throw new TypeError(`TaggedError: 'hint' is required when 'slug' is set (slug: "${e.slug}")`);Object.defineProperty(this,"code",{value:e.slug,enumerable:!0,writable:!1,configurable:!1}),Object.defineProperty(this,"hint",{value:e.hint,enumerable:!0,writable:!1,configurable:!1}),Object.defineProperty(this,"docsUrl",{value:ye(e.slug),enumerable:!0,writable:!1,configurable:!1})}if(Object.setPrototypeOf(this,new.target.prototype),i&&typeof i=="object"){let f;if(e?.slug!==void 0){let{_tag:a,name:N,message:C,stack:M,code:j,hint:c,docsUrl:U,...$}=i;f=$}else{let{_tag:a,name:N,message:C,stack:M,...j}=i;f=j}let S=Object.prototype.hasOwnProperty.call(f,"cause"),w=S?f.cause:void 0;S&&delete f.cause;let P=p?.cause!==void 0;if(S&&P)throw new TypeError("TaggedError: cannot provide 'cause' in props when also setting ErrorOptions.cause");Object.assign(this,f),S&&(this.cause=w),P&&(this.cause=p?.cause)}else p?.cause!==void 0&&(this.cause=p.cause)}}}Object.defineProperty(K,Symbol.hasInstance,{value:t=>t instanceof ee});(b=>{function t(f){return f instanceof Error}b.isError=t;function e(f){return f instanceof ee}b.isTaggedError=e;function i(f,S){let w=f._tag,P=S[w];return P(f)}b.match=i;function p(f,S,w){let P=f._tag,a=S[P];return a?a(f):w(f)}b.matchPartial=p})(K||={});var we=class extends K("TimeoutError",{slug:"runtime-step-timeout",hint:"Increase the step's timeout option, or check why the upstream operation is slow.",message:e=>e.operation?`TimeoutError: ${e.operation} timed out after ${e.ms}ms`:`TimeoutError: Operation timed out after ${e.ms}ms`}){},fe=class extends K("RetryExhaustedError",{slug:"runtime-retry-exhausted",hint:"All retry attempts failed. Inspect lastError and decide whether to surface it or compensate.",message:e=>e.operation?`RetryExhaustedError: ${e.operation} failed after ${e.attempts} attempts`:`RetryExhaustedError: Operation failed after ${e.attempts} attempts`}){},Te=class extends K("RateLimitError",{slug:"runtime-rate-limit",hint:"Wait retryAfterMs before retrying, or apply step.cache to deduplicate calls.",message:e=>e.limiterName?`RateLimitError: Rate limit exceeded for ${e.limiterName}${e.retryAfterMs?`, retry after ${e.retryAfterMs}ms`:""}`:`RateLimitError: Rate limit exceeded${e.retryAfterMs?`, retry after ${e.retryAfterMs}ms`:""}`}){},ge=class extends K("CircuitBreakerOpenError",{slug:"runtime-circuit-open",hint:"The circuit is open. Wait for it to half-open or fall back to a degraded path.",message:e=>`CircuitBreakerOpenError: Circuit ${e.circuitName} is ${e.state??"OPEN"}${e.retryAfterMs?`, retry after ${Math.ceil(e.retryAfterMs/1e3)}s`:""}`}){},ke=class extends K("ValidationError",{message:e=>`ValidationError: Invalid ${e.field} - ${e.reason}`}){},Re=class extends K("NotFoundError",{message:e=>e.id?`NotFoundError: ${e.resource} with id ${e.id} not found`:`NotFoundError: ${e.resource} not found`}){},xe=class extends K("UnauthorizedError",{message:e=>e.reason?`UnauthorizedError: ${e.reason}`:e.action&&e.resource?`UnauthorizedError: Not authorized to ${e.action} ${e.resource}`:"UnauthorizedError: Access denied"}){},he=class extends K("NetworkError",{message:e=>e.url?`NetworkError: ${e.reason} (${e.url})`:`NetworkError: ${e.reason}`}){},Ce=class extends K("CompensationError",{slug:"runtime-saga-compensation",hint:"A saga compensation step failed. Inspect compensationError and ensure compensation is idempotent.",message:e=>`CompensationError: Failed to compensate step ${e.step}`}){},ne=class extends K("UnexpectedError",{slug:"runtime-unexpected",hint:"An unexpected exception escaped a step. Inspect cause; consider returning a typed Result instead of throwing.",message:e=>`UnexpectedError: ${e.cause instanceof Error?e.cause.message:String(e.cause??"unknown")}`}){};function qe(t){let e=t.trim().match(/^(\d+(?:\.\d+)?)\s*(ms|s|m|h|d)$/i);if(!e)return;let i=parseFloat(e[1]),p=e[2].toLowerCase();return{_tag:"Duration",millis:i*({ms:1,s:1e3,m:6e4,h:36e5,d:864e5}[p]??1)}}function Ye(t){return new ne({cause:t})}function F(t){return{ok:!0,value:t}}function D(t,e){let i=e?.cause;return{ok:!1,error:t,...i!==void 0?{cause:i}:{}}}function ze(t){if(t==null)return"unknown";if(typeof t=="string")return t.trim()||"unknown";if(typeof t=="object"){let e=t;if(typeof e._tag=="string"){let i=e._tag.trim();if(i)return i}if(typeof e.tag=="string"){let i=e.tag.trim();if(i)return i}if(typeof e.code=="string"){let i=e.code.trim();if(i)return i}else if(typeof e.code=="number")return String(e.code);if(t instanceof Error&&t.name){let i=t.name.trim();if(i)return i}}return"unknown"}function Je(t,e){if(!(!e||!t))return e[t]}function Ge(t){let{intent:e,domain:i,owner:p,tags:b,stateChanges:f,emits:S,calls:w}=t;if(!e&&!i&&!p&&!b?.length&&!f?.length&&!S?.length&&!w?.length)return;let P={};return e&&(P.intent=e),i&&(P.domain=i),p&&(P.owner=p),b?.length&&(P.tags=b),f?.length&&(P.stateChanges=f),S?.length&&(P.emits=S),w?.length&&(P.calls=w),P}function L(t,e,i,p,b){let f=ze(t),S=Je(f,e),w={tag:f,origin:i};return S!==void 0&&(w.classification=S),p!==void 0&&(w.attempt=p),b!==void 0&&(w.cumulativeDurationMs=b),w}var Q=Symbol.for("step_timeout_marker");function be(t){return typeof t!="object"||t===null?!1:t.type==="STEP_TIMEOUT"?!0:Q in t}function Xe(t){if(!(typeof t!="object"||t===null)){if(t.type==="STEP_TIMEOUT"){let e=t;return{timeoutMs:e.timeoutMs,stepName:e.stepName,stepKey:e.stepKey,attempt:e.attempt}}if(Q in t)return t[Q]}}var _e=Symbol("early-exit");function Qe(t,e){return{[_e]:!0,error:t,meta:e}}function Ze(t){return typeof t=="object"&&t!==null&&t[_e]===!0}var Pe=Symbol("mapper-exception");function G(t){return{[Pe]:!0,thrown:t}}function et(t){return typeof t=="object"&&t!==null&&t[Pe]===!0}function pe(t,e){let{backoff:i,initialDelay:p,maxDelay:b,jitter:f}=e,S;switch(i){case"fixed":S=p;break;case"linear":S=p*t;break;case"exponential":S=p*Math.pow(2,t-1);break}if(S=Math.min(S,b),f){let w=S*.25*Math.random();S=S+w}return Math.floor(S)}function me(t){return new Promise(e=>setTimeout(e,t))}var Se=Symbol("timeout"),oe=Symbol("timeout-option");function tt(t){return typeof t=="object"&&t!==null&&t[oe]===!0}async function rt(t,e,i,p){let b=new AbortController,f=e.onTimeout??"error",S=()=>typeof f=="function"?f({name:i.name,key:i.key,ms:e.ms}):e.error??{type:"STEP_TIMEOUT",stepName:i.name,stepKey:i.key,timeoutMs:e.ms,attempt:i.attempt},w;p?.aborted&&b.abort(p.reason);let P;p&&!p.aborted&&(P=()=>b.abort(p.reason),p.addEventListener("abort",P,{once:!0}));let a=new Promise((C,M)=>{w=setTimeout(()=>{if(f!=="disconnect"&&b.abort(),f==="option"){M({[oe]:!0,ms:e.ms});return}M({[Se]:!0,error:S()})},e.ms)}),N;e.signal?N=Promise.resolve(t(b.signal)):N=Promise.resolve(t());try{return await Promise.race([N,a])}catch(C){if(typeof C=="object"&&C!==null&&C[oe]===!0)throw{[oe]:!0,ms:e.ms};if(typeof C=="object"&&C!==null&&C[Se]===!0){f==="disconnect"&&N.catch(()=>{});let M=C.error;if(typeof M=="object"&&M!==null&&M.type!=="STEP_TIMEOUT"){let j={timeoutMs:e.ms,stepName:i.name,stepKey:i.key,attempt:i.attempt};Q in M?M[Q]=j:Object.defineProperty(M,Q,{value:j,enumerable:!1,writable:!0,configurable:!1})}throw M}throw C}finally{clearTimeout(w),P&&p&&p.removeEventListener("abort",P)}}var X={backoff:"exponential",initialDelay:100,maxDelay:3e4,jitter:!0,shouldRetry:()=>!0,onRetry:()=>{}};async function Ae(t,e){let{onError:i,onEvent:p,catchUnexpected:b,workflowId:f,workflowName:S,context:w,_workflowSignal:P}=e&&typeof e=="object"?e:{},a=f??crypto.randomUUID(),N=b??Ye,C=[],M=0,j=m=>m??`step_${++M}`,c=m=>{let B=m.context!==void 0||w===void 0?m:{...m,context:w},q=S!==void 0&&B.workflowName===void 0?{...B,workflowName:S}:B;if(q.type==="step_success"){let te=q.stepId;for(let re=C.length-1;re>=0;re--){let V=C[re];if(V.type==="race"&&!V.winnerId){V.winnerId=te;break}}}p?.(q,w)},U=Qe,$=m=>Ze(m),W=(m,B)=>m,Ne=m=>typeof m=="function"?!1:!!(m&&typeof m=="object"&&"ok"in m||m&&typeof m=="object"&&"then"in m&&typeof m.then=="function");try{let B=function(s){let E={};for(let[n,o]of Object.entries(s))if(typeof o=="function")E[n]=o;else if(o&&typeof o=="object"&&"fn"in o)E[n]=o.fn;else throw new TypeError(`step.all: operation "${n}" must be a function or { fn, errors? } object`);return E},q=function(s,E){let n=`scope_${Date.now()}_${Math.random().toString(36).slice(2,8)}`;return(async()=>{let o=performance.now(),r=!1;C.push({scopeId:n,type:"parallel"});let u=()=>{if(r)return;r=!0;let l=C.findIndex(d=>d.scopeId===n);l!==-1&&C.splice(l,1),c({type:"scope_end",workflowId:a,scopeId:n,ts:Date.now(),durationMs:performance.now()-o})};c({type:"scope_start",workflowId:a,scopeId:n,scopeType:"parallel",name:s,ts:Date.now()});try{let l=await E();if(u(),!l.ok)throw i?.(l.error,s,w),U(l.error,{origin:"result",resultCause:l.cause});return l.value}catch(l){throw u(),l}})()},te=function(s,E){let n=Object.keys(s),o=E.name??`Parallel(${n.join(", ")})`,r=`scope_${Date.now()}_${Math.random().toString(36).slice(2,8)}`;return(async()=>{let u=performance.now(),l=!1;C.push({scopeId:r,type:"parallel"});let d=()=>{if(l)return;l=!0;let y=C.findIndex(T=>T.scopeId===r);y!==-1&&C.splice(y,1),c({type:"scope_end",workflowId:a,scopeId:r,ts:Date.now(),durationMs:performance.now()-u})};c({type:"scope_start",workflowId:a,scopeId:r,scopeType:"parallel",name:o,ts:Date.now()});try{let y=await new Promise(k=>{if(n.length===0){k([]);return}let v=!1,I=n.length,R=new Array(n.length);for(let O=0;O<n.length;O++){let x=n[O],A=O;Promise.resolve(s[x]()).catch(h=>D({type:"PROMISE_REJECTED",cause:h},{cause:{type:"PROMISE_REJECTION",reason:h}})).then(h=>{if(!v){if(!h.ok){v=!0,k([{key:x,result:h}]);return}R[A]={key:x,result:h},I--,I===0&&k(R)}})}});d();let T={};for(let{key:k,result:v}of y){if(!v.ok)throw i?.(v.error,k,w),U(v.error,{origin:"result",resultCause:v.cause});T[k]=v.value}return T}catch(y){throw d(),y}})()};var ot=B,st=q,at=te;let m=(s,E,n)=>(async()=>{if(typeof s!="string"||s.length===0)throw new Error('[awaitly] step() requires an explicit string ID as the first argument. Example: step("fetchUser", () => fetchUser(id))');let o=n??{},r=Ge(o),u=s,l=o.key??s,d=o.key??s,{description:y,retry:T,timeout:k}=o,v=j(l),I=p,R=I?performance.now():0,x=Ne(E)?()=>E:E,h={attempts:Math.max(1,T?.attempts??1),backoff:T?.backoff??X.backoff,initialDelay:T?.initialDelay??X.initialDelay,maxDelay:T?.maxDelay??X.maxDelay,jitter:T?.jitter??X.jitter,shouldRetry:T?.shouldRetry??X.shouldRetry,onRetry:T?.onRetry??X.onRetry};p&&c({type:"step_start",workflowId:a,stepId:v,stepKey:l,name:u,description:y,ts:Date.now(),...r&&{metadata:r}});let J;for(let _=1;_<=h.attempts;_++){let Ke=I?performance.now():0;try{let g;if(k?g=await rt(x,k,{name:u,key:l,attempt:_},P):g=await x(),g.ok){let z=performance.now()-R;return c({type:"step_success",workflowId:a,stepId:v,stepKey:l,name:u,description:y,ts:Date.now(),durationMs:z,...r&&{metadata:r}}),d&&c({type:"step_complete",workflowId:a,stepKey:d,name:u,description:y,ts:Date.now(),durationMs:z,result:g,...r&&{metadata:r}}),g.value}if(J=g,_<h.attempts&&h.shouldRetry(g.error,_)){let z=pe(_,h);c({type:"step_retry",workflowId:a,stepId:v,stepKey:l,name:u,ts:Date.now(),attempt:_+1,maxAttempts:h.attempts,delayMs:z,error:g.error,...r&&{metadata:r},diagnostics:L(g.error,o.errorMeta,"result",_,performance.now()-R)}),h.onRetry(g.error,_,z),await me(z);continue}h.attempts>1&&c({type:"step_retries_exhausted",workflowId:a,stepId:v,stepKey:l,name:u,ts:Date.now(),durationMs:performance.now()-R,attempts:_,lastError:g.error,...r&&{metadata:r},diagnostics:L(g.error,o.errorMeta,"result",_,performance.now()-R)});break}catch(g){let z=performance.now()-Ke;if(tt(g)){let H=g.ms;c({type:"step_timeout",workflowId:a,stepId:v,stepKey:l,name:u,ts:Date.now(),timeoutMs:H,attempt:_,...r&&{metadata:r},diagnostics:L(g,o.errorMeta,"timeout",_)}),c({type:"step_success",workflowId:a,stepId:v,stepKey:l,name:u,description:y,ts:Date.now(),durationMs:performance.now()-R,...r&&{metadata:r}}),d&&c({type:"step_complete",workflowId:a,stepKey:d,name:u,description:y,ts:Date.now(),durationMs:performance.now()-R,result:F(void 0),...r&&{metadata:r}});return}if($(g))throw c({type:"step_aborted",workflowId:a,stepId:v,stepKey:l,name:u,description:y,ts:Date.now(),durationMs:z,...r&&{metadata:r}}),g;if(be(g)){let H=Xe(g),Fe=k?.ms??H?.timeoutMs??0;if(c({type:"step_timeout",workflowId:a,stepId:v,stepKey:l,name:u,ts:Date.now(),timeoutMs:Fe,attempt:_,...r&&{metadata:r},diagnostics:L(g,o.errorMeta,"timeout",_)}),_<h.attempts&&h.shouldRetry(g,_)){let ce=pe(_,h);c({type:"step_retry",workflowId:a,stepId:v,stepKey:l,name:u,ts:Date.now(),attempt:_+1,maxAttempts:h.attempts,delayMs:ce,error:g,...r&&{metadata:r},diagnostics:L(g,o.errorMeta,"timeout",_,performance.now()-R)}),h.onRetry(g,_,ce),await me(ce);continue}h.attempts>1&&c({type:"step_retries_exhausted",workflowId:a,stepId:v,stepKey:l,name:u,ts:Date.now(),durationMs:performance.now()-R,attempts:_,lastError:g,...r&&{metadata:r},diagnostics:L(g,o.errorMeta,"timeout",_,performance.now()-R)});let ue=performance.now()-R;throw c({type:"step_error",workflowId:a,stepId:v,stepKey:l,name:u,description:y,ts:Date.now(),durationMs:ue,error:g,...r&&{metadata:r},diagnostics:L(g,o.errorMeta,"timeout",_,ue)}),d&&c({type:"step_complete",workflowId:a,stepKey:d,name:u,description:y,ts:Date.now(),durationMs:ue,result:D(g,{cause:g}),meta:{origin:"throw",thrown:g},...r&&{metadata:r}}),i?.(g,u,w),U(g,{origin:"throw",thrown:g})}if(_<h.attempts&&h.shouldRetry(g,_)){let H=pe(_,h);c({type:"step_retry",workflowId:a,stepId:v,stepKey:l,name:u,ts:Date.now(),attempt:_+1,maxAttempts:h.attempts,delayMs:H,error:g,...r&&{metadata:r},diagnostics:L(g,o.errorMeta,"throw",_,performance.now()-R)}),h.onRetry(g,_,H),await me(H);continue}h.attempts>1&&!be(g)&&c({type:"step_retries_exhausted",workflowId:a,stepId:v,stepKey:l,name:u,ts:Date.now(),durationMs:performance.now()-R,attempts:_,lastError:g,...r&&{metadata:r},diagnostics:L(g,o.errorMeta,"throw",_,performance.now()-R)});let ie=performance.now()-R,Z;try{Z=N(g)}catch(H){throw G(H)}throw c({type:"step_error",workflowId:a,stepId:v,stepKey:l,name:u,description:y,ts:Date.now(),durationMs:ie,error:Z,...r&&{metadata:r},diagnostics:L(g,o.errorMeta,"throw",_,ie)}),d&&c({type:"step_complete",workflowId:a,stepKey:d,name:u,description:y,ts:Date.now(),durationMs:ie,result:D(Z,{cause:g}),meta:{origin:"throw",thrown:g},...r&&{metadata:r}}),i?.(Z,u,w),U(Z,{origin:"throw",thrown:g})}}let Y=J,se=performance.now()-R,ae=W(Y.error,{origin:"result",resultCause:Y.cause});throw c({type:"step_error",workflowId:a,stepId:v,stepKey:l,name:u,description:y,ts:Date.now(),durationMs:se,error:ae,...r&&{metadata:r},diagnostics:L(Y.error,o.errorMeta,"result",h.attempts,se)}),d&&c({type:"step_complete",workflowId:a,stepKey:d,name:u,description:y,ts:Date.now(),durationMs:se,result:Y,meta:{origin:"result",resultCause:Y.cause},...r&&{metadata:r}}),i?.(ae,u,w),U(ae,{origin:"result",resultCause:Y.cause})})();m.try=(s,E,n)=>{if(typeof s!="string"||s.length===0)throw new Error('[awaitly] step.try() requires an explicit string ID as the first argument. Example: step.try("parse", () => JSON.parse(str), { error: "PARSE_ERROR" })');let o="error"in n?()=>n.error:n.onError;if(n.retry||n.timeout)return m.retry(s,async()=>{try{return F(await E())}catch(y){return D(o(y),{cause:y})}},{attempts:n.retry?.attempts??1,...n.retry??{},key:n.key,timeout:n.timeout});let r=n.key??s,u=s,l=s,d=p;return(async()=>{let y=d?performance.now():0;p&&c({type:"step_start",workflowId:a,stepId:l,stepKey:r,name:u,ts:Date.now()});try{let T=await E(),k=performance.now()-y;return c({type:"step_success",workflowId:a,stepId:l,stepKey:r,name:u,ts:Date.now(),durationMs:k}),r&&c({type:"step_complete",workflowId:a,stepKey:r,name:u,ts:Date.now(),durationMs:k,result:F(T)}),T}catch(T){let k=o(T),v=performance.now()-y,I=W(k,{origin:"throw",thrown:T});throw c({type:"step_error",workflowId:a,stepId:l,stepKey:r,name:u,ts:Date.now(),durationMs:v,error:I}),r&&c({type:"step_complete",workflowId:a,stepKey:r,name:u,ts:Date.now(),durationMs:v,result:D(k,{cause:T}),meta:{origin:"throw",thrown:T}}),i?.(I,u,w),U(I,{origin:"throw",thrown:T})}})()},m.fromResult=(s,E,n)=>{if(typeof s!="string"||s.length===0)throw new Error('[awaitly] step.fromResult() requires an explicit string ID as the first argument. Example: step.fromResult("callProvider", () => callProvider(input), { onError: (e) => ({ type: "FAILED" }) })');let o=n.key??s,r=s,u=s,l="error"in n?()=>n.error:n.onError,d=p;return(async()=>{let y=d?performance.now():0;p&&c({type:"step_start",workflowId:a,stepId:u,stepKey:o,name:r,ts:Date.now()});let T=await E();if(T.ok){let k=performance.now()-y;return c({type:"step_success",workflowId:a,stepId:u,stepKey:o,name:r,ts:Date.now(),durationMs:k}),o&&c({type:"step_complete",workflowId:a,stepKey:o,name:r,ts:Date.now(),durationMs:k,result:F(T.value)}),T.value}else{let k=l(T.error),v=performance.now()-y,I=W(k,{origin:"result",resultCause:T.error});throw c({type:"step_error",workflowId:a,stepId:u,stepKey:o,name:r,ts:Date.now(),durationMs:v,error:I}),o&&c({type:"step_complete",workflowId:a,stepKey:o,name:r,ts:Date.now(),durationMs:v,result:D(k,{cause:T.error}),meta:{origin:"result",resultCause:T.error}}),i?.(I,r,w),U(I,{origin:"result",resultCause:T.error})}})()},m.fromNullable=(s,E,n,o)=>{if(typeof s!="string"||s.length===0)throw new Error('[awaitly] step.fromNullable() requires an explicit string ID as the first argument. Example: step.fromNullable("getUser", () => db.find(id), () => ({ type: "NOT_FOUND" }))');return m(s,async()=>{let r=await E();return r!=null?F(r):D(n())},o)},m.retry=(s,E,n)=>{if(typeof s!="string"||s.length===0)throw new Error('[awaitly] step.retry() requires an explicit string ID as the first argument. Example: step.retry("fetchData", () => fetchData(), { attempts: 3 })');return m(s,E,{key:n.key??s,retry:{attempts:n.attempts,backoff:n.backoff,initialDelay:n.initialDelay,maxDelay:n.maxDelay,jitter:n.jitter,shouldRetry:n.shouldRetry,onRetry:n.onRetry},timeout:n.timeout})},m.withTimeout=(s,E,n)=>{if(typeof s!="string"||s.length===0)throw new Error('[awaitly] step.withTimeout() requires an explicit string ID as the first argument. Example: step.withTimeout("slowOp", () => slowOp(), { ms: 5000 })');return m(s,E,{key:n.key??s,timeout:n})},m.sleep=(s,E,n)=>{if(typeof s!="string"||s.length===0)throw new Error('[awaitly] step.sleep() requires an explicit string ID as the first argument. Example: step.sleep("delay", "5s")');let o=typeof E=="string"?qe(E):E;if(!o)throw new Error(`step.sleep: invalid duration '${E}'`);let r=o.millis,u=n?.signal;return m(s,async()=>{if(P?.aborted||u?.aborted){let l=new Error("Sleep aborted");throw l.name="AbortError",l}return new Promise((l,d)=>{let y={timeoutId:void 0},T=()=>{y.timeoutId&&clearTimeout(y.timeoutId);let k=new Error("Sleep aborted");k.name="AbortError",d(k)};P?.addEventListener("abort",T,{once:!0}),u?.addEventListener("abort",T,{once:!0}),y.timeoutId=setTimeout(()=>{P?.removeEventListener("abort",T),u?.removeEventListener("abort",T),l(F(void 0))},r)})},{key:n?.key??s,description:n?.description})},m.all=((...s)=>{if(typeof s[0]!="string")throw new TypeError("step.all(name, ...): first argument must be a string (step name). Example: step.all('Fetch data', { user: () => fetchUser(), posts: () => fetchPosts() })");let E=s[0],n=s[1];if(typeof n=="function")return q(E,n);if(n&&typeof n=="object"&&!Array.isArray(n)){let r=B(n);return te(r,{name:E})}throw new TypeError("step.all(name, ...): second argument must be a function (array form) or an object of operations (object form).")}),m.race=(s,E)=>{let n=`scope_${Date.now()}_${Math.random().toString(36).slice(2,8)}`;return(async()=>{let o=performance.now(),r=!1,u={scopeId:n,type:"race",winnerId:void 0};C.push(u);let l=()=>{if(r)return;r=!0;let d=C.findIndex(y=>y.scopeId===n);d!==-1&&C.splice(d,1),c({type:"scope_end",workflowId:a,scopeId:n,ts:Date.now(),durationMs:performance.now()-o,winnerId:u.winnerId})};c({type:"scope_start",workflowId:a,scopeId:n,scopeType:"race",name:s,ts:Date.now()});try{let d=await E();if(l(),!d.ok)throw i?.(d.error,s,w),U(d.error,{origin:"result",resultCause:d.cause});return d.value}catch(d){throw l(),d}})()},m.if=(s,E,n)=>n(),m.label=m.if,m.branch=async(s,E)=>{let{condition:n,then:o,else:r}=E;if(n())return await o();if(r)return await r()},m.arm=(s,E)=>({fn:s,errors:E}),m.forEach=async(s,E,n)=>{let o=[],r=n.maxIterations,u=0,l="run"in n,d=Symbol.asyncIterator in E?E:(async function*(){yield*E})();for await(let y of d){if(r!==void 0&&u>=r)break;let T;l?T=await n.run(y,u):T=await n.item.handler(y,u,m),o.push(T),u++}return o},m.item=s=>({__forEachItemHandler:!0,handler:s}),m.dep=(s,E)=>E,m.workflow=(s,E,n)=>m(s,E,n),m.map=async(s,E,n,o)=>{let r=o?.concurrency??E.length;return m(s,()=>r>=E.length?ve(E.map((u,l)=>n(u,l))):(async()=>{let u=[];for(let l=0;l<E.length;l+=r){let d=E.slice(l,l+r),y=await ve(d.map((T,k)=>n(T,l+k)));if(!y.ok)return y;u.push(...y.value)}return F(u)})(),{key:o?.key})},m.withFallback=(s,E,n)=>{if(typeof s!="string"||s.length===0)throw new Error('[awaitly] step.withFallback() requires an explicit string ID as the first argument. Example: step.withFallback("getUser", () => fetchUser(id), { fallback: () => fetchFromCache(id) })');let o=n.key??s,r=s,u=j(o),l=p;return(async()=>{let d=l?performance.now():0;p&&c({type:"step_start",workflowId:a,stepId:u,stepKey:o,name:r,ts:Date.now()});let y;try{y=await E()}catch(R){if($(R))throw c({type:"step_aborted",workflowId:a,stepId:u,stepKey:o,name:r,ts:Date.now(),durationMs:performance.now()-d}),R;let O;try{O=N(R)}catch(A){throw G(A)}if(n.on!==void 0&&n.on!==O){let A=performance.now()-d;throw c({type:"step_error",workflowId:a,stepId:u,stepKey:o,name:r,ts:Date.now(),durationMs:A,error:O}),o&&c({type:"step_complete",workflowId:a,stepKey:o,name:r,ts:Date.now(),durationMs:A,result:D(O,{cause:R}),meta:{origin:"throw",thrown:R}}),i?.(O,r,w),U(O,{origin:"throw",thrown:R})}let x;try{x=await n.fallback()}catch(A){if($(A))throw c({type:"step_aborted",workflowId:a,stepId:u,stepKey:o,name:r,ts:Date.now(),durationMs:performance.now()-d}),A;let h;try{h=N(A)}catch(Y){throw G(Y)}let J=performance.now()-d;throw c({type:"step_error",workflowId:a,stepId:u,stepKey:o,name:r,ts:Date.now(),durationMs:J,error:h}),o&&c({type:"step_complete",workflowId:a,stepKey:o,name:r,ts:Date.now(),durationMs:J,result:D(h,{cause:A}),meta:{origin:"throw",thrown:A}}),i?.(h,r,w),U(h,{origin:"throw",thrown:A})}if(x.ok){let A=performance.now()-d;return c({type:"step_success",workflowId:a,stepId:u,stepKey:o,name:r,ts:Date.now(),durationMs:A}),o&&c({type:"step_complete",workflowId:a,stepKey:o,name:r,ts:Date.now(),durationMs:A,result:x,meta:{origin:"fallback",fallbackUsed:!0,fallbackReason:String(O)}}),x.value}else{let A=performance.now()-d,h=W(x.error,{origin:"result",resultCause:x.cause});throw c({type:"step_error",workflowId:a,stepId:u,stepKey:o,name:r,ts:Date.now(),durationMs:A,error:h}),o&&c({type:"step_complete",workflowId:a,stepKey:o,name:r,ts:Date.now(),durationMs:A,result:x,meta:{origin:"result",resultCause:x.cause}}),i?.(h,r,w),U(h,{origin:"result",resultCause:x.cause})}}if(y.ok){let R=performance.now()-d;return c({type:"step_success",workflowId:a,stepId:u,stepKey:o,name:r,ts:Date.now(),durationMs:R}),o&&c({type:"step_complete",workflowId:a,stepKey:o,name:r,ts:Date.now(),durationMs:R,result:y}),y.value}let T=y.error;if(n.on!==void 0&&n.on!==T){let R=performance.now()-d,O=W(T,{origin:"result",resultCause:y.cause});throw c({type:"step_error",workflowId:a,stepId:u,stepKey:o,name:r,ts:Date.now(),durationMs:R,error:O}),o&&c({type:"step_complete",workflowId:a,stepKey:o,name:r,ts:Date.now(),durationMs:R,result:y,meta:{origin:"result",resultCause:y.cause}}),i?.(O,r,w),U(O,{origin:"result",resultCause:y.cause})}let k;try{k=await n.fallback()}catch(R){if($(R))throw c({type:"step_aborted",workflowId:a,stepId:u,stepKey:o,name:r,ts:Date.now(),durationMs:performance.now()-d}),R;let O;try{O=N(R)}catch(A){throw G(A)}let x=performance.now()-d;throw c({type:"step_error",workflowId:a,stepId:u,stepKey:o,name:r,ts:Date.now(),durationMs:x,error:O}),o&&c({type:"step_complete",workflowId:a,stepKey:o,name:r,ts:Date.now(),durationMs:x,result:D(O,{cause:R}),meta:{origin:"throw",thrown:R}}),i?.(O,r,w),U(O,{origin:"throw",thrown:R})}if(k.ok){let R=performance.now()-d;return c({type:"step_success",workflowId:a,stepId:u,stepKey:o,name:r,ts:Date.now(),durationMs:R}),o&&c({type:"step_complete",workflowId:a,stepKey:o,name:r,ts:Date.now(),durationMs:R,result:k,meta:{origin:"fallback",fallbackUsed:!0,fallbackReason:String(T)}}),k.value}let v=performance.now()-d,I=W(k.error,{origin:"result",resultCause:k.cause});throw c({type:"step_error",workflowId:a,stepId:u,stepKey:o,name:r,ts:Date.now(),durationMs:v,error:I}),o&&c({type:"step_complete",workflowId:a,stepKey:o,name:r,ts:Date.now(),durationMs:v,result:k,meta:{origin:"result",resultCause:k.cause}}),i?.(I,r,w),U(I,{origin:"result",resultCause:k.cause})})()},m.withResource=(s,E)=>{if(typeof s!="string"||s.length===0)throw new Error('[awaitly] step.withResource() requires an explicit string ID as the first argument. Example: step.withResource("useDb", { acquire: () => connect(), use: (db) => query(db), release: (db) => db.close() })');let n=s,o=s,r=j(n),u=p;return(async()=>{let l=u?performance.now():0;p&&c({type:"step_start",workflowId:a,stepId:r,stepKey:n,name:o,ts:Date.now()});let d;try{d=await E.acquire()}catch(x){if($(x))throw c({type:"step_aborted",workflowId:a,stepId:r,stepKey:n,name:o,ts:Date.now(),durationMs:performance.now()-l}),x;let A;try{A=N(x)}catch(J){throw G(J)}let h=performance.now()-l;throw c({type:"step_error",workflowId:a,stepId:r,stepKey:n,name:o,ts:Date.now(),durationMs:h,error:A}),n&&c({type:"step_complete",workflowId:a,stepKey:n,name:o,ts:Date.now(),durationMs:h,result:D(A,{cause:x}),meta:{origin:"throw",thrown:x}}),i?.(A,o,w),U(A,{origin:"throw",thrown:x})}if(!d.ok){let x=performance.now()-l,A=W(d.error,{origin:"result",resultCause:d.cause});throw c({type:"step_error",workflowId:a,stepId:r,stepKey:n,name:o,ts:Date.now(),durationMs:x,error:A}),n&&c({type:"step_complete",workflowId:a,stepKey:n,name:o,ts:Date.now(),durationMs:x,result:d,meta:{origin:"result",resultCause:d.cause}}),i?.(A,o,w),U(A,{origin:"result",resultCause:d.cause})}let y=d.value,T,k,v=!1;try{T=await E.use(y)}catch(x){if($(x)){try{await E.release(y)}catch(A){console.warn(`[awaitly] step.withResource("${s}"): release threw after earlyExit:`,A)}throw x}k=x,v=!0}try{await E.release(y)}catch(x){console.warn(`[awaitly] step.withResource("${s}"): release threw:`,x)}if(v){let x;try{x=N(k)}catch(h){throw G(h)}let A=performance.now()-l;throw c({type:"step_error",workflowId:a,stepId:r,stepKey:n,name:o,ts:Date.now(),durationMs:A,error:x}),n&&c({type:"step_complete",workflowId:a,stepKey:n,name:o,ts:Date.now(),durationMs:A,result:D(x,{cause:k}),meta:{origin:"throw",thrown:k}}),i?.(x,o,w),U(x,{origin:"throw",thrown:k})}let I=T;if(I.ok){let x=performance.now()-l;return c({type:"step_success",workflowId:a,stepId:r,stepKey:n,name:o,ts:Date.now(),durationMs:x}),n&&c({type:"step_complete",workflowId:a,stepKey:n,name:o,ts:Date.now(),durationMs:x,result:I}),I.value}let R=performance.now()-l,O=W(I.error,{origin:"result",resultCause:I.cause});throw c({type:"step_error",workflowId:a,stepId:r,stepKey:n,name:o,ts:Date.now(),durationMs:R,error:O}),n&&c({type:"step_complete",workflowId:a,stepKey:n,name:o,ts:Date.now(),durationMs:R,result:I,meta:{origin:"result",resultCause:I.cause}}),i?.(O,o,w),U(O,{origin:"result",resultCause:I.cause})})()};let V=await t({step:m});if(process.env.NODE_ENV!=="production"&&V!==null&&typeof V=="object"&&"ok"in V&&typeof V.ok=="boolean"){let s=V;(s.ok===!0&&"value"in s||s.ok===!1&&"error"in s)&&console.warn(`awaitly: Workflow executor returned a Result-like object. Return raw values, not ok() or err().
2
-
3
- Incorrect: return ok({ data });
4
- Correct: return { data };
5
-
6
- See: https://jagreehal.github.io/awaitly/guides/troubleshooting/#returning-ok-from-workflow-executor-double-wrapping`)}return F(V)}catch(m){if(et(m))throw m.thrown;if($(m)){let q=m.meta.origin==="throw"?m.meta.thrown:m.meta.origin==="result"?m.meta.resultCause:void 0;return D(m.error,{cause:q})}let B=N(m);return i?.(B,"unexpected",w),D(B,{cause:m})}}Ae.strict=(t,e)=>Ae(t,e);async function ve(t){return t.length===0?F([]):new Promise(e=>{let i=!1,p=t.length,b=new Array(t.length);for(let f=0;f<t.length;f++){let S=f;Promise.resolve(t[S]).catch(w=>D({type:"PROMISE_REJECTED",cause:w},{cause:{type:"PROMISE_REJECTION",reason:w}})).then(w=>{if(!i){if(!w.ok){i=!0,e(w);return}b[S]=w.value,p--,p===0&&e(F(b))}})}})}function Oe(t){return typeof t=="object"&&t!==null&&t.type==="EVENT_TIMEOUT"}function Me(t){return typeof t=="object"&&t!==null&&t.type==="INVALID_EMITTER"}function Ie(t,e){return new Promise(i=>{try{t((p,b)=>{if(p){let f=e?.onError?e.onError(p):p;i(D(f,{cause:p}))}else i(F(b))})}catch(p){let b=p instanceof Error?p:new Error(String(p)),f=e?.onError?e.onError(b):b;i(D(f,{cause:p}))}})}function Ee(t){return typeof t=="object"&&t!==null&&"on"in t&&"off"in t&&typeof t.on=="function"&&typeof t.off=="function"}function de(t){return typeof t=="object"&&t!==null&&"addEventListener"in t&&"removeEventListener"in t&&typeof t.addEventListener=="function"&&typeof t.removeEventListener=="function"}function De(t,e,i){return new Promise(p=>{let b,f=!1,S=Ee(t)?(C,M)=>t.on(C,M):de(t)?(C,M)=>t.addEventListener(C,M):null,w=Ee(t)?(C,M)=>t.off(C,M):de(t)?(C,M)=>t.removeEventListener(C,M):null;if(!S||!w){p(D({type:"INVALID_EMITTER",message:"Object does not have on/off or addEventListener/removeEventListener"}));return}let P=(...C)=>{f||(f=!0,N(),p(F(C[0])))},a=(...C)=>{if(f)return;f=!0,N();let M=C[0],j=i?.onError?i.onError(M):M;p(D(j,{cause:M}))},N=()=>{b&&clearTimeout(b),w(e.success,P),e.error&&w(e.error,a)};S(e.success,P),e.error&&S(e.error,a),e.timeout&&(b=setTimeout(()=>{if(f)return;f=!0,N();let C={type:"EVENT_TIMEOUT",event:e.success,timeoutMs:e.timeout};p(D(C))},e.timeout))})}function Ue(t){return Ee(t)||de(t)}0&&(module.exports={fromCallback,fromEvent,isEventEmitterLike,isEventTimeoutError,isInvalidEmitterError});
7
- //# sourceMappingURL=adapters.cjs.map