@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/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 (workflowContext, retries, useJSONContent, debug) => {
1055
- const { headers } = getHeaders(
1056
- "true",
1057
- workflowContext.workflowRunId,
1058
- workflowContext.url,
1059
- workflowContext.headers,
1060
- void 0,
1061
- workflowContext.failureUrl,
1062
- retries
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 (request, requestPayload, client, workflowUrl, failureUrl, retries, debug) => {
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 getHeaders = (initHeaderValue, workflowRunId, workflowUrl, userHeaders, step, failureUrl, retries, callRetries, callTimeout) => {
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 import_qstash4 = require("@upstash/qstash");
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, import_qstash4.anthropic)({ token })
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 import_qstash5 = require("@upstash/qstash");
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, import_qstash5.openai)({ token, organization })
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 import_qstash6 = require("@upstash/qstash");
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, import_qstash6.resend)({ token, batch })
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 import_qstash7 = require("@upstash/qstash");
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 import_qstash7.Client({
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 import_qstash9.Client({
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 import_qstash8.Receiver({
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, retries, useJSONContent, debug) : await triggerRouteFunction({
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(routeFunction, options);
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-QBJ3LQIO.mjs";
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(routeFunction, options);
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-R9q4MUwl.mjs';
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-R9q4MUwl.js';
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