@upstash/workflow 0.1.2-canary-astro → 0.1.2-omit-errors
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 +1 -1
- package/astro.d.ts +1 -1
- package/astro.js +76 -44
- package/astro.mjs +1 -1
- package/{chunk-EKVRVBHL.mjs → chunk-ZPVH5ACW.mjs} +70 -38
- package/cloudflare.d.mts +1 -1
- package/cloudflare.d.ts +1 -1
- package/cloudflare.js +76 -44
- package/cloudflare.mjs +1 -1
- package/h3.d.mts +1 -1
- package/h3.d.ts +1 -1
- package/h3.js +76 -44
- package/h3.mjs +1 -1
- package/hono.d.mts +1 -1
- package/hono.d.ts +1 -1
- package/hono.js +76 -44
- package/hono.mjs +1 -1
- package/index.d.mts +2 -2
- package/index.d.ts +2 -2
- package/index.js +77 -45
- package/index.mjs +1 -1
- package/nextjs.d.mts +1 -1
- package/nextjs.d.ts +1 -1
- package/nextjs.js +76 -44
- package/nextjs.mjs +1 -1
- package/package.json +1 -1
- package/solidjs.d.mts +1 -1
- package/solidjs.d.ts +1 -1
- package/solidjs.js +76 -44
- package/solidjs.mjs +1 -1
- package/svelte.d.mts +1 -1
- package/svelte.d.ts +1 -1
- package/svelte.js +76 -44
- package/svelte.mjs +1 -1
- package/{types-p7sxktVE.d.mts → types-CI-2skYU.d.mts} +5 -4
- package/{types-p7sxktVE.d.ts → types-CI-2skYU.d.ts} +5 -4
package/astro.d.mts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { APIContext, APIRoute } from 'astro';
|
|
2
|
-
import { b as WorkflowContext, W as WorkflowServeOptions } from './types-
|
|
2
|
+
import { b as WorkflowContext, W as WorkflowServeOptions } from './types-CI-2skYU.mjs';
|
|
3
3
|
import '@upstash/qstash';
|
|
4
4
|
|
|
5
5
|
declare function serve<TInitialPayload = unknown>(routeFunction: (workflowContext: WorkflowContext<TInitialPayload>, apiContext: APIContext) => Promise<void>, options?: Omit<WorkflowServeOptions<Response, TInitialPayload>, "onStepFinish">): {
|
package/astro.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { APIContext, APIRoute } from 'astro';
|
|
2
|
-
import { b as WorkflowContext, W as WorkflowServeOptions } from './types-
|
|
2
|
+
import { b as WorkflowContext, W as WorkflowServeOptions } from './types-CI-2skYU.js';
|
|
3
3
|
import '@upstash/qstash';
|
|
4
4
|
|
|
5
5
|
declare function serve<TInitialPayload = unknown>(routeFunction: (workflowContext: WorkflowContext<TInitialPayload>, apiContext: APIContext) => Promise<void>, options?: Omit<WorkflowServeOptions<Response, TInitialPayload>, "onStepFinish">): {
|
package/astro.js
CHANGED
|
@@ -493,6 +493,7 @@ var StepTypes = [
|
|
|
493
493
|
];
|
|
494
494
|
|
|
495
495
|
// src/workflow-requests.ts
|
|
496
|
+
var import_qstash2 = require("@upstash/qstash");
|
|
496
497
|
var triggerFirstInvocation = async (workflowContext, retries, debug) => {
|
|
497
498
|
const { headers } = getHeaders(
|
|
498
499
|
"true",
|
|
@@ -503,27 +504,37 @@ var triggerFirstInvocation = async (workflowContext, retries, debug) => {
|
|
|
503
504
|
workflowContext.failureUrl,
|
|
504
505
|
retries
|
|
505
506
|
);
|
|
506
|
-
await debug?.log("SUBMIT", "SUBMIT_FIRST_INVOCATION", {
|
|
507
|
-
headers,
|
|
508
|
-
requestPayload: workflowContext.requestPayload,
|
|
509
|
-
url: workflowContext.url
|
|
510
|
-
});
|
|
511
507
|
try {
|
|
512
|
-
await workflowContext.qstashClient.publishJSON({
|
|
508
|
+
const result = await workflowContext.qstashClient.publishJSON({
|
|
513
509
|
headers,
|
|
514
510
|
method: "POST",
|
|
515
511
|
body: workflowContext.requestPayload,
|
|
516
512
|
url: workflowContext.url
|
|
517
513
|
});
|
|
514
|
+
await debug?.log("SUBMIT", "SUBMIT_FIRST_INVOCATION", {
|
|
515
|
+
headers,
|
|
516
|
+
requestPayload: workflowContext.requestPayload,
|
|
517
|
+
url: workflowContext.url,
|
|
518
|
+
messageId: result.messageId
|
|
519
|
+
});
|
|
518
520
|
return ok("success");
|
|
519
521
|
} catch (error) {
|
|
520
522
|
const error_ = error;
|
|
523
|
+
if (error instanceof import_qstash2.QstashError && error.message.includes("a workflow already exists, can not initialize a new one with same id")) {
|
|
524
|
+
await debug?.log("WARN", "SUBMIT_FIRST_INVOCATION", {
|
|
525
|
+
message: `Workflow run ${workflowContext.workflowRunId} already exists.`,
|
|
526
|
+
name: error.name,
|
|
527
|
+
originalMessage: error.message
|
|
528
|
+
});
|
|
529
|
+
return ok("workflow-run-already-exists");
|
|
530
|
+
}
|
|
521
531
|
return err(error_);
|
|
522
532
|
}
|
|
523
533
|
};
|
|
524
534
|
var triggerRouteFunction = async ({
|
|
525
535
|
onCleanup,
|
|
526
|
-
onStep
|
|
536
|
+
onStep,
|
|
537
|
+
debug
|
|
527
538
|
}) => {
|
|
528
539
|
try {
|
|
529
540
|
await onStep();
|
|
@@ -531,6 +542,14 @@ var triggerRouteFunction = async ({
|
|
|
531
542
|
return ok("workflow-finished");
|
|
532
543
|
} catch (error) {
|
|
533
544
|
const error_ = error;
|
|
545
|
+
if (error instanceof import_qstash2.QstashError && error.message.includes("can not append to a a cancelled workflow")) {
|
|
546
|
+
await debug?.log("WARN", "RESPONSE_WORKFLOW", {
|
|
547
|
+
message: `tried to append to a cancelled workflow. exiting without publishing.`,
|
|
548
|
+
name: error.name,
|
|
549
|
+
originalMessage: error.message
|
|
550
|
+
});
|
|
551
|
+
return ok("workflow-was-finished");
|
|
552
|
+
}
|
|
534
553
|
return error_ instanceof QStashWorkflowAbort ? ok("step-finished") : err(error_);
|
|
535
554
|
}
|
|
536
555
|
};
|
|
@@ -538,12 +557,29 @@ var triggerWorkflowDelete = async (workflowContext, debug, cancel = false) => {
|
|
|
538
557
|
await debug?.log("SUBMIT", "SUBMIT_CLEANUP", {
|
|
539
558
|
deletedWorkflowRunId: workflowContext.workflowRunId
|
|
540
559
|
});
|
|
541
|
-
|
|
542
|
-
|
|
543
|
-
|
|
544
|
-
|
|
545
|
-
|
|
546
|
-
|
|
560
|
+
try {
|
|
561
|
+
await workflowContext.qstashClient.http.request({
|
|
562
|
+
path: ["v2", "workflows", "runs", `${workflowContext.workflowRunId}?cancel=${cancel}`],
|
|
563
|
+
method: "DELETE",
|
|
564
|
+
parseResponseAsJson: false
|
|
565
|
+
});
|
|
566
|
+
await debug?.log(
|
|
567
|
+
"SUBMIT",
|
|
568
|
+
"SUBMIT_CLEANUP",
|
|
569
|
+
`workflow run ${workflowContext.workflowRunId} deleted.`
|
|
570
|
+
);
|
|
571
|
+
return { deleted: true };
|
|
572
|
+
} catch (error) {
|
|
573
|
+
if (error instanceof import_qstash2.QstashError && error.message.includes(`workflowRun ${workflowContext.workflowRunId} not found`)) {
|
|
574
|
+
await debug?.log("WARN", "SUBMIT_CLEANUP", {
|
|
575
|
+
message: `Failed to remove workflow run ${workflowContext.workflowRunId} as it doesn't exist.`,
|
|
576
|
+
name: error.name,
|
|
577
|
+
originalMessage: error.message
|
|
578
|
+
});
|
|
579
|
+
return { deleted: false };
|
|
580
|
+
}
|
|
581
|
+
throw error;
|
|
582
|
+
}
|
|
547
583
|
};
|
|
548
584
|
var recreateUserHeaders = (headers) => {
|
|
549
585
|
const filteredHeaders = new Headers();
|
|
@@ -1681,7 +1717,8 @@ var WorkflowLogger = class _WorkflowLogger {
|
|
|
1681
1717
|
}
|
|
1682
1718
|
writeToConsole(logEntry) {
|
|
1683
1719
|
const JSON_SPACING = 2;
|
|
1684
|
-
console.
|
|
1720
|
+
const logMethod = logEntry.logLevel === "ERROR" ? console.error : logEntry.logLevel === "WARN" ? console.warn : console.log;
|
|
1721
|
+
logMethod(JSON.stringify(logEntry, void 0, JSON_SPACING));
|
|
1685
1722
|
}
|
|
1686
1723
|
shouldLog(level) {
|
|
1687
1724
|
return LOG_LEVELS.indexOf(level) >= LOG_LEVELS.indexOf(this.options.logLevel);
|
|
@@ -1725,7 +1762,7 @@ var getPayload = async (request) => {
|
|
|
1725
1762
|
return;
|
|
1726
1763
|
}
|
|
1727
1764
|
};
|
|
1728
|
-
var parsePayload =
|
|
1765
|
+
var parsePayload = (rawPayload) => {
|
|
1729
1766
|
const [encodedInitialPayload, ...encodedSteps] = JSON.parse(rawPayload);
|
|
1730
1767
|
const rawInitialPayload = decodeBase64(encodedInitialPayload.body);
|
|
1731
1768
|
const initialStep = {
|
|
@@ -1736,27 +1773,21 @@ var parsePayload = async (rawPayload, debug) => {
|
|
|
1736
1773
|
concurrent: NO_CONCURRENCY
|
|
1737
1774
|
};
|
|
1738
1775
|
const stepsToDecode = encodedSteps.filter((step) => step.callType === "step");
|
|
1739
|
-
const otherSteps =
|
|
1740
|
-
|
|
1741
|
-
|
|
1742
|
-
|
|
1743
|
-
|
|
1744
|
-
|
|
1745
|
-
|
|
1746
|
-
|
|
1747
|
-
|
|
1748
|
-
|
|
1749
|
-
}
|
|
1750
|
-
|
|
1751
|
-
|
|
1752
|
-
|
|
1753
|
-
|
|
1754
|
-
};
|
|
1755
|
-
step.out = newOut;
|
|
1756
|
-
}
|
|
1757
|
-
return step;
|
|
1758
|
-
})
|
|
1759
|
-
);
|
|
1776
|
+
const otherSteps = stepsToDecode.map((rawStep) => {
|
|
1777
|
+
const step = JSON.parse(decodeBase64(rawStep.body));
|
|
1778
|
+
try {
|
|
1779
|
+
step.out = JSON.parse(step.out);
|
|
1780
|
+
} catch {
|
|
1781
|
+
}
|
|
1782
|
+
if (step.waitEventId) {
|
|
1783
|
+
const newOut = {
|
|
1784
|
+
eventData: step.out ? decodeBase64(step.out) : void 0,
|
|
1785
|
+
timeout: step.waitTimeout ?? false
|
|
1786
|
+
};
|
|
1787
|
+
step.out = newOut;
|
|
1788
|
+
}
|
|
1789
|
+
return step;
|
|
1790
|
+
});
|
|
1760
1791
|
const steps = [initialStep, ...otherSteps];
|
|
1761
1792
|
return {
|
|
1762
1793
|
rawInitialPayload,
|
|
@@ -1828,7 +1859,7 @@ var parseRequest = async (requestPayload, isFirstInvocation, debug) => {
|
|
|
1828
1859
|
if (!requestPayload) {
|
|
1829
1860
|
throw new QStashWorkflowError("Only first call can have an empty body");
|
|
1830
1861
|
}
|
|
1831
|
-
const { rawInitialPayload, steps } =
|
|
1862
|
+
const { rawInitialPayload, steps } = parsePayload(requestPayload);
|
|
1832
1863
|
const isLastDuplicate = await checkIfLastOneIsDuplicate(steps, debug);
|
|
1833
1864
|
const deduplicatedSteps = deduplicateSteps(steps);
|
|
1834
1865
|
return {
|
|
@@ -1880,7 +1911,7 @@ var handleFailure = async (request, requestPayload, qstashClient, initialPayload
|
|
|
1880
1911
|
};
|
|
1881
1912
|
|
|
1882
1913
|
// src/serve/authorization.ts
|
|
1883
|
-
var
|
|
1914
|
+
var import_qstash3 = require("@upstash/qstash");
|
|
1884
1915
|
var DisabledWorkflowContext = class _DisabledWorkflowContext extends WorkflowContext {
|
|
1885
1916
|
static disabledMessage = "disabled-qstash-worklfow-run";
|
|
1886
1917
|
/**
|
|
@@ -1905,7 +1936,7 @@ var DisabledWorkflowContext = class _DisabledWorkflowContext extends WorkflowCon
|
|
|
1905
1936
|
*/
|
|
1906
1937
|
static async tryAuthentication(routeFunction, context) {
|
|
1907
1938
|
const disabledContext = new _DisabledWorkflowContext({
|
|
1908
|
-
qstashClient: new
|
|
1939
|
+
qstashClient: new import_qstash3.Client({
|
|
1909
1940
|
baseUrl: "disabled-client",
|
|
1910
1941
|
token: "disabled-client"
|
|
1911
1942
|
}),
|
|
@@ -1932,15 +1963,15 @@ var DisabledWorkflowContext = class _DisabledWorkflowContext extends WorkflowCon
|
|
|
1932
1963
|
};
|
|
1933
1964
|
|
|
1934
1965
|
// src/serve/options.ts
|
|
1935
|
-
var import_qstash3 = require("@upstash/qstash");
|
|
1936
1966
|
var import_qstash4 = require("@upstash/qstash");
|
|
1967
|
+
var import_qstash5 = require("@upstash/qstash");
|
|
1937
1968
|
var processOptions = (options) => {
|
|
1938
1969
|
const environment = options?.env ?? (typeof process === "undefined" ? {} : process.env);
|
|
1939
1970
|
const receiverEnvironmentVariablesSet = Boolean(
|
|
1940
1971
|
environment.QSTASH_CURRENT_SIGNING_KEY && environment.QSTASH_NEXT_SIGNING_KEY
|
|
1941
1972
|
);
|
|
1942
1973
|
return {
|
|
1943
|
-
qstashClient: new
|
|
1974
|
+
qstashClient: new import_qstash5.Client({
|
|
1944
1975
|
baseUrl: environment.QSTASH_URL,
|
|
1945
1976
|
token: environment.QSTASH_TOKEN
|
|
1946
1977
|
}),
|
|
@@ -1961,7 +1992,7 @@ var processOptions = (options) => {
|
|
|
1961
1992
|
throw error;
|
|
1962
1993
|
}
|
|
1963
1994
|
},
|
|
1964
|
-
receiver: receiverEnvironmentVariablesSet ? new
|
|
1995
|
+
receiver: receiverEnvironmentVariablesSet ? new import_qstash4.Receiver({
|
|
1965
1996
|
currentSigningKey: environment.QSTASH_CURRENT_SIGNING_KEY,
|
|
1966
1997
|
nextSigningKey: environment.QSTASH_NEXT_SIGNING_KEY
|
|
1967
1998
|
}) : void 0,
|
|
@@ -2083,7 +2114,8 @@ var serve = (routeFunction, options) => {
|
|
|
2083
2114
|
onStep: async () => routeFunction(workflowContext),
|
|
2084
2115
|
onCleanup: async () => {
|
|
2085
2116
|
await triggerWorkflowDelete(workflowContext, debug);
|
|
2086
|
-
}
|
|
2117
|
+
},
|
|
2118
|
+
debug
|
|
2087
2119
|
});
|
|
2088
2120
|
if (result.isErr()) {
|
|
2089
2121
|
await debug?.log("ERROR", "ERROR", { error: result.error.message });
|
|
@@ -2109,7 +2141,7 @@ var serve = (routeFunction, options) => {
|
|
|
2109
2141
|
};
|
|
2110
2142
|
|
|
2111
2143
|
// src/client/index.ts
|
|
2112
|
-
var
|
|
2144
|
+
var import_qstash6 = require("@upstash/qstash");
|
|
2113
2145
|
|
|
2114
2146
|
// platforms/astro.ts
|
|
2115
2147
|
function serve2(routeFunction, options) {
|
package/astro.mjs
CHANGED
|
@@ -467,6 +467,7 @@ var StepTypes = [
|
|
|
467
467
|
];
|
|
468
468
|
|
|
469
469
|
// src/workflow-requests.ts
|
|
470
|
+
import { QstashError as QstashError2 } from "@upstash/qstash";
|
|
470
471
|
var triggerFirstInvocation = async (workflowContext, retries, debug) => {
|
|
471
472
|
const { headers } = getHeaders(
|
|
472
473
|
"true",
|
|
@@ -477,27 +478,37 @@ var triggerFirstInvocation = async (workflowContext, retries, debug) => {
|
|
|
477
478
|
workflowContext.failureUrl,
|
|
478
479
|
retries
|
|
479
480
|
);
|
|
480
|
-
await debug?.log("SUBMIT", "SUBMIT_FIRST_INVOCATION", {
|
|
481
|
-
headers,
|
|
482
|
-
requestPayload: workflowContext.requestPayload,
|
|
483
|
-
url: workflowContext.url
|
|
484
|
-
});
|
|
485
481
|
try {
|
|
486
|
-
await workflowContext.qstashClient.publishJSON({
|
|
482
|
+
const result = await workflowContext.qstashClient.publishJSON({
|
|
487
483
|
headers,
|
|
488
484
|
method: "POST",
|
|
489
485
|
body: workflowContext.requestPayload,
|
|
490
486
|
url: workflowContext.url
|
|
491
487
|
});
|
|
488
|
+
await debug?.log("SUBMIT", "SUBMIT_FIRST_INVOCATION", {
|
|
489
|
+
headers,
|
|
490
|
+
requestPayload: workflowContext.requestPayload,
|
|
491
|
+
url: workflowContext.url,
|
|
492
|
+
messageId: result.messageId
|
|
493
|
+
});
|
|
492
494
|
return ok("success");
|
|
493
495
|
} catch (error) {
|
|
494
496
|
const error_ = error;
|
|
497
|
+
if (error instanceof QstashError2 && error.message.includes("a workflow already exists, can not initialize a new one with same id")) {
|
|
498
|
+
await debug?.log("WARN", "SUBMIT_FIRST_INVOCATION", {
|
|
499
|
+
message: `Workflow run ${workflowContext.workflowRunId} already exists.`,
|
|
500
|
+
name: error.name,
|
|
501
|
+
originalMessage: error.message
|
|
502
|
+
});
|
|
503
|
+
return ok("workflow-run-already-exists");
|
|
504
|
+
}
|
|
495
505
|
return err(error_);
|
|
496
506
|
}
|
|
497
507
|
};
|
|
498
508
|
var triggerRouteFunction = async ({
|
|
499
509
|
onCleanup,
|
|
500
|
-
onStep
|
|
510
|
+
onStep,
|
|
511
|
+
debug
|
|
501
512
|
}) => {
|
|
502
513
|
try {
|
|
503
514
|
await onStep();
|
|
@@ -505,6 +516,14 @@ var triggerRouteFunction = async ({
|
|
|
505
516
|
return ok("workflow-finished");
|
|
506
517
|
} catch (error) {
|
|
507
518
|
const error_ = error;
|
|
519
|
+
if (error instanceof QstashError2 && error.message.includes("can not append to a a cancelled workflow")) {
|
|
520
|
+
await debug?.log("WARN", "RESPONSE_WORKFLOW", {
|
|
521
|
+
message: `tried to append to a cancelled workflow. exiting without publishing.`,
|
|
522
|
+
name: error.name,
|
|
523
|
+
originalMessage: error.message
|
|
524
|
+
});
|
|
525
|
+
return ok("workflow-was-finished");
|
|
526
|
+
}
|
|
508
527
|
return error_ instanceof QStashWorkflowAbort ? ok("step-finished") : err(error_);
|
|
509
528
|
}
|
|
510
529
|
};
|
|
@@ -512,12 +531,29 @@ var triggerWorkflowDelete = async (workflowContext, debug, cancel = false) => {
|
|
|
512
531
|
await debug?.log("SUBMIT", "SUBMIT_CLEANUP", {
|
|
513
532
|
deletedWorkflowRunId: workflowContext.workflowRunId
|
|
514
533
|
});
|
|
515
|
-
|
|
516
|
-
|
|
517
|
-
|
|
518
|
-
|
|
519
|
-
|
|
520
|
-
|
|
534
|
+
try {
|
|
535
|
+
await workflowContext.qstashClient.http.request({
|
|
536
|
+
path: ["v2", "workflows", "runs", `${workflowContext.workflowRunId}?cancel=${cancel}`],
|
|
537
|
+
method: "DELETE",
|
|
538
|
+
parseResponseAsJson: false
|
|
539
|
+
});
|
|
540
|
+
await debug?.log(
|
|
541
|
+
"SUBMIT",
|
|
542
|
+
"SUBMIT_CLEANUP",
|
|
543
|
+
`workflow run ${workflowContext.workflowRunId} deleted.`
|
|
544
|
+
);
|
|
545
|
+
return { deleted: true };
|
|
546
|
+
} catch (error) {
|
|
547
|
+
if (error instanceof QstashError2 && error.message.includes(`workflowRun ${workflowContext.workflowRunId} not found`)) {
|
|
548
|
+
await debug?.log("WARN", "SUBMIT_CLEANUP", {
|
|
549
|
+
message: `Failed to remove workflow run ${workflowContext.workflowRunId} as it doesn't exist.`,
|
|
550
|
+
name: error.name,
|
|
551
|
+
originalMessage: error.message
|
|
552
|
+
});
|
|
553
|
+
return { deleted: false };
|
|
554
|
+
}
|
|
555
|
+
throw error;
|
|
556
|
+
}
|
|
521
557
|
};
|
|
522
558
|
var recreateUserHeaders = (headers) => {
|
|
523
559
|
const filteredHeaders = new Headers();
|
|
@@ -1662,7 +1698,8 @@ var WorkflowLogger = class _WorkflowLogger {
|
|
|
1662
1698
|
}
|
|
1663
1699
|
writeToConsole(logEntry) {
|
|
1664
1700
|
const JSON_SPACING = 2;
|
|
1665
|
-
console.
|
|
1701
|
+
const logMethod = logEntry.logLevel === "ERROR" ? console.error : logEntry.logLevel === "WARN" ? console.warn : console.log;
|
|
1702
|
+
logMethod(JSON.stringify(logEntry, void 0, JSON_SPACING));
|
|
1666
1703
|
}
|
|
1667
1704
|
shouldLog(level) {
|
|
1668
1705
|
return LOG_LEVELS.indexOf(level) >= LOG_LEVELS.indexOf(this.options.logLevel);
|
|
@@ -1706,7 +1743,7 @@ var getPayload = async (request) => {
|
|
|
1706
1743
|
return;
|
|
1707
1744
|
}
|
|
1708
1745
|
};
|
|
1709
|
-
var parsePayload =
|
|
1746
|
+
var parsePayload = (rawPayload) => {
|
|
1710
1747
|
const [encodedInitialPayload, ...encodedSteps] = JSON.parse(rawPayload);
|
|
1711
1748
|
const rawInitialPayload = decodeBase64(encodedInitialPayload.body);
|
|
1712
1749
|
const initialStep = {
|
|
@@ -1717,27 +1754,21 @@ var parsePayload = async (rawPayload, debug) => {
|
|
|
1717
1754
|
concurrent: NO_CONCURRENCY
|
|
1718
1755
|
};
|
|
1719
1756
|
const stepsToDecode = encodedSteps.filter((step) => step.callType === "step");
|
|
1720
|
-
const otherSteps =
|
|
1721
|
-
|
|
1722
|
-
|
|
1723
|
-
|
|
1724
|
-
|
|
1725
|
-
|
|
1726
|
-
|
|
1727
|
-
|
|
1728
|
-
|
|
1729
|
-
|
|
1730
|
-
}
|
|
1731
|
-
|
|
1732
|
-
|
|
1733
|
-
|
|
1734
|
-
|
|
1735
|
-
};
|
|
1736
|
-
step.out = newOut;
|
|
1737
|
-
}
|
|
1738
|
-
return step;
|
|
1739
|
-
})
|
|
1740
|
-
);
|
|
1757
|
+
const otherSteps = stepsToDecode.map((rawStep) => {
|
|
1758
|
+
const step = JSON.parse(decodeBase64(rawStep.body));
|
|
1759
|
+
try {
|
|
1760
|
+
step.out = JSON.parse(step.out);
|
|
1761
|
+
} catch {
|
|
1762
|
+
}
|
|
1763
|
+
if (step.waitEventId) {
|
|
1764
|
+
const newOut = {
|
|
1765
|
+
eventData: step.out ? decodeBase64(step.out) : void 0,
|
|
1766
|
+
timeout: step.waitTimeout ?? false
|
|
1767
|
+
};
|
|
1768
|
+
step.out = newOut;
|
|
1769
|
+
}
|
|
1770
|
+
return step;
|
|
1771
|
+
});
|
|
1741
1772
|
const steps = [initialStep, ...otherSteps];
|
|
1742
1773
|
return {
|
|
1743
1774
|
rawInitialPayload,
|
|
@@ -1809,7 +1840,7 @@ var parseRequest = async (requestPayload, isFirstInvocation, debug) => {
|
|
|
1809
1840
|
if (!requestPayload) {
|
|
1810
1841
|
throw new QStashWorkflowError("Only first call can have an empty body");
|
|
1811
1842
|
}
|
|
1812
|
-
const { rawInitialPayload, steps } =
|
|
1843
|
+
const { rawInitialPayload, steps } = parsePayload(requestPayload);
|
|
1813
1844
|
const isLastDuplicate = await checkIfLastOneIsDuplicate(steps, debug);
|
|
1814
1845
|
const deduplicatedSteps = deduplicateSteps(steps);
|
|
1815
1846
|
return {
|
|
@@ -2064,7 +2095,8 @@ var serve = (routeFunction, options) => {
|
|
|
2064
2095
|
onStep: async () => routeFunction(workflowContext),
|
|
2065
2096
|
onCleanup: async () => {
|
|
2066
2097
|
await triggerWorkflowDelete(workflowContext, debug);
|
|
2067
|
-
}
|
|
2098
|
+
},
|
|
2099
|
+
debug
|
|
2068
2100
|
});
|
|
2069
2101
|
if (result.isErr()) {
|
|
2070
2102
|
await debug?.log("ERROR", "ERROR", { error: result.error.message });
|
package/cloudflare.d.mts
CHANGED
package/cloudflare.d.ts
CHANGED