@voltro/workflow 0.83.1 → 0.85.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 +1191 -0
- package/THIRD-PARTY-NOTICES.md +1 -119
- package/dist/cluster-F_bhqVP7.js +679 -0
- package/dist/cluster.d.ts +304 -280
- package/dist/cluster.js +2 -2
- package/dist/clusterTestSuite.d.ts +11 -11
- package/dist/clusterTestSuite.js +256 -256
- package/dist/index.d.ts +443 -333
- package/dist/index.js +5 -5
- package/dist/journalEncryption-DTyhUzaS.js +154 -0
- package/dist/{primitives-Btjhjm8P.js → primitives-DX04WTWh.js} +223 -199
- package/dist/primitives.d.ts +56 -31
- package/dist/primitives.js +2 -2
- package/dist/{src-DP-lKqaG.js → src-C2NEyUM8.js} +1111 -1053
- package/dist/{clusterDiagnostics-CGUtnJkX.js → workflowReadSelections-CZAUjP7f.js} +58 -46
- package/package.json +6 -9
- package/dist/cluster--WvQZFwk.js +0 -637
- package/dist/journalEncryption--n5VDdYO.js +0 -148
package/dist/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { D as
|
|
3
|
-
import { $ as
|
|
4
|
-
import { $ as
|
|
5
|
-
export {
|
|
1
|
+
import { D as e, E as t, O as n, S as r, _ as i, c as a, g as o, h as s, l as c, m as l, n as u, o as d, r as f, v as p } from "./journalEncryption-DTyhUzaS.js";
|
|
2
|
+
import { A as m, B as h, C as g, D as _, E as v, F as y, G as b, H as x, I as S, J as C, K as w, M as T, O as E, P as D, R as O, S as k, T as A, U as j, V as M, W as N, X as P, Y as F, Z as I, _ as L, a as R, b as z, c as B, d as V, f as H, g as U, h as W, i as G, j as K, k as q, l as J, m as Y, n as X, o as Z, p as Q, q as $, r as ee, s as te, t as ne, u as re, v as ie, w as ae, x as oe, y as se, z as ce } from "./primitives-DX04WTWh.js";
|
|
3
|
+
import { $ as le, A as ue, B as de, C as fe, Ct as pe, D as me, Dt as he, E as ge, Et as _e, F as ve, G as ye, H as be, I as xe, J as Se, K as Ce, L as we, M as Te, N as Ee, O as De, Ot as Oe, P as ke, Q as Ae, R as je, S as Me, St as Ne, T as Pe, Tt as Fe, U as Ie, V as Le, W as Re, X as ze, Y as Be, Z as Ve, _ as He, _t as Ue, a as We, at as Ge, b as Ke, bt as qe, c as Je, ct as Ye, d as Xe, dt as Ze, et as Qe, f as $e, ft as et, g as tt, gt as nt, h as rt, ht as it, i as at, it as ot, j as st, k as ct, l as lt, lt as ut, m as dt, mt as ft, n as pt, nt as mt, o as ht, ot as gt, p as _t, pt as vt, q as yt, r as bt, rt as xt, s as St, st as Ct, t as wt, tt as Tt, u as Et, ut as Dt, v as Ot, vt as kt, w as At, wt as jt, x as Mt, xt as Nt, y as Pt, yt as Ft, z as It } from "./src-C2NEyUM8.js";
|
|
4
|
+
import { $ as Lt, At as Rt, B as zt, Bt, C as Vt, Ct as Ht, Dt as Ut, Et as Wt, F as Gt, G as Kt, Gt as qt, H as Jt, Ht as Yt, I as Xt, J as Zt, Jt as Qt, K as $t, Kt as en, L as tn, Lt as nn, M as rn, N as an, P as on, Pt as sn, Q as cn, S as ln, St as un, Ut as dn, V as fn, Vt as pn, W as mn, Wt as hn, X as gn, Y as _n, Yt as vn, Z as yn, _t as bn, a as xn, c as Sn, ct as Cn, dt as wn, et as Tn, f as En, ft as Dn, gt as On, i as kn, it as An, jt as jn, k as Mn, kt as Nn, m as Pn, nt as Fn, p as In, pt as Ln, q as Rn, qt as zn, r as Bn, st as Vn, tt as Hn, u as Un, ut as Wn, wt as Gn, x as Kn, yt as qn, z as Jn, zt as Yn } from "./workflowReadSelections-CZAUjP7f.js";
|
|
5
|
+
export { rn as ADMISSIONS_TABLE, On as ADMISSION_SUBMISSION_ID_PREFIX, $e as BUDGET_HOLDS_TABLE, _t as BudgetHoldExpired, yt as CANCEL_ON_WATERMARK, Bn as CLUSTER_REREAD_WINDOW_MS, kn as ClusterDiagnostics, T as CurrentWorkflowExecutionId, D as CurrentWorkflowPatches, ae as CurrentWorkflowReplayShape, y as CurrentWorkflowRunId, S as CurrentWorkflowStep, dt as DEFAULT_BUDGET_HOLD_TIMEOUT_MS, Se as DEFAULT_COLD_LOOKBACK_MS, It as DEFAULT_DRAIN_BATCH, Be as DEFAULT_EVENT_BATCH, an as DEFAULT_LEASE_MS, wt as DEFAULT_MAX_RUN_RECLAIMS, pt as DEFAULT_REPLAY_SHAPE_LIMIT, Ie as DEFAULT_STALL_AFTER_MS, Re as DEFAULT_STALL_EVENT_LOOKBACK, ye as DEFAULT_STALL_RUN_PAGE, ke as DEFAULT_SUSPEND_HINT_MS, E as DEFAULT_WORKFLOW_SCHEDULE_MAX_RUNTIME_MS, j as DEFERRING_CONTROLS, ze as EVENTS_TABLE, pn as FlowControlKeyError, on as PAUSES_TABLE, Gt as PENDING_TABLE, u as STEP_JOURNAL_BINDING, ue as SuspensionUnavailable, Ve as WATERMARKS_TABLE, f as WORKFLOW_JOURNAL_BINDING, st as WorkflowCannotPark, ne as WorkflowFlowControlProperty, X as WorkflowMessagesProperty, O as WorkflowRunRecorder, q as WorkflowScheduleProperty, Vn as WorkflowStartRequestConflictError, ce as WorkflowStepInterceptorTag, ee as WorkflowVersionTypeId, G as WorkflowWorkerLayerTypeId, rt as _voltroBudgetHoldsTable, it as _voltroWorkflowAdmissionLocksTable, nt as _voltroWorkflowAdmissionsTable, Ue as _voltroWorkflowControlRequestsTable, kt as _voltroWorkflowFailureReportsTable, Ft as _voltroWorkflowParentClosuresTable, qe as _voltroWorkflowPausesTable, Nt as _voltroWorkflowPendingTable, Fe as _voltroWorkflowRunEventsTable, _e as _voltroWorkflowRunStepsTable, he as _voltroWorkflowRunsTable, jt as _voltroWorkflowStartContextsTable, Ne as _voltroWorkflowStartReceiptsTable, pe as _voltroWorkflowSubmissionsTable, xt as _voltroWorkflowWatermarksTable, de as acceptAdmissionSubmission, Kn as acceptWorkflowControlInTransaction, bn as acknowledgeAdmissionSubmission, ot as admitStart, Xt as allIntents, N as assertConsistentPools, F as attachPreparedWorkflowExecution, Te as awaitEvent, Ee as awaitSignal, fe as awaitSignalSuspending, Xe as awaitUpdate, qn as beginAdmissionSubmissionDispatchInTransaction, ln as beginWorkflowControlDispatchInTransaction, Vt as bindWorkflowResumeJournalInTransaction, Cn as bindWorkflowStartReceipts, tt as budgetHoldGeneration, He as budgetHoldKey, Ot as budgetHoldSignalName, Ye as cancelQueuedWorkflowStartInTransaction, Ze as cancelSuspendedWorkflowRunInTransaction, Yt as comparePendingOrder, At as completeSuspendingSignal, et as completeWorkflowRunGenerationInTransaction, h as currentWorkflowStep, tn as deadLetterIntent, dn as decideAdmission, b as deferringControlsOf, Jn as deleteIntent, xn as describeStalledRun, zt as discardIntent, fn as discardIntentInTransaction, Le as drainTick, Jt as dueIntents, R as durableClock, Z as durableQueue, te as durableQueueModule, vt as enterWorkflowRunGenerationInTransaction, mn as evaluateAdmission, P as executePreparedWorkflow, n as failureMessage, M as getCurrentWorkflowExecutionId, x as getCurrentWorkflowRunId, B as getWorkflowFlowControl, d as getWorkflowJournalCipher, m as getWorkflowSchedule, J as getWorkflowVersionMetadata, sn as handoffWorkflowFailureInTransaction, w as hasCancelOn, $ as hasFlowControl, I as hasPreparedWorkflowExecution, Pt as heldBudgets, Oe as inMemoryWorkflowEngineLayer, Et as inspectWorkflow, re as isCarrier, hn as isFinishExpired, a as isSealedJournalValue, qt as isStartExpired, be as isUnacknowledgedSubmission, c as isWorkflowEncrypted, V as isWorkflowWorkerLayer, Ge as linkExecution, lt as makeInMemoryRecorder, A as makeReplayShapeTracker, bt as makeWorkflowRunRecorder, ge as makeWorkflowUpdateId, ve as maybeHintSuspendingSignal, un as newAdmissionSubmissionId, Tt as newestEventAt, en as nextSlotAt, v as nondeterminismEventPayload, at as normaliseWorkflowPatches, Ht as noteAdmissionSubmissionFailure, Kt as noteIntentAttempt, l as openErrorText, s as openEventPayload, o as openJournalValue, i as openPayloadFields, p as openWorkflowRow, $t as parkDelayedStart, H as patch, Rn as pauseWorkflow, Gn as pendingAdmissionSubmissions, Ke as pendingBudgetHolds, Zt as pendingSlotId, _n as pendingWindow, gn as persistDefer, mt as planCancellations, zn as pooledConcurrencyKey, Wt as prepareAdmissionSubmissionExecutionInTransaction, Q as processQueue, yn as pruneAdmissions, Y as queueWorker, Dt as queuedCancellationRequestsTable, W as rateLimit, cn as readAdmissionState, Ut as readAdmissionSubmission, Lt as readPausedWorkflows, ut as readQueuedWorkflowCancellationInTransaction, Ae as readWatermark, Mn as readWorkflowControlInTransaction, Yn as readWorkflowFailureRecord, Sn as readWorkflowRestartObservationInTransaction, Wn as readWorkflowStartReceipt, wn as readWorkflowStartRequest, nn as reconcileWorkflowFailureInTransaction, Tn as recordAdmission, Bt as recordWorkflowFailureInTransaction, Dn as recordWorkflowStartReceipt, Nn as rejectAdmissionSubmissionInTransaction, Mt as releaseBudgetHolds, Hn as releaseLease, _ as reportNondeterminism, Rt as reserveAdmissionSubmission, jn as reserveAdmissionSubmissionInTransaction, Un as reserveWorkflowRestartInTransaction, xe as resetSuspendHintsForTest, Qt as resolveAdmissionKeys, We as resolveRunGuardTuning, we as resolveSuspendHintMs, me as resolveWorkflowMessageRun, Ln as resolveWorkflowStartReceipt, Fn as resumeWorkflow, An as retryDeadLetterIntent, r as sealJournalValue, De as sendWorkflowSignal, ct as sendWorkflowUpdate, ht as serialiseWorkflowRowForWire, je as setSuspendSignalHintMs, t as setWorkflowJournalCipher, U as sleep, L as sleepUntil, ft as stageWorkflowParentClosureInTransaction, ie as step, se as stepIdempotencyKey, z as stepModule, Me as suspendForBudget, Pe as suspendingSignalDeferredName, le as sweepCancelOn, Ce as sweepStalledRuns, gt as takeAdmittedSubmissionInTransaction, Ct as takePendingAdmissionSubmission, St as truncateWorkflowValue, e as tryOpenJournalValue, C as validateFlowControl, K as validateWorkflowSchedule, vn as withAdmissionTransaction, oe as withCompensation, En as withdrawWorkflowRestartInTransaction, k as workflow, g as workflowModule, In as workflowRestartRequestsTable, Pn as workflowRestartWithdrawalsTable, Je as wrapWorkflowExecuteWithRunRecording, Qe as writeWatermark };
|
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
import { Activity as e } from "effect/workflow";
|
|
2
|
+
import { Cause as t, Context as n, Effect as r, Effectable as i, Schema as a, SchemaAST as o, SchemaGetter as s, SchemaIssue as c } from "effect";
|
|
3
|
+
//#region src/failureMessage.ts
|
|
4
|
+
var l = (e) => {
|
|
5
|
+
let t = e?.message;
|
|
6
|
+
if (typeof t == "string" && t.length > 0) return t;
|
|
7
|
+
if (typeof e == "object" && e && typeof e.toJSON == "function") {
|
|
8
|
+
let { _tag: t, ...n } = e.toJSON(), r = typeof t == "string" ? t : String(e);
|
|
9
|
+
return Object.keys(n).length === 0 ? r : `${r}: ${JSON.stringify(n)}`;
|
|
10
|
+
}
|
|
11
|
+
return String(e);
|
|
12
|
+
}, u = () => void 0, d = (e) => {
|
|
13
|
+
u = typeof e == "function" ? e : () => e;
|
|
14
|
+
}, f = () => u(), p = n.Reference("@voltro/workflow/CurrentWorkflowEncrypted", { defaultValue: () => !1 }), m = { column: "workflow-journal" }, h = /* @__PURE__ */ new Set(), g = (e) => {
|
|
15
|
+
h.add(e);
|
|
16
|
+
}, _ = /* @__PURE__ */ new Set(), v = (e) => {
|
|
17
|
+
_.add(e);
|
|
18
|
+
}, y = (e) => _.has(e), b = (e) => h.has(e), x = (e) => typeof e == "string" && (e.startsWith("enc:v1:") || e.startsWith("enc:v2:")), S = (e) => /* @__PURE__ */ Error(`${e}: the workflow is declared encrypted, but no field-encryption key is registered — set VOLTRO_FIELD_ENCRYPTION_KEY (\`voltro secret generate field-encryption\`). Nothing was written in plaintext instead.`), C = (e, t, n = m) => {
|
|
19
|
+
if (e == null) return e;
|
|
20
|
+
let r = u();
|
|
21
|
+
if (r === void 0) throw S(t);
|
|
22
|
+
return r.encrypt(JSON.stringify(e), n);
|
|
23
|
+
}, w = (e, t, n = m) => {
|
|
24
|
+
if (!x(e)) return e;
|
|
25
|
+
let r = u();
|
|
26
|
+
if (r === void 0) throw S(t);
|
|
27
|
+
return JSON.parse(r.decrypt(e, n));
|
|
28
|
+
}, T = (e) => o.isVoid(e) || o.isNever(e) || o.isUndefined(e), E = (e, t) => {
|
|
29
|
+
if (T(e.ast)) return e;
|
|
30
|
+
let n = (e, t) => {
|
|
31
|
+
try {
|
|
32
|
+
return r.succeed(t());
|
|
33
|
+
} catch (t) {
|
|
34
|
+
return r.fail(new c.InvalidValue({ message: t.message }, e));
|
|
35
|
+
}
|
|
36
|
+
};
|
|
37
|
+
return (e.ast.context?.isOptional === !0 ? a.optionalKey(a.Unknown) : a.Unknown).pipe(a.decodeTo(e, {
|
|
38
|
+
decode: s.transformEffect((e) => n(e, () => Array.isArray(e) ? e.map((e) => w(e, t)) : w(e, t))),
|
|
39
|
+
encode: s.transformEffect((e) => n(e, () => e === void 0 ? void 0 : C(e, t)))
|
|
40
|
+
}));
|
|
41
|
+
}, D = (e, t) => {
|
|
42
|
+
let n = a.isSchema(t) ? t.fields : t, r = `workflow '${e}' payload`, i = {};
|
|
43
|
+
for (let [e, t] of Object.entries(n)) i[e] = E(t, `${r}.${e}`);
|
|
44
|
+
return i;
|
|
45
|
+
}, O = (e) => typeof e == "object" && !!e && !Array.isArray(e), k = (e, t) => {
|
|
46
|
+
if (!O(e)) return w(e, t);
|
|
47
|
+
let n = {};
|
|
48
|
+
for (let [r, i] of Object.entries(e)) n[r] = w(i, `${t}.${r}`);
|
|
49
|
+
return n;
|
|
50
|
+
}, A = (e, t) => {
|
|
51
|
+
let n = {};
|
|
52
|
+
for (let [r, i] of Object.entries(e)) n[r] = C(i, `${t}.${r}`);
|
|
53
|
+
return n;
|
|
54
|
+
}, j = "VoltroSealedDefect", M = (e, t) => {
|
|
55
|
+
if (e instanceof Error && e.name === "VoltroSealedDefect") return e;
|
|
56
|
+
let n = e instanceof Error ? {
|
|
57
|
+
name: e.name,
|
|
58
|
+
message: e.message,
|
|
59
|
+
...e.stack === void 0 ? {} : { stack: e.stack }
|
|
60
|
+
} : {
|
|
61
|
+
name: "Defect",
|
|
62
|
+
message: typeof e == "string" ? e : P(e)
|
|
63
|
+
}, r = Error(String(C(n, t)));
|
|
64
|
+
return r.name = j, r.stack = `${j}: ${r.message}`, r;
|
|
65
|
+
}, N = (e, t) => {
|
|
66
|
+
let n = e?.name, r = e?.message;
|
|
67
|
+
if (n !== "VoltroSealedDefect" || typeof r != "string" || !x(r)) return e;
|
|
68
|
+
try {
|
|
69
|
+
let e = w(r, t), n = Error(e.message ?? "");
|
|
70
|
+
return n.name = e.name ?? "Error", e.stack !== void 0 && (n.stack = e.stack), n;
|
|
71
|
+
} catch {
|
|
72
|
+
return e;
|
|
73
|
+
}
|
|
74
|
+
}, P = (e) => {
|
|
75
|
+
try {
|
|
76
|
+
return JSON.stringify(e) ?? String(e);
|
|
77
|
+
} catch {
|
|
78
|
+
return String(e);
|
|
79
|
+
}
|
|
80
|
+
}, F = () => h.size > 0, I = (e, t) => t == null ? null : b(e) ? String(C(t, `workflow '${e}' error message`)) : t, L = (e, t) => {
|
|
81
|
+
try {
|
|
82
|
+
return w(e, t);
|
|
83
|
+
} catch {
|
|
84
|
+
return e;
|
|
85
|
+
}
|
|
86
|
+
}, R = (e) => {
|
|
87
|
+
if (e == null) return null;
|
|
88
|
+
let t = L(e, "workflow error message");
|
|
89
|
+
return typeof t == "string" ? t : e;
|
|
90
|
+
}, z = [
|
|
91
|
+
"value",
|
|
92
|
+
"result",
|
|
93
|
+
"errorMessage"
|
|
94
|
+
], B = (e, t) => {
|
|
95
|
+
if (t == null) return null;
|
|
96
|
+
if (!b(e)) return t;
|
|
97
|
+
let n = { ...t };
|
|
98
|
+
for (let t of z) t in n && n[t] !== void 0 && n[t] !== null && !x(n[t]) && (n[t] = C(n[t], `workflow '${e}' event ${t}`));
|
|
99
|
+
return n;
|
|
100
|
+
}, V = (e) => {
|
|
101
|
+
if (!O(e)) return e;
|
|
102
|
+
let t = { ...e };
|
|
103
|
+
for (let e of z) x(t[e]) && (t[e] = L(t[e], `workflow event ${e}`));
|
|
104
|
+
return t;
|
|
105
|
+
}, H = (t) => {
|
|
106
|
+
let n = e.make({
|
|
107
|
+
...t,
|
|
108
|
+
error: a.Defect()
|
|
109
|
+
}), o, s = `wait '${t.name}'`, c = () => o ??= e.make({
|
|
110
|
+
...t,
|
|
111
|
+
success: E(t.success, `${s} value`),
|
|
112
|
+
error: a.Defect(),
|
|
113
|
+
execute: t.execute.pipe(r.catchDefect((e) => r.die(M(e, `${s} defect`))))
|
|
114
|
+
}), l = n;
|
|
115
|
+
return {
|
|
116
|
+
...n,
|
|
117
|
+
...i.Prototype({
|
|
118
|
+
label: "Activity",
|
|
119
|
+
evaluate: () => r.flatMap(p, (e) => e ? c().pipe(r.catchDefect((e) => r.die(N(e, `${s} defect`)))) : l)
|
|
120
|
+
})
|
|
121
|
+
};
|
|
122
|
+
}, U = { column: "_voltro_workflow_run_steps:payload" }, W = (e) => {
|
|
123
|
+
if (!x(e)) return e;
|
|
124
|
+
try {
|
|
125
|
+
return w(e, "workflow step value", U);
|
|
126
|
+
} catch {
|
|
127
|
+
return e;
|
|
128
|
+
}
|
|
129
|
+
}, G = (e) => {
|
|
130
|
+
if (!O(e)) return e;
|
|
131
|
+
let t = { ...e };
|
|
132
|
+
if ("eventType" in t) return "payload" in t && (t.payload = V(t.payload)), t;
|
|
133
|
+
if ("stepName" in t && ("input" in t || "errorCause" in t)) {
|
|
134
|
+
for (let e of [
|
|
135
|
+
"input",
|
|
136
|
+
"output",
|
|
137
|
+
"errorCause",
|
|
138
|
+
"errorMessage"
|
|
139
|
+
]) e in t && (t[e] = W(t[e]));
|
|
140
|
+
return t;
|
|
141
|
+
}
|
|
142
|
+
if ("payload" in t) try {
|
|
143
|
+
t.payload = k(t.payload, "workflow run payload");
|
|
144
|
+
} catch {}
|
|
145
|
+
return "output" in t && (t.output = L(t.output, "workflow run result")), typeof t.errorMessage == "string" && (t.errorMessage = R(t.errorMessage)), t;
|
|
146
|
+
}, K = (e, n) => {
|
|
147
|
+
if (e === void 0 || !b(e)) {
|
|
148
|
+
let e = t.isCause(n) ? t.squash(n) : n;
|
|
149
|
+
return e instanceof Error && e.message.length > 0 ? `${e.name}: ${e.message}` : l(e);
|
|
150
|
+
}
|
|
151
|
+
return `${n instanceof Error ? n.name : typeof n}: [withheld — workflow '${e}' is declared encrypted; the full cause is recorded sealed on its row]`;
|
|
152
|
+
};
|
|
153
|
+
//#endregion
|
|
154
|
+
export { A as C, L as D, d as E, l as O, C as S, E as T, k as _, H as a, I as b, x as c, v as d, g as f, w as g, V as h, F as i, b as l, R as m, U as n, f as o, N as p, m as r, y as s, p as t, K as u, G as v, D as w, B as x, M as y };
|