@upstash/workflow 0.2.3 → 0.2.4
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 +1 -1
- package/astro.d.ts +1 -1
- package/astro.js +146 -78
- package/astro.mjs +7 -1
- package/{chunk-QBJ3LQIO.mjs → chunk-ETDFMXER.mjs} +139 -69
- package/cloudflare.d.mts +1 -1
- package/cloudflare.d.ts +1 -1
- package/cloudflare.js +152 -82
- package/cloudflare.mjs +13 -5
- package/express.d.mts +1 -1
- package/express.d.ts +1 -1
- package/express.js +147 -79
- package/express.mjs +8 -2
- package/h3.d.mts +1 -1
- package/h3.d.ts +1 -1
- package/h3.js +150 -79
- package/h3.mjs +11 -2
- package/hono.d.mts +1 -1
- package/hono.d.ts +1 -1
- package/hono.js +154 -84
- package/hono.mjs +15 -7
- package/index.d.mts +2 -2
- package/index.d.ts +2 -2
- package/index.js +160 -83
- package/index.mjs +10 -4
- package/nextjs.d.mts +1 -1
- package/nextjs.d.ts +1 -1
- package/nextjs.js +155 -79
- package/nextjs.mjs +16 -2
- package/package.json +1 -1
- package/solidjs.d.mts +1 -1
- package/solidjs.d.ts +1 -1
- package/solidjs.js +150 -79
- package/solidjs.mjs +11 -2
- package/svelte.d.mts +1 -1
- package/svelte.d.ts +1 -1
- package/svelte.js +152 -82
- package/svelte.mjs +13 -5
- package/{types-R9q4MUwl.d.mts → types-Bt4-paRy.d.mts} +89 -4
- package/{types-R9q4MUwl.d.ts → types-Bt4-paRy.d.ts} +89 -4
package/cloudflare.js
CHANGED
|
@@ -24,6 +24,23 @@ __export(cloudflare_exports, {
|
|
|
24
24
|
});
|
|
25
25
|
module.exports = __toCommonJS(cloudflare_exports);
|
|
26
26
|
|
|
27
|
+
// src/constants.ts
|
|
28
|
+
var WORKFLOW_ID_HEADER = "Upstash-Workflow-RunId";
|
|
29
|
+
var WORKFLOW_INIT_HEADER = "Upstash-Workflow-Init";
|
|
30
|
+
var WORKFLOW_URL_HEADER = "Upstash-Workflow-Url";
|
|
31
|
+
var WORKFLOW_FAILURE_HEADER = "Upstash-Workflow-Is-Failure";
|
|
32
|
+
var WORKFLOW_FEATURE_HEADER = "Upstash-Feature-Set";
|
|
33
|
+
var WORKFLOW_PROTOCOL_VERSION = "1";
|
|
34
|
+
var WORKFLOW_PROTOCOL_VERSION_HEADER = "Upstash-Workflow-Sdk-Version";
|
|
35
|
+
var DEFAULT_CONTENT_TYPE = "application/json";
|
|
36
|
+
var NO_CONCURRENCY = 1;
|
|
37
|
+
var DEFAULT_RETRIES = 3;
|
|
38
|
+
var VERSION = "v0.2.3";
|
|
39
|
+
var SDK_TELEMETRY = `@upstash/workflow@${VERSION}`;
|
|
40
|
+
var TELEMETRY_HEADER_SDK = "Upstash-Telemetry-Sdk";
|
|
41
|
+
var TELEMETRY_HEADER_FRAMEWORK = "Upstash-Telemetry-Framework";
|
|
42
|
+
var TELEMETRY_HEADER_RUNTIME = "Upstash-Telemetry-Runtime";
|
|
43
|
+
|
|
27
44
|
// src/client/utils.ts
|
|
28
45
|
var import_qstash = require("@upstash/qstash");
|
|
29
46
|
var makeNotifyRequest = async (requester, eventId, eventData) => {
|
|
@@ -714,18 +731,6 @@ var Err = class {
|
|
|
714
731
|
};
|
|
715
732
|
var fromThrowable = Result.fromThrowable;
|
|
716
733
|
|
|
717
|
-
// src/constants.ts
|
|
718
|
-
var WORKFLOW_ID_HEADER = "Upstash-Workflow-RunId";
|
|
719
|
-
var WORKFLOW_INIT_HEADER = "Upstash-Workflow-Init";
|
|
720
|
-
var WORKFLOW_URL_HEADER = "Upstash-Workflow-Url";
|
|
721
|
-
var WORKFLOW_FAILURE_HEADER = "Upstash-Workflow-Is-Failure";
|
|
722
|
-
var WORKFLOW_FEATURE_HEADER = "Upstash-Feature-Set";
|
|
723
|
-
var WORKFLOW_PROTOCOL_VERSION = "1";
|
|
724
|
-
var WORKFLOW_PROTOCOL_VERSION_HEADER = "Upstash-Workflow-Sdk-Version";
|
|
725
|
-
var DEFAULT_CONTENT_TYPE = "application/json";
|
|
726
|
-
var NO_CONCURRENCY = 1;
|
|
727
|
-
var DEFAULT_RETRIES = 3;
|
|
728
|
-
|
|
729
734
|
// src/types.ts
|
|
730
735
|
var StepTypes = [
|
|
731
736
|
"Initial",
|
|
@@ -739,16 +744,21 @@ var StepTypes = [
|
|
|
739
744
|
|
|
740
745
|
// src/workflow-requests.ts
|
|
741
746
|
var import_qstash3 = require("@upstash/qstash");
|
|
742
|
-
var triggerFirstInvocation = async (
|
|
743
|
-
|
|
744
|
-
|
|
745
|
-
|
|
746
|
-
|
|
747
|
-
|
|
748
|
-
|
|
749
|
-
|
|
750
|
-
|
|
751
|
-
|
|
747
|
+
var triggerFirstInvocation = async ({
|
|
748
|
+
workflowContext,
|
|
749
|
+
useJSONContent,
|
|
750
|
+
telemetry,
|
|
751
|
+
debug
|
|
752
|
+
}) => {
|
|
753
|
+
const { headers } = getHeaders({
|
|
754
|
+
initHeaderValue: "true",
|
|
755
|
+
workflowRunId: workflowContext.workflowRunId,
|
|
756
|
+
workflowUrl: workflowContext.url,
|
|
757
|
+
userHeaders: workflowContext.headers,
|
|
758
|
+
failureUrl: workflowContext.failureUrl,
|
|
759
|
+
retries: workflowContext.retries,
|
|
760
|
+
telemetry
|
|
761
|
+
});
|
|
752
762
|
if (useJSONContent) {
|
|
753
763
|
headers["content-type"] = "application/json";
|
|
754
764
|
}
|
|
@@ -854,7 +864,16 @@ var recreateUserHeaders = (headers) => {
|
|
|
854
864
|
}
|
|
855
865
|
return filteredHeaders;
|
|
856
866
|
};
|
|
857
|
-
var handleThirdPartyCallResult = async (
|
|
867
|
+
var handleThirdPartyCallResult = async ({
|
|
868
|
+
request,
|
|
869
|
+
requestPayload,
|
|
870
|
+
client,
|
|
871
|
+
workflowUrl,
|
|
872
|
+
failureUrl,
|
|
873
|
+
retries,
|
|
874
|
+
telemetry,
|
|
875
|
+
debug
|
|
876
|
+
}) => {
|
|
858
877
|
try {
|
|
859
878
|
if (request.headers.get("Upstash-Workflow-Callback")) {
|
|
860
879
|
let callbackPayload;
|
|
@@ -913,15 +932,15 @@ ${atob(callbackMessage.body ?? "")}`
|
|
|
913
932
|
);
|
|
914
933
|
}
|
|
915
934
|
const userHeaders = recreateUserHeaders(request.headers);
|
|
916
|
-
const { headers: requestHeaders } = getHeaders(
|
|
917
|
-
"false",
|
|
935
|
+
const { headers: requestHeaders } = getHeaders({
|
|
936
|
+
initHeaderValue: "false",
|
|
918
937
|
workflowRunId,
|
|
919
938
|
workflowUrl,
|
|
920
939
|
userHeaders,
|
|
921
|
-
void 0,
|
|
922
940
|
failureUrl,
|
|
923
|
-
retries
|
|
924
|
-
|
|
941
|
+
retries,
|
|
942
|
+
telemetry
|
|
943
|
+
});
|
|
925
944
|
const callResponse = {
|
|
926
945
|
status: callbackMessage.status,
|
|
927
946
|
body: atob(callbackMessage.body ?? ""),
|
|
@@ -959,12 +978,31 @@ ${atob(callbackMessage.body ?? "")}`
|
|
|
959
978
|
);
|
|
960
979
|
}
|
|
961
980
|
};
|
|
962
|
-
var
|
|
981
|
+
var getTelemetryHeaders = (telemetry) => {
|
|
982
|
+
return {
|
|
983
|
+
[TELEMETRY_HEADER_SDK]: telemetry.sdk,
|
|
984
|
+
[TELEMETRY_HEADER_FRAMEWORK]: telemetry.framework,
|
|
985
|
+
[TELEMETRY_HEADER_RUNTIME]: telemetry.runtime ?? "unknown"
|
|
986
|
+
};
|
|
987
|
+
};
|
|
988
|
+
var getHeaders = ({
|
|
989
|
+
initHeaderValue,
|
|
990
|
+
workflowRunId,
|
|
991
|
+
workflowUrl,
|
|
992
|
+
userHeaders,
|
|
993
|
+
failureUrl,
|
|
994
|
+
retries,
|
|
995
|
+
step,
|
|
996
|
+
callRetries,
|
|
997
|
+
callTimeout,
|
|
998
|
+
telemetry
|
|
999
|
+
}) => {
|
|
963
1000
|
const baseHeaders = {
|
|
964
1001
|
[WORKFLOW_INIT_HEADER]: initHeaderValue,
|
|
965
1002
|
[WORKFLOW_ID_HEADER]: workflowRunId,
|
|
966
1003
|
[WORKFLOW_URL_HEADER]: workflowUrl,
|
|
967
|
-
[WORKFLOW_FEATURE_HEADER]: "LazyFetch,InitialBody"
|
|
1004
|
+
[WORKFLOW_FEATURE_HEADER]: "LazyFetch,InitialBody",
|
|
1005
|
+
...telemetry ? getTelemetryHeaders(telemetry) : {}
|
|
968
1006
|
};
|
|
969
1007
|
if (!step?.callUrl) {
|
|
970
1008
|
baseHeaders[`Upstash-Forward-${WORKFLOW_PROTOCOL_VERSION_HEADER}`] = WORKFLOW_PROTOCOL_VERSION;
|
|
@@ -1038,6 +1076,13 @@ var getHeaders = (initHeaderValue, workflowRunId, workflowUrl, userHeaders, step
|
|
|
1038
1076
|
...Object.fromEntries(
|
|
1039
1077
|
Object.entries(baseHeaders).map(([header, value]) => [header, [value]])
|
|
1040
1078
|
),
|
|
1079
|
+
// to include telemetry headers:
|
|
1080
|
+
...telemetry ? Object.fromEntries(
|
|
1081
|
+
Object.entries(getTelemetryHeaders(telemetry)).map(([header, value]) => [
|
|
1082
|
+
header,
|
|
1083
|
+
[value]
|
|
1084
|
+
])
|
|
1085
|
+
) : {},
|
|
1041
1086
|
// note: using WORKFLOW_ID_HEADER doesn't work, because Runid -> RunId:
|
|
1042
1087
|
"Upstash-Workflow-Runid": [workflowRunId],
|
|
1043
1088
|
[WORKFLOW_INIT_HEADER]: ["false"],
|
|
@@ -1076,6 +1121,7 @@ If you want to disable QStash Verification, you should clear env variables QSTAS
|
|
|
1076
1121
|
};
|
|
1077
1122
|
|
|
1078
1123
|
// src/context/auto-executor.ts
|
|
1124
|
+
var import_qstash4 = require("@upstash/qstash");
|
|
1079
1125
|
var AutoExecutor = class _AutoExecutor {
|
|
1080
1126
|
context;
|
|
1081
1127
|
promises = /* @__PURE__ */ new WeakMap();
|
|
@@ -1084,13 +1130,15 @@ var AutoExecutor = class _AutoExecutor {
|
|
|
1084
1130
|
nonPlanStepCount;
|
|
1085
1131
|
steps;
|
|
1086
1132
|
indexInCurrentList = 0;
|
|
1133
|
+
telemetry;
|
|
1087
1134
|
stepCount = 0;
|
|
1088
1135
|
planStepCount = 0;
|
|
1089
1136
|
executingStep = false;
|
|
1090
|
-
constructor(context, steps, debug) {
|
|
1137
|
+
constructor(context, steps, telemetry, debug) {
|
|
1091
1138
|
this.context = context;
|
|
1092
|
-
this.debug = debug;
|
|
1093
1139
|
this.steps = steps;
|
|
1140
|
+
this.telemetry = telemetry;
|
|
1141
|
+
this.debug = debug;
|
|
1094
1142
|
this.nonPlanStepCount = this.steps.filter((step) => !step.targetStep).length;
|
|
1095
1143
|
}
|
|
1096
1144
|
/**
|
|
@@ -1233,7 +1281,7 @@ var AutoExecutor = class _AutoExecutor {
|
|
|
1233
1281
|
);
|
|
1234
1282
|
await this.submitStepsToQStash([resultStep], [parallelStep]);
|
|
1235
1283
|
} catch (error) {
|
|
1236
|
-
if (error instanceof WorkflowAbort) {
|
|
1284
|
+
if (error instanceof WorkflowAbort || error instanceof import_qstash4.QstashError && error.status === 400) {
|
|
1237
1285
|
throw error;
|
|
1238
1286
|
}
|
|
1239
1287
|
throw new WorkflowError(
|
|
@@ -1304,15 +1352,16 @@ var AutoExecutor = class _AutoExecutor {
|
|
|
1304
1352
|
});
|
|
1305
1353
|
if (steps[0].waitEventId && steps.length === 1) {
|
|
1306
1354
|
const waitStep = steps[0];
|
|
1307
|
-
const { headers, timeoutHeaders } = getHeaders(
|
|
1308
|
-
"false",
|
|
1309
|
-
this.context.workflowRunId,
|
|
1310
|
-
this.context.url,
|
|
1311
|
-
this.context.headers,
|
|
1312
|
-
waitStep,
|
|
1313
|
-
this.context.failureUrl,
|
|
1314
|
-
this.context.retries
|
|
1315
|
-
|
|
1355
|
+
const { headers, timeoutHeaders } = getHeaders({
|
|
1356
|
+
initHeaderValue: "false",
|
|
1357
|
+
workflowRunId: this.context.workflowRunId,
|
|
1358
|
+
workflowUrl: this.context.url,
|
|
1359
|
+
userHeaders: this.context.headers,
|
|
1360
|
+
step: waitStep,
|
|
1361
|
+
failureUrl: this.context.failureUrl,
|
|
1362
|
+
retries: this.context.retries,
|
|
1363
|
+
telemetry: this.telemetry
|
|
1364
|
+
});
|
|
1316
1365
|
const waitBody = {
|
|
1317
1366
|
url: this.context.url,
|
|
1318
1367
|
timeout: waitStep.timeout,
|
|
@@ -1339,17 +1388,18 @@ var AutoExecutor = class _AutoExecutor {
|
|
|
1339
1388
|
const result = await this.context.qstashClient.batchJSON(
|
|
1340
1389
|
steps.map((singleStep, index) => {
|
|
1341
1390
|
const lazyStep = lazySteps[index];
|
|
1342
|
-
const { headers } = getHeaders(
|
|
1343
|
-
"false",
|
|
1344
|
-
this.context.workflowRunId,
|
|
1345
|
-
this.context.url,
|
|
1346
|
-
this.context.headers,
|
|
1347
|
-
singleStep,
|
|
1348
|
-
this.context.failureUrl,
|
|
1349
|
-
this.context.retries,
|
|
1350
|
-
lazyStep instanceof LazyCallStep ? lazyStep.retries : void 0,
|
|
1351
|
-
lazyStep instanceof LazyCallStep ? lazyStep.timeout : void 0
|
|
1352
|
-
|
|
1391
|
+
const { headers } = getHeaders({
|
|
1392
|
+
initHeaderValue: "false",
|
|
1393
|
+
workflowRunId: this.context.workflowRunId,
|
|
1394
|
+
workflowUrl: this.context.url,
|
|
1395
|
+
userHeaders: this.context.headers,
|
|
1396
|
+
step: singleStep,
|
|
1397
|
+
failureUrl: this.context.failureUrl,
|
|
1398
|
+
retries: this.context.retries,
|
|
1399
|
+
callRetries: lazyStep instanceof LazyCallStep ? lazyStep.retries : void 0,
|
|
1400
|
+
callTimeout: lazyStep instanceof LazyCallStep ? lazyStep.timeout : void 0,
|
|
1401
|
+
telemetry: this.telemetry
|
|
1402
|
+
});
|
|
1353
1403
|
const willWait = singleStep.concurrent === NO_CONCURRENCY || singleStep.stepId === 0;
|
|
1354
1404
|
singleStep.out = JSON.stringify(singleStep.out);
|
|
1355
1405
|
return singleStep.callUrl ? (
|
|
@@ -1462,7 +1512,7 @@ var sortSteps = (steps) => {
|
|
|
1462
1512
|
};
|
|
1463
1513
|
|
|
1464
1514
|
// src/context/api/anthropic.ts
|
|
1465
|
-
var
|
|
1515
|
+
var import_qstash5 = require("@upstash/qstash");
|
|
1466
1516
|
|
|
1467
1517
|
// src/context/provider.ts
|
|
1468
1518
|
var getProviderInfo = (api) => {
|
|
@@ -1526,7 +1576,7 @@ var AnthropicAPI = class extends BaseWorkflowApi {
|
|
|
1526
1576
|
return await this.callApi(stepName, {
|
|
1527
1577
|
api: {
|
|
1528
1578
|
name: "llm",
|
|
1529
|
-
provider: (0,
|
|
1579
|
+
provider: (0, import_qstash5.anthropic)({ token })
|
|
1530
1580
|
},
|
|
1531
1581
|
...parameters
|
|
1532
1582
|
});
|
|
@@ -1534,14 +1584,14 @@ var AnthropicAPI = class extends BaseWorkflowApi {
|
|
|
1534
1584
|
};
|
|
1535
1585
|
|
|
1536
1586
|
// src/context/api/openai.ts
|
|
1537
|
-
var
|
|
1587
|
+
var import_qstash6 = require("@upstash/qstash");
|
|
1538
1588
|
var OpenAIAPI = class extends BaseWorkflowApi {
|
|
1539
1589
|
async call(stepName, settings) {
|
|
1540
1590
|
const { token, organization, operation, ...parameters } = settings;
|
|
1541
1591
|
return await this.callApi(stepName, {
|
|
1542
1592
|
api: {
|
|
1543
1593
|
name: "llm",
|
|
1544
|
-
provider: (0,
|
|
1594
|
+
provider: (0, import_qstash6.openai)({ token, organization })
|
|
1545
1595
|
},
|
|
1546
1596
|
...parameters
|
|
1547
1597
|
});
|
|
@@ -1549,14 +1599,14 @@ var OpenAIAPI = class extends BaseWorkflowApi {
|
|
|
1549
1599
|
};
|
|
1550
1600
|
|
|
1551
1601
|
// src/context/api/resend.ts
|
|
1552
|
-
var
|
|
1602
|
+
var import_qstash7 = require("@upstash/qstash");
|
|
1553
1603
|
var ResendAPI = class extends BaseWorkflowApi {
|
|
1554
1604
|
async call(stepName, settings) {
|
|
1555
1605
|
const { token, batch = false, ...parameters } = settings;
|
|
1556
1606
|
return await this.callApi(stepName, {
|
|
1557
1607
|
api: {
|
|
1558
1608
|
name: "email",
|
|
1559
|
-
provider: (0,
|
|
1609
|
+
provider: (0, import_qstash7.resend)({ token, batch })
|
|
1560
1610
|
},
|
|
1561
1611
|
...parameters
|
|
1562
1612
|
});
|
|
@@ -1714,7 +1764,8 @@ var WorkflowContext = class {
|
|
|
1714
1764
|
debug,
|
|
1715
1765
|
initialPayload,
|
|
1716
1766
|
env,
|
|
1717
|
-
retries
|
|
1767
|
+
retries,
|
|
1768
|
+
telemetry
|
|
1718
1769
|
}) {
|
|
1719
1770
|
this.qstashClient = qstashClient;
|
|
1720
1771
|
this.workflowRunId = workflowRunId;
|
|
@@ -1725,7 +1776,7 @@ var WorkflowContext = class {
|
|
|
1725
1776
|
this.requestPayload = initialPayload;
|
|
1726
1777
|
this.env = env ?? {};
|
|
1727
1778
|
this.retries = retries ?? DEFAULT_RETRIES;
|
|
1728
|
-
this.executor = new AutoExecutor(this, this.steps, debug);
|
|
1779
|
+
this.executor = new AutoExecutor(this, this.steps, telemetry, debug);
|
|
1729
1780
|
}
|
|
1730
1781
|
/**
|
|
1731
1782
|
* Executes a workflow step
|
|
@@ -2043,7 +2094,7 @@ function decodeBase64(base64) {
|
|
|
2043
2094
|
}
|
|
2044
2095
|
|
|
2045
2096
|
// src/serve/authorization.ts
|
|
2046
|
-
var
|
|
2097
|
+
var import_qstash8 = require("@upstash/qstash");
|
|
2047
2098
|
var DisabledWorkflowContext = class _DisabledWorkflowContext extends WorkflowContext {
|
|
2048
2099
|
static disabledMessage = "disabled-qstash-worklfow-run";
|
|
2049
2100
|
/**
|
|
@@ -2074,7 +2125,7 @@ var DisabledWorkflowContext = class _DisabledWorkflowContext extends WorkflowCon
|
|
|
2074
2125
|
*/
|
|
2075
2126
|
static async tryAuthentication(routeFunction, context) {
|
|
2076
2127
|
const disabledContext = new _DisabledWorkflowContext({
|
|
2077
|
-
qstashClient: new
|
|
2128
|
+
qstashClient: new import_qstash8.Client({
|
|
2078
2129
|
baseUrl: "disabled-client",
|
|
2079
2130
|
token: "disabled-client"
|
|
2080
2131
|
}),
|
|
@@ -2238,7 +2289,7 @@ var parseRequest = async (requestPayload, isFirstInvocation, workflowRunId, requ
|
|
|
2238
2289
|
};
|
|
2239
2290
|
}
|
|
2240
2291
|
};
|
|
2241
|
-
var handleFailure = async (request, requestPayload, qstashClient, initialPayloadParser, routeFunction, failureFunction, debug) => {
|
|
2292
|
+
var handleFailure = async (request, requestPayload, qstashClient, initialPayloadParser, routeFunction, failureFunction, env, retries, debug) => {
|
|
2242
2293
|
if (request.headers.get(WORKFLOW_FAILURE_HEADER) !== "true") {
|
|
2243
2294
|
return ok("not-failure-callback");
|
|
2244
2295
|
}
|
|
@@ -2263,7 +2314,11 @@ var handleFailure = async (request, requestPayload, qstashClient, initialPayload
|
|
|
2263
2314
|
steps: [],
|
|
2264
2315
|
url,
|
|
2265
2316
|
failureUrl: url,
|
|
2266
|
-
debug
|
|
2317
|
+
debug,
|
|
2318
|
+
env,
|
|
2319
|
+
retries,
|
|
2320
|
+
telemetry: void 0
|
|
2321
|
+
// not going to make requests in authentication check
|
|
2267
2322
|
});
|
|
2268
2323
|
const authCheck = await DisabledWorkflowContext.tryAuthentication(
|
|
2269
2324
|
routeFunction,
|
|
@@ -2288,15 +2343,15 @@ var handleFailure = async (request, requestPayload, qstashClient, initialPayload
|
|
|
2288
2343
|
};
|
|
2289
2344
|
|
|
2290
2345
|
// src/serve/options.ts
|
|
2291
|
-
var import_qstash8 = require("@upstash/qstash");
|
|
2292
2346
|
var import_qstash9 = require("@upstash/qstash");
|
|
2347
|
+
var import_qstash10 = require("@upstash/qstash");
|
|
2293
2348
|
var processOptions = (options) => {
|
|
2294
2349
|
const environment = options?.env ?? (typeof process === "undefined" ? {} : process.env);
|
|
2295
2350
|
const receiverEnvironmentVariablesSet = Boolean(
|
|
2296
2351
|
environment.QSTASH_CURRENT_SIGNING_KEY && environment.QSTASH_NEXT_SIGNING_KEY
|
|
2297
2352
|
);
|
|
2298
2353
|
return {
|
|
2299
|
-
qstashClient: new
|
|
2354
|
+
qstashClient: new import_qstash10.Client({
|
|
2300
2355
|
baseUrl: environment.QSTASH_URL,
|
|
2301
2356
|
token: environment.QSTASH_TOKEN
|
|
2302
2357
|
}),
|
|
@@ -2330,7 +2385,7 @@ var processOptions = (options) => {
|
|
|
2330
2385
|
throw error;
|
|
2331
2386
|
}
|
|
2332
2387
|
},
|
|
2333
|
-
receiver: receiverEnvironmentVariablesSet ? new
|
|
2388
|
+
receiver: receiverEnvironmentVariablesSet ? new import_qstash9.Receiver({
|
|
2334
2389
|
currentSigningKey: environment.QSTASH_CURRENT_SIGNING_KEY,
|
|
2335
2390
|
nextSigningKey: environment.QSTASH_NEXT_SIGNING_KEY
|
|
2336
2391
|
}) : void 0,
|
|
@@ -2338,6 +2393,7 @@ var processOptions = (options) => {
|
|
|
2338
2393
|
env: environment,
|
|
2339
2394
|
retries: DEFAULT_RETRIES,
|
|
2340
2395
|
useJSONContent: false,
|
|
2396
|
+
disableTelemetry: false,
|
|
2341
2397
|
...options
|
|
2342
2398
|
};
|
|
2343
2399
|
};
|
|
@@ -2372,7 +2428,7 @@ var determineUrls = async (request, url, baseUrl, failureFunction, failureUrl, d
|
|
|
2372
2428
|
var AUTH_FAIL_MESSAGE = `Failed to authenticate Workflow request. If this is unexpected, see the caveat https://upstash.com/docs/workflow/basics/caveats#avoid-non-deterministic-code-outside-context-run`;
|
|
2373
2429
|
|
|
2374
2430
|
// src/serve/index.ts
|
|
2375
|
-
var serveBase = (routeFunction, options) => {
|
|
2431
|
+
var serveBase = (routeFunction, telemetry, options) => {
|
|
2376
2432
|
const {
|
|
2377
2433
|
qstashClient,
|
|
2378
2434
|
onStepFinish,
|
|
@@ -2385,8 +2441,10 @@ var serveBase = (routeFunction, options) => {
|
|
|
2385
2441
|
baseUrl,
|
|
2386
2442
|
env,
|
|
2387
2443
|
retries,
|
|
2388
|
-
useJSONContent
|
|
2444
|
+
useJSONContent,
|
|
2445
|
+
disableTelemetry
|
|
2389
2446
|
} = processOptions(options);
|
|
2447
|
+
telemetry = disableTelemetry ? void 0 : telemetry;
|
|
2390
2448
|
const debug = WorkflowLogger.getLogger(verbose);
|
|
2391
2449
|
const handler = async (request) => {
|
|
2392
2450
|
await debug?.log("INFO", "ENDPOINT_START");
|
|
@@ -2422,7 +2480,10 @@ var serveBase = (routeFunction, options) => {
|
|
|
2422
2480
|
qstashClient,
|
|
2423
2481
|
initialPayloadParser,
|
|
2424
2482
|
routeFunction,
|
|
2425
|
-
failureFunction
|
|
2483
|
+
failureFunction,
|
|
2484
|
+
env,
|
|
2485
|
+
retries,
|
|
2486
|
+
debug
|
|
2426
2487
|
);
|
|
2427
2488
|
if (failureCheck.isErr()) {
|
|
2428
2489
|
throw failureCheck.error;
|
|
@@ -2440,7 +2501,8 @@ var serveBase = (routeFunction, options) => {
|
|
|
2440
2501
|
failureUrl: workflowFailureUrl,
|
|
2441
2502
|
debug,
|
|
2442
2503
|
env,
|
|
2443
|
-
retries
|
|
2504
|
+
retries,
|
|
2505
|
+
telemetry
|
|
2444
2506
|
});
|
|
2445
2507
|
const authCheck = await DisabledWorkflowContext.tryAuthentication(
|
|
2446
2508
|
routeFunction,
|
|
@@ -2456,22 +2518,23 @@ var serveBase = (routeFunction, options) => {
|
|
|
2456
2518
|
"auth-fail"
|
|
2457
2519
|
);
|
|
2458
2520
|
}
|
|
2459
|
-
const callReturnCheck = await handleThirdPartyCallResult(
|
|
2521
|
+
const callReturnCheck = await handleThirdPartyCallResult({
|
|
2460
2522
|
request,
|
|
2461
|
-
rawInitialPayload,
|
|
2462
|
-
qstashClient,
|
|
2523
|
+
requestPayload: rawInitialPayload,
|
|
2524
|
+
client: qstashClient,
|
|
2463
2525
|
workflowUrl,
|
|
2464
|
-
workflowFailureUrl,
|
|
2526
|
+
failureUrl: workflowFailureUrl,
|
|
2465
2527
|
retries,
|
|
2528
|
+
telemetry,
|
|
2466
2529
|
debug
|
|
2467
|
-
);
|
|
2530
|
+
});
|
|
2468
2531
|
if (callReturnCheck.isErr()) {
|
|
2469
2532
|
await debug?.log("ERROR", "SUBMIT_THIRD_PARTY_RESULT", {
|
|
2470
2533
|
error: callReturnCheck.error.message
|
|
2471
2534
|
});
|
|
2472
2535
|
throw callReturnCheck.error;
|
|
2473
2536
|
} else if (callReturnCheck.value === "continue-workflow") {
|
|
2474
|
-
const result = isFirstInvocation ? await triggerFirstInvocation(workflowContext,
|
|
2537
|
+
const result = isFirstInvocation ? await triggerFirstInvocation({ workflowContext, useJSONContent, telemetry, debug }) : await triggerRouteFunction({
|
|
2475
2538
|
onStep: async () => routeFunction(workflowContext),
|
|
2476
2539
|
onCleanup: async () => {
|
|
2477
2540
|
await triggerWorkflowDelete(workflowContext, debug);
|
|
@@ -2528,10 +2591,17 @@ var getArgs = (args) => {
|
|
|
2528
2591
|
var serve = (routeFunction, options) => {
|
|
2529
2592
|
const fetch = async (...args) => {
|
|
2530
2593
|
const { request, env } = getArgs(args);
|
|
2531
|
-
const { handler: serveHandler } = serveBase(
|
|
2532
|
-
|
|
2533
|
-
|
|
2534
|
-
|
|
2594
|
+
const { handler: serveHandler } = serveBase(
|
|
2595
|
+
routeFunction,
|
|
2596
|
+
{
|
|
2597
|
+
sdk: SDK_TELEMETRY,
|
|
2598
|
+
framework: "cloudflare"
|
|
2599
|
+
},
|
|
2600
|
+
{
|
|
2601
|
+
env,
|
|
2602
|
+
...options
|
|
2603
|
+
}
|
|
2604
|
+
);
|
|
2535
2605
|
return await serveHandler(request);
|
|
2536
2606
|
};
|
|
2537
2607
|
return { fetch };
|
package/cloudflare.mjs
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import {
|
|
2
|
+
SDK_TELEMETRY,
|
|
2
3
|
serveBase
|
|
3
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-ETDFMXER.mjs";
|
|
4
5
|
|
|
5
6
|
// platforms/cloudflare.ts
|
|
6
7
|
var getArgs = (args) => {
|
|
@@ -24,10 +25,17 @@ var getArgs = (args) => {
|
|
|
24
25
|
var serve = (routeFunction, options) => {
|
|
25
26
|
const fetch = async (...args) => {
|
|
26
27
|
const { request, env } = getArgs(args);
|
|
27
|
-
const { handler: serveHandler } = serveBase(
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
28
|
+
const { handler: serveHandler } = serveBase(
|
|
29
|
+
routeFunction,
|
|
30
|
+
{
|
|
31
|
+
sdk: SDK_TELEMETRY,
|
|
32
|
+
framework: "cloudflare"
|
|
33
|
+
},
|
|
34
|
+
{
|
|
35
|
+
env,
|
|
36
|
+
...options
|
|
37
|
+
}
|
|
38
|
+
);
|
|
31
39
|
return await serveHandler(request);
|
|
32
40
|
};
|
|
33
41
|
return { fetch };
|
package/express.d.mts
CHANGED
package/express.d.ts
CHANGED