@upstash/workflow 0.1.1 → 0.1.2-omit-errors

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/solidjs.js CHANGED
@@ -493,6 +493,7 @@ var StepTypes = [
493
493
  ];
494
494
 
495
495
  // src/workflow-requests.ts
496
+ var import_qstash2 = require("@upstash/qstash");
496
497
  var triggerFirstInvocation = async (workflowContext, retries, debug) => {
497
498
  const { headers } = getHeaders(
498
499
  "true",
@@ -503,27 +504,37 @@ var triggerFirstInvocation = async (workflowContext, retries, debug) => {
503
504
  workflowContext.failureUrl,
504
505
  retries
505
506
  );
506
- await debug?.log("SUBMIT", "SUBMIT_FIRST_INVOCATION", {
507
- headers,
508
- requestPayload: workflowContext.requestPayload,
509
- url: workflowContext.url
510
- });
511
507
  try {
512
- await workflowContext.qstashClient.publishJSON({
508
+ const result = await workflowContext.qstashClient.publishJSON({
513
509
  headers,
514
510
  method: "POST",
515
511
  body: workflowContext.requestPayload,
516
512
  url: workflowContext.url
517
513
  });
514
+ await debug?.log("SUBMIT", "SUBMIT_FIRST_INVOCATION", {
515
+ headers,
516
+ requestPayload: workflowContext.requestPayload,
517
+ url: workflowContext.url,
518
+ messageId: result.messageId
519
+ });
518
520
  return ok("success");
519
521
  } catch (error) {
520
522
  const error_ = error;
523
+ if (error instanceof import_qstash2.QstashError && error.message.includes("a workflow already exists, can not initialize a new one with same id")) {
524
+ await debug?.log("WARN", "SUBMIT_FIRST_INVOCATION", {
525
+ message: `Workflow run ${workflowContext.workflowRunId} already exists.`,
526
+ name: error.name,
527
+ originalMessage: error.message
528
+ });
529
+ return ok("workflow-run-already-exists");
530
+ }
521
531
  return err(error_);
522
532
  }
523
533
  };
524
534
  var triggerRouteFunction = async ({
525
535
  onCleanup,
526
- onStep
536
+ onStep,
537
+ debug
527
538
  }) => {
528
539
  try {
529
540
  await onStep();
@@ -531,6 +542,14 @@ var triggerRouteFunction = async ({
531
542
  return ok("workflow-finished");
532
543
  } catch (error) {
533
544
  const error_ = error;
545
+ if (error instanceof import_qstash2.QstashError && error.message.includes("can not append to a a cancelled workflow")) {
546
+ await debug?.log("WARN", "RESPONSE_WORKFLOW", {
547
+ message: `tried to append to a cancelled workflow. exiting without publishing.`,
548
+ name: error.name,
549
+ originalMessage: error.message
550
+ });
551
+ return ok("workflow-was-finished");
552
+ }
534
553
  return error_ instanceof QStashWorkflowAbort ? ok("step-finished") : err(error_);
535
554
  }
536
555
  };
@@ -538,12 +557,29 @@ var triggerWorkflowDelete = async (workflowContext, debug, cancel = false) => {
538
557
  await debug?.log("SUBMIT", "SUBMIT_CLEANUP", {
539
558
  deletedWorkflowRunId: workflowContext.workflowRunId
540
559
  });
541
- const result = await workflowContext.qstashClient.http.request({
542
- path: ["v2", "workflows", "runs", `${workflowContext.workflowRunId}?cancel=${cancel}`],
543
- method: "DELETE",
544
- parseResponseAsJson: false
545
- });
546
- await debug?.log("SUBMIT", "SUBMIT_CLEANUP", result);
560
+ try {
561
+ await workflowContext.qstashClient.http.request({
562
+ path: ["v2", "workflows", "runs", `${workflowContext.workflowRunId}?cancel=${cancel}`],
563
+ method: "DELETE",
564
+ parseResponseAsJson: false
565
+ });
566
+ await debug?.log(
567
+ "SUBMIT",
568
+ "SUBMIT_CLEANUP",
569
+ `workflow run ${workflowContext.workflowRunId} deleted.`
570
+ );
571
+ return { deleted: true };
572
+ } catch (error) {
573
+ if (error instanceof import_qstash2.QstashError && error.message.includes(`workflowRun ${workflowContext.workflowRunId} not found`)) {
574
+ await debug?.log("WARN", "SUBMIT_CLEANUP", {
575
+ message: `Failed to remove workflow run ${workflowContext.workflowRunId} as it doesn't exist.`,
576
+ name: error.name,
577
+ originalMessage: error.message
578
+ });
579
+ return { deleted: false };
580
+ }
581
+ throw error;
582
+ }
547
583
  };
548
584
  var recreateUserHeaders = (headers) => {
549
585
  const filteredHeaders = new Headers();
@@ -599,15 +635,16 @@ ${atob(callbackMessage.body)}`
599
635
  failureUrl,
600
636
  retries
601
637
  );
638
+ const callResponse = {
639
+ status: callbackMessage.status,
640
+ body: atob(callbackMessage.body),
641
+ header: callbackMessage.header
642
+ };
602
643
  const callResultStep = {
603
644
  stepId: Number(stepIdString),
604
645
  stepName,
605
646
  stepType,
606
- out: {
607
- status: callbackMessage.status,
608
- body: atob(callbackMessage.body),
609
- header: callbackMessage.header
610
- },
647
+ out: JSON.stringify(callResponse),
611
648
  concurrent: Number(concurrentString)
612
649
  };
613
650
  await debug?.log("SUBMIT", "SUBMIT_THIRD_PARTY_RESULT", {
@@ -641,10 +678,11 @@ var getHeaders = (initHeaderValue, workflowRunId, workflowUrl, userHeaders, step
641
678
  const baseHeaders = {
642
679
  [WORKFLOW_INIT_HEADER]: initHeaderValue,
643
680
  [WORKFLOW_ID_HEADER]: workflowRunId,
644
- [WORKFLOW_URL_HEADER]: workflowUrl,
645
- [WORKFLOW_FEATURE_HEADER]: "WF_NoDelete",
646
- [`Upstash-Forward-${WORKFLOW_PROTOCOL_VERSION_HEADER}`]: WORKFLOW_PROTOCOL_VERSION
681
+ [WORKFLOW_URL_HEADER]: workflowUrl
647
682
  };
683
+ if (!step?.callUrl) {
684
+ baseHeaders[`Upstash-Forward-${WORKFLOW_PROTOCOL_VERSION_HEADER}`] = WORKFLOW_PROTOCOL_VERSION;
685
+ }
648
686
  if (failureUrl) {
649
687
  if (!step?.callUrl) {
650
688
  baseHeaders[`Upstash-Failure-Callback-Forward-${WORKFLOW_FAILURE_HEADER}`] = "true";
@@ -653,6 +691,7 @@ var getHeaders = (initHeaderValue, workflowRunId, workflowUrl, userHeaders, step
653
691
  }
654
692
  if (step?.callUrl) {
655
693
  baseHeaders["Upstash-Retries"] = "0";
694
+ baseHeaders[WORKFLOW_FEATURE_HEADER] = "WF_NoDelete";
656
695
  if (retries) {
657
696
  baseHeaders["Upstash-Callback-Retries"] = retries.toString();
658
697
  baseHeaders["Upstash-Failure-Callback-Retries"] = retries.toString();
@@ -1016,6 +1055,7 @@ var AutoExecutor = class _AutoExecutor {
1016
1055
  this.context.retries
1017
1056
  );
1018
1057
  const willWait = singleStep.concurrent === NO_CONCURRENCY || singleStep.stepId === 0;
1058
+ singleStep.out = JSON.stringify(singleStep.out);
1019
1059
  return singleStep.callUrl ? (
1020
1060
  // if the step is a third party call, we call the third party
1021
1061
  // url (singleStep.callUrl) and pass information about the workflow
@@ -1677,7 +1717,8 @@ var WorkflowLogger = class _WorkflowLogger {
1677
1717
  }
1678
1718
  writeToConsole(logEntry) {
1679
1719
  const JSON_SPACING = 2;
1680
- console.log(JSON.stringify(logEntry, void 0, JSON_SPACING));
1720
+ const logMethod = logEntry.logLevel === "ERROR" ? console.error : logEntry.logLevel === "WARN" ? console.warn : console.log;
1721
+ logMethod(JSON.stringify(logEntry, void 0, JSON_SPACING));
1681
1722
  }
1682
1723
  shouldLog(level) {
1683
1724
  return LOG_LEVELS.indexOf(level) >= LOG_LEVELS.indexOf(this.options.logLevel);
@@ -1734,9 +1775,13 @@ var parsePayload = (rawPayload) => {
1734
1775
  const stepsToDecode = encodedSteps.filter((step) => step.callType === "step");
1735
1776
  const otherSteps = stepsToDecode.map((rawStep) => {
1736
1777
  const step = JSON.parse(decodeBase64(rawStep.body));
1778
+ try {
1779
+ step.out = JSON.parse(step.out);
1780
+ } catch {
1781
+ }
1737
1782
  if (step.waitEventId) {
1738
1783
  const newOut = {
1739
- eventData: step.out,
1784
+ eventData: step.out ? decodeBase64(step.out) : void 0,
1740
1785
  timeout: step.waitTimeout ?? false
1741
1786
  };
1742
1787
  step.out = newOut;
@@ -1866,7 +1911,7 @@ var handleFailure = async (request, requestPayload, qstashClient, initialPayload
1866
1911
  };
1867
1912
 
1868
1913
  // src/serve/authorization.ts
1869
- var import_qstash2 = require("@upstash/qstash");
1914
+ var import_qstash3 = require("@upstash/qstash");
1870
1915
  var DisabledWorkflowContext = class _DisabledWorkflowContext extends WorkflowContext {
1871
1916
  static disabledMessage = "disabled-qstash-worklfow-run";
1872
1917
  /**
@@ -1891,7 +1936,7 @@ var DisabledWorkflowContext = class _DisabledWorkflowContext extends WorkflowCon
1891
1936
  */
1892
1937
  static async tryAuthentication(routeFunction, context) {
1893
1938
  const disabledContext = new _DisabledWorkflowContext({
1894
- qstashClient: new import_qstash2.Client({
1939
+ qstashClient: new import_qstash3.Client({
1895
1940
  baseUrl: "disabled-client",
1896
1941
  token: "disabled-client"
1897
1942
  }),
@@ -1918,15 +1963,15 @@ var DisabledWorkflowContext = class _DisabledWorkflowContext extends WorkflowCon
1918
1963
  };
1919
1964
 
1920
1965
  // src/serve/options.ts
1921
- var import_qstash3 = require("@upstash/qstash");
1922
1966
  var import_qstash4 = require("@upstash/qstash");
1967
+ var import_qstash5 = require("@upstash/qstash");
1923
1968
  var processOptions = (options) => {
1924
1969
  const environment = options?.env ?? (typeof process === "undefined" ? {} : process.env);
1925
1970
  const receiverEnvironmentVariablesSet = Boolean(
1926
1971
  environment.QSTASH_CURRENT_SIGNING_KEY && environment.QSTASH_NEXT_SIGNING_KEY
1927
1972
  );
1928
1973
  return {
1929
- qstashClient: new import_qstash4.Client({
1974
+ qstashClient: new import_qstash5.Client({
1930
1975
  baseUrl: environment.QSTASH_URL,
1931
1976
  token: environment.QSTASH_TOKEN
1932
1977
  }),
@@ -1947,7 +1992,7 @@ var processOptions = (options) => {
1947
1992
  throw error;
1948
1993
  }
1949
1994
  },
1950
- receiver: receiverEnvironmentVariablesSet ? new import_qstash3.Receiver({
1995
+ receiver: receiverEnvironmentVariablesSet ? new import_qstash4.Receiver({
1951
1996
  currentSigningKey: environment.QSTASH_CURRENT_SIGNING_KEY,
1952
1997
  nextSigningKey: environment.QSTASH_NEXT_SIGNING_KEY
1953
1998
  }) : void 0,
@@ -2069,7 +2114,8 @@ var serve = (routeFunction, options) => {
2069
2114
  onStep: async () => routeFunction(workflowContext),
2070
2115
  onCleanup: async () => {
2071
2116
  await triggerWorkflowDelete(workflowContext, debug);
2072
- }
2117
+ },
2118
+ debug
2073
2119
  });
2074
2120
  if (result.isErr()) {
2075
2121
  await debug?.log("ERROR", "ERROR", { error: result.error.message });
@@ -2095,7 +2141,7 @@ var serve = (routeFunction, options) => {
2095
2141
  };
2096
2142
 
2097
2143
  // src/client/index.ts
2098
- var import_qstash5 = require("@upstash/qstash");
2144
+ var import_qstash6 = require("@upstash/qstash");
2099
2145
 
2100
2146
  // platforms/solidjs.ts
2101
2147
  var serve2 = (routeFunction, options) => {
package/solidjs.mjs CHANGED
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  serve
3
- } from "./chunk-XPMFG3Q4.mjs";
3
+ } from "./chunk-ZPVH5ACW.mjs";
4
4
 
5
5
  // platforms/solidjs.ts
6
6
  var serve2 = (routeFunction, options) => {
package/svelte.d.mts CHANGED
@@ -1,5 +1,5 @@
1
1
  import { RequestHandler } from '@sveltejs/kit';
2
- import { R as RouteFunction, W as WorkflowServeOptions } from './types-p7sxktVE.mjs';
2
+ import { R as RouteFunction, W as WorkflowServeOptions } from './types-CI-2skYU.mjs';
3
3
  import '@upstash/qstash';
4
4
 
5
5
  /**
package/svelte.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import { RequestHandler } from '@sveltejs/kit';
2
- import { R as RouteFunction, W as WorkflowServeOptions } from './types-p7sxktVE.js';
2
+ import { R as RouteFunction, W as WorkflowServeOptions } from './types-CI-2skYU.js';
3
3
  import '@upstash/qstash';
4
4
 
5
5
  /**
package/svelte.js CHANGED
@@ -493,6 +493,7 @@ var StepTypes = [
493
493
  ];
494
494
 
495
495
  // src/workflow-requests.ts
496
+ var import_qstash2 = require("@upstash/qstash");
496
497
  var triggerFirstInvocation = async (workflowContext, retries, debug) => {
497
498
  const { headers } = getHeaders(
498
499
  "true",
@@ -503,27 +504,37 @@ var triggerFirstInvocation = async (workflowContext, retries, debug) => {
503
504
  workflowContext.failureUrl,
504
505
  retries
505
506
  );
506
- await debug?.log("SUBMIT", "SUBMIT_FIRST_INVOCATION", {
507
- headers,
508
- requestPayload: workflowContext.requestPayload,
509
- url: workflowContext.url
510
- });
511
507
  try {
512
- await workflowContext.qstashClient.publishJSON({
508
+ const result = await workflowContext.qstashClient.publishJSON({
513
509
  headers,
514
510
  method: "POST",
515
511
  body: workflowContext.requestPayload,
516
512
  url: workflowContext.url
517
513
  });
514
+ await debug?.log("SUBMIT", "SUBMIT_FIRST_INVOCATION", {
515
+ headers,
516
+ requestPayload: workflowContext.requestPayload,
517
+ url: workflowContext.url,
518
+ messageId: result.messageId
519
+ });
518
520
  return ok("success");
519
521
  } catch (error) {
520
522
  const error_ = error;
523
+ if (error instanceof import_qstash2.QstashError && error.message.includes("a workflow already exists, can not initialize a new one with same id")) {
524
+ await debug?.log("WARN", "SUBMIT_FIRST_INVOCATION", {
525
+ message: `Workflow run ${workflowContext.workflowRunId} already exists.`,
526
+ name: error.name,
527
+ originalMessage: error.message
528
+ });
529
+ return ok("workflow-run-already-exists");
530
+ }
521
531
  return err(error_);
522
532
  }
523
533
  };
524
534
  var triggerRouteFunction = async ({
525
535
  onCleanup,
526
- onStep
536
+ onStep,
537
+ debug
527
538
  }) => {
528
539
  try {
529
540
  await onStep();
@@ -531,6 +542,14 @@ var triggerRouteFunction = async ({
531
542
  return ok("workflow-finished");
532
543
  } catch (error) {
533
544
  const error_ = error;
545
+ if (error instanceof import_qstash2.QstashError && error.message.includes("can not append to a a cancelled workflow")) {
546
+ await debug?.log("WARN", "RESPONSE_WORKFLOW", {
547
+ message: `tried to append to a cancelled workflow. exiting without publishing.`,
548
+ name: error.name,
549
+ originalMessage: error.message
550
+ });
551
+ return ok("workflow-was-finished");
552
+ }
534
553
  return error_ instanceof QStashWorkflowAbort ? ok("step-finished") : err(error_);
535
554
  }
536
555
  };
@@ -538,12 +557,29 @@ var triggerWorkflowDelete = async (workflowContext, debug, cancel = false) => {
538
557
  await debug?.log("SUBMIT", "SUBMIT_CLEANUP", {
539
558
  deletedWorkflowRunId: workflowContext.workflowRunId
540
559
  });
541
- const result = await workflowContext.qstashClient.http.request({
542
- path: ["v2", "workflows", "runs", `${workflowContext.workflowRunId}?cancel=${cancel}`],
543
- method: "DELETE",
544
- parseResponseAsJson: false
545
- });
546
- await debug?.log("SUBMIT", "SUBMIT_CLEANUP", result);
560
+ try {
561
+ await workflowContext.qstashClient.http.request({
562
+ path: ["v2", "workflows", "runs", `${workflowContext.workflowRunId}?cancel=${cancel}`],
563
+ method: "DELETE",
564
+ parseResponseAsJson: false
565
+ });
566
+ await debug?.log(
567
+ "SUBMIT",
568
+ "SUBMIT_CLEANUP",
569
+ `workflow run ${workflowContext.workflowRunId} deleted.`
570
+ );
571
+ return { deleted: true };
572
+ } catch (error) {
573
+ if (error instanceof import_qstash2.QstashError && error.message.includes(`workflowRun ${workflowContext.workflowRunId} not found`)) {
574
+ await debug?.log("WARN", "SUBMIT_CLEANUP", {
575
+ message: `Failed to remove workflow run ${workflowContext.workflowRunId} as it doesn't exist.`,
576
+ name: error.name,
577
+ originalMessage: error.message
578
+ });
579
+ return { deleted: false };
580
+ }
581
+ throw error;
582
+ }
547
583
  };
548
584
  var recreateUserHeaders = (headers) => {
549
585
  const filteredHeaders = new Headers();
@@ -599,15 +635,16 @@ ${atob(callbackMessage.body)}`
599
635
  failureUrl,
600
636
  retries
601
637
  );
638
+ const callResponse = {
639
+ status: callbackMessage.status,
640
+ body: atob(callbackMessage.body),
641
+ header: callbackMessage.header
642
+ };
602
643
  const callResultStep = {
603
644
  stepId: Number(stepIdString),
604
645
  stepName,
605
646
  stepType,
606
- out: {
607
- status: callbackMessage.status,
608
- body: atob(callbackMessage.body),
609
- header: callbackMessage.header
610
- },
647
+ out: JSON.stringify(callResponse),
611
648
  concurrent: Number(concurrentString)
612
649
  };
613
650
  await debug?.log("SUBMIT", "SUBMIT_THIRD_PARTY_RESULT", {
@@ -641,10 +678,11 @@ var getHeaders = (initHeaderValue, workflowRunId, workflowUrl, userHeaders, step
641
678
  const baseHeaders = {
642
679
  [WORKFLOW_INIT_HEADER]: initHeaderValue,
643
680
  [WORKFLOW_ID_HEADER]: workflowRunId,
644
- [WORKFLOW_URL_HEADER]: workflowUrl,
645
- [WORKFLOW_FEATURE_HEADER]: "WF_NoDelete",
646
- [`Upstash-Forward-${WORKFLOW_PROTOCOL_VERSION_HEADER}`]: WORKFLOW_PROTOCOL_VERSION
681
+ [WORKFLOW_URL_HEADER]: workflowUrl
647
682
  };
683
+ if (!step?.callUrl) {
684
+ baseHeaders[`Upstash-Forward-${WORKFLOW_PROTOCOL_VERSION_HEADER}`] = WORKFLOW_PROTOCOL_VERSION;
685
+ }
648
686
  if (failureUrl) {
649
687
  if (!step?.callUrl) {
650
688
  baseHeaders[`Upstash-Failure-Callback-Forward-${WORKFLOW_FAILURE_HEADER}`] = "true";
@@ -653,6 +691,7 @@ var getHeaders = (initHeaderValue, workflowRunId, workflowUrl, userHeaders, step
653
691
  }
654
692
  if (step?.callUrl) {
655
693
  baseHeaders["Upstash-Retries"] = "0";
694
+ baseHeaders[WORKFLOW_FEATURE_HEADER] = "WF_NoDelete";
656
695
  if (retries) {
657
696
  baseHeaders["Upstash-Callback-Retries"] = retries.toString();
658
697
  baseHeaders["Upstash-Failure-Callback-Retries"] = retries.toString();
@@ -1016,6 +1055,7 @@ var AutoExecutor = class _AutoExecutor {
1016
1055
  this.context.retries
1017
1056
  );
1018
1057
  const willWait = singleStep.concurrent === NO_CONCURRENCY || singleStep.stepId === 0;
1058
+ singleStep.out = JSON.stringify(singleStep.out);
1019
1059
  return singleStep.callUrl ? (
1020
1060
  // if the step is a third party call, we call the third party
1021
1061
  // url (singleStep.callUrl) and pass information about the workflow
@@ -1677,7 +1717,8 @@ var WorkflowLogger = class _WorkflowLogger {
1677
1717
  }
1678
1718
  writeToConsole(logEntry) {
1679
1719
  const JSON_SPACING = 2;
1680
- console.log(JSON.stringify(logEntry, void 0, JSON_SPACING));
1720
+ const logMethod = logEntry.logLevel === "ERROR" ? console.error : logEntry.logLevel === "WARN" ? console.warn : console.log;
1721
+ logMethod(JSON.stringify(logEntry, void 0, JSON_SPACING));
1681
1722
  }
1682
1723
  shouldLog(level) {
1683
1724
  return LOG_LEVELS.indexOf(level) >= LOG_LEVELS.indexOf(this.options.logLevel);
@@ -1734,9 +1775,13 @@ var parsePayload = (rawPayload) => {
1734
1775
  const stepsToDecode = encodedSteps.filter((step) => step.callType === "step");
1735
1776
  const otherSteps = stepsToDecode.map((rawStep) => {
1736
1777
  const step = JSON.parse(decodeBase64(rawStep.body));
1778
+ try {
1779
+ step.out = JSON.parse(step.out);
1780
+ } catch {
1781
+ }
1737
1782
  if (step.waitEventId) {
1738
1783
  const newOut = {
1739
- eventData: step.out,
1784
+ eventData: step.out ? decodeBase64(step.out) : void 0,
1740
1785
  timeout: step.waitTimeout ?? false
1741
1786
  };
1742
1787
  step.out = newOut;
@@ -1866,7 +1911,7 @@ var handleFailure = async (request, requestPayload, qstashClient, initialPayload
1866
1911
  };
1867
1912
 
1868
1913
  // src/serve/authorization.ts
1869
- var import_qstash2 = require("@upstash/qstash");
1914
+ var import_qstash3 = require("@upstash/qstash");
1870
1915
  var DisabledWorkflowContext = class _DisabledWorkflowContext extends WorkflowContext {
1871
1916
  static disabledMessage = "disabled-qstash-worklfow-run";
1872
1917
  /**
@@ -1891,7 +1936,7 @@ var DisabledWorkflowContext = class _DisabledWorkflowContext extends WorkflowCon
1891
1936
  */
1892
1937
  static async tryAuthentication(routeFunction, context) {
1893
1938
  const disabledContext = new _DisabledWorkflowContext({
1894
- qstashClient: new import_qstash2.Client({
1939
+ qstashClient: new import_qstash3.Client({
1895
1940
  baseUrl: "disabled-client",
1896
1941
  token: "disabled-client"
1897
1942
  }),
@@ -1918,15 +1963,15 @@ var DisabledWorkflowContext = class _DisabledWorkflowContext extends WorkflowCon
1918
1963
  };
1919
1964
 
1920
1965
  // src/serve/options.ts
1921
- var import_qstash3 = require("@upstash/qstash");
1922
1966
  var import_qstash4 = require("@upstash/qstash");
1967
+ var import_qstash5 = require("@upstash/qstash");
1923
1968
  var processOptions = (options) => {
1924
1969
  const environment = options?.env ?? (typeof process === "undefined" ? {} : process.env);
1925
1970
  const receiverEnvironmentVariablesSet = Boolean(
1926
1971
  environment.QSTASH_CURRENT_SIGNING_KEY && environment.QSTASH_NEXT_SIGNING_KEY
1927
1972
  );
1928
1973
  return {
1929
- qstashClient: new import_qstash4.Client({
1974
+ qstashClient: new import_qstash5.Client({
1930
1975
  baseUrl: environment.QSTASH_URL,
1931
1976
  token: environment.QSTASH_TOKEN
1932
1977
  }),
@@ -1947,7 +1992,7 @@ var processOptions = (options) => {
1947
1992
  throw error;
1948
1993
  }
1949
1994
  },
1950
- receiver: receiverEnvironmentVariablesSet ? new import_qstash3.Receiver({
1995
+ receiver: receiverEnvironmentVariablesSet ? new import_qstash4.Receiver({
1951
1996
  currentSigningKey: environment.QSTASH_CURRENT_SIGNING_KEY,
1952
1997
  nextSigningKey: environment.QSTASH_NEXT_SIGNING_KEY
1953
1998
  }) : void 0,
@@ -2069,7 +2114,8 @@ var serve = (routeFunction, options) => {
2069
2114
  onStep: async () => routeFunction(workflowContext),
2070
2115
  onCleanup: async () => {
2071
2116
  await triggerWorkflowDelete(workflowContext, debug);
2072
- }
2117
+ },
2118
+ debug
2073
2119
  });
2074
2120
  if (result.isErr()) {
2075
2121
  await debug?.log("ERROR", "ERROR", { error: result.error.message });
@@ -2095,7 +2141,7 @@ var serve = (routeFunction, options) => {
2095
2141
  };
2096
2142
 
2097
2143
  // src/client/index.ts
2098
- var import_qstash5 = require("@upstash/qstash");
2144
+ var import_qstash6 = require("@upstash/qstash");
2099
2145
 
2100
2146
  // platforms/svelte.ts
2101
2147
  var serve2 = (routeFunction, options) => {
package/svelte.mjs CHANGED
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  serve
3
- } from "./chunk-XPMFG3Q4.mjs";
3
+ } from "./chunk-ZPVH5ACW.mjs";
4
4
 
5
5
  // platforms/svelte.ts
6
6
  var serve2 = (routeFunction, options) => {
@@ -340,7 +340,7 @@ declare class WorkflowContext<TInitialPayload = unknown> {
340
340
  * @param duration sleep duration in seconds
341
341
  * @returns undefined
342
342
  */
343
- sleep(stepName: string, duration: number): Promise<void>;
343
+ sleep(stepName: string, duration: number | Duration): Promise<void>;
344
344
  /**
345
345
  * Stops the execution until the date time provided.
346
346
  *
@@ -416,7 +416,7 @@ declare class WorkflowContext<TInitialPayload = unknown> {
416
416
  * timeout is true if the wait times out, if notified it is false. eventData
417
417
  * is the value passed to `client.notify`.
418
418
  */
419
- waitForEvent(stepName: string, eventId: string, timeout: number): Promise<WaitStepResponse>;
419
+ waitForEvent(stepName: string, eventId: string, timeout: number | Duration): Promise<WaitStepResponse>;
420
420
  notify(stepName: string, eventId: string, eventData: unknown): Promise<NotifyStepResponse>;
421
421
  /**
422
422
  * Adds steps to the executor. Needed so that it can be overwritten in
@@ -492,7 +492,7 @@ type Step<TResult = unknown, TBody = unknown> = {
492
492
  /**
493
493
  * sleep duration in seconds. Set when context.sleep is used.
494
494
  */
495
- sleepFor?: number;
495
+ sleepFor?: number | Duration;
496
496
  /**
497
497
  * unix timestamp (in seconds) to wait until. Set when context.sleepUntil is used.
498
498
  */
@@ -675,5 +675,6 @@ type CallResponse = {
675
675
  body: unknown;
676
676
  header: Record<string, string[]>;
677
677
  };
678
+ type Duration = `${bigint}s` | `${bigint}m` | `${bigint}h` | `${bigint}d`;
678
679
 
679
- export { type AsyncStepFunction as A, type CallResponse as C, type FinishCondition as F, type LogLevel as L, type NotifyResponse as N, type ParallelCallState as P, type RouteFunction as R, type Step as S, type WorkflowServeOptions as W, type Waiter as a, WorkflowContext as b, type WorkflowClient as c, type WorkflowReceiver as d, StepTypes as e, type StepType as f, type RawStep as g, type SyncStepFunction as h, type StepFunction as i, type FailureFunctionPayload as j, type RequiredExceptFields as k, type WaitRequest as l, type WaitStepResponse as m, type NotifyStepResponse as n, type WorkflowLoggerOptions as o, WorkflowLogger as p };
680
+ export { type AsyncStepFunction as A, type CallResponse as C, type Duration as D, type FinishCondition as F, type LogLevel as L, type NotifyResponse as N, type ParallelCallState as P, type RouteFunction as R, type Step as S, type WorkflowServeOptions as W, type Waiter as a, WorkflowContext as b, type WorkflowClient as c, type WorkflowReceiver as d, StepTypes as e, type StepType as f, type RawStep as g, type SyncStepFunction as h, type StepFunction as i, type FailureFunctionPayload as j, type RequiredExceptFields as k, type WaitRequest as l, type WaitStepResponse as m, type NotifyStepResponse as n, type WorkflowLoggerOptions as o, WorkflowLogger as p };
@@ -340,7 +340,7 @@ declare class WorkflowContext<TInitialPayload = unknown> {
340
340
  * @param duration sleep duration in seconds
341
341
  * @returns undefined
342
342
  */
343
- sleep(stepName: string, duration: number): Promise<void>;
343
+ sleep(stepName: string, duration: number | Duration): Promise<void>;
344
344
  /**
345
345
  * Stops the execution until the date time provided.
346
346
  *
@@ -416,7 +416,7 @@ declare class WorkflowContext<TInitialPayload = unknown> {
416
416
  * timeout is true if the wait times out, if notified it is false. eventData
417
417
  * is the value passed to `client.notify`.
418
418
  */
419
- waitForEvent(stepName: string, eventId: string, timeout: number): Promise<WaitStepResponse>;
419
+ waitForEvent(stepName: string, eventId: string, timeout: number | Duration): Promise<WaitStepResponse>;
420
420
  notify(stepName: string, eventId: string, eventData: unknown): Promise<NotifyStepResponse>;
421
421
  /**
422
422
  * Adds steps to the executor. Needed so that it can be overwritten in
@@ -492,7 +492,7 @@ type Step<TResult = unknown, TBody = unknown> = {
492
492
  /**
493
493
  * sleep duration in seconds. Set when context.sleep is used.
494
494
  */
495
- sleepFor?: number;
495
+ sleepFor?: number | Duration;
496
496
  /**
497
497
  * unix timestamp (in seconds) to wait until. Set when context.sleepUntil is used.
498
498
  */
@@ -675,5 +675,6 @@ type CallResponse = {
675
675
  body: unknown;
676
676
  header: Record<string, string[]>;
677
677
  };
678
+ type Duration = `${bigint}s` | `${bigint}m` | `${bigint}h` | `${bigint}d`;
678
679
 
679
- export { type AsyncStepFunction as A, type CallResponse as C, type FinishCondition as F, type LogLevel as L, type NotifyResponse as N, type ParallelCallState as P, type RouteFunction as R, type Step as S, type WorkflowServeOptions as W, type Waiter as a, WorkflowContext as b, type WorkflowClient as c, type WorkflowReceiver as d, StepTypes as e, type StepType as f, type RawStep as g, type SyncStepFunction as h, type StepFunction as i, type FailureFunctionPayload as j, type RequiredExceptFields as k, type WaitRequest as l, type WaitStepResponse as m, type NotifyStepResponse as n, type WorkflowLoggerOptions as o, WorkflowLogger as p };
680
+ export { type AsyncStepFunction as A, type CallResponse as C, type Duration as D, type FinishCondition as F, type LogLevel as L, type NotifyResponse as N, type ParallelCallState as P, type RouteFunction as R, type Step as S, type WorkflowServeOptions as W, type Waiter as a, WorkflowContext as b, type WorkflowClient as c, type WorkflowReceiver as d, StepTypes as e, type StepType as f, type RawStep as g, type SyncStepFunction as h, type StepFunction as i, type FailureFunctionPayload as j, type RequiredExceptFields as k, type WaitRequest as l, type WaitStepResponse as m, type NotifyStepResponse as n, type WorkflowLoggerOptions as o, WorkflowLogger as p };