@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,290 @@
|
|
|
1
|
+
import type { AuthorizationScope } from '../authorization-scope.ts';
|
|
2
|
+
import type { AuthenticatedPrincipal } from '../principal.ts';
|
|
3
|
+
import type { AuthAuditSink } from './audit.ts';
|
|
4
|
+
type HMACAlgorithm = 'HS256' | 'HS384' | 'HS512';
|
|
5
|
+
type RSAAlgorithm = 'RS256' | 'RS384' | 'RS512';
|
|
6
|
+
type ECDSAAlgorithm = 'ES256' | 'ES384' | 'ES512';
|
|
7
|
+
/**
|
|
8
|
+
* JWT signing algorithm supported by {@link JWTConfig}.
|
|
9
|
+
*
|
|
10
|
+
* HMAC variants (`HS256`, `HS384`, `HS512`) use a shared secret; RSA variants
|
|
11
|
+
* (`RS256`, `RS384`, `RS512`) and ECDSA variants (`ES256`, `ES384`, `ES512`) use
|
|
12
|
+
* asymmetric keys configured via `publicKey` in the {@link JWTConfig}.
|
|
13
|
+
*
|
|
14
|
+
* @example
|
|
15
|
+
* ```ts
|
|
16
|
+
* import { type JWTAlgorithm, type JWTConfig } from '@lostgradient/weft';
|
|
17
|
+
*
|
|
18
|
+
* const algorithm: JWTAlgorithm = 'RS256';
|
|
19
|
+
* const config: JWTConfig = {
|
|
20
|
+
* algorithm,
|
|
21
|
+
* publicKey: '-----BEGIN PUBLIC KEY-----\n...\n-----END PUBLIC KEY-----',
|
|
22
|
+
* issuer: 'https://auth.example.com',
|
|
23
|
+
* };
|
|
24
|
+
* void config;
|
|
25
|
+
* ```
|
|
26
|
+
*/
|
|
27
|
+
export type JWTAlgorithm = HMACAlgorithm | RSAAlgorithm | ECDSAAlgorithm;
|
|
28
|
+
/**
|
|
29
|
+
* Configuration for JWT signature verification in the Weft HTTP server.
|
|
30
|
+
*
|
|
31
|
+
* Supply either `secret` (for HMAC algorithms) or `publicKey` (for RSA/ECDSA).
|
|
32
|
+
* Optional `issuer`, `audience`, and `clockTolerance` fields guard against
|
|
33
|
+
* token reuse and clock-skew rejection.
|
|
34
|
+
*
|
|
35
|
+
* @example
|
|
36
|
+
* ```ts
|
|
37
|
+
* import { type JWTConfig } from '@lostgradient/weft';
|
|
38
|
+
*
|
|
39
|
+
* const jwtConfig: JWTConfig = {
|
|
40
|
+
* secret: process.env['JWT_SECRET'] ?? '',
|
|
41
|
+
* algorithm: 'HS256',
|
|
42
|
+
* issuer: 'https://auth.example.com',
|
|
43
|
+
* audience: 'weft-api',
|
|
44
|
+
* clockTolerance: 30,
|
|
45
|
+
* };
|
|
46
|
+
* void jwtConfig;
|
|
47
|
+
* ```
|
|
48
|
+
*/
|
|
49
|
+
export type JWTConfig = {
|
|
50
|
+
/** HMAC secret for HS256/HS384/HS512 algorithms. */
|
|
51
|
+
secret?: string;
|
|
52
|
+
/** PEM-encoded public key for RS* or ES* algorithms. */
|
|
53
|
+
publicKey?: string;
|
|
54
|
+
/** Signing algorithm (default: HS256). */
|
|
55
|
+
algorithm?: JWTAlgorithm;
|
|
56
|
+
/** Expected `iss` claim. Rejected if present and mismatched. */
|
|
57
|
+
issuer?: string;
|
|
58
|
+
/** Expected `aud` claim. Rejected if present and mismatched. */
|
|
59
|
+
audience?: string;
|
|
60
|
+
/** Seconds of clock skew tolerance for `exp` and `nbf` checks (default: 60). */
|
|
61
|
+
clockTolerance?: number;
|
|
62
|
+
};
|
|
63
|
+
/**
|
|
64
|
+
* Mutual TLS configuration passed through to `Bun.serve`'s `tls` option.
|
|
65
|
+
*
|
|
66
|
+
* When present in an {@link AuthConfig}, the server requires every client to
|
|
67
|
+
* present a valid certificate signed by the configured CA. Requests that reach
|
|
68
|
+
* the application handler are already authenticated at the transport layer.
|
|
69
|
+
*
|
|
70
|
+
* @example
|
|
71
|
+
* ```ts
|
|
72
|
+
* import { type MTLSConfig } from '@lostgradient/weft';
|
|
73
|
+
* import { readFileSync } from 'node:fs';
|
|
74
|
+
*
|
|
75
|
+
* const mtlsConfig: MTLSConfig = {
|
|
76
|
+
* ca: readFileSync('./certs/ca.pem', 'utf8'),
|
|
77
|
+
* cert: readFileSync('./certs/server.crt', 'utf8'),
|
|
78
|
+
* key: readFileSync('./certs/server.key', 'utf8'),
|
|
79
|
+
* rejectUnauthorized: true,
|
|
80
|
+
* };
|
|
81
|
+
* void mtlsConfig;
|
|
82
|
+
* ```
|
|
83
|
+
*/
|
|
84
|
+
export type MTLSConfig = {
|
|
85
|
+
/** PEM-encoded CA certificate(s) for client certificate verification. */
|
|
86
|
+
ca: string | string[];
|
|
87
|
+
/** PEM-encoded server certificate. */
|
|
88
|
+
cert: string;
|
|
89
|
+
/** PEM-encoded server private key. */
|
|
90
|
+
key: string;
|
|
91
|
+
/** Reject connections without a valid client certificate (default: true). */
|
|
92
|
+
rejectUnauthorized?: boolean;
|
|
93
|
+
};
|
|
94
|
+
/**
|
|
95
|
+
* Top-level authentication configuration for {@link serve}.
|
|
96
|
+
*
|
|
97
|
+
* At least one of `apiKeys`, `resolveApiKeyPrincipal`, `jwt`, or `mtls` must be
|
|
98
|
+
* present — the server rejects the config at startup otherwise. Paths listed in
|
|
99
|
+
* `publicPaths` bypass all authentication (default: health, metrics, and
|
|
100
|
+
* discovery document endpoints).
|
|
101
|
+
*
|
|
102
|
+
* @example
|
|
103
|
+
* ```ts
|
|
104
|
+
* import { type AuthConfig } from '@lostgradient/weft';
|
|
105
|
+
*
|
|
106
|
+
* const auth: AuthConfig = {
|
|
107
|
+
* apiKeys: [process.env['API_KEY'] ?? ''],
|
|
108
|
+
* jwt: {
|
|
109
|
+
* secret: process.env['JWT_SECRET'] ?? '',
|
|
110
|
+
* issuer: 'https://auth.example.com',
|
|
111
|
+
* },
|
|
112
|
+
* publicPaths: ['/v1/health', '/openapi.json'],
|
|
113
|
+
* };
|
|
114
|
+
* void auth;
|
|
115
|
+
* ```
|
|
116
|
+
*/
|
|
117
|
+
export type AuthConfig = {
|
|
118
|
+
/** Allowed API keys. Checked against `Authorization: Bearer <key>` and `X-API-Key` headers. */
|
|
119
|
+
apiKeys?: string[];
|
|
120
|
+
/** JWT verification configuration. */
|
|
121
|
+
jwt?: JWTConfig;
|
|
122
|
+
/** Mutual TLS configuration. Passed through to Bun.serve's `tls` option. */
|
|
123
|
+
mtls?: MTLSConfig;
|
|
124
|
+
/**
|
|
125
|
+
* Paths that bypass authentication. Defaults to
|
|
126
|
+
* `['/v1/health', '/v1/metrics', '/.well-known/api-catalog', '/.well-known/mcp.json', '/openapi.json', '/openrpc.json', '/asyncapi.json']`.
|
|
127
|
+
*/
|
|
128
|
+
publicPaths?: string[];
|
|
129
|
+
/**
|
|
130
|
+
* Optional resolver that maps a presented API key to a fully-shaped
|
|
131
|
+
* `AuthenticatedPrincipal`. When configured, the resolver is
|
|
132
|
+
* authoritative for the entire API-key space:
|
|
133
|
+
* - returns a principal → admitted with that principal entirely
|
|
134
|
+
* (scopes authoritative; `defaultApiKeyScopes` IGNORED).
|
|
135
|
+
* - returns `null` → key rejected; static `apiKeys` is NOT
|
|
136
|
+
* consulted as a fallback.
|
|
137
|
+
* - throws → treated as `null` (rejected); server log records the
|
|
138
|
+
* throw detail, wire error stays generic.
|
|
139
|
+
* When not configured, static `apiKeys` admits and the admitted
|
|
140
|
+
* principal's scopes come from `defaultApiKeyScopes ?? []`.
|
|
141
|
+
*/
|
|
142
|
+
resolveApiKeyPrincipal?: (key: string) => Promise<AuthenticatedPrincipal | null>;
|
|
143
|
+
/**
|
|
144
|
+
* Scopes granted to principals admitted via static `apiKeys`. Ignored
|
|
145
|
+
* when `resolveApiKeyPrincipal` is configured (the resolver's scopes
|
|
146
|
+
* are authoritative for keys it admits). Defaults to `[]`.
|
|
147
|
+
*/
|
|
148
|
+
defaultApiKeyScopes?: ReadonlyArray<AuthorizationScope>;
|
|
149
|
+
/**
|
|
150
|
+
* Sink for the authentication audit trail. The authenticator emits one
|
|
151
|
+
* structured {@link AuthAuditSink} event per non-public decision (admission
|
|
152
|
+
* or rejection), carrying the authenticated subject, method, and outcome —
|
|
153
|
+
* never the presented credential. Public-path bypasses are not audited.
|
|
154
|
+
* Defaults to a sink that writes one JSON line per event to the console
|
|
155
|
+
* (`console.info` for success, `console.warn` for failure). Set to a custom
|
|
156
|
+
* sink to forward audit records to a SIEM, or to a no-op to disable auditing.
|
|
157
|
+
*/
|
|
158
|
+
auditSink?: AuthAuditSink;
|
|
159
|
+
};
|
|
160
|
+
/**
|
|
161
|
+
* Which authentication path admitted a request.
|
|
162
|
+
*
|
|
163
|
+
* Returned inside an {@link AuthResult} when `authenticated: true`. Use this
|
|
164
|
+
* to distinguish bearer-token callers from mTLS-authenticated services or to
|
|
165
|
+
* log the admission method alongside the request trace.
|
|
166
|
+
*
|
|
167
|
+
* @example
|
|
168
|
+
* ```ts
|
|
169
|
+
* import { createAuthenticator, type AuthMethod } from '@lostgradient/weft';
|
|
170
|
+
*
|
|
171
|
+
* const authenticate = await createAuthenticator({ apiKeys: ['key-1'] });
|
|
172
|
+
* const req = new Request('http://localhost/v1/workflows', {
|
|
173
|
+
* headers: { 'X-API-Key': 'key-1' },
|
|
174
|
+
* });
|
|
175
|
+
* const result = await authenticate(req);
|
|
176
|
+
* if (result.authenticated) {
|
|
177
|
+
* const method: AuthMethod = result.method;
|
|
178
|
+
* console.log(method); // 'api-key'
|
|
179
|
+
* }
|
|
180
|
+
* ```
|
|
181
|
+
*/
|
|
182
|
+
export type AuthMethod = 'api-key' | 'jwt' | 'mtls' | 'public';
|
|
183
|
+
/**
|
|
184
|
+
* Shared context carried from the authenticator through the request
|
|
185
|
+
* pipeline. Single source of truth for the `{ method, claims?,
|
|
186
|
+
* principal? }` shape — re-used by `AuthResult`,
|
|
187
|
+
* `HandlerOptions.authContext`, and the handler's internal
|
|
188
|
+
* `AuthenticatedRequestContext`.
|
|
189
|
+
*
|
|
190
|
+
* - `method`: which admission path succeeded.
|
|
191
|
+
* - `claims`: JWT payload when `method === 'jwt'`.
|
|
192
|
+
* - `principal`: fully-shaped principal forwarded from the
|
|
193
|
+
* authenticator (resolver admission, or static API-key admission
|
|
194
|
+
* with `defaultApiKeyScopes`). Downstream pipeline code uses this
|
|
195
|
+
* verbatim; when absent, `authContextToPrincipal` reconstructs a
|
|
196
|
+
* minimal principal from `method` + `claims`.
|
|
197
|
+
*/
|
|
198
|
+
export type AuthContext = {
|
|
199
|
+
method: AuthMethod;
|
|
200
|
+
claims?: JWTPayload;
|
|
201
|
+
principal?: AuthenticatedPrincipal;
|
|
202
|
+
};
|
|
203
|
+
/**
|
|
204
|
+
* Discriminated union returned by an {@link Authenticator}.
|
|
205
|
+
*
|
|
206
|
+
* Check `authenticated` first: when `true`, the request was admitted and
|
|
207
|
+
* `method` (plus optional `claims` / `principal`) are populated. When
|
|
208
|
+
* `false`, `error` holds a client-safe rejection message.
|
|
209
|
+
*
|
|
210
|
+
* @example
|
|
211
|
+
* ```ts
|
|
212
|
+
* import { createAuthenticator, type AuthResult } from '@lostgradient/weft';
|
|
213
|
+
*
|
|
214
|
+
* const authenticate = await createAuthenticator({ apiKeys: ['s3cr3t'] });
|
|
215
|
+
* const req = new Request('http://localhost/v1/workflows');
|
|
216
|
+
* const result: AuthResult = await authenticate(req);
|
|
217
|
+
* if (!result.authenticated) {
|
|
218
|
+
* console.error('Rejected:', result.error);
|
|
219
|
+
* } else {
|
|
220
|
+
* console.log('Admitted via', result.method);
|
|
221
|
+
* }
|
|
222
|
+
* ```
|
|
223
|
+
*/
|
|
224
|
+
export type AuthResult = ({
|
|
225
|
+
authenticated: true;
|
|
226
|
+
} & AuthContext) | {
|
|
227
|
+
authenticated: false;
|
|
228
|
+
error: string;
|
|
229
|
+
};
|
|
230
|
+
/**
|
|
231
|
+
* Decoded JWT claims payload — the JSON object between the JWT header and
|
|
232
|
+
* signature after base64url-decoding.
|
|
233
|
+
*
|
|
234
|
+
* Populated on an {@link AuthResult} when `method === 'jwt'`. Standard claims
|
|
235
|
+
* (`iss`, `sub`, `aud`, `exp`, `nbf`) are validated automatically; any
|
|
236
|
+
* application-specific claims are accessible as `claims['my-claim']`.
|
|
237
|
+
*
|
|
238
|
+
* @example
|
|
239
|
+
* ```ts
|
|
240
|
+
* import { createAuthenticator, type JWTPayload } from '@lostgradient/weft';
|
|
241
|
+
*
|
|
242
|
+
* const authenticate = await createAuthenticator({
|
|
243
|
+
* jwt: { secret: 'test-secret' },
|
|
244
|
+
* });
|
|
245
|
+
* const req = new Request('http://localhost/v1/workflows', {
|
|
246
|
+
* headers: { Authorization: 'Bearer <token>' },
|
|
247
|
+
* });
|
|
248
|
+
* const result = await authenticate(req);
|
|
249
|
+
* if (result.authenticated && result.method === 'jwt') {
|
|
250
|
+
* const payload: JWTPayload = result.claims ?? {};
|
|
251
|
+
* console.log(payload['sub']);
|
|
252
|
+
* }
|
|
253
|
+
* ```
|
|
254
|
+
*/
|
|
255
|
+
export type JWTPayload = Record<string, unknown>;
|
|
256
|
+
/**
|
|
257
|
+
* Async function that inspects a `Request` and returns an {@link AuthResult}.
|
|
258
|
+
*
|
|
259
|
+
* Obtain an `Authenticator` by calling `createAuthenticator(config)`. You can
|
|
260
|
+
* also implement this type directly to plug a custom admission strategy into the
|
|
261
|
+
* server handler pipeline.
|
|
262
|
+
*
|
|
263
|
+
* @example
|
|
264
|
+
* ```ts
|
|
265
|
+
* import { createAuthenticator, type Authenticator } from '@lostgradient/weft';
|
|
266
|
+
*
|
|
267
|
+
* const authenticate: Authenticator = await createAuthenticator({
|
|
268
|
+
* apiKeys: ['my-key'],
|
|
269
|
+
* });
|
|
270
|
+
*
|
|
271
|
+
* const request = new Request('http://localhost/v1/workflows', {
|
|
272
|
+
* headers: { 'X-API-Key': 'my-key' },
|
|
273
|
+
* });
|
|
274
|
+
* const result = await authenticate(request);
|
|
275
|
+
* console.log(result.authenticated); // true
|
|
276
|
+
* ```
|
|
277
|
+
*/
|
|
278
|
+
export type Authenticator = (request: Request) => Promise<AuthResult>;
|
|
279
|
+
export declare const DEFAULT_PUBLIC_PATHS: string[];
|
|
280
|
+
export declare const DEFAULT_CLOCK_TOLERANCE = 60;
|
|
281
|
+
/**
|
|
282
|
+
* Normalize the request pathname for consistent public-path lookup: strip
|
|
283
|
+
* trailing slashes (except bare `/`) so that `/v1/health` and `/v1/health/`
|
|
284
|
+
* resolve to the same key.
|
|
285
|
+
*
|
|
286
|
+
* Used by both the authenticator and the request-gate rate-limiting step so
|
|
287
|
+
* that public-path detection stays consistent across both modules.
|
|
288
|
+
*/
|
|
289
|
+
export declare function normalizeRequestPathname(request: Request): string;
|
|
290
|
+
export {};
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export const DEFAULT_PUBLIC_PATHS = [
|
|
2
|
+
"/v1/health",
|
|
3
|
+
"/v1/metrics",
|
|
4
|
+
"/.well-known/api-catalog",
|
|
5
|
+
"/.well-known/mcp.json",
|
|
6
|
+
"/openapi.json",
|
|
7
|
+
"/openrpc.json",
|
|
8
|
+
"/asyncapi.json"
|
|
9
|
+
], DEFAULT_CLOCK_TOLERANCE = 60;
|
|
10
|
+
export function normalizeRequestPathname(request) {
|
|
11
|
+
const url = new URL(request.url);
|
|
12
|
+
return url.pathname.length > 1 ? url.pathname.replace(/\/+$/, "") : url.pathname;
|
|
13
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './authentication/index.ts';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "./authentication/index.js";
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Authorization scope vocabulary — extracted into its own module to avoid a
|
|
3
|
+
* dependency cycle between `principal.ts` and `authorization.ts`.
|
|
4
|
+
*
|
|
5
|
+
* All authorization-scope-related types and runtime helpers live here. Access
|
|
6
|
+
* policies, scope requirements, and the access-check pipeline live in
|
|
7
|
+
* `authorization.ts`.
|
|
8
|
+
*/
|
|
9
|
+
/**
|
|
10
|
+
* All authorization scopes recognized by the runtime. Full-word, colon-separated,
|
|
11
|
+
* one entry per (domain, action) pair. Add new scopes here when introducing a
|
|
12
|
+
* new domain; never derive scope strings dynamically.
|
|
13
|
+
*
|
|
14
|
+
* Scope semantics are deliberately FLAT for v1 — `workflows:admin` does NOT
|
|
15
|
+
* imply `workflows:read` or `workflows:write`. Operation authors must declare
|
|
16
|
+
* the exact scope they require. Scope-implication semantics (if any) are a
|
|
17
|
+
* future track.
|
|
18
|
+
*/
|
|
19
|
+
export declare const AUTHORIZATION_SCOPES: readonly ["workflows:read", "workflows:write", "workflows:admin", "schedules:read", "schedules:write", "signals:write", "updates:write", "queries:read", "reviews:read", "reviews:write", "attributes:read", "attributes:write", "tags:write", "streams:read", "events:read", "budget:read", "budget:write", "storage:read", "storage:write", "storage:admin", "workers:write", "system:read", "system:admin"];
|
|
20
|
+
/** String-literal union of every authorization scope. */
|
|
21
|
+
export type AuthorizationScope = (typeof AUTHORIZATION_SCOPES)[number];
|
|
22
|
+
/** Runtime type guard for the `AuthorizationScope` union. */
|
|
23
|
+
export declare function isAuthorizationScope(value: string): value is AuthorizationScope;
|
|
24
|
+
/**
|
|
25
|
+
* Extract the full set of scopes granted by a JWT payload by *merging* every
|
|
26
|
+
* recognized claim source. Real-world tokens commonly carry OIDC scopes (e.g.
|
|
27
|
+
* `openid profile`) in `scope` while application scopes live in `permissions`;
|
|
28
|
+
* a short-circuit on the first present claim would silently drop privileges.
|
|
29
|
+
*
|
|
30
|
+
* Sources merged (all consulted, all unioned):
|
|
31
|
+
* - `scope` — RFC 8693-style space-delimited string
|
|
32
|
+
* - `scp` — alternate space-delimited string used by some IdPs
|
|
33
|
+
* - `permissions` — array of strings
|
|
34
|
+
*
|
|
35
|
+
* Whitespace-only values are treated as absent so they never block fallback to
|
|
36
|
+
* other sources. Unknown scope strings are silently filtered out — the
|
|
37
|
+
* vocabulary in `AUTHORIZATION_SCOPES` is the single source of truth and a
|
|
38
|
+
* misspelled scope cannot grant unintended privileges.
|
|
39
|
+
*
|
|
40
|
+
* Credential *validation* (signature verification, expiry, revocation) happens
|
|
41
|
+
* at the transport edge before the claims object reaches this function.
|
|
42
|
+
*/
|
|
43
|
+
export declare function extractScopesFromClaims(claims: Record<string, unknown>): ReadonlySet<AuthorizationScope>;
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
export const AUTHORIZATION_SCOPES = [
|
|
2
|
+
"workflows:read",
|
|
3
|
+
"workflows:write",
|
|
4
|
+
"workflows:admin",
|
|
5
|
+
"schedules:read",
|
|
6
|
+
"schedules:write",
|
|
7
|
+
"signals:write",
|
|
8
|
+
"updates:write",
|
|
9
|
+
"queries:read",
|
|
10
|
+
"reviews:read",
|
|
11
|
+
"reviews:write",
|
|
12
|
+
"attributes:read",
|
|
13
|
+
"attributes:write",
|
|
14
|
+
"tags:write",
|
|
15
|
+
"streams:read",
|
|
16
|
+
"events:read",
|
|
17
|
+
"budget:read",
|
|
18
|
+
"budget:write",
|
|
19
|
+
"storage:read",
|
|
20
|
+
"storage:write",
|
|
21
|
+
"storage:admin",
|
|
22
|
+
"workers:write",
|
|
23
|
+
"system:read",
|
|
24
|
+
"system:admin"
|
|
25
|
+
];
|
|
26
|
+
const SCOPE_LOOKUP = new Set(AUTHORIZATION_SCOPES);
|
|
27
|
+
export function isAuthorizationScope(value) {
|
|
28
|
+
return SCOPE_LOOKUP.has(value);
|
|
29
|
+
}
|
|
30
|
+
export function extractScopesFromClaims(claims) {
|
|
31
|
+
const merged = new Set;
|
|
32
|
+
addStringClaimScopes(claims.scope, merged);
|
|
33
|
+
addStringClaimScopes(claims.scp, merged);
|
|
34
|
+
const permissions = claims.permissions;
|
|
35
|
+
if (Array.isArray(permissions)) {
|
|
36
|
+
for (const entry of permissions)
|
|
37
|
+
if (typeof entry === "string" && isAuthorizationScope(entry))
|
|
38
|
+
merged.add(entry);
|
|
39
|
+
}
|
|
40
|
+
return merged;
|
|
41
|
+
}
|
|
42
|
+
function addStringClaimScopes(value, target) {
|
|
43
|
+
if (typeof value !== "string")
|
|
44
|
+
return;
|
|
45
|
+
if (value.trim().length === 0)
|
|
46
|
+
return;
|
|
47
|
+
for (const token of value.split(/\s+/)) {
|
|
48
|
+
if (token.length === 0)
|
|
49
|
+
continue;
|
|
50
|
+
if (isAuthorizationScope(token))
|
|
51
|
+
target.add(token);
|
|
52
|
+
}
|
|
53
|
+
}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Transport-neutral authorization policy types and the pipeline access check.
|
|
3
|
+
*
|
|
4
|
+
* Hosts the `AccessPolicy` / `ScopeRequirement` discriminated unions and
|
|
5
|
+
* `evaluateAccess`, the function `executeOperation` calls between the
|
|
6
|
+
* authentication step and the operation invocation. The scope vocabulary
|
|
7
|
+
* and JWT claim extraction live in `authorization-scope.ts` — separated to
|
|
8
|
+
* keep `principal.ts` and this file cycle-free.
|
|
9
|
+
*
|
|
10
|
+
* See Track 8 design decisions 3, 6, and 10.
|
|
11
|
+
*/
|
|
12
|
+
import { type AuthorizationScope } from './authorization-scope.ts';
|
|
13
|
+
import { type Principal } from './principal.ts';
|
|
14
|
+
/** Non-empty tuple of authorization scopes. Prevents `anyOf([])` / `allOf([])` at the type level. */
|
|
15
|
+
export type ScopeRequirement = {
|
|
16
|
+
kind: 'anyOf';
|
|
17
|
+
scopes: [AuthorizationScope, ...AuthorizationScope[]];
|
|
18
|
+
} | {
|
|
19
|
+
kind: 'allOf';
|
|
20
|
+
scopes: [AuthorizationScope, ...AuthorizationScope[]];
|
|
21
|
+
};
|
|
22
|
+
/** The only representable access policies for an operation. Invalid combinations are unrepresentable. */
|
|
23
|
+
export type AccessPolicy = {
|
|
24
|
+
kind: 'public';
|
|
25
|
+
} | {
|
|
26
|
+
kind: 'authenticated';
|
|
27
|
+
} | {
|
|
28
|
+
kind: 'scoped';
|
|
29
|
+
scopes: ScopeRequirement;
|
|
30
|
+
} | {
|
|
31
|
+
kind: 'scopedAlternatives';
|
|
32
|
+
alternatives: [ScopeRequirement, ...ScopeRequirement[]];
|
|
33
|
+
} | {
|
|
34
|
+
kind: 'optionalAuth';
|
|
35
|
+
authenticatedScopes: ScopeRequirement;
|
|
36
|
+
};
|
|
37
|
+
/**
|
|
38
|
+
* Result of a pipeline access check. Denials carry a classification so the
|
|
39
|
+
* caller can emit the correct `Unauthorized` vs `Forbidden` fault.
|
|
40
|
+
*/
|
|
41
|
+
export type AccessCheckResult = {
|
|
42
|
+
allowed: true;
|
|
43
|
+
} | {
|
|
44
|
+
allowed: false;
|
|
45
|
+
classification: 'unauthorized' | 'forbidden';
|
|
46
|
+
reason: string;
|
|
47
|
+
};
|
|
48
|
+
/**
|
|
49
|
+
* Evaluate an `AccessPolicy` against the caller's principal. This is the
|
|
50
|
+
* pipeline step that translates the declarative policy into a pass/fail
|
|
51
|
+
* decision. Credential *validation* happens at the transport edge, BEFORE
|
|
52
|
+
* this function runs; by the time we're here, the principal shape tells us
|
|
53
|
+
* whether the caller is authenticated.
|
|
54
|
+
*/
|
|
55
|
+
export declare function evaluateAccess(policy: AccessPolicy, principal: Principal): AccessCheckResult;
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
import { isAuthenticated } from "./principal.js";
|
|
2
|
+
export function evaluateAccess(policy, principal) {
|
|
3
|
+
switch (policy.kind) {
|
|
4
|
+
case "public":
|
|
5
|
+
return { allowed: !0 };
|
|
6
|
+
case "authenticated":
|
|
7
|
+
if (isAuthenticated(principal))
|
|
8
|
+
return { allowed: !0 };
|
|
9
|
+
return {
|
|
10
|
+
allowed: !1,
|
|
11
|
+
classification: "unauthorized",
|
|
12
|
+
reason: "authentication required"
|
|
13
|
+
};
|
|
14
|
+
case "scoped":
|
|
15
|
+
if (!isAuthenticated(principal))
|
|
16
|
+
return {
|
|
17
|
+
allowed: !1,
|
|
18
|
+
classification: "unauthorized",
|
|
19
|
+
reason: "authentication required"
|
|
20
|
+
};
|
|
21
|
+
return checkScopeRequirement(policy.scopes, principal.scopes);
|
|
22
|
+
case "scopedAlternatives":
|
|
23
|
+
if (!isAuthenticated(principal))
|
|
24
|
+
return {
|
|
25
|
+
allowed: !1,
|
|
26
|
+
classification: "unauthorized",
|
|
27
|
+
reason: "authentication required"
|
|
28
|
+
};
|
|
29
|
+
return checkScopeAlternatives(policy.alternatives, principal.scopes);
|
|
30
|
+
case "optionalAuth":
|
|
31
|
+
if (!isAuthenticated(principal))
|
|
32
|
+
return { allowed: !0 };
|
|
33
|
+
return checkScopeRequirement(policy.authenticatedScopes, principal.scopes);
|
|
34
|
+
default:
|
|
35
|
+
return assertExhaustive(policy);
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
function assertExhaustive(value) {
|
|
39
|
+
throw Error(`authorization received a discriminated value with unknown kind: ${String(value.kind)}`);
|
|
40
|
+
}
|
|
41
|
+
function checkScopeRequirement(requirement, held) {
|
|
42
|
+
if (!Array.isArray(requirement.scopes))
|
|
43
|
+
throw Error(`authorization: ${requirement.kind} ScopeRequirement.scopes is not an array at runtime`);
|
|
44
|
+
switch (requirement.kind) {
|
|
45
|
+
case "anyOf": {
|
|
46
|
+
if (requirement.scopes.some((scope) => held.has(scope)))
|
|
47
|
+
return { allowed: !0 };
|
|
48
|
+
return {
|
|
49
|
+
allowed: !1,
|
|
50
|
+
classification: "forbidden",
|
|
51
|
+
reason: `requires any of: ${requirement.scopes.join(", ")}`
|
|
52
|
+
};
|
|
53
|
+
}
|
|
54
|
+
case "allOf": {
|
|
55
|
+
if (requirement.scopes.length === 0)
|
|
56
|
+
throw Error("authorization: allOf ScopeRequirement has an empty scopes array (the non-empty tuple invariant was violated at runtime)");
|
|
57
|
+
const missing = requirement.scopes.filter((scope) => !held.has(scope));
|
|
58
|
+
if (missing.length === 0)
|
|
59
|
+
return { allowed: !0 };
|
|
60
|
+
return {
|
|
61
|
+
allowed: !1,
|
|
62
|
+
classification: "forbidden",
|
|
63
|
+
reason: `missing required scopes: ${missing.join(", ")}`
|
|
64
|
+
};
|
|
65
|
+
}
|
|
66
|
+
default:
|
|
67
|
+
return assertExhaustive(requirement);
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
function checkScopeAlternatives(alternatives, held) {
|
|
71
|
+
if (!Array.isArray(alternatives))
|
|
72
|
+
throw Error("authorization: scopedAlternatives.alternatives is not an array at runtime");
|
|
73
|
+
if (alternatives.length === 0)
|
|
74
|
+
throw Error("authorization: scopedAlternatives has an empty alternatives array (the non-empty tuple invariant was violated at runtime)");
|
|
75
|
+
const deniedReasons = [];
|
|
76
|
+
for (const alternative of alternatives) {
|
|
77
|
+
const result = checkScopeRequirement(alternative, held);
|
|
78
|
+
if (result.allowed)
|
|
79
|
+
return { allowed: !0 };
|
|
80
|
+
deniedReasons.push(result.reason);
|
|
81
|
+
}
|
|
82
|
+
return {
|
|
83
|
+
allowed: !1,
|
|
84
|
+
classification: "forbidden",
|
|
85
|
+
reason: `requires one of: ${deniedReasons.join("; ")}`
|
|
86
|
+
};
|
|
87
|
+
}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* In-memory min-heap that tracks inflight task deadlines.
|
|
3
|
+
*
|
|
4
|
+
* Used by the visibility timeout scanner to avoid a full storage scan
|
|
5
|
+
* on every tick. The scanner pops expired entries from the heap instead
|
|
6
|
+
* of iterating all `op:inflight:*` records.
|
|
7
|
+
*
|
|
8
|
+
* Uses generation-based lazy deletion: each operation ID has a generation
|
|
9
|
+
* counter. `remove()` bumps the generation in O(1), and heap entries with
|
|
10
|
+
* an older generation are skipped during `popMin()` and `drainExpired()`.
|
|
11
|
+
*
|
|
12
|
+
* @module server/deadline-tracker
|
|
13
|
+
*/
|
|
14
|
+
/** A single tracked deadline entry. */
|
|
15
|
+
export type DeadlineEntry = {
|
|
16
|
+
operationId: string;
|
|
17
|
+
deadline: number;
|
|
18
|
+
};
|
|
19
|
+
/**
|
|
20
|
+
* Min-heap ordered by deadline with O(1) lazy removal.
|
|
21
|
+
*
|
|
22
|
+
* - `add`: O(log n)
|
|
23
|
+
* - `remove`: O(1) — bumps generation counter
|
|
24
|
+
* - `popMin`: O(log n) amortized — skips stale entries
|
|
25
|
+
* - `drainExpired`: O(k log n) where k is the number of expired entries
|
|
26
|
+
*/
|
|
27
|
+
export declare class DeadlineTracker {
|
|
28
|
+
#private;
|
|
29
|
+
constructor();
|
|
30
|
+
/** Number of tracked deadlines (excludes stale entries). */
|
|
31
|
+
get size(): number;
|
|
32
|
+
/** Peek at the earliest non-stale deadline. Returns `undefined` if empty. */
|
|
33
|
+
peekDeadline(): number | undefined;
|
|
34
|
+
/**
|
|
35
|
+
* Add a new deadline entry. Any previous entry for this operation ID
|
|
36
|
+
* becomes stale and will be skipped during pop/drain.
|
|
37
|
+
*/
|
|
38
|
+
add(entry: DeadlineEntry): void;
|
|
39
|
+
/** Remove and return the entry with the earliest deadline, or `undefined` if empty. */
|
|
40
|
+
popMin(): DeadlineEntry | undefined;
|
|
41
|
+
/** Invalidate all entries for the given operation ID in O(1). */
|
|
42
|
+
remove(operationId: string): void;
|
|
43
|
+
/** Drain all non-stale entries whose deadline is at or before `now`. */
|
|
44
|
+
drainExpired(now: number): DeadlineEntry[];
|
|
45
|
+
/** Remove all entries. */
|
|
46
|
+
clear(): void;
|
|
47
|
+
}
|