@upstash/workflow 0.2.19 → 0.2.21
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 +65 -16
- package/astro.mjs +2 -2
- package/{chunk-37XOXDLZ.mjs → chunk-NQDNC5P4.mjs} +64 -15
- package/cloudflare.d.mts +2 -2
- package/cloudflare.d.ts +2 -2
- package/cloudflare.js +64 -15
- package/cloudflare.mjs +1 -1
- package/express.d.mts +2 -2
- package/express.d.ts +2 -2
- package/express.js +64 -15
- package/express.mjs +1 -1
- package/h3.d.mts +2 -2
- package/h3.d.ts +2 -2
- package/h3.js +64 -15
- package/h3.mjs +1 -1
- package/hono.d.mts +2 -2
- package/hono.d.ts +2 -2
- package/hono.js +64 -15
- package/hono.mjs +1 -1
- package/index.d.mts +9 -2
- package/index.d.ts +9 -2
- package/index.js +66 -16
- package/index.mjs +3 -2
- package/nextjs.d.mts +2 -2
- package/nextjs.d.ts +2 -2
- package/nextjs.js +64 -15
- 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 +64 -15
- package/solidjs.mjs +1 -1
- package/svelte.d.mts +2 -2
- package/svelte.d.ts +2 -2
- package/svelte.js +64 -15
- package/svelte.mjs +1 -1
- package/tanstack.d.mts +36 -0
- package/tanstack.d.ts +36 -0
- package/tanstack.js +3737 -0
- package/tanstack.mjs +48 -0
- 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/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.21";
|
|
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)}'`
|
|
@@ -614,7 +615,15 @@ var triggerFirstInvocation = async (params) => {
|
|
|
614
615
|
const firstInvocationParams = Array.isArray(params) ? params : [params];
|
|
615
616
|
const workflowContextClient = firstInvocationParams[0].workflowContext.qstashClient;
|
|
616
617
|
const invocationBatch = firstInvocationParams.map(
|
|
617
|
-
({
|
|
618
|
+
({
|
|
619
|
+
workflowContext,
|
|
620
|
+
useJSONContent,
|
|
621
|
+
telemetry: telemetry2,
|
|
622
|
+
invokeCount,
|
|
623
|
+
delay,
|
|
624
|
+
notBefore,
|
|
625
|
+
keepTriggerConfig
|
|
626
|
+
}) => {
|
|
618
627
|
const { headers } = getHeaders({
|
|
619
628
|
initHeaderValue: "true",
|
|
620
629
|
workflowConfig: {
|
|
@@ -628,7 +637,8 @@ var triggerFirstInvocation = async (params) => {
|
|
|
628
637
|
useJSONContent: useJSONContent ?? false
|
|
629
638
|
},
|
|
630
639
|
invokeCount: invokeCount ?? 0,
|
|
631
|
-
userHeaders: workflowContext.headers
|
|
640
|
+
userHeaders: workflowContext.headers,
|
|
641
|
+
keepTriggerConfig
|
|
632
642
|
});
|
|
633
643
|
if (workflowContext.headers.get("content-type")) {
|
|
634
644
|
headers["content-type"] = workflowContext.headers.get("content-type");
|
|
@@ -1134,9 +1144,10 @@ var LazyCallStep = class _LazyCallStep extends BaseLazyStep {
|
|
|
1134
1144
|
retryDelay;
|
|
1135
1145
|
timeout;
|
|
1136
1146
|
flowControl;
|
|
1147
|
+
stringifyBody;
|
|
1137
1148
|
stepType = "Call";
|
|
1138
1149
|
allowUndefinedOut = false;
|
|
1139
|
-
constructor(stepName, url, method, body, headers, retries, retryDelay, timeout, flowControl) {
|
|
1150
|
+
constructor(stepName, url, method, body, headers, retries, retryDelay, timeout, flowControl, stringifyBody) {
|
|
1140
1151
|
super(stepName);
|
|
1141
1152
|
this.url = url;
|
|
1142
1153
|
this.method = method;
|
|
@@ -1146,6 +1157,7 @@ var LazyCallStep = class _LazyCallStep extends BaseLazyStep {
|
|
|
1146
1157
|
this.retryDelay = retryDelay;
|
|
1147
1158
|
this.timeout = timeout;
|
|
1148
1159
|
this.flowControl = flowControl;
|
|
1160
|
+
this.stringifyBody = stringifyBody;
|
|
1149
1161
|
}
|
|
1150
1162
|
getPlanStep(concurrent, targetStep) {
|
|
1151
1163
|
return {
|
|
@@ -1255,10 +1267,22 @@ var LazyCallStep = class _LazyCallStep extends BaseLazyStep {
|
|
|
1255
1267
|
};
|
|
1256
1268
|
}
|
|
1257
1269
|
async submitStep({ context, headers }) {
|
|
1270
|
+
let callBody;
|
|
1271
|
+
if (this.stringifyBody) {
|
|
1272
|
+
callBody = JSON.stringify(this.body);
|
|
1273
|
+
} else {
|
|
1274
|
+
if (typeof this.body === "string") {
|
|
1275
|
+
callBody = this.body;
|
|
1276
|
+
} else {
|
|
1277
|
+
throw new WorkflowError(
|
|
1278
|
+
"When stringifyBody is false, body must be a string. Please check the body type of your call step."
|
|
1279
|
+
);
|
|
1280
|
+
}
|
|
1281
|
+
}
|
|
1258
1282
|
return await context.qstashClient.batch([
|
|
1259
1283
|
{
|
|
1260
1284
|
headers,
|
|
1261
|
-
body:
|
|
1285
|
+
body: callBody,
|
|
1262
1286
|
method: this.method,
|
|
1263
1287
|
url: this.url,
|
|
1264
1288
|
retries: DEFAULT_RETRIES === this.retries ? void 0 : this.retries,
|
|
@@ -1393,7 +1417,8 @@ var LazyInvokeStep = class extends BaseLazyStep {
|
|
|
1393
1417
|
workflowRunId,
|
|
1394
1418
|
retries,
|
|
1395
1419
|
retryDelay,
|
|
1396
|
-
flowControl
|
|
1420
|
+
flowControl,
|
|
1421
|
+
stringifyBody = true
|
|
1397
1422
|
}) {
|
|
1398
1423
|
super(stepName);
|
|
1399
1424
|
this.params = {
|
|
@@ -1403,7 +1428,8 @@ var LazyInvokeStep = class extends BaseLazyStep {
|
|
|
1403
1428
|
workflowRunId: getWorkflowRunId(workflowRunId),
|
|
1404
1429
|
retries,
|
|
1405
1430
|
retryDelay,
|
|
1406
|
-
flowControl
|
|
1431
|
+
flowControl,
|
|
1432
|
+
stringifyBody
|
|
1407
1433
|
};
|
|
1408
1434
|
const { workflowId } = workflow;
|
|
1409
1435
|
if (!workflowId) {
|
|
@@ -1456,8 +1482,20 @@ var LazyInvokeStep = class extends BaseLazyStep {
|
|
|
1456
1482
|
invokeCount
|
|
1457
1483
|
});
|
|
1458
1484
|
invokerHeaders["Upstash-Workflow-Runid"] = context.workflowRunId;
|
|
1485
|
+
let invokeBody;
|
|
1486
|
+
if (this.params.stringifyBody) {
|
|
1487
|
+
invokeBody = JSON.stringify(this.params.body);
|
|
1488
|
+
} else {
|
|
1489
|
+
if (typeof this.params.body === "string") {
|
|
1490
|
+
invokeBody = this.params.body;
|
|
1491
|
+
} else {
|
|
1492
|
+
throw new WorkflowError(
|
|
1493
|
+
"When stringifyBody is false, body must be a string. Please check the body type of your invoke step."
|
|
1494
|
+
);
|
|
1495
|
+
}
|
|
1496
|
+
}
|
|
1459
1497
|
const request = {
|
|
1460
|
-
body:
|
|
1498
|
+
body: invokeBody,
|
|
1461
1499
|
headers: Object.fromEntries(
|
|
1462
1500
|
Object.entries(invokerHeaders).map((pairs) => [pairs[0], [pairs[1]]])
|
|
1463
1501
|
),
|
|
@@ -1537,12 +1575,14 @@ var WorkflowHeaders = class {
|
|
|
1537
1575
|
initHeaderValue;
|
|
1538
1576
|
stepInfo;
|
|
1539
1577
|
headers;
|
|
1578
|
+
keepTriggerConfig;
|
|
1540
1579
|
constructor({
|
|
1541
1580
|
userHeaders,
|
|
1542
1581
|
workflowConfig,
|
|
1543
1582
|
invokeCount,
|
|
1544
1583
|
initHeaderValue,
|
|
1545
|
-
stepInfo
|
|
1584
|
+
stepInfo,
|
|
1585
|
+
keepTriggerConfig
|
|
1546
1586
|
}) {
|
|
1547
1587
|
this.userHeaders = userHeaders;
|
|
1548
1588
|
this.workflowConfig = workflowConfig;
|
|
@@ -1554,6 +1594,7 @@ var WorkflowHeaders = class {
|
|
|
1554
1594
|
workflowHeaders: {},
|
|
1555
1595
|
failureHeaders: {}
|
|
1556
1596
|
};
|
|
1597
|
+
this.keepTriggerConfig = keepTriggerConfig;
|
|
1557
1598
|
}
|
|
1558
1599
|
getHeaders() {
|
|
1559
1600
|
this.addBaseHeaders();
|
|
@@ -1572,7 +1613,7 @@ var WorkflowHeaders = class {
|
|
|
1572
1613
|
[WORKFLOW_INIT_HEADER]: this.initHeaderValue,
|
|
1573
1614
|
[WORKFLOW_ID_HEADER]: this.workflowConfig.workflowRunId,
|
|
1574
1615
|
[WORKFLOW_URL_HEADER]: this.workflowConfig.workflowUrl,
|
|
1575
|
-
[WORKFLOW_FEATURE_HEADER]: "LazyFetch,InitialBody,WF_DetectTrigger",
|
|
1616
|
+
[WORKFLOW_FEATURE_HEADER]: "LazyFetch,InitialBody,WF_DetectTrigger" + (this.keepTriggerConfig ? ",WF_TriggerOnConfig" : ""),
|
|
1576
1617
|
[WORKFLOW_PROTOCOL_VERSION_HEADER]: WORKFLOW_PROTOCOL_VERSION,
|
|
1577
1618
|
...this.workflowConfig.telemetry ? getTelemetryHeaders(this.workflowConfig.telemetry) : {},
|
|
1578
1619
|
...this.workflowConfig.telemetry && this.stepInfo?.lazyStep instanceof LazyCallStep && this.stepInfo.lazyStep.headers[AGENT_NAME_HEADER] ? { [TELEMETRY_HEADER_AGENT]: "true" } : {}
|
|
@@ -2901,7 +2942,8 @@ var WorkflowContext = class {
|
|
|
2901
2942
|
settings.retries || 0,
|
|
2902
2943
|
settings.retryDelay,
|
|
2903
2944
|
settings.timeout,
|
|
2904
|
-
settings.flowControl ?? settings.workflow.options.flowControl
|
|
2945
|
+
settings.flowControl ?? settings.workflow.options.flowControl,
|
|
2946
|
+
settings.stringifyBody ?? true
|
|
2905
2947
|
);
|
|
2906
2948
|
} else {
|
|
2907
2949
|
const {
|
|
@@ -2912,7 +2954,8 @@ var WorkflowContext = class {
|
|
|
2912
2954
|
retries = 0,
|
|
2913
2955
|
retryDelay,
|
|
2914
2956
|
timeout,
|
|
2915
|
-
flowControl
|
|
2957
|
+
flowControl,
|
|
2958
|
+
stringifyBody = true
|
|
2916
2959
|
} = settings;
|
|
2917
2960
|
callStep = new LazyCallStep(
|
|
2918
2961
|
stepName,
|
|
@@ -2923,7 +2966,8 @@ var WorkflowContext = class {
|
|
|
2923
2966
|
retries,
|
|
2924
2967
|
retryDelay,
|
|
2925
2968
|
timeout,
|
|
2926
|
-
flowControl
|
|
2969
|
+
flowControl,
|
|
2970
|
+
stringifyBody
|
|
2927
2971
|
);
|
|
2928
2972
|
}
|
|
2929
2973
|
return await this.addStep(callStep);
|
|
@@ -3287,11 +3331,15 @@ var handleFailure = async (request, requestPayload, qstashClient, initialPayload
|
|
|
3287
3331
|
const { status, header, body, url, sourceBody, workflowRunId } = JSON.parse(requestPayload);
|
|
3288
3332
|
const decodedBody = body ? decodeBase64(body) : "{}";
|
|
3289
3333
|
let errorMessage = "";
|
|
3334
|
+
let failStack = "";
|
|
3290
3335
|
try {
|
|
3291
3336
|
const errorPayload = JSON.parse(decodedBody);
|
|
3292
3337
|
if (errorPayload.message) {
|
|
3293
3338
|
errorMessage = errorPayload.message;
|
|
3294
3339
|
}
|
|
3340
|
+
if (errorPayload.stack) {
|
|
3341
|
+
failStack = errorPayload.stack;
|
|
3342
|
+
}
|
|
3295
3343
|
} catch {
|
|
3296
3344
|
}
|
|
3297
3345
|
if (!errorMessage) {
|
|
@@ -3329,7 +3377,8 @@ var handleFailure = async (request, requestPayload, qstashClient, initialPayload
|
|
|
3329
3377
|
context: workflowContext,
|
|
3330
3378
|
failStatus: status,
|
|
3331
3379
|
failResponse: errorMessage,
|
|
3332
|
-
failHeaders: header
|
|
3380
|
+
failHeaders: header,
|
|
3381
|
+
failStack
|
|
3333
3382
|
});
|
|
3334
3383
|
return ok({ result: "is-failure-callback", response: failureResponse });
|
|
3335
3384
|
} 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';
|
package/express.js
CHANGED
|
@@ -23485,7 +23485,7 @@ var WORKFLOW_PROTOCOL_VERSION_HEADER = "Upstash-Workflow-Sdk-Version";
|
|
|
23485
23485
|
var DEFAULT_CONTENT_TYPE = "application/json";
|
|
23486
23486
|
var NO_CONCURRENCY = 1;
|
|
23487
23487
|
var DEFAULT_RETRIES = 3;
|
|
23488
|
-
var VERSION = "v0.2.
|
|
23488
|
+
var VERSION = "v0.2.21";
|
|
23489
23489
|
var SDK_TELEMETRY = `@upstash/workflow@${VERSION}`;
|
|
23490
23490
|
var TELEMETRY_HEADER_SDK = "Upstash-Telemetry-Sdk";
|
|
23491
23491
|
var TELEMETRY_HEADER_FRAMEWORK = "Upstash-Telemetry-Framework";
|
|
@@ -23589,7 +23589,8 @@ var WorkflowNonRetryableError = class extends WorkflowAbort {
|
|
|
23589
23589
|
var formatWorkflowError = (error) => {
|
|
23590
23590
|
return error instanceof Error ? {
|
|
23591
23591
|
error: error.name,
|
|
23592
|
-
message: error.message
|
|
23592
|
+
message: error.message,
|
|
23593
|
+
stack: error.stack
|
|
23593
23594
|
} : {
|
|
23594
23595
|
error: "Error",
|
|
23595
23596
|
message: `An error occured while executing workflow: '${typeof error === "string" ? error : JSON.stringify(error)}'`
|
|
@@ -24060,7 +24061,15 @@ var triggerFirstInvocation = async (params) => {
|
|
|
24060
24061
|
const firstInvocationParams = Array.isArray(params) ? params : [params];
|
|
24061
24062
|
const workflowContextClient = firstInvocationParams[0].workflowContext.qstashClient;
|
|
24062
24063
|
const invocationBatch = firstInvocationParams.map(
|
|
24063
|
-
({
|
|
24064
|
+
({
|
|
24065
|
+
workflowContext,
|
|
24066
|
+
useJSONContent,
|
|
24067
|
+
telemetry: telemetry2,
|
|
24068
|
+
invokeCount,
|
|
24069
|
+
delay,
|
|
24070
|
+
notBefore,
|
|
24071
|
+
keepTriggerConfig
|
|
24072
|
+
}) => {
|
|
24064
24073
|
const { headers } = getHeaders({
|
|
24065
24074
|
initHeaderValue: "true",
|
|
24066
24075
|
workflowConfig: {
|
|
@@ -24074,7 +24083,8 @@ var triggerFirstInvocation = async (params) => {
|
|
|
24074
24083
|
useJSONContent: useJSONContent ?? false
|
|
24075
24084
|
},
|
|
24076
24085
|
invokeCount: invokeCount ?? 0,
|
|
24077
|
-
userHeaders: workflowContext.headers
|
|
24086
|
+
userHeaders: workflowContext.headers,
|
|
24087
|
+
keepTriggerConfig
|
|
24078
24088
|
});
|
|
24079
24089
|
if (workflowContext.headers.get("content-type")) {
|
|
24080
24090
|
headers["content-type"] = workflowContext.headers.get("content-type");
|
|
@@ -24580,9 +24590,10 @@ var LazyCallStep = class _LazyCallStep extends BaseLazyStep {
|
|
|
24580
24590
|
retryDelay;
|
|
24581
24591
|
timeout;
|
|
24582
24592
|
flowControl;
|
|
24593
|
+
stringifyBody;
|
|
24583
24594
|
stepType = "Call";
|
|
24584
24595
|
allowUndefinedOut = false;
|
|
24585
|
-
constructor(stepName, url, method, body, headers, retries, retryDelay, timeout, flowControl) {
|
|
24596
|
+
constructor(stepName, url, method, body, headers, retries, retryDelay, timeout, flowControl, stringifyBody) {
|
|
24586
24597
|
super(stepName);
|
|
24587
24598
|
this.url = url;
|
|
24588
24599
|
this.method = method;
|
|
@@ -24592,6 +24603,7 @@ var LazyCallStep = class _LazyCallStep extends BaseLazyStep {
|
|
|
24592
24603
|
this.retryDelay = retryDelay;
|
|
24593
24604
|
this.timeout = timeout;
|
|
24594
24605
|
this.flowControl = flowControl;
|
|
24606
|
+
this.stringifyBody = stringifyBody;
|
|
24595
24607
|
}
|
|
24596
24608
|
getPlanStep(concurrent, targetStep) {
|
|
24597
24609
|
return {
|
|
@@ -24701,10 +24713,22 @@ var LazyCallStep = class _LazyCallStep extends BaseLazyStep {
|
|
|
24701
24713
|
};
|
|
24702
24714
|
}
|
|
24703
24715
|
async submitStep({ context, headers }) {
|
|
24716
|
+
let callBody;
|
|
24717
|
+
if (this.stringifyBody) {
|
|
24718
|
+
callBody = JSON.stringify(this.body);
|
|
24719
|
+
} else {
|
|
24720
|
+
if (typeof this.body === "string") {
|
|
24721
|
+
callBody = this.body;
|
|
24722
|
+
} else {
|
|
24723
|
+
throw new WorkflowError(
|
|
24724
|
+
"When stringifyBody is false, body must be a string. Please check the body type of your call step."
|
|
24725
|
+
);
|
|
24726
|
+
}
|
|
24727
|
+
}
|
|
24704
24728
|
return await context.qstashClient.batch([
|
|
24705
24729
|
{
|
|
24706
24730
|
headers,
|
|
24707
|
-
body:
|
|
24731
|
+
body: callBody,
|
|
24708
24732
|
method: this.method,
|
|
24709
24733
|
url: this.url,
|
|
24710
24734
|
retries: DEFAULT_RETRIES === this.retries ? void 0 : this.retries,
|
|
@@ -24839,7 +24863,8 @@ var LazyInvokeStep = class extends BaseLazyStep {
|
|
|
24839
24863
|
workflowRunId,
|
|
24840
24864
|
retries,
|
|
24841
24865
|
retryDelay,
|
|
24842
|
-
flowControl
|
|
24866
|
+
flowControl,
|
|
24867
|
+
stringifyBody = true
|
|
24843
24868
|
}) {
|
|
24844
24869
|
super(stepName);
|
|
24845
24870
|
this.params = {
|
|
@@ -24849,7 +24874,8 @@ var LazyInvokeStep = class extends BaseLazyStep {
|
|
|
24849
24874
|
workflowRunId: getWorkflowRunId(workflowRunId),
|
|
24850
24875
|
retries,
|
|
24851
24876
|
retryDelay,
|
|
24852
|
-
flowControl
|
|
24877
|
+
flowControl,
|
|
24878
|
+
stringifyBody
|
|
24853
24879
|
};
|
|
24854
24880
|
const { workflowId } = workflow;
|
|
24855
24881
|
if (!workflowId) {
|
|
@@ -24902,8 +24928,20 @@ var LazyInvokeStep = class extends BaseLazyStep {
|
|
|
24902
24928
|
invokeCount
|
|
24903
24929
|
});
|
|
24904
24930
|
invokerHeaders["Upstash-Workflow-Runid"] = context.workflowRunId;
|
|
24931
|
+
let invokeBody;
|
|
24932
|
+
if (this.params.stringifyBody) {
|
|
24933
|
+
invokeBody = JSON.stringify(this.params.body);
|
|
24934
|
+
} else {
|
|
24935
|
+
if (typeof this.params.body === "string") {
|
|
24936
|
+
invokeBody = this.params.body;
|
|
24937
|
+
} else {
|
|
24938
|
+
throw new WorkflowError(
|
|
24939
|
+
"When stringifyBody is false, body must be a string. Please check the body type of your invoke step."
|
|
24940
|
+
);
|
|
24941
|
+
}
|
|
24942
|
+
}
|
|
24905
24943
|
const request = {
|
|
24906
|
-
body:
|
|
24944
|
+
body: invokeBody,
|
|
24907
24945
|
headers: Object.fromEntries(
|
|
24908
24946
|
Object.entries(invokerHeaders).map((pairs) => [pairs[0], [pairs[1]]])
|
|
24909
24947
|
),
|
|
@@ -24983,12 +25021,14 @@ var WorkflowHeaders = class {
|
|
|
24983
25021
|
initHeaderValue;
|
|
24984
25022
|
stepInfo;
|
|
24985
25023
|
headers;
|
|
25024
|
+
keepTriggerConfig;
|
|
24986
25025
|
constructor({
|
|
24987
25026
|
userHeaders,
|
|
24988
25027
|
workflowConfig,
|
|
24989
25028
|
invokeCount,
|
|
24990
25029
|
initHeaderValue,
|
|
24991
|
-
stepInfo
|
|
25030
|
+
stepInfo,
|
|
25031
|
+
keepTriggerConfig
|
|
24992
25032
|
}) {
|
|
24993
25033
|
this.userHeaders = userHeaders;
|
|
24994
25034
|
this.workflowConfig = workflowConfig;
|
|
@@ -25000,6 +25040,7 @@ var WorkflowHeaders = class {
|
|
|
25000
25040
|
workflowHeaders: {},
|
|
25001
25041
|
failureHeaders: {}
|
|
25002
25042
|
};
|
|
25043
|
+
this.keepTriggerConfig = keepTriggerConfig;
|
|
25003
25044
|
}
|
|
25004
25045
|
getHeaders() {
|
|
25005
25046
|
this.addBaseHeaders();
|
|
@@ -25018,7 +25059,7 @@ var WorkflowHeaders = class {
|
|
|
25018
25059
|
[WORKFLOW_INIT_HEADER]: this.initHeaderValue,
|
|
25019
25060
|
[WORKFLOW_ID_HEADER]: this.workflowConfig.workflowRunId,
|
|
25020
25061
|
[WORKFLOW_URL_HEADER]: this.workflowConfig.workflowUrl,
|
|
25021
|
-
[WORKFLOW_FEATURE_HEADER]: "LazyFetch,InitialBody,WF_DetectTrigger",
|
|
25062
|
+
[WORKFLOW_FEATURE_HEADER]: "LazyFetch,InitialBody,WF_DetectTrigger" + (this.keepTriggerConfig ? ",WF_TriggerOnConfig" : ""),
|
|
25022
25063
|
[WORKFLOW_PROTOCOL_VERSION_HEADER]: WORKFLOW_PROTOCOL_VERSION,
|
|
25023
25064
|
...this.workflowConfig.telemetry ? getTelemetryHeaders(this.workflowConfig.telemetry) : {},
|
|
25024
25065
|
...this.workflowConfig.telemetry && this.stepInfo?.lazyStep instanceof LazyCallStep && this.stepInfo.lazyStep.headers[AGENT_NAME_HEADER] ? { [TELEMETRY_HEADER_AGENT]: "true" } : {}
|
|
@@ -26347,7 +26388,8 @@ var WorkflowContext = class {
|
|
|
26347
26388
|
settings.retries || 0,
|
|
26348
26389
|
settings.retryDelay,
|
|
26349
26390
|
settings.timeout,
|
|
26350
|
-
settings.flowControl ?? settings.workflow.options.flowControl
|
|
26391
|
+
settings.flowControl ?? settings.workflow.options.flowControl,
|
|
26392
|
+
settings.stringifyBody ?? true
|
|
26351
26393
|
);
|
|
26352
26394
|
} else {
|
|
26353
26395
|
const {
|
|
@@ -26358,7 +26400,8 @@ var WorkflowContext = class {
|
|
|
26358
26400
|
retries = 0,
|
|
26359
26401
|
retryDelay,
|
|
26360
26402
|
timeout,
|
|
26361
|
-
flowControl
|
|
26403
|
+
flowControl,
|
|
26404
|
+
stringifyBody = true
|
|
26362
26405
|
} = settings;
|
|
26363
26406
|
callStep = new LazyCallStep(
|
|
26364
26407
|
stepName,
|
|
@@ -26369,7 +26412,8 @@ var WorkflowContext = class {
|
|
|
26369
26412
|
retries,
|
|
26370
26413
|
retryDelay,
|
|
26371
26414
|
timeout,
|
|
26372
|
-
flowControl
|
|
26415
|
+
flowControl,
|
|
26416
|
+
stringifyBody
|
|
26373
26417
|
);
|
|
26374
26418
|
}
|
|
26375
26419
|
return await this.addStep(callStep);
|
|
@@ -26733,11 +26777,15 @@ var handleFailure = async (request, requestPayload, qstashClient, initialPayload
|
|
|
26733
26777
|
const { status, header, body, url, sourceBody, workflowRunId } = JSON.parse(requestPayload);
|
|
26734
26778
|
const decodedBody = body ? decodeBase64(body) : "{}";
|
|
26735
26779
|
let errorMessage = "";
|
|
26780
|
+
let failStack = "";
|
|
26736
26781
|
try {
|
|
26737
26782
|
const errorPayload = JSON.parse(decodedBody);
|
|
26738
26783
|
if (errorPayload.message) {
|
|
26739
26784
|
errorMessage = errorPayload.message;
|
|
26740
26785
|
}
|
|
26786
|
+
if (errorPayload.stack) {
|
|
26787
|
+
failStack = errorPayload.stack;
|
|
26788
|
+
}
|
|
26741
26789
|
} catch {
|
|
26742
26790
|
}
|
|
26743
26791
|
if (!errorMessage) {
|
|
@@ -26775,7 +26823,8 @@ var handleFailure = async (request, requestPayload, qstashClient, initialPayload
|
|
|
26775
26823
|
context: workflowContext,
|
|
26776
26824
|
failStatus: status,
|
|
26777
26825
|
failResponse: errorMessage,
|
|
26778
|
-
failHeaders: header
|
|
26826
|
+
failHeaders: header,
|
|
26827
|
+
failStack
|
|
26779
26828
|
});
|
|
26780
26829
|
return ok({ result: "is-failure-callback", response: failureResponse });
|
|
26781
26830
|
} catch (error) {
|
package/express.mjs
CHANGED
package/h3.d.mts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as h3 from 'h3';
|
|
2
|
-
import { R as RouteFunction, n as PublicServeOptions,
|
|
3
|
-
import { s as serveManyBase } from './serve-many-
|
|
2
|
+
import { R as RouteFunction, 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/h3.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as h3 from 'h3';
|
|
2
|
-
import { R as RouteFunction, n as PublicServeOptions,
|
|
3
|
-
import { s as serveManyBase } from './serve-many-
|
|
2
|
+
import { R as RouteFunction, 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';
|