@temelj/workflow 0.0.0-alpha.2 → 0.0.0-alpha.4
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 +394 -2
- package/dist/attributes.d.mts +11 -9
- package/dist/attributes.mjs +23 -5
- package/dist/bundle.d.mts +5 -23
- package/dist/bundle.mjs +2 -18
- package/dist/client/create.d.mts +26 -23
- package/dist/client/create.mjs +26 -32
- package/dist/client/facades.d.mts +12 -18
- package/dist/client/facades.mjs +102 -93
- package/dist/client/mod.mjs +1 -2
- package/dist/client/run-handle.d.mts +17 -54
- package/dist/client/run-handle.mjs +35 -105
- package/dist/client/worker-options.d.mts +8 -8
- package/dist/client/worker-options.mjs +11 -11
- package/dist/cloudflare/cloudflare.d.mts +4 -5
- package/dist/cloudflare/codec.d.mts +28 -13
- package/dist/cloudflare/codec.mjs +40 -17
- package/dist/cloudflare/entrypoint.d.mts +3 -4
- package/dist/cloudflare/entrypoint.mjs +4 -3
- package/dist/cloudflare/execution.d.mts +3 -4
- package/dist/cloudflare/execution.mjs +20 -13
- package/dist/cloudflare/host.d.mts +6 -7
- package/dist/cloudflare/host.mjs +7 -6
- package/dist/cloudflare/mod.d.mts +4 -4
- package/dist/cloudflare/mod.mjs +2 -2
- package/dist/cloudflare/name.d.mts +3 -4
- package/dist/cloudflare/name.mjs +3 -3
- package/dist/cloudflare/registry.d.mts +3 -23
- package/dist/cloudflare/registry.mjs +2 -20
- package/dist/cloudflare/runtime.d.mts +11 -18
- package/dist/cloudflare/runtime.mjs +52 -73
- package/dist/cloudflare/step.d.mts +6 -6
- package/dist/cloudflare/step.mjs +69 -57
- package/dist/cloudflare/types.d.mts +17 -36
- package/dist/collection.d.mts +8 -11
- package/dist/collection.mjs +10 -14
- package/dist/compiled-function.d.mts +14 -19
- package/dist/compiled-function.mjs +12 -24
- package/dist/compiled.d.mts +4 -0
- package/dist/compiled.mjs +4 -0
- package/dist/compiler/ast.d.mts +26 -0
- package/dist/{vite → compiler}/ast.mjs +24 -16
- package/dist/{vite → compiler}/error.d.mts +4 -6
- package/dist/{vite → compiler}/error.mjs +14 -16
- package/dist/compiler/manifest.d.mts +6 -0
- package/dist/{vite → compiler}/manifest.mjs +9 -7
- package/dist/compiler/plugin.d.mts +7 -0
- package/dist/{vite → compiler}/plugin.mjs +45 -46
- package/dist/compiler/safety.d.mts +12 -0
- package/dist/{vite → compiler}/safety.mjs +5 -11
- package/dist/{vite → compiler}/source-edit.d.mts +3 -4
- package/dist/{vite → compiler}/source-edit.mjs +1 -1
- package/dist/{vite → compiler}/source-map.d.mts +4 -3
- package/dist/{vite → compiler}/source-map.mjs +3 -3
- package/dist/compiler/source.d.mts +7 -0
- package/dist/{vite → compiler}/source.mjs +1 -1
- package/dist/compiler/transform.d.mts +12 -0
- package/dist/{vite → compiler}/transform.mjs +37 -38
- package/dist/definition.d.mts +17 -25
- package/dist/definition.mjs +19 -35
- package/dist/engine/child-workflow.d.mts +5 -9
- package/dist/engine/child-workflow.mjs +46 -67
- package/dist/engine/command-identity.d.mts +5 -6
- package/dist/engine/command-identity.mjs +9 -5
- package/dist/engine/context.d.mts +17 -0
- package/dist/engine/create.d.mts +36 -94
- package/dist/engine/create.mjs +55 -260
- package/dist/engine/deterministic.d.mts +6 -11
- package/dist/engine/deterministic.mjs +47 -68
- package/dist/engine/durable-command.d.mts +5 -5
- package/dist/engine/durable-command.mjs +2 -2
- package/dist/engine/execution-service.d.mts +20 -24
- package/dist/engine/execution-service.mjs +54 -52
- package/dist/engine/hooks.d.mts +17 -39
- package/dist/engine/hooks.mjs +73 -94
- package/dist/engine/inspection.d.mts +23 -15
- package/dist/engine/inspection.mjs +55 -29
- package/dist/engine/lifecycle.d.mts +6 -12
- package/dist/engine/lifecycle.mjs +5 -5
- package/dist/engine/lock-replay.d.mts +8 -15
- package/dist/engine/lock-replay.mjs +12 -25
- package/dist/engine/lock.d.mts +10 -15
- package/dist/engine/lock.mjs +65 -51
- package/dist/engine/message.d.mts +14 -34
- package/dist/engine/message.mjs +94 -127
- package/dist/engine/observation.d.mts +9 -11
- package/dist/engine/observation.mjs +18 -27
- package/dist/engine/replay.d.mts +18 -19
- package/dist/engine/replay.mjs +32 -56
- package/dist/engine/resume.d.mts +16 -0
- package/dist/engine/resume.mjs +24 -0
- package/dist/engine/retry.d.mts +15 -19
- package/dist/engine/retry.mjs +17 -17
- package/dist/engine/run-data.d.mts +4 -8
- package/dist/engine/run-data.mjs +24 -22
- package/dist/engine/run-service.d.mts +24 -33
- package/dist/engine/run-service.mjs +125 -93
- package/dist/engine/run-utils.d.mts +11 -13
- package/dist/engine/run-utils.mjs +23 -46
- package/dist/engine/schedule.d.mts +8 -22
- package/dist/engine/schedule.mjs +37 -34
- package/dist/engine/serialization.d.mts +9 -6
- package/dist/engine/serialization.mjs +30 -21
- package/dist/engine/signals.d.mts +23 -0
- package/dist/engine/signals.mjs +41 -0
- package/dist/engine/start.d.mts +18 -0
- package/dist/engine/start.mjs +88 -0
- package/dist/engine/state.d.mts +37 -67
- package/dist/engine/state.mjs +127 -282
- package/dist/engine/step-api.d.mts +5 -8
- package/dist/engine/step-api.mjs +16 -16
- package/dist/engine/stream-reader.d.mts +12 -0
- package/dist/engine/stream-reader.mjs +154 -0
- package/dist/engine/stream.d.mts +9 -54
- package/dist/engine/stream.mjs +54 -196
- package/dist/engine/summary/recovery.d.mts +35 -0
- package/dist/engine/summary/recovery.mjs +363 -0
- package/dist/engine/summary/runs.d.mts +43 -0
- package/dist/engine/summary/runs.mjs +294 -0
- package/dist/engine/summary/step-attempts.d.mts +5 -10
- package/dist/engine/summary/step-attempts.mjs +157 -36
- package/dist/engine/summary/tally.d.mts +44 -0
- package/dist/engine/summary/tally.mjs +142 -0
- package/dist/engine/task.d.mts +4 -5
- package/dist/engine/task.mjs +40 -48
- package/dist/errors/base.d.mts +17 -77
- package/dist/errors/base.mjs +26 -327
- package/dist/errors/capability.d.mts +3 -6
- package/dist/errors/capability.mjs +4 -8
- package/dist/errors/codes.d.mts +116 -0
- package/dist/{types/error-code.mjs → errors/codes.mjs} +2 -17
- package/dist/errors/definition.d.mts +3 -17
- package/dist/errors/definition.mjs +5 -42
- package/dist/errors/failures.d.mts +17 -51
- package/dist/errors/failures.mjs +35 -102
- package/dist/errors/hook.d.mts +5 -9
- package/dist/errors/hook.mjs +4 -16
- package/dist/errors/implementation.d.mts +3 -6
- package/dist/errors/implementation.mjs +7 -12
- package/dist/errors/lock.d.mts +7 -20
- package/dist/errors/lock.mjs +8 -44
- package/dist/errors/message.d.mts +14 -59
- package/dist/errors/message.mjs +13 -39
- package/dist/errors/mod.d.mts +4 -5
- package/dist/errors/mod.mjs +5 -7
- package/dist/errors/records.d.mts +10 -4
- package/dist/errors/records.mjs +256 -256
- package/dist/errors/run.d.mts +27 -68
- package/dist/errors/run.mjs +31 -85
- package/dist/errors/schedule.d.mts +7 -18
- package/dist/errors/schedule.mjs +7 -39
- package/dist/errors/step.d.mts +12 -45
- package/dist/errors/step.mjs +13 -34
- package/dist/errors/stream.d.mts +8 -16
- package/dist/errors/stream.mjs +7 -41
- package/dist/esbuild.d.mts +6 -4
- package/dist/esbuild.mjs +2 -1
- package/dist/events/descriptors.d.mts +12 -241
- package/dist/events/descriptors.mjs +12 -5
- package/dist/history/projection.d.mts +4 -6
- package/dist/history/projection.mjs +22 -26
- package/dist/history/replay-projection.d.mts +44 -48
- package/dist/history/replay-projection.mjs +41 -50
- package/dist/history/{mod.d.mts → replay.d.mts} +16 -21
- package/dist/history/{mod.mjs → replay.mjs} +21 -25
- package/dist/history/sequencer.d.mts +10 -11
- package/dist/history/sequencer.mjs +11 -7
- package/dist/history/step-attempts.d.mts +4 -7
- package/dist/history/step-attempts.mjs +8 -9
- package/dist/history/timeline.d.mts +4 -13
- package/dist/history/timeline.mjs +46 -265
- package/dist/history/validator.d.mts +5 -7
- package/dist/history/validator.mjs +9 -24
- package/dist/hook-token.d.mts +7 -0
- package/dist/hook-token.mjs +32 -0
- package/dist/ids.d.mts +8 -0
- package/dist/ids.mjs +21 -0
- package/dist/message-options.d.mts +11 -5
- package/dist/message-options.mjs +9 -7
- package/dist/mod.d.mts +32 -36
- package/dist/mod.mjs +9 -13
- package/dist/otel/metrics.d.mts +31 -0
- package/dist/otel/metrics.mjs +60 -0
- package/dist/otel/mod.d.mts +3 -0
- package/dist/otel/mod.mjs +3 -0
- package/dist/otel/spans.d.mts +24 -0
- package/dist/otel/spans.mjs +218 -0
- package/dist/otel/support.d.mts +15 -8
- package/dist/otel/support.mjs +18 -40
- package/dist/{otel.d.mts → otel/telemetry.d.mts} +5 -6
- package/dist/otel/telemetry.mjs +305 -0
- package/dist/pagination.d.mts +6 -12
- package/dist/pagination.mjs +10 -14
- package/dist/registry.d.mts +8 -5
- package/dist/registry.mjs +19 -10
- package/dist/rolldown.d.mts +6 -4
- package/dist/rolldown.mjs +2 -1
- package/dist/rollup.d.mts +6 -4
- package/dist/rollup.mjs +2 -1
- package/dist/rspack.d.mts +6 -4
- package/dist/rspack.mjs +2 -1
- package/dist/run-status.d.mts +29 -0
- package/dist/run-status.mjs +42 -0
- package/dist/schema/common.d.mts +22 -0
- package/dist/schema/common.mjs +54 -0
- package/dist/schema/error.d.mts +17 -0
- package/dist/schema/error.mjs +39 -0
- package/dist/schema/events.d.mts +446 -0
- package/dist/schema/events.mjs +235 -0
- package/dist/schema/pagination.d.mts +5 -0
- package/dist/schema/pagination.mjs +11 -0
- package/dist/schema/persisted-value.d.mts +8 -0
- package/dist/schema/persisted-value.mjs +94 -0
- package/dist/schema/run.d.mts +51 -0
- package/dist/schema/run.mjs +88 -0
- package/dist/schema/store.d.mts +94 -0
- package/dist/schema/store.mjs +116 -0
- package/dist/step-definition.d.mts +4 -9
- package/dist/step-definition.mjs +2 -2
- package/dist/store/capabilities.d.mts +8 -9
- package/dist/store/capabilities.mjs +7 -7
- package/dist/store/cleanup.d.mts +9 -14
- package/dist/store/cleanup.mjs +86 -85
- package/dist/store/create.d.mts +28 -29
- package/dist/store/create.mjs +10 -11
- package/dist/store/events.d.mts +48 -0
- package/dist/store/events.mjs +263 -0
- package/dist/store/indexes.d.mts +25 -0
- package/dist/store/indexes.mjs +282 -0
- package/dist/store/instrumentation.d.mts +2 -3
- package/dist/store/instrumentation.mjs +30 -30
- package/dist/store/lock.d.mts +4 -5
- package/dist/store/lock.mjs +5 -7
- package/dist/store/materialization.d.mts +10 -17
- package/dist/store/materialization.mjs +39 -33
- package/dist/store/mod.d.mts +3 -3
- package/dist/store/mod.mjs +2 -2
- package/dist/store/query.d.mts +13 -17
- package/dist/store/query.mjs +13 -13
- package/dist/store/run.d.mts +25 -34
- package/dist/store/run.mjs +67 -108
- package/dist/store/schedule.d.mts +6 -8
- package/dist/store/schedule.mjs +11 -11
- package/dist/store/step-attempt.d.mts +9 -12
- package/dist/store/step-attempt.mjs +9 -9
- package/dist/store/storage-value.d.mts +3 -3
- package/dist/store/storage-value.mjs +17 -1
- package/dist/store/validation.d.mts +17 -20
- package/dist/store/validation.mjs +30 -33
- package/dist/store-keys.d.mts +35 -47
- package/dist/store-keys.mjs +9 -17
- package/dist/telemetry.d.mts +16 -16
- package/dist/telemetry.mjs +3 -3
- package/dist/temporal.d.mts +11 -16
- package/dist/temporal.mjs +8 -9
- package/dist/timer.d.mts +12 -10
- package/dist/timer.mjs +11 -3
- package/dist/types/cleanup.d.mts +13 -50
- package/dist/types/cleanup.mjs +1 -22
- package/dist/types/client.d.mts +101 -162
- package/dist/types/{vite.d.mts → compiler.d.mts} +17 -24
- package/dist/types/compiler.mjs +1 -0
- package/dist/types/definition.d.mts +22 -34
- package/dist/types/engine-options.d.mts +10 -17
- package/dist/types/engine.d.mts +15 -274
- package/dist/types/error.d.mts +15 -217
- package/dist/types/error.mjs +1 -48
- package/dist/types/events.d.mts +59 -2730
- package/dist/types/events.mjs +1 -283
- package/dist/types/hook.d.mts +27 -85
- package/dist/types/hook.mjs +1 -66
- package/dist/types/ids.d.mts +9 -0
- package/dist/types/ids.mjs +1 -0
- package/dist/types/lock.d.mts +8 -26
- package/dist/types/lock.mjs +1 -18
- package/dist/types/message.d.mts +29 -43
- package/dist/types/observation.d.mts +43 -58
- package/dist/types/pagination.d.mts +6 -22
- package/dist/types/pagination.mjs +1 -13
- package/dist/types/result.d.mts +11 -43
- package/dist/types/retry.d.mts +7 -14
- package/dist/types/run-list.d.mts +9 -11
- package/dist/types/run-options.d.mts +25 -32
- package/dist/types/run.d.mts +35 -315
- package/dist/types/run.mjs +1 -207
- package/dist/types/runtime.d.mts +33 -145
- package/dist/types/runtime.mjs +1 -21
- package/dist/types/schedule.d.mts +13 -72
- package/dist/types/schedule.mjs +1 -48
- package/dist/types/step-attempts.d.mts +65 -261
- package/dist/types/step-attempts.mjs +1 -43
- package/dist/types/step.d.mts +66 -77
- package/dist/types/step.mjs +1 -5
- package/dist/types/store.d.mts +50 -182
- package/dist/types/stream.d.mts +19 -40
- package/dist/types/summary.d.mts +174 -278
- package/dist/types/telemetry.d.mts +23 -28
- package/dist/types/telemetry.mjs +1 -9
- package/dist/types/timeline.d.mts +46 -233
- package/dist/types/worker.d.mts +22 -29
- package/dist/values.d.mts +15 -0
- package/dist/values.mjs +57 -0
- package/dist/vite.d.mts +5 -6
- package/dist/vite.mjs +3 -4
- package/dist/webpack.d.mts +6 -4
- package/dist/webpack.mjs +2 -1
- package/dist/worker/error.d.mts +2 -9
- package/dist/worker/error.mjs +20 -32
- package/dist/worker/missing-implementation.d.mts +19 -0
- package/dist/worker/missing-implementation.mjs +62 -0
- package/dist/worker/worker.d.mts +18 -0
- package/dist/{worker.mjs → worker/worker.mjs} +64 -118
- package/package.json +28 -47
- package/dist/engine/execution-api.d.mts +0 -29
- package/dist/engine/execution-api.mjs +0 -33
- package/dist/engine/inspection-api.d.mts +0 -34
- package/dist/engine/inspection-api.mjs +0 -78
- package/dist/engine/mod.d.mts +0 -4
- package/dist/engine/mod.mjs +0 -2
- package/dist/engine/recovery.d.mts +0 -26
- package/dist/engine/recovery.mjs +0 -92
- package/dist/engine/retry-policy.d.mts +0 -4
- package/dist/engine/retry-policy.mjs +0 -4
- package/dist/engine/start-api.d.mts +0 -30
- package/dist/engine/start-api.mjs +0 -99
- package/dist/engine/summary/active-events.d.mts +0 -34
- package/dist/engine/summary/active-events.mjs +0 -69
- package/dist/engine/summary/child-workflow-runs.d.mts +0 -24
- package/dist/engine/summary/child-workflow-runs.mjs +0 -138
- package/dist/engine/summary/child-workflow-waits.d.mts +0 -21
- package/dist/engine/summary/child-workflow-waits.mjs +0 -67
- package/dist/engine/summary/recovery-child-workflow-waits.d.mts +0 -11
- package/dist/engine/summary/recovery-child-workflow-waits.mjs +0 -89
- package/dist/engine/summary/recovery-due-runs.d.mts +0 -16
- package/dist/engine/summary/recovery-due-runs.mjs +0 -52
- package/dist/engine/summary/recovery-failed-runs.d.mts +0 -14
- package/dist/engine/summary/recovery-failed-runs.mjs +0 -33
- package/dist/engine/summary/recovery-lease-runs.d.mts +0 -16
- package/dist/engine/summary/recovery-lease-runs.mjs +0 -69
- package/dist/engine/summary/recovery-locks.d.mts +0 -18
- package/dist/engine/summary/recovery-locks.mjs +0 -100
- package/dist/engine/summary/recovery-message-waits.d.mts +0 -11
- package/dist/engine/summary/recovery-message-waits.mjs +0 -74
- package/dist/engine/summary/recovery-retry-runs.d.mts +0 -17
- package/dist/engine/summary/recovery-retry-runs.mjs +0 -65
- package/dist/engine/summary/recovery-run-timestamps.d.mts +0 -13
- package/dist/engine/summary/recovery-run-timestamps.mjs +0 -18
- package/dist/engine/summary/recovery-runs.d.mts +0 -23
- package/dist/engine/summary/recovery-runs.mjs +0 -54
- package/dist/engine/summary/recovery-schedules.d.mts +0 -10
- package/dist/engine/summary/recovery-schedules.mjs +0 -46
- package/dist/engine/summary/recovery-sleep-waits.d.mts +0 -10
- package/dist/engine/summary/recovery-sleep-waits.mjs +0 -53
- package/dist/engine/summary/recovery-waits.d.mts +0 -21
- package/dist/engine/summary/recovery-waits.mjs +0 -29
- package/dist/engine/summary/run-availability.d.mts +0 -13
- package/dist/engine/summary/run-availability.mjs +0 -37
- package/dist/engine/summary/run-cleanup.d.mts +0 -14
- package/dist/engine/summary/run-cleanup.mjs +0 -44
- package/dist/engine/summary/run-failure.d.mts +0 -14
- package/dist/engine/summary/run-failure.mjs +0 -62
- package/dist/engine/summary/run-hooks.d.mts +0 -14
- package/dist/engine/summary/run-hooks.mjs +0 -63
- package/dist/engine/summary/run-lease.d.mts +0 -11
- package/dist/engine/summary/run-lease.mjs +0 -64
- package/dist/engine/summary/run-message-waits.d.mts +0 -15
- package/dist/engine/summary/run-message-waits.mjs +0 -62
- package/dist/engine/summary/run-metrics.d.mts +0 -31
- package/dist/engine/summary/run-metrics.mjs +0 -93
- package/dist/engine/summary/run-retry.d.mts +0 -9
- package/dist/engine/summary/run-retry.mjs +0 -69
- package/dist/engine/summary/run-sleeps.d.mts +0 -15
- package/dist/engine/summary/run-sleeps.mjs +0 -61
- package/dist/engine/summary/run-state.d.mts +0 -26
- package/dist/engine/summary/run-state.mjs +0 -48
- package/dist/engine/summary/run-status.d.mts +0 -16
- package/dist/engine/summary/run-status.mjs +0 -35
- package/dist/engine/summary/run-streams.d.mts +0 -14
- package/dist/engine/summary/run-streams.mjs +0 -46
- package/dist/engine/summary/run-transition.d.mts +0 -9
- package/dist/engine/summary/run-transition.mjs +0 -39
- package/dist/engine/summary/run-workflow.d.mts +0 -9
- package/dist/engine/summary/run-workflow.mjs +0 -47
- package/dist/engine/summary/step-attempt-active-child-workflows.d.mts +0 -13
- package/dist/engine/summary/step-attempt-active-child-workflows.mjs +0 -55
- package/dist/engine/summary/step-attempt-active-fields.d.mts +0 -23
- package/dist/engine/summary/step-attempt-active-fields.mjs +0 -14
- package/dist/engine/summary/step-attempt-active-message-waits.d.mts +0 -12
- package/dist/engine/summary/step-attempt-active-message-waits.mjs +0 -47
- package/dist/engine/summary/step-attempt-active-sleeps.d.mts +0 -19
- package/dist/engine/summary/step-attempt-active-sleeps.mjs +0 -44
- package/dist/engine/summary/step-attempt-buckets.d.mts +0 -22
- package/dist/engine/summary/step-attempt-buckets.mjs +0 -152
- package/dist/engine/summary/step-attempt-failure.d.mts +0 -12
- package/dist/engine/summary/step-attempt-failure.mjs +0 -61
- package/dist/engine/summary/step-attempt-lifecycle.d.mts +0 -13
- package/dist/engine/summary/step-attempt-lifecycle.mjs +0 -19
- package/dist/engine/summary.d.mts +0 -32
- package/dist/engine/summary.mjs +0 -37
- package/dist/errors/details.d.mts +0 -13
- package/dist/errors/details.mjs +0 -66
- package/dist/errors/record-view.d.mts +0 -11
- package/dist/errors/record-view.mjs +0 -24
- package/dist/errors/runtime.d.mts +0 -12
- package/dist/errors/runtime.mjs +0 -24
- package/dist/events/mod.d.mts +0 -3
- package/dist/events/mod.mjs +0 -2
- package/dist/history/attempt-key.d.mts +0 -6
- package/dist/history/attempt-key.mjs +0 -7
- package/dist/inspection/mod.d.mts +0 -5
- package/dist/inspection/mod.mjs +0 -3
- package/dist/otel.mjs +0 -590
- package/dist/runtime.d.mts +0 -35
- package/dist/runtime.mjs +0 -198
- package/dist/store/append-projection.d.mts +0 -15
- package/dist/store/append-projection.mjs +0 -26
- package/dist/store/compaction.d.mts +0 -5
- package/dist/store/compaction.mjs +0 -8
- package/dist/store/event-append-project.d.mts +0 -15
- package/dist/store/event-append-project.mjs +0 -77
- package/dist/store/event-append.d.mts +0 -37
- package/dist/store/event-append.mjs +0 -80
- package/dist/store/event-history.d.mts +0 -22
- package/dist/store/event-history.mjs +0 -75
- package/dist/store/event.d.mts +0 -10
- package/dist/store/event.mjs +0 -28
- package/dist/store/idempotency.d.mts +0 -10
- package/dist/store/idempotency.mjs +0 -167
- package/dist/store/message-index.d.mts +0 -21
- package/dist/store/message-index.mjs +0 -122
- package/dist/store/revision.d.mts +0 -4
- package/dist/store/revision.mjs +0 -7
- package/dist/store/schema.d.mts +0 -14
- package/dist/store/schema.mjs +0 -17
- package/dist/types/common.d.mts +0 -20
- package/dist/types/common.mjs +0 -16
- package/dist/types/error-code.d.mts +0 -256
- package/dist/types/message-id.d.mts +0 -7
- package/dist/types/message-id.mjs +0 -5
- package/dist/types/run-id.d.mts +0 -7
- package/dist/types/run-id.mjs +0 -5
- package/dist/types/step-id.d.mts +0 -7
- package/dist/types/step-id.mjs +0 -5
- package/dist/types/stream-id.d.mts +0 -7
- package/dist/types/stream-id.mjs +0 -5
- package/dist/types/worker-id.d.mts +0 -7
- package/dist/types/worker-id.mjs +0 -5
- package/dist/utility.d.mts +0 -49
- package/dist/utility.mjs +0 -122
- package/dist/vite/ast.d.mts +0 -23
- package/dist/vite/generated-name.d.mts +0 -7
- package/dist/vite/generated-name.mjs +0 -9
- package/dist/vite/manifest.d.mts +0 -7
- package/dist/vite/plugin.d.mts +0 -7
- package/dist/vite/safety.d.mts +0 -12
- package/dist/vite/source.d.mts +0 -7
- package/dist/vite/transform.d.mts +0 -7
- package/dist/webhook.d.mts +0 -16
- package/dist/webhook.mjs +0 -17
- package/dist/worker.d.mts +0 -19
- /package/dist/{types/vite.mjs → engine/context.mjs} +0 -0
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
import { RunId } from "../types/run-id.mjs";
|
|
2
|
-
import { WorkflowImplementation } from "../types/definition.mjs";
|
|
3
|
-
import { ExecutionResult, WorkflowHandle } from "../types/result.mjs";
|
|
4
|
-
import { WorkflowRunRecord } from "../types/run.mjs";
|
|
5
|
-
import { WorkflowExecutionOptions, WorkflowResumeOptions } from "../types/run-options.mjs";
|
|
6
|
-
import { WorkflowConditionalEventAppender, WorkflowEventReader, WorkflowLockConditionalWriterRepository, WorkflowLockListerRepository, WorkflowRunReaderRepository, WorkflowRunWriterRepository, WorkflowStepAttemptLookup } from "../types/store.mjs";
|
|
7
|
-
import { WorkflowRunStarter } from "../types/engine.mjs";
|
|
8
|
-
import { WorkflowExecutionServiceOptions } from "./execution-service.mjs";
|
|
9
|
-
//#region src/engine/execution-api.d.ts
|
|
10
|
-
interface WorkflowEngineExecutionApi {
|
|
11
|
-
runWorkflow<TInput, TOutput, TRawInput = TInput>(implementation: WorkflowImplementation<TInput, TOutput, TRawInput>, input: TRawInput, options?: WorkflowExecutionOptions): Promise<WorkflowHandle<TOutput>>;
|
|
12
|
-
runWorkflowNow<TInput, TOutput, TRawInput = TInput>(implementation: WorkflowImplementation<TInput, TOutput, TRawInput>, input: TRawInput, options?: WorkflowExecutionOptions): Promise<ExecutionResult<TOutput>>;
|
|
13
|
-
resumeWorkflow<TInput, TOutput, TRawInput = TInput>(implementation: WorkflowImplementation<TInput, TOutput, TRawInput>, runId: RunId, options?: WorkflowResumeOptions): Promise<ExecutionResult<TOutput>>;
|
|
14
|
-
}
|
|
15
|
-
type WorkflowEngineExecutionApiStore = WorkflowRunReaderRepository & WorkflowRunWriterRepository & WorkflowConditionalEventAppender & WorkflowEventReader & WorkflowStepAttemptLookup & WorkflowLockListerRepository & WorkflowLockConditionalWriterRepository;
|
|
16
|
-
interface WorkflowEngineExecutionResumer {
|
|
17
|
-
resumeWorkflow<TInput, TOutput, TRawInput = TInput>(implementation: WorkflowImplementation<TInput, TOutput, TRawInput>, runId: RunId, options?: WorkflowResumeOptions): Promise<ExecutionResult<TOutput>>;
|
|
18
|
-
}
|
|
19
|
-
interface WorkflowEngineExecutionApiOptions {
|
|
20
|
-
readonly store: WorkflowEngineExecutionApiStore;
|
|
21
|
-
readonly now: () => Temporal.Instant;
|
|
22
|
-
readonly executionService: WorkflowExecutionServiceOptions;
|
|
23
|
-
readonly emitResultLifecycleEvent: <TOutput>(result: ExecutionResult<TOutput>, previous?: WorkflowRunRecord) => Promise<ExecutionResult<TOutput>>;
|
|
24
|
-
readonly starter: WorkflowRunStarter;
|
|
25
|
-
readonly resumer: WorkflowEngineExecutionResumer;
|
|
26
|
-
}
|
|
27
|
-
declare function createWorkflowEngineExecutionApi(service: WorkflowEngineExecutionApiOptions): WorkflowEngineExecutionApi;
|
|
28
|
-
//#endregion
|
|
29
|
-
export { WorkflowEngineExecutionApi, createWorkflowEngineExecutionApi };
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
import { getRequiredRun } from "../utility.mjs";
|
|
2
|
-
import { makeCanceledRunResult, makeCompletedRunResult } from "./run-utils.mjs";
|
|
3
|
-
import { failRunForDeadline, requireDefinitionMatchesRun } from "./state.mjs";
|
|
4
|
-
import { executeWorkflowRun } from "./execution-service.mjs";
|
|
5
|
-
//#region src/engine/execution-api.ts
|
|
6
|
-
function createWorkflowEngineExecutionApi(service) {
|
|
7
|
-
return {
|
|
8
|
-
async runWorkflow(implementation, input, executionOptions) {
|
|
9
|
-
return await service.starter.startWorkflow(implementation.definition, input, executionOptions?.start);
|
|
10
|
-
},
|
|
11
|
-
async runWorkflowNow(implementation, input, executionOptions) {
|
|
12
|
-
const handle = await service.starter.startWorkflow(implementation.definition, input, executionOptions?.start);
|
|
13
|
-
return await service.resumer.resumeWorkflow(implementation, handle.runId, { signal: executionOptions?.signal });
|
|
14
|
-
},
|
|
15
|
-
async resumeWorkflow(implementation, runId, resumeOptions) {
|
|
16
|
-
const run = await getRequiredRun(service.store, runId);
|
|
17
|
-
requireDefinitionMatchesRun(implementation.definition, run);
|
|
18
|
-
if (run.status === "completed") return makeCompletedRunResult(run);
|
|
19
|
-
if (run.status === "canceled") return makeCanceledRunResult(run);
|
|
20
|
-
const timestamp = service.now();
|
|
21
|
-
if (run.deadlineAt !== void 0 && Temporal.Instant.compare(run.deadlineAt, timestamp) <= 0) return await service.emitResultLifecycleEvent(await failRunForDeadline(service.store, run, run.deadlineAt, timestamp), run);
|
|
22
|
-
const availableAt = run.availableAt;
|
|
23
|
-
if (availableAt !== void 0 && Temporal.Instant.compare(availableAt, timestamp) > 0) return {
|
|
24
|
-
kind: "waiting",
|
|
25
|
-
run,
|
|
26
|
-
availableAt
|
|
27
|
-
};
|
|
28
|
-
return await executeWorkflowRun(service.executionService, implementation, run, resumeOptions);
|
|
29
|
-
}
|
|
30
|
-
};
|
|
31
|
-
}
|
|
32
|
-
//#endregion
|
|
33
|
-
export { createWorkflowEngineExecutionApi };
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
import { RunId } from "../types/run-id.mjs";
|
|
2
|
-
import { PageOptions, WorkflowPage } from "../types/pagination.mjs";
|
|
3
|
-
import { WorkflowListRunsOptions, WorkflowListRunsPageOptions, WorkflowListStepAttemptsPageOptions } from "../types/run-list.mjs";
|
|
4
|
-
import { WorkflowRecoverySummary, WorkflowRecoverySummaryOptions, WorkflowRunSummary, WorkflowRunSummaryOptions } from "../types/summary.mjs";
|
|
5
|
-
import { WorkflowListStepAttemptsOptions, WorkflowStepAttemptRecord, WorkflowStepAttemptSummary } from "../types/step-attempts.mjs";
|
|
6
|
-
import { Timeline } from "../types/timeline.mjs";
|
|
7
|
-
import { WorkflowRunRecord } from "../types/run.mjs";
|
|
8
|
-
import { EventRecord } from "../types/events.mjs";
|
|
9
|
-
import { WorkflowEventReader, WorkflowLockListerRepository, WorkflowMessageIdempotencyIndex, WorkflowRunQueryRepository, WorkflowScheduleListerRepository, WorkflowStepAttemptReadModel } from "../types/store.mjs";
|
|
10
|
-
//#region src/engine/inspection-api.d.ts
|
|
11
|
-
interface WorkflowEngineInspectionApi {
|
|
12
|
-
getRun(runId: RunId): Promise<WorkflowRunRecord | undefined>;
|
|
13
|
-
getEvents(runId: RunId): Promise<readonly EventRecord[]>;
|
|
14
|
-
listEventsPage(runId: RunId, options?: PageOptions): Promise<WorkflowPage<EventRecord>>;
|
|
15
|
-
listRuns(options?: WorkflowListRunsOptions): Promise<readonly WorkflowRunRecord[]>;
|
|
16
|
-
listRunsPage(options?: WorkflowListRunsPageOptions): Promise<WorkflowPage<WorkflowRunRecord>>;
|
|
17
|
-
countRuns(options?: WorkflowListRunsOptions): Promise<number>;
|
|
18
|
-
getRunSummary(options?: WorkflowRunSummaryOptions): Promise<WorkflowRunSummary>;
|
|
19
|
-
getRecoverySummary(options?: WorkflowRecoverySummaryOptions): Promise<WorkflowRecoverySummary>;
|
|
20
|
-
getTimeline(runId: RunId): Promise<Timeline>;
|
|
21
|
-
listStepAttempts(runId: RunId, options?: WorkflowListStepAttemptsOptions): Promise<readonly WorkflowStepAttemptRecord[]>;
|
|
22
|
-
listStepAttemptsPage(runId: RunId, options?: WorkflowListStepAttemptsPageOptions): Promise<WorkflowPage<WorkflowStepAttemptRecord>>;
|
|
23
|
-
countStepAttempts(runId: RunId, options?: WorkflowListStepAttemptsOptions): Promise<number>;
|
|
24
|
-
repairStepAttempts(runId: RunId): Promise<readonly WorkflowStepAttemptRecord[]>;
|
|
25
|
-
repairMessageIdempotencyIndexes(runId: RunId): Promise<readonly WorkflowMessageIdempotencyIndex[]>;
|
|
26
|
-
getStepAttemptSummary(runId: RunId, options?: WorkflowListStepAttemptsOptions): Promise<WorkflowStepAttemptSummary>;
|
|
27
|
-
}
|
|
28
|
-
interface WorkflowInspectionRepairStore {
|
|
29
|
-
repairMessageIdempotencyIndexes(runId: RunId): Promise<readonly WorkflowMessageIdempotencyIndex[]>;
|
|
30
|
-
}
|
|
31
|
-
type WorkflowEngineInspectionStore = WorkflowRunQueryRepository & WorkflowEventReader & WorkflowInspectionRepairStore & WorkflowStepAttemptReadModel & WorkflowLockListerRepository & WorkflowScheduleListerRepository;
|
|
32
|
-
declare function createWorkflowEngineInspectionApi(store: WorkflowEngineInspectionStore, now: () => Temporal.Instant): WorkflowEngineInspectionApi;
|
|
33
|
-
//#endregion
|
|
34
|
-
export { WorkflowEngineInspectionApi, createWorkflowEngineInspectionApi };
|
|
@@ -1,78 +0,0 @@
|
|
|
1
|
-
import { getRequiredRun } from "../utility.mjs";
|
|
2
|
-
import { createTimeline } from "../history/timeline.mjs";
|
|
3
|
-
import "../history/mod.mjs";
|
|
4
|
-
import "./state.mjs";
|
|
5
|
-
import { makeWorkflowEventCursorKey, pageItems } from "../pagination.mjs";
|
|
6
|
-
import { getChildRunsForAttempts } from "./summary/child-workflow-runs.mjs";
|
|
7
|
-
import { getWorkflowRecoverySummary, getWorkflowRunSummary } from "./inspection.mjs";
|
|
8
|
-
import { createWorkflowStepAttemptSummaryReducer } from "./summary/step-attempts.mjs";
|
|
9
|
-
//#region src/engine/inspection-api.ts
|
|
10
|
-
function createWorkflowEngineInspectionApi(store, now) {
|
|
11
|
-
return {
|
|
12
|
-
async getRun(runId) {
|
|
13
|
-
return await store.getRun(runId);
|
|
14
|
-
},
|
|
15
|
-
async getEvents(runId) {
|
|
16
|
-
return await store.getEvents(runId);
|
|
17
|
-
},
|
|
18
|
-
async listEventsPage(runId, options) {
|
|
19
|
-
return pageItems(await store.getEvents(runId), options, "Workflow event page", makeWorkflowEventCursorKey);
|
|
20
|
-
},
|
|
21
|
-
async listRuns(options) {
|
|
22
|
-
return await store.listRuns(options);
|
|
23
|
-
},
|
|
24
|
-
async listRunsPage(options) {
|
|
25
|
-
return await store.listRunsPage(options);
|
|
26
|
-
},
|
|
27
|
-
async countRuns(options) {
|
|
28
|
-
return await store.countRuns(options);
|
|
29
|
-
},
|
|
30
|
-
async getRunSummary(options) {
|
|
31
|
-
return await getWorkflowRunSummary({
|
|
32
|
-
store,
|
|
33
|
-
now: now(),
|
|
34
|
-
filters: options
|
|
35
|
-
});
|
|
36
|
-
},
|
|
37
|
-
async getRecoverySummary(options) {
|
|
38
|
-
return await getWorkflowRecoverySummary({
|
|
39
|
-
store,
|
|
40
|
-
now: now(),
|
|
41
|
-
filters: options
|
|
42
|
-
});
|
|
43
|
-
},
|
|
44
|
-
async getTimeline(runId) {
|
|
45
|
-
const run = await getRequiredRun(store, runId);
|
|
46
|
-
return createTimeline(run, await store.getEvents(runId));
|
|
47
|
-
},
|
|
48
|
-
async listStepAttempts(runId, options) {
|
|
49
|
-
await getRequiredRun(store, runId);
|
|
50
|
-
return await store.listStepAttempts(runId, options);
|
|
51
|
-
},
|
|
52
|
-
async listStepAttemptsPage(runId, options) {
|
|
53
|
-
await getRequiredRun(store, runId);
|
|
54
|
-
return await store.listStepAttemptsPage(runId, options);
|
|
55
|
-
},
|
|
56
|
-
async countStepAttempts(runId, options) {
|
|
57
|
-
await getRequiredRun(store, runId);
|
|
58
|
-
return await store.countStepAttempts(runId, options);
|
|
59
|
-
},
|
|
60
|
-
async repairStepAttempts(runId) {
|
|
61
|
-
await getRequiredRun(store, runId);
|
|
62
|
-
return await store.repairStepAttempts(runId);
|
|
63
|
-
},
|
|
64
|
-
async repairMessageIdempotencyIndexes(runId) {
|
|
65
|
-
await getRequiredRun(store, runId);
|
|
66
|
-
return await store.repairMessageIdempotencyIndexes(runId);
|
|
67
|
-
},
|
|
68
|
-
async getStepAttemptSummary(runId, options) {
|
|
69
|
-
await getRequiredRun(store, runId);
|
|
70
|
-
const attempts = await store.listStepAttempts(runId, options);
|
|
71
|
-
const reducer = createWorkflowStepAttemptSummaryReducer(await getChildRunsForAttempts(store, runId, attempts));
|
|
72
|
-
for (const attempt of attempts) reducer.addAttempt(attempt);
|
|
73
|
-
return reducer.finish();
|
|
74
|
-
}
|
|
75
|
-
};
|
|
76
|
-
}
|
|
77
|
-
//#endregion
|
|
78
|
-
export { createWorkflowEngineInspectionApi };
|
package/dist/engine/mod.d.mts
DELETED
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
import { CreateWorkflowEngineOptions, WorkflowDeterministicBytesContext, WorkflowDeterministicValueContext, WorkflowEngineSerializationLimits, WorkflowExecutionLimits, WorkflowRecordedIdContext } from "../types/engine-options.mjs";
|
|
2
|
-
import { LockManager, WorkflowAdmin, WorkflowCleanupAdmin, WorkflowClientEngine, WorkflowEngineLike, WorkflowExecutionEnvironment, WorkflowExecutionEnvironmentStore, WorkflowExecutor, WorkflowHookManager, WorkflowMessageIdempotencyMaintenance, WorkflowMessageSender, WorkflowRunCanceler, WorkflowRunHandleReader, WorkflowRunMaintenance, WorkflowRunReader, WorkflowRunRerunner, WorkflowRunStarter, WorkflowScheduleRunObserver, WorkflowScheduler, WorkflowStarter, WorkflowStepAttemptLookupReader, WorkflowStepAttemptMaintenance, WorkflowStepAttemptReader, WorkflowStreamReader, WorkflowWorkerEngine, WorkflowWorkerEngineStore, WorkflowWorkerOperationObserver } from "../types/engine.mjs";
|
|
3
|
-
import { WorkflowEngine, createWorkflowEngine } from "./create.mjs";
|
|
4
|
-
export { type CreateWorkflowEngineOptions, type LockManager, type WorkflowAdmin, type WorkflowCleanupAdmin, type WorkflowClientEngine, type WorkflowDeterministicBytesContext, type WorkflowDeterministicValueContext, WorkflowEngine, type WorkflowEngineLike, type WorkflowEngineSerializationLimits, type WorkflowExecutionEnvironment, type WorkflowExecutionEnvironmentStore, type WorkflowExecutionLimits, type WorkflowExecutor, type WorkflowHookManager, type WorkflowMessageIdempotencyMaintenance, type WorkflowMessageSender, type WorkflowRecordedIdContext, type WorkflowRunCanceler, type WorkflowRunHandleReader, type WorkflowRunMaintenance, type WorkflowRunReader, type WorkflowRunRerunner, type WorkflowRunStarter, type WorkflowScheduleRunObserver, type WorkflowScheduler, type WorkflowStarter, type WorkflowStepAttemptLookupReader, type WorkflowStepAttemptMaintenance, type WorkflowStepAttemptReader, type WorkflowStreamReader, type WorkflowWorkerEngine, type WorkflowWorkerEngineStore, type WorkflowWorkerOperationObserver, createWorkflowEngine };
|
package/dist/engine/mod.mjs
DELETED
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
import { ScheduleRecord } from "../types/schedule.mjs";
|
|
2
|
-
import { LockRecord } from "../types/lock.mjs";
|
|
3
|
-
import { WorkflowRecoverySummary } from "../types/summary.mjs";
|
|
4
|
-
import { WorkflowStepAttemptRecord } from "../types/step-attempts.mjs";
|
|
5
|
-
import { WorkflowRunRecord } from "../types/run.mjs";
|
|
6
|
-
import { WorkflowRecoveryWaitInputs } from "./summary/recovery-waits.mjs";
|
|
7
|
-
//#region src/engine/recovery.d.ts
|
|
8
|
-
interface WorkflowRecoverySummaryInputs extends WorkflowRecoveryWaitInputs {
|
|
9
|
-
readonly lockWaitAttempts?: readonly WorkflowStepAttemptRecord[];
|
|
10
|
-
readonly locks?: readonly LockRecord[];
|
|
11
|
-
readonly schedules?: readonly ScheduleRecord[];
|
|
12
|
-
}
|
|
13
|
-
interface WorkflowRecoverySummaryOptions {
|
|
14
|
-
readonly runs: readonly WorkflowRunRecord[];
|
|
15
|
-
readonly now: Temporal.Instant;
|
|
16
|
-
readonly inputs?: WorkflowRecoverySummaryInputs;
|
|
17
|
-
}
|
|
18
|
-
interface WorkflowRecoveryDeadline {
|
|
19
|
-
readonly timestamp: Temporal.Instant;
|
|
20
|
-
}
|
|
21
|
-
declare function summarizeWorkflowRecovery(options: WorkflowRecoverySummaryOptions): WorkflowRecoverySummary;
|
|
22
|
-
declare function mergeWorkflowRecoveryRunIds(runIdGroups: readonly (readonly string[])[]): readonly string[];
|
|
23
|
-
declare function workflowRecoveryDeadline(ownerId: string | undefined, timestamp: Temporal.Instant | undefined): WorkflowRecoveryDeadline | undefined;
|
|
24
|
-
declare function earliestWorkflowRecoveryDeadline(candidates: readonly (WorkflowRecoveryDeadline | undefined)[]): WorkflowRecoveryDeadline | undefined;
|
|
25
|
-
//#endregion
|
|
26
|
-
export { WorkflowRecoveryDeadline, WorkflowRecoverySummaryInputs, WorkflowRecoverySummaryOptions, earliestWorkflowRecoveryDeadline, mergeWorkflowRecoveryRunIds, summarizeWorkflowRecovery, workflowRecoveryDeadline };
|
package/dist/engine/recovery.mjs
DELETED
|
@@ -1,92 +0,0 @@
|
|
|
1
|
-
import { createWorkflowRecoveryLockSummaryReducer } from "./summary/recovery-locks.mjs";
|
|
2
|
-
import { createWorkflowRecoveryRunSummaryReducer } from "./summary/recovery-runs.mjs";
|
|
3
|
-
import { createWorkflowRecoveryScheduleSummaryReducer } from "./summary/recovery-schedules.mjs";
|
|
4
|
-
import { createWorkflowRecoveryWaitSummaryReducer } from "./summary/recovery-waits.mjs";
|
|
5
|
-
//#region src/engine/recovery.ts
|
|
6
|
-
function recoveryWaitInputs(inputs) {
|
|
7
|
-
return {
|
|
8
|
-
sleepAttempts: inputs.sleepAttempts,
|
|
9
|
-
messageWaitAttempts: inputs.messageWaitAttempts,
|
|
10
|
-
childWorkflowAttempts: inputs.childWorkflowAttempts,
|
|
11
|
-
childRuns: inputs.childRuns,
|
|
12
|
-
eventsByRunId: inputs.eventsByRunId
|
|
13
|
-
};
|
|
14
|
-
}
|
|
15
|
-
function recoveryResourceInputs(inputs) {
|
|
16
|
-
return {
|
|
17
|
-
lockWaitAttempts: inputs.lockWaitAttempts,
|
|
18
|
-
locks: inputs.locks,
|
|
19
|
-
schedules: inputs.schedules
|
|
20
|
-
};
|
|
21
|
-
}
|
|
22
|
-
function summarizeWorkflowRecovery(options) {
|
|
23
|
-
const { runs, now, inputs = {} } = options;
|
|
24
|
-
const waitInputs = recoveryWaitInputs(inputs);
|
|
25
|
-
const resources = recoveryResourceInputs(inputs);
|
|
26
|
-
const runReducer = createWorkflowRecoveryRunSummaryReducer(now);
|
|
27
|
-
for (const run of runs) runReducer.addRun(run);
|
|
28
|
-
const runSummary = runReducer.finish();
|
|
29
|
-
const waitReducer = createWorkflowRecoveryWaitSummaryReducer(waitInputs, now);
|
|
30
|
-
waitReducer.addSleepAttempts(waitInputs.sleepAttempts ?? []);
|
|
31
|
-
waitReducer.addMessageWaitAttempts(waitInputs.messageWaitAttempts ?? []);
|
|
32
|
-
waitReducer.addChildWorkflowAttempts(waitInputs.childWorkflowAttempts ?? []);
|
|
33
|
-
const wait = waitReducer.finish();
|
|
34
|
-
const lockReducer = createWorkflowRecoveryLockSummaryReducer(runs, now);
|
|
35
|
-
for (const lockRecord of resources.locks ?? []) lockReducer.addLock(lockRecord);
|
|
36
|
-
for (const attempt of resources.lockWaitAttempts ?? []) lockReducer.addLockWaitAttempt(attempt);
|
|
37
|
-
const lock = lockReducer.finish();
|
|
38
|
-
const scheduleReducer = createWorkflowRecoveryScheduleSummaryReducer(now);
|
|
39
|
-
for (const scheduleRecord of resources.schedules ?? []) scheduleReducer.addSchedule(scheduleRecord);
|
|
40
|
-
const schedule = scheduleReducer.finish();
|
|
41
|
-
const recoverableRunIds = mergeWorkflowRecoveryRunIds([
|
|
42
|
-
runSummary.recoverableRunIds,
|
|
43
|
-
wait.sleep.dueRunIds,
|
|
44
|
-
wait.message.readyRunIds,
|
|
45
|
-
wait.message.timedOutRunIds,
|
|
46
|
-
wait.childWorkflow.terminalRunIds,
|
|
47
|
-
wait.childWorkflow.missingRunIds,
|
|
48
|
-
wait.childWorkflow.timedOutRunIds
|
|
49
|
-
]);
|
|
50
|
-
const summary = {
|
|
51
|
-
total: runSummary.total,
|
|
52
|
-
recoverableRunIds,
|
|
53
|
-
due: runSummary.due,
|
|
54
|
-
lease: runSummary.lease,
|
|
55
|
-
retry: runSummary.retry,
|
|
56
|
-
missingImplementation: runSummary.missingImplementation,
|
|
57
|
-
failed: runSummary.failed,
|
|
58
|
-
schedule,
|
|
59
|
-
lock,
|
|
60
|
-
wait
|
|
61
|
-
};
|
|
62
|
-
const nextRecovery = earliestWorkflowRecoveryDeadline([
|
|
63
|
-
runSummary.nextAvailable,
|
|
64
|
-
runSummary.nextLeaseExpires,
|
|
65
|
-
runSummary.nextRetry,
|
|
66
|
-
workflowRecoveryDeadline(schedule.nextFireScheduleId, schedule.nextFireAt),
|
|
67
|
-
workflowRecoveryDeadline(lock.nextExpiringKey, lock.nextExpiresAt),
|
|
68
|
-
workflowRecoveryDeadline(lock.nextWaitDeadlineRunId, lock.nextWaitDeadlineAt),
|
|
69
|
-
workflowRecoveryDeadline(wait.sleep.nextWakeRunId, wait.sleep.nextWakeAt),
|
|
70
|
-
workflowRecoveryDeadline(wait.message.nextTimeoutRunId, wait.message.nextTimeoutAt),
|
|
71
|
-
workflowRecoveryDeadline(wait.childWorkflow.nextTimeoutRunId, wait.childWorkflow.nextTimeoutAt)
|
|
72
|
-
]);
|
|
73
|
-
return {
|
|
74
|
-
...summary,
|
|
75
|
-
...nextRecovery === void 0 ? {} : { nextRecoveryAt: nextRecovery.timestamp }
|
|
76
|
-
};
|
|
77
|
-
}
|
|
78
|
-
function mergeWorkflowRecoveryRunIds(runIdGroups) {
|
|
79
|
-
return [...new Set(runIdGroups.flat())].sort();
|
|
80
|
-
}
|
|
81
|
-
function workflowRecoveryDeadline(ownerId, timestamp) {
|
|
82
|
-
return ownerId === void 0 || timestamp === void 0 ? void 0 : { timestamp };
|
|
83
|
-
}
|
|
84
|
-
function earliestWorkflowRecoveryDeadline(candidates) {
|
|
85
|
-
return candidates.reduce((current, candidate) => {
|
|
86
|
-
if (candidate === void 0) return current;
|
|
87
|
-
if (current === void 0) return candidate;
|
|
88
|
-
return Temporal.Instant.compare(candidate.timestamp, current.timestamp) < 0 ? candidate : current;
|
|
89
|
-
}, void 0);
|
|
90
|
-
}
|
|
91
|
-
//#endregion
|
|
92
|
-
export { earliestWorkflowRecoveryDeadline, mergeWorkflowRecoveryRunIds, summarizeWorkflowRecovery, workflowRecoveryDeadline };
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
import { WorkflowStartTarget } from "../types/definition.mjs";
|
|
2
|
-
import { HandleOperations, WorkflowHandle } from "../types/result.mjs";
|
|
3
|
-
import { Telemetry } from "../types/telemetry.mjs";
|
|
4
|
-
import { WorkflowRunRecord } from "../types/run.mjs";
|
|
5
|
-
import { ResolvedScheduleNextOptions, ScheduleNextOptions, WorkflowBatchStartItem, WorkflowStartOptions } from "../types/run-options.mjs";
|
|
6
|
-
import { WorkflowEventReader, WorkflowIdempotencyIndex, WorkflowRunCreationRepository, WorkflowRunReaderRepository, WorkflowStoreNamespace } from "../types/store.mjs";
|
|
7
|
-
import { WorkflowExecutionLimits } from "../types/engine-options.mjs";
|
|
8
|
-
import { WorkflowRunStarter } from "../types/engine.mjs";
|
|
9
|
-
//#region src/engine/start-api.d.ts
|
|
10
|
-
interface WorkflowEngineStartApi {
|
|
11
|
-
startWorkflow<TInput, TOutput, TRawInput = TInput>(workflow: WorkflowStartTarget<TInput, TOutput, TRawInput>, input: TRawInput, options?: WorkflowStartOptions): Promise<WorkflowHandle<TOutput>>;
|
|
12
|
-
startWorkflows<TInput, TOutput, TRawInput = TInput>(workflow: WorkflowStartTarget<TInput, TOutput, TRawInput>, items: readonly WorkflowBatchStartItem<TRawInput>[]): Promise<readonly WorkflowHandle<TOutput>[]>;
|
|
13
|
-
scheduleNextWorkflow<TInput, TOutput, TRawInput = TInput>(workflow: WorkflowStartTarget<TInput, TOutput, TRawInput>, input: TRawInput, options: ScheduleNextOptions): Promise<WorkflowHandle<TOutput>>;
|
|
14
|
-
}
|
|
15
|
-
/** Resolves schedule-next options and derives the start time for the next run. */
|
|
16
|
-
declare function resolveScheduleNextOptions(options: ScheduleNextOptions, now: () => Temporal.Instant): ResolvedScheduleNextOptions;
|
|
17
|
-
type WorkflowEngineStartStore = WorkflowStoreNamespace & WorkflowRunCreationRepository & WorkflowRunReaderRepository & WorkflowIdempotencyIndex & WorkflowEventReader;
|
|
18
|
-
interface WorkflowEngineStartApiOptions {
|
|
19
|
-
readonly store: WorkflowEngineStartStore;
|
|
20
|
-
readonly now: () => Temporal.Instant;
|
|
21
|
-
readonly limits: WorkflowExecutionLimits;
|
|
22
|
-
readonly createRunId: () => string;
|
|
23
|
-
readonly telemetry?: Telemetry;
|
|
24
|
-
readonly emitRunEvent: (run: WorkflowRunRecord) => void;
|
|
25
|
-
readonly starter: WorkflowRunStarter;
|
|
26
|
-
readonly handleOperations: HandleOperations;
|
|
27
|
-
}
|
|
28
|
-
declare function createWorkflowEngineStartApi(service: WorkflowEngineStartApiOptions): WorkflowEngineStartApi;
|
|
29
|
-
//#endregion
|
|
30
|
-
export { WorkflowEngineStartApi, createWorkflowEngineStartApi, resolveScheduleNextOptions };
|
|
@@ -1,99 +0,0 @@
|
|
|
1
|
-
import { defineWorkflowFromTarget, parseWorkflowInput } from "../definition.mjs";
|
|
2
|
-
import { captureTelemetryContext } from "../telemetry.mjs";
|
|
3
|
-
import { toOptionalPersistedValue, toPersistedValue } from "./serialization.mjs";
|
|
4
|
-
import { workflowHandle } from "./run-utils.mjs";
|
|
5
|
-
import { resolveWorkflowStartSpec } from "./run-service.mjs";
|
|
6
|
-
//#region src/engine/start-api.ts
|
|
7
|
-
/** Resolves schedule-next options and derives the start time for the next run. */
|
|
8
|
-
function resolveScheduleNextOptions(options, now) {
|
|
9
|
-
const from = options.from ?? now();
|
|
10
|
-
const start = {
|
|
11
|
-
...options.id === void 0 ? {} : { id: options.id },
|
|
12
|
-
idempotencyKey: options.idempotencyKey,
|
|
13
|
-
...options.workflowVersion === void 0 ? {} : { workflowVersion: options.workflowVersion },
|
|
14
|
-
...options.workflowVersionResolver === void 0 ? {} : { workflowVersionResolver: options.workflowVersionResolver },
|
|
15
|
-
...options.context === void 0 ? {} : { context: options.context },
|
|
16
|
-
...options.parent === void 0 ? {} : { parent: options.parent },
|
|
17
|
-
availableAt: from.toZonedDateTimeISO("UTC").add(options.every).toInstant(),
|
|
18
|
-
...options.deadlineAt === void 0 ? {} : { deadlineAt: options.deadlineAt }
|
|
19
|
-
};
|
|
20
|
-
return {
|
|
21
|
-
schedule: {
|
|
22
|
-
...options,
|
|
23
|
-
from
|
|
24
|
-
},
|
|
25
|
-
start
|
|
26
|
-
};
|
|
27
|
-
}
|
|
28
|
-
function createWorkflowEngineStartApi(service) {
|
|
29
|
-
return {
|
|
30
|
-
async startWorkflow(workflow, input, startOptions) {
|
|
31
|
-
const definition = defineWorkflowFromTarget(workflow);
|
|
32
|
-
const resolvedDefinition = await resolveWorkflowStartSpec(definition, startOptions);
|
|
33
|
-
const parsedInput = await parseWorkflowInput(resolvedDefinition, input);
|
|
34
|
-
const idempotencyKey = startOptions?.idempotencyKey;
|
|
35
|
-
const explicitRunId = startOptions?.id;
|
|
36
|
-
const existingRun = idempotencyKey === void 0 ? void 0 : await service.store.getRunByIdempotencyKey({
|
|
37
|
-
workflowName: resolvedDefinition.name,
|
|
38
|
-
...resolvedDefinition.version === void 0 ? {} : { workflowVersion: resolvedDefinition.version },
|
|
39
|
-
idempotencyKey
|
|
40
|
-
});
|
|
41
|
-
if (existingRun !== void 0) return workflowStartHandle(service, resolvedDefinition, existingRun.id);
|
|
42
|
-
const runId = explicitRunId ?? service.createRunId();
|
|
43
|
-
const timestamp = service.now();
|
|
44
|
-
const availableAt = startOptions?.availableAt;
|
|
45
|
-
const deadlineAt = startOptions?.deadlineAt;
|
|
46
|
-
const parent = startOptions?.parent === void 0 ? void 0 : startOptions.parent;
|
|
47
|
-
const persistedInput = toOptionalPersistedValue(parsedInput, "workflow input", service.limits);
|
|
48
|
-
const run = {
|
|
49
|
-
id: runId,
|
|
50
|
-
namespace: service.store.namespace,
|
|
51
|
-
workflowName: resolvedDefinition.name,
|
|
52
|
-
...resolvedDefinition.version === void 0 ? {} : { workflowVersion: resolvedDefinition.version },
|
|
53
|
-
status: "pending",
|
|
54
|
-
...persistedInput === void 0 ? {} : { input: persistedInput },
|
|
55
|
-
...startOptions?.context === void 0 ? {} : { context: toPersistedValue(startOptions.context, "workflow context", service.limits) },
|
|
56
|
-
...(() => {
|
|
57
|
-
const telemetryContext = captureTelemetryContext(service.telemetry);
|
|
58
|
-
return telemetryContext === void 0 ? {} : { telemetryContext };
|
|
59
|
-
})(),
|
|
60
|
-
attempts: 0,
|
|
61
|
-
...idempotencyKey === void 0 ? {} : { idempotencyKey },
|
|
62
|
-
...parent === void 0 ? {} : {
|
|
63
|
-
parentRunId: parent.runId,
|
|
64
|
-
...parent.stepId === void 0 ? {} : { parentStepId: parent.stepId },
|
|
65
|
-
...parent.stepName === void 0 ? {} : { parentStepName: parent.stepName },
|
|
66
|
-
...parent.stepAttempt === void 0 ? {} : { parentStepAttempt: parent.stepAttempt }
|
|
67
|
-
},
|
|
68
|
-
createdAt: timestamp,
|
|
69
|
-
updatedAt: timestamp,
|
|
70
|
-
lastTransitionAt: timestamp,
|
|
71
|
-
lastTransitionReason: "created",
|
|
72
|
-
...availableAt === void 0 ? {} : { availableAt },
|
|
73
|
-
...deadlineAt === void 0 ? {} : { deadlineAt }
|
|
74
|
-
};
|
|
75
|
-
const createdRun = await service.store.createRun(run);
|
|
76
|
-
service.emitRunEvent(createdRun);
|
|
77
|
-
return workflowStartHandle(service, resolvedDefinition, createdRun.id);
|
|
78
|
-
},
|
|
79
|
-
async startWorkflows(workflow, items) {
|
|
80
|
-
const handles = [];
|
|
81
|
-
for (const item of items) handles.push(await service.starter.startWorkflow(workflow, item.input, item.options));
|
|
82
|
-
return handles;
|
|
83
|
-
},
|
|
84
|
-
async scheduleNextWorkflow(workflow, input, scheduleOptions) {
|
|
85
|
-
const options = resolveScheduleNextOptions(scheduleOptions, service.now).start;
|
|
86
|
-
return await service.starter.startWorkflow(workflow, input, options);
|
|
87
|
-
}
|
|
88
|
-
};
|
|
89
|
-
}
|
|
90
|
-
function workflowStartHandle(service, definition, runId) {
|
|
91
|
-
return workflowHandle(service.store, definition, runId, service.now, {
|
|
92
|
-
getTimeline: async (currentRunId) => await service.handleOperations.getTimeline(currentRunId),
|
|
93
|
-
setMetadata: async (currentRunId, metadata) => await service.handleOperations.setMetadata(currentRunId, metadata),
|
|
94
|
-
setAttributes: async (currentRunId, attributes) => await service.handleOperations.setAttributes(currentRunId, attributes),
|
|
95
|
-
cancel: async (currentRunId) => await service.handleOperations.cancel(currentRunId)
|
|
96
|
-
});
|
|
97
|
-
}
|
|
98
|
-
//#endregion
|
|
99
|
-
export { createWorkflowEngineStartApi, resolveScheduleNextOptions };
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
import { MessageId } from "../../types/message-id.mjs";
|
|
2
|
-
import { StepId } from "../../types/step-id.mjs";
|
|
3
|
-
import { StreamId } from "../../types/stream-id.mjs";
|
|
4
|
-
import "../../types/step.mjs";
|
|
5
|
-
import { EventRecord } from "../../types/events.mjs";
|
|
6
|
-
//#region src/engine/summary/active-events.d.ts
|
|
7
|
-
interface ActiveWorkflowStreamSummary {
|
|
8
|
-
readonly stepId: StepId;
|
|
9
|
-
readonly stepName: string;
|
|
10
|
-
readonly streamId: StreamId;
|
|
11
|
-
readonly startedAt: Temporal.Instant;
|
|
12
|
-
readonly chunkCount: number;
|
|
13
|
-
}
|
|
14
|
-
interface ActiveWorkflowHookSummary {
|
|
15
|
-
readonly stepId: StepId;
|
|
16
|
-
readonly name: string;
|
|
17
|
-
readonly messageId: MessageId;
|
|
18
|
-
readonly source: "hook" | "webhook";
|
|
19
|
-
readonly startedAt: Temporal.Instant;
|
|
20
|
-
readonly timeoutAt?: Temporal.Instant;
|
|
21
|
-
}
|
|
22
|
-
interface ActiveWorkflowEventSummary {
|
|
23
|
-
readonly streams: readonly ActiveWorkflowStreamSummary[];
|
|
24
|
-
readonly hooks: readonly ActiveWorkflowHookSummary[];
|
|
25
|
-
}
|
|
26
|
-
interface ActiveWorkflowEventSummaryReducer {
|
|
27
|
-
addEvent(event: EventRecord): void;
|
|
28
|
-
finish(): ActiveWorkflowEventSummary;
|
|
29
|
-
}
|
|
30
|
-
/** Creates a reducer for active stream and hook events within a single workflow run. */
|
|
31
|
-
declare function createActiveWorkflowEventSummaryReducer(): ActiveWorkflowEventSummaryReducer;
|
|
32
|
-
declare function activeWorkflowEvents(events: readonly EventRecord[]): ActiveWorkflowEventSummary;
|
|
33
|
-
//#endregion
|
|
34
|
-
export { ActiveWorkflowEventSummary, ActiveWorkflowEventSummaryReducer, ActiveWorkflowHookSummary, ActiveWorkflowStreamSummary, activeWorkflowEvents, createActiveWorkflowEventSummaryReducer };
|
|
@@ -1,69 +0,0 @@
|
|
|
1
|
-
//#region src/engine/summary/active-events.ts
|
|
2
|
-
/** Creates a reducer for active stream and hook events within a single workflow run. */
|
|
3
|
-
function createActiveWorkflowEventSummaryReducer() {
|
|
4
|
-
const streams = /* @__PURE__ */ new Map();
|
|
5
|
-
const terminalStreamStepIds = /* @__PURE__ */ new Set();
|
|
6
|
-
const hooks = /* @__PURE__ */ new Map();
|
|
7
|
-
const terminalHookStepIds = /* @__PURE__ */ new Set();
|
|
8
|
-
return {
|
|
9
|
-
addEvent(event) {
|
|
10
|
-
addActiveStreamEvent(streams, terminalStreamStepIds, event);
|
|
11
|
-
addActiveHookEvent(hooks, terminalHookStepIds, event);
|
|
12
|
-
},
|
|
13
|
-
finish() {
|
|
14
|
-
return {
|
|
15
|
-
streams: [...streams.values()].filter((stream) => isActiveStream(stream, terminalStreamStepIds)),
|
|
16
|
-
hooks: [...hooks.values()].filter((hook) => isActiveHook(hook, terminalHookStepIds))
|
|
17
|
-
};
|
|
18
|
-
}
|
|
19
|
-
};
|
|
20
|
-
}
|
|
21
|
-
function activeWorkflowEvents(events) {
|
|
22
|
-
const reducer = createActiveWorkflowEventSummaryReducer();
|
|
23
|
-
for (const event of events) reducer.addEvent(event);
|
|
24
|
-
return reducer.finish();
|
|
25
|
-
}
|
|
26
|
-
function addActiveStreamEvent(streams, terminalStreamStepIds, event) {
|
|
27
|
-
if (event.kind === "stream_started") {
|
|
28
|
-
streams.set(event.stepId, {
|
|
29
|
-
stepId: event.stepId,
|
|
30
|
-
stepName: event.stepName,
|
|
31
|
-
streamId: event.streamId,
|
|
32
|
-
startedAt: event.timestamp,
|
|
33
|
-
chunkCount: 0
|
|
34
|
-
});
|
|
35
|
-
return;
|
|
36
|
-
}
|
|
37
|
-
if (event.kind === "stream_chunk") {
|
|
38
|
-
const stream = streams.get(event.stepId);
|
|
39
|
-
if (stream !== void 0) streams.set(event.stepId, {
|
|
40
|
-
...stream,
|
|
41
|
-
chunkCount: stream.chunkCount + 1
|
|
42
|
-
});
|
|
43
|
-
return;
|
|
44
|
-
}
|
|
45
|
-
if (event.kind === "stream_closed" || event.kind === "stream_failed") terminalStreamStepIds.add(event.stepId);
|
|
46
|
-
}
|
|
47
|
-
function isActiveStream(stream, terminalStreamStepIds) {
|
|
48
|
-
return !terminalStreamStepIds.has(stream.stepId);
|
|
49
|
-
}
|
|
50
|
-
function addActiveHookEvent(hooks, terminalHookStepIds, event) {
|
|
51
|
-
if (event.kind === "message_wait_started") {
|
|
52
|
-
if (event.source !== "hook" && event.source !== "webhook") return;
|
|
53
|
-
hooks.set(event.stepId, {
|
|
54
|
-
stepId: event.stepId,
|
|
55
|
-
name: event.stepName,
|
|
56
|
-
messageId: event.messageId,
|
|
57
|
-
source: event.source,
|
|
58
|
-
startedAt: event.timestamp,
|
|
59
|
-
...event.timeoutAt === void 0 ? {} : { timeoutAt: event.timeoutAt }
|
|
60
|
-
});
|
|
61
|
-
return;
|
|
62
|
-
}
|
|
63
|
-
if (event.kind === "message_wait_completed" || event.kind === "message_wait_failed") terminalHookStepIds.add(event.stepId);
|
|
64
|
-
}
|
|
65
|
-
function isActiveHook(hook, terminalHookStepIds) {
|
|
66
|
-
return !terminalHookStepIds.has(hook.stepId);
|
|
67
|
-
}
|
|
68
|
-
//#endregion
|
|
69
|
-
export { activeWorkflowEvents, createActiveWorkflowEventSummaryReducer };
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
import { RunId } from "../../types/run-id.mjs";
|
|
2
|
-
import { WorkflowRunFailureSummary, WorkflowRunRetrySummary } from "../../types/summary.mjs";
|
|
3
|
-
import { WorkflowStepAttemptRecord } from "../../types/step-attempts.mjs";
|
|
4
|
-
import { WorkflowRunRecord, WorkflowRunStatus } from "../../types/run.mjs";
|
|
5
|
-
import { WorkflowRunReaderRepository } from "../../types/store.mjs";
|
|
6
|
-
//#region src/engine/summary/child-workflow-runs.d.ts
|
|
7
|
-
interface WorkflowChildWorkflowRunSummaryFields {
|
|
8
|
-
readonly childStatus: Record<WorkflowRunStatus, number>;
|
|
9
|
-
readonly retryChildRunIds?: readonly string[];
|
|
10
|
-
readonly failedChildRunIds?: readonly string[];
|
|
11
|
-
readonly canceledChildRunIds?: readonly string[];
|
|
12
|
-
readonly childRetry?: WorkflowRunRetrySummary;
|
|
13
|
-
readonly childFailure?: WorkflowRunFailureSummary;
|
|
14
|
-
}
|
|
15
|
-
interface WorkflowChildWorkflowRunSummaryReducer {
|
|
16
|
-
addRun(run: WorkflowRunRecord): void;
|
|
17
|
-
finish(): WorkflowChildWorkflowRunSummaryFields;
|
|
18
|
-
}
|
|
19
|
-
declare function getChildRunsForAttempts(store: WorkflowRunReaderRepository, parentRunId: RunId, attempts: readonly WorkflowStepAttemptRecord[]): Promise<readonly WorkflowRunRecord[]>;
|
|
20
|
-
/** Creates a reducer for child workflow run state embedded in active child workflow waits. */
|
|
21
|
-
declare function createWorkflowChildWorkflowRunSummaryReducer(): WorkflowChildWorkflowRunSummaryReducer;
|
|
22
|
-
declare function summarizeChildWorkflowRuns(runs: readonly WorkflowRunRecord[]): WorkflowChildWorkflowRunSummaryFields;
|
|
23
|
-
//#endregion
|
|
24
|
-
export { WorkflowChildWorkflowRunSummaryFields, WorkflowChildWorkflowRunSummaryReducer, createWorkflowChildWorkflowRunSummaryReducer, getChildRunsForAttempts, summarizeChildWorkflowRuns };
|