@workflow/core 5.0.0-beta.4 → 5.0.0-beta.41
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/dist/attribute-changes.d.ts +7 -0
- package/dist/attribute-changes.d.ts.map +1 -0
- package/dist/attribute-changes.js +25 -0
- package/dist/capabilities.d.ts +33 -1
- package/dist/capabilities.d.ts.map +1 -1
- package/dist/capabilities.js +71 -4
- package/dist/capture-stack.d.ts +16 -0
- package/dist/capture-stack.d.ts.map +1 -0
- package/dist/capture-stack.js +21 -0
- package/dist/class-serialization.d.ts +32 -0
- package/dist/class-serialization.d.ts.map +1 -1
- package/dist/class-serialization.js +37 -1
- package/dist/classify-error.d.ts +26 -3
- package/dist/classify-error.d.ts.map +1 -1
- package/dist/classify-error.js +109 -6
- package/dist/context-errors.d.ts +27 -0
- package/dist/context-errors.d.ts.map +1 -0
- package/dist/context-errors.js +101 -0
- package/dist/context-violation-error.d.ts +97 -0
- package/dist/context-violation-error.d.ts.map +1 -0
- package/dist/context-violation-error.js +149 -0
- package/dist/create-hook.d.ts +62 -4
- package/dist/create-hook.d.ts.map +1 -1
- package/dist/create-hook.js +4 -3
- package/dist/define-hook.d.ts.map +1 -1
- package/dist/define-hook.js +20 -5
- package/dist/describe-error.d.ts +70 -0
- package/dist/describe-error.d.ts.map +1 -0
- package/dist/describe-error.js +189 -0
- package/dist/encryption.d.ts +37 -3
- package/dist/encryption.d.ts.map +1 -1
- package/dist/encryption.js +97 -31
- package/dist/events-consumer.d.ts +147 -1
- package/dist/events-consumer.d.ts.map +1 -1
- package/dist/events-consumer.js +444 -43
- package/dist/flushable-stream.d.ts +65 -10
- package/dist/flushable-stream.d.ts.map +1 -1
- package/dist/flushable-stream.js +131 -18
- package/dist/global.d.ts +37 -1
- package/dist/global.d.ts.map +1 -1
- package/dist/global.js +21 -3
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -1
- package/dist/log-format.d.ts +25 -0
- package/dist/log-format.d.ts.map +1 -0
- package/dist/log-format.js +250 -0
- package/dist/logger.d.ts +29 -30
- package/dist/logger.d.ts.map +1 -1
- package/dist/logger.js +82 -32
- package/dist/private.d.ts +246 -8
- package/dist/private.d.ts.map +1 -1
- package/dist/private.js +345 -9
- package/dist/replay-payload-cache.d.ts +68 -0
- package/dist/replay-payload-cache.d.ts.map +1 -0
- package/dist/replay-payload-cache.js +160 -0
- package/dist/runtime/compute-instance.d.ts +12 -0
- package/dist/runtime/compute-instance.d.ts.map +1 -0
- package/dist/runtime/compute-instance.js +13 -0
- package/dist/runtime/constants.d.ts +251 -0
- package/dist/runtime/constants.d.ts.map +1 -1
- package/dist/runtime/constants.js +425 -16
- package/dist/runtime/count-step-started-events.d.ts +52 -0
- package/dist/runtime/count-step-started-events.d.ts.map +1 -0
- package/dist/runtime/count-step-started-events.js +72 -0
- package/dist/runtime/deployment-guard.d.ts +99 -0
- package/dist/runtime/deployment-guard.d.ts.map +1 -0
- package/dist/runtime/deployment-guard.js +154 -0
- package/dist/runtime/get-port-lazy.d.ts +25 -0
- package/dist/runtime/get-port-lazy.d.ts.map +1 -0
- package/dist/runtime/get-port-lazy.js +92 -0
- package/dist/runtime/get-world-lazy.d.ts +23 -0
- package/dist/runtime/get-world-lazy.d.ts.map +1 -0
- package/dist/runtime/get-world-lazy.js +46 -0
- package/dist/runtime/helpers.d.ts +327 -10
- package/dist/runtime/helpers.d.ts.map +1 -1
- package/dist/runtime/helpers.js +586 -40
- package/dist/runtime/quickjs-assets.generated.d.ts +14 -0
- package/dist/runtime/quickjs-assets.generated.d.ts.map +1 -0
- package/dist/runtime/quickjs-assets.generated.js +30 -0
- package/dist/runtime/quickjs-entrypoint.d.ts +124 -0
- package/dist/runtime/quickjs-entrypoint.d.ts.map +1 -0
- package/dist/runtime/quickjs-entrypoint.js +1437 -0
- package/dist/runtime/quickjs-runtime.d.ts +228 -0
- package/dist/runtime/quickjs-runtime.d.ts.map +1 -0
- package/dist/runtime/quickjs-runtime.js +2372 -0
- package/dist/runtime/quickjs-serde.d.ts +107 -0
- package/dist/runtime/quickjs-serde.d.ts.map +1 -0
- package/dist/runtime/quickjs-serde.js +2098 -0
- package/dist/runtime/replay-budget.d.ts +89 -0
- package/dist/runtime/replay-budget.d.ts.map +1 -0
- package/dist/runtime/replay-budget.js +139 -0
- package/dist/runtime/replay-recovery-reporter.d.ts +36 -0
- package/dist/runtime/replay-recovery-reporter.d.ts.map +1 -0
- package/dist/runtime/replay-recovery-reporter.js +64 -0
- package/dist/runtime/resume-hook.d.ts +27 -4
- package/dist/runtime/resume-hook.d.ts.map +1 -1
- package/dist/runtime/resume-hook.js +452 -76
- package/dist/runtime/run-id-time.d.ts +19 -0
- package/dist/runtime/run-id-time.d.ts.map +1 -0
- package/dist/runtime/run-id-time.js +42 -0
- package/dist/runtime/run.d.ts +8 -2
- package/dist/runtime/run.d.ts.map +1 -1
- package/dist/runtime/run.js +62 -15
- package/dist/runtime/runs.d.ts +54 -3
- package/dist/runtime/runs.d.ts.map +1 -1
- package/dist/runtime/runs.js +119 -13
- package/dist/runtime/start.d.ts +70 -1
- package/dist/runtime/start.d.ts.map +1 -1
- package/dist/runtime/start.js +313 -60
- package/dist/runtime/step-executor.d.ts +177 -0
- package/dist/runtime/step-executor.d.ts.map +1 -0
- package/dist/runtime/step-executor.js +946 -0
- package/dist/runtime/step-latency.d.ts +197 -0
- package/dist/runtime/step-latency.d.ts.map +1 -0
- package/dist/runtime/step-latency.js +207 -0
- package/dist/runtime/step-ownership.d.ts +72 -0
- package/dist/runtime/step-ownership.d.ts.map +1 -0
- package/dist/runtime/step-ownership.js +114 -0
- package/dist/runtime/step-single-flight.d.ts +12 -0
- package/dist/runtime/step-single-flight.d.ts.map +1 -0
- package/dist/runtime/step-single-flight.js +69 -0
- package/dist/runtime/suspension-handler.d.ts +109 -7
- package/dist/runtime/suspension-handler.d.ts.map +1 -1
- package/dist/runtime/suspension-handler.js +486 -140
- package/dist/runtime/vm-mode.d.ts +44 -0
- package/dist/runtime/vm-mode.d.ts.map +1 -0
- package/dist/runtime/vm-mode.js +62 -0
- package/dist/runtime/vm-serde-bundle.generated.d.ts +14 -0
- package/dist/runtime/vm-serde-bundle.generated.d.ts.map +1 -0
- package/dist/runtime/vm-serde-bundle.generated.js +16 -0
- package/dist/runtime/wait-continuation.d.ts +84 -0
- package/dist/runtime/wait-continuation.d.ts.map +1 -0
- package/dist/runtime/wait-continuation.js +105 -0
- package/dist/runtime/wait-until.d.ts +18 -0
- package/dist/runtime/wait-until.d.ts.map +1 -0
- package/dist/runtime/wait-until.js +42 -0
- package/dist/runtime/world-compatibility.d.ts +20 -0
- package/dist/runtime/world-compatibility.d.ts.map +1 -0
- package/dist/runtime/world-compatibility.js +32 -0
- package/dist/runtime/world-init.d.ts +50 -0
- package/dist/runtime/world-init.d.ts.map +1 -0
- package/dist/runtime/world-init.js +50 -0
- package/dist/runtime/world.d.ts +14 -2
- package/dist/runtime/world.d.ts.map +1 -1
- package/dist/runtime/world.js +101 -26
- package/dist/runtime.d.ts +17 -12
- package/dist/runtime.d.ts.map +1 -1
- package/dist/runtime.js +3135 -328
- package/dist/schemas.d.ts +1 -1
- package/dist/schemas.d.ts.map +1 -1
- package/dist/schemas.js +1 -1
- package/dist/sealed-box.d.ts +167 -0
- package/dist/sealed-box.d.ts.map +1 -0
- package/dist/sealed-box.js +571 -0
- package/dist/serialization/client.d.ts +17 -0
- package/dist/serialization/client.d.ts.map +1 -0
- package/dist/serialization/client.js +48 -0
- package/dist/serialization/codec-devalue-vm.d.ts +16 -0
- package/dist/serialization/codec-devalue-vm.d.ts.map +1 -0
- package/dist/serialization/codec-devalue-vm.js +148 -0
- package/dist/serialization/codec-devalue.d.ts +14 -0
- package/dist/serialization/codec-devalue.d.ts.map +1 -0
- package/dist/serialization/codec-devalue.js +105 -0
- package/dist/serialization/codec.d.ts +125 -0
- package/dist/serialization/codec.d.ts.map +1 -0
- package/dist/serialization/codec.js +17 -0
- package/dist/serialization/compression.d.ts +104 -0
- package/dist/serialization/compression.d.ts.map +1 -0
- package/dist/serialization/compression.js +260 -0
- package/dist/serialization/encryption.d.ts +134 -0
- package/dist/serialization/encryption.d.ts.map +1 -0
- package/dist/serialization/encryption.js +186 -0
- package/dist/serialization/errors.d.ts +34 -0
- package/dist/serialization/errors.d.ts.map +1 -0
- package/dist/serialization/errors.js +59 -0
- package/dist/serialization/format.d.ts +60 -0
- package/dist/serialization/format.d.ts.map +1 -0
- package/dist/serialization/format.js +97 -0
- package/dist/serialization/hardened.d.ts +155 -0
- package/dist/serialization/hardened.d.ts.map +1 -0
- package/dist/serialization/hardened.js +523 -0
- package/dist/serialization/index.d.ts +20 -0
- package/dist/serialization/index.d.ts.map +1 -0
- package/dist/serialization/index.js +22 -0
- package/dist/serialization/reducers/class-vm.d.ts +20 -0
- package/dist/serialization/reducers/class-vm.d.ts.map +1 -0
- package/dist/serialization/reducers/class-vm.js +77 -0
- package/dist/serialization/reducers/class.d.ts +11 -0
- package/dist/serialization/reducers/class.d.ts.map +1 -0
- package/dist/serialization/reducers/class.js +73 -0
- package/dist/serialization/reducers/common-vm.d.ts +15 -0
- package/dist/serialization/reducers/common-vm.d.ts.map +1 -0
- package/dist/serialization/reducers/common-vm.js +579 -0
- package/dist/serialization/reducers/common.d.ts +16 -0
- package/dist/serialization/reducers/common.d.ts.map +1 -0
- package/dist/serialization/reducers/common.js +478 -0
- package/dist/serialization/reducers/step-function-vm.d.ts +44 -0
- package/dist/serialization/reducers/step-function-vm.d.ts.map +1 -0
- package/dist/serialization/reducers/step-function-vm.js +97 -0
- package/dist/serialization/reducers/step-function.d.ts +35 -0
- package/dist/serialization/reducers/step-function.d.ts.map +1 -0
- package/dist/serialization/reducers/step-function.js +104 -0
- package/dist/serialization/step.d.ts +17 -0
- package/dist/serialization/step.d.ts.map +1 -0
- package/dist/serialization/step.js +48 -0
- package/dist/serialization/types.d.ts +273 -0
- package/dist/serialization/types.d.ts.map +1 -0
- package/dist/serialization/types.js +35 -0
- package/dist/serialization/workflow-vm.d.ts +29 -0
- package/dist/serialization/workflow-vm.d.ts.map +1 -0
- package/dist/serialization/workflow-vm.js +71 -0
- package/dist/serialization/workflow.d.ts +29 -0
- package/dist/serialization/workflow.d.ts.map +1 -0
- package/dist/serialization/workflow.js +54 -0
- package/dist/serialization-format.d.ts +60 -4
- package/dist/serialization-format.d.ts.map +1 -1
- package/dist/serialization-format.js +276 -56
- package/dist/serialization.d.ts +374 -221
- package/dist/serialization.d.ts.map +1 -1
- package/dist/serialization.js +2300 -783
- package/dist/set-attributes.d.ts +13 -0
- package/dist/set-attributes.d.ts.map +1 -0
- package/dist/set-attributes.js +60 -0
- package/dist/sleep.d.ts.map +1 -1
- package/dist/sleep.js +3 -2
- package/dist/source-map.d.ts +25 -0
- package/dist/source-map.d.ts.map +1 -1
- package/dist/source-map.js +148 -10
- package/dist/step/context-storage.d.ts +61 -2
- package/dist/step/context-storage.d.ts.map +1 -1
- package/dist/step/context-storage.js +7 -5
- package/dist/step/get-closure-vars.d.ts.map +1 -1
- package/dist/step/get-closure-vars.js +3 -2
- package/dist/step/get-step-metadata.d.ts.map +1 -1
- package/dist/step/get-step-metadata.js +3 -2
- package/dist/step/get-workflow-metadata.d.ts.map +1 -1
- package/dist/step/get-workflow-metadata.js +3 -2
- package/dist/step/writable-stream.d.ts.map +1 -1
- package/dist/step/writable-stream.js +71 -7
- package/dist/step.d.ts.map +1 -1
- package/dist/step.js +225 -29
- package/dist/symbols.d.ts +54 -0
- package/dist/symbols.d.ts.map +1 -1
- package/dist/symbols.js +55 -1
- package/dist/telemetry/semantic-conventions.d.ts +265 -2
- package/dist/telemetry/semantic-conventions.d.ts.map +1 -1
- package/dist/telemetry/semantic-conventions.js +190 -1
- package/dist/telemetry.d.ts +73 -0
- package/dist/telemetry.d.ts.map +1 -1
- package/dist/telemetry.js +153 -16
- package/dist/types.d.ts +6 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +23 -1
- package/dist/util.d.ts +16 -6
- package/dist/util.d.ts.map +1 -1
- package/dist/util.js +25 -16
- package/dist/version.d.ts +1 -1
- package/dist/version.d.ts.map +1 -1
- package/dist/version.js +2 -2
- package/dist/vm/index.d.ts.map +1 -1
- package/dist/vm/index.js +85 -14
- package/dist/vm/script-cache.d.ts +28 -0
- package/dist/vm/script-cache.d.ts.map +1 -0
- package/dist/vm/script-cache.js +140 -0
- package/dist/workflow/abort-controller.d.ts +65 -0
- package/dist/workflow/abort-controller.d.ts.map +1 -0
- package/dist/workflow/abort-controller.js +312 -0
- package/dist/workflow/attribute-dispatcher.d.ts +6 -0
- package/dist/workflow/attribute-dispatcher.d.ts.map +1 -0
- package/dist/workflow/attribute-dispatcher.js +48 -0
- package/dist/workflow/create-hook.d.ts.map +1 -1
- package/dist/workflow/create-hook.js +25 -3
- package/dist/workflow/define-hook.d.ts +1 -1
- package/dist/workflow/define-hook.d.ts.map +1 -1
- package/dist/workflow/define-hook.js +8 -4
- package/dist/workflow/get-workflow-metadata.d.ts.map +1 -1
- package/dist/workflow/get-workflow-metadata.js +14 -3
- package/dist/workflow/hook.d.ts.map +1 -1
- package/dist/workflow/hook.js +302 -36
- package/dist/workflow/index.d.ts +1 -0
- package/dist/workflow/index.d.ts.map +1 -1
- package/dist/workflow/index.js +5 -3
- package/dist/workflow/set-attributes.d.ts +68 -0
- package/dist/workflow/set-attributes.d.ts.map +1 -0
- package/dist/workflow/set-attributes.js +60 -0
- package/dist/workflow/sleep.d.ts.map +1 -1
- package/dist/workflow/sleep.js +57 -8
- package/dist/workflow/world-init-stub.d.ts +15 -0
- package/dist/workflow/world-init-stub.d.ts.map +1 -0
- package/dist/workflow/world-init-stub.js +15 -0
- package/dist/workflow.d.ts +79 -3
- package/dist/workflow.d.ts.map +1 -1
- package/dist/workflow.js +831 -553
- package/docs/api-reference/create-hook.mdx +79 -0
- package/docs/api-reference/create-webhook.mdx +1 -0
- package/docs/api-reference/define-hook.mdx +26 -24
- package/docs/api-reference/fatal-error.mdx +29 -7
- package/docs/api-reference/fetch.mdx +8 -4
- package/docs/api-reference/index.mdx +3 -0
- package/docs/api-reference/set-attributes.mdx +61 -0
- package/docs/api-reference/sleep.mdx +1 -1
- package/docs/foundations/cancellation.mdx +459 -0
- package/docs/foundations/errors-and-retries.mdx +7 -3
- package/docs/foundations/hooks.mdx +29 -0
- package/docs/foundations/idempotency.mdx +243 -11
- package/docs/foundations/index.mdx +1 -23
- package/docs/foundations/meta.json +3 -1
- package/docs/foundations/serialization.mdx +77 -41
- package/docs/foundations/starting-workflows.mdx +79 -2
- package/docs/foundations/streaming.mdx +14 -23
- package/docs/foundations/versioning.mdx +263 -0
- package/docs/how-it-works/cancellation.mdx +287 -0
- package/docs/how-it-works/code-transform.mdx +21 -17
- package/docs/how-it-works/encryption.mdx +5 -5
- package/docs/how-it-works/event-sourcing.mdx +17 -9
- package/docs/how-it-works/framework-integrations.mdx +96 -337
- package/docs/how-it-works/meta.json +2 -1
- package/package.json +31 -13
- package/dist/runtime/step-handler.d.ts +0 -2
- package/dist/runtime/step-handler.d.ts.map +0 -1
- package/dist/runtime/step-handler.js +0 -678
package/dist/logger.js
CHANGED
|
@@ -1,41 +1,91 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { composeLogLine } from './log-format.js';
|
|
2
2
|
import { getActiveSpan } from './telemetry.js';
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
3
|
+
/**
|
|
4
|
+
* Lightweight `DEBUG=` pattern matcher. Replaces the `debug` package, which
|
|
5
|
+
* was previously a static dependency of this module — that import path
|
|
6
|
+
* pulled `debug/src/node` and its dynamic `require('tty')` into the
|
|
7
|
+
* generated Next.js webpack flow route, breaking the V2 combined-bundle
|
|
8
|
+
* build with `Dynamic require of "tty" is not supported`. Keeping this
|
|
9
|
+
* module free of `debug` is a prerequisite for V2 webpack builds.
|
|
10
|
+
*/
|
|
11
|
+
function matchesDebugNamespace(namespace, patternList) {
|
|
12
|
+
if (!patternList) {
|
|
13
|
+
return false;
|
|
14
|
+
}
|
|
15
|
+
let enabled = false;
|
|
16
|
+
for (const rawPattern of patternList.split(',')) {
|
|
17
|
+
const pattern = rawPattern.trim();
|
|
18
|
+
if (!pattern) {
|
|
19
|
+
continue;
|
|
20
|
+
}
|
|
21
|
+
const isNegated = pattern.startsWith('-');
|
|
22
|
+
const candidate = isNegated ? pattern.slice(1) : pattern;
|
|
23
|
+
const regex = new RegExp(`^${candidate.replace(/[|\\{}()[\]^$+?.]/g, '\\$&').replace(/\*/g, '.*')}$`);
|
|
24
|
+
if (regex.test(namespace)) {
|
|
25
|
+
enabled = !isNegated;
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
return enabled;
|
|
29
|
+
}
|
|
30
|
+
function createLogger(namespace, options = {}) {
|
|
31
|
+
const build = (parentMetadata) => {
|
|
32
|
+
const getDebugNamespace = (level) => options.debugNamespace ?? `workflow:${namespace}:${level}`;
|
|
33
|
+
const logger = (level) => {
|
|
34
|
+
const debugNamespace = getDebugNamespace(level);
|
|
35
|
+
return (message, metadata) => {
|
|
36
|
+
const hasParent = Object.keys(parentMetadata).length > 0;
|
|
37
|
+
const hasCallSite = metadata && Object.keys(metadata).length > 0;
|
|
38
|
+
const merged = hasParent || hasCallSite
|
|
39
|
+
? { ...parentMetadata, ...(metadata ?? {}) }
|
|
40
|
+
: undefined;
|
|
41
|
+
// Always output error/warn to console so users see critical issues.
|
|
42
|
+
// debug/info only output when DEBUG env var matches the namespace.
|
|
43
|
+
//
|
|
44
|
+
// Compose the framing + structured fields + (trimmed) stack into a
|
|
45
|
+
// single string so the runtime's `console.error` / `util.inspect`
|
|
46
|
+
// doesn't quote-escape multi-line stacks or paragraph hints inside
|
|
47
|
+
// a JSON-y object dump. The framing line stays at the top with the
|
|
48
|
+
// structured fields right under it; the stack body — with framework
|
|
49
|
+
// internal frames collapsed — sits at the bottom. See log-format.ts.
|
|
50
|
+
if (level === 'error' || level === 'warn') {
|
|
51
|
+
const out = level === 'error' ? console.error : console.warn;
|
|
52
|
+
out(composeLogLine('[workflow-sdk]', message, merged));
|
|
53
|
+
}
|
|
54
|
+
const debugEnabled = matchesDebugNamespace(debugNamespace, process.env.DEBUG);
|
|
55
|
+
if (debugEnabled) {
|
|
56
|
+
console.debug(`[${debugNamespace}] ${message}`, merged ?? '');
|
|
57
|
+
getActiveSpan()
|
|
58
|
+
.then((span) => {
|
|
59
|
+
span?.addEvent(`${level}.${namespace}`, { message, ...merged });
|
|
60
|
+
})
|
|
61
|
+
.catch(() => {
|
|
62
|
+
// Silently ignore telemetry errors
|
|
63
|
+
});
|
|
64
|
+
}
|
|
65
|
+
};
|
|
66
|
+
};
|
|
67
|
+
return {
|
|
68
|
+
debug: logger('debug'),
|
|
69
|
+
info: logger('info'),
|
|
70
|
+
warn: logger('warn'),
|
|
71
|
+
error: logger('error'),
|
|
72
|
+
child: (metadata) => build({ ...parentMetadata, ...metadata }),
|
|
73
|
+
forRun: (workflowRunId, workflowName, extra) => build({
|
|
74
|
+
...parentMetadata,
|
|
75
|
+
workflowRunId,
|
|
76
|
+
...(workflowName !== undefined ? { workflowName } : {}),
|
|
77
|
+
...(extra ?? {}),
|
|
78
|
+
}),
|
|
27
79
|
};
|
|
28
80
|
};
|
|
29
|
-
return {
|
|
30
|
-
debug: logger('debug'),
|
|
31
|
-
info: logger('info'),
|
|
32
|
-
warn: logger('warn'),
|
|
33
|
-
error: logger('error'),
|
|
34
|
-
};
|
|
81
|
+
return build({});
|
|
35
82
|
}
|
|
36
83
|
export const stepLogger = createLogger('step');
|
|
37
84
|
export const runtimeLogger = createLogger('runtime');
|
|
38
85
|
export const webhookLogger = createLogger('webhook');
|
|
39
86
|
export const eventsLogger = createLogger('events');
|
|
40
87
|
export const adapterLogger = createLogger('adapter');
|
|
41
|
-
|
|
88
|
+
export const buildLogger = createLogger('build', {
|
|
89
|
+
debugNamespace: 'workflow:build',
|
|
90
|
+
});
|
|
91
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nZ2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2xvZ2dlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDakQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBbUMvQzs7Ozs7OztHQU9HO0FBQ0gsU0FBUyxxQkFBcUIsQ0FDNUIsU0FBaUIsRUFDakIsV0FBK0I7SUFFL0IsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ2pCLE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVELElBQUksT0FBTyxHQUFHLEtBQUssQ0FBQztJQUNwQixLQUFLLE1BQU0sVUFBVSxJQUFJLFdBQVcsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztRQUNoRCxNQUFNLE9BQU8sR0FBRyxVQUFVLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDbEMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ2IsU0FBUztRQUNYLENBQUM7UUFFRCxNQUFNLFNBQVMsR0FBRyxPQUFPLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzFDLE1BQU0sU0FBUyxHQUFHLFNBQVMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDO1FBQ3pELE1BQU0sS0FBSyxHQUFHLElBQUksTUFBTSxDQUN0QixJQUFJLFNBQVMsQ0FBQyxPQUFPLENBQUMsb0JBQW9CLEVBQUUsTUFBTSxDQUFDLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsR0FBRyxDQUM1RSxDQUFDO1FBRUYsSUFBSSxLQUFLLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUM7WUFDMUIsT0FBTyxHQUFHLENBQUMsU0FBUyxDQUFDO1FBQ3ZCLENBQUM7SUFDSCxDQUFDO0lBRUQsT0FBTyxP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YixHQUFHLENBQUMsWUFBWSxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxZQUFZLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO2dCQUN2RCxHQUFHLENBQUMsS0FBSyxJQUFJLEVBQUUsQ0FBQzthQUNqQixDQUFDO1NBQ0wsQ0FBQztJQUNKLENBQUMsQ0FBQztJQUVGLE9BQU8sS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0FBQ25CLENBQUM7QUFFRCxNQUFNLENBQUMsTUFBTSxVQUFVLEdBQUcsWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBQy9DLE1BQU0sQ0FBQyxNQUFNLGFBQWEsR0FBRyxZQUFZLENBQUMsU0FBUyxDQUFDLENBQUM7QUFDckQsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFHLFlBQVksQ0FBQyxTQUFTLENBQUMsQ0FBQztBQUNyRCxNQUFNLENBQUMsTUFBTSxZQUFZLEdBQUcsWUFBWSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0FBQ25ELE1BQU0sQ0FBQyxNQUFNLGFBQWEsR0FBRyxZQUFZLENBQUMsU0FBUyxDQUFDLENBQUM7QUFDckQsTUFBTSxDQUFDLE1BQU0sV0FBVyxHQUFHLFlBQVksQ0FBQyxPQUFPLEVBQUU7SUFDL0MsY0FBYyxFQUFFLGdCQUFnQjtDQUNqQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjb21wb3NlTG9nTGluZSB9IGZyb20gJy4vbG9nLWZvcm1hdC5qcyc7XG5pbXBvcnQgeyBnZXRBY3RpdmVTcGFuIH0gZnJvbSAnLi90ZWxlbWV0cnkuanMnO1xuXG50eXBlIExvZ01ldGFkYXRhID0gUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG5cbnR5cGUgTG9nRm4gPSAobWVzc2FnZTogc3RyaW5nLCBtZXRhZGF0YT86IExvZ01ldGFkYXRhKSA9PiB2b2lkO1xuXG5leHBvcnQgaW50ZXJmYWNlIExvZ2dlciB7XG4gIGRlYnVnOiBMb2dGbjtcbiAgaW5mbzogTG9nRm47XG4gIHdhcm46IExvZ0ZuO1xuICBlcnJvcjogTG9nRm47XG4gIC8qKlxuICAgKiBSZXR1cm5zIGEgY2hpbGQgbG9nZ2VyIHRoYXQgbWVyZ2VzIHRoZSBnaXZlbiBtZXRhZGF0YSBpbnRvIGV2ZXJ5IGNhbGwuXG4gICAqIFVzZWZ1bCBmb3IgYXR0YWNoaW5nIHN0YWJsZSBjb250ZXh0IChlLmcuIGB3b3JrZmxvd1J1bklkYCwgYHdvcmtmbG93TmFtZWAsXG4gICAqIGBzdGVwSWRgKSBzbyBjYWxsZXJzIGRvbid0IGhhdmUgdG8gcmVwZWF0IGl0IG9uIGV2ZXJ5IGxvZy5cbiAgICpcbiAgICogQ2FsbC1zaXRlIG1ldGFkYXRhIHdpbnMgb24gY29uZmxpY3QsIHNvIGNoaWxkcmVuIGNhbiBzdGlsbCBvdmVycmlkZS5cbiAgICovXG4gIGNoaWxkOiAobWV0YWRhdGE6IExvZ01ldGFkYXRhKSA9PiBMb2dnZXI7XG4gIC8qKlxuICAgKiBDb252ZW5pZW5jZSBjaGlsZCBsb2dnZXIgZm9yIGEgd29ya2Zsb3cgcnVuLiBFcXVpdmFsZW50IHRvXG4gICAqIGBsb2dnZXIuY2hpbGQoeyB3b3JrZmxvd1J1bklkLCB3b3JrZmxvd05hbWUgfSlgLCBidXQgY2VudHJhbGl6ZWQgc28gYWxsXG4gICAqIHJ1bnRpbWUgY29kZSBzdHJ1Y3R1cmVzIHJ1biBtZXRhZGF0YSBjb25zaXN0ZW50bHkuXG4gICAqL1xuICBmb3JSdW46IChcbiAgICB3b3JrZmxvd1J1bklkOiBzdHJpbmcsXG4gICAgd29ya2Zsb3dOYW1lPzogc3RyaW5nLFxuICAgIGV4dHJhPzogTG9nTWV0YWRhdGFcbiAgKSA9PiBMb2dnZXI7XG59XG5cbnR5cGUgTG9nZ2VyT3B0aW9ucyA9IHtcbiAgZGVidWdOYW1lc3BhY2U/OiBzdHJpbmc7XG59O1xuXG4vKipcbiAqIExpZ2h0d2VpZ2h0IGBERUJVRz1gIHBhdHRlcm4gbWF0Y2hlci4gUmVwbGFjZXMgdGhlIGBkZWJ1Z2AgcGFja2FnZSwgd2hpY2hcbiAqIHdhcyBwcmV2aW91c2x5IGEgc3RhdGljIGRlcGVuZGVuY3kgb2YgdGhpcyBtb2R1bGUg4oCUIHRoYXQgaW1wb3J0IHBhdGhcbiAqIHB1bGxlZCBgZGVidWcvc3JjL25vZGVgIGFuZCBpdHMgZHluYW1pYyBgcmVxdWlyZSgndHR5JylgIGludG8gdGhlXG4gKiBnZW5lcmF0ZWQgTmV4dC5qcyB3ZWJwYWNrIGZsb3cgcm91dGUsIGJyZWFraW5nIHRoZSBWMiBjb21iaW5lZC1idW5kbGVcbiAqIGJ1aWxkIHdpdGggYER5bmFtaWMgcmVxdWlyZSBvZiBcInR0eVwiIGlzIG5vdCBzdXBwb3J0ZWRgLiBLZWVwaW5nIHRoaXNcbiAqIG1vZHVsZSBmcmVlIG9mIGBkZWJ1Z2AgaXMgYSBwcmVyZXF1aXNpdGUgZm9yIFYyIHdlYnBhY2sgYnVpbGRzLlxuICovXG5mdW5jdGlvbiBtYXRjaGVzRGVidWdOYW1lc3BhY2UoXG4gIG5hbWVzcGFjZTogc3RyaW5nLFxuICBwYXR0ZXJuTGlzdDogc3RyaW5nIHwgdW5kZWZpbmVkXG4pOiBib29sZWFuIHtcbiAgaWYgKCFwYXR0ZXJuTGlzdCkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGxldCBlbmFibGVkID0gZmFsc2U7XG4gIGZvciAoY29uc3QgcmF3UGF0dGVybiBvZiBwYXR0ZXJuTGlzdC5zcGxpdCgnLCcpKSB7XG4gICAgY29uc3QgcGF0dGVybiA9IHJhd1BhdHRlcm4udHJpbSgpO1xuICAgIGlmICghcGF0dGVybikge1xuICAgICAgY29udGludWU7XG4gICAgfVxuXG4gICAgY29uc3QgaXNOZWdhdGVkID0gcGF0dGVybi5zdGFydHNXaXRoKCctJyk7XG4gICAgY29uc3QgY2FuZGlkYXRlID0gaXNOZWdhdGVkID8gcGF0dGVybi5zbGljZSgxKSA6IHBhdHRlcm47XG4gICAgY29uc3QgcmVnZXggPSBuZXcgUmVnRXhwKFxuICAgICAgYF4ke2NhbmRpZGF0ZS5yZXBsYWNlKC9bfFxcXFx7fSgpW1xcXV4kKz8uXS9nLCAnXFxcXCQmJykucmVwbGFjZSgvXFwqL2csICcuKicpfSRgXG4gICAgKTtcblxuICAgIGlmIChyZWdleC50ZXN0KG5hbWVzcGFjZSkpIHtcbiAgICAgIGVuYWJsZWQgPSAhaXNOZWdhdGVkO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBlbmFibGVkO1xufVxuXG5mdW5jdGlvbiBjcmVhdGVMb2dnZXIobmFtZXNwYWNlOiBzdHJpbmcsIG9wdGlvbnM6IExvZ2dlck9wdGlvbnMgPSB7fSk6IExvZ2dlciB7XG4gIGNvbnN0IGJ1aWxkID0gKHBhcmVudE1ldGFkYXRhOiBMb2dNZXRhZGF0YSk6IExvZ2dlciA9PiB7XG4gICAgY29uc3QgZ2V0RGVidWdOYW1lc3BhY2UgPSAobGV2ZWw6IHN0cmluZykgPT5cbiAgICAgIG9wdGlvbnMuZGVidWdOYW1lc3BhY2UgPz8gYHdvcmtmbG93OiR7bmFtZXNwYWNlfToke2xldmVsfWA7XG5cbiAgICBjb25zdCBsb2dnZXIgPSAobGV2ZWw6IHN0cmluZyk6IExvZ0ZuID0+IHtcbiAgICAgIGNvbnN0IGRlYnVnTmFtZXNwYWNlID0gZ2V0RGVidWdOYW1lc3BhY2UobGV2ZWwpO1xuXG4gICAgICByZXR1cm4gKG1lc3NhZ2UsIG1ldGFkYXRhKSA9PiB7XG4gICAgICAgIGNvbnN0IGhhc1BhcmVudCA9IE9iamVjdC5rZXlzKHBhcmVudE1ldGFkYXRhKS5sZW5ndGggPiAwO1xuICAgICAgICBjb25zdCBoYXNDYWxsU2l0ZSA9IG1ldGFkYXRhICYmIE9iamVjdC5rZXlzKG1ldGFkYXRhKS5sZW5ndGggPiAwO1xuICAgICAgICBjb25zdCBtZXJnZWQgPVxuICAgICAgICAgIGhhc1BhcmVudCB8fCBoYXNDYWxsU2l0ZVxuICAgICAgICAgICAgPyB7IC4uLnBhcmVudE1ldGFkYXRhLCAuLi4obWV0YWRhdGEgPz8ge30pIH1cbiAgICAgICAgICAgIDogdW5kZWZpbmVkO1xuXG4gICAgICAgIC8vIEFsd2F5cyBvdXRwdXQgZXJyb3Ivd2FybiB0byBjb25zb2xlIHNvIHVzZXJzIHNlZSBjcml0aWNhbCBpc3N1ZXMuXG4gICAgICAgIC8vIGRlYnVnL2luZm8gb25seSBvdXRwdXQgd2hlbiBERUJVRyBlbnYgdmFyIG1hdGNoZXMgdGhlIG5hbWVzcGFjZS5cbiAgICAgICAgLy9cbiAgICAgICAgLy8gQ29tcG9zZSB0aGUgZnJhbWluZyArIHN0cnVjdHVyZWQgZmllbGRzICsgKHRyaW1tZWQpIHN0YWNrIGludG8gYVxuICAgICAgICAvLyBzaW5nbGUgc3RyaW5nIHNvIHRoZSBydW50aW1lJ3MgYGNvbnNvbGUuZXJyb3JgIC8gYHV0aWwuaW5zcGVjdGBcbiAgICAgICAgLy8gZG9lc24ndCBxdW90ZS1lc2NhcGUgbXVsdGktbGluZSBzdGFja3Mgb3IgcGFyYWdyYXBoIGhpbnRzIGluc2lkZVxuICAgICAgICAvLyBhIEpTT04teSBvYmplY3QgZHVtcC4gVGhlIGZyYW1pbmcgbGluZSBzdGF5cyBhdCB0aGUgdG9wIHdpdGggdGhlXG4gICAgICAgIC8vIHN0cnVjdHVyZWQgZmllbGRzIHJpZ2h0IHVuZGVyIGl0OyB0aGUgc3RhY2sgYm9keSDigJQgd2l0aCBmcmFtZXdvcmtcbiAgICAgICAgLy8gaW50ZXJuYWwgZnJhbWVzIGNvbGxhcHNlZCDigJQgc2l0cyBhdCB0aGUgYm90dG9tLiBTZWUgbG9nLWZvcm1hdC50cy5cbiAgICAgICAgaWYgKGxldmVsID09PSAnZXJyb3InIHx8IGxldmVsID09PSAnd2FybicpIHtcbiAgICAgICAgICBjb25zdCBvdXQgPSBsZXZlbCA9PT0gJ2Vycm9yJyA/IGNvbnNvbGUuZXJyb3IgOiBjb25zb2xlLndhcm47XG4gICAgICAgICAgb3V0KGNvbXBvc2VMb2dMaW5lKCdbd29ya2Zsb3ctc2RrXScsIG1lc3NhZ2UsIG1lcmdlZCkpO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgZGVidWdFbmFibGVkID0gbWF0Y2hlc0RlYnVnTmFtZXNwYWNlKFxuICAgICAgICAgIGRlYnVnTmFtZXNwYWNlLFxuICAgICAgICAgIHByb2Nlc3MuZW52LkRFQlVHXG4gICAgICAgICk7XG5cbiAgICAgICAgaWYgKGRlYnVnRW5hYmxlZCkge1xuICAgICAgICAgIGNvbnNvbGUuZGVidWcoYFske2RlYnVnTmFtZXNwYWNlfV0gJHttZXNzYWdlfWAsIG1lcmdlZCA/PyAnJyk7XG4gICAgICAgICAgZ2V0QWN0aXZlU3BhbigpXG4gICAgICAgICAgICAudGhlbigoc3BhbikgPT4ge1xuICAgICAgICAgICAgICBzcGFuPy5hZGRFdmVudChgJHtsZXZlbH0uJHtuYW1lc3BhY2V9YCwgeyBtZXNzYWdlLCAuLi5tZXJnZWQgfSk7XG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgLmNhdGNoKCgpID0+IHtcbiAgICAgICAgICAgICAgLy8gU2lsZW50bHkgaWdub3JlIHRlbGVtZXRyeSBlcnJvcnNcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9O1xuICAgIH07XG5cbiAgICByZXR1cm4ge1xuICAgICAgZGVidWc6IGxvZ2dlcignZGVidWcnKSxcbiAgICAgIGluZm86IGxvZ2dlcignaW5mbycpLFxuICAgICAgd2FybjogbG9nZ2VyKCd3YXJuJyksXG4gICAgICBlcnJvcjogbG9nZ2VyKCdlcnJvcicpLFxuICAgICAgY2hpbGQ6IChtZXRhZGF0YSkgPT4gYnVpbGQoeyAuLi5wYXJlbnRNZXRhZGF0YSwgLi4ubWV0YWRhdGEgfSksXG4gICAgICBmb3JSdW46ICh3b3JrZmxvd1J1bklkLCB3b3JrZmxvd05hbWUsIGV4dHJhKSA9PlxuICAgICAgICBidWlsZCh7XG4gICAgICAgICAgLi4ucGFyZW50TWV0YWRhdGEsXG4gICAgICAgICAgd29ya2Zsb3dSdW5JZCxcbiAgICAgICAgICAuLi4od29ya2Zsb3dOYW1lICE9PSB1bmRlZmluZWQgPyB7IHdvcmtmbG93TmFtZSB9IDoge30pLFxuICAgICAgICAgIC4uLihleHRyYSA/PyB7fSksXG4gICAgICAgIH0pLFxuICAgIH07XG4gIH07XG5cbiAgcmV0dXJuIGJ1aWxkKHt9KTtcbn1cblxuZXhwb3J0IGNvbnN0IHN0ZXBMb2dnZXIgPSBjcmVhdGVMb2dnZXIoJ3N0ZXAnKTtcbmV4cG9ydCBjb25zdCBydW50aW1lTG9nZ2VyID0gY3JlYXRlTG9nZ2VyKCdydW50aW1lJyk7XG5leHBvcnQgY29uc3Qgd2ViaG9va0xvZ2dlciA9IGNyZWF0ZUxvZ2dlcignd2ViaG9vaycpO1xuZXhwb3J0IGNvbnN0IGV2ZW50c0xvZ2dlciA9IGNyZWF0ZUxvZ2dlcignZXZlbnRzJyk7XG5leHBvcnQgY29uc3QgYWRhcHRlckxvZ2dlciA9IGNyZWF0ZUxvZ2dlcignYWRhcHRlcicpO1xuZXhwb3J0IGNvbnN0IGJ1aWxkTG9nZ2VyID0gY3JlYXRlTG9nZ2VyKCdidWlsZCcsIHtcbiAgZGVidWdOYW1lc3BhY2U6ICd3b3JrZmxvdzpidWlsZCcsXG59KTtcbiJdfQ==
|
package/dist/private.d.ts
CHANGED
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Utils used by the bundler when transforming code
|
|
3
3
|
*/
|
|
4
|
-
import type {
|
|
4
|
+
import type { WorldCapabilities } from '@workflow/world';
|
|
5
5
|
import type { EventsConsumer } from './events-consumer.js';
|
|
6
6
|
import type { QueueItem } from './global.js';
|
|
7
|
+
import type { ReplayPayloadCache } from './replay-payload-cache.js';
|
|
7
8
|
import type { Serializable } from './schemas.js';
|
|
9
|
+
import type { PayloadKey } from './serialization/encryption.js';
|
|
8
10
|
export type StepFunction<Args extends Serializable[] = any[], Result extends Serializable | unknown = unknown> = ((...args: Args) => Promise<Result>) & {
|
|
9
11
|
maxRetries?: number;
|
|
10
12
|
stepId?: string;
|
|
@@ -25,8 +27,19 @@ export declare function registerStepFunction(stepId: string, stepFn: StepFunctio
|
|
|
25
27
|
export declare function getStepFunction(stepId: string): StepFunction | undefined;
|
|
26
28
|
export interface WorkflowOrchestratorContext {
|
|
27
29
|
runId: string;
|
|
28
|
-
encryptionKey:
|
|
30
|
+
encryptionKey: PayloadKey | undefined;
|
|
31
|
+
worldCapabilities?: WorldCapabilities;
|
|
29
32
|
globalThis: typeof globalThis;
|
|
33
|
+
/**
|
|
34
|
+
* Increments when a suspension is accepted and on every retained-session
|
|
35
|
+
* resume. STEP suspension signals capture it when scheduled and no-op if
|
|
36
|
+
* it moved (see step.ts) — this drops same-boundary sibling signals and
|
|
37
|
+
* timers queued at boundary N that would fire after the session resumed
|
|
38
|
+
* into boundary N+1. Sleep/hook/attribute signals are intentionally
|
|
39
|
+
* unguarded: their presence makes the boundary unretainable, so a late
|
|
40
|
+
* signal correctly demotes the session (workflow.ts `onWorkflowError`).
|
|
41
|
+
*/
|
|
42
|
+
suspensionGeneration: number;
|
|
30
43
|
eventsConsumer: EventsConsumer;
|
|
31
44
|
/**
|
|
32
45
|
* Map of pending invocations keyed by correlationId.
|
|
@@ -34,6 +47,11 @@ export interface WorkflowOrchestratorContext {
|
|
|
34
47
|
*/
|
|
35
48
|
invocationsQueue: Map<string, QueueItem>;
|
|
36
49
|
onWorkflowError: (error: Error) => void;
|
|
50
|
+
/**
|
|
51
|
+
* Mints the ULID body of a correlation id. Every entity a replay creates
|
|
52
|
+
* draws from this one monotonic sequence, so an id is an ordinal over the
|
|
53
|
+
* whole run and both replays of a run must draw in the same order.
|
|
54
|
+
*/
|
|
37
55
|
generateUlid: () => string;
|
|
38
56
|
generateNanoid: () => string;
|
|
39
57
|
/**
|
|
@@ -46,18 +64,238 @@ export interface WorkflowOrchestratorContext {
|
|
|
46
64
|
promiseQueue: Promise<void>;
|
|
47
65
|
/**
|
|
48
66
|
* Counter of in-flight async data delivery operations (step result
|
|
49
|
-
* hydration, hook payload hydration). Suspensions
|
|
50
|
-
* to reach 0 before firing, to avoid preempting data
|
|
67
|
+
* hydration, hook payload hydration, abort signal hydration). Suspensions
|
|
68
|
+
* must wait for this to reach 0 before firing, to avoid preempting data
|
|
69
|
+
* delivery — e.g. dehydrating a step's arguments while an abort that should
|
|
70
|
+
* be reflected in those arguments is still hydrating its reason.
|
|
51
71
|
*/
|
|
52
72
|
pendingDeliveries: number;
|
|
73
|
+
/**
|
|
74
|
+
* Ordered registry of in-flight "branch-deciding" deliveries — the
|
|
75
|
+
* resolutions a workflow typically `Promise.race`s on, or awaits from
|
|
76
|
+
* independent concurrent branches: hook payloads (`hook_received`), wait
|
|
77
|
+
* completions (`wait_completed`), and step results (`step_completed` /
|
|
78
|
+
* `step_failed`). Keyed by the delivery's position (index) in the consumed
|
|
79
|
+
* event log.
|
|
80
|
+
*
|
|
81
|
+
* The problem: each of these resolutions reaches workflow code after a
|
|
82
|
+
* different, workload-dependent number of microtask hops. A buffered hook
|
|
83
|
+
* payload is observed via the async hook iterator (`yield await this`),
|
|
84
|
+
* costing extra hops; a `wait_completed` resolves with fewer, and a reused
|
|
85
|
+
* sleep can resolve in an entirely earlier loop iteration; a step result is
|
|
86
|
+
* gated on hydration whose cost varies between replays of the SAME
|
|
87
|
+
* invocation — the first replay pays the full decrypt/decompress/revive,
|
|
88
|
+
* while later replays sharing the invocation's `ReplayPayloadCache`
|
|
89
|
+
* memo-hit small primitive results and resolve in one or two hops. Either
|
|
90
|
+
* way, the resolution that the committed event log ordered first can lose a
|
|
91
|
+
* `Promise.race` (or a `useStep` ULID allocation) to a faster- or
|
|
92
|
+
* already-resolved competitor, diverging from the log and surfacing as
|
|
93
|
+
* `CorruptedEventLogError`.
|
|
94
|
+
*
|
|
95
|
+
* The fix is a strict, deterministic delivery order anchored on
|
|
96
|
+
* event-log position: a delivery does not resolve to the workflow until
|
|
97
|
+
* every relevant earlier-in-log delivery has been delivered. Because the
|
|
98
|
+
* gate is "the earlier delivery resolved", not "won a timing race", the
|
|
99
|
+
* outcome is independent of microtask hops, hydration/decryption time,
|
|
100
|
+
* and `Promise.race` argument order. Which earlier kinds a delivery defers
|
|
101
|
+
* behind is spelled out on {@link awaitEarlierDeliveries}.
|
|
102
|
+
*
|
|
103
|
+
* Index is used rather than the `eventId` string because `eventId` is an
|
|
104
|
+
* opaque, world-assigned value not guaranteed to sort in creation order
|
|
105
|
+
* (only the bundled ULID worlds happen to).
|
|
106
|
+
*
|
|
107
|
+
* Optional so older/out-of-tree contexts (and lightweight test harnesses)
|
|
108
|
+
* that do not initialize it degrade gracefully to the previous behavior.
|
|
109
|
+
*/
|
|
110
|
+
pendingDeliveryBarriers?: Map<number, DeliveryBarrierEntry>;
|
|
111
|
+
/**
|
|
112
|
+
* Invocation-scoped cache of prepared serialized payloads and immutable final
|
|
113
|
+
* values. Prepared bytes survive fresh replay VMs; object graphs do not.
|
|
114
|
+
*/
|
|
115
|
+
replayPayloadCache: ReplayPayloadCache;
|
|
116
|
+
}
|
|
117
|
+
/** The kind of branch-deciding delivery a barrier represents. */
|
|
118
|
+
export type DeliveryKind = 'hook' | 'wait' | 'step';
|
|
119
|
+
interface DeliveryBarrierEntry {
|
|
120
|
+
kind: DeliveryKind;
|
|
121
|
+
/** Resolves once this delivery has resolved to the workflow. */
|
|
122
|
+
delivered: Promise<void>;
|
|
123
|
+
/**
|
|
124
|
+
* Whether this delivery is committed to reaching the workflow without any
|
|
125
|
+
* further action by workflow code. True for wait completions and step
|
|
126
|
+
* results, which always resolve from their own chain, and for a hook payload
|
|
127
|
+
* that already had a waiting consumer when it was consumed.
|
|
128
|
+
*
|
|
129
|
+
* False for a BUFFERED hook payload no consumer has claimed yet: it is
|
|
130
|
+
* delivered by `claim()`, i.e. whenever the workflow next reads the hook —
|
|
131
|
+
* which may be causally *after* a later-in-log delivery. `arm()` flips it
|
|
132
|
+
* once a consumer takes the payload.
|
|
133
|
+
*/
|
|
134
|
+
armed: boolean;
|
|
135
|
+
}
|
|
136
|
+
/**
|
|
137
|
+
* Awaits, in strict event-log order, every still-registered delivery that is
|
|
138
|
+
* earlier in the log than `eventIndex` and that a delivery of `kind` defers
|
|
139
|
+
* behind (see {@link DEFER_BEHIND}), so that this resolution is handed to the
|
|
140
|
+
* workflow only after all relevant earlier-in-log deliveries have been. This
|
|
141
|
+
* is what keeps a `Promise.race` — or the ULID a follow-up `useStep` draws on
|
|
142
|
+
* a concurrent branch — deterministic and aligned with the committed event
|
|
143
|
+
* log, independent of microtask-hop counts, hydration time, or race-argument
|
|
144
|
+
* order. When this delivery does have to wait, it also yields a macrotask
|
|
145
|
+
* afterwards so the earlier delivery's consumer can run to its own next
|
|
146
|
+
* suspension point first; see the comment at that `await` for why ordering the
|
|
147
|
+
* `resolve()` calls alone is not enough.
|
|
148
|
+
*
|
|
149
|
+
* What counts as "defers behind" is {@link gatesOn}, shared with
|
|
150
|
+
* {@link computeResolvesOnItsOwn} so the two cannot drift.
|
|
151
|
+
*
|
|
152
|
+
* One asymmetry: a STEP result skips any earlier delivery that is UNARMED,
|
|
153
|
+
* i.e. a buffered hook payload no consumer has claimed. Such a payload is
|
|
154
|
+
* delivered only when the workflow next reads the hook, and reaching that read
|
|
155
|
+
* very commonly requires the step result itself (`await stepX()` before the
|
|
156
|
+
* read). Gating the step on it would stall the workflow until the barrier's
|
|
157
|
+
* idle safety net fires, which then releases every delivery queued behind that
|
|
158
|
+
* payload at once — losing exactly the race this ordering exists to protect.
|
|
159
|
+
* Waits and hooks keep gating on unclaimed payloads: for them, waiting for the
|
|
160
|
+
* claim IS the ordering guarantee (a `wait_completed` must not preempt a
|
|
161
|
+
* payload the log ordered first).
|
|
162
|
+
*
|
|
163
|
+
* The skip is direct, never transitive. A step still gates on an earlier ARMED
|
|
164
|
+
* wait or hook, including one that is itself parked behind an unclaimed
|
|
165
|
+
* payload. Skipping those too would invert log order for the commonest shape
|
|
166
|
+
* there is: a workflow that creates a hook it does not read on this branch,
|
|
167
|
+
* races `step` against `sleep`, and has the log say the sleep won. The step
|
|
168
|
+
* would then overtake the wait, both branches would swap the correlation ids
|
|
169
|
+
* they draw next, and replay would diverge — see
|
|
170
|
+
* `step-delivery-ordering.test.ts`. Waiting instead is safe because the
|
|
171
|
+
* payload's own idle safety net retires it and the whole chain then delivers
|
|
172
|
+
* in log order; {@link hasParkedCommittedDelivery} deliberately reports such a
|
|
173
|
+
* step as not self-resolving so that idle stays reachable.
|
|
174
|
+
*
|
|
175
|
+
* "The whole chain then delivers in log order" rests on the PAYLOAD's safety
|
|
176
|
+
* net observing idle before the net of the wait parked behind it. If the
|
|
177
|
+
* wait's net fired first, the step's gate would open while the wait was still
|
|
178
|
+
* parked on the payload barrier and the inversion above would reappear. Within
|
|
179
|
+
* one drain window that order is structural, and carried by FIFO of the
|
|
180
|
+
* safety-net polls: nets arm via `setTimeout` in log order during synchronous
|
|
181
|
+
* consumption, each polling round re-arms through `promiseQueue.then(...)` in
|
|
182
|
+
* the order the checks ran, and each net that fires flips
|
|
183
|
+
* {@link hasParkedCommittedDelivery} back to true, re-blocking the rest until
|
|
184
|
+
* the released delivery completes. Replay — where divergence manifests —
|
|
185
|
+
* always consumes the log in one window. Do not "optimize" the net scheduling
|
|
186
|
+
* in a way that breaks that per-window FIFO.
|
|
187
|
+
*/
|
|
188
|
+
export declare function awaitEarlierDeliveries(ctx: WorkflowOrchestratorContext, eventIndex: number | undefined, kind: DeliveryKind): Promise<void>;
|
|
189
|
+
/** Handle for a registered branch-deciding delivery barrier. */
|
|
190
|
+
export interface DeliveryBarrier {
|
|
191
|
+
/**
|
|
192
|
+
* Mark this delivery as delivered to the workflow. Resolves its
|
|
193
|
+
* `delivered` promise so any later-in-log delivery gated on it (via
|
|
194
|
+
* {@link awaitEarlierDeliveries}) may proceed, and removes it from the
|
|
195
|
+
* registry. Idempotent.
|
|
196
|
+
*/
|
|
197
|
+
markDelivered: () => void;
|
|
198
|
+
/**
|
|
199
|
+
* Mark this delivery as committed to happening, for a barrier registered
|
|
200
|
+
* unarmed (a buffered hook payload) once a consumer has claimed it. From
|
|
201
|
+
* then on a later step result may be ordered behind it. Idempotent.
|
|
202
|
+
*/
|
|
203
|
+
arm: () => void;
|
|
53
204
|
}
|
|
205
|
+
/**
|
|
206
|
+
* Register a branch-deciding delivery at its event-log index so that later
|
|
207
|
+
* deliveries can be ordered strictly after it. Returns an inert handle when
|
|
208
|
+
* `pendingDeliveryBarriers` is not initialized.
|
|
209
|
+
*
|
|
210
|
+
* Pass `armed: false` for a delivery whose resolution waits on workflow code
|
|
211
|
+
* asking for it (a buffered hook payload); call `arm()` when it does.
|
|
212
|
+
*
|
|
213
|
+
* To guarantee a later delivery gated on this one can never hang when this
|
|
214
|
+
* delivery is abandoned (the workflow took a different branch or is
|
|
215
|
+
* suspending and never observes it), the barrier auto-resolves at idle.
|
|
216
|
+
*
|
|
217
|
+
* INVARIANT required of every call site: a barrier that is ever `armed` must
|
|
218
|
+
* be paired with a delivery chain that runs unconditionally — attached when
|
|
219
|
+
* the event is consumed (waits, step results, waiting-consumer hook payloads,
|
|
220
|
+
* aborts), or by the `claim()` whose invocation is what arms it (buffered
|
|
221
|
+
* hook payloads). The idle check ({@link scheduleWhenIdle}) refuses to
|
|
222
|
+
* observe idle while an armed, self-resolving barrier is undelivered, and the
|
|
223
|
+
* safety net below is itself idle-gated — so an armed barrier with no
|
|
224
|
+
* unconditional chain would livelock every idle check in the run, including
|
|
225
|
+
* its own retirement.
|
|
226
|
+
*/
|
|
227
|
+
export declare function registerDeliveryBarrier(ctx: WorkflowOrchestratorContext, eventIndex: number | undefined, kind: DeliveryKind, options?: {
|
|
228
|
+
armed?: boolean;
|
|
229
|
+
}): DeliveryBarrier;
|
|
230
|
+
/**
|
|
231
|
+
* Whether some registered branch-deciding delivery is going to reach the
|
|
232
|
+
* workflow without any further help (it is armed and not transitively parked
|
|
233
|
+
* behind an unclaimed buffered payload — see {@link resolvesOnItsOwn}) but
|
|
234
|
+
* has not been handed over yet.
|
|
235
|
+
*
|
|
236
|
+
* This is the delivery state `pendingDeliveries` cannot see. That counter
|
|
237
|
+
* covers the hydration window inside a serial `promiseQueue` slot and is
|
|
238
|
+
* released there, while the delivery's `resolve()` runs later, from a
|
|
239
|
+
* detached continuation behind {@link awaitEarlierDeliveries} — including its
|
|
240
|
+
* macrotask yield whenever the delivery had to defer. Replaying a batch of N
|
|
241
|
+
* parallel step results consumed in one drain window leaves N-1 of them
|
|
242
|
+
* parked on that yield with `pendingDeliveries` already at 0. An idle check
|
|
243
|
+
* armed during the same window (a pending `sleep()` arms one on every replay)
|
|
244
|
+
* could then observe "idle" mid-deferral and raise a `WorkflowSuspension`
|
|
245
|
+
* BEFORE the workflow's own continuations ran — a suspension carrying none of
|
|
246
|
+
* the follow-up work the batch was about to create, which the runtime
|
|
247
|
+
* dutifully schedules as nothing, leaving the run dormant until an unrelated
|
|
248
|
+
* timer fires (vercel/workflow#3183).
|
|
249
|
+
*
|
|
250
|
+
* Deliveries that do NOT resolve on their own must be excluded, not for
|
|
251
|
+
* accuracy but for termination: an unclaimed buffered hook payload is retired
|
|
252
|
+
* BY the idle safety net in {@link registerDeliveryBarrier}, so counting it
|
|
253
|
+
* here would gate its own retirement. That reasoning extends to whatever is
|
|
254
|
+
* parked behind such a payload — a wait, and a step gating on that wait — for
|
|
255
|
+
* the same reason: the whole chain moves only once the net fires, and it
|
|
256
|
+
* cannot fire while the chain is counted. Self-resolving deliveries always
|
|
257
|
+
* deliver from their own chains (see the INVARIANT on
|
|
258
|
+
* {@link registerDeliveryBarrier}) and never need that net, so waiting on
|
|
259
|
+
* them is deadlock-free.
|
|
260
|
+
*/
|
|
261
|
+
export declare function hasParkedCommittedDelivery(ctx: WorkflowOrchestratorContext): boolean;
|
|
262
|
+
/**
|
|
263
|
+
* Whether no data delivery (step result, hook payload) is in flight right now.
|
|
264
|
+
*
|
|
265
|
+
* "In flight" is two distinct windows, each with its own guard:
|
|
266
|
+
* `pendingDeliveries > 0` covers hydration inside the serial queue slots, and
|
|
267
|
+
* {@link hasParkedCommittedDelivery} covers the detached gap between a slot
|
|
268
|
+
* releasing that counter and the delivery's `resolve()` actually running —
|
|
269
|
+
* deliberately outside `pendingDeliveries` (see step.ts), and invisible to it.
|
|
270
|
+
*
|
|
271
|
+
* Anything that decides a replay is over, or that a replay went wrong, has to
|
|
272
|
+
* consult this first: while it is false the workflow VM is mid-reaction, so
|
|
273
|
+
* what it has and has not done yet says nothing about the run. Two callers
|
|
274
|
+
* read it, for the two such decisions: {@link scheduleWhenIdle} for the
|
|
275
|
+
* suspension, and the events consumer's unconsumed-event check for divergence.
|
|
276
|
+
*/
|
|
277
|
+
export declare function isDeliveryIdle(ctx: WorkflowOrchestratorContext): boolean;
|
|
54
278
|
/**
|
|
55
279
|
* Schedule a callback to fire only after all pending data deliveries
|
|
56
280
|
* (step results, hook payloads) and async deserialization have completed.
|
|
57
|
-
* Uses a polling loop: setTimeout(0) → check pendingDeliveries
|
|
58
|
-
* if
|
|
59
|
-
* delivery pattern where each hook
|
|
60
|
-
* async work to the promiseQueue.
|
|
281
|
+
* Uses a polling loop: setTimeout(0) → check pendingDeliveries and the
|
|
282
|
+
* barrier registry → if anything is still in flight, wait for promiseQueue →
|
|
283
|
+
* repeat. This handles the multi-round delivery pattern where each hook
|
|
284
|
+
* payload delivery cycle appends new async work to the promiseQueue. What
|
|
285
|
+
* counts as in flight is {@link isDeliveryIdle}.
|
|
286
|
+
*
|
|
287
|
+
* The initial `setTimeout(0)` macrotask is load-bearing and must NOT be
|
|
288
|
+
* downgraded to a microtask (`queueMicrotask`/`Promise.resolve().then`).
|
|
289
|
+
* `pendingDeliveries` only guards the host-side hydration window; between a
|
|
290
|
+
* delivery's `resolve()` and the workflow VM body running its continuation to
|
|
291
|
+
* register the next subscriber, `pendingDeliveries` is already 0 even though
|
|
292
|
+
* the VM is mid-reaction. Node does not guarantee a microtask scheduled in
|
|
293
|
+
* the host context settles after the cross-VM promise chain (resolve in host
|
|
294
|
+
* → workflow code in VM → subscribe back in host); the macrotask boundary
|
|
295
|
+
* gives that chain time to run, so the suspension does not preempt a sibling
|
|
296
|
+
* delivery still in flight. Empirically, replacing it with `queueMicrotask`
|
|
297
|
+
* breaks hook/sleep `Promise.race` ordering (CorruptedEventLogError).
|
|
61
298
|
*/
|
|
62
299
|
export declare function scheduleWhenIdle(ctx: WorkflowOrchestratorContext, fn: () => void): void;
|
|
300
|
+
export {};
|
|
63
301
|
//# sourceMappingURL=private.d.ts.map
|
package/dist/private.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"private.d.ts","sourceRoot":"","sources":["../src/private.ts"],"names":[],"mappings":"AAAA;;GAEG;
|
|
1
|
+
{"version":3,"file":"private.d.ts","sourceRoot":"","sources":["../src/private.ts"],"names":[],"mappings":"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"}
|