@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/express.js CHANGED
@@ -23696,6 +23696,23 @@ __export(express_exports, {
23696
23696
  });
23697
23697
  module.exports = __toCommonJS(express_exports);
23698
23698
 
23699
+ // src/constants.ts
23700
+ var WORKFLOW_ID_HEADER = "Upstash-Workflow-RunId";
23701
+ var WORKFLOW_INIT_HEADER = "Upstash-Workflow-Init";
23702
+ var WORKFLOW_URL_HEADER = "Upstash-Workflow-Url";
23703
+ var WORKFLOW_FAILURE_HEADER = "Upstash-Workflow-Is-Failure";
23704
+ var WORKFLOW_FEATURE_HEADER = "Upstash-Feature-Set";
23705
+ var WORKFLOW_PROTOCOL_VERSION = "1";
23706
+ var WORKFLOW_PROTOCOL_VERSION_HEADER = "Upstash-Workflow-Sdk-Version";
23707
+ var DEFAULT_CONTENT_TYPE = "application/json";
23708
+ var NO_CONCURRENCY = 1;
23709
+ var DEFAULT_RETRIES = 3;
23710
+ var VERSION = "v0.2.3";
23711
+ var SDK_TELEMETRY = `@upstash/workflow@${VERSION}`;
23712
+ var TELEMETRY_HEADER_SDK = "Upstash-Telemetry-Sdk";
23713
+ var TELEMETRY_HEADER_FRAMEWORK = "Upstash-Telemetry-Framework";
23714
+ var TELEMETRY_HEADER_RUNTIME = "Upstash-Telemetry-Runtime";
23715
+
23699
23716
  // src/client/utils.ts
23700
23717
  var import_qstash = require("@upstash/qstash");
