@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,28 @@
|
|
|
1
|
+
export interface CloneValidationError {
|
|
2
|
+
path: string;
|
|
3
|
+
value: unknown;
|
|
4
|
+
reason: string;
|
|
5
|
+
suggestion: string;
|
|
6
|
+
}
|
|
7
|
+
export interface CloneValidationResult {
|
|
8
|
+
valid: boolean;
|
|
9
|
+
errors: CloneValidationError[];
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Validate that a value is cloneable (structuredClone compatible).
|
|
13
|
+
* Returns errors for non-cloneable values. Reports ALL errors, not just the first.
|
|
14
|
+
*
|
|
15
|
+
* @example
|
|
16
|
+
* ```ts
|
|
17
|
+
* import { validateCloneable } from '@lostgradient/weft';
|
|
18
|
+
*
|
|
19
|
+
* const safe = validateCloneable({ name: 'Alice', scores: [1, 2, 3] });
|
|
20
|
+
* console.log(safe.valid); // true
|
|
21
|
+
* console.log(safe.errors); // []
|
|
22
|
+
*
|
|
23
|
+
* const unsafe = validateCloneable({ fn: () => 42 });
|
|
24
|
+
* console.log(unsafe.valid); // false
|
|
25
|
+
* console.log(unsafe.errors[0]?.path); // 'fn'
|
|
26
|
+
* ```
|
|
27
|
+
*/
|
|
28
|
+
export declare function validateCloneable(value: unknown, path?: string): CloneValidationResult;
|
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
export function validateCloneable(value, path = "") {
|
|
2
|
+
const errors = [];
|
|
3
|
+
walkValue(value, path, errors, new Set);
|
|
4
|
+
return { valid: errors.length === 0, errors };
|
|
5
|
+
}
|
|
6
|
+
function isClassInstanceWithMethods(value) {
|
|
7
|
+
const prototype = Object.getPrototypeOf(value);
|
|
8
|
+
return hasCustomPrototype(prototype) && !isSupportedStructuredCloneType(value) && hasPrototypeMethods(prototype);
|
|
9
|
+
}
|
|
10
|
+
function hasCustomPrototype(prototype) {
|
|
11
|
+
return prototype !== Object.prototype && prototype !== null;
|
|
12
|
+
}
|
|
13
|
+
function isSupportedStructuredCloneType(value) {
|
|
14
|
+
return Array.isArray(value) || value instanceof Date || value instanceof RegExp || value instanceof Map || value instanceof Set || value instanceof Error || value instanceof Uint8Array || value instanceof ArrayBuffer;
|
|
15
|
+
}
|
|
16
|
+
function hasPrototypeMethods(prototype) {
|
|
17
|
+
if (typeof prototype !== "object" || prototype === null)
|
|
18
|
+
return !1;
|
|
19
|
+
return Object.getOwnPropertyNames(prototype).some((name) => {
|
|
20
|
+
if (name === "constructor")
|
|
21
|
+
return !1;
|
|
22
|
+
const descriptor = Object.getOwnPropertyDescriptor(prototype, name);
|
|
23
|
+
return descriptor !== void 0 && typeof descriptor.value === "function";
|
|
24
|
+
});
|
|
25
|
+
}
|
|
26
|
+
function pushCloneValidationError(errors, path, value, failure) {
|
|
27
|
+
errors.push({
|
|
28
|
+
path,
|
|
29
|
+
value,
|
|
30
|
+
reason: failure.reason,
|
|
31
|
+
suggestion: failure.suggestion
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
function getPrimitiveCloneValidationFailure(value) {
|
|
35
|
+
if (typeof value === "function")
|
|
36
|
+
return {
|
|
37
|
+
reason: "Functions cannot be serialized.",
|
|
38
|
+
suggestion: "Move this into ctx.run() or reconstruct it on resume."
|
|
39
|
+
};
|
|
40
|
+
if (typeof value === "symbol")
|
|
41
|
+
return {
|
|
42
|
+
reason: "Symbols cannot be serialized.",
|
|
43
|
+
suggestion: "Use a string identifier instead of a Symbol."
|
|
44
|
+
};
|
|
45
|
+
return null;
|
|
46
|
+
}
|
|
47
|
+
function getObjectCloneValidationFailure(value, visited) {
|
|
48
|
+
if (value instanceof WeakRef)
|
|
49
|
+
return {
|
|
50
|
+
reason: "WeakRef cannot be serialized.",
|
|
51
|
+
suggestion: "Store the referenced value directly instead of using a WeakRef."
|
|
52
|
+
};
|
|
53
|
+
if (value instanceof WeakMap)
|
|
54
|
+
return {
|
|
55
|
+
reason: "WeakMap cannot be serialized.",
|
|
56
|
+
suggestion: "Use a Map instead of a WeakMap."
|
|
57
|
+
};
|
|
58
|
+
if (value instanceof WeakSet)
|
|
59
|
+
return {
|
|
60
|
+
reason: "WeakSet cannot be serialized.",
|
|
61
|
+
suggestion: "Use a Set instead of a WeakSet."
|
|
62
|
+
};
|
|
63
|
+
if (visited.has(value))
|
|
64
|
+
return {
|
|
65
|
+
reason: "Circular reference detected.",
|
|
66
|
+
suggestion: "Remove the circular reference or restructure the data."
|
|
67
|
+
};
|
|
68
|
+
if (isClassInstanceWithMethods(value))
|
|
69
|
+
return {
|
|
70
|
+
reason: "Class instances with methods cannot be serialized.",
|
|
71
|
+
suggestion: "Store only the data and reconstruct the instance."
|
|
72
|
+
};
|
|
73
|
+
return null;
|
|
74
|
+
}
|
|
75
|
+
function isSerializableLeafValue(value) {
|
|
76
|
+
return value instanceof Date || value instanceof RegExp || value instanceof Error || value instanceof Uint8Array || value instanceof ArrayBuffer;
|
|
77
|
+
}
|
|
78
|
+
function walkMapValues(value, path, errors, visited) {
|
|
79
|
+
for (const [key, mapValue] of value) {
|
|
80
|
+
const keyString = String(key);
|
|
81
|
+
walkValue(mapValue, path ? `${path}.${keyString}` : keyString, errors, visited);
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
function walkSetValues(value, path, errors, visited) {
|
|
85
|
+
let index = 0;
|
|
86
|
+
for (const setValue of value) {
|
|
87
|
+
const elementPath = path ? `${path}[${index}]` : `[${index}]`;
|
|
88
|
+
walkValue(setValue, elementPath, errors, visited);
|
|
89
|
+
index++;
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
function walkArrayValues(value, path, errors, visited) {
|
|
93
|
+
for (let index = 0;index < value.length; index++) {
|
|
94
|
+
const elementPath = path ? `${path}[${index}]` : `[${index}]`;
|
|
95
|
+
walkValue(value[index], elementPath, errors, visited);
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
function walkRecordValues(value, path, errors, visited) {
|
|
99
|
+
for (const key of Object.keys(value)) {
|
|
100
|
+
const propertyPath = path ? `${path}.${key}` : key;
|
|
101
|
+
walkValue(value[key], propertyPath, errors, visited);
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
function walkValue(value, path, errors, visited) {
|
|
105
|
+
if (value === null || value === void 0)
|
|
106
|
+
return;
|
|
107
|
+
const primitiveFailure = getPrimitiveCloneValidationFailure(value);
|
|
108
|
+
if (primitiveFailure) {
|
|
109
|
+
pushCloneValidationError(errors, path, value, primitiveFailure);
|
|
110
|
+
return;
|
|
111
|
+
}
|
|
112
|
+
if (typeof value !== "object")
|
|
113
|
+
return;
|
|
114
|
+
const objectFailure = getObjectCloneValidationFailure(value, visited);
|
|
115
|
+
if (objectFailure) {
|
|
116
|
+
pushCloneValidationError(errors, path, value, objectFailure);
|
|
117
|
+
return;
|
|
118
|
+
}
|
|
119
|
+
visited.add(value);
|
|
120
|
+
try {
|
|
121
|
+
if (isSerializableLeafValue(value))
|
|
122
|
+
return;
|
|
123
|
+
if (value instanceof Map) {
|
|
124
|
+
walkMapValues(value, path, errors, visited);
|
|
125
|
+
return;
|
|
126
|
+
}
|
|
127
|
+
if (value instanceof Set) {
|
|
128
|
+
walkSetValues(value, path, errors, visited);
|
|
129
|
+
return;
|
|
130
|
+
}
|
|
131
|
+
if (Array.isArray(value)) {
|
|
132
|
+
walkArrayValues(value, path, errors, visited);
|
|
133
|
+
return;
|
|
134
|
+
}
|
|
135
|
+
walkRecordValues(value, path, errors, visited);
|
|
136
|
+
} finally {
|
|
137
|
+
visited.delete(value);
|
|
138
|
+
}
|
|
139
|
+
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/** Coerce a decoded MessagePack value to an object record for extension decoding. */
|
|
2
|
+
export declare function coerceCodecRecord(value: unknown): Record<string, unknown>;
|
|
3
|
+
/** Coerce a decoded MessagePack value to an array for extension decoding. */
|
|
4
|
+
export declare function coerceCodecArray(value: unknown): unknown[];
|
|
5
|
+
/** Encode a Date extension payload as float64 milliseconds since epoch. */
|
|
6
|
+
export declare function encodeCodecDate(value: unknown): Uint8Array | null;
|
|
7
|
+
/** Decode a Date extension payload from float64 milliseconds since epoch. */
|
|
8
|
+
export declare function decodeCodecDate(data: Uint8Array): Date;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
export function coerceCodecRecord(value) {
|
|
2
|
+
if (typeof value === "object" && value !== null && !Array.isArray(value))
|
|
3
|
+
return value;
|
|
4
|
+
return {};
|
|
5
|
+
}
|
|
6
|
+
export function coerceCodecArray(value) {
|
|
7
|
+
return Array.isArray(value) ? value : [];
|
|
8
|
+
}
|
|
9
|
+
export function encodeCodecDate(value) {
|
|
10
|
+
if (!(value instanceof Date))
|
|
11
|
+
return null;
|
|
12
|
+
const buffer = new ArrayBuffer(8);
|
|
13
|
+
new DataView(buffer).setFloat64(0, value.getTime());
|
|
14
|
+
return new Uint8Array(buffer);
|
|
15
|
+
}
|
|
16
|
+
export function decodeCodecDate(data) {
|
|
17
|
+
const milliseconds = new DataView(data.buffer, data.byteOffset, data.byteLength).getFloat64(0);
|
|
18
|
+
return new Date(milliseconds);
|
|
19
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './codec/index.ts';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "./codec/index.js";
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Payload compression utilities for transparent gzip/brotli compression
|
|
3
|
+
* at the storage layer. Uses a 2-byte header (magic byte `0xC1` + algorithm
|
|
4
|
+
* byte) for format detection and cross-algorithm reads.
|
|
5
|
+
*
|
|
6
|
+
* @module core/compression
|
|
7
|
+
*/
|
|
8
|
+
/**
|
|
9
|
+
* Identifies the compression algorithm applied to storage payloads.
|
|
10
|
+
* `'gzip'` and `'brotli'` compress before storage; `'none'` disables
|
|
11
|
+
* compression. Pass to {@link EngineOptions.compression} or to
|
|
12
|
+
* {@link createCompressor}.
|
|
13
|
+
*
|
|
14
|
+
* @example
|
|
15
|
+
* ```ts
|
|
16
|
+
* import { createCompressor, type CompressionAlgorithm } from '@lostgradient/weft';
|
|
17
|
+
*
|
|
18
|
+
* const algorithm: CompressionAlgorithm = 'brotli';
|
|
19
|
+
* const compressor = createCompressor(algorithm);
|
|
20
|
+
* const data = new TextEncoder().encode('payload'.repeat(100));
|
|
21
|
+
* const compressed = compressor.compress(data);
|
|
22
|
+
* console.log(compressed instanceof Uint8Array); // true
|
|
23
|
+
* ```
|
|
24
|
+
*/
|
|
25
|
+
export type CompressionAlgorithm = 'gzip' | 'brotli' | 'none';
|
|
26
|
+
/**
|
|
27
|
+
* Configuration for storage-layer compression. Pass as
|
|
28
|
+
* {@link EngineOptions.compression} to enable payload compression on
|
|
29
|
+
* checkpoints and activity results. `threshold` prevents compression of
|
|
30
|
+
* small payloads (default 4 096 bytes); `algorithm` picks the codec.
|
|
31
|
+
*
|
|
32
|
+
* @example
|
|
33
|
+
* ```ts
|
|
34
|
+
* import { Engine, type CompressionOptions } from '@lostgradient/weft';
|
|
35
|
+
*
|
|
36
|
+
* const compression: CompressionOptions = {
|
|
37
|
+
* algorithm: 'brotli',
|
|
38
|
+
* threshold: 8_192,
|
|
39
|
+
* };
|
|
40
|
+
* const engine = new Engine({ compression });
|
|
41
|
+
* void engine;
|
|
42
|
+
* ```
|
|
43
|
+
*/
|
|
44
|
+
export type CompressionOptions = {
|
|
45
|
+
/** Minimum size in bytes before compression kicks in. Default: 4096. */
|
|
46
|
+
threshold?: number;
|
|
47
|
+
/** Algorithm to use. Default: 'gzip'. */
|
|
48
|
+
algorithm?: CompressionAlgorithm;
|
|
49
|
+
};
|
|
50
|
+
/**
|
|
51
|
+
* A compression implementation returned by {@link createCompressor} or
|
|
52
|
+
* {@link createBunCompressor}. The `compress` method accepts raw bytes
|
|
53
|
+
* and returns compressed bytes (or a promise). Provide a custom
|
|
54
|
+
* `Compressor` if you need to swap in a different algorithm.
|
|
55
|
+
*
|
|
56
|
+
* @example
|
|
57
|
+
* ```ts
|
|
58
|
+
* import { createCompressor, type Compressor } from '@lostgradient/weft';
|
|
59
|
+
*
|
|
60
|
+
* const compressor: Compressor = createCompressor('gzip');
|
|
61
|
+
* const payload = new TextEncoder().encode('hello'.repeat(200));
|
|
62
|
+
* const compressed = await compressor.compress(payload);
|
|
63
|
+
* console.log(compressor.algorithm); // 'gzip'
|
|
64
|
+
* console.log(compressed.byteLength < payload.byteLength); // true
|
|
65
|
+
* ```
|
|
66
|
+
*/
|
|
67
|
+
export type Compressor = {
|
|
68
|
+
compress(data: Uint8Array): Uint8Array | Promise<Uint8Array>;
|
|
69
|
+
readonly algorithm: CompressionAlgorithm;
|
|
70
|
+
};
|
|
71
|
+
/**
|
|
72
|
+
* Create a compressor backed by the portable runtime layer.
|
|
73
|
+
*
|
|
74
|
+
* - `gzip`: uses Bun's native gzip when available, otherwise `node:zlib`
|
|
75
|
+
* - `brotli`: uses `node:zlib` brotli (available in both Bun and Node)
|
|
76
|
+
* - `none`: pass-through (no compression)
|
|
77
|
+
*
|
|
78
|
+
* @example
|
|
79
|
+
* ```ts
|
|
80
|
+
* import { createBunCompressor } from '@lostgradient/weft';
|
|
81
|
+
*
|
|
82
|
+
* const compressor = createBunCompressor('gzip');
|
|
83
|
+
* const data = new TextEncoder().encode('hello world'.repeat(100));
|
|
84
|
+
* const compressed = await compressor.compress(data);
|
|
85
|
+
* console.log(compressed.byteLength < data.byteLength); // true
|
|
86
|
+
* ```
|
|
87
|
+
*/
|
|
88
|
+
export declare function createBunCompressor(algorithm: CompressionAlgorithm): Compressor;
|
|
89
|
+
/**
|
|
90
|
+
* Create a compressor. Preferred portable factory — delegates to the runtime
|
|
91
|
+
* abstraction layer for gzip and brotli implementations.
|
|
92
|
+
*
|
|
93
|
+
* @example
|
|
94
|
+
* ```ts
|
|
95
|
+
* import { createCompressor } from '@lostgradient/weft';
|
|
96
|
+
*
|
|
97
|
+
* const gzip = createCompressor('gzip');
|
|
98
|
+
* const brotli = createCompressor('brotli');
|
|
99
|
+
* const none = createCompressor('none');
|
|
100
|
+
*
|
|
101
|
+
* const payload = new TextEncoder().encode('workflow state'.repeat(50));
|
|
102
|
+
* const compressed = gzip.compress(payload);
|
|
103
|
+
* console.log(compressed instanceof Uint8Array); // true
|
|
104
|
+
* ```
|
|
105
|
+
*/
|
|
106
|
+
export declare function createCompressor(algorithm: CompressionAlgorithm): Compressor;
|
|
107
|
+
/**
|
|
108
|
+
* Compress a payload, prepending a 2-byte header: magic byte (`0xC1`) +
|
|
109
|
+
* algorithm byte.
|
|
110
|
+
*
|
|
111
|
+
* If the data is below the threshold or the algorithm is `'none'`, the payload
|
|
112
|
+
* is stored with a `[0xC1, 0x00]` header and no compression is applied.
|
|
113
|
+
*/
|
|
114
|
+
export declare function compressPayload(data: Uint8Array, compressor: Compressor, threshold: number): Promise<Uint8Array>;
|
|
115
|
+
/**
|
|
116
|
+
* Decompress a payload by reading the 2-byte header (magic + algorithm).
|
|
117
|
+
*
|
|
118
|
+
* - `[0xC1, 0x00]` → uncompressed, return the rest as-is
|
|
119
|
+
* - `[0xC1, 0x01]` → gzip-compressed, decompress
|
|
120
|
+
* - `[0xC1, 0x02]` → brotli-compressed, decompress
|
|
121
|
+
*
|
|
122
|
+
* Empty payloads are valid only when framed as `[0xC1, 0x00]`. Unframed empty
|
|
123
|
+
* input is rejected because it cannot prove which storage format produced it.
|
|
124
|
+
*/
|
|
125
|
+
export declare function decompressPayload(data: Uint8Array): Promise<Uint8Array>;
|
|
126
|
+
/** Resolve partial compression options into a fully specified configuration. */
|
|
127
|
+
export declare function resolveCompressionOptions(options?: CompressionOptions): Required<CompressionOptions>;
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
import { gunzipSync, gzipSync, tryLoadNodeZlib } from "../runtime/portable.js";
|
|
2
|
+
function getBrotliZlib() {
|
|
3
|
+
const zlib = tryLoadNodeZlib();
|
|
4
|
+
if (!zlib)
|
|
5
|
+
throw Error("Brotli compression requires Bun or Node 22.5+ with process.getBuiltinModule support. Use gzip compression for browser/edge runtimes.");
|
|
6
|
+
return zlib;
|
|
7
|
+
}
|
|
8
|
+
function brotliCompressSync(data) {
|
|
9
|
+
return new Uint8Array(getBrotliZlib().brotliCompressSync(data));
|
|
10
|
+
}
|
|
11
|
+
function brotliDecompressSync(data) {
|
|
12
|
+
return new Uint8Array(getBrotliZlib().brotliDecompressSync(data));
|
|
13
|
+
}
|
|
14
|
+
const MAGIC_BYTE = 193, ALGORITHM_UNCOMPRESSED = 0, ALGORITHM_GZIP = 1, ALGORITHM_BROTLI = 2, HEADER_SIZE = 2;
|
|
15
|
+
export function createBunCompressor(algorithm) {
|
|
16
|
+
return createCompressor(algorithm);
|
|
17
|
+
}
|
|
18
|
+
export function createCompressor(algorithm) {
|
|
19
|
+
switch (algorithm) {
|
|
20
|
+
case "gzip":
|
|
21
|
+
return {
|
|
22
|
+
algorithm: "gzip",
|
|
23
|
+
compress(data) {
|
|
24
|
+
return gzipSync(data);
|
|
25
|
+
}
|
|
26
|
+
};
|
|
27
|
+
case "brotli":
|
|
28
|
+
return {
|
|
29
|
+
algorithm: "brotli",
|
|
30
|
+
compress(data) {
|
|
31
|
+
return brotliCompressSync(data);
|
|
32
|
+
}
|
|
33
|
+
};
|
|
34
|
+
case "none":
|
|
35
|
+
return {
|
|
36
|
+
algorithm: "none",
|
|
37
|
+
compress(data) {
|
|
38
|
+
return data;
|
|
39
|
+
}
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
export async function compressPayload(data, compressor, threshold) {
|
|
44
|
+
if (data.length < threshold || compressor.algorithm === "none") {
|
|
45
|
+
const result = new Uint8Array(data.length + HEADER_SIZE);
|
|
46
|
+
result[0] = MAGIC_BYTE;
|
|
47
|
+
result[1] = ALGORITHM_UNCOMPRESSED;
|
|
48
|
+
result.set(data, HEADER_SIZE);
|
|
49
|
+
return result;
|
|
50
|
+
}
|
|
51
|
+
const compressed = await compressor.compress(data);
|
|
52
|
+
if (compressed.length + HEADER_SIZE >= data.length + HEADER_SIZE) {
|
|
53
|
+
const result = new Uint8Array(data.length + HEADER_SIZE);
|
|
54
|
+
result[0] = MAGIC_BYTE;
|
|
55
|
+
result[1] = ALGORITHM_UNCOMPRESSED;
|
|
56
|
+
result.set(data, HEADER_SIZE);
|
|
57
|
+
return result;
|
|
58
|
+
}
|
|
59
|
+
const algorithmByte = compressor.algorithm === "gzip" ? ALGORITHM_GZIP : ALGORITHM_BROTLI, result = new Uint8Array(compressed.length + HEADER_SIZE);
|
|
60
|
+
result[0] = MAGIC_BYTE;
|
|
61
|
+
result[1] = algorithmByte;
|
|
62
|
+
result.set(compressed, HEADER_SIZE);
|
|
63
|
+
return result;
|
|
64
|
+
}
|
|
65
|
+
export async function decompressPayload(data) {
|
|
66
|
+
if (data.length < HEADER_SIZE)
|
|
67
|
+
throw Error("Compression payload missing 2-byte header.");
|
|
68
|
+
if (data[0] !== MAGIC_BYTE)
|
|
69
|
+
throw Error("Compression payload missing magic byte 0xC1.");
|
|
70
|
+
const algorithm = data[1], body = data.slice(HEADER_SIZE);
|
|
71
|
+
switch (algorithm) {
|
|
72
|
+
case ALGORITHM_UNCOMPRESSED:
|
|
73
|
+
return body;
|
|
74
|
+
case ALGORITHM_GZIP:
|
|
75
|
+
return gunzipSync(body);
|
|
76
|
+
case ALGORITHM_BROTLI:
|
|
77
|
+
return brotliDecompressSync(body);
|
|
78
|
+
default:
|
|
79
|
+
throw Error(`Compression payload uses unsupported algorithm byte 0x${algorithm.toString(16).padStart(2, "0")}.`);
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
const DEFAULT_THRESHOLD = 4096, DEFAULT_ALGORITHM = "gzip";
|
|
83
|
+
export function resolveCompressionOptions(options) {
|
|
84
|
+
return {
|
|
85
|
+
threshold: options?.threshold ?? DEFAULT_THRESHOLD,
|
|
86
|
+
algorithm: options?.algorithm ?? DEFAULT_ALGORITHM
|
|
87
|
+
};
|
|
88
|
+
}
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The durable lock record and the pure reducers that mutate it. These are the
|
|
3
|
+
* deterministic core of the {@link DurableSemaphore}/{@link DurableMutex}
|
|
4
|
+
* primitives in `./concurrency.ts`: every acquire, release, and renew is one
|
|
5
|
+
* pure function over a {@link LockRecord}, so the algorithm is trivially
|
|
6
|
+
* replay-safe and unit-testable in isolation from any storage flavour.
|
|
7
|
+
*
|
|
8
|
+
* @module core/concurrency-lock-record
|
|
9
|
+
*/
|
|
10
|
+
/**
|
|
11
|
+
* One permit currently held against a {@link DurableSemaphore}. `leaseExpiresAt`
|
|
12
|
+
* is the deterministic timestamp (milliseconds since epoch) after which the
|
|
13
|
+
* permit may be reclaimed by another contender, preventing a crashed holder
|
|
14
|
+
* from deadlocking the lock.
|
|
15
|
+
*
|
|
16
|
+
* @example
|
|
17
|
+
* ```ts
|
|
18
|
+
* import type { LockHolder } from '@lostgradient/weft';
|
|
19
|
+
*
|
|
20
|
+
* const holder: LockHolder = { holderId: 'workflow-a', leaseExpiresAt: 1_717_000_030_000 };
|
|
21
|
+
* void holder;
|
|
22
|
+
* ```
|
|
23
|
+
*/
|
|
24
|
+
export interface LockHolder {
|
|
25
|
+
/** Caller-chosen identifier for the holder (typically `ctx.workflowId`). */
|
|
26
|
+
holderId: string;
|
|
27
|
+
/** Timestamp (ms since epoch) after which this lease may be reclaimed. */
|
|
28
|
+
leaseExpiresAt: number;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* The durable record persisted in a single CAS state slot. `holders` are the
|
|
32
|
+
* permits currently granted (length never exceeds the semaphore's permit
|
|
33
|
+
* count); `waiters` is the FIFO queue of holder ids waiting for a permit.
|
|
34
|
+
*
|
|
35
|
+
* @example
|
|
36
|
+
* ```ts
|
|
37
|
+
* import type { LockRecord } from '@lostgradient/weft';
|
|
38
|
+
*
|
|
39
|
+
* const record: LockRecord = {
|
|
40
|
+
* holders: [{ holderId: 'workflow-a', leaseExpiresAt: 1_717_000_030_000 }],
|
|
41
|
+
* waiters: ['workflow-b'],
|
|
42
|
+
* };
|
|
43
|
+
* void record;
|
|
44
|
+
* ```
|
|
45
|
+
*/
|
|
46
|
+
export interface LockRecord {
|
|
47
|
+
holders: LockHolder[];
|
|
48
|
+
waiters: string[];
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Outcome of a single non-blocking acquire attempt.
|
|
52
|
+
*
|
|
53
|
+
* @example
|
|
54
|
+
* ```ts
|
|
55
|
+
* import type { AcquireAttempt } from '@lostgradient/weft';
|
|
56
|
+
*
|
|
57
|
+
* const attempt: AcquireAttempt = { acquired: false, position: 0 };
|
|
58
|
+
* if (!attempt.acquired) {
|
|
59
|
+
* // attempt.position is the caller's place in the FIFO queue.
|
|
60
|
+
* }
|
|
61
|
+
* ```
|
|
62
|
+
*/
|
|
63
|
+
export interface AcquireAttempt {
|
|
64
|
+
/** Whether the caller now holds a permit. */
|
|
65
|
+
acquired: boolean;
|
|
66
|
+
/**
|
|
67
|
+
* Zero-based position in the FIFO waiter queue when `acquired` is `false`.
|
|
68
|
+
* `0` means the caller is next in line. `-1` when `acquired` is `true`.
|
|
69
|
+
*/
|
|
70
|
+
position: number;
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* A fresh empty {@link LockRecord}. Pass this as the `initial` option when
|
|
74
|
+
* constructing the CAS state handle so the first reader sees an empty lock
|
|
75
|
+
* rather than `undefined`.
|
|
76
|
+
*
|
|
77
|
+
* @example
|
|
78
|
+
* ```ts
|
|
79
|
+
* import { initialLockRecord, AtomicState } from '@lostgradient/weft';
|
|
80
|
+
* import { MemoryStorage } from '@lostgradient/weft/storage/memory';
|
|
81
|
+
*
|
|
82
|
+
* const slot = new AtomicState(new MemoryStorage(), 'state:workflow-scope:default:lock', {
|
|
83
|
+
* initial: initialLockRecord(),
|
|
84
|
+
* });
|
|
85
|
+
* void slot;
|
|
86
|
+
* ```
|
|
87
|
+
*/
|
|
88
|
+
export declare function initialLockRecord(): LockRecord;
|
|
89
|
+
/**
|
|
90
|
+
* Pure reducer for one acquire attempt. Returns the next record alongside
|
|
91
|
+
* whether the caller acquired a permit and its queue position. Deterministic
|
|
92
|
+
* in its inputs so it replays identically.
|
|
93
|
+
*/
|
|
94
|
+
export declare function reduceAcquire(current: LockRecord | undefined, options: {
|
|
95
|
+
holderId: string;
|
|
96
|
+
now: number;
|
|
97
|
+
leaseMs: number;
|
|
98
|
+
permits: number;
|
|
99
|
+
}): {
|
|
100
|
+
record: LockRecord;
|
|
101
|
+
attempt: AcquireAttempt;
|
|
102
|
+
};
|
|
103
|
+
/**
|
|
104
|
+
* Pure reducer for releasing a permit. Removes the holder (and any stale waiter
|
|
105
|
+
* entry) and reclaims expired leases so the record stays clean.
|
|
106
|
+
*/
|
|
107
|
+
export declare function reduceRelease(current: LockRecord | undefined, options: {
|
|
108
|
+
holderId: string;
|
|
109
|
+
now: number;
|
|
110
|
+
}): LockRecord;
|
|
111
|
+
/**
|
|
112
|
+
* Pure reducer for renewing a held lease. Extends the holder's
|
|
113
|
+
* `leaseExpiresAt`; a no-op if the caller is not currently a holder.
|
|
114
|
+
*/
|
|
115
|
+
export declare function reduceRenew(current: LockRecord | undefined, options: {
|
|
116
|
+
holderId: string;
|
|
117
|
+
now: number;
|
|
118
|
+
leaseMs: number;
|
|
119
|
+
}): {
|
|
120
|
+
record: LockRecord;
|
|
121
|
+
renewed: boolean;
|
|
122
|
+
};
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
export function initialLockRecord() {
|
|
2
|
+
return { holders: [], waiters: [] };
|
|
3
|
+
}
|
|
4
|
+
function normalizeRecord(record) {
|
|
5
|
+
if (record === void 0)
|
|
6
|
+
return initialLockRecord();
|
|
7
|
+
return {
|
|
8
|
+
holders: Array.isArray(record.holders) ? record.holders : [],
|
|
9
|
+
waiters: Array.isArray(record.waiters) ? record.waiters : []
|
|
10
|
+
};
|
|
11
|
+
}
|
|
12
|
+
function dropExpiredHolders(holders, now) {
|
|
13
|
+
return holders.filter((holder) => holder.leaseExpiresAt > now);
|
|
14
|
+
}
|
|
15
|
+
export function reduceAcquire(current, options) {
|
|
16
|
+
const { holderId, now, leaseMs, permits } = options, record = normalizeRecord(current), liveHolders = dropExpiredHolders(record.holders, now), existingIndex = liveHolders.findIndex((holder) => holder.holderId === holderId);
|
|
17
|
+
if (existingIndex !== -1)
|
|
18
|
+
return {
|
|
19
|
+
record: { holders: liveHolders.map((holder, index) => index === existingIndex ? { holderId, leaseExpiresAt: now + leaseMs } : holder), waiters: record.waiters.filter((id) => id !== holderId) },
|
|
20
|
+
attempt: { acquired: !0, position: -1 }
|
|
21
|
+
};
|
|
22
|
+
const waiters = record.waiters.includes(holderId) ? [...record.waiters] : [...record.waiters, holderId], freePermits = permits - liveHolders.length, isNextInLine = waiters[0] === holderId;
|
|
23
|
+
if (freePermits > 0 && isNextInLine)
|
|
24
|
+
return {
|
|
25
|
+
record: {
|
|
26
|
+
holders: [...liveHolders, { holderId, leaseExpiresAt: now + leaseMs }],
|
|
27
|
+
waiters: waiters.slice(1)
|
|
28
|
+
},
|
|
29
|
+
attempt: { acquired: !0, position: -1 }
|
|
30
|
+
};
|
|
31
|
+
return {
|
|
32
|
+
record: { holders: liveHolders, waiters },
|
|
33
|
+
attempt: { acquired: !1, position: waiters.indexOf(holderId) }
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
export function reduceRelease(current, options) {
|
|
37
|
+
const { holderId, now } = options, record = normalizeRecord(current);
|
|
38
|
+
return {
|
|
39
|
+
holders: dropExpiredHolders(record.holders, now).filter((holder) => holder.holderId !== holderId),
|
|
40
|
+
waiters: record.waiters.filter((id) => id !== holderId)
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
export function reduceRenew(current, options) {
|
|
44
|
+
const { holderId, now, leaseMs } = options, record = normalizeRecord(current), liveHolders = dropExpiredHolders(record.holders, now);
|
|
45
|
+
let renewed = !1;
|
|
46
|
+
return { record: { holders: liveHolders.map((holder) => {
|
|
47
|
+
if (holder.holderId === holderId) {
|
|
48
|
+
renewed = !0;
|
|
49
|
+
return { holderId, leaseExpiresAt: now + leaseMs };
|
|
50
|
+
}
|
|
51
|
+
return holder;
|
|
52
|
+
}), waiters: record.waiters }, renewed };
|
|
53
|
+
}
|