effect 4.0.0-beta.43 → 4.0.0-beta.44
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/dist/Cache.d.ts +12 -43
- package/dist/Cache.d.ts.map +1 -1
- package/dist/Cache.js +15 -42
- package/dist/Cache.js.map +1 -1
- package/dist/Cause.d.ts +21 -21
- package/dist/Cause.d.ts.map +1 -1
- package/dist/Cause.js +89 -10
- package/dist/Cause.js.map +1 -1
- package/dist/Channel.d.ts +42 -19
- package/dist/Channel.d.ts.map +1 -1
- package/dist/Channel.js +86 -46
- package/dist/Channel.js.map +1 -1
- package/dist/Clock.d.ts +2 -2
- package/dist/Clock.d.ts.map +1 -1
- package/dist/Clock.js.map +1 -1
- package/dist/Config.d.ts +2 -2
- package/dist/ConfigProvider.d.ts +5 -5
- package/dist/ConfigProvider.d.ts.map +1 -1
- package/dist/ConfigProvider.js +5 -5
- package/dist/ConfigProvider.js.map +1 -1
- package/dist/Console.d.ts +2 -2
- package/dist/Console.d.ts.map +1 -1
- package/dist/Console.js.map +1 -1
- package/dist/Context.d.ts +1150 -0
- package/dist/Context.d.ts.map +1 -0
- package/dist/{ServiceMap.js → Context.js} +139 -139
- package/dist/Context.js.map +1 -0
- package/dist/DateTime.d.ts +2 -2
- package/dist/DateTime.d.ts.map +1 -1
- package/dist/DateTime.js +2 -2
- package/dist/DateTime.js.map +1 -1
- package/dist/Effect.d.ts +177 -177
- package/dist/Effect.d.ts.map +1 -1
- package/dist/Effect.js +81 -81
- package/dist/Effect.js.map +1 -1
- package/dist/ErrorReporter.d.ts +3 -3
- package/dist/ErrorReporter.d.ts.map +1 -1
- package/dist/ErrorReporter.js +1 -1
- package/dist/ErrorReporter.js.map +1 -1
- package/dist/ExecutionPlan.d.ts +6 -6
- package/dist/ExecutionPlan.d.ts.map +1 -1
- package/dist/ExecutionPlan.js +4 -4
- package/dist/ExecutionPlan.js.map +1 -1
- package/dist/Fiber.d.ts +7 -7
- package/dist/Fiber.d.ts.map +1 -1
- package/dist/Fiber.js.map +1 -1
- package/dist/FiberHandle.d.ts +2 -2
- package/dist/FiberHandle.d.ts.map +1 -1
- package/dist/FiberHandle.js +4 -4
- package/dist/FiberHandle.js.map +1 -1
- package/dist/FiberMap.d.ts +2 -2
- package/dist/FiberMap.d.ts.map +1 -1
- package/dist/FiberMap.js +4 -4
- package/dist/FiberMap.js.map +1 -1
- package/dist/FiberSet.d.ts +2 -2
- package/dist/FiberSet.d.ts.map +1 -1
- package/dist/FiberSet.js +4 -4
- package/dist/FiberSet.js.map +1 -1
- package/dist/FileSystem.d.ts +3 -3
- package/dist/FileSystem.d.ts.map +1 -1
- package/dist/FileSystem.js +3 -3
- package/dist/FileSystem.js.map +1 -1
- package/dist/Layer.d.ts +286 -268
- package/dist/Layer.d.ts.map +1 -1
- package/dist/Layer.js +133 -134
- package/dist/Layer.js.map +1 -1
- package/dist/LayerMap.d.ts +18 -18
- package/dist/LayerMap.d.ts.map +1 -1
- package/dist/LayerMap.js +18 -15
- package/dist/LayerMap.js.map +1 -1
- package/dist/Logger.d.ts +3 -3
- package/dist/Logger.d.ts.map +1 -1
- package/dist/Logger.js.map +1 -1
- package/dist/ManagedRuntime.d.ts +6 -6
- package/dist/ManagedRuntime.d.ts.map +1 -1
- package/dist/ManagedRuntime.js +18 -21
- package/dist/ManagedRuntime.js.map +1 -1
- package/dist/Metric.d.ts +19 -19
- package/dist/Metric.d.ts.map +1 -1
- package/dist/Metric.js +21 -21
- package/dist/Metric.js.map +1 -1
- package/dist/Path.d.ts +2 -2
- package/dist/Path.d.ts.map +1 -1
- package/dist/Path.js +2 -2
- package/dist/Path.js.map +1 -1
- package/dist/Pool.d.ts.map +1 -1
- package/dist/Pool.js +4 -4
- package/dist/Pool.js.map +1 -1
- package/dist/PubSub.d.ts.map +1 -1
- package/dist/PubSub.js +3 -3
- package/dist/PubSub.js.map +1 -1
- package/dist/Random.d.ts +2 -2
- package/dist/Random.d.ts.map +1 -1
- package/dist/Random.js +0 -23
- package/dist/Random.js.map +1 -1
- package/dist/RcMap.d.ts +2 -2
- package/dist/RcMap.d.ts.map +1 -1
- package/dist/RcMap.js +12 -12
- package/dist/RcMap.js.map +1 -1
- package/dist/Redactable.d.ts +139 -62
- package/dist/Redactable.d.ts.map +1 -1
- package/dist/Redactable.js +59 -55
- package/dist/Redactable.js.map +1 -1
- package/dist/References.d.ts +26 -14
- package/dist/References.d.ts.map +1 -1
- package/dist/References.js +0 -12
- package/dist/References.js.map +1 -1
- package/dist/Request.d.ts +5 -5
- package/dist/Request.d.ts.map +1 -1
- package/dist/Request.js.map +1 -1
- package/dist/RequestResolver.d.ts.map +1 -1
- package/dist/RequestResolver.js +6 -7
- package/dist/RequestResolver.js.map +1 -1
- package/dist/Resource.d.ts +0 -3
- package/dist/Resource.d.ts.map +1 -1
- package/dist/Resource.js +3 -3
- package/dist/Resource.js.map +1 -1
- package/dist/Schedule.d.ts +2 -2
- package/dist/Schedule.d.ts.map +1 -1
- package/dist/Schedule.js +2 -2
- package/dist/Schedule.js.map +1 -1
- package/dist/Scheduler.d.ts +4 -4
- package/dist/Scheduler.d.ts.map +1 -1
- package/dist/Scheduler.js +7 -4
- package/dist/Scheduler.js.map +1 -1
- package/dist/Schema.d.ts +531 -214
- package/dist/Schema.d.ts.map +1 -1
- package/dist/Schema.js +304 -103
- package/dist/Schema.js.map +1 -1
- package/dist/SchemaAST.d.ts.map +1 -1
- package/dist/SchemaAST.js +5 -15
- package/dist/SchemaAST.js.map +1 -1
- package/dist/SchemaGetter.d.ts +49 -5
- package/dist/SchemaGetter.d.ts.map +1 -1
- package/dist/SchemaGetter.js +64 -5
- package/dist/SchemaGetter.js.map +1 -1
- package/dist/SchemaTransformation.d.ts +145 -0
- package/dist/SchemaTransformation.d.ts.map +1 -1
- package/dist/SchemaTransformation.js +146 -0
- package/dist/SchemaTransformation.js.map +1 -1
- package/dist/Scope.d.ts +2 -2
- package/dist/Scope.d.ts.map +1 -1
- package/dist/Scope.js.map +1 -1
- package/dist/ScopedCache.d.ts.map +1 -1
- package/dist/ScopedCache.js +4 -4
- package/dist/ScopedCache.js.map +1 -1
- package/dist/Sink.d.ts +6 -6
- package/dist/Sink.d.ts.map +1 -1
- package/dist/Sink.js +1 -1
- package/dist/Sink.js.map +1 -1
- package/dist/Stdio.d.ts +2 -2
- package/dist/Stdio.d.ts.map +1 -1
- package/dist/Stdio.js +2 -2
- package/dist/Stdio.js.map +1 -1
- package/dist/Stream.d.ts +187 -117
- package/dist/Stream.d.ts.map +1 -1
- package/dist/Stream.js +133 -57
- package/dist/Stream.js.map +1 -1
- package/dist/Terminal.d.ts +3 -3
- package/dist/Terminal.d.ts.map +1 -1
- package/dist/Terminal.js +2 -2
- package/dist/Terminal.js.map +1 -1
- package/dist/Tracer.d.ts +16 -16
- package/dist/Tracer.d.ts.map +1 -1
- package/dist/Tracer.js +11 -8
- package/dist/Tracer.js.map +1 -1
- package/dist/Unify.d.ts +8 -2
- package/dist/Unify.d.ts.map +1 -1
- package/dist/Unify.js.map +1 -1
- package/dist/index.d.ts +81 -15
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +81 -15
- package/dist/index.js.map +1 -1
- package/dist/internal/core.js.map +1 -1
- package/dist/internal/effect.js +74 -74
- package/dist/internal/effect.js.map +1 -1
- package/dist/internal/layer.js +3 -3
- package/dist/internal/layer.js.map +1 -1
- package/dist/internal/random.js +2 -2
- package/dist/internal/random.js.map +1 -1
- package/dist/internal/rcRef.js +9 -9
- package/dist/internal/rcRef.js.map +1 -1
- package/dist/internal/references.js +13 -13
- package/dist/internal/references.js.map +1 -1
- package/dist/internal/request.js +6 -6
- package/dist/internal/request.js.map +1 -1
- package/dist/internal/schedule.js +1 -1
- package/dist/internal/schedule.js.map +1 -1
- package/dist/internal/schema/representation.js +11 -1
- package/dist/internal/schema/representation.js.map +1 -1
- package/dist/internal/schema/schema.d.ts +10 -1
- package/dist/internal/schema/schema.d.ts.map +1 -1
- package/dist/internal/schema/schema.js +21 -1
- package/dist/internal/schema/schema.js.map +1 -1
- package/dist/testing/TestSchema.d.ts +3 -3
- package/dist/testing/TestSchema.d.ts.map +1 -1
- package/dist/testing/TestSchema.js.map +1 -1
- package/dist/unstable/ai/AiError.d.ts +19 -19
- package/dist/unstable/ai/AiError.d.ts.map +1 -1
- package/dist/unstable/ai/AiError.js +2 -1
- package/dist/unstable/ai/AiError.js.map +1 -1
- package/dist/unstable/ai/Chat.d.ts +4 -4
- package/dist/unstable/ai/Chat.d.ts.map +1 -1
- package/dist/unstable/ai/Chat.js +3 -3
- package/dist/unstable/ai/Chat.js.map +1 -1
- package/dist/unstable/ai/EmbeddingModel.d.ts +6 -6
- package/dist/unstable/ai/EmbeddingModel.d.ts.map +1 -1
- package/dist/unstable/ai/EmbeddingModel.js +3 -3
- package/dist/unstable/ai/EmbeddingModel.js.map +1 -1
- package/dist/unstable/ai/IdGenerator.d.ts +2 -2
- package/dist/unstable/ai/IdGenerator.d.ts.map +1 -1
- package/dist/unstable/ai/IdGenerator.js +2 -2
- package/dist/unstable/ai/IdGenerator.js.map +1 -1
- package/dist/unstable/ai/LanguageModel.d.ts +2 -2
- package/dist/unstable/ai/LanguageModel.d.ts.map +1 -1
- package/dist/unstable/ai/LanguageModel.js +2 -2
- package/dist/unstable/ai/LanguageModel.js.map +1 -1
- package/dist/unstable/ai/McpSchema.d.ts +54 -54
- package/dist/unstable/ai/McpSchema.d.ts.map +1 -1
- package/dist/unstable/ai/McpSchema.js +15 -8
- package/dist/unstable/ai/McpSchema.js.map +1 -1
- package/dist/unstable/ai/McpServer.d.ts +22 -22
- package/dist/unstable/ai/McpServer.d.ts.map +1 -1
- package/dist/unstable/ai/McpServer.js +25 -25
- package/dist/unstable/ai/McpServer.js.map +1 -1
- package/dist/unstable/ai/Model.d.ts +3 -3
- package/dist/unstable/ai/Model.d.ts.map +1 -1
- package/dist/unstable/ai/Model.js +5 -5
- package/dist/unstable/ai/Model.js.map +1 -1
- package/dist/unstable/ai/Prompt.d.ts.map +1 -1
- package/dist/unstable/ai/Prompt.js +6 -9
- package/dist/unstable/ai/Prompt.js.map +1 -1
- package/dist/unstable/ai/Response.d.ts +1 -1
- package/dist/unstable/ai/Response.d.ts.map +1 -1
- package/dist/unstable/ai/Response.js +6 -7
- package/dist/unstable/ai/Response.js.map +1 -1
- package/dist/unstable/ai/ResponseIdTracker.d.ts +2 -2
- package/dist/unstable/ai/ResponseIdTracker.d.ts.map +1 -1
- package/dist/unstable/ai/ResponseIdTracker.js +2 -2
- package/dist/unstable/ai/ResponseIdTracker.js.map +1 -1
- package/dist/unstable/ai/Telemetry.d.ts +35 -2
- package/dist/unstable/ai/Telemetry.d.ts.map +1 -1
- package/dist/unstable/ai/Telemetry.js +2 -2
- package/dist/unstable/ai/Telemetry.js.map +1 -1
- package/dist/unstable/ai/Tokenizer.d.ts +2 -2
- package/dist/unstable/ai/Tokenizer.d.ts.map +1 -1
- package/dist/unstable/ai/Tokenizer.js +2 -2
- package/dist/unstable/ai/Tokenizer.js.map +1 -1
- package/dist/unstable/ai/Tool.d.ts +16 -16
- package/dist/unstable/ai/Tool.d.ts.map +1 -1
- package/dist/unstable/ai/Tool.js +41 -13
- package/dist/unstable/ai/Tool.js.map +1 -1
- package/dist/unstable/ai/Toolkit.d.ts +3 -3
- package/dist/unstable/ai/Toolkit.d.ts.map +1 -1
- package/dist/unstable/ai/Toolkit.js +10 -10
- package/dist/unstable/ai/Toolkit.js.map +1 -1
- package/dist/unstable/cli/Argument.d.ts +2 -3
- package/dist/unstable/cli/Argument.d.ts.map +1 -1
- package/dist/unstable/cli/Argument.js.map +1 -1
- package/dist/unstable/cli/CliError.d.ts +29 -8
- package/dist/unstable/cli/CliError.d.ts.map +1 -1
- package/dist/unstable/cli/CliError.js +8 -1
- package/dist/unstable/cli/CliError.js.map +1 -1
- package/dist/unstable/cli/CliOutput.d.ts +2 -2
- package/dist/unstable/cli/CliOutput.d.ts.map +1 -1
- package/dist/unstable/cli/CliOutput.js +2 -2
- package/dist/unstable/cli/CliOutput.js.map +1 -1
- package/dist/unstable/cli/Command.d.ts +14 -14
- package/dist/unstable/cli/Command.d.ts.map +1 -1
- package/dist/unstable/cli/Command.js +11 -10
- package/dist/unstable/cli/Command.js.map +1 -1
- package/dist/unstable/cli/Flag.d.ts +2 -3
- package/dist/unstable/cli/Flag.d.ts.map +1 -1
- package/dist/unstable/cli/Flag.js.map +1 -1
- package/dist/unstable/cli/GlobalFlag.d.ts +2 -2
- package/dist/unstable/cli/GlobalFlag.d.ts.map +1 -1
- package/dist/unstable/cli/GlobalFlag.js +2 -2
- package/dist/unstable/cli/GlobalFlag.js.map +1 -1
- package/dist/unstable/cli/HelpDoc.d.ts +8 -8
- package/dist/unstable/cli/HelpDoc.d.ts.map +1 -1
- package/dist/unstable/cli/Param.d.ts +30 -2
- package/dist/unstable/cli/Param.d.ts.map +1 -1
- package/dist/unstable/cli/Param.js +17 -7
- package/dist/unstable/cli/Param.js.map +1 -1
- package/dist/unstable/cli/Prompt.js +8 -2
- package/dist/unstable/cli/Prompt.js.map +1 -1
- package/dist/unstable/cli/internal/command.d.ts +5 -5
- package/dist/unstable/cli/internal/command.d.ts.map +1 -1
- package/dist/unstable/cli/internal/command.js +3 -3
- package/dist/unstable/cli/internal/command.js.map +1 -1
- package/dist/unstable/cli/internal/parser.js +94 -15
- package/dist/unstable/cli/internal/parser.js.map +1 -1
- package/dist/unstable/cluster/ClusterError.d.ts +7 -7
- package/dist/unstable/cluster/ClusterSchema.d.ts +12 -9
- package/dist/unstable/cluster/ClusterSchema.d.ts.map +1 -1
- package/dist/unstable/cluster/ClusterSchema.js +9 -9
- package/dist/unstable/cluster/ClusterSchema.js.map +1 -1
- package/dist/unstable/cluster/ClusterWorkflowEngine.d.ts.map +1 -1
- package/dist/unstable/cluster/ClusterWorkflowEngine.js +13 -14
- package/dist/unstable/cluster/ClusterWorkflowEngine.js.map +1 -1
- package/dist/unstable/cluster/Entity.d.ts +8 -8
- package/dist/unstable/cluster/Entity.d.ts.map +1 -1
- package/dist/unstable/cluster/Entity.js +12 -12
- package/dist/unstable/cluster/Entity.js.map +1 -1
- package/dist/unstable/cluster/EntityAddress.d.ts +2 -2
- package/dist/unstable/cluster/EntityProxy.js +3 -3
- package/dist/unstable/cluster/EntityProxy.js.map +1 -1
- package/dist/unstable/cluster/EntityProxyServer.d.ts.map +1 -1
- package/dist/unstable/cluster/EntityProxyServer.js +4 -4
- package/dist/unstable/cluster/EntityProxyServer.js.map +1 -1
- package/dist/unstable/cluster/EntityResource.d.ts +2 -2
- package/dist/unstable/cluster/EntityResource.d.ts.map +1 -1
- package/dist/unstable/cluster/EntityResource.js +2 -2
- package/dist/unstable/cluster/EntityResource.js.map +1 -1
- package/dist/unstable/cluster/Envelope.d.ts +3 -3
- package/dist/unstable/cluster/HttpRunner.js +2 -2
- package/dist/unstable/cluster/HttpRunner.js.map +1 -1
- package/dist/unstable/cluster/K8sHttpClient.d.ts +4 -4
- package/dist/unstable/cluster/K8sHttpClient.d.ts.map +1 -1
- package/dist/unstable/cluster/K8sHttpClient.js +2 -2
- package/dist/unstable/cluster/K8sHttpClient.js.map +1 -1
- package/dist/unstable/cluster/Message.d.ts +7 -4
- package/dist/unstable/cluster/Message.d.ts.map +1 -1
- package/dist/unstable/cluster/Message.js +5 -5
- package/dist/unstable/cluster/Message.js.map +1 -1
- package/dist/unstable/cluster/MessageStorage.d.ts +14 -14
- package/dist/unstable/cluster/MessageStorage.d.ts.map +1 -1
- package/dist/unstable/cluster/MessageStorage.js +8 -8
- package/dist/unstable/cluster/MessageStorage.js.map +1 -1
- package/dist/unstable/cluster/Reply.d.ts +2 -2
- package/dist/unstable/cluster/Reply.d.ts.map +1 -1
- package/dist/unstable/cluster/Reply.js +5 -5
- package/dist/unstable/cluster/Reply.js.map +1 -1
- package/dist/unstable/cluster/Runner.d.ts +1 -1
- package/dist/unstable/cluster/RunnerAddress.d.ts +1 -1
- package/dist/unstable/cluster/RunnerHealth.d.ts +2 -2
- package/dist/unstable/cluster/RunnerHealth.d.ts.map +1 -1
- package/dist/unstable/cluster/RunnerHealth.js +2 -2
- package/dist/unstable/cluster/RunnerHealth.js.map +1 -1
- package/dist/unstable/cluster/RunnerServer.js +1 -1
- package/dist/unstable/cluster/RunnerServer.js.map +1 -1
- package/dist/unstable/cluster/RunnerStorage.d.ts +12 -12
- package/dist/unstable/cluster/RunnerStorage.d.ts.map +1 -1
- package/dist/unstable/cluster/RunnerStorage.js +3 -3
- package/dist/unstable/cluster/RunnerStorage.js.map +1 -1
- package/dist/unstable/cluster/Runners.d.ts +3 -3
- package/dist/unstable/cluster/Runners.d.ts.map +1 -1
- package/dist/unstable/cluster/Runners.js +7 -7
- package/dist/unstable/cluster/Runners.js.map +1 -1
- package/dist/unstable/cluster/ShardId.d.ts +35 -49
- package/dist/unstable/cluster/ShardId.d.ts.map +1 -1
- package/dist/unstable/cluster/ShardId.js +65 -67
- package/dist/unstable/cluster/ShardId.js.map +1 -1
- package/dist/unstable/cluster/Sharding.d.ts +2 -2
- package/dist/unstable/cluster/Sharding.d.ts.map +1 -1
- package/dist/unstable/cluster/Sharding.js +21 -21
- package/dist/unstable/cluster/Sharding.js.map +1 -1
- package/dist/unstable/cluster/ShardingConfig.d.ts +2 -2
- package/dist/unstable/cluster/ShardingConfig.d.ts.map +1 -1
- package/dist/unstable/cluster/ShardingConfig.js +5 -5
- package/dist/unstable/cluster/ShardingConfig.js.map +1 -1
- package/dist/unstable/cluster/SingletonAddress.d.ts +2 -2
- package/dist/unstable/cluster/Snowflake.d.ts +2 -2
- package/dist/unstable/cluster/Snowflake.d.ts.map +1 -1
- package/dist/unstable/cluster/Snowflake.js +2 -2
- package/dist/unstable/cluster/Snowflake.js.map +1 -1
- package/dist/unstable/cluster/SqlMessageStorage.js +1 -1
- package/dist/unstable/cluster/SqlMessageStorage.js.map +1 -1
- package/dist/unstable/cluster/internal/entityManager.js +15 -14
- package/dist/unstable/cluster/internal/entityManager.js.map +1 -1
- package/dist/unstable/cluster/internal/entityReaper.js +2 -2
- package/dist/unstable/cluster/internal/entityReaper.js.map +1 -1
- package/dist/unstable/cluster/internal/resourceMap.js +3 -3
- package/dist/unstable/cluster/internal/resourceMap.js.map +1 -1
- package/dist/unstable/devtools/DevToolsClient.d.ts +2 -2
- package/dist/unstable/devtools/DevToolsClient.d.ts.map +1 -1
- package/dist/unstable/devtools/DevToolsClient.js +5 -5
- package/dist/unstable/devtools/DevToolsClient.js.map +1 -1
- package/dist/unstable/eventlog/EventJournal.d.ts +4 -4
- package/dist/unstable/eventlog/EventJournal.d.ts.map +1 -1
- package/dist/unstable/eventlog/EventJournal.js +2 -2
- package/dist/unstable/eventlog/EventJournal.js.map +1 -1
- package/dist/unstable/eventlog/EventLog.d.ts +5 -5
- package/dist/unstable/eventlog/EventLog.d.ts.map +1 -1
- package/dist/unstable/eventlog/EventLog.js +18 -18
- package/dist/unstable/eventlog/EventLog.js.map +1 -1
- package/dist/unstable/eventlog/EventLogEncryption.d.ts +2 -2
- package/dist/unstable/eventlog/EventLogEncryption.d.ts.map +1 -1
- package/dist/unstable/eventlog/EventLogEncryption.js +2 -2
- package/dist/unstable/eventlog/EventLogEncryption.js.map +1 -1
- package/dist/unstable/eventlog/EventLogRemote.d.ts +15 -12
- package/dist/unstable/eventlog/EventLogRemote.d.ts.map +1 -1
- package/dist/unstable/eventlog/EventLogRemote.js +2 -2
- package/dist/unstable/eventlog/EventLogRemote.js.map +1 -1
- package/dist/unstable/eventlog/EventLogServer.d.ts +3 -3
- package/dist/unstable/eventlog/EventLogServer.d.ts.map +1 -1
- package/dist/unstable/eventlog/EventLogServer.js +2 -2
- package/dist/unstable/eventlog/EventLogServer.js.map +1 -1
- package/dist/unstable/http/Etag.d.ts +2 -2
- package/dist/unstable/http/Etag.d.ts.map +1 -1
- package/dist/unstable/http/Etag.js +2 -2
- package/dist/unstable/http/Etag.js.map +1 -1
- package/dist/unstable/http/FetchHttpClient.d.ts +6 -3
- package/dist/unstable/http/FetchHttpClient.d.ts.map +1 -1
- package/dist/unstable/http/FetchHttpClient.js +5 -5
- package/dist/unstable/http/FetchHttpClient.js.map +1 -1
- package/dist/unstable/http/Headers.d.ts +5 -2
- package/dist/unstable/http/Headers.d.ts.map +1 -1
- package/dist/unstable/http/Headers.js +3 -3
- package/dist/unstable/http/Headers.js.map +1 -1
- package/dist/unstable/http/HttpClient.d.ts +8 -6
- package/dist/unstable/http/HttpClient.d.ts.map +1 -1
- package/dist/unstable/http/HttpClient.js +6 -6
- package/dist/unstable/http/HttpClient.js.map +1 -1
- package/dist/unstable/http/HttpClientError.d.ts +1 -1
- package/dist/unstable/http/HttpClientRequest.d.ts +2 -2
- package/dist/unstable/http/HttpClientRequest.d.ts.map +1 -1
- package/dist/unstable/http/HttpClientRequest.js +4 -4
- package/dist/unstable/http/HttpClientRequest.js.map +1 -1
- package/dist/unstable/http/HttpEffect.d.ts +6 -6
- package/dist/unstable/http/HttpEffect.d.ts.map +1 -1
- package/dist/unstable/http/HttpEffect.js +24 -24
- package/dist/unstable/http/HttpEffect.js.map +1 -1
- package/dist/unstable/http/HttpIncomingMessage.d.ts +2 -2
- package/dist/unstable/http/HttpIncomingMessage.d.ts.map +1 -1
- package/dist/unstable/http/HttpIncomingMessage.js +2 -2
- package/dist/unstable/http/HttpIncomingMessage.js.map +1 -1
- package/dist/unstable/http/HttpMiddleware.d.ts +3 -3
- package/dist/unstable/http/HttpMiddleware.d.ts.map +1 -1
- package/dist/unstable/http/HttpMiddleware.js +26 -14
- package/dist/unstable/http/HttpMiddleware.js.map +1 -1
- package/dist/unstable/http/HttpPlatform.d.ts +2 -2
- package/dist/unstable/http/HttpPlatform.d.ts.map +1 -1
- package/dist/unstable/http/HttpPlatform.js +2 -2
- package/dist/unstable/http/HttpPlatform.js.map +1 -1
- package/dist/unstable/http/HttpRouter.d.ts +7 -7
- package/dist/unstable/http/HttpRouter.d.ts.map +1 -1
- package/dist/unstable/http/HttpRouter.js +29 -29
- package/dist/unstable/http/HttpRouter.js.map +1 -1
- package/dist/unstable/http/HttpServer.d.ts +2 -2
- package/dist/unstable/http/HttpServer.d.ts.map +1 -1
- package/dist/unstable/http/HttpServer.js +2 -2
- package/dist/unstable/http/HttpServer.js.map +1 -1
- package/dist/unstable/http/HttpServerError.d.ts +3 -3
- package/dist/unstable/http/HttpServerError.d.ts.map +1 -1
- package/dist/unstable/http/HttpServerError.js +3 -3
- package/dist/unstable/http/HttpServerError.js.map +1 -1
- package/dist/unstable/http/HttpServerRequest.d.ts +4 -4
- package/dist/unstable/http/HttpServerRequest.d.ts.map +1 -1
- package/dist/unstable/http/HttpServerRequest.js +6 -6
- package/dist/unstable/http/HttpServerRequest.js.map +1 -1
- package/dist/unstable/http/HttpServerResponse.d.ts +2 -2
- package/dist/unstable/http/HttpServerResponse.d.ts.map +1 -1
- package/dist/unstable/http/HttpServerResponse.js +6 -6
- package/dist/unstable/http/HttpServerResponse.js.map +1 -1
- package/dist/unstable/http/Multipart.d.ts +6 -6
- package/dist/unstable/http/Multipart.d.ts.map +1 -1
- package/dist/unstable/http/Multipart.js +7 -7
- package/dist/unstable/http/Multipart.js.map +1 -1
- package/dist/unstable/httpapi/HttpApi.d.ts +9 -9
- package/dist/unstable/httpapi/HttpApi.d.ts.map +1 -1
- package/dist/unstable/httpapi/HttpApi.js +8 -8
- package/dist/unstable/httpapi/HttpApi.js.map +1 -1
- package/dist/unstable/httpapi/HttpApiBuilder.d.ts +0 -3
- package/dist/unstable/httpapi/HttpApiBuilder.d.ts.map +1 -1
- package/dist/unstable/httpapi/HttpApiBuilder.js +20 -20
- package/dist/unstable/httpapi/HttpApiBuilder.js.map +1 -1
- package/dist/unstable/httpapi/HttpApiClient.d.ts.map +1 -1
- package/dist/unstable/httpapi/HttpApiClient.js +1 -1
- package/dist/unstable/httpapi/HttpApiClient.js.map +1 -1
- package/dist/unstable/httpapi/HttpApiEndpoint.d.ts +7 -7
- package/dist/unstable/httpapi/HttpApiEndpoint.d.ts.map +1 -1
- package/dist/unstable/httpapi/HttpApiEndpoint.js +4 -4
- package/dist/unstable/httpapi/HttpApiEndpoint.js.map +1 -1
- package/dist/unstable/httpapi/HttpApiError.d.ts +13 -13
- package/dist/unstable/httpapi/HttpApiError.d.ts.map +1 -1
- package/dist/unstable/httpapi/HttpApiGroup.d.ts +8 -8
- package/dist/unstable/httpapi/HttpApiGroup.d.ts.map +1 -1
- package/dist/unstable/httpapi/HttpApiGroup.js +4 -4
- package/dist/unstable/httpapi/HttpApiGroup.js.map +1 -1
- package/dist/unstable/httpapi/HttpApiMiddleware.d.ts +6 -6
- package/dist/unstable/httpapi/HttpApiMiddleware.d.ts.map +1 -1
- package/dist/unstable/httpapi/HttpApiMiddleware.js +5 -5
- package/dist/unstable/httpapi/HttpApiMiddleware.js.map +1 -1
- package/dist/unstable/httpapi/HttpApiSecurity.d.ts +9 -6
- package/dist/unstable/httpapi/HttpApiSecurity.d.ts.map +1 -1
- package/dist/unstable/httpapi/HttpApiSecurity.js +6 -6
- package/dist/unstable/httpapi/HttpApiSecurity.js.map +1 -1
- package/dist/unstable/httpapi/OpenApi.d.ts +15 -15
- package/dist/unstable/httpapi/OpenApi.d.ts.map +1 -1
- package/dist/unstable/httpapi/OpenApi.js +23 -23
- package/dist/unstable/httpapi/OpenApi.js.map +1 -1
- package/dist/unstable/observability/OtlpExporter.d.ts.map +1 -1
- package/dist/unstable/observability/OtlpExporter.js +5 -5
- package/dist/unstable/observability/OtlpExporter.js.map +1 -1
- package/dist/unstable/observability/OtlpMetrics.js +1 -1
- package/dist/unstable/observability/OtlpMetrics.js.map +1 -1
- package/dist/unstable/observability/OtlpSerialization.d.ts +2 -2
- package/dist/unstable/observability/OtlpSerialization.d.ts.map +1 -1
- package/dist/unstable/observability/OtlpSerialization.js +2 -2
- package/dist/unstable/observability/OtlpSerialization.js.map +1 -1
- package/dist/unstable/observability/OtlpTracer.d.ts.map +1 -1
- package/dist/unstable/observability/OtlpTracer.js.map +1 -1
- package/dist/unstable/observability/PrometheusMetrics.d.ts +3 -3
- package/dist/unstable/observability/PrometheusMetrics.d.ts.map +1 -1
- package/dist/unstable/observability/PrometheusMetrics.js +4 -33
- package/dist/unstable/observability/PrometheusMetrics.js.map +1 -1
- package/dist/unstable/persistence/KeyValueStore.d.ts +23 -2
- package/dist/unstable/persistence/KeyValueStore.d.ts.map +1 -1
- package/dist/unstable/persistence/KeyValueStore.js +144 -2
- package/dist/unstable/persistence/KeyValueStore.js.map +1 -1
- package/dist/unstable/persistence/PersistedCache.d.ts +1 -2
- package/dist/unstable/persistence/PersistedCache.d.ts.map +1 -1
- package/dist/unstable/persistence/PersistedCache.js +10 -11
- package/dist/unstable/persistence/PersistedCache.js.map +1 -1
- package/dist/unstable/persistence/PersistedQueue.d.ts +4 -4
- package/dist/unstable/persistence/PersistedQueue.d.ts.map +1 -1
- package/dist/unstable/persistence/PersistedQueue.js +3 -3
- package/dist/unstable/persistence/PersistedQueue.js.map +1 -1
- package/dist/unstable/persistence/Persistence.d.ts +4 -4
- package/dist/unstable/persistence/Persistence.d.ts.map +1 -1
- package/dist/unstable/persistence/Persistence.js +3 -3
- package/dist/unstable/persistence/Persistence.js.map +1 -1
- package/dist/unstable/persistence/RateLimiter.d.ts +6 -6
- package/dist/unstable/persistence/RateLimiter.d.ts.map +1 -1
- package/dist/unstable/persistence/RateLimiter.js +3 -3
- package/dist/unstable/persistence/RateLimiter.js.map +1 -1
- package/dist/unstable/persistence/Redis.d.ts +3 -3
- package/dist/unstable/persistence/Redis.d.ts.map +1 -1
- package/dist/unstable/persistence/Redis.js +2 -2
- package/dist/unstable/persistence/Redis.js.map +1 -1
- package/dist/unstable/process/ChildProcessSpawner.d.ts +45 -2
- package/dist/unstable/process/ChildProcessSpawner.d.ts.map +1 -1
- package/dist/unstable/process/ChildProcessSpawner.js +2 -2
- package/dist/unstable/process/ChildProcessSpawner.js.map +1 -1
- package/dist/unstable/reactivity/Atom.d.ts +36 -36
- package/dist/unstable/reactivity/Atom.d.ts.map +1 -1
- package/dist/unstable/reactivity/Atom.js +9 -9
- package/dist/unstable/reactivity/Atom.js.map +1 -1
- package/dist/unstable/reactivity/AtomHttpApi.d.ts +3 -3
- package/dist/unstable/reactivity/AtomHttpApi.d.ts.map +1 -1
- package/dist/unstable/reactivity/AtomHttpApi.js +2 -2
- package/dist/unstable/reactivity/AtomHttpApi.js.map +1 -1
- package/dist/unstable/reactivity/AtomRegistry.d.ts +2 -2
- package/dist/unstable/reactivity/AtomRegistry.d.ts.map +1 -1
- package/dist/unstable/reactivity/AtomRegistry.js +3 -3
- package/dist/unstable/reactivity/AtomRegistry.js.map +1 -1
- package/dist/unstable/reactivity/AtomRpc.d.ts +3 -3
- package/dist/unstable/reactivity/AtomRpc.d.ts.map +1 -1
- package/dist/unstable/reactivity/AtomRpc.js +2 -2
- package/dist/unstable/reactivity/AtomRpc.js.map +1 -1
- package/dist/unstable/reactivity/Reactivity.d.ts +2 -2
- package/dist/unstable/reactivity/Reactivity.d.ts.map +1 -1
- package/dist/unstable/reactivity/Reactivity.js +6 -6
- package/dist/unstable/reactivity/Reactivity.js.map +1 -1
- package/dist/unstable/rpc/Rpc.d.ts +11 -11
- package/dist/unstable/rpc/Rpc.d.ts.map +1 -1
- package/dist/unstable/rpc/Rpc.js +4 -4
- package/dist/unstable/rpc/Rpc.js.map +1 -1
- package/dist/unstable/rpc/RpcClient.d.ts +18 -8
- package/dist/unstable/rpc/RpcClient.d.ts.map +1 -1
- package/dist/unstable/rpc/RpcClient.js +27 -18
- package/dist/unstable/rpc/RpcClient.js.map +1 -1
- package/dist/unstable/rpc/RpcClientError.d.ts +2 -2
- package/dist/unstable/rpc/RpcGroup.d.ts +7 -7
- package/dist/unstable/rpc/RpcGroup.d.ts.map +1 -1
- package/dist/unstable/rpc/RpcGroup.js +20 -20
- package/dist/unstable/rpc/RpcGroup.js.map +1 -1
- package/dist/unstable/rpc/RpcMiddleware.d.ts +6 -6
- package/dist/unstable/rpc/RpcMiddleware.d.ts.map +1 -1
- package/dist/unstable/rpc/RpcMiddleware.js +5 -5
- package/dist/unstable/rpc/RpcMiddleware.js.map +1 -1
- package/dist/unstable/rpc/RpcSchema.d.ts +3 -3
- package/dist/unstable/rpc/RpcSchema.d.ts.map +1 -1
- package/dist/unstable/rpc/RpcSchema.js +3 -3
- package/dist/unstable/rpc/RpcSchema.js.map +1 -1
- package/dist/unstable/rpc/RpcSerialization.d.ts +2 -2
- package/dist/unstable/rpc/RpcSerialization.d.ts.map +1 -1
- package/dist/unstable/rpc/RpcSerialization.js +2 -2
- package/dist/unstable/rpc/RpcSerialization.js.map +1 -1
- package/dist/unstable/rpc/RpcServer.d.ts +2 -2
- package/dist/unstable/rpc/RpcServer.d.ts.map +1 -1
- package/dist/unstable/rpc/RpcServer.js +18 -18
- package/dist/unstable/rpc/RpcServer.js.map +1 -1
- package/dist/unstable/rpc/RpcWorker.d.ts +2 -2
- package/dist/unstable/rpc/RpcWorker.d.ts.map +1 -1
- package/dist/unstable/rpc/RpcWorker.js +4 -4
- package/dist/unstable/rpc/RpcWorker.js.map +1 -1
- package/dist/unstable/rpc/Utils.d.ts +0 -3
- package/dist/unstable/rpc/Utils.d.ts.map +1 -1
- package/dist/unstable/rpc/Utils.js +2 -5
- package/dist/unstable/rpc/Utils.js.map +1 -1
- package/dist/unstable/socket/Socket.d.ts +10 -10
- package/dist/unstable/socket/Socket.d.ts.map +1 -1
- package/dist/unstable/socket/Socket.js +9 -9
- package/dist/unstable/socket/Socket.js.map +1 -1
- package/dist/unstable/socket/SocketServer.d.ts +5 -2
- package/dist/unstable/socket/SocketServer.d.ts.map +1 -1
- package/dist/unstable/socket/SocketServer.js +2 -2
- package/dist/unstable/socket/SocketServer.js.map +1 -1
- package/dist/unstable/sql/SqlClient.d.ts +5 -5
- package/dist/unstable/sql/SqlClient.d.ts.map +1 -1
- package/dist/unstable/sql/SqlClient.js +7 -7
- package/dist/unstable/sql/SqlClient.js.map +1 -1
- package/dist/unstable/sql/SqlConnection.d.ts +2 -2
- package/dist/unstable/sql/SqlConnection.d.ts.map +1 -1
- package/dist/unstable/sql/SqlConnection.js +5 -2
- package/dist/unstable/sql/SqlConnection.js.map +1 -1
- package/dist/unstable/sql/SqlError.d.ts +12 -12
- package/dist/unstable/sql/SqlModel.d.ts +8 -9
- package/dist/unstable/sql/SqlModel.d.ts.map +1 -1
- package/dist/unstable/sql/SqlModel.js +9 -35
- package/dist/unstable/sql/SqlModel.js.map +1 -1
- package/dist/unstable/sql/SqlResolver.js +11 -11
- package/dist/unstable/sql/SqlResolver.js.map +1 -1
- package/dist/unstable/sql/Statement.d.ts +2 -2
- package/dist/unstable/sql/Statement.d.ts.map +1 -1
- package/dist/unstable/sql/Statement.js +2 -2
- package/dist/unstable/sql/Statement.js.map +1 -1
- package/dist/unstable/workers/Transferable.d.ts +2 -2
- package/dist/unstable/workers/Transferable.d.ts.map +1 -1
- package/dist/unstable/workers/Transferable.js +6 -6
- package/dist/unstable/workers/Transferable.js.map +1 -1
- package/dist/unstable/workers/Worker.d.ts +3 -3
- package/dist/unstable/workers/Worker.d.ts.map +1 -1
- package/dist/unstable/workers/Worker.js +6 -3
- package/dist/unstable/workers/Worker.js.map +1 -1
- package/dist/unstable/workers/WorkerError.d.ts +5 -5
- package/dist/unstable/workers/WorkerRunner.d.ts +2 -2
- package/dist/unstable/workers/WorkerRunner.d.ts.map +1 -1
- package/dist/unstable/workers/WorkerRunner.js +5 -2
- package/dist/unstable/workers/WorkerRunner.js.map +1 -1
- package/dist/unstable/workflow/Activity.d.ts +7 -7
- package/dist/unstable/workflow/Activity.d.ts.map +1 -1
- package/dist/unstable/workflow/Activity.js +7 -7
- package/dist/unstable/workflow/Activity.js.map +1 -1
- package/dist/unstable/workflow/DurableClock.d.ts +0 -3
- package/dist/unstable/workflow/DurableClock.d.ts.map +1 -1
- package/dist/unstable/workflow/DurableClock.js +3 -3
- package/dist/unstable/workflow/DurableClock.js.map +1 -1
- package/dist/unstable/workflow/DurableDeferred.d.ts +1 -1
- package/dist/unstable/workflow/DurableDeferred.d.ts.map +1 -1
- package/dist/unstable/workflow/DurableDeferred.js +7 -7
- package/dist/unstable/workflow/DurableDeferred.js.map +1 -1
- package/dist/unstable/workflow/Workflow.d.ts +9 -9
- package/dist/unstable/workflow/Workflow.d.ts.map +1 -1
- package/dist/unstable/workflow/Workflow.js +18 -18
- package/dist/unstable/workflow/Workflow.js.map +1 -1
- package/dist/unstable/workflow/WorkflowEngine.d.ts +3 -3
- package/dist/unstable/workflow/WorkflowEngine.d.ts.map +1 -1
- package/dist/unstable/workflow/WorkflowEngine.js +5 -5
- package/dist/unstable/workflow/WorkflowEngine.js.map +1 -1
- package/dist/unstable/workflow/WorkflowProxyServer.d.ts.map +1 -1
- package/dist/unstable/workflow/WorkflowProxyServer.js +4 -4
- package/dist/unstable/workflow/WorkflowProxyServer.js.map +1 -1
- package/package.json +1 -1
- package/src/Cache.ts +18 -46
- package/src/Cause.ts +21 -21
- package/src/Channel.ts +120 -79
- package/src/Clock.ts +2 -2
- package/src/Config.ts +2 -2
- package/src/ConfigProvider.ts +5 -5
- package/src/Console.ts +2 -2
- package/src/{ServiceMap.ts → Context.ts} +337 -340
- package/src/DateTime.ts +2 -2
- package/src/Effect.ts +182 -184
- package/src/ErrorReporter.ts +3 -3
- package/src/ExecutionPlan.ts +8 -9
- package/src/Fiber.ts +7 -7
- package/src/FiberHandle.ts +5 -5
- package/src/FiberMap.ts +5 -5
- package/src/FiberSet.ts +5 -5
- package/src/FileSystem.ts +3 -3
- package/src/Layer.ts +333 -307
- package/src/LayerMap.ts +27 -26
- package/src/Logger.ts +3 -3
- package/src/ManagedRuntime.ts +32 -32
- package/src/Metric.ts +58 -58
- package/src/Path.ts +2 -2
- package/src/Pool.ts +5 -5
- package/src/PubSub.ts +3 -3
- package/src/Random.ts +2 -2
- package/src/RcMap.ts +14 -14
- package/src/Redactable.ts +146 -72
- package/src/References.ts +14 -14
- package/src/Request.ts +5 -5
- package/src/RequestResolver.ts +6 -7
- package/src/Resource.ts +4 -4
- package/src/Schedule.ts +2 -2
- package/src/Scheduler.ts +4 -4
- package/src/Schema.ts +837 -397
- package/src/SchemaAST.ts +5 -14
- package/src/SchemaGetter.ts +69 -11
- package/src/SchemaTransformation.ts +166 -0
- package/src/Scope.ts +2 -2
- package/src/ScopedCache.ts +5 -5
- package/src/Sink.ts +9 -9
- package/src/Stdio.ts +2 -2
- package/src/Stream.ts +234 -158
- package/src/Terminal.ts +3 -3
- package/src/Tracer.ts +17 -17
- package/src/Unify.ts +26 -2
- package/src/index.ts +82 -16
- package/src/internal/core.ts +7 -7
- package/src/internal/effect.ts +106 -106
- package/src/internal/layer.ts +7 -7
- package/src/internal/random.ts +2 -2
- package/src/internal/rcRef.ts +10 -10
- package/src/internal/references.ts +13 -13
- package/src/internal/request.ts +8 -8
- package/src/internal/schedule.ts +3 -1
- package/src/internal/schema/representation.ts +8 -1
- package/src/internal/schema/schema.ts +24 -1
- package/src/testing/TestSchema.ts +3 -3
- package/src/unstable/ai/AiError.ts +3 -2
- package/src/unstable/ai/Chat.ts +3 -3
- package/src/unstable/ai/EmbeddingModel.ts +3 -3
- package/src/unstable/ai/IdGenerator.ts +2 -2
- package/src/unstable/ai/LanguageModel.ts +2 -2
- package/src/unstable/ai/McpSchema.ts +11 -9
- package/src/unstable/ai/McpServer.ts +44 -44
- package/src/unstable/ai/Model.ts +8 -8
- package/src/unstable/ai/Prompt.ts +6 -12
- package/src/unstable/ai/Response.ts +6 -8
- package/src/unstable/ai/ResponseIdTracker.ts +2 -4
- package/src/unstable/ai/Telemetry.ts +2 -2
- package/src/unstable/ai/Tokenizer.ts +2 -2
- package/src/unstable/ai/Tool.ts +25 -25
- package/src/unstable/ai/Toolkit.ts +12 -12
- package/src/unstable/cli/Argument.ts +3 -4
- package/src/unstable/cli/CliError.ts +22 -9
- package/src/unstable/cli/CliOutput.ts +2 -2
- package/src/unstable/cli/Command.ts +36 -30
- package/src/unstable/cli/Flag.ts +3 -4
- package/src/unstable/cli/GlobalFlag.ts +3 -3
- package/src/unstable/cli/HelpDoc.ts +8 -8
- package/src/unstable/cli/Param.ts +39 -16
- package/src/unstable/cli/Prompt.ts +13 -6
- package/src/unstable/cli/internal/command.ts +7 -7
- package/src/unstable/cli/internal/parser.ts +130 -21
- package/src/unstable/cluster/ClusterSchema.ts +12 -12
- package/src/unstable/cluster/ClusterWorkflowEngine.ts +14 -15
- package/src/unstable/cluster/Entity.ts +25 -25
- package/src/unstable/cluster/EntityProxy.ts +3 -3
- package/src/unstable/cluster/EntityProxyServer.ts +4 -4
- package/src/unstable/cluster/EntityResource.ts +2 -2
- package/src/unstable/cluster/HttpRunner.ts +2 -2
- package/src/unstable/cluster/K8sHttpClient.ts +2 -2
- package/src/unstable/cluster/Message.ts +8 -8
- package/src/unstable/cluster/MessageStorage.ts +11 -11
- package/src/unstable/cluster/Reply.ts +7 -7
- package/src/unstable/cluster/RunnerHealth.ts +2 -2
- package/src/unstable/cluster/RunnerServer.ts +1 -1
- package/src/unstable/cluster/RunnerStorage.ts +9 -9
- package/src/unstable/cluster/Runners.ts +7 -7
- package/src/unstable/cluster/ShardId.ts +84 -74
- package/src/unstable/cluster/Sharding.ts +26 -26
- package/src/unstable/cluster/ShardingConfig.ts +5 -5
- package/src/unstable/cluster/Snowflake.ts +2 -2
- package/src/unstable/cluster/SqlMessageStorage.ts +1 -1
- package/src/unstable/cluster/internal/entityManager.ts +27 -23
- package/src/unstable/cluster/internal/entityReaper.ts +2 -2
- package/src/unstable/cluster/internal/resourceMap.ts +3 -3
- package/src/unstable/devtools/DevToolsClient.ts +5 -5
- package/src/unstable/eventlog/EventJournal.ts +2 -2
- package/src/unstable/eventlog/EventLog.ts +21 -21
- package/src/unstable/eventlog/EventLogEncryption.ts +2 -2
- package/src/unstable/eventlog/EventLogRemote.ts +2 -2
- package/src/unstable/eventlog/EventLogServer.ts +2 -2
- package/src/unstable/http/Etag.ts +2 -2
- package/src/unstable/http/FetchHttpClient.ts +5 -5
- package/src/unstable/http/Headers.ts +4 -4
- package/src/unstable/http/HttpClient.ts +9 -8
- package/src/unstable/http/HttpClientRequest.ts +5 -5
- package/src/unstable/http/HttpEffect.ts +35 -35
- package/src/unstable/http/HttpIncomingMessage.ts +2 -2
- package/src/unstable/http/HttpMiddleware.ts +28 -14
- package/src/unstable/http/HttpPlatform.ts +2 -2
- package/src/unstable/http/HttpRouter.ts +37 -37
- package/src/unstable/http/HttpServer.ts +2 -2
- package/src/unstable/http/HttpServerError.ts +4 -4
- package/src/unstable/http/HttpServerRequest.ts +7 -7
- package/src/unstable/http/HttpServerResponse.ts +8 -8
- package/src/unstable/http/Multipart.ts +8 -8
- package/src/unstable/httpapi/HttpApi.ts +18 -18
- package/src/unstable/httpapi/HttpApiBuilder.ts +20 -20
- package/src/unstable/httpapi/HttpApiClient.ts +4 -4
- package/src/unstable/httpapi/HttpApiEndpoint.ts +14 -14
- package/src/unstable/httpapi/HttpApiGroup.ts +16 -16
- package/src/unstable/httpapi/HttpApiMiddleware.ts +14 -14
- package/src/unstable/httpapi/HttpApiSecurity.ts +13 -13
- package/src/unstable/httpapi/OpenApi.ts +29 -31
- package/src/unstable/observability/OtlpExporter.ts +5 -5
- package/src/unstable/observability/OtlpMetrics.ts +1 -1
- package/src/unstable/observability/OtlpSerialization.ts +2 -2
- package/src/unstable/observability/OtlpTracer.ts +2 -2
- package/src/unstable/observability/PrometheusMetrics.ts +5 -5
- package/src/unstable/persistence/KeyValueStore.ts +226 -3
- package/src/unstable/persistence/PersistedCache.ts +20 -17
- package/src/unstable/persistence/PersistedQueue.ts +3 -3
- package/src/unstable/persistence/Persistence.ts +4 -4
- package/src/unstable/persistence/RateLimiter.ts +3 -3
- package/src/unstable/persistence/Redis.ts +2 -2
- package/src/unstable/process/ChildProcessSpawner.ts +46 -2
- package/src/unstable/reactivity/Atom.ts +79 -79
- package/src/unstable/reactivity/AtomHttpApi.ts +4 -4
- package/src/unstable/reactivity/AtomRegistry.ts +4 -4
- package/src/unstable/reactivity/AtomRpc.ts +4 -4
- package/src/unstable/reactivity/Reactivity.ts +6 -6
- package/src/unstable/rpc/Rpc.ts +17 -17
- package/src/unstable/rpc/RpcClient.ts +44 -30
- package/src/unstable/rpc/RpcGroup.ts +30 -30
- package/src/unstable/rpc/RpcMiddleware.ts +14 -14
- package/src/unstable/rpc/RpcSchema.ts +4 -4
- package/src/unstable/rpc/RpcSerialization.ts +2 -2
- package/src/unstable/rpc/RpcServer.ts +19 -19
- package/src/unstable/rpc/RpcWorker.ts +5 -5
- package/src/unstable/rpc/Utils.ts +4 -4
- package/src/unstable/socket/Socket.ts +9 -9
- package/src/unstable/socket/SocketServer.ts +2 -2
- package/src/unstable/sql/SqlClient.ts +11 -11
- package/src/unstable/sql/SqlConnection.ts +2 -2
- package/src/unstable/sql/SqlModel.ts +54 -82
- package/src/unstable/sql/SqlResolver.ts +11 -11
- package/src/unstable/sql/Statement.ts +2 -2
- package/src/unstable/workers/Transferable.ts +6 -6
- package/src/unstable/workers/Worker.ts +4 -4
- package/src/unstable/workers/WorkerRunner.ts +2 -2
- package/src/unstable/workflow/Activity.ts +14 -14
- package/src/unstable/workflow/DurableClock.ts +3 -3
- package/src/unstable/workflow/DurableDeferred.ts +8 -8
- package/src/unstable/workflow/Workflow.ts +23 -23
- package/src/unstable/workflow/WorkflowEngine.ts +6 -6
- package/src/unstable/workflow/WorkflowProxyServer.ts +4 -4
- package/dist/ServiceMap.d.ts +0 -1150
- package/dist/ServiceMap.d.ts.map +0 -1
- package/dist/ServiceMap.js.map +0 -1
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
*/
|
|
4
4
|
import * as Arr from "../../Array.ts"
|
|
5
5
|
import type { NonEmptyArray } from "../../Array.ts"
|
|
6
|
+
import * as Context from "../../Context.ts"
|
|
6
7
|
import { constFalse } from "../../Function.ts"
|
|
7
8
|
import * as JsonPatch from "../../JsonPatch.ts"
|
|
8
9
|
import { escapeToken } from "../../JsonPointer.ts"
|
|
@@ -11,7 +12,6 @@ import * as Option from "../../Option.ts"
|
|
|
11
12
|
import * as Schema from "../../Schema.ts"
|
|
12
13
|
import * as AST from "../../SchemaAST.ts"
|
|
13
14
|
import * as SchemaRepresentation from "../../SchemaRepresentation.ts"
|
|
14
|
-
import * as ServiceMap from "../../ServiceMap.ts"
|
|
15
15
|
import * as HttpMethod from "../http/HttpMethod.ts"
|
|
16
16
|
import * as HttpApi from "./HttpApi.ts"
|
|
17
17
|
import * as HttpApiEndpoint from "./HttpApiEndpoint.ts"
|
|
@@ -24,38 +24,38 @@ import type { HttpApiSecurity } from "./HttpApiSecurity.ts"
|
|
|
24
24
|
* @since 4.0.0
|
|
25
25
|
* @category annotations
|
|
26
26
|
*/
|
|
27
|
-
export class Identifier extends
|
|
27
|
+
export class Identifier extends Context.Service<Identifier, string>()("effect/httpapi/OpenApi/Identifier") {}
|
|
28
28
|
|
|
29
29
|
/**
|
|
30
30
|
* @since 4.0.0
|
|
31
31
|
* @category annotations
|
|
32
32
|
*/
|
|
33
|
-
export class Title extends
|
|
33
|
+
export class Title extends Context.Service<Title, string>()("effect/httpapi/OpenApi/Title") {}
|
|
34
34
|
|
|
35
35
|
/**
|
|
36
36
|
* @since 4.0.0
|
|
37
37
|
* @category annotations
|
|
38
38
|
*/
|
|
39
|
-
export class Version extends
|
|
39
|
+
export class Version extends Context.Service<Version, string>()("effect/httpapi/OpenApi/Version") {}
|
|
40
40
|
|
|
41
41
|
/**
|
|
42
42
|
* @since 4.0.0
|
|
43
43
|
* @category annotations
|
|
44
44
|
*/
|
|
45
|
-
export class Description extends
|
|
45
|
+
export class Description extends Context.Service<Description, string>()("effect/httpapi/OpenApi/Description") {}
|
|
46
46
|
|
|
47
47
|
/**
|
|
48
48
|
* @since 4.0.0
|
|
49
49
|
* @category annotations
|
|
50
50
|
*/
|
|
51
|
-
export class License extends
|
|
51
|
+
export class License extends Context.Service<License, OpenAPISpecLicense>()("effect/httpapi/OpenApi/License") {}
|
|
52
52
|
|
|
53
53
|
/**
|
|
54
54
|
* @since 4.0.0
|
|
55
55
|
* @category annotations
|
|
56
56
|
*/
|
|
57
57
|
export class ExternalDocs
|
|
58
|
-
extends
|
|
58
|
+
extends Context.Service<ExternalDocs, OpenAPISpecExternalDocs>()("effect/httpapi/OpenApi/ExternalDocs")
|
|
59
59
|
{}
|
|
60
60
|
|
|
61
61
|
/**
|
|
@@ -63,40 +63,38 @@ export class ExternalDocs
|
|
|
63
63
|
* @category annotations
|
|
64
64
|
*/
|
|
65
65
|
export class Servers
|
|
66
|
-
extends
|
|
66
|
+
extends Context.Service<Servers, ReadonlyArray<OpenAPISpecServer>>()("effect/httpapi/OpenApi/Servers")
|
|
67
67
|
{}
|
|
68
68
|
|
|
69
69
|
/**
|
|
70
70
|
* @since 4.0.0
|
|
71
71
|
* @category annotations
|
|
72
72
|
*/
|
|
73
|
-
export class Format extends
|
|
73
|
+
export class Format extends Context.Service<Format, string>()("effect/httpapi/OpenApi/Format") {}
|
|
74
74
|
|
|
75
75
|
/**
|
|
76
76
|
* @since 4.0.0
|
|
77
77
|
* @category annotations
|
|
78
78
|
*/
|
|
79
|
-
export class Summary extends
|
|
79
|
+
export class Summary extends Context.Service<Summary, string>()("effect/httpapi/OpenApi/Summary") {}
|
|
80
80
|
|
|
81
81
|
/**
|
|
82
82
|
* @since 4.0.0
|
|
83
83
|
* @category annotations
|
|
84
84
|
*/
|
|
85
|
-
export class Deprecated extends
|
|
85
|
+
export class Deprecated extends Context.Service<Deprecated, boolean>()("effect/httpapi/OpenApi/Deprecated") {}
|
|
86
86
|
|
|
87
87
|
/**
|
|
88
88
|
* @since 4.0.0
|
|
89
89
|
* @category annotations
|
|
90
90
|
*/
|
|
91
|
-
export class Override
|
|
92
|
-
extends ServiceMap.Service<Override, Record<string, unknown>>()("effect/httpapi/OpenApi/Override")
|
|
93
|
-
{}
|
|
91
|
+
export class Override extends Context.Service<Override, Record<string, unknown>>()("effect/httpapi/OpenApi/Override") {}
|
|
94
92
|
|
|
95
93
|
/**
|
|
96
94
|
* @since 4.0.0
|
|
97
95
|
* @category annotations
|
|
98
96
|
*/
|
|
99
|
-
export const Exclude =
|
|
97
|
+
export const Exclude = Context.Reference<boolean>("effect/httpapi/OpenApi/Exclude", {
|
|
100
98
|
defaultValue: constFalse
|
|
101
99
|
})
|
|
102
100
|
|
|
@@ -106,24 +104,24 @@ export const Exclude = ServiceMap.Reference<boolean>("effect/httpapi/OpenApi/Exc
|
|
|
106
104
|
* @since 4.0.0
|
|
107
105
|
* @category annotations
|
|
108
106
|
*/
|
|
109
|
-
export class Transform extends
|
|
107
|
+
export class Transform extends Context.Service<
|
|
110
108
|
Transform,
|
|
111
109
|
(openApiSpec: Record<string, any>) => Record<string, any>
|
|
112
110
|
>()("effect/httpapi/OpenApi/Transform") {}
|
|
113
111
|
|
|
114
|
-
const servicesPartial = <Tags extends Record<string,
|
|
112
|
+
const servicesPartial = <Tags extends Record<string, Context.Key<any, any> | Context.Key<never, any>>>(
|
|
115
113
|
tags: Tags
|
|
116
114
|
): (
|
|
117
115
|
options: {
|
|
118
|
-
readonly [K in keyof Tags]?:
|
|
116
|
+
readonly [K in keyof Tags]?: Context.Service.Shape<Tags[K]> | undefined
|
|
119
117
|
}
|
|
120
|
-
) =>
|
|
118
|
+
) => Context.Context<never> => {
|
|
121
119
|
const entries = Object.entries(tags)
|
|
122
120
|
return (options) => {
|
|
123
|
-
let context =
|
|
121
|
+
let context = Context.empty()
|
|
124
122
|
for (const [key, tag] of entries) {
|
|
125
123
|
if (options[key] !== undefined) {
|
|
126
|
-
context =
|
|
124
|
+
context = Context.add(context, tag as any, options[key]!)
|
|
127
125
|
}
|
|
128
126
|
}
|
|
129
127
|
return context
|
|
@@ -150,7 +148,7 @@ export const annotations: (
|
|
|
150
148
|
readonly exclude?: boolean | undefined
|
|
151
149
|
readonly transform?: ((openApiSpec: Record<string, any>) => Record<string, any>) | undefined
|
|
152
150
|
}
|
|
153
|
-
) =>
|
|
151
|
+
) => Context.Context<never> = servicesPartial({
|
|
154
152
|
identifier: Identifier,
|
|
155
153
|
title: Title,
|
|
156
154
|
version: Version,
|
|
@@ -174,11 +172,11 @@ const apiCache = new WeakMap<HttpApi.Any, OpenAPISpec>()
|
|
|
174
172
|
* callback function to it. If the tag is not found, the function does nothing.
|
|
175
173
|
*/
|
|
176
174
|
function processAnnotation<Services, S, I>(
|
|
177
|
-
ctx:
|
|
178
|
-
annotation:
|
|
175
|
+
ctx: Context.Context<Services>,
|
|
176
|
+
annotation: Context.Key<I, S>,
|
|
179
177
|
f: (s: S) => void
|
|
180
178
|
) {
|
|
181
|
-
const o =
|
|
179
|
+
const o = Context.getOption(ctx, annotation)
|
|
182
180
|
if (Option.isSome(o)) {
|
|
183
181
|
f(o.value)
|
|
184
182
|
}
|
|
@@ -269,11 +267,11 @@ export function fromApi<Id extends string, Groups extends HttpApiGroup.Any>(
|
|
|
269
267
|
|
|
270
268
|
HttpApi.reflect(api, {
|
|
271
269
|
onGroup({ group }) {
|
|
272
|
-
if (
|
|
270
|
+
if (Context.get(group.annotations, Exclude)) {
|
|
273
271
|
return
|
|
274
272
|
}
|
|
275
273
|
let tag: OpenAPISpecTag = {
|
|
276
|
-
name:
|
|
274
|
+
name: Context.getOrElse(group.annotations, Title, () => group.identifier)
|
|
277
275
|
}
|
|
278
276
|
processAnnotation(group.annotations, Description, (description) => {
|
|
279
277
|
tag.description = description
|
|
@@ -291,12 +289,12 @@ export function fromApi<Id extends string, Groups extends HttpApiGroup.Any>(
|
|
|
291
289
|
spec.tags.push(tag)
|
|
292
290
|
},
|
|
293
291
|
onEndpoint({ endpoint, group, mergedAnnotations, middleware }) {
|
|
294
|
-
if (
|
|
292
|
+
if (Context.get(mergedAnnotations, Exclude)) {
|
|
295
293
|
return
|
|
296
294
|
}
|
|
297
295
|
let op: OpenAPISpecOperation = {
|
|
298
|
-
tags: [
|
|
299
|
-
operationId:
|
|
296
|
+
tags: [Context.getOrElse(group.annotations, Title, () => group.identifier)],
|
|
297
|
+
operationId: Context.getOrElse(
|
|
300
298
|
endpoint.annotations,
|
|
301
299
|
Identifier,
|
|
302
300
|
() => group.topLevel ? endpoint.name : `${group.identifier}.${endpoint.name}`
|
|
@@ -667,7 +665,7 @@ const makeSecurityScheme = (security: HttpApiSecurity): OpenAPISecurityScheme =>
|
|
|
667
665
|
}
|
|
668
666
|
}
|
|
669
667
|
case "Bearer": {
|
|
670
|
-
const format =
|
|
668
|
+
const format = Context.getOption(security.annotations, Format).pipe(
|
|
671
669
|
Option.map((format) => ({ bearerFormat: format })),
|
|
672
670
|
Option.getOrUndefined
|
|
673
671
|
)
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
* @since 4.0.0
|
|
3
3
|
*/
|
|
4
4
|
import { Clock } from "../../Clock.ts"
|
|
5
|
+
import * as Context from "../../Context.ts"
|
|
5
6
|
import * as Duration from "../../Duration.ts"
|
|
6
7
|
import * as Effect from "../../Effect.ts"
|
|
7
8
|
import * as Fiber from "../../Fiber.ts"
|
|
@@ -9,7 +10,6 @@ import * as Num from "../../Number.ts"
|
|
|
9
10
|
import * as Option from "../../Option.ts"
|
|
10
11
|
import * as Schedule from "../../Schedule.ts"
|
|
11
12
|
import * as Scope from "../../Scope.ts"
|
|
12
|
-
import * as ServiceMap from "../../ServiceMap.ts"
|
|
13
13
|
import * as Headers from "../../unstable/http/Headers.ts"
|
|
14
14
|
import * as HttpClient from "../../unstable/http/HttpClient.ts"
|
|
15
15
|
import * as HttpClientError from "../../unstable/http/HttpClientError.ts"
|
|
@@ -53,14 +53,14 @@ export const make: (
|
|
|
53
53
|
never,
|
|
54
54
|
HttpClient.HttpClient | Scope.Scope
|
|
55
55
|
> = Effect.fnUntraced(function*(options) {
|
|
56
|
-
const services = yield* Effect.
|
|
57
|
-
const clock =
|
|
58
|
-
const scope =
|
|
56
|
+
const services = yield* Effect.context<Scope.Scope | HttpClient.HttpClient>()
|
|
57
|
+
const clock = Context.get(services, Clock)
|
|
58
|
+
const scope = Context.get(services, Scope.Scope)
|
|
59
59
|
const runFork = Effect.runForkWith(services)
|
|
60
60
|
const exportInterval = Duration.max(Duration.fromInputUnsafe(options.exportInterval), Duration.zero)
|
|
61
61
|
let disabledUntil: number | undefined = undefined
|
|
62
62
|
|
|
63
|
-
const client = HttpClient.filterStatusOk(
|
|
63
|
+
const client = HttpClient.filterStatusOk(Context.get(services, HttpClient.HttpClient)).pipe(
|
|
64
64
|
HttpClient.retryTransient({ schedule: policy, times: 3 })
|
|
65
65
|
)
|
|
66
66
|
|
|
@@ -79,7 +79,7 @@ export const make: (options: {
|
|
|
79
79
|
name: OtlpResource.serviceNameUnsafe(resource)
|
|
80
80
|
}
|
|
81
81
|
|
|
82
|
-
const services = yield* Effect.
|
|
82
|
+
const services = yield* Effect.context<never>()
|
|
83
83
|
|
|
84
84
|
// State for delta temporality tracking
|
|
85
85
|
let previousExportTimeNanos: bigint = startTimeNanos
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @since 4.0.0
|
|
3
3
|
*/
|
|
4
|
+
import * as Context from "../../Context.ts"
|
|
4
5
|
import * as Layer from "../../Layer.ts"
|
|
5
|
-
import * as ServiceMap from "../../ServiceMap.ts"
|
|
6
6
|
import * as HttpBody from "../http/HttpBody.ts"
|
|
7
7
|
import * as otlpProtobuf from "./internal/otlpProtobuf.ts"
|
|
8
8
|
import type { LogsData } from "./OtlpLogger.ts"
|
|
@@ -13,7 +13,7 @@ import type { TraceData } from "./OtlpTracer.ts"
|
|
|
13
13
|
* @since 4.0.0
|
|
14
14
|
* @category Services
|
|
15
15
|
*/
|
|
16
|
-
export class OtlpSerialization extends
|
|
16
|
+
export class OtlpSerialization extends Context.Service<OtlpSerialization, {
|
|
17
17
|
readonly traces: (data: TraceData) => HttpBody.HttpBody
|
|
18
18
|
readonly metrics: (data: MetricsData) => HttpBody.HttpBody
|
|
19
19
|
readonly logs: (data: LogsData) => HttpBody.HttpBody
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
* @since 4.0.0
|
|
3
3
|
*/
|
|
4
4
|
import * as Cause from "../../Cause.ts"
|
|
5
|
+
import type * as Context from "../../Context.ts"
|
|
5
6
|
import * as Duration from "../../Duration.ts"
|
|
6
7
|
import * as Effect from "../../Effect.ts"
|
|
7
8
|
import type * as Exit from "../../Exit.ts"
|
|
@@ -9,7 +10,6 @@ import { flow } from "../../Function.ts"
|
|
|
9
10
|
import * as Layer from "../../Layer.ts"
|
|
10
11
|
import * as Option from "../../Option.ts"
|
|
11
12
|
import type * as Scope from "../../Scope.ts"
|
|
12
|
-
import type * as ServiceMap from "../../ServiceMap.ts"
|
|
13
13
|
import * as Tracer from "../../Tracer.ts"
|
|
14
14
|
import type { ExtractTag, Mutable } from "../../Types.ts"
|
|
15
15
|
import type * as Headers from "../http/Headers.ts"
|
|
@@ -152,7 +152,7 @@ type RemainingSpanImpl = Omit<Tracer.Span, (keyof typeof SpanProto) | "traceId"
|
|
|
152
152
|
const makeSpan = (options: {
|
|
153
153
|
readonly name: string
|
|
154
154
|
readonly parent: Option.Option<Tracer.AnySpan>
|
|
155
|
-
readonly annotations:
|
|
155
|
+
readonly annotations: Context.Context<never>
|
|
156
156
|
readonly status: Tracer.SpanStatus
|
|
157
157
|
readonly attributes: ReadonlyMap<string, unknown>
|
|
158
158
|
readonly links: ReadonlyArray<Tracer.SpanLink>
|
|
@@ -27,10 +27,10 @@
|
|
|
27
27
|
*
|
|
28
28
|
* @since 4.0.0
|
|
29
29
|
*/
|
|
30
|
+
import type * as Context from "../../Context.ts"
|
|
30
31
|
import * as Effect from "../../Effect.ts"
|
|
31
32
|
import * as Layer from "../../Layer.ts"
|
|
32
33
|
import * as Metric from "../../Metric.ts"
|
|
33
|
-
import type * as ServiceMap from "../../ServiceMap.ts"
|
|
34
34
|
import * as HttpRouter from "../http/HttpRouter.ts"
|
|
35
35
|
import * as HttpServerResponse from "../http/HttpServerResponse.ts"
|
|
36
36
|
|
|
@@ -114,7 +114,7 @@ export interface HttpOptions extends FormatOptions {
|
|
|
114
114
|
*/
|
|
115
115
|
export const format: (options?: FormatOptions | undefined) => Effect.Effect<string> = Effect.fnUntraced(
|
|
116
116
|
function*(options) {
|
|
117
|
-
const services = yield* Effect.
|
|
117
|
+
const services = yield* Effect.context<never>()
|
|
118
118
|
return formatUnsafe(services, options)
|
|
119
119
|
}
|
|
120
120
|
)
|
|
@@ -122,17 +122,17 @@ export const format: (options?: FormatOptions | undefined) => Effect.Effect<stri
|
|
|
122
122
|
/**
|
|
123
123
|
* Synchronously format all metrics in the registry to Prometheus exposition format.
|
|
124
124
|
*
|
|
125
|
-
* This is a low-level function that requires access to the
|
|
125
|
+
* This is a low-level function that requires access to the context.
|
|
126
126
|
* Most users should use `format` instead.
|
|
127
127
|
*
|
|
128
128
|
* @since 4.0.0
|
|
129
129
|
* @category Formatting
|
|
130
130
|
*/
|
|
131
131
|
export const formatUnsafe = (
|
|
132
|
-
|
|
132
|
+
context: Context.Context<never>,
|
|
133
133
|
options?: FormatOptions | undefined
|
|
134
134
|
): string => {
|
|
135
|
-
const snapshot = Metric.snapshotUnsafe(
|
|
135
|
+
const snapshot = Metric.snapshotUnsafe(context)
|
|
136
136
|
const prefix = options?.prefix ? sanitizeMetricName(options.prefix) + "_" : ""
|
|
137
137
|
const mapper = options?.metricNameMapper ?? ((name: string) => name)
|
|
138
138
|
const lines: Array<string> = []
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @since 4.0.0
|
|
3
3
|
*/
|
|
4
|
+
import * as Context from "../../Context.ts"
|
|
4
5
|
import * as Data from "../../Data.ts"
|
|
5
6
|
import * as Effect from "../../Effect.ts"
|
|
6
7
|
import * as Encoding from "../../Encoding.ts"
|
|
@@ -13,8 +14,9 @@ import type { PlatformError } from "../../PlatformError.ts"
|
|
|
13
14
|
import * as Predicate from "../../Predicate.ts"
|
|
14
15
|
import * as Result from "../../Result.ts"
|
|
15
16
|
import * as Schema from "../../Schema.ts"
|
|
16
|
-
import * as ServiceMap from "../../ServiceMap.ts"
|
|
17
17
|
import * as UndefinedOr from "../../UndefinedOr.ts"
|
|
18
|
+
import * as SqlClient from "../sql/SqlClient.ts"
|
|
19
|
+
import type { SqlError } from "../sql/SqlError.ts"
|
|
18
20
|
|
|
19
21
|
const TypeId = "~effect/persistence/KeyValueStore" as const
|
|
20
22
|
|
|
@@ -170,10 +172,10 @@ export class KeyValueStoreError extends Data.TaggedError("KeyValueStoreError")<{
|
|
|
170
172
|
* @since 4.0.0
|
|
171
173
|
* @category tags
|
|
172
174
|
*/
|
|
173
|
-
export const KeyValueStore:
|
|
175
|
+
export const KeyValueStore: Context.Service<
|
|
174
176
|
KeyValueStore,
|
|
175
177
|
KeyValueStore
|
|
176
|
-
> =
|
|
178
|
+
> = Context.Service("effect/persistence/KeyValueStore")
|
|
177
179
|
|
|
178
180
|
/**
|
|
179
181
|
* @since 4.0.0
|
|
@@ -391,6 +393,227 @@ export const layerFileSystem = (
|
|
|
391
393
|
})
|
|
392
394
|
}))
|
|
393
395
|
|
|
396
|
+
/**
|
|
397
|
+
* @since 4.0.0
|
|
398
|
+
* @category layers
|
|
399
|
+
*/
|
|
400
|
+
export interface LayerSqlOptions {
|
|
401
|
+
/**
|
|
402
|
+
* The SQL table name used to store values.
|
|
403
|
+
*
|
|
404
|
+
* @default "effect_key_value_store"
|
|
405
|
+
*/
|
|
406
|
+
readonly table?: string
|
|
407
|
+
}
|
|
408
|
+
|
|
409
|
+
/**
|
|
410
|
+
* @since 4.0.0
|
|
411
|
+
* @category layers
|
|
412
|
+
*/
|
|
413
|
+
export const layerSql = (
|
|
414
|
+
options: LayerSqlOptions = {}
|
|
415
|
+
): Layer.Layer<KeyValueStore, never, SqlClient.SqlClient> =>
|
|
416
|
+
Layer.effect(KeyValueStore)(
|
|
417
|
+
Effect.gen(function*() {
|
|
418
|
+
const sql = (yield* SqlClient.SqlClient).withoutTransforms()
|
|
419
|
+
const table = sql(options.table ?? "effect_key_value_store")
|
|
420
|
+
|
|
421
|
+
yield* sql.onDialectOrElse({
|
|
422
|
+
mysql: () =>
|
|
423
|
+
sql`
|
|
424
|
+
CREATE TABLE IF NOT EXISTS ${table} (
|
|
425
|
+
id VARCHAR(191) PRIMARY KEY,
|
|
426
|
+
value BLOB NOT NULL,
|
|
427
|
+
value_type SMALLINT NOT NULL
|
|
428
|
+
)
|
|
429
|
+
`,
|
|
430
|
+
pg: () =>
|
|
431
|
+
sql`
|
|
432
|
+
CREATE TABLE IF NOT EXISTS ${table} (
|
|
433
|
+
id TEXT PRIMARY KEY,
|
|
434
|
+
value BYTEA NOT NULL,
|
|
435
|
+
value_type SMALLINT NOT NULL
|
|
436
|
+
)
|
|
437
|
+
`,
|
|
438
|
+
mssql: () =>
|
|
439
|
+
sql`
|
|
440
|
+
IF NOT EXISTS (SELECT * FROM sysobjects WHERE name=${table} AND xtype='U')
|
|
441
|
+
CREATE TABLE ${table} (
|
|
442
|
+
id NVARCHAR(450) PRIMARY KEY,
|
|
443
|
+
value VARBINARY(MAX) NOT NULL,
|
|
444
|
+
value_type SMALLINT NOT NULL
|
|
445
|
+
)
|
|
446
|
+
`,
|
|
447
|
+
// sqlite
|
|
448
|
+
orElse: () =>
|
|
449
|
+
sql`
|
|
450
|
+
CREATE TABLE IF NOT EXISTS ${table} (
|
|
451
|
+
id TEXT PRIMARY KEY,
|
|
452
|
+
value BLOB NOT NULL,
|
|
453
|
+
value_type INTEGER NOT NULL
|
|
454
|
+
)
|
|
455
|
+
`
|
|
456
|
+
}).pipe(Effect.orDie)
|
|
457
|
+
|
|
458
|
+
type UpsertFn = (entry: {
|
|
459
|
+
id: string
|
|
460
|
+
value: Uint8Array
|
|
461
|
+
value_type: number
|
|
462
|
+
}) => Effect.Effect<unknown, SqlError>
|
|
463
|
+
|
|
464
|
+
const upsert = sql.onDialectOrElse({
|
|
465
|
+
pg: (): UpsertFn => (entry) =>
|
|
466
|
+
sql`
|
|
467
|
+
INSERT INTO ${table} (id, value, value_type) VALUES (${entry.id}, ${entry.value}, ${entry.value_type})
|
|
468
|
+
ON CONFLICT (id) DO UPDATE SET value=EXCLUDED.value, value_type=EXCLUDED.value_type
|
|
469
|
+
`.unprepared,
|
|
470
|
+
mysql: (): UpsertFn => (entry) =>
|
|
471
|
+
sql`
|
|
472
|
+
INSERT INTO ${table} (id, value, value_type) VALUES (${entry.id}, ${entry.value}, ${entry.value_type})
|
|
473
|
+
ON DUPLICATE KEY UPDATE value=VALUES(value), value_type=VALUES(value_type)
|
|
474
|
+
`,
|
|
475
|
+
mssql: (): UpsertFn => (entry) =>
|
|
476
|
+
sql`
|
|
477
|
+
MERGE ${table} AS target
|
|
478
|
+
USING (SELECT ${entry.id} AS id, ${entry.value} AS value, ${entry.value_type} AS value_type) AS source
|
|
479
|
+
ON target.id = source.id
|
|
480
|
+
WHEN MATCHED THEN UPDATE SET value = source.value, value_type = source.value_type
|
|
481
|
+
WHEN NOT MATCHED THEN INSERT (id, value, value_type)
|
|
482
|
+
VALUES (source.id, source.value, source.value_type);
|
|
483
|
+
`,
|
|
484
|
+
// sqlite
|
|
485
|
+
orElse: (): UpsertFn => (entry) =>
|
|
486
|
+
sql`
|
|
487
|
+
INSERT INTO ${table} (id, value, value_type) VALUES (${entry.id}, ${entry.value}, ${entry.value_type})
|
|
488
|
+
ON CONFLICT(id) DO UPDATE SET value=excluded.value, value_type=excluded.value_type
|
|
489
|
+
`.unprepared
|
|
490
|
+
})
|
|
491
|
+
|
|
492
|
+
const encoder = new TextEncoder()
|
|
493
|
+
const decoder = new TextDecoder()
|
|
494
|
+
const ValueTypeString = 0
|
|
495
|
+
const ValueTypeUint8Array = 1
|
|
496
|
+
|
|
497
|
+
type Row = {
|
|
498
|
+
value: Uint8Array
|
|
499
|
+
value_type: number
|
|
500
|
+
}
|
|
501
|
+
|
|
502
|
+
return make({
|
|
503
|
+
get: (key: string) =>
|
|
504
|
+
sql<Row>`SELECT value, value_type FROM ${table} WHERE id = ${key}`.pipe(
|
|
505
|
+
Effect.mapError((cause) =>
|
|
506
|
+
new KeyValueStoreError({
|
|
507
|
+
method: "get",
|
|
508
|
+
key,
|
|
509
|
+
message: `Unable to get item with key ${key}`,
|
|
510
|
+
cause
|
|
511
|
+
})
|
|
512
|
+
),
|
|
513
|
+
Effect.flatMap((rows) => {
|
|
514
|
+
if (rows.length === 0) {
|
|
515
|
+
return Effect.undefined
|
|
516
|
+
}
|
|
517
|
+
const row = rows[0]
|
|
518
|
+
switch (row.value_type) {
|
|
519
|
+
case ValueTypeString:
|
|
520
|
+
return Effect.succeed(decoder.decode(row.value))
|
|
521
|
+
case ValueTypeUint8Array:
|
|
522
|
+
return Effect.succeed(Encoding.encodeBase64(row.value))
|
|
523
|
+
default:
|
|
524
|
+
return Effect.fail(
|
|
525
|
+
new KeyValueStoreError({
|
|
526
|
+
method: "get",
|
|
527
|
+
key,
|
|
528
|
+
message: `Invalid stored value type for key ${key}: ${row.value_type}`
|
|
529
|
+
})
|
|
530
|
+
)
|
|
531
|
+
}
|
|
532
|
+
})
|
|
533
|
+
),
|
|
534
|
+
getUint8Array: (key: string) =>
|
|
535
|
+
sql<Row>`SELECT value, value_type FROM ${table} WHERE id = ${key}`.pipe(
|
|
536
|
+
Effect.mapError((cause) =>
|
|
537
|
+
new KeyValueStoreError({
|
|
538
|
+
method: "getUint8Array",
|
|
539
|
+
key,
|
|
540
|
+
message: `Unable to get item with key ${key}`,
|
|
541
|
+
cause
|
|
542
|
+
})
|
|
543
|
+
),
|
|
544
|
+
Effect.flatMap((rows) => {
|
|
545
|
+
if (rows.length === 0) {
|
|
546
|
+
return Effect.undefined
|
|
547
|
+
}
|
|
548
|
+
const row = rows[0]
|
|
549
|
+
switch (row.value_type) {
|
|
550
|
+
case ValueTypeString:
|
|
551
|
+
return Effect.succeed(row.value)
|
|
552
|
+
case ValueTypeUint8Array:
|
|
553
|
+
return Effect.succeed(row.value)
|
|
554
|
+
default:
|
|
555
|
+
return Effect.fail(
|
|
556
|
+
new KeyValueStoreError({
|
|
557
|
+
method: "getUint8Array",
|
|
558
|
+
key,
|
|
559
|
+
message: `Invalid stored value type for key ${key}: ${row.value_type}`
|
|
560
|
+
})
|
|
561
|
+
)
|
|
562
|
+
}
|
|
563
|
+
})
|
|
564
|
+
),
|
|
565
|
+
set: (key: string, value: string | Uint8Array) =>
|
|
566
|
+
upsert({
|
|
567
|
+
id: key,
|
|
568
|
+
value: typeof value === "string" ? encoder.encode(value) : value,
|
|
569
|
+
value_type: typeof value === "string" ? ValueTypeString : ValueTypeUint8Array
|
|
570
|
+
}).pipe(
|
|
571
|
+
Effect.mapError((cause) =>
|
|
572
|
+
new KeyValueStoreError({
|
|
573
|
+
method: "set",
|
|
574
|
+
key,
|
|
575
|
+
message: `Unable to set item with key ${key}`,
|
|
576
|
+
cause
|
|
577
|
+
})
|
|
578
|
+
),
|
|
579
|
+
Effect.asVoid
|
|
580
|
+
),
|
|
581
|
+
remove: (key: string) =>
|
|
582
|
+
sql`DELETE FROM ${table} WHERE id = ${key}`.pipe(
|
|
583
|
+
Effect.mapError((cause) =>
|
|
584
|
+
new KeyValueStoreError({
|
|
585
|
+
method: "remove",
|
|
586
|
+
key,
|
|
587
|
+
message: `Unable to remove item with key ${key}`,
|
|
588
|
+
cause
|
|
589
|
+
})
|
|
590
|
+
),
|
|
591
|
+
Effect.asVoid
|
|
592
|
+
),
|
|
593
|
+
clear: sql`DELETE FROM ${table}`.pipe(
|
|
594
|
+
Effect.mapError((cause) =>
|
|
595
|
+
new KeyValueStoreError({
|
|
596
|
+
method: "clear",
|
|
597
|
+
message: `Unable to clear storage`,
|
|
598
|
+
cause
|
|
599
|
+
})
|
|
600
|
+
),
|
|
601
|
+
Effect.asVoid
|
|
602
|
+
),
|
|
603
|
+
size: sql<{ count: number }>`SELECT COUNT(*) as count FROM ${table}`.pipe(
|
|
604
|
+
Effect.mapError((cause) =>
|
|
605
|
+
new KeyValueStoreError({
|
|
606
|
+
method: "size",
|
|
607
|
+
message: `Unable to get size`,
|
|
608
|
+
cause
|
|
609
|
+
})
|
|
610
|
+
),
|
|
611
|
+
Effect.map((rows) => rows.length === 0 ? 0 : Number(rows[0].count))
|
|
612
|
+
)
|
|
613
|
+
})
|
|
614
|
+
})
|
|
615
|
+
)
|
|
616
|
+
|
|
394
617
|
const SchemaStoreTypeId = "~effect/persistence/KeyValueStore/SchemaStore" as const
|
|
395
618
|
|
|
396
619
|
/**
|
|
@@ -41,9 +41,8 @@ export const make: <
|
|
|
41
41
|
K extends Persistable.Any,
|
|
42
42
|
R = never,
|
|
43
43
|
ServiceMode extends "lookup" | "construction" = never
|
|
44
|
-
>(options: {
|
|
44
|
+
>(lookup: (key: K) => Effect.Effect<Persistable.Success<K>, Persistable.Error<K>, R>, options: {
|
|
45
45
|
readonly storeId: string
|
|
46
|
-
readonly lookup: (key: K) => Effect.Effect<Persistable.Success<K>, Persistable.Error<K>, R>
|
|
47
46
|
readonly timeToLive: Persistable.TimeToLiveFn<K>
|
|
48
47
|
readonly inMemoryCapacity?: number | undefined
|
|
49
48
|
readonly inMemoryTTL?: Persistable.TimeToLiveFn<K> | undefined
|
|
@@ -56,32 +55,36 @@ export const make: <
|
|
|
56
55
|
K extends Persistable.Any,
|
|
57
56
|
R = never,
|
|
58
57
|
ServiceMode extends "lookup" | "construction" = never
|
|
59
|
-
>(
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
58
|
+
>(
|
|
59
|
+
lookup: (key: K) => Effect.Effect<Persistable.Success<K>, Persistable.Error<K>, R>,
|
|
60
|
+
options: {
|
|
61
|
+
readonly storeId: string
|
|
62
|
+
readonly timeToLive: Persistable.TimeToLiveFn<K>
|
|
63
|
+
readonly inMemoryCapacity?: number | undefined
|
|
64
|
+
readonly inMemoryTTL?: Persistable.TimeToLiveFn<K> | undefined
|
|
65
|
+
readonly requireServicesAt?: ServiceMode | undefined
|
|
66
|
+
}
|
|
67
|
+
) {
|
|
67
68
|
const store = yield* (yield* Persistence.Persistence).make({
|
|
68
69
|
storeId: options.storeId,
|
|
69
70
|
timeToLive: options.timeToLive as any
|
|
70
71
|
})
|
|
71
|
-
const inMemory = yield* Cache.makeWith(
|
|
72
|
-
|
|
72
|
+
const inMemory = yield* Cache.makeWith(
|
|
73
|
+
Effect.fnUntraced(function*(key: K) {
|
|
73
74
|
const exit = yield* (store.get(key) as Effect.Effect<Exit<Persistable.Success<K>, Persistable.Error<K>>>)
|
|
74
75
|
if (exit) {
|
|
75
76
|
return yield* exit
|
|
76
77
|
}
|
|
77
|
-
const result = yield* Effect.exit(
|
|
78
|
+
const result = yield* Effect.exit(lookup(key))
|
|
78
79
|
yield* (store.set(key, result) as Effect.Effect<void>)
|
|
79
80
|
return yield* result
|
|
80
81
|
}),
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
82
|
+
{
|
|
83
|
+
timeToLive: options.inMemoryTTL ?? constant(Duration.seconds(10)),
|
|
84
|
+
capacity: options.inMemoryCapacity ?? 1024,
|
|
85
|
+
requireServicesAt: options.requireServicesAt
|
|
86
|
+
}
|
|
87
|
+
)
|
|
85
88
|
return identity<PersistedCache<K, "lookup" extends ServiceMode ? R : never>>({
|
|
86
89
|
[TypeId]: TypeId,
|
|
87
90
|
inMemory,
|