@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/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-NQDNC5P4.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.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.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-NQDNC5P4.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-NQDNC5P4.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 };