awaitly 1.35.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.
- package/dist/{duration.d.ts → di-BDlT7InM.d.cts} +15 -1
- package/dist/{duration.d.cts → di-BbFFfO8y.d.ts} +15 -1
- package/dist/errors-DtXvrCiO.d.cts +708 -0
- package/dist/errors-DtXvrCiO.d.ts +708 -0
- package/dist/index.cjs +4594 -1
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +1970 -141
- package/dist/index.d.ts +1970 -141
- package/dist/index.js +4398 -1
- package/dist/index.js.map +1 -1
- package/dist/result.cjs +641 -1
- package/dist/result.cjs.map +1 -1
- package/dist/result.d.cts +29 -4
- package/dist/result.d.ts +29 -4
- package/dist/result.js +561 -1
- package/dist/result.js.map +1 -1
- package/dist/testing.cjs +4202 -8
- package/dist/testing.cjs.map +1 -1
- package/dist/testing.d.cts +2 -6
- package/dist/testing.d.ts +2 -6
- package/dist/testing.js +4154 -8
- package/dist/testing.js.map +1 -1
- package/dist/{run-entry-DGs0tySr.d.cts → types-B8NfNRGX.d.ts} +1078 -1502
- package/dist/{run-entry-BOuNyVoO.d.ts → types-BZ2f4MRR.d.cts} +1078 -1502
- package/dist/workflow.cjs +7096 -6
- package/dist/workflow.cjs.map +1 -1
- package/dist/workflow.d.cts +3346 -22
- package/dist/workflow.d.ts +3346 -22
- package/dist/workflow.js +6929 -6
- package/dist/workflow.js.map +1 -1
- package/package.json +3 -168
- package/dist/adapters.cjs +0 -7
- package/dist/adapters.cjs.map +0 -1
- package/dist/adapters.d.cts +0 -179
- package/dist/adapters.d.ts +0 -179
- package/dist/adapters.js +0 -7
- package/dist/adapters.js.map +0 -1
- package/dist/batch.cjs +0 -7
- package/dist/batch.cjs.map +0 -1
- package/dist/batch.d.cts +0 -200
- package/dist/batch.d.ts +0 -200
- package/dist/batch.js +0 -7
- package/dist/batch.js.map +0 -1
- package/dist/bind-deps.cjs +0 -2
- package/dist/bind-deps.cjs.map +0 -1
- package/dist/bind-deps.d.cts +0 -28
- package/dist/bind-deps.d.ts +0 -28
- package/dist/bind-deps.js +0 -2
- package/dist/bind-deps.js.map +0 -1
- package/dist/cache.cjs +0 -2
- package/dist/cache.cjs.map +0 -1
- package/dist/cache.d.cts +0 -269
- package/dist/cache.d.ts +0 -269
- package/dist/cache.js +0 -2
- package/dist/cache.js.map +0 -1
- package/dist/circuit-breaker.cjs +0 -7
- package/dist/circuit-breaker.cjs.map +0 -1
- package/dist/circuit-breaker.d.cts +0 -211
- package/dist/circuit-breaker.d.ts +0 -211
- package/dist/circuit-breaker.js +0 -7
- package/dist/circuit-breaker.js.map +0 -1
- package/dist/conditional.cjs +0 -2
- package/dist/conditional.cjs.map +0 -1
- package/dist/conditional.d.cts +0 -252
- package/dist/conditional.d.ts +0 -252
- package/dist/conditional.js +0 -2
- package/dist/conditional.js.map +0 -1
- package/dist/core.cjs +0 -7
- package/dist/core.cjs.map +0 -1
- package/dist/core.d.cts +0 -5
- package/dist/core.d.ts +0 -5
- package/dist/core.js +0 -7
- package/dist/core.js.map +0 -1
- package/dist/di-By77n4Fa.d.ts +0 -15
- package/dist/di-OJfsohf-.d.cts +0 -15
- package/dist/diagnostics.cjs +0 -8
- package/dist/diagnostics.cjs.map +0 -1
- package/dist/diagnostics.d.cts +0 -68
- package/dist/diagnostics.d.ts +0 -68
- package/dist/diagnostics.js +0 -8
- package/dist/diagnostics.js.map +0 -1
- package/dist/durable.cjs +0 -11
- package/dist/durable.cjs.map +0 -1
- package/dist/durable.d.cts +0 -9
- package/dist/durable.d.ts +0 -9
- package/dist/durable.js +0 -11
- package/dist/durable.js.map +0 -1
- package/dist/duration.cjs +0 -2
- package/dist/duration.cjs.map +0 -1
- package/dist/duration.js +0 -2
- package/dist/duration.js.map +0 -1
- package/dist/engine.cjs +0 -11
- package/dist/engine.cjs.map +0 -1
- package/dist/engine.d.cts +0 -115
- package/dist/engine.d.ts +0 -115
- package/dist/engine.js +0 -11
- package/dist/engine.js.map +0 -1
- package/dist/errors.cjs +0 -2
- package/dist/errors.cjs.map +0 -1
- package/dist/errors.d.cts +0 -361
- package/dist/errors.d.ts +0 -361
- package/dist/errors.js +0 -2
- package/dist/errors.js.map +0 -1
- package/dist/fetch.cjs +0 -7
- package/dist/fetch.cjs.map +0 -1
- package/dist/fetch.d.cts +0 -86
- package/dist/fetch.d.ts +0 -86
- package/dist/fetch.js +0 -7
- package/dist/fetch.js.map +0 -1
- package/dist/flow.cjs +0 -7
- package/dist/flow.cjs.map +0 -1
- package/dist/flow.d.cts +0 -163
- package/dist/flow.d.ts +0 -163
- package/dist/flow.js +0 -7
- package/dist/flow.js.map +0 -1
- package/dist/functional.cjs +0 -2
- package/dist/functional.cjs.map +0 -1
- package/dist/functional.d.cts +0 -444
- package/dist/functional.d.ts +0 -444
- package/dist/functional.js +0 -2
- package/dist/functional.js.map +0 -1
- package/dist/guards-4sV7mTqj.d.cts +0 -72
- package/dist/guards-BIX05ALH.d.ts +0 -72
- package/dist/hitl-DFn4Xa_l.d.cts +0 -468
- package/dist/hitl-DU5VpKq7.d.ts +0 -468
- package/dist/hitl.cjs +0 -7
- package/dist/hitl.cjs.map +0 -1
- package/dist/hitl.d.cts +0 -442
- package/dist/hitl.d.ts +0 -442
- package/dist/hitl.js +0 -7
- package/dist/hitl.js.map +0 -1
- package/dist/index-CnvBryQB.d.ts +0 -417
- package/dist/index-DEZEf8Fs.d.cts +0 -417
- package/dist/match-entry-DjI2bLpD.d.cts +0 -209
- package/dist/match-entry-DjI2bLpD.d.ts +0 -209
- package/dist/match.cjs +0 -2
- package/dist/match.cjs.map +0 -1
- package/dist/match.d.cts +0 -1
- package/dist/match.d.ts +0 -1
- package/dist/match.js +0 -2
- package/dist/match.js.map +0 -1
- package/dist/otel.cjs +0 -2
- package/dist/otel.cjs.map +0 -1
- package/dist/otel.d.cts +0 -188
- package/dist/otel.d.ts +0 -188
- package/dist/otel.js +0 -2
- package/dist/otel.js.map +0 -1
- package/dist/persistence-entry-B-8PjnSR.d.cts +0 -831
- package/dist/persistence-entry-D8zRkLiT.d.ts +0 -831
- package/dist/persistence.cjs +0 -2
- package/dist/persistence.cjs.map +0 -1
- package/dist/persistence.d.cts +0 -7
- package/dist/persistence.d.ts +0 -7
- package/dist/persistence.js +0 -2
- package/dist/persistence.js.map +0 -1
- package/dist/policies.cjs +0 -2
- package/dist/policies.cjs.map +0 -1
- package/dist/policies.d.cts +0 -379
- package/dist/policies.d.ts +0 -379
- package/dist/policies.js +0 -2
- package/dist/policies.js.map +0 -1
- package/dist/ratelimit.cjs +0 -7
- package/dist/ratelimit.cjs.map +0 -1
- package/dist/ratelimit.d.cts +0 -458
- package/dist/ratelimit.d.ts +0 -458
- package/dist/ratelimit.js +0 -7
- package/dist/ratelimit.js.map +0 -1
- package/dist/reliability.cjs +0 -11
- package/dist/reliability.cjs.map +0 -1
- package/dist/reliability.d.cts +0 -11
- package/dist/reliability.d.ts +0 -11
- package/dist/reliability.js +0 -11
- package/dist/reliability.js.map +0 -1
- package/dist/resolver.cjs +0 -7
- package/dist/resolver.cjs.map +0 -1
- package/dist/resolver.d.cts +0 -68
- package/dist/resolver.d.ts +0 -68
- package/dist/resolver.js +0 -7
- package/dist/resolver.js.map +0 -1
- package/dist/resource.cjs +0 -7
- package/dist/resource.cjs.map +0 -1
- package/dist/resource.d.cts +0 -174
- package/dist/resource.d.ts +0 -174
- package/dist/resource.js +0 -7
- package/dist/resource.js.map +0 -1
- package/dist/result/retry.cjs +0 -2
- package/dist/result/retry.cjs.map +0 -1
- package/dist/result/retry.d.cts +0 -70
- package/dist/result/retry.d.ts +0 -70
- package/dist/result/retry.js +0 -2
- package/dist/result/retry.js.map +0 -1
- package/dist/retry.cjs +0 -2
- package/dist/retry.cjs.map +0 -1
- package/dist/retry.d.cts +0 -388
- package/dist/retry.d.ts +0 -388
- package/dist/retry.js +0 -2
- package/dist/retry.js.map +0 -1
- package/dist/run.cjs +0 -7
- package/dist/run.cjs.map +0 -1
- package/dist/run.d.cts +0 -4
- package/dist/run.d.ts +0 -4
- package/dist/run.js +0 -7
- package/dist/run.js.map +0 -1
- package/dist/saga.cjs +0 -11
- package/dist/saga.cjs.map +0 -1
- package/dist/saga.d.cts +0 -164
- package/dist/saga.d.ts +0 -164
- package/dist/saga.js +0 -11
- package/dist/saga.js.map +0 -1
- package/dist/singleflight.cjs +0 -2
- package/dist/singleflight.cjs.map +0 -1
- package/dist/singleflight.d.cts +0 -145
- package/dist/singleflight.d.ts +0 -145
- package/dist/singleflight.js +0 -2
- package/dist/singleflight.js.map +0 -1
- package/dist/slugs.cjs +0 -2
- package/dist/slugs.cjs.map +0 -1
- package/dist/slugs.d.cts +0 -67
- package/dist/slugs.d.ts +0 -67
- package/dist/slugs.js +0 -2
- package/dist/slugs.js.map +0 -1
- package/dist/streaming.cjs +0 -9
- package/dist/streaming.cjs.map +0 -1
- package/dist/streaming.d.cts +0 -596
- package/dist/streaming.d.ts +0 -596
- package/dist/streaming.js +0 -9
- package/dist/streaming.js.map +0 -1
- package/dist/tagged-error.cjs +0 -2
- package/dist/tagged-error.cjs.map +0 -1
- package/dist/tagged-error.d.cts +0 -275
- package/dist/tagged-error.d.ts +0 -275
- package/dist/tagged-error.js +0 -2
- package/dist/tagged-error.js.map +0 -1
- package/dist/types-BziYHFkD.d.ts +0 -323
- package/dist/types-C5jLEUqY.d.cts +0 -323
- package/dist/webhook.cjs +0 -7
- package/dist/webhook.cjs.map +0 -1
- package/dist/webhook.d.cts +0 -499
- package/dist/webhook.d.ts +0 -499
- package/dist/webhook.js +0 -7
- package/dist/webhook.js.map +0 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "awaitly",
|
|
3
|
-
"version": "
|
|
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": [
|
|
@@ -247,12 +82,12 @@
|
|
|
247
82
|
"@total-typescript/tsconfig": "1.0.4",
|
|
248
83
|
"@types/node": "25.9.3",
|
|
249
84
|
"@types/picomatch": "4.0.3",
|
|
250
|
-
"@vitest/coverage-v8": "4.1.
|
|
85
|
+
"@vitest/coverage-v8": "4.1.10",
|
|
251
86
|
"pino": "10.3.1",
|
|
252
87
|
"tsd": "0.33.0",
|
|
253
88
|
"tsup": "8.5.1",
|
|
254
89
|
"typescript": "5.9.3",
|
|
255
|
-
"vitest": "4.1.
|
|
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 Ee=Object.defineProperty;var $e=Object.getOwnPropertyDescriptor;var We=Object.getOwnPropertyNames;var qe=Object.prototype.hasOwnProperty;var Ye=(e,r)=>{for(var E in r)Ee(e,E,{get:r[E],enumerable:!0})},ze=(e,r,E,y)=>{if(r&&typeof r=="object"||typeof r=="function")for(let R of We(r))!qe.call(e,R)&&R!==E&&Ee(e,R,{get:()=>r[R],enumerable:!(y=$e(r,R))||y.enumerable});return e};var Je=e=>ze(Ee({},"__esModule",{value:!0}),e);var cr={};Ye(cr,{fromCallback:()=>Fe,fromEvent:()=>je,isEventEmitterLike:()=>Le,isEventTimeoutError:()=>Ke,isInvalidEmitterError:()=>Ne});module.exports=Je(cr);var Ge={"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 ke(e){return`https://jagreehal.github.io/awaitly/rules/#${e}`}var mr=Object.keys(Ge);var te=class extends Error{_tag};function F(e,r){return class extends te{_tag=e;constructor(E,y){let R=r?.message?r.message(E??{}):e;if(super(R),this.name=e,r?.slug!==void 0){if(!r.hint)throw new TypeError(`TaggedError: 'hint' is required when 'slug' is set (slug: "${r.slug}")`);Object.defineProperty(this,"code",{value:r.slug,enumerable:!0,writable:!1,configurable:!1}),Object.defineProperty(this,"hint",{value:r.hint,enumerable:!0,writable:!1,configurable:!1}),Object.defineProperty(this,"docsUrl",{value:ke(r.slug),enumerable:!0,writable:!1,configurable:!1})}if(Object.setPrototypeOf(this,new.target.prototype),E&&typeof E=="object"){let i;if(r?.slug!==void 0){let{_tag:K,name:S,message:O,stack:s,code:N,hint:B,docsUrl:Te,...re}=E;i=re}else{let{_tag:K,name:S,message:O,stack:s,...N}=E;i=N}let f=Object.prototype.hasOwnProperty.call(i,"cause"),A=f?i.cause:void 0;f&&delete i.cause;let _=y?.cause!==void 0;if(f&&_)throw new TypeError("TaggedError: cannot provide 'cause' in props when also setting ErrorOptions.cause");Object.assign(this,i),f&&(this.cause=A),_&&(this.cause=y?.cause)}else y?.cause!==void 0&&(this.cause=y.cause)}}}Object.defineProperty(F,Symbol.hasInstance,{value:e=>e instanceof te});(R=>{function e(i){return i instanceof Error}R.isError=e;function r(i){return i instanceof te}R.isTaggedError=r;function E(i,f){let A=i._tag,_=f[A];return _(i)}R.match=E;function y(i,f,A){let _=i._tag,K=f[_];return K?K(i):A(i)}R.matchPartial=y})(F||={});var Re=class extends F("TimeoutError",{slug:"runtime-step-timeout",hint:"Increase the step's timeout option, or check why the upstream operation is slow.",message:r=>r.operation?`TimeoutError: ${r.operation} timed out after ${r.ms}ms`:`TimeoutError: Operation timed out after ${r.ms}ms`}){},ge=class extends F("RetryExhaustedError",{slug:"runtime-retry-exhausted",hint:"All retry attempts failed. Inspect lastError and decide whether to surface it or compensate.",message:r=>r.operation?`RetryExhaustedError: ${r.operation} failed after ${r.attempts} attempts`:`RetryExhaustedError: Operation failed after ${r.attempts} attempts`}){},xe=class extends F("RateLimitError",{slug:"runtime-rate-limit",hint:"Wait retryAfterMs before retrying, or apply step.cache to deduplicate calls.",message:r=>r.limiterName?`RateLimitError: Rate limit exceeded for ${r.limiterName}${r.retryAfterMs?`, retry after ${r.retryAfterMs}ms`:""}`:`RateLimitError: Rate limit exceeded${r.retryAfterMs?`, retry after ${r.retryAfterMs}ms`:""}`}){},Ce=class extends F("CircuitBreakerOpenError",{slug:"runtime-circuit-open",hint:"The circuit is open. Wait for it to half-open or fall back to a degraded path.",message:r=>`CircuitBreakerOpenError: Circuit ${r.circuitName} is ${r.state??"OPEN"}${r.retryAfterMs?`, retry after ${Math.ceil(r.retryAfterMs/1e3)}s`:""}`}){},he=class extends F("ValidationError",{message:r=>`ValidationError: Invalid ${r.field} - ${r.reason}`}){},be=class extends F("NotFoundError",{message:r=>r.id?`NotFoundError: ${r.resource} with id ${r.id} not found`:`NotFoundError: ${r.resource} not found`}){},Ae=class extends F("UnauthorizedError",{message:r=>r.reason?`UnauthorizedError: ${r.reason}`:r.action&&r.resource?`UnauthorizedError: Not authorized to ${r.action} ${r.resource}`:"UnauthorizedError: Access denied"}){},ve=class extends F("NetworkError",{message:r=>r.url?`NetworkError: ${r.reason} (${r.url})`:`NetworkError: ${r.reason}`}){},Se=class extends F("CompensationError",{slug:"runtime-saga-compensation",hint:"A saga compensation step failed. Inspect compensationError and ensure compensation is idempotent.",message:r=>`CompensationError: Failed to compensate step ${r.step}`}){},se=class extends F("UnexpectedError",{slug:"runtime-unexpected",hint:"An unexpected exception escaped a step. Inspect cause; consider returning a typed Result instead of throwing.",message:r=>`UnexpectedError: ${r.cause instanceof Error?r.cause.message:String(r.cause??"unknown")}`}){};function Pe(e){return{ok:!0,value:e}}var Xe=e=>typeof e=="object"&&e!==null&&"ok"in e&&typeof e.ok=="boolean"&&(e.ok?"value"in e:"error"in e),Oe=(e,r)=>{let E={},y=new Map;for(let R of Object.keys(e)){let i=e[R];typeof i=="function"&&(E[R]=(...f)=>{let A=(y.get(R)??0)+1;y.set(R,A);let _=A===1?R:`${R}#${A}`;return r(_,async()=>{let K=await i(...f);return Xe(K)?K:Pe(K)})})}return E};function Ze(e){let r=e.trim().match(/^(\d+(?:\.\d+)?)\s*(ms|s|m|h|d)$/i);if(!r)return;let E=parseFloat(r[1]),y=r[2].toLowerCase();return{_tag:"Duration",millis:E*({ms:1,s:1e3,m:6e4,h:36e5,d:864e5}[y]??1)}}function Qe(e){return new se({cause:e})}function L(e){return{ok:!0,value:e}}function D(e,r){let E=r?.cause;return{ok:!1,error:e,...E!==void 0?{cause:E}:{}}}function er(e){if(e==null)return"unknown";if(typeof e=="string")return e.trim()||"unknown";if(typeof e=="object"){let r=e;if(typeof r._tag=="string"){let E=r._tag.trim();if(E)return E}if(typeof r.tag=="string"){let E=r.tag.trim();if(E)return E}if(typeof r.code=="string"){let E=r.code.trim();if(E)return E}else if(typeof r.code=="number")return String(r.code);if(e instanceof Error&&e.name){let E=e.name.trim();if(E)return E}}return"unknown"}function rr(e,r){if(!(!r||!e))return r[e]}function nr(e){let{intent:r,domain:E,owner:y,tags:R,stateChanges:i,emits:f,calls:A}=e;if(!r&&!E&&!y&&!R?.length&&!i?.length&&!f?.length&&!A?.length)return;let _={};return r&&(_.intent=r),E&&(_.domain=E),y&&(_.owner=y),R?.length&&(_.tags=R),i?.length&&(_.stateChanges=i),f?.length&&(_.emits=f),A?.length&&(_.calls=A),_}function V(e,r,E,y,R){let i=er(e),f=rr(i,r),A={tag:i,origin:E};return f!==void 0&&(A.classification=f),y!==void 0&&(A.attempt=y),R!==void 0&&(A.cumulativeDurationMs=R),A}var ee=Symbol.for("step_timeout_marker");function _e(e){return typeof e!="object"||e===null?!1:e.type==="STEP_TIMEOUT"?!0:ee in e}function tr(e){if(!(typeof e!="object"||e===null)){if(e.type==="STEP_TIMEOUT"){let r=e;return{timeoutMs:r.timeoutMs,stepName:r.stepName,stepKey:r.stepKey,attempt:r.attempt}}if(ee in e)return e[ee]}}var De=Symbol("early-exit");function or(e,r){return{[De]:!0,error:e,meta:r}}function sr(e){return typeof e=="object"&&e!==null&&e[De]===!0}var Ue=Symbol("mapper-exception");function Z(e){return{[Ue]:!0,thrown:e}}function ar(e){return typeof e=="object"&&e!==null&&e[Ue]===!0}function de(e,r){let{backoff:E,initialDelay:y,maxDelay:R,jitter:i}=r,f;switch(E){case"fixed":f=y;break;case"linear":f=y*e;break;case"exponential":f=y*Math.pow(2,e-1);break}if(f=Math.min(f,R),i){let A=f*.25*Math.random();f=f+A}return Math.floor(f)}function me(e){return new Promise(r=>setTimeout(r,e))}var Ie=Symbol("timeout"),ae=Symbol("timeout-option");function ur(e){return typeof e=="object"&&e!==null&&e[ae]===!0}async function ir(e,r,E,y){let R=new AbortController,i=r.onTimeout??"error",f=()=>typeof i=="function"?i({name:E.name,key:E.key,ms:r.ms}):r.error??{type:"STEP_TIMEOUT",stepName:E.name,stepKey:E.key,timeoutMs:r.ms,attempt:E.attempt},A;y?.aborted&&R.abort(y.reason);let _;y&&!y.aborted&&(_=()=>R.abort(y.reason),y.addEventListener("abort",_,{once:!0}));let K=new Promise((O,s)=>{A=setTimeout(()=>{if(i!=="disconnect"&&R.abort(),i==="option"){s({[ae]:!0,ms:r.ms});return}s({[Ie]:!0,error:f()})},r.ms)}),S;r.signal?S=Promise.resolve(e(R.signal)):S=Promise.resolve(e());try{return await Promise.race([S,K])}catch(O){if(typeof O=="object"&&O!==null&&O[ae]===!0)throw{[ae]:!0,ms:r.ms};if(typeof O=="object"&&O!==null&&O[Ie]===!0){i==="disconnect"&&S.catch(()=>{});let s=O.error;if(typeof s=="object"&&s!==null&&s.type!=="STEP_TIMEOUT"){let N={timeoutMs:r.ms,stepName:E.name,stepKey:E.key,attempt:E.attempt};ee in s?s[ee]=N:Object.defineProperty(s,ee,{value:N,enumerable:!1,writable:!0,configurable:!1})}throw s}throw O}finally{clearTimeout(A),_&&y&&y.removeEventListener("abort",_)}}var Q={backoff:"exponential",initialDelay:100,maxDelay:3e4,jitter:!0,shouldRetry:()=>!0,onRetry:()=>{}};async function we(e,r,E){if(typeof e!="function"){let p=e,j=r;if(typeof j!="function")throw new TypeError("[awaitly] run(deps, fn) requires a callback as the second argument. Example: run({ getUser }, async (s) => s.getUser(id))");return we(({step:G})=>j(Oe(p,G),{step:G}),E)}let y=e,R=r,{onError:i,onEvent:f,catchUnexpected:A,workflowId:_,workflowName:K,context:S,_workflowSignal:O}=R&&typeof R=="object"?R:{},s=_??crypto.randomUUID(),N=A??Qe,B=[],Te=0,re=p=>p??`step_${++Te}`,c=p=>{let j=p.context!==void 0||S===void 0?p:{...p,context:S},$=K!==void 0&&j.workflowName===void 0?{...j,workflowName:K}:j;if($.type==="step_success"){let G=$.stepId;for(let oe=B.length-1;oe>=0;oe--){let H=B[oe];if(H.type==="race"&&!H.winnerId){H.winnerId=G;break}}}f?.($,S)},U=or,J=p=>sr(p),q=(p,j)=>p,Be=p=>typeof p=="function"?!1:!!(p&&typeof p=="object"&&"ok"in p||p&&typeof p=="object"&&"then"in p&&typeof p.then=="function");try{let j=function(a){let d={};for(let[t,o]of Object.entries(a))if(typeof o=="function")d[t]=o;else if(o&&typeof o=="object"&&"fn"in o)d[t]=o.fn;else throw new TypeError(`step.all: operation "${t}" must be a function or { fn, errors? } object`);return d},$=function(a,d){let t=`scope_${Date.now()}_${Math.random().toString(36).slice(2,8)}`;return(async()=>{let o=performance.now(),n=!1;B.push({scopeId:t,type:"parallel"});let u=()=>{if(n)return;n=!0;let l=B.findIndex(m=>m.scopeId===t);l!==-1&&B.splice(l,1),c({type:"scope_end",workflowId:s,scopeId:t,ts:Date.now(),durationMs:performance.now()-o})};c({type:"scope_start",workflowId:s,scopeId:t,scopeType:"parallel",name:a,ts:Date.now()});try{let l=await d();if(u(),!l.ok)throw i?.(l.error,a,S),U(l.error,{origin:"result",resultCause:l.cause});return l.value}catch(l){throw u(),l}})()},G=function(a,d){let t=Object.keys(a),o=d.name??`Parallel(${t.join(", ")})`,n=`scope_${Date.now()}_${Math.random().toString(36).slice(2,8)}`;return(async()=>{let u=performance.now(),l=!1;B.push({scopeId:n,type:"parallel"});let m=()=>{if(l)return;l=!0;let w=B.findIndex(T=>T.scopeId===n);w!==-1&&B.splice(w,1),c({type:"scope_end",workflowId:s,scopeId:n,ts:Date.now(),durationMs:performance.now()-u})};c({type:"scope_start",workflowId:s,scopeId:n,scopeType:"parallel",name:o,ts:Date.now()});try{let w=await new Promise(g=>{if(t.length===0){g([]);return}let v=!1,M=t.length,x=new Array(t.length);for(let I=0;I<t.length;I++){let C=t[I],b=I;Promise.resolve(a[C]()).catch(h=>D({type:"PROMISE_REJECTED",cause:h},{cause:{type:"PROMISE_REJECTION",reason:h}})).then(h=>{if(!v){if(!h.ok){v=!0,g([{key:C,result:h}]);return}x[b]={key:C,result:h},M--,M===0&&g(x)}})}});m();let T={};for(let{key:g,result:v}of w){if(!v.ok)throw i?.(v.error,g,S),U(v.error,{origin:"result",resultCause:v.cause});T[g]=v.value}return T}catch(w){throw m(),w}})()};var lr=j,pr=$,Er=G;let p=(a,d,t)=>(async()=>{if(typeof a!="string"||a.length===0)throw new Error('[awaitly] step() requires an explicit string ID as the first argument. Example: step("fetchUser", () => fetchUser(id))');let o=t??{},n=nr(o),u=a,l=o.key??a,m=o.key??a,{description:w,retry:T,timeout:g}=o,v=re(l),M=f,x=M?performance.now():0,C=Be(d)?()=>d:d,h={attempts:Math.max(1,T?.attempts??1),backoff:T?.backoff??Q.backoff,initialDelay:T?.initialDelay??Q.initialDelay,maxDelay:T?.maxDelay??Q.maxDelay,jitter:T?.jitter??Q.jitter,shouldRetry:T?.shouldRetry??Q.shouldRetry,onRetry:T?.onRetry??Q.onRetry};f&&c({type:"step_start",workflowId:s,stepId:v,stepKey:l,name:u,description:w,ts:Date.now(),...n&&{metadata:n}});let X;for(let P=1;P<=h.attempts;P++){let Ve=M?performance.now():0;try{let k;if(g?k=await ir(C,g,{name:u,key:l,attempt:P},O):k=await C(),k.ok){let z=performance.now()-x;return c({type:"step_success",workflowId:s,stepId:v,stepKey:l,name:u,description:w,ts:Date.now(),durationMs:z,...n&&{metadata:n}}),m&&c({type:"step_complete",workflowId:s,stepKey:m,name:u,description:w,ts:Date.now(),durationMs:z,result:k,...n&&{metadata:n}}),k.value}if(X=k,P<h.attempts&&h.shouldRetry(k.error,P)){let z=de(P,h);c({type:"step_retry",workflowId:s,stepId:v,stepKey:l,name:u,ts:Date.now(),attempt:P+1,maxAttempts:h.attempts,delayMs:z,error:k.error,...n&&{metadata:n},diagnostics:V(k.error,o.errorMeta,"result",P,performance.now()-x)}),h.onRetry(k.error,P,z),await me(z);continue}h.attempts>1&&c({type:"step_retries_exhausted",workflowId:s,stepId:v,stepKey:l,name:u,ts:Date.now(),durationMs:performance.now()-x,attempts:P,lastError:k.error,...n&&{metadata:n},diagnostics:V(k.error,o.errorMeta,"result",P,performance.now()-x)});break}catch(k){let z=performance.now()-Ve;if(ur(k)){let W=k.ms;c({type:"step_timeout",workflowId:s,stepId:v,stepKey:l,name:u,ts:Date.now(),timeoutMs:W,attempt:P,...n&&{metadata:n},diagnostics:V(k,o.errorMeta,"timeout",P)}),c({type:"step_success",workflowId:s,stepId:v,stepKey:l,name:u,description:w,ts:Date.now(),durationMs:performance.now()-x,...n&&{metadata:n}}),m&&c({type:"step_complete",workflowId:s,stepKey:m,name:u,description:w,ts:Date.now(),durationMs:performance.now()-x,result:L(void 0),...n&&{metadata:n}});return}if(J(k))throw c({type:"step_aborted",workflowId:s,stepId:v,stepKey:l,name:u,description:w,ts:Date.now(),durationMs:z,...n&&{metadata:n}}),k;if(_e(k)){let W=tr(k),He=g?.ms??W?.timeoutMs??0;if(c({type:"step_timeout",workflowId:s,stepId:v,stepKey:l,name:u,ts:Date.now(),timeoutMs:He,attempt:P,...n&&{metadata:n},diagnostics:V(k,o.errorMeta,"timeout",P)}),P<h.attempts&&h.shouldRetry(k,P)){let pe=de(P,h);c({type:"step_retry",workflowId:s,stepId:v,stepKey:l,name:u,ts:Date.now(),attempt:P+1,maxAttempts:h.attempts,delayMs:pe,error:k,...n&&{metadata:n},diagnostics:V(k,o.errorMeta,"timeout",P,performance.now()-x)}),h.onRetry(k,P,pe),await me(pe);continue}h.attempts>1&&c({type:"step_retries_exhausted",workflowId:s,stepId:v,stepKey:l,name:u,ts:Date.now(),durationMs:performance.now()-x,attempts:P,lastError:k,...n&&{metadata:n},diagnostics:V(k,o.errorMeta,"timeout",P,performance.now()-x)});let le=performance.now()-x;throw c({type:"step_error",workflowId:s,stepId:v,stepKey:l,name:u,description:w,ts:Date.now(),durationMs:le,error:k,...n&&{metadata:n},diagnostics:V(k,o.errorMeta,"timeout",P,le)}),m&&c({type:"step_complete",workflowId:s,stepKey:m,name:u,description:w,ts:Date.now(),durationMs:le,result:D(k,{cause:k}),meta:{origin:"throw",thrown:k},...n&&{metadata:n}}),i?.(k,u,S),U(k,{origin:"throw",thrown:k})}if(P<h.attempts&&h.shouldRetry(k,P)){let W=de(P,h);c({type:"step_retry",workflowId:s,stepId:v,stepKey:l,name:u,ts:Date.now(),attempt:P+1,maxAttempts:h.attempts,delayMs:W,error:k,...n&&{metadata:n},diagnostics:V(k,o.errorMeta,"throw",P,performance.now()-x)}),h.onRetry(k,P,W),await me(W);continue}h.attempts>1&&!_e(k)&&c({type:"step_retries_exhausted",workflowId:s,stepId:v,stepKey:l,name:u,ts:Date.now(),durationMs:performance.now()-x,attempts:P,lastError:k,...n&&{metadata:n},diagnostics:V(k,o.errorMeta,"throw",P,performance.now()-x)});let ce=performance.now()-x,ne;try{ne=N(k)}catch(W){throw Z(W)}throw c({type:"step_error",workflowId:s,stepId:v,stepKey:l,name:u,description:w,ts:Date.now(),durationMs:ce,error:ne,...n&&{metadata:n},diagnostics:V(k,o.errorMeta,"throw",P,ce)}),m&&c({type:"step_complete",workflowId:s,stepKey:m,name:u,description:w,ts:Date.now(),durationMs:ce,result:D(ne,{cause:k}),meta:{origin:"throw",thrown:k},...n&&{metadata:n}}),i?.(ne,u,S),U(ne,{origin:"throw",thrown:k})}}let Y=X,ue=performance.now()-x,ie=q(Y.error,{origin:"result",resultCause:Y.cause});throw c({type:"step_error",workflowId:s,stepId:v,stepKey:l,name:u,description:w,ts:Date.now(),durationMs:ue,error:ie,...n&&{metadata:n},diagnostics:V(Y.error,o.errorMeta,"result",h.attempts,ue)}),m&&c({type:"step_complete",workflowId:s,stepKey:m,name:u,description:w,ts:Date.now(),durationMs:ue,result:Y,meta:{origin:"result",resultCause:Y.cause},...n&&{metadata:n}}),i?.(ie,u,S),U(ie,{origin:"result",resultCause:Y.cause})})();p.try=(a,d,t)=>{if(typeof a!="string"||a.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 t?()=>t.error:t.onError;if(t.retry||t.timeout)return p.retry(a,async()=>{try{return L(await d())}catch(w){return D(o(w),{cause:w})}},{attempts:t.retry?.attempts??1,...t.retry??{},key:t.key,timeout:t.timeout});let n=t.key??a,u=a,l=a,m=f;return(async()=>{let w=m?performance.now():0;f&&c({type:"step_start",workflowId:s,stepId:l,stepKey:n,name:u,ts:Date.now()});try{let T=await d(),g=performance.now()-w;return c({type:"step_success",workflowId:s,stepId:l,stepKey:n,name:u,ts:Date.now(),durationMs:g}),n&&c({type:"step_complete",workflowId:s,stepKey:n,name:u,ts:Date.now(),durationMs:g,result:L(T)}),T}catch(T){let g=o(T),v=performance.now()-w,M=q(g,{origin:"throw",thrown:T});throw c({type:"step_error",workflowId:s,stepId:l,stepKey:n,name:u,ts:Date.now(),durationMs:v,error:M}),n&&c({type:"step_complete",workflowId:s,stepKey:n,name:u,ts:Date.now(),durationMs:v,result:D(g,{cause:T}),meta:{origin:"throw",thrown:T}}),i?.(M,u,S),U(M,{origin:"throw",thrown:T})}})()},p.fromResult=(a,d,t)=>{if(typeof a!="string"||a.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=t.key??a,n=a,u=a,l="error"in t?()=>t.error:t.onError,m=f;return(async()=>{let w=m?performance.now():0;f&&c({type:"step_start",workflowId:s,stepId:u,stepKey:o,name:n,ts:Date.now()});let T=await d();if(T.ok){let g=performance.now()-w;return c({type:"step_success",workflowId:s,stepId:u,stepKey:o,name:n,ts:Date.now(),durationMs:g}),o&&c({type:"step_complete",workflowId:s,stepKey:o,name:n,ts:Date.now(),durationMs:g,result:L(T.value)}),T.value}else{let g=l(T.error),v=performance.now()-w,M=q(g,{origin:"result",resultCause:T.error});throw c({type:"step_error",workflowId:s,stepId:u,stepKey:o,name:n,ts:Date.now(),durationMs:v,error:M}),o&&c({type:"step_complete",workflowId:s,stepKey:o,name:n,ts:Date.now(),durationMs:v,result:D(g,{cause:T.error}),meta:{origin:"result",resultCause:T.error}}),i?.(M,n,S),U(M,{origin:"result",resultCause:T.error})}})()},p.fromNullable=(a,d,t,o)=>{if(typeof a!="string"||a.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 p(a,async()=>{let n=await d();return n!=null?L(n):D(t())},o)},p.retry=(a,d,t)=>{if(typeof a!="string"||a.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 p(a,d,{key:t.key??a,retry:{attempts:t.attempts,backoff:t.backoff,initialDelay:t.initialDelay,maxDelay:t.maxDelay,jitter:t.jitter,shouldRetry:t.shouldRetry,onRetry:t.onRetry},timeout:t.timeout})},p.withTimeout=(a,d,t)=>{if(typeof a!="string"||a.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 p(a,d,{key:t.key??a,timeout:t})},p.sleep=(a,d,t)=>{if(typeof a!="string"||a.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 d=="string"?Ze(d):d;if(!o)throw new Error(`step.sleep: invalid duration '${d}'`);let n=o.millis,u=t?.signal;return p(a,async()=>{if(O?.aborted||u?.aborted){let l=new Error("Sleep aborted");throw l.name="AbortError",l}return new Promise((l,m)=>{let w={timeoutId:void 0},T=()=>{w.timeoutId&&clearTimeout(w.timeoutId);let g=new Error("Sleep aborted");g.name="AbortError",m(g)};O?.addEventListener("abort",T,{once:!0}),u?.addEventListener("abort",T,{once:!0}),w.timeoutId=setTimeout(()=>{O?.removeEventListener("abort",T),u?.removeEventListener("abort",T),l(L(void 0))},n)})},{key:t?.key??a,description:t?.description})},p.all=((...a)=>{if(typeof a[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 d=a[0],t=a[1];if(typeof t=="function")return $(d,t);if(t&&typeof t=="object"&&!Array.isArray(t)){let n=j(t);return G(n,{name:d})}throw new TypeError("step.all(name, ...): second argument must be a function (array form) or an object of operations (object form).")}),p.race=(a,d)=>{let t=`scope_${Date.now()}_${Math.random().toString(36).slice(2,8)}`;return(async()=>{let o=performance.now(),n=!1,u={scopeId:t,type:"race",winnerId:void 0};B.push(u);let l=()=>{if(n)return;n=!0;let m=B.findIndex(w=>w.scopeId===t);m!==-1&&B.splice(m,1),c({type:"scope_end",workflowId:s,scopeId:t,ts:Date.now(),durationMs:performance.now()-o,winnerId:u.winnerId})};c({type:"scope_start",workflowId:s,scopeId:t,scopeType:"race",name:a,ts:Date.now()});try{let m=await d();if(l(),!m.ok)throw i?.(m.error,a,S),U(m.error,{origin:"result",resultCause:m.cause});return m.value}catch(m){throw l(),m}})()},p.if=(a,d,t)=>t(),p.label=p.if,p.branch=async(a,d)=>{let{condition:t,then:o,else:n}=d;if(t())return await o();if(n)return await n()},p.arm=(a,d)=>({fn:a,errors:d}),p.forEach=async(a,d,t)=>{let o=[],n=t.maxIterations,u=0,l="run"in t,m=Symbol.asyncIterator in d?d:(async function*(){yield*d})();for await(let w of m){if(n!==void 0&&u>=n)break;let T;l?T=await t.run(w,u):T=await t.item.handler(w,u,p),o.push(T),u++}return o},p.item=a=>({__forEachItemHandler:!0,handler:a}),p.dep=(a,d)=>d,p.workflow=(a,d,t)=>p(a,d,t),p.map=async(a,d,t,o)=>{let n=o?.concurrency??d.length;return p(a,()=>n>=d.length?Me(d.map((u,l)=>t(u,l))):(async()=>{let u=[];for(let l=0;l<d.length;l+=n){let m=d.slice(l,l+n),w=await Me(m.map((T,g)=>t(T,l+g)));if(!w.ok)return w;u.push(...w.value)}return L(u)})(),{key:o?.key})},p.withFallback=(a,d,t)=>{if(typeof a!="string"||a.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=t.key??a,n=a,u=re(o),l=f;return(async()=>{let m=l?performance.now():0;f&&c({type:"step_start",workflowId:s,stepId:u,stepKey:o,name:n,ts:Date.now()});let w;try{w=await d()}catch(x){if(J(x))throw c({type:"step_aborted",workflowId:s,stepId:u,stepKey:o,name:n,ts:Date.now(),durationMs:performance.now()-m}),x;let I;try{I=N(x)}catch(b){throw Z(b)}if(t.on!==void 0&&t.on!==I){let b=performance.now()-m;throw c({type:"step_error",workflowId:s,stepId:u,stepKey:o,name:n,ts:Date.now(),durationMs:b,error:I}),o&&c({type:"step_complete",workflowId:s,stepKey:o,name:n,ts:Date.now(),durationMs:b,result:D(I,{cause:x}),meta:{origin:"throw",thrown:x}}),i?.(I,n,S),U(I,{origin:"throw",thrown:x})}let C;try{C=await t.fallback()}catch(b){if(J(b))throw c({type:"step_aborted",workflowId:s,stepId:u,stepKey:o,name:n,ts:Date.now(),durationMs:performance.now()-m}),b;let h;try{h=N(b)}catch(Y){throw Z(Y)}let X=performance.now()-m;throw c({type:"step_error",workflowId:s,stepId:u,stepKey:o,name:n,ts:Date.now(),durationMs:X,error:h}),o&&c({type:"step_complete",workflowId:s,stepKey:o,name:n,ts:Date.now(),durationMs:X,result:D(h,{cause:b}),meta:{origin:"throw",thrown:b}}),i?.(h,n,S),U(h,{origin:"throw",thrown:b})}if(C.ok){let b=performance.now()-m;return c({type:"step_success",workflowId:s,stepId:u,stepKey:o,name:n,ts:Date.now(),durationMs:b}),o&&c({type:"step_complete",workflowId:s,stepKey:o,name:n,ts:Date.now(),durationMs:b,result:C,meta:{origin:"fallback",fallbackUsed:!0,fallbackReason:String(I)}}),C.value}else{let b=performance.now()-m,h=q(C.error,{origin:"result",resultCause:C.cause});throw c({type:"step_error",workflowId:s,stepId:u,stepKey:o,name:n,ts:Date.now(),durationMs:b,error:h}),o&&c({type:"step_complete",workflowId:s,stepKey:o,name:n,ts:Date.now(),durationMs:b,result:C,meta:{origin:"result",resultCause:C.cause}}),i?.(h,n,S),U(h,{origin:"result",resultCause:C.cause})}}if(w.ok){let x=performance.now()-m;return c({type:"step_success",workflowId:s,stepId:u,stepKey:o,name:n,ts:Date.now(),durationMs:x}),o&&c({type:"step_complete",workflowId:s,stepKey:o,name:n,ts:Date.now(),durationMs:x,result:w}),w.value}let T=w.error;if(t.on!==void 0&&t.on!==T){let x=performance.now()-m,I=q(T,{origin:"result",resultCause:w.cause});throw c({type:"step_error",workflowId:s,stepId:u,stepKey:o,name:n,ts:Date.now(),durationMs:x,error:I}),o&&c({type:"step_complete",workflowId:s,stepKey:o,name:n,ts:Date.now(),durationMs:x,result:w,meta:{origin:"result",resultCause:w.cause}}),i?.(I,n,S),U(I,{origin:"result",resultCause:w.cause})}let g;try{g=await t.fallback()}catch(x){if(J(x))throw c({type:"step_aborted",workflowId:s,stepId:u,stepKey:o,name:n,ts:Date.now(),durationMs:performance.now()-m}),x;let I;try{I=N(x)}catch(b){throw Z(b)}let C=performance.now()-m;throw c({type:"step_error",workflowId:s,stepId:u,stepKey:o,name:n,ts:Date.now(),durationMs:C,error:I}),o&&c({type:"step_complete",workflowId:s,stepKey:o,name:n,ts:Date.now(),durationMs:C,result:D(I,{cause:x}),meta:{origin:"throw",thrown:x}}),i?.(I,n,S),U(I,{origin:"throw",thrown:x})}if(g.ok){let x=performance.now()-m;return c({type:"step_success",workflowId:s,stepId:u,stepKey:o,name:n,ts:Date.now(),durationMs:x}),o&&c({type:"step_complete",workflowId:s,stepKey:o,name:n,ts:Date.now(),durationMs:x,result:g,meta:{origin:"fallback",fallbackUsed:!0,fallbackReason:String(T)}}),g.value}let v=performance.now()-m,M=q(g.error,{origin:"result",resultCause:g.cause});throw c({type:"step_error",workflowId:s,stepId:u,stepKey:o,name:n,ts:Date.now(),durationMs:v,error:M}),o&&c({type:"step_complete",workflowId:s,stepKey:o,name:n,ts:Date.now(),durationMs:v,result:g,meta:{origin:"result",resultCause:g.cause}}),i?.(M,n,S),U(M,{origin:"result",resultCause:g.cause})})()},p.withResource=(a,d)=>{if(typeof a!="string"||a.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 t=a,o=a,n=re(t),u=f;return(async()=>{let l=u?performance.now():0;f&&c({type:"step_start",workflowId:s,stepId:n,stepKey:t,name:o,ts:Date.now()});let m;try{m=await d.acquire()}catch(C){if(J(C))throw c({type:"step_aborted",workflowId:s,stepId:n,stepKey:t,name:o,ts:Date.now(),durationMs:performance.now()-l}),C;let b;try{b=N(C)}catch(X){throw Z(X)}let h=performance.now()-l;throw c({type:"step_error",workflowId:s,stepId:n,stepKey:t,name:o,ts:Date.now(),durationMs:h,error:b}),t&&c({type:"step_complete",workflowId:s,stepKey:t,name:o,ts:Date.now(),durationMs:h,result:D(b,{cause:C}),meta:{origin:"throw",thrown:C}}),i?.(b,o,S),U(b,{origin:"throw",thrown:C})}if(!m.ok){let C=performance.now()-l,b=q(m.error,{origin:"result",resultCause:m.cause});throw c({type:"step_error",workflowId:s,stepId:n,stepKey:t,name:o,ts:Date.now(),durationMs:C,error:b}),t&&c({type:"step_complete",workflowId:s,stepKey:t,name:o,ts:Date.now(),durationMs:C,result:m,meta:{origin:"result",resultCause:m.cause}}),i?.(b,o,S),U(b,{origin:"result",resultCause:m.cause})}let w=m.value,T,g,v=!1;try{T=await d.use(w)}catch(C){if(J(C)){try{await d.release(w)}catch(b){console.warn(`[awaitly] step.withResource("${a}"): release threw after earlyExit:`,b)}throw C}g=C,v=!0}try{await d.release(w)}catch(C){console.warn(`[awaitly] step.withResource("${a}"): release threw:`,C)}if(v){let C;try{C=N(g)}catch(h){throw Z(h)}let b=performance.now()-l;throw c({type:"step_error",workflowId:s,stepId:n,stepKey:t,name:o,ts:Date.now(),durationMs:b,error:C}),t&&c({type:"step_complete",workflowId:s,stepKey:t,name:o,ts:Date.now(),durationMs:b,result:D(C,{cause:g}),meta:{origin:"throw",thrown:g}}),i?.(C,o,S),U(C,{origin:"throw",thrown:g})}let M=T;if(M.ok){let C=performance.now()-l;return c({type:"step_success",workflowId:s,stepId:n,stepKey:t,name:o,ts:Date.now(),durationMs:C}),t&&c({type:"step_complete",workflowId:s,stepKey:t,name:o,ts:Date.now(),durationMs:C,result:M}),M.value}let x=performance.now()-l,I=q(M.error,{origin:"result",resultCause:M.cause});throw c({type:"step_error",workflowId:s,stepId:n,stepKey:t,name:o,ts:Date.now(),durationMs:x,error:I}),t&&c({type:"step_complete",workflowId:s,stepKey:t,name:o,ts:Date.now(),durationMs:x,result:M,meta:{origin:"result",resultCause:M.cause}}),i?.(I,o,S),U(I,{origin:"result",resultCause:M.cause})})()};let H=await y({step:p});if(process.env.NODE_ENV!=="production"&&H!==null&&typeof H=="object"&&"ok"in H&&typeof H.ok=="boolean"){let a=H;(a.ok===!0&&"value"in a||a.ok===!1&&"error"in a)&&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 L(H)}catch(p){if(ar(p))throw p.thrown;if(J(p)){let $=p.meta.origin==="throw"?p.meta.thrown:p.meta.origin==="result"?p.meta.resultCause:void 0;return D(p.error,{cause:$})}let j=N(p);return i?.(j,"unexpected",S),D(j,{cause:p})}}we.strict=(e,r)=>we(e,r);async function Me(e){return e.length===0?L([]):new Promise(r=>{let E=!1,y=e.length,R=new Array(e.length);for(let i=0;i<e.length;i++){let f=i;Promise.resolve(e[f]).catch(A=>D({type:"PROMISE_REJECTED",cause:A},{cause:{type:"PROMISE_REJECTION",reason:A}})).then(A=>{if(!E){if(!A.ok){E=!0,r(A);return}R[f]=A.value,y--,y===0&&r(L(R))}})}})}function Ke(e){return typeof e=="object"&&e!==null&&e.type==="EVENT_TIMEOUT"}function Ne(e){return typeof e=="object"&&e!==null&&e.type==="INVALID_EMITTER"}function Fe(e,r){return new Promise(E=>{try{e((y,R)=>{if(y){let i=r?.onError?r.onError(y):y;E(D(i,{cause:y}))}else E(L(R))})}catch(y){let R=y instanceof Error?y:new Error(String(y)),i=r?.onError?r.onError(R):R;E(D(i,{cause:y}))}})}function ye(e){return typeof e=="object"&&e!==null&&"on"in e&&"off"in e&&typeof e.on=="function"&&typeof e.off=="function"}function fe(e){return typeof e=="object"&&e!==null&&"addEventListener"in e&&"removeEventListener"in e&&typeof e.addEventListener=="function"&&typeof e.removeEventListener=="function"}function je(e,r,E){return new Promise(y=>{let R,i=!1,f=ye(e)?(O,s)=>e.on(O,s):fe(e)?(O,s)=>e.addEventListener(O,s):null,A=ye(e)?(O,s)=>e.off(O,s):fe(e)?(O,s)=>e.removeEventListener(O,s):null;if(!f||!A){y(D({type:"INVALID_EMITTER",message:"Object does not have on/off or addEventListener/removeEventListener"}));return}let _=(...O)=>{i||(i=!0,S(),y(L(O[0])))},K=(...O)=>{if(i)return;i=!0,S();let s=O[0],N=E?.onError?E.onError(s):s;y(D(N,{cause:s}))},S=()=>{R&&clearTimeout(R),A(r.success,_),r.error&&A(r.error,K)};f(r.success,_),r.error&&f(r.error,K),r.timeout&&(R=setTimeout(()=>{if(i)return;i=!0,S();let O={type:"EVENT_TIMEOUT",event:r.success,timeoutMs:r.timeout};y(D(O))},r.timeout))})}function Le(e){return ye(e)||fe(e)}0&&(module.exports={fromCallback,fromEvent,isEventEmitterLike,isEventTimeoutError,isInvalidEmitterError});
|
|
7
|
-
//# sourceMappingURL=adapters.cjs.map
|