@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/astro.js +18 -6
- package/astro.mjs +2 -2
- package/{chunk-LZGX3WMF.mjs → chunk-CAQSUCHB.mjs} +17 -40
- package/cloudflare.js +17 -5
- package/cloudflare.mjs +1 -1
- package/express.js +30 -23828
- package/express.mjs +6 -23804
- package/h3.js +17 -5
- package/h3.mjs +1 -1
- package/hono.js +17 -5
- package/hono.mjs +1 -1
- package/index.d.mts +7 -0
- package/index.d.ts +7 -0
- package/index.js +19 -6
- package/index.mjs +3 -2
- package/nextjs.js +17 -5
- package/nextjs.mjs +1 -1
- package/package.json +1 -1
- package/solidjs.js +17 -5
- package/solidjs.mjs +1 -1
- package/svelte.js +17 -5
- package/svelte.mjs +1 -1
- package/tanstack.d.mts +36 -0
- package/tanstack.d.ts +36 -0
- package/tanstack.js +3737 -0
- package/tanstack.mjs +48 -0
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.
|
|
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
|
-
({
|
|
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
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.
|
|
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
|
-
({
|
|
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
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.
|
|
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
|
-
({
|
|
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-
|
|
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.
|
|
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
|
-
({
|
|
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
package/package.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"name":"@upstash/workflow","version":"v0.2.
|
|
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.
|
|
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
|
-
({
|
|
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
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.
|
|
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
|
-
({
|
|
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
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 };
|