@voltro/workflow 0.71.0 → 0.72.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/CHANGELOG.md +435 -0
- package/THIRD-PARTY-NOTICES.md +29 -1
- package/dist/{cluster-BRSoL1tb.js → cluster-Doetj9Bb.js} +18 -18
- package/dist/cluster.d.ts +13 -13
- package/dist/cluster.js +1 -1
- package/dist/{clusterDiagnostics-jpkNVay6.js → clusterDiagnostics-Cwt-WFec.js} +39 -23
- package/dist/clusterTestSuite.js +3 -3
- package/dist/index.d.ts +64 -32
- package/dist/index.js +4 -4
- package/dist/{primitives-DsMsMr5S.js → primitives-bv2JHUfk.js} +64 -64
- package/dist/primitives.js +1 -1
- package/dist/{src-OEBqLBJl.js → src-BnF1JtbZ.js} +1105 -976
- package/package.json +4 -4
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import { Activity as e, Activity as t, DurableClock as n, DurableClock as r, DurableQueue as i, DurableQueue as a, DurableRateLimiter as o, DurableRateLimiter as s, Workflow as c, Workflow as l, WorkflowEngine as u } from "@effect/workflow";
|
|
2
|
-
import { Cause as d, Context as f, Cron as p, Duration as m, Effect as h, Either as g, Exit as
|
|
2
|
+
import { Cause as d, Context as f, Cron as p, Duration as m, Effect as h, Either as g, Exit as ee, FiberRef as _, Option as v, Schedule as y, Schema as b } from "effect";
|
|
3
3
|
import { attachWorkflowAccess as x, resolveWorkflowAccess as S } from "@voltro/protocol";
|
|
4
4
|
//#region src/preparedExecution.ts
|
|
5
|
-
var C = Symbol.for("@voltro/workflow/PreparedExecution"),
|
|
5
|
+
var C = Symbol.for("@voltro/workflow/PreparedExecution"), w = (e, t) => {
|
|
6
6
|
Object.defineProperty(e, C, {
|
|
7
7
|
value: t,
|
|
8
8
|
enumerable: !0
|
|
9
9
|
});
|
|
10
|
-
}, ne = (e, t, n, r) => h.suspend(() => {
|
|
10
|
+
}, te = (e) => typeof e == "object" && !!e && typeof e[C] == "function", ne = (e, t, n, r) => h.suspend(() => {
|
|
11
11
|
if (n.length === 0) return h.die(/* @__PURE__ */ Error("Prepared workflow execution requires a non-empty identity"));
|
|
12
12
|
let i = e[C];
|
|
13
13
|
return typeof i == "function" ? i(t, n, r?.discard ?? !0) : h.die(/* @__PURE__ */ Error("Workflow definition has no prepared-execution capability"));
|
|
@@ -16,11 +16,11 @@ var C = Symbol.for("@voltro/workflow/PreparedExecution"), te = (e, t) => {
|
|
|
16
16
|
"batch",
|
|
17
17
|
"throttle",
|
|
18
18
|
"concurrency"
|
|
19
|
-
],
|
|
19
|
+
], T = (e) => {
|
|
20
20
|
if (e === void 0) return [];
|
|
21
21
|
let t = [];
|
|
22
22
|
return e.debounce !== void 0 && t.push("debounce"), e.batch !== void 0 && t.push("batch"), e.throttle !== void 0 && t.push("throttle"), e.concurrency !== void 0 && t.push("concurrency"), t;
|
|
23
|
-
},
|
|
23
|
+
}, E = (e, t, n) => {
|
|
24
24
|
let r;
|
|
25
25
|
try {
|
|
26
26
|
r = m.toMillis(m.decode(e));
|
|
@@ -29,13 +29,13 @@ var C = Symbol.for("@voltro/workflow/PreparedExecution"), te = (e, t) => {
|
|
|
29
29
|
}
|
|
30
30
|
if (!Number.isFinite(r) || r <= 0) throw Error(`workflow '${n}': ${t} must be a positive finite duration, got ${String(e)}`);
|
|
31
31
|
return r;
|
|
32
|
-
},
|
|
32
|
+
}, D = (e, t, n) => {
|
|
33
33
|
if (!Number.isInteger(e) || e <= 0) throw Error(`workflow '${n}': ${t} must be a positive integer, got ${String(e)}`);
|
|
34
34
|
return e;
|
|
35
|
-
},
|
|
35
|
+
}, O = (e, t, n) => {
|
|
36
36
|
if (typeof e != "function") throw Error(`workflow '${n}': ${t} must be a function of the payload`);
|
|
37
37
|
return e;
|
|
38
|
-
},
|
|
38
|
+
}, oe = (e) => {
|
|
39
39
|
let t = e?.ast?.propertySignatures;
|
|
40
40
|
if (!Array.isArray(t)) return !1;
|
|
41
41
|
let n = t.find((e) => e.name === "items");
|
|
@@ -45,10 +45,10 @@ var C = Symbol.for("@voltro/workflow/PreparedExecution"), te = (e, t) => {
|
|
|
45
45
|
if (n === void 0) return;
|
|
46
46
|
let r = { workflowName: t };
|
|
47
47
|
if (n.debounce !== void 0) {
|
|
48
|
-
let e = n.debounce, i =
|
|
48
|
+
let e = n.debounce, i = E(e.period, "debounce.period", t), a = e.timeout === void 0 ? void 0 : E(e.timeout, "debounce.timeout", t);
|
|
49
49
|
if (a !== void 0 && a < i) throw Error(`workflow '${t}': debounce.timeout (${a}ms) is shorter than debounce.period (${i}ms), so the burst can never be collapsed — the run would be admitted before the quiet period could ever elapse. Raise the timeout or lower the period.`);
|
|
50
50
|
r.debounce = {
|
|
51
|
-
key:
|
|
51
|
+
key: O(e.key, "debounce.key", t),
|
|
52
52
|
periodMs: i,
|
|
53
53
|
...a === void 0 ? {} : { timeoutMs: a }
|
|
54
54
|
};
|
|
@@ -57,7 +57,7 @@ var C = Symbol.for("@voltro/workflow/PreparedExecution"), te = (e, t) => {
|
|
|
57
57
|
let e = n.singleton;
|
|
58
58
|
if (e.mode !== "skip" && e.mode !== "cancel") throw Error(`workflow '${t}': singleton.mode must be 'skip' or 'cancel'. There is no default — 'skip' discards the incoming request and 'cancel' discards the running one, and choosing for you would silently throw away work either way.`);
|
|
59
59
|
r.singleton = {
|
|
60
|
-
key:
|
|
60
|
+
key: O(e.key, "singleton.key", t),
|
|
61
61
|
mode: e.mode
|
|
62
62
|
};
|
|
63
63
|
}
|
|
@@ -65,34 +65,34 @@ var C = Symbol.for("@voltro/workflow/PreparedExecution"), te = (e, t) => {
|
|
|
65
65
|
let e = n.concurrency;
|
|
66
66
|
if (e.pool !== void 0 && (typeof e.pool != "string" || e.pool.trim() === "")) throw Error(`workflow '${t}': concurrency.pool must be a non-empty name — it is the identity other workflows declare to share this budget, and an empty one would silently merge every empty-named pool in the deployment into one.`);
|
|
67
67
|
r.concurrency = {
|
|
68
|
-
limit:
|
|
69
|
-
...e.key === void 0 ? {} : { key:
|
|
68
|
+
limit: D(e.limit, "concurrency.limit", t),
|
|
69
|
+
...e.key === void 0 ? {} : { key: O(e.key, "concurrency.key", t) },
|
|
70
70
|
...e.pool === void 0 ? {} : { pool: e.pool.trim() }
|
|
71
71
|
};
|
|
72
72
|
}
|
|
73
73
|
if (n.throttle !== void 0) {
|
|
74
74
|
let e = n.throttle;
|
|
75
75
|
r.throttle = {
|
|
76
|
-
limit:
|
|
77
|
-
periodMs:
|
|
78
|
-
...e.key === void 0 ? {} : { key:
|
|
76
|
+
limit: D(e.limit, "throttle.limit", t),
|
|
77
|
+
periodMs: E(e.period, "throttle.period", t),
|
|
78
|
+
...e.key === void 0 ? {} : { key: O(e.key, "throttle.key", t) }
|
|
79
79
|
};
|
|
80
80
|
}
|
|
81
81
|
if (n.rateLimit !== void 0) {
|
|
82
82
|
let e = n.rateLimit;
|
|
83
83
|
r.rateLimit = {
|
|
84
|
-
limit:
|
|
85
|
-
periodMs:
|
|
86
|
-
...e.key === void 0 ? {} : { key:
|
|
84
|
+
limit: D(e.limit, "rateLimit.limit", t),
|
|
85
|
+
periodMs: E(e.period, "rateLimit.period", t),
|
|
86
|
+
...e.key === void 0 ? {} : { key: O(e.key, "rateLimit.key", t) }
|
|
87
87
|
};
|
|
88
88
|
}
|
|
89
89
|
if (n.batch !== void 0) {
|
|
90
90
|
let i = n.batch;
|
|
91
|
-
if (e.payloadSchema !== void 0 && !
|
|
91
|
+
if (e.payloadSchema !== void 0 && !oe(e.payloadSchema)) throw Error(`workflow '${t}': batch is declared, so the workflow's own \`payload\` must be the BATCH shape — \`Schema.Struct({ items: Schema.Array(Item) })\` — while callers start it with a SINGLE item. Declare the item's schema as \`batch.item\`. Checked here rather than at admission because a decode failure on the batching replica is a failure nobody is watching.`);
|
|
92
92
|
r.batch = {
|
|
93
|
-
...i.key === void 0 ? {} : { key:
|
|
94
|
-
maxSize:
|
|
95
|
-
timeoutMs:
|
|
93
|
+
...i.key === void 0 ? {} : { key: O(i.key, "batch.key", t) },
|
|
94
|
+
maxSize: D(i.maxSize, "batch.maxSize", t),
|
|
95
|
+
timeoutMs: E(i.timeout, "batch.timeout", t),
|
|
96
96
|
...i.item === void 0 ? {} : { item: i.item }
|
|
97
97
|
};
|
|
98
98
|
}
|
|
@@ -101,7 +101,7 @@ var C = Symbol.for("@voltro/workflow/PreparedExecution"), te = (e, t) => {
|
|
|
101
101
|
r.priority = n.priority;
|
|
102
102
|
}
|
|
103
103
|
if (n.timeouts !== void 0) {
|
|
104
|
-
let e = n.timeouts, i = e.start === void 0 ? void 0 :
|
|
104
|
+
let e = n.timeouts, i = e.start === void 0 ? void 0 : E(e.start, "timeouts.start", t), a = e.finish === void 0 ? void 0 : E(e.finish, "timeouts.finish", t);
|
|
105
105
|
(i !== void 0 || a !== void 0) && (r.timeouts = {
|
|
106
106
|
...i === void 0 ? {} : { startMs: i },
|
|
107
107
|
...a === void 0 ? {} : { finishMs: a }
|
|
@@ -121,7 +121,7 @@ var C = Symbol.for("@voltro/workflow/PreparedExecution"), te = (e, t) => {
|
|
|
121
121
|
if (typeof e?.event != "string" || e.event.length === 0) throw Error(`workflow '${t}': ${r}.event must be a non-empty event name, exactly as ctx.events.publish writes it.`);
|
|
122
122
|
if (e.schema === void 0 || typeof e.schema.ast != "object") throw Error(`workflow '${t}': ${r}.schema must be a Schema for the event payload. It is decoded before \`match\` runs, so the predicate reads the domain type rather than raw JSON.`);
|
|
123
123
|
if (typeof e.match != "function") throw Error(`workflow '${t}': ${r}.match is required. Omitting it would mean "cancel every live run of this workflow whenever '${e.event}' is published" — write \`match: () => true\` if that is what you mean, so it is visible in review.`);
|
|
124
|
-
let i = e.within === void 0 ? void 0 :
|
|
124
|
+
let i = e.within === void 0 ? void 0 : E(e.within, `${r}.within`, t);
|
|
125
125
|
return {
|
|
126
126
|
event: e.event,
|
|
127
127
|
schema: e.schema,
|
|
@@ -132,9 +132,9 @@ var C = Symbol.for("@voltro/workflow/PreparedExecution"), te = (e, t) => {
|
|
|
132
132
|
});
|
|
133
133
|
e.length > 0 && (r.cancelOn = e);
|
|
134
134
|
}
|
|
135
|
-
if (r.timeouts?.startMs !== void 0 &&
|
|
135
|
+
if (r.timeouts?.startMs !== void 0 && T(r).length === 0) throw Error(`workflow '${t}': timeouts.start bounds how long a run may sit in the ADMISSION queue, but this workflow declares no control that can defer one (debounce, batch, throttle, concurrency). It would never fire. Use timeouts.finish to bound the run itself.`);
|
|
136
136
|
return r;
|
|
137
|
-
},
|
|
137
|
+
}, se = (e) => {
|
|
138
138
|
let t = /* @__PURE__ */ new Map();
|
|
139
139
|
for (let n of e) {
|
|
140
140
|
let e = n?.concurrency;
|
|
@@ -147,7 +147,7 @@ var C = Symbol.for("@voltro/workflow/PreparedExecution"), te = (e, t) => {
|
|
|
147
147
|
else if (r.limit !== e.limit) throw Error(`concurrency pool '${e.pool}': '${n.workflowName}' declares limit ${e.limit}, but ${r.workflows.map((e) => `'${e}'`).join(", ")} declare${r.workflows.length === 1 ? "s" : ""} limit ${r.limit}. A pool is ONE budget — every member must declare the same number, or the enforced limit would depend on which workflow's start arrived first. Align the limits, or give the workflows different pool names if they were never meant to share.`);
|
|
148
148
|
else r.workflows.push(n.workflowName);
|
|
149
149
|
}
|
|
150
|
-
}, A = class extends f.Tag("@voltro/WorkflowRunRecorder")() {}, j =
|
|
150
|
+
}, A = class extends f.Tag("@voltro/WorkflowRunRecorder")() {}, j = _.unsafeMake(void 0), M = _.unsafeMake(void 0), ce = _.unsafeMake(void 0), N = _.unsafeMake(void 0), P = _.unsafeMake([]), le = () => _.get(j), ue = () => _.get(M), F = class extends f.Tag("@voltro/WorkflowStepInterceptor")() {}, I = 864e5, L = /* @__PURE__ */ new Set([
|
|
151
151
|
"skip",
|
|
152
152
|
"buffer",
|
|
153
153
|
"cancelOther"
|
|
@@ -215,7 +215,7 @@ var C = Symbol.for("@voltro/workflow/PreparedExecution"), te = (e, t) => {
|
|
|
215
215
|
return e;
|
|
216
216
|
}
|
|
217
217
|
};
|
|
218
|
-
}, W =
|
|
218
|
+
}, W = _.unsafeMake(void 0), G = (e) => ({
|
|
219
219
|
kind: e.kind,
|
|
220
220
|
stepName: e.stepName,
|
|
221
221
|
recorded: e.recorded,
|
|
@@ -223,7 +223,7 @@ var C = Symbol.for("@voltro/workflow/PreparedExecution"), te = (e, t) => {
|
|
|
223
223
|
detail: e.detail
|
|
224
224
|
}), K = (e) => h.gen(function* () {
|
|
225
225
|
if (e.length === 0) return;
|
|
226
|
-
let t = yield*
|
|
226
|
+
let t = yield* _.get(j), n = yield* h.serviceOption(A);
|
|
227
227
|
if (t === void 0 || n._tag !== "Some") return;
|
|
228
228
|
let r = n.value;
|
|
229
229
|
for (let n of e) yield* h.promise(() => r.recordEvent({
|
|
@@ -231,23 +231,23 @@ var C = Symbol.for("@voltro/workflow/PreparedExecution"), te = (e, t) => {
|
|
|
231
231
|
eventType: "nondeterminism-suspected",
|
|
232
232
|
payload: G(n)
|
|
233
233
|
}).then(() => void 0).catch(() => void 0));
|
|
234
|
-
}),
|
|
234
|
+
}), de = (e) => {
|
|
235
235
|
if (typeof e != "object" || !e) return;
|
|
236
236
|
let t = e.retryAfterMillis;
|
|
237
237
|
if (typeof t == "number" && Number.isFinite(t) && t >= 0) return m.millis(t);
|
|
238
238
|
let n = e.retryAfter;
|
|
239
239
|
if (typeof n == "number" && Number.isFinite(n) && n >= 0) return m.seconds(n);
|
|
240
|
-
}, q = (e) => m.decode(e),
|
|
240
|
+
}, q = (e) => m.decode(e), fe = (e) => typeof e == "object" && e && "_tag" in e ? String(e._tag) : void 0, pe = (e) => e !== void 0 && (e.maxAttempts ?? 3) > 1, me = (e) => {
|
|
241
241
|
if (e.retryable) return e.retryable;
|
|
242
242
|
if (e.retryableErrors && e.retryableErrors.length > 0) {
|
|
243
243
|
let t = new Set(e.retryableErrors);
|
|
244
244
|
return (e) => {
|
|
245
|
-
let n =
|
|
245
|
+
let n = fe(e);
|
|
246
246
|
return n !== void 0 && t.has(n);
|
|
247
247
|
};
|
|
248
248
|
}
|
|
249
249
|
return () => !0;
|
|
250
|
-
},
|
|
250
|
+
}, he = (e) => {
|
|
251
251
|
let t = e.baseDelay ?? "200 millis", n = e.strategy ?? "exponential", r = e.maxAttempts ?? 3, i = n === "linear" ? y.linear(q(e.step ?? t)) : n === "fixed" ? y.spaced(q(t)) : y.exponential(q(t), e.factor ?? 2);
|
|
252
252
|
if (e.maxDelay !== void 0) {
|
|
253
253
|
let t = q(e.maxDelay);
|
|
@@ -256,40 +256,40 @@ var C = Symbol.for("@voltro/workflow/PreparedExecution"), te = (e, t) => {
|
|
|
256
256
|
(e.jitter ?? !0) === !0 && (i = y.jittered(i));
|
|
257
257
|
let a = y.intersect(i, y.recurs(Math.max(0, r - 1)));
|
|
258
258
|
return e.maxElapsed !== void 0 && (a = y.upTo(q(e.maxElapsed))(a)), a;
|
|
259
|
-
},
|
|
259
|
+
}, ge = (e, t) => {
|
|
260
260
|
let n = m.toMillis(q(e.baseDelay ?? "200 millis")), r = e.strategy ?? "exponential", i = r === "fixed" ? n : r === "linear" ? n + m.toMillis(q(e.step ?? e.baseDelay ?? "200 millis")) * (t - 1) : n * (e.factor ?? 2) ** (t - 1);
|
|
261
261
|
return e.maxDelay !== void 0 && (i = Math.min(i, m.toMillis(q(e.maxDelay)))), (e.jitter ?? !0) === !0 && (i *= Math.random()), i;
|
|
262
|
-
},
|
|
262
|
+
}, _e = (e, t, n, r) => h.gen(function* () {
|
|
263
263
|
let i = t.maxAttempts ?? 3, a = t.maxElapsed === void 0 ? Infinity : m.toMillis(q(t.maxElapsed)), o = yield* h.sync(() => Date.now()), s = 0;
|
|
264
264
|
for (;;) {
|
|
265
265
|
let c = yield* h.exit(e);
|
|
266
|
-
if (
|
|
267
|
-
let l = c.cause, u = d.failureOption(l), f =
|
|
266
|
+
if (ee.isSuccess(c)) return c.value;
|
|
267
|
+
let l = c.cause, u = d.failureOption(l), f = v.isSome(u) ? u.value : d.squash(l);
|
|
268
268
|
s += 1;
|
|
269
269
|
let p = (yield* h.sync(() => Date.now())) - o;
|
|
270
270
|
if (s >= i || !n(f) || p >= a) return yield* h.failCause(l);
|
|
271
271
|
r?.(f);
|
|
272
|
-
let g =
|
|
273
|
-
yield* h.sleep(m.millis(
|
|
272
|
+
let g = de(f), _ = g === void 0 ? ge(t, s) : m.toMillis(g);
|
|
273
|
+
yield* h.sleep(m.millis(_));
|
|
274
274
|
}
|
|
275
|
-
}),
|
|
276
|
-
if (!
|
|
277
|
-
let r =
|
|
278
|
-
if (t.respectRetryAfter === !0) return
|
|
279
|
-
let i =
|
|
275
|
+
}), ve = (e, t, n) => {
|
|
276
|
+
if (!pe(t)) return e;
|
|
277
|
+
let r = me(t);
|
|
278
|
+
if (t.respectRetryAfter === !0) return _e(e, t, r, n);
|
|
279
|
+
let i = he(t), a = n ? h.tapError(e, (e) => h.sync(() => {
|
|
280
280
|
r(e) && n(e);
|
|
281
281
|
})) : e;
|
|
282
282
|
return h.retry(a, {
|
|
283
283
|
schedule: i,
|
|
284
284
|
while: r
|
|
285
285
|
});
|
|
286
|
-
}, J = Symbol.for("voltro.workflow.workerLayer"), Y = Symbol.for("voltro.workflow.version"), X = "__voltroWorkflowMessages", Z = "__voltroWorkflowFlowControl",
|
|
286
|
+
}, J = Symbol.for("voltro.workflow.workerLayer"), Y = Symbol.for("voltro.workflow.version"), X = "__voltroWorkflowMessages", Z = "__voltroWorkflowFlowControl", ye = (e) => typeof e == "object" && !!e && e[J] === !0, be = (e) => typeof e == "object" && e && e[Y] !== void 0 ? e[Y] : {
|
|
287
287
|
version: "1",
|
|
288
288
|
compatibleWith: ["1"],
|
|
289
289
|
patches: []
|
|
290
|
-
},
|
|
290
|
+
}, xe = ((e) => {
|
|
291
291
|
let t = c.make(e), n = e.suspendOnFailure === !0 ? t.annotate(c.SuspendOnFailure, !0) : t;
|
|
292
|
-
|
|
292
|
+
w(n, (t, r, i) => h.gen(function* () {
|
|
293
293
|
let a = n.payloadSchema.make(t), o = yield* u.WorkflowEngine;
|
|
294
294
|
return yield* h.annotateCurrentSpan({ executionId: r }), yield* o.execute(n, {
|
|
295
295
|
executionId: r,
|
|
@@ -327,17 +327,17 @@ var C = Symbol.for("@voltro/workflow/PreparedExecution"), te = (e, t) => {
|
|
|
327
327
|
value: s,
|
|
328
328
|
enumerable: !1
|
|
329
329
|
}), n;
|
|
330
|
-
}),
|
|
330
|
+
}), Se = (e) => {
|
|
331
331
|
if (typeof e != "object" || !e) return;
|
|
332
332
|
let t = e[Z];
|
|
333
333
|
return t === void 0 ? void 0 : t;
|
|
334
|
-
},
|
|
334
|
+
}, Ce = i.make, we = i.process, Te = ((...e) => {
|
|
335
335
|
let t = i.worker(...e);
|
|
336
336
|
return Object.defineProperty(t, J, {
|
|
337
337
|
value: !0,
|
|
338
338
|
enumerable: !1
|
|
339
339
|
}), t;
|
|
340
|
-
}),
|
|
340
|
+
}), Ee = o.rateLimit, Q = (e) => h.gen(function* () {
|
|
341
341
|
let t = yield* j, r = yield* h.serviceOption(A), i = m.toMillis(m.decode(e.duration));
|
|
342
342
|
if (t !== void 0 && r._tag === "Some") {
|
|
343
343
|
let a = r.value, o = new Date(Date.now() + i).toISOString(), s = yield* N;
|
|
@@ -364,17 +364,17 @@ var C = Symbol.for("@voltro/workflow/PreparedExecution"), te = (e, t) => {
|
|
|
364
364
|
return;
|
|
365
365
|
}
|
|
366
366
|
yield* n.sleep(e);
|
|
367
|
-
}),
|
|
367
|
+
}), De = (t) => h.gen(function* () {
|
|
368
368
|
let n = (yield* e.make({
|
|
369
369
|
name: `sleepUntil:${t.name}`,
|
|
370
370
|
success: b.Number,
|
|
371
371
|
execute: h.sync(() => t.until instanceof Date ? t.until.getTime() : t.until)
|
|
372
372
|
})) - Date.now();
|
|
373
|
-
n <= 0 || (yield*
|
|
373
|
+
n <= 0 || (yield* Q({
|
|
374
374
|
name: t.name,
|
|
375
375
|
duration: `${n} millis`
|
|
376
376
|
}));
|
|
377
|
-
}),
|
|
377
|
+
}), $ = (t, n, r, i) => h.gen(function* () {
|
|
378
378
|
let a = yield* j, o = yield* e.CurrentAttempt, s = yield* h.serviceOption(A), c = yield* h.serviceOption(F), l = c._tag === "Some" ? c.value.interceptor(n, {
|
|
379
379
|
runId: a ?? "unrecorded",
|
|
380
380
|
stepName: t,
|
|
@@ -396,7 +396,7 @@ var C = Symbol.for("@voltro/workflow/PreparedExecution"), te = (e, t) => {
|
|
|
396
396
|
}
|
|
397
397
|
}
|
|
398
398
|
let p = Date.now();
|
|
399
|
-
return yield*
|
|
399
|
+
return yield* ve(l, i).pipe(h.tap((e) => u && f ? h.promise(async () => {
|
|
400
400
|
try {
|
|
401
401
|
await f.endStepSuccess({
|
|
402
402
|
stepRecordId: u,
|
|
@@ -420,23 +420,23 @@ var C = Symbol.for("@voltro/workflow/PreparedExecution"), te = (e, t) => {
|
|
|
420
420
|
});
|
|
421
421
|
} catch {}
|
|
422
422
|
}) : h.void));
|
|
423
|
-
}),
|
|
424
|
-
let t = yield*
|
|
423
|
+
}), Oe = (e) => h.gen(function* () {
|
|
424
|
+
let t = yield* _.get(W);
|
|
425
425
|
if (t === void 0) return;
|
|
426
426
|
let n = t.reach(e);
|
|
427
427
|
n !== void 0 && (yield* K([n]));
|
|
428
|
-
}),
|
|
428
|
+
}), ke = (e, t) => {
|
|
429
429
|
let n = e;
|
|
430
430
|
return {
|
|
431
431
|
...e,
|
|
432
|
-
commit: () => h.zipRight(
|
|
432
|
+
commit: () => h.zipRight(Oe(t), n)
|
|
433
433
|
};
|
|
434
|
-
},
|
|
434
|
+
}, Ae = (t) => {
|
|
435
435
|
let { input: n, retry: r, ...i } = t;
|
|
436
|
-
return
|
|
436
|
+
return ke(e.make({
|
|
437
437
|
...i,
|
|
438
|
-
execute:
|
|
438
|
+
execute: $(i.name, i.execute, n, r)
|
|
439
439
|
}), i.name);
|
|
440
|
-
},
|
|
440
|
+
}, je = (e) => h.map(_.get(P), (t) => t.includes(e)), Me = c.withCompensation, Ne = e.idempotencyKey;
|
|
441
441
|
//#endregion
|
|
442
|
-
export { H as A,
|
|
442
|
+
export { H as A, le as B, l as C, K as D, G as E, j as F, re as G, se as H, N as I, ne as J, k as K, A as L, M, ce as N, I as O, P, F as R, xe as S, U as T, T as U, ae as V, ie as W, te as Y, De as _, r as a, t as b, s as c, ye as d, je as f, Q as g, Ee as h, J as i, z as j, V as k, Se as l, Te as m, X as n, Ce as o, we as p, w as q, Y as r, a as s, Z as t, be as u, Ae as v, W as w, Me as x, Ne as y, ue as z };
|
package/dist/primitives.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { A as e, C as t, D as n, E as r, G as i, H as a, K as o, O as s, S as c, T as l, U as u, V as d, W as f, _ as p, a as m, b as h, c as g, d as _, f as v, g as y, h as b, i as x, j as S, k as C, l as w, m as T, n as E, o as D, p as O, r as k, s as A, t as j, u as M, v as N, w as P, x as F, y as I } from "./primitives-
|
|
1
|
+
import { A as e, C as t, D as n, E as r, G as i, H as a, K as o, O as s, S as c, T as l, U as u, V as d, W as f, _ as p, a as m, b as h, c as g, d as _, f as v, g as y, h as b, i as x, j as S, k as C, l as w, m as T, n as E, o as D, p as O, r as k, s as A, t as j, u as M, v as N, w as P, x as F, y as I } from "./primitives-bv2JHUfk.js";
|
|
2
2
|
export { P as CurrentWorkflowReplayShape, s as DEFAULT_WORKFLOW_SCHEDULE_MAX_RUNTIME_MS, d as DEFERRING_CONTROLS, j as WorkflowFlowControlProperty, E as WorkflowMessagesProperty, C as WorkflowScheduleProperty, k as WorkflowVersionTypeId, x as WorkflowWorkerLayerTypeId, a as assertConsistentPools, u as deferringControlsOf, m as durableClock, D as durableQueue, A as durableQueueModule, g as durableRateLimiterModule, w as getWorkflowFlowControl, e as getWorkflowSchedule, M as getWorkflowVersionMetadata, f as hasCancelOn, i as hasFlowControl, _ as isWorkflowWorkerLayer, l as makeReplayShapeTracker, r as nondeterminismEventPayload, v as patch, O as processQueue, T as queueWorker, b as rateLimit, n as reportNondeterminism, y as sleep, p as sleepUntil, N as step, I as stepIdempotencyKey, h as stepModule, o as validateFlowControl, S as validateWorkflowSchedule, F as withCompensation, c as workflow, t as workflowModule };
|