@upstash/workflow 0.1.1 → 0.1.2-canary-astro
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/README.md +4 -4
- package/astro.d.mts +9 -0
- package/astro.d.ts +9 -0
- package/astro.js +2128 -0
- package/astro.mjs +18 -0
- package/{chunk-XPMFG3Q4.mjs → chunk-EKVRVBHL.mjs} +35 -21
- package/cloudflare.js +35 -21
- package/cloudflare.mjs +1 -1
- package/h3.js +38 -21
- package/h3.mjs +4 -1
- package/hono.js +35 -21
- package/hono.mjs +1 -1
- package/index.js +35 -21
- package/index.mjs +1 -1
- package/nextjs.js +35 -21
- package/nextjs.mjs +1 -1
- package/package.json +1 -1
- package/solidjs.js +35 -21
- package/solidjs.mjs +1 -1
- package/svelte.js +35 -21
- package/svelte.mjs +1 -1
package/nextjs.js
CHANGED
|
@@ -600,15 +600,16 @@ ${atob(callbackMessage.body)}`
|
|
|
600
600
|
failureUrl,
|
|
601
601
|
retries
|
|
602
602
|
);
|
|
603
|
+
const callResponse = {
|
|
604
|
+
status: callbackMessage.status,
|
|
605
|
+
body: atob(callbackMessage.body),
|
|
606
|
+
header: callbackMessage.header
|
|
607
|
+
};
|
|
603
608
|
const callResultStep = {
|
|
604
609
|
stepId: Number(stepIdString),
|
|
605
610
|
stepName,
|
|
606
611
|
stepType,
|
|
607
|
-
out:
|
|
608
|
-
status: callbackMessage.status,
|
|
609
|
-
body: atob(callbackMessage.body),
|
|
610
|
-
header: callbackMessage.header
|
|
611
|
-
},
|
|
612
|
+
out: JSON.stringify(callResponse),
|
|
612
613
|
concurrent: Number(concurrentString)
|
|
613
614
|
};
|
|
614
615
|
await debug?.log("SUBMIT", "SUBMIT_THIRD_PARTY_RESULT", {
|
|
@@ -642,10 +643,11 @@ var getHeaders = (initHeaderValue, workflowRunId, workflowUrl, userHeaders, step
|
|
|
642
643
|
const baseHeaders = {
|
|
643
644
|
[WORKFLOW_INIT_HEADER]: initHeaderValue,
|
|
644
645
|
[WORKFLOW_ID_HEADER]: workflowRunId,
|
|
645
|
-
[WORKFLOW_URL_HEADER]: workflowUrl
|
|
646
|
-
[WORKFLOW_FEATURE_HEADER]: "WF_NoDelete",
|
|
647
|
-
[`Upstash-Forward-${WORKFLOW_PROTOCOL_VERSION_HEADER}`]: WORKFLOW_PROTOCOL_VERSION
|
|
646
|
+
[WORKFLOW_URL_HEADER]: workflowUrl
|
|
648
647
|
};
|
|
648
|
+
if (!step?.callUrl) {
|
|
649
|
+
baseHeaders[`Upstash-Forward-${WORKFLOW_PROTOCOL_VERSION_HEADER}`] = WORKFLOW_PROTOCOL_VERSION;
|
|
650
|
+
}
|
|
649
651
|
if (failureUrl) {
|
|
650
652
|
if (!step?.callUrl) {
|
|
651
653
|
baseHeaders[`Upstash-Failure-Callback-Forward-${WORKFLOW_FAILURE_HEADER}`] = "true";
|
|
@@ -654,6 +656,7 @@ var getHeaders = (initHeaderValue, workflowRunId, workflowUrl, userHeaders, step
|
|
|
654
656
|
}
|
|
655
657
|
if (step?.callUrl) {
|
|
656
658
|
baseHeaders["Upstash-Retries"] = "0";
|
|
659
|
+
baseHeaders[WORKFLOW_FEATURE_HEADER] = "WF_NoDelete";
|
|
657
660
|
if (retries) {
|
|
658
661
|
baseHeaders["Upstash-Callback-Retries"] = retries.toString();
|
|
659
662
|
baseHeaders["Upstash-Failure-Callback-Retries"] = retries.toString();
|
|
@@ -1017,6 +1020,7 @@ var AutoExecutor = class _AutoExecutor {
|
|
|
1017
1020
|
this.context.retries
|
|
1018
1021
|
);
|
|
1019
1022
|
const willWait = singleStep.concurrent === NO_CONCURRENCY || singleStep.stepId === 0;
|
|
1023
|
+
singleStep.out = JSON.stringify(singleStep.out);
|
|
1020
1024
|
return singleStep.callUrl ? (
|
|
1021
1025
|
// if the step is a third party call, we call the third party
|
|
1022
1026
|
// url (singleStep.callUrl) and pass information about the workflow
|
|
@@ -1722,7 +1726,7 @@ var getPayload = async (request) => {
|
|
|
1722
1726
|
return;
|
|
1723
1727
|
}
|
|
1724
1728
|
};
|
|
1725
|
-
var parsePayload = (rawPayload) => {
|
|
1729
|
+
var parsePayload = async (rawPayload, debug) => {
|
|
1726
1730
|
const [encodedInitialPayload, ...encodedSteps] = JSON.parse(rawPayload);
|
|
1727
1731
|
const rawInitialPayload = decodeBase64(encodedInitialPayload.body);
|
|
1728
1732
|
const initialStep = {
|
|
@@ -1733,17 +1737,27 @@ var parsePayload = (rawPayload) => {
|
|
|
1733
1737
|
concurrent: NO_CONCURRENCY
|
|
1734
1738
|
};
|
|
1735
1739
|
const stepsToDecode = encodedSteps.filter((step) => step.callType === "step");
|
|
1736
|
-
const otherSteps =
|
|
1737
|
-
|
|
1738
|
-
|
|
1739
|
-
|
|
1740
|
-
|
|
1741
|
-
|
|
1742
|
-
|
|
1743
|
-
|
|
1744
|
-
|
|
1745
|
-
|
|
1746
|
-
|
|
1740
|
+
const otherSteps = await Promise.all(
|
|
1741
|
+
stepsToDecode.map(async (rawStep) => {
|
|
1742
|
+
const step = JSON.parse(decodeBase64(rawStep.body));
|
|
1743
|
+
try {
|
|
1744
|
+
step.out = JSON.parse(step.out);
|
|
1745
|
+
} catch {
|
|
1746
|
+
await debug?.log("WARN", "ENDPOINT_START", {
|
|
1747
|
+
message: "failed while parsing out field of step",
|
|
1748
|
+
step
|
|
1749
|
+
});
|
|
1750
|
+
}
|
|
1751
|
+
if (step.waitEventId) {
|
|
1752
|
+
const newOut = {
|
|
1753
|
+
eventData: step.out ? decodeBase64(step.out) : void 0,
|
|
1754
|
+
timeout: step.waitTimeout ?? false
|
|
1755
|
+
};
|
|
1756
|
+
step.out = newOut;
|
|
1757
|
+
}
|
|
1758
|
+
return step;
|
|
1759
|
+
})
|
|
1760
|
+
);
|
|
1747
1761
|
const steps = [initialStep, ...otherSteps];
|
|
1748
1762
|
return {
|
|
1749
1763
|
rawInitialPayload,
|
|
@@ -1815,7 +1829,7 @@ var parseRequest = async (requestPayload, isFirstInvocation, debug) => {
|
|
|
1815
1829
|
if (!requestPayload) {
|
|
1816
1830
|
throw new QStashWorkflowError("Only first call can have an empty body");
|
|
1817
1831
|
}
|
|
1818
|
-
const { rawInitialPayload, steps } = parsePayload(requestPayload);
|
|
1832
|
+
const { rawInitialPayload, steps } = await parsePayload(requestPayload, debug);
|
|
1819
1833
|
const isLastDuplicate = await checkIfLastOneIsDuplicate(steps, debug);
|
|
1820
1834
|
const deduplicatedSteps = deduplicateSteps(steps);
|
|
1821
1835
|
return {
|
package/nextjs.mjs
CHANGED
package/package.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"name":"@upstash/workflow","version":"v0.1.
|
|
1
|
+
{"name":"@upstash/workflow","version":"v0.1.2-canary-astro","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"}},"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":{"@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","astro":"^4.16.7","eslint":"^9.11.1","eslint-plugin-unicorn":"^55.0.0","globals":"^15.10.0","h3":"^1.12.0","hono":"^4.6.3","husky":"^9.1.6","next":"^14.2.14","prettier":"3.3.3","tsc":"^2.0.4","tsup":"^8.3.0","typescript":"5.4.5","typescript-eslint":"^8.8.0"},"dependencies":{"@upstash/qstash":"^2.7.12"},"directories":{"example":"examples"}}
|
package/solidjs.js
CHANGED
|
@@ -599,15 +599,16 @@ ${atob(callbackMessage.body)}`
|
|
|
599
599
|
failureUrl,
|
|
600
600
|
retries
|
|
601
601
|
);
|
|
602
|
+
const callResponse = {
|
|
603
|
+
status: callbackMessage.status,
|
|
604
|
+
body: atob(callbackMessage.body),
|
|
605
|
+
header: callbackMessage.header
|
|
606
|
+
};
|
|
602
607
|
const callResultStep = {
|
|
603
608
|
stepId: Number(stepIdString),
|
|
604
609
|
stepName,
|
|
605
610
|
stepType,
|
|
606
|
-
out:
|
|
607
|
-
status: callbackMessage.status,
|
|
608
|
-
body: atob(callbackMessage.body),
|
|
609
|
-
header: callbackMessage.header
|
|
610
|
-
},
|
|
611
|
+
out: JSON.stringify(callResponse),
|
|
611
612
|
concurrent: Number(concurrentString)
|
|
612
613
|
};
|
|
613
614
|
await debug?.log("SUBMIT", "SUBMIT_THIRD_PARTY_RESULT", {
|
|
@@ -641,10 +642,11 @@ var getHeaders = (initHeaderValue, workflowRunId, workflowUrl, userHeaders, step
|
|
|
641
642
|
const baseHeaders = {
|
|
642
643
|
[WORKFLOW_INIT_HEADER]: initHeaderValue,
|
|
643
644
|
[WORKFLOW_ID_HEADER]: workflowRunId,
|
|
644
|
-
[WORKFLOW_URL_HEADER]: workflowUrl
|
|
645
|
-
[WORKFLOW_FEATURE_HEADER]: "WF_NoDelete",
|
|
646
|
-
[`Upstash-Forward-${WORKFLOW_PROTOCOL_VERSION_HEADER}`]: WORKFLOW_PROTOCOL_VERSION
|
|
645
|
+
[WORKFLOW_URL_HEADER]: workflowUrl
|
|
647
646
|
};
|
|
647
|
+
if (!step?.callUrl) {
|
|
648
|
+
baseHeaders[`Upstash-Forward-${WORKFLOW_PROTOCOL_VERSION_HEADER}`] = WORKFLOW_PROTOCOL_VERSION;
|
|
649
|
+
}
|
|
648
650
|
if (failureUrl) {
|
|
649
651
|
if (!step?.callUrl) {
|
|
650
652
|
baseHeaders[`Upstash-Failure-Callback-Forward-${WORKFLOW_FAILURE_HEADER}`] = "true";
|
|
@@ -653,6 +655,7 @@ var getHeaders = (initHeaderValue, workflowRunId, workflowUrl, userHeaders, step
|
|
|
653
655
|
}
|
|
654
656
|
if (step?.callUrl) {
|
|
655
657
|
baseHeaders["Upstash-Retries"] = "0";
|
|
658
|
+
baseHeaders[WORKFLOW_FEATURE_HEADER] = "WF_NoDelete";
|
|
656
659
|
if (retries) {
|
|
657
660
|
baseHeaders["Upstash-Callback-Retries"] = retries.toString();
|
|
658
661
|
baseHeaders["Upstash-Failure-Callback-Retries"] = retries.toString();
|
|
@@ -1016,6 +1019,7 @@ var AutoExecutor = class _AutoExecutor {
|
|
|
1016
1019
|
this.context.retries
|
|
1017
1020
|
);
|
|
1018
1021
|
const willWait = singleStep.concurrent === NO_CONCURRENCY || singleStep.stepId === 0;
|
|
1022
|
+
singleStep.out = JSON.stringify(singleStep.out);
|
|
1019
1023
|
return singleStep.callUrl ? (
|
|
1020
1024
|
// if the step is a third party call, we call the third party
|
|
1021
1025
|
// url (singleStep.callUrl) and pass information about the workflow
|
|
@@ -1721,7 +1725,7 @@ var getPayload = async (request) => {
|
|
|
1721
1725
|
return;
|
|
1722
1726
|
}
|
|
1723
1727
|
};
|
|
1724
|
-
var parsePayload = (rawPayload) => {
|
|
1728
|
+
var parsePayload = async (rawPayload, debug) => {
|
|
1725
1729
|
const [encodedInitialPayload, ...encodedSteps] = JSON.parse(rawPayload);
|
|
1726
1730
|
const rawInitialPayload = decodeBase64(encodedInitialPayload.body);
|
|
1727
1731
|
const initialStep = {
|
|
@@ -1732,17 +1736,27 @@ var parsePayload = (rawPayload) => {
|
|
|
1732
1736
|
concurrent: NO_CONCURRENCY
|
|
1733
1737
|
};
|
|
1734
1738
|
const stepsToDecode = encodedSteps.filter((step) => step.callType === "step");
|
|
1735
|
-
const otherSteps =
|
|
1736
|
-
|
|
1737
|
-
|
|
1738
|
-
|
|
1739
|
-
|
|
1740
|
-
|
|
1741
|
-
|
|
1742
|
-
|
|
1743
|
-
|
|
1744
|
-
|
|
1745
|
-
|
|
1739
|
+
const otherSteps = await Promise.all(
|
|
1740
|
+
stepsToDecode.map(async (rawStep) => {
|
|
1741
|
+
const step = JSON.parse(decodeBase64(rawStep.body));
|
|
1742
|
+
try {
|
|
1743
|
+
step.out = JSON.parse(step.out);
|
|
1744
|
+
} catch {
|
|
1745
|
+
await debug?.log("WARN", "ENDPOINT_START", {
|
|
1746
|
+
message: "failed while parsing out field of step",
|
|
1747
|
+
step
|
|
1748
|
+
});
|
|
1749
|
+
}
|
|
1750
|
+
if (step.waitEventId) {
|
|
1751
|
+
const newOut = {
|
|
1752
|
+
eventData: step.out ? decodeBase64(step.out) : void 0,
|
|
1753
|
+
timeout: step.waitTimeout ?? false
|
|
1754
|
+
};
|
|
1755
|
+
step.out = newOut;
|
|
1756
|
+
}
|
|
1757
|
+
return step;
|
|
1758
|
+
})
|
|
1759
|
+
);
|
|
1746
1760
|
const steps = [initialStep, ...otherSteps];
|
|
1747
1761
|
return {
|
|
1748
1762
|
rawInitialPayload,
|
|
@@ -1814,7 +1828,7 @@ var parseRequest = async (requestPayload, isFirstInvocation, debug) => {
|
|
|
1814
1828
|
if (!requestPayload) {
|
|
1815
1829
|
throw new QStashWorkflowError("Only first call can have an empty body");
|
|
1816
1830
|
}
|
|
1817
|
-
const { rawInitialPayload, steps } = parsePayload(requestPayload);
|
|
1831
|
+
const { rawInitialPayload, steps } = await parsePayload(requestPayload, debug);
|
|
1818
1832
|
const isLastDuplicate = await checkIfLastOneIsDuplicate(steps, debug);
|
|
1819
1833
|
const deduplicatedSteps = deduplicateSteps(steps);
|
|
1820
1834
|
return {
|
package/solidjs.mjs
CHANGED
package/svelte.js
CHANGED
|
@@ -599,15 +599,16 @@ ${atob(callbackMessage.body)}`
|
|
|
599
599
|
failureUrl,
|
|
600
600
|
retries
|
|
601
601
|
);
|
|
602
|
+
const callResponse = {
|
|
603
|
+
status: callbackMessage.status,
|
|
604
|
+
body: atob(callbackMessage.body),
|
|
605
|
+
header: callbackMessage.header
|
|
606
|
+
};
|
|
602
607
|
const callResultStep = {
|
|
603
608
|
stepId: Number(stepIdString),
|
|
604
609
|
stepName,
|
|
605
610
|
stepType,
|
|
606
|
-
out:
|
|
607
|
-
status: callbackMessage.status,
|
|
608
|
-
body: atob(callbackMessage.body),
|
|
609
|
-
header: callbackMessage.header
|
|
610
|
-
},
|
|
611
|
+
out: JSON.stringify(callResponse),
|
|
611
612
|
concurrent: Number(concurrentString)
|
|
612
613
|
};
|
|
613
614
|
await debug?.log("SUBMIT", "SUBMIT_THIRD_PARTY_RESULT", {
|
|
@@ -641,10 +642,11 @@ var getHeaders = (initHeaderValue, workflowRunId, workflowUrl, userHeaders, step
|
|
|
641
642
|
const baseHeaders = {
|
|
642
643
|
[WORKFLOW_INIT_HEADER]: initHeaderValue,
|
|
643
644
|
[WORKFLOW_ID_HEADER]: workflowRunId,
|
|
644
|
-
[WORKFLOW_URL_HEADER]: workflowUrl
|
|
645
|
-
[WORKFLOW_FEATURE_HEADER]: "WF_NoDelete",
|
|
646
|
-
[`Upstash-Forward-${WORKFLOW_PROTOCOL_VERSION_HEADER}`]: WORKFLOW_PROTOCOL_VERSION
|
|
645
|
+
[WORKFLOW_URL_HEADER]: workflowUrl
|
|
647
646
|
};
|
|
647
|
+
if (!step?.callUrl) {
|
|
648
|
+
baseHeaders[`Upstash-Forward-${WORKFLOW_PROTOCOL_VERSION_HEADER}`] = WORKFLOW_PROTOCOL_VERSION;
|
|
649
|
+
}
|
|
648
650
|
if (failureUrl) {
|
|
649
651
|
if (!step?.callUrl) {
|
|
650
652
|
baseHeaders[`Upstash-Failure-Callback-Forward-${WORKFLOW_FAILURE_HEADER}`] = "true";
|
|
@@ -653,6 +655,7 @@ var getHeaders = (initHeaderValue, workflowRunId, workflowUrl, userHeaders, step
|
|
|
653
655
|
}
|
|
654
656
|
if (step?.callUrl) {
|
|
655
657
|
baseHeaders["Upstash-Retries"] = "0";
|
|
658
|
+
baseHeaders[WORKFLOW_FEATURE_HEADER] = "WF_NoDelete";
|
|
656
659
|
if (retries) {
|
|
657
660
|
baseHeaders["Upstash-Callback-Retries"] = retries.toString();
|
|
658
661
|
baseHeaders["Upstash-Failure-Callback-Retries"] = retries.toString();
|
|
@@ -1016,6 +1019,7 @@ var AutoExecutor = class _AutoExecutor {
|
|
|
1016
1019
|
this.context.retries
|
|
1017
1020
|
);
|
|
1018
1021
|
const willWait = singleStep.concurrent === NO_CONCURRENCY || singleStep.stepId === 0;
|
|
1022
|
+
singleStep.out = JSON.stringify(singleStep.out);
|
|
1019
1023
|
return singleStep.callUrl ? (
|
|
1020
1024
|
// if the step is a third party call, we call the third party
|
|
1021
1025
|
// url (singleStep.callUrl) and pass information about the workflow
|
|
@@ -1721,7 +1725,7 @@ var getPayload = async (request) => {
|
|
|
1721
1725
|
return;
|
|
1722
1726
|
}
|
|
1723
1727
|
};
|
|
1724
|
-
var parsePayload = (rawPayload) => {
|
|
1728
|
+
var parsePayload = async (rawPayload, debug) => {
|
|
1725
1729
|
const [encodedInitialPayload, ...encodedSteps] = JSON.parse(rawPayload);
|
|
1726
1730
|
const rawInitialPayload = decodeBase64(encodedInitialPayload.body);
|
|
1727
1731
|
const initialStep = {
|
|
@@ -1732,17 +1736,27 @@ var parsePayload = (rawPayload) => {
|
|
|
1732
1736
|
concurrent: NO_CONCURRENCY
|
|
1733
1737
|
};
|
|
1734
1738
|
const stepsToDecode = encodedSteps.filter((step) => step.callType === "step");
|
|
1735
|
-
const otherSteps =
|
|
1736
|
-
|
|
1737
|
-
|
|
1738
|
-
|
|
1739
|
-
|
|
1740
|
-
|
|
1741
|
-
|
|
1742
|
-
|
|
1743
|
-
|
|
1744
|
-
|
|
1745
|
-
|
|
1739
|
+
const otherSteps = await Promise.all(
|
|
1740
|
+
stepsToDecode.map(async (rawStep) => {
|
|
1741
|
+
const step = JSON.parse(decodeBase64(rawStep.body));
|
|
1742
|
+
try {
|
|
1743
|
+
step.out = JSON.parse(step.out);
|
|
1744
|
+
} catch {
|
|
1745
|
+
await debug?.log("WARN", "ENDPOINT_START", {
|
|
1746
|
+
message: "failed while parsing out field of step",
|
|
1747
|
+
step
|
|
1748
|
+
});
|
|
1749
|
+
}
|
|
1750
|
+
if (step.waitEventId) {
|
|
1751
|
+
const newOut = {
|
|
1752
|
+
eventData: step.out ? decodeBase64(step.out) : void 0,
|
|
1753
|
+
timeout: step.waitTimeout ?? false
|
|
1754
|
+
};
|
|
1755
|
+
step.out = newOut;
|
|
1756
|
+
}
|
|
1757
|
+
return step;
|
|
1758
|
+
})
|
|
1759
|
+
);
|
|
1746
1760
|
const steps = [initialStep, ...otherSteps];
|
|
1747
1761
|
return {
|
|
1748
1762
|
rawInitialPayload,
|
|
@@ -1814,7 +1828,7 @@ var parseRequest = async (requestPayload, isFirstInvocation, debug) => {
|
|
|
1814
1828
|
if (!requestPayload) {
|
|
1815
1829
|
throw new QStashWorkflowError("Only first call can have an empty body");
|
|
1816
1830
|
}
|
|
1817
|
-
const { rawInitialPayload, steps } = parsePayload(requestPayload);
|
|
1831
|
+
const { rawInitialPayload, steps } = await parsePayload(requestPayload, debug);
|
|
1818
1832
|
const isLastDuplicate = await checkIfLastOneIsDuplicate(steps, debug);
|
|
1819
1833
|
const deduplicatedSteps = deduplicateSteps(steps);
|
|
1820
1834
|
return {
|