@upstash/workflow 1.2.0-demo-rc.1 → 1.2.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/README.md +1 -0
- package/astro.d.mts +2 -2
- package/astro.d.ts +2 -2
- package/astro.js +72 -69
- package/astro.mjs +1 -1
- package/{chunk-NZCQPOPR.mjs → chunk-V5ZUHMAF.mjs} +66 -257
- package/cloudflare.d.mts +2 -2
- package/cloudflare.d.ts +2 -2
- package/cloudflare.js +72 -69
- package/cloudflare.mjs +1 -1
- package/express.d.mts +2 -2
- package/express.d.ts +2 -2
- package/express.js +72 -69
- package/express.mjs +1 -1
- package/h3.d.mts +2 -2
- package/h3.d.ts +2 -2
- package/h3.js +76 -73
- package/h3.mjs +5 -5
- package/hono.d.mts +2 -2
- package/hono.d.ts +2 -2
- package/hono.js +73 -265
- package/hono.mjs +2 -7
- package/index.d.mts +30 -12
- package/index.d.ts +30 -12
- package/index.js +93 -298
- package/index.mjs +21 -41
- package/nextjs.d.mts +2 -2
- package/nextjs.d.ts +2 -2
- package/nextjs.js +72 -263
- package/nextjs.mjs +1 -5
- package/package.json +1 -1
- package/react-router.d.mts +38 -0
- package/react-router.d.ts +38 -0
- package/react-router.js +3881 -0
- package/react-router.mjs +45 -0
- package/{serve-many-Bi8XaOyq.d.ts → serve-many-B-fe7bh7.d.ts} +1 -1
- package/{serve-many-CppVPJrh.d.mts → serve-many-C6sa_DxN.d.mts} +1 -1
- package/solidjs.d.mts +1 -1
- package/solidjs.d.ts +1 -1
- package/solidjs.js +72 -69
- package/solidjs.mjs +1 -1
- package/svelte.d.mts +2 -2
- package/svelte.d.ts +2 -2
- package/svelte.js +72 -69
- package/svelte.mjs +1 -1
- package/tanstack.d.mts +2 -2
- package/tanstack.d.ts +2 -2
- package/tanstack.js +72 -69
- package/tanstack.mjs +1 -1
- package/{types-CUwgrpCM.d.ts → types-B2S08hRU.d.mts} +18 -3
- package/{types-CUwgrpCM.d.mts → types-B2S08hRU.d.ts} +18 -3
package/README.md
CHANGED
|
@@ -99,6 +99,7 @@ await client.cancel({ workflowRunId: "<WORKFLOW_RUN_ID>" });
|
|
|
99
99
|
await client.notify({
|
|
100
100
|
eventId: "my-event-id",
|
|
101
101
|
eventData: "my-data", // data passed to the workflow run
|
|
102
|
+
workflowRunId: "wfr_123", // optional workflow run ID for lookback
|
|
102
103
|
});
|
|
103
104
|
|
|
104
105
|
// get waiters:
|
package/astro.d.mts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { APIContext, APIRoute } from 'astro';
|
|
2
|
-
import {
|
|
3
|
-
import { s as serveManyBase } from './serve-many-
|
|
2
|
+
import { u as WorkflowContext, d as WorkflowServeOptions, I as InvokableWorkflow } from './types-B2S08hRU.mjs';
|
|
3
|
+
import { s as serveManyBase } from './serve-many-C6sa_DxN.mjs';
|
|
4
4
|
import '@upstash/qstash';
|
|
5
5
|
import 'zod';
|
|
6
6
|
|
package/astro.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { APIContext, APIRoute } from 'astro';
|
|
2
|
-
import {
|
|
3
|
-
import { s as serveManyBase } from './serve-many-
|
|
2
|
+
import { u as WorkflowContext, d as WorkflowServeOptions, I as InvokableWorkflow } from './types-B2S08hRU.js';
|
|
3
|
+
import { s as serveManyBase } from './serve-many-B-fe7bh7.js';
|
|
4
4
|
import '@upstash/qstash';
|
|
5
5
|
import 'zod';
|
|
6
6
|
|
package/astro.js
CHANGED
|
@@ -126,9 +126,10 @@ function isInstanceOf(v, ctor) {
|
|
|
126
126
|
}
|
|
127
127
|
|
|
128
128
|
// src/client/utils.ts
|
|
129
|
-
var makeNotifyRequest = async (requester, eventId, eventData) => {
|
|
129
|
+
var makeNotifyRequest = async (requester, eventId, eventData, workflowRunId) => {
|
|
130
|
+
const path = workflowRunId ? ["v2", "notify", workflowRunId, eventId] : ["v2", "notify", eventId];
|
|
130
131
|
const result = await requester.request({
|
|
131
|
-
path
|
|
132
|
+
path,
|
|
132
133
|
method: "POST",
|
|
133
134
|
body: typeof eventData === "string" ? eventData : JSON.stringify(eventData)
|
|
134
135
|
});
|
|
@@ -186,6 +187,7 @@ var getSteps = async (requester, workflowRunId, messageId, dispatchDebug) => {
|
|
|
186
187
|
var WORKFLOW_ID_HEADER = "Upstash-Workflow-RunId";
|
|
187
188
|
var WORKFLOW_INIT_HEADER = "Upstash-Workflow-Init";
|
|
188
189
|
var WORKFLOW_URL_HEADER = "Upstash-Workflow-Url";
|
|
190
|
+
var WORKFLOW_CREATED_AT_HEADER = "Upstash-Workflow-CreatedAt";
|
|
189
191
|
var WORKFLOW_FAILURE_HEADER = "Upstash-Workflow-Is-Failure";
|
|
190
192
|
var WORKFLOW_FAILURE_CALLBACK_HEADER = "Upstash-Workflow-Failure-Callback";
|
|
191
193
|
var WORKFLOW_FEATURE_HEADER = "Upstash-Feature-Set";
|
|
@@ -721,6 +723,7 @@ var triggerFirstInvocation = async (params) => {
|
|
|
721
723
|
retries,
|
|
722
724
|
retryDelay,
|
|
723
725
|
flowControl,
|
|
726
|
+
redact,
|
|
724
727
|
unknownSdk
|
|
725
728
|
}) => {
|
|
726
729
|
const { headers } = getHeaders({
|
|
@@ -757,7 +760,8 @@ var triggerFirstInvocation = async (params) => {
|
|
|
757
760
|
body,
|
|
758
761
|
url: workflowContext.url,
|
|
759
762
|
delay,
|
|
760
|
-
notBefore
|
|
763
|
+
notBefore,
|
|
764
|
+
redact
|
|
761
765
|
};
|
|
762
766
|
}
|
|
763
767
|
);
|
|
@@ -916,7 +920,6 @@ ${atob(callbackMessage.body ?? "")}`
|
|
|
916
920
|
})}`
|
|
917
921
|
);
|
|
918
922
|
}
|
|
919
|
-
const userHeaders = recreateUserHeaders(request.headers);
|
|
920
923
|
const { headers: requestHeaders } = getHeaders({
|
|
921
924
|
initHeaderValue: "false",
|
|
922
925
|
workflowConfig: {
|
|
@@ -924,7 +927,6 @@ ${atob(callbackMessage.body ?? "")}`
|
|
|
924
927
|
workflowUrl,
|
|
925
928
|
telemetry: telemetry2
|
|
926
929
|
},
|
|
927
|
-
userHeaders,
|
|
928
930
|
invokeCount: Number(invokeCount)
|
|
929
931
|
});
|
|
930
932
|
const callResponse = {
|
|
@@ -1073,7 +1075,6 @@ var BaseLazyStep = class _BaseLazyStep {
|
|
|
1073
1075
|
useJSONContent: false,
|
|
1074
1076
|
telemetry: telemetry2
|
|
1075
1077
|
},
|
|
1076
|
-
userHeaders: context.headers,
|
|
1077
1078
|
invokeCount,
|
|
1078
1079
|
stepInfo: {
|
|
1079
1080
|
step,
|
|
@@ -1431,9 +1432,9 @@ var LazyWaitEventStep = class extends BaseLazyStep {
|
|
|
1431
1432
|
};
|
|
1432
1433
|
var LazyNotifyStep = class extends LazyFunctionStep {
|
|
1433
1434
|
stepType = "Notify";
|
|
1434
|
-
constructor(context, stepName, eventId, eventData, requester) {
|
|
1435
|
+
constructor(context, stepName, eventId, eventData, requester, workflowRunId) {
|
|
1435
1436
|
super(context, stepName, async () => {
|
|
1436
|
-
const notifyResponse = await makeNotifyRequest(requester, eventId, eventData);
|
|
1437
|
+
const notifyResponse = await makeNotifyRequest(requester, eventId, eventData, workflowRunId);
|
|
1437
1438
|
return {
|
|
1438
1439
|
eventId,
|
|
1439
1440
|
eventData,
|
|
@@ -1503,7 +1504,6 @@ var LazyInvokeStep = class extends BaseLazyStep {
|
|
|
1503
1504
|
telemetry: telemetry2,
|
|
1504
1505
|
useJSONContent: false
|
|
1505
1506
|
},
|
|
1506
|
-
userHeaders: context.headers,
|
|
1507
1507
|
invokeCount
|
|
1508
1508
|
});
|
|
1509
1509
|
context.qstashClient.http.headers?.forEach((value, key) => {
|
|
@@ -1516,6 +1516,7 @@ var LazyInvokeStep = class extends BaseLazyStep {
|
|
|
1516
1516
|
Object.entries(invokerHeaders).map((pairs) => [pairs[0], [pairs[1]]])
|
|
1517
1517
|
),
|
|
1518
1518
|
workflowRunId: context.workflowRunId,
|
|
1519
|
+
workflowRunCreatedAt: context.workflowRunCreatedAt,
|
|
1519
1520
|
workflowUrl: context.url,
|
|
1520
1521
|
step
|
|
1521
1522
|
};
|
|
@@ -1611,12 +1612,14 @@ var LazyWaitForWebhookStep = class extends LazyWaitEventStep {
|
|
|
1611
1612
|
const parsedEventData = BaseLazyStep.tryParsing(eventData);
|
|
1612
1613
|
const body = parsedEventData.body;
|
|
1613
1614
|
const parsedBody = typeof body === "string" ? decodeBase64(body) : void 0;
|
|
1615
|
+
const methodUpper = parsedEventData.method.toUpperCase();
|
|
1616
|
+
const canHaveBody = methodUpper !== "GET" && methodUpper !== "HEAD";
|
|
1614
1617
|
const request = new Request(
|
|
1615
1618
|
`${parsedEventData.proto}://${parsedEventData.host}${parsedEventData.url}`,
|
|
1616
1619
|
{
|
|
1617
1620
|
method: parsedEventData.method,
|
|
1618
1621
|
headers: parsedEventData.header,
|
|
1619
|
-
body: parsedBody
|
|
1622
|
+
body: canHaveBody ? parsedBody : void 0
|
|
1620
1623
|
}
|
|
1621
1624
|
);
|
|
1622
1625
|
return {
|
|
@@ -1750,6 +1753,9 @@ var WorkflowHeaders = class {
|
|
|
1750
1753
|
}
|
|
1751
1754
|
}
|
|
1752
1755
|
addUserHeaders() {
|
|
1756
|
+
if (!this.userHeaders) {
|
|
1757
|
+
return;
|
|
1758
|
+
}
|
|
1753
1759
|
for (const [key, value] of this.userHeaders.entries()) {
|
|
1754
1760
|
const forwardKey = `Forward-${key}`;
|
|
1755
1761
|
this.headers.workflowHeaders[forwardKey] = value;
|
|
@@ -1856,7 +1862,6 @@ var submitParallelSteps = async ({
|
|
|
1856
1862
|
workflowUrl: context.url,
|
|
1857
1863
|
telemetry: telemetry2
|
|
1858
1864
|
},
|
|
1859
|
-
userHeaders: context.headers,
|
|
1860
1865
|
invokeCount
|
|
1861
1866
|
});
|
|
1862
1867
|
return {
|
|
@@ -2109,7 +2114,7 @@ var AutoExecutor = class _AutoExecutor {
|
|
|
2109
2114
|
});
|
|
2110
2115
|
throw new WorkflowAbort(parallelStep.stepName, resultStep);
|
|
2111
2116
|
} catch (error) {
|
|
2112
|
-
if (isInstanceOf(error, WorkflowAbort) || isInstanceOf(error, import_qstash5.QstashError) && error.status === 400) {
|
|
2117
|
+
if (isInstanceOf(error, WorkflowAbort) || isInstanceOf(error, import_qstash5.QstashError) && error.status === 400 || isInstanceOf(error, import_qstash5.QstashError) && error.status === 412) {
|
|
2113
2118
|
throw error;
|
|
2114
2119
|
}
|
|
2115
2120
|
throw new WorkflowError(
|
|
@@ -2583,6 +2588,7 @@ var MiddlewareManager = class {
|
|
|
2583
2588
|
};
|
|
2584
2589
|
|
|
2585
2590
|
// src/context/context.ts
|
|
2591
|
+
var import_qstash9 = require("@upstash/qstash");
|
|
2586
2592
|
var WorkflowContext = class {
|
|
2587
2593
|
executor;
|
|
2588
2594
|
steps;
|
|
@@ -2609,6 +2615,10 @@ var WorkflowContext = class {
|
|
|
2609
2615
|
* Run id of the workflow
|
|
2610
2616
|
*/
|
|
2611
2617
|
workflowRunId;
|
|
2618
|
+
/**
|
|
2619
|
+
* Creation time of the workflow run
|
|
2620
|
+
*/
|
|
2621
|
+
workflowRunCreatedAt;
|
|
2612
2622
|
/**
|
|
2613
2623
|
* URL of the workflow
|
|
2614
2624
|
*
|
|
@@ -2700,6 +2710,7 @@ var WorkflowContext = class {
|
|
|
2700
2710
|
constructor({
|
|
2701
2711
|
qstashClient,
|
|
2702
2712
|
workflowRunId,
|
|
2713
|
+
workflowRunCreatedAt,
|
|
2703
2714
|
headers,
|
|
2704
2715
|
steps,
|
|
2705
2716
|
url,
|
|
@@ -2712,6 +2723,7 @@ var WorkflowContext = class {
|
|
|
2712
2723
|
}) {
|
|
2713
2724
|
this.qstashClient = qstashClient;
|
|
2714
2725
|
this.workflowRunId = workflowRunId;
|
|
2726
|
+
this.workflowRunCreatedAt = workflowRunCreatedAt;
|
|
2715
2727
|
this.steps = steps;
|
|
2716
2728
|
this.url = url;
|
|
2717
2729
|
this.headers = headers;
|
|
@@ -2886,14 +2898,23 @@ var WorkflowContext = class {
|
|
|
2886
2898
|
* a notifyResponse field which contains a list of `Waiter` objects, each corresponding
|
|
2887
2899
|
* to a notified workflow run.
|
|
2888
2900
|
*
|
|
2901
|
+
* Optionally, you can pass a workflowRunId to enable lookback functionality:
|
|
2902
|
+
*
|
|
2903
|
+
* ```ts
|
|
2904
|
+
* const { eventId, eventData, notifyResponse } = await context.notify(
|
|
2905
|
+
* "notify step", "event-id", "event-data", "wfr_123"
|
|
2906
|
+
* );
|
|
2907
|
+
* ```
|
|
2908
|
+
*
|
|
2889
2909
|
* @param stepName
|
|
2890
2910
|
* @param eventId event id to notify
|
|
2891
2911
|
* @param eventData event data to notify with
|
|
2912
|
+
* @param workflowRunId optional workflow run id for lookback support
|
|
2892
2913
|
* @returns notify response which has event id, event data and list of waiters which were notified
|
|
2893
2914
|
*/
|
|
2894
|
-
async notify(stepName, eventId, eventData) {
|
|
2915
|
+
async notify(stepName, eventId, eventData, workflowRunId) {
|
|
2895
2916
|
return await this.addStep(
|
|
2896
|
-
new LazyNotifyStep(this, stepName, eventId, eventData, this.qstashClient.http)
|
|
2917
|
+
new LazyNotifyStep(this, stepName, eventId, eventData, this.qstashClient.http, workflowRunId)
|
|
2897
2918
|
);
|
|
2898
2919
|
}
|
|
2899
2920
|
async invoke(stepName, settings) {
|
|
@@ -2921,7 +2942,14 @@ var WorkflowContext = class {
|
|
|
2921
2942
|
* DisabledWorkflowContext.
|
|
2922
2943
|
*/
|
|
2923
2944
|
async addStep(step) {
|
|
2924
|
-
|
|
2945
|
+
try {
|
|
2946
|
+
return await this.executor.addStep(step);
|
|
2947
|
+
} catch (error) {
|
|
2948
|
+
if (isInstanceOf(error, import_qstash9.QstashError) && error.status === 412) {
|
|
2949
|
+
throw new WorkflowNonRetryableError(error.message);
|
|
2950
|
+
}
|
|
2951
|
+
throw error;
|
|
2952
|
+
}
|
|
2925
2953
|
}
|
|
2926
2954
|
get api() {
|
|
2927
2955
|
return new WorkflowApi({
|
|
@@ -2930,23 +2958,8 @@ var WorkflowContext = class {
|
|
|
2930
2958
|
}
|
|
2931
2959
|
};
|
|
2932
2960
|
|
|
2933
|
-
// src/dev-server.ts
|
|
2934
|
-
var import_path = require("path");
|
|
2935
|
-
var DEV_QSTASH_TOKEN = "eyJVc2VySUQiOiJkZWZhdWx0VXNlciIsIlBhc3N3b3JkIjoiZGVmYXVsdFBhc3N3b3JkIn0=";
|
|
2936
|
-
var DEV_QSTASH_CURRENT_SIGNING_KEY = "sig_7kYjw48mhY7kAjqNGcy6cr29RJ6r";
|
|
2937
|
-
var DEV_QSTASH_NEXT_SIGNING_KEY = "sig_5ZB6DVzB1wjE8S6rZ7eenA8Pdnhs";
|
|
2938
|
-
function getDevCredentials(port) {
|
|
2939
|
-
return {
|
|
2940
|
-
QSTASH_URL: `http://localhost:${port}`,
|
|
2941
|
-
QSTASH_TOKEN: DEV_QSTASH_TOKEN,
|
|
2942
|
-
QSTASH_CURRENT_SIGNING_KEY: DEV_QSTASH_CURRENT_SIGNING_KEY,
|
|
2943
|
-
QSTASH_NEXT_SIGNING_KEY: DEV_QSTASH_NEXT_SIGNING_KEY
|
|
2944
|
-
};
|
|
2945
|
-
}
|
|
2946
|
-
var CACHE_DIR = (0, import_path.join)("node_modules", ".cache", "upstash");
|
|
2947
|
-
|
|
2948
2961
|
// src/serve/authorization.ts
|
|
2949
|
-
var
|
|
2962
|
+
var import_qstash10 = require("@upstash/qstash");
|
|
2950
2963
|
var DisabledWorkflowContext = class _DisabledWorkflowContext extends WorkflowContext {
|
|
2951
2964
|
static disabledMessage = "disabled-qstash-worklfow-run";
|
|
2952
2965
|
disabled = true;
|
|
@@ -2978,11 +2991,12 @@ var DisabledWorkflowContext = class _DisabledWorkflowContext extends WorkflowCon
|
|
|
2978
2991
|
*/
|
|
2979
2992
|
static async tryAuthentication(routeFunction, context) {
|
|
2980
2993
|
const disabledContext = new _DisabledWorkflowContext({
|
|
2981
|
-
qstashClient: new
|
|
2994
|
+
qstashClient: new import_qstash10.Client({
|
|
2982
2995
|
baseUrl: "disabled-client",
|
|
2983
2996
|
token: "disabled-client"
|
|
2984
2997
|
}),
|
|
2985
2998
|
workflowRunId: context.workflowRunId,
|
|
2999
|
+
workflowRunCreatedAt: context.workflowRunCreatedAt,
|
|
2986
3000
|
headers: context.headers,
|
|
2987
3001
|
steps: [],
|
|
2988
3002
|
url: context.url,
|
|
@@ -3184,7 +3198,9 @@ var handleFailure = async ({
|
|
|
3184
3198
|
return ok({ result: "failure-function-undefined" });
|
|
3185
3199
|
}
|
|
3186
3200
|
try {
|
|
3187
|
-
const { status, header, body, url, sourceBody, workflowRunId } = JSON.parse(
|
|
3201
|
+
const { status, header, body, url, sourceBody, workflowRunId, workflowCreatedAt } = JSON.parse(
|
|
3202
|
+
requestPayload
|
|
3203
|
+
);
|
|
3188
3204
|
const decodedBody = body ? decodeBase64(body) : "{}";
|
|
3189
3205
|
let errorMessage = "";
|
|
3190
3206
|
let failStack = "";
|
|
@@ -3213,6 +3229,7 @@ var handleFailure = async ({
|
|
|
3213
3229
|
telemetry: void 0,
|
|
3214
3230
|
// not going to make requests in authentication check
|
|
3215
3231
|
label: userHeaders.get(WORKFLOW_LABEL_HEADER) ?? void 0,
|
|
3232
|
+
workflowRunCreatedAt: workflowCreatedAt,
|
|
3216
3233
|
middlewareManager: void 0
|
|
3217
3234
|
});
|
|
3218
3235
|
const authCheck = await DisabledWorkflowContext.tryAuthentication(
|
|
@@ -3241,7 +3258,7 @@ var handleFailure = async ({
|
|
|
3241
3258
|
};
|
|
3242
3259
|
|
|
3243
3260
|
// src/serve/multi-region/handlers.ts
|
|
3244
|
-
var
|
|
3261
|
+
var import_qstash11 = require("@upstash/qstash");
|
|
3245
3262
|
|
|
3246
3263
|
// src/serve/multi-region/utils.ts
|
|
3247
3264
|
var VALID_REGIONS = ["EU_CENTRAL_1", "US_EAST_1"];
|
|
@@ -3306,7 +3323,7 @@ var getHandlersForRequest = (qstashHandlers, regionHeader, isFirstInvocation) =>
|
|
|
3306
3323
|
};
|
|
3307
3324
|
var createRegionalHandler = (environment, receiverConfig, region, clientOptions) => {
|
|
3308
3325
|
const clientEnv = readClientEnvironmentVariables(environment, region);
|
|
3309
|
-
const client = new
|
|
3326
|
+
const client = new import_qstash11.Client({
|
|
3310
3327
|
...clientOptions,
|
|
3311
3328
|
baseUrl: clientEnv.QSTASH_URL,
|
|
3312
3329
|
token: clientEnv.QSTASH_TOKEN
|
|
@@ -3356,7 +3373,7 @@ var getQStashHandlers = ({
|
|
|
3356
3373
|
return {
|
|
3357
3374
|
mode: "single-region",
|
|
3358
3375
|
handlers: {
|
|
3359
|
-
client: qstashClientOption && "http" in qstashClientOption ? qstashClientOption : new
|
|
3376
|
+
client: qstashClientOption && "http" in qstashClientOption ? qstashClientOption : new import_qstash11.Client({
|
|
3360
3377
|
...qstashClientOption,
|
|
3361
3378
|
baseUrl: environment.QSTASH_URL,
|
|
3362
3379
|
token: environment.QSTASH_TOKEN
|
|
@@ -3372,7 +3389,7 @@ var getReceiver = (environment, receiverConfig, region) => {
|
|
|
3372
3389
|
return void 0;
|
|
3373
3390
|
}
|
|
3374
3391
|
const receiverEnv = readReceiverEnvironmentVariables(environment, region);
|
|
3375
|
-
return receiverEnv.QSTASH_CURRENT_SIGNING_KEY && receiverEnv.QSTASH_NEXT_SIGNING_KEY ? new
|
|
3392
|
+
return receiverEnv.QSTASH_CURRENT_SIGNING_KEY && receiverEnv.QSTASH_NEXT_SIGNING_KEY ? new import_qstash11.Receiver({
|
|
3376
3393
|
currentSigningKey: receiverEnv.QSTASH_CURRENT_SIGNING_KEY,
|
|
3377
3394
|
nextSigningKey: receiverEnv.QSTASH_NEXT_SIGNING_KEY
|
|
3378
3395
|
}) : void 0;
|
|
@@ -3598,33 +3615,19 @@ var AUTH_FAIL_MESSAGE = `Failed to authenticate Workflow request. If this is une
|
|
|
3598
3615
|
|
|
3599
3616
|
// src/serve/index.ts
|
|
3600
3617
|
var serveBase = (routeFunction, telemetry2, options, internalOptions) => {
|
|
3601
|
-
const
|
|
3602
|
-
|
|
3603
|
-
|
|
3604
|
-
|
|
3605
|
-
|
|
3606
|
-
|
|
3607
|
-
|
|
3608
|
-
|
|
3609
|
-
|
|
3610
|
-
|
|
3611
|
-
|
|
3612
|
-
const
|
|
3613
|
-
options,
|
|
3614
|
-
internalOptions
|
|
3615
|
-
);
|
|
3618
|
+
const {
|
|
3619
|
+
initialPayloadParser,
|
|
3620
|
+
url,
|
|
3621
|
+
failureFunction,
|
|
3622
|
+
baseUrl,
|
|
3623
|
+
env,
|
|
3624
|
+
disableTelemetry,
|
|
3625
|
+
middlewares,
|
|
3626
|
+
internal
|
|
3627
|
+
} = processOptions(options, internalOptions);
|
|
3628
|
+
telemetry2 = disableTelemetry ? void 0 : telemetry2;
|
|
3629
|
+
const { generateResponse: responseGenerator, useJSONContent } = internal;
|
|
3616
3630
|
const handler = async (request, middlewareManager) => {
|
|
3617
|
-
const {
|
|
3618
|
-
initialPayloadParser,
|
|
3619
|
-
url,
|
|
3620
|
-
failureFunction,
|
|
3621
|
-
baseUrl,
|
|
3622
|
-
env,
|
|
3623
|
-
disableTelemetry: optDisableTelemetry,
|
|
3624
|
-
internal
|
|
3625
|
-
} = resolvedOptions;
|
|
3626
|
-
const currentTelemetry = optDisableTelemetry ? void 0 : telemetry2;
|
|
3627
|
-
const { generateResponse: responseGenerator, useJSONContent } = internal;
|
|
3628
3631
|
await middlewareManager.dispatchDebug("onInfo", {
|
|
3629
3632
|
info: `Received request for workflow execution.`
|
|
3630
3633
|
});
|
|
@@ -3704,6 +3707,7 @@ var serveBase = (routeFunction, telemetry2, options, internalOptions) => {
|
|
|
3704
3707
|
}
|
|
3705
3708
|
const invokeCount = Number(request.headers.get(WORKFLOW_INVOKE_COUNT_HEADER) ?? "0");
|
|
3706
3709
|
const label = request.headers.get(WORKFLOW_LABEL_HEADER) ?? void 0;
|
|
3710
|
+
const workflowRunCreatedAt = request.headers.get(WORKFLOW_CREATED_AT_HEADER);
|
|
3707
3711
|
const workflowContext = new WorkflowContext({
|
|
3708
3712
|
qstashClient: regionalClient,
|
|
3709
3713
|
workflowRunId,
|
|
@@ -3712,9 +3716,10 @@ var serveBase = (routeFunction, telemetry2, options, internalOptions) => {
|
|
|
3712
3716
|
steps,
|
|
3713
3717
|
url: workflowUrl,
|
|
3714
3718
|
env,
|
|
3715
|
-
telemetry:
|
|
3719
|
+
telemetry: telemetry2,
|
|
3716
3720
|
invokeCount,
|
|
3717
3721
|
label,
|
|
3722
|
+
workflowRunCreatedAt: Number(workflowRunCreatedAt),
|
|
3718
3723
|
middlewareManager
|
|
3719
3724
|
});
|
|
3720
3725
|
const authCheck = await DisabledWorkflowContext.tryAuthentication(
|
|
@@ -3738,7 +3743,7 @@ var serveBase = (routeFunction, telemetry2, options, internalOptions) => {
|
|
|
3738
3743
|
requestPayload: rawInitialPayload,
|
|
3739
3744
|
client: regionalClient,
|
|
3740
3745
|
workflowUrl,
|
|
3741
|
-
telemetry:
|
|
3746
|
+
telemetry: telemetry2,
|
|
3742
3747
|
middlewareManager
|
|
3743
3748
|
});
|
|
3744
3749
|
if (callReturnCheck.isErr()) {
|
|
@@ -3747,7 +3752,7 @@ var serveBase = (routeFunction, telemetry2, options, internalOptions) => {
|
|
|
3747
3752
|
const result = isFirstInvocation ? await triggerFirstInvocation({
|
|
3748
3753
|
workflowContext,
|
|
3749
3754
|
useJSONContent,
|
|
3750
|
-
telemetry:
|
|
3755
|
+
telemetry: telemetry2,
|
|
3751
3756
|
invokeCount,
|
|
3752
3757
|
middlewareManager,
|
|
3753
3758
|
unknownSdk
|
|
@@ -3815,9 +3820,7 @@ var serveBase = (routeFunction, telemetry2, options, internalOptions) => {
|
|
|
3815
3820
|
);
|
|
3816
3821
|
};
|
|
3817
3822
|
const safeHandler = async (request) => {
|
|
3818
|
-
const middlewareManager = new MiddlewareManager(
|
|
3819
|
-
resolvedOptions.middlewares
|
|
3820
|
-
);
|
|
3823
|
+
const middlewareManager = new MiddlewareManager(middlewares);
|
|
3821
3824
|
try {
|
|
3822
3825
|
return await handler(request, middlewareManager);
|
|
3823
3826
|
} catch (error) {
|