@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/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 (workflowContext, retries, useJSONContent, debug) => {
743
- const { headers } = getHeaders(
744
- "true",
745
- workflowContext.workflowRunId,
746
- workflowContext.url,
747
- workflowContext.headers,
748
- void 0,
749
- workflowContext.failureUrl,
750
- retries
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 (request, requestPayload, client, workflowUrl, failureUrl, retries, debug) => {
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 getHeaders = (initHeaderValue, workflowRunId, workflowUrl, userHeaders, step, failureUrl, retries, callRetries, callTimeout) => {
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 import_qstash4 = require("@upstash/qstash");
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, import_qstash4.anthropic)({ token })
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 import_qstash5 = require("@upstash/qstash");
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, import_qstash5.openai)({ token, organization })
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 import_qstash6 = require("@upstash/qstash");
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, import_qstash6.resend)({ token, batch })
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 import_qstash7 = require("@upstash/qstash");
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 import_qstash7.Client({
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 import_qstash9.Client({
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 import_qstash8.Receiver({
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, retries, useJSONContent, debug) : await triggerRouteFunction({
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(routeFunction, {
2532
- env,
2533
- ...options
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-QBJ3LQIO.mjs";
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(routeFunction, {
28
- env,
29
- ...options
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
@@ -1,4 +1,4 @@
1
- import { R as RouteFunction, W as WorkflowServeOptions } from './types-R9q4MUwl.mjs';
1
+ import { R as RouteFunction, W as WorkflowServeOptions } from './types-Bt4-paRy.mjs';
2
2
  import { Router } from 'express';
3
3
  import '@upstash/qstash';
4
4
 
package/express.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { R as RouteFunction, W as WorkflowServeOptions } from './types-R9q4MUwl.js';
1
+ import { R as RouteFunction, W as WorkflowServeOptions } from './types-Bt4-paRy.js';
2
2
  import { Router } from 'express';
3
3
  import '@upstash/qstash';
4
4