@usehelical/workflows 0.0.1-alpha.18 → 0.0.1-alpha.19
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/README.md +1 -1
- package/dist/api.d.ts +2 -2
- package/dist/api.js +50 -7
- package/dist/api.js.map +1 -1
- package/dist/chunk-7I6XZ2V3.js +1039 -0
- package/dist/chunk-7I6XZ2V3.js.map +1 -0
- package/dist/external-JXNhdgzR.d.ts +154 -0
- package/dist/index.d.ts +29 -110
- package/dist/index.js +21 -616
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
- package/dist/chunk-6L2Y7WUY.js +0 -440
- package/dist/chunk-6L2Y7WUY.js.map +0 -1
- package/dist/state-B6QkOxSb.d.ts +0 -38
package/dist/chunk-6L2Y7WUY.js
DELETED
|
@@ -1,440 +0,0 @@
|
|
|
1
|
-
import { serializeError as serializeError$1, deserializeError as deserializeError$1 } from 'serialize-error';
|
|
2
|
-
import { AsyncLocalStorage } from 'async_hooks';
|
|
3
|
-
|
|
4
|
-
// src/internal/errors.ts
|
|
5
|
-
var ErrorType = /* @__PURE__ */ ((ErrorType2) => {
|
|
6
|
-
ErrorType2["INVALID_WORKFLOW_TRANSITION"] = "INVALID_WORKFLOW_TRANSITION";
|
|
7
|
-
ErrorType2["RUN_CANCELLED"] = "RUN_CANCELLED";
|
|
8
|
-
ErrorType2["RUN_NOT_FOUND"] = "RUN_NOT_FOUND";
|
|
9
|
-
ErrorType2["RUN_OUTSIDE_OF_WORKFLOW"] = "RUN_OUTSIDE_OF_WORKFLOW";
|
|
10
|
-
ErrorType2["FATAL_ERROR"] = "FATAL_ERROR";
|
|
11
|
-
ErrorType2["NO_MESSAGE_AVAILABLE"] = "NO_MESSAGE_AVAILABLE";
|
|
12
|
-
ErrorType2["MAX_RETRIES_EXCEEDED"] = "MAX_RETRIES_EXCEEDED";
|
|
13
|
-
ErrorType2["ERROR_THAT_SHOULD_NEVER_HAPPEN"] = "ERROR_THAT_SHOULD_NEVER_HAPPEN";
|
|
14
|
-
ErrorType2["SERIALIZATION_ERROR"] = "SERIALIZATION_ERROR";
|
|
15
|
-
ErrorType2["MAX_RECOVERY_ATTEMPTS_EXCEEDED"] = "MAX_RECOVERY_ATTEMPTS_EXCEEDED";
|
|
16
|
-
ErrorType2["WORKFLOW_NOT_FOUND"] = "WORKFLOW_NOT_FOUND";
|
|
17
|
-
ErrorType2["TIMEOUT"] = "TIMEOUT";
|
|
18
|
-
ErrorType2["CANCEL"] = "CANCEL";
|
|
19
|
-
ErrorType2["DEADLINE"] = "DEADLINE";
|
|
20
|
-
ErrorType2["RUN_NOT_CANCELLABLE"] = "RUN_NOT_CANCELLABLE";
|
|
21
|
-
ErrorType2["QUEUE_NOT_FOUND"] = "QUEUE_NOT_FOUND";
|
|
22
|
-
return ErrorType2;
|
|
23
|
-
})(ErrorType || {});
|
|
24
|
-
var BaseError = class extends Error {
|
|
25
|
-
reason;
|
|
26
|
-
constructor(message, reason) {
|
|
27
|
-
super(message);
|
|
28
|
-
this.reason = reason;
|
|
29
|
-
}
|
|
30
|
-
};
|
|
31
|
-
var RunTimedOutError = class extends BaseError {
|
|
32
|
-
constructor() {
|
|
33
|
-
super("This workflow run has timed out", "timeout");
|
|
34
|
-
}
|
|
35
|
-
};
|
|
36
|
-
var UnknownError = class extends BaseError {
|
|
37
|
-
constructor(message) {
|
|
38
|
-
super(message || "An unknown error occurred", "unknown");
|
|
39
|
-
}
|
|
40
|
-
};
|
|
41
|
-
var RunDeadlineExceededError = class extends BaseError {
|
|
42
|
-
constructor() {
|
|
43
|
-
super("This workflow run has exceeded its deadline", "deadline");
|
|
44
|
-
}
|
|
45
|
-
};
|
|
46
|
-
var RunCancelledError = class extends BaseError {
|
|
47
|
-
constructor() {
|
|
48
|
-
super("This workflow run has been cancelled", "cancel");
|
|
49
|
-
}
|
|
50
|
-
};
|
|
51
|
-
var MaxRecoveryAttemptsExceededError = class extends BaseError {
|
|
52
|
-
constructor(runId, attempts) {
|
|
53
|
-
super(
|
|
54
|
-
`Max recovery attempts exceeded for run "${runId}" after ${attempts + 1} attempts`,
|
|
55
|
-
"max_recovery_attempts_exceeded"
|
|
56
|
-
);
|
|
57
|
-
}
|
|
58
|
-
};
|
|
59
|
-
var OperationTimedOutError = class extends BaseError {
|
|
60
|
-
constructor(operationName) {
|
|
61
|
-
super(`This operation "${operationName}" has timed out`, "timeout");
|
|
62
|
-
}
|
|
63
|
-
};
|
|
64
|
-
var RunNotFoundError = class extends BaseError {
|
|
65
|
-
constructor(runId) {
|
|
66
|
-
super(`Workflow run "${runId}" not found`, "run_not_found");
|
|
67
|
-
}
|
|
68
|
-
};
|
|
69
|
-
var RunOutsideOfWorkflowError = class extends BaseError {
|
|
70
|
-
constructor() {
|
|
71
|
-
super("This function must be called within a workflow", "outside_workflow_context");
|
|
72
|
-
}
|
|
73
|
-
};
|
|
74
|
-
var FatalError = class extends BaseError {
|
|
75
|
-
constructor(message) {
|
|
76
|
-
super(message, "fatal_error");
|
|
77
|
-
}
|
|
78
|
-
};
|
|
79
|
-
var MaxRetriesExceededError = class extends BaseError {
|
|
80
|
-
attemptErrors;
|
|
81
|
-
stepName;
|
|
82
|
-
maxAttempts;
|
|
83
|
-
constructor(stepName, maxAttempts, errors) {
|
|
84
|
-
const formattedErrors = errors.map((error, index) => `Attempt ${index + 1}: ${error.message}`).join(". ");
|
|
85
|
-
super(
|
|
86
|
-
`Step "${stepName}" failed after ${maxAttempts + 1} attempts. ${formattedErrors}`,
|
|
87
|
-
"max_retries_exceeded"
|
|
88
|
-
);
|
|
89
|
-
this.attemptErrors = errors;
|
|
90
|
-
this.stepName = stepName;
|
|
91
|
-
this.maxAttempts = maxAttempts;
|
|
92
|
-
}
|
|
93
|
-
};
|
|
94
|
-
var SerializationError = class extends BaseError {
|
|
95
|
-
constructor(message) {
|
|
96
|
-
super(message, "serialization_error");
|
|
97
|
-
}
|
|
98
|
-
};
|
|
99
|
-
var WorkflowNotFoundError = class extends BaseError {
|
|
100
|
-
constructor(workflowName) {
|
|
101
|
-
super(`Workflow "${workflowName}" not found`, "workflow_not_found");
|
|
102
|
-
}
|
|
103
|
-
};
|
|
104
|
-
|
|
105
|
-
// src/api/workflow.ts
|
|
106
|
-
var TERMINAL_STATES = [
|
|
107
|
-
"success",
|
|
108
|
-
"error",
|
|
109
|
-
"cancelled",
|
|
110
|
-
"max_recovery_attempts_exceeded"
|
|
111
|
-
];
|
|
112
|
-
function defineWorkflow(fn, options = {}) {
|
|
113
|
-
return {
|
|
114
|
-
fn,
|
|
115
|
-
maxRecoveryAttempts: options.maxRecoveryAttempts
|
|
116
|
-
};
|
|
117
|
-
}
|
|
118
|
-
|
|
119
|
-
// src/internal/utils/sleep.ts
|
|
120
|
-
function sleep(ms) {
|
|
121
|
-
return new Promise((resolve) => setTimeout(resolve, ms));
|
|
122
|
-
}
|
|
123
|
-
|
|
124
|
-
// src/internal/db/retry.ts
|
|
125
|
-
var RETRY_SQLSTATE_PREFIXES = /* @__PURE__ */ new Set([
|
|
126
|
-
"08",
|
|
127
|
-
// Connection Exception
|
|
128
|
-
"40",
|
|
129
|
-
// Transaction Rollback (deadlock_detected, serialization_failure)
|
|
130
|
-
"53",
|
|
131
|
-
// Insufficient Resources
|
|
132
|
-
"55",
|
|
133
|
-
// Object Not In Prerequisite State (lock_not_available)
|
|
134
|
-
"57"
|
|
135
|
-
// Operator Intervention (admin_shutdown, cannot_connect_now)
|
|
136
|
-
]);
|
|
137
|
-
var RETRY_SQLSTATE_CODES = /* @__PURE__ */ new Set([
|
|
138
|
-
"40003",
|
|
139
|
-
// statement_completion_unknown
|
|
140
|
-
"40001",
|
|
141
|
-
// serialization_failure
|
|
142
|
-
"40P01",
|
|
143
|
-
// deadlock_detected
|
|
144
|
-
"55P03"
|
|
145
|
-
// lock_not_available
|
|
146
|
-
]);
|
|
147
|
-
var RETRY_NODE_ERRNOS = /* @__PURE__ */ new Set([
|
|
148
|
-
"ECONNRESET",
|
|
149
|
-
"ECONNREFUSED",
|
|
150
|
-
"EHOSTUNREACH",
|
|
151
|
-
"ENETUNREACH",
|
|
152
|
-
"ETIMEDOUT",
|
|
153
|
-
"ECONNABORTED",
|
|
154
|
-
"EPIPE"
|
|
155
|
-
]);
|
|
156
|
-
function isPgDatabaseError(e) {
|
|
157
|
-
return !!e && typeof e === "object" && typeof e.code === "string" && e.code.length === 5;
|
|
158
|
-
}
|
|
159
|
-
function sqlStateLooksRetryable(sqlstate) {
|
|
160
|
-
if (!sqlstate) return false;
|
|
161
|
-
if (RETRY_SQLSTATE_CODES.has(sqlstate)) return true;
|
|
162
|
-
const prefix = sqlstate.toString().slice(0, 2);
|
|
163
|
-
return RETRY_SQLSTATE_PREFIXES.has(prefix);
|
|
164
|
-
}
|
|
165
|
-
function nodeErrnoLooksRetryable(e) {
|
|
166
|
-
const code = e.code;
|
|
167
|
-
return !!code && RETRY_NODE_ERRNOS.has(code);
|
|
168
|
-
}
|
|
169
|
-
function messageLooksRetryable(msg) {
|
|
170
|
-
const m = msg.toLowerCase();
|
|
171
|
-
return msg.includes("ECONNREFUSED") || msg.includes("ECONNRESET") || m.includes("connection timeout") || m.includes("server closed the connection") || m.includes("connection terminated unexpectedly") || m.includes("client has encountered a connection error") || m.includes("timeout exceeded when trying to connect") || m.includes("could not connect to server") || m.includes("connection pool exhausted") || m.includes("too many clients");
|
|
172
|
-
}
|
|
173
|
-
function* unwrapErrors(e) {
|
|
174
|
-
const queue = [e];
|
|
175
|
-
const seen = /* @__PURE__ */ new Set();
|
|
176
|
-
while (queue.length) {
|
|
177
|
-
const cur = queue.shift();
|
|
178
|
-
if (cur && typeof cur === "object") {
|
|
179
|
-
if (seen.has(cur)) continue;
|
|
180
|
-
seen.add(cur);
|
|
181
|
-
const ae = cur;
|
|
182
|
-
if (Array.isArray(ae.errors)) queue.push(...ae.errors);
|
|
183
|
-
const withCause = cur;
|
|
184
|
-
if (withCause.cause) queue.push(withCause.cause);
|
|
185
|
-
const wrapped = cur;
|
|
186
|
-
if (wrapped.error) queue.push(wrapped.error);
|
|
187
|
-
}
|
|
188
|
-
yield cur;
|
|
189
|
-
}
|
|
190
|
-
}
|
|
191
|
-
function isRetriableDBError(err) {
|
|
192
|
-
for (const e of unwrapErrors(err)) {
|
|
193
|
-
const anyErr = e;
|
|
194
|
-
if (isPgDatabaseError(anyErr) && sqlStateLooksRetryable(anyErr.code)) {
|
|
195
|
-
return true;
|
|
196
|
-
}
|
|
197
|
-
if (nodeErrnoLooksRetryable(anyErr)) {
|
|
198
|
-
return true;
|
|
199
|
-
}
|
|
200
|
-
if (e instanceof Error) {
|
|
201
|
-
if (e.stack && messageLooksRetryable(e.stack)) return true;
|
|
202
|
-
if (e.message && messageLooksRetryable(e.message)) return true;
|
|
203
|
-
}
|
|
204
|
-
if (messageLooksRetryable(String(e))) return true;
|
|
205
|
-
}
|
|
206
|
-
return false;
|
|
207
|
-
}
|
|
208
|
-
async function withDbRetry(fn, options = {}) {
|
|
209
|
-
const { initialBackoffMs = 1e3, maxBackoffMs = 6e4, onRetry } = options;
|
|
210
|
-
let attempt = 0;
|
|
211
|
-
let backoffMs = initialBackoffMs;
|
|
212
|
-
while (true) {
|
|
213
|
-
try {
|
|
214
|
-
return await fn();
|
|
215
|
-
} catch (error) {
|
|
216
|
-
if (!isRetriableDBError(error)) {
|
|
217
|
-
throw error;
|
|
218
|
-
}
|
|
219
|
-
attempt++;
|
|
220
|
-
const jitter = 0.5 + Math.random();
|
|
221
|
-
const delayMs = Math.min(backoffMs * jitter, maxBackoffMs);
|
|
222
|
-
if (onRetry) {
|
|
223
|
-
onRetry(error, attempt, delayMs);
|
|
224
|
-
} else {
|
|
225
|
-
console.warn(
|
|
226
|
-
`Database connection failed: ${error instanceof Error ? error.message : String(error)}. Retrying in ${(delayMs / 1e3).toFixed(2)}s (attempt ${attempt})`
|
|
227
|
-
);
|
|
228
|
-
}
|
|
229
|
-
await sleep(delayMs);
|
|
230
|
-
backoffMs = Math.min(backoffMs * 2, maxBackoffMs);
|
|
231
|
-
}
|
|
232
|
-
}
|
|
233
|
-
}
|
|
234
|
-
function serialize(value) {
|
|
235
|
-
try {
|
|
236
|
-
return JSON.stringify(value);
|
|
237
|
-
} catch (error) {
|
|
238
|
-
throw new SerializationError(error.message);
|
|
239
|
-
}
|
|
240
|
-
}
|
|
241
|
-
function deserialize(value) {
|
|
242
|
-
try {
|
|
243
|
-
return JSON.parse(value);
|
|
244
|
-
} catch (error) {
|
|
245
|
-
throw new SerializationError(error.message);
|
|
246
|
-
}
|
|
247
|
-
}
|
|
248
|
-
function serializeError(error) {
|
|
249
|
-
try {
|
|
250
|
-
return JSON.stringify(serializeError$1(error));
|
|
251
|
-
} catch (error2) {
|
|
252
|
-
throw new SerializationError(error2.message);
|
|
253
|
-
}
|
|
254
|
-
}
|
|
255
|
-
function deserializeError(serialized) {
|
|
256
|
-
try {
|
|
257
|
-
return deserializeError$1(JSON.parse(serialized));
|
|
258
|
-
} catch (error) {
|
|
259
|
-
throw new SerializationError(error.message);
|
|
260
|
-
}
|
|
261
|
-
}
|
|
262
|
-
function getExecutionContext() {
|
|
263
|
-
const store = asyncLocalStorage.getStore();
|
|
264
|
-
if (!store) {
|
|
265
|
-
throw new RunOutsideOfWorkflowError();
|
|
266
|
-
}
|
|
267
|
-
return store;
|
|
268
|
-
}
|
|
269
|
-
var asyncLocalStorage = new AsyncLocalStorage();
|
|
270
|
-
function runWithExecutionContext(store, callback) {
|
|
271
|
-
return asyncLocalStorage.run(store, callback);
|
|
272
|
-
}
|
|
273
|
-
function createExecutionContext({
|
|
274
|
-
ctx,
|
|
275
|
-
abortSignal,
|
|
276
|
-
runId,
|
|
277
|
-
runPath,
|
|
278
|
-
operations
|
|
279
|
-
}) {
|
|
280
|
-
return {
|
|
281
|
-
type: "execution",
|
|
282
|
-
runId,
|
|
283
|
-
runPath,
|
|
284
|
-
executorId: ctx.executorId,
|
|
285
|
-
abortSignal,
|
|
286
|
-
operationManager: new OperationManager(ctx.db, runId, operations || []),
|
|
287
|
-
messageEventBus: ctx.messageEventBus,
|
|
288
|
-
stateEventBus: ctx.stateEventBus,
|
|
289
|
-
workflowsMap: ctx.workflowsMap,
|
|
290
|
-
runEventBus: ctx.runEventBus,
|
|
291
|
-
runRegistry: ctx.runRegistry,
|
|
292
|
-
queueRegistry: ctx.queueRegistry,
|
|
293
|
-
db: ctx.db
|
|
294
|
-
};
|
|
295
|
-
}
|
|
296
|
-
|
|
297
|
-
// src/internal/db/queries/get-run.ts
|
|
298
|
-
async function getRun(db, runId) {
|
|
299
|
-
const result = await db.selectFrom("runs").select([
|
|
300
|
-
"id",
|
|
301
|
-
"inputs",
|
|
302
|
-
"output",
|
|
303
|
-
"error",
|
|
304
|
-
"status",
|
|
305
|
-
"change_id",
|
|
306
|
-
"recovery_attempts",
|
|
307
|
-
"workflow_name"
|
|
308
|
-
]).where("id", "=", runId).executeTakeFirst();
|
|
309
|
-
if (!result) {
|
|
310
|
-
return void 0;
|
|
311
|
-
}
|
|
312
|
-
return {
|
|
313
|
-
id: result.id,
|
|
314
|
-
input: result.inputs ?? void 0,
|
|
315
|
-
name: result.workflow_name,
|
|
316
|
-
output: result.output ?? void 0,
|
|
317
|
-
error: result.error ?? void 0,
|
|
318
|
-
status: result.status,
|
|
319
|
-
changeId: result.change_id,
|
|
320
|
-
recoveryAttempts: Number(result.recovery_attempts ?? 0)
|
|
321
|
-
};
|
|
322
|
-
}
|
|
323
|
-
|
|
324
|
-
// src/internal/db/commands/insert-operation.ts
|
|
325
|
-
async function insertOperation(tx, runId, operationName, sequenceId, result, error) {
|
|
326
|
-
await tx.insertInto("operations").values({
|
|
327
|
-
run_id: runId,
|
|
328
|
-
name: operationName,
|
|
329
|
-
sequence_id: sequenceId,
|
|
330
|
-
output: result,
|
|
331
|
-
error
|
|
332
|
-
}).execute();
|
|
333
|
-
}
|
|
334
|
-
|
|
335
|
-
// src/internal/context/operation-manager.ts
|
|
336
|
-
var OperationManager = class {
|
|
337
|
-
constructor(db, runId, operations = []) {
|
|
338
|
-
this.db = db;
|
|
339
|
-
this.runId = runId;
|
|
340
|
-
this.operations = operations;
|
|
341
|
-
}
|
|
342
|
-
sequenceId = 0;
|
|
343
|
-
lastReservedSequenceId = null;
|
|
344
|
-
getOperationResult() {
|
|
345
|
-
const operation = this.operations.pop();
|
|
346
|
-
if (operation) {
|
|
347
|
-
this.sequenceId++;
|
|
348
|
-
return operation;
|
|
349
|
-
}
|
|
350
|
-
return null;
|
|
351
|
-
}
|
|
352
|
-
reserveSequenceId() {
|
|
353
|
-
const reserved = this.sequenceId++;
|
|
354
|
-
this.lastReservedSequenceId = reserved;
|
|
355
|
-
return reserved;
|
|
356
|
-
}
|
|
357
|
-
getCurrentSequenceId() {
|
|
358
|
-
return this.sequenceId;
|
|
359
|
-
}
|
|
360
|
-
/**
|
|
361
|
-
* Gets the sequence ID that was most recently reserved for the current operation.
|
|
362
|
-
* This is the ID that will be (or was) recorded in the database for this operation.
|
|
363
|
-
* Returns null if no sequence ID has been reserved yet.
|
|
364
|
-
*/
|
|
365
|
-
getActiveSequenceId() {
|
|
366
|
-
return this.lastReservedSequenceId;
|
|
367
|
-
}
|
|
368
|
-
async recordResult(operationName, sequenceId, result, tx) {
|
|
369
|
-
if (tx) {
|
|
370
|
-
await insertOperation(tx, this.runId, operationName, sequenceId, result ?? void 0);
|
|
371
|
-
} else {
|
|
372
|
-
await withDbRetry(async () => {
|
|
373
|
-
await insertOperation(this.db, this.runId, operationName, sequenceId, result ?? void 0);
|
|
374
|
-
});
|
|
375
|
-
}
|
|
376
|
-
}
|
|
377
|
-
async recordError(operationName, sequenceId, error, tx) {
|
|
378
|
-
if (tx) {
|
|
379
|
-
await insertOperation(
|
|
380
|
-
tx,
|
|
381
|
-
this.runId,
|
|
382
|
-
operationName,
|
|
383
|
-
sequenceId,
|
|
384
|
-
void 0,
|
|
385
|
-
error ?? void 0
|
|
386
|
-
);
|
|
387
|
-
} else {
|
|
388
|
-
await withDbRetry(async () => {
|
|
389
|
-
await insertOperation(
|
|
390
|
-
this.db,
|
|
391
|
-
this.runId,
|
|
392
|
-
operationName,
|
|
393
|
-
sequenceId,
|
|
394
|
-
void 0,
|
|
395
|
-
error ?? void 0
|
|
396
|
-
);
|
|
397
|
-
});
|
|
398
|
-
}
|
|
399
|
-
}
|
|
400
|
-
};
|
|
401
|
-
function returnOrThrowOperationResult(op) {
|
|
402
|
-
if (op.error) {
|
|
403
|
-
throw deserializeError(op.error);
|
|
404
|
-
}
|
|
405
|
-
if (op.result === null || op.result === void 0) {
|
|
406
|
-
return void 0;
|
|
407
|
-
}
|
|
408
|
-
return deserialize(op.result);
|
|
409
|
-
}
|
|
410
|
-
async function executeAndRecordOperation(operationManager, operationName, callback) {
|
|
411
|
-
const seqId = operationManager.reserveSequenceId();
|
|
412
|
-
try {
|
|
413
|
-
const result = await callback();
|
|
414
|
-
const serializedResult = serialize(result);
|
|
415
|
-
await checkCancellation();
|
|
416
|
-
await operationManager.recordResult(operationName, seqId, serializedResult);
|
|
417
|
-
return result;
|
|
418
|
-
} catch (error) {
|
|
419
|
-
if (error instanceof RunCancelledError) {
|
|
420
|
-
throw error;
|
|
421
|
-
}
|
|
422
|
-
const err = error instanceof Error ? error : new Error(String(error));
|
|
423
|
-
await operationManager.recordError(operationName, seqId, serializeError(err));
|
|
424
|
-
throw error;
|
|
425
|
-
}
|
|
426
|
-
}
|
|
427
|
-
async function checkCancellation() {
|
|
428
|
-
const { abortSignal, runId, db } = getExecutionContext();
|
|
429
|
-
if (abortSignal.aborted) {
|
|
430
|
-
throw new RunCancelledError();
|
|
431
|
-
}
|
|
432
|
-
const run = await withDbRetry(async () => getRun(db, runId));
|
|
433
|
-
if (run?.status === "cancelled") {
|
|
434
|
-
throw new RunCancelledError();
|
|
435
|
-
}
|
|
436
|
-
}
|
|
437
|
-
|
|
438
|
-
export { BaseError, ErrorType, FatalError, MaxRecoveryAttemptsExceededError, MaxRetriesExceededError, OperationTimedOutError, RunCancelledError, RunDeadlineExceededError, RunNotFoundError, RunOutsideOfWorkflowError, RunTimedOutError, SerializationError, TERMINAL_STATES, UnknownError, WorkflowNotFoundError, createExecutionContext, defineWorkflow, deserialize, deserializeError, executeAndRecordOperation, getExecutionContext, getRun, returnOrThrowOperationResult, runWithExecutionContext, serialize, serializeError, sleep, withDbRetry };
|
|
439
|
-
//# sourceMappingURL=chunk-6L2Y7WUY.js.map
|
|
440
|
-
//# sourceMappingURL=chunk-6L2Y7WUY.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/internal/errors.ts","../src/api/workflow.ts","../src/internal/utils/sleep.ts","../src/internal/db/retry.ts","../src/internal/utils/serialization.ts","../src/internal/context/execution-context.ts","../src/internal/db/queries/get-run.ts","../src/internal/db/commands/insert-operation.ts","../src/internal/context/operation-manager.ts"],"names":["ErrorType","_serializeError","error","_deserializeError"],"mappings":"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","file":"chunk-6L2Y7WUY.js","sourcesContent":["export enum ErrorType {\n INVALID_WORKFLOW_TRANSITION = 'INVALID_WORKFLOW_TRANSITION',\n RUN_CANCELLED = 'RUN_CANCELLED',\n RUN_NOT_FOUND = 'RUN_NOT_FOUND',\n RUN_OUTSIDE_OF_WORKFLOW = 'RUN_OUTSIDE_OF_WORKFLOW',\n FATAL_ERROR = 'FATAL_ERROR',\n NO_MESSAGE_AVAILABLE = 'NO_MESSAGE_AVAILABLE',\n MAX_RETRIES_EXCEEDED = 'MAX_RETRIES_EXCEEDED',\n ERROR_THAT_SHOULD_NEVER_HAPPEN = 'ERROR_THAT_SHOULD_NEVER_HAPPEN',\n SERIALIZATION_ERROR = 'SERIALIZATION_ERROR',\n MAX_RECOVERY_ATTEMPTS_EXCEEDED = 'MAX_RECOVERY_ATTEMPTS_EXCEEDED',\n WORKFLOW_NOT_FOUND = 'WORKFLOW_NOT_FOUND',\n TIMEOUT = 'TIMEOUT',\n CANCEL = 'CANCEL',\n DEADLINE = 'DEADLINE',\n RUN_NOT_CANCELLABLE = 'RUN_NOT_CANCELLABLE',\n QUEUE_NOT_FOUND = 'QUEUE_NOT_FOUND',\n}\n\nexport type ErrorReason =\n | 'timeout'\n | 'deadline'\n | 'cancel'\n | 'unhandled'\n | 'max_recovery_attempts_exceeded'\n | 'workflow_not_found'\n | 'unknown'\n | 'run_not_found'\n | 'outside_workflow_context'\n | 'fatal_error'\n | 'max_retries_exceeded'\n | 'serialization_error';\n\nexport class BaseError extends Error {\n readonly reason: ErrorReason;\n\n constructor(message: string, reason: ErrorReason) {\n super(message);\n this.reason = reason;\n }\n}\n\nexport class RunTimedOutError extends BaseError {\n constructor() {\n super('This workflow run has timed out', 'timeout');\n }\n}\n\nexport class UnknownError extends BaseError {\n constructor(message?: string) {\n super(message || 'An unknown error occurred', 'unknown');\n }\n}\n\nexport class RunDeadlineExceededError extends BaseError {\n constructor() {\n super('This workflow run has exceeded its deadline', 'deadline');\n }\n}\n\nexport class RunCancelledError extends BaseError {\n constructor() {\n super('This workflow run has been cancelled', 'cancel');\n }\n}\n\nexport class MaxRecoveryAttemptsExceededError extends BaseError {\n constructor(runId: string, attempts: number) {\n super(\n `Max recovery attempts exceeded for run \"${runId}\" after ${attempts + 1} attempts`,\n 'max_recovery_attempts_exceeded',\n );\n }\n}\n\nexport class OperationTimedOutError extends BaseError {\n constructor(operationName: string) {\n super(`This operation \"${operationName}\" has timed out`, 'timeout');\n }\n}\n\nexport class RunNotFoundError extends BaseError {\n constructor(runId: string) {\n super(`Workflow run \"${runId}\" not found`, 'run_not_found');\n }\n}\n\nexport class RunOutsideOfWorkflowError extends BaseError {\n constructor() {\n super('This function must be called within a workflow', 'outside_workflow_context');\n }\n}\n\nexport class FatalError extends BaseError {\n constructor(message: string) {\n super(message, 'fatal_error');\n }\n}\n\nexport class MaxRetriesExceededError extends BaseError {\n readonly attemptErrors: Error[];\n readonly stepName: string;\n readonly maxAttempts: number;\n\n constructor(stepName: string, maxAttempts: number, errors: Error[]) {\n const formattedErrors = errors\n .map((error, index) => `Attempt ${index + 1}: ${error.message}`)\n .join('. ');\n\n super(\n `Step \"${stepName}\" failed after ${maxAttempts + 1} attempts. ${formattedErrors}`,\n 'max_retries_exceeded',\n );\n\n this.attemptErrors = errors;\n this.stepName = stepName;\n this.maxAttempts = maxAttempts;\n }\n}\n\nexport class SerializationError extends BaseError {\n constructor(message: string) {\n super(message, 'serialization_error');\n }\n}\n\nexport class WorkflowNotFoundError extends BaseError {\n constructor(workflowName: string) {\n super(`Workflow \"${workflowName}\" not found`, 'workflow_not_found');\n }\n}\n","export type RunStatus =\n | 'pending'\n | 'queued'\n | 'success'\n | 'error'\n | 'cancelled'\n | 'max_recovery_attempts_exceeded';\n\nexport const TERMINAL_STATES: RunStatus[] = [\n 'success',\n 'error',\n 'cancelled',\n 'max_recovery_attempts_exceeded',\n];\n\nexport type WorkflowFunction<Args extends unknown[], R> = (...args: Args) => Promise<R> | R;\n\nexport type WorkflowDefinition<TArgs extends unknown[] = unknown[], TReturn = unknown> = {\n fn: WorkflowFunction<TArgs, TReturn>;\n maxRecoveryAttempts?: number;\n};\n\nexport function defineWorkflow<TArgs extends unknown[], TReturn>(\n fn: WorkflowFunction<TArgs, TReturn>,\n options: {\n maxRecoveryAttempts?: number;\n } = {},\n): WorkflowDefinition<TArgs, TReturn> {\n return {\n fn,\n maxRecoveryAttempts: options.maxRecoveryAttempts,\n };\n}\n","export function sleep(ms: number): Promise<void> {\n return new Promise((resolve) => setTimeout(resolve, ms));\n}\n","import { sleep } from '../utils/sleep';\n\n// Error detection helpers\ntype AnyErr = {\n code?: string;\n errno?: number;\n message?: string;\n stack?: string;\n cause?: unknown;\n};\n\n// PostgreSQL SQLSTATE error classes that are safe to retry\n// https://www.postgresql.org/docs/current/errcodes-appendix.html\nconst RETRY_SQLSTATE_PREFIXES = new Set([\n '08', // Connection Exception\n '40', // Transaction Rollback (deadlock_detected, serialization_failure)\n '53', // Insufficient Resources\n '55', // Object Not In Prerequisite State (lock_not_available)\n '57', // Operator Intervention (admin_shutdown, cannot_connect_now)\n]);\n\nconst RETRY_SQLSTATE_CODES = new Set([\n '40003', // statement_completion_unknown\n '40001', // serialization_failure\n '40P01', // deadlock_detected\n '55P03', // lock_not_available\n]);\n\n// Node.js transient network error codes\nconst RETRY_NODE_ERRNOS = new Set([\n 'ECONNRESET',\n 'ECONNREFUSED',\n 'EHOSTUNREACH',\n 'ENETUNREACH',\n 'ETIMEDOUT',\n 'ECONNABORTED',\n 'EPIPE',\n]);\n\nfunction isPgDatabaseError(e: AnyErr): boolean {\n return !!e && typeof e === 'object' && typeof e.code === 'string' && e.code.length === 5;\n}\n\nfunction sqlStateLooksRetryable(sqlstate: string | undefined): boolean {\n if (!sqlstate) return false;\n if (RETRY_SQLSTATE_CODES.has(sqlstate)) return true;\n const prefix = sqlstate.toString().slice(0, 2);\n return RETRY_SQLSTATE_PREFIXES.has(prefix);\n}\n\nfunction nodeErrnoLooksRetryable(e: AnyErr): boolean {\n const code = e.code;\n return !!code && RETRY_NODE_ERRNOS.has(code);\n}\n\nfunction messageLooksRetryable(msg: string): boolean {\n const m = msg.toLowerCase();\n return (\n msg.includes('ECONNREFUSED') ||\n msg.includes('ECONNRESET') ||\n m.includes('connection timeout') ||\n m.includes('server closed the connection') ||\n m.includes('connection terminated unexpectedly') ||\n m.includes('client has encountered a connection error') ||\n m.includes('timeout exceeded when trying to connect') ||\n m.includes('could not connect to server') ||\n m.includes('connection pool exhausted') ||\n m.includes('too many clients')\n );\n}\n\nfunction* unwrapErrors(e: unknown): Generator<unknown, void, void> {\n const queue: unknown[] = [e];\n const seen = new Set<unknown>();\n\n while (queue.length) {\n const cur = queue.shift()!;\n if (cur && typeof cur === 'object') {\n if (seen.has(cur)) continue;\n seen.add(cur);\n\n // AggregateError\n const ae = cur as { errors?: unknown[] };\n if (Array.isArray(ae.errors)) queue.push(...ae.errors);\n\n // Error cause chain\n const withCause = cur as { cause?: unknown };\n if (withCause.cause) queue.push(withCause.cause);\n\n // Wrapped errors\n const wrapped = cur as { error?: unknown };\n if (wrapped.error) queue.push(wrapped.error);\n }\n yield cur;\n }\n}\n\nfunction isRetriableDBError(err: unknown): boolean {\n for (const e of unwrapErrors(err)) {\n const anyErr = e as AnyErr;\n\n // Check PostgreSQL SQLSTATE codes\n if (isPgDatabaseError(anyErr) && sqlStateLooksRetryable(anyErr.code)) {\n return true;\n }\n\n // Check Node.js system errors\n if (nodeErrnoLooksRetryable(anyErr)) {\n return true;\n }\n\n // Check error messages\n if (e instanceof Error) {\n if (e.stack && messageLooksRetryable(e.stack)) return true;\n if (e.message && messageLooksRetryable(e.message)) return true;\n }\n if (messageLooksRetryable(String(e))) return true;\n }\n return false;\n}\n\n/**\n * Retry a function if it throws a retriable database error.\n * @param fn - The function to retry.\n * @param options - The options for the retry.\n * @param options.initialBackoffMs - The initial backoff time in milliseconds. Defaults to 1000.\n * @param options.maxBackoffMs - The maximum backoff time in milliseconds. Defaults to 60000.\n * @param options.onRetry - The callback to call when a retry is needed.\n * @returns The result of the function.\n */\nexport async function withDbRetry<T>(\n fn: () => Promise<T>,\n options: {\n initialBackoffMs?: number;\n maxBackoffMs?: number;\n onRetry?: (error: unknown, attempt: number, delayMs: number) => void;\n } = {},\n): Promise<T> {\n const { initialBackoffMs = 1000, maxBackoffMs = 60000, onRetry } = options;\n\n let attempt = 0;\n let backoffMs = initialBackoffMs;\n\n while (true) {\n try {\n return await fn();\n } catch (error) {\n if (!isRetriableDBError(error)) {\n // Not a retriable error - throw immediately\n throw error;\n }\n\n attempt++;\n\n // Calculate backoff with jitter (0.5x to 1.5x)\n const jitter = 0.5 + Math.random();\n const delayMs = Math.min(backoffMs * jitter, maxBackoffMs);\n\n // Log/callback\n if (onRetry) {\n onRetry(error, attempt, delayMs);\n } else {\n console.warn(\n `Database connection failed: ${error instanceof Error ? error.message : String(error)}. ` +\n `Retrying in ${(delayMs / 1000).toFixed(2)}s (attempt ${attempt})`,\n );\n }\n\n // Wait before retrying\n await sleep(delayMs);\n\n // Increase backoff for next attempt (exponential)\n backoffMs = Math.min(backoffMs * 2, maxBackoffMs);\n }\n }\n}\n","import { SerializationError } from '../errors';\nimport {\n serializeError as _serializeError,\n deserializeError as _deserializeError,\n} from 'serialize-error';\n\n/**\n * Serializes a value into a JSON string.\n */\nexport function serialize<T>(value: T): string {\n try {\n return JSON.stringify(value);\n } catch (error) {\n throw new SerializationError((error as Error).message);\n }\n}\n\n/**\n * Deserializes a JSON string into a value.\n */\nexport function deserialize<T>(value: string): T {\n try {\n return JSON.parse(value);\n } catch (error) {\n throw new SerializationError((error as Error).message);\n }\n}\n\n/**\n * Serializes an error object, preserving stack trace, message, name, and custom properties\n */\nexport function serializeError(error: Error): string {\n try {\n return JSON.stringify(_serializeError(error));\n } catch (error) {\n throw new SerializationError((error as Error).message);\n }\n}\n\n/**\n * Deserializes an error object, reconstructing it with stack trace and properties\n */\nexport function deserializeError(serialized: string): Error {\n try {\n return _deserializeError(JSON.parse(serialized));\n } catch (error) {\n throw new SerializationError((error as Error).message);\n }\n}\n","import { MessageEventBus } from '../events/message-event-bus';\nimport { OperationManager, OperationResult } from './operation-manager';\nimport { StateEventBus } from '../events/state-event-bus';\nimport { RunOutsideOfWorkflowError } from '../errors';\nimport { Database } from '../db/db';\nimport { AsyncLocalStorage } from 'node:async_hooks';\nimport { RunEventBus } from '../events/run-event-bus';\nimport { RunRegistry } from './run-registry';\nimport { QueueDefinition } from '@api/queue';\nimport { WorkflowDefinition } from '@api/workflow';\nimport { RuntimeContext } from './runtime-context';\n\nexport interface ExecutionContext {\n type: 'execution';\n runId: string;\n runPath: string[];\n executorId: string;\n abortSignal: AbortSignal;\n parentWorkflow?: ExecutionContext;\n operationManager: OperationManager;\n messageEventBus: MessageEventBus;\n stateEventBus: StateEventBus;\n runEventBus: RunEventBus;\n runRegistry: RunRegistry;\n queueRegistry: Record<string, QueueDefinition>;\n workflowsMap: Record<string, WorkflowDefinition<unknown[], unknown>>;\n db: Database;\n}\n\nexport function getExecutionContext(): ExecutionContext {\n const store = asyncLocalStorage.getStore();\n if (!store) {\n throw new RunOutsideOfWorkflowError();\n }\n return store;\n}\n\nexport const asyncLocalStorage = new AsyncLocalStorage<ExecutionContext>();\n\nexport function runWithExecutionContext<TReturn>(\n store: ExecutionContext,\n callback: () => Promise<TReturn>,\n) {\n return asyncLocalStorage.run(store, callback);\n}\n\ntype CreateExecutionContextParams = {\n ctx: RuntimeContext | ExecutionContext;\n abortSignal: AbortSignal;\n runId: string;\n runPath: string[];\n operations?: OperationResult[];\n};\n\nexport function createExecutionContext({\n ctx,\n abortSignal,\n runId,\n runPath,\n operations,\n}: CreateExecutionContextParams): ExecutionContext {\n return {\n type: 'execution',\n runId: runId,\n runPath: runPath,\n executorId: ctx.executorId,\n abortSignal: abortSignal,\n operationManager: new OperationManager(ctx.db, runId, operations || []),\n messageEventBus: ctx.messageEventBus,\n stateEventBus: ctx.stateEventBus,\n workflowsMap: ctx.workflowsMap,\n runEventBus: ctx.runEventBus,\n runRegistry: ctx.runRegistry,\n queueRegistry: ctx.queueRegistry,\n db: ctx.db,\n };\n}\n","import { RunStatus } from '@api/workflow';\nimport { Database } from '../db';\n\ninterface WorkflowResult {\n id: string;\n input?: string;\n output?: string;\n error?: string;\n status: RunStatus;\n name: string;\n queueName?: string;\n changeId: number;\n recoveryAttempts: number;\n}\n\nexport async function getRun(db: Database, runId: string): Promise<WorkflowResult | undefined> {\n const result = await db\n .selectFrom('runs')\n .select([\n 'id',\n 'inputs',\n 'output',\n 'error',\n 'status',\n 'change_id',\n 'recovery_attempts',\n 'workflow_name',\n ])\n .where('id', '=', runId)\n .executeTakeFirst();\n\n if (!result) {\n return undefined;\n }\n\n return {\n id: result.id,\n input: result.inputs ?? undefined,\n name: result.workflow_name,\n output: result.output ?? undefined,\n error: result.error ?? undefined,\n status: result.status as RunStatus,\n changeId: result.change_id,\n recoveryAttempts: Number(result.recovery_attempts ?? 0),\n };\n}\n","import { Database, Transaction } from '../db';\n\nexport async function insertOperation(\n tx: Transaction | Database,\n runId: string,\n operationName: string,\n sequenceId: number,\n result?: string,\n error?: string,\n) {\n await tx\n .insertInto('operations')\n .values({\n run_id: runId,\n name: operationName,\n sequence_id: sequenceId,\n output: result,\n error: error,\n })\n .execute();\n}\n","import { withDbRetry } from '../db/retry';\nimport { deserialize, deserializeError, serialize, serializeError } from '../utils/serialization';\nimport { getExecutionContext } from './execution-context';\nimport { RunCancelledError } from '../errors';\nimport { getRun } from '../db/queries/get-run';\nimport { insertOperation } from '../db/commands/insert-operation';\nimport { Database, Transaction } from '../db/db';\n\nexport interface OperationResult {\n result?: string;\n error?: string;\n}\n\nexport class OperationManager {\n private sequenceId = 0;\n private lastReservedSequenceId: number | null = null;\n constructor(\n private readonly db: Database,\n private readonly runId: string,\n // operations are stored in reverse order so the most recent operation is at the beginning of the array\n private readonly operations: OperationResult[] = [],\n ) {}\n\n getOperationResult(): OperationResult | null {\n const operation = this.operations.pop() as OperationResult;\n if (operation) {\n this.sequenceId++;\n return operation;\n }\n return null;\n }\n\n reserveSequenceId() {\n const reserved = this.sequenceId++;\n this.lastReservedSequenceId = reserved;\n return reserved;\n }\n\n getCurrentSequenceId() {\n return this.sequenceId;\n }\n\n /**\n * Gets the sequence ID that was most recently reserved for the current operation.\n * This is the ID that will be (or was) recorded in the database for this operation.\n * Returns null if no sequence ID has been reserved yet.\n */\n getActiveSequenceId(): number | null {\n return this.lastReservedSequenceId;\n }\n\n async recordResult(\n operationName: string,\n sequenceId: number,\n result: string | null,\n tx?: Transaction,\n ) {\n if (tx) {\n await insertOperation(tx, this.runId, operationName, sequenceId, result ?? undefined);\n } else {\n await withDbRetry(async () => {\n await insertOperation(this.db, this.runId, operationName, sequenceId, result ?? undefined);\n });\n }\n }\n\n async recordError(\n operationName: string,\n sequenceId: number,\n error: string | null,\n tx?: Transaction,\n ) {\n if (tx) {\n await insertOperation(\n tx,\n this.runId,\n operationName,\n sequenceId,\n undefined,\n error ?? undefined,\n );\n } else {\n await withDbRetry(async () => {\n await insertOperation(\n this.db,\n this.runId,\n operationName,\n sequenceId,\n undefined,\n error ?? undefined,\n );\n });\n }\n }\n}\n\nexport function returnOrThrowOperationResult<T = void>(\n op: OperationResult,\n): T extends void ? void : T {\n if (op.error) {\n throw deserializeError(op.error);\n }\n\n if (op.result === null || op.result === undefined) {\n return undefined as T extends void ? void : T;\n }\n\n return deserialize(op.result) as T extends void ? void : T;\n}\n\nexport async function executeAndRecordOperation<T>(\n operationManager: OperationManager,\n operationName: string,\n callback: () => Promise<T>,\n): Promise<T> {\n const seqId = operationManager.reserveSequenceId();\n try {\n const result = await callback();\n const serializedResult = serialize(result);\n await checkCancellation();\n await operationManager.recordResult(operationName, seqId, serializedResult);\n return result;\n } catch (error) {\n if (error instanceof RunCancelledError) {\n throw error;\n }\n const err = error instanceof Error ? error : new Error(String(error));\n await operationManager.recordError(operationName, seqId, serializeError(err));\n throw error;\n }\n}\n\nasync function checkCancellation() {\n const { abortSignal, runId, db } = getExecutionContext();\n if (abortSignal.aborted) {\n throw new RunCancelledError();\n }\n const run = await withDbRetry(async () => getRun(db, runId));\n if (run?.status === 'cancelled') {\n throw new RunCancelledError();\n }\n}\n"]}
|
package/dist/state-B6QkOxSb.d.ts
DELETED
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
type QueueRateLimit = {
|
|
2
|
-
limitPerPeriod: number;
|
|
3
|
-
period: number;
|
|
4
|
-
};
|
|
5
|
-
type QueueOptions = {
|
|
6
|
-
workerConcurrency?: number;
|
|
7
|
-
concurrency?: number;
|
|
8
|
-
rateLimit?: QueueRateLimit;
|
|
9
|
-
priorityEnabled?: boolean;
|
|
10
|
-
partitioningEnabled?: boolean;
|
|
11
|
-
};
|
|
12
|
-
type QueueDefinition = QueueOptions;
|
|
13
|
-
declare function defineQueue(options?: QueueOptions): QueueDefinition;
|
|
14
|
-
|
|
15
|
-
type RunStatus = 'pending' | 'queued' | 'success' | 'error' | 'cancelled' | 'max_recovery_attempts_exceeded';
|
|
16
|
-
declare const TERMINAL_STATES: RunStatus[];
|
|
17
|
-
type WorkflowFunction<Args extends unknown[], R> = (...args: Args) => Promise<R> | R;
|
|
18
|
-
type WorkflowDefinition<TArgs extends unknown[] = unknown[], TReturn = unknown> = {
|
|
19
|
-
fn: WorkflowFunction<TArgs, TReturn>;
|
|
20
|
-
maxRecoveryAttempts?: number;
|
|
21
|
-
};
|
|
22
|
-
declare function defineWorkflow<TArgs extends unknown[], TReturn>(fn: WorkflowFunction<TArgs, TReturn>, options?: {
|
|
23
|
-
maxRecoveryAttempts?: number;
|
|
24
|
-
}): WorkflowDefinition<TArgs, TReturn>;
|
|
25
|
-
|
|
26
|
-
type MessageDefinition<T> = {
|
|
27
|
-
name: string;
|
|
28
|
-
__data?: T;
|
|
29
|
-
};
|
|
30
|
-
declare function defineMessage<T>(name: string): MessageDefinition<T>;
|
|
31
|
-
|
|
32
|
-
interface StateDefinition<T> {
|
|
33
|
-
name: string;
|
|
34
|
-
data?: T;
|
|
35
|
-
}
|
|
36
|
-
declare function defineState<T>(name: string): StateDefinition<T>;
|
|
37
|
-
|
|
38
|
-
export { type MessageDefinition as M, type QueueDefinition as Q, type RunStatus as R, type StateDefinition as S, TERMINAL_STATES as T, type WorkflowDefinition as W, type QueueOptions as a, type QueueRateLimit as b, type WorkflowFunction as c, defineMessage as d, defineQueue as e, defineState as f, defineWorkflow as g };
|