@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,40 @@
|
|
|
1
|
+
import type { NormalizedDeleteRangeOptions } from './delete-range';
|
|
2
|
+
import { type ScanOptions } from './interface';
|
|
3
|
+
export declare const SQLITE_CREATE_KEY_VALUE_TABLE = "CREATE TABLE IF NOT EXISTS kv (\n key TEXT PRIMARY KEY,\n value BLOB NOT NULL\n) WITHOUT ROWID";
|
|
4
|
+
export declare const SQLITE_SELECT_VALUE_BY_KEY = "SELECT value FROM kv WHERE key = ?";
|
|
5
|
+
export declare const SQLITE_UPSERT_VALUE_BY_KEY = "INSERT INTO kv (key, value) VALUES (?, ?) ON CONFLICT(key) DO UPDATE SET value = excluded.value";
|
|
6
|
+
export declare const SQLITE_DELETE_VALUE_BY_KEY = "DELETE FROM kv WHERE key = ?";
|
|
7
|
+
export declare const SQLITE_SELECT_KEY_PRESENCE = "SELECT 1 AS present FROM kv WHERE key = ? LIMIT 1";
|
|
8
|
+
export declare const SQLITE_COUNT_KEYS_BY_PREFIX = "SELECT COUNT(*) AS count FROM kv WHERE key >= ? AND key < ?";
|
|
9
|
+
export declare const SQLITE_DELETE_KEYS_BY_PREFIX = "DELETE FROM kv WHERE key >= ? AND key < ?";
|
|
10
|
+
export type SqliteKeyRangeQueryParameter = string | number;
|
|
11
|
+
export type SqliteKeyRangeQuery = {
|
|
12
|
+
parameters: SqliteKeyRangeQueryParameter[];
|
|
13
|
+
sqlSuffix: string;
|
|
14
|
+
};
|
|
15
|
+
/** A fully-built SQL statement and its bound parameters (SELECT or DELETE). */
|
|
16
|
+
export type SqliteBuiltQuery = {
|
|
17
|
+
parameters: SqliteKeyRangeQueryParameter[];
|
|
18
|
+
sql: string;
|
|
19
|
+
};
|
|
20
|
+
export declare function buildSqlitePrefixRangeParameters(prefix: string): [string, string];
|
|
21
|
+
export declare function buildSqliteKeyRangeQuery(prefix: string, options?: ScanOptions): SqliteKeyRangeQuery;
|
|
22
|
+
/**
|
|
23
|
+
* Build a bounded-range `DELETE` for the `kv` table from already-validated
|
|
24
|
+
* delete options.
|
|
25
|
+
*
|
|
26
|
+
* Without `limit`, emits a plain `DELETE FROM kv WHERE <conditions>` — no
|
|
27
|
+
* ordering, since order is meaningless when deleting the whole matched range.
|
|
28
|
+
* With `limit`, emits a portable subquery form so the lowest (ascending) keys
|
|
29
|
+
* are deleted first: `DELETE FROM kv WHERE key IN (SELECT key FROM kv WHERE
|
|
30
|
+
* <conditions> ORDER BY key ASC LIMIT ?)`. The subquery avoids relying on
|
|
31
|
+
* `DELETE ... ORDER BY ... LIMIT`, which requires the
|
|
32
|
+
* `SQLITE_ENABLE_UPDATE_DELETE_LIMIT` compile flag and is not available on
|
|
33
|
+
* libSQL/Turso.
|
|
34
|
+
*
|
|
35
|
+
* Requires {@link NormalizedDeleteRangeOptions}: the type guarantees at least
|
|
36
|
+
* one bound is present, so this builder can never produce a whole-prefix wipe.
|
|
37
|
+
*/
|
|
38
|
+
export declare function buildSqliteKeyRangeDelete(prefix: string, options: NormalizedDeleteRangeOptions): SqliteBuiltQuery;
|
|
39
|
+
export declare function buildSqliteKeyValueRangeSelect(prefix: string, options?: ScanOptions): SqliteBuiltQuery;
|
|
40
|
+
export declare function buildSqliteKeyRangeSelect(prefix: string, options?: ScanOptions): SqliteBuiltQuery;
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import { resolvePrefixRangeEnd } from "./interface.js";
|
|
2
|
+
export const SQLITE_CREATE_KEY_VALUE_TABLE = `CREATE TABLE IF NOT EXISTS kv (
|
|
3
|
+
key TEXT PRIMARY KEY,
|
|
4
|
+
value BLOB NOT NULL
|
|
5
|
+
) WITHOUT ROWID`, SQLITE_SELECT_VALUE_BY_KEY = "SELECT value FROM kv WHERE key = ?", SQLITE_UPSERT_VALUE_BY_KEY = "INSERT INTO kv (key, value) VALUES (?, ?) ON CONFLICT(key) DO UPDATE SET value = excluded.value", SQLITE_DELETE_VALUE_BY_KEY = "DELETE FROM kv WHERE key = ?", SQLITE_SELECT_KEY_PRESENCE = "SELECT 1 AS present FROM kv WHERE key = ? LIMIT 1", SQLITE_COUNT_KEYS_BY_PREFIX = "SELECT COUNT(*) AS count FROM kv WHERE key >= ? AND key < ?", SQLITE_DELETE_KEYS_BY_PREFIX = "DELETE FROM kv WHERE key >= ? AND key < ?";
|
|
6
|
+
export function buildSqlitePrefixRangeParameters(prefix) {
|
|
7
|
+
return [prefix, resolvePrefixRangeEnd(prefix)];
|
|
8
|
+
}
|
|
9
|
+
function buildSqliteKeyRangeConditions(prefix, bounds) {
|
|
10
|
+
const { gt, gte, lt, lte } = bounds, conditions = ["key >= ? AND key < ?"], parameters = buildSqlitePrefixRangeParameters(prefix);
|
|
11
|
+
if (gt !== void 0) {
|
|
12
|
+
conditions.push("key > ?");
|
|
13
|
+
parameters.push(gt);
|
|
14
|
+
}
|
|
15
|
+
if (gte !== void 0) {
|
|
16
|
+
conditions.push("key >= ?");
|
|
17
|
+
parameters.push(gte);
|
|
18
|
+
}
|
|
19
|
+
if (lt !== void 0) {
|
|
20
|
+
conditions.push("key < ?");
|
|
21
|
+
parameters.push(lt);
|
|
22
|
+
}
|
|
23
|
+
if (lte !== void 0) {
|
|
24
|
+
conditions.push("key <= ?");
|
|
25
|
+
parameters.push(lte);
|
|
26
|
+
}
|
|
27
|
+
return { conditions, parameters };
|
|
28
|
+
}
|
|
29
|
+
export function buildSqliteKeyRangeQuery(prefix, options = {}) {
|
|
30
|
+
const { limit, reverse } = options, { conditions, parameters } = buildSqliteKeyRangeConditions(prefix, options), direction = reverse ? "DESC" : "ASC", limitClause = limit !== void 0 ? " LIMIT ?" : "";
|
|
31
|
+
if (limit !== void 0)
|
|
32
|
+
parameters.push(limit);
|
|
33
|
+
return {
|
|
34
|
+
parameters,
|
|
35
|
+
sqlSuffix: `WHERE ${conditions.join(" AND ")} ORDER BY key ${direction}${limitClause}`
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
export function buildSqliteKeyRangeDelete(prefix, options) {
|
|
39
|
+
const { conditions, parameters } = buildSqliteKeyRangeConditions(prefix, options), whereClause = conditions.join(" AND ");
|
|
40
|
+
if (options.limit === void 0)
|
|
41
|
+
return {
|
|
42
|
+
parameters,
|
|
43
|
+
sql: `DELETE FROM kv WHERE ${whereClause}`
|
|
44
|
+
};
|
|
45
|
+
parameters.push(options.limit);
|
|
46
|
+
return {
|
|
47
|
+
parameters,
|
|
48
|
+
sql: `DELETE FROM kv WHERE key IN (SELECT key FROM kv WHERE ${whereClause} ORDER BY key ASC LIMIT ?)`
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
export function buildSqliteKeyValueRangeSelect(prefix, options = {}) {
|
|
52
|
+
const { parameters, sqlSuffix } = buildSqliteKeyRangeQuery(prefix, options);
|
|
53
|
+
return {
|
|
54
|
+
parameters,
|
|
55
|
+
sql: `SELECT key, value FROM kv ${sqlSuffix}`
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
export function buildSqliteKeyRangeSelect(prefix, options = {}) {
|
|
59
|
+
const { parameters, sqlSuffix } = buildSqliteKeyRangeQuery(prefix, options);
|
|
60
|
+
return {
|
|
61
|
+
parameters,
|
|
62
|
+
sql: `SELECT key FROM kv ${sqlSuffix}`
|
|
63
|
+
};
|
|
64
|
+
}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import type { BunSQLiteStorage } from './bun-sql.ts';
|
|
2
|
+
import type { NodeSQLiteStorage } from './node-sqlite.ts';
|
|
3
|
+
/**
|
|
4
|
+
* Runtime-specific SQLite storage instance resolved from `@lostgradient/weft/storage/sqlite`.
|
|
5
|
+
*
|
|
6
|
+
* @example
|
|
7
|
+
* ```ts
|
|
8
|
+
* import { SQLiteStorage, type SQLiteStorageInstance } from '@lostgradient/weft/storage/sqlite';
|
|
9
|
+
*
|
|
10
|
+
* const storage: SQLiteStorageInstance = new SQLiteStorage('./weft.db');
|
|
11
|
+
* void storage;
|
|
12
|
+
* ```
|
|
13
|
+
*/
|
|
14
|
+
export type SQLiteStorageInstance = BunSQLiteStorage | NodeSQLiteStorage;
|
|
15
|
+
/**
|
|
16
|
+
* Runtime-neutral SQLite storage constructor.
|
|
17
|
+
*
|
|
18
|
+
* The `@lostgradient/weft/storage/sqlite` package export resolves this symbol to
|
|
19
|
+
* `BunSQLiteStorage` under Bun and `NodeSQLiteStorage` under Node.js.
|
|
20
|
+
*
|
|
21
|
+
* @example
|
|
22
|
+
* ```ts
|
|
23
|
+
* import { SQLiteStorage } from '@lostgradient/weft/storage/sqlite';
|
|
24
|
+
*
|
|
25
|
+
* await using storage = new SQLiteStorage('./weft.db');
|
|
26
|
+
* void storage;
|
|
27
|
+
* ```
|
|
28
|
+
*/
|
|
29
|
+
export declare const SQLiteStorage: {
|
|
30
|
+
new (path?: string): SQLiteStorageInstance;
|
|
31
|
+
};
|
|
File without changes
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
import { type Storage } from './interface.ts';
|
|
2
|
+
/**
|
|
3
|
+
* A string-valued key/value row from an existing application store.
|
|
4
|
+
*
|
|
5
|
+
* The importer treats both fields as application data: `key` becomes the
|
|
6
|
+
* unencoded suffix under the optional target prefix, and `value` is encoded
|
|
7
|
+
* as UTF-8 bytes before writing to Weft storage.
|
|
8
|
+
*
|
|
9
|
+
* @example
|
|
10
|
+
* ```ts
|
|
11
|
+
* import { type TextKeyValueRow } from '@lostgradient/weft/storage';
|
|
12
|
+
*
|
|
13
|
+
* const row: TextKeyValueRow = {
|
|
14
|
+
* key: 'session:1',
|
|
15
|
+
* value: '{"status":"open"}',
|
|
16
|
+
* };
|
|
17
|
+
* console.log(row.key); // 'session:1'
|
|
18
|
+
* ```
|
|
19
|
+
*/
|
|
20
|
+
export type TextKeyValueRow = {
|
|
21
|
+
key: string;
|
|
22
|
+
value: string;
|
|
23
|
+
};
|
|
24
|
+
/**
|
|
25
|
+
* Options for {@link copyTextKeyValueRowsToStorage}.
|
|
26
|
+
*
|
|
27
|
+
* @example
|
|
28
|
+
* ```ts
|
|
29
|
+
* import { MemoryStorage, type CopyTextKeyValueRowsToStorageOptions } from '@lostgradient/weft/storage';
|
|
30
|
+
*
|
|
31
|
+
* await using storage = new MemoryStorage();
|
|
32
|
+
* const options: CopyTextKeyValueRowsToStorageOptions = {
|
|
33
|
+
* storage,
|
|
34
|
+
* targetPrefix: 'app:my-service',
|
|
35
|
+
* rows: [{ key: 'session:1', value: 'active' }],
|
|
36
|
+
* };
|
|
37
|
+
* console.log(options.targetPrefix); // 'app:my-service'
|
|
38
|
+
* ```
|
|
39
|
+
*/
|
|
40
|
+
export type CopyTextKeyValueRowsToStorageOptions = {
|
|
41
|
+
/** Destination Weft storage that receives UTF-8 encoded values. */
|
|
42
|
+
storage: Storage;
|
|
43
|
+
/** Source rows from a string-valued key/value store. */
|
|
44
|
+
rows: Iterable<TextKeyValueRow> | AsyncIterable<TextKeyValueRow>;
|
|
45
|
+
/**
|
|
46
|
+
* Optional application namespace applied before each source key. A value like
|
|
47
|
+
* `app:my-service` writes source key `session:1` to
|
|
48
|
+
* `app:my-service:session:1`.
|
|
49
|
+
*/
|
|
50
|
+
targetPrefix?: string;
|
|
51
|
+
};
|
|
52
|
+
/**
|
|
53
|
+
* Result returned by {@link copyTextKeyValueRowsToStorage}.
|
|
54
|
+
*
|
|
55
|
+
* @example
|
|
56
|
+
* ```ts
|
|
57
|
+
* import { type CopyTextKeyValueRowsToStorageResult } from '@lostgradient/weft/storage';
|
|
58
|
+
*
|
|
59
|
+
* const result: CopyTextKeyValueRowsToStorageResult = { copied: 3 };
|
|
60
|
+
* console.log(result.copied); // 3
|
|
61
|
+
* ```
|
|
62
|
+
*/
|
|
63
|
+
export type CopyTextKeyValueRowsToStorageResult = {
|
|
64
|
+
/** Number of rows copied into the target storage. */
|
|
65
|
+
copied: number;
|
|
66
|
+
};
|
|
67
|
+
/**
|
|
68
|
+
* Copy string-valued key/value rows into a Weft byte-oriented storage backend.
|
|
69
|
+
*
|
|
70
|
+
* This helper is for one-time imports from application stores that already hold
|
|
71
|
+
* text values. It encodes values as UTF-8 bytes, optionally prefixes target
|
|
72
|
+
* keys, and refuses to overwrite existing target keys.
|
|
73
|
+
*
|
|
74
|
+
* @example
|
|
75
|
+
* ```ts
|
|
76
|
+
* import { MemoryStorage, copyTextKeyValueRowsToStorage } from '@lostgradient/weft/storage';
|
|
77
|
+
*
|
|
78
|
+
* await using storage = new MemoryStorage();
|
|
79
|
+
* const result = await copyTextKeyValueRowsToStorage({
|
|
80
|
+
* storage,
|
|
81
|
+
* targetPrefix: 'app:my-service',
|
|
82
|
+
* rows: [{ key: 'session:1', value: 'active' }],
|
|
83
|
+
* });
|
|
84
|
+
* console.log(result.copied); // 1
|
|
85
|
+
* ```
|
|
86
|
+
*/
|
|
87
|
+
export declare function copyTextKeyValueRowsToStorage(options: CopyTextKeyValueRowsToStorageOptions): Promise<CopyTextKeyValueRowsToStorageResult>;
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import {
|
|
2
|
+
WEFT_RESERVED_KEY_PREFIXES,
|
|
3
|
+
storageConditionalBatch,
|
|
4
|
+
storageHas
|
|
5
|
+
} from "./interface.js";
|
|
6
|
+
const textEncoder = new TextEncoder;
|
|
7
|
+
function normalizeTargetPrefix(prefix) {
|
|
8
|
+
return prefix?.replaceAll(/:+$/g, "") ?? "";
|
|
9
|
+
}
|
|
10
|
+
function toTargetKey(prefix, key) {
|
|
11
|
+
if (prefix.length === 0)
|
|
12
|
+
return key;
|
|
13
|
+
return key.length === 0 ? `${prefix}:` : `${prefix}:${key}`;
|
|
14
|
+
}
|
|
15
|
+
async function collectRows(rows, targetPrefix) {
|
|
16
|
+
const collected = [], seenTargetKeys = new Set;
|
|
17
|
+
for await (const row of rows) {
|
|
18
|
+
if (typeof row.key !== "string")
|
|
19
|
+
throw TypeError("Text key-value import rows must have string keys.");
|
|
20
|
+
if (typeof row.value !== "string")
|
|
21
|
+
throw TypeError("Text key-value import rows must have string values.");
|
|
22
|
+
const targetKey = toTargetKey(targetPrefix, row.key);
|
|
23
|
+
if (WEFT_RESERVED_KEY_PREFIXES.some((prefix) => targetKey.startsWith(prefix)))
|
|
24
|
+
throw Error(`Text key-value import target key "${targetKey}" uses a Weft-reserved key prefix.`);
|
|
25
|
+
if (seenTargetKeys.has(targetKey))
|
|
26
|
+
throw Error(`Text key-value import source produced duplicate target key "${targetKey}".`);
|
|
27
|
+
seenTargetKeys.add(targetKey);
|
|
28
|
+
collected.push({ ...row, targetKey });
|
|
29
|
+
}
|
|
30
|
+
return collected;
|
|
31
|
+
}
|
|
32
|
+
export async function copyTextKeyValueRowsToStorage(options) {
|
|
33
|
+
const targetPrefix = normalizeTargetPrefix(options.targetPrefix), rows = await collectRows(options.rows, targetPrefix);
|
|
34
|
+
if (rows.length === 0)
|
|
35
|
+
return { copied: 0 };
|
|
36
|
+
for (const row of rows)
|
|
37
|
+
if (await storageHas(options.storage, row.targetKey))
|
|
38
|
+
throw Error(`Target storage already contains key "${row.targetKey}".`);
|
|
39
|
+
const conditions = rows.map((row) => ({
|
|
40
|
+
key: row.targetKey,
|
|
41
|
+
expectedValue: null
|
|
42
|
+
})), operations = rows.map((row) => ({
|
|
43
|
+
type: "put",
|
|
44
|
+
key: row.targetKey,
|
|
45
|
+
value: textEncoder.encode(row.value)
|
|
46
|
+
}));
|
|
47
|
+
if (!await storageConditionalBatch(options.storage, conditions, operations))
|
|
48
|
+
throw Error("Target storage changed before import could commit.");
|
|
49
|
+
return { copied: rows.length };
|
|
50
|
+
}
|
|
@@ -0,0 +1,171 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Text-value compatibility wrapper.
|
|
3
|
+
*
|
|
4
|
+
* Adapts Weft's `Uint8Array`-keyed {@link Storage} to a generic
|
|
5
|
+
* string-valued key/value interface with an array-returning prefix
|
|
6
|
+
* list. The shape is what downstream consumers that expect a string
|
|
7
|
+
* `KeyValueStore` typically require. The wrapper lives in Weft so
|
|
8
|
+
* that adopting Weft storage does not require any runtime dependency
|
|
9
|
+
* on those consumers.
|
|
10
|
+
*
|
|
11
|
+
* Encoding is UTF-8 with fatal decoding: invalid byte sequences raise
|
|
12
|
+
* `TypeError` rather than silently producing replacement characters,
|
|
13
|
+
* so a string consumer never sees corrupted data masquerading as
|
|
14
|
+
* valid text.
|
|
15
|
+
*
|
|
16
|
+
* @module @lostgradient/weft/storage/text-value-store
|
|
17
|
+
*/
|
|
18
|
+
import { type Storage } from './interface';
|
|
19
|
+
/**
|
|
20
|
+
* Options for {@link textValueStore}.
|
|
21
|
+
*
|
|
22
|
+
* @example
|
|
23
|
+
* ```ts
|
|
24
|
+
* import { type TextValueStoreOptions } from '@lostgradient/weft/storage';
|
|
25
|
+
*
|
|
26
|
+
* const options: TextValueStoreOptions = {
|
|
27
|
+
* disposeUnderlyingStorage: false,
|
|
28
|
+
* };
|
|
29
|
+
* console.log(options.disposeUnderlyingStorage); // false
|
|
30
|
+
* ```
|
|
31
|
+
*/
|
|
32
|
+
export type TextValueStoreOptions = {
|
|
33
|
+
/**
|
|
34
|
+
* Whether `close()` disposes the wrapped storage. Defaults to `true` so the
|
|
35
|
+
* existing owning-wrapper behavior is preserved. Set `false` when the same
|
|
36
|
+
* storage instance is shared by the Weft engine and application state.
|
|
37
|
+
*/
|
|
38
|
+
disposeUnderlyingStorage?: boolean;
|
|
39
|
+
};
|
|
40
|
+
/**
|
|
41
|
+
* Text compare-and-swap precondition used by
|
|
42
|
+
* {@link ConditionalTextValueStore.conditionalBatch}.
|
|
43
|
+
*
|
|
44
|
+
* @example
|
|
45
|
+
* ```ts
|
|
46
|
+
* import { type TextValueStoreCondition } from '@lostgradient/weft/storage';
|
|
47
|
+
*
|
|
48
|
+
* const condition: TextValueStoreCondition = {
|
|
49
|
+
* key: 'api-key:1:last-used-at',
|
|
50
|
+
* expectedValue: '2026-06-01T00:00:00.000Z',
|
|
51
|
+
* };
|
|
52
|
+
* console.log(condition.key); // 'api-key:1:last-used-at'
|
|
53
|
+
* ```
|
|
54
|
+
*/
|
|
55
|
+
export type TextValueStoreCondition = {
|
|
56
|
+
/** Key whose current text value must match `expectedValue`. */
|
|
57
|
+
key: string;
|
|
58
|
+
/** Required current value, or `null` to require the key to be absent. */
|
|
59
|
+
expectedValue: string | null;
|
|
60
|
+
};
|
|
61
|
+
/**
|
|
62
|
+
* Text mutation applied by {@link ConditionalTextValueStore.conditionalBatch}.
|
|
63
|
+
*
|
|
64
|
+
* `set` and `put` are synonyms so callers can use the naming convention of
|
|
65
|
+
* their string store while Weft still delegates to raw storage `put`.
|
|
66
|
+
*
|
|
67
|
+
* @example
|
|
68
|
+
* ```ts
|
|
69
|
+
* import { type TextValueStoreBatchOperation } from '@lostgradient/weft/storage';
|
|
70
|
+
*
|
|
71
|
+
* const operation: TextValueStoreBatchOperation = {
|
|
72
|
+
* type: 'set',
|
|
73
|
+
* key: 'session:1',
|
|
74
|
+
* value: 'active',
|
|
75
|
+
* };
|
|
76
|
+
* console.log(operation.type); // 'set'
|
|
77
|
+
* ```
|
|
78
|
+
*/
|
|
79
|
+
export type TextValueStoreBatchOperation = {
|
|
80
|
+
type: 'set';
|
|
81
|
+
key: string;
|
|
82
|
+
value: string;
|
|
83
|
+
} | {
|
|
84
|
+
type: 'put';
|
|
85
|
+
key: string;
|
|
86
|
+
value: string;
|
|
87
|
+
} | {
|
|
88
|
+
type: 'delete';
|
|
89
|
+
key: string;
|
|
90
|
+
};
|
|
91
|
+
/**
|
|
92
|
+
* String-valued key/value store layered on top of a Weft {@link Storage}.
|
|
93
|
+
*
|
|
94
|
+
* Matches the structural shape downstream consumers commonly require
|
|
95
|
+
* from a string `KeyValueStore` backend: `get`/`set`/`delete` over
|
|
96
|
+
* UTF-8 text, a `list(prefix)` that materializes keys into an array,
|
|
97
|
+
* and optional `has`, `deletePrefix`, and `close` helpers.
|
|
98
|
+
*
|
|
99
|
+
* @example
|
|
100
|
+
* ```ts
|
|
101
|
+
* import { MemoryStorage } from '@lostgradient/weft';
|
|
102
|
+
* import { textValueStore, type TextValueStore } from '@lostgradient/weft/storage/text-value-store';
|
|
103
|
+
*
|
|
104
|
+
* await using base = new MemoryStorage();
|
|
105
|
+
* const store: TextValueStore = textValueStore(base);
|
|
106
|
+
* await store.set('greeting', 'hello');
|
|
107
|
+
* console.log(await store.get('greeting')); // 'hello'
|
|
108
|
+
* ```
|
|
109
|
+
*/
|
|
110
|
+
export type TextValueStore = {
|
|
111
|
+
/** Read the UTF-8 text stored at `key`, or `null` if absent. */
|
|
112
|
+
get(key: string): Promise<string | null>;
|
|
113
|
+
/** Write `value` as UTF-8 bytes at `key`. */
|
|
114
|
+
set(key: string, value: string): Promise<void>;
|
|
115
|
+
/** Delete `key`. No-op when absent. */
|
|
116
|
+
delete(key: string): Promise<void>;
|
|
117
|
+
/**
|
|
118
|
+
* Materialize every key matching `prefix` into a stable array.
|
|
119
|
+
* The array reflects the underlying storage's natural scan order.
|
|
120
|
+
* For very large prefixes prefer streaming via the underlying
|
|
121
|
+
* `Storage` directly.
|
|
122
|
+
*/
|
|
123
|
+
list(prefix: string): Promise<string[]>;
|
|
124
|
+
/** Check whether `key` exists. */
|
|
125
|
+
has(key: string): Promise<boolean>;
|
|
126
|
+
/** Delete every key under `prefix`. Returns the number deleted. */
|
|
127
|
+
deletePrefix(prefix: string): Promise<number>;
|
|
128
|
+
/** Close the wrapper, disposing the underlying storage unless configured otherwise. */
|
|
129
|
+
close(): Promise<void>;
|
|
130
|
+
};
|
|
131
|
+
/**
|
|
132
|
+
* Text store returned by {@link textValueStore}. It keeps the base
|
|
133
|
+
* {@link TextValueStore} shape source-compatible for external implementations
|
|
134
|
+
* while exposing compare-and-swap on Weft's wrapper.
|
|
135
|
+
*
|
|
136
|
+
* @example
|
|
137
|
+
* ```ts
|
|
138
|
+
* import { MemoryStorage } from '@lostgradient/weft/storage';
|
|
139
|
+
* import { type ConditionalTextValueStore, textValueStore } from '@lostgradient/weft/storage/text-value-store';
|
|
140
|
+
*
|
|
141
|
+
* await using storage = new MemoryStorage();
|
|
142
|
+
* const store: ConditionalTextValueStore = textValueStore(storage);
|
|
143
|
+
* const committed = await store.conditionalBatch(
|
|
144
|
+
* [{ key: 'session:1', expectedValue: null }],
|
|
145
|
+
* [{ type: 'set', key: 'session:1', value: 'open' }],
|
|
146
|
+
* );
|
|
147
|
+
* console.log(committed); // true
|
|
148
|
+
* ```
|
|
149
|
+
*/
|
|
150
|
+
export type ConditionalTextValueStore = TextValueStore & {
|
|
151
|
+
/** Apply a compare-and-swap batch over UTF-8 text values. */
|
|
152
|
+
conditionalBatch(conditions: TextValueStoreCondition[], operations: TextValueStoreBatchOperation[]): Promise<boolean>;
|
|
153
|
+
};
|
|
154
|
+
/**
|
|
155
|
+
* Wrap a Weft {@link Storage} so it satisfies the {@link TextValueStore}
|
|
156
|
+
* shape. The wrapper holds no state of its own — every call delegates
|
|
157
|
+
* to `storage` after UTF-8 encoding or decoding.
|
|
158
|
+
*
|
|
159
|
+
* @example
|
|
160
|
+
* ```ts
|
|
161
|
+
* import { MemoryStorage } from '@lostgradient/weft';
|
|
162
|
+
* import { textValueStore } from '@lostgradient/weft/storage/text-value-store';
|
|
163
|
+
*
|
|
164
|
+
* await using base = new MemoryStorage();
|
|
165
|
+
* const store = textValueStore(base);
|
|
166
|
+
* await store.set('greeting', 'hello 🌍');
|
|
167
|
+
* console.log(await store.get('greeting')); // 'hello 🌍'
|
|
168
|
+
* console.log(await store.list('')); // ['greeting']
|
|
169
|
+
* ```
|
|
170
|
+
*/
|
|
171
|
+
export declare function textValueStore(storage: Storage, options?: TextValueStoreOptions): ConditionalTextValueStore;
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import {
|
|
2
|
+
storageConditionalBatch,
|
|
3
|
+
storageDeletePrefix,
|
|
4
|
+
storageHas,
|
|
5
|
+
storageKeys
|
|
6
|
+
} from "./interface.js";
|
|
7
|
+
const textEncoder = new TextEncoder, textDecoder = new TextDecoder("utf-8", { fatal: !0, ignoreBOM: !0 });
|
|
8
|
+
export function textValueStore(storage, options = {}) {
|
|
9
|
+
const disposeUnderlyingStorage = options.disposeUnderlyingStorage ?? !0, encodeCondition = (condition) => ({
|
|
10
|
+
key: condition.key,
|
|
11
|
+
expectedValue: condition.expectedValue === null ? null : textEncoder.encode(condition.expectedValue)
|
|
12
|
+
}), encodeOperation = (operation) => {
|
|
13
|
+
if (operation.type === "delete")
|
|
14
|
+
return operation;
|
|
15
|
+
return {
|
|
16
|
+
type: "put",
|
|
17
|
+
key: operation.key,
|
|
18
|
+
value: textEncoder.encode(operation.value)
|
|
19
|
+
};
|
|
20
|
+
};
|
|
21
|
+
return {
|
|
22
|
+
async get(key) {
|
|
23
|
+
const bytes = await storage.get(key);
|
|
24
|
+
if (bytes === null)
|
|
25
|
+
return null;
|
|
26
|
+
return textDecoder.decode(bytes);
|
|
27
|
+
},
|
|
28
|
+
async set(key, value) {
|
|
29
|
+
await storage.put(key, textEncoder.encode(value));
|
|
30
|
+
},
|
|
31
|
+
async delete(key) {
|
|
32
|
+
await storage.delete(key);
|
|
33
|
+
},
|
|
34
|
+
async list(prefix) {
|
|
35
|
+
const keys = [];
|
|
36
|
+
for await (const key of storageKeys(storage, prefix))
|
|
37
|
+
keys.push(key);
|
|
38
|
+
return keys;
|
|
39
|
+
},
|
|
40
|
+
async has(key) {
|
|
41
|
+
return storageHas(storage, key);
|
|
42
|
+
},
|
|
43
|
+
async deletePrefix(prefix) {
|
|
44
|
+
return storageDeletePrefix(storage, prefix);
|
|
45
|
+
},
|
|
46
|
+
async conditionalBatch(conditions, operations) {
|
|
47
|
+
return storageConditionalBatch(storage, conditions.map(encodeCondition), operations.map(encodeOperation));
|
|
48
|
+
},
|
|
49
|
+
async close() {
|
|
50
|
+
if (!disposeUnderlyingStorage)
|
|
51
|
+
return;
|
|
52
|
+
storage[Symbol.dispose]();
|
|
53
|
+
}
|
|
54
|
+
};
|
|
55
|
+
}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import { type DeleteRangeOptions } from './delete-range';
|
|
2
|
+
import { type BatchOperation, type ConditionalBatchCondition, type ScanOptions, type Storage, type StorageCapabilities } from './interface';
|
|
3
|
+
/**
|
|
4
|
+
* Configuration for connecting to a Turso/libSQL database.
|
|
5
|
+
*
|
|
6
|
+
* @example
|
|
7
|
+
* ```ts
|
|
8
|
+
* import { TursoStorage, type TursoStorageOptions } from '@lostgradient/weft/storage/turso';
|
|
9
|
+
*
|
|
10
|
+
* const options: TursoStorageOptions = {
|
|
11
|
+
* url: 'file:local.db',
|
|
12
|
+
* };
|
|
13
|
+
* await using storage = new TursoStorage(options);
|
|
14
|
+
* ```
|
|
15
|
+
*/
|
|
16
|
+
export type TursoStorageOptions = {
|
|
17
|
+
/** The database URL (e.g., `libsql://your-db.turso.io`, `file:local.db`, `file::memory:`). */
|
|
18
|
+
url: string;
|
|
19
|
+
/** Authentication token for remote Turso databases. */
|
|
20
|
+
authToken?: string;
|
|
21
|
+
};
|
|
22
|
+
/**
|
|
23
|
+
* Storage adapter backed by Turso/libSQL for distributed SQLite deployments.
|
|
24
|
+
*
|
|
25
|
+
* Implements the same `Storage` interface as `BunSQLiteStorage`, but uses `@libsql/client`
|
|
26
|
+
* so the database can be a remote Turso instance or a local file.
|
|
27
|
+
* Switch from `BunSQLiteStorage` to `TursoStorage` by changing the connection string —
|
|
28
|
+
* the rest of the application stays the same.
|
|
29
|
+
*
|
|
30
|
+
* @example
|
|
31
|
+
* ```ts
|
|
32
|
+
* import { TursoStorage } from '@lostgradient/weft/storage/turso';
|
|
33
|
+
* import { Engine } from '@lostgradient/weft';
|
|
34
|
+
*
|
|
35
|
+
* await using storage = new TursoStorage({
|
|
36
|
+
* url: 'libsql://my-db.turso.io',
|
|
37
|
+
* ...(process.env['TURSO_AUTH_TOKEN'] ? { authToken: process.env['TURSO_AUTH_TOKEN'] } : {}),
|
|
38
|
+
* });
|
|
39
|
+
* await using engine = new Engine({ storage });
|
|
40
|
+
* ```
|
|
41
|
+
*/
|
|
42
|
+
export declare class TursoStorage implements Storage {
|
|
43
|
+
#private;
|
|
44
|
+
constructor(options: TursoStorageOptions);
|
|
45
|
+
capabilities(): StorageCapabilities;
|
|
46
|
+
get(key: string): Promise<Uint8Array | null>;
|
|
47
|
+
put(key: string, value: Uint8Array): Promise<void>;
|
|
48
|
+
delete(key: string): Promise<void>;
|
|
49
|
+
has(key: string): Promise<boolean>;
|
|
50
|
+
deletePrefix(prefix: string): Promise<number>;
|
|
51
|
+
deleteRange(prefix: string, options: DeleteRangeOptions): Promise<number>;
|
|
52
|
+
scan(prefix: string, options?: ScanOptions): AsyncIterable<[string, Uint8Array]>;
|
|
53
|
+
keys(prefix: string, options?: ScanOptions): AsyncIterable<string>;
|
|
54
|
+
count(prefix: string): Promise<number>;
|
|
55
|
+
scoped(prefix: string): Storage;
|
|
56
|
+
batch(operations: BatchOperation[]): Promise<void>;
|
|
57
|
+
conditionalBatch(conditions: ConditionalBatchCondition[], operations: BatchOperation[]): Promise<boolean>;
|
|
58
|
+
query<T>(sql: string, parameters?: unknown[]): Promise<T[]>;
|
|
59
|
+
[Symbol.dispose](): void;
|
|
60
|
+
}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
// @bun
|
|
2
|
+
var WW=Object.defineProperty;var FW=(W)=>W;function XW(W,F){this[W]=FW.bind(null,F)}var AW=(W,F)=>{for(var X in F)WW(W,X,{get:F[X],enumerable:!0,configurable:!0,set:XW.bind(F,X)})};var U=(W,F)=>()=>(W&&(F=W(W=0)),F);function O(W,F,X){if(!W.capabilities()[F])throw Error(`Feature "${X}" requires storage capability "${F}", but this storage backend does not provide it.`)}function JW(W){let F=W.capabilities(),X=[];if(F.persistence!=="local")X.push(`persistence must be "local" (got "${F.persistence}")`);if(F.readAfterWrite!=="linearizable")X.push(`readAfterWrite must be "linearizable" (got "${F.readAfterWrite}")`);if(F.scanConsistency!=="snapshot")X.push(`scanConsistency must be "snapshot" (got "${F.scanConsistency}")`);if(!F.atomicBatch)X.push("atomicBatch must be true");if(!F.conditionalBatch)X.push("conditionalBatch must be true");if(X.length>0)throw Error(`Storage is not durable enough for recovery: ${X.join("; ")}.`)}var _="default";async function E(W,F){return await W.get(F)!==null}async function*Y(W,F,X){for await(let[Z]of W.scan(F,X))yield Z}async function v(W,F){let X=0;for await(let Z of Y(W,F))X++;return X}async function h(W,F){let X=[];for await(let Z of Y(W,F))X.push({type:"delete",key:Z});if(X.length===0)return 0;return await W.batch(X),X.length}async function T(W,F,X){let Z=[];for await(let $ of Y(W,F,X))Z.push({type:"delete",key:$});if(Z.length===0)return 0;return await W.batch(Z),Z.length}var ZW;var b=U(()=>{ZW=["actrec:","archive:","async-act:","attr:","audit:bulk:","blob:","budget:","budget-charged:","ev:","idx:","offload:","op:","review:","schedule:","schedule-due:","schedule-run:","sig:","sigres:","sigseq:","state:","tag:","tool-effect:","upd:","upk:","upr:","wf:","wf-cleanup:","wf-cleanup-needed:","wf-deadline:","wf-delayed:","wf-headers:","wf-idx-","wf-terminal:"]});function C(W){return W.length>0?W.slice(0,-1)+String.fromCharCode(W.charCodeAt(W.length-1)+1):"\xFF"}function CW(W,F={}){if(F.gt!==void 0&&W<=F.gt)return!1;if(F.gte!==void 0&&W<F.gte)return!1;if(F.lt!==void 0&&W>=F.lt)return!1;if(F.lte!==void 0&&W>F.lte)return!1;return!0}function K(W,F){if(W===null||F===null)return W===F;if(W.byteLength!==F.byteLength)return!1;for(let X=0;X<W.byteLength;X++)if(W[X]!==F[X])return!1;return!0}async function x(W,F){if(W.has)return W.has(F);return E(W,F)}function I(W,F,X){if(W.keys)return W.keys(F,X);return Y(W,F,X)}async function u(W,F){if(W.count)return W.count(F);return v(W,F)}async function S(W,F){if(W.deletePrefix)return W.deletePrefix(F);return h(W,F)}async function k(W,F,X){if(O(W,"conditionalBatch","storageConditionalBatch"),!W.conditionalBatch)throw Error("This storage backend reports conditionalBatch capability but does not implement the conditionalBatch() method.");return W.conditionalBatch(F,X)}function J(W){return encodeURIComponent(W)}function KW(W){return decodeURIComponent(W)}function xW(W){try{return decodeURIComponent(W)}catch{return null}}var G=(W)=>String(W).padStart(16,"0"),IW;var V=U(()=>{b();IW={workflow:(W)=>`wf:${J(W)}`,checkpoint:(W)=>`wf:${J(W)}:ckpt`,checkpointHistory:(W,F)=>`wf:${J(W)}:ckpt:${String(F).padStart(10,"0")}`,timelinePrefix:(W)=>`wf:${J(W)}:timeline:`,timeline:(W,F)=>`wf:${J(W)}:timeline:${String(F).padStart(10,"0")}`,schedule:(W)=>`schedule:${J(W)}`,scheduleTick:(W,F)=>`schedule-due:${String(W).padStart(16,"0")}:${J(F)}`,scheduleRun:(W)=>`schedule-run:${J(W)}`,operation:(W,F,X)=>`op:${W}:${G(F)}:${X}`,operationInflight:(W)=>`op:inflight:${W}`,operationQueued:(W)=>`op:queued:${W}`,operationResolved:(W)=>`op:resolved:${W}`,bulkOperationAuditPrefix:()=>"audit:bulk:",bulkOperationAudit:(W,F,X)=>`audit:bulk:${G(W)}:${J(F)}:${J(X)}`,operationResolvedByTimePrefix:()=>"op:resolved-by-time:",operationResolvedByTime:(W,F)=>`op:resolved-by-time:${G(W)}:${J(F)}`,asyncActivity:(W,F)=>`async-act:v1:${J(W)}:${J(F)}`,activityReconciliationPrefix:(W)=>`actrec:v1:${J(W)}:`,activityReconciliation:(W,F,X)=>`actrec:v1:${J(W)}:${J(F)}:${X}`,eventPrefix:(W)=>`ev:${J(W)}:`,event:(W,F)=>`ev:${J(W)}:${String(F).padStart(10,"0")}`,eventHead:(W)=>`ev:${J(W)}:head`,eventWatermark:(W)=>`ev:${J(W)}:watermark`,signal:(W,F,X)=>`sig:${J(W)}:${F}:${J(X)}`,signalSequence:(W)=>`sigseq:v1:${J(W)}`,signalAcceptedResponsePrefix:(W)=>`sigres:v1:${J(W)}:`,signalAcceptedResponse:(W,F,X)=>`sigres:v1:${J(W)}:${J(F)}:${J(X)}`,deadline:(W,F)=>`wf-deadline:${G(W)}:${J(F)}`,terminalCleanup:(W,F)=>`wf-cleanup:${G(W)}:${J(F)}`,delayedStart:(W,F)=>`wf-delayed:${G(W)}:${J(F)}`,terminalWorkflowPrefix:()=>"wf-terminal:",terminalWorkflow:(W,F)=>`wf-terminal:${G(W)}:${J(F)}`,attribute:(W)=>`attr:${J(W)}`,attributeIndex:(W,F,X)=>`idx:${W}:${F}:${J(X)}`,tagIndex:(W,F)=>`tag:${J(W)}:${J(F)}`,updatePrefix:(W)=>`upd:${J(W)}:`,update:(W,F)=>`upd:${J(W)}:${F}`,updateResponse:(W)=>`upr:${W}`,updateIdempotency:(W,F)=>`upk:${J(W)}:${F}`,budget:(W,F,X)=>`budget:${W}:${F}:${X}`,review:(W,F)=>`review:${J(W)}:${F}`,workflowHeaders:(W)=>`wf-headers:${J(W)}`,terminalCleanupNeeded:(W)=>`wf-cleanup-needed:${J(W)}`,offload:(W,F)=>`offload:${J(W)}:${F}`,archive:(W,F)=>`archive:${J(W)}:${F}`,stateExecution:(W,F)=>`state:execution:${J(W)}:${J(F)}`,stateWorkflow:(W,F)=>`state:workflow-scope:${_}:${J(W)}:${J(F)}`,streamChunkPrefix:(W,F)=>`blob:${J(W)}:${F}:chunk:`,streamChunk:(W,F,X)=>`blob:${J(W)}:${F}:chunk:${String(X).padStart(10,"0")}`,streamMetadata:(W,F)=>`blob:${J(W)}:${F}:meta`,budgetCharged:(W)=>`budget-charged:${W}`,toolEffect:(W,F,X)=>`tool-effect:${J(W)}:${F}:${X}`,workflowVisibilityStatus:(W,F)=>`wf-idx-status:${J(W)}:${J(F)}`,workflowVisibilityType:(W,F)=>`wf-idx-type:${J(W)}:${J(F)}`,workflowVisibilityCreated:(W,F)=>`wf-idx-created:${G(W)}:${J(F)}`,workflowVisibilityUpdated:(W,F)=>`wf-idx-updated:${G(W)}:${J(F)}`,workflowVisibilityDeadline:(W,F)=>`wf-idx-deadline:${G(W)}:${J(F)}`,workflowVisibilityManifest:(W)=>`wf-idx-manifest:${J(W)}`,workflowVisibilityMetaVersion:()=>"wf-idx-meta:version",workflowVisibilityMetaBuiltAt:()=>"wf-idx-meta:built-at",workflowVisibilityMetaCursor:()=>"wf-idx-meta:cursor"}});function $W(W){if(W===void 0)return;if(typeof W!=="number"||!Number.isInteger(W)||W<0)throw Error("deleteRange limit must be a finite non-negative integer");return W===0?0:W}function Q(W){let F={},X=!1;for(let $ of["gt","gte","lt","lte"]){let j=W[$];if(j===void 0)continue;if(typeof j!=="string")throw Error("deleteRange bounds must be strings");F[$]=j,X=!0}if(!X)throw Error("deleteRange requires at least one of gt/gte/lt/lte; use deletePrefix to delete a whole prefix");let Z=$W(W.limit);if(Z!==void 0)F.limit=Z;return F}async function w(W,F,X){let Z=Q(X);if(W.deleteRange)return W.deleteRange(F,Z);return T(W,F,Z)}var z=()=>{};function A(W){return W.replaceAll(/:+$/g,"")}function jW(W,F){let X=A(W),Z=A(F);if(X.length===0)return Z;if(Z.length===0)return X;return`${X}:${Z}`}function y(W,F){return new P(W,F)}var P;var c=U(()=>{z();V();P=class P{#W;#J;constructor(W,F){this.#W=W,this.#J=A(F)}#F(W){if(this.#J.length===0)return W;return W.length===0?`${this.#J}:`:`${this.#J}:${W}`}#X(W){if(this.#J.length===0)return W;return W.slice(this.#J.length+1)}#Z(W={}){let F={};if(W.limit!==void 0)F.limit=W.limit;if(W.reverse!==void 0)F.reverse=W.reverse;if(W.gt!==void 0)F.gt=this.#F(W.gt);if(W.gte!==void 0)F.gte=this.#F(W.gte);if(W.lt!==void 0)F.lt=this.#F(W.lt);if(W.lte!==void 0)F.lte=this.#F(W.lte);return F}#$(W){let F={};if(W.limit!==void 0)F.limit=W.limit;if(W.gt!==void 0)F.gt=this.#F(W.gt);if(W.gte!==void 0)F.gte=this.#F(W.gte);if(W.lt!==void 0)F.lt=this.#F(W.lt);if(W.lte!==void 0)F.lte=this.#F(W.lte);return F}capabilities(){return this.#W.capabilities()}scoped(W){return new P(this.#W,jW(this.#J,W))}async get(W){return this.#W.get(this.#F(W))}async put(W,F){await this.#W.put(this.#F(W),F)}async delete(W){await this.#W.delete(this.#F(W))}async*scan(W,F){for await(let[X,Z]of this.#W.scan(this.#F(W),this.#Z(F)))yield[this.#X(X),Z]}async batch(W){await this.#W.batch(W.map((F)=>{if(F.type==="put")return{type:"put",key:this.#F(F.key),value:F.value};return{type:"delete",key:this.#F(F.key)}}))}async conditionalBatch(W,F){return k(this.#W,W.map((X)=>({key:this.#F(X.key),expectedValue:X.expectedValue})),F.map((X)=>{if(X.type==="put")return{type:"put",key:this.#F(X.key),value:X.value};return{type:"delete",key:this.#F(X.key)}}))}async has(W){return x(this.#W,this.#F(W))}async deletePrefix(W){return S(this.#W,this.#F(W))}async deleteRange(W,F){let X=this.#$(Q(F));return w(this.#W,this.#F(W),X)}async*keys(W,F){for await(let X of I(this.#W,this.#F(W),this.#Z(F)))yield this.#X(X)}async count(W){return u(this.#W,this.#F(W))}[Symbol.dispose](){this.#W[Symbol.dispose]()}}});function UW(W){return W.trim().replace(/;+\s*$/u,"").trim()}function NW(W){return HW.test(W)}function m(W){let F=UW(W);if(F.length===0)throw Error("Storage query must not be empty.");if(F.includes(";"))throw Error("Storage query must contain exactly one read-only statement.");if(MW.test(F))return;if(GW.test(F)&&NW(F))return;throw Error("Storage query only supports read-only SELECT and PRAGMA statements.")}var GW,HW,MW;var f=U(()=>{GW=/^PRAGMA\b/iu,HW=/^PRAGMA\s+(?:[A-Z_][A-Z0-9_]*\.)?[A-Z_][A-Z0-9_]*\s*$/iu,MW=/^SELECT\b/iu});function R(W){return[W,C(W)]}function s(W,F){let{gt:X,gte:Z,lt:$,lte:j}=F,H=["key >= ? AND key < ?"],M=R(W);if(X!==void 0)H.push("key > ?"),M.push(X);if(Z!==void 0)H.push("key >= ?"),M.push(Z);if($!==void 0)H.push("key < ?"),M.push($);if(j!==void 0)H.push("key <= ?"),M.push(j);return{conditions:H,parameters:M}}function a(W,F={}){let{limit:X,reverse:Z}=F,{conditions:$,parameters:j}=s(W,F),H=Z?"DESC":"ASC",M=X!==void 0?" LIMIT ?":"";if(X!==void 0)j.push(X);return{parameters:j,sqlSuffix:`WHERE ${$.join(" AND ")} ORDER BY key ${H}${M}`}}function i(W,F){let{conditions:X,parameters:Z}=s(W,F),$=X.join(" AND ");if(F.limit===void 0)return{parameters:Z,sql:`DELETE FROM kv WHERE ${$}`};return Z.push(F.limit),{parameters:Z,sql:`DELETE FROM kv WHERE key IN (SELECT key FROM kv WHERE ${$} ORDER BY key ASC LIMIT ?)`}}function r(W,F={}){let{parameters:X,sqlSuffix:Z}=a(W,F);return{parameters:X,sql:`SELECT key, value FROM kv ${Z}`}}function n(W,F={}){let{parameters:X,sqlSuffix:Z}=a(W,F);return{parameters:X,sql:`SELECT key FROM kv ${Z}`}}var g=`CREATE TABLE IF NOT EXISTS kv (
|
|
3
|
+
key TEXT PRIMARY KEY,
|
|
4
|
+
value BLOB NOT NULL
|
|
5
|
+
) WITHOUT ROWID`,L="SELECT value FROM kv WHERE key = ?",D="INSERT INTO kv (key, value) VALUES (?, ?) ON CONFLICT(key) DO UPDATE SET value = excluded.value",B="DELETE FROM kv WHERE key = ?",d="SELECT 1 AS present FROM kv WHERE key = ? LIMIT 1",l="SELECT COUNT(*) AS count FROM kv WHERE key >= ? AND key < ?",p="DELETE FROM kv WHERE key >= ? AND key < ?";var t=U(()=>{V()});z();V();f();c();t();import{createClient as YW}from"@libsql/client";var o=`${g};`;function q(W){return typeof W==="object"&&W!==null&&"code"in W&&W.code==="SQLITE_BUSY"}async function QW(W){return W.transaction("write").catch((F)=>{if(q(F))return null;throw F})}async function VW(W){try{await W.rollback()}catch{}}async function DW(W){await new Promise((F)=>{setTimeout(F,Math.min(W*5,50))})}async function BW(W,F){for(let Z=1;Z<=10;Z++)try{await W.batch(F,"write");return}catch($){if(!q($)||Z===10)throw $;await DW(Z)}}async function RW(W,F){for(let X of F){let $=(await W.execute({sql:L,args:[X.key]})).rows[0]?.value,j=$===null||$===void 0?null:new Uint8Array($);if(!K(j,X.expectedValue))return!1}return!0}async function OW(W,F){for(let X of F)if(X.type==="put")await W.execute({sql:D,args:[X.key,X.value]});else await W.execute({sql:B,args:[X.key]})}function _W(W){if(W==="file::memory:"||W===":memory:")return"ephemeral";if(W.startsWith("file:"))return"local";return"remote"}class zW{#W;#J;#F=!1;constructor(W){this.#J=_W(W.url),this.#W=YW(W.authToken?{url:W.url,authToken:W.authToken}:{url:W.url})}capabilities(){return{persistence:this.#J,readAfterWrite:"session",scanConsistency:"snapshot",atomicBatch:!0,conditionalBatch:!0,boundedRangeDelete:!0}}async#X(){if(this.#F)return;await this.#W.executeMultiple(o),this.#F=!0}async get(W){await this.#X();let F=await this.#W.execute({sql:L,args:[W]});if(F.rows.length===0)return null;let X=F.rows[0].value;if(X===null||X===void 0)return null;return new Uint8Array(X)}async put(W,F){await this.#X(),await this.#W.execute({sql:D,args:[W,F]})}async delete(W){await this.#X(),await this.#W.execute({sql:B,args:[W]})}async has(W){return await this.#X(),(await this.#W.execute({sql:d,args:[W]})).rows.length>0}async deletePrefix(W){await this.#X();let[F,X]=R(W);return(await this.#W.execute({sql:p,args:[F,X]})).rowsAffected}async deleteRange(W,F){await this.#X();let X=Q(F),{parameters:Z,sql:$}=i(W,X);return(await this.#W.execute({sql:$,args:Z})).rowsAffected}async*scan(W,F={}){await this.#X();let{parameters:X,sql:Z}=r(W,F),$=await this.#W.execute({sql:Z,args:X});for(let j of $.rows){let{key:H,value:M}=j,e=new Uint8Array(M);yield[H,e]}}async*keys(W,F={}){await this.#X();let{parameters:X,sql:Z}=n(W,F),$=await this.#W.execute({sql:Z,args:X});for(let j of $.rows)yield j.key}async count(W){await this.#X();let[F,X]=R(W),Z=await this.#W.execute({sql:l,args:[F,X]});return Number(Z.rows[0]?.count??0)}scoped(W){return y(this,W)}async batch(W){if(W.length===0)return;await this.#X();let F=W.map((X)=>{if(X.type==="put")return{sql:D,args:[X.key,X.value]};return{sql:B,args:[X.key]}});await BW(this.#W,F)}async conditionalBatch(W,F){await this.#X();let X=await QW(this.#W);if(X===null)return!1;try{if(await X.executeMultiple(o),!await RW(X,W))return await X.rollback(),!1;return await OW(X,F),await X.commit(),!0}catch(Z){if(await VW(X),q(Z))return!1;throw Z}}async query(W,F){return await this.#X(),m(W),(await this.#W.execute({sql:W,args:F??[]})).rows}[Symbol.dispose](){this.#W.close()}}export{zW as TursoStorage};
|