effect 4.0.0-beta.42 → 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 +309 -266
- package/dist/Layer.d.ts.map +1 -1
- package/dist/Layer.js +156 -132
- 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/AnthropicStructuredOutput.d.ts +1 -1
- package/dist/unstable/ai/AnthropicStructuredOutput.d.ts.map +1 -1
- package/dist/unstable/ai/AnthropicStructuredOutput.js +5 -2
- package/dist/unstable/ai/AnthropicStructuredOutput.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/OpenAiStructuredOutput.d.ts +1 -1
- package/dist/unstable/ai/OpenAiStructuredOutput.d.ts.map +1 -1
- package/dist/unstable/ai/OpenAiStructuredOutput.js +2 -1
- package/dist/unstable/ai/OpenAiStructuredOutput.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/ai/internal/codec-transformer.js +5 -2
- package/dist/unstable/ai/internal/codec-transformer.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 +1 -0
- package/dist/unstable/cluster/ClusterWorkflowEngine.d.ts.map +1 -1
- package/dist/unstable/cluster/ClusterWorkflowEngine.js +68 -40
- package/dist/unstable/cluster/ClusterWorkflowEngine.js.map +1 -1
- package/dist/unstable/cluster/Entity.d.ts +10 -10
- package/dist/unstable/cluster/Entity.d.ts.map +1 -1
- package/dist/unstable/cluster/Entity.js +25 -20
- 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 +7 -7
- 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 +9 -3
- package/dist/unstable/workflow/WorkflowEngine.d.ts.map +1 -1
- package/dist/unstable/workflow/WorkflowEngine.js +14 -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 +358 -305
- 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/AnthropicStructuredOutput.ts +3 -3
- 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/OpenAiStructuredOutput.ts +2 -2
- 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/ai/internal/codec-transformer.ts +3 -2
- 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 +91 -53
- package/src/unstable/cluster/Entity.ts +43 -32
- 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 +7 -7
- 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 +28 -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
|
@@ -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 Effect from "../../Effect.ts"
|
|
5
6
|
import * as Exit from "../../Exit.ts"
|
|
6
7
|
import * as Latch from "../../Latch.ts"
|
|
@@ -10,7 +11,6 @@ import * as Queue from "../../Queue.ts"
|
|
|
10
11
|
import * as RcMap from "../../RcMap.ts"
|
|
11
12
|
import * as Schema from "../../Schema.ts"
|
|
12
13
|
import type { Scope } from "../../Scope.ts"
|
|
13
|
-
import * as ServiceMap from "../../ServiceMap.ts"
|
|
14
14
|
import * as Rpc from "../rpc/Rpc.ts"
|
|
15
15
|
import * as RpcClient_ from "../rpc/RpcClient.ts"
|
|
16
16
|
import type { RpcClientError } from "../rpc/RpcClientError.ts"
|
|
@@ -31,7 +31,7 @@ import * as Snowflake from "./Snowflake.ts"
|
|
|
31
31
|
* @since 1.0.0
|
|
32
32
|
* @category context
|
|
33
33
|
*/
|
|
34
|
-
export class Runners extends
|
|
34
|
+
export class Runners extends Context.Service<Runners, {
|
|
35
35
|
/**
|
|
36
36
|
* Checks if a Runner is responsive.
|
|
37
37
|
*/
|
|
@@ -132,7 +132,7 @@ export const make: (options: Omit<Runners["Service"], "sendLocal" | "notifyLocal
|
|
|
132
132
|
afterPersist: (message: Message.Outgoing<any>, isDuplicate: boolean) => Effect.Effect<void, E>
|
|
133
133
|
): Effect.Effect<void, E | PersistenceError> {
|
|
134
134
|
const rpc = message.rpc as any as Rpc.AnyWithProps
|
|
135
|
-
const persisted =
|
|
135
|
+
const persisted = Context.get(rpc.annotations, Persisted)
|
|
136
136
|
if (!persisted) {
|
|
137
137
|
return Effect.die("Runners.notify only supports persisted messages")
|
|
138
138
|
}
|
|
@@ -505,7 +505,7 @@ export const makeRpc: Effect.Effect<
|
|
|
505
505
|
},
|
|
506
506
|
send({ address, message }) {
|
|
507
507
|
const rpc = message.rpc as any as Rpc.AnyWithProps
|
|
508
|
-
const isPersisted =
|
|
508
|
+
const isPersisted = Context.get(rpc.annotations, Persisted)
|
|
509
509
|
if (message._tag === "OutgoingEnvelope") {
|
|
510
510
|
return RcMap.get(clients, address).pipe(
|
|
511
511
|
Effect.flatMap((client) =>
|
|
@@ -533,7 +533,7 @@ export const makeRpc: Effect.Effect<
|
|
|
533
533
|
Effect.catchTag("RpcClientError", Effect.die),
|
|
534
534
|
Effect.flatMap((reply) =>
|
|
535
535
|
Schema.decodeEffect(Reply.Reply(message.rpc))(reply).pipe(
|
|
536
|
-
Effect.
|
|
536
|
+
Effect.provideContext(message.context),
|
|
537
537
|
Effect.orDie
|
|
538
538
|
)
|
|
539
539
|
),
|
|
@@ -567,7 +567,7 @@ export const makeRpc: Effect.Effect<
|
|
|
567
567
|
Effect.flatMap(message.respond),
|
|
568
568
|
Effect.forever,
|
|
569
569
|
Effect.catchTag("RpcClientError", Effect.die),
|
|
570
|
-
Effect.
|
|
570
|
+
Effect.provideContext(message.context),
|
|
571
571
|
Effect.catchTag("Done", (_) => Effect.void),
|
|
572
572
|
Effect.catchDefect(() => Effect.fail(new RunnerUnavailable({ address })))
|
|
573
573
|
)
|
|
@@ -615,7 +615,7 @@ export const layerRpc: Layer.Layer<
|
|
|
615
615
|
* @since 1.0.0
|
|
616
616
|
* @category Client
|
|
617
617
|
*/
|
|
618
|
-
export class RpcClientProtocol extends
|
|
618
|
+
export class RpcClientProtocol extends Context.Service<
|
|
619
619
|
RpcClientProtocol,
|
|
620
620
|
(address: RunnerAddress) => Effect.Effect<RpcClient_.Protocol["Service"], never, Scope>
|
|
621
621
|
>()("effect/cluster/Runners/RpcClientProtocol") {}
|
|
@@ -3,12 +3,46 @@
|
|
|
3
3
|
*/
|
|
4
4
|
import * as Equal from "../../Equal.ts"
|
|
5
5
|
import * as Hash from "../../Hash.ts"
|
|
6
|
+
import { hasProperty } from "../../Predicate.ts"
|
|
6
7
|
import * as PrimaryKey from "../../PrimaryKey.ts"
|
|
7
8
|
import * as S from "../../Schema.ts"
|
|
9
|
+
import * as Getter from "../../SchemaGetter.ts"
|
|
8
10
|
|
|
9
11
|
const TypeId = "~effect/cluster/ShardId"
|
|
10
12
|
|
|
11
|
-
|
|
13
|
+
/**
|
|
14
|
+
* @since 4.0.0
|
|
15
|
+
* @category Models
|
|
16
|
+
*/
|
|
17
|
+
export interface ShardId extends Equal.Equal, Hash.Hash, PrimaryKey.PrimaryKey {
|
|
18
|
+
readonly [TypeId]: typeof TypeId
|
|
19
|
+
readonly group: string
|
|
20
|
+
readonly id: number
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* @since 4.0.0
|
|
25
|
+
* @category Guards
|
|
26
|
+
*/
|
|
27
|
+
export const isShardId = (u: unknown): u is ShardId => hasProperty(u, TypeId)
|
|
28
|
+
|
|
29
|
+
/**
|
|
30
|
+
* @since 4.0.0
|
|
31
|
+
* @category Schema
|
|
32
|
+
*/
|
|
33
|
+
export const ShardId = S.declare(isShardId, {
|
|
34
|
+
toCodecJson: () =>
|
|
35
|
+
S.link<ShardId>()(
|
|
36
|
+
S.Struct({
|
|
37
|
+
group: S.String,
|
|
38
|
+
id: S.Number
|
|
39
|
+
}),
|
|
40
|
+
{
|
|
41
|
+
decode: Getter.transform(({ group, id }) => make(group, id)),
|
|
42
|
+
encode: Getter.passthrough()
|
|
43
|
+
}
|
|
44
|
+
)
|
|
45
|
+
})
|
|
12
46
|
|
|
13
47
|
/**
|
|
14
48
|
* @since 4.0.0
|
|
@@ -18,7 +52,7 @@ export const make = (group: string, id: number): ShardId => {
|
|
|
18
52
|
const key = `${group}:${id}`
|
|
19
53
|
let shardId = shardIdCache.get(key)
|
|
20
54
|
if (!shardId) {
|
|
21
|
-
shardId =
|
|
55
|
+
shardId = makeProto(group, id)
|
|
22
56
|
shardIdCache.set(key, shardId)
|
|
23
57
|
}
|
|
24
58
|
return shardId
|
|
@@ -26,86 +60,62 @@ export const make = (group: string, id: number): ShardId => {
|
|
|
26
60
|
|
|
27
61
|
const shardIdCache = new Map<string, ShardId>()
|
|
28
62
|
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
id: S.Int
|
|
36
|
-
}) {
|
|
37
|
-
/**
|
|
38
|
-
* @since 4.0.0
|
|
39
|
-
*/
|
|
40
|
-
static readonly make = make
|
|
41
|
-
|
|
42
|
-
/**
|
|
43
|
-
* @since 4.0.0
|
|
44
|
-
*/
|
|
45
|
-
readonly [TypeId] = TypeId;
|
|
63
|
+
const makeProto = (group: string, id: number): ShardId => {
|
|
64
|
+
const self = Object.create(ShardIdProto)
|
|
65
|
+
self.group = group
|
|
66
|
+
self.id = id
|
|
67
|
+
return self
|
|
68
|
+
}
|
|
46
69
|
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
[Equal.symbol](that: ShardId): boolean {
|
|
70
|
+
const ShardIdProto = {
|
|
71
|
+
[TypeId]: TypeId,
|
|
72
|
+
[Equal.symbol](this: ShardId, that: ShardId): boolean {
|
|
51
73
|
return this.group === that.group && this.id === that.id
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
/**
|
|
55
|
-
* @since 4.0.0
|
|
56
|
-
*/
|
|
57
|
-
[Hash.symbol](): number {
|
|
74
|
+
},
|
|
75
|
+
[Hash.symbol](this: ShardId): number {
|
|
58
76
|
return Hash.string(this.toString())
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
/**
|
|
62
|
-
* @since 4.0.0
|
|
63
|
-
*/
|
|
64
|
-
[PrimaryKey.symbol](): string {
|
|
77
|
+
},
|
|
78
|
+
[PrimaryKey.symbol](this: ShardId): string {
|
|
65
79
|
return this.toString()
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
/**
|
|
69
|
-
* @since 4.0.0
|
|
70
|
-
*/
|
|
71
|
-
override toString(): string {
|
|
80
|
+
},
|
|
81
|
+
toString(this: ShardId): string {
|
|
72
82
|
return `${this.group}:${this.id}`
|
|
73
83
|
}
|
|
84
|
+
}
|
|
74
85
|
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
86
|
+
/**
|
|
87
|
+
* @since 4.0.0
|
|
88
|
+
* @category Conversions
|
|
89
|
+
*/
|
|
90
|
+
export const toString = (shardId: {
|
|
91
|
+
readonly group: string
|
|
92
|
+
readonly id: number
|
|
93
|
+
}): string => {
|
|
94
|
+
return `${shardId.group}:${shardId.id}`
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* @since 4.0.0
|
|
98
|
+
*/
|
|
99
|
+
export function fromStringEncoded(s: string): {
|
|
100
|
+
readonly group: string
|
|
101
|
+
readonly id: number
|
|
102
|
+
} {
|
|
103
|
+
const index = s.lastIndexOf(":")
|
|
104
|
+
if (index === -1) {
|
|
105
|
+
throw new Error(`Invalid ShardId format`)
|
|
83
106
|
}
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
static fromStringEncoded(s: string): {
|
|
89
|
-
readonly group: string
|
|
90
|
-
readonly id: number
|
|
91
|
-
} {
|
|
92
|
-
const index = s.lastIndexOf(":")
|
|
93
|
-
if (index === -1) {
|
|
94
|
-
throw new Error(`Invalid ShardId format`)
|
|
95
|
-
}
|
|
96
|
-
const group = s.substring(0, index)
|
|
97
|
-
const id = Number(s.substring(index + 1))
|
|
98
|
-
if (isNaN(id)) {
|
|
99
|
-
throw new Error(`ShardId id must be a number`)
|
|
100
|
-
}
|
|
101
|
-
return { group, id }
|
|
107
|
+
const group = s.substring(0, index)
|
|
108
|
+
const id = Number(s.substring(index + 1))
|
|
109
|
+
if (isNaN(id)) {
|
|
110
|
+
throw new Error(`ShardId id must be a number`)
|
|
102
111
|
}
|
|
112
|
+
return { group, id }
|
|
113
|
+
}
|
|
103
114
|
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
}
|
|
115
|
+
/**
|
|
116
|
+
* @since 4.0.0
|
|
117
|
+
*/
|
|
118
|
+
export function fromString(s: string): ShardId {
|
|
119
|
+
const encoded = fromStringEncoded(s)
|
|
120
|
+
return make(encoded.group, encoded.id)
|
|
111
121
|
}
|
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
import * as Arr from "../../Array.ts"
|
|
5
5
|
import * as Cause from "../../Cause.ts"
|
|
6
6
|
import { Clock } from "../../Clock.ts"
|
|
7
|
+
import * as Context from "../../Context.ts"
|
|
7
8
|
import type { Input } from "../../Duration.ts"
|
|
8
9
|
import * as Duration from "../../Duration.ts"
|
|
9
10
|
import * as Effect from "../../Effect.ts"
|
|
@@ -25,7 +26,6 @@ import * as Result from "../../Result.ts"
|
|
|
25
26
|
import * as Schedule from "../../Schedule.ts"
|
|
26
27
|
import * as Scope from "../../Scope.ts"
|
|
27
28
|
import * as Semaphore from "../../Semaphore.ts"
|
|
28
|
-
import * as ServiceMap from "../../ServiceMap.ts"
|
|
29
29
|
import * as Stream from "../../Stream.ts"
|
|
30
30
|
import type * as Rpc from "../rpc/Rpc.ts"
|
|
31
31
|
import * as RpcClient from "../rpc/RpcClient.ts"
|
|
@@ -65,7 +65,7 @@ import * as Snowflake from "./Snowflake.ts"
|
|
|
65
65
|
* @since 4.0.0
|
|
66
66
|
* @category models
|
|
67
67
|
*/
|
|
68
|
-
export class Sharding extends
|
|
68
|
+
export class Sharding extends Context.Service<Sharding, {
|
|
69
69
|
/**
|
|
70
70
|
* Returns a stream of events that occur when the runner registers entities or
|
|
71
71
|
* singletons.
|
|
@@ -207,7 +207,7 @@ const make = Effect.gen(function*() {
|
|
|
207
207
|
const snowflakeGen = yield* Snowflake.Generator
|
|
208
208
|
const shardingScope = yield* Effect.scope
|
|
209
209
|
const isShutdown = MutableRef.make(false)
|
|
210
|
-
const services =
|
|
210
|
+
const services = Context.omit(Scope.Scope)(yield* Effect.context<ShardingConfig>())
|
|
211
211
|
const runFork = flow(
|
|
212
212
|
Effect.runForkWith(services),
|
|
213
213
|
Fiber.runIn(shardingScope)
|
|
@@ -357,7 +357,7 @@ const make = Effect.gen(function*() {
|
|
|
357
357
|
yield* Effect.forkIn(syncSingletons, shardingScope)
|
|
358
358
|
|
|
359
359
|
// update metrics
|
|
360
|
-
ClusterMetrics.shards.updateUnsafe(BigInt(MutableHashSet.size(acquiredShards)),
|
|
360
|
+
ClusterMetrics.shards.updateUnsafe(BigInt(MutableHashSet.size(acquiredShards)), Context.empty())
|
|
361
361
|
}
|
|
362
362
|
yield* Effect.sleep(1000)
|
|
363
363
|
activeShardsLatch.openUnsafe()
|
|
@@ -820,7 +820,7 @@ const make = Effect.gen(function*() {
|
|
|
820
820
|
return Effect.catchFilter(
|
|
821
821
|
Effect.suspend(() => {
|
|
822
822
|
const address = message.envelope.address
|
|
823
|
-
const isPersisted =
|
|
823
|
+
const isPersisted = Context.get(
|
|
824
824
|
message._tag === "OutgoingRequest" ? message.annotations : message.rpc.annotations,
|
|
825
825
|
Persisted
|
|
826
826
|
)
|
|
@@ -881,8 +881,8 @@ const make = Effect.gen(function*() {
|
|
|
881
881
|
|
|
882
882
|
// update metrics
|
|
883
883
|
if (selfRunner) {
|
|
884
|
-
ClusterMetrics.runners.updateUnsafe(BigInt(1),
|
|
885
|
-
ClusterMetrics.runnersHealthy.updateUnsafe(BigInt(1),
|
|
884
|
+
ClusterMetrics.runners.updateUnsafe(BigInt(1), Context.empty())
|
|
885
|
+
ClusterMetrics.runnersHealthy.updateUnsafe(BigInt(1), Context.empty())
|
|
886
886
|
}
|
|
887
887
|
|
|
888
888
|
yield* Effect.gen(function*() {
|
|
@@ -973,7 +973,7 @@ const make = Effect.gen(function*() {
|
|
|
973
973
|
if (selfRunner) {
|
|
974
974
|
ClusterMetrics.runnersHealthy.updateUnsafe(
|
|
975
975
|
BigInt(MutableHashSet.has(healthyRunners, selfRunner) ? 1 : 0),
|
|
976
|
-
|
|
976
|
+
Context.empty()
|
|
977
977
|
)
|
|
978
978
|
}
|
|
979
979
|
}
|
|
@@ -1002,7 +1002,7 @@ const make = Effect.gen(function*() {
|
|
|
1002
1002
|
|
|
1003
1003
|
type ClientRequestEntry = {
|
|
1004
1004
|
readonly rpc: Rpc.AnyWithProps
|
|
1005
|
-
readonly
|
|
1005
|
+
readonly context: Context.Context<never>
|
|
1006
1006
|
readonly message: Message.OutgoingRequest<any>
|
|
1007
1007
|
lastChunkId?: Snowflake.Snowflake
|
|
1008
1008
|
}
|
|
@@ -1018,7 +1018,7 @@ const make = Effect.gen(function*() {
|
|
|
1018
1018
|
> = yield* ResourceMap.make(Effect.fnUntraced(function*(entity: Entity<string, any>) {
|
|
1019
1019
|
const client = yield* RpcClient.makeNoSerialization(entity.protocol, {
|
|
1020
1020
|
spanPrefix: `${entity.type}.client`,
|
|
1021
|
-
disableTracing: !
|
|
1021
|
+
disableTracing: !Context.get(entity.protocol.annotations, ClusterSchema.ClientTracingEnabled),
|
|
1022
1022
|
supportsAck: true,
|
|
1023
1023
|
generateRequestId: () => RequestId(snowflakeGen.nextUnsafe()),
|
|
1024
1024
|
flatten: true,
|
|
@@ -1026,7 +1026,7 @@ const make = Effect.gen(function*() {
|
|
|
1026
1026
|
void,
|
|
1027
1027
|
MailboxFull | AlreadyProcessingMessage | PersistenceError
|
|
1028
1028
|
> {
|
|
1029
|
-
const address =
|
|
1029
|
+
const address = Context.getUnsafe(options.context, ClientAddressTag)
|
|
1030
1030
|
switch (options.message._tag) {
|
|
1031
1031
|
case "Request": {
|
|
1032
1032
|
const fiber = Fiber.getCurrent()!
|
|
@@ -1047,9 +1047,9 @@ const make = Effect.gen(function*() {
|
|
|
1047
1047
|
envelope,
|
|
1048
1048
|
lastReceivedReply: Option.none(),
|
|
1049
1049
|
rpc,
|
|
1050
|
-
|
|
1050
|
+
context: fiber.context as Context.Context<any>,
|
|
1051
1051
|
respond: (reply) => respond(reply),
|
|
1052
|
-
annotations:
|
|
1052
|
+
annotations: Context.get(rpc.annotations, ClusterSchema.Dynamic)(
|
|
1053
1053
|
rpc.annotations,
|
|
1054
1054
|
envelope as any
|
|
1055
1055
|
)
|
|
@@ -1057,7 +1057,7 @@ const make = Effect.gen(function*() {
|
|
|
1057
1057
|
if (!options.discard) {
|
|
1058
1058
|
const entry: ClientRequestEntry = {
|
|
1059
1059
|
rpc: rpc as any,
|
|
1060
|
-
|
|
1060
|
+
context: fiber.currentContext,
|
|
1061
1061
|
message
|
|
1062
1062
|
}
|
|
1063
1063
|
clientRequests.set(id, entry)
|
|
@@ -1096,7 +1096,7 @@ const make = Effect.gen(function*() {
|
|
|
1096
1096
|
// result of a shard being resassigned
|
|
1097
1097
|
const isTransientInterrupt = MutableRef.get(isShutdown) ||
|
|
1098
1098
|
options.message.interruptors.some((id) => internalInterruptors.has(id))
|
|
1099
|
-
if (isTransientInterrupt &&
|
|
1099
|
+
if (isTransientInterrupt && Context.get(entry.message.annotations, Persisted)) {
|
|
1100
1100
|
return Effect.void
|
|
1101
1101
|
}
|
|
1102
1102
|
return Effect.ignore(sendOutgoing(
|
|
@@ -1127,15 +1127,15 @@ const make = Effect.gen(function*() {
|
|
|
1127
1127
|
|
|
1128
1128
|
return (entityId: string) => {
|
|
1129
1129
|
const id = makeEntityId(entityId)
|
|
1130
|
-
const address = ClientAddressTag.
|
|
1130
|
+
const address = ClientAddressTag.context(makeEntityAddress({
|
|
1131
1131
|
shardId: getShardId(id, entity.getShardGroup(entityId as EntityId)),
|
|
1132
1132
|
entityId: id,
|
|
1133
1133
|
entityType: entity.type
|
|
1134
1134
|
}))
|
|
1135
1135
|
const clientFn = function(tag: string, payload: any, options?: {
|
|
1136
|
-
readonly context?:
|
|
1136
|
+
readonly context?: Context.Context<never>
|
|
1137
1137
|
}) {
|
|
1138
|
-
const context = options?.context ?
|
|
1138
|
+
const context = options?.context ? Context.merge(options.context, address) : address
|
|
1139
1139
|
return client.client(tag, payload, {
|
|
1140
1140
|
...options,
|
|
1141
1141
|
context
|
|
@@ -1216,12 +1216,12 @@ const make = Effect.gen(function*() {
|
|
|
1216
1216
|
return yield* Effect.die(`Singleton '${name}' is already registered`)
|
|
1217
1217
|
}
|
|
1218
1218
|
|
|
1219
|
-
const services = yield* Effect.
|
|
1219
|
+
const services = yield* Effect.context<never>()
|
|
1220
1220
|
const wrappedRun = run.pipe(
|
|
1221
1221
|
Effect.andThen(Effect.never),
|
|
1222
1222
|
Effect.scoped,
|
|
1223
1223
|
Effect.provideService(CurrentLogAnnotations, {}),
|
|
1224
|
-
Effect.
|
|
1224
|
+
Effect.provideContext(services),
|
|
1225
1225
|
Effect.orDie,
|
|
1226
1226
|
Effect.interruptible
|
|
1227
1227
|
) as Effect.Effect<never>
|
|
@@ -1261,7 +1261,7 @@ const make = Effect.gen(function*() {
|
|
|
1261
1261
|
}
|
|
1262
1262
|
ClusterMetrics.singletons.updateUnsafe(
|
|
1263
1263
|
BigInt(yield* FiberMap.size(singletonFibers)),
|
|
1264
|
-
|
|
1264
|
+
Context.empty()
|
|
1265
1265
|
)
|
|
1266
1266
|
}))
|
|
1267
1267
|
|
|
@@ -1287,11 +1287,11 @@ const make = Effect.gen(function*() {
|
|
|
1287
1287
|
runnerAddress,
|
|
1288
1288
|
sharding
|
|
1289
1289
|
}).pipe(
|
|
1290
|
-
Effect.
|
|
1290
|
+
Effect.provideContext(Context.mutate(services, (services) =>
|
|
1291
1291
|
services.pipe(
|
|
1292
|
-
|
|
1293
|
-
|
|
1294
|
-
|
|
1292
|
+
Context.add(EntityReaper, reaper),
|
|
1293
|
+
Context.add(Scope.Scope, scope),
|
|
1294
|
+
Context.add(Snowflake.Generator, snowflakeGen)
|
|
1295
1295
|
)))
|
|
1296
1296
|
) as Effect.Effect<EntityManager.EntityManager>
|
|
1297
1297
|
const state: EntityManagerState = {
|
|
@@ -1443,4 +1443,4 @@ export const layer: Layer.Layer<
|
|
|
1443
1443
|
|
|
1444
1444
|
// Utilities
|
|
1445
1445
|
|
|
1446
|
-
const ClientAddressTag =
|
|
1446
|
+
const ClientAddressTag = Context.Service<EntityAddress>("effect/cluster/Sharding/ClientAddress")
|
|
@@ -3,12 +3,12 @@
|
|
|
3
3
|
*/
|
|
4
4
|
import * as Config from "../../Config.ts"
|
|
5
5
|
import * as ConfigProvider from "../../ConfigProvider.ts"
|
|
6
|
+
import * as Context from "../../Context.ts"
|
|
6
7
|
import * as Duration from "../../Duration.ts"
|
|
7
8
|
import * as Effect from "../../Effect.ts"
|
|
8
9
|
import * as Layer from "../../Layer.ts"
|
|
9
10
|
import * as Option from "../../Option.ts"
|
|
10
11
|
import * as Schema from "../../Schema.ts"
|
|
11
|
-
import * as ServiceMap from "../../ServiceMap.ts"
|
|
12
12
|
import { RunnerAddress } from "./RunnerAddress.ts"
|
|
13
13
|
|
|
14
14
|
/**
|
|
@@ -17,7 +17,7 @@ import { RunnerAddress } from "./RunnerAddress.ts"
|
|
|
17
17
|
* @since 4.0.0
|
|
18
18
|
* @category models
|
|
19
19
|
*/
|
|
20
|
-
export class ShardingConfig extends
|
|
20
|
+
export class ShardingConfig extends Context.Service<ShardingConfig, {
|
|
21
21
|
/**
|
|
22
22
|
* The address for the current runner that other runners can use to
|
|
23
23
|
* communicate with it.
|
|
@@ -122,7 +122,7 @@ export class ShardingConfig extends ServiceMap.Service<ShardingConfig, {
|
|
|
122
122
|
readonly simulateRemoteSerialization: boolean
|
|
123
123
|
}>()("effect/cluster/ShardingConfig") {}
|
|
124
124
|
|
|
125
|
-
const defaultRunnerAddress = RunnerAddress.
|
|
125
|
+
const defaultRunnerAddress = RunnerAddress.make({ host: "localhost", port: 34431 })
|
|
126
126
|
|
|
127
127
|
/**
|
|
128
128
|
* @since 4.0.0
|
|
@@ -177,7 +177,7 @@ export const config: Config.Config<ShardingConfig["Service"]> = Config.all({
|
|
|
177
177
|
Config.withDefault(defaultRunnerAddress.port)
|
|
178
178
|
// Config.withDescription("The port used for inter-runner communication.")
|
|
179
179
|
)
|
|
180
|
-
}).pipe(Config.map((options) => RunnerAddress.
|
|
180
|
+
}).pipe(Config.map((options) => RunnerAddress.make(options)), Config.option),
|
|
181
181
|
runnerListenAddress: Config.all({
|
|
182
182
|
host: Config.string("listenHost"),
|
|
183
183
|
// Config.withDescription("The host to listen on.")
|
|
@@ -185,7 +185,7 @@ export const config: Config.Config<ShardingConfig["Service"]> = Config.all({
|
|
|
185
185
|
Config.withDefault(defaultRunnerAddress.port)
|
|
186
186
|
// Config.withDescription("The port to listen on.")
|
|
187
187
|
)
|
|
188
|
-
}).pipe(Config.map((options) => RunnerAddress.
|
|
188
|
+
}).pipe(Config.map((options) => RunnerAddress.make(options)), Config.option),
|
|
189
189
|
runnerShardWeight: Config.int("runnerShardWeight").pipe(
|
|
190
190
|
Config.withDefault(defaults.runnerShardWeight)
|
|
191
191
|
// Config.withDescription("A number that determines how many shards this runner will be assigned relative to other runners.")
|
|
@@ -3,13 +3,13 @@
|
|
|
3
3
|
*/
|
|
4
4
|
import type * as Brand from "../../Brand.ts"
|
|
5
5
|
import { Clock } from "../../Clock.ts"
|
|
6
|
+
import * as Context from "../../Context.ts"
|
|
6
7
|
import * as DateTime from "../../DateTime.ts"
|
|
7
8
|
import * as Effect from "../../Effect.ts"
|
|
8
9
|
import { identity } from "../../Function.ts"
|
|
9
10
|
import * as Layer from "../../Layer.ts"
|
|
10
11
|
import * as Schema from "../../Schema.ts"
|
|
11
12
|
import * as Transformation from "../../SchemaTransformation.ts"
|
|
12
|
-
import * as ServiceMap from "../../ServiceMap.ts"
|
|
13
13
|
import type { MachineId } from "./MachineId.ts"
|
|
14
14
|
|
|
15
15
|
/**
|
|
@@ -192,7 +192,7 @@ export const makeGenerator: Effect.Effect<Snowflake.Generator> = Effect.gen(func
|
|
|
192
192
|
* @since 4.0.0
|
|
193
193
|
* @category Generator
|
|
194
194
|
*/
|
|
195
|
-
export class Generator extends
|
|
195
|
+
export class Generator extends Context.Service<
|
|
196
196
|
Generator,
|
|
197
197
|
Snowflake.Generator
|
|
198
198
|
>()("effect/cluster/Snowflake/Generator") {}
|
|
@@ -15,7 +15,7 @@ import type * as Envelope from "./Envelope.ts"
|
|
|
15
15
|
import * as MessageStorage from "./MessageStorage.ts"
|
|
16
16
|
import { SaveResultEncoded } from "./MessageStorage.ts"
|
|
17
17
|
import type * as Reply from "./Reply.ts"
|
|
18
|
-
import
|
|
18
|
+
import * as ShardId from "./ShardId.ts"
|
|
19
19
|
import type { ShardingConfig } from "./ShardingConfig.ts"
|
|
20
20
|
import * as Snowflake from "./Snowflake.ts"
|
|
21
21
|
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import * as Arr from "../../../Array.ts"
|
|
2
2
|
import * as Cause from "../../../Cause.ts"
|
|
3
3
|
import { Clock } from "../../../Clock.ts"
|
|
4
|
+
import * as Context from "../../../Context.ts"
|
|
4
5
|
import * as Duration from "../../../Duration.ts"
|
|
5
6
|
import type { Input } from "../../../Duration.ts"
|
|
6
7
|
import * as Effect from "../../../Effect.ts"
|
|
@@ -16,7 +17,6 @@ import * as Schedule from "../../../Schedule.ts"
|
|
|
16
17
|
import * as Schema from "../../../Schema.ts"
|
|
17
18
|
import * as Issue from "../../../SchemaIssue.ts"
|
|
18
19
|
import * as Scope from "../../../Scope.ts"
|
|
19
|
-
import * as ServiceMap from "../../../ServiceMap.ts"
|
|
20
20
|
import type * as Rpc from "../../rpc/Rpc.ts"
|
|
21
21
|
import { RequestId } from "../../rpc/RpcMessage.ts"
|
|
22
22
|
import * as RpcServer from "../../rpc/RpcServer.ts"
|
|
@@ -107,10 +107,11 @@ export const make = Effect.fnUntraced(function*<
|
|
|
107
107
|
const storageEnabled = options.storage !== MessageStorage.noop
|
|
108
108
|
const mailboxCapacity = options.mailboxCapacity ?? config.entityMailboxCapacity
|
|
109
109
|
const clock = yield* Clock
|
|
110
|
-
const
|
|
111
|
-
const
|
|
112
|
-
|
|
113
|
-
|
|
110
|
+
const context = yield* Effect.context<Rpc.Services<Rpcs> | Rpc.Middleware<Rpcs> | RX>()
|
|
111
|
+
const defectRetryPolicy = options.defectRetryPolicy
|
|
112
|
+
? Schedule.andThen(options.defectRetryPolicy, defaultRetryPolicy)
|
|
113
|
+
: defaultRetryPolicy
|
|
114
|
+
const retryDriver = yield* Schedule.toStepWithSleep(defectRetryPolicy)
|
|
114
115
|
const entityRpcs = new Map(entity.protocol.requests)
|
|
115
116
|
|
|
116
117
|
// add internal rpcs
|
|
@@ -156,14 +157,17 @@ export const make = Effect.fnUntraced(function*<
|
|
|
156
157
|
// Initiate the behavior for the entity
|
|
157
158
|
const handlers = yield* (entity.protocol.toHandlers(buildHandlers as any).pipe(
|
|
158
159
|
Effect.provideService(CurrentLogAnnotations, {}),
|
|
159
|
-
Effect.
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
)))
|
|
166
|
-
|
|
160
|
+
Effect.provideContext(Context.mutate(context, (context) =>
|
|
161
|
+
context.pipe(
|
|
162
|
+
Context.add(CurrentAddress, address),
|
|
163
|
+
Context.add(CurrentRunnerAddress, options.runnerAddress),
|
|
164
|
+
Context.add(KeepAliveLatch, keepAliveLatch),
|
|
165
|
+
Context.add(Scope.Scope, scope)
|
|
166
|
+
))),
|
|
167
|
+
Effect.sandbox,
|
|
168
|
+
Effect.tapError((cause) => Effect.logError("Defect building entity handlers", cause)),
|
|
169
|
+
Effect.retry(defectRetryPolicy)
|
|
170
|
+
) as Effect.Effect<Context.Context<Rpc.ToHandler<Rpcs>>>)
|
|
167
171
|
|
|
168
172
|
const server = yield* RpcServer.makeNoSerialization(entity.protocol, {
|
|
169
173
|
spanPrefix: `${entity.type}(${address.entityId})`,
|
|
@@ -188,7 +192,7 @@ export const make = Effect.fnUntraced(function*<
|
|
|
188
192
|
// interrupt.
|
|
189
193
|
if (
|
|
190
194
|
storageEnabled &&
|
|
191
|
-
|
|
195
|
+
Context.get(request.message.annotations, Persisted) &&
|
|
192
196
|
Exit.hasInterrupts(response.exit) &&
|
|
193
197
|
(isShuttingDown || isUninterruptibleForServer(request.message.annotations))
|
|
194
198
|
) {
|
|
@@ -267,7 +271,7 @@ export const make = Effect.fnUntraced(function*<
|
|
|
267
271
|
}
|
|
268
272
|
}).pipe(
|
|
269
273
|
Scope.provide(scope),
|
|
270
|
-
Effect.
|
|
274
|
+
Effect.provideContext(handlers)
|
|
271
275
|
)
|
|
272
276
|
|
|
273
277
|
yield* Scope.addFinalizer(
|
|
@@ -364,7 +368,7 @@ export const make = Effect.fnUntraced(function*<
|
|
|
364
368
|
}
|
|
365
369
|
|
|
366
370
|
// update metrics for active servers
|
|
367
|
-
const typeAttributes = Metric.CurrentMetricAttributes.
|
|
371
|
+
const typeAttributes = Metric.CurrentMetricAttributes.context({ type: entity.type })
|
|
368
372
|
yield* Effect.sync(() => {
|
|
369
373
|
ClusterMetrics.entities.updateUnsafe(BigInt(activeServers.size), typeAttributes)
|
|
370
374
|
}).pipe(
|
|
@@ -396,7 +400,7 @@ export const make = Effect.fnUntraced(function*<
|
|
|
396
400
|
}
|
|
397
401
|
|
|
398
402
|
const rpc = entityRpcs.get(message.envelope.tag)! as any as Rpc.AnyWithProps
|
|
399
|
-
if (!storageEnabled &&
|
|
403
|
+
if (!storageEnabled && Context.get(message.annotations, Persisted)) {
|
|
400
404
|
return Effect.die(
|
|
401
405
|
"EntityManager.sendLocal: Cannot process a persisted message without MessageStorage"
|
|
402
406
|
)
|
|
@@ -460,7 +464,7 @@ export const make = Effect.fnUntraced(function*<
|
|
|
460
464
|
)
|
|
461
465
|
})
|
|
462
466
|
})
|
|
463
|
-
if (
|
|
467
|
+
if (Context.get(message.annotations, WithTransaction)) {
|
|
464
468
|
write = options.storage.withTransaction(write)
|
|
465
469
|
}
|
|
466
470
|
return write
|
|
@@ -497,7 +501,7 @@ export const make = Effect.fnUntraced(function*<
|
|
|
497
501
|
|
|
498
502
|
const decodeMessage = makeMessageDecode(entity, entityRpcs)
|
|
499
503
|
|
|
500
|
-
const runFork = Effect.runForkWith(
|
|
504
|
+
const runFork = Effect.runForkWith(context)
|
|
501
505
|
|
|
502
506
|
return identity<EntityManager>({
|
|
503
507
|
interruptShard: (shardId: ShardId) =>
|
|
@@ -549,7 +553,7 @@ export const make = Effect.fnUntraced(function*<
|
|
|
549
553
|
exit: Exit.die(new MalformedMessage({ cause }))
|
|
550
554
|
}),
|
|
551
555
|
rpc: entityRpcs.get(message.envelope.tag)!,
|
|
552
|
-
|
|
556
|
+
context: context as any
|
|
553
557
|
})
|
|
554
558
|
))
|
|
555
559
|
},
|
|
@@ -563,7 +567,7 @@ export const make = Effect.fnUntraced(function*<
|
|
|
563
567
|
const rpc = entityRpcs.get(decoded.envelope.tag)!
|
|
564
568
|
return sendLocal(
|
|
565
569
|
new Message.IncomingRequestLocal({
|
|
566
|
-
annotations:
|
|
570
|
+
annotations: Context.get(rpc.annotations, ClusterSchema.Dynamic)(
|
|
567
571
|
rpc.annotations,
|
|
568
572
|
decoded.envelope as any
|
|
569
573
|
),
|
|
@@ -574,14 +578,14 @@ export const make = Effect.fnUntraced(function*<
|
|
|
574
578
|
new Reply.ReplyWithContext({
|
|
575
579
|
reply,
|
|
576
580
|
rpc,
|
|
577
|
-
|
|
581
|
+
context: context as any
|
|
578
582
|
})
|
|
579
583
|
)
|
|
580
584
|
})
|
|
581
585
|
)
|
|
582
586
|
}
|
|
583
587
|
}),
|
|
584
|
-
Effect.
|
|
588
|
+
Effect.provideContext(context as Context.Context<unknown>)
|
|
585
589
|
),
|
|
586
590
|
activeEntityCount: Effect.sync(() => activeServers.size)
|
|
587
591
|
})
|