23701
23718
  var makeNotifyRequest = async (requester, eventId, eventData) => {
@@ -24386,18 +24403,6 @@ var Err = class {
24386
24403
  };
24387
24404
  var fromThrowable = Result.fromThrowable;
24388
24405
 
24389
- // src/constants.ts
24390
- var WORKFLOW_ID_HEADER = "Upstash-Workflow-RunId";
24391
- var WORKFLOW_INIT_HEADER = "Upstash-Workflow-Init";
24392
- var WORKFLOW_URL_HEADER = "Upstash-Workflow-Url";
24393
- var WORKFLOW_FAILURE_HEADER = "Upstash-Workflow-Is-Failure";
24394
- var WORKFLOW_FEATURE_HEADER = "Upstash-Feature-Set";
24395
- var WORKFLOW_PROTOCOL_VERSION = "1";
24396
- var WORKFLOW_PROTOCOL_VERSION_HEADER = "Upstash-Workflow-Sdk-Version";
24397
- var DEFAULT_CONTENT_TYPE = "application/json";
24398
- var NO_CONCURRENCY = 1;
24399
- var DEFAULT_RETRIES = 3;
24400
-
24401
24406
  // src/types.ts
24402
24407
  var StepTypes = [
24403
24408
  "Initial",
@@ -24411,16 +24416,21 @@ var StepTypes = [
24411
24416
 
24412
24417
  // src/workflow-requests.ts
24413
24418
  var import_qstash3 = require("@upstash/qstash");
24414
- var triggerFirstInvocation = async (workflowContext, retries, useJSONContent, debug) => {
24415
- const { headers } = getHeaders(
24416
- "true",
24417
- workflowContext.workflowRunId,
24418
- workflowContext.url,
24419
- workflowContext.headers,
24420
- void 0,
24421
- workflowContext.failureUrl,
24422
- retries
24423
- );
24419
+ var triggerFirstInvocation = async ({
24420
+ workflowContext,
24421
+ useJSONContent,
24422
+ telemetry,
24423
+ debug
24424
+ }) => {
24425
+ const { headers } = getHeaders({
24426
+ initHeaderValue: "true",
24427
+ workflowRunId: workflowContext.workflowRunId,
24428
+ workflowUrl: workflowContext.url,
24429
+ userHeaders: workflowContext.headers,
24430
+ failureUrl: workflowContext.failureUrl,
24431
+ retries: workflowContext.retries,
24432
+ telemetry
24433
+ });
24424
24434
  if (useJSONContent) {
24425
24435
  headers["content-type"] = "application/json";
24426
24436
  }
@@ -24526,7 +24536,16 @@ var recreateUserHeaders = (headers) => {
24526
24536
  }
24527
24537
  return filteredHeaders;
24528
24538
  };
24529
- var handleThirdPartyCallResult = async (request, requestPayload, client, workflowUrl, failureUrl, retries, debug) => {
24539
+ var handleThirdPartyCallResult = async ({
24540
+ request,
24541
+ requestPayload,
24542
+ client,
24543
+ workflowUrl,
24544
+ failureUrl,
24545
+ retries,
24546
+ telemetry,
24547
+ debug
24548
+ }) => {
24530
24549
  try {
24531
24550
  if (request.headers.get("Upstash-Workflow-Callback")) {
24532
24551
  let callbackPayload;
@@ -24585,15 +24604,15 @@ ${atob(callbackMessage.body ?? "")}`
24585
24604
  );
24586
24605
  }
24587
24606
  const userHeaders = recreateUserHeaders(request.headers);
24588
- const { headers: requestHeaders } = getHeaders(
24589
- "false",
24607
+ const { headers: requestHeaders } = getHeaders({
24608
+ initHeaderValue: "false",
24590
24609
  workflowRunId,
24591
24610
  workflowUrl,
24592
24611
  userHeaders,
24593
- void 0,
24594
24612
  failureUrl,
24595
- retries
24596
- );
24613
+ retries,
24614
+ telemetry
24615
+ });
24597
24616
  const callResponse = {
24598
24617
  status: callbackMessage.status,
24599
24618
  body: atob(callbackMessage.body ?? ""),
@@ -24631,12 +24650,31 @@ ${atob(callbackMessage.body ?? "")}`
24631
24650
  );
24632
24651
  }
24633
24652
  };
24634
- var getHeaders = (initHeaderValue, workflowRunId, workflowUrl, userHeaders, step, failureUrl, retries, callRetries, callTimeout) => {
24653
+ var getTelemetryHeaders = (telemetry) => {
24654
+ return {
24655
+ [TELEMETRY_HEADER_SDK]: telemetry.sdk,
24656
+ [TELEMETRY_HEADER_FRAMEWORK]: telemetry.framework,
24657
+ [TELEMETRY_HEADER_RUNTIME]: telemetry.runtime ?? "unknown"
24658
+ };
24659
+ };
24660
+ var getHeaders = ({
24661
+ initHeaderValue,
24662
+ workflowRunId,
24663
+ workflowUrl,
24664
+ userHeaders,
24665
+ failureUrl,
24666
+ retries,
24667
+ step,
24668
+ callRetries,
24669
+ callTimeout,
24670
+ telemetry
24671
+ }) => {
24635
24672
  const baseHeaders = {
24636
24673
  [WORKFLOW_INIT_HEADER]: initHeaderValue,
24637
24674
  [WORKFLOW_ID_HEADER]: workflowRunId,
24638
24675
  [WORKFLOW_URL_HEADER]: workflowUrl,
24639
- [WORKFLOW_FEATURE_HEADER]: "LazyFetch,InitialBody"
24676
+ [WORKFLOW_FEATURE_HEADER]: "LazyFetch,InitialBody",
24677
+ ...telemetry ? getTelemetryHeaders(telemetry) : {}
24640
24678
  };
24641
24679
  if (!step?.callUrl) {
24642
24680
  baseHeaders[`Upstash-Forward-${WORKFLOW_PROTOCOL_VERSION_HEADER}`] = WORKFLOW_PROTOCOL_VERSION;
@@ -24710,6 +24748,13 @@ var getHeaders = (initHeaderValue, workflowRunId, workflowUrl, userHeaders, step
24710
24748
  ...Object.fromEntries(
24711
24749
  Object.entries(baseHeaders).map(([header, value]) => [header, [value]])
24712
24750
  ),
24751
+ // to include telemetry headers:
24752
+ ...telemetry ? Object.fromEntries(
24753
+ Object.entries(getTelemetryHeaders(telemetry)).map(([header, value]) => [
24754
+ header,
24755
+ [value]
24756
+ ])
24757
+ ) : {},
24713
24758
  // note: using WORKFLOW_ID_HEADER doesn't work, because Runid -> RunId:
24714
24759
  "Upstash-Workflow-Runid": [workflowRunId],
24715
24760
  [WORKFLOW_INIT_HEADER]: ["false"],
@@ -24748,6 +24793,7 @@ If you want to disable QStash Verification, you should clear env variables QSTAS
24748
24793
  };
24749
24794
 
24750
24795
  // src/context/auto-executor.ts
24796
+ var import_qstash4 = require("@upstash/qstash");
24751
24797
  var AutoExecutor = class _AutoExecutor {
24752
24798
  context;
24753
24799
  promises = /* @__PURE__ */ new WeakMap();
@@ -24756,13 +24802,15 @@ var AutoExecutor = class _AutoExecutor {
24756
24802
  nonPlanStepCount;
24757
24803
  steps;
24758
24804
  indexInCurrentList = 0;
24805
+ telemetry;
24759
24806
  stepCount = 0;
24760
24807
  planStepCount = 0;
24761
24808
  executingStep = false;
24762
- constructor(context, steps, debug) {
24809
+ constructor(context, steps, telemetry, debug) {
24763
24810
  this.context = context;
24764
- this.debug = debug;
24765
24811
  this.steps = steps;
24812
+ this.telemetry = telemetry;
24813
+ this.debug = debug;
24766
24814
  this.nonPlanStepCount = this.steps.filter((step) => !step.targetStep).length;
24767
24815
  }
24768
24816
  /**
@@ -24905,7 +24953,7 @@ var AutoExecutor = class _AutoExecutor {
24905
24953
  );
24906
24954
  await this.submitStepsToQStash([resultStep], [parallelStep]);
24907
24955
  } catch (error) {
24908
- if (error instanceof WorkflowAbort) {
24956
+ if (error instanceof WorkflowAbort || error instanceof import_qstash4.QstashError && error.status === 400) {
24909
24957
  throw error;
24910
24958
  }
24911
24959
  throw new WorkflowError(
@@ -24976,15 +25024,16 @@ var AutoExecutor = class _AutoExecutor {
24976
25024
  });
24977
25025
  if (steps[0].waitEventId && steps.length === 1) {
24978
25026
  const waitStep = steps[0];
24979
- const { headers, timeoutHeaders } = getHeaders(
24980
- "false",
24981
- this.context.workflowRunId,
24982
- this.context.url,
24983
- this.context.headers,
24984
- waitStep,
24985
- this.context.failureUrl,
24986
- this.context.retries
24987
- );
25027
+ const { headers, timeoutHeaders } = getHeaders({
25028
+ initHeaderValue: "false",
25029
+ workflowRunId: this.context.workflowRunId,
25030
+ workflowUrl: this.context.url,
25031
+ userHeaders: this.context.headers,
25032
+ step: waitStep,
25033
+ failureUrl: this.context.failureUrl,
25034
+ retries: this.context.retries,
25035
+ telemetry: this.telemetry
25036
+ });
24988
25037
  const waitBody = {
24989
25038
  url: this.context.url,
24990
25039
  timeout: waitStep.timeout,
@@ -25011,17 +25060,18 @@ var AutoExecutor = class _AutoExecutor {
25011
25060
  const result = await this.context.qstashClient.batchJSON(
25012
25061
  steps.map((singleStep, index) => {
25013
25062
  const lazyStep = lazySteps[index];
25014
- const { headers } = getHeaders(
25015
- "false",
25016
- this.context.workflowRunId,
25017
- this.context.url,
25018
- this.context.headers,
25019
- singleStep,
25020
- this.context.failureUrl,
25021
- this.context.retries,
25022
- lazyStep instanceof LazyCallStep ? lazyStep.retries : void 0,
25023
- lazyStep instanceof LazyCallStep ? lazyStep.timeout : void 0
25024
- );
25063
+ const { headers } = getHeaders({
25064
+ initHeaderValue: "false",
25065
+ workflowRunId: this.context.workflowRunId,
25066
+ workflowUrl: this.context.url,
25067
+ userHeaders: this.context.headers,
25068
+ step: singleStep,
25069
+ failureUrl: this.context.failureUrl,
25070
+ retries: this.context.retries,
25071
+ callRetries: lazyStep instanceof LazyCallStep ? lazyStep.retries : void 0,
25072
+ callTimeout: lazyStep instanceof LazyCallStep ? lazyStep.timeout : void 0,
25073
+ telemetry: this.telemetry
25074
+ });
25025
25075
  const willWait = singleStep.concurrent === NO_CONCURRENCY || singleStep.stepId === 0;
25026
25076
  singleStep.out = JSON.stringify(singleStep.out);
25027
25077
  return singleStep.callUrl ? (
@@ -25134,7 +25184,7 @@ var sortSteps = (steps) => {
25134
25184
  };
25135
25185
 
25136
25186
  // src/context/api/anthropic.ts
25137
- var import_qstash4 = require("@upstash/qstash");
25187
+ var import_qstash5 = require("@upstash/qstash");
25138
25188
 
25139
25189
  // src/context/provider.ts
25140
25190
  var getProviderInfo = (api) => {
@@ -25198,7 +25248,7 @@ var AnthropicAPI = class extends BaseWorkflowApi {
25198
25248
  return await this.callApi(stepName, {
25199
25249
  api: {
25200
25250
  name: "llm",
25201
- provider: (0, import_qstash4.anthropic)({ token })
25251
+ provider: (0, import_qstash5.anthropic)({ token })
25202
25252
  },
25203
25253
  ...parameters
25204
25254
  });
@@ -25206,14 +25256,14 @@ var AnthropicAPI = class extends BaseWorkflowApi {
25206
25256
  };
25207
25257
 
25208
25258
  // src/context/api/openai.ts
25209
- var import_qstash5 = require("@upstash/qstash");
25259
+ var import_qstash6 = require("@upstash/qstash");
25210
25260
  var OpenAIAPI = class extends BaseWorkflowApi {
25211
25261
  async call(stepName, settings) {
25212
25262
  const { token, organization, operation, ...parameters } = settings;
25213
25263
  return await this.callApi(stepName, {
25214
25264
  api: {
25215
25265
  name: "llm",
25216
- provider: (0, import_qstash5.openai)({ token, organization })
25266
+ provider: (0, import_qstash6.openai)({ token, organization })
25217
25267
  },
25218
25268
  ...parameters
25219
25269
  });
@@ -25221,14 +25271,14 @@ var OpenAIAPI = class extends BaseWorkflowApi {
25221
25271
  };
25222
25272
 
25223
25273
  // src/context/api/resend.ts
25224
- var import_qstash6 = require("@upstash/qstash");
25274
+ var import_qstash7 = require("@upstash/qstash");
25225
25275
  var ResendAPI = class extends BaseWorkflowApi {
25226
25276
  async call(stepName, settings) {
25227
25277
  const { token, batch = false, ...parameters } = settings;
25228
25278
  return await this.callApi(stepName, {
25229
25279
  api: {
25230
25280
  name: "email",
25231
- provider: (0, import_qstash6.resend)({ token, batch })
25281
+ provider: (0, import_qstash7.resend)({ token, batch })
25232
25282
  },
25233
25283
  ...parameters
25234
25284
  });
@@ -25386,7 +25436,8 @@ var WorkflowContext = class {
25386
25436
  debug,
25387
25437
  initialPayload,
25388
25438
  env,
25389
- retries
25439
+ retries,
25440
+ telemetry
25390
25441
  }) {
25391
25442
  this.qstashClient = qstashClient;
25392
25443
  this.workflowRunId = workflowRunId;
@@ -25397,7 +25448,7 @@ var WorkflowContext = class {
25397
25448
  this.requestPayload = initialPayload;
25398
25449
  this.env = env ?? {};
25399
25450
  this.retries = retries ?? DEFAULT_RETRIES;
25400
- this.executor = new AutoExecutor(this, this.steps, debug);
25451
+ this.executor = new AutoExecutor(this, this.steps, telemetry, debug);
25401
25452
  }
25402
25453
  /**
25403
25454
  * Executes a workflow step
@@ -25715,7 +25766,7 @@ function decodeBase64(base64) {
25715
25766
  }
25716
25767
 
25717
25768
  // src/serve/authorization.ts
25718
- var import_qstash7 = require("@upstash/qstash");
25769
+ var import_qstash8 = require("@upstash/qstash");
25719
25770
  var DisabledWorkflowContext = class _DisabledWorkflowContext extends WorkflowContext {
25720
25771
  static disabledMessage = "disabled-qstash-worklfow-run";
25721
25772
  /**
@@ -25746,7 +25797,7 @@ var DisabledWorkflowContext = class _DisabledWorkflowContext extends WorkflowCon
25746
25797
  */
25747
25798
  static async tryAuthentication(routeFunction, context) {
25748
25799
  const disabledContext = new _DisabledWorkflowContext({
25749
- qstashClient: new import_qstash7.Client({
25800
+ qstashClient: new import_qstash8.Client({
25750
25801
  baseUrl: "disabled-client",
25751
25802
  token: "disabled-client"
25752
25803
  }),
@@ -25910,7 +25961,7 @@ var parseRequest = async (requestPayload, isFirstInvocation, workflowRunId, requ
25910
25961
  };
25911
25962
  }
25912
25963
  };
25913
- var handleFailure = async (request, requestPayload, qstashClient, initialPayloadParser, routeFunction, failureFunction, debug) => {
25964
+ var handleFailure = async (request, requestPayload, qstashClient, initialPayloadParser, routeFunction, failureFunction, env, retries, debug) => {
25914
25965
  if (request.headers.get(WORKFLOW_FAILURE_HEADER) !== "true") {
25915
25966
  return ok("not-failure-callback");
25916
25967
  }
@@ -25935,7 +25986,11 @@ var handleFailure = async (request, requestPayload, qstashClient, initialPayload
25935
25986
  steps: [],
25936
25987
  url,
25937
25988
  failureUrl: url,
25938
- debug
25989
+ debug,
25990
+ env,
25991
+ retries,
25992
+ telemetry: void 0
25993
+ // not going to make requests in authentication check
25939
25994
  });
25940
25995
  const authCheck = await DisabledWorkflowContext.tryAuthentication(
25941
25996
  routeFunction,
@@ -25960,15 +26015,15 @@ var handleFailure = async (request, requestPayload, qstashClient, initialPayload
25960
26015
  };
25961
26016
 
25962
26017
  // src/serve/options.ts
25963
- var import_qstash8 = require("@upstash/qstash");
25964
26018
  var import_qstash9 = require("@upstash/qstash");
26019
+ var import_qstash10 = require("@upstash/qstash");
25965
26020
  var processOptions = (options) => {
25966
26021
  const environment = options?.env ?? (typeof process === "undefined" ? {} : process.env);
25967
26022
  const receiverEnvironmentVariablesSet = Boolean(
25968
26023
  environment.QSTASH_CURRENT_SIGNING_KEY && environment.QSTASH_NEXT_SIGNING_KEY
25969
26024
  );
25970
26025
  return {
25971
- qstashClient: new import_qstash9.Client({
26026
+ qstashClient: new import_qstash10.Client({
25972
26027
  baseUrl: environment.QSTASH_URL,
25973
26028
  token: environment.QSTASH_TOKEN
25974
26029
  }),
@@ -26002,7 +26057,7 @@ var processOptions = (options) => {
26002
26057
  throw error;
26003
26058
  }
26004
26059
  },
26005
- receiver: receiverEnvironmentVariablesSet ? new import_qstash8.Receiver({
26060
+ receiver: receiverEnvironmentVariablesSet ? new import_qstash9.Receiver({
26006
26061
  currentSigningKey: environment.QSTASH_CURRENT_SIGNING_KEY,
26007
26062
  nextSigningKey: environment.QSTASH_NEXT_SIGNING_KEY
26008
26063
  }) : void 0,
@@ -26010,6 +26065,7 @@ var processOptions = (options) => {
26010
26065
  env: environment,
26011
26066
  retries: DEFAULT_RETRIES,
26012
26067
  useJSONContent: false,
26068
+ disableTelemetry: false,
26013
26069
  ...options
26014
26070
  };
26015
26071
  };
@@ -26044,7 +26100,7 @@ var determineUrls = async (request, url, baseUrl, failureFunction, failureUrl, d
26044
26100
  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`;
26045
26101
 
26046
26102
  // src/serve/index.ts
26047
- var serveBase = (routeFunction, options) => {
26103
+ var serveBase = (routeFunction, telemetry, options) => {
26048
26104
  const {
26049
26105
  qstashClient,
26050
26106
  onStepFinish,
@@ -26057,8 +26113,10 @@ var serveBase = (routeFunction, options) => {
26057
26113
  baseUrl,
26058
26114
  env,
26059
26115
  retries,
26060
- useJSONContent
26116
+ useJSONContent,
26117
+ disableTelemetry
26061
26118
  } = processOptions(options);
26119
+ telemetry = disableTelemetry ? void 0 : telemetry;
26062
26120
  const debug = WorkflowLogger.getLogger(verbose);
26063
26121
  const handler = async (request) => {
26064
26122
  await debug?.log("INFO", "ENDPOINT_START");
@@ -26094,7 +26152,10 @@ var serveBase = (routeFunction, options) => {
26094
26152
  qstashClient,
26095
26153
  initialPayloadParser,
26096
26154
  routeFunction,
26097
- failureFunction
26155
+ failureFunction,
26156
+ env,
26157
+ retries,
26158
+ debug
26098
26159
  );
26099
26160
  if (failureCheck.isErr()) {
26100
26161
  throw failureCheck.error;
@@ -26112,7 +26173,8 @@ var serveBase = (routeFunction, options) => {
26112
26173
  failureUrl: workflowFailureUrl,
26113
26174
  debug,
26114
26175
  env,
26115
- retries
26176
+ retries,
26177
+ telemetry
26116
26178
  });
26117
26179
  const authCheck = await DisabledWorkflowContext.tryAuthentication(
26118
26180
  routeFunction,
@@ -26128,22 +26190,23 @@ var serveBase = (routeFunction, options) => {
26128
26190
  "auth-fail"
26129
26191
  );
26130
26192
  }
26131
- const callReturnCheck = await handleThirdPartyCallResult(
26193
+ const callReturnCheck = await handleThirdPartyCallResult({
26132
26194
  request,
26133
- rawInitialPayload,
26134
- qstashClient,
26195
+ requestPayload: rawInitialPayload,
26196
+ client: qstashClient,
26135
26197
  workflowUrl,
26136
- workflowFailureUrl,
26198
+ failureUrl: workflowFailureUrl,
26137
26199
  retries,
26200
+ telemetry,
26138
26201
  debug
26139
- );
26202
+ });
26140
26203
  if (callReturnCheck.isErr()) {
26141
26204
  await debug?.log("ERROR", "SUBMIT_THIRD_PARTY_RESULT", {
26142
26205
  error: callReturnCheck.error.message
26143
26206
  });
26144
26207
  throw callReturnCheck.error;
26145
26208
  } else if (callReturnCheck.value === "continue-workflow") {
26146
- const result = isFirstInvocation ? await triggerFirstInvocation(workflowContext, retries, useJSONContent, debug) : await triggerRouteFunction({
26209
+ const result = isFirstInvocation ? await triggerFirstInvocation({ workflowContext, useJSONContent, telemetry, debug }) : await triggerRouteFunction({
26147
26210
  onStep: async () => routeFunction(workflowContext),
26148
26211
  onCleanup: async () => {
26149
26212
  await triggerWorkflowDelete(workflowContext, debug);
@@ -26204,7 +26267,12 @@ function serve(routeFunction, options) {
26204
26267
  body: requestBody
26205
26268
  });
26206
26269
  const { handler: serveHandler } = serveBase(
26207
- (workflowContext) => routeFunction(workflowContext),
26270
+ routeFunction,
26271
+ {
26272
+ sdk: SDK_TELEMETRY,
26273
+ framework: "express",
26274
+ runtime: process.versions.bun ? `bun@${process.versions.bun}/node@${process.version}` : `node@${process.version}`
26275
+ },
26208
26276
  {
26209
26277
  ...options,
26210
26278
  useJSONContent: true
package/express.mjs CHANGED
@@ -1,9 +1,10 @@
1
1
  import {
2
+ SDK_TELEMETRY,
2
3
  __commonJS,
3
4
  __require,
4
5
  __toESM,
5
6
  serveBase
6
- } from "./chunk-QBJ3LQIO.mjs";
7
+ } from "./chunk-ETDFMXER.mjs";
7
8
 
8
9
  // node_modules/depd/index.js
9
10
  var require_depd = __commonJS({
@@ -23690,7 +23691,12 @@ function serve(routeFunction, options) {
23690
23691
  body: requestBody
23691
23692
  });
23692
23693
  const { handler: serveHandler } = serveBase(
23693
- (workflowContext) => routeFunction(workflowContext),
23694
+ routeFunction,
23695
+ {
23696
+ sdk: SDK_TELEMETRY,
23697
+ framework: "express",
23698
+ runtime: process.versions.bun ? `bun@${process.versions.bun}/node@${process.version}` : `node@${process.version}`
23699
+ },
23694
23700
  {
23695
23701
  ...options,
23696
23702
  useJSONContent: true
package/h3.d.mts CHANGED
@@ -1,5 +1,5 @@
1
1
  import * as h3 from 'h3';
2
- import { R as RouteFunction, j as PublicServeOptions } from './types-R9q4MUwl.mjs';
2
+ import { R as RouteFunction, j as PublicServeOptions } from './types-Bt4-paRy.mjs';
3
3
  import '@upstash/qstash';
4
4
 
5
5
  declare const serve: <TInitialPayload = unknown>(routeFunction: RouteFunction<TInitialPayload>, options?: PublicServeOptions<TInitialPayload>) => {
package/h3.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import * as h3 from 'h3';
2
- import { R as RouteFunction, j as PublicServeOptions } from './types-R9q4MUwl.js';
2
+ import { R as RouteFunction, j as PublicServeOptions } from './types-Bt4-paRy.js';
3
3
  import '@upstash/qstash';
4
4
 
5
5
  declare const serve: <TInitialPayload = unknown>(routeFunction: RouteFunction<TInitialPayload>, options?: PublicServeOptions<TInitialPayload>) => {