@upstash/workflow 0.2.19 → 0.2.20
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/astro.d.mts +2 -2
- package/astro.d.ts +2 -2
- package/astro.js +48 -11
- package/astro.mjs +1 -1
- package/{chunk-37XOXDLZ.mjs → chunk-LZGX3WMF.mjs} +48 -11
- package/cloudflare.d.mts +2 -2
- package/cloudflare.d.ts +2 -2
- package/cloudflare.js +48 -11
- package/cloudflare.mjs +1 -1
- package/express.d.mts +2 -2
- package/express.d.ts +2 -2
- package/express.js +48 -11
- package/express.mjs +1 -1
- package/h3.d.mts +2 -2
- package/h3.d.ts +2 -2
- package/h3.js +48 -11
- package/h3.mjs +1 -1
- package/hono.d.mts +2 -2
- package/hono.d.ts +2 -2
- package/hono.js +48 -11
- package/hono.mjs +1 -1
- package/index.d.mts +2 -2
- package/index.d.ts +2 -2
- package/index.js +48 -11
- package/index.mjs +1 -1
- package/nextjs.d.mts +2 -2
- package/nextjs.d.ts +2 -2
- package/nextjs.js +48 -11
- package/nextjs.mjs +1 -1
- package/package.json +1 -1
- package/{serve-many-CEUYWQvV.d.mts → serve-many-BNusWYgt.d.mts} +1 -1
- package/{serve-many-BObe3pdI.d.ts → serve-many-CXqQP3RI.d.ts} +1 -1
- package/solidjs.d.mts +1 -1
- package/solidjs.d.ts +1 -1
- package/solidjs.js +48 -11
- package/solidjs.mjs +1 -1
- package/svelte.d.mts +2 -2
- package/svelte.d.ts +2 -2
- package/svelte.js +48 -11
- package/svelte.mjs +1 -1
- package/{types-B7_5AkKQ.d.ts → types-Q3dM0UlR.d.mts} +21 -2
- package/{types-B7_5AkKQ.d.mts → types-Q3dM0UlR.d.ts} +21 -2
package/astro.d.mts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { APIContext, APIRoute } from 'astro';
|
|
2
|
-
import { g as WorkflowContext, n as PublicServeOptions,
|
|
3
|
-
import { s as serveManyBase } from './serve-many-
|
|
2
|
+
import { g as WorkflowContext, n as PublicServeOptions, y as InvokableWorkflow } from './types-Q3dM0UlR.mjs';
|
|
3
|
+
import { s as serveManyBase } from './serve-many-BNusWYgt.mjs';
|
|
4
4
|
import '@upstash/qstash';
|
|
5
5
|
import 'zod';
|
|
6
6
|
import 'ai';
|
package/astro.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { APIContext, APIRoute } from 'astro';
|
|
2
|
-
import { g as WorkflowContext, n as PublicServeOptions,
|
|
3
|
-
import { s as serveManyBase } from './serve-many-
|
|
2
|
+
import { g as WorkflowContext, n as PublicServeOptions, y as InvokableWorkflow } from './types-Q3dM0UlR.js';
|
|
3
|
+
import { s as serveManyBase } from './serve-many-CXqQP3RI.js';
|
|
4
4
|
import '@upstash/qstash';
|
|
5
5
|
import 'zod';
|
|
6
6
|
import 'ai';
|
package/astro.js
CHANGED
|
@@ -92,7 +92,7 @@ var WORKFLOW_PROTOCOL_VERSION_HEADER = "Upstash-Workflow-Sdk-Version";
|
|
|
92
92
|
var DEFAULT_CONTENT_TYPE = "application/json";
|
|
93
93
|
var NO_CONCURRENCY = 1;
|
|
94
94
|
var DEFAULT_RETRIES = 3;
|
|
95
|
-
var VERSION = "v0.2.
|
|
95
|
+
var VERSION = "v0.2.20";
|
|
96
96
|
var SDK_TELEMETRY = `@upstash/workflow@${VERSION}`;
|
|
97
97
|
var TELEMETRY_HEADER_SDK = "Upstash-Telemetry-Sdk";
|
|
98
98
|
var TELEMETRY_HEADER_FRAMEWORK = "Upstash-Telemetry-Framework";
|
|
@@ -143,7 +143,8 @@ var WorkflowNonRetryableError = class extends WorkflowAbort {
|
|
|
143
143
|
var formatWorkflowError = (error) => {
|
|
144
144
|
return error instanceof Error ? {
|
|
145
145
|
error: error.name,
|
|
146
|
-
message: error.message
|
|
146
|
+
message: error.message,
|
|
147
|
+
stack: error.stack
|
|
147
148
|
} : {
|
|
148
149
|
error: "Error",
|
|
149
150
|
message: `An error occured while executing workflow: '${typeof error === "string" ? error : JSON.stringify(error)}'`
|
|
@@ -1134,9 +1135,10 @@ var LazyCallStep = class _LazyCallStep extends BaseLazyStep {
|
|
|
1134
1135
|
retryDelay;
|
|
1135
1136
|
timeout;
|
|
1136
1137
|
flowControl;
|
|
1138
|
+
stringifyBody;
|
|
1137
1139
|
stepType = "Call";
|
|
1138
1140
|
allowUndefinedOut = false;
|
|
1139
|
-
constructor(stepName, url, method, body, headers, retries, retryDelay, timeout, flowControl) {
|
|
1141
|
+
constructor(stepName, url, method, body, headers, retries, retryDelay, timeout, flowControl, stringifyBody) {
|
|
1140
1142
|
super(stepName);
|
|
1141
1143
|
this.url = url;
|
|
1142
1144
|
this.method = method;
|
|
@@ -1146,6 +1148,7 @@ var LazyCallStep = class _LazyCallStep extends BaseLazyStep {
|
|
|
1146
1148
|
this.retryDelay = retryDelay;
|
|
1147
1149
|
this.timeout = timeout;
|
|
1148
1150
|
this.flowControl = flowControl;
|
|
1151
|
+
this.stringifyBody = stringifyBody;
|
|
1149
1152
|
}
|
|
1150
1153
|
getPlanStep(concurrent, targetStep) {
|
|
1151
1154
|
return {
|
|
@@ -1255,10 +1258,22 @@ var LazyCallStep = class _LazyCallStep extends BaseLazyStep {
|
|
|
1255
1258
|
};
|
|
1256
1259
|
}
|
|
1257
1260
|
async submitStep({ context, headers }) {
|
|
1261
|
+
let callBody;
|
|
1262
|
+
if (this.stringifyBody) {
|
|
1263
|
+
callBody = JSON.stringify(this.body);
|
|
1264
|
+
} else {
|
|
1265
|
+
if (typeof this.body === "string") {
|
|
1266
|
+
callBody = this.body;
|
|
1267
|
+
} else {
|
|
1268
|
+
throw new WorkflowError(
|
|
1269
|
+
"When stringifyBody is false, body must be a string. Please check the body type of your call step."
|
|
1270
|
+
);
|
|
1271
|
+
}
|
|
1272
|
+
}
|
|
1258
1273
|
return await context.qstashClient.batch([
|
|
1259
1274
|
{
|
|
1260
1275
|
headers,
|
|
1261
|
-
body:
|
|
1276
|
+
body: callBody,
|
|
1262
1277
|
method: this.method,
|
|
1263
1278
|
url: this.url,
|
|
1264
1279
|
retries: DEFAULT_RETRIES === this.retries ? void 0 : this.retries,
|
|
@@ -1393,7 +1408,8 @@ var LazyInvokeStep = class extends BaseLazyStep {
|
|
|
1393
1408
|
workflowRunId,
|
|
1394
1409
|
retries,
|
|
1395
1410
|
retryDelay,
|
|
1396
|
-
flowControl
|
|
1411
|
+
flowControl,
|
|
1412
|
+
stringifyBody = true
|
|
1397
1413
|
}) {
|
|
1398
1414
|
super(stepName);
|
|
1399
1415
|
this.params = {
|
|
@@ -1403,7 +1419,8 @@ var LazyInvokeStep = class extends BaseLazyStep {
|
|
|
1403
1419
|
workflowRunId: getWorkflowRunId(workflowRunId),
|
|
1404
1420
|
retries,
|
|
1405
1421
|
retryDelay,
|
|
1406
|
-
flowControl
|
|
1422
|
+
flowControl,
|
|
1423
|
+
stringifyBody
|
|
1407
1424
|
};
|
|
1408
1425
|
const { workflowId } = workflow;
|
|
1409
1426
|
if (!workflowId) {
|
|
@@ -1456,8 +1473,20 @@ var LazyInvokeStep = class extends BaseLazyStep {
|
|
|
1456
1473
|
invokeCount
|
|
1457
1474
|
});
|
|
1458
1475
|
invokerHeaders["Upstash-Workflow-Runid"] = context.workflowRunId;
|
|
1476
|
+
let invokeBody;
|
|
1477
|
+
if (this.params.stringifyBody) {
|
|
1478
|
+
invokeBody = JSON.stringify(this.params.body);
|
|
1479
|
+
} else {
|
|
1480
|
+
if (typeof this.params.body === "string") {
|
|
1481
|
+
invokeBody = this.params.body;
|
|
1482
|
+
} else {
|
|
1483
|
+
throw new WorkflowError(
|
|
1484
|
+
"When stringifyBody is false, body must be a string. Please check the body type of your invoke step."
|
|
1485
|
+
);
|
|
1486
|
+
}
|
|
1487
|
+
}
|
|
1459
1488
|
const request = {
|
|
1460
|
-
body:
|
|
1489
|
+
body: invokeBody,
|
|
1461
1490
|
headers: Object.fromEntries(
|
|
1462
1491
|
Object.entries(invokerHeaders).map((pairs) => [pairs[0], [pairs[1]]])
|
|
1463
1492
|
),
|
|
@@ -2901,7 +2930,8 @@ var WorkflowContext = class {
|
|
|
2901
2930
|
settings.retries || 0,
|
|
2902
2931
|
settings.retryDelay,
|
|
2903
2932
|
settings.timeout,
|
|
2904
|
-
settings.flowControl ?? settings.workflow.options.flowControl
|
|
2933
|
+
settings.flowControl ?? settings.workflow.options.flowControl,
|
|
2934
|
+
settings.stringifyBody ?? true
|
|
2905
2935
|
);
|
|
2906
2936
|
} else {
|
|
2907
2937
|
const {
|
|
@@ -2912,7 +2942,8 @@ var WorkflowContext = class {
|
|
|
2912
2942
|
retries = 0,
|
|
2913
2943
|
retryDelay,
|
|
2914
2944
|
timeout,
|
|
2915
|
-
flowControl
|
|
2945
|
+
flowControl,
|
|
2946
|
+
stringifyBody = true
|
|
2916
2947
|
} = settings;
|
|
2917
2948
|
callStep = new LazyCallStep(
|
|
2918
2949
|
stepName,
|
|
@@ -2923,7 +2954,8 @@ var WorkflowContext = class {
|
|
|
2923
2954
|
retries,
|
|
2924
2955
|
retryDelay,
|
|
2925
2956
|
timeout,
|
|
2926
|
-
flowControl
|
|
2957
|
+
flowControl,
|
|
2958
|
+
stringifyBody
|
|
2927
2959
|
);
|
|
2928
2960
|
}
|
|
2929
2961
|
return await this.addStep(callStep);
|
|
@@ -3287,11 +3319,15 @@ var handleFailure = async (request, requestPayload, qstashClient, initialPayload
|
|
|
3287
3319
|
const { status, header, body, url, sourceBody, workflowRunId } = JSON.parse(requestPayload);
|
|
3288
3320
|
const decodedBody = body ? decodeBase64(body) : "{}";
|
|
3289
3321
|
let errorMessage = "";
|
|
3322
|
+
let failStack = "";
|
|
3290
3323
|
try {
|
|
3291
3324
|
const errorPayload = JSON.parse(decodedBody);
|
|
3292
3325
|
if (errorPayload.message) {
|
|
3293
3326
|
errorMessage = errorPayload.message;
|
|
3294
3327
|
}
|
|
3328
|
+
if (errorPayload.stack) {
|
|
3329
|
+
failStack = errorPayload.stack;
|
|
3330
|
+
}
|
|
3295
3331
|
} catch {
|
|
3296
3332
|
}
|
|
3297
3333
|
if (!errorMessage) {
|
|
@@ -3329,7 +3365,8 @@ var handleFailure = async (request, requestPayload, qstashClient, initialPayload
|
|
|
3329
3365
|
context: workflowContext,
|
|
3330
3366
|
failStatus: status,
|
|
3331
3367
|
failResponse: errorMessage,
|
|
3332
|
-
failHeaders: header
|
|
3368
|
+
failHeaders: header,
|
|
3369
|
+
failStack
|
|
3333
3370
|
});
|
|
3334
3371
|
return ok({ result: "is-failure-callback", response: failureResponse });
|
|
3335
3372
|
} catch (error) {
|
package/astro.mjs
CHANGED
|
@@ -43,7 +43,7 @@ var WORKFLOW_PROTOCOL_VERSION_HEADER = "Upstash-Workflow-Sdk-Version";
|
|
|
43
43
|
var DEFAULT_CONTENT_TYPE = "application/json";
|
|
44
44
|
var NO_CONCURRENCY = 1;
|
|
45
45
|
var DEFAULT_RETRIES = 3;
|
|
46
|
-
var VERSION = "v0.2.
|
|
46
|
+
var VERSION = "v0.2.20";
|
|
47
47
|
var SDK_TELEMETRY = `@upstash/workflow@${VERSION}`;
|
|
48
48
|
var TELEMETRY_HEADER_SDK = "Upstash-Telemetry-Sdk";
|
|
49
49
|
var TELEMETRY_HEADER_FRAMEWORK = "Upstash-Telemetry-Framework";
|
|
@@ -94,7 +94,8 @@ var WorkflowNonRetryableError = class extends WorkflowAbort {
|
|
|
94
94
|
var formatWorkflowError = (error) => {
|
|
95
95
|
return error instanceof Error ? {
|
|
96
96
|
error: error.name,
|
|
97
|
-
message: error.message
|
|
97
|
+
message: error.message,
|
|
98
|
+
stack: error.stack
|
|
98
99
|
} : {
|
|
99
100
|
error: "Error",
|
|
100
101
|
message: `An error occured while executing workflow: '${typeof error === "string" ? error : JSON.stringify(error)}'`
|
|
@@ -1351,9 +1352,10 @@ var LazyCallStep = class _LazyCallStep extends BaseLazyStep {
|
|
|
1351
1352
|
retryDelay;
|
|
1352
1353
|
timeout;
|
|
1353
1354
|
flowControl;
|
|
1355
|
+
stringifyBody;
|
|
1354
1356
|
stepType = "Call";
|
|
1355
1357
|
allowUndefinedOut = false;
|
|
1356
|
-
constructor(stepName, url, method, body, headers, retries, retryDelay, timeout, flowControl) {
|
|
1358
|
+
constructor(stepName, url, method, body, headers, retries, retryDelay, timeout, flowControl, stringifyBody) {
|
|
1357
1359
|
super(stepName);
|
|
1358
1360
|
this.url = url;
|
|
1359
1361
|
this.method = method;
|
|
@@ -1363,6 +1365,7 @@ var LazyCallStep = class _LazyCallStep extends BaseLazyStep {
|
|
|
1363
1365
|
this.retryDelay = retryDelay;
|
|
1364
1366
|
this.timeout = timeout;
|
|
1365
1367
|
this.flowControl = flowControl;
|
|
1368
|
+
this.stringifyBody = stringifyBody;
|
|
1366
1369
|
}
|
|
1367
1370
|
getPlanStep(concurrent, targetStep) {
|
|
1368
1371
|
return {
|
|
@@ -1472,10 +1475,22 @@ var LazyCallStep = class _LazyCallStep extends BaseLazyStep {
|
|
|
1472
1475
|
};
|
|
1473
1476
|
}
|
|
1474
1477
|
async submitStep({ context, headers }) {
|
|
1478
|
+
let callBody;
|
|
1479
|
+
if (this.stringifyBody) {
|
|
1480
|
+
callBody = JSON.stringify(this.body);
|
|
1481
|
+
} else {
|
|
1482
|
+
if (typeof this.body === "string") {
|
|
1483
|
+
callBody = this.body;
|
|
1484
|
+
} else {
|
|
1485
|
+
throw new WorkflowError(
|
|
1486
|
+
"When stringifyBody is false, body must be a string. Please check the body type of your call step."
|
|
1487
|
+
);
|
|
1488
|
+
}
|
|
1489
|
+
}
|
|
1475
1490
|
return await context.qstashClient.batch([
|
|
1476
1491
|
{
|
|
1477
1492
|
headers,
|
|
1478
|
-
body:
|
|
1493
|
+
body: callBody,
|
|
1479
1494
|
method: this.method,
|
|
1480
1495
|
url: this.url,
|
|
1481
1496
|
retries: DEFAULT_RETRIES === this.retries ? void 0 : this.retries,
|
|
@@ -1610,7 +1625,8 @@ var LazyInvokeStep = class extends BaseLazyStep {
|
|
|
1610
1625
|
workflowRunId,
|
|
1611
1626
|
retries,
|
|
1612
1627
|
retryDelay,
|
|
1613
|
-
flowControl
|
|
1628
|
+
flowControl,
|
|
1629
|
+
stringifyBody = true
|
|
1614
1630
|
}) {
|
|
1615
1631
|
super(stepName);
|
|
1616
1632
|
this.params = {
|
|
@@ -1620,7 +1636,8 @@ var LazyInvokeStep = class extends BaseLazyStep {
|
|
|
1620
1636
|
workflowRunId: getWorkflowRunId(workflowRunId),
|
|
1621
1637
|
retries,
|
|
1622
1638
|
retryDelay,
|
|
1623
|
-
flowControl
|
|
1639
|
+
flowControl,
|
|
1640
|
+
stringifyBody
|
|
1624
1641
|
};
|
|
1625
1642
|
const { workflowId } = workflow;
|
|
1626
1643
|
if (!workflowId) {
|
|
@@ -1673,8 +1690,20 @@ var LazyInvokeStep = class extends BaseLazyStep {
|
|
|
1673
1690
|
invokeCount
|
|
1674
1691
|
});
|
|
1675
1692
|
invokerHeaders["Upstash-Workflow-Runid"] = context.workflowRunId;
|
|
1693
|
+
let invokeBody;
|
|
1694
|
+
if (this.params.stringifyBody) {
|
|
1695
|
+
invokeBody = JSON.stringify(this.params.body);
|
|
1696
|
+
} else {
|
|
1697
|
+
if (typeof this.params.body === "string") {
|
|
1698
|
+
invokeBody = this.params.body;
|
|
1699
|
+
} else {
|
|
1700
|
+
throw new WorkflowError(
|
|
1701
|
+
"When stringifyBody is false, body must be a string. Please check the body type of your invoke step."
|
|
1702
|
+
);
|
|
1703
|
+
}
|
|
1704
|
+
}
|
|
1676
1705
|
const request = {
|
|
1677
|
-
body:
|
|
1706
|
+
body: invokeBody,
|
|
1678
1707
|
headers: Object.fromEntries(
|
|
1679
1708
|
Object.entries(invokerHeaders).map((pairs) => [pairs[0], [pairs[1]]])
|
|
1680
1709
|
),
|
|
@@ -2945,7 +2974,8 @@ var WorkflowContext = class {
|
|
|
2945
2974
|
settings.retries || 0,
|
|
2946
2975
|
settings.retryDelay,
|
|
2947
2976
|
settings.timeout,
|
|
2948
|
-
settings.flowControl ?? settings.workflow.options.flowControl
|
|
2977
|
+
settings.flowControl ?? settings.workflow.options.flowControl,
|
|
2978
|
+
settings.stringifyBody ?? true
|
|
2949
2979
|
);
|
|
2950
2980
|
} else {
|
|
2951
2981
|
const {
|
|
@@ -2956,7 +2986,8 @@ var WorkflowContext = class {
|
|
|
2956
2986
|
retries = 0,
|
|
2957
2987
|
retryDelay,
|
|
2958
2988
|
timeout,
|
|
2959
|
-
flowControl
|
|
2989
|
+
flowControl,
|
|
2990
|
+
stringifyBody = true
|
|
2960
2991
|
} = settings;
|
|
2961
2992
|
callStep = new LazyCallStep(
|
|
2962
2993
|
stepName,
|
|
@@ -2967,7 +2998,8 @@ var WorkflowContext = class {
|
|
|
2967
2998
|
retries,
|
|
2968
2999
|
retryDelay,
|
|
2969
3000
|
timeout,
|
|
2970
|
-
flowControl
|
|
3001
|
+
flowControl,
|
|
3002
|
+
stringifyBody
|
|
2971
3003
|
);
|
|
2972
3004
|
}
|
|
2973
3005
|
return await this.addStep(callStep);
|
|
@@ -3331,11 +3363,15 @@ var handleFailure = async (request, requestPayload, qstashClient, initialPayload
|
|
|
3331
3363
|
const { status, header, body, url, sourceBody, workflowRunId } = JSON.parse(requestPayload);
|
|
3332
3364
|
const decodedBody = body ? decodeBase64(body) : "{}";
|
|
3333
3365
|
let errorMessage = "";
|
|
3366
|
+
let failStack = "";
|
|
3334
3367
|
try {
|
|
3335
3368
|
const errorPayload = JSON.parse(decodedBody);
|
|
3336
3369
|
if (errorPayload.message) {
|
|
3337
3370
|
errorMessage = errorPayload.message;
|
|
3338
3371
|
}
|
|
3372
|
+
if (errorPayload.stack) {
|
|
3373
|
+
failStack = errorPayload.stack;
|
|
3374
|
+
}
|
|
3339
3375
|
} catch {
|
|
3340
3376
|
}
|
|
3341
3377
|
if (!errorMessage) {
|
|
@@ -3373,7 +3409,8 @@ var handleFailure = async (request, requestPayload, qstashClient, initialPayload
|
|
|
3373
3409
|
context: workflowContext,
|
|
3374
3410
|
failStatus: status,
|
|
3375
3411
|
failResponse: errorMessage,
|
|
3376
|
-
failHeaders: header
|
|
3412
|
+
failHeaders: header,
|
|
3413
|
+
failStack
|
|
3377
3414
|
});
|
|
3378
3415
|
return ok({ result: "is-failure-callback", response: failureResponse });
|
|
3379
3416
|
} catch (error) {
|
package/cloudflare.d.mts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { R as RouteFunction, n as PublicServeOptions,
|
|
2
|
-
import { s as serveManyBase } from './serve-many-
|
|
1
|
+
import { R as RouteFunction, n as PublicServeOptions, y as InvokableWorkflow } from './types-Q3dM0UlR.mjs';
|
|
2
|
+
import { s as serveManyBase } from './serve-many-BNusWYgt.mjs';
|
|
3
3
|
import '@upstash/qstash';
|
|
4
4
|
import 'zod';
|
|
5
5
|
import 'ai';
|
package/cloudflare.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { R as RouteFunction, n as PublicServeOptions,
|
|
2
|
-
import { s as serveManyBase } from './serve-many-
|
|
1
|
+
import { R as RouteFunction, n as PublicServeOptions, y as InvokableWorkflow } from './types-Q3dM0UlR.js';
|
|
2
|
+
import { s as serveManyBase } from './serve-many-CXqQP3RI.js';
|
|
3
3
|
import '@upstash/qstash';
|
|
4
4
|
import 'zod';
|
|
5
5
|
import 'ai';
|
package/cloudflare.js
CHANGED
|
@@ -39,7 +39,7 @@ var WORKFLOW_PROTOCOL_VERSION_HEADER = "Upstash-Workflow-Sdk-Version";
|
|
|
39
39
|
var DEFAULT_CONTENT_TYPE = "application/json";
|
|
40
40
|
var NO_CONCURRENCY = 1;
|
|
41
41
|
var DEFAULT_RETRIES = 3;
|
|
42
|
-
var VERSION = "v0.2.
|
|
42
|
+
var VERSION = "v0.2.20";
|
|
43
43
|
var SDK_TELEMETRY = `@upstash/workflow@${VERSION}`;
|
|
44
44
|
var TELEMETRY_HEADER_SDK = "Upstash-Telemetry-Sdk";
|
|
45
45
|
var TELEMETRY_HEADER_FRAMEWORK = "Upstash-Telemetry-Framework";
|
|
@@ -143,7 +143,8 @@ var WorkflowNonRetryableError = class extends WorkflowAbort {
|
|
|
143
143
|
var formatWorkflowError = (error) => {
|
|
144
144
|
return error instanceof Error ? {
|
|
145
145
|
error: error.name,
|
|
146
|
-
message: error.message
|
|
146
|
+
message: error.message,
|
|
147
|
+
stack: error.stack
|
|
147
148
|
} : {
|
|
148
149
|
error: "Error",
|
|
149
150
|
message: `An error occured while executing workflow: '${typeof error === "string" ? error : JSON.stringify(error)}'`
|
|
@@ -1134,9 +1135,10 @@ var LazyCallStep = class _LazyCallStep extends BaseLazyStep {
|
|
|
1134
1135
|
retryDelay;
|
|
1135
1136
|
timeout;
|
|
1136
1137
|
flowControl;
|
|
1138
|
+
stringifyBody;
|
|
1137
1139
|
stepType = "Call";
|
|
1138
1140
|
allowUndefinedOut = false;
|
|
1139
|
-
constructor(stepName, url, method, body, headers, retries, retryDelay, timeout, flowControl) {
|
|
1141
|
+
constructor(stepName, url, method, body, headers, retries, retryDelay, timeout, flowControl, stringifyBody) {
|
|
1140
1142
|
super(stepName);
|
|
1141
1143
|
this.url = url;
|
|
1142
1144
|
this.method = method;
|
|
@@ -1146,6 +1148,7 @@ var LazyCallStep = class _LazyCallStep extends BaseLazyStep {
|
|
|
1146
1148
|
this.retryDelay = retryDelay;
|
|
1147
1149
|
this.timeout = timeout;
|
|
1148
1150
|
this.flowControl = flowControl;
|
|
1151
|
+
this.stringifyBody = stringifyBody;
|
|
1149
1152
|
}
|
|
1150
1153
|
getPlanStep(concurrent, targetStep) {
|
|
1151
1154
|
return {
|
|
@@ -1255,10 +1258,22 @@ var LazyCallStep = class _LazyCallStep extends BaseLazyStep {
|
|
|
1255
1258
|
};
|
|
1256
1259
|
}
|
|
1257
1260
|
async submitStep({ context, headers }) {
|
|
1261
|
+
let callBody;
|
|
1262
|
+
if (this.stringifyBody) {
|
|
1263
|
+
callBody = JSON.stringify(this.body);
|
|
1264
|
+
} else {
|
|
1265
|
+
if (typeof this.body === "string") {
|
|
1266
|
+
callBody = this.body;
|
|
1267
|
+
} else {
|
|
1268
|
+
throw new WorkflowError(
|
|
1269
|
+
"When stringifyBody is false, body must be a string. Please check the body type of your call step."
|
|
1270
|
+
);
|
|
1271
|
+
}
|
|
1272
|
+
}
|
|
1258
1273
|
return await context.qstashClient.batch([
|
|
1259
1274
|
{
|
|
1260
1275
|
headers,
|
|
1261
|
-
body:
|
|
1276
|
+
body: callBody,
|
|
1262
1277
|
method: this.method,
|
|
1263
1278
|
url: this.url,
|
|
1264
1279
|
retries: DEFAULT_RETRIES === this.retries ? void 0 : this.retries,
|
|
@@ -1393,7 +1408,8 @@ var LazyInvokeStep = class extends BaseLazyStep {
|
|
|
1393
1408
|
workflowRunId,
|
|
1394
1409
|
retries,
|
|
1395
1410
|
retryDelay,
|
|
1396
|
-
flowControl
|
|
1411
|
+
flowControl,
|
|
1412
|
+
stringifyBody = true
|
|
1397
1413
|
}) {
|
|
1398
1414
|
super(stepName);
|
|
1399
1415
|
this.params = {
|
|
@@ -1403,7 +1419,8 @@ var LazyInvokeStep = class extends BaseLazyStep {
|
|
|
1403
1419
|
workflowRunId: getWorkflowRunId(workflowRunId),
|
|
1404
1420
|
retries,
|
|
1405
1421
|
retryDelay,
|
|
1406
|
-
flowControl
|
|
1422
|
+
flowControl,
|
|
1423
|
+
stringifyBody
|
|
1407
1424
|
};
|
|
1408
1425
|
const { workflowId } = workflow;
|
|
1409
1426
|
if (!workflowId) {
|
|
@@ -1456,8 +1473,20 @@ var LazyInvokeStep = class extends BaseLazyStep {
|
|
|
1456
1473
|
invokeCount
|
|
1457
1474
|
});
|
|
1458
1475
|
invokerHeaders["Upstash-Workflow-Runid"] = context.workflowRunId;
|
|
1476
|
+
let invokeBody;
|
|
1477
|
+
if (this.params.stringifyBody) {
|
|
1478
|
+
invokeBody = JSON.stringify(this.params.body);
|
|
1479
|
+
} else {
|
|
1480
|
+
if (typeof this.params.body === "string") {
|
|
1481
|
+
invokeBody = this.params.body;
|
|
1482
|
+
} else {
|
|
1483
|
+
throw new WorkflowError(
|
|
1484
|
+
"When stringifyBody is false, body must be a string. Please check the body type of your invoke step."
|
|
1485
|
+
);
|
|
1486
|
+
}
|
|
1487
|
+
}
|
|
1459
1488
|
const request = {
|
|
1460
|
-
body:
|
|
1489
|
+
body: invokeBody,
|
|
1461
1490
|
headers: Object.fromEntries(
|
|
1462
1491
|
Object.entries(invokerHeaders).map((pairs) => [pairs[0], [pairs[1]]])
|
|
1463
1492
|
),
|
|
@@ -2901,7 +2930,8 @@ var WorkflowContext = class {
|
|
|
2901
2930
|
settings.retries || 0,
|
|
2902
2931
|
settings.retryDelay,
|
|
2903
2932
|
settings.timeout,
|
|
2904
|
-
settings.flowControl ?? settings.workflow.options.flowControl
|
|
2933
|
+
settings.flowControl ?? settings.workflow.options.flowControl,
|
|
2934
|
+
settings.stringifyBody ?? true
|
|
2905
2935
|
);
|
|
2906
2936
|
} else {
|
|
2907
2937
|
const {
|
|
@@ -2912,7 +2942,8 @@ var WorkflowContext = class {
|
|
|
2912
2942
|
retries = 0,
|
|
2913
2943
|
retryDelay,
|
|
2914
2944
|
timeout,
|
|
2915
|
-
flowControl
|
|
2945
|
+
flowControl,
|
|
2946
|
+
stringifyBody = true
|
|
2916
2947
|
} = settings;
|
|
2917
2948
|
callStep = new LazyCallStep(
|
|
2918
2949
|
stepName,
|
|
@@ -2923,7 +2954,8 @@ var WorkflowContext = class {
|
|
|
2923
2954
|
retries,
|
|
2924
2955
|
retryDelay,
|
|
2925
2956
|
timeout,
|
|
2926
|
-
flowControl
|
|
2957
|
+
flowControl,
|
|
2958
|
+
stringifyBody
|
|
2927
2959
|
);
|
|
2928
2960
|
}
|
|
2929
2961
|
return await this.addStep(callStep);
|
|
@@ -3287,11 +3319,15 @@ var handleFailure = async (request, requestPayload, qstashClient, initialPayload
|
|
|
3287
3319
|
const { status, header, body, url, sourceBody, workflowRunId } = JSON.parse(requestPayload);
|
|
3288
3320
|
const decodedBody = body ? decodeBase64(body) : "{}";
|
|
3289
3321
|
let errorMessage = "";
|
|
3322
|
+
let failStack = "";
|
|
3290
3323
|
try {
|
|
3291
3324
|
const errorPayload = JSON.parse(decodedBody);
|
|
3292
3325
|
if (errorPayload.message) {
|
|
3293
3326
|
errorMessage = errorPayload.message;
|
|
3294
3327
|
}
|
|
3328
|
+
if (errorPayload.stack) {
|
|
3329
|
+
failStack = errorPayload.stack;
|
|
3330
|
+
}
|
|
3295
3331
|
} catch {
|
|
3296
3332
|
}
|
|
3297
3333
|
if (!errorMessage) {
|
|
@@ -3329,7 +3365,8 @@ var handleFailure = async (request, requestPayload, qstashClient, initialPayload
|
|
|
3329
3365
|
context: workflowContext,
|
|
3330
3366
|
failStatus: status,
|
|
3331
3367
|
failResponse: errorMessage,
|
|
3332
|
-
failHeaders: header
|
|
3368
|
+
failHeaders: header,
|
|
3369
|
+
failStack
|
|
3333
3370
|
});
|
|
3334
3371
|
return ok({ result: "is-failure-callback", response: failureResponse });
|
|
3335
3372
|
} catch (error) {
|
package/cloudflare.mjs
CHANGED
package/express.d.mts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import * as express_serve_static_core from 'express-serve-static-core';
|
|
2
|
-
import { R as RouteFunction, W as WorkflowServeOptions,
|
|
2
|
+
import { R as RouteFunction, W as WorkflowServeOptions, y as InvokableWorkflow } from './types-Q3dM0UlR.mjs';
|
|
3
3
|
import { Router } from 'express';
|
|
4
|
-
import { s as serveManyBase } from './serve-many-
|
|
4
|
+
import { s as serveManyBase } from './serve-many-BNusWYgt.mjs';
|
|
5
5
|
import '@upstash/qstash';
|
|
6
6
|
import 'zod';
|
|
7
7
|
import 'ai';
|
package/express.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import * as express_serve_static_core from 'express-serve-static-core';
|
|
2
|
-
import { R as RouteFunction, W as WorkflowServeOptions,
|
|
2
|
+
import { R as RouteFunction, W as WorkflowServeOptions, y as InvokableWorkflow } from './types-Q3dM0UlR.js';
|
|
3
3
|
import { Router } from 'express';
|
|
4
|
-
import { s as serveManyBase } from './serve-many-
|
|
4
|
+
import { s as serveManyBase } from './serve-many-CXqQP3RI.js';
|
|
5
5
|
import '@upstash/qstash';
|
|
6
6
|
import 'zod';
|
|
7
7
|
import 'ai';
|