dotdo 0.0.1 → 0.1.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 +1 -1
- package/README.md +446 -315
- package/cli/README.md +238 -0
- package/cli/agent.ts +72 -0
- package/cli/bin.js +44 -0
- package/cli/bin.ts +38 -0
- package/cli/build.ts +157 -0
- package/cli/commands/auth/login.ts +14 -0
- package/cli/commands/auth/logout.ts +6 -0
- package/cli/commands/auth/whoami.ts +16 -0
- package/cli/commands/deploy-multi.ts +245 -0
- package/cli/commands/dev/deploy.ts +100 -0
- package/cli/commands/dev/dev.ts +95 -0
- package/cli/commands/dev/logs.ts +91 -0
- package/cli/commands/dev-local.ts +88 -0
- package/cli/commands/do-ops.ts +314 -0
- package/cli/commands/index.ts +100 -0
- package/cli/commands/init.ts +247 -0
- package/cli/commands/introspect/emitter.ts +315 -0
- package/cli/commands/introspect/index.ts +193 -0
- package/cli/commands/link.ts +598 -0
- package/cli/commands/snippets.ts +415 -0
- package/cli/commands/tunnel.ts +239 -0
- package/cli/device-auth.ts +289 -0
- package/cli/fallback.ts +12 -0
- package/cli/index.ts +121 -0
- package/cli/main.ts +246 -0
- package/cli/mcp-stdio.ts +790 -0
- package/cli/package.json +62 -0
- package/cli/runtime/do-registry.ts +193 -0
- package/cli/runtime/embedded-db.ts +344 -0
- package/cli/runtime/index.ts +9 -0
- package/cli/runtime/miniflare-adapter.ts +162 -0
- package/cli/sandbox.ts +82 -0
- package/cli/src/args.ts +174 -0
- package/cli/src/auth.ts +55 -0
- package/cli/src/commands/call.ts +84 -0
- package/cli/src/commands/charge.ts +96 -0
- package/cli/src/commands/config.ts +115 -0
- package/cli/src/commands/email.ts +112 -0
- package/cli/src/commands/llm.ts +115 -0
- package/cli/src/commands/queue.ts +134 -0
- package/cli/src/commands/text.ts +86 -0
- package/cli/src/config.ts +185 -0
- package/cli/src/output.ts +246 -0
- package/cli/src/rpc.ts +192 -0
- package/cli/utils/config.ts +282 -0
- package/cli/utils/detect.ts +73 -0
- package/cli/utils/index.ts +15 -0
- package/cli/utils/logger.ts +232 -0
- package/dist/ai/index.js +19 -0
- package/dist/ai/index.js.map +1 -0
- package/dist/ai/template-literals.js +852 -0
- package/dist/ai/template-literals.js.map +1 -0
- package/dist/api/middleware/auth-federation.js +573 -0
- package/dist/api/middleware/auth-federation.js.map +1 -0
- package/dist/api/middleware/auth.js +545 -0
- package/dist/api/middleware/auth.js.map +1 -0
- package/dist/db/actions.js +212 -0
- package/dist/db/actions.js.map +1 -0
- package/dist/db/auth.js +506 -0
- package/dist/db/auth.js.map +1 -0
- package/dist/db/branches.js +65 -0
- package/dist/db/branches.js.map +1 -0
- package/dist/db/clickhouse.js +1074 -0
- package/dist/db/clickhouse.js.map +1 -0
- package/dist/db/dlq.js +39 -0
- package/dist/db/dlq.js.map +1 -0
- package/dist/db/events.js +28 -0
- package/dist/db/events.js.map +1 -0
- package/dist/db/exec.js +64 -0
- package/dist/db/exec.js.map +1 -0
- package/dist/db/files.js +85 -0
- package/dist/db/files.js.map +1 -0
- package/dist/db/flags.js +24 -0
- package/dist/db/flags.js.map +1 -0
- package/dist/db/git.js +116 -0
- package/dist/db/git.js.map +1 -0
- package/dist/db/iceberg/inverted-index.js +862 -0
- package/dist/db/iceberg/inverted-index.js.map +1 -0
- package/dist/db/iceberg/puffin.js +878 -0
- package/dist/db/iceberg/puffin.js.map +1 -0
- package/dist/db/iceberg/search-manifest.js +422 -0
- package/dist/db/iceberg/search-manifest.js.map +1 -0
- package/dist/db/iceberg/types.js +8 -0
- package/dist/db/iceberg/types.js.map +1 -0
- package/dist/db/index.js +121 -0
- package/dist/db/index.js.map +1 -0
- package/dist/db/integrations.js +368 -0
- package/dist/db/integrations.js.map +1 -0
- package/dist/db/json-indexes.js +332 -0
- package/dist/db/json-indexes.js.map +1 -0
- package/dist/db/linked-accounts.js +287 -0
- package/dist/db/linked-accounts.js.map +1 -0
- package/dist/db/nouns.js +183 -0
- package/dist/db/nouns.js.map +1 -0
- package/dist/db/objects.js +170 -0
- package/dist/db/objects.js.map +1 -0
- package/dist/db/primitives/dag-scheduler/index.js +869 -0
- package/dist/db/primitives/dag-scheduler/index.js.map +1 -0
- package/dist/db/primitives/exactly-once-context.js +237 -0
- package/dist/db/primitives/exactly-once-context.js.map +1 -0
- package/dist/db/primitives/index.js +62 -0
- package/dist/db/primitives/index.js.map +1 -0
- package/dist/db/primitives/keyed-router.js +145 -0
- package/dist/db/primitives/keyed-router.js.map +1 -0
- package/dist/db/primitives/observability.js +162 -0
- package/dist/db/primitives/observability.js.map +1 -0
- package/dist/db/primitives/schema-evolution.js +643 -0
- package/dist/db/primitives/schema-evolution.js.map +1 -0
- package/dist/db/primitives/stateful-operator/index.js +770 -0
- package/dist/db/primitives/stateful-operator/index.js.map +1 -0
- package/dist/db/primitives/temporal-store.js +306 -0
- package/dist/db/primitives/temporal-store.js.map +1 -0
- package/dist/db/primitives/typed-column-store.js +1229 -0
- package/dist/db/primitives/typed-column-store.js.map +1 -0
- package/dist/db/primitives/utils/duration.js +162 -0
- package/dist/db/primitives/utils/duration.js.map +1 -0
- package/dist/db/primitives/utils/murmur3.js +116 -0
- package/dist/db/primitives/utils/murmur3.js.map +1 -0
- package/dist/db/primitives/watermark-service.js +136 -0
- package/dist/db/primitives/watermark-service.js.map +1 -0
- package/dist/db/primitives/window-manager.js +764 -0
- package/dist/db/primitives/window-manager.js.map +1 -0
- package/dist/db/relationships.js +66 -0
- package/dist/db/relationships.js.map +1 -0
- package/dist/db/schema-minimal.js +61 -0
- package/dist/db/schema-minimal.js.map +1 -0
- package/dist/db/search.js +28 -0
- package/dist/db/search.js.map +1 -0
- package/dist/db/stores.js +1665 -0
- package/dist/db/stores.js.map +1 -0
- package/dist/db/things.js +297 -0
- package/dist/db/things.js.map +1 -0
- package/dist/db/vault.js +171 -0
- package/dist/db/vault.js.map +1 -0
- package/dist/db/verbs.js +102 -0
- package/dist/db/verbs.js.map +1 -0
- package/dist/do/base.js +48 -0
- package/dist/do/base.js.map +1 -0
- package/dist/do/tiny.js +31 -0
- package/dist/do/tiny.js.map +1 -0
- package/dist/lib/DOAuth.js +261 -0
- package/dist/lib/DOAuth.js.map +1 -0
- package/dist/lib/DODispatcher.js +72 -0
- package/dist/lib/DODispatcher.js.map +1 -0
- package/dist/lib/Modifier.js +189 -0
- package/dist/lib/Modifier.js.map +1 -0
- package/dist/lib/StateStorage.js +403 -0
- package/dist/lib/StateStorage.js.map +1 -0
- package/dist/lib/TypeRegistry.js +122 -0
- package/dist/lib/TypeRegistry.js.map +1 -0
- package/dist/lib/ai/gateway.js +247 -0
- package/dist/lib/ai/gateway.js.map +1 -0
- package/dist/lib/ai/tool-loop-agent.js +591 -0
- package/dist/lib/ai/tool-loop-agent.js.map +1 -0
- package/dist/lib/auto-wiring.js +439 -0
- package/dist/lib/auto-wiring.js.map +1 -0
- package/dist/lib/browse/browserbase.js +163 -0
- package/dist/lib/browse/browserbase.js.map +1 -0
- package/dist/lib/browse/cloudflare.js +144 -0
- package/dist/lib/browse/cloudflare.js.map +1 -0
- package/dist/lib/browse/index.js +62 -0
- package/dist/lib/browse/index.js.map +1 -0
- package/dist/lib/browse/types.js +13 -0
- package/dist/lib/browse/types.js.map +1 -0
- package/dist/lib/cache/index.js +37 -0
- package/dist/lib/cache/index.js.map +1 -0
- package/dist/lib/cache/visibility.js +638 -0
- package/dist/lib/cache/visibility.js.map +1 -0
- package/dist/lib/capabilities.js +268 -0
- package/dist/lib/capabilities.js.map +1 -0
- package/dist/lib/channels/base.js +106 -0
- package/dist/lib/channels/base.js.map +1 -0
- package/dist/lib/channels/discord.js +94 -0
- package/dist/lib/channels/discord.js.map +1 -0
- package/dist/lib/channels/email.js +204 -0
- package/dist/lib/channels/email.js.map +1 -0
- package/dist/lib/channels/index.js +90 -0
- package/dist/lib/channels/index.js.map +1 -0
- package/dist/lib/channels/mdxui-chat.js +95 -0
- package/dist/lib/channels/mdxui-chat.js.map +1 -0
- package/dist/lib/channels/slack-blockkit.js +121 -0
- package/dist/lib/channels/slack-blockkit.js.map +1 -0
- package/dist/lib/channels/types.js +7 -0
- package/dist/lib/channels/types.js.map +1 -0
- package/dist/lib/cloudflare/ai.js +654 -0
- package/dist/lib/cloudflare/ai.js.map +1 -0
- package/dist/lib/cloudflare/index.js +88 -0
- package/dist/lib/cloudflare/index.js.map +1 -0
- package/dist/lib/cloudflare/kv.js +342 -0
- package/dist/lib/cloudflare/kv.js.map +1 -0
- package/dist/lib/cloudflare/queues.js +434 -0
- package/dist/lib/cloudflare/queues.js.map +1 -0
- package/dist/lib/cloudflare/r2.js +604 -0
- package/dist/lib/cloudflare/r2.js.map +1 -0
- package/dist/lib/cloudflare/vectorize.js +494 -0
- package/dist/lib/cloudflare/vectorize.js.map +1 -0
- package/dist/lib/cloudflare/workflows.js +569 -0
- package/dist/lib/cloudflare/workflows.js.map +1 -0
- package/dist/lib/colo/caching.js +196 -0
- package/dist/lib/colo/caching.js.map +1 -0
- package/dist/lib/colo/detection.js +194 -0
- package/dist/lib/colo/detection.js.map +1 -0
- package/dist/lib/colo/external-data.js +219 -0
- package/dist/lib/colo/external-data.js.map +1 -0
- package/dist/lib/colo/globe-data.js +179 -0
- package/dist/lib/colo/globe-data.js.map +1 -0
- package/dist/lib/colo/index.js +16 -0
- package/dist/lib/colo/index.js.map +1 -0
- package/dist/lib/decorators.js +37 -0
- package/dist/lib/decorators.js.map +1 -0
- package/dist/lib/discovery.js +81 -0
- package/dist/lib/discovery.js.map +1 -0
- package/dist/lib/executors/AgenticFunctionExecutor.js +619 -0
- package/dist/lib/executors/AgenticFunctionExecutor.js.map +1 -0
- package/dist/lib/executors/BaseFunctionExecutor.js +328 -0
- package/dist/lib/executors/BaseFunctionExecutor.js.map +1 -0
- package/dist/lib/executors/CascadeExecutor.js +418 -0
- package/dist/lib/executors/CascadeExecutor.js.map +1 -0
- package/dist/lib/executors/CodeFunctionExecutor.js +904 -0
- package/dist/lib/executors/CodeFunctionExecutor.js.map +1 -0
- package/dist/lib/executors/GenerativeFunctionExecutor.js +904 -0
- package/dist/lib/executors/GenerativeFunctionExecutor.js.map +1 -0
- package/dist/lib/executors/HumanFunctionExecutor.js +884 -0
- package/dist/lib/executors/HumanFunctionExecutor.js.map +1 -0
- package/dist/lib/executors/ParallelStepExecutor.js +308 -0
- package/dist/lib/executors/ParallelStepExecutor.js.map +1 -0
- package/dist/lib/executors/types.js +12 -0
- package/dist/lib/executors/types.js.map +1 -0
- package/dist/lib/experiments.js +89 -0
- package/dist/lib/experiments.js.map +1 -0
- package/dist/lib/flags/store.js +262 -0
- package/dist/lib/flags/store.js.map +1 -0
- package/dist/lib/functions/FunctionComposition.js +467 -0
- package/dist/lib/functions/FunctionComposition.js.map +1 -0
- package/dist/lib/functions/FunctionMiddleware.js +457 -0
- package/dist/lib/functions/FunctionMiddleware.js.map +1 -0
- package/dist/lib/functions/FunctionRegistry.js +426 -0
- package/dist/lib/functions/FunctionRegistry.js.map +1 -0
- package/dist/lib/functions/createFunction.js +1048 -0
- package/dist/lib/functions/createFunction.js.map +1 -0
- package/dist/lib/humans/index.js +68 -0
- package/dist/lib/humans/index.js.map +1 -0
- package/dist/lib/humans/templates.js +117 -0
- package/dist/lib/humans/templates.js.map +1 -0
- package/dist/lib/identity.js +98 -0
- package/dist/lib/identity.js.map +1 -0
- package/dist/lib/index.js +9 -0
- package/dist/lib/index.js.map +1 -0
- package/dist/lib/logging/error-logger.js +163 -0
- package/dist/lib/logging/error-logger.js.map +1 -0
- package/dist/lib/logging/index.js +160 -0
- package/dist/lib/logging/index.js.map +1 -0
- package/dist/lib/mixins/bash.js +753 -0
- package/dist/lib/mixins/bash.js.map +1 -0
- package/dist/lib/mixins/fs.js +648 -0
- package/dist/lib/mixins/fs.js.map +1 -0
- package/dist/lib/mixins/git.js +1006 -0
- package/dist/lib/mixins/git.js.map +1 -0
- package/dist/lib/mixins/npm.js +662 -0
- package/dist/lib/mixins/npm.js.map +1 -0
- package/dist/lib/noun-id.js +278 -0
- package/dist/lib/noun-id.js.map +1 -0
- package/dist/lib/rate-limit/sliding-window.js +148 -0
- package/dist/lib/rate-limit/sliding-window.js.map +1 -0
- package/dist/lib/rate-limit.js +110 -0
- package/dist/lib/rate-limit.js.map +1 -0
- package/dist/lib/rpc/bindings.js +548 -0
- package/dist/lib/rpc/bindings.js.map +1 -0
- package/dist/lib/rpc/index.js +64 -0
- package/dist/lib/rpc/index.js.map +1 -0
- package/dist/lib/safe-stringify.js +223 -0
- package/dist/lib/safe-stringify.js.map +1 -0
- package/dist/lib/sandbox/miniflare-sandbox.js +1007 -0
- package/dist/lib/sandbox/miniflare-sandbox.js.map +1 -0
- package/dist/lib/sqids.js +110 -0
- package/dist/lib/sqids.js.map +1 -0
- package/dist/lib/sql/adapters/index.js +10 -0
- package/dist/lib/sql/adapters/index.js.map +1 -0
- package/dist/lib/sql/adapters/node-sql-parser.js +552 -0
- package/dist/lib/sql/adapters/node-sql-parser.js.map +1 -0
- package/dist/lib/sql/adapters/pgsql-parser.js +1190 -0
- package/dist/lib/sql/adapters/pgsql-parser.js.map +1 -0
- package/dist/lib/sql/index.js +277 -0
- package/dist/lib/sql/index.js.map +1 -0
- package/dist/lib/sql/types.js +56 -0
- package/dist/lib/sql/types.js.map +1 -0
- package/dist/lib/type-classifier.js +126 -0
- package/dist/lib/type-classifier.js.map +1 -0
- package/dist/lib/utils/html.js +47 -0
- package/dist/lib/utils/html.js.map +1 -0
- package/dist/lib/validation.js +48 -0
- package/dist/lib/validation.js.map +1 -0
- package/dist/lib/vault/store.js +411 -0
- package/dist/lib/vault/store.js.map +1 -0
- package/dist/metrics/hunch.js +739 -0
- package/dist/metrics/hunch.js.map +1 -0
- package/dist/objects/API.js +302 -0
- package/dist/objects/API.js.map +1 -0
- package/dist/objects/Agent.js +179 -0
- package/dist/objects/Agent.js.map +1 -0
- package/dist/objects/AgenticFunctionExecutor.js +8 -0
- package/dist/objects/AgenticFunctionExecutor.js.map +1 -0
- package/dist/objects/App.js +83 -0
- package/dist/objects/App.js.map +1 -0
- package/dist/objects/Browser.js +884 -0
- package/dist/objects/Browser.js.map +1 -0
- package/dist/objects/Business.js +107 -0
- package/dist/objects/Business.js.map +1 -0
- package/dist/objects/CLI.js +221 -0
- package/dist/objects/CLI.js.map +1 -0
- package/dist/objects/CodeFunctionExecutor.js +8 -0
- package/dist/objects/CodeFunctionExecutor.js.map +1 -0
- package/dist/objects/Collection.js +161 -0
- package/dist/objects/Collection.js.map +1 -0
- package/dist/objects/DO.js +41 -0
- package/dist/objects/DO.js.map +1 -0
- package/dist/objects/DOBase.js +2309 -0
- package/dist/objects/DOBase.js.map +1 -0
- package/dist/objects/DOCache.js +153 -0
- package/dist/objects/DOCache.js.map +1 -0
- package/dist/objects/DOFull.js +1676 -0
- package/dist/objects/DOFull.js.map +1 -0
- package/dist/objects/DOTiny.js +207 -0
- package/dist/objects/DOTiny.js.map +1 -0
- package/dist/objects/Directory.js +199 -0
- package/dist/objects/Directory.js.map +1 -0
- package/dist/objects/Entity.js +413 -0
- package/dist/objects/Entity.js.map +1 -0
- package/dist/objects/Function.js +116 -0
- package/dist/objects/Function.js.map +1 -0
- package/dist/objects/Human.js +231 -0
- package/dist/objects/Human.js.map +1 -0
- package/dist/objects/HumanFunctionExecutor.js +8 -0
- package/dist/objects/HumanFunctionExecutor.js.map +1 -0
- package/dist/objects/IcebergMetadataDO.js +938 -0
- package/dist/objects/IcebergMetadataDO.js.map +1 -0
- package/dist/objects/IntegrationsDO.js +1174 -0
- package/dist/objects/IntegrationsDO.js.map +1 -0
- package/dist/objects/ObservabilityBroadcaster.js +149 -0
- package/dist/objects/ObservabilityBroadcaster.js.map +1 -0
- package/dist/objects/Package.js +154 -0
- package/dist/objects/Package.js.map +1 -0
- package/dist/objects/Product.js +193 -0
- package/dist/objects/Product.js.map +1 -0
- package/dist/objects/SDK.js +152 -0
- package/dist/objects/SDK.js.map +1 -0
- package/dist/objects/SaaS.js +235 -0
- package/dist/objects/SaaS.js.map +1 -0
- package/dist/objects/SandboxDO.js +759 -0
- package/dist/objects/SandboxDO.js.map +1 -0
- package/dist/objects/Service.js +337 -0
- package/dist/objects/Service.js.map +1 -0
- package/dist/objects/Site.js +80 -0
- package/dist/objects/Site.js.map +1 -0
- package/dist/objects/Startup.js +479 -0
- package/dist/objects/Startup.js.map +1 -0
- package/dist/objects/ThingsDO.js +170 -0
- package/dist/objects/ThingsDO.js.map +1 -0
- package/dist/objects/VectorShardDO.js +650 -0
- package/dist/objects/VectorShardDO.js.map +1 -0
- package/dist/objects/Worker.js +144 -0
- package/dist/objects/Worker.js.map +1 -0
- package/dist/objects/Workflow.js +196 -0
- package/dist/objects/Workflow.js.map +1 -0
- package/dist/objects/WorkflowFactory.js +313 -0
- package/dist/objects/WorkflowFactory.js.map +1 -0
- package/dist/objects/WorkflowRuntime.js +863 -0
- package/dist/objects/WorkflowRuntime.js.map +1 -0
- package/dist/objects/circuit-breaker-bulkhead.js +178 -0
- package/dist/objects/circuit-breaker-bulkhead.js.map +1 -0
- package/dist/objects/createFunction.js +934 -0
- package/dist/objects/createFunction.js.map +1 -0
- package/dist/objects/index.js +80 -0
- package/dist/objects/index.js.map +1 -0
- package/dist/objects/lifecycle/Branch.js +275 -0
- package/dist/objects/lifecycle/Branch.js.map +1 -0
- package/dist/objects/lifecycle/Clone.js +1499 -0
- package/dist/objects/lifecycle/Clone.js.map +1 -0
- package/dist/objects/lifecycle/Compact.js +237 -0
- package/dist/objects/lifecycle/Compact.js.map +1 -0
- package/dist/objects/lifecycle/Promote.js +476 -0
- package/dist/objects/lifecycle/Promote.js.map +1 -0
- package/dist/objects/lifecycle/Shard.js +560 -0
- package/dist/objects/lifecycle/Shard.js.map +1 -0
- package/dist/objects/lifecycle/index.js +15 -0
- package/dist/objects/lifecycle/index.js.map +1 -0
- package/dist/objects/lifecycle/types.js +33 -0
- package/dist/objects/lifecycle/types.js.map +1 -0
- package/dist/objects/mixins/infrastructure.js +171 -0
- package/dist/objects/mixins/infrastructure.js.map +1 -0
- package/dist/objects/modules/StoresModule.js +153 -0
- package/dist/objects/modules/StoresModule.js.map +1 -0
- package/dist/objects/persistence/checkpoint-manager.js +606 -0
- package/dist/objects/persistence/checkpoint-manager.js.map +1 -0
- package/dist/objects/persistence/index.js +72 -0
- package/dist/objects/persistence/index.js.map +1 -0
- package/dist/objects/persistence/migration-runner.js +562 -0
- package/dist/objects/persistence/migration-runner.js.map +1 -0
- package/dist/objects/persistence/replication-manager.js +501 -0
- package/dist/objects/persistence/replication-manager.js.map +1 -0
- package/dist/objects/persistence/tiered-storage-manager.js +595 -0
- package/dist/objects/persistence/tiered-storage-manager.js.map +1 -0
- package/dist/objects/persistence/types.js +14 -0
- package/dist/objects/persistence/types.js.map +1 -0
- package/dist/objects/persistence/wal-manager.js +653 -0
- package/dist/objects/persistence/wal-manager.js.map +1 -0
- package/dist/objects/presets/index.js +20 -0
- package/dist/objects/presets/index.js.map +1 -0
- package/dist/objects/presets/primitives.js +188 -0
- package/dist/objects/presets/primitives.js.map +1 -0
- package/dist/objects/primitives/alarm-adapter.js +141 -0
- package/dist/objects/primitives/alarm-adapter.js.map +1 -0
- package/dist/objects/primitives/index.js +337 -0
- package/dist/objects/primitives/index.js.map +1 -0
- package/dist/objects/primitives/storage-adapter.js +182 -0
- package/dist/objects/primitives/storage-adapter.js.map +1 -0
- package/dist/objects/primitives/with-primitives.js +102 -0
- package/dist/objects/primitives/with-primitives.js.map +1 -0
- package/dist/objects/services/StoreManager.js +227 -0
- package/dist/objects/services/StoreManager.js.map +1 -0
- package/dist/objects/services/index.js +13 -0
- package/dist/objects/services/index.js.map +1 -0
- package/dist/objects/transport/auth-layer.js +1451 -0
- package/dist/objects/transport/auth-layer.js.map +1 -0
- package/dist/objects/transport/capnweb-target.js +355 -0
- package/dist/objects/transport/capnweb-target.js.map +1 -0
- package/dist/objects/transport/chain.js +441 -0
- package/dist/objects/transport/chain.js.map +1 -0
- package/dist/objects/transport/handler.js +58 -0
- package/dist/objects/transport/handler.js.map +1 -0
- package/dist/objects/transport/index.js +53 -0
- package/dist/objects/transport/index.js.map +1 -0
- package/dist/objects/transport/mcp-server.js +691 -0
- package/dist/objects/transport/mcp-server.js.map +1 -0
- package/dist/objects/transport/rest-autowire.js +1508 -0
- package/dist/objects/transport/rest-autowire.js.map +1 -0
- package/dist/objects/transport/rest-router.js +440 -0
- package/dist/objects/transport/rest-router.js.map +1 -0
- package/dist/objects/transport/rpc-server.js +1539 -0
- package/dist/objects/transport/rpc-server.js.map +1 -0
- package/dist/objects/transport/shared.js +576 -0
- package/dist/objects/transport/shared.js.map +1 -0
- package/dist/objects/transport/sync-engine.js +291 -0
- package/dist/objects/transport/sync-engine.js.map +1 -0
- package/dist/objects/transport/types.js +8 -0
- package/dist/objects/transport/types.js.map +1 -0
- package/dist/sandbox/index.js +258 -0
- package/dist/sandbox/index.js.map +1 -0
- package/dist/snippets/artifacts-config.js +241 -0
- package/dist/snippets/artifacts-config.js.map +1 -0
- package/dist/snippets/artifacts-ingest.js +832 -0
- package/dist/snippets/artifacts-ingest.js.map +1 -0
- package/dist/snippets/artifacts-serve.js +1035 -0
- package/dist/snippets/artifacts-serve.js.map +1 -0
- package/dist/snippets/artifacts-types.js +161 -0
- package/dist/snippets/artifacts-types.js.map +1 -0
- package/dist/snippets/cache-probe.js +376 -0
- package/dist/snippets/cache-probe.js.map +1 -0
- package/dist/snippets/cache.js +10 -0
- package/dist/snippets/cache.js.map +1 -0
- package/dist/snippets/events.js +469 -0
- package/dist/snippets/events.js.map +1 -0
- package/dist/snippets/index.js +7 -0
- package/dist/snippets/index.js.map +1 -0
- package/dist/snippets/proxy.js +495 -0
- package/dist/snippets/proxy.js.map +1 -0
- package/dist/snippets/search.js +1759 -0
- package/dist/snippets/search.js.map +1 -0
- package/dist/streams/index.js +30 -0
- package/dist/streams/index.js.map +1 -0
- package/dist/streams/observability.js +68 -0
- package/dist/streams/observability.js.map +1 -0
- package/dist/types/AI.js +92 -0
- package/dist/types/AI.js.map +1 -0
- package/dist/types/AIFunction.js +171 -0
- package/dist/types/AIFunction.js.map +1 -0
- package/dist/types/BrowseVerb.js +89 -0
- package/dist/types/BrowseVerb.js.map +1 -0
- package/dist/types/Browser.js +31 -0
- package/dist/types/Browser.js.map +1 -0
- package/dist/types/Chaos.js +15 -0
- package/dist/types/Chaos.js.map +1 -0
- package/dist/types/CloudflareBindings.js +109 -0
- package/dist/types/CloudflareBindings.js.map +1 -0
- package/dist/types/Collection.js +50 -0
- package/dist/types/Collection.js.map +1 -0
- package/dist/types/DO.js +2 -0
- package/dist/types/DO.js.map +1 -0
- package/dist/types/DOLocation.js +63 -0
- package/dist/types/DOLocation.js.map +1 -0
- package/dist/types/EventHandler.js +57 -0
- package/dist/types/EventHandler.js.map +1 -0
- package/dist/types/Experiment.js +33 -0
- package/dist/types/Experiment.js.map +1 -0
- package/dist/types/Flag.js +57 -0
- package/dist/types/Flag.js.map +1 -0
- package/dist/types/Lifecycle.js +13 -0
- package/dist/types/Lifecycle.js.map +1 -0
- package/dist/types/Location.js +169 -0
- package/dist/types/Location.js.map +1 -0
- package/dist/types/Noun.js +66 -0
- package/dist/types/Noun.js.map +1 -0
- package/dist/types/SessionEvent.js +194 -0
- package/dist/types/SessionEvent.js.map +1 -0
- package/dist/types/Thing.js +55 -0
- package/dist/types/Thing.js.map +1 -0
- package/dist/types/ThingDO.js +153 -0
- package/dist/types/ThingDO.js.map +1 -0
- package/dist/types/Things.js +2 -0
- package/dist/types/Things.js.map +1 -0
- package/dist/types/Verb.js +119 -0
- package/dist/types/Verb.js.map +1 -0
- package/dist/types/WorkflowContext.js +70 -0
- package/dist/types/WorkflowContext.js.map +1 -0
- package/dist/types/analytics-api.js +13 -0
- package/dist/types/analytics-api.js.map +1 -0
- package/dist/types/capabilities.js +135 -0
- package/dist/types/capabilities.js.map +1 -0
- package/dist/types/drizzle.js +12 -0
- package/dist/types/drizzle.js.map +1 -0
- package/dist/types/event.js +201 -0
- package/dist/types/event.js.map +1 -0
- package/dist/types/fn.js +12 -0
- package/dist/types/fn.js.map +1 -0
- package/dist/types/iceberg.js +48 -0
- package/dist/types/iceberg.js.map +1 -0
- package/dist/types/ids.js +170 -0
- package/dist/types/ids.js.map +1 -0
- package/dist/types/index.js +41 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/introspect.js +54 -0
- package/dist/types/introspect.js.map +1 -0
- package/dist/types/observability.js +124 -0
- package/dist/types/observability.js.map +1 -0
- package/dist/types/sync-protocol.js +175 -0
- package/dist/types/sync-protocol.js.map +1 -0
- package/dist/types/vector.js +13 -0
- package/dist/types/vector.js.map +1 -0
- package/dist/workflows/ScheduleManager.js +473 -0
- package/dist/workflows/ScheduleManager.js.map +1 -0
- package/dist/workflows/StepDOBridge.js +149 -0
- package/dist/workflows/StepDOBridge.js.map +1 -0
- package/dist/workflows/StepResultStorage.js +232 -0
- package/dist/workflows/StepResultStorage.js.map +1 -0
- package/dist/workflows/WaitForEventManager.js +461 -0
- package/dist/workflows/WaitForEventManager.js.map +1 -0
- package/dist/workflows/analyzer.js +332 -0
- package/dist/workflows/analyzer.js.map +1 -0
- package/dist/workflows/compat/activity-router.js +484 -0
- package/dist/workflows/compat/activity-router.js.map +1 -0
- package/dist/workflows/compat/backends/cloudflare-workflows.js +431 -0
- package/dist/workflows/compat/backends/cloudflare-workflows.js.map +1 -0
- package/dist/workflows/compat/backends/index.js +14 -0
- package/dist/workflows/compat/backends/index.js.map +1 -0
- package/dist/workflows/compat/errors/index.js +375 -0
- package/dist/workflows/compat/errors/index.js.map +1 -0
- package/dist/workflows/compat/index.js +79 -0
- package/dist/workflows/compat/index.js.map +1 -0
- package/dist/workflows/compat/inngest/index.js +989 -0
- package/dist/workflows/compat/inngest/index.js.map +1 -0
- package/dist/workflows/compat/qstash/index.js +1263 -0
- package/dist/workflows/compat/qstash/index.js.map +1 -0
- package/dist/workflows/compat/temporal/activities.js +739 -0
- package/dist/workflows/compat/temporal/activities.js.map +1 -0
- package/dist/workflows/compat/temporal/child-workflows.js +154 -0
- package/dist/workflows/compat/temporal/child-workflows.js.map +1 -0
- package/dist/workflows/compat/temporal/client.js +381 -0
- package/dist/workflows/compat/temporal/client.js.map +1 -0
- package/dist/workflows/compat/temporal/context.js +309 -0
- package/dist/workflows/compat/temporal/context.js.map +1 -0
- package/dist/workflows/compat/temporal/determinism.js +216 -0
- package/dist/workflows/compat/temporal/determinism.js.map +1 -0
- package/dist/workflows/compat/temporal/errors.js +128 -0
- package/dist/workflows/compat/temporal/errors.js.map +1 -0
- package/dist/workflows/compat/temporal/index.js +2464 -0
- package/dist/workflows/compat/temporal/index.js.map +1 -0
- package/dist/workflows/compat/temporal/saga.js +504 -0
- package/dist/workflows/compat/temporal/saga.js.map +1 -0
- package/dist/workflows/compat/temporal/signals.js +364 -0
- package/dist/workflows/compat/temporal/signals.js.map +1 -0
- package/dist/workflows/compat/temporal/storage.js +271 -0
- package/dist/workflows/compat/temporal/storage.js.map +1 -0
- package/dist/workflows/compat/temporal/timers.js +347 -0
- package/dist/workflows/compat/temporal/timers.js.map +1 -0
- package/dist/workflows/compat/temporal/types.js +7 -0
- package/dist/workflows/compat/temporal/types.js.map +1 -0
- package/dist/workflows/compat/temporal/unified-primitives.js +339 -0
- package/dist/workflows/compat/temporal/unified-primitives.js.map +1 -0
- package/dist/workflows/compat/trigger/index.js +468 -0
- package/dist/workflows/compat/trigger/index.js.map +1 -0
- package/dist/workflows/compat/utils/index.js +69 -0
- package/dist/workflows/compat/utils/index.js.map +1 -0
- package/dist/workflows/context/correlation-capability.js +266 -0
- package/dist/workflows/context/correlation-capability.js.map +1 -0
- package/dist/workflows/context/correlation.js +484 -0
- package/dist/workflows/context/correlation.js.map +1 -0
- package/dist/workflows/context/experiment.js +289 -0
- package/dist/workflows/context/experiment.js.map +1 -0
- package/dist/workflows/context/flag.js +244 -0
- package/dist/workflows/context/flag.js.map +1 -0
- package/dist/workflows/context/foundation.js +648 -0
- package/dist/workflows/context/foundation.js.map +1 -0
- package/dist/workflows/context/human-base.js +106 -0
- package/dist/workflows/context/human-base.js.map +1 -0
- package/dist/workflows/context/human.js +368 -0
- package/dist/workflows/context/human.js.map +1 -0
- package/dist/workflows/context/measure.js +354 -0
- package/dist/workflows/context/measure.js.map +1 -0
- package/dist/workflows/context/rate-limit.js +358 -0
- package/dist/workflows/context/rate-limit.js.map +1 -0
- package/dist/workflows/context/user.js +117 -0
- package/dist/workflows/context/user.js.map +1 -0
- package/dist/workflows/context/vault.js +360 -0
- package/dist/workflows/context/vault.js.map +1 -0
- package/dist/workflows/data/entity-events/entity-events.js +489 -0
- package/dist/workflows/data/entity-events/entity-events.js.map +1 -0
- package/dist/workflows/data/experiment/index.js +599 -0
- package/dist/workflows/data/experiment/index.js.map +1 -0
- package/dist/workflows/data/goal/context.js +558 -0
- package/dist/workflows/data/goal/context.js.map +1 -0
- package/dist/workflows/data/goal/index.js +32 -0
- package/dist/workflows/data/goal/index.js.map +1 -0
- package/dist/workflows/data/measure/index.js +840 -0
- package/dist/workflows/data/measure/index.js.map +1 -0
- package/dist/workflows/data/stream/index.js +1149 -0
- package/dist/workflows/data/stream/index.js.map +1 -0
- package/dist/workflows/data/track/context.js +883 -0
- package/dist/workflows/data/track/context.js.map +1 -0
- package/dist/workflows/data/track/index.js +15 -0
- package/dist/workflows/data/track/index.js.map +1 -0
- package/dist/workflows/data/view/context.js +864 -0
- package/dist/workflows/data/view/context.js.map +1 -0
- package/dist/workflows/domain.js +93 -0
- package/dist/workflows/domain.js.map +1 -0
- package/dist/workflows/flag.js +176 -0
- package/dist/workflows/flag.js.map +1 -0
- package/dist/workflows/flags.js +217 -0
- package/dist/workflows/flags.js.map +1 -0
- package/dist/workflows/hash.js +209 -0
- package/dist/workflows/hash.js.map +1 -0
- package/dist/workflows/index.js +50 -0
- package/dist/workflows/index.js.map +1 -0
- package/dist/workflows/on.js +378 -0
- package/dist/workflows/on.js.map +1 -0
- package/dist/workflows/pipeline-promise.js +481 -0
- package/dist/workflows/pipeline-promise.js.map +1 -0
- package/dist/workflows/pipeline-types.js +20 -0
- package/dist/workflows/pipeline-types.js.map +1 -0
- package/dist/workflows/proxy.js +76 -0
- package/dist/workflows/proxy.js.map +1 -0
- package/dist/workflows/runtime.js +310 -0
- package/dist/workflows/runtime.js.map +1 -0
- package/dist/workflows/schedule-builder.js +327 -0
- package/dist/workflows/schedule-builder.js.map +1 -0
- package/dist/workflows/visibility/index.js +146 -0
- package/dist/workflows/visibility/index.js.map +1 -0
- package/dist/workflows/visibility/query-parser.js +150 -0
- package/dist/workflows/visibility/query-parser.js.map +1 -0
- package/dist/workflows/visibility/store.js +223 -0
- package/dist/workflows/visibility/store.js.map +1 -0
- package/dist/workflows/visibility/types.js +30 -0
- package/dist/workflows/visibility/types.js.map +1 -0
- package/dist/workflows/workflow.js +53 -0
- package/dist/workflows/workflow.js.map +1 -0
- package/package.json +294 -46
|
@@ -0,0 +1,171 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Capability Mixin Infrastructure
|
|
3
|
+
*
|
|
4
|
+
* This module provides the infrastructure for adding optional capabilities
|
|
5
|
+
* to Durable Object classes via mixins. Capabilities are:
|
|
6
|
+
* - Opt-in: Only added when explicitly composed with withX(Base)
|
|
7
|
+
* - Lazy-initialized: API created on first $ property access
|
|
8
|
+
* - Type-safe: TypeScript inference for capability APIs on $ context
|
|
9
|
+
* - Composable: Multiple capabilities can be chained
|
|
10
|
+
*
|
|
11
|
+
* @example
|
|
12
|
+
* ```typescript
|
|
13
|
+
* const withFS = createCapabilityMixin('fs', (ctx) => ({
|
|
14
|
+
* read: (path: string) => ctx.sql.exec(`SELECT * FROM files WHERE path = ?`, [path]),
|
|
15
|
+
* write: (path: string, content: string) => // ...
|
|
16
|
+
* }))
|
|
17
|
+
*
|
|
18
|
+
* class MyDO extends withFS(DO) {
|
|
19
|
+
* async handleRequest() {
|
|
20
|
+
* const file = await this.$.fs.read('/config.json')
|
|
21
|
+
* }
|
|
22
|
+
* }
|
|
23
|
+
* ```
|
|
24
|
+
*
|
|
25
|
+
* @see dotdo-k9fw4 issue for design details
|
|
26
|
+
*/
|
|
27
|
+
// ============================================================================
|
|
28
|
+
// IMPLEMENTATION
|
|
29
|
+
// ============================================================================
|
|
30
|
+
/**
|
|
31
|
+
* Symbol used to store capability cache on instances
|
|
32
|
+
* Using Symbol.for() ensures the symbol is globally unique and
|
|
33
|
+
* consistent across module evaluations.
|
|
34
|
+
*/
|
|
35
|
+
const CAPABILITY_CACHE = Symbol.for('dotdo.capabilityCache');
|
|
36
|
+
/**
|
|
37
|
+
* Symbol used to store capability init functions on classes
|
|
38
|
+
* Using Symbol.for() ensures the symbol is globally unique and
|
|
39
|
+
* consistent across module evaluations.
|
|
40
|
+
*/
|
|
41
|
+
const CAPABILITY_INITS = Symbol.for('dotdo.capabilityInits');
|
|
42
|
+
/**
|
|
43
|
+
* Create a capability mixin that adds a named capability to a DO class.
|
|
44
|
+
*
|
|
45
|
+
* The mixin:
|
|
46
|
+
* 1. Adds the capability name to a static `capabilities` array
|
|
47
|
+
* 2. Provides a `hasCapability(name)` method for runtime capability detection
|
|
48
|
+
* 3. Wraps the `$` getter with a Proxy for lazy capability initialization
|
|
49
|
+
* 4. Caches capability instances per-DO instance
|
|
50
|
+
*
|
|
51
|
+
* @param name - Capability name (e.g., 'fs', 'git', 'bash')
|
|
52
|
+
* @param init - Initialization function that returns the capability API
|
|
53
|
+
* @returns Mixin function that transforms a base class
|
|
54
|
+
*/
|
|
55
|
+
export function createCapabilityMixin(name, init) {
|
|
56
|
+
return function (Base) {
|
|
57
|
+
// Get existing capabilities from base class
|
|
58
|
+
const existingCapabilities = Base.capabilities || [];
|
|
59
|
+
// Check if this capability is already registered (idempotency)
|
|
60
|
+
const hasExisting = existingCapabilities.includes(name);
|
|
61
|
+
// Get existing init functions from base class
|
|
62
|
+
const existingInits = Base[CAPABILITY_INITS] || new Map();
|
|
63
|
+
// Create new inits map with this capability's init
|
|
64
|
+
// (overwrites if same name, supporting "last applied wins")
|
|
65
|
+
const newInits = new Map(existingInits);
|
|
66
|
+
newInits.set(name, init);
|
|
67
|
+
// Build the new capabilities array
|
|
68
|
+
const newCapabilities = hasExisting
|
|
69
|
+
? existingCapabilities
|
|
70
|
+
: [...existingCapabilities, name];
|
|
71
|
+
const ResultClass = class MixedClass extends Base {
|
|
72
|
+
/**
|
|
73
|
+
* Instance-level cache for initialized capabilities
|
|
74
|
+
*/
|
|
75
|
+
[CAPABILITY_CACHE] = new Map();
|
|
76
|
+
/**
|
|
77
|
+
* Cached base $ from parent class
|
|
78
|
+
*/
|
|
79
|
+
#base$;
|
|
80
|
+
constructor(...args) {
|
|
81
|
+
super(...args);
|
|
82
|
+
// Capture the base $ before we potentially delete it
|
|
83
|
+
// The base DO class sets this.$ in its constructor as an own property,
|
|
84
|
+
// which shadows our getter. We capture it and delete the own property
|
|
85
|
+
// so our getter can intercept property access.
|
|
86
|
+
//
|
|
87
|
+
// For composed mixins (withB(withA(DO))), the inner mixin already
|
|
88
|
+
// deleted the own property, so hasOwn returns false and we skip deletion.
|
|
89
|
+
// In that case, this.$ triggers the inner mixin's getter, which returns
|
|
90
|
+
// a Proxy - we capture that proxy as our base$.
|
|
91
|
+
const hasOwnDollar = Object.hasOwn(this, '$');
|
|
92
|
+
this.#base$ = this.$;
|
|
93
|
+
if (hasOwnDollar) {
|
|
94
|
+
delete this.$;
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* Check if this DO instance has a specific capability.
|
|
99
|
+
*
|
|
100
|
+
* @param cap - Capability name to check
|
|
101
|
+
* @returns true if capability is registered
|
|
102
|
+
*/
|
|
103
|
+
hasCapability(cap) {
|
|
104
|
+
return this.constructor.capabilities?.includes(cap) ?? false;
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
* WorkflowContext with capability extensions.
|
|
108
|
+
* Wraps the base $ with a Proxy that intercepts capability property access.
|
|
109
|
+
*/
|
|
110
|
+
get $() {
|
|
111
|
+
let base$ = this.#base$;
|
|
112
|
+
// If #base$ is undefined, we're being called during a subclass's constructor
|
|
113
|
+
// before that subclass has had a chance to set its #base$. In this case,
|
|
114
|
+
// we need to return super's $ directly (which will be our proxied version).
|
|
115
|
+
// This happens when withB(withA(DO)) and B's constructor calls this.$.
|
|
116
|
+
if (base$ === undefined) {
|
|
117
|
+
// Try to get $ from the prototype chain (bypassing our getter)
|
|
118
|
+
const proto = Object.getPrototypeOf(Object.getPrototypeOf(this));
|
|
119
|
+
const descriptor = Object.getOwnPropertyDescriptor(proto, '$');
|
|
120
|
+
if (descriptor?.get) {
|
|
121
|
+
base$ = descriptor.get.call(this);
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
// If still undefined, something is wrong
|
|
125
|
+
if (base$ === undefined) {
|
|
126
|
+
throw new Error(`Capability mixin '${name}': base $ context is undefined`);
|
|
127
|
+
}
|
|
128
|
+
const cache = this[CAPABILITY_CACHE];
|
|
129
|
+
const inits = this.constructor[CAPABILITY_INITS];
|
|
130
|
+
const instance = this;
|
|
131
|
+
return new Proxy(base$, {
|
|
132
|
+
get(target, prop, receiver) {
|
|
133
|
+
// Check if this is a capability property
|
|
134
|
+
if (typeof prop === 'string' && inits.has(prop)) {
|
|
135
|
+
// Lazy initialize capability on first access
|
|
136
|
+
if (!cache.has(prop)) {
|
|
137
|
+
const capInit = inits.get(prop);
|
|
138
|
+
const ctx = {
|
|
139
|
+
state: instance.ctx,
|
|
140
|
+
env: instance.env,
|
|
141
|
+
// Pass the proxied $ so capabilities can access other capabilities
|
|
142
|
+
$: receiver,
|
|
143
|
+
};
|
|
144
|
+
cache.set(prop, capInit(ctx));
|
|
145
|
+
}
|
|
146
|
+
return cache.get(prop);
|
|
147
|
+
}
|
|
148
|
+
// Fall through to base $ properties
|
|
149
|
+
return Reflect.get(target, prop, receiver);
|
|
150
|
+
},
|
|
151
|
+
});
|
|
152
|
+
}
|
|
153
|
+
};
|
|
154
|
+
// Set static properties directly on the class object
|
|
155
|
+
// (using Object.defineProperty to avoid class field evaluation issues with closures)
|
|
156
|
+
Object.defineProperty(ResultClass, CAPABILITY_INITS, {
|
|
157
|
+
value: newInits,
|
|
158
|
+
writable: false,
|
|
159
|
+
enumerable: false,
|
|
160
|
+
configurable: false,
|
|
161
|
+
});
|
|
162
|
+
Object.defineProperty(ResultClass, 'capabilities', {
|
|
163
|
+
value: newCapabilities,
|
|
164
|
+
writable: true,
|
|
165
|
+
enumerable: true,
|
|
166
|
+
configurable: true,
|
|
167
|
+
});
|
|
168
|
+
return ResultClass;
|
|
169
|
+
};
|
|
170
|
+
}
|
|
171
|
+
//# sourceMappingURL=infrastructure.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"infrastructure.js","sourceRoot":"","sources":["../../../objects/mixins/infrastructure.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* StoresModule - Extracted store accessors from DOBase
|
|
3
|
+
*
|
|
4
|
+
* This module provides lazy-loaded, cached store accessors for all 7 stores:
|
|
5
|
+
* - things - ThingsStore: CRUD operations for Things
|
|
6
|
+
* - rels - RelationshipsStore: Relationship CRUD and traversal
|
|
7
|
+
* - actions - ActionsStore: Action logging and lifecycle
|
|
8
|
+
* - events - EventsStore: Event emission and streaming
|
|
9
|
+
* - search - SearchStore: Full-text and semantic search
|
|
10
|
+
* - objects - ObjectsStore: DO registry and resolution
|
|
11
|
+
* - dlq - DLQStore: Dead Letter Queue for failed events
|
|
12
|
+
*
|
|
13
|
+
* Features:
|
|
14
|
+
* - Lazy loading: Stores are created on first access
|
|
15
|
+
* - Caching: Same instance returned on multiple accesses
|
|
16
|
+
* - Context updates: Branch changes clear cached stores
|
|
17
|
+
* - DLQ special handling: Event handlers for replay functionality
|
|
18
|
+
*/
|
|
19
|
+
import { ThingsStore as ThingsStoreImpl, RelationshipsStore as RelationshipsStoreImpl, ActionsStore as ActionsStoreImpl, EventsStore as EventsStoreImpl, SearchStore as SearchStoreImpl, ObjectsStore as ObjectsStoreImpl, DLQStore as DLQStoreImpl, } from '../../db/stores';
|
|
20
|
+
/**
|
|
21
|
+
* StoresModule - Manages lazy-loaded, cached store instances
|
|
22
|
+
*
|
|
23
|
+
* Extracted from DOBase to separate store accessor concerns from the main DO logic.
|
|
24
|
+
*/
|
|
25
|
+
export class StoresModule {
|
|
26
|
+
// Private cached store instances
|
|
27
|
+
_things;
|
|
28
|
+
_rels;
|
|
29
|
+
_actions;
|
|
30
|
+
_events;
|
|
31
|
+
_search;
|
|
32
|
+
_objects;
|
|
33
|
+
_dlq;
|
|
34
|
+
// Store context and event handlers
|
|
35
|
+
_context;
|
|
36
|
+
_eventHandlers;
|
|
37
|
+
constructor(context, eventHandlers) {
|
|
38
|
+
this._context = context;
|
|
39
|
+
this._eventHandlers = eventHandlers;
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* ThingsStore - CRUD operations for Things
|
|
43
|
+
*/
|
|
44
|
+
get things() {
|
|
45
|
+
if (!this._things) {
|
|
46
|
+
this._things = new ThingsStoreImpl(this._context);
|
|
47
|
+
}
|
|
48
|
+
return this._things;
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* RelationshipsStore - Relationship management
|
|
52
|
+
*/
|
|
53
|
+
get rels() {
|
|
54
|
+
if (!this._rels) {
|
|
55
|
+
this._rels = new RelationshipsStoreImpl(this._context);
|
|
56
|
+
}
|
|
57
|
+
return this._rels;
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* ActionsStore - Action logging and lifecycle
|
|
61
|
+
*/
|
|
62
|
+
get actions() {
|
|
63
|
+
if (!this._actions) {
|
|
64
|
+
this._actions = new ActionsStoreImpl(this._context);
|
|
65
|
+
}
|
|
66
|
+
return this._actions;
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* EventsStore - Event emission and streaming
|
|
70
|
+
*/
|
|
71
|
+
get events() {
|
|
72
|
+
if (!this._events) {
|
|
73
|
+
this._events = new EventsStoreImpl(this._context);
|
|
74
|
+
}
|
|
75
|
+
return this._events;
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* SearchStore - Full-text and semantic search
|
|
79
|
+
*/
|
|
80
|
+
get search() {
|
|
81
|
+
if (!this._search) {
|
|
82
|
+
this._search = new SearchStoreImpl(this._context);
|
|
83
|
+
}
|
|
84
|
+
return this._search;
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* ObjectsStore - DO registry and resolution
|
|
88
|
+
*/
|
|
89
|
+
get objects() {
|
|
90
|
+
if (!this._objects) {
|
|
91
|
+
this._objects = new ObjectsStoreImpl(this._context);
|
|
92
|
+
}
|
|
93
|
+
return this._objects;
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* DLQStore - Dead Letter Queue for failed events
|
|
97
|
+
*
|
|
98
|
+
* Special initialization: Creates a handler map from the registered event handlers
|
|
99
|
+
* to enable replay functionality.
|
|
100
|
+
*/
|
|
101
|
+
get dlq() {
|
|
102
|
+
if (!this._dlq) {
|
|
103
|
+
const handlerMap = new Map();
|
|
104
|
+
for (const [eventKey, registrations] of this._eventHandlers) {
|
|
105
|
+
if (registrations.length > 0) {
|
|
106
|
+
handlerMap.set(eventKey, async (data) => {
|
|
107
|
+
// Execute all registered handlers for this event
|
|
108
|
+
for (const registration of registrations) {
|
|
109
|
+
await registration.handler();
|
|
110
|
+
}
|
|
111
|
+
});
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
this._dlq = new DLQStoreImpl(this._context, handlerMap);
|
|
115
|
+
}
|
|
116
|
+
return this._dlq;
|
|
117
|
+
}
|
|
118
|
+
/**
|
|
119
|
+
* Update the store context (e.g., on branch change)
|
|
120
|
+
*
|
|
121
|
+
* Clears all cached stores so they will be recreated with the new context
|
|
122
|
+
* on next access.
|
|
123
|
+
*/
|
|
124
|
+
updateContext(newContext) {
|
|
125
|
+
this._context = newContext;
|
|
126
|
+
this.clearCachedStores();
|
|
127
|
+
}
|
|
128
|
+
/**
|
|
129
|
+
* Update event handlers (for DLQ replay functionality)
|
|
130
|
+
*
|
|
131
|
+
* Clears the cached DLQ store so it will be recreated with new handlers.
|
|
132
|
+
*/
|
|
133
|
+
updateEventHandlers(handlers) {
|
|
134
|
+
this._eventHandlers = handlers;
|
|
135
|
+
// Only clear DLQ since it's the only store that depends on event handlers
|
|
136
|
+
this._dlq = undefined;
|
|
137
|
+
}
|
|
138
|
+
/**
|
|
139
|
+
* Clear all cached store instances
|
|
140
|
+
*
|
|
141
|
+
* Called when context changes to ensure stores are recreated with new context.
|
|
142
|
+
*/
|
|
143
|
+
clearCachedStores() {
|
|
144
|
+
this._things = undefined;
|
|
145
|
+
this._rels = undefined;
|
|
146
|
+
this._actions = undefined;
|
|
147
|
+
this._events = undefined;
|
|
148
|
+
this._search = undefined;
|
|
149
|
+
this._objects = undefined;
|
|
150
|
+
this._dlq = undefined;
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
//# sourceMappingURL=StoresModule.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"StoresModule.js","sourceRoot":"","sources":["../../../objects/modules/StoresModule.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAaH,OAAO,EACL,WAAW,IAAI,eAAe,EAC9B,kBAAkB,IAAI,sBAAsB,EAC5C,YAAY,IAAI,gBAAgB,EAChC,WAAW,IAAI,eAAe,EAC9B,WAAW,IAAI,eAAe,EAC9B,YAAY,IAAI,gBAAgB,EAChC,QAAQ,IAAI,YAAY,GACzB,MAAM,iBAAiB,CAAA;AAQxB;;;;GAIG;AACH,MAAM,OAAO,YAAY;IACvB,iCAAiC;IACzB,OAAO,CAAc;IACrB,KAAK,CAAqB;IAC1B,QAAQ,CAAe;IACvB,OAAO,CAAc;IACrB,OAAO,CAAc;IACrB,QAAQ,CAAe;IACvB,IAAI,CAAW;IAEvB,mCAAmC;IAC3B,QAAQ,CAAc;IACtB,cAAc,CAAiB;IAEvC,YAAY,OAAqB,EAAE,aAA8B;QAC/D,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAA;QACvB,IAAI,CAAC,cAAc,GAAG,aAAa,CAAA;IACrC,CAAC;IAED;;OAEG;IACH,IAAI,MAAM;QACR,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAClB,IAAI,CAAC,OAAO,GAAG,IAAI,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;QACnD,CAAC;QACD,OAAO,IAAI,CAAC,OAAO,CAAA;IACrB,CAAC;IAED;;OAEG;IACH,IAAI,IAAI;QACN,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;YAChB,IAAI,CAAC,KAAK,GAAG,IAAI,sBAAsB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;QACxD,CAAC;QACD,OAAO,IAAI,CAAC,KAAK,CAAA;IACnB,CAAC;IAED;;OAEG;IACH,IAAI,OAAO;QACT,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACnB,IAAI,CAAC,QAAQ,GAAG,IAAI,gBAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;QACrD,CAAC;QACD,OAAO,IAAI,CAAC,QAAQ,CAAA;IACtB,CAAC;IAED;;OAEG;IACH,IAAI,MAAM;QACR,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAClB,IAAI,CAAC,OAAO,GAAG,IAAI,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;QACnD,CAAC;QACD,OAAO,IAAI,CAAC,OAAO,CAAA;IACrB,CAAC;IAED;;OAEG;IACH,IAAI,MAAM;QACR,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAClB,IAAI,CAAC,OAAO,GAAG,IAAI,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;QACnD,CAAC;QACD,OAAO,IAAI,CAAC,OAAO,CAAA;IACrB,CAAC;IAED;;OAEG;IACH,IAAI,OAAO;QACT,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACnB,IAAI,CAAC,QAAQ,GAAG,IAAI,gBAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;QACrD,CAAC;QACD,OAAO,IAAI,CAAC,QAAQ,CAAA;IACtB,CAAC;IAED;;;;;OAKG;IACH,IAAI,GAAG;QACL,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;YACf,MAAM,UAAU,GAAG,IAAI,GAAG,EAA+C,CAAA;YACzE,KAAK,MAAM,CAAC,QAAQ,EAAE,aAAa,CAAC,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;gBAC5D,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAC7B,UAAU,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;wBACtC,iDAAiD;wBACjD,KAAK,MAAM,YAAY,IAAI,aAAa,EAAE,CAAC;4BACzC,MAAM,YAAY,CAAC,OAAO,EAAE,CAAA;wBAC9B,CAAC;oBACH,CAAC,CAAC,CAAA;gBACJ,CAAC;YACH,CAAC;YACD,IAAI,CAAC,IAAI,GAAG,IAAI,YAAY,CAAC,IAAI,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAA;QACzD,CAAC;QACD,OAAO,IAAI,CAAC,IAAI,CAAA;IAClB,CAAC;IAED;;;;;OAKG;IACH,aAAa,CAAC,UAAwB;QACpC,IAAI,CAAC,QAAQ,GAAG,UAAU,CAAA;QAC1B,IAAI,CAAC,iBAAiB,EAAE,CAAA;IAC1B,CAAC;IAED;;;;OAIG;IACH,mBAAmB,CAAC,QAAyB;QAC3C,IAAI,CAAC,cAAc,GAAG,QAAQ,CAAA;QAC9B,0EAA0E;QAC1E,IAAI,CAAC,IAAI,GAAG,SAAS,CAAA;IACvB,CAAC;IAED;;;;OAIG;IACK,iBAAiB;QACvB,IAAI,CAAC,OAAO,GAAG,SAAS,CAAA;QACxB,IAAI,CAAC,KAAK,GAAG,SAAS,CAAA;QACtB,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAA;QACzB,IAAI,CAAC,OAAO,GAAG,SAAS,CAAA;QACxB,IAAI,CAAC,OAAO,GAAG,SAAS,CAAA;QACxB,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAA;QACzB,IAAI,CAAC,IAAI,GAAG,SAAS,CAAA;IACvB,CAAC;CACF"}
|