@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,178 @@
|
|
|
1
|
+
import { decode, encode } from "../core/codec.js";
|
|
2
|
+
import { KEYS } from "../storage/interface.js";
|
|
3
|
+
import { buildResolvedRecord } from "./task-resolved-record.js";
|
|
4
|
+
export async function getTaskState(storage, operationId) {
|
|
5
|
+
const [inflight, queued, resolved] = await Promise.all([
|
|
6
|
+
storage.get(KEYS.operationInflight(operationId)),
|
|
7
|
+
storage.get(KEYS.operationQueued(operationId)),
|
|
8
|
+
storage.get(KEYS.operationResolved(operationId))
|
|
9
|
+
]);
|
|
10
|
+
if (inflight !== null)
|
|
11
|
+
return "inflight";
|
|
12
|
+
if (queued !== null)
|
|
13
|
+
return "queued";
|
|
14
|
+
if (resolved !== null)
|
|
15
|
+
return "resolved";
|
|
16
|
+
return null;
|
|
17
|
+
}
|
|
18
|
+
export async function getExclusiveTaskState(storage, operationId) {
|
|
19
|
+
const [inflight, queued, resolved] = await Promise.all([
|
|
20
|
+
storage.get(KEYS.operationInflight(operationId)),
|
|
21
|
+
storage.get(KEYS.operationQueued(operationId)),
|
|
22
|
+
storage.get(KEYS.operationResolved(operationId))
|
|
23
|
+
]), states = [];
|
|
24
|
+
if (inflight !== null)
|
|
25
|
+
states.push("inflight");
|
|
26
|
+
if (queued !== null)
|
|
27
|
+
states.push("queued");
|
|
28
|
+
if (resolved !== null)
|
|
29
|
+
states.push("resolved");
|
|
30
|
+
if (states.length > 1)
|
|
31
|
+
throw Error(`Task "${operationId}" occupies multiple states simultaneously: ${states.join(", ")}`);
|
|
32
|
+
return states[0] ?? null;
|
|
33
|
+
}
|
|
34
|
+
export function isQueuedRecord(value) {
|
|
35
|
+
if (value === null || typeof value !== "object")
|
|
36
|
+
return !1;
|
|
37
|
+
const record = value;
|
|
38
|
+
return typeof record.operationId === "string" && typeof record.activityName === "string" && typeof record.queue === "string" && typeof record.attempt === "number" && typeof record.visibilityTimeout === "number" && typeof record.queuedAt === "number";
|
|
39
|
+
}
|
|
40
|
+
export function isInflightRecord(value) {
|
|
41
|
+
if (value === null || typeof value !== "object")
|
|
42
|
+
return !1;
|
|
43
|
+
const record = value;
|
|
44
|
+
return typeof record.operationId === "string" && typeof record.activityName === "string" && typeof record.queue === "string" && typeof record.attempt === "number" && typeof record.visibilityTimeout === "number" && typeof record.workerId === "string" && typeof record.deadline === "number";
|
|
45
|
+
}
|
|
46
|
+
export function isResolvedRecord(value) {
|
|
47
|
+
if (value === null || typeof value !== "object")
|
|
48
|
+
return !1;
|
|
49
|
+
const record = value;
|
|
50
|
+
return typeof record.operationId === "string" && (record.status === "completed" || record.status === "failed") && typeof record.resolvedAt === "number";
|
|
51
|
+
}
|
|
52
|
+
export async function readQueuedRecord(storage, operationId) {
|
|
53
|
+
const value = await storage.get(KEYS.operationQueued(operationId));
|
|
54
|
+
if (value === null)
|
|
55
|
+
return null;
|
|
56
|
+
const decoded = decode(value);
|
|
57
|
+
return isQueuedRecord(decoded) ? decoded : null;
|
|
58
|
+
}
|
|
59
|
+
export async function readInflightRecord(storage, operationId) {
|
|
60
|
+
const value = await storage.get(KEYS.operationInflight(operationId));
|
|
61
|
+
if (value === null)
|
|
62
|
+
return null;
|
|
63
|
+
const decoded = decode(value);
|
|
64
|
+
return isInflightRecord(decoded) ? decoded : null;
|
|
65
|
+
}
|
|
66
|
+
function normalizeQueuedRecordLifecycle(record, previous) {
|
|
67
|
+
const normalized = {
|
|
68
|
+
...record,
|
|
69
|
+
firstQueuedAt: resolveQueuedFirstQueuedAt(record, previous),
|
|
70
|
+
lastQueuedAt: record.lastQueuedAt ?? record.queuedAt,
|
|
71
|
+
retryCount: resolveRetryCount(record, previous),
|
|
72
|
+
requeueCount: record.requeueCount ?? previous?.requeueCount ?? 0
|
|
73
|
+
};
|
|
74
|
+
applyPreviousLifecycleFields(normalized, previous);
|
|
75
|
+
return normalized;
|
|
76
|
+
}
|
|
77
|
+
function normalizeInflightRecordLifecycle(record, previous, now = Date.now()) {
|
|
78
|
+
const lastDispatchedAt = record.lastDispatchedAt ?? now, firstQueuedAt = resolveInflightFirstQueuedAt(record, previous, lastDispatchedAt), normalized = {
|
|
79
|
+
...record,
|
|
80
|
+
firstQueuedAt,
|
|
81
|
+
lastQueuedAt: resolveInflightLastQueuedAt(record, previous, firstQueuedAt),
|
|
82
|
+
lastDispatchedAt,
|
|
83
|
+
startedAt: record.startedAt ?? lastDispatchedAt,
|
|
84
|
+
retryCount: resolveRetryCount(record, previous),
|
|
85
|
+
requeueCount: record.requeueCount ?? previous?.requeueCount ?? 0
|
|
86
|
+
};
|
|
87
|
+
applyPreviousLifecycleFields(normalized, previous);
|
|
88
|
+
return normalized;
|
|
89
|
+
}
|
|
90
|
+
function resolveQueuedFirstQueuedAt(record, previous) {
|
|
91
|
+
return record.firstQueuedAt ?? previous?.firstQueuedAt ?? previous?.lastQueuedAt ?? record.queuedAt;
|
|
92
|
+
}
|
|
93
|
+
function resolveInflightFirstQueuedAt(record, previous, lastDispatchedAt) {
|
|
94
|
+
return record.firstQueuedAt ?? previous?.firstQueuedAt ?? previous?.lastQueuedAt ?? previous?.queuedAt ?? lastDispatchedAt;
|
|
95
|
+
}
|
|
96
|
+
function resolveInflightLastQueuedAt(record, previous, firstQueuedAt) {
|
|
97
|
+
return record.lastQueuedAt ?? previous?.lastQueuedAt ?? previous?.queuedAt ?? firstQueuedAt;
|
|
98
|
+
}
|
|
99
|
+
function resolveRetryCount(record, previous) {
|
|
100
|
+
return record.retryCount ?? previous?.retryCount ?? Math.max(0, record.attempt - 1);
|
|
101
|
+
}
|
|
102
|
+
function applyPreviousLifecycleFields(record, previous) {
|
|
103
|
+
if (previous === void 0 || previous === null)
|
|
104
|
+
return;
|
|
105
|
+
record.lastDispatchedAt ??= previous.lastDispatchedAt;
|
|
106
|
+
record.startedAt ??= previous.startedAt;
|
|
107
|
+
record.lastRequeueReason ??= previous.lastRequeueReason;
|
|
108
|
+
}
|
|
109
|
+
export function calculateQueueLatencyMs(record) {
|
|
110
|
+
if (record.lastQueuedAt === void 0 || record.lastDispatchedAt === void 0)
|
|
111
|
+
return;
|
|
112
|
+
return Math.max(0, record.lastDispatchedAt - record.lastQueuedAt);
|
|
113
|
+
}
|
|
114
|
+
export function calculateExecutionLatencyMs(record, completedAt) {
|
|
115
|
+
const startedAt = record.startedAt ?? record.lastDispatchedAt;
|
|
116
|
+
if (startedAt === void 0)
|
|
117
|
+
return;
|
|
118
|
+
return Math.max(0, completedAt - startedAt);
|
|
119
|
+
}
|
|
120
|
+
export function calculateHeartbeatAgeMs(record, currentTime) {
|
|
121
|
+
const heartbeatReference = record.lastHeartbeatAt ?? record.startedAt ?? record.lastDispatchedAt ?? record.deadline;
|
|
122
|
+
if (heartbeatReference === void 0)
|
|
123
|
+
return;
|
|
124
|
+
return Math.max(0, currentTime - heartbeatReference);
|
|
125
|
+
}
|
|
126
|
+
export function isHeartbeatStale(record, currentTime, staleAfterMs) {
|
|
127
|
+
const heartbeatAgeMs = calculateHeartbeatAgeMs(record, currentTime);
|
|
128
|
+
return heartbeatAgeMs !== void 0 && heartbeatAgeMs >= staleAfterMs;
|
|
129
|
+
}
|
|
130
|
+
export async function markQueued(storage, record) {
|
|
131
|
+
const normalizedRecord = normalizeQueuedRecordLifecycle(record);
|
|
132
|
+
await storage.put(KEYS.operationQueued(record.operationId), encode(normalizedRecord));
|
|
133
|
+
return normalizedRecord;
|
|
134
|
+
}
|
|
135
|
+
export async function transitionQueuedToInflight(storage, operationId, inflightRecord, options = {}) {
|
|
136
|
+
const queuedRecord = options.queuedRecord === void 0 ? await readQueuedRecord(storage, operationId) : options.queuedRecord, normalizedInflightRecord = normalizeInflightRecordLifecycle(inflightRecord, queuedRecord, options.now);
|
|
137
|
+
await storage.batch([
|
|
138
|
+
{ type: "delete", key: KEYS.operationQueued(operationId) },
|
|
139
|
+
{
|
|
140
|
+
type: "put",
|
|
141
|
+
key: KEYS.operationInflight(operationId),
|
|
142
|
+
value: encode(normalizedInflightRecord)
|
|
143
|
+
}
|
|
144
|
+
]);
|
|
145
|
+
return normalizedInflightRecord;
|
|
146
|
+
}
|
|
147
|
+
export async function markInflight(storage, record) {
|
|
148
|
+
await storage.put(KEYS.operationInflight(record.operationId), encode(normalizeInflightRecordLifecycle(record)));
|
|
149
|
+
}
|
|
150
|
+
export async function transitionInflightToResolved(storage, operationId, status, options = {}) {
|
|
151
|
+
const existingRecord = options.record ?? await readInflightRecord(storage, operationId), resolvedAt = options.resolvedAt ?? Date.now(), normalizedRecord = existingRecord === null ? null : normalizeInflightRecordLifecycle(existingRecord, null, resolvedAt), resolutionReason = options.resolutionReason ?? (status === "completed" ? "completed" : "failed"), resolvedRecord = buildResolvedRecord({
|
|
152
|
+
operationId,
|
|
153
|
+
status,
|
|
154
|
+
resolvedAt,
|
|
155
|
+
normalizedRecord,
|
|
156
|
+
resolutionReason,
|
|
157
|
+
value: options.value,
|
|
158
|
+
error: options.error,
|
|
159
|
+
queueLatencyMs: normalizedRecord === null ? void 0 : calculateQueueLatencyMs(normalizedRecord),
|
|
160
|
+
executionLatencyMs: normalizedRecord === null ? void 0 : calculateExecutionLatencyMs(normalizedRecord, resolvedAt)
|
|
161
|
+
}), encodedResolvedRecord = encode(resolvedRecord);
|
|
162
|
+
await storage.batch([
|
|
163
|
+
{ type: "delete", key: KEYS.operationInflight(operationId) },
|
|
164
|
+
{ type: "put", key: KEYS.operationResolved(operationId), value: encodedResolvedRecord },
|
|
165
|
+
{
|
|
166
|
+
type: "put",
|
|
167
|
+
key: KEYS.operationResolvedByTime(resolvedAt, operationId),
|
|
168
|
+
value: encodedResolvedRecord
|
|
169
|
+
}
|
|
170
|
+
]);
|
|
171
|
+
}
|
|
172
|
+
export async function transitionInflightToQueued(storage, operationId, queuedRecord) {
|
|
173
|
+
const inflightRecord = await readInflightRecord(storage, operationId), normalizedQueuedRecord = normalizeQueuedRecordLifecycle(queuedRecord, inflightRecord);
|
|
174
|
+
await storage.batch([
|
|
175
|
+
{ type: "delete", key: KEYS.operationInflight(operationId) },
|
|
176
|
+
{ type: "put", key: KEYS.operationQueued(operationId), value: encode(normalizedQueuedRecord) }
|
|
177
|
+
]);
|
|
178
|
+
}
|
|
@@ -0,0 +1,166 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `WorkflowEventFeed` — transport-neutral event replay + live-tail
|
|
3
|
+
* contract shared by REST SSE, WebSocket watch/stream, and JSON-RPC
|
|
4
|
+
* subscribe. Track 8 design decision 5 and 6.
|
|
5
|
+
*
|
|
6
|
+
* **Atomic handoff ordering** (the only sequence that avoids both
|
|
7
|
+
* duplicates and gaps when a subscriber joins mid-stream):
|
|
8
|
+
*
|
|
9
|
+
* 1. Register a live listener into a bounded in-memory buffer.
|
|
10
|
+
* From this moment, every newly-emitted event is captured.
|
|
11
|
+
* 2. Snapshot the current live-tail sequence `S` (read once).
|
|
12
|
+
* 3. Stream storage replay from `fromCursor` up to and including `S`.
|
|
13
|
+
* 4. Drain the buffer, dropping any envelope with `sequence <= S`
|
|
14
|
+
* (already replayed) and emitting the rest.
|
|
15
|
+
* 5. Continue emitting live envelopes directly as the listener fires.
|
|
16
|
+
*
|
|
17
|
+
* Buffer bound is configurable (default 1000 envelopes per subscription).
|
|
18
|
+
* Overflow closes the subscription with a `SubscriptionOverflow` signal
|
|
19
|
+
* (the iterable terminates; the caller reopens with its last delivered
|
|
20
|
+
* cursor). Unbounded-memory-growth is not an option here.
|
|
21
|
+
*
|
|
22
|
+
* **Cursor is opaque.** `encodeCursor(sequence)` and
|
|
23
|
+
* `decodeCursor(cursor)` are the only code that knows the representation
|
|
24
|
+
* — REST `Last-Event-ID`, WS `?resumeFrom=`, and JSON-RPC `fromCursor`
|
|
25
|
+
* all round-trip through this module.
|
|
26
|
+
*/
|
|
27
|
+
import type { WeftEventMap } from '../core/events.ts';
|
|
28
|
+
/**
|
|
29
|
+
* Discriminator string carried on every envelope. The union covers:
|
|
30
|
+
*
|
|
31
|
+
* - Dispatched `WeftEventMap` event names (`workflow:started`,
|
|
32
|
+
* `activity:completed`, `stream:token`, …) — emitted when a
|
|
33
|
+
* future log entry type corresponds to a runtime `Event`.
|
|
34
|
+
* - Durable log entry types not in `WeftEventMap`
|
|
35
|
+
* (`workflow:checkpoint` — the only one today; add others here
|
|
36
|
+
* as new log kinds land).
|
|
37
|
+
* - Selector-scoped synthetic kinds (`stream:chunk`) for records
|
|
38
|
+
* that are not dispatched `Event` objects at all.
|
|
39
|
+
* - An open `(string & {})` tail so third-party event kinds don't
|
|
40
|
+
* fail typechecking at the envelope construction site while
|
|
41
|
+
* IntelliSense still suggests the known literals.
|
|
42
|
+
*
|
|
43
|
+
* Cross-transport consumers match on `selector` first, then on
|
|
44
|
+
* `kind` within that selector. This union is extensible and preserves
|
|
45
|
+
* completion for known kinds, but the open-string tail means it does
|
|
46
|
+
* not by itself reject arbitrary or misspelled string literals.
|
|
47
|
+
*/
|
|
48
|
+
export type FeedEventKind = keyof WeftEventMap | 'workflow:checkpoint' | 'stream:chunk' | (string & {});
|
|
49
|
+
/** Opaque cursor. Only `encodeCursor` / `decodeCursor` know the format. */
|
|
50
|
+
export type Cursor = string;
|
|
51
|
+
/**
|
|
52
|
+
* Encode a non-negative integer sequence as an opaque cursor. The
|
|
53
|
+
* current encoding is the decimal string form of the sequence, matching
|
|
54
|
+
* the existing `sequence-cursor.ts` public representation so REST
|
|
55
|
+
* `Last-Event-ID` / `?after=` clients continue to work unchanged. The
|
|
56
|
+
* encoding is intentionally not part of the public API — a future
|
|
57
|
+
* migration to base64 / hex / compact binary can happen without
|
|
58
|
+
* breaking anything that goes through this module.
|
|
59
|
+
*/
|
|
60
|
+
export declare function encodeCursor(sequence: number): Cursor;
|
|
61
|
+
/**
|
|
62
|
+
* Decode an opaque cursor back to its sequence. `-1` is the initial
|
|
63
|
+
* sentinel for "before the first event"; malformed input returns null.
|
|
64
|
+
*/
|
|
65
|
+
export declare function decodeCursor(cursor: Cursor): number | null;
|
|
66
|
+
export type EventSelector = 'events' | 'tokens';
|
|
67
|
+
/**
|
|
68
|
+
* Unified event envelope delivered by the feed. Transports serialize
|
|
69
|
+
* this directly (REST SSE `data:` line, WS JSON frame, JSON-RPC
|
|
70
|
+
* `weft.events.deliver` params). `kind` narrows `payload` shape in
|
|
71
|
+
* caller code via discriminated-union typing.
|
|
72
|
+
*/
|
|
73
|
+
export type EventEnvelope = {
|
|
74
|
+
readonly kind: FeedEventKind;
|
|
75
|
+
readonly workflowId: string;
|
|
76
|
+
readonly selector: EventSelector;
|
|
77
|
+
readonly sequence: number;
|
|
78
|
+
readonly cursor: Cursor;
|
|
79
|
+
readonly emittedAtMs: number;
|
|
80
|
+
readonly payload: unknown;
|
|
81
|
+
};
|
|
82
|
+
/**
|
|
83
|
+
* Pluggable storage + live-event source. The in-memory implementation
|
|
84
|
+
* is used by unit tests; the production implementation wraps
|
|
85
|
+
* `engine.storage` event scans + `EngineEventTarget` subscription.
|
|
86
|
+
*/
|
|
87
|
+
export type WorkflowEventFeedBackend = {
|
|
88
|
+
/**
|
|
89
|
+
* Yield persisted envelopes with `sequence > afterSequence` in
|
|
90
|
+
* sequence order. `afterSequence: -1` means "from the beginning."
|
|
91
|
+
*/
|
|
92
|
+
replay(options: {
|
|
93
|
+
workflowId: string;
|
|
94
|
+
selector: EventSelector;
|
|
95
|
+
afterSequence: number;
|
|
96
|
+
}): AsyncIterable<EventEnvelope>;
|
|
97
|
+
/**
|
|
98
|
+
* Snapshot the current tail sequence for a workflow. Used in the
|
|
99
|
+
* atomic-handoff sequence to bound the replay scan. Returns -1 if
|
|
100
|
+
* no events have been emitted yet.
|
|
101
|
+
*/
|
|
102
|
+
snapshotTailSequence(workflowId: string, selector: EventSelector): Promise<number>;
|
|
103
|
+
/**
|
|
104
|
+
* Register a live listener. Returns an unsubscribe function.
|
|
105
|
+
*
|
|
106
|
+
* Contract:
|
|
107
|
+
* - Envelopes MUST be delivered in monotonically increasing
|
|
108
|
+
* sequence order. The feed's live-buffer drain relies on this
|
|
109
|
+
* for its dedupe logic — an out-of-order emission would cause
|
|
110
|
+
* the feed to advance `lastDelivered` past a later-arriving
|
|
111
|
+
* lower-sequence event and silently drop it.
|
|
112
|
+
* - The listener SHOULD be invoked synchronously from the
|
|
113
|
+
* event-emitter context. Backends that defer to a microtask
|
|
114
|
+
* (or later) still work correctly because the feed's listener
|
|
115
|
+
* buffers envelopes off the fast path, but synchronous delivery
|
|
116
|
+
* minimizes handoff latency.
|
|
117
|
+
* - Listener exceptions MUST NOT propagate to the backend's
|
|
118
|
+
* event-emitter; the in-memory implementation wraps each
|
|
119
|
+
* invocation in try/catch. Production backends should match.
|
|
120
|
+
*/
|
|
121
|
+
subscribeLive(workflowId: string, selector: EventSelector, listener: (envelope: EventEnvelope) => void): () => void;
|
|
122
|
+
};
|
|
123
|
+
export type WorkflowEventFeed = {
|
|
124
|
+
/**
|
|
125
|
+
* Replay stored events only. No live subscription. Yields every
|
|
126
|
+
* envelope with `sequence > decodeCursor(fromCursor)` up to an
|
|
127
|
+
* optional `limit`, in sequence order, then completes.
|
|
128
|
+
*/
|
|
129
|
+
replay(options: {
|
|
130
|
+
workflowId: string;
|
|
131
|
+
selector: EventSelector;
|
|
132
|
+
fromCursor?: Cursor;
|
|
133
|
+
limit?: number;
|
|
134
|
+
}): AsyncIterable<EventEnvelope>;
|
|
135
|
+
/**
|
|
136
|
+
* Replay + live-tail. Implements the atomic-handoff sequence so a
|
|
137
|
+
* subscriber joining mid-stream sees every event exactly once.
|
|
138
|
+
* Caller controls termination via `signal.abort()` or by exiting
|
|
139
|
+
* the `for await` loop (the feed cleans up the live listener).
|
|
140
|
+
*/
|
|
141
|
+
subscribe(options: {
|
|
142
|
+
workflowId: string;
|
|
143
|
+
selector: EventSelector;
|
|
144
|
+
fromCursor?: Cursor;
|
|
145
|
+
signal?: AbortSignal;
|
|
146
|
+
}): AsyncIterable<EventEnvelope>;
|
|
147
|
+
/** Tear down any feed-level resources (no-op for the in-memory path). */
|
|
148
|
+
dispose(): void;
|
|
149
|
+
};
|
|
150
|
+
export type WorkflowEventFeedOptions = {
|
|
151
|
+
/** Max envelopes the live buffer holds before overflow terminates the subscription. */
|
|
152
|
+
liveBufferSize?: number;
|
|
153
|
+
};
|
|
154
|
+
export declare function createWorkflowEventFeed(backend: WorkflowEventFeedBackend, options?: WorkflowEventFeedOptions): WorkflowEventFeed;
|
|
155
|
+
export type InMemoryEventBackend = WorkflowEventFeedBackend & {
|
|
156
|
+
/** Append an envelope to storage (used by tests). */
|
|
157
|
+
append(envelope: EventEnvelope): Promise<void>;
|
|
158
|
+
/**
|
|
159
|
+
* Emit a live event to any active listener WITHOUT persisting it
|
|
160
|
+
* to storage. Used by tests to simulate the race between storage
|
|
161
|
+
* writes and live dispatch. Production backends emit and persist in
|
|
162
|
+
* one step.
|
|
163
|
+
*/
|
|
164
|
+
emitLive(envelope: EventEnvelope): Promise<void>;
|
|
165
|
+
};
|
|
166
|
+
export declare function createInMemoryEventBackend(): InMemoryEventBackend;
|
|
@@ -0,0 +1,193 @@
|
|
|
1
|
+
const CURSOR_PATTERN = /^(?:-1|\d+)$/;
|
|
2
|
+
export function encodeCursor(sequence) {
|
|
3
|
+
if (!Number.isInteger(sequence) || sequence < 0)
|
|
4
|
+
throw Error(`encodeCursor: sequence must be a non-negative integer, got ${sequence}`);
|
|
5
|
+
return String(sequence);
|
|
6
|
+
}
|
|
7
|
+
export function decodeCursor(cursor) {
|
|
8
|
+
if (!CURSOR_PATTERN.test(cursor))
|
|
9
|
+
return null;
|
|
10
|
+
const value = Number(cursor);
|
|
11
|
+
if (!Number.isSafeInteger(value) || value < -1)
|
|
12
|
+
return null;
|
|
13
|
+
return value;
|
|
14
|
+
}
|
|
15
|
+
const DEFAULT_LIVE_BUFFER_SIZE = 1000;
|
|
16
|
+
export function createWorkflowEventFeed(backend, options) {
|
|
17
|
+
const bufferSize = options?.liveBufferSize ?? DEFAULT_LIVE_BUFFER_SIZE;
|
|
18
|
+
async function* replay(args) {
|
|
19
|
+
const afterSequence = args.fromCursor !== void 0 ? decodeCursor(args.fromCursor) ?? -1 : -1;
|
|
20
|
+
let yielded = 0;
|
|
21
|
+
for await (const envelope of backend.replay({
|
|
22
|
+
workflowId: args.workflowId,
|
|
23
|
+
selector: args.selector,
|
|
24
|
+
afterSequence
|
|
25
|
+
})) {
|
|
26
|
+
if (args.limit !== void 0 && yielded >= args.limit)
|
|
27
|
+
return;
|
|
28
|
+
yield envelope;
|
|
29
|
+
yielded += 1;
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
function subscribe(args) {
|
|
33
|
+
const buffer = [];
|
|
34
|
+
let bufferOverflowed = !1, waker = null;
|
|
35
|
+
const unsubscribe = backend.subscribeLive(args.workflowId, args.selector, (envelope) => {
|
|
36
|
+
if (buffer.length >= bufferSize)
|
|
37
|
+
bufferOverflowed = !0;
|
|
38
|
+
else
|
|
39
|
+
buffer.push(envelope);
|
|
40
|
+
if (waker) {
|
|
41
|
+
const fire = waker;
|
|
42
|
+
waker = null;
|
|
43
|
+
fire();
|
|
44
|
+
}
|
|
45
|
+
}), onAbort = () => {
|
|
46
|
+
if (waker) {
|
|
47
|
+
const fire = waker;
|
|
48
|
+
waker = null;
|
|
49
|
+
fire();
|
|
50
|
+
}
|
|
51
|
+
};
|
|
52
|
+
args.signal?.addEventListener("abort", onAbort);
|
|
53
|
+
async function* generator() {
|
|
54
|
+
try {
|
|
55
|
+
if (args.signal?.aborted)
|
|
56
|
+
return;
|
|
57
|
+
const snapshot = await backend.snapshotTailSequence(args.workflowId, args.selector), requestedAfter = args.fromCursor !== void 0 ? decodeCursor(args.fromCursor) ?? -1 : -1;
|
|
58
|
+
if (snapshot > requestedAfter) {
|
|
59
|
+
yield* replayUpTo(backend, args, requestedAfter, snapshot);
|
|
60
|
+
if (args.signal?.aborted)
|
|
61
|
+
return;
|
|
62
|
+
}
|
|
63
|
+
yield* drainLive(buffer, snapshot, args.signal, () => bufferOverflowed, (w) => {
|
|
64
|
+
waker = w;
|
|
65
|
+
});
|
|
66
|
+
} finally {
|
|
67
|
+
args.signal?.removeEventListener("abort", onAbort);
|
|
68
|
+
unsubscribe();
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
return generator();
|
|
72
|
+
}
|
|
73
|
+
return {
|
|
74
|
+
replay,
|
|
75
|
+
subscribe,
|
|
76
|
+
dispose() {}
|
|
77
|
+
};
|
|
78
|
+
}
|
|
79
|
+
async function* replayUpTo(backend, args, afterSequence, snapshot) {
|
|
80
|
+
for await (const envelope of backend.replay({
|
|
81
|
+
workflowId: args.workflowId,
|
|
82
|
+
selector: args.selector,
|
|
83
|
+
afterSequence
|
|
84
|
+
})) {
|
|
85
|
+
if (envelope.sequence > snapshot)
|
|
86
|
+
break;
|
|
87
|
+
if (args.signal?.aborted)
|
|
88
|
+
return;
|
|
89
|
+
yield envelope;
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
function flushPendingBuffer(buffer, watermark) {
|
|
93
|
+
const batch = [];
|
|
94
|
+
let newWatermark = watermark, head = buffer.shift();
|
|
95
|
+
while (head !== void 0) {
|
|
96
|
+
if (head.sequence > newWatermark) {
|
|
97
|
+
batch.push(head);
|
|
98
|
+
newWatermark = head.sequence;
|
|
99
|
+
}
|
|
100
|
+
head = buffer.shift();
|
|
101
|
+
}
|
|
102
|
+
return { batch, newWatermark };
|
|
103
|
+
}
|
|
104
|
+
async function armAndWait(buffer, overflowed, signal, installWaker) {
|
|
105
|
+
const armed = new Promise((resolve) => {
|
|
106
|
+
installWaker(resolve);
|
|
107
|
+
});
|
|
108
|
+
if (buffer.length > 0 || overflowed() || signal?.aborted) {
|
|
109
|
+
installWaker(null);
|
|
110
|
+
return;
|
|
111
|
+
}
|
|
112
|
+
await armed;
|
|
113
|
+
}
|
|
114
|
+
async function* drainLive(buffer, snapshot, signal, overflowed, installWaker) {
|
|
115
|
+
let watermark = snapshot;
|
|
116
|
+
while (!0) {
|
|
117
|
+
if (signal?.aborted || overflowed())
|
|
118
|
+
return;
|
|
119
|
+
const { batch, newWatermark } = flushPendingBuffer(buffer, watermark);
|
|
120
|
+
watermark = newWatermark;
|
|
121
|
+
for (const envelope of batch) {
|
|
122
|
+
if (signal?.aborted || overflowed())
|
|
123
|
+
return;
|
|
124
|
+
yield envelope;
|
|
125
|
+
}
|
|
126
|
+
if (batch.length > 0)
|
|
127
|
+
continue;
|
|
128
|
+
await armAndWait(buffer, overflowed, signal, installWaker);
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
function bucketKey(workflowId, selector) {
|
|
132
|
+
return `${workflowId}:${selector}`;
|
|
133
|
+
}
|
|
134
|
+
export function createInMemoryEventBackend() {
|
|
135
|
+
const storage = new Map, listeners = new Map;
|
|
136
|
+
function fireLive(envelope) {
|
|
137
|
+
const set = listeners.get(bucketKey(envelope.workflowId, envelope.selector));
|
|
138
|
+
if (!set)
|
|
139
|
+
return;
|
|
140
|
+
for (const listener of set)
|
|
141
|
+
try {
|
|
142
|
+
listener(envelope);
|
|
143
|
+
} catch {}
|
|
144
|
+
}
|
|
145
|
+
return {
|
|
146
|
+
async* replay(options) {
|
|
147
|
+
const bucket = storage.get(bucketKey(options.workflowId, options.selector));
|
|
148
|
+
if (!bucket)
|
|
149
|
+
return;
|
|
150
|
+
const sorted = [...bucket].toSorted((a, b) => a.sequence - b.sequence);
|
|
151
|
+
for (const envelope of sorted)
|
|
152
|
+
if (envelope.sequence > options.afterSequence)
|
|
153
|
+
yield envelope;
|
|
154
|
+
},
|
|
155
|
+
async snapshotTailSequence(workflowId, selector) {
|
|
156
|
+
const bucket = storage.get(bucketKey(workflowId, selector));
|
|
157
|
+
if (!bucket || bucket.length === 0)
|
|
158
|
+
return -1;
|
|
159
|
+
let max = -1;
|
|
160
|
+
for (const envelope of bucket)
|
|
161
|
+
if (envelope.sequence > max)
|
|
162
|
+
max = envelope.sequence;
|
|
163
|
+
return max;
|
|
164
|
+
},
|
|
165
|
+
subscribeLive(workflowId, selector, listener) {
|
|
166
|
+
const k = bucketKey(workflowId, selector);
|
|
167
|
+
let set = listeners.get(k);
|
|
168
|
+
if (!set) {
|
|
169
|
+
set = new Set;
|
|
170
|
+
listeners.set(k, set);
|
|
171
|
+
}
|
|
172
|
+
set.add(listener);
|
|
173
|
+
return () => {
|
|
174
|
+
set?.delete(listener);
|
|
175
|
+
if (set && set.size === 0)
|
|
176
|
+
listeners.delete(k);
|
|
177
|
+
};
|
|
178
|
+
},
|
|
179
|
+
async append(envelope) {
|
|
180
|
+
const k = bucketKey(envelope.workflowId, envelope.selector);
|
|
181
|
+
let bucket = storage.get(k);
|
|
182
|
+
if (!bucket) {
|
|
183
|
+
bucket = [];
|
|
184
|
+
storage.set(k, bucket);
|
|
185
|
+
}
|
|
186
|
+
bucket.push(envelope);
|
|
187
|
+
fireLive(envelope);
|
|
188
|
+
},
|
|
189
|
+
async emitLive(envelope) {
|
|
190
|
+
fireLive(envelope);
|
|
191
|
+
}
|
|
192
|
+
};
|
|
193
|
+
}
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Service Worker bootstrap functions for Weft.
|
|
3
|
+
*
|
|
4
|
+
* Composable functions that users wire up in their own Service Worker file.
|
|
5
|
+
* Does NOT auto-register event listeners.
|
|
6
|
+
*
|
|
7
|
+
* @module service-worker
|
|
8
|
+
*/
|
|
9
|
+
import type { Engine } from '../core/engine';
|
|
10
|
+
import type { ServiceWorkerScheduler } from './scheduler';
|
|
11
|
+
import type { MinimalExtendableEvent, MinimalFetchEvent, MinimalPeriodicSyncEvent } from './shared.ts';
|
|
12
|
+
export { buildDelegatedRequest, DEFAULT_PERIODIC_SYNC_TAG, normalizePathPrefix } from './shared.ts';
|
|
13
|
+
export type { MinimalExtendableEvent, MinimalFetchEvent, MinimalPeriodicSyncEvent, } from './shared.ts';
|
|
14
|
+
/**
|
|
15
|
+
* Options for the Service Worker bootstrap functions
|
|
16
|
+
* (`createFetchHandler`, `createPeriodicSyncHandler`, `createLifecycleHandlers`).
|
|
17
|
+
*
|
|
18
|
+
* Supply the {@link Engine} instance that the service worker should delegate
|
|
19
|
+
* workflow requests to. Use `pathPrefix` to scope which fetch requests the
|
|
20
|
+
* handler intercepts (default: `'/weft/'`).
|
|
21
|
+
*
|
|
22
|
+
* @example
|
|
23
|
+
* ```ts
|
|
24
|
+
* import { createFetchHandler, type ServiceWorkerOptions } from '@lostgradient/weft/service-worker';
|
|
25
|
+
* import { Engine, MemoryStorage } from '@lostgradient/weft';
|
|
26
|
+
*
|
|
27
|
+
* const storage = new MemoryStorage();
|
|
28
|
+
* const engine = new Engine({ storage });
|
|
29
|
+
*
|
|
30
|
+
* const options: ServiceWorkerOptions = { engine, pathPrefix: '/weft/' };
|
|
31
|
+
* const handleFetch = createFetchHandler(options);
|
|
32
|
+
* // In a Service Worker file: self.addEventListener('fetch', handleFetch);
|
|
33
|
+
* void handleFetch;
|
|
34
|
+
* ```
|
|
35
|
+
*/
|
|
36
|
+
export interface ServiceWorkerOptions {
|
|
37
|
+
engine: Engine;
|
|
38
|
+
pathPrefix?: string;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Create a fetch event handler that intercepts requests matching the given
|
|
42
|
+
* path prefix and delegates them to the Weft HTTP handler.
|
|
43
|
+
*
|
|
44
|
+
* The default `pathPrefix` is `'/weft/'`. A trailing slash is auto-appended
|
|
45
|
+
* when missing, so `'/weft'` and `'/weft/'` behave identically. Requests
|
|
46
|
+
* whose pathname does not start with the (normalized) prefix are passed
|
|
47
|
+
* through — the handler simply returns without calling
|
|
48
|
+
* `event.respondWith`, leaving the request to the next service-worker
|
|
49
|
+
* listener or the network. Matching requests have the prefix stripped
|
|
50
|
+
* before delegation: `/weft/v1/health` becomes `/v1/health` for
|
|
51
|
+
* {@link Engine}.
|
|
52
|
+
*
|
|
53
|
+
* @example
|
|
54
|
+
* ```ts
|
|
55
|
+
* import { Engine, MemoryStorage } from '@lostgradient/weft';
|
|
56
|
+
* import { createFetchHandler } from '@lostgradient/weft/service-worker';
|
|
57
|
+
*
|
|
58
|
+
* const engine = new Engine({ storage: new MemoryStorage() });
|
|
59
|
+
* const handler = createFetchHandler({ engine, pathPrefix: '/weft/' });
|
|
60
|
+
*
|
|
61
|
+
* // In your Service Worker:
|
|
62
|
+
* // self.addEventListener('fetch', handler);
|
|
63
|
+
* console.log(typeof handler); // 'function'
|
|
64
|
+
* ```
|
|
65
|
+
*/
|
|
66
|
+
export declare function createFetchHandler(options: ServiceWorkerOptions): (event: MinimalFetchEvent) => void;
|
|
67
|
+
/**
|
|
68
|
+
* Create a periodic sync event handler that ticks the scheduler
|
|
69
|
+
* when the matching tag fires.
|
|
70
|
+
*
|
|
71
|
+
* The default `tag` is `'weft-timers'`. Events with non-matching tags are
|
|
72
|
+
* silently ignored. The returned handler invokes `scheduler.tick()` inside
|
|
73
|
+
* `event.waitUntil(...)` so the sync extends until the tick promise
|
|
74
|
+
* resolves.
|
|
75
|
+
*
|
|
76
|
+
* Note: `ServiceWorkerScheduler` is the parameter type but is not currently
|
|
77
|
+
* re-exported from `@lostgradient/weft/service-worker` — construct the scheduler in the
|
|
78
|
+
* module that imports it directly (e.g. the dashboard runtime) and pass
|
|
79
|
+
* the instance to this factory.
|
|
80
|
+
*
|
|
81
|
+
* @example
|
|
82
|
+
* ```ts
|
|
83
|
+
* import { createPeriodicSyncHandler } from '@lostgradient/weft/service-worker';
|
|
84
|
+
*
|
|
85
|
+
* // In your Service Worker (with a scheduler from the runtime that imports it):
|
|
86
|
+
* declare const scheduler: { tick(): Promise<void> };
|
|
87
|
+
* const handler = createPeriodicSyncHandler(
|
|
88
|
+
* scheduler as Parameters<typeof createPeriodicSyncHandler>[0],
|
|
89
|
+
* 'weft-timers',
|
|
90
|
+
* );
|
|
91
|
+
* // self.addEventListener('periodicsync', handler);
|
|
92
|
+
* console.log(typeof handler); // 'function'
|
|
93
|
+
* ```
|
|
94
|
+
*/
|
|
95
|
+
export declare function createPeriodicSyncHandler(scheduler: ServiceWorkerScheduler, tag?: string): (event: MinimalPeriodicSyncEvent) => void;
|
|
96
|
+
/**
|
|
97
|
+
* Create install and activate lifecycle event handlers.
|
|
98
|
+
*
|
|
99
|
+
* - `install`: Calls `skipWaiting()` so the new Service Worker activates immediately.
|
|
100
|
+
* - `activate`: Calls `clients.claim()` so open tabs use the new Service Worker.
|
|
101
|
+
*
|
|
102
|
+
* Both handlers are defensive: when `skipWaiting` or `clients.claim` are
|
|
103
|
+
* not present on `globalThis` (e.g. when the module is imported in a unit
|
|
104
|
+
* test or an environment that is not a Service Worker scope), they silently
|
|
105
|
+
* fall back to a resolved promise so the import remains safe.
|
|
106
|
+
*
|
|
107
|
+
* @example
|
|
108
|
+
* ```ts
|
|
109
|
+
* import { createLifecycleHandlers } from '@lostgradient/weft/service-worker';
|
|
110
|
+
*
|
|
111
|
+
* const { install, activate } = createLifecycleHandlers();
|
|
112
|
+
*
|
|
113
|
+
* // In your Service Worker file:
|
|
114
|
+
* // self.addEventListener('install', install);
|
|
115
|
+
* // self.addEventListener('activate', activate);
|
|
116
|
+
* console.log(typeof install, typeof activate); // 'function function'
|
|
117
|
+
* ```
|
|
118
|
+
*/
|
|
119
|
+
export declare function createLifecycleHandlers(): {
|
|
120
|
+
install: (event: MinimalExtendableEvent) => void;
|
|
121
|
+
activate: (event: MinimalExtendableEvent) => void;
|
|
122
|
+
};
|
|
123
|
+
export { setupServiceWorker, type SetupServiceWorkerOptions, type SetupServiceWorkerResult, } from './setup.ts';
|