@lostgradient/weft 0.2.0
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/LICENSE +21 -0
- package/README.md +493 -0
- package/dist/alerting/alert-manager.d.ts +42 -0
- package/dist/alerting/alert-manager.js +167 -0
- package/dist/alerting/index.d.ts +2 -0
- package/dist/alerting/index.js +1 -0
- package/dist/alerting/sliding-window.d.ts +26 -0
- package/dist/alerting/sliding-window.js +97 -0
- package/dist/alerting/types.d.ts +157 -0
- package/dist/alerting/types.js +0 -0
- package/dist/cli/api-arguments.d.ts +2 -0
- package/dist/cli/api-arguments.js +48 -0
- package/dist/cli/api.d.ts +13 -0
- package/dist/cli/api.js +191 -0
- package/dist/cli/codegen-arguments.d.ts +10 -0
- package/dist/cli/codegen-arguments.js +50 -0
- package/dist/cli/codegen-emit-keywords.d.ts +28 -0
- package/dist/cli/codegen-emit-keywords.js +48 -0
- package/dist/cli/codegen-emit.d.ts +50 -0
- package/dist/cli/codegen-emit.js +280 -0
- package/dist/cli/codegen.d.ts +38 -0
- package/dist/cli/codegen.js +268 -0
- package/dist/cli/command-suggestions.d.ts +9 -0
- package/dist/cli/command-suggestions.js +27 -0
- package/dist/cli/completions.d.ts +17 -0
- package/dist/cli/completions.js +112 -0
- package/dist/cli/conformance.d.ts +9 -0
- package/dist/cli/conformance.js +226 -0
- package/dist/cli/doctor.d.ts +6 -0
- package/dist/cli/doctor.js +9 -0
- package/dist/cli/generated/operation-client.generated.d.ts +605 -0
- package/dist/cli/generated/operation-client.generated.js +60 -0
- package/dist/cli/help-text.d.ts +13 -0
- package/dist/cli/help-text.js +269 -0
- package/dist/cli/index.d.ts +23 -0
- package/dist/cli/index.js +34 -0
- package/dist/cli/json-rpc-client.d.ts +15 -0
- package/dist/cli/json-rpc-client.js +37 -0
- package/dist/cli/noun-verb-arguments.d.ts +15 -0
- package/dist/cli/noun-verb-arguments.js +190 -0
- package/dist/cli/operation-catalog-snapshot.d.ts +38 -0
- package/dist/cli/operation-catalog-snapshot.js +48 -0
- package/dist/cli/operation-client-runtime.d.ts +47 -0
- package/dist/cli/operation-client-runtime.js +33 -0
- package/dist/cli/output.d.ts +66 -0
- package/dist/cli/output.js +83 -0
- package/dist/cli/parse-arguments.d.ts +3 -0
- package/dist/cli/parse-arguments.js +214 -0
- package/dist/cli/parse-schedule-arguments.d.ts +9 -0
- package/dist/cli/parse-schedule-arguments.js +132 -0
- package/dist/cli/schedule.d.ts +3 -0
- package/dist/cli/schedule.js +128 -0
- package/dist/cli/serve-registrations.d.ts +15 -0
- package/dist/cli/serve-registrations.js +23 -0
- package/dist/cli/server-client.d.ts +45 -0
- package/dist/cli/server-client.js +33 -0
- package/dist/cli/server-commands.d.ts +19 -0
- package/dist/cli/server-commands.js +151 -0
- package/dist/cli/storage-backend-arguments.d.ts +15 -0
- package/dist/cli/storage-backend-arguments.js +16 -0
- package/dist/cli/storage-factory.d.ts +8 -0
- package/dist/cli/storage-factory.js +18 -0
- package/dist/cli/subcommand-detection.d.ts +2 -0
- package/dist/cli/subcommand-detection.js +38 -0
- package/dist/cli/tail.d.ts +50 -0
- package/dist/cli/tail.js +161 -0
- package/dist/cli/timeline.d.ts +9 -0
- package/dist/cli/timeline.js +78 -0
- package/dist/cli/types.d.ts +224 -0
- package/dist/cli/types.js +0 -0
- package/dist/cli/utilities.d.ts +9 -0
- package/dist/cli/utilities.js +120 -0
- package/dist/cli/validate.d.ts +6 -0
- package/dist/cli/validate.js +70 -0
- package/dist/cli/version-check.d.ts +7 -0
- package/dist/cli/version-check.js +16 -0
- package/dist/cli/version.d.ts +7 -0
- package/dist/cli/version.js +4 -0
- package/dist/cli/workflow-commands.d.ts +15 -0
- package/dist/cli/workflow-commands.js +195 -0
- package/dist/cli-main.d.ts +2 -0
- package/dist/cli-main.js +402 -0
- package/dist/client/event-stream-transport.d.ts +73 -0
- package/dist/client/event-stream-transport.js +59 -0
- package/dist/client/event-stream.d.ts +90 -0
- package/dist/client/event-stream.js +221 -0
- package/dist/client/event-tail.d.ts +50 -0
- package/dist/client/event-tail.js +0 -0
- package/dist/client/handle-delegation.d.ts +73 -0
- package/dist/client/handle-delegation.js +66 -0
- package/dist/client/http-client-requests.d.ts +65 -0
- package/dist/client/http-client-requests.js +178 -0
- package/dist/client/http-client.d.ts +130 -0
- package/dist/client/http-client.js +217 -0
- package/dist/client/http-handle.d.ts +27 -0
- package/dist/client/http-handle.js +43 -0
- package/dist/client/http-operations.d.ts +29 -0
- package/dist/client/http-operations.js +36 -0
- package/dist/client/http-request.d.ts +101 -0
- package/dist/client/http-request.js +73 -0
- package/dist/client/http-schedule-handle.d.ts +5 -0
- package/dist/client/http-schedule-handle.js +5 -0
- package/dist/client/in-process-operations.d.ts +30 -0
- package/dist/client/in-process-operations.js +17 -0
- package/dist/client/index.d.ts +15 -0
- package/dist/client/index.js +2 -0
- package/dist/client/interface.d.ts +333 -0
- package/dist/client/interface.js +0 -0
- package/dist/client/local-event-tail.d.ts +30 -0
- package/dist/client/local-event-tail.js +131 -0
- package/dist/client/local.d.ts +115 -0
- package/dist/client/local.js +178 -0
- package/dist/client/open-event-subscription.d.ts +33 -0
- package/dist/client/open-event-subscription.js +5 -0
- package/dist/client/schedule-list-search-params.d.ts +3 -0
- package/dist/client/schedule-list-search-params.js +18 -0
- package/dist/client/search-params.d.ts +3 -0
- package/dist/client/search-params.js +54 -0
- package/dist/client/start-body.d.ts +9 -0
- package/dist/client/start-body.js +23 -0
- package/dist/client/workflow-name-typing.d.ts +33 -0
- package/dist/client/workflow-name-typing.js +0 -0
- package/dist/connection.d.ts +121 -0
- package/dist/connection.js +161 -0
- package/dist/core/activity-registry.d.ts +135 -0
- package/dist/core/activity-registry.js +174 -0
- package/dist/core/activity.d.ts +2 -0
- package/dist/core/activity.js +1 -0
- package/dist/core/aggregate-validation.d.ts +85 -0
- package/dist/core/aggregate-validation.js +48 -0
- package/dist/core/atomic-state-events.d.ts +214 -0
- package/dist/core/atomic-state-events.js +39 -0
- package/dist/core/atomic-state.d.ts +79 -0
- package/dist/core/atomic-state.js +231 -0
- package/dist/core/bulk-workflow-filter.d.ts +23 -0
- package/dist/core/bulk-workflow-filter.js +38 -0
- package/dist/core/checkpoint/comparison.d.ts +2 -0
- package/dist/core/checkpoint/comparison.js +137 -0
- package/dist/core/checkpoint/index.d.ts +4 -0
- package/dist/core/checkpoint/index.js +3 -0
- package/dist/core/checkpoint/interfaces.d.ts +11 -0
- package/dist/core/checkpoint/interfaces.js +0 -0
- package/dist/core/checkpoint/lifecycle.d.ts +49 -0
- package/dist/core/checkpoint/lifecycle.js +36 -0
- package/dist/core/checkpoint/serialization.d.ts +31 -0
- package/dist/core/checkpoint/serialization.js +155 -0
- package/dist/core/checkpoint/validation.d.ts +4 -0
- package/dist/core/checkpoint/validation.js +26 -0
- package/dist/core/checkpoint.d.ts +1 -0
- package/dist/core/checkpoint.js +1 -0
- package/dist/core/codec/api.d.ts +32 -0
- package/dist/core/codec/api.js +9 -0
- package/dist/core/codec/extension-codec.d.ts +7 -0
- package/dist/core/codec/extension-codec.js +145 -0
- package/dist/core/codec/index.d.ts +3 -0
- package/dist/core/codec/index.js +2 -0
- package/dist/core/codec/validation.d.ts +28 -0
- package/dist/core/codec/validation.js +139 -0
- package/dist/core/codec-helpers.d.ts +8 -0
- package/dist/core/codec-helpers.js +19 -0
- package/dist/core/codec.d.ts +1 -0
- package/dist/core/codec.js +1 -0
- package/dist/core/compression.d.ts +127 -0
- package/dist/core/compression.js +88 -0
- package/dist/core/concurrency-lock-record.d.ts +122 -0
- package/dist/core/concurrency-lock-record.js +53 -0
- package/dist/core/concurrency.d.ts +221 -0
- package/dist/core/concurrency.js +93 -0
- package/dist/core/constraint.d.ts +144 -0
- package/dist/core/constraint.js +3 -0
- package/dist/core/context/attributes.d.ts +7 -0
- package/dist/core/context/attributes.js +29 -0
- package/dist/core/context/child-workflow-pipe.d.ts +18 -0
- package/dist/core/context/child-workflow-pipe.js +111 -0
- package/dist/core/context/durable-operations.d.ts +29 -0
- package/dist/core/context/durable-operations.js +166 -0
- package/dist/core/context/index.d.ts +114 -0
- package/dist/core/context/index.js +224 -0
- package/dist/core/context/internals.d.ts +30 -0
- package/dist/core/context/internals.js +36 -0
- package/dist/core/context/operation-request.d.ts +160 -0
- package/dist/core/context/operation-request.js +0 -0
- package/dist/core/context/parallel-cache-entry.d.ts +91 -0
- package/dist/core/context/parallel-cache-entry.js +92 -0
- package/dist/core/context/parallel-operations.d.ts +9 -0
- package/dist/core/context/parallel-operations.js +202 -0
- package/dist/core/context/run-operation.d.ts +21 -0
- package/dist/core/context/run-operation.js +231 -0
- package/dist/core/context/saga.d.ts +4 -0
- package/dist/core/context/saga.js +65 -0
- package/dist/core/context/session-state.d.ts +22 -0
- package/dist/core/context/session-state.js +154 -0
- package/dist/core/context/speculate-operations.d.ts +4 -0
- package/dist/core/context/speculate-operations.js +14 -0
- package/dist/core/context/speculative-child.d.ts +6 -0
- package/dist/core/context/speculative-child.js +67 -0
- package/dist/core/context/state-namespace.d.ts +27 -0
- package/dist/core/context/state-namespace.js +138 -0
- package/dist/core/context/types.d.ts +181 -0
- package/dist/core/context/types.js +0 -0
- package/dist/core/context/updates.d.ts +46 -0
- package/dist/core/context/updates.js +21 -0
- package/dist/core/context/validation.d.ts +2 -0
- package/dist/core/context/validation.js +12 -0
- package/dist/core/context.d.ts +1 -0
- package/dist/core/context.js +1 -0
- package/dist/core/debug-output.d.ts +3 -0
- package/dist/core/debug-output.js +112 -0
- package/dist/core/effect-log/index.d.ts +194 -0
- package/dist/core/effect-log/index.js +104 -0
- package/dist/core/engine/activity-reconciliation.d.ts +108 -0
- package/dist/core/engine/activity-reconciliation.js +182 -0
- package/dist/core/engine/aggregate.d.ts +47 -0
- package/dist/core/engine/aggregate.js +132 -0
- package/dist/core/engine/anonymous-signal-sequence.d.ts +4 -0
- package/dist/core/engine/anonymous-signal-sequence.js +101 -0
- package/dist/core/engine/async-activity-completion.d.ts +141 -0
- package/dist/core/engine/async-activity-completion.js +131 -0
- package/dist/core/engine/attributes-tags.d.ts +31 -0
- package/dist/core/engine/attributes-tags.js +178 -0
- package/dist/core/engine/broadcast.d.ts +8 -0
- package/dist/core/engine/broadcast.js +26 -0
- package/dist/core/engine/bulk-operations-purge.d.ts +11 -0
- package/dist/core/engine/bulk-operations-purge.js +246 -0
- package/dist/core/engine/bulk-operations-shared.d.ts +28 -0
- package/dist/core/engine/bulk-operations-shared.js +198 -0
- package/dist/core/engine/bulk-operations.d.ts +21 -0
- package/dist/core/engine/bulk-operations.js +128 -0
- package/dist/core/engine/callback-creators-bundles.d.ts +25 -0
- package/dist/core/engine/callback-creators-bundles.js +154 -0
- package/dist/core/engine/callback-creators-core.d.ts +39 -0
- package/dist/core/engine/callback-creators-core.js +136 -0
- package/dist/core/engine/callback-creators-router-registry.d.ts +4 -0
- package/dist/core/engine/callback-creators-router-registry.js +9 -0
- package/dist/core/engine/callback-creators-router.d.ts +3 -0
- package/dist/core/engine/callback-creators-router.js +68 -0
- package/dist/core/engine/callback-creators-schedule.d.ts +13 -0
- package/dist/core/engine/callback-creators-schedule.js +65 -0
- package/dist/core/engine/callback-creators.d.ts +9 -0
- package/dist/core/engine/callback-creators.js +87 -0
- package/dist/core/engine/cancel-handlers.d.ts +6 -0
- package/dist/core/engine/cancel-handlers.js +32 -0
- package/dist/core/engine/checkpoint-commit-snapshots.d.ts +4 -0
- package/dist/core/engine/checkpoint-commit-snapshots.js +16 -0
- package/dist/core/engine/checkpoint-io.d.ts +34 -0
- package/dist/core/engine/checkpoint-io.js +183 -0
- package/dist/core/engine/checkpoint-reads.d.ts +22 -0
- package/dist/core/engine/checkpoint-reads.js +98 -0
- package/dist/core/engine/child-workflow.d.ts +20 -0
- package/dist/core/engine/child-workflow.js +72 -0
- package/dist/core/engine/completed-review-storage.d.ts +14 -0
- package/dist/core/engine/completed-review-storage.js +61 -0
- package/dist/core/engine/constraints.d.ts +24 -0
- package/dist/core/engine/constraints.js +57 -0
- package/dist/core/engine/construction.d.ts +60 -0
- package/dist/core/engine/construction.js +213 -0
- package/dist/core/engine/disposal.d.ts +9 -0
- package/dist/core/engine/disposal.js +58 -0
- package/dist/core/engine/engine-create-types.d.ts +70 -0
- package/dist/core/engine/engine-create-types.js +0 -0
- package/dist/core/engine/engine-internal-types.d.ts +59 -0
- package/dist/core/engine/engine-internal-types.js +0 -0
- package/dist/core/engine/engine-leak-warnings.d.ts +26 -0
- package/dist/core/engine/engine-leak-warnings.js +42 -0
- package/dist/core/engine/engine-runtime-helpers.d.ts +8 -0
- package/dist/core/engine/engine-runtime-helpers.js +52 -0
- package/dist/core/engine/engine-state-namespace.d.ts +20 -0
- package/dist/core/engine/engine-state-namespace.js +0 -0
- package/dist/core/engine/errors.d.ts +215 -0
- package/dist/core/engine/errors.js +90 -0
- package/dist/core/engine/event-log-compaction.d.ts +102 -0
- package/dist/core/engine/event-log-compaction.js +76 -0
- package/dist/core/engine/guards.d.ts +17 -0
- package/dist/core/engine/guards.js +43 -0
- package/dist/core/engine/handle-iteration.d.ts +2 -0
- package/dist/core/engine/handle-iteration.js +59 -0
- package/dist/core/engine/handle-result.d.ts +8 -0
- package/dist/core/engine/handle-result.js +74 -0
- package/dist/core/engine/handles.d.ts +137 -0
- package/dist/core/engine/handles.js +173 -0
- package/dist/core/engine/index.d.ts +311 -0
- package/dist/core/engine/index.js +595 -0
- package/dist/core/engine/inline-launch-queue.d.ts +17 -0
- package/dist/core/engine/inline-launch-queue.js +93 -0
- package/dist/core/engine/inline-parking.d.ts +26 -0
- package/dist/core/engine/inline-parking.js +86 -0
- package/dist/core/engine/internals.d.ts +167 -0
- package/dist/core/engine/internals.js +11 -0
- package/dist/core/engine/lifecycle/fork-helpers.d.ts +9 -0
- package/dist/core/engine/lifecycle/fork-helpers.js +66 -0
- package/dist/core/engine/lifecycle/persist.d.ts +22 -0
- package/dist/core/engine/lifecycle/persist.js +80 -0
- package/dist/core/engine/lifecycle/resume.d.ts +4 -0
- package/dist/core/engine/lifecycle/resume.js +136 -0
- package/dist/core/engine/lifecycle/shared.d.ts +79 -0
- package/dist/core/engine/lifecycle/shared.js +49 -0
- package/dist/core/engine/lifecycle/start-batch.d.ts +7 -0
- package/dist/core/engine/lifecycle/start-batch.js +70 -0
- package/dist/core/engine/lifecycle/start-exec.d.ts +5 -0
- package/dist/core/engine/lifecycle/start-exec.js +39 -0
- package/dist/core/engine/lifecycle/start.d.ts +13 -0
- package/dist/core/engine/lifecycle/start.js +163 -0
- package/dist/core/engine/lifecycle/transition.d.ts +8 -0
- package/dist/core/engine/lifecycle/transition.js +183 -0
- package/dist/core/engine/lifecycle.d.ts +8 -0
- package/dist/core/engine/lifecycle.js +40 -0
- package/dist/core/engine/list-candidate-resolution.d.ts +15 -0
- package/dist/core/engine/list-candidate-resolution.js +88 -0
- package/dist/core/engine/listing.d.ts +17 -0
- package/dist/core/engine/listing.js +186 -0
- package/dist/core/engine/operations-activity.d.ts +40 -0
- package/dist/core/engine/operations-activity.js +194 -0
- package/dist/core/engine/operations-coordination.d.ts +39 -0
- package/dist/core/engine/operations-coordination.js +162 -0
- package/dist/core/engine/operations-data.d.ts +23 -0
- package/dist/core/engine/operations-data.js +38 -0
- package/dist/core/engine/operations-router.d.ts +75 -0
- package/dist/core/engine/operations-router.js +90 -0
- package/dist/core/engine/operations-speculate.d.ts +16 -0
- package/dist/core/engine/operations-speculate.js +40 -0
- package/dist/core/engine/operations-state.d.ts +16 -0
- package/dist/core/engine/operations-state.js +27 -0
- package/dist/core/engine/operations-stream.d.ts +20 -0
- package/dist/core/engine/operations-stream.js +54 -0
- package/dist/core/engine/operations-time.d.ts +28 -0
- package/dist/core/engine/operations-time.js +167 -0
- package/dist/core/engine/parallel-dispatch.d.ts +92 -0
- package/dist/core/engine/parallel-dispatch.js +45 -0
- package/dist/core/engine/pending-updates.d.ts +18 -0
- package/dist/core/engine/pending-updates.js +109 -0
- package/dist/core/engine/persisted-data-version.d.ts +24 -0
- package/dist/core/engine/persisted-data-version.js +25 -0
- package/dist/core/engine/queries.d.ts +3 -0
- package/dist/core/engine/queries.js +17 -0
- package/dist/core/engine/registration.d.ts +6 -0
- package/dist/core/engine/registration.js +107 -0
- package/dist/core/engine/retention.d.ts +15 -0
- package/dist/core/engine/retention.js +76 -0
- package/dist/core/engine/review-list-entries.d.ts +6 -0
- package/dist/core/engine/review-list-entries.js +117 -0
- package/dist/core/engine/reviews.d.ts +34 -0
- package/dist/core/engine/reviews.js +242 -0
- package/dist/core/engine/schedule-occurrence.d.ts +35 -0
- package/dist/core/engine/schedule-occurrence.js +26 -0
- package/dist/core/engine/schedule-timer.d.ts +4 -0
- package/dist/core/engine/schedule-timer.js +77 -0
- package/dist/core/engine/schedules.d.ts +34 -0
- package/dist/core/engine/schedules.js +204 -0
- package/dist/core/engine/signals.d.ts +40 -0
- package/dist/core/engine/signals.js +185 -0
- package/dist/core/engine/speculative-execution-state.d.ts +8 -0
- package/dist/core/engine/speculative-execution-state.js +26 -0
- package/dist/core/engine/state-utilities.d.ts +62 -0
- package/dist/core/engine/state-utilities.js +306 -0
- package/dist/core/engine/storage-io.d.ts +21 -0
- package/dist/core/engine/storage-io.js +82 -0
- package/dist/core/engine/strategy-helpers.d.ts +27 -0
- package/dist/core/engine/strategy-helpers.js +47 -0
- package/dist/core/engine/stream-chunk-loading.d.ts +5 -0
- package/dist/core/engine/stream-chunk-loading.js +22 -0
- package/dist/core/engine/sub-operation.d.ts +24 -0
- package/dist/core/engine/sub-operation.js +78 -0
- package/dist/core/engine/termination/cleanup.d.ts +67 -0
- package/dist/core/engine/termination/cleanup.js +167 -0
- package/dist/core/engine/termination/complete.d.ts +13 -0
- package/dist/core/engine/termination/complete.js +249 -0
- package/dist/core/engine/termination.d.ts +7 -0
- package/dist/core/engine/termination.js +23 -0
- package/dist/core/engine/updates.d.ts +56 -0
- package/dist/core/engine/updates.js +230 -0
- package/dist/core/engine/validation/schedule.d.ts +38 -0
- package/dist/core/engine/validation/schedule.js +258 -0
- package/dist/core/engine/validation.d.ts +40 -0
- package/dist/core/engine/validation.js +144 -0
- package/dist/core/engine/workflow-feed.d.ts +82 -0
- package/dist/core/engine/workflow-feed.js +96 -0
- package/dist/core/engine/workflow-indexes.d.ts +103 -0
- package/dist/core/engine/workflow-indexes.js +93 -0
- package/dist/core/engine/workflow-state-stream.d.ts +9 -0
- package/dist/core/engine/workflow-state-stream.js +126 -0
- package/dist/core/engine/workflow-visibility-queries.d.ts +40 -0
- package/dist/core/engine/workflow-visibility-queries.js +56 -0
- package/dist/core/engine-helpers.d.ts +56 -0
- package/dist/core/engine-helpers.js +52 -0
- package/dist/core/engine.d.ts +1 -0
- package/dist/core/engine.js +1 -0
- package/dist/core/event-log-shared.d.ts +65 -0
- package/dist/core/event-log-shared.js +31 -0
- package/dist/core/event-log-verify.d.ts +51 -0
- package/dist/core/event-log-verify.js +64 -0
- package/dist/core/event-log.d.ts +112 -0
- package/dist/core/event-log.js +81 -0
- package/dist/core/events/activity-events.d.ts +104 -0
- package/dist/core/events/activity-events.js +63 -0
- package/dist/core/events/attribute-events.d.ts +22 -0
- package/dist/core/events/attribute-events.js +10 -0
- package/dist/core/events/event-map.d.ts +80 -0
- package/dist/core/events/event-map.js +0 -0
- package/dist/core/events/index.d.ts +7 -0
- package/dist/core/events/index.js +7 -0
- package/dist/core/events/signal-events.d.ts +45 -0
- package/dist/core/events/signal-events.js +23 -0
- package/dist/core/events/system-events.d.ts +149 -0
- package/dist/core/events/system-events.js +92 -0
- package/dist/core/events/update-events.d.ts +53 -0
- package/dist/core/events/update-events.js +31 -0
- package/dist/core/events/workflow-events.d.ts +198 -0
- package/dist/core/events/workflow-events.js +91 -0
- package/dist/core/events.d.ts +1 -0
- package/dist/core/events.js +1 -0
- package/dist/core/execution-strategy.d.ts +107 -0
- package/dist/core/execution-strategy.js +0 -0
- package/dist/core/failure-categories.d.ts +18 -0
- package/dist/core/failure-categories.js +70 -0
- package/dist/core/fault-code.d.ts +92 -0
- package/dist/core/fault-code.js +21 -0
- package/dist/core/inline-execution-strategy.d.ts +76 -0
- package/dist/core/inline-execution-strategy.js +264 -0
- package/dist/core/interceptor/activity-composition.d.ts +20 -0
- package/dist/core/interceptor/activity-composition.js +17 -0
- package/dist/core/interceptor/index.d.ts +25 -0
- package/dist/core/interceptor/index.js +8 -0
- package/dist/core/interceptor/interception-contexts.d.ts +200 -0
- package/dist/core/interceptor/interception-contexts.js +0 -0
- package/dist/core/interceptor/interceptor-interfaces.d.ts +149 -0
- package/dist/core/interceptor/interceptor-interfaces.js +9 -0
- package/dist/core/interceptor/split.d.ts +11 -0
- package/dist/core/interceptor/split.js +14 -0
- package/dist/core/interceptor/workflow-composition.d.ts +21 -0
- package/dist/core/interceptor/workflow-composition.js +116 -0
- package/dist/core/interceptor.d.ts +1 -0
- package/dist/core/interceptor.js +1 -0
- package/dist/core/json.d.ts +56 -0
- package/dist/core/json.js +77 -0
- package/dist/core/list-filter-validation.d.ts +78 -0
- package/dist/core/list-filter-validation.js +75 -0
- package/dist/core/payload-size.d.ts +78 -0
- package/dist/core/payload-size.js +27 -0
- package/dist/core/persisted-data-incompatible-error.d.ts +48 -0
- package/dist/core/persisted-data-incompatible-error.js +12 -0
- package/dist/core/registry-snapshot.d.ts +69 -0
- package/dist/core/registry-snapshot.js +70 -0
- package/dist/core/review/events.d.ts +73 -0
- package/dist/core/review/events.js +31 -0
- package/dist/core/review/index.d.ts +265 -0
- package/dist/core/review/index.js +96 -0
- package/dist/core/runtime-workflow-engine.d.ts +16 -0
- package/dist/core/runtime-workflow-engine.js +6 -0
- package/dist/core/schedule/cron-formatter.d.ts +10 -0
- package/dist/core/schedule/cron-formatter.js +103 -0
- package/dist/core/schedule/cron-occurrence.d.ts +3 -0
- package/dist/core/schedule/cron-occurrence.js +129 -0
- package/dist/core/schedule/cron-parser.d.ts +2 -0
- package/dist/core/schedule/cron-parser.js +93 -0
- package/dist/core/schedule/cron-types.d.ts +35 -0
- package/dist/core/schedule/cron-types.js +0 -0
- package/dist/core/schedule/index.d.ts +3 -0
- package/dist/core/schedule/index.js +2 -0
- package/dist/core/schedule/interval-occurrence.d.ts +31 -0
- package/dist/core/schedule/interval-occurrence.js +26 -0
- package/dist/core/schedule.d.ts +1 -0
- package/dist/core/schedule.js +1 -0
- package/dist/core/scheduler/duration.d.ts +44 -0
- package/dist/core/scheduler/duration.js +48 -0
- package/dist/core/scheduler/index.d.ts +4 -0
- package/dist/core/scheduler/index.js +3 -0
- package/dist/core/scheduler/scheduler-class.d.ts +52 -0
- package/dist/core/scheduler/scheduler-class.js +167 -0
- package/dist/core/scheduler/timer-batch.d.ts +10 -0
- package/dist/core/scheduler/timer-batch.js +42 -0
- package/dist/core/scheduler/timer-sources.d.ts +17 -0
- package/dist/core/scheduler/timer-sources.js +61 -0
- package/dist/core/scheduler.d.ts +1 -0
- package/dist/core/scheduler.js +1 -0
- package/dist/core/search-attributes.d.ts +67 -0
- package/dist/core/search-attributes.js +196 -0
- package/dist/core/session-state.d.ts +18 -0
- package/dist/core/session-state.js +71 -0
- package/dist/core/signal-id.d.ts +2 -0
- package/dist/core/signal-id.js +10 -0
- package/dist/core/start-workflow-validation.d.ts +14 -0
- package/dist/core/start-workflow-validation.js +63 -0
- package/dist/core/step-context.d.ts +97 -0
- package/dist/core/step-context.js +113 -0
- package/dist/core/timeouts.d.ts +98 -0
- package/dist/core/timeouts.js +38 -0
- package/dist/core/types/activity.d.ts +316 -0
- package/dist/core/types/activity.js +15 -0
- package/dist/core/types/archive-adapter.d.ts +49 -0
- package/dist/core/types/archive-adapter.js +0 -0
- package/dist/core/types/bulk.d.ts +312 -0
- package/dist/core/types/bulk.js +1 -0
- package/dist/core/types/checkpoint.d.ts +237 -0
- package/dist/core/types/checkpoint.js +12 -0
- package/dist/core/types/clone-plain.d.ts +17 -0
- package/dist/core/types/clone-plain.js +25 -0
- package/dist/core/types/constants.d.ts +54 -0
- package/dist/core/types/constants.js +1 -0
- package/dist/core/types/deep-freeze.d.ts +31 -0
- package/dist/core/types/deep-freeze.js +31 -0
- package/dist/core/types/definition-schema-to-json.d.ts +41 -0
- package/dist/core/types/definition-schema-to-json.js +56 -0
- package/dist/core/types/definition-schema.d.ts +341 -0
- package/dist/core/types/definition-schema.js +45 -0
- package/dist/core/types/history-policy.d.ts +92 -0
- package/dist/core/types/history-policy.js +1 -0
- package/dist/core/types/identity.d.ts +55 -0
- package/dist/core/types/identity.js +0 -0
- package/dist/core/types/message-handles.d.ts +229 -0
- package/dist/core/types/message-handles.js +36 -0
- package/dist/core/types/name-grammar.d.ts +30 -0
- package/dist/core/types/name-grammar.js +9 -0
- package/dist/core/types/options.d.ts +360 -0
- package/dist/core/types/options.js +0 -0
- package/dist/core/types/payload-size-policy.d.ts +47 -0
- package/dist/core/types/payload-size-policy.js +0 -0
- package/dist/core/types/registry-type-helpers.d.ts +1 -0
- package/dist/core/types/registry-type-helpers.js +0 -0
- package/dist/core/types/retry-retention.d.ts +163 -0
- package/dist/core/types/retry-retention.js +6 -0
- package/dist/core/types/reviews.d.ts +170 -0
- package/dist/core/types/reviews.js +0 -0
- package/dist/core/types/schedules.d.ts +176 -0
- package/dist/core/types/schedules.js +3 -0
- package/dist/core/types/search-attributes.d.ts +127 -0
- package/dist/core/types/search-attributes.js +8 -0
- package/dist/core/types/serializer.d.ts +30 -0
- package/dist/core/types/serializer.js +0 -0
- package/dist/core/types/standard-schema-validate.d.ts +113 -0
- package/dist/core/types/standard-schema-validate.js +60 -0
- package/dist/core/types/state.d.ts +261 -0
- package/dist/core/types/state.js +0 -0
- package/dist/core/types/workflow-builder-helpers.d.ts +310 -0
- package/dist/core/types/workflow-builder-helpers.js +0 -0
- package/dist/core/types/workflow-builder-runtime.d.ts +97 -0
- package/dist/core/types/workflow-builder-runtime.js +137 -0
- package/dist/core/types/workflow-builder.d.ts +343 -0
- package/dist/core/types/workflow-builder.js +0 -0
- package/dist/core/types/workflow-context.d.ts +168 -0
- package/dist/core/types/workflow-context.js +0 -0
- package/dist/core/types/workflow-definition.d.ts +61 -0
- package/dist/core/types/workflow-definition.js +0 -0
- package/dist/core/types/workflow-function.d.ts +330 -0
- package/dist/core/types/workflow-function.js +9 -0
- package/dist/core/types/workflow-registries.d.ts +203 -0
- package/dist/core/types/workflow-registries.js +0 -0
- package/dist/core/types/workflow-registry.d.ts +31 -0
- package/dist/core/types/workflow-registry.js +0 -0
- package/dist/core/types.d.ts +26 -0
- package/dist/core/types.js +26 -0
- package/dist/core/updates.d.ts +183 -0
- package/dist/core/updates.js +141 -0
- package/dist/core/versioning.d.ts +153 -0
- package/dist/core/versioning.js +94 -0
- package/dist/core/weft-error.d.ts +82 -0
- package/dist/core/weft-error.js +43 -0
- package/dist/core/worker-checkpoint-resume-state.d.ts +11 -0
- package/dist/core/worker-checkpoint-resume-state.js +40 -0
- package/dist/core/worker-execution-dispatcher.d.ts +42 -0
- package/dist/core/worker-execution-dispatcher.js +95 -0
- package/dist/core/worker-execution-ownership.d.ts +20 -0
- package/dist/core/worker-execution-ownership.js +91 -0
- package/dist/core/worker-execution-strategy-options.d.ts +7 -0
- package/dist/core/worker-execution-strategy-options.js +0 -0
- package/dist/core/worker-execution-strategy.d.ts +29 -0
- package/dist/core/worker-execution-strategy.js +356 -0
- package/dist/core/worker-listener-registry.d.ts +11 -0
- package/dist/core/worker-listener-registry.js +35 -0
- package/dist/core/worker-message-helpers.d.ts +5 -0
- package/dist/core/worker-message-helpers.js +14 -0
- package/dist/core/worker-protocol-guard.d.ts +20 -0
- package/dist/core/worker-protocol-guard.js +69 -0
- package/dist/core/worker-protocol.d.ts +27 -0
- package/dist/core/worker-protocol.js +346 -0
- package/dist/core/worker-turn-watchdog.d.ts +14 -0
- package/dist/core/worker-turn-watchdog.js +40 -0
- package/dist/core/workflow-identifiers.d.ts +1 -0
- package/dist/core/workflow-identifiers.js +19 -0
- package/dist/core/workflow-tags.d.ts +9 -0
- package/dist/core/workflow-tags.js +37 -0
- package/dist/core/workflow-version-tuple.d.ts +67 -0
- package/dist/core/workflow-version-tuple.js +77 -0
- package/dist/diagnostics/doctor.d.ts +30 -0
- package/dist/diagnostics/doctor.js +173 -0
- package/dist/diagnostics/format.d.ts +77 -0
- package/dist/diagnostics/format.js +115 -0
- package/dist/diagnostics/index.d.ts +15 -0
- package/dist/diagnostics/index.js +10 -0
- package/dist/diagnostics/memory-profiler.d.ts +136 -0
- package/dist/diagnostics/memory-profiler.js +93 -0
- package/dist/diagnostics/recommendations.d.ts +37 -0
- package/dist/diagnostics/recommendations.js +116 -0
- package/dist/diagnostics/types.d.ts +178 -0
- package/dist/diagnostics/types.js +9 -0
- package/dist/diagnostics/validate.d.ts +79 -0
- package/dist/diagnostics/validate.js +88 -0
- package/dist/diagnostics/version-check.d.ts +34 -0
- package/dist/diagnostics/version-check.js +61 -0
- package/dist/index.d.ts +109 -0
- package/dist/index.js +182 -0
- package/dist/json-schema.d.ts +55 -0
- package/dist/json-schema.js +4 -0
- package/dist/mcp/access.d.ts +21 -0
- package/dist/mcp/access.js +22 -0
- package/dist/mcp/cli.d.ts +2 -0
- package/dist/mcp/cli.js +72 -0
- package/dist/mcp/dispatcher.d.ts +13 -0
- package/dist/mcp/dispatcher.js +198 -0
- package/dist/mcp/http.d.ts +64 -0
- package/dist/mcp/http.js +272 -0
- package/dist/mcp/index.d.ts +17 -0
- package/dist/mcp/index.js +26 -0
- package/dist/mcp/list-filter.d.ts +10 -0
- package/dist/mcp/list-filter.js +116 -0
- package/dist/mcp/protocol.d.ts +89 -0
- package/dist/mcp/protocol.js +64 -0
- package/dist/mcp/resources.d.ts +40 -0
- package/dist/mcp/resources.js +141 -0
- package/dist/mcp/session.d.ts +138 -0
- package/dist/mcp/session.js +204 -0
- package/dist/mcp/stdio.d.ts +89 -0
- package/dist/mcp/stdio.js +204 -0
- package/dist/mcp/tools.d.ts +27 -0
- package/dist/mcp/tools.js +262 -0
- package/dist/observability/activity-interceptor.d.ts +3 -0
- package/dist/observability/activity-interceptor.js +34 -0
- package/dist/observability/index.d.ts +60 -0
- package/dist/observability/index.js +4 -0
- package/dist/observability/metrics-catalog.d.ts +128 -0
- package/dist/observability/metrics-catalog.js +110 -0
- package/dist/observability/metrics-snapshot.d.ts +106 -0
- package/dist/observability/metrics-snapshot.js +0 -0
- package/dist/observability/metrics.d.ts +156 -0
- package/dist/observability/metrics.js +152 -0
- package/dist/observability/no-op-telemetry.d.ts +168 -0
- package/dist/observability/no-op-telemetry.js +96 -0
- package/dist/observability/propagation.d.ts +121 -0
- package/dist/observability/propagation.js +41 -0
- package/dist/observability/span-helpers.d.ts +50 -0
- package/dist/observability/span-helpers.js +83 -0
- package/dist/observability/types.d.ts +92 -0
- package/dist/observability/types.js +0 -0
- package/dist/observability/workflow-interceptor.d.ts +3 -0
- package/dist/observability/workflow-interceptor.js +106 -0
- package/dist/observability/workflow-lifecycle.d.ts +8 -0
- package/dist/observability/workflow-lifecycle.js +103 -0
- package/dist/runtime/portable.d.ts +119 -0
- package/dist/runtime/portable.js +90 -0
- package/dist/server/api-catalog.d.ts +85 -0
- package/dist/server/api-catalog.js +47 -0
- package/dist/server/asyncapi-channels.d.ts +40 -0
- package/dist/server/asyncapi-channels.js +264 -0
- package/dist/server/asyncapi.d.ts +25 -0
- package/dist/server/asyncapi.js +110 -0
- package/dist/server/attribute-filters.d.ts +37 -0
- package/dist/server/attribute-filters.js +39 -0
- package/dist/server/authentication/api-key.d.ts +3 -0
- package/dist/server/authentication/api-key.js +80 -0
- package/dist/server/authentication/audit.d.ts +116 -0
- package/dist/server/authentication/audit.js +25 -0
- package/dist/server/authentication/crypto.d.ts +7 -0
- package/dist/server/authentication/crypto.js +99 -0
- package/dist/server/authentication/index.d.ts +68 -0
- package/dist/server/authentication/index.js +144 -0
- package/dist/server/authentication/rate-limiter.d.ts +126 -0
- package/dist/server/authentication/rate-limiter.js +61 -0
- package/dist/server/authentication/redaction.d.ts +72 -0
- package/dist/server/authentication/redaction.js +30 -0
- package/dist/server/authentication/rotating-api-key-store.d.ts +107 -0
- package/dist/server/authentication/rotating-api-key-store.js +43 -0
- package/dist/server/authentication/types.d.ts +290 -0
- package/dist/server/authentication/types.js +13 -0
- package/dist/server/authentication.d.ts +1 -0
- package/dist/server/authentication.js +1 -0
- package/dist/server/authorization-scope.d.ts +43 -0
- package/dist/server/authorization-scope.js +53 -0
- package/dist/server/authorization.d.ts +55 -0
- package/dist/server/authorization.js +87 -0
- package/dist/server/deadline-tracker.d.ts +47 -0
- package/dist/server/deadline-tracker.js +106 -0
- package/dist/server/discovery-filter.d.ts +13 -0
- package/dist/server/discovery-filter.js +5 -0
- package/dist/server/discovery-info.d.ts +69 -0
- package/dist/server/discovery-info.js +12 -0
- package/dist/server/engine-event-feed-backend.d.ts +31 -0
- package/dist/server/engine-event-feed-backend.js +36 -0
- package/dist/server/fault-to-http.d.ts +14 -0
- package/dist/server/fault-to-http.js +29 -0
- package/dist/server/fault-to-json-rpc.d.ts +23 -0
- package/dist/server/fault-to-json-rpc.js +60 -0
- package/dist/server/handler/binding-dispatch.d.ts +11 -0
- package/dist/server/handler/binding-dispatch.js +13 -0
- package/dist/server/handler/index.d.ts +31 -0
- package/dist/server/handler/index.js +78 -0
- package/dist/server/handler/response-helpers.d.ts +5 -0
- package/dist/server/handler/response-helpers.js +28 -0
- package/dist/server/handler/route-dispatch.d.ts +144 -0
- package/dist/server/handler/route-dispatch.js +192 -0
- package/dist/server/handler/route-matching.d.ts +55 -0
- package/dist/server/handler/route-matching.js +45 -0
- package/dist/server/handler.d.ts +1 -0
- package/dist/server/handler.js +56 -0
- package/dist/server/index.d.ts +346 -0
- package/dist/server/index.js +64 -0
- package/dist/server/interactive-operations.d.ts +18 -0
- package/dist/server/interactive-operations.js +28 -0
- package/dist/server/json-rpc-dispatch.d.ts +49 -0
- package/dist/server/json-rpc-dispatch.js +92 -0
- package/dist/server/json-rpc-framing.d.ts +42 -0
- package/dist/server/json-rpc-framing.js +15 -0
- package/dist/server/json-rpc-http.d.ts +33 -0
- package/dist/server/json-rpc-http.js +112 -0
- package/dist/server/json-rpc-parse.d.ts +69 -0
- package/dist/server/json-rpc-parse.js +139 -0
- package/dist/server/json-rpc-protocol.d.ts +76 -0
- package/dist/server/json-rpc-protocol.js +27 -0
- package/dist/server/json-rpc-transport-helpers.d.ts +17 -0
- package/dist/server/json-rpc-transport-helpers.js +26 -0
- package/dist/server/json-rpc-websocket-runtime.d.ts +37 -0
- package/dist/server/json-rpc-websocket-runtime.js +51 -0
- package/dist/server/json-rpc-websocket-validation.d.ts +38 -0
- package/dist/server/json-rpc-websocket-validation.js +96 -0
- package/dist/server/json-rpc-websocket.d.ts +60 -0
- package/dist/server/json-rpc-websocket.js +268 -0
- package/dist/server/json-schema-utilities.d.ts +4 -0
- package/dist/server/json-schema-utilities.js +16 -0
- package/dist/server/mcp-discovery.d.ts +57 -0
- package/dist/server/mcp-discovery.js +50 -0
- package/dist/server/openapi-canonical-json.d.ts +10 -0
- package/dist/server/openapi-canonical-json.js +13 -0
- package/dist/server/openapi-error-responses.d.ts +15 -0
- package/dist/server/openapi-error-responses.js +36 -0
- package/dist/server/openapi-schemas.d.ts +17 -0
- package/dist/server/openapi-schemas.js +69 -0
- package/dist/server/openapi.d.ts +48 -0
- package/dist/server/openapi.js +290 -0
- package/dist/server/openrpc-document-schema.d.ts +112 -0
- package/dist/server/openrpc-document-schema.js +65 -0
- package/dist/server/openrpc-errors.d.ts +73 -0
- package/dist/server/openrpc-errors.js +57 -0
- package/dist/server/openrpc.d.ts +53 -0
- package/dist/server/openrpc.js +179 -0
- package/dist/server/operation-catalog/activity-adapter.d.ts +11 -0
- package/dist/server/operation-catalog/activity-adapter.js +9 -0
- package/dist/server/operation-catalog/dispatch-allowlist.d.ts +4 -0
- package/dist/server/operation-catalog/dispatch-allowlist.js +4 -0
- package/dist/server/operation-catalog/dispatch-preparation.d.ts +39 -0
- package/dist/server/operation-catalog/dispatch-preparation.js +52 -0
- package/dist/server/operation-catalog/index.d.ts +22 -0
- package/dist/server/operation-catalog/index.js +17 -0
- package/dist/server/operation-catalog/pipeline-helpers.d.ts +66 -0
- package/dist/server/operation-catalog/pipeline-helpers.js +179 -0
- package/dist/server/operation-catalog/pipeline-stages.d.ts +23 -0
- package/dist/server/operation-catalog/pipeline-stages.js +189 -0
- package/dist/server/operation-catalog/pipeline.d.ts +7 -0
- package/dist/server/operation-catalog/pipeline.js +32 -0
- package/dist/server/operation-catalog/raise-fault.d.ts +32 -0
- package/dist/server/operation-catalog/raise-fault.js +18 -0
- package/dist/server/operation-catalog/registry.d.ts +6 -0
- package/dist/server/operation-catalog/registry.js +93 -0
- package/dist/server/operation-catalog/stream-pipeline.d.ts +25 -0
- package/dist/server/operation-catalog/stream-pipeline.js +122 -0
- package/dist/server/operation-catalog/types.d.ts +246 -0
- package/dist/server/operation-catalog/types.js +9 -0
- package/dist/server/operation-catalog/workflow-adapter.d.ts +55 -0
- package/dist/server/operation-catalog/workflow-adapter.js +85 -0
- package/dist/server/operation-catalog.d.ts +1 -0
- package/dist/server/operation-catalog.js +1 -0
- package/dist/server/operation-fault.d.ts +153 -0
- package/dist/server/operation-fault.js +50 -0
- package/dist/server/operation-registry.d.ts +100 -0
- package/dist/server/operation-registry.js +56 -0
- package/dist/server/operations/add-workflow-tags.d.ts +15 -0
- package/dist/server/operations/add-workflow-tags.js +13 -0
- package/dist/server/operations/aggregate-workflows.d.ts +81 -0
- package/dist/server/operations/aggregate-workflows.js +110 -0
- package/dist/server/operations/async-activity.d.ts +44 -0
- package/dist/server/operations/async-activity.js +134 -0
- package/dist/server/operations/bulk-cancel-workflows.d.ts +7 -0
- package/dist/server/operations/bulk-cancel-workflows.js +64 -0
- package/dist/server/operations/bulk-delete-workflows.d.ts +7 -0
- package/dist/server/operations/bulk-delete-workflows.js +71 -0
- package/dist/server/operations/bulk-filter-helpers.d.ts +62 -0
- package/dist/server/operations/bulk-filter-helpers.js +334 -0
- package/dist/server/operations/bulk-mutate-workflow-tags.d.ts +94 -0
- package/dist/server/operations/bulk-mutate-workflow-tags.js +100 -0
- package/dist/server/operations/bulk-operation-helpers.d.ts +27 -0
- package/dist/server/operations/bulk-operation-helpers.js +29 -0
- package/dist/server/operations/bulk-signal-workflows.d.ts +87 -0
- package/dist/server/operations/bulk-signal-workflows.js +80 -0
- package/dist/server/operations/cancel-schedule.d.ts +13 -0
- package/dist/server/operations/cancel-schedule.js +43 -0
- package/dist/server/operations/cancel-workflow.d.ts +13 -0
- package/dist/server/operations/cancel-workflow.js +34 -0
- package/dist/server/operations/create-schedule.d.ts +29 -0
- package/dist/server/operations/create-schedule.js +116 -0
- package/dist/server/operations/failure-category-filter.d.ts +2 -0
- package/dist/server/operations/failure-category-filter.js +19 -0
- package/dist/server/operations/fork-workflow.d.ts +29 -0
- package/dist/server/operations/fork-workflow.js +88 -0
- package/dist/server/operations/get-checkpoint-at.d.ts +15 -0
- package/dist/server/operations/get-checkpoint-at.js +74 -0
- package/dist/server/operations/get-registry.d.ts +26 -0
- package/dist/server/operations/get-registry.js +56 -0
- package/dist/server/operations/get-retention-overview.d.ts +9 -0
- package/dist/server/operations/get-retention-overview.js +39 -0
- package/dist/server/operations/get-review.d.ts +15 -0
- package/dist/server/operations/get-review.js +57 -0
- package/dist/server/operations/get-schedule.d.ts +20 -0
- package/dist/server/operations/get-schedule.js +48 -0
- package/dist/server/operations/get-stream-chunks.d.ts +19 -0
- package/dist/server/operations/get-stream-chunks.js +71 -0
- package/dist/server/operations/get-system-metrics.d.ts +42 -0
- package/dist/server/operations/get-system-metrics.js +43 -0
- package/dist/server/operations/get-task-diagnostics.d.ts +184 -0
- package/dist/server/operations/get-task-diagnostics.js +340 -0
- package/dist/server/operations/get-update-result.d.ts +18 -0
- package/dist/server/operations/get-update-result.js +55 -0
- package/dist/server/operations/get-workflow-attributes.d.ts +13 -0
- package/dist/server/operations/get-workflow-attributes.js +51 -0
- package/dist/server/operations/get-workflow-events.d.ts +15 -0
- package/dist/server/operations/get-workflow-events.js +51 -0
- package/dist/server/operations/get-workflow-result.d.ts +14 -0
- package/dist/server/operations/get-workflow-result.js +93 -0
- package/dist/server/operations/get-workflow-timeline.d.ts +13 -0
- package/dist/server/operations/get-workflow-timeline.js +51 -0
- package/dist/server/operations/get-workflow.d.ts +36 -0
- package/dist/server/operations/get-workflow.js +49 -0
- package/dist/server/operations/list-checkpoints.d.ts +13 -0
- package/dist/server/operations/list-checkpoints.js +43 -0
- package/dist/server/operations/list-filter-query-extractor.d.ts +23 -0
- package/dist/server/operations/list-filter-query-extractor.js +87 -0
- package/dist/server/operations/list-reviews.d.ts +19 -0
- package/dist/server/operations/list-reviews.js +77 -0
- package/dist/server/operations/list-schedules.d.ts +28 -0
- package/dist/server/operations/list-schedules.js +108 -0
- package/dist/server/operations/list-task-queues.d.ts +71 -0
- package/dist/server/operations/list-task-queues.js +105 -0
- package/dist/server/operations/list-workers.d.ts +56 -0
- package/dist/server/operations/list-workers.js +92 -0
- package/dist/server/operations/list-workflows.d.ts +79 -0
- package/dist/server/operations/list-workflows.js +136 -0
- package/dist/server/operations/operation-helpers.d.ts +21 -0
- package/dist/server/operations/operation-helpers.js +22 -0
- package/dist/server/operations/pause-schedule.d.ts +13 -0
- package/dist/server/operations/pause-schedule.js +43 -0
- package/dist/server/operations/purge-workflows.d.ts +41 -0
- package/dist/server/operations/purge-workflows.js +57 -0
- package/dist/server/operations/query-workflow.d.ts +19 -0
- package/dist/server/operations/query-workflow.js +99 -0
- package/dist/server/operations/recover-all.d.ts +13 -0
- package/dist/server/operations/recover-all.js +65 -0
- package/dist/server/operations/remove-workflow-tags.d.ts +15 -0
- package/dist/server/operations/remove-workflow-tags.js +13 -0
- package/dist/server/operations/replay-workflow.d.ts +28 -0
- package/dist/server/operations/replay-workflow.js +69 -0
- package/dist/server/operations/resume-schedule.d.ts +13 -0
- package/dist/server/operations/resume-schedule.js +43 -0
- package/dist/server/operations/resume-workflow.d.ts +17 -0
- package/dist/server/operations/resume-workflow.js +40 -0
- package/dist/server/operations/schedule-faults.d.ts +14 -0
- package/dist/server/operations/schedule-faults.js +41 -0
- package/dist/server/operations/set-workflow-attributes.d.ts +19 -0
- package/dist/server/operations/set-workflow-attributes.js +67 -0
- package/dist/server/operations/signal-workflow.d.ts +23 -0
- package/dist/server/operations/signal-workflow.js +58 -0
- package/dist/server/operations/single-workflow-control-operation.d.ts +32 -0
- package/dist/server/operations/single-workflow-control-operation.js +44 -0
- package/dist/server/operations/single-workflow-tag-mutation.d.ts +27 -0
- package/dist/server/operations/single-workflow-tag-mutation.js +108 -0
- package/dist/server/operations/sse-stream.d.ts +13 -0
- package/dist/server/operations/sse-stream.js +42 -0
- package/dist/server/operations/start-workflow.d.ts +33 -0
- package/dist/server/operations/start-workflow.js +181 -0
- package/dist/server/operations/storage.d.ts +112 -0
- package/dist/server/operations/storage.js +358 -0
- package/dist/server/operations/stream-workflow-sse.d.ts +17 -0
- package/dist/server/operations/stream-workflow-sse.js +94 -0
- package/dist/server/operations/submit-review-decision.d.ts +25 -0
- package/dist/server/operations/submit-review-decision.js +113 -0
- package/dist/server/operations/timeout-workflow.d.ts +11 -0
- package/dist/server/operations/timeout-workflow.js +34 -0
- package/dist/server/operations/update-schedule.d.ts +15 -0
- package/dist/server/operations/update-schedule.js +60 -0
- package/dist/server/operations/update-workflow.d.ts +27 -0
- package/dist/server/operations/update-workflow.js +109 -0
- package/dist/server/operations/worker-drain.d.ts +69 -0
- package/dist/server/operations/worker-drain.js +214 -0
- package/dist/server/operations/workflow-events-subscription.d.ts +47 -0
- package/dist/server/operations/workflow-events-subscription.js +51 -0
- package/dist/server/principal.d.ts +176 -0
- package/dist/server/principal.js +59 -0
- package/dist/server/rest-binding.d.ts +158 -0
- package/dist/server/rest-binding.js +35 -0
- package/dist/server/rest-bindings.d.ts +76 -0
- package/dist/server/rest-bindings.js +376 -0
- package/dist/server/route-model.d.ts +268 -0
- package/dist/server/route-model.js +166 -0
- package/dist/server/runtime/authentication-bridge.d.ts +22 -0
- package/dist/server/runtime/authentication-bridge.js +194 -0
- package/dist/server/runtime/context.d.ts +73 -0
- package/dist/server/runtime/context.js +0 -0
- package/dist/server/runtime/cors.d.ts +149 -0
- package/dist/server/runtime/cors.js +123 -0
- package/dist/server/runtime/event-broadcasting.d.ts +71 -0
- package/dist/server/runtime/event-broadcasting.js +205 -0
- package/dist/server/runtime/request-gate.d.ts +54 -0
- package/dist/server/runtime/request-gate.js +71 -0
- package/dist/server/runtime/shutdown.d.ts +10 -0
- package/dist/server/runtime/shutdown.js +18 -0
- package/dist/server/runtime/stop-server.d.ts +3 -0
- package/dist/server/runtime/stop-server.js +19 -0
- package/dist/server/runtime/task-dispatch.d.ts +8 -0
- package/dist/server/runtime/task-dispatch.js +157 -0
- package/dist/server/runtime/task-metrics.d.ts +12 -0
- package/dist/server/runtime/task-metrics.js +36 -0
- package/dist/server/runtime/task-polling.d.ts +9 -0
- package/dist/server/runtime/task-polling.js +132 -0
- package/dist/server/runtime/task-reconciliation.d.ts +17 -0
- package/dist/server/runtime/task-reconciliation.js +163 -0
- package/dist/server/runtime/websocket-stream.d.ts +15 -0
- package/dist/server/runtime/websocket-stream.js +79 -0
- package/dist/server/runtime/websocket-upgrade.d.ts +8 -0
- package/dist/server/runtime/websocket-upgrade.js +76 -0
- package/dist/server/runtime/websocket-worker.d.ts +7 -0
- package/dist/server/runtime/websocket-worker.js +224 -0
- package/dist/server/runtime-helpers.d.ts +18 -0
- package/dist/server/runtime-helpers.js +23 -0
- package/dist/server/sequence-cursor.d.ts +5 -0
- package/dist/server/sequence-cursor.js +19 -0
- package/dist/server/serve-internals.d.ts +83 -0
- package/dist/server/serve-internals.js +203 -0
- package/dist/server/stdio-session.d.ts +51 -0
- package/dist/server/stdio-session.js +245 -0
- package/dist/server/task-queue-summary.d.ts +27 -0
- package/dist/server/task-queue-summary.js +34 -0
- package/dist/server/task-queue-types.d.ts +95 -0
- package/dist/server/task-queue-types.js +0 -0
- package/dist/server/task-queue.d.ts +90 -0
- package/dist/server/task-queue.js +247 -0
- package/dist/server/task-resolved-record.d.ts +12 -0
- package/dist/server/task-resolved-record.js +35 -0
- package/dist/server/task-state.d.ts +152 -0
- package/dist/server/task-state.js +178 -0
- package/dist/server/workflow-event-feed.d.ts +166 -0
- package/dist/server/workflow-event-feed.js +193 -0
- package/dist/service-worker/index.d.ts +123 -0
- package/dist/service-worker/index.js +56 -0
- package/dist/service-worker/scheduler.d.ts +37 -0
- package/dist/service-worker/scheduler.js +117 -0
- package/dist/service-worker/setup.d.ts +127 -0
- package/dist/service-worker/setup.js +129 -0
- package/dist/service-worker/shared.d.ts +94 -0
- package/dist/service-worker/shared.js +15 -0
- package/dist/storage/auto.d.ts +45 -0
- package/dist/storage/auto.js +2 -0
- package/dist/storage/bun-sql.d.ts +64 -0
- package/dist/storage/bun-sql.js +575 -0
- package/dist/storage/byte-encoding.d.ts +6 -0
- package/dist/storage/byte-encoding.js +16 -0
- package/dist/storage/capabilities.d.ts +187 -0
- package/dist/storage/capabilities.js +19 -0
- package/dist/storage/compressed-storage.d.ts +45 -0
- package/dist/storage/compressed-storage.js +2 -0
- package/dist/storage/default-scope.d.ts +17 -0
- package/dist/storage/default-scope.js +1 -0
- package/dist/storage/delete-range.d.ts +109 -0
- package/dist/storage/delete-range.js +64 -0
- package/dist/storage/derived-operations.d.ts +53 -0
- package/dist/storage/derived-operations.js +31 -0
- package/dist/storage/http.d.ts +67 -0
- package/dist/storage/http.js +2 -0
- package/dist/storage/index.d.ts +292 -0
- package/dist/storage/index.js +51 -0
- package/dist/storage/indexeddb.d.ts +49 -0
- package/dist/storage/indexeddb.js +1 -0
- package/dist/storage/interface.d.ts +340 -0
- package/dist/storage/interface.js +2 -0
- package/dist/storage/key-prefixes.d.ts +19 -0
- package/dist/storage/key-prefixes.js +35 -0
- package/dist/storage/lmdb.d.ts +40 -0
- package/dist/storage/lmdb.js +2 -0
- package/dist/storage/memory.d.ts +46 -0
- package/dist/storage/memory.js +2 -0
- package/dist/storage/node-sqlite.d.ts +85 -0
- package/dist/storage/node-sqlite.js +323 -0
- package/dist/storage/read-only-query.d.ts +2 -0
- package/dist/storage/read-only-query.js +19 -0
- package/dist/storage/resolve.d.ts +180 -0
- package/dist/storage/resolve.js +2 -0
- package/dist/storage/scoped-storage.d.ts +68 -0
- package/dist/storage/scoped-storage.js +2 -0
- package/dist/storage/sqlite-key-value-queries.d.ts +40 -0
- package/dist/storage/sqlite-key-value-queries.js +64 -0
- package/dist/storage/sqlite.d.ts +31 -0
- package/dist/storage/sqlite.js +0 -0
- package/dist/storage/text-value-import.d.ts +87 -0
- package/dist/storage/text-value-import.js +50 -0
- package/dist/storage/text-value-store.d.ts +171 -0
- package/dist/storage/text-value-store.js +55 -0
- package/dist/storage/turso.d.ts +60 -0
- package/dist/storage/turso.js +5 -0
- package/dist/storage/typed-storage.d.ts +258 -0
- package/dist/storage/typed-storage.js +2 -0
- package/dist/storage/web-extension.d.ts +55 -0
- package/dist/storage/web-extension.js +1 -0
- package/dist/testing/chaos.d.ts +157 -0
- package/dist/testing/chaos.js +69 -0
- package/dist/testing/event-loop.d.ts +4 -0
- package/dist/testing/event-loop.js +21 -0
- package/dist/testing/index.d.ts +126 -0
- package/dist/testing/index.js +61 -0
- package/dist/testing/mocks.d.ts +145 -0
- package/dist/testing/mocks.js +136 -0
- package/dist/testing/subprocess-engine.d.ts +100 -0
- package/dist/testing/subprocess-engine.js +291 -0
- package/dist/testing/test-engine.d.ts +145 -0
- package/dist/testing/test-engine.js +147 -0
- package/dist/testing/time-control.d.ts +59 -0
- package/dist/testing/time-control.js +68 -0
- package/dist/version.d.ts +12 -0
- package/dist/version.js +1 -0
- package/dist/worker/activity-table.d.ts +33 -0
- package/dist/worker/activity-table.js +20 -0
- package/dist/worker/execute-with-interceptors.d.ts +28 -0
- package/dist/worker/execute-with-interceptors.js +21 -0
- package/dist/worker/heartbeat.d.ts +34 -0
- package/dist/worker/heartbeat.js +31 -0
- package/dist/worker/index.d.ts +57 -0
- package/dist/worker/index.js +334 -0
- package/dist/worker/long-poll.d.ts +54 -0
- package/dist/worker/long-poll.js +134 -0
- package/dist/worker/options.d.ts +66 -0
- package/dist/worker/options.js +19 -0
- package/dist/worker/protocol-internals.d.ts +82 -0
- package/dist/worker/protocol-internals.js +56 -0
- package/dist/worker/protocol-messages.d.ts +264 -0
- package/dist/worker/protocol-messages.js +0 -0
- package/dist/worker/protocol-schemas.d.ts +559 -0
- package/dist/worker/protocol-schemas.js +180 -0
- package/dist/worker/protocol-version.d.ts +71 -0
- package/dist/worker/protocol-version.js +1 -0
- package/dist/worker/protocol.d.ts +72 -0
- package/dist/worker/protocol.js +2 -0
- package/dist/worker/registry/fair-share.d.ts +59 -0
- package/dist/worker/registry/fair-share.js +15 -0
- package/dist/worker/registry/routing.d.ts +17 -0
- package/dist/worker/registry/routing.js +16 -0
- package/dist/worker/registry/summary.d.ts +87 -0
- package/dist/worker/registry/summary.js +81 -0
- package/dist/worker/registry/types.d.ts +123 -0
- package/dist/worker/registry/types.js +0 -0
- package/dist/worker/registry.d.ts +94 -0
- package/dist/worker/registry.js +305 -0
- package/dist/worker/remote-activity-context.d.ts +15 -0
- package/dist/worker/remote-activity-context.js +0 -0
- package/dist/worker/task-result-outbox.d.ts +40 -0
- package/dist/worker/task-result-outbox.js +42 -0
- package/dist/worker/worker-protocol-incompatible-error.d.ts +52 -0
- package/dist/worker/worker-protocol-incompatible-error.js +15 -0
- package/dist/worker/workflow-activity-binding.d.ts +96 -0
- package/dist/worker/workflow-activity-binding.js +22 -0
- package/dist/workers/activity-runner.d.ts +87 -0
- package/dist/workers/activity-runner.js +29 -0
- package/dist/workers/activity-worker-dispatcher.d.ts +85 -0
- package/dist/workers/activity-worker-dispatcher.js +68 -0
- package/dist/workers/activity-worker-entry.d.ts +99 -0
- package/dist/workers/activity-worker-entry.js +59 -0
- package/dist/workers/pool.d.ts +83 -0
- package/dist/workers/pool.js +174 -0
- package/dist/workers/workflow-runner.d.ts +79 -0
- package/dist/workers/workflow-runner.js +245 -0
- package/dist/workers/workflow-worker-entry.d.ts +24 -0
- package/dist/workers/workflow-worker-entry.js +70 -0
- package/package.json +297 -0
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import type { ContextOperationRequest } from '../context.ts';
|
|
2
|
+
import type { CoordinatedUpdateResult } from '../types.ts';
|
|
3
|
+
import { type UpdateRequest, type UpdateResponse } from '../updates.ts';
|
|
4
|
+
import type { EngineInternals } from './internals.ts';
|
|
5
|
+
export type UpdateCallbacks = {
|
|
6
|
+
dispatchEvent: (event: Event) => boolean;
|
|
7
|
+
broadcast: (message: {
|
|
8
|
+
type: 'update:completed';
|
|
9
|
+
workflowId: string;
|
|
10
|
+
updateId: string;
|
|
11
|
+
}) => void;
|
|
12
|
+
completeOperation: (workflowId: string, value: unknown) => void;
|
|
13
|
+
guardTerminalWorkflow: (workflowId: string) => Promise<void>;
|
|
14
|
+
guardTerminalWorkflowAfterCoordinatedRequest: (workflowId: string, updateId: string) => Promise<void>;
|
|
15
|
+
persistCoordinatedUpdateResponse: (workflowId: string, updateName: string, updateId: string, idempotencyKey: string | undefined, value: unknown) => Promise<void>;
|
|
16
|
+
deliverCoordinatedUpdateToWaiterIfAvailable: (workflowId: string, updateRequest: UpdateRequest, dispatchReceivedEvent?: boolean) => Promise<boolean>;
|
|
17
|
+
dispatchPendingUpdateReceived: (workflowId: string, updateName: string, updateRequest: UpdateRequest) => void;
|
|
18
|
+
createCoordinatedUpdateResponder: (workflowId: string, updateName: string, updateRequest: UpdateRequest) => (value: unknown) => void;
|
|
19
|
+
findPendingUpdateByName: (workflowId: string, name: string) => Promise<UpdateRequest | undefined>;
|
|
20
|
+
schedulePendingInlineUpdateDrain: (workflowId: string) => void;
|
|
21
|
+
};
|
|
22
|
+
export declare function update(internals: EngineInternals, workflowId: string, name: string, payload: unknown, options: {
|
|
23
|
+
timeout?: number;
|
|
24
|
+
} | undefined, callbacks: UpdateCallbacks): Promise<unknown>;
|
|
25
|
+
/** Retrieve the result of a coordinated update by its ID. */
|
|
26
|
+
export declare function getUpdateResult(internals: EngineInternals, updateId: string): Promise<UpdateResponse | null>;
|
|
27
|
+
/**
|
|
28
|
+
* Submit a coordinated update request. Handles idempotency checking,
|
|
29
|
+
* creates the request, and waits for a response within the timeout.
|
|
30
|
+
*/
|
|
31
|
+
export declare function submitCoordinatedUpdate(internals: EngineInternals, workflowId: string, name: string, payload: unknown, options: {
|
|
32
|
+
timeout?: number;
|
|
33
|
+
idempotencyKey?: string;
|
|
34
|
+
} | undefined, callbacks: UpdateCallbacks): Promise<CoordinatedUpdateResult>;
|
|
35
|
+
export declare function processWaitUpdateOperation(internals: EngineInternals, workflowId: string, operation: Extract<ContextOperationRequest, {
|
|
36
|
+
type: 'wait-update';
|
|
37
|
+
}>, callbacks: UpdateCallbacks): Promise<void>;
|
|
38
|
+
export declare function dispatchPendingUpdateReceived(_internals: EngineInternals, workflowId: string, updateName: string, updateRequest: UpdateRequest, callbacks: Pick<UpdateCallbacks, 'dispatchEvent'>): void;
|
|
39
|
+
export declare function createCoordinatedUpdateResponder(_internals: EngineInternals, workflowId: string, updateName: string, updateRequest: UpdateRequest, callbacks: Pick<UpdateCallbacks, 'persistCoordinatedUpdateResponse'>): (value: unknown) => void;
|
|
40
|
+
export declare function deliverCoordinatedUpdateToWaiterIfAvailable(internals: EngineInternals, workflowId: string, updateRequest: UpdateRequest, dispatchReceivedEvent: boolean | undefined, callbacks: UpdateCallbacks): Promise<boolean>;
|
|
41
|
+
export declare function findPendingUpdateByName(internals: EngineInternals, workflowId: string, name: string): Promise<UpdateRequest | undefined>;
|
|
42
|
+
/**
|
|
43
|
+
* Invoke an update handler, checking that it does not return a generator.
|
|
44
|
+
* Centralises the runtime generator guard for both the inline-handler path
|
|
45
|
+
* in `update()` and the pending-drain path on resume.
|
|
46
|
+
*/
|
|
47
|
+
export declare function invokeUpdateHandler(_internals: EngineInternals, name: string, handler: (payload: unknown) => unknown, payload: unknown): Promise<unknown>;
|
|
48
|
+
/**
|
|
49
|
+
* Extract issues from a Standard Schema v1 failure result, or null if absent.
|
|
50
|
+
* No string-`message` entries yields `[]`; callers reject only on a non-empty
|
|
51
|
+
* array, so `null` and `[]` both mean acceptance. Preserves `path` (RFC 6901).
|
|
52
|
+
*/
|
|
53
|
+
export declare function extractStandardSchemaIssues(result: unknown): Array<{
|
|
54
|
+
message: string;
|
|
55
|
+
path?: string;
|
|
56
|
+
}> | null;
|
|
@@ -0,0 +1,230 @@
|
|
|
1
|
+
import { UpdateCompletedEvent, UpdateReceivedEvent } from "../events.js";
|
|
2
|
+
import { isGeneratorResult } from "../step-context.js";
|
|
3
|
+
import {
|
|
4
|
+
UpdateTimeoutError,
|
|
5
|
+
UpdateValidationError
|
|
6
|
+
} from "../updates.js";
|
|
7
|
+
import { trackWaiterKey, untrackWaiterKey } from "./signals.js";
|
|
8
|
+
export async function update(internals, workflowId, name, payload, options, callbacks) {
|
|
9
|
+
const timeout = options?.timeout ?? 30000;
|
|
10
|
+
await runUpdateValidator(internals, workflowId, name, payload);
|
|
11
|
+
await callbacks.guardTerminalWorkflow(workflowId);
|
|
12
|
+
const inlineResult = await tryInlineUpdateHandler(internals, workflowId, name, payload, callbacks);
|
|
13
|
+
if (inlineResult.handled)
|
|
14
|
+
return inlineResult.value;
|
|
15
|
+
const waitingResult = await tryWaitingUpdateHandler(internals, workflowId, name, payload, timeout, callbacks);
|
|
16
|
+
if (waitingResult.handled)
|
|
17
|
+
return waitingResult.value;
|
|
18
|
+
return await runCoordinatedUpdate(internals, workflowId, name, payload, timeout, callbacks);
|
|
19
|
+
}
|
|
20
|
+
async function tryInlineUpdateHandler(internals, workflowId, name, payload, callbacks) {
|
|
21
|
+
const handler = internals.inlineStrategy?.getContext(workflowId)?.updateHandlers.get(name);
|
|
22
|
+
if (!handler)
|
|
23
|
+
return { handled: !1 };
|
|
24
|
+
const updateId = crypto.randomUUID();
|
|
25
|
+
callbacks.dispatchEvent(new UpdateReceivedEvent(updateId, workflowId, name, payload));
|
|
26
|
+
try {
|
|
27
|
+
const result = await invokeUpdateHandler(internals, name, handler, payload);
|
|
28
|
+
callbacks.dispatchEvent(new UpdateCompletedEvent(updateId, workflowId, name, result));
|
|
29
|
+
callbacks.broadcast({ type: "update:completed", workflowId, updateId });
|
|
30
|
+
return { handled: !0, value: result };
|
|
31
|
+
} catch (error) {
|
|
32
|
+
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
33
|
+
callbacks.dispatchEvent(new UpdateCompletedEvent(updateId, workflowId, name, void 0, errorMessage));
|
|
34
|
+
callbacks.broadcast({ type: "update:completed", workflowId, updateId });
|
|
35
|
+
throw error;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
async function tryWaitingUpdateHandler(internals, workflowId, name, payload, timeout, callbacks) {
|
|
39
|
+
const waiterKey = `${workflowId}:${name}`, updateWaiter = internals.updateWaiters.get(waiterKey);
|
|
40
|
+
if (!updateWaiter)
|
|
41
|
+
return { handled: !1 };
|
|
42
|
+
const existingPendingUpdate = await callbacks.findPendingUpdateByName(workflowId, name);
|
|
43
|
+
if (internals.updateWaiters.get(waiterKey) !== updateWaiter || existingPendingUpdate)
|
|
44
|
+
return { handled: !1 };
|
|
45
|
+
internals.updateWaiters.delete(waiterKey);
|
|
46
|
+
untrackWaiterKey(internals.updateWaitersByWorkflow, workflowId, waiterKey);
|
|
47
|
+
const updateId = crypto.randomUUID();
|
|
48
|
+
callbacks.dispatchEvent(new UpdateReceivedEvent(updateId, workflowId, name, payload));
|
|
49
|
+
const result = await waitForUpdateResponse(updateId, payload, timeout, updateWaiter);
|
|
50
|
+
callbacks.dispatchEvent(new UpdateCompletedEvent(updateId, workflowId, name, result));
|
|
51
|
+
callbacks.broadcast({ type: "update:completed", workflowId, updateId });
|
|
52
|
+
return { handled: !0, value: result };
|
|
53
|
+
}
|
|
54
|
+
async function waitForUpdateResponse(updateId, payload, timeout, updateWaiter) {
|
|
55
|
+
const { promise: respondPromise, resolve: resolveRespond } = Promise.withResolvers();
|
|
56
|
+
let responded = !1;
|
|
57
|
+
updateWaiter({ payload, respond: (value) => {
|
|
58
|
+
if (responded)
|
|
59
|
+
return;
|
|
60
|
+
responded = !0;
|
|
61
|
+
resolveRespond(value);
|
|
62
|
+
} });
|
|
63
|
+
let timeoutId;
|
|
64
|
+
try {
|
|
65
|
+
return await Promise.race([
|
|
66
|
+
respondPromise,
|
|
67
|
+
new Promise((_resolve, reject) => {
|
|
68
|
+
timeoutId = setTimeout(() => reject(new UpdateTimeoutError(updateId, timeout)), timeout);
|
|
69
|
+
})
|
|
70
|
+
]);
|
|
71
|
+
} finally {
|
|
72
|
+
clearTimeout(timeoutId);
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
async function runCoordinatedUpdate(internals, workflowId, name, payload, timeout, callbacks) {
|
|
76
|
+
const updateId = await internals.updateCoordinator.createRequest(workflowId, name, payload);
|
|
77
|
+
callbacks.schedulePendingInlineUpdateDrain(workflowId);
|
|
78
|
+
await callbacks.guardTerminalWorkflowAfterCoordinatedRequest(workflowId, updateId);
|
|
79
|
+
callbacks.dispatchEvent(new UpdateReceivedEvent(updateId, workflowId, name, payload));
|
|
80
|
+
await callbacks.deliverCoordinatedUpdateToWaiterIfAvailable(workflowId, {
|
|
81
|
+
updateId,
|
|
82
|
+
workflowId,
|
|
83
|
+
name,
|
|
84
|
+
payload,
|
|
85
|
+
createdAt: Date.now()
|
|
86
|
+
});
|
|
87
|
+
const response = await internals.updateCoordinator.waitForResponse(updateId, timeout);
|
|
88
|
+
if (response.error)
|
|
89
|
+
throw Error(response.error);
|
|
90
|
+
return response.result;
|
|
91
|
+
}
|
|
92
|
+
export async function getUpdateResult(internals, updateId) {
|
|
93
|
+
return internals.updateCoordinator.getResponse(updateId);
|
|
94
|
+
}
|
|
95
|
+
export async function submitCoordinatedUpdate(internals, workflowId, name, payload, options, callbacks) {
|
|
96
|
+
const timeout = options?.timeout ?? 30000, idempotencyKey = options?.idempotencyKey;
|
|
97
|
+
if (idempotencyKey !== void 0) {
|
|
98
|
+
const existing = await internals.updateCoordinator.checkIdempotency(workflowId, idempotencyKey);
|
|
99
|
+
if (existing !== null)
|
|
100
|
+
return { updateId: existing.updateId, result: existing.result };
|
|
101
|
+
}
|
|
102
|
+
await runUpdateValidator(internals, workflowId, name, payload);
|
|
103
|
+
await callbacks.guardTerminalWorkflow(workflowId);
|
|
104
|
+
const requestOptions = { timeout };
|
|
105
|
+
if (idempotencyKey !== void 0)
|
|
106
|
+
requestOptions.idempotencyKey = idempotencyKey;
|
|
107
|
+
const updateId = await internals.updateCoordinator.createRequest(workflowId, name, payload, requestOptions);
|
|
108
|
+
callbacks.schedulePendingInlineUpdateDrain(workflowId);
|
|
109
|
+
await callbacks.guardTerminalWorkflowAfterCoordinatedRequest(workflowId, updateId);
|
|
110
|
+
await callbacks.deliverCoordinatedUpdateToWaiterIfAvailable(workflowId, {
|
|
111
|
+
updateId,
|
|
112
|
+
workflowId,
|
|
113
|
+
name,
|
|
114
|
+
payload,
|
|
115
|
+
createdAt: Date.now(),
|
|
116
|
+
idempotencyKey
|
|
117
|
+
}, !0);
|
|
118
|
+
const response = await internals.updateCoordinator.waitForResponse(updateId, timeout), result = {
|
|
119
|
+
updateId: response.updateId,
|
|
120
|
+
result: response.result
|
|
121
|
+
};
|
|
122
|
+
if (response.error !== void 0)
|
|
123
|
+
result.error = response.error;
|
|
124
|
+
return result;
|
|
125
|
+
}
|
|
126
|
+
export async function processWaitUpdateOperation(internals, workflowId, operation, callbacks) {
|
|
127
|
+
const waiterKey = `${workflowId}:${operation.updateName}`, matchingUpdate = await callbacks.findPendingUpdateByName(workflowId, operation.updateName);
|
|
128
|
+
if (matchingUpdate) {
|
|
129
|
+
await internals.updateCoordinator.deleteRequest(workflowId, matchingUpdate.updateId);
|
|
130
|
+
callbacks.dispatchPendingUpdateReceived(workflowId, operation.updateName, matchingUpdate);
|
|
131
|
+
callbacks.completeOperation(workflowId, {
|
|
132
|
+
payload: matchingUpdate.payload,
|
|
133
|
+
respond: callbacks.createCoordinatedUpdateResponder(workflowId, operation.updateName, matchingUpdate)
|
|
134
|
+
});
|
|
135
|
+
return;
|
|
136
|
+
}
|
|
137
|
+
const { promise, resolve } = Promise.withResolvers();
|
|
138
|
+
internals.updateWaiters.set(waiterKey, resolve);
|
|
139
|
+
trackWaiterKey(internals.updateWaitersByWorkflow, workflowId, waiterKey);
|
|
140
|
+
const pendingUpdateAfterRegistration = await callbacks.findPendingUpdateByName(workflowId, operation.updateName);
|
|
141
|
+
if (pendingUpdateAfterRegistration) {
|
|
142
|
+
if (internals.updateWaiters.get(waiterKey) === resolve) {
|
|
143
|
+
internals.updateWaiters.delete(waiterKey);
|
|
144
|
+
untrackWaiterKey(internals.updateWaitersByWorkflow, workflowId, waiterKey);
|
|
145
|
+
}
|
|
146
|
+
await internals.updateCoordinator.deleteRequest(workflowId, pendingUpdateAfterRegistration.updateId);
|
|
147
|
+
callbacks.dispatchPendingUpdateReceived(workflowId, operation.updateName, pendingUpdateAfterRegistration);
|
|
148
|
+
callbacks.completeOperation(workflowId, {
|
|
149
|
+
payload: pendingUpdateAfterRegistration.payload,
|
|
150
|
+
respond: callbacks.createCoordinatedUpdateResponder(workflowId, operation.updateName, pendingUpdateAfterRegistration)
|
|
151
|
+
});
|
|
152
|
+
return;
|
|
153
|
+
}
|
|
154
|
+
callbacks.completeOperation(workflowId, await promise);
|
|
155
|
+
}
|
|
156
|
+
export function dispatchPendingUpdateReceived(_internals, workflowId, updateName, updateRequest, callbacks) {
|
|
157
|
+
callbacks.dispatchEvent(new UpdateReceivedEvent(updateRequest.updateId, workflowId, updateName, updateRequest.payload));
|
|
158
|
+
}
|
|
159
|
+
export function createCoordinatedUpdateResponder(_internals, workflowId, updateName, updateRequest, callbacks) {
|
|
160
|
+
let coordinatedResponded = !1;
|
|
161
|
+
return (value) => {
|
|
162
|
+
if (coordinatedResponded)
|
|
163
|
+
return;
|
|
164
|
+
coordinatedResponded = !0;
|
|
165
|
+
callbacks.persistCoordinatedUpdateResponse(workflowId, updateName, updateRequest.updateId, updateRequest.idempotencyKey, value);
|
|
166
|
+
};
|
|
167
|
+
}
|
|
168
|
+
export async function deliverCoordinatedUpdateToWaiterIfAvailable(internals, workflowId, updateRequest, dispatchReceivedEvent = !1, callbacks) {
|
|
169
|
+
const waiterKey = `${workflowId}:${updateRequest.name}`, waiter = internals.updateWaiters.get(waiterKey);
|
|
170
|
+
if (!waiter)
|
|
171
|
+
return !1;
|
|
172
|
+
const oldestPendingUpdate = await callbacks.findPendingUpdateByName(workflowId, updateRequest.name);
|
|
173
|
+
if (!oldestPendingUpdate || oldestPendingUpdate.updateId !== updateRequest.updateId)
|
|
174
|
+
return !1;
|
|
175
|
+
await internals.updateCoordinator.deleteRequest(workflowId, updateRequest.updateId);
|
|
176
|
+
internals.updateWaiters.delete(waiterKey);
|
|
177
|
+
untrackWaiterKey(internals.updateWaitersByWorkflow, workflowId, waiterKey);
|
|
178
|
+
if (dispatchReceivedEvent)
|
|
179
|
+
callbacks.dispatchPendingUpdateReceived(workflowId, updateRequest.name, updateRequest);
|
|
180
|
+
waiter({
|
|
181
|
+
payload: updateRequest.payload,
|
|
182
|
+
respond: callbacks.createCoordinatedUpdateResponder(workflowId, updateRequest.name, updateRequest)
|
|
183
|
+
});
|
|
184
|
+
return !0;
|
|
185
|
+
}
|
|
186
|
+
export async function findPendingUpdateByName(internals, workflowId, name) {
|
|
187
|
+
return (await internals.updateCoordinator.getPendingUpdates(workflowId)).find((updateRequest) => updateRequest.name === name);
|
|
188
|
+
}
|
|
189
|
+
export async function invokeUpdateHandler(_internals, name, handler, payload) {
|
|
190
|
+
const result = handler(payload);
|
|
191
|
+
if (isGeneratorResult(result))
|
|
192
|
+
throw TypeError(`Update handler "${name}" returned a generator. Update handlers must return a plain value or a Promise, not a generator.`);
|
|
193
|
+
return await result;
|
|
194
|
+
}
|
|
195
|
+
async function runUpdateValidator(internals, workflowId, name, payload) {
|
|
196
|
+
const validator = internals.inlineStrategy?.getContext(workflowId)?.updateValidators.get(name);
|
|
197
|
+
if (validator === void 0)
|
|
198
|
+
return;
|
|
199
|
+
let result;
|
|
200
|
+
try {
|
|
201
|
+
result = await validator(payload);
|
|
202
|
+
} catch (error) {
|
|
203
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
204
|
+
throw new UpdateValidationError(name, [{ message }]);
|
|
205
|
+
}
|
|
206
|
+
const issues = extractStandardSchemaIssues(result);
|
|
207
|
+
if (issues !== null && issues.length > 0)
|
|
208
|
+
throw new UpdateValidationError(name, issues);
|
|
209
|
+
}
|
|
210
|
+
export function extractStandardSchemaIssues(result) {
|
|
211
|
+
if (result === null || typeof result !== "object" || !("issues" in result))
|
|
212
|
+
return null;
|
|
213
|
+
const { issues } = result;
|
|
214
|
+
if (!Array.isArray(issues))
|
|
215
|
+
return null;
|
|
216
|
+
return issues.flatMap((issue) => {
|
|
217
|
+
if (issue === null || typeof issue !== "object")
|
|
218
|
+
return [];
|
|
219
|
+
const obj = issue;
|
|
220
|
+
if (typeof obj.message !== "string")
|
|
221
|
+
return [];
|
|
222
|
+
const entry = { message: obj.message };
|
|
223
|
+
if (Array.isArray(obj.path) && obj.path.length > 0)
|
|
224
|
+
entry.path = obj.path.reduce((p, seg) => {
|
|
225
|
+
const k = seg !== null && typeof seg === "object" && "key" in seg ? String(seg.key) : String(seg);
|
|
226
|
+
return p + "/" + k.replace(/~/g, "~0").replace(/\//g, "~1");
|
|
227
|
+
}, "");
|
|
228
|
+
return [entry];
|
|
229
|
+
});
|
|
230
|
+
}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import type { ScheduleFilter, ScheduleOptions, ScheduleOverlapPolicy, ScheduleSpec, ScheduleState, ScheduleStatus } from '../../types.ts';
|
|
2
|
+
export declare const SCHEDULE_STATUSES: Set<ScheduleStatus>;
|
|
3
|
+
export declare const SCHEDULE_OVERLAP_POLICIES: Set<ScheduleOverlapPolicy>;
|
|
4
|
+
export declare function isValidScheduleTimestamp(value: unknown): value is number;
|
|
5
|
+
export declare function isValidScheduleStatus(value: unknown): value is ScheduleStatus;
|
|
6
|
+
export declare function isValidScheduleOverlapPolicy(value: unknown): value is ScheduleOverlapPolicy;
|
|
7
|
+
export declare function isValidScheduleIdentifier(value: unknown): value is string;
|
|
8
|
+
export declare function coerceScheduleId(scheduleId: string, fieldName: string): string;
|
|
9
|
+
export declare function normalizeScheduleOptions(options: ScheduleOptions | undefined): Required<Pick<ScheduleOptions, 'overlap' | 'backfill'>> & {
|
|
10
|
+
id?: string;
|
|
11
|
+
};
|
|
12
|
+
/**
|
|
13
|
+
* A recurrence specification normalized into the discriminated cadence the
|
|
14
|
+
* engine persists. Interval periods are resolved to whole milliseconds.
|
|
15
|
+
*/
|
|
16
|
+
export type NormalizedScheduleSpec = {
|
|
17
|
+
kind: 'cron';
|
|
18
|
+
cronExpression: string;
|
|
19
|
+
} | {
|
|
20
|
+
kind: 'interval';
|
|
21
|
+
intervalMs: number;
|
|
22
|
+
};
|
|
23
|
+
/**
|
|
24
|
+
* Normalize a schedule recurrence specification into the persisted cadence. A
|
|
25
|
+
* bare string is treated as a cron expression (preserving the original
|
|
26
|
+
* cron-only API). An object must supply exactly one of `cron` or `every`.
|
|
27
|
+
*/
|
|
28
|
+
export declare function normalizeScheduleSpec(spec: string | ScheduleSpec): NormalizedScheduleSpec;
|
|
29
|
+
export declare function normalizeScheduleFilter(filter: ScheduleFilter | undefined): ScheduleFilter | undefined;
|
|
30
|
+
export declare function rejectInvalidScheduleRecord(scheduleId: string | undefined, message: string): null;
|
|
31
|
+
export declare function decodeScheduleIdentityFields(decoded: Record<string, unknown>): (Pick<ScheduleState, 'id' | 'workflowType' | 'status' | 'overlap'> & {
|
|
32
|
+
cronExpression?: string;
|
|
33
|
+
intervalMs?: number;
|
|
34
|
+
}) | null;
|
|
35
|
+
type ScheduleRuntimeFields = Pick<ScheduleState, 'backfill' | 'createdAt' | 'updatedAt' | 'lastFireAt' | 'nextFireAt' | 'currentWorkflowId' | 'queuedRuns'>;
|
|
36
|
+
export declare function decodeScheduleRuntimeFields(decoded: Record<string, unknown>, scheduleId: string): ScheduleRuntimeFields | null;
|
|
37
|
+
export declare function decodeScheduleState(bytes: Uint8Array): ScheduleState | null;
|
|
38
|
+
export {};
|
|
@@ -0,0 +1,258 @@
|
|
|
1
|
+
import { decode } from "../../codec.js";
|
|
2
|
+
import { isRecord } from "../../debug-output.js";
|
|
3
|
+
import { parseCronExpression } from "../../schedule.js";
|
|
4
|
+
import { parseDuration } from "../../scheduler.js";
|
|
5
|
+
import { coerceStartWorkflowId } from "../../start-workflow-validation.js";
|
|
6
|
+
export const SCHEDULE_STATUSES = new Set(["active", "paused", "cancelled"]), SCHEDULE_OVERLAP_POLICIES = new Set([
|
|
7
|
+
"skip",
|
|
8
|
+
"queue",
|
|
9
|
+
"cancel-running",
|
|
10
|
+
"allow"
|
|
11
|
+
]);
|
|
12
|
+
export function isValidScheduleTimestamp(value) {
|
|
13
|
+
return typeof value === "number" && Number.isSafeInteger(value) && value >= 0;
|
|
14
|
+
}
|
|
15
|
+
export function isValidScheduleStatus(value) {
|
|
16
|
+
return typeof value === "string" && SCHEDULE_STATUSES.has(value);
|
|
17
|
+
}
|
|
18
|
+
export function isValidScheduleOverlapPolicy(value) {
|
|
19
|
+
return typeof value === "string" && SCHEDULE_OVERLAP_POLICIES.has(value);
|
|
20
|
+
}
|
|
21
|
+
export function isValidScheduleIdentifier(value) {
|
|
22
|
+
if (typeof value !== "string")
|
|
23
|
+
return !1;
|
|
24
|
+
try {
|
|
25
|
+
coerceStartWorkflowId(value, "schedule id");
|
|
26
|
+
return !0;
|
|
27
|
+
} catch {
|
|
28
|
+
return !1;
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
export function coerceScheduleId(scheduleId, fieldName) {
|
|
32
|
+
return coerceStartWorkflowId(scheduleId, fieldName);
|
|
33
|
+
}
|
|
34
|
+
export function normalizeScheduleOptions(options) {
|
|
35
|
+
if (options === void 0)
|
|
36
|
+
return { overlap: "skip", backfill: !1 };
|
|
37
|
+
if (typeof options !== "object" || options === null)
|
|
38
|
+
throw Error("options must be an object when provided");
|
|
39
|
+
const { id, overlap, backfill } = options, normalizedOptions = {
|
|
40
|
+
overlap: "skip",
|
|
41
|
+
backfill: !1
|
|
42
|
+
};
|
|
43
|
+
if (id !== void 0)
|
|
44
|
+
normalizedOptions.id = coerceScheduleId(id, "options.id");
|
|
45
|
+
if (overlap !== void 0) {
|
|
46
|
+
if (!SCHEDULE_OVERLAP_POLICIES.has(overlap))
|
|
47
|
+
throw Error(`options.overlap must be one of ${[...SCHEDULE_OVERLAP_POLICIES].join(", ")}`);
|
|
48
|
+
normalizedOptions.overlap = overlap;
|
|
49
|
+
}
|
|
50
|
+
if (backfill !== void 0) {
|
|
51
|
+
if (typeof backfill !== "boolean")
|
|
52
|
+
throw Error("options.backfill must be a boolean when provided");
|
|
53
|
+
normalizedOptions.backfill = backfill;
|
|
54
|
+
}
|
|
55
|
+
return normalizedOptions;
|
|
56
|
+
}
|
|
57
|
+
function normalizeIntervalEvery(every) {
|
|
58
|
+
if (typeof every !== "string" && typeof every !== "number")
|
|
59
|
+
throw Error('Schedule interval "every" must be a duration string or a number of milliseconds');
|
|
60
|
+
let milliseconds;
|
|
61
|
+
try {
|
|
62
|
+
milliseconds = parseDuration(every);
|
|
63
|
+
} catch (error) {
|
|
64
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
65
|
+
throw Error(`Invalid schedule interval "every": ${message}`, { cause: error });
|
|
66
|
+
}
|
|
67
|
+
const intervalMs = Math.ceil(milliseconds);
|
|
68
|
+
if (!Number.isSafeInteger(intervalMs) || intervalMs <= 0)
|
|
69
|
+
throw Error('Schedule interval "every" must resolve to a positive number of milliseconds');
|
|
70
|
+
return { kind: "interval", intervalMs };
|
|
71
|
+
}
|
|
72
|
+
function normalizeCronSpec(cronExpression) {
|
|
73
|
+
if (typeof cronExpression !== "string")
|
|
74
|
+
throw Error('Schedule "cron" must be a string');
|
|
75
|
+
parseCronExpression(cronExpression);
|
|
76
|
+
return { kind: "cron", cronExpression };
|
|
77
|
+
}
|
|
78
|
+
export function normalizeScheduleSpec(spec) {
|
|
79
|
+
if (typeof spec === "string")
|
|
80
|
+
return normalizeCronSpec(spec);
|
|
81
|
+
if (typeof spec !== "object" || spec === null)
|
|
82
|
+
throw Error('Schedule spec must be a cron string or an object with "cron" or "every"');
|
|
83
|
+
const hasCron = "cron" in spec && spec.cron !== void 0, hasEvery = "every" in spec && spec.every !== void 0;
|
|
84
|
+
if (hasCron === hasEvery)
|
|
85
|
+
throw Error('Schedule spec must specify exactly one of "cron" or "every"');
|
|
86
|
+
return hasEvery ? normalizeIntervalEvery(spec.every) : normalizeCronSpec(spec.cron);
|
|
87
|
+
}
|
|
88
|
+
function validateScheduleFilterStatus(status) {
|
|
89
|
+
if (status === void 0)
|
|
90
|
+
return;
|
|
91
|
+
const statuses = Array.isArray(status) ? status : [status];
|
|
92
|
+
for (const candidateStatus of statuses)
|
|
93
|
+
if (!SCHEDULE_STATUSES.has(candidateStatus))
|
|
94
|
+
throw Error(`filter.status must be one of ${[...SCHEDULE_STATUSES].join(", ")}`);
|
|
95
|
+
}
|
|
96
|
+
function validateScheduleFilterWorkflowType(workflowType) {
|
|
97
|
+
if (workflowType === void 0)
|
|
98
|
+
return;
|
|
99
|
+
if (typeof workflowType !== "string" || workflowType.length === 0)
|
|
100
|
+
throw Error("filter.workflowType must be a non-empty string when provided");
|
|
101
|
+
}
|
|
102
|
+
function validateScheduleFilterBound(value, fieldName) {
|
|
103
|
+
if (value === void 0)
|
|
104
|
+
return;
|
|
105
|
+
if (!Number.isSafeInteger(value) || value < 0)
|
|
106
|
+
throw Error(`filter.${fieldName} must be a non-negative safe integer when provided`);
|
|
107
|
+
}
|
|
108
|
+
export function normalizeScheduleFilter(filter) {
|
|
109
|
+
if (filter === void 0)
|
|
110
|
+
return;
|
|
111
|
+
if (typeof filter !== "object" || filter === null)
|
|
112
|
+
throw Error("filter must be an object when provided");
|
|
113
|
+
validateScheduleFilterStatus(filter.status);
|
|
114
|
+
validateScheduleFilterWorkflowType(filter.workflowType);
|
|
115
|
+
validateScheduleFilterBound(filter.limit, "limit");
|
|
116
|
+
validateScheduleFilterBound(filter.offset, "offset");
|
|
117
|
+
return filter;
|
|
118
|
+
}
|
|
119
|
+
export function rejectInvalidScheduleRecord(scheduleId, message) {
|
|
120
|
+
const prefix = scheduleId === void 0 ? "[weft] Ignoring malformed schedule record" : `[weft] Ignoring malformed schedule "${scheduleId}"`;
|
|
121
|
+
console.warn(`${prefix} ${message}.`);
|
|
122
|
+
return null;
|
|
123
|
+
}
|
|
124
|
+
function decodeScheduleCadence(decoded, scheduleId) {
|
|
125
|
+
const { cronExpression, intervalMs } = decoded, hasCron = cronExpression !== void 0, hasInterval = intervalMs !== void 0;
|
|
126
|
+
if (hasCron === hasInterval)
|
|
127
|
+
return rejectInvalidScheduleRecord(scheduleId, "with conflicting or missing cadence (expected exactly one of cronExpression or intervalMs)");
|
|
128
|
+
if (hasInterval) {
|
|
129
|
+
if (typeof intervalMs !== "number" || !Number.isSafeInteger(intervalMs) || intervalMs <= 0)
|
|
130
|
+
return rejectInvalidScheduleRecord(scheduleId, "with invalid intervalMs");
|
|
131
|
+
return { intervalMs };
|
|
132
|
+
}
|
|
133
|
+
if (typeof cronExpression !== "string")
|
|
134
|
+
return rejectInvalidScheduleRecord(scheduleId, "with invalid cronExpression");
|
|
135
|
+
try {
|
|
136
|
+
parseCronExpression(cronExpression);
|
|
137
|
+
} catch {
|
|
138
|
+
return rejectInvalidScheduleRecord(scheduleId, "with invalid cronExpression");
|
|
139
|
+
}
|
|
140
|
+
return { cronExpression };
|
|
141
|
+
}
|
|
142
|
+
export function decodeScheduleIdentityFields(decoded) {
|
|
143
|
+
const id = decoded.id;
|
|
144
|
+
if (!isValidScheduleIdentifier(id))
|
|
145
|
+
return rejectInvalidScheduleRecord(void 0, "with invalid id");
|
|
146
|
+
const workflowType = decoded.workflowType;
|
|
147
|
+
if (typeof workflowType !== "string" || workflowType.length === 0)
|
|
148
|
+
return rejectInvalidScheduleRecord(id, "with invalid workflowType");
|
|
149
|
+
const cadence = decodeScheduleCadence(decoded, id);
|
|
150
|
+
if (!cadence)
|
|
151
|
+
return null;
|
|
152
|
+
const status = decoded.status;
|
|
153
|
+
if (!isValidScheduleStatus(status))
|
|
154
|
+
return rejectInvalidScheduleRecord(id, "with invalid status");
|
|
155
|
+
const overlap = decoded.overlap;
|
|
156
|
+
if (!isValidScheduleOverlapPolicy(overlap))
|
|
157
|
+
return rejectInvalidScheduleRecord(id, "with invalid overlap policy");
|
|
158
|
+
return {
|
|
159
|
+
id,
|
|
160
|
+
workflowType,
|
|
161
|
+
status,
|
|
162
|
+
overlap,
|
|
163
|
+
...cadence
|
|
164
|
+
};
|
|
165
|
+
}
|
|
166
|
+
function decodeScheduleBackfill(decoded, scheduleId) {
|
|
167
|
+
const backfill = decoded.backfill;
|
|
168
|
+
if (typeof backfill !== "boolean") {
|
|
169
|
+
rejectInvalidScheduleRecord(scheduleId, "with invalid backfill flag");
|
|
170
|
+
return null;
|
|
171
|
+
}
|
|
172
|
+
return backfill;
|
|
173
|
+
}
|
|
174
|
+
function decodeScheduleTimestamps(decoded, scheduleId) {
|
|
175
|
+
const { createdAt, updatedAt } = decoded;
|
|
176
|
+
if (!isValidScheduleTimestamp(createdAt) || !isValidScheduleTimestamp(updatedAt))
|
|
177
|
+
return rejectInvalidScheduleRecord(scheduleId, "with invalid timestamps");
|
|
178
|
+
const lastFireAt = decoded.lastFireAt;
|
|
179
|
+
if (lastFireAt !== void 0 && !isValidScheduleTimestamp(lastFireAt))
|
|
180
|
+
return rejectInvalidScheduleRecord(scheduleId, "with invalid lastFireAt");
|
|
181
|
+
return {
|
|
182
|
+
createdAt,
|
|
183
|
+
updatedAt,
|
|
184
|
+
...lastFireAt !== void 0 && { lastFireAt }
|
|
185
|
+
};
|
|
186
|
+
}
|
|
187
|
+
function decodeScheduleNextFireAt(decoded, scheduleId) {
|
|
188
|
+
const nextFireAt = decoded.nextFireAt;
|
|
189
|
+
if (nextFireAt === void 0) {
|
|
190
|
+
rejectInvalidScheduleRecord(scheduleId, "with invalid nextFireAt");
|
|
191
|
+
return { ok: !1 };
|
|
192
|
+
}
|
|
193
|
+
if (nextFireAt !== null && !isValidScheduleTimestamp(nextFireAt)) {
|
|
194
|
+
rejectInvalidScheduleRecord(scheduleId, "with invalid nextFireAt");
|
|
195
|
+
return { ok: !1 };
|
|
196
|
+
}
|
|
197
|
+
return { ok: !0, value: nextFireAt };
|
|
198
|
+
}
|
|
199
|
+
function decodeScheduleCurrentWorkflowId(decoded, scheduleId) {
|
|
200
|
+
const currentWorkflowId = decoded.currentWorkflowId;
|
|
201
|
+
if (currentWorkflowId === void 0)
|
|
202
|
+
return { ok: !0 };
|
|
203
|
+
if (!isValidScheduleIdentifier(currentWorkflowId)) {
|
|
204
|
+
rejectInvalidScheduleRecord(scheduleId, "with invalid currentWorkflowId");
|
|
205
|
+
return { ok: !1 };
|
|
206
|
+
}
|
|
207
|
+
return { ok: !0, value: currentWorkflowId };
|
|
208
|
+
}
|
|
209
|
+
function decodeScheduleQueuedRuns(decoded, scheduleId) {
|
|
210
|
+
const queuedRuns = decoded.queuedRuns;
|
|
211
|
+
if (typeof queuedRuns !== "number" || !Number.isSafeInteger(queuedRuns) || queuedRuns < 0) {
|
|
212
|
+
rejectInvalidScheduleRecord(scheduleId, "with invalid queuedRuns");
|
|
213
|
+
return null;
|
|
214
|
+
}
|
|
215
|
+
return queuedRuns;
|
|
216
|
+
}
|
|
217
|
+
export function decodeScheduleRuntimeFields(decoded, scheduleId) {
|
|
218
|
+
const backfill = decodeScheduleBackfill(decoded, scheduleId);
|
|
219
|
+
if (backfill === null)
|
|
220
|
+
return null;
|
|
221
|
+
const timestamps = decodeScheduleTimestamps(decoded, scheduleId);
|
|
222
|
+
if (timestamps === null)
|
|
223
|
+
return null;
|
|
224
|
+
const nextFireAt = decodeScheduleNextFireAt(decoded, scheduleId);
|
|
225
|
+
if (!nextFireAt.ok)
|
|
226
|
+
return null;
|
|
227
|
+
const currentWorkflow = decodeScheduleCurrentWorkflowId(decoded, scheduleId);
|
|
228
|
+
if (!currentWorkflow.ok)
|
|
229
|
+
return null;
|
|
230
|
+
const queuedRuns = decodeScheduleQueuedRuns(decoded, scheduleId);
|
|
231
|
+
if (queuedRuns === null)
|
|
232
|
+
return null;
|
|
233
|
+
return {
|
|
234
|
+
backfill,
|
|
235
|
+
...timestamps,
|
|
236
|
+
nextFireAt: nextFireAt.value,
|
|
237
|
+
...currentWorkflow.value !== void 0 && { currentWorkflowId: currentWorkflow.value },
|
|
238
|
+
queuedRuns
|
|
239
|
+
};
|
|
240
|
+
}
|
|
241
|
+
export function decodeScheduleState(bytes) {
|
|
242
|
+
const decoded = decode(bytes);
|
|
243
|
+
if (!isRecord(decoded)) {
|
|
244
|
+
console.warn("[weft] Ignoring malformed schedule record with non-object payload.");
|
|
245
|
+
return null;
|
|
246
|
+
}
|
|
247
|
+
const identity = decodeScheduleIdentityFields(decoded);
|
|
248
|
+
if (!identity)
|
|
249
|
+
return null;
|
|
250
|
+
const runtime = decodeScheduleRuntimeFields(decoded, identity.id);
|
|
251
|
+
if (!runtime)
|
|
252
|
+
return null;
|
|
253
|
+
return {
|
|
254
|
+
...identity,
|
|
255
|
+
input: decoded.input,
|
|
256
|
+
...runtime
|
|
257
|
+
};
|
|
258
|
+
}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import type { HistoryPolicy, NormalizedHistoryPolicy, NormalizedPayloadSizePolicy, NormalizedRetentionPolicy, PayloadSizePolicy, RetentionPolicy, WorkflowState, WorkflowStatus, WorkflowTimelineEntry } from '../types.ts';
|
|
2
|
+
import type { WorkflowVersionTuple } from '../workflow-version-tuple.ts';
|
|
3
|
+
export declare function isSanitizedSearchAttributeValue(value: unknown): value is import('../types.ts').SearchAttributeValue;
|
|
4
|
+
export declare function isWorkflowVersionTuple(value: unknown): value is WorkflowVersionTuple;
|
|
5
|
+
export declare function isFiniteNumber(value: unknown): value is number;
|
|
6
|
+
export declare function isTimelineStep(value: unknown): value is number;
|
|
7
|
+
export declare function isWorkflowTimelineEntry(value: unknown): value is WorkflowTimelineEntry;
|
|
8
|
+
export declare function normalizeBulkFilterNumber(value: unknown, fieldName: 'limit' | 'offset'): number | undefined;
|
|
9
|
+
export declare function isValidDecodedTags(value: unknown): value is string[] | undefined;
|
|
10
|
+
export declare function decodeWorkflowState(bytes: Uint8Array): WorkflowState;
|
|
11
|
+
export declare function normalizeRetentionDuration(value: import('../types.ts').Duration | undefined, fieldName: string): number | undefined;
|
|
12
|
+
/**
|
|
13
|
+
* Validate and normalise a {@link HistoryPolicy} into a
|
|
14
|
+
* {@link NormalizedHistoryPolicy}. Mirrors {@link normalizeRetentionPolicy}'s
|
|
15
|
+
* throw-on-bad-input contract.
|
|
16
|
+
*
|
|
17
|
+
* Both `maxEvents` and `retentionWindow` share the same validation mechanics
|
|
18
|
+
* (they differ in semantics — see {@link HistoryPolicy}):
|
|
19
|
+
* - omitted policy, or omitted/`undefined` field → `null` (disabled).
|
|
20
|
+
* - `0` → `null` (disabled; mirrors `checkpointHistory: 0` meaning "off").
|
|
21
|
+
* - any other value that is not a positive safe integer (negatives, non-integers,
|
|
22
|
+
* non-finite values, unsafe integers, wrong types) → throws.
|
|
23
|
+
*/
|
|
24
|
+
export declare function normalizeHistoryPolicy(policy: HistoryPolicy | undefined, context: string): NormalizedHistoryPolicy;
|
|
25
|
+
/**
|
|
26
|
+
* Validate and normalise a {@link PayloadSizePolicy} into a
|
|
27
|
+
* {@link NormalizedPayloadSizePolicy}. Mirrors {@link normalizeHistoryPolicy}'s
|
|
28
|
+
* throw-on-bad-input contract.
|
|
29
|
+
*
|
|
30
|
+
* Contract for `maxBytes`:
|
|
31
|
+
* - omitted policy, or omitted/`undefined`/`null` field → `{ maxBytes: null }` (disabled).
|
|
32
|
+
* - `0` → `{ maxBytes: null }` (disabled).
|
|
33
|
+
* - any other value that is not a positive safe integer (negatives, non-integers,
|
|
34
|
+
* non-finite values, unsafe integers, wrong types) → throws.
|
|
35
|
+
*/
|
|
36
|
+
export declare function normalizePayloadSizePolicy(policy: PayloadSizePolicy | undefined, context: string): NormalizedPayloadSizePolicy;
|
|
37
|
+
export declare function normalizeRetentionPolicy(policy: RetentionPolicy | undefined, context: string): NormalizedRetentionPolicy | null;
|
|
38
|
+
export declare function resolveRetentionForStatus(policy: NormalizedRetentionPolicy | null | undefined, status: WorkflowStatus): number | undefined;
|
|
39
|
+
export declare function isTerminalWorkflowStatus(status: WorkflowStatus): boolean;
|
|
40
|
+
export declare function isPlainObjectRecord(value: unknown): value is Record<string, unknown>;
|