@upstash/workflow 0.2.20 → 0.2.21
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-NQDNC5P4.mjs} +17 -5
- package/cloudflare.js +17 -5
- package/cloudflare.mjs +1 -1
- package/express.js +17 -5
- package/express.mjs +1 -1
- 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/nextjs.mjs
CHANGED
package/package.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"name":"@upstash/workflow","version":"v0.2.
|
|
1
|
+
{"name":"@upstash/workflow","version":"v0.2.21","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 };
|