@upstash/workflow 0.2.2 → 0.2.3

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.d.mts CHANGED
@@ -1,5 +1,5 @@
1
1
  import { APIContext, APIRoute } from 'astro';
2
- import { b as WorkflowContext, j as PublicServeOptions } from './types-APRap-aV.mjs';
2
+ import { b as WorkflowContext, j as PublicServeOptions } from './types-R9q4MUwl.mjs';
3
3
  import '@upstash/qstash';
4
4
 
5
5
  declare function serve<TInitialPayload = unknown>(routeFunction: (workflowContext: WorkflowContext<TInitialPayload>, apiContext: APIContext) => Promise<void>, options?: PublicServeOptions<TInitialPayload>): {
package/astro.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import { APIContext, APIRoute } from 'astro';
2
- import { b as WorkflowContext, j as PublicServeOptions } from './types-APRap-aV.js';
2
+ import { b as WorkflowContext, j as PublicServeOptions } from './types-R9q4MUwl.js';
3
3
  import '@upstash/qstash';
4
4
 
5
5
  declare function serve<TInitialPayload = unknown>(routeFunction: (workflowContext: WorkflowContext<TInitialPayload>, apiContext: APIContext) => Promise<void>, options?: PublicServeOptions<TInitialPayload>): {
package/astro.js CHANGED
@@ -1461,6 +1461,127 @@ var sortSteps = (steps) => {
1461
1461
  return [...steps].sort((step, stepOther) => getStepId(step) - getStepId(stepOther));
1462
1462
  };
1463
1463
 
1464
+ // src/context/api/anthropic.ts
1465
+ var import_qstash4 = require("@upstash/qstash");
1466
+
1467
+ // src/context/provider.ts
1468
+ var getProviderInfo = (api) => {
1469
+ if (!api.provider) {
1470
+ throw new WorkflowError("A Provider must be provided.");
1471
+ }
1472
+ if (api.provider.owner === "upstash") {
1473
+ throw new WorkflowError("Upstash provider isn't supported.");
1474
+ }
1475
+ const { name, provider, ...parameters } = api;
1476
+ if (!provider.baseUrl) throw new TypeError("baseUrl cannot be empty or undefined!");
1477
+ if (!provider.token) throw new TypeError("token cannot be empty or undefined!");
1478
+ if (provider.apiKind !== name) {
1479
+ throw new TypeError(`Unexpected api name. Expected '${provider.apiKind}', received ${name}`);
1480
+ }
1481
+ const providerInfo = {
1482
+ url: provider.getUrl(),
1483
+ baseUrl: provider.baseUrl,
1484
+ route: provider.getRoute(),
1485
+ appendHeaders: provider.getHeaders(parameters),
1486
+ owner: provider.owner,
1487
+ method: provider.method
1488
+ };
1489
+ return provider.onFinish(providerInfo, parameters);
1490
+ };
1491
+
1492
+ // src/context/api/base.ts
1493
+ var BaseWorkflowApi = class {
1494
+ context;
1495
+ constructor({ context }) {
1496
+ this.context = context;
1497
+ }
1498
+ /**
1499
+ * context.call which uses a QStash API
1500
+ *
1501
+ * @param stepName
1502
+ * @param settings
1503
+ * @returns
1504
+ */
1505
+ async callApi(stepName, settings) {
1506
+ const { url, appendHeaders, method } = getProviderInfo(settings.api);
1507
+ const { method: userMethod, body, headers = {}, retries = 0, timeout } = settings;
1508
+ return await this.context.call(stepName, {
1509
+ url,
1510
+ method: userMethod ?? method,
1511
+ body,
1512
+ headers: {
1513
+ ...appendHeaders,
1514
+ ...headers
1515
+ },
1516
+ retries,
1517
+ timeout
1518
+ });
1519
+ }
1520
+ };
1521
+
1522
+ // src/context/api/anthropic.ts
1523
+ var AnthropicAPI = class extends BaseWorkflowApi {
1524
+ async call(stepName, settings) {
1525
+ const { token, operation, ...parameters } = settings;
1526
+ return await this.callApi(stepName, {
1527
+ api: {
1528
+ name: "llm",
1529
+ provider: (0, import_qstash4.anthropic)({ token })
1530
+ },
1531
+ ...parameters
1532
+ });
1533
+ }
1534
+ };
1535
+
1536
+ // src/context/api/openai.ts
1537
+ var import_qstash5 = require("@upstash/qstash");
1538
+ var OpenAIAPI = class extends BaseWorkflowApi {
1539
+ async call(stepName, settings) {
1540
+ const { token, organization, operation, ...parameters } = settings;
1541
+ return await this.callApi(stepName, {
1542
+ api: {
1543
+ name: "llm",
1544
+ provider: (0, import_qstash5.openai)({ token, organization })
1545
+ },
1546
+ ...parameters
1547
+ });
1548
+ }
1549
+ };
1550
+
1551
+ // src/context/api/resend.ts
1552
+ var import_qstash6 = require("@upstash/qstash");
1553
+ var ResendAPI = class extends BaseWorkflowApi {
1554
+ async call(stepName, settings) {
1555
+ const { token, batch = false, ...parameters } = settings;
1556
+ return await this.callApi(stepName, {
1557
+ api: {
1558
+ name: "email",
1559
+ provider: (0, import_qstash6.resend)({ token, batch })
1560
+ },
1561
+ ...parameters
1562
+ });
1563
+ }
1564
+ };
1565
+
1566
+ // src/context/api/index.ts
1567
+ var WorkflowApi = class extends BaseWorkflowApi {
1568
+ get openai() {
1569
+ return new OpenAIAPI({
1570
+ context: this.context
1571
+ });
1572
+ }
1573
+ get resend() {
1574
+ return new ResendAPI({
1575
+ context: this.context
1576
+ });
1577
+ }
1578
+ get anthropic() {
1579
+ return new AnthropicAPI({
1580
+ context: this.context
1581
+ });
1582
+ }
1583
+ };
1584
+
1464
1585
  // src/context/context.ts
1465
1586
  var WorkflowContext = class {
1466
1587
  executor;
@@ -1840,6 +1961,11 @@ var WorkflowContext = class {
1840
1961
  async addStep(step) {
1841
1962
  return await this.executor.addStep(step);
1842
1963
  }
1964
+ get api() {
1965
+ return new WorkflowApi({
1966
+ context: this
1967
+ });
1968
+ }
1843
1969
  };
1844
1970
 
1845
1971
  // src/logger.ts
@@ -1917,7 +2043,7 @@ function decodeBase64(base64) {
1917
2043
  }
1918
2044
 
1919
2045
  // src/serve/authorization.ts
1920
- var import_qstash4 = require("@upstash/qstash");
2046
+ var import_qstash7 = require("@upstash/qstash");
1921
2047
  var DisabledWorkflowContext = class _DisabledWorkflowContext extends WorkflowContext {
1922
2048
  static disabledMessage = "disabled-qstash-worklfow-run";
1923
2049
  /**
@@ -1948,7 +2074,7 @@ var DisabledWorkflowContext = class _DisabledWorkflowContext extends WorkflowCon
1948
2074
  */
1949
2075
  static async tryAuthentication(routeFunction, context) {
1950
2076
  const disabledContext = new _DisabledWorkflowContext({
1951
- qstashClient: new import_qstash4.Client({
2077
+ qstashClient: new import_qstash7.Client({
1952
2078
  baseUrl: "disabled-client",
1953
2079
  token: "disabled-client"
1954
2080
  }),
@@ -2162,15 +2288,15 @@ var handleFailure = async (request, requestPayload, qstashClient, initialPayload
2162
2288
  };
2163
2289
 
2164
2290
  // src/serve/options.ts
2165
- var import_qstash5 = require("@upstash/qstash");
2166
- var import_qstash6 = require("@upstash/qstash");
2291
+ var import_qstash8 = require("@upstash/qstash");
2292
+ var import_qstash9 = require("@upstash/qstash");
2167
2293
  var processOptions = (options) => {
2168
2294
  const environment = options?.env ?? (typeof process === "undefined" ? {} : process.env);
2169
2295
  const receiverEnvironmentVariablesSet = Boolean(
2170
2296
  environment.QSTASH_CURRENT_SIGNING_KEY && environment.QSTASH_NEXT_SIGNING_KEY
2171
2297
  );
2172
2298
  return {
2173
- qstashClient: new import_qstash6.Client({
2299
+ qstashClient: new import_qstash9.Client({
2174
2300
  baseUrl: environment.QSTASH_URL,
2175
2301
  token: environment.QSTASH_TOKEN
2176
2302
  }),
@@ -2204,7 +2330,7 @@ var processOptions = (options) => {
2204
2330
  throw error;
2205
2331
  }
2206
2332
  },
2207
- receiver: receiverEnvironmentVariablesSet ? new import_qstash5.Receiver({
2333
+ receiver: receiverEnvironmentVariablesSet ? new import_qstash8.Receiver({
2208
2334
  currentSigningKey: environment.QSTASH_CURRENT_SIGNING_KEY,
2209
2335
  nextSigningKey: environment.QSTASH_NEXT_SIGNING_KEY
2210
2336
  }) : void 0,
package/astro.mjs CHANGED
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  serveBase
3
- } from "./chunk-Z7WS5XIR.mjs";
3
+ } from "./chunk-QBJ3LQIO.mjs";
4
4
 
5
5
  // platforms/astro.ts
6
6
  function serve(routeFunction, options) {
@@ -1474,6 +1474,127 @@ var sortSteps = (steps) => {
1474
1474
  return [...steps].sort((step, stepOther) => getStepId(step) - getStepId(stepOther));
1475
1475
  };
1476
1476
 
1477
+ // src/context/api/anthropic.ts
1478
+ import { anthropic } from "@upstash/qstash";
1479
+
1480
+ // src/context/provider.ts
1481
+ var getProviderInfo = (api) => {
1482
+ if (!api.provider) {
1483
+ throw new WorkflowError("A Provider must be provided.");
1484
+ }
1485
+ if (api.provider.owner === "upstash") {
1486
+ throw new WorkflowError("Upstash provider isn't supported.");
1487
+ }
1488
+ const { name, provider, ...parameters } = api;
1489
+ if (!provider.baseUrl) throw new TypeError("baseUrl cannot be empty or undefined!");
1490
+ if (!provider.token) throw new TypeError("token cannot be empty or undefined!");
1491
+ if (provider.apiKind !== name) {
1492
+ throw new TypeError(`Unexpected api name. Expected '${provider.apiKind}', received ${name}`);
1493
+ }
1494
+ const providerInfo = {
1495
+ url: provider.getUrl(),
1496
+ baseUrl: provider.baseUrl,
1497
+ route: provider.getRoute(),
1498
+ appendHeaders: provider.getHeaders(parameters),
1499
+ owner: provider.owner,
1500
+ method: provider.method
1501
+ };
1502
+ return provider.onFinish(providerInfo, parameters);
1503
+ };
1504
+
1505
+ // src/context/api/base.ts
1506
+ var BaseWorkflowApi = class {
1507
+ context;
1508
+ constructor({ context }) {
1509
+ this.context = context;
1510
+ }
1511
+ /**
1512
+ * context.call which uses a QStash API
1513
+ *
1514
+ * @param stepName
1515
+ * @param settings
1516
+ * @returns
1517
+ */
1518
+ async callApi(stepName, settings) {
1519
+ const { url, appendHeaders, method } = getProviderInfo(settings.api);
1520
+ const { method: userMethod, body, headers = {}, retries = 0, timeout } = settings;
1521
+ return await this.context.call(stepName, {
1522
+ url,
1523
+ method: userMethod ?? method,
1524
+ body,
1525
+ headers: {
1526
+ ...appendHeaders,
1527
+ ...headers
1528
+ },
1529
+ retries,
1530
+ timeout
1531
+ });
1532
+ }
1533
+ };
1534
+
1535
+ // src/context/api/anthropic.ts
1536
+ var AnthropicAPI = class extends BaseWorkflowApi {
1537
+ async call(stepName, settings) {
1538
+ const { token, operation, ...parameters } = settings;
1539
+ return await this.callApi(stepName, {
1540
+ api: {
1541
+ name: "llm",
1542
+ provider: anthropic({ token })
1543
+ },
1544
+ ...parameters
1545
+ });
1546
+ }
1547
+ };
1548
+
1549
+ // src/context/api/openai.ts
1550
+ import { openai } from "@upstash/qstash";
1551
+ var OpenAIAPI = class extends BaseWorkflowApi {
1552
+ async call(stepName, settings) {
1553
+ const { token, organization, operation, ...parameters } = settings;
1554
+ return await this.callApi(stepName, {
1555
+ api: {
1556
+ name: "llm",
1557
+ provider: openai({ token, organization })
1558
+ },
1559
+ ...parameters
1560
+ });
1561
+ }
1562
+ };
1563
+
1564
+ // src/context/api/resend.ts
1565
+ import { resend } from "@upstash/qstash";
1566
+ var ResendAPI = class extends BaseWorkflowApi {
1567
+ async call(stepName, settings) {
1568
+ const { token, batch = false, ...parameters } = settings;
1569
+ return await this.callApi(stepName, {
1570
+ api: {
1571
+ name: "email",
1572
+ provider: resend({ token, batch })
1573
+ },
1574
+ ...parameters
1575
+ });
1576
+ }
1577
+ };
1578
+
1579
+ // src/context/api/index.ts
1580
+ var WorkflowApi = class extends BaseWorkflowApi {
1581
+ get openai() {
1582
+ return new OpenAIAPI({
1583
+ context: this.context
1584
+ });
1585
+ }
1586
+ get resend() {
1587
+ return new ResendAPI({
1588
+ context: this.context
1589
+ });
1590
+ }
1591
+ get anthropic() {
1592
+ return new AnthropicAPI({
1593
+ context: this.context
1594
+ });
1595
+ }
1596
+ };
1597
+
1477
1598
  // src/context/context.ts
1478
1599
  var WorkflowContext = class {
1479
1600
  executor;
@@ -1853,6 +1974,11 @@ var WorkflowContext = class {
1853
1974
  async addStep(step) {
1854
1975
  return await this.executor.addStep(step);
1855
1976
  }
1977
+ get api() {
1978
+ return new WorkflowApi({
1979
+ context: this
1980
+ });
1981
+ }
1856
1982
  };
1857
1983
 
1858
1984
  // src/logger.ts
package/cloudflare.d.mts CHANGED
@@ -1,4 +1,4 @@
1
- import { R as RouteFunction, j as PublicServeOptions } from './types-APRap-aV.mjs';
1
+ import { R as RouteFunction, j as PublicServeOptions } from './types-R9q4MUwl.mjs';
2
2
  import '@upstash/qstash';
3
3
 
4
4
  type WorkflowBindings = {
package/cloudflare.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { R as RouteFunction, j as PublicServeOptions } from './types-APRap-aV.js';
1
+ import { R as RouteFunction, j as PublicServeOptions } from './types-R9q4MUwl.js';
2
2
  import '@upstash/qstash';
3
3
 
4
4
  type WorkflowBindings = {
package/cloudflare.js CHANGED
@@ -1461,6 +1461,127 @@ var sortSteps = (steps) => {
1461
1461
  return [...steps].sort((step, stepOther) => getStepId(step) - getStepId(stepOther));
1462
1462
  };
1463
1463
 
1464
+ // src/context/api/anthropic.ts
1465
+ var import_qstash4 = require("@upstash/qstash");
1466
+
1467
+ // src/context/provider.ts
1468
+ var getProviderInfo = (api) => {
1469
+ if (!api.provider) {
1470
+ throw new WorkflowError("A Provider must be provided.");
1471
+ }
1472
+ if (api.provider.owner === "upstash") {
1473
+ throw new WorkflowError("Upstash provider isn't supported.");
1474
+ }
1475
+ const { name, provider, ...parameters } = api;
1476
+ if (!provider.baseUrl) throw new TypeError("baseUrl cannot be empty or undefined!");
1477
+ if (!provider.token) throw new TypeError("token cannot be empty or undefined!");
1478
+ if (provider.apiKind !== name) {
1479
+ throw new TypeError(`Unexpected api name. Expected '${provider.apiKind}', received ${name}`);
1480
+ }
1481
+ const providerInfo = {
1482
+ url: provider.getUrl(),
1483
+ baseUrl: provider.baseUrl,
1484
+ route: provider.getRoute(),
1485
+ appendHeaders: provider.getHeaders(parameters),
1486
+ owner: provider.owner,
1487
+ method: provider.method
1488
+ };
1489
+ return provider.onFinish(providerInfo, parameters);
1490
+ };
1491
+
1492
+ // src/context/api/base.ts
1493
+ var BaseWorkflowApi = class {
1494
+ context;
1495
+ constructor({ context }) {
1496
+ this.context = context;
1497
+ }
1498
+ /**
1499
+ * context.call which uses a QStash API
1500
+ *
1501
+ * @param stepName
1502
+ * @param settings
1503
+ * @returns
1504
+ */
1505
+ async callApi(stepName, settings) {
1506
+ const { url, appendHeaders, method } = getProviderInfo(settings.api);
1507
+ const { method: userMethod, body, headers = {}, retries = 0, timeout } = settings;
1508
+ return await this.context.call(stepName, {
1509
+ url,
1510
+ method: userMethod ?? method,
1511
+ body,
1512
+ headers: {
1513
+ ...appendHeaders,
1514
+ ...headers
1515
+ },
1516
+ retries,
1517
+ timeout
1518
+ });
1519
+ }
1520
+ };
1521
+
1522
+ // src/context/api/anthropic.ts
1523
+ var AnthropicAPI = class extends BaseWorkflowApi {
1524
+ async call(stepName, settings) {
1525
+ const { token, operation, ...parameters } = settings;
1526
+ return await this.callApi(stepName, {
1527
+ api: {
1528
+ name: "llm",
1529
+ provider: (0, import_qstash4.anthropic)({ token })
1530
+ },
1531
+ ...parameters
1532
+ });
1533
+ }
1534
+ };
1535
+
1536
+ // src/context/api/openai.ts
1537
+ var import_qstash5 = require("@upstash/qstash");
1538
+ var OpenAIAPI = class extends BaseWorkflowApi {
1539
+ async call(stepName, settings) {
1540
+ const { token, organization, operation, ...parameters } = settings;
1541
+ return await this.callApi(stepName, {
1542
+ api: {
1543
+ name: "llm",
1544
+ provider: (0, import_qstash5.openai)({ token, organization })
1545
+ },
1546
+ ...parameters
1547
+ });
1548
+ }
1549
+ };
1550
+
1551
+ // src/context/api/resend.ts
1552
+ var import_qstash6 = require("@upstash/qstash");
1553
+ var ResendAPI = class extends BaseWorkflowApi {
1554
+ async call(stepName, settings) {
1555
+ const { token, batch = false, ...parameters } = settings;
1556
+ return await this.callApi(stepName, {
1557
+ api: {
1558
+ name: "email",
1559
+ provider: (0, import_qstash6.resend)({ token, batch })
1560
+ },
1561
+ ...parameters
1562
+ });
1563
+ }
1564
+ };
1565
+
1566
+ // src/context/api/index.ts
1567
+ var WorkflowApi = class extends BaseWorkflowApi {
1568
+ get openai() {
1569
+ return new OpenAIAPI({
1570
+ context: this.context
1571
+ });
1572
+ }
1573
+ get resend() {
1574
+ return new ResendAPI({
1575
+ context: this.context
1576
+ });
1577
+ }
1578
+ get anthropic() {
1579
+ return new AnthropicAPI({
1580
+ context: this.context
1581
+ });
1582
+ }
1583
+ };
1584
+
1464
1585
  // src/context/context.ts
1465
1586
  var WorkflowContext = class {
1466
1587
  executor;
@@ -1840,6 +1961,11 @@ var WorkflowContext = class {
1840
1961
  async addStep(step) {
1841
1962
  return await this.executor.addStep(step);
1842
1963
  }
1964
+ get api() {
1965
+ return new WorkflowApi({
1966
+ context: this
1967
+ });
1968
+ }
1843
1969
  };
1844
1970
 
1845
1971
  // src/logger.ts
@@ -1917,7 +2043,7 @@ function decodeBase64(base64) {
1917
2043
  }
1918
2044
 
1919
2045
  // src/serve/authorization.ts
1920
- var import_qstash4 = require("@upstash/qstash");
2046
+ var import_qstash7 = require("@upstash/qstash");
1921
2047
  var DisabledWorkflowContext = class _DisabledWorkflowContext extends WorkflowContext {
1922
2048
  static disabledMessage = "disabled-qstash-worklfow-run";
1923
2049
  /**
@@ -1948,7 +2074,7 @@ var DisabledWorkflowContext = class _DisabledWorkflowContext extends WorkflowCon
1948
2074
  */
1949
2075
  static async tryAuthentication(routeFunction, context) {
1950
2076
  const disabledContext = new _DisabledWorkflowContext({
1951
- qstashClient: new import_qstash4.Client({
2077
+ qstashClient: new import_qstash7.Client({
1952
2078
  baseUrl: "disabled-client",
1953
2079
  token: "disabled-client"
1954
2080
  }),
@@ -2162,15 +2288,15 @@ var handleFailure = async (request, requestPayload, qstashClient, initialPayload
2162
2288
  };
2163
2289
 
2164
2290
  // src/serve/options.ts
2165
- var import_qstash5 = require("@upstash/qstash");
2166
- var import_qstash6 = require("@upstash/qstash");
2291
+ var import_qstash8 = require("@upstash/qstash");
2292
+ var import_qstash9 = require("@upstash/qstash");
2167
2293
  var processOptions = (options) => {
2168
2294
  const environment = options?.env ?? (typeof process === "undefined" ? {} : process.env);
2169
2295
  const receiverEnvironmentVariablesSet = Boolean(
2170
2296
  environment.QSTASH_CURRENT_SIGNING_KEY && environment.QSTASH_NEXT_SIGNING_KEY
2171
2297
  );
2172
2298
  return {
2173
- qstashClient: new import_qstash6.Client({
2299
+ qstashClient: new import_qstash9.Client({
2174
2300
  baseUrl: environment.QSTASH_URL,
2175
2301
  token: environment.QSTASH_TOKEN
2176
2302
  }),
@@ -2204,7 +2330,7 @@ var processOptions = (options) => {
2204
2330
  throw error;
2205
2331
  }
2206
2332
  },
2207
- receiver: receiverEnvironmentVariablesSet ? new import_qstash5.Receiver({
2333
+ receiver: receiverEnvironmentVariablesSet ? new import_qstash8.Receiver({
2208
2334
  currentSigningKey: environment.QSTASH_CURRENT_SIGNING_KEY,
2209
2335
  nextSigningKey: environment.QSTASH_NEXT_SIGNING_KEY
2210
2336
  }) : void 0,
package/cloudflare.mjs CHANGED
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  serveBase
3
- } from "./chunk-Z7WS5XIR.mjs";
3
+ } from "./chunk-QBJ3LQIO.mjs";
4
4
 
5
5
  // platforms/cloudflare.ts
6
6
  var getArgs = (args) => {
package/express.d.mts CHANGED
@@ -1,4 +1,4 @@
1
- import { R as RouteFunction, W as WorkflowServeOptions } from './types-APRap-aV.mjs';
1
+ import { R as RouteFunction, W as WorkflowServeOptions } from './types-R9q4MUwl.mjs';
2
2
  import { Router } from 'express';
3
3
  import '@upstash/qstash';
4
4
 
package/express.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { R as RouteFunction, W as WorkflowServeOptions } from './types-APRap-aV.js';
1
+ import { R as RouteFunction, W as WorkflowServeOptions } from './types-R9q4MUwl.js';
2
2
  import { Router } from 'express';
3
3
  import '@upstash/qstash';
4
4