@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/h3.js
CHANGED
|
@@ -389,6 +389,23 @@ var getSteps = async (requester, workflowRunId, messageId, debug) => {
|
|
|
389
389
|
}
|
|
390
390
|
};
|
|
391
391
|
|
|
392
|
+
// src/constants.ts
|
|
393
|
+
var WORKFLOW_ID_HEADER = "Upstash-Workflow-RunId";
|
|
394
|
+
var WORKFLOW_INIT_HEADER = "Upstash-Workflow-Init";
|
|
395
|
+
var WORKFLOW_URL_HEADER = "Upstash-Workflow-Url";
|
|
396
|
+
var WORKFLOW_FAILURE_HEADER = "Upstash-Workflow-Is-Failure";
|
|
397
|
+
var WORKFLOW_FEATURE_HEADER = "Upstash-Feature-Set";
|
|
398
|
+
var WORKFLOW_PROTOCOL_VERSION = "1";
|
|
399
|
+
var WORKFLOW_PROTOCOL_VERSION_HEADER = "Upstash-Workflow-Sdk-Version";
|
|
400
|
+
var DEFAULT_CONTENT_TYPE = "application/json";
|
|
401
|
+
var NO_CONCURRENCY = 1;
|
|
402
|
+
var DEFAULT_RETRIES = 3;
|
|
403
|
+
var VERSION = "v0.2.3";
|
|
404
|
+
var SDK_TELEMETRY = `@upstash/workflow@${VERSION}`;
|
|
405
|
+
var TELEMETRY_HEADER_SDK = "Upstash-Telemetry-Sdk";
|
|
406
|
+
var TELEMETRY_HEADER_FRAMEWORK = "Upstash-Telemetry-Framework";
|
|
407
|
+
var TELEMETRY_HEADER_RUNTIME = "Upstash-Telemetry-Runtime";
|
|
408
|
+
|
|
392
409
|
// src/error.ts
|
|
393
410
|
var import_qstash2 = require("@upstash/qstash");
|
|
394
411
|
var WorkflowError = class extends import_qstash2.QstashError {
|
|
@@ -1026,18 +1043,6 @@ var Err = class {
|
|
|
1026
1043
|
};
|
|
1027
1044
|
var fromThrowable = Result.fromThrowable;
|
|
1028
1045
|
|
|
1029
|
-
// src/constants.ts
|
|
1030
|
-
var WORKFLOW_ID_HEADER = "Upstash-Workflow-RunId";
|
|
1031
|
-
var WORKFLOW_INIT_HEADER = "Upstash-Workflow-Init";
|
|
1032
|
-
var WORKFLOW_URL_HEADER = "Upstash-Workflow-Url";
|
|
1033
|
-
var WORKFLOW_FAILURE_HEADER = "Upstash-Workflow-Is-Failure";
|
|
1034
|
-
var WORKFLOW_FEATURE_HEADER = "Upstash-Feature-Set";
|
|
1035
|
-
var WORKFLOW_PROTOCOL_VERSION = "1";
|
|
1036
|
-
var WORKFLOW_PROTOCOL_VERSION_HEADER = "Upstash-Workflow-Sdk-Version";
|
|
1037
|
-
var DEFAULT_CONTENT_TYPE = "application/json";
|
|
1038
|
-
var NO_CONCURRENCY = 1;
|
|
1039
|
-
var DEFAULT_RETRIES = 3;
|
|
1040
|
-
|
|
1041
1046
|
// src/types.ts
|
|
1042
1047
|
var StepTypes = [
|
|
1043
1048
|
"Initial",
|
|
@@ -1051,16 +1056,21 @@ var StepTypes = [
|
|
|
1051
1056
|
|
|
1052
1057
|
// src/workflow-requests.ts
|
|
1053
1058
|
var import_qstash3 = require("@upstash/qstash");
|
|
1054
|
-
var triggerFirstInvocation = async (
|
|
1055
|
-
|
|
1056
|
-
|
|
1057
|
-
|
|
1058
|
-
|
|
1059
|
-
|
|
1060
|
-
|
|
1061
|
-
|
|
1062
|
-
|
|
1063
|
-
|
|
1059
|
+
var triggerFirstInvocation = async ({
|
|
1060
|
+
workflowContext,
|
|
1061
|
+
useJSONContent,
|
|
1062
|
+
telemetry,
|
|
1063
|
+
debug
|
|
1064
|
+
}) => {
|
|
1065
|
+
const { headers } = getHeaders({
|
|
1066
|
+
initHeaderValue: "true",
|
|
1067
|
+
workflowRunId: workflowContext.workflowRunId,
|
|
1068
|
+
workflowUrl: workflowContext.url,
|
|
1069
|
+
userHeaders: workflowContext.headers,
|
|
1070
|
+
failureUrl: workflowContext.failureUrl,
|
|
1071
|
+
retries: workflowContext.retries,
|
|
1072
|
+
telemetry
|
|
1073
|
+
});
|
|
1064
1074
|
if (useJSONContent) {
|
|
1065
1075
|
headers["content-type"] = "application/json";
|
|
1066
1076
|
}
|
|
@@ -1166,7 +1176,16 @@ var recreateUserHeaders = (headers) => {
|
|
|
1166
1176
|
}
|
|
1167
1177
|
return filteredHeaders;
|
|
1168
1178
|
};
|
|
1169
|
-
var handleThirdPartyCallResult = async (
|
|
1179
|
+
var handleThirdPartyCallResult = async ({
|
|
1180
|
+
request,
|
|
1181
|
+
requestPayload,
|
|
1182
|
+
client,
|
|
1183
|
+
workflowUrl,
|
|
1184
|
+
failureUrl,
|
|
1185
|
+
retries,
|
|
1186
|
+
telemetry,
|
|
1187
|
+
debug
|
|
1188
|
+
}) => {
|
|
1170
1189
|
try {
|
|
1171
1190
|
if (request.headers.get("Upstash-Workflow-Callback")) {
|
|
1172
1191
|
let callbackPayload;
|
|
@@ -1225,15 +1244,15 @@ ${atob(callbackMessage.body ?? "")}`
|
|
|
1225
1244
|
);
|
|
1226
1245
|
}
|
|
1227
1246
|
const userHeaders = recreateUserHeaders(request.headers);
|
|
1228
|
-
const { headers: requestHeaders } = getHeaders(
|
|
1229
|
-
"false",
|
|
1247
|
+
const { headers: requestHeaders } = getHeaders({
|
|
1248
|
+
initHeaderValue: "false",
|
|
1230
1249
|
workflowRunId,
|
|
1231
1250
|
workflowUrl,
|
|
1232
1251
|
userHeaders,
|
|
1233
|
-
void 0,
|
|
1234
1252
|
failureUrl,
|
|
1235
|
-
retries
|
|
1236
|
-
|
|
1253
|
+
retries,
|
|
1254
|
+
telemetry
|
|
1255
|
+
});
|
|
1237
1256
|
const callResponse = {
|
|
1238
1257
|
status: callbackMessage.status,
|
|
1239
1258
|
body: atob(callbackMessage.body ?? ""),
|
|
@@ -1271,12 +1290,31 @@ ${atob(callbackMessage.body ?? "")}`
|
|
|
1271
1290
|
);
|
|
1272
1291
|
}
|
|
1273
1292
|
};
|
|
1274
|
-
var
|
|
1293
|
+
var getTelemetryHeaders = (telemetry) => {
|
|
1294
|
+
return {
|
|
1295
|
+
[TELEMETRY_HEADER_SDK]: telemetry.sdk,
|
|
1296
|
+
[TELEMETRY_HEADER_FRAMEWORK]: telemetry.framework,
|
|
1297
|
+
[TELEMETRY_HEADER_RUNTIME]: telemetry.runtime ?? "unknown"
|
|
1298
|
+
};
|
|
1299
|
+
};
|
|
1300
|
+
var getHeaders = ({
|
|
1301
|
+
initHeaderValue,
|
|
1302
|
+
workflowRunId,
|
|
1303
|
+
workflowUrl,
|
|
1304
|
+
userHeaders,
|
|
1305
|
+
failureUrl,
|
|
1306
|
+
retries,
|
|
1307
|
+
step,
|
|
1308
|
+
callRetries,
|
|
1309
|
+
callTimeout,
|
|
1310
|
+
telemetry
|
|
1311
|
+
}) => {
|
|
1275
1312
|
const baseHeaders = {
|
|
1276
1313
|
[WORKFLOW_INIT_HEADER]: initHeaderValue,
|
|
1277
1314
|
[WORKFLOW_ID_HEADER]: workflowRunId,
|
|
1278
1315
|
[WORKFLOW_URL_HEADER]: workflowUrl,
|
|
1279
|
-
[WORKFLOW_FEATURE_HEADER]: "LazyFetch,InitialBody"
|
|
1316
|
+
[WORKFLOW_FEATURE_HEADER]: "LazyFetch,InitialBody",
|
|
1317
|
+
...telemetry ? getTelemetryHeaders(telemetry) : {}
|
|
1280
1318
|
};
|
|
1281
1319
|
if (!step?.callUrl) {
|
|
1282
1320
|
baseHeaders[`Upstash-Forward-${WORKFLOW_PROTOCOL_VERSION_HEADER}`] = WORKFLOW_PROTOCOL_VERSION;
|
|
@@ -1350,6 +1388,13 @@ var getHeaders = (initHeaderValue, workflowRunId, workflowUrl, userHeaders, step
|
|
|
1350
1388
|
...Object.fromEntries(
|
|
1351
1389
|
Object.entries(baseHeaders).map(([header, value]) => [header, [value]])
|
|
1352
1390
|
),
|
|
1391
|
+
// to include telemetry headers:
|
|
1392
|
+
...telemetry ? Object.fromEntries(
|
|
1393
|
+
Object.entries(getTelemetryHeaders(telemetry)).map(([header, value]) => [
|
|
1394
|
+
header,
|
|
1395
|
+
[value]
|
|
1396
|
+
])
|
|
1397
|
+
) : {},
|
|
1353
1398
|
// note: using WORKFLOW_ID_HEADER doesn't work, because Runid -> RunId:
|
|
1354
1399
|
"Upstash-Workflow-Runid": [workflowRunId],
|
|
1355
1400
|
[WORKFLOW_INIT_HEADER]: ["false"],
|
|
@@ -1388,6 +1433,7 @@ If you want to disable QStash Verification, you should clear env variables QSTAS
|
|
|
1388
1433
|
};
|
|
1389
1434
|
|
|
1390
1435
|
// src/context/auto-executor.ts
|
|
1436
|
+
var import_qstash4 = require("@upstash/qstash");
|
|
1391
1437
|
var AutoExecutor = class _AutoExecutor {
|
|
1392
1438
|
context;
|
|
1393
1439
|
promises = /* @__PURE__ */ new WeakMap();
|
|
@@ -1396,13 +1442,15 @@ var AutoExecutor = class _AutoExecutor {
|
|
|
1396
1442
|
nonPlanStepCount;
|
|
1397
1443
|
steps;
|
|
1398
1444
|
indexInCurrentList = 0;
|
|
1445
|
+
telemetry;
|
|
1399
1446
|
stepCount = 0;
|
|
1400
1447
|
planStepCount = 0;
|
|
1401
1448
|
executingStep = false;
|
|
1402
|
-
constructor(context, steps, debug) {
|
|
1449
|
+
constructor(context, steps, telemetry, debug) {
|
|
1403
1450
|
this.context = context;
|
|
1404
|
-
this.debug = debug;
|
|
1405
1451
|
this.steps = steps;
|
|
1452
|
+
this.telemetry = telemetry;
|
|
1453
|
+
this.debug = debug;
|
|
1406
1454
|
this.nonPlanStepCount = this.steps.filter((step) => !step.targetStep).length;
|
|
1407
1455
|
}
|
|
1408
1456
|
/**
|
|
@@ -1545,7 +1593,7 @@ var AutoExecutor = class _AutoExecutor {
|
|
|
1545
1593
|
);
|
|
1546
1594
|
await this.submitStepsToQStash([resultStep], [parallelStep]);
|
|
1547
1595
|
} catch (error) {
|
|
1548
|
-
if (error instanceof WorkflowAbort) {
|
|
1596
|
+
if (error instanceof WorkflowAbort || error instanceof import_qstash4.QstashError && error.status === 400) {
|
|
1549
1597
|
throw error;
|
|
1550
1598
|
}
|
|
1551
1599
|
throw new WorkflowError(
|
|
@@ -1616,15 +1664,16 @@ var AutoExecutor = class _AutoExecutor {
|
|
|
1616
1664
|
});
|
|
1617
1665
|
if (steps[0].waitEventId && steps.length === 1) {
|
|
1618
1666
|
const waitStep = steps[0];
|
|
1619
|
-
const { headers, timeoutHeaders } = getHeaders(
|
|
1620
|
-
"false",
|
|
1621
|
-
this.context.workflowRunId,
|
|
1622
|
-
this.context.url,
|
|
1623
|
-
this.context.headers,
|
|
1624
|
-
waitStep,
|
|
1625
|
-
this.context.failureUrl,
|
|
1626
|
-
this.context.retries
|
|
1627
|
-
|
|
1667
|
+
const { headers, timeoutHeaders } = getHeaders({
|
|
1668
|
+
initHeaderValue: "false",
|
|
1669
|
+
workflowRunId: this.context.workflowRunId,
|
|
1670
|
+
workflowUrl: this.context.url,
|
|
1671
|
+
userHeaders: this.context.headers,
|
|
1672
|
+
step: waitStep,
|
|
1673
|
+
failureUrl: this.context.failureUrl,
|
|
1674
|
+
retries: this.context.retries,
|
|
1675
|
+
telemetry: this.telemetry
|
|
1676
|
+
});
|
|
1628
1677
|
const waitBody = {
|
|
1629
1678
|
url: this.context.url,
|
|
1630
1679
|
timeout: waitStep.timeout,
|
|
@@ -1651,17 +1700,18 @@ var AutoExecutor = class _AutoExecutor {
|
|
|
1651
1700
|
const result = await this.context.qstashClient.batchJSON(
|
|
1652
1701
|
steps.map((singleStep, index) => {
|
|
1653
1702
|
const lazyStep = lazySteps[index];
|
|
1654
|
-
const { headers } = getHeaders(
|
|
1655
|
-
"false",
|
|
1656
|
-
this.context.workflowRunId,
|
|
1657
|
-
this.context.url,
|
|
1658
|
-
this.context.headers,
|
|
1659
|
-
singleStep,
|
|
1660
|
-
this.context.failureUrl,
|
|
1661
|
-
this.context.retries,
|
|
1662
|
-
lazyStep instanceof LazyCallStep ? lazyStep.retries : void 0,
|
|
1663
|
-
lazyStep instanceof LazyCallStep ? lazyStep.timeout : void 0
|
|
1664
|
-
|
|
1703
|
+
const { headers } = getHeaders({
|
|
1704
|
+
initHeaderValue: "false",
|
|
1705
|
+
workflowRunId: this.context.workflowRunId,
|
|
1706
|
+
workflowUrl: this.context.url,
|
|
1707
|
+
userHeaders: this.context.headers,
|
|
1708
|
+
step: singleStep,
|
|
1709
|
+
failureUrl: this.context.failureUrl,
|
|
1710
|
+
retries: this.context.retries,
|
|
1711
|
+
callRetries: lazyStep instanceof LazyCallStep ? lazyStep.retries : void 0,
|
|
1712
|
+
callTimeout: lazyStep instanceof LazyCallStep ? lazyStep.timeout : void 0,
|
|
1713
|
+
telemetry: this.telemetry
|
|
1714
|
+
});
|
|
1665
1715
|
const willWait = singleStep.concurrent === NO_CONCURRENCY || singleStep.stepId === 0;
|
|
1666
1716
|
singleStep.out = JSON.stringify(singleStep.out);
|
|
1667
1717
|
return singleStep.callUrl ? (
|
|
@@ -1774,7 +1824,7 @@ var sortSteps = (steps) => {
|
|
|
1774
1824
|
};
|
|
1775
1825
|
|
|
1776
1826
|
// src/context/api/anthropic.ts
|
|
1777
|
-
var
|
|
1827
|
+
var import_qstash5 = require("@upstash/qstash");
|
|
1778
1828
|
|
|
1779
1829
|
// src/context/provider.ts
|
|
1780
1830
|
var getProviderInfo = (api) => {
|
|
@@ -1838,7 +1888,7 @@ var AnthropicAPI = class extends BaseWorkflowApi {
|
|
|
1838
1888
|
return await this.callApi(stepName, {
|
|
1839
1889
|
api: {
|
|
1840
1890
|
name: "llm",
|
|
1841
|
-
provider: (0,
|
|
1891
|
+
provider: (0, import_qstash5.anthropic)({ token })
|
|
1842
1892
|
},
|
|
1843
1893
|
...parameters
|
|
1844
1894
|
});
|
|
@@ -1846,14 +1896,14 @@ var AnthropicAPI = class extends BaseWorkflowApi {
|
|
|
1846
1896
|
};
|
|
1847
1897
|
|
|
1848
1898
|
// src/context/api/openai.ts
|
|
1849
|
-
var
|
|
1899
|
+
var import_qstash6 = require("@upstash/qstash");
|
|
1850
1900
|
var OpenAIAPI = class extends BaseWorkflowApi {
|
|
1851
1901
|
async call(stepName, settings) {
|
|
1852
1902
|
const { token, organization, operation, ...parameters } = settings;
|
|
1853
1903
|
return await this.callApi(stepName, {
|
|
1854
1904
|
api: {
|
|
1855
1905
|
name: "llm",
|
|
1856
|
-
provider: (0,
|
|
1906
|
+
provider: (0, import_qstash6.openai)({ token, organization })
|
|
1857
1907
|
},
|
|
1858
1908
|
...parameters
|
|
1859
1909
|
});
|
|
@@ -1861,14 +1911,14 @@ var OpenAIAPI = class extends BaseWorkflowApi {
|
|
|
1861
1911
|
};
|
|
1862
1912
|
|
|
1863
1913
|
// src/context/api/resend.ts
|
|
1864
|
-
var
|
|
1914
|
+
var import_qstash7 = require("@upstash/qstash");
|
|
1865
1915
|
var ResendAPI = class extends BaseWorkflowApi {
|
|
1866
1916
|
async call(stepName, settings) {
|
|
1867
1917
|
const { token, batch = false, ...parameters } = settings;
|
|
1868
1918
|
return await this.callApi(stepName, {
|
|
1869
1919
|
api: {
|
|
1870
1920
|
name: "email",
|
|
1871
|
-
provider: (0,
|
|
1921
|
+
provider: (0, import_qstash7.resend)({ token, batch })
|
|
1872
1922
|
},
|
|
1873
1923
|
...parameters
|
|
1874
1924
|
});
|
|
@@ -2026,7 +2076,8 @@ var WorkflowContext = class {
|
|
|
2026
2076
|
debug,
|
|
2027
2077
|
initialPayload,
|
|
2028
2078
|
env,
|
|
2029
|
-
retries
|
|
2079
|
+
retries,
|
|
2080
|
+
telemetry
|
|
2030
2081
|
}) {
|
|
2031
2082
|
this.qstashClient = qstashClient;
|
|
2032
2083
|
this.workflowRunId = workflowRunId;
|
|
@@ -2037,7 +2088,7 @@ var WorkflowContext = class {
|
|
|
2037
2088
|
this.requestPayload = initialPayload;
|
|
2038
2089
|
this.env = env ?? {};
|
|
2039
2090
|
this.retries = retries ?? DEFAULT_RETRIES;
|
|
2040
|
-
this.executor = new AutoExecutor(this, this.steps, debug);
|
|
2091
|
+
this.executor = new AutoExecutor(this, this.steps, telemetry, debug);
|
|
2041
2092
|
}
|
|
2042
2093
|
/**
|
|
2043
2094
|
* Executes a workflow step
|
|
@@ -2355,7 +2406,7 @@ function decodeBase64(base64) {
|
|
|
2355
2406
|
}
|
|
2356
2407
|
|
|
2357
2408
|
// src/serve/authorization.ts
|
|
2358
|
-
var
|
|
2409
|
+
var import_qstash8 = require("@upstash/qstash");
|
|
2359
2410
|
var DisabledWorkflowContext = class _DisabledWorkflowContext extends WorkflowContext {
|
|
2360
2411
|
static disabledMessage = "disabled-qstash-worklfow-run";
|
|
2361
2412
|
/**
|
|
@@ -2386,7 +2437,7 @@ var DisabledWorkflowContext = class _DisabledWorkflowContext extends WorkflowCon
|
|
|
2386
2437
|
*/
|
|
2387
2438
|
static async tryAuthentication(routeFunction, context) {
|
|
2388
2439
|
const disabledContext = new _DisabledWorkflowContext({
|
|
2389
|
-
qstashClient: new
|
|
2440
|
+
qstashClient: new import_qstash8.Client({
|
|
2390
2441
|
baseUrl: "disabled-client",
|
|
2391
2442
|
token: "disabled-client"
|
|
2392
2443
|
}),
|
|
@@ -2550,7 +2601,7 @@ var parseRequest = async (requestPayload, isFirstInvocation, workflowRunId, requ
|
|
|
2550
2601
|
};
|
|
2551
2602
|
}
|
|
2552
2603
|
};
|
|
2553
|
-
var handleFailure = async (request, requestPayload, qstashClient, initialPayloadParser, routeFunction, failureFunction, debug) => {
|
|
2604
|
+
var handleFailure = async (request, requestPayload, qstashClient, initialPayloadParser, routeFunction, failureFunction, env, retries, debug) => {
|
|
2554
2605
|
if (request.headers.get(WORKFLOW_FAILURE_HEADER) !== "true") {
|
|
2555
2606
|
return ok("not-failure-callback");
|
|
2556
2607
|
}
|
|
@@ -2575,7 +2626,11 @@ var handleFailure = async (request, requestPayload, qstashClient, initialPayload
|
|
|
2575
2626
|
steps: [],
|
|
2576
2627
|
url,
|
|
2577
2628
|
failureUrl: url,
|
|
2578
|
-
debug
|
|
2629
|
+
debug,
|
|
2630
|
+
env,
|
|
2631
|
+
retries,
|
|
2632
|
+
telemetry: void 0
|
|
2633
|
+
// not going to make requests in authentication check
|
|
2579
2634
|
});
|
|
2580
2635
|
const authCheck = await DisabledWorkflowContext.tryAuthentication(
|
|
2581
2636
|
routeFunction,
|
|
@@ -2600,15 +2655,15 @@ var handleFailure = async (request, requestPayload, qstashClient, initialPayload
|
|
|
2600
2655
|
};
|
|
2601
2656
|
|
|
2602
2657
|
// src/serve/options.ts
|
|
2603
|
-
var import_qstash8 = require("@upstash/qstash");
|
|
2604
2658
|
var import_qstash9 = require("@upstash/qstash");
|
|
2659
|
+
var import_qstash10 = require("@upstash/qstash");
|
|
2605
2660
|
var processOptions = (options) => {
|
|
2606
2661
|
const environment = options?.env ?? (typeof process === "undefined" ? {} : process.env);
|
|
2607
2662
|
const receiverEnvironmentVariablesSet = Boolean(
|
|
2608
2663
|
environment.QSTASH_CURRENT_SIGNING_KEY && environment.QSTASH_NEXT_SIGNING_KEY
|
|
2609
2664
|
);
|
|
2610
2665
|
return {
|
|
2611
|
-
qstashClient: new
|
|
2666
|
+
qstashClient: new import_qstash10.Client({
|
|
2612
2667
|
baseUrl: environment.QSTASH_URL,
|
|
2613
2668
|
token: environment.QSTASH_TOKEN
|
|
2614
2669
|
}),
|
|
@@ -2642,7 +2697,7 @@ var processOptions = (options) => {
|
|
|
2642
2697
|
throw error;
|
|
2643
2698
|
}
|
|
2644
2699
|
},
|
|
2645
|
-
receiver: receiverEnvironmentVariablesSet ? new
|
|
2700
|
+
receiver: receiverEnvironmentVariablesSet ? new import_qstash9.Receiver({
|
|
2646
2701
|
currentSigningKey: environment.QSTASH_CURRENT_SIGNING_KEY,
|
|
2647
2702
|
nextSigningKey: environment.QSTASH_NEXT_SIGNING_KEY
|
|
2648
2703
|
}) : void 0,
|
|
@@ -2650,6 +2705,7 @@ var processOptions = (options) => {
|
|
|
2650
2705
|
env: environment,
|
|
2651
2706
|
retries: DEFAULT_RETRIES,
|
|
2652
2707
|
useJSONContent: false,
|
|
2708
|
+
disableTelemetry: false,
|
|
2653
2709
|
...options
|
|
2654
2710
|
};
|
|
2655
2711
|
};
|
|
@@ -2684,7 +2740,7 @@ var determineUrls = async (request, url, baseUrl, failureFunction, failureUrl, d
|
|
|
2684
2740
|
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`;
|
|
2685
2741
|
|
|
2686
2742
|
// src/serve/index.ts
|
|
2687
|
-
var serveBase = (routeFunction, options) => {
|
|
2743
|
+
var serveBase = (routeFunction, telemetry, options) => {
|
|
2688
2744
|
const {
|
|
2689
2745
|
qstashClient,
|
|
2690
2746
|
onStepFinish,
|
|
@@ -2697,8 +2753,10 @@ var serveBase = (routeFunction, options) => {
|
|
|
2697
2753
|
baseUrl,
|
|
2698
2754
|
env,
|
|
2699
2755
|
retries,
|
|
2700
|
-
useJSONContent
|
|
2756
|
+
useJSONContent,
|
|
2757
|
+
disableTelemetry
|
|
2701
2758
|
} = processOptions(options);
|
|
2759
|
+
telemetry = disableTelemetry ? void 0 : telemetry;
|
|
2702
2760
|
const debug = WorkflowLogger.getLogger(verbose);
|
|
2703
2761
|
const handler = async (request) => {
|
|
2704
2762
|
await debug?.log("INFO", "ENDPOINT_START");
|
|
@@ -2734,7 +2792,10 @@ var serveBase = (routeFunction, options) => {
|
|
|
2734
2792
|
qstashClient,
|
|
2735
2793
|
initialPayloadParser,
|
|
2736
2794
|
routeFunction,
|
|
2737
|
-
failureFunction
|
|
2795
|
+
failureFunction,
|
|
2796
|
+
env,
|
|
2797
|
+
retries,
|
|
2798
|
+
debug
|
|
2738
2799
|
);
|
|
2739
2800
|
if (failureCheck.isErr()) {
|
|
2740
2801
|
throw failureCheck.error;
|
|
@@ -2752,7 +2813,8 @@ var serveBase = (routeFunction, options) => {
|
|
|
2752
2813
|
failureUrl: workflowFailureUrl,
|
|
2753
2814
|
debug,
|
|
2754
2815
|
env,
|
|
2755
|
-
retries
|
|
2816
|
+
retries,
|
|
2817
|
+
telemetry
|
|
2756
2818
|
});
|
|
2757
2819
|
const authCheck = await DisabledWorkflowContext.tryAuthentication(
|
|
2758
2820
|
routeFunction,
|
|
@@ -2768,22 +2830,23 @@ var serveBase = (routeFunction, options) => {
|
|
|
2768
2830
|
"auth-fail"
|
|
2769
2831
|
);
|
|
2770
2832
|
}
|
|
2771
|
-
const callReturnCheck = await handleThirdPartyCallResult(
|
|
2833
|
+
const callReturnCheck = await handleThirdPartyCallResult({
|
|
2772
2834
|
request,
|
|
2773
|
-
rawInitialPayload,
|
|
2774
|
-
qstashClient,
|
|
2835
|
+
requestPayload: rawInitialPayload,
|
|
2836
|
+
client: qstashClient,
|
|
2775
2837
|
workflowUrl,
|
|
2776
|
-
workflowFailureUrl,
|
|
2838
|
+
failureUrl: workflowFailureUrl,
|
|
2777
2839
|
retries,
|
|
2840
|
+
telemetry,
|
|
2778
2841
|
debug
|
|
2779
|
-
);
|
|
2842
|
+
});
|
|
2780
2843
|
if (callReturnCheck.isErr()) {
|
|
2781
2844
|
await debug?.log("ERROR", "SUBMIT_THIRD_PARTY_RESULT", {
|
|
2782
2845
|
error: callReturnCheck.error.message
|
|
2783
2846
|
});
|
|
2784
2847
|
throw callReturnCheck.error;
|
|
2785
2848
|
} else if (callReturnCheck.value === "continue-workflow") {
|
|
2786
|
-
const result = isFirstInvocation ? await triggerFirstInvocation(workflowContext,
|
|
2849
|
+
const result = isFirstInvocation ? await triggerFirstInvocation({ workflowContext, useJSONContent, telemetry, debug }) : await triggerRouteFunction({
|
|
2787
2850
|
onStep: async () => routeFunction(workflowContext),
|
|
2788
2851
|
onCleanup: async () => {
|
|
2789
2852
|
await triggerWorkflowDelete(workflowContext, debug);
|
|
@@ -2845,7 +2908,15 @@ var serve = (routeFunction, options) => {
|
|
|
2845
2908
|
body: await readRawBody(event),
|
|
2846
2909
|
method: "POST"
|
|
2847
2910
|
});
|
|
2848
|
-
const { handler: serveHandler } = serveBase(
|
|
2911
|
+
const { handler: serveHandler } = serveBase(
|
|
2912
|
+
routeFunction,
|
|
2913
|
+
{
|
|
2914
|
+
sdk: SDK_TELEMETRY,
|
|
2915
|
+
framework: "h3",
|
|
2916
|
+
runtime: process.versions.bun ? `bun@${process.versions.bun}/node@${process.version}` : `node@${process.version}`
|
|
2917
|
+
},
|
|
2918
|
+
options
|
|
2919
|
+
);
|
|
2849
2920
|
return await serveHandler(request);
|
|
2850
2921
|
});
|
|
2851
2922
|
return { handler };
|
package/h3.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
|
// node_modules/defu/dist/defu.mjs
|
|
6
7
|
function isPlainObject(value) {
|
|
@@ -341,7 +342,15 @@ var serve = (routeFunction, options) => {
|
|
|
341
342
|
body: await readRawBody(event),
|
|
342
343
|
method: "POST"
|
|
343
344
|
});
|
|
344
|
-
const { handler: serveHandler } = serveBase(
|
|
345
|
+
const { handler: serveHandler } = serveBase(
|
|
346
|
+
routeFunction,
|
|
347
|
+
{
|
|
348
|
+
sdk: SDK_TELEMETRY,
|
|
349
|
+
framework: "h3",
|
|
350
|
+
runtime: process.versions.bun ? `bun@${process.versions.bun}/node@${process.version}` : `node@${process.version}`
|
|
351
|
+
},
|
|
352
|
+
options
|
|
353
|
+
);
|
|
345
354
|
return await serveHandler(request);
|
|
346
355
|
});
|
|
347
356
|
return { handler };
|
package/hono.d.mts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Context } from 'hono';
|
|
2
|
-
import { R as RouteFunction, j as PublicServeOptions } from './types-
|
|
2
|
+
import { R as RouteFunction, j as PublicServeOptions } from './types-Bt4-paRy.mjs';
|
|
3
3
|
import { Variables } from 'hono/types';
|
|
4
4
|
import '@upstash/qstash';
|
|
5
5
|
|
package/hono.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Context } from 'hono';
|
|
2
|
-
import { R as RouteFunction, j as PublicServeOptions } from './types-
|
|
2
|
+
import { R as RouteFunction, j as PublicServeOptions } from './types-Bt4-paRy.js';
|
|
3
3
|
import { Variables } from 'hono/types';
|
|
4
4
|
import '@upstash/qstash';
|
|
5
5
|
|