@temelj/workflow 0.0.0-alpha.3 → 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 +119 -280
- 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
package/dist/errors/records.mjs
CHANGED
|
@@ -1,280 +1,280 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { positiveSafeIntegerSchema } from "../schema/common.mjs";
|
|
2
2
|
import { WorkflowError, WorkflowMessageError, WorkflowOptionsError, WorkflowRunError, WorkflowStateError, WorkflowStepError } from "./base.mjs";
|
|
3
|
-
import { WorkflowDurationError, WorkflowNonRetryableError, WorkflowPermanentFailureError, WorkflowReplayDivergenceError, WorkflowRetryableError, WorkflowSerializationError } from "./failures.mjs";
|
|
4
|
-
import { WorkflowChildWorkflowTimeoutError, WorkflowResultTimeoutError, WorkflowRunCanceledError, WorkflowRunCancellationError, WorkflowRunDeadlineExceededError, WorkflowRunMismatchError, WorkflowRunNotFoundError, WorkflowRunParentError, WorkflowRunTransitionError } from "./run.mjs";
|
|
5
|
-
import { sanitizedWorkflowErrorDetails } from "../types/error.mjs";
|
|
6
3
|
import { WorkflowCapabilityError } from "./capability.mjs";
|
|
7
4
|
import { WorkflowDefinitionError } from "./definition.mjs";
|
|
5
|
+
import { WorkflowDurationError, WorkflowNonRetryableError, WorkflowPermanentFailureError, WorkflowReplayDivergenceError, WorkflowRetryableError, WorkflowSerializationError } from "./failures.mjs";
|
|
8
6
|
import { WorkflowHookError } from "./hook.mjs";
|
|
9
7
|
import { WorkflowImplementationNotFoundError } from "./implementation.mjs";
|
|
10
8
|
import { WorkflowLockError, WorkflowLockStateError } from "./lock.mjs";
|
|
11
9
|
import { WorkflowHookDisposedError, WorkflowMessageDeliveryError, WorkflowMessageIdempotencyConflictError, WorkflowMessageWaitTimeoutError } from "./message.mjs";
|
|
12
|
-
import {
|
|
10
|
+
import { WorkflowChildWorkflowTimeoutError, WorkflowResultTimeoutError, WorkflowRunCanceledError, WorkflowRunCancellationError, WorkflowRunDeadlineExceededError, WorkflowRunMismatchError, WorkflowRunNotFoundError, WorkflowRunParentError, WorkflowRunTransitionError } from "./run.mjs";
|
|
13
11
|
import { WorkflowScheduleAlreadyExistsError, WorkflowScheduleError } from "./schedule.mjs";
|
|
14
12
|
import { WorkflowStepAttemptLimitError, WorkflowStepExecutionError, WorkflowStepRetryLimitError, WorkflowStepTimeoutError } from "./step.mjs";
|
|
15
13
|
import { WorkflowStreamError, WorkflowStreamNotFoundError } from "./stream.mjs";
|
|
16
|
-
import {
|
|
14
|
+
import { errorCodeSchema, errorDetailsSchema, errorRunStatusSchema, optionalErrorStringSchema, terminalErrorRunStatusSchema } from "../schema/error.mjs";
|
|
15
|
+
import { ss } from "@temelj/standard-schema";
|
|
16
|
+
import { isObject, isString } from "@temelj/value";
|
|
17
17
|
//#region src/errors/records.ts
|
|
18
18
|
/** Reconstructs a workflow error instance from a persisted error record. */
|
|
19
19
|
function workflowErrorFromRecord(record) {
|
|
20
|
-
const
|
|
21
|
-
const
|
|
22
|
-
const
|
|
23
|
-
const error = typedWorkflowErrorFromRecord(normalizedRecord, recordMessage) ?? WorkflowError.fromMessage(recordMessage, { details: sanitizedWorkflowErrorDetails(normalizedRecord.details) });
|
|
20
|
+
const recordName = record.name.trim() === "" ? "WorkflowError" : record.name;
|
|
21
|
+
const recordMessage = record.message.trim() === "" ? recordName : record.message;
|
|
22
|
+
const error = typedErrorFromRecord(record, recordMessage) ?? new WorkflowError(recordMessage, { details: sanitizedErrorDetails(record.details) });
|
|
24
23
|
error.name = recordName;
|
|
25
24
|
error.message = recordMessage;
|
|
26
|
-
const recordCode =
|
|
27
|
-
if (recordCode.success) Object.defineProperty(error, "code", { value: recordCode.
|
|
28
|
-
const recordStack =
|
|
25
|
+
const recordCode = ss.safeParseSync(errorCodeSchema, record.code);
|
|
26
|
+
if (recordCode.success) Object.defineProperty(error, "code", { value: recordCode.value });
|
|
27
|
+
const recordStack = record.stack !== void 0 && record.stack.trim() !== "" ? record.stack : void 0;
|
|
29
28
|
if (recordStack !== void 0) error.stack = recordStack;
|
|
30
29
|
return error;
|
|
31
30
|
}
|
|
32
|
-
function
|
|
33
|
-
return (record.name === void 0 ? void 0 : workflowErrorRecordFactories
|
|
31
|
+
function typedErrorFromRecord(record, recordMessage) {
|
|
32
|
+
return (record.name === void 0 ? void 0 : workflowErrorRecordFactories().get(record.name))?.(record, recordMessage);
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Rebuilds an error from the detail fields its constructor needs. The record is not rebuilt as
|
|
36
|
+
* this class when a field is missing or malformed.
|
|
37
|
+
*/
|
|
38
|
+
function fromFields(spec, build) {
|
|
39
|
+
return (record, recordMessage) => {
|
|
40
|
+
const fields = {};
|
|
41
|
+
for (const [key, kind] of Object.entries(spec)) {
|
|
42
|
+
const value = readField(record.details, key, kind);
|
|
43
|
+
if (value === void 0) return;
|
|
44
|
+
fields[key] = value;
|
|
45
|
+
}
|
|
46
|
+
return build(fields, recordMessage, record.details);
|
|
47
|
+
};
|
|
34
48
|
}
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
return
|
|
44
|
-
},
|
|
45
|
-
WorkflowStreamNotFoundError(record) {
|
|
46
|
-
const streamIdOrName = workflowErrorDetailString(record.details, "streamIdOrName");
|
|
47
|
-
return streamIdOrName === void 0 ? void 0 : WorkflowStreamNotFoundError.create(streamIdOrName);
|
|
48
|
-
},
|
|
49
|
-
WorkflowImplementationNotFoundError(record) {
|
|
50
|
-
const details = record.details;
|
|
51
|
-
const workflowName = workflowErrorDetailString(details, "workflowName");
|
|
52
|
-
if (workflowName === void 0) return;
|
|
53
|
-
return WorkflowImplementationNotFoundError.create(workflowName, workflowErrorDetailString(details, "workflowVersion"));
|
|
54
|
-
},
|
|
55
|
-
WorkflowDefinitionError: (_record, recordMessage) => WorkflowDefinitionError.create(recordMessage),
|
|
56
|
-
WorkflowOptionsError: (_record, recordMessage) => WorkflowOptionsError.create(recordMessage),
|
|
57
|
-
WorkflowStateError: (_record, recordMessage) => WorkflowStateError.create(recordMessage),
|
|
58
|
-
WorkflowRuntimeError: (_record, recordMessage) => WorkflowRuntimeError.create(recordMessage),
|
|
59
|
-
WorkflowRunError(record, recordMessage) {
|
|
60
|
-
return WorkflowRunError.fromMessage(recordMessage, { details: sanitizedWorkflowErrorDetails(record.details) });
|
|
61
|
-
},
|
|
62
|
-
WorkflowStepError(record, recordMessage) {
|
|
63
|
-
return WorkflowStepError.fromMessage(recordMessage, { details: sanitizedWorkflowErrorDetails(record.details) });
|
|
64
|
-
},
|
|
65
|
-
WorkflowMessageError(record, recordMessage) {
|
|
66
|
-
return WorkflowMessageError.fromMessage(recordMessage, { details: sanitizedWorkflowErrorDetails(record.details) });
|
|
67
|
-
},
|
|
68
|
-
WorkflowCapabilityError(record) {
|
|
69
|
-
const details = record.details;
|
|
70
|
-
const capability = workflowErrorDetailString(details, "capability");
|
|
71
|
-
return capability === void 0 ? void 0 : WorkflowCapabilityError.create(capability);
|
|
72
|
-
},
|
|
73
|
-
WorkflowDurationError: (_record, recordMessage) => WorkflowDurationError.create(recordMessage),
|
|
74
|
-
WorkflowSerializationError(record) {
|
|
75
|
-
const details = record.details;
|
|
76
|
-
const path = workflowErrorDetailString(details, "path");
|
|
77
|
-
const reason = workflowErrorDetailString(details, "reason");
|
|
78
|
-
return path === void 0 || reason === void 0 ? void 0 : WorkflowSerializationError.create(path, reason);
|
|
79
|
-
},
|
|
80
|
-
WorkflowNonRetryableError(record, recordMessage) {
|
|
81
|
-
return WorkflowNonRetryableError.create(recordMessage, { details: sanitizedWorkflowErrorDetails(record.details) });
|
|
82
|
-
},
|
|
83
|
-
WorkflowPermanentFailureError(record) {
|
|
84
|
-
const details = record.details;
|
|
85
|
-
const runId = workflowErrorDetailString(details, "runId");
|
|
86
|
-
const reason = workflowErrorDetailString(details, "reason");
|
|
87
|
-
return runId === void 0 || reason === void 0 ? void 0 : WorkflowPermanentFailureError.create({
|
|
88
|
-
runId,
|
|
89
|
-
reason
|
|
90
|
-
});
|
|
91
|
-
},
|
|
92
|
-
WorkflowRetryableError(record, recordMessage) {
|
|
93
|
-
const details = record.details;
|
|
94
|
-
const retryAt = workflowErrorDetailTimestamp(details, "retryAt");
|
|
95
|
-
const retryDelay = workflowErrorDetailDuration(details, "retryDelay");
|
|
96
|
-
return WorkflowRetryableError.create(recordMessage, {
|
|
97
|
-
...retryAt === void 0 ? {} : { retryAt },
|
|
98
|
-
...retryDelay === void 0 ? {} : { retryDelay },
|
|
99
|
-
details: sanitizedWorkflowErrorDetails(details)
|
|
100
|
-
});
|
|
101
|
-
},
|
|
102
|
-
WorkflowStepTimeoutError(record) {
|
|
103
|
-
const details = record.details;
|
|
104
|
-
const runId = workflowErrorDetailString(details, "runId");
|
|
105
|
-
const stepId = workflowErrorDetailString(details, "stepId");
|
|
106
|
-
const stepName = workflowErrorDetailString(details, "stepName");
|
|
107
|
-
const attempt = workflowErrorDetailPositiveSafeInteger(details, "attempt");
|
|
108
|
-
const timeoutAt = workflowErrorDetailTimestamp(details, "timeoutAt");
|
|
109
|
-
return runId === void 0 || stepId === void 0 || stepName === void 0 || attempt === void 0 || timeoutAt === void 0 ? void 0 : WorkflowStepTimeoutError.create({
|
|
110
|
-
runId,
|
|
111
|
-
stepId,
|
|
112
|
-
stepName,
|
|
113
|
-
attempt,
|
|
114
|
-
timeoutAt
|
|
115
|
-
});
|
|
116
|
-
},
|
|
117
|
-
WorkflowResultTimeoutError(record) {
|
|
118
|
-
const details = record.details;
|
|
119
|
-
const runId = workflowErrorDetailString(details, "runId");
|
|
120
|
-
const timeout = workflowErrorDetailDuration(details, "timeout");
|
|
121
|
-
return runId === void 0 || timeout === void 0 ? void 0 : WorkflowResultTimeoutError.create(runId, timeout);
|
|
122
|
-
},
|
|
123
|
-
WorkflowRunNotFoundError(record) {
|
|
124
|
-
const details = record.details;
|
|
125
|
-
const runId = workflowErrorDetailString(details, "runId");
|
|
126
|
-
return runId === void 0 ? void 0 : WorkflowRunNotFoundError.create(runId);
|
|
127
|
-
},
|
|
128
|
-
WorkflowRunCanceledError(record) {
|
|
129
|
-
const details = record.details;
|
|
130
|
-
const runId = workflowErrorDetailString(details, "runId");
|
|
131
|
-
return runId === void 0 ? void 0 : WorkflowRunCanceledError.create(runId);
|
|
132
|
-
},
|
|
133
|
-
WorkflowRunCancellationError(record) {
|
|
134
|
-
const details = record.details;
|
|
135
|
-
const runId = workflowErrorDetailString(details, "runId");
|
|
136
|
-
const status = workflowTerminalErrorRunStatusOrUndefined(workflowErrorDetailString(details, "status"));
|
|
137
|
-
return runId === void 0 || status === void 0 ? void 0 : WorkflowRunCancellationError.create(runId, status);
|
|
138
|
-
},
|
|
139
|
-
WorkflowRunDeadlineExceededError(record) {
|
|
140
|
-
const details = record.details;
|
|
141
|
-
const runId = workflowErrorDetailString(details, "runId");
|
|
142
|
-
const deadlineAt = workflowErrorDetailTimestamp(details, "deadlineAt");
|
|
143
|
-
return runId === void 0 || deadlineAt === void 0 ? void 0 : WorkflowRunDeadlineExceededError.create(runId, deadlineAt);
|
|
144
|
-
},
|
|
145
|
-
WorkflowRunParentError(record) {
|
|
146
|
-
const details = record.details;
|
|
147
|
-
const runId = workflowErrorDetailString(details, "runId");
|
|
148
|
-
const reason = workflowErrorDetailString(details, "reason");
|
|
149
|
-
return runId === void 0 || reason === void 0 ? void 0 : WorkflowRunParentError.create(runId, reason);
|
|
150
|
-
},
|
|
151
|
-
WorkflowRunTransitionError(record) {
|
|
152
|
-
const details = record.details;
|
|
153
|
-
const runId = workflowErrorDetailString(details, "runId");
|
|
154
|
-
const valueFrom = workflowErrorDetailString(details, "from");
|
|
155
|
-
const from = valueFrom === void 0 ? void 0 : workflowErrorRunStatusOrUndefined(valueFrom);
|
|
156
|
-
const valueTo = workflowErrorDetailString(details, "to");
|
|
157
|
-
const to = valueTo === void 0 ? void 0 : workflowErrorRunStatusOrUndefined(valueTo);
|
|
158
|
-
return runId === void 0 || from === void 0 || to === void 0 ? void 0 : WorkflowRunTransitionError.create(runId, from, to);
|
|
159
|
-
},
|
|
160
|
-
WorkflowMessageDeliveryError(record) {
|
|
161
|
-
const details = record.details;
|
|
162
|
-
const runId = workflowErrorDetailString(details, "runId");
|
|
163
|
-
const status = workflowTerminalErrorRunStatusOrUndefined(workflowErrorDetailString(details, "status"));
|
|
164
|
-
const messageId = workflowErrorDetailString(details, "messageId");
|
|
165
|
-
return runId === void 0 || status === void 0 || messageId === void 0 ? void 0 : WorkflowMessageDeliveryError.create({
|
|
166
|
-
runId,
|
|
167
|
-
status,
|
|
168
|
-
messageId
|
|
169
|
-
});
|
|
170
|
-
},
|
|
171
|
-
WorkflowMessageIdempotencyConflictError(record) {
|
|
172
|
-
const details = record.details;
|
|
173
|
-
const runId = workflowErrorDetailString(details, "runId");
|
|
174
|
-
const messageId = workflowErrorDetailString(details, "messageId");
|
|
175
|
-
const idempotencyKey = workflowErrorDetailString(details, "idempotencyKey");
|
|
176
|
-
return runId === void 0 || messageId === void 0 || idempotencyKey === void 0 ? void 0 : WorkflowMessageIdempotencyConflictError.create({
|
|
177
|
-
runId,
|
|
178
|
-
messageId,
|
|
179
|
-
idempotencyKey
|
|
180
|
-
});
|
|
181
|
-
},
|
|
182
|
-
WorkflowRunMismatchError(record) {
|
|
183
|
-
const details = record.details;
|
|
184
|
-
const runId = workflowErrorDetailString(details, "runId");
|
|
185
|
-
const expectedWorkflowName = workflowErrorDetailString(details, "expectedWorkflowName");
|
|
186
|
-
const actualWorkflowName = workflowErrorDetailString(details, "actualWorkflowName");
|
|
187
|
-
return runId === void 0 || expectedWorkflowName === void 0 || actualWorkflowName === void 0 ? void 0 : WorkflowRunMismatchError.create({
|
|
188
|
-
runId,
|
|
189
|
-
expectedWorkflowName,
|
|
190
|
-
actualWorkflowName
|
|
191
|
-
});
|
|
192
|
-
},
|
|
193
|
-
WorkflowChildWorkflowTimeoutError(record) {
|
|
194
|
-
const details = record.details;
|
|
195
|
-
const runId = workflowErrorDetailString(details, "runId");
|
|
196
|
-
const childRunId = workflowErrorDetailString(details, "childRunId");
|
|
197
|
-
const stepId = workflowErrorDetailString(details, "stepId");
|
|
198
|
-
const timeoutAt = workflowErrorDetailTimestamp(details, "timeoutAt");
|
|
199
|
-
return runId === void 0 || childRunId === void 0 || stepId === void 0 || timeoutAt === void 0 ? void 0 : WorkflowChildWorkflowTimeoutError.create({
|
|
200
|
-
runId,
|
|
201
|
-
childRunId,
|
|
202
|
-
stepId,
|
|
203
|
-
timeoutAt
|
|
204
|
-
});
|
|
205
|
-
},
|
|
206
|
-
WorkflowMessageWaitTimeoutError(record) {
|
|
207
|
-
const details = record.details;
|
|
208
|
-
const runId = workflowErrorDetailString(details, "runId");
|
|
209
|
-
const stepId = workflowErrorDetailString(details, "stepId");
|
|
210
|
-
const stepName = workflowErrorDetailString(details, "stepName");
|
|
211
|
-
const messageId = workflowErrorDetailString(details, "messageId");
|
|
212
|
-
const timeoutAt = workflowErrorDetailTimestamp(details, "timeoutAt");
|
|
213
|
-
return runId === void 0 || stepId === void 0 || stepName === void 0 || messageId === void 0 || timeoutAt === void 0 ? void 0 : WorkflowMessageWaitTimeoutError.create({
|
|
214
|
-
runId,
|
|
215
|
-
stepId,
|
|
216
|
-
stepName,
|
|
217
|
-
messageId,
|
|
218
|
-
timeoutAt
|
|
219
|
-
});
|
|
220
|
-
},
|
|
221
|
-
WorkflowHookDisposedError(record) {
|
|
222
|
-
const details = record.details;
|
|
223
|
-
const runId = workflowErrorDetailString(details, "runId");
|
|
224
|
-
const stepId = workflowErrorDetailString(details, "stepId");
|
|
225
|
-
const stepName = workflowErrorDetailString(details, "stepName");
|
|
226
|
-
const messageId = workflowErrorDetailString(details, "messageId");
|
|
227
|
-
return runId === void 0 || stepId === void 0 || stepName === void 0 || messageId === void 0 ? void 0 : WorkflowHookDisposedError.create({
|
|
228
|
-
runId,
|
|
229
|
-
stepId,
|
|
230
|
-
stepName,
|
|
231
|
-
messageId
|
|
232
|
-
});
|
|
233
|
-
},
|
|
234
|
-
WorkflowStepExecutionError(record, recordMessage) {
|
|
235
|
-
const details = record.details;
|
|
236
|
-
const stepId = workflowErrorDetailString(details, "stepId");
|
|
237
|
-
const stepName = workflowErrorDetailString(details, "stepName");
|
|
238
|
-
const attempt = workflowErrorDetailPositiveSafeInteger(details, "attempt");
|
|
239
|
-
const cause = details !== void 0 && hasWorkflowErrorCauseDetails(details) ? workflowErrorFromRecord(unprefixWorkflowErrorCauseDetails(details)) : WorkflowError.fromMessage(recordMessage);
|
|
240
|
-
return stepId === void 0 || stepName === void 0 || attempt === void 0 ? void 0 : WorkflowStepExecutionError.create({
|
|
241
|
-
stepId,
|
|
242
|
-
stepName,
|
|
243
|
-
attempt,
|
|
244
|
-
cause
|
|
245
|
-
});
|
|
246
|
-
},
|
|
247
|
-
WorkflowStepRetryLimitError(record) {
|
|
248
|
-
const details = record.details;
|
|
249
|
-
const stepId = workflowErrorDetailString(details, "stepId");
|
|
250
|
-
const stepName = workflowErrorDetailString(details, "stepName");
|
|
251
|
-
const attempt = workflowErrorDetailPositiveSafeInteger(details, "attempt");
|
|
252
|
-
return stepId === void 0 || stepName === void 0 || attempt === void 0 ? void 0 : WorkflowStepRetryLimitError.create({
|
|
253
|
-
stepId,
|
|
254
|
-
stepName,
|
|
255
|
-
attempt
|
|
256
|
-
});
|
|
257
|
-
},
|
|
258
|
-
WorkflowStepAttemptLimitError(record) {
|
|
259
|
-
const details = record.details;
|
|
260
|
-
const runId = workflowErrorDetailString(details, "runId");
|
|
261
|
-
const maximumAttempts = workflowErrorDetailPositiveSafeInteger(details, "maximumAttempts");
|
|
262
|
-
return runId === void 0 || maximumAttempts === void 0 ? void 0 : WorkflowStepAttemptLimitError.create(runId, maximumAttempts);
|
|
263
|
-
},
|
|
264
|
-
WorkflowReplayDivergenceError(record) {
|
|
265
|
-
const details = record.details;
|
|
266
|
-
if (typeof record.message !== "string" || record.message.trim() === "") return;
|
|
267
|
-
return WorkflowReplayDivergenceError.create(record.message.replace(/^Workflow replay diverged: /, ""), {
|
|
268
|
-
expectedStepId: workflowErrorDetailString(details, "expectedStepId"),
|
|
269
|
-
actualStepId: workflowErrorDetailString(details, "actualStepId")
|
|
270
|
-
});
|
|
49
|
+
function readField(details, key, kind) {
|
|
50
|
+
switch (kind) {
|
|
51
|
+
case "string": return workflowErrorDetailString(details, key);
|
|
52
|
+
case "integer": return workflowErrorDetailPositiveSafeInteger(details, key);
|
|
53
|
+
case "instant": return workflowErrorDetailTimestamp(details, key);
|
|
54
|
+
case "duration": return workflowErrorDetailDuration(details, key);
|
|
55
|
+
case "runStatus": return workflowErrorRunStatusOrUndefined(workflowErrorDetailString(details, key));
|
|
56
|
+
case "terminalStatus": return workflowTerminalErrorRunStatusOrUndefined(workflowErrorDetailString(details, key));
|
|
57
|
+
default: return kind;
|
|
271
58
|
}
|
|
272
|
-
}
|
|
273
|
-
|
|
59
|
+
}
|
|
60
|
+
let recordFactories;
|
|
61
|
+
/** Built on first use, because the error modules import this one while they load. */
|
|
62
|
+
function workflowErrorRecordFactories() {
|
|
63
|
+
recordFactories ??= new Map(Object.entries({
|
|
64
|
+
WorkflowHookError: domainErrorFactory(WorkflowHookError),
|
|
65
|
+
WorkflowLockError: domainErrorFactory(WorkflowLockError),
|
|
66
|
+
WorkflowLockStateError: domainErrorFactory(WorkflowLockStateError),
|
|
67
|
+
WorkflowScheduleError: domainErrorFactory(WorkflowScheduleError),
|
|
68
|
+
WorkflowStreamError: domainErrorFactory(WorkflowStreamError),
|
|
69
|
+
WorkflowScheduleAlreadyExistsError: fromFields({ scheduleId: "string" }, ({ scheduleId }) => new WorkflowScheduleAlreadyExistsError(scheduleId)),
|
|
70
|
+
WorkflowStreamNotFoundError: fromFields({ streamIdOrName: "string" }, ({ streamIdOrName }) => new WorkflowStreamNotFoundError(streamIdOrName)),
|
|
71
|
+
WorkflowImplementationNotFoundError: fromFields({ workflowName: "string" }, ({ workflowName }, _message, details) => new WorkflowImplementationNotFoundError(workflowName, workflowErrorDetailString(details, "workflowVersion"))),
|
|
72
|
+
WorkflowDefinitionError: (_record, recordMessage) => new WorkflowDefinitionError(recordMessage),
|
|
73
|
+
WorkflowOptionsError: (_record, recordMessage) => new WorkflowOptionsError(recordMessage),
|
|
74
|
+
WorkflowStateError: (_record, recordMessage) => new WorkflowStateError(recordMessage),
|
|
75
|
+
WorkflowDurationError: (_record, recordMessage) => new WorkflowDurationError(recordMessage),
|
|
76
|
+
WorkflowRunError: withDetails(WorkflowRunError),
|
|
77
|
+
WorkflowStepError: withDetails(WorkflowStepError),
|
|
78
|
+
WorkflowMessageError: withDetails(WorkflowMessageError),
|
|
79
|
+
WorkflowNonRetryableError: withDetails(WorkflowNonRetryableError),
|
|
80
|
+
WorkflowCapabilityError: fromFields({ capability: "string" }, ({ capability }) => new WorkflowCapabilityError(capability)),
|
|
81
|
+
WorkflowSerializationError: fromFields({
|
|
82
|
+
path: "string",
|
|
83
|
+
reason: "string"
|
|
84
|
+
}, ({ path, reason }) => new WorkflowSerializationError(path, reason)),
|
|
85
|
+
WorkflowPermanentFailureError: fromFields({
|
|
86
|
+
runId: "string",
|
|
87
|
+
reason: "string"
|
|
88
|
+
}, (fields) => new WorkflowPermanentFailureError(fields)),
|
|
89
|
+
WorkflowRetryableError(record, recordMessage) {
|
|
90
|
+
const details = record.details;
|
|
91
|
+
return new WorkflowRetryableError(recordMessage, {
|
|
92
|
+
details: sanitizedErrorDetails(details),
|
|
93
|
+
retryAt: workflowErrorDetailTimestamp(details, "retryAt"),
|
|
94
|
+
retryDelay: workflowErrorDetailDuration(details, "retryDelay")
|
|
95
|
+
});
|
|
96
|
+
},
|
|
97
|
+
WorkflowStepTimeoutError: fromFields({
|
|
98
|
+
runId: "string",
|
|
99
|
+
stepId: "string",
|
|
100
|
+
stepName: "string",
|
|
101
|
+
attempt: "integer",
|
|
102
|
+
timeoutAt: "instant"
|
|
103
|
+
}, (fields) => new WorkflowStepTimeoutError(fields)),
|
|
104
|
+
WorkflowResultTimeoutError: fromFields({
|
|
105
|
+
runId: "string",
|
|
106
|
+
timeout: "duration"
|
|
107
|
+
}, ({ runId, timeout }) => new WorkflowResultTimeoutError(runId, timeout)),
|
|
108
|
+
WorkflowRunNotFoundError: fromFields({ runId: "string" }, ({ runId }) => new WorkflowRunNotFoundError(runId)),
|
|
109
|
+
WorkflowRunCanceledError: fromFields({ runId: "string" }, ({ runId }) => new WorkflowRunCanceledError(runId)),
|
|
110
|
+
WorkflowRunCancellationError: fromFields({
|
|
111
|
+
runId: "string",
|
|
112
|
+
status: "terminalStatus"
|
|
113
|
+
}, ({ runId, status }) => new WorkflowRunCancellationError(runId, status)),
|
|
114
|
+
WorkflowRunDeadlineExceededError: fromFields({
|
|
115
|
+
runId: "string",
|
|
116
|
+
deadlineAt: "instant"
|
|
117
|
+
}, ({ runId, deadlineAt }) => new WorkflowRunDeadlineExceededError(runId, deadlineAt)),
|
|
118
|
+
WorkflowRunParentError: fromFields({
|
|
119
|
+
runId: "string",
|
|
120
|
+
reason: "string"
|
|
121
|
+
}, ({ runId, reason }) => new WorkflowRunParentError(runId, reason)),
|
|
122
|
+
WorkflowRunTransitionError: fromFields({
|
|
123
|
+
runId: "string",
|
|
124
|
+
from: "runStatus",
|
|
125
|
+
to: "runStatus"
|
|
126
|
+
}, ({ runId, from, to }) => new WorkflowRunTransitionError(runId, from, to)),
|
|
127
|
+
WorkflowMessageDeliveryError: fromFields({
|
|
128
|
+
runId: "string",
|
|
129
|
+
status: "terminalStatus",
|
|
130
|
+
messageId: "string"
|
|
131
|
+
}, (fields) => new WorkflowMessageDeliveryError(fields)),
|
|
132
|
+
WorkflowMessageIdempotencyConflictError: fromFields({
|
|
133
|
+
runId: "string",
|
|
134
|
+
messageId: "string",
|
|
135
|
+
idempotencyKey: "string"
|
|
136
|
+
}, (fields) => new WorkflowMessageIdempotencyConflictError(fields)),
|
|
137
|
+
WorkflowRunMismatchError: fromFields({
|
|
138
|
+
runId: "string",
|
|
139
|
+
expectedWorkflowName: "string",
|
|
140
|
+
actualWorkflowName: "string"
|
|
141
|
+
}, (fields) => new WorkflowRunMismatchError(fields)),
|
|
142
|
+
WorkflowChildWorkflowTimeoutError: fromFields({
|
|
143
|
+
runId: "string",
|
|
144
|
+
childRunId: "string",
|
|
145
|
+
stepId: "string",
|
|
146
|
+
timeoutAt: "instant"
|
|
147
|
+
}, (fields) => new WorkflowChildWorkflowTimeoutError(fields)),
|
|
148
|
+
WorkflowMessageWaitTimeoutError: fromFields({
|
|
149
|
+
runId: "string",
|
|
150
|
+
stepId: "string",
|
|
151
|
+
stepName: "string",
|
|
152
|
+
messageId: "string",
|
|
153
|
+
timeoutAt: "instant"
|
|
154
|
+
}, (fields) => new WorkflowMessageWaitTimeoutError(fields)),
|
|
155
|
+
WorkflowHookDisposedError: fromFields({
|
|
156
|
+
runId: "string",
|
|
157
|
+
stepId: "string",
|
|
158
|
+
stepName: "string",
|
|
159
|
+
messageId: "string"
|
|
160
|
+
}, (fields) => new WorkflowHookDisposedError(fields)),
|
|
161
|
+
WorkflowStepExecutionError: fromFields({
|
|
162
|
+
stepId: "string",
|
|
163
|
+
stepName: "string",
|
|
164
|
+
attempt: "integer"
|
|
165
|
+
}, (fields, recordMessage, details) => new WorkflowStepExecutionError({
|
|
166
|
+
...fields,
|
|
167
|
+
cause: details !== void 0 && hasErrorCauseDetails(details) ? workflowErrorFromRecord(unprefixErrorCauseDetails(details)) : new WorkflowError(recordMessage)
|
|
168
|
+
})),
|
|
169
|
+
WorkflowStepRetryLimitError: fromFields({
|
|
170
|
+
stepId: "string",
|
|
171
|
+
stepName: "string",
|
|
172
|
+
attempt: "integer"
|
|
173
|
+
}, (fields) => new WorkflowStepRetryLimitError(fields)),
|
|
174
|
+
WorkflowStepAttemptLimitError: fromFields({
|
|
175
|
+
runId: "string",
|
|
176
|
+
maximumAttempts: "integer"
|
|
177
|
+
}, ({ runId, maximumAttempts }) => new WorkflowStepAttemptLimitError(runId, maximumAttempts)),
|
|
178
|
+
WorkflowReplayDivergenceError(record) {
|
|
179
|
+
const details = record.details;
|
|
180
|
+
if (record.message === void 0 || record.message.trim() === "") return;
|
|
181
|
+
return new WorkflowReplayDivergenceError(record.message.replace(/^Workflow replay diverged: /, ""), {
|
|
182
|
+
expectedStepId: workflowErrorDetailString(details, "expectedStepId"),
|
|
183
|
+
actualStepId: workflowErrorDetailString(details, "actualStepId")
|
|
184
|
+
});
|
|
185
|
+
}
|
|
186
|
+
}));
|
|
187
|
+
return recordFactories;
|
|
188
|
+
}
|
|
189
|
+
function domainErrorFactory(ErrorConstructor) {
|
|
274
190
|
return (record, recordMessage) => {
|
|
275
|
-
const code =
|
|
276
|
-
return code.success ? new ErrorConstructor(recordMessage, code.
|
|
191
|
+
const code = ss.safeParseSync(errorCodeSchema, record.code);
|
|
192
|
+
return code.success ? new ErrorConstructor(recordMessage, code.value, sanitizedErrorDetails(record.details)) : void 0;
|
|
193
|
+
};
|
|
194
|
+
}
|
|
195
|
+
function withDetails(ErrorConstructor) {
|
|
196
|
+
return (record, recordMessage) => new ErrorConstructor(recordMessage, { details: sanitizedErrorDetails(record.details) });
|
|
197
|
+
}
|
|
198
|
+
/** Safely exposes fields shared by live workflow errors and persisted workflow error records. */
|
|
199
|
+
function workflowErrorRecordView(cause) {
|
|
200
|
+
if (!isObject(cause)) return;
|
|
201
|
+
const code = "code" in cause ? ss.safeParseSync(errorCodeSchema, cause.code) : void 0;
|
|
202
|
+
if (code === void 0 || !code.success) return;
|
|
203
|
+
if (!("details" in cause) || cause.details === void 0) return { code: code.value };
|
|
204
|
+
const details = ss.safeParseSync(errorDetailsSchema, cause.details);
|
|
205
|
+
return details.success ? {
|
|
206
|
+
code: code.value,
|
|
207
|
+
details: details.value
|
|
208
|
+
} : void 0;
|
|
209
|
+
}
|
|
210
|
+
/**
|
|
211
|
+
* Whether `cause` is a workflow error, or a record of one, with `code` and every given detail value.
|
|
212
|
+
* Detail values left `undefined` match anything.
|
|
213
|
+
*/
|
|
214
|
+
function matchesWorkflowError(cause, code, details = {}) {
|
|
215
|
+
const record = workflowErrorRecordView(cause);
|
|
216
|
+
return record?.code === code && Object.entries(details).every(([key, value]) => value === void 0 || record.details?.[key] === value);
|
|
217
|
+
}
|
|
218
|
+
function hasErrorCauseDetails(details) {
|
|
219
|
+
return workflowErrorDetailString(details, "causeName") !== void 0 || workflowErrorDetailString(details, "causeMessage") !== void 0;
|
|
220
|
+
}
|
|
221
|
+
function unprefixErrorCauseDetails(details) {
|
|
222
|
+
const unprefixed = Object.fromEntries(Object.entries(details).filter(([key]) => /^cause[A-Z]/.test(key)).map(([key, value]) => {
|
|
223
|
+
const unprefixedKey = key.slice(5);
|
|
224
|
+
return [`${unprefixedKey[0]?.toLowerCase() ?? ""}${unprefixedKey.slice(1)}`, value];
|
|
225
|
+
}));
|
|
226
|
+
const name = isString(unprefixed.name) && unprefixed.name.trim() !== "" ? unprefixed.name : "WorkflowError";
|
|
227
|
+
const message = isString(unprefixed.message) && unprefixed.message.trim() !== "" ? unprefixed.message : name;
|
|
228
|
+
const stack = isString(unprefixed.stack) && unprefixed.stack.trim() !== "" ? unprefixed.stack : void 0;
|
|
229
|
+
const code = ss.safeParseSync(errorCodeSchema, unprefixed.code);
|
|
230
|
+
const sanitizedDetails = sanitizedErrorDetails(Object.fromEntries(Object.entries(unprefixed).filter(([key]) => key !== "code" && key !== "name" && key !== "message" && key !== "stack")));
|
|
231
|
+
return {
|
|
232
|
+
name,
|
|
233
|
+
message,
|
|
234
|
+
code: code.success ? code.value : void 0,
|
|
235
|
+
stack,
|
|
236
|
+
details: sanitizedDetails
|
|
277
237
|
};
|
|
278
238
|
}
|
|
239
|
+
function workflowErrorDetailString(details, key) {
|
|
240
|
+
const parsed = ss.safeParseSync(errorDetailsSchema, details);
|
|
241
|
+
if (!parsed.success) return;
|
|
242
|
+
const result = ss.safeParseSync(optionalErrorStringSchema, parsed.value[key]);
|
|
243
|
+
return result.success ? result.value : void 0;
|
|
244
|
+
}
|
|
245
|
+
function workflowErrorDetailPositiveSafeInteger(details, key) {
|
|
246
|
+
const parsed = ss.safeParseSync(errorDetailsSchema, details);
|
|
247
|
+
if (!parsed.success) return;
|
|
248
|
+
const result = ss.safeParseSync(ss.optional(positiveSafeIntegerSchema), parsed.value[key]);
|
|
249
|
+
return result.success ? result.value : void 0;
|
|
250
|
+
}
|
|
251
|
+
function workflowErrorRunStatusOrUndefined(value) {
|
|
252
|
+
const result = ss.safeParseSync(errorRunStatusSchema, value);
|
|
253
|
+
return result.success ? result.value : void 0;
|
|
254
|
+
}
|
|
255
|
+
function workflowTerminalErrorRunStatusOrUndefined(value) {
|
|
256
|
+
const result = ss.safeParseSync(terminalErrorRunStatusSchema, value);
|
|
257
|
+
return result.success ? result.value : void 0;
|
|
258
|
+
}
|
|
259
|
+
function workflowErrorDetailTimestamp(details, key) {
|
|
260
|
+
return parseDetail(details, key, (value) => Temporal.Instant.from(value));
|
|
261
|
+
}
|
|
262
|
+
function workflowErrorDetailDuration(details, key) {
|
|
263
|
+
return parseDetail(details, key, (value) => Temporal.Duration.from(value));
|
|
264
|
+
}
|
|
265
|
+
function parseDetail(details, key, parse) {
|
|
266
|
+
const value = workflowErrorDetailString(details, key);
|
|
267
|
+
if (value === void 0) return;
|
|
268
|
+
try {
|
|
269
|
+
return parse(value);
|
|
270
|
+
} catch {
|
|
271
|
+
return;
|
|
272
|
+
}
|
|
273
|
+
}
|
|
274
|
+
function sanitizedErrorDetails(details) {
|
|
275
|
+
const parsed = ss.safeParseSync(errorDetailsSchema, details);
|
|
276
|
+
if (!parsed.success) return;
|
|
277
|
+
return Object.keys(parsed.value).length === 0 ? void 0 : parsed.value;
|
|
278
|
+
}
|
|
279
279
|
//#endregion
|
|
280
|
-
export { workflowErrorFromRecord };
|
|
280
|
+
export { matchesWorkflowError, sanitizedErrorDetails, workflowErrorFromRecord };
|