@upstash/workflow 0.2.20 → 0.2.22-rc

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
@@ -404,7 +404,7 @@ var WORKFLOW_PROTOCOL_VERSION_HEADER = "Upstash-Workflow-Sdk-Version";
404
404
  var DEFAULT_CONTENT_TYPE = "application/json";
405
405
  var NO_CONCURRENCY = 1;
406
406
  var DEFAULT_RETRIES = 3;
407
- var VERSION = "v0.2.20";
407
+ var VERSION = "v0.2.21";
408
408
  var SDK_TELEMETRY = `@upstash/workflow@${VERSION}`;
409
409
  var TELEMETRY_HEADER_SDK = "Upstash-Telemetry-Sdk";
410
410
  var TELEMETRY_HEADER_FRAMEWORK = "Upstash-Telemetry-Framework";
@@ -927,7 +927,15 @@ var triggerFirstInvocation = async (params) => {
927
927
  const firstInvocationParams = Array.isArray(params) ? params : [params];
928
928
  const workflowContextClient = firstInvocationParams[0].workflowContext.qstashClient;
929
929
  const invocationBatch = firstInvocationParams.map(
930
- ({ workflowContext, useJSONContent, telemetry: telemetry2, invokeCount, delay, notBefore }) => {
930
+ ({
931
+ workflowContext,
932
+ useJSONContent,
933
+ telemetry: telemetry2,
934
+ invokeCount,
935
+ delay,
936
+ notBefore,
937
+ keepTriggerConfig
938
+ }) => {
931
939
  const { headers } = getHeaders({
932
940
  initHeaderValue: "true",
933
941
  workflowConfig: {
@@ -941,7 +949,8 @@ var triggerFirstInvocation = async (params) => {
941
949
  useJSONContent: useJSONContent ?? false
942
950
  },
943
951
  invokeCount: invokeCount ?? 0,
944
- userHeaders: workflowContext.headers
952
+ userHeaders: workflowContext.headers,
953
+ keepTriggerConfig
945
954
  });
946
955
  if (workflowContext.headers.get("content-type")) {
947
956
  headers["content-type"] = workflowContext.headers.get("content-type");
@@ -1878,12 +1887,14 @@ var WorkflowHeaders = class {
1878
1887
  initHeaderValue;
1879
1888
  stepInfo;
1880
1889
  headers;
1890
+ keepTriggerConfig;
1881
1891
  constructor({
1882
1892
  userHeaders,
1883
1893
  workflowConfig,
1884
1894
  invokeCount,
1885
1895
  initHeaderValue,
1886
- stepInfo
1896
+ stepInfo,
1897
+ keepTriggerConfig
1887
1898
  }) {
1888
1899
  this.userHeaders = userHeaders;
1889
1900
  this.workflowConfig = workflowConfig;
@@ -1895,6 +1906,7 @@ var WorkflowHeaders = class {
1895
1906
  workflowHeaders: {},
1896
1907
  failureHeaders: {}
1897
1908
  };
1909
+ this.keepTriggerConfig = keepTriggerConfig;
1898
1910
  }
1899
1911
  getHeaders() {
1900
1912
  this.addBaseHeaders();
@@ -1913,7 +1925,7 @@ var WorkflowHeaders = class {
1913
1925
  [WORKFLOW_INIT_HEADER]: this.initHeaderValue,
1914
1926
  [WORKFLOW_ID_HEADER]: this.workflowConfig.workflowRunId,
1915
1927
  [WORKFLOW_URL_HEADER]: this.workflowConfig.workflowUrl,
1916
- [WORKFLOW_FEATURE_HEADER]: "LazyFetch,InitialBody,WF_DetectTrigger",
1928
+ [WORKFLOW_FEATURE_HEADER]: "LazyFetch,InitialBody,WF_DetectTrigger" + (this.keepTriggerConfig ? ",WF_TriggerOnConfig" : ""),
1917
1929
  [WORKFLOW_PROTOCOL_VERSION_HEADER]: WORKFLOW_PROTOCOL_VERSION,
1918
1930
  ...this.workflowConfig.telemetry ? getTelemetryHeaders(this.workflowConfig.telemetry) : {},
1919
1931
  ...this.workflowConfig.telemetry && this.stepInfo?.lazyStep instanceof LazyCallStep && this.stepInfo.lazyStep.headers[AGENT_NAME_HEADER] ? { [TELEMETRY_HEADER_AGENT]: "true" } : {}
package/h3.mjs CHANGED
@@ -2,7 +2,7 @@ import {
2
2
  SDK_TELEMETRY,
3
3
  serveBase,
4
4
  serveManyBase
5
- } from "./chunk-LZGX3WMF.mjs";
5
+ } from "./chunk-CAQSUCHB.mjs";
6
6
 
7
7
  // node_modules/defu/dist/defu.mjs
8
8
  function isPlainObject(value) {
package/hono.js CHANGED
@@ -92,7 +92,7 @@ var WORKFLOW_PROTOCOL_VERSION_HEADER = "Upstash-Workflow-Sdk-Version";
92
92
  var DEFAULT_CONTENT_TYPE = "application/json";
93
93
  var NO_CONCURRENCY = 1;
94
94
  var DEFAULT_RETRIES = 3;
95
- var VERSION = "v0.2.20";
95
+ var VERSION = "v0.2.21";
96
96
  var SDK_TELEMETRY = `@upstash/workflow@${VERSION}`;
97
97
  var TELEMETRY_HEADER_SDK = "Upstash-Telemetry-Sdk";
98
98
  var TELEMETRY_HEADER_FRAMEWORK = "Upstash-Telemetry-Framework";
@@ -615,7 +615,15 @@ var triggerFirstInvocation = async (params) => {
615
615
  const firstInvocationParams = Array.isArray(params) ? params : [params];
616
616
  const workflowContextClient = firstInvocationParams[0].workflowContext.qstashClient;
617
617
  const invocationBatch = firstInvocationParams.map(
618
- ({ workflowContext, useJSONContent, telemetry: telemetry2, invokeCount, delay, notBefore }) => {
618
+ ({
619
+ workflowContext,
620
+ useJSONContent,
621
+ telemetry: telemetry2,
622
+ invokeCount,
623
+ delay,
624
+ notBefore,
625
+ keepTriggerConfig
626
+ }) => {
619
627
  const { headers } = getHeaders({
620
628
  initHeaderValue: "true",
621
629
  workflowConfig: {
@@ -629,7 +637,8 @@ var triggerFirstInvocation = async (params) => {
629
637
  useJSONContent: useJSONContent ?? false
630
638
  },
631
639
  invokeCount: invokeCount ?? 0,
632
- userHeaders: workflowContext.headers
640
+ userHeaders: workflowContext.headers,
641
+ keepTriggerConfig
633
642
  });
634
643
  if (workflowContext.headers.get("content-type")) {
635
644
  headers["content-type"] = workflowContext.headers.get("content-type");
@@ -1566,12 +1575,14 @@ var WorkflowHeaders = class {
1566
1575
  initHeaderValue;
1567
1576
  stepInfo;
1568
1577
  headers;
1578
+ keepTriggerConfig;
1569
1579
  constructor({
1570
1580
  userHeaders,
1571
1581
  workflowConfig,
1572
1582
  invokeCount,
1573
1583
  initHeaderValue,
1574
- stepInfo
1584
+ stepInfo,
1585
+ keepTriggerConfig
1575
1586
  }) {
1576
1587
  this.userHeaders = userHeaders;
1577
1588
  this.workflowConfig = workflowConfig;
@@ -1583,6 +1594,7 @@ var WorkflowHeaders = class {
1583
1594
  workflowHeaders: {},
1584
1595
  failureHeaders: {}
1585
1596
  };
1597
+ this.keepTriggerConfig = keepTriggerConfig;
1586
1598
  }
1587
1599
  getHeaders() {
1588
1600
  this.addBaseHeaders();
@@ -1601,7 +1613,7 @@ var WorkflowHeaders = class {
1601
1613
  [WORKFLOW_INIT_HEADER]: this.initHeaderValue,
1602
1614
  [WORKFLOW_ID_HEADER]: this.workflowConfig.workflowRunId,
1603
1615
  [WORKFLOW_URL_HEADER]: this.workflowConfig.workflowUrl,
1604
- [WORKFLOW_FEATURE_HEADER]: "LazyFetch,InitialBody,WF_DetectTrigger",
1616
+ [WORKFLOW_FEATURE_HEADER]: "LazyFetch,InitialBody,WF_DetectTrigger" + (this.keepTriggerConfig ? ",WF_TriggerOnConfig" : ""),
1605
1617
  [WORKFLOW_PROTOCOL_VERSION_HEADER]: WORKFLOW_PROTOCOL_VERSION,
1606
1618
  ...this.workflowConfig.telemetry ? getTelemetryHeaders(this.workflowConfig.telemetry) : {},
1607
1619
  ...this.workflowConfig.telemetry && this.stepInfo?.lazyStep instanceof LazyCallStep && this.stepInfo.lazyStep.headers[AGENT_NAME_HEADER] ? { [TELEMETRY_HEADER_AGENT]: "true" } : {}
package/hono.mjs CHANGED
@@ -2,7 +2,7 @@ import {
2
2
  SDK_TELEMETRY,
3
3
  serveBase,
4
4
  serveManyBase
5
- } from "./chunk-LZGX3WMF.mjs";
5
+ } from "./chunk-CAQSUCHB.mjs";
6
6
 
7
7
  // platforms/hono.ts
8
8
  var telemetry = {
package/index.d.mts CHANGED
@@ -432,6 +432,13 @@ type TriggerOptions = {
432
432
  * Can be used to filter the workflow run logs.
433
433
  */
434
434
  label?: string;
435
+ /**
436
+ * Whether to apply the configuration (flow control,
437
+ * retries, failure url, retry delay) passed in trigger
438
+ *
439
+ * @default false
440
+ */
441
+ keepTriggerConfig?: boolean;
435
442
  } & ({
436
443
  /**
437
444
  * URL to call if the first request to the workflow endpoint fails
package/index.d.ts CHANGED
@@ -432,6 +432,13 @@ type TriggerOptions = {
432
432
  * Can be used to filter the workflow run logs.
433
433
  */
434
434
  label?: string;
435
+ /**
436
+ * Whether to apply the configuration (flow control,
437
+ * retries, failure url, retry delay) passed in trigger
438
+ *
439
+ * @default false
440
+ */
441
+ keepTriggerConfig?: boolean;
435
442
  } & ({
436
443
  /**
437
444
  * URL to call if the first request to the workflow endpoint fails
package/index.js CHANGED
@@ -105,7 +105,7 @@ var WORKFLOW_PROTOCOL_VERSION_HEADER = "Upstash-Workflow-Sdk-Version";
105
105
  var DEFAULT_CONTENT_TYPE = "application/json";
106
106
  var NO_CONCURRENCY = 1;
107
107
  var DEFAULT_RETRIES = 3;
108
- var VERSION = "v0.2.20";
108
+ var VERSION = "v0.2.21";
109
109
  var SDK_TELEMETRY = `@upstash/workflow@${VERSION}`;
110
110
  var TELEMETRY_HEADER_SDK = "Upstash-Telemetry-Sdk";
111
111
  var TELEMETRY_HEADER_FRAMEWORK = "Upstash-Telemetry-Framework";
@@ -628,7 +628,15 @@ var triggerFirstInvocation = async (params) => {
628
628
  const firstInvocationParams = Array.isArray(params) ? params : [params];
629
629
  const workflowContextClient = firstInvocationParams[0].workflowContext.qstashClient;
630
630
  const invocationBatch = firstInvocationParams.map(
631
- ({ workflowContext, useJSONContent, telemetry, invokeCount, delay, notBefore }) => {
631
+ ({
632
+ workflowContext,
633
+ useJSONContent,
634
+ telemetry,
635
+ invokeCount,
636
+ delay,
637
+ notBefore,
638
+ keepTriggerConfig
639
+ }) => {
632
640
  const { headers } = getHeaders({
633
641
  initHeaderValue: "true",
634
642
  workflowConfig: {
@@ -642,7 +650,8 @@ var triggerFirstInvocation = async (params) => {
642
650
  useJSONContent: useJSONContent ?? false
643
651
  },
644
652
  invokeCount: invokeCount ?? 0,
645
- userHeaders: workflowContext.headers
653
+ userHeaders: workflowContext.headers,
654
+ keepTriggerConfig
646
655
  });
647
656
  if (workflowContext.headers.get("content-type")) {
648
657
  headers["content-type"] = workflowContext.headers.get("content-type");
@@ -1579,12 +1588,14 @@ var WorkflowHeaders = class {
1579
1588
  initHeaderValue;
1580
1589
  stepInfo;
1581
1590
  headers;
1591
+ keepTriggerConfig;
1582
1592
  constructor({
1583
1593
  userHeaders,
1584
1594
  workflowConfig,
1585
1595
  invokeCount,
1586
1596
  initHeaderValue,
1587
- stepInfo
1597
+ stepInfo,
1598
+ keepTriggerConfig
1588
1599
  }) {
1589
1600
  this.userHeaders = userHeaders;
1590
1601
  this.workflowConfig = workflowConfig;
@@ -1596,6 +1607,7 @@ var WorkflowHeaders = class {
1596
1607
  workflowHeaders: {},
1597
1608
  failureHeaders: {}
1598
1609
  };
1610
+ this.keepTriggerConfig = keepTriggerConfig;
1599
1611
  }
1600
1612
  getHeaders() {
1601
1613
  this.addBaseHeaders();
@@ -1614,7 +1626,7 @@ var WorkflowHeaders = class {
1614
1626
  [WORKFLOW_INIT_HEADER]: this.initHeaderValue,
1615
1627
  [WORKFLOW_ID_HEADER]: this.workflowConfig.workflowRunId,
1616
1628
  [WORKFLOW_URL_HEADER]: this.workflowConfig.workflowUrl,
1617
- [WORKFLOW_FEATURE_HEADER]: "LazyFetch,InitialBody,WF_DetectTrigger",
1629
+ [WORKFLOW_FEATURE_HEADER]: "LazyFetch,InitialBody,WF_DetectTrigger" + (this.keepTriggerConfig ? ",WF_TriggerOnConfig" : ""),
1618
1630
  [WORKFLOW_PROTOCOL_VERSION_HEADER]: WORKFLOW_PROTOCOL_VERSION,
1619
1631
  ...this.workflowConfig.telemetry ? getTelemetryHeaders(this.workflowConfig.telemetry) : {},
1620
1632
  ...this.workflowConfig.telemetry && this.stepInfo?.lazyStep instanceof LazyCallStep && this.stepInfo.lazyStep.headers[AGENT_NAME_HEADER] ? { [TELEMETRY_HEADER_AGENT]: "true" } : {}
@@ -3917,7 +3929,8 @@ var Client4 = class {
3917
3929
  workflowContext: context,
3918
3930
  telemetry: { sdk: SDK_TELEMETRY },
3919
3931
  delay: option.delay,
3920
- notBefore: option.notBefore
3932
+ notBefore: option.notBefore,
3933
+ keepTriggerConfig: option.keepTriggerConfig
3921
3934
  };
3922
3935
  });
3923
3936
  const result = await triggerFirstInvocation(invocations);
package/index.mjs CHANGED
@@ -14,7 +14,7 @@ import {
14
14
  prepareFlowControl,
15
15
  serve,
16
16
  triggerFirstInvocation
17
- } from "./chunk-LZGX3WMF.mjs";
17
+ } from "./chunk-CAQSUCHB.mjs";
18
18
 
19
19
  // src/client/index.ts
20
20
  import { Client as QStashClient } from "@upstash/qstash";
@@ -266,7 +266,8 @@ var Client = class {
266
266
  workflowContext: context,
267
267
  telemetry: { sdk: SDK_TELEMETRY },
268
268
  delay: option.delay,
269
- notBefore: option.notBefore
269
+ notBefore: option.notBefore,
270
+ keepTriggerConfig: option.keepTriggerConfig
270
271
  };
271
272
  });
272
273
  const result = await triggerFirstInvocation(invocations);
package/nextjs.js CHANGED
@@ -95,7 +95,7 @@ var WORKFLOW_PROTOCOL_VERSION_HEADER = "Upstash-Workflow-Sdk-Version";
95
95
  var DEFAULT_CONTENT_TYPE = "application/json";
96
96
  var NO_CONCURRENCY = 1;
97
97
  var DEFAULT_RETRIES = 3;
98
- var VERSION = "v0.2.20";
98
+ var VERSION = "v0.2.21";
99
99
  var SDK_TELEMETRY = `@upstash/workflow@${VERSION}`;
100
100
  var TELEMETRY_HEADER_SDK = "Upstash-Telemetry-Sdk";
101
101
  var TELEMETRY_HEADER_FRAMEWORK = "Upstash-Telemetry-Framework";
@@ -618,7 +618,15 @@ var triggerFirstInvocation = async (params) => {
618
618
  const firstInvocationParams = Array.isArray(params) ? params : [params];
619
619
  const workflowContextClient = firstInvocationParams[0].workflowContext.qstashClient;
620
620
  const invocationBatch = firstInvocationParams.map(
621
- ({ workflowContext, useJSONContent, telemetry, invokeCount, delay, notBefore }) => {
621
+ ({
622
+ workflowContext,
623
+ useJSONContent,
624
+ telemetry,
625
+ invokeCount,
626
+ delay,
627
+ notBefore,
628
+ keepTriggerConfig
629
+ }) => {
622
630
  const { headers } = getHeaders({
623
631
  initHeaderValue: "true",
624
632
  workflowConfig: {
@@ -632,7 +640,8 @@ var triggerFirstInvocation = async (params) => {
632
640
  useJSONContent: useJSONContent ?? false
633
641
  },
634
642
  invokeCount: invokeCount ?? 0,
635
- userHeaders: workflowContext.headers
643
+ userHeaders: workflowContext.headers,
644
+ keepTriggerConfig
636
645
  });
637
646
  if (workflowContext.headers.get("content-type")) {
638
647
  headers["content-type"] = workflowContext.headers.get("content-type");
@@ -1569,12 +1578,14 @@ var WorkflowHeaders = class {
1569
1578
  initHeaderValue;
1570
1579
  stepInfo;
1571
1580
  headers;
1581
+ keepTriggerConfig;
1572
1582
  constructor({
1573
1583
  userHeaders,
1574
1584
  workflowConfig,
1575
1585
  invokeCount,
1576
1586
  initHeaderValue,
1577
- stepInfo
1587
+ stepInfo,
1588
+ keepTriggerConfig
1578
1589
  }) {
1579
1590
  this.userHeaders = userHeaders;
1580
1591
  this.workflowConfig = workflowConfig;
@@ -1586,6 +1597,7 @@ var WorkflowHeaders = class {
1586
1597
  workflowHeaders: {},
1587
1598
  failureHeaders: {}
1588
1599
  };
1600
+ this.keepTriggerConfig = keepTriggerConfig;
1589
1601
  }
1590
1602
  getHeaders() {
1591
1603
  this.addBaseHeaders();
@@ -1604,7 +1616,7 @@ var WorkflowHeaders = class {
1604
1616
  [WORKFLOW_INIT_HEADER]: this.initHeaderValue,
1605
1617
  [WORKFLOW_ID_HEADER]: this.workflowConfig.workflowRunId,
1606
1618
  [WORKFLOW_URL_HEADER]: this.workflowConfig.workflowUrl,
1607
- [WORKFLOW_FEATURE_HEADER]: "LazyFetch,InitialBody,WF_DetectTrigger",
1619
+ [WORKFLOW_FEATURE_HEADER]: "LazyFetch,InitialBody,WF_DetectTrigger" + (this.keepTriggerConfig ? ",WF_TriggerOnConfig" : ""),
1608
1620
  [WORKFLOW_PROTOCOL_VERSION_HEADER]: WORKFLOW_PROTOCOL_VERSION,
1609
1621
  ...this.workflowConfig.telemetry ? getTelemetryHeaders(this.workflowConfig.telemetry) : {},
1610
1622
  ...this.workflowConfig.telemetry && this.stepInfo?.lazyStep instanceof LazyCallStep && this.stepInfo.lazyStep.headers[AGENT_NAME_HEADER] ? { [TELEMETRY_HEADER_AGENT]: "true" } : {}
package/nextjs.mjs CHANGED
@@ -2,7 +2,7 @@ import {
2
2
  SDK_TELEMETRY,
3
3
  serveBase,
4
4
  serveManyBase
5
- } from "./chunk-LZGX3WMF.mjs";
5
+ } from "./chunk-CAQSUCHB.mjs";
6
6
 
7
7
  // platforms/nextjs.ts
8
8
  var appTelemetry = {
package/package.json CHANGED
@@ -1 +1 @@
1
- {"name":"@upstash/workflow","version":"v0.2.20","description":"Durable, Reliable and Performant Serverless Functions","main":"./index.js","module":"./index.mjs","types":"./index.d.ts","files":["./*"],"exports":{".":{"import":"./index.mjs","require":"./index.js"},"./dist/nextjs":{"import":"./nextjs.mjs","require":"./nextjs.js"},"./nextjs":{"import":"./nextjs.mjs","require":"./nextjs.js"},"./h3":{"import":"./h3.mjs","require":"./h3.js"},"./svelte":{"import":"./svelte.mjs","require":"./svelte.js"},"./solidjs":{"import":"./solidjs.mjs","require":"./solidjs.js"},"./workflow":{"import":"./workflow.mjs","require":"./workflow.js"},"./hono":{"import":"./hono.mjs","require":"./hono.js"},"./cloudflare":{"import":"./cloudflare.mjs","require":"./cloudflare.js"},"./astro":{"import":"./astro.mjs","require":"./astro.js"},"./express":{"import":"./express.mjs","require":"./express.js"}},"scripts":{"build":"tsup && cp README.md ./dist/ && cp package.json ./dist/ && cp LICENSE ./dist/","test":"bun test src","fmt":"prettier --write .","lint":"tsc && eslint \"{src,platforms}/**/*.{js,ts,tsx}\" --quiet --fix","check-exports":"bun run build && cd dist && attw -P"},"repository":{"type":"git","url":"git+https://github.com/upstash/workflow-ts.git"},"keywords":["upstash","qstash","workflow","serverless"],"author":"Cahid Arda Oz","license":"MIT","bugs":{"url":"https://github.com/upstash/workflow-ts/issues"},"homepage":"https://github.com/upstash/workflow-ts#readme","devDependencies":{"@ai-sdk/anthropic":"^1.1.15","@commitlint/cli":"^19.5.0","@commitlint/config-conventional":"^19.5.0","@eslint/js":"^9.11.1","@solidjs/start":"^1.0.8","@sveltejs/kit":"^2.6.1","@types/bun":"^1.1.10","@types/express":"^5.0.3","astro":"^4.16.7","eslint":"^9.11.1","eslint-plugin-unicorn":"^55.0.0","express":"^5.1.0","globals":"^15.10.0","h3":"^1.12.0","hono":"^4.6.20","husky":"^9.1.6","next":"^14.2.14","prettier":"3.3.3","tsup":"^8.3.0","typescript":"^5.7.2","typescript-eslint":"^8.18.0"},"dependencies":{"@ai-sdk/openai":"^1.2.1","@upstash/qstash":"^2.8.2","ai":"^4.1.54","zod":"^3.24.1"},"directories":{"example":"examples"}}
1
+ {"name":"@upstash/workflow","version":"v0.2.22-rc","description":"Durable, Reliable and Performant Serverless Functions","main":"./index.js","module":"./index.mjs","types":"./index.d.ts","files":["./*"],"exports":{".":{"import":"./index.mjs","require":"./index.js"},"./dist/nextjs":{"import":"./nextjs.mjs","require":"./nextjs.js"},"./nextjs":{"import":"./nextjs.mjs","require":"./nextjs.js"},"./h3":{"import":"./h3.mjs","require":"./h3.js"},"./svelte":{"import":"./svelte.mjs","require":"./svelte.js"},"./solidjs":{"import":"./solidjs.mjs","require":"./solidjs.js"},"./workflow":{"import":"./workflow.mjs","require":"./workflow.js"},"./hono":{"import":"./hono.mjs","require":"./hono.js"},"./cloudflare":{"import":"./cloudflare.mjs","require":"./cloudflare.js"},"./astro":{"import":"./astro.mjs","require":"./astro.js"},"./express":{"import":"./express.mjs","require":"./express.js"},"./tanstack":{"import":"./tanstack.mjs","require":"./tanstack.js"}},"scripts":{"build":"tsup && cp README.md ./dist/ && cp package.json ./dist/ && cp LICENSE ./dist/","test":"bun test src","fmt":"prettier --write .","lint":"tsc && eslint \"{src,platforms}/**/*.{js,ts,tsx}\" --quiet --fix","check-exports":"bun run build && cd dist && attw -P"},"repository":{"type":"git","url":"git+https://github.com/upstash/workflow-ts.git"},"keywords":["upstash","qstash","workflow","serverless"],"author":"Cahid Arda Oz","license":"MIT","bugs":{"url":"https://github.com/upstash/workflow-ts/issues"},"homepage":"https://github.com/upstash/workflow-ts#readme","devDependencies":{"@ai-sdk/anthropic":"^1.1.15","@commitlint/cli":"^19.5.0","@commitlint/config-conventional":"^19.5.0","@eslint/js":"^9.11.1","@solidjs/start":"^1.0.8","@sveltejs/kit":"^2.6.1","@tanstack/react-start":"^1.132.48","@types/bun":"^1.1.10","@types/express":"^5.0.3","astro":"^4.16.7","eslint":"^9.11.1","eslint-plugin-unicorn":"^55.0.0","express":"^5.1.0","globals":"^15.10.0","h3":"^1.12.0","hono":"^4.6.20","husky":"^9.1.6","next":"^14.2.14","prettier":"3.3.3","tsup":"^8.3.0","typescript":"^5.7.2","typescript-eslint":"^8.18.0"},"dependencies":{"@ai-sdk/openai":"^1.2.1","@upstash/qstash":"^2.8.2","ai":"^4.1.54","zod":"^3.24.1"},"directories":{"example":"examples"}}
package/solidjs.js CHANGED
@@ -90,7 +90,7 @@ var WORKFLOW_PROTOCOL_VERSION_HEADER = "Upstash-Workflow-Sdk-Version";
90
90
  var DEFAULT_CONTENT_TYPE = "application/json";
91
91
  var NO_CONCURRENCY = 1;
92
92
  var DEFAULT_RETRIES = 3;
93
- var VERSION = "v0.2.20";
93
+ var VERSION = "v0.2.21";
94
94
  var SDK_TELEMETRY = `@upstash/workflow@${VERSION}`;
95
95
  var TELEMETRY_HEADER_SDK = "Upstash-Telemetry-Sdk";
96
96
  var TELEMETRY_HEADER_FRAMEWORK = "Upstash-Telemetry-Framework";
@@ -613,7 +613,15 @@ var triggerFirstInvocation = async (params) => {
613
613
  const firstInvocationParams = Array.isArray(params) ? params : [params];
614
614
  const workflowContextClient = firstInvocationParams[0].workflowContext.qstashClient;
615
615
  const invocationBatch = firstInvocationParams.map(
616
- ({ workflowContext, useJSONContent, telemetry, invokeCount, delay, notBefore }) => {
616
+ ({
617
+ workflowContext,
618
+ useJSONContent,
619
+ telemetry,
620
+ invokeCount,
621
+ delay,
622
+ notBefore,
623
+ keepTriggerConfig
624
+ }) => {
617
625
  const { headers } = getHeaders({
618
626
  initHeaderValue: "true",
619
627
  workflowConfig: {
@@ -627,7 +635,8 @@ var triggerFirstInvocation = async (params) => {
627
635
  useJSONContent: useJSONContent ?? false
628
636
  },
629
637
  invokeCount: invokeCount ?? 0,
630
- userHeaders: workflowContext.headers
638
+ userHeaders: workflowContext.headers,
639
+ keepTriggerConfig
631
640
  });
632
641
  if (workflowContext.headers.get("content-type")) {
633
642
  headers["content-type"] = workflowContext.headers.get("content-type");
@@ -1564,12 +1573,14 @@ var WorkflowHeaders = class {
1564
1573
  initHeaderValue;
1565
1574
  stepInfo;
1566
1575
  headers;
1576
+ keepTriggerConfig;
1567
1577
  constructor({
1568
1578
  userHeaders,
1569
1579
  workflowConfig,
1570
1580
  invokeCount,
1571
1581
  initHeaderValue,
1572
- stepInfo
1582
+ stepInfo,
1583
+ keepTriggerConfig
1573
1584
  }) {
1574
1585
  this.userHeaders = userHeaders;
1575
1586
  this.workflowConfig = workflowConfig;
@@ -1581,6 +1592,7 @@ var WorkflowHeaders = class {
1581
1592
  workflowHeaders: {},
1582
1593
  failureHeaders: {}
1583
1594
  };
1595
+ this.keepTriggerConfig = keepTriggerConfig;
1584
1596
  }
1585
1597
  getHeaders() {
1586
1598
  this.addBaseHeaders();
@@ -1599,7 +1611,7 @@ var WorkflowHeaders = class {
1599
1611
  [WORKFLOW_INIT_HEADER]: this.initHeaderValue,
1600
1612
  [WORKFLOW_ID_HEADER]: this.workflowConfig.workflowRunId,
1601
1613
  [WORKFLOW_URL_HEADER]: this.workflowConfig.workflowUrl,
1602
- [WORKFLOW_FEATURE_HEADER]: "LazyFetch,InitialBody,WF_DetectTrigger",
1614
+ [WORKFLOW_FEATURE_HEADER]: "LazyFetch,InitialBody,WF_DetectTrigger" + (this.keepTriggerConfig ? ",WF_TriggerOnConfig" : ""),
1603
1615
  [WORKFLOW_PROTOCOL_VERSION_HEADER]: WORKFLOW_PROTOCOL_VERSION,
1604
1616
  ...this.workflowConfig.telemetry ? getTelemetryHeaders(this.workflowConfig.telemetry) : {},
1605
1617
  ...this.workflowConfig.telemetry && this.stepInfo?.lazyStep instanceof LazyCallStep && this.stepInfo.lazyStep.headers[AGENT_NAME_HEADER] ? { [TELEMETRY_HEADER_AGENT]: "true" } : {}
package/solidjs.mjs CHANGED
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  SDK_TELEMETRY,
3
3
  serveBase
4
- } from "./chunk-LZGX3WMF.mjs";
4
+ } from "./chunk-CAQSUCHB.mjs";
5
5
 
6
6
  // platforms/solidjs.ts
7
7
  var serve = (routeFunction, options) => {
package/svelte.js CHANGED
@@ -92,7 +92,7 @@ var WORKFLOW_PROTOCOL_VERSION_HEADER = "Upstash-Workflow-Sdk-Version";
92
92
  var DEFAULT_CONTENT_TYPE = "application/json";
93
93
  var NO_CONCURRENCY = 1;
94
94
  var DEFAULT_RETRIES = 3;
95
- var VERSION = "v0.2.20";
95
+ var VERSION = "v0.2.21";
96
96
  var SDK_TELEMETRY = `@upstash/workflow@${VERSION}`;
97
97
  var TELEMETRY_HEADER_SDK = "Upstash-Telemetry-Sdk";
98
98
  var TELEMETRY_HEADER_FRAMEWORK = "Upstash-Telemetry-Framework";
@@ -615,7 +615,15 @@ var triggerFirstInvocation = async (params) => {
615
615
  const firstInvocationParams = Array.isArray(params) ? params : [params];
616
616
  const workflowContextClient = firstInvocationParams[0].workflowContext.qstashClient;
617
617
  const invocationBatch = firstInvocationParams.map(
618
- ({ workflowContext, useJSONContent, telemetry: telemetry2, invokeCount, delay, notBefore }) => {
618
+ ({
619
+ workflowContext,
620
+ useJSONContent,
621
+ telemetry: telemetry2,
622
+ invokeCount,
623
+ delay,
624
+ notBefore,
625
+ keepTriggerConfig
626
+ }) => {
619
627
  const { headers } = getHeaders({
620
628
  initHeaderValue: "true",
621
629
  workflowConfig: {
@@ -629,7 +637,8 @@ var triggerFirstInvocation = async (params) => {
629
637
  useJSONContent: useJSONContent ?? false
630
638
  },
631
639
  invokeCount: invokeCount ?? 0,
632
- userHeaders: workflowContext.headers
640
+ userHeaders: workflowContext.headers,
641
+ keepTriggerConfig
633
642
  });
634
643
  if (workflowContext.headers.get("content-type")) {
635
644
  headers["content-type"] = workflowContext.headers.get("content-type");
@@ -1566,12 +1575,14 @@ var WorkflowHeaders = class {
1566
1575
  initHeaderValue;
1567
1576
  stepInfo;
1568
1577
  headers;
1578
+ keepTriggerConfig;
1569
1579
  constructor({
1570
1580
  userHeaders,
1571
1581
  workflowConfig,
1572
1582
  invokeCount,
1573
1583
  initHeaderValue,
1574
- stepInfo
1584
+ stepInfo,
1585
+ keepTriggerConfig
1575
1586
  }) {
1576
1587
  this.userHeaders = userHeaders;
1577
1588
  this.workflowConfig = workflowConfig;
@@ -1583,6 +1594,7 @@ var WorkflowHeaders = class {
1583
1594
  workflowHeaders: {},
1584
1595
  failureHeaders: {}
1585
1596
  };
1597
+ this.keepTriggerConfig = keepTriggerConfig;
1586
1598
  }
1587
1599
  getHeaders() {
1588
1600
  this.addBaseHeaders();
@@ -1601,7 +1613,7 @@ var WorkflowHeaders = class {
1601
1613
  [WORKFLOW_INIT_HEADER]: this.initHeaderValue,
1602
1614
  [WORKFLOW_ID_HEADER]: this.workflowConfig.workflowRunId,
1603
1615
  [WORKFLOW_URL_HEADER]: this.workflowConfig.workflowUrl,
1604
- [WORKFLOW_FEATURE_HEADER]: "LazyFetch,InitialBody,WF_DetectTrigger",
1616
+ [WORKFLOW_FEATURE_HEADER]: "LazyFetch,InitialBody,WF_DetectTrigger" + (this.keepTriggerConfig ? ",WF_TriggerOnConfig" : ""),
1605
1617
  [WORKFLOW_PROTOCOL_VERSION_HEADER]: WORKFLOW_PROTOCOL_VERSION,
1606
1618
  ...this.workflowConfig.telemetry ? getTelemetryHeaders(this.workflowConfig.telemetry) : {},
1607
1619
  ...this.workflowConfig.telemetry && this.stepInfo?.lazyStep instanceof LazyCallStep && this.stepInfo.lazyStep.headers[AGENT_NAME_HEADER] ? { [TELEMETRY_HEADER_AGENT]: "true" } : {}
package/svelte.mjs CHANGED
@@ -2,7 +2,7 @@ import {
2
2
  SDK_TELEMETRY,
3
3
  serveBase,
4
4
  serveManyBase
5
- } from "./chunk-LZGX3WMF.mjs";
5
+ } from "./chunk-CAQSUCHB.mjs";
6
6
 
7
7
  // platforms/svelte.ts
8
8
  var telemetry = {
package/tanstack.d.mts ADDED
@@ -0,0 +1,36 @@
1
+ import { R as RouteFunction, n as PublicServeOptions, y as InvokableWorkflow } from './types-Q3dM0UlR.mjs';
2
+ import { s as serveManyBase } from './serve-many-BNusWYgt.mjs';
3
+ import '@upstash/qstash';
4
+ import 'zod';
5
+ import 'ai';
6
+ import '@ai-sdk/openai';
7
+
8
+ /**
9
+ * Serve method to serve a Upstash Workflow in a TanStack Start project
10
+ *
11
+ * This wrapper allows you to access both the workflow context and TanStack route context
12
+ *
13
+ * @param routeFunction workflow function that receives both workflow context and TanStack route context
14
+ * @param options workflow options (same as Next.js serve options)
15
+ * @returns handler object with POST method compatible with TanStack Start
16
+ */
17
+ declare function serve<TInitialPayload = unknown, TResult = unknown>(routeFunction: RouteFunction<TInitialPayload, TResult>, options?: PublicServeOptions<TInitialPayload>): {
18
+ POST: (tanstackContext: {
19
+ request: Request;
20
+ }) => Promise<Response>;
21
+ };
22
+ declare const createWorkflow: <TInitialPayload, TResult>(routeFunction: RouteFunction<TInitialPayload, TResult>, options?: PublicServeOptions<TInitialPayload> | undefined) => InvokableWorkflow<TInitialPayload, TResult>;
23
+ /**
24
+ * Serve multiple workflows from a single endpoint using dynamic routing in TanStack Start
25
+ *
26
+ * @param workflows object containing workflow definitions
27
+ * @param options serve options
28
+ * @returns handler object with POST method
29
+ */
30
+ declare const serveMany: (workflows: Parameters<typeof serveManyBase>[0]["workflows"], options?: Parameters<typeof serveManyBase>[0]["options"]) => {
31
+ POST: (tanstackContext: {
32
+ request: Request;
33
+ }) => Promise<any>;
34
+ };
35
+
36
+ export { createWorkflow, serve, serveMany };
package/tanstack.d.ts ADDED
@@ -0,0 +1,36 @@
1
+ import { R as RouteFunction, n as PublicServeOptions, y as InvokableWorkflow } from './types-Q3dM0UlR.js';
2
+ import { s as serveManyBase } from './serve-many-CXqQP3RI.js';
3
+ import '@upstash/qstash';
4
+ import 'zod';
5
+ import 'ai';
6
+ import '@ai-sdk/openai';
7
+
8
+ /**
9
+ * Serve method to serve a Upstash Workflow in a TanStack Start project
10
+ *
11
+ * This wrapper allows you to access both the workflow context and TanStack route context
12
+ *
13
+ * @param routeFunction workflow function that receives both workflow context and TanStack route context
14
+ * @param options workflow options (same as Next.js serve options)
15
+ * @returns handler object with POST method compatible with TanStack Start
16
+ */
17
+ declare function serve<TInitialPayload = unknown, TResult = unknown>(routeFunction: RouteFunction<TInitialPayload, TResult>, options?: PublicServeOptions<TInitialPayload>): {
18
+ POST: (tanstackContext: {
19
+ request: Request;
20
+ }) => Promise<Response>;
21
+ };
22
+ declare const createWorkflow: <TInitialPayload, TResult>(routeFunction: RouteFunction<TInitialPayload, TResult>, options?: PublicServeOptions<TInitialPayload> | undefined) => InvokableWorkflow<TInitialPayload, TResult>;
23
+ /**
24
+ * Serve multiple workflows from a single endpoint using dynamic routing in TanStack Start
25
+ *
26
+ * @param workflows object containing workflow definitions
27
+ * @param options serve options
28
+ * @returns handler object with POST method
29
+ */
30
+ declare const serveMany: (workflows: Parameters<typeof serveManyBase>[0]["workflows"], options?: Parameters<typeof serveManyBase>[0]["options"]) => {
31
+ POST: (tanstackContext: {
32
+ request: Request;
33
+ }) => Promise<any>;
34
+ };
35
+
36
+ export { createWorkflow, serve, serveMany };