@workflow/core 4.2.0-beta.72 → 4.2.0-beta.74
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 +1 -1
- package/dist/runtime/helpers.js +2 -2
- package/dist/runtime/suspension-handler.d.ts.map +1 -1
- package/dist/runtime/suspension-handler.js +10 -2
- package/dist/step/writable-stream.d.ts.map +1 -1
- package/dist/step/writable-stream.js +13 -4
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/dist/vm/index.d.ts.map +1 -1
- package/dist/vm/index.js +6 -1
- package/dist/vm/uint8array-base64.d.ts +21 -0
- package/dist/vm/uint8array-base64.d.ts.map +1 -0
- package/dist/vm/uint8array-base64.js +406 -0
- package/docs/api-reference/index.mdx +2 -2
- package/docs/foundations/errors-and-retries.mdx +1 -1
- package/docs/foundations/hooks.mdx +1 -1
- package/docs/foundations/serialization.mdx +2 -2
- package/docs/foundations/streaming.mdx +2 -2
- package/docs/foundations/workflows-and-steps.mdx +2 -2
- package/docs/how-it-works/code-transform.mdx +6 -6
- package/docs/how-it-works/encryption.mdx +3 -3
- package/docs/how-it-works/event-sourcing.mdx +5 -5
- package/docs/how-it-works/framework-integrations.mdx +9 -9
- package/docs/how-it-works/understanding-directives.mdx +11 -11
- package/package.json +3 -3
package/README.md
CHANGED
package/dist/runtime/helpers.js
CHANGED
|
@@ -272,7 +272,7 @@ export function withHealthCheck(handler) {
|
|
|
272
272
|
headers: HEALTH_CHECK_CORS_HEADERS,
|
|
273
273
|
});
|
|
274
274
|
}
|
|
275
|
-
return new Response(`Workflow
|
|
275
|
+
return new Response(`Workflow SDK "${url.pathname}" endpoint is healthy`, {
|
|
276
276
|
status: 200,
|
|
277
277
|
headers: {
|
|
278
278
|
'Content-Type': 'text/plain',
|
|
@@ -321,4 +321,4 @@ export function getQueueOverhead(message) {
|
|
|
321
321
|
return;
|
|
322
322
|
}
|
|
323
323
|
}
|
|
324
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ydW50aW1lL2hlbHBlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBTUEsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRXhDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDN0MsT0FBTyxLQUFLLFNBQVMsTUFBTSxzQ0FBc0MsQ0FBQztBQUNsRSxPQUFPLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFFdEMsd0RBQXdEO0FBQ3hELE1BQU0sNEJBQTRCLEdBQUcsTUFBTSxDQUFDO0FBRTVDOzs7O0dBSUc7QUFDSCxNQUFNLDBCQUEwQixHQUFHLHNCQUFzQixDQUFDO0FBRTFEOzs7O0dBSUc7QUFDSCxNQUFNLFVBQVUsb0JBQW9CLENBQUMsWUFBb0I7SUFDdkQsSUFBSSxDQUFDLDBCQUEwQixDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDO1FBQ25ELE1BQU0sSUFBSSxLQUFLLENBQ2IsMEJBQTBCLFlBQVksd0dBQXdHLENBQy9JLENBQUM7SUFDSixDQUFDO0lBQ0QsT0FBTyxrQkFBa0IsWUFBWSxFQUFvQixDQUFDO0FBQzVELENBQUM7QUFFRCxNQUFNLFVBQVUsR0FBRyxnQkFBZ0IsRUFBRSxDQUFDO0FBRXRDOztHQUVHO0FBQ0gsU0FBUyx3QkFBd0IsQ0FBQyxhQUFxQjtJQUNyRCxPQUFPLG1CQUFtQixhQUFhLEVBQUUsQ0FBQztBQUM1QyxDQUFDO0FBYUQ7OztHQUdHO0FBQ0gsTUFBTSxVQUFVLHVCQUF1QixDQUNyQyxPQUFnQjtJQUVoQixNQUFNLE1BQU0sR0FBRyx3QkFBd0IsQ0FBQyxTQUFTLENBQUMsT0FBTyxD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
|
|
324
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ydW50aW1lL2hlbHBlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBTUEsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRXhDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDN0MsT0FBTyxLQUFLLFNBQVMsTUFBTSxzQ0FBc0MsQ0FBQztBQUNsRSxPQUFPLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFFdEMsd0RBQXdEO0FBQ3hELE1BQU0sNEJBQTRCLEdBQUcsTUFBTSxDQUFDO0FBRTVDOzs7O0dBSUc7QUFDSCxNQUFNLDBCQUEwQixHQUFHLHNCQUFzQixDQUFDO0FBRTFEOzs7O0dBSUc7QUFDSCxNQUFNLFVBQVUsb0JBQW9CLENBQUMsWUFBb0I7SUFDdkQsSUFBSSxDQUFDLDBCQUEwQixDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDO1FBQ25ELE1BQU0sSUFBSSxLQUFLLENBQ2IsMEJBQTBCLFlBQVksd0dBQXdHLENBQy9JLENBQUM7SUFDSixDQUFDO0lBQ0QsT0FBTyxrQkFBa0IsWUFBWSxFQUFvQixDQUFDO0FBQzVELENBQUM7QUFFRCxNQUFNLFVBQVUsR0FBRyxnQkFBZ0IsRUFBRSxDQUFDO0FBRXRDOztHQUVHO0FBQ0gsU0FBUyx3QkFBd0IsQ0FBQyxhQUFxQjtJQUNyRCxPQUFPLG1CQUFtQixhQUFhLEVBQUUsQ0FBQztBQUM1QyxDQUFDO0FBYUQ7OztHQUdHO0FBQ0gsTUFBTSxVQUFVLHVCQUF1QixDQUNyQyxPQUFnQjtJQUVoQixNQUFNLE1BQU0sR0FBRyx3QkFBd0IsQ0FBQyxTQUFTLENBQUMsT0FBTyxD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
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"suspension-handler.d.ts","sourceRoot":"","sources":["../../src/runtime/suspension-handler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAO/C,OAAO,EAIL,KAAK,WAAW,EAChB,KAAK,KAAK,EACX,MAAM,iBAAiB,CAAC;AAEzB,OAAO,KAAK,EAIV,kBAAkB,EACnB,MAAM,cAAc,CAAC;AAwBtB,MAAM,WAAW,uBAAuB;IACtC,UAAU,EAAE,kBAAkB,CAAC;IAC/B,KAAK,EAAE,KAAK,CAAC;IACb,GAAG,EAAE,WAAW,CAAC;IACjB,IAAI,CAAC,EAAE,IAAI,CAAC;IACZ,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,uBAAuB;IACtC,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED;;;;;;;;GAQG;AACH,wBAAsB,gBAAgB,CAAC,EACrC,UAAU,EACV,KAAK,EACL,GAAG,EACH,IAAI,EACJ,SAAS,GACV,EAAE,uBAAuB,GAAG,OAAO,CAAC,uBAAuB,CAAC,
|
|
1
|
+
{"version":3,"file":"suspension-handler.d.ts","sourceRoot":"","sources":["../../src/runtime/suspension-handler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAO/C,OAAO,EAIL,KAAK,WAAW,EAChB,KAAK,KAAK,EACX,MAAM,iBAAiB,CAAC;AAEzB,OAAO,KAAK,EAIV,kBAAkB,EACnB,MAAM,cAAc,CAAC;AAwBtB,MAAM,WAAW,uBAAuB;IACtC,UAAU,EAAE,kBAAkB,CAAC;IAC/B,KAAK,EAAE,KAAK,CAAC;IACb,GAAG,EAAE,WAAW,CAAC;IACjB,IAAI,CAAC,EAAE,IAAI,CAAC;IACZ,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,uBAAuB;IACtC,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED;;;;;;;;GAQG;AACH,wBAAsB,gBAAgB,CAAC,EACrC,UAAU,EACV,KAAK,EACL,GAAG,EACH,IAAI,EACJ,SAAS,GACV,EAAE,uBAAuB,GAAG,OAAO,CAAC,uBAAuB,CAAC,CAgS5D"}
|
|
@@ -105,7 +105,15 @@ export async function handleSuspension({ suspension, world, run, span, requestId
|
|
|
105
105
|
await world.events.create(runId, hookDisposedEvent, { requestId });
|
|
106
106
|
}
|
|
107
107
|
catch (err) {
|
|
108
|
-
if (EntityConflictError.is(err)
|
|
108
|
+
if (EntityConflictError.is(err)) {
|
|
109
|
+
// Hook was already disposed by a concurrent invocation — safe to skip
|
|
110
|
+
runtimeLogger.info('Hook already disposed, skipping duplicate disposal', {
|
|
111
|
+
workflowRunId: runId,
|
|
112
|
+
correlationId: queueItem.correlationId,
|
|
113
|
+
message: err.message,
|
|
114
|
+
});
|
|
115
|
+
}
|
|
116
|
+
else if (RunExpiredError.is(err)) {
|
|
109
117
|
runtimeLogger.info('Workflow run already completed, skipping hook disposal', {
|
|
110
118
|
workflowRunId: runId,
|
|
111
119
|
correlationId: queueItem.correlationId,
|
|
@@ -255,4 +263,4 @@ export async function handleSuspension({ suspension, world, run, span, requestId
|
|
|
255
263
|
}
|
|
256
264
|
return {};
|
|
257
265
|
}
|
|
258
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3VzcGVuc2lvbi1oYW5kbGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3J1bnRpbWUvc3VzcGVuc2lvbi1oYW5kbGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUM5QyxPQUFPLEVBQ0wsbUJBQW1CLEVBQ25CLGlCQUFpQixFQUNqQixlQUFlLEdBQ2hCLE1BQU0sa0JBQWtCLENBQUM7QUFDMUIsT0FBTyxFQUdMLG9CQUFvQixHQUdyQixNQUFNLGlCQUFpQixDQUFDO0FBQ3pCLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQU83QyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQzdDLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzdELE9BQU8sS0FBSyxTQUFTLE1BQU0sc0NBQXNDLENBQUM7QUFDbEUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDeEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUU1Qzs7O0dBR0c7QUFDSCxTQUFTLG1CQUFtQixDQUMxQixZQUFvQztJQUVwQyxNQUFNLE9BQU8sR0FBMkIsRUFBRSxDQUFDO0lBQzNDLElBQUksWUFBWSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQzdCLE9BQU8sQ0FBQyxXQUFXLEdBQUcsWUFBWSxDQUFDLFdBQVcsQ0FBQztJQUNqRCxDQUFDO0lBQ0QsSUFBSSxZQUFZLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDNUIsT0FBTyxDQUFDLFVBQVUsR0FBRyxZQUFZLENBQUMsVUFBVSxDQUFDO0lBQy9DLENBQUM7SUFDRCxPQUFPLE9BQU8sQ0FBQztBQUNqQixDQUFDO0FBY0Q7Ozs7Ozs7O0dBUUc7QUFDSCxNQUFNLENBQUMsS0FBSyxVQUFVLGdCQUFnQixDQUFDLEVBQ3JDLFVB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
|
|
266
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3VzcGVuc2lvbi1oYW5kbGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3J1bnRpbWUvc3VzcGVuc2lvbi1oYW5kbGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUM5QyxPQUFPLEVBQ0wsbUJBQW1CLEVBQ25CLGlCQUFpQixFQUNqQixlQUFlLEdBQ2hCLE1BQU0sa0JBQWtCLENBQUM7QUFDMUIsT0FBTyxFQUdMLG9CQUFvQixHQUdyQixNQUFNLGlCQUFpQixDQUFDO0FBQ3pCLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQU83QyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQzdDLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzdELE9BQU8sS0FBSyxTQUFTLE1BQU0sc0NBQXNDLENBQUM7QUFDbEUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDeEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUU1Qzs7O0dBR0c7QUFDSCxTQUFTLG1CQUFtQixDQUMxQixZQUFvQztJQUVwQyxNQUFNLE9BQU8sR0FBMkIsRUFBRSxDQUFDO0lBQzNDLElBQUksWUFBWSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQzdCLE9BQU8sQ0FBQyxXQUFXLEdBQUcsWUFBWSxDQUFDLFdBQVcsQ0FBQztJQUNqRCxDQUFDO0lBQ0QsSUFBSSxZQUFZLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDNUIsT0FBTyxDQUFDLFVBQVUsR0FBRyxZQUFZLENBQUMsVUFBVSxDQUFDO0lBQy9DLENBQUM7SUFDRCxPQUFPLE9BQU8sQ0FBQztBQUNqQixDQUFDO0FBY0Q7Ozs7Ozs7O0dBUUc7QUFDSCxNQUFNLENBQUMsS0FBSyxVQUFVLGdCQUFnQixDQUFDLEVBQ3JDLFVB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
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"writable-stream.d.ts","sourceRoot":"","sources":["../../src/step/writable-stream.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"writable-stream.d.ts","sourceRoot":"","sources":["../../src/step/writable-stream.ts"],"names":[],"mappings":"AAaA;;GAEG;AACH,MAAM,WAAW,6BAA6B;IAC5C;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;;;GASG;AACH,wBAAgB,WAAW,CAAC,CAAC,GAAG,GAAG,EACjC,OAAO,GAAE,6BAAkC,GAC1C,cAAc,CAAC,CAAC,CAAC,CAkCnB"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { createFlushableState, flushablePipe, pollWritableLock, } from '../flushable-stream.js';
|
|
1
2
|
import { getExternalReducers, getSerializeStream, WorkflowServerWritableStream, } from '../serialization.js';
|
|
2
3
|
import { getWorkflowRunStreamId } from '../util.js';
|
|
3
4
|
import { contextStorage } from './context-storage.js';
|
|
@@ -21,10 +22,18 @@ export function getWritable(options = {}) {
|
|
|
21
22
|
const name = getWorkflowRunStreamId(runId, namespace);
|
|
22
23
|
// Create a transform stream that serializes chunks and pipes to the workflow server
|
|
23
24
|
const serialize = getSerializeStream(getExternalReducers(globalThis, ctx.ops, runId, ctx.encryptionKey), ctx.encryptionKey);
|
|
24
|
-
//
|
|
25
|
-
//
|
|
26
|
-
|
|
25
|
+
// Use flushable pipe so the ops promise resolves when the user releases
|
|
26
|
+
// their writer lock, not only when the stream is explicitly closed.
|
|
27
|
+
// Without this, Vercel functions hang until the runtime timeout because
|
|
28
|
+
// .pipeTo() only resolves on stream close.
|
|
29
|
+
const serverWritable = new WorkflowServerWritableStream(name, runId);
|
|
30
|
+
const state = createFlushableState();
|
|
31
|
+
ctx.ops.push(state.promise);
|
|
32
|
+
flushablePipe(serialize.readable, serverWritable, state).catch(() => {
|
|
33
|
+
// Errors are handled via state.reject
|
|
34
|
+
});
|
|
35
|
+
pollWritableLock(serialize.writable, state);
|
|
27
36
|
// Return the writable side of the transform stream
|
|
28
37
|
return serialize.writable;
|
|
29
38
|
}
|
|
30
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
39
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid3JpdGFibGUtc3RyZWFtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3N0ZXAvd3JpdGFibGUtc3RyZWFtLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxvQkFBb0IsRUFDcEIsYUFBYSxFQUNiLGdCQUFnQixHQUNqQixNQUFNLHdCQUF3QixDQUFDO0FBQ2hDLE9BQU8sRUFDTCxtQkFBbUIsRUFDbkIsa0JBQWtCLEVBQ2xCLDRCQUE0QixHQUM3QixNQUFNLHFCQUFxQixDQUFDO0FBQzdCLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUNwRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFhdEQ7Ozs7Ozs7OztHQVNHO0FBQ0gsTUFBTSxVQUFVLFdBQVcsQ0FDekIsVUFBeUMsRUFBRTtJQUUzQyxNQUFNLEdBQUcsR0FBRyxjQUFjLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDdEMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBQ1QsTUFBTSxJQUFJLEtBQUssQ0FDYix1RUFBdUUsQ0FDeEUsQ0FBQztJQUNKLENBQUM7SUFFRCxNQUFNLEVBQUUsU0FBUyxFQUFFLEdBQUcsT0FBTyxDQUFDO0lBQzlCLE1BQU0sS0FBSyxHQUFHLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxhQUFhLENBQUM7SUFDakQsTUFBTSxJQUFJLEdBQUcsc0JBQXNCLENBQUMsS0FBSyxFQUFFLFNBQVMsQ0FBQyxDQUFDO0lBRXRELG9GQUFvRjtJQUNwRixNQUFNLFNBQVMsR0FBRyxrQkFBa0IsQ0FDbEMsbUJBQW1CLENBQUMsVUFBVSxFQUFFLEdBQUcsQ0FBQyxHQUFHLEVBQUUsS0FBSyxFQUFFLEdBQUcsQ0FBQyxhQUFhLENBQUMsRUFDbEUsR0FBRyxDQUFDLGFBQWEsQ0FDbEIsQ0FBQztJQUVGLHdFQUF3RTtJQUN4RSxvRUFBb0U7SUFDcEUsd0VBQXdFO0lBQ3hFLDJDQUEyQztJQUMzQyxNQUFNLGNBQWMsR0FBRyxJQUFJLDRCQUE0QixDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQztJQUNyRSxNQUFNLEtBQUssR0FBRyxvQkFBb0IsRUFBRSxDQUFDO0lBQ3JDLEdBQUcsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUU1QixhQUFhLENBQUMsU0FBUyxDQUFDLFFBQVEsRUFBRSxjQUFjLEVBQUUsS0FBSyxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsRUFBRTtRQUNsRSxzQ0FBc0M7SUFDeEMsQ0FBQyxDQUFDLENBQUM7SUFFSCxnQkFBZ0IsQ0FBQyxTQUFTLENBQUMsUUFBUSxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBRTVDLG1EQUFtRDtJQUNuRCxPQUFPLFNBQVMsQ0FBQyxRQUFRLENBQUM7QUFDNUIsQ0FBQyJ9
|
package/dist/version.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare const version = "4.2.0-beta.
|
|
1
|
+
export declare const version = "4.2.0-beta.74";
|
|
2
2
|
//# sourceMappingURL=version.d.ts.map
|
package/dist/version.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
// Generated by genversion.
|
|
2
|
-
export const version = '4.2.0-beta.
|
|
2
|
+
export const version = '4.2.0-beta.74';
|
|
3
3
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy92ZXJzaW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLDJCQUEyQjtBQUMzQixNQUFNLENBQUMsTUFBTSxPQUFPLEdBQUcsZUFBZSxDQUFBIn0=
|
package/dist/vm/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/vm/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/vm/index.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,MAAM,CAAC;IAEb,cAAc,EAAE,MAAM,CAAC;CACxB;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,oBAAoB;;;iCAmG1B,MAAM;EAItC"}
|
package/dist/vm/index.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { runInContext, createContext as vmCreateContext } from 'node:vm';
|
|
2
2
|
import seedrandom from 'seedrandom';
|
|
3
|
+
import { installUint8ArrayBase64 } from './uint8array-base64.js';
|
|
3
4
|
import { createRandomUUID } from './uuid.js';
|
|
4
5
|
/**
|
|
5
6
|
* Creates a Node.js `vm.Context` configured to be usable for
|
|
@@ -79,6 +80,10 @@ export function createContext(options) {
|
|
|
79
80
|
g.URL = globalThis.URL;
|
|
80
81
|
g.URLSearchParams = globalThis.URLSearchParams;
|
|
81
82
|
g.structuredClone = globalThis.structuredClone;
|
|
83
|
+
g.atob = globalThis.atob;
|
|
84
|
+
g.btoa = globalThis.btoa;
|
|
85
|
+
// TC39 Uint8Array base64/hex polyfill (proposal-arraybuffer-base64)
|
|
86
|
+
installUint8ArrayBase64(g.Uint8Array);
|
|
82
87
|
// TC39 Explicit Resource Management polyfill for `using` keyword
|
|
83
88
|
g.Symbol.dispose ??= Symbol.for('Symbol.dispose');
|
|
84
89
|
g.Symbol.asyncDispose ??= Symbol.for('Symbol.asyncDispose');
|
|
@@ -93,4 +98,4 @@ export function createContext(options) {
|
|
|
93
98
|
},
|
|
94
99
|
};
|
|
95
100
|
}
|
|
96
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
101
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdm0vaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxhQUFhLElBQUksZUFBZSxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBQ3pFLE9BQU8sVUFBVSxNQUFNLFlBQVksQ0FBQztBQUNwQyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNqRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFRN0M7Ozs7OztHQU1HO0FBQ0gsTUFBTSxVQUFVLGFBQWEsQ0FBQyxPQUE2QjtJQUN6RCxJQUFJLEVBQUUsY0FBYyxFQUFFLEdBQUcsT0FBTyxDQUFDO0lBQ2pDLE1BQU0sRUFBRSxJQUFJLEVBQUUsR0FBRyxPQUFPLENBQUM7SUFDekIsTUFBTSxHQUFHLEdBQUcsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzdCLE1BQU0sT0FBTyxHQUFHLGVBQWUsRUFBRSxDQUFDO0lBRWxDLE1BQU0sQ0FBQyxHQUFzQixZQUFZLENBQUMsWUFBWSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBRWpFLGdDQUFnQztJQUNoQyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxHQUFHLENBQUM7SUFFcEIsaUZBQWlGO0lBQ2pGLE1BQU0sS0FBSyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUM7SUFDckIsNkhBQTZIO0lBQzVILENBQVMsQ0FBQyxJQUFJLEdBQUcsU0FBUyxJQUFJLENBQzdCLEdBQUcsSUFBK0M7UUFFbEQsSUFBSSxJQUFJLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ3RCLE9BQU8sSUFBSSxLQUFLLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDbkMsQ0FBQztRQUNELDBEQUEwRDtRQUMxRCxPQUFPLElBQUksS0FBSyxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUM7SUFDNUIsQ0FBQyxD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
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Polyfill for the TC39 Uint8Array base64/hex proposal (Stage 4).
|
|
3
|
+
*
|
|
4
|
+
* Implements:
|
|
5
|
+
* - Uint8Array.prototype.toBase64([options])
|
|
6
|
+
* - Uint8Array.prototype.toHex()
|
|
7
|
+
* - Uint8Array.fromBase64(string[, options])
|
|
8
|
+
* - Uint8Array.fromHex(string)
|
|
9
|
+
* - Uint8Array.prototype.setFromBase64(string[, options])
|
|
10
|
+
* - Uint8Array.prototype.setFromHex(string)
|
|
11
|
+
*
|
|
12
|
+
* @see https://tc39.es/proposal-arraybuffer-base64/spec/
|
|
13
|
+
*/
|
|
14
|
+
/**
|
|
15
|
+
* Installs the Uint8Array base64/hex polyfill onto the given
|
|
16
|
+
* Uint8Array constructor and prototype. This is designed to be
|
|
17
|
+
* used inside the workflow VM context, operating on the VM's
|
|
18
|
+
* own Uint8Array rather than the host's.
|
|
19
|
+
*/
|
|
20
|
+
export declare function installUint8ArrayBase64(Uint8ArrayCtor: typeof Uint8Array): void;
|
|
21
|
+
//# sourceMappingURL=uint8array-base64.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"uint8array-base64.d.ts","sourceRoot":"","sources":["../../src/vm/uint8array-base64.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAwWH;;;;;GAKG;AACH,wBAAgB,uBAAuB,CACrC,cAAc,EAAE,OAAO,UAAU,GAChC,IAAI,CA6LN"}
|
|
@@ -0,0 +1,406 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Polyfill for the TC39 Uint8Array base64/hex proposal (Stage 4).
|
|
3
|
+
*
|
|
4
|
+
* Implements:
|
|
5
|
+
* - Uint8Array.prototype.toBase64([options])
|
|
6
|
+
* - Uint8Array.prototype.toHex()
|
|
7
|
+
* - Uint8Array.fromBase64(string[, options])
|
|
8
|
+
* - Uint8Array.fromHex(string)
|
|
9
|
+
* - Uint8Array.prototype.setFromBase64(string[, options])
|
|
10
|
+
* - Uint8Array.prototype.setFromHex(string)
|
|
11
|
+
*
|
|
12
|
+
* @see https://tc39.es/proposal-arraybuffer-base64/spec/
|
|
13
|
+
*/
|
|
14
|
+
// Standard base64 alphabet
|
|
15
|
+
const BASE64_CHARS = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';
|
|
16
|
+
// Reverse lookup table: char code -> index (for standard base64 alphabet)
|
|
17
|
+
const BASE64_LOOKUP = new Uint8Array(128).fill(255);
|
|
18
|
+
for (let i = 0; i < BASE64_CHARS.length; i++) {
|
|
19
|
+
BASE64_LOOKUP[BASE64_CHARS.charCodeAt(i)] = i;
|
|
20
|
+
}
|
|
21
|
+
// ASCII whitespace characters per spec: TAB, LF, FF, CR, SPACE
|
|
22
|
+
function isAsciiWhitespace(code) {
|
|
23
|
+
return (code === 0x09 ||
|
|
24
|
+
code === 0x0a ||
|
|
25
|
+
code === 0x0c ||
|
|
26
|
+
code === 0x0d ||
|
|
27
|
+
code === 0x20);
|
|
28
|
+
}
|
|
29
|
+
function skipAsciiWhitespace(str, index) {
|
|
30
|
+
while (index < str.length && isAsciiWhitespace(str.charCodeAt(index))) {
|
|
31
|
+
index++;
|
|
32
|
+
}
|
|
33
|
+
return index;
|
|
34
|
+
}
|
|
35
|
+
function decodeBase64Chunk(chunk, throwOnExtraBits) {
|
|
36
|
+
const chunkLength = chunk.length;
|
|
37
|
+
let padded = chunk;
|
|
38
|
+
if (chunkLength === 2) {
|
|
39
|
+
padded = chunk + 'AA';
|
|
40
|
+
}
|
|
41
|
+
else if (chunkLength === 3) {
|
|
42
|
+
padded = chunk + 'A';
|
|
43
|
+
}
|
|
44
|
+
// Decode 4 base64 chars to 3 bytes
|
|
45
|
+
const b0 = BASE64_LOOKUP[padded.charCodeAt(0)];
|
|
46
|
+
const b1 = BASE64_LOOKUP[padded.charCodeAt(1)];
|
|
47
|
+
const b2 = BASE64_LOOKUP[padded.charCodeAt(2)];
|
|
48
|
+
const b3 = BASE64_LOOKUP[padded.charCodeAt(3)];
|
|
49
|
+
const byte0 = (b0 << 2) | (b1 >> 4);
|
|
50
|
+
const byte1 = ((b1 & 0x0f) << 4) | (b2 >> 2);
|
|
51
|
+
const byte2 = ((b2 & 0x03) << 6) | b3;
|
|
52
|
+
if (chunkLength === 2) {
|
|
53
|
+
if (throwOnExtraBits && byte1 !== 0) {
|
|
54
|
+
throw new SyntaxError('Extra bits in base64 chunk');
|
|
55
|
+
}
|
|
56
|
+
return [byte0];
|
|
57
|
+
}
|
|
58
|
+
if (chunkLength === 3) {
|
|
59
|
+
if (throwOnExtraBits && byte2 !== 0) {
|
|
60
|
+
throw new SyntaxError('Extra bits in base64 chunk');
|
|
61
|
+
}
|
|
62
|
+
return [byte0, byte1];
|
|
63
|
+
}
|
|
64
|
+
return [byte0, byte1, byte2];
|
|
65
|
+
}
|
|
66
|
+
function fromBase64(str, alphabet, lastChunkHandling, maxLength) {
|
|
67
|
+
if (maxLength === undefined) {
|
|
68
|
+
maxLength = Number.MAX_SAFE_INTEGER;
|
|
69
|
+
}
|
|
70
|
+
if (maxLength === 0) {
|
|
71
|
+
return { read: 0, bytes: [], error: null };
|
|
72
|
+
}
|
|
73
|
+
let read = 0;
|
|
74
|
+
const bytes = [];
|
|
75
|
+
let chunk = '';
|
|
76
|
+
let chunkLength = 0;
|
|
77
|
+
let index = 0;
|
|
78
|
+
const length = str.length;
|
|
79
|
+
while (true) {
|
|
80
|
+
index = skipAsciiWhitespace(str, index);
|
|
81
|
+
if (index === length) {
|
|
82
|
+
if (chunkLength > 0) {
|
|
83
|
+
if (lastChunkHandling === 'stop-before-partial') {
|
|
84
|
+
return { read, bytes, error: null };
|
|
85
|
+
}
|
|
86
|
+
if (lastChunkHandling === 'loose') {
|
|
87
|
+
if (chunkLength === 1) {
|
|
88
|
+
return {
|
|
89
|
+
read,
|
|
90
|
+
bytes,
|
|
91
|
+
error: new SyntaxError('Invalid base64: lone character in final chunk'),
|
|
92
|
+
};
|
|
93
|
+
}
|
|
94
|
+
bytes.push(...decodeBase64Chunk(chunk, false));
|
|
95
|
+
}
|
|
96
|
+
else {
|
|
97
|
+
// strict
|
|
98
|
+
return {
|
|
99
|
+
read,
|
|
100
|
+
bytes,
|
|
101
|
+
error: new SyntaxError('Invalid base64: incomplete chunk in strict mode'),
|
|
102
|
+
};
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
return { read: length, bytes, error: null };
|
|
106
|
+
}
|
|
107
|
+
let char = str[index];
|
|
108
|
+
index++;
|
|
109
|
+
if (char === '=') {
|
|
110
|
+
if (chunkLength < 2) {
|
|
111
|
+
return {
|
|
112
|
+
read,
|
|
113
|
+
bytes,
|
|
114
|
+
error: new SyntaxError('Invalid base64: padding in unexpected place'),
|
|
115
|
+
};
|
|
116
|
+
}
|
|
117
|
+
index = skipAsciiWhitespace(str, index);
|
|
118
|
+
if (chunkLength === 2) {
|
|
119
|
+
if (index === length) {
|
|
120
|
+
if (lastChunkHandling === 'stop-before-partial') {
|
|
121
|
+
return { read, bytes, error: null };
|
|
122
|
+
}
|
|
123
|
+
return {
|
|
124
|
+
read,
|
|
125
|
+
bytes,
|
|
126
|
+
error: new SyntaxError('Invalid base64: missing second padding character'),
|
|
127
|
+
};
|
|
128
|
+
}
|
|
129
|
+
char = str[index];
|
|
130
|
+
if (char === '=') {
|
|
131
|
+
index = skipAsciiWhitespace(str, index + 1);
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
if (index < length) {
|
|
135
|
+
return {
|
|
136
|
+
read,
|
|
137
|
+
bytes,
|
|
138
|
+
error: new SyntaxError('Invalid base64: unexpected characters after padding'),
|
|
139
|
+
};
|
|
140
|
+
}
|
|
141
|
+
const throwOnExtraBits = lastChunkHandling === 'strict';
|
|
142
|
+
try {
|
|
143
|
+
bytes.push(...decodeBase64Chunk(chunk, throwOnExtraBits));
|
|
144
|
+
}
|
|
145
|
+
catch (e) {
|
|
146
|
+
return { read, bytes, error: e };
|
|
147
|
+
}
|
|
148
|
+
return { read: length, bytes, error: null };
|
|
149
|
+
}
|
|
150
|
+
if (alphabet === 'base64url') {
|
|
151
|
+
if (char === '+' || char === '/') {
|
|
152
|
+
return {
|
|
153
|
+
read,
|
|
154
|
+
bytes,
|
|
155
|
+
error: new SyntaxError(`Invalid base64url: unexpected character '${char}'`),
|
|
156
|
+
};
|
|
157
|
+
}
|
|
158
|
+
if (char === '-') {
|
|
159
|
+
char = '+';
|
|
160
|
+
}
|
|
161
|
+
else if (char === '_') {
|
|
162
|
+
char = '/';
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
// Validate character is in the standard base64 alphabet
|
|
166
|
+
const code = char.charCodeAt(0);
|
|
167
|
+
if (code >= 128 || BASE64_LOOKUP[code] === 255) {
|
|
168
|
+
return {
|
|
169
|
+
read,
|
|
170
|
+
bytes,
|
|
171
|
+
error: new SyntaxError(`Invalid base64: unexpected character '${str[index - 1]}'`),
|
|
172
|
+
};
|
|
173
|
+
}
|
|
174
|
+
// Check if adding this character would exceed maxLength
|
|
175
|
+
const remaining = maxLength - bytes.length;
|
|
176
|
+
if ((remaining === 1 && chunkLength === 2) ||
|
|
177
|
+
(remaining === 2 && chunkLength === 3)) {
|
|
178
|
+
return { read, bytes, error: null };
|
|
179
|
+
}
|
|
180
|
+
chunk += char;
|
|
181
|
+
chunkLength = chunk.length;
|
|
182
|
+
if (chunkLength === 4) {
|
|
183
|
+
bytes.push(...decodeBase64Chunk(chunk));
|
|
184
|
+
chunk = '';
|
|
185
|
+
chunkLength = 0;
|
|
186
|
+
read = index;
|
|
187
|
+
if (bytes.length === maxLength) {
|
|
188
|
+
return { read, bytes, error: null };
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
function fromHex(str, maxLength) {
|
|
194
|
+
if (maxLength === undefined) {
|
|
195
|
+
maxLength = Number.MAX_SAFE_INTEGER;
|
|
196
|
+
}
|
|
197
|
+
const length = str.length;
|
|
198
|
+
const bytes = [];
|
|
199
|
+
let read = 0;
|
|
200
|
+
if (length % 2 !== 0) {
|
|
201
|
+
return {
|
|
202
|
+
read: 0,
|
|
203
|
+
bytes: [],
|
|
204
|
+
error: new SyntaxError('Invalid hex: string length must be even'),
|
|
205
|
+
};
|
|
206
|
+
}
|
|
207
|
+
while (read < length && bytes.length < maxLength) {
|
|
208
|
+
const hexits = str.substring(read, read + 2);
|
|
209
|
+
if (!/^[0-9a-fA-F]{2}$/.test(hexits)) {
|
|
210
|
+
return {
|
|
211
|
+
read,
|
|
212
|
+
bytes,
|
|
213
|
+
error: new SyntaxError(`Invalid hex: unexpected character at position ${read}`),
|
|
214
|
+
};
|
|
215
|
+
}
|
|
216
|
+
read += 2;
|
|
217
|
+
bytes.push(Number.parseInt(hexits, 16));
|
|
218
|
+
}
|
|
219
|
+
return { read, bytes, error: null };
|
|
220
|
+
}
|
|
221
|
+
function toBase64(uint8, options) {
|
|
222
|
+
const alphabet = options?.alphabet ?? 'base64';
|
|
223
|
+
if (alphabet !== 'base64' && alphabet !== 'base64url') {
|
|
224
|
+
throw new TypeError(`Invalid alphabet: expected "base64" or "base64url", got "${alphabet}"`);
|
|
225
|
+
}
|
|
226
|
+
const omitPadding = Boolean(options?.omitPadding);
|
|
227
|
+
let result = '';
|
|
228
|
+
const len = uint8.length;
|
|
229
|
+
for (let i = 0; i < len; i += 3) {
|
|
230
|
+
const b0 = uint8[i];
|
|
231
|
+
const b1 = i + 1 < len ? uint8[i + 1] : 0;
|
|
232
|
+
const b2 = i + 2 < len ? uint8[i + 2] : 0;
|
|
233
|
+
result += BASE64_CHARS[(b0 >> 2) & 0x3f];
|
|
234
|
+
result += BASE64_CHARS[((b0 & 0x03) << 4) | ((b1 >> 4) & 0x0f)];
|
|
235
|
+
if (i + 1 < len) {
|
|
236
|
+
result += BASE64_CHARS[((b1 & 0x0f) << 2) | ((b2 >> 6) & 0x03)];
|
|
237
|
+
}
|
|
238
|
+
else if (!omitPadding) {
|
|
239
|
+
result += '=';
|
|
240
|
+
}
|
|
241
|
+
if (i + 2 < len) {
|
|
242
|
+
result += BASE64_CHARS[b2 & 0x3f];
|
|
243
|
+
}
|
|
244
|
+
else if (!omitPadding) {
|
|
245
|
+
result += '=';
|
|
246
|
+
}
|
|
247
|
+
}
|
|
248
|
+
if (alphabet === 'base64url') {
|
|
249
|
+
result = result.replace(/\+/g, '-').replace(/\//g, '_');
|
|
250
|
+
}
|
|
251
|
+
return result;
|
|
252
|
+
}
|
|
253
|
+
function toHex(uint8) {
|
|
254
|
+
let out = '';
|
|
255
|
+
for (let i = 0; i < uint8.length; i++) {
|
|
256
|
+
out += uint8[i].toString(16).padStart(2, '0');
|
|
257
|
+
}
|
|
258
|
+
return out;
|
|
259
|
+
}
|
|
260
|
+
/**
|
|
261
|
+
* Installs the Uint8Array base64/hex polyfill onto the given
|
|
262
|
+
* Uint8Array constructor and prototype. This is designed to be
|
|
263
|
+
* used inside the workflow VM context, operating on the VM's
|
|
264
|
+
* own Uint8Array rather than the host's.
|
|
265
|
+
*/
|
|
266
|
+
export function installUint8ArrayBase64(Uint8ArrayCtor) {
|
|
267
|
+
const proto = Uint8ArrayCtor.prototype;
|
|
268
|
+
const ctor = Uint8ArrayCtor;
|
|
269
|
+
// Uint8Array.prototype.toBase64([options])
|
|
270
|
+
if (!proto.toBase64) {
|
|
271
|
+
Object.defineProperty(proto, 'toBase64', {
|
|
272
|
+
value: function toBase64Method(options) {
|
|
273
|
+
if (!(this instanceof Uint8ArrayCtor)) {
|
|
274
|
+
throw new TypeError('this is not a Uint8Array');
|
|
275
|
+
}
|
|
276
|
+
return toBase64(this, options);
|
|
277
|
+
},
|
|
278
|
+
writable: true,
|
|
279
|
+
enumerable: false,
|
|
280
|
+
configurable: true,
|
|
281
|
+
});
|
|
282
|
+
}
|
|
283
|
+
// Uint8Array.prototype.toHex()
|
|
284
|
+
if (!proto.toHex) {
|
|
285
|
+
Object.defineProperty(proto, 'toHex', {
|
|
286
|
+
value: function toHexMethod() {
|
|
287
|
+
if (!(this instanceof Uint8ArrayCtor)) {
|
|
288
|
+
throw new TypeError('this is not a Uint8Array');
|
|
289
|
+
}
|
|
290
|
+
return toHex(this);
|
|
291
|
+
},
|
|
292
|
+
writable: true,
|
|
293
|
+
enumerable: false,
|
|
294
|
+
configurable: true,
|
|
295
|
+
});
|
|
296
|
+
}
|
|
297
|
+
// Uint8Array.prototype.setFromBase64(string[, options])
|
|
298
|
+
if (!proto.setFromBase64) {
|
|
299
|
+
Object.defineProperty(proto, 'setFromBase64', {
|
|
300
|
+
value: function setFromBase64Method(str, options) {
|
|
301
|
+
if (!(this instanceof Uint8ArrayCtor)) {
|
|
302
|
+
throw new TypeError('this is not a Uint8Array');
|
|
303
|
+
}
|
|
304
|
+
if (typeof str !== 'string') {
|
|
305
|
+
throw new TypeError('expected a string');
|
|
306
|
+
}
|
|
307
|
+
const alphabet = options?.alphabet ?? 'base64';
|
|
308
|
+
if (alphabet !== 'base64' && alphabet !== 'base64url') {
|
|
309
|
+
throw new TypeError(`Invalid alphabet: expected "base64" or "base64url", got "${alphabet}"`);
|
|
310
|
+
}
|
|
311
|
+
const lastChunkHandling = options?.lastChunkHandling ?? 'loose';
|
|
312
|
+
if (lastChunkHandling !== 'loose' &&
|
|
313
|
+
lastChunkHandling !== 'strict' &&
|
|
314
|
+
lastChunkHandling !== 'stop-before-partial') {
|
|
315
|
+
throw new TypeError(`Invalid lastChunkHandling: expected "loose", "strict", or "stop-before-partial", got "${lastChunkHandling}"`);
|
|
316
|
+
}
|
|
317
|
+
const result = fromBase64(str, alphabet, lastChunkHandling, this.length);
|
|
318
|
+
const bytes = result.bytes;
|
|
319
|
+
const written = bytes.length;
|
|
320
|
+
for (let i = 0; i < written; i++) {
|
|
321
|
+
this[i] = bytes[i];
|
|
322
|
+
}
|
|
323
|
+
if (result.error) {
|
|
324
|
+
throw result.error;
|
|
325
|
+
}
|
|
326
|
+
return { read: result.read, written };
|
|
327
|
+
},
|
|
328
|
+
writable: true,
|
|
329
|
+
enumerable: false,
|
|
330
|
+
configurable: true,
|
|
331
|
+
});
|
|
332
|
+
}
|
|
333
|
+
// Uint8Array.prototype.setFromHex(string)
|
|
334
|
+
if (!proto.setFromHex) {
|
|
335
|
+
Object.defineProperty(proto, 'setFromHex', {
|
|
336
|
+
value: function setFromHexMethod(str) {
|
|
337
|
+
if (!(this instanceof Uint8ArrayCtor)) {
|
|
338
|
+
throw new TypeError('this is not a Uint8Array');
|
|
339
|
+
}
|
|
340
|
+
if (typeof str !== 'string') {
|
|
341
|
+
throw new TypeError('expected a string');
|
|
342
|
+
}
|
|
343
|
+
const result = fromHex(str, this.length);
|
|
344
|
+
const bytes = result.bytes;
|
|
345
|
+
const written = bytes.length;
|
|
346
|
+
for (let i = 0; i < written; i++) {
|
|
347
|
+
this[i] = bytes[i];
|
|
348
|
+
}
|
|
349
|
+
if (result.error) {
|
|
350
|
+
throw result.error;
|
|
351
|
+
}
|
|
352
|
+
return { read: result.read, written };
|
|
353
|
+
},
|
|
354
|
+
writable: true,
|
|
355
|
+
enumerable: false,
|
|
356
|
+
configurable: true,
|
|
357
|
+
});
|
|
358
|
+
}
|
|
359
|
+
// Uint8Array.fromBase64(string[, options])
|
|
360
|
+
if (!ctor.fromBase64) {
|
|
361
|
+
Object.defineProperty(Uint8ArrayCtor, 'fromBase64', {
|
|
362
|
+
value: function fromBase64Static(str, options) {
|
|
363
|
+
if (typeof str !== 'string') {
|
|
364
|
+
throw new TypeError('expected a string');
|
|
365
|
+
}
|
|
366
|
+
const alphabet = options?.alphabet ?? 'base64';
|
|
367
|
+
if (alphabet !== 'base64' && alphabet !== 'base64url') {
|
|
368
|
+
throw new TypeError(`Invalid alphabet: expected "base64" or "base64url", got "${alphabet}"`);
|
|
369
|
+
}
|
|
370
|
+
const lastChunkHandling = options?.lastChunkHandling ?? 'loose';
|
|
371
|
+
if (lastChunkHandling !== 'loose' &&
|
|
372
|
+
lastChunkHandling !== 'strict' &&
|
|
373
|
+
lastChunkHandling !== 'stop-before-partial') {
|
|
374
|
+
throw new TypeError(`Invalid lastChunkHandling: expected "loose", "strict", or "stop-before-partial", got "${lastChunkHandling}"`);
|
|
375
|
+
}
|
|
376
|
+
const result = fromBase64(str, alphabet, lastChunkHandling);
|
|
377
|
+
if (result.error) {
|
|
378
|
+
throw result.error;
|
|
379
|
+
}
|
|
380
|
+
return new Uint8ArrayCtor(result.bytes);
|
|
381
|
+
},
|
|
382
|
+
writable: true,
|
|
383
|
+
enumerable: false,
|
|
384
|
+
configurable: true,
|
|
385
|
+
});
|
|
386
|
+
}
|
|
387
|
+
// Uint8Array.fromHex(string)
|
|
388
|
+
if (!ctor.fromHex) {
|
|
389
|
+
Object.defineProperty(Uint8ArrayCtor, 'fromHex', {
|
|
390
|
+
value: function fromHexStatic(str) {
|
|
391
|
+
if (typeof str !== 'string') {
|
|
392
|
+
throw new TypeError('expected a string');
|
|
393
|
+
}
|
|
394
|
+
const result = fromHex(str);
|
|
395
|
+
if (result.error) {
|
|
396
|
+
throw result.error;
|
|
397
|
+
}
|
|
398
|
+
return new Uint8ArrayCtor(result.bytes);
|
|
399
|
+
},
|
|
400
|
+
writable: true,
|
|
401
|
+
enumerable: false,
|
|
402
|
+
configurable: true,
|
|
403
|
+
});
|
|
404
|
+
}
|
|
405
|
+
}
|
|
406
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWludDhhcnJheS1iYXNlNjQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdm0vdWludDhhcnJheS1iYXNlNjQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7OztHQVlHO0FBeUNILDJCQUEyQjtBQUMzQixNQUFNLFlBQVksR0FDaEIsa0VBQWtFLENBQUM7QUFFckUsMEVBQTBFO0FBQzFFLE1BQU0sYUFBYSxHQUFHLElBQUksVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUNwRCxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsWUFBWSxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO0lBQzdDLGFBQWEsQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQ2hELENBQUM7QUFFRCwrREFBK0Q7QUFDL0QsU0FBUyxpQkFBaUIsQ0FBQyxJQUFZO0lBQ3JDLE9BQU8sQ0FDTCxJQUFJLEtBQUssSUFBSTtRQUNiLElBQUksS0FBSyxJQUFJO1FBQ2IsSUFBSSxLQUFLLElBQUk7UUFDYixJQUFJLEtBQUssSUFBSTtRQUNiLElBQUksS0FBSyxJQUFJLENBQ2QsQ0FBQztBQUNKLENBQUM7QUFFRCxTQUFTLG1CQUFtQixDQUFDLEdBQVcsRUFBRSxLQUFhO0lBQ3JELE9BQU8sS0FBSyxHQUFHLEdBQUcsQ0FBQyxNQUFNLElBQUksaUJBQWlCLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDdEUsS0FBSyxFQUFFLENBQUM7SUFDVixDQUFDO0lBQ0QsT0FBTyxLQUFLLENBQUM7QUFDZixDQUFDO0FBRUQsU0FBUyxpQkFBaUIsQ0FDeEIsS0FBYSxFQUNiLGdCQUEwQjtJQUUxQixNQUFNLFdBQVcsR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDO0lB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
|
|
@@ -20,7 +20,7 @@ npm i workflow
|
|
|
20
20
|
|
|
21
21
|
## Functions
|
|
22
22
|
|
|
23
|
-
Workflow
|
|
23
|
+
Workflow SDK contains the following functions you can use inside your workflow functions:
|
|
24
24
|
|
|
25
25
|
<Cards>
|
|
26
26
|
<Card href="/docs/api-reference/workflow/get-workflow-metadata" title="getWorkflowMetadata()">
|
|
@@ -51,7 +51,7 @@ Workflow DevKit contains the following functions you can use inside your workflo
|
|
|
51
51
|
|
|
52
52
|
## Error Classes
|
|
53
53
|
|
|
54
|
-
Workflow
|
|
54
|
+
Workflow SDK includes error classes that can be thrown in a workflow or step to change the error exit strategy of a workflow.
|
|
55
55
|
|
|
56
56
|
<Cards>
|
|
57
57
|
<Card href="/docs/api-reference/workflow/fatal-error" title="FatalError()">
|
|
@@ -10,7 +10,7 @@ related:
|
|
|
10
10
|
- /docs/api-reference/workflow/retryable-error
|
|
11
11
|
---
|
|
12
12
|
|
|
13
|
-
By default, errors thrown inside steps are retried. Additionally, Workflow
|
|
13
|
+
By default, errors thrown inside steps are retried. Additionally, Workflow SDK provides two new types of errors you can use to customize retries.
|
|
14
14
|
|
|
15
15
|
## Default Retrying
|
|
16
16
|
|
|
@@ -219,7 +219,7 @@ While hooks are powerful, they require you to manually handle HTTP requests and
|
|
|
219
219
|
2. Provides an automatically addressable `url` property pointing to the generated webhook endpoint
|
|
220
220
|
3. Handles sending HTTP [`Response`](https://developer.mozilla.org/en-US/docs/Web/API/Response) objects back to the caller
|
|
221
221
|
|
|
222
|
-
When using Workflow
|
|
222
|
+
When using Workflow SDK, webhooks are automatically wired up at `/.well-known/workflow/v1/webhook/:token` without any additional setup.
|
|
223
223
|
|
|
224
224
|
<Callout type="info">
|
|
225
225
|
See the full API reference for [`createWebhook()`](/docs/api-reference/workflow/create-webhook) for all available options.
|
|
@@ -9,7 +9,7 @@ related:
|
|
|
9
9
|
- /docs/errors/serialization-failed
|
|
10
10
|
---
|
|
11
11
|
|
|
12
|
-
All function arguments and return values passed between workflow and step functions must be serializable. Workflow
|
|
12
|
+
All function arguments and return values passed between workflow and step functions must be serializable. Workflow SDK uses a custom serialization system built on top of [devalue](https://github.com/sveltejs/devalue). This system supports standard JSON types, as well as a few additional popular Web API types.
|
|
13
13
|
|
|
14
14
|
<Callout type="info">
|
|
15
15
|
The serialization system ensures that all data persists correctly across workflow suspensions and resumptions, enabling durable execution.
|
|
@@ -98,7 +98,7 @@ export async function handleWebhookWorkflow() {
|
|
|
98
98
|
|
|
99
99
|
### Using `fetch` in Workflows
|
|
100
100
|
|
|
101
|
-
Because `Request` and `Response` are serializable, Workflow
|
|
101
|
+
Because `Request` and `Response` are serializable, Workflow SDK provides a `fetch` function that can be used directly in workflow functions:
|
|
102
102
|
|
|
103
103
|
```typescript title="workflows/api-call.ts" lineNumbers
|
|
104
104
|
import { fetch } from "workflow"; // [!code highlight]
|
|
@@ -105,7 +105,7 @@ Because streams are live and continue receiving chunks, negative `startIndex` va
|
|
|
105
105
|
|
|
106
106
|
## Streams as Data Types
|
|
107
107
|
|
|
108
|
-
[`ReadableStream`](https://developer.mozilla.org/en-US/docs/Web/API/ReadableStream) and [`WritableStream`](https://developer.mozilla.org/en-US/docs/Web/API/WritableStream) are standard Web Streams API types that Workflow
|
|
108
|
+
[`ReadableStream`](https://developer.mozilla.org/en-US/docs/Web/API/ReadableStream) and [`WritableStream`](https://developer.mozilla.org/en-US/docs/Web/API/WritableStream) are standard Web Streams API types that Workflow SDK makes serializable. These are not custom types - they follow the web standard - but Workflow SDK adds the ability to pass them between functions while maintaining their streaming capabilities.
|
|
109
109
|
|
|
110
110
|
Unlike regular values that are fully serialized to the [event log](/docs/how-it-works/event-sourcing), streams maintain their streaming capabilities when passed between functions.
|
|
111
111
|
|
|
@@ -117,7 +117,7 @@ Unlike regular values that are fully serialized to the [event log](/docs/how-it-
|
|
|
117
117
|
<Callout type="info">
|
|
118
118
|
**How Streams Persist Across Workflow Suspensions**
|
|
119
119
|
|
|
120
|
-
Streams in Workflow
|
|
120
|
+
Streams in Workflow SDK are backed by persistent, resumable storage provided by the "world" implementation. This is what enables streams to maintain their state even when workflows suspend and resume:
|
|
121
121
|
|
|
122
122
|
- **Vercel deployments**: Streams are backed by a performant Redis-based stream
|
|
123
123
|
- **Local development**: Stream chunks are stored in the filesystem
|
|
@@ -43,7 +43,7 @@ export async function processOrderWorkflow(orderId: string) {
|
|
|
43
43
|
|
|
44
44
|
**Key Characteristics:**
|
|
45
45
|
|
|
46
|
-
- Runs in a sandboxed environment without full Node.js access
|
|
46
|
+
- Runs in a sandboxed environment without full Node.js access (see [Workflow Globals](/docs/api-reference/workflow-globals) for what's available)
|
|
47
47
|
- All step results are persisted to the [event log](/docs/how-it-works/event-sourcing)
|
|
48
48
|
- Must be **deterministic** to allow resuming after failures
|
|
49
49
|
|
|
@@ -203,5 +203,5 @@ While you can organize workflow and step functions however you like, we find tha
|
|
|
203
203
|
You can choose to organize your steps into a single `steps.ts` file or separate files within a `steps` folder. The `shared` folder is a good place to put common steps that are used by multiple workflows.
|
|
204
204
|
|
|
205
205
|
<Callout type="info">
|
|
206
|
-
Splitting up steps and workflows will also help avoid most bundler related bugs with the Workflow
|
|
206
|
+
Splitting up steps and workflows will also help avoid most bundler related bugs with the Workflow SDK.
|
|
207
207
|
</Callout>
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
title: How the Directives Work
|
|
3
|
-
description: Deep dive into the internals of how Workflow
|
|
3
|
+
description: Deep dive into the internals of how Workflow SDK directives transform your code.
|
|
4
4
|
type: conceptual
|
|
5
5
|
summary: Learn how the compiler transforms directive-annotated code into three execution modes.
|
|
6
6
|
prerequisites:
|
|
@@ -10,10 +10,10 @@ related:
|
|
|
10
10
|
---
|
|
11
11
|
|
|
12
12
|
<Callout>
|
|
13
|
-
This is an advanced guide that dives into internals of the Workflow
|
|
13
|
+
This is an advanced guide that dives into internals of the Workflow SDK directive and is not required reading to use workflows. To simply use the Workflow SDK, check out the [getting started](/docs/getting-started) guides for your framework.
|
|
14
14
|
</Callout>
|
|
15
15
|
|
|
16
|
-
Workflows use special directives to mark code for transformation by the Workflow
|
|
16
|
+
Workflows use special directives to mark code for transformation by the Workflow SDK compiler. This page explains how `"use workflow"` and `"use step"` directives work, what transformations are applied, and why they're necessary for durable execution.
|
|
17
17
|
|
|
18
18
|
## Directives Overview
|
|
19
19
|
|
|
@@ -210,7 +210,7 @@ The IDs are generated exactly like in workflow mode to ensure they can be direct
|
|
|
210
210
|
|
|
211
211
|
## Generated Files
|
|
212
212
|
|
|
213
|
-
When you build your application, the Workflow
|
|
213
|
+
When you build your application, the Workflow SDK generates three handler files in `.well-known/workflow/v1/`:
|
|
214
214
|
|
|
215
215
|
### `flow.js`
|
|
216
216
|
|
|
@@ -268,7 +268,7 @@ Contains webhook handling logic for delivering external data to running workflow
|
|
|
268
268
|
|
|
269
269
|
## Why Three Modes?
|
|
270
270
|
|
|
271
|
-
The multi-mode transformation enables the Workflow
|
|
271
|
+
The multi-mode transformation enables the Workflow SDK's durable execution model:
|
|
272
272
|
|
|
273
273
|
1. **Step Mode** (required) - Bundles executable step functions that can access the full runtime
|
|
274
274
|
2. **Workflow Mode** (required) - Creates orchestration logic that can replay from event logs
|
|
@@ -320,7 +320,7 @@ The compiler generates stable IDs for workflows and steps based on file paths an
|
|
|
320
320
|
- **Portable**: Works across different runtimes and deployments
|
|
321
321
|
|
|
322
322
|
<Callout type="info">
|
|
323
|
-
Although IDs can change when files are moved or functions are renamed, Workflow
|
|
323
|
+
Although IDs can change when files are moved or functions are renamed, Workflow SDK function assume atomic versioning in the World. This means changing IDs won't break old workflows from running, but will prevent run from being upgraded and will cause your workflow/step names to change in the observability across deployments.
|
|
324
324
|
</Callout>
|
|
325
325
|
|
|
326
326
|
## Framework Integration
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
title: Encryption
|
|
3
|
-
description: Learn how Workflow
|
|
3
|
+
description: Learn how Workflow SDK encrypts user data end-to-end in the event log.
|
|
4
4
|
type: conceptual
|
|
5
5
|
summary: Understand how workflow and step data is encrypted at rest.
|
|
6
6
|
prerequisites:
|
|
@@ -11,10 +11,10 @@ related:
|
|
|
11
11
|
---
|
|
12
12
|
|
|
13
13
|
<Callout>
|
|
14
|
-
This guide explains how Workflow
|
|
14
|
+
This guide explains how Workflow SDK encrypts user data in the event log. Understanding these details is not required to use workflows — encryption is automatic and requires no code changes. For getting started, see the [getting started](/docs/getting-started) guides for your framework.
|
|
15
15
|
</Callout>
|
|
16
16
|
|
|
17
|
-
Workflow
|
|
17
|
+
Workflow SDK supports automatic end-to-end encryption of all user data before it is written to the event log. When a `World` implementation provides encryption support, it is safe to pass sensitive data — such as API keys, tokens, or user credentials — as workflow inputs, step arguments, and return values. The storage backend only ever sees ciphertext.
|
|
18
18
|
|
|
19
19
|
Encryption support varies by `World` implementation. See the [Worlds](/worlds) page to check which worlds support this feature. `World` implementations opt into encryption by providing a `getEncryptionKeyForRun()` method — the core runtime will use it automatically when present.
|
|
20
20
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
title: Event Sourcing
|
|
3
|
-
description: Learn how Workflow
|
|
3
|
+
description: Learn how Workflow SDK uses event sourcing internally for debugging and observability.
|
|
4
4
|
type: conceptual
|
|
5
5
|
summary: Understand the event log that powers workflow replay and debugging.
|
|
6
6
|
prerequisites:
|
|
@@ -10,10 +10,10 @@ related:
|
|
|
10
10
|
---
|
|
11
11
|
|
|
12
12
|
<Callout>
|
|
13
|
-
This guide explores how the Workflow
|
|
13
|
+
This guide explores how the Workflow SDK uses event sourcing internally. Understanding these concepts is helpful for debugging and building observability tools, but is not required to use workflows. For getting started with workflows, see the [getting started](/docs/getting-started) guides for your framework.
|
|
14
14
|
</Callout>
|
|
15
15
|
|
|
16
|
-
The Workflow
|
|
16
|
+
The Workflow SDK uses event sourcing to track all state changes in workflow executions. Every mutation creates an event that is persisted to the event log, and entity state is derived by replaying these events.
|
|
17
17
|
|
|
18
18
|
This page explains the event sourcing model and entity lifecycles.
|
|
19
19
|
|
|
@@ -28,7 +28,7 @@ Event sourcing is a persistence pattern where state changes are stored as a sequ
|
|
|
28
28
|
- **Consistency**: Events provide a single source of truth for all entity state
|
|
29
29
|
- **Recoverability**: State can be reconstructed from the event log after failures
|
|
30
30
|
|
|
31
|
-
In the Workflow
|
|
31
|
+
In the Workflow SDK, the following entity types are managed through events:
|
|
32
32
|
|
|
33
33
|
- **Runs**: Workflow execution instances (materialized in storage)
|
|
34
34
|
- **Steps**: Individual atomic operations within a workflow (materialized in storage)
|
|
@@ -243,7 +243,7 @@ This correlation enables:
|
|
|
243
243
|
|
|
244
244
|
## Entity IDs
|
|
245
245
|
|
|
246
|
-
All entities in the Workflow
|
|
246
|
+
All entities in the Workflow SDK use a consistent ID format: a 4-character prefix followed by an underscore and a [ULID](https://github.com/ulid/spec) (Universally Unique Lexicographically Sortable Identifier).
|
|
247
247
|
|
|
248
248
|
| Entity | Prefix | Example |
|
|
249
249
|
|--------|--------|---------|
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
---
|
|
2
2
|
title: Framework Integrations
|
|
3
|
-
description: Guide for framework authors to integrate Workflow
|
|
3
|
+
description: Guide for framework authors to integrate Workflow SDK with custom frameworks or runtimes.
|
|
4
4
|
type: guide
|
|
5
|
-
summary: Build a custom framework integration using the Workflow
|
|
5
|
+
summary: Build a custom framework integration using the Workflow SDK compiler and runtime.
|
|
6
6
|
prerequisites:
|
|
7
7
|
- /docs/foundations/workflows-and-steps
|
|
8
8
|
related:
|
|
@@ -10,13 +10,13 @@ related:
|
|
|
10
10
|
---
|
|
11
11
|
|
|
12
12
|
<Callout>
|
|
13
|
-
**For users:** If you just want to use Workflow
|
|
13
|
+
**For users:** If you just want to use Workflow SDK with an existing framework, check out the [Getting Started](/docs/getting-started) guide instead. This page is for framework authors who want to integrate Workflow SDK with their framework or runtime.
|
|
14
14
|
</Callout>
|
|
15
15
|
|
|
16
|
-
This guide walks you through building a framework integration for Workflow
|
|
16
|
+
This guide walks you through building a framework integration for Workflow SDK using Bun as a concrete example. The same principles apply to any JavaScript runtime (Node.js, Deno, Cloudflare Workers, etc.).
|
|
17
17
|
|
|
18
18
|
<Callout type="info">
|
|
19
|
-
**Prerequisites:** Before building a framework integration, we recommend reading [How the Directives Work](/docs/how-it-works/code-transform) to understand the transformation system that powers Workflow
|
|
19
|
+
**Prerequisites:** Before building a framework integration, we recommend reading [How the Directives Work](/docs/how-it-works/code-transform) to understand the transformation system that powers Workflow SDK.
|
|
20
20
|
</Callout>
|
|
21
21
|
|
|
22
22
|
## What You'll Build
|
|
@@ -46,7 +46,7 @@ flowchart TD
|
|
|
46
46
|
style J fill:#a78bfa,stroke:#8b5cf6,color:#000
|
|
47
47
|
```
|
|
48
48
|
|
|
49
|
-
The purple boxes are what you implement—everything else is provided by Workflow
|
|
49
|
+
The purple boxes are what you implement—everything else is provided by Workflow SDK.
|
|
50
50
|
|
|
51
51
|
## Example: Bun Integration
|
|
52
52
|
|
|
@@ -259,7 +259,7 @@ class MyFrameworkBuilder extends BaseBuilder {
|
|
|
259
259
|
}
|
|
260
260
|
```
|
|
261
261
|
|
|
262
|
-
If your framework supports virtual server routes and dev mode watching, make sure to adapt accordingly. Please open a PR to the Workflow
|
|
262
|
+
If your framework supports virtual server routes and dev mode watching, make sure to adapt accordingly. Please open a PR to the Workflow SDK if the base builder class is missing necessary functionality.
|
|
263
263
|
|
|
264
264
|
Hook into your framework's build:
|
|
265
265
|
|
|
@@ -341,8 +341,8 @@ const server = Bun.serve({
|
|
|
341
341
|
```
|
|
342
342
|
|
|
343
343
|
Production framework integrations should handle this routing in the plugin instead of leaving it to the user, and this depends on each framework's unique implementaiton.
|
|
344
|
-
Check the Workflow
|
|
345
|
-
In the future, the Workflow
|
|
344
|
+
Check the Workflow SDK source code for examples of production framework implementations.
|
|
345
|
+
In the future, the Workflow SDK will emit more routes under the `.well-known/workflow` namespace.
|
|
346
346
|
|
|
347
347
|
## Security
|
|
348
348
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
title: Understanding Directives
|
|
3
|
-
description: Explore how JavaScript directives enable the Workflow
|
|
3
|
+
description: Explore how JavaScript directives enable the Workflow SDK's durable execution model.
|
|
4
4
|
type: conceptual
|
|
5
5
|
summary: Explore the design decisions behind "use workflow" and "use step" directives.
|
|
6
6
|
prerequisites:
|
|
@@ -12,18 +12,18 @@ related:
|
|
|
12
12
|
import { File, Folder, Files } from "fumadocs-ui/components/files";
|
|
13
13
|
|
|
14
14
|
<Callout>
|
|
15
|
-
This guide explores how JavaScript directives enable the Workflow
|
|
15
|
+
This guide explores how JavaScript directives enable the Workflow SDK's execution model. For getting started with workflows, see the [getting started](/docs/getting-started) guides for your framework.
|
|
16
16
|
</Callout>
|
|
17
17
|
|
|
18
18
|
The Workflow Development Kit uses JavaScript directives (`"use workflow"` and `"use step"`) as the foundation for its durable execution model. Directives provide the compile-time semantic boundary necessary for workflows to suspend, resume, and maintain deterministic behavior across replays.
|
|
19
19
|
|
|
20
20
|
This page explores how directives enable this execution model and the design principles that led us here.
|
|
21
21
|
|
|
22
|
-
To understand how directives work, let's first understand what workflows and steps are in the Workflow
|
|
22
|
+
To understand how directives work, let's first understand what workflows and steps are in the Workflow SDK.
|
|
23
23
|
|
|
24
24
|
## Workflows and Steps Primer
|
|
25
25
|
|
|
26
|
-
The Workflow
|
|
26
|
+
The Workflow SDK has two types of functions:
|
|
27
27
|
|
|
28
28
|
**Step functions** are side-effecting operations with full Node.js runtime access. Think of them like named RPC calls - they run once, their result is persisted, and they can be [retried on failure](/docs/foundations/errors-and-retries):
|
|
29
29
|
|
|
@@ -60,7 +60,7 @@ export async function onboardUser(userId: string) {
|
|
|
60
60
|
- **If already executed:** Returns the cached result immediately from the event log
|
|
61
61
|
- **If not yet executed:** Suspends the workflow, enqueues the step for background execution, and resumes later with the result
|
|
62
62
|
|
|
63
|
-
This replay mechanism requires deterministic code. If `Math.random()` weren't seeded, the first execution might return `0.7` (sending the email) but replay might return `0.3` (skipping it), thus breaking resumption. The Workflow
|
|
63
|
+
This replay mechanism requires deterministic code. If `Math.random()` weren't seeded, the first execution might return `0.7` (sending the email) but replay might return `0.3` (skipping it), thus breaking resumption. The Workflow SDK sandbox provides seeded `Math.random()` and `Date` to ensure consistent behavior across replays.
|
|
64
64
|
|
|
65
65
|
<Callout>
|
|
66
66
|
For a deeper dive into workflows and steps, see [Workflows and Steps](/docs/foundations/workflows-and-steps).
|
|
@@ -85,11 +85,11 @@ JavaScript directives have precedent for changing execution semantics within a d
|
|
|
85
85
|
|
|
86
86
|
- `"use strict"` (introduced in ECMAScript 5 in 2009, TC39-standardized) changes language rules to make the runtime faster, safer, and more predictable.
|
|
87
87
|
- `"use client"` and `"use server"` (introduced by [React Server Components](https://react.dev/reference/rsc/server-components)) define an explicit boundary of "where" code gets executed - client-side browser JavaScript vs server-side Node.js.
|
|
88
|
-
- `"use workflow"` (introduced by the Workflow
|
|
88
|
+
- `"use workflow"` (introduced by the Workflow SDK) defines both "where" code runs (in a deterministic sandbox environment) and "how" it runs (deterministic, resumable, sandboxed execution semantics).
|
|
89
89
|
|
|
90
90
|
Directives provide a build-time contract.
|
|
91
91
|
|
|
92
|
-
When the Workflow
|
|
92
|
+
When the Workflow SDK sees `"use workflow"`, it:
|
|
93
93
|
|
|
94
94
|
- Bundles the workflow and its dependencies into code that can be run in a sandbox
|
|
95
95
|
- Restricts access to Node.js APIs in that sandbox
|
|
@@ -99,7 +99,7 @@ When the Workflow DevKit sees `"use workflow"`, it:
|
|
|
99
99
|
In addition to being important to the compiler, `"use workflow"` explicitly signals to the developer that you are entering a different execution mode.
|
|
100
100
|
|
|
101
101
|
<Callout type="info">
|
|
102
|
-
The `"use workflow"` directive is also used by the Language Server Plugin shipped with Workflow
|
|
102
|
+
The `"use workflow"` directive is also used by the Language Server Plugin shipped with Workflow SDK to provide IntelliSense to your IDE. Check the [getting started instructions](/docs/getting-started) for your framework for details on setting up the Language Server Plugin.
|
|
103
103
|
</Callout>
|
|
104
104
|
|
|
105
105
|
But we didn't get here immediately. This took some discovery to arrive at:
|
|
@@ -298,7 +298,7 @@ Different frameworks and developers have strong opinions about project structure
|
|
|
298
298
|
|
|
299
299
|
**2. No support for publishable, reusable functions**
|
|
300
300
|
|
|
301
|
-
We want developers to be able to publish libraries to npm that include step and workflow directives. Ideally, logic that is isomorphic so it could be used with and without Workflow
|
|
301
|
+
We want developers to be able to publish libraries to npm that include step and workflow directives. Ideally, logic that is isomorphic so it could be used with and without Workflow SDK. File system conventions made this impossible.
|
|
302
302
|
|
|
303
303
|
**3. Migration and code reuse became difficult**
|
|
304
304
|
|
|
@@ -375,7 +375,7 @@ class MyWorkflow {
|
|
|
375
375
|
}
|
|
376
376
|
```
|
|
377
377
|
|
|
378
|
-
The compiler could transform both to be equivalent to
|
|
378
|
+
The compiler could transform both to be equivalent to Workflow SDK's directive approach:
|
|
379
379
|
|
|
380
380
|
```typescript lineNumbers
|
|
381
381
|
export const processOrder = async (orderId: string) => {
|
|
@@ -461,7 +461,7 @@ export async function badWorkflow() {
|
|
|
461
461
|
}
|
|
462
462
|
```
|
|
463
463
|
|
|
464
|
-
In fact, Workflow
|
|
464
|
+
In fact, Workflow SDK will throw an error that links to this error page: [Node.js module in workflow](/docs/errors/node-js-module-in-workflow)
|
|
465
465
|
|
|
466
466
|
**3. No closure ambiguity**
|
|
467
467
|
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@workflow/core",
|
|
3
|
-
"version": "4.2.0-beta.
|
|
4
|
-
"description": "Core runtime and engine for Workflow
|
|
3
|
+
"version": "4.2.0-beta.74",
|
|
4
|
+
"description": "Core runtime and engine for Workflow SDK",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
7
7
|
"files": [
|
|
@@ -83,7 +83,7 @@
|
|
|
83
83
|
"@workflow/serde": "4.1.0-beta.2",
|
|
84
84
|
"@workflow/utils": "4.1.0-beta.13",
|
|
85
85
|
"@workflow/world": "4.1.0-beta.14",
|
|
86
|
-
"@workflow/world-local": "4.1.0-beta.
|
|
86
|
+
"@workflow/world-local": "4.1.0-beta.47",
|
|
87
87
|
"@workflow/world-vercel": "4.1.0-beta.45"
|
|
88
88
|
},
|
|
89
89
|
"devDependencies": {
|