effect 4.0.0-beta.43 → 4.0.0-beta.45
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/Equal.d.ts.map +1 -1
- package/dist/Equal.js +16 -0
- package/dist/Equal.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/Hash.js +1 -1
- package/dist/Hash.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/Semaphore.d.ts +1 -1
- package/dist/Semaphore.d.ts.map +1 -1
- package/dist/Semaphore.js +1 -3
- package/dist/Semaphore.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 +49 -46
- 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/Event.d.ts +0 -6
- package/dist/unstable/eventlog/Event.d.ts.map +1 -1
- package/dist/unstable/eventlog/Event.js +0 -5
- package/dist/unstable/eventlog/Event.js.map +1 -1
- package/dist/unstable/eventlog/EventGroup.d.ts +0 -2
- package/dist/unstable/eventlog/EventGroup.d.ts.map +1 -1
- package/dist/unstable/eventlog/EventGroup.js +0 -2
- package/dist/unstable/eventlog/EventGroup.js.map +1 -1
- package/dist/unstable/eventlog/EventJournal.d.ts +26 -9
- package/dist/unstable/eventlog/EventJournal.d.ts.map +1 -1
- package/dist/unstable/eventlog/EventJournal.js +128 -69
- package/dist/unstable/eventlog/EventJournal.js.map +1 -1
- package/dist/unstable/eventlog/EventLog.d.ts +91 -37
- package/dist/unstable/eventlog/EventLog.d.ts.map +1 -1
- package/dist/unstable/eventlog/EventLog.js +223 -149
- package/dist/unstable/eventlog/EventLog.js.map +1 -1
- package/dist/unstable/eventlog/EventLogEncryption.d.ts +11 -9
- package/dist/unstable/eventlog/EventLogEncryption.d.ts.map +1 -1
- package/dist/unstable/eventlog/EventLogEncryption.js +15 -17
- package/dist/unstable/eventlog/EventLogEncryption.js.map +1 -1
- package/dist/unstable/eventlog/EventLogMessage.d.ts +228 -0
- package/dist/unstable/eventlog/EventLogMessage.d.ts.map +1 -0
- package/dist/unstable/eventlog/EventLogMessage.js +214 -0
- package/dist/unstable/eventlog/EventLogMessage.js.map +1 -0
- package/dist/unstable/eventlog/EventLogRemote.d.ts +111 -193
- package/dist/unstable/eventlog/EventLogRemote.d.ts.map +1 -1
- package/dist/unstable/eventlog/EventLogRemote.js +167 -322
- package/dist/unstable/eventlog/EventLogRemote.js.map +1 -1
- package/dist/unstable/eventlog/EventLogServer.d.ts +26 -48
- package/dist/unstable/eventlog/EventLogServer.d.ts.map +1 -1
- package/dist/unstable/eventlog/EventLogServer.js +128 -199
- package/dist/unstable/eventlog/EventLogServer.js.map +1 -1
- package/dist/unstable/eventlog/EventLogServerEncrypted.d.ts +60 -0
- package/dist/unstable/eventlog/EventLogServerEncrypted.d.ts.map +1 -0
- package/dist/unstable/eventlog/EventLogServerEncrypted.js +166 -0
- package/dist/unstable/eventlog/EventLogServerEncrypted.js.map +1 -0
- package/dist/unstable/eventlog/EventLogServerUnencrypted.d.ts +183 -0
- package/dist/unstable/eventlog/EventLogServerUnencrypted.d.ts.map +1 -0
- package/dist/unstable/eventlog/EventLogServerUnencrypted.js +461 -0
- package/dist/unstable/eventlog/EventLogServerUnencrypted.js.map +1 -0
- package/dist/unstable/eventlog/EventLogSessionAuth.d.ts +117 -0
- package/dist/unstable/eventlog/EventLogSessionAuth.d.ts.map +1 -0
- package/dist/unstable/eventlog/EventLogSessionAuth.js +284 -0
- package/dist/unstable/eventlog/EventLogSessionAuth.js.map +1 -0
- package/dist/unstable/eventlog/{SqlEventLogJournal.d.ts → SqlEventJournal.d.ts} +2 -2
- package/dist/unstable/eventlog/SqlEventJournal.d.ts.map +1 -0
- package/dist/unstable/eventlog/{SqlEventLogJournal.js → SqlEventJournal.js} +20 -14
- package/dist/unstable/eventlog/SqlEventJournal.js.map +1 -0
- package/dist/unstable/eventlog/{SqlEventLogServer.d.ts → SqlEventLogServerEncrypted.d.ts} +5 -5
- package/dist/unstable/eventlog/SqlEventLogServerEncrypted.d.ts.map +1 -0
- package/dist/unstable/eventlog/{SqlEventLogServer.js → SqlEventLogServerEncrypted.js} +65 -24
- package/dist/unstable/eventlog/SqlEventLogServerEncrypted.js.map +1 -0
- package/dist/unstable/eventlog/SqlEventLogServerUnencrypted.d.ts +25 -0
- package/dist/unstable/eventlog/SqlEventLogServerUnencrypted.d.ts.map +1 -0
- package/dist/unstable/eventlog/SqlEventLogServerUnencrypted.js +354 -0
- package/dist/unstable/eventlog/SqlEventLogServerUnencrypted.js.map +1 -0
- package/dist/unstable/eventlog/index.d.ts +22 -2
- package/dist/unstable/eventlog/index.d.ts.map +1 -1
- package/dist/unstable/eventlog/index.js +22 -2
- package/dist/unstable/eventlog/index.js.map +1 -1
- package/dist/unstable/eventlog/internal/identityRootSecretDerivation.d.ts +2 -0
- package/dist/unstable/eventlog/internal/identityRootSecretDerivation.d.ts.map +1 -0
- package/dist/unstable/eventlog/internal/identityRootSecretDerivation.js +89 -0
- package/dist/unstable/eventlog/internal/identityRootSecretDerivation.js.map +1 -0
- 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 +4 -5
- package/dist/unstable/reactivity/AtomHttpApi.d.ts.map +1 -1
- package/dist/unstable/reactivity/AtomHttpApi.js +4 -4
- 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 +4 -5
- package/dist/unstable/reactivity/AtomRpc.d.ts.map +1 -1
- package/dist/unstable/reactivity/AtomRpc.js +5 -5
- 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 +35 -14
- package/dist/unstable/rpc/Rpc.d.ts.map +1 -1
- package/dist/unstable/rpc/Rpc.js +30 -4
- package/dist/unstable/rpc/Rpc.js.map +1 -1
- package/dist/unstable/rpc/RpcClient.d.ts +21 -21
- package/dist/unstable/rpc/RpcClient.d.ts.map +1 -1
- package/dist/unstable/rpc/RpcClient.js +73 -40
- 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 +8 -8
- 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 +8 -8
- 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 +21 -20
- 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 +6 -3
- package/dist/unstable/rpc/Utils.d.ts.map +1 -1
- package/dist/unstable/rpc/Utils.js +46 -5
- package/dist/unstable/rpc/Utils.js.map +1 -1
- package/dist/unstable/schema/Model.d.ts +2 -2
- package/dist/unstable/schema/Model.d.ts.map +1 -1
- package/dist/unstable/schema/Model.js +2 -4
- package/dist/unstable/schema/Model.js.map +1 -1
- package/dist/unstable/schema/VariantSchema.d.ts +1 -1
- package/dist/unstable/schema/VariantSchema.d.ts.map +1 -1
- package/dist/unstable/schema/VariantSchema.js +1 -12
- package/dist/unstable/schema/VariantSchema.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 +3 -3
- package/dist/unstable/workers/Transferable.d.ts.map +1 -1
- package/dist/unstable/workers/Transferable.js +7 -7
- 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/Equal.ts +17 -0
- 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/Hash.ts +2 -2
- 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/Semaphore.ts +2 -4
- 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 +68 -66
- 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/Event.ts +0 -8
- package/src/unstable/eventlog/EventGroup.ts +0 -4
- package/src/unstable/eventlog/EventJournal.ts +146 -78
- package/src/unstable/eventlog/EventLog.ts +353 -232
- package/src/unstable/eventlog/EventLogEncryption.ts +18 -32
- package/src/unstable/eventlog/EventLogMessage.ts +277 -0
- package/src/unstable/eventlog/EventLogRemote.ts +263 -410
- package/src/unstable/eventlog/EventLogServer.ts +183 -275
- package/src/unstable/eventlog/EventLogServerEncrypted.ts +206 -0
- package/src/unstable/eventlog/EventLogServerUnencrypted.ts +749 -0
- package/src/unstable/eventlog/EventLogSessionAuth.ts +437 -0
- package/src/unstable/eventlog/{SqlEventLogJournal.ts → SqlEventJournal.ts} +26 -18
- package/src/unstable/eventlog/{SqlEventLogServer.ts → SqlEventLogServerEncrypted.ts} +102 -40
- package/src/unstable/eventlog/SqlEventLogServerUnencrypted.ts +500 -0
- package/src/unstable/eventlog/index.ts +27 -2
- package/src/unstable/eventlog/internal/identityRootSecretDerivation.ts +153 -0
- 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 +27 -12
- package/src/unstable/reactivity/AtomRegistry.ts +4 -4
- package/src/unstable/reactivity/AtomRpc.ts +20 -9
- package/src/unstable/reactivity/Reactivity.ts +6 -6
- package/src/unstable/rpc/Rpc.ts +59 -21
- package/src/unstable/rpc/RpcClient.ts +103 -54
- package/src/unstable/rpc/RpcGroup.ts +31 -31
- package/src/unstable/rpc/RpcMiddleware.ts +16 -16
- package/src/unstable/rpc/RpcSchema.ts +4 -4
- package/src/unstable/rpc/RpcSerialization.ts +2 -2
- package/src/unstable/rpc/RpcServer.ts +24 -22
- package/src/unstable/rpc/RpcWorker.ts +5 -5
- package/src/unstable/rpc/Utils.ts +63 -4
- package/src/unstable/schema/Model.ts +4 -6
- package/src/unstable/schema/VariantSchema.ts +4 -17
- 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 +15 -17
- 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
- package/dist/unstable/eventlog/SqlEventLogJournal.d.ts.map +0 -1
- package/dist/unstable/eventlog/SqlEventLogJournal.js.map +0 -1
- package/dist/unstable/eventlog/SqlEventLogServer.d.ts.map +0 -1
- package/dist/unstable/eventlog/SqlEventLogServer.js.map +0 -1
|
@@ -0,0 +1,1150 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* This module provides a data structure called `Context` that can be used
|
|
3
|
+
* for dependency injection in effectful programs. It is essentially a table
|
|
4
|
+
* mapping `Service`s identifiers to their implementations, and can be used to
|
|
5
|
+
* manage dependencies in a type-safe way. The `Context` data structure is
|
|
6
|
+
* essentially a way of providing access to a set of related services that can
|
|
7
|
+
* be passed around as a single unit. This module provides functions to create,
|
|
8
|
+
* modify, and query the contents of a `Context`, as well as a number of
|
|
9
|
+
* utility types for working with a `Context`.
|
|
10
|
+
*
|
|
11
|
+
* @since 4.0.0
|
|
12
|
+
*/
|
|
13
|
+
import type { Effect, EffectIterator, Yieldable } from "./Effect.ts";
|
|
14
|
+
import * as Equal from "./Equal.ts";
|
|
15
|
+
import { type LazyArg } from "./Function.ts";
|
|
16
|
+
import type { Inspectable } from "./Inspectable.ts";
|
|
17
|
+
import * as Option from "./Option.ts";
|
|
18
|
+
import type { Pipeable } from "./Pipeable.ts";
|
|
19
|
+
import type * as Types from "./Types.ts";
|
|
20
|
+
/**
|
|
21
|
+
* @since 4.0.0
|
|
22
|
+
* @category Type Identifiers
|
|
23
|
+
*/
|
|
24
|
+
export type ServiceTypeId = "~effect/Context/Service";
|
|
25
|
+
/**
|
|
26
|
+
* @since 4.0.0
|
|
27
|
+
* @category Type Identifiers
|
|
28
|
+
*/
|
|
29
|
+
export declare const ServiceTypeId: ServiceTypeId;
|
|
30
|
+
/**
|
|
31
|
+
* The base type used for all Context keys.
|
|
32
|
+
*
|
|
33
|
+
* @since 4.0.0
|
|
34
|
+
* @category Models
|
|
35
|
+
*/
|
|
36
|
+
export interface Key<out Identifier, out Shape> extends Pipeable, Inspectable {
|
|
37
|
+
readonly [ServiceTypeId]: ServiceTypeId;
|
|
38
|
+
readonly Service: Shape;
|
|
39
|
+
readonly Identifier: Identifier;
|
|
40
|
+
readonly key: string;
|
|
41
|
+
readonly stack?: string | undefined;
|
|
42
|
+
asEffect(): Effect<Shape, never, Identifier>;
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* @example
|
|
46
|
+
* ```ts
|
|
47
|
+
* import { Context } from "effect"
|
|
48
|
+
*
|
|
49
|
+
* // Define an identifier for a database service
|
|
50
|
+
* const Database = Context.Service<{ query: (sql: string) => string }>(
|
|
51
|
+
* "Database"
|
|
52
|
+
* )
|
|
53
|
+
*
|
|
54
|
+
* // The key can be used to store and retrieve services
|
|
55
|
+
* const context = Context.make(Database, { query: (sql) => `Result: ${sql}` })
|
|
56
|
+
* ```
|
|
57
|
+
*
|
|
58
|
+
* @since 4.0.0
|
|
59
|
+
* @category Models
|
|
60
|
+
*/
|
|
61
|
+
export interface Service<in out Identifier, in out Shape> extends Key<Identifier, Shape>, Yieldable<Service<Identifier, Shape>, Shape, never, Identifier> {
|
|
62
|
+
of(this: void, self: Shape): Shape;
|
|
63
|
+
context(self: Shape): Context<Identifier>;
|
|
64
|
+
use<A, E, R>(f: (service: Shape) => Effect<A, E, R>): Effect<A, E, R | Identifier>;
|
|
65
|
+
useSync<A>(f: (service: Shape) => A): Effect<A, never, Identifier>;
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* @since 4.0.0
|
|
69
|
+
* @category Models
|
|
70
|
+
*/
|
|
71
|
+
export interface ServiceClass<in out Self, in out Identifier extends string, in out Shape> extends Service<Self, Shape> {
|
|
72
|
+
new (_: never): ServiceClass.Shape<Identifier, Shape>;
|
|
73
|
+
readonly key: Identifier;
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* @since 4.0.0
|
|
77
|
+
* @category Models
|
|
78
|
+
*/
|
|
79
|
+
export declare namespace ServiceClass {
|
|
80
|
+
/**
|
|
81
|
+
* @since 4.0.0
|
|
82
|
+
* @category Models
|
|
83
|
+
*/
|
|
84
|
+
interface Shape<Identifier extends string, Service> {
|
|
85
|
+
readonly [ServiceTypeId]: typeof ServiceTypeId;
|
|
86
|
+
readonly key: Identifier;
|
|
87
|
+
readonly Service: Service;
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* @example
|
|
92
|
+
* ```ts
|
|
93
|
+
* import { Context } from "effect"
|
|
94
|
+
*
|
|
95
|
+
* // Create a simple service
|
|
96
|
+
* const Database = Context.Service<{
|
|
97
|
+
* query: (sql: string) => string
|
|
98
|
+
* }>("Database")
|
|
99
|
+
*
|
|
100
|
+
* // Create a service class
|
|
101
|
+
* class Config extends Context.Service<Config, {
|
|
102
|
+
* port: number
|
|
103
|
+
* }>()("Config") {}
|
|
104
|
+
*
|
|
105
|
+
* // Use the services to create contexts
|
|
106
|
+
* const db = Context.make(Database, {
|
|
107
|
+
* query: (sql) => `Result: ${sql}`
|
|
108
|
+
* })
|
|
109
|
+
* const config = Context.make(Config, { port: 8080 })
|
|
110
|
+
* ```
|
|
111
|
+
*
|
|
112
|
+
* @since 4.0.0
|
|
113
|
+
* @category Constructors
|
|
114
|
+
*/
|
|
115
|
+
export declare const Service: {
|
|
116
|
+
/**
|
|
117
|
+
* @example
|
|
118
|
+
* ```ts
|
|
119
|
+
* import { Context } from "effect"
|
|
120
|
+
*
|
|
121
|
+
* // Create a simple service
|
|
122
|
+
* const Database = Context.Service<{
|
|
123
|
+
* query: (sql: string) => string
|
|
124
|
+
* }>("Database")
|
|
125
|
+
*
|
|
126
|
+
* // Create a service class
|
|
127
|
+
* class Config extends Context.Service<Config, {
|
|
128
|
+
* port: number
|
|
129
|
+
* }>()("Config") {}
|
|
130
|
+
*
|
|
131
|
+
* // Use the services to create contexts
|
|
132
|
+
* const db = Context.make(Database, {
|
|
133
|
+
* query: (sql) => `Result: ${sql}`
|
|
134
|
+
* })
|
|
135
|
+
* const config = Context.make(Config, { port: 8080 })
|
|
136
|
+
* ```
|
|
137
|
+
*
|
|
138
|
+
* @since 4.0.0
|
|
139
|
+
* @category Constructors
|
|
140
|
+
*/
|
|
141
|
+
<Identifier, Shape = Identifier>(key: string): Service<Identifier, Shape>;
|
|
142
|
+
/**
|
|
143
|
+
* @example
|
|
144
|
+
* ```ts
|
|
145
|
+
* import { Context } from "effect"
|
|
146
|
+
*
|
|
147
|
+
* // Create a simple service
|
|
148
|
+
* const Database = Context.Service<{
|
|
149
|
+
* query: (sql: string) => string
|
|
150
|
+
* }>("Database")
|
|
151
|
+
*
|
|
152
|
+
* // Create a service class
|
|
153
|
+
* class Config extends Context.Service<Config, {
|
|
154
|
+
* port: number
|
|
155
|
+
* }>()("Config") {}
|
|
156
|
+
*
|
|
157
|
+
* // Use the services to create contexts
|
|
158
|
+
* const db = Context.make(Database, {
|
|
159
|
+
* query: (sql) => `Result: ${sql}`
|
|
160
|
+
* })
|
|
161
|
+
* const config = Context.make(Config, { port: 8080 })
|
|
162
|
+
* ```
|
|
163
|
+
*
|
|
164
|
+
* @since 4.0.0
|
|
165
|
+
* @category Constructors
|
|
166
|
+
*/
|
|
167
|
+
<Self, Shape>(): <const Identifier extends string, E, R = Types.unassigned, Args extends ReadonlyArray<any> = never>(id: Identifier, options?: {
|
|
168
|
+
readonly make: ((...args: Args) => Effect<Shape, E, R>) | Effect<Shape, E, R> | undefined;
|
|
169
|
+
} | undefined) => ServiceClass<Self, Identifier, Shape> & ([Types.unassigned] extends [R] ? unknown : {
|
|
170
|
+
readonly make: [Args] extends [never] ? Effect<Shape, E, R> : (...args: Args) => Effect<Shape, E, R>;
|
|
171
|
+
});
|
|
172
|
+
/**
|
|
173
|
+
* @example
|
|
174
|
+
* ```ts
|
|
175
|
+
* import { Context } from "effect"
|
|
176
|
+
*
|
|
177
|
+
* // Create a simple service
|
|
178
|
+
* const Database = Context.Service<{
|
|
179
|
+
* query: (sql: string) => string
|
|
180
|
+
* }>("Database")
|
|
181
|
+
*
|
|
182
|
+
* // Create a service class
|
|
183
|
+
* class Config extends Context.Service<Config, {
|
|
184
|
+
* port: number
|
|
185
|
+
* }>()("Config") {}
|
|
186
|
+
*
|
|
187
|
+
* // Use the services to create contexts
|
|
188
|
+
* const db = Context.make(Database, {
|
|
189
|
+
* query: (sql) => `Result: ${sql}`
|
|
190
|
+
* })
|
|
191
|
+
* const config = Context.make(Config, { port: 8080 })
|
|
192
|
+
* ```
|
|
193
|
+
*
|
|
194
|
+
* @since 4.0.0
|
|
195
|
+
* @category Constructors
|
|
196
|
+
*/
|
|
197
|
+
<Self>(): <const Identifier extends string, Make extends Effect<any, any, any> | ((...args: any) => Effect<any, any, any>)>(id: Identifier, options: {
|
|
198
|
+
readonly make: Make;
|
|
199
|
+
}) => ServiceClass<Self, Identifier, Make extends Effect<infer _A, infer _E, infer _R> | ((...args: infer _Args) => Effect<infer _A, infer _E, infer _R>) ? _A : never> & {
|
|
200
|
+
readonly make: Make;
|
|
201
|
+
};
|
|
202
|
+
};
|
|
203
|
+
declare const ReferenceTypeId: "~effect/Context/Reference";
|
|
204
|
+
/**
|
|
205
|
+
* @example
|
|
206
|
+
* ```ts
|
|
207
|
+
* import { Context } from "effect"
|
|
208
|
+
*
|
|
209
|
+
* // Define a reference with a default value
|
|
210
|
+
* const LoggerRef: Context.Reference<{ log: (msg: string) => void }> =
|
|
211
|
+
* Context.Reference("Logger", {
|
|
212
|
+
* defaultValue: () => ({ log: (msg: string) => console.log(msg) })
|
|
213
|
+
* })
|
|
214
|
+
*
|
|
215
|
+
* // The reference can be used without explicit provision
|
|
216
|
+
* const context = Context.empty()
|
|
217
|
+
* const logger = Context.get(context, LoggerRef) // Uses default value
|
|
218
|
+
* ```
|
|
219
|
+
*
|
|
220
|
+
* @since 4.0.0
|
|
221
|
+
* @category Models
|
|
222
|
+
*/
|
|
223
|
+
export interface Reference<in out Shape> extends Service<never, Shape> {
|
|
224
|
+
readonly [ReferenceTypeId]: typeof ReferenceTypeId;
|
|
225
|
+
readonly defaultValue: () => Shape;
|
|
226
|
+
[Symbol.iterator](): EffectIterator<Reference<Shape>>;
|
|
227
|
+
new (_: never): {};
|
|
228
|
+
}
|
|
229
|
+
/**
|
|
230
|
+
* @example
|
|
231
|
+
* ```ts
|
|
232
|
+
* import { Context } from "effect"
|
|
233
|
+
*
|
|
234
|
+
* const Database = Context.Service<{
|
|
235
|
+
* query: (sql: string) => string
|
|
236
|
+
* }>("Database")
|
|
237
|
+
*
|
|
238
|
+
* // Extract service type from a key
|
|
239
|
+
* type DatabaseService = Context.Service.Shape<typeof Database>
|
|
240
|
+
*
|
|
241
|
+
* // Extract identifier type from a key
|
|
242
|
+
* type DatabaseId = Context.Service.Identifier<typeof Database>
|
|
243
|
+
* ```
|
|
244
|
+
*
|
|
245
|
+
* @since 4.0.0
|
|
246
|
+
* @category Models
|
|
247
|
+
*/
|
|
248
|
+
export declare namespace Service {
|
|
249
|
+
/**
|
|
250
|
+
* @example
|
|
251
|
+
* ```ts
|
|
252
|
+
* import { Context } from "effect"
|
|
253
|
+
*
|
|
254
|
+
* // Any represents any possible service type
|
|
255
|
+
* const services: Array<Context.Service.Any> = [
|
|
256
|
+
* Context.Service<{ log: (msg: string) => void }>("Logger"),
|
|
257
|
+
* Context.Service<{ query: (sql: string) => string }>("Database")
|
|
258
|
+
* ]
|
|
259
|
+
* ```
|
|
260
|
+
*
|
|
261
|
+
* @since 4.0.0
|
|
262
|
+
* @category Models
|
|
263
|
+
*/
|
|
264
|
+
type Any = Key<never, any> | Key<any, any>;
|
|
265
|
+
/**
|
|
266
|
+
* @example
|
|
267
|
+
* ```ts
|
|
268
|
+
* import { Context } from "effect"
|
|
269
|
+
*
|
|
270
|
+
* const Database = Context.Service<{ query: (sql: string) => string }>(
|
|
271
|
+
* "Database"
|
|
272
|
+
* )
|
|
273
|
+
*
|
|
274
|
+
* // Extract the service shape from the service
|
|
275
|
+
* type DatabaseService = Context.Service.Shape<typeof Database>
|
|
276
|
+
* // DatabaseService is { query: (sql: string) => string }
|
|
277
|
+
* ```
|
|
278
|
+
*
|
|
279
|
+
* @since 4.0.0
|
|
280
|
+
* @category Models
|
|
281
|
+
*/
|
|
282
|
+
type Shape<T> = T extends Key<infer _I, infer S> ? S : never;
|
|
283
|
+
/**
|
|
284
|
+
* @example
|
|
285
|
+
* ```ts
|
|
286
|
+
* import { Context } from "effect"
|
|
287
|
+
*
|
|
288
|
+
* const Database = Context.Service<{ query: (sql: string) => string }>(
|
|
289
|
+
* "Database"
|
|
290
|
+
* )
|
|
291
|
+
*
|
|
292
|
+
* // Extract the identifier type from a key
|
|
293
|
+
* type DatabaseId = Context.Service.Identifier<typeof Database>
|
|
294
|
+
* // DatabaseId is the identifier type
|
|
295
|
+
* ```
|
|
296
|
+
*
|
|
297
|
+
* @since 4.0.0
|
|
298
|
+
* @category Models
|
|
299
|
+
*/
|
|
300
|
+
type Identifier<T> = T extends Key<infer I, infer _S> ? I : never;
|
|
301
|
+
}
|
|
302
|
+
declare const TypeId: "~effect/Context";
|
|
303
|
+
/**
|
|
304
|
+
* @example
|
|
305
|
+
* ```ts
|
|
306
|
+
* import { Context } from "effect"
|
|
307
|
+
*
|
|
308
|
+
* // Create a context with multiple services
|
|
309
|
+
* const Logger = Context.Service<{ log: (msg: string) => void }>("Logger")
|
|
310
|
+
* const Database = Context.Service<{ query: (sql: string) => string }>(
|
|
311
|
+
* "Database"
|
|
312
|
+
* )
|
|
313
|
+
*
|
|
314
|
+
* const context = Context.make(Logger, {
|
|
315
|
+
* log: (msg: string) => console.log(msg)
|
|
316
|
+
* })
|
|
317
|
+
* .pipe(Context.add(Database, { query: (sql) => `Result: ${sql}` }))
|
|
318
|
+
* ```
|
|
319
|
+
*
|
|
320
|
+
* @since 4.0.0
|
|
321
|
+
* @category Models
|
|
322
|
+
*/
|
|
323
|
+
export interface Context<in Services> extends Equal.Equal, Pipeable, Inspectable {
|
|
324
|
+
readonly [TypeId]: {
|
|
325
|
+
readonly _Services: Types.Contravariant<Services>;
|
|
326
|
+
};
|
|
327
|
+
readonly mapUnsafe: ReadonlyMap<string, any>;
|
|
328
|
+
mutable: boolean;
|
|
329
|
+
}
|
|
330
|
+
/**
|
|
331
|
+
* @example
|
|
332
|
+
* ```ts
|
|
333
|
+
* import { Context } from "effect"
|
|
334
|
+
*
|
|
335
|
+
* // Create a context from a Map (unsafe)
|
|
336
|
+
* const map = new Map([
|
|
337
|
+
* ["Logger", { log: (msg: string) => console.log(msg) }]
|
|
338
|
+
* ])
|
|
339
|
+
*
|
|
340
|
+
* const context = Context.makeUnsafe(map)
|
|
341
|
+
* ```
|
|
342
|
+
*
|
|
343
|
+
* @since 4.0.0
|
|
344
|
+
* @category Constructors
|
|
345
|
+
*/
|
|
346
|
+
export declare const makeUnsafe: <Services = never>(mapUnsafe: ReadonlyMap<string, any>) => Context<Services>;
|
|
347
|
+
/**
|
|
348
|
+
* Checks if the provided argument is a `Context`.
|
|
349
|
+
*
|
|
350
|
+
* @example
|
|
351
|
+
* ```ts
|
|
352
|
+
* import { Context } from "effect"
|
|
353
|
+
* import * as assert from "node:assert"
|
|
354
|
+
*
|
|
355
|
+
* assert.strictEqual(Context.isContext(Context.empty()), true)
|
|
356
|
+
* ```
|
|
357
|
+
*
|
|
358
|
+
* @since 4.0.0
|
|
359
|
+
* @category Guards
|
|
360
|
+
*/
|
|
361
|
+
export declare const isContext: (u: unknown) => u is Context<never>;
|
|
362
|
+
/**
|
|
363
|
+
* Checks if the provided argument is a `Key`.
|
|
364
|
+
*
|
|
365
|
+
* @example
|
|
366
|
+
* ```ts
|
|
367
|
+
* import { Context } from "effect"
|
|
368
|
+
* import * as assert from "node:assert"
|
|
369
|
+
*
|
|
370
|
+
* assert.strictEqual(Context.isKey(Context.Service("Service")), true)
|
|
371
|
+
* ```
|
|
372
|
+
*
|
|
373
|
+
* @since 4.0.0
|
|
374
|
+
* @category Guards
|
|
375
|
+
*/
|
|
376
|
+
export declare const isKey: (u: unknown) => u is Key<any, any>;
|
|
377
|
+
/**
|
|
378
|
+
* Checks if the provided argument is a `Reference`.
|
|
379
|
+
*
|
|
380
|
+
* @example
|
|
381
|
+
* ```ts
|
|
382
|
+
* import { Context } from "effect"
|
|
383
|
+
* import * as assert from "node:assert"
|
|
384
|
+
*
|
|
385
|
+
* const LoggerRef = Context.Reference("Logger", {
|
|
386
|
+
* defaultValue: () => ({ log: (msg: string) => console.log(msg) })
|
|
387
|
+
* })
|
|
388
|
+
*
|
|
389
|
+
* assert.strictEqual(Context.isReference(LoggerRef), true)
|
|
390
|
+
* assert.strictEqual(Context.isReference(Context.Service("Key")), false)
|
|
391
|
+
* ```
|
|
392
|
+
*
|
|
393
|
+
* @since 4.0.0
|
|
394
|
+
* @category Guards
|
|
395
|
+
*/
|
|
396
|
+
export declare const isReference: (u: unknown) => u is Reference<any>;
|
|
397
|
+
/**
|
|
398
|
+
* Returns an empty `Context`.
|
|
399
|
+
*
|
|
400
|
+
* @example
|
|
401
|
+
* ```ts
|
|
402
|
+
* import { Context } from "effect"
|
|
403
|
+
* import * as assert from "node:assert"
|
|
404
|
+
*
|
|
405
|
+
* assert.strictEqual(Context.isContext(Context.empty()), true)
|
|
406
|
+
* ```
|
|
407
|
+
*
|
|
408
|
+
* @since 4.0.0
|
|
409
|
+
* @category Constructors
|
|
410
|
+
*/
|
|
411
|
+
export declare const empty: () => Context<never>;
|
|
412
|
+
/**
|
|
413
|
+
* Creates a new `Context` with a single service associated to the key.
|
|
414
|
+
*
|
|
415
|
+
* @example
|
|
416
|
+
* ```ts
|
|
417
|
+
* import { Context } from "effect"
|
|
418
|
+
* import * as assert from "node:assert"
|
|
419
|
+
*
|
|
420
|
+
* const Port = Context.Service<{ PORT: number }>("Port")
|
|
421
|
+
*
|
|
422
|
+
* const context = Context.make(Port, { PORT: 8080 })
|
|
423
|
+
*
|
|
424
|
+
* assert.deepStrictEqual(Context.get(context, Port), { PORT: 8080 })
|
|
425
|
+
* ```
|
|
426
|
+
*
|
|
427
|
+
* @since 4.0.0
|
|
428
|
+
* @category Constructors
|
|
429
|
+
*/
|
|
430
|
+
export declare const make: <I, S>(key: Key<I, S>, service: Types.NoInfer<S>) => Context<I>;
|
|
431
|
+
/**
|
|
432
|
+
* Adds a service to a given `Context`.
|
|
433
|
+
*
|
|
434
|
+
* @example
|
|
435
|
+
* ```ts
|
|
436
|
+
* import { pipe, Context } from "effect"
|
|
437
|
+
* import * as assert from "node:assert"
|
|
438
|
+
*
|
|
439
|
+
* const Port = Context.Service<{ PORT: number }>("Port")
|
|
440
|
+
* const Timeout = Context.Service<{ TIMEOUT: number }>("Timeout")
|
|
441
|
+
*
|
|
442
|
+
* const someContext = Context.make(Port, { PORT: 8080 })
|
|
443
|
+
*
|
|
444
|
+
* const context = pipe(
|
|
445
|
+
* someContext,
|
|
446
|
+
* Context.add(Timeout, { TIMEOUT: 5000 })
|
|
447
|
+
* )
|
|
448
|
+
*
|
|
449
|
+
* assert.deepStrictEqual(Context.get(context, Port), { PORT: 8080 })
|
|
450
|
+
* assert.deepStrictEqual(Context.get(context, Timeout), { TIMEOUT: 5000 })
|
|
451
|
+
* ```
|
|
452
|
+
*
|
|
453
|
+
* @since 4.0.0
|
|
454
|
+
* @category Adders
|
|
455
|
+
*/
|
|
456
|
+
export declare const add: {
|
|
457
|
+
/**
|
|
458
|
+
* Adds a service to a given `Context`.
|
|
459
|
+
*
|
|
460
|
+
* @example
|
|
461
|
+
* ```ts
|
|
462
|
+
* import { pipe, Context } from "effect"
|
|
463
|
+
* import * as assert from "node:assert"
|
|
464
|
+
*
|
|
465
|
+
* const Port = Context.Service<{ PORT: number }>("Port")
|
|
466
|
+
* const Timeout = Context.Service<{ TIMEOUT: number }>("Timeout")
|
|
467
|
+
*
|
|
468
|
+
* const someContext = Context.make(Port, { PORT: 8080 })
|
|
469
|
+
*
|
|
470
|
+
* const context = pipe(
|
|
471
|
+
* someContext,
|
|
472
|
+
* Context.add(Timeout, { TIMEOUT: 5000 })
|
|
473
|
+
* )
|
|
474
|
+
*
|
|
475
|
+
* assert.deepStrictEqual(Context.get(context, Port), { PORT: 8080 })
|
|
476
|
+
* assert.deepStrictEqual(Context.get(context, Timeout), { TIMEOUT: 5000 })
|
|
477
|
+
* ```
|
|
478
|
+
*
|
|
479
|
+
* @since 4.0.0
|
|
480
|
+
* @category Adders
|
|
481
|
+
*/
|
|
482
|
+
<I, S>(key: Key<I, S>, service: Types.NoInfer<S>): <Services>(self: Context<Services>) => Context<Services | I>;
|
|
483
|
+
/**
|
|
484
|
+
* Adds a service to a given `Context`.
|
|
485
|
+
*
|
|
486
|
+
* @example
|
|
487
|
+
* ```ts
|
|
488
|
+
* import { pipe, Context } from "effect"
|
|
489
|
+
* import * as assert from "node:assert"
|
|
490
|
+
*
|
|
491
|
+
* const Port = Context.Service<{ PORT: number }>("Port")
|
|
492
|
+
* const Timeout = Context.Service<{ TIMEOUT: number }>("Timeout")
|
|
493
|
+
*
|
|
494
|
+
* const someContext = Context.make(Port, { PORT: 8080 })
|
|
495
|
+
*
|
|
496
|
+
* const context = pipe(
|
|
497
|
+
* someContext,
|
|
498
|
+
* Context.add(Timeout, { TIMEOUT: 5000 })
|
|
499
|
+
* )
|
|
500
|
+
*
|
|
501
|
+
* assert.deepStrictEqual(Context.get(context, Port), { PORT: 8080 })
|
|
502
|
+
* assert.deepStrictEqual(Context.get(context, Timeout), { TIMEOUT: 5000 })
|
|
503
|
+
* ```
|
|
504
|
+
*
|
|
505
|
+
* @since 4.0.0
|
|
506
|
+
* @category Adders
|
|
507
|
+
*/
|
|
508
|
+
<Services, I, S>(self: Context<Services>, key: Key<I, S>, service: Types.NoInfer<S>): Context<Services | I>;
|
|
509
|
+
};
|
|
510
|
+
/**
|
|
511
|
+
* @since 4.0.0
|
|
512
|
+
* @category Adders
|
|
513
|
+
*/
|
|
514
|
+
export declare const addOrOmit: {
|
|
515
|
+
/**
|
|
516
|
+
* @since 4.0.0
|
|
517
|
+
* @category Adders
|
|
518
|
+
*/
|
|
519
|
+
<I, S>(key: Key<I, S>, service: Option.Option<Types.NoInfer<S>>): <Services>(self: Context<Services>) => Context<Services | I>;
|
|
520
|
+
/**
|
|
521
|
+
* @since 4.0.0
|
|
522
|
+
* @category Adders
|
|
523
|
+
*/
|
|
524
|
+
<Services, I, S>(self: Context<Services>, key: Key<I, S>, service: Option.Option<Types.NoInfer<S>>): Context<Services | I>;
|
|
525
|
+
};
|
|
526
|
+
/**
|
|
527
|
+
* Get a service from the context that corresponds to the given key, or
|
|
528
|
+
* use the fallback value.
|
|
529
|
+
*
|
|
530
|
+
* @example
|
|
531
|
+
* ```ts
|
|
532
|
+
* import { Context } from "effect"
|
|
533
|
+
* import * as assert from "node:assert"
|
|
534
|
+
*
|
|
535
|
+
* const Logger = Context.Service<{ log: (msg: string) => void }>("Logger")
|
|
536
|
+
* const Database = Context.Service<{ query: (sql: string) => string }>(
|
|
537
|
+
* "Database"
|
|
538
|
+
* )
|
|
539
|
+
*
|
|
540
|
+
* const context = Context.make(Logger, {
|
|
541
|
+
* log: (msg: string) => console.log(msg)
|
|
542
|
+
* })
|
|
543
|
+
*
|
|
544
|
+
* const logger = Context.getOrElse(context, Logger, () => ({ log: () => {} }))
|
|
545
|
+
* const database = Context.getOrElse(
|
|
546
|
+
* context,
|
|
547
|
+
* Database,
|
|
548
|
+
* () => ({ query: () => "fallback" })
|
|
549
|
+
* )
|
|
550
|
+
*
|
|
551
|
+
* assert.deepStrictEqual(logger, { log: (msg: string) => console.log(msg) })
|
|
552
|
+
* assert.deepStrictEqual(database, { query: () => "fallback" })
|
|
553
|
+
* ```
|
|
554
|
+
*
|
|
555
|
+
* @since 4.0.0
|
|
556
|
+
* @category Getters
|
|
557
|
+
*/
|
|
558
|
+
export declare const getOrElse: {
|
|
559
|
+
/**
|
|
560
|
+
* Get a service from the context that corresponds to the given key, or
|
|
561
|
+
* use the fallback value.
|
|
562
|
+
*
|
|
563
|
+
* @example
|
|
564
|
+
* ```ts
|
|
565
|
+
* import { Context } from "effect"
|
|
566
|
+
* import * as assert from "node:assert"
|
|
567
|
+
*
|
|
568
|
+
* const Logger = Context.Service<{ log: (msg: string) => void }>("Logger")
|
|
569
|
+
* const Database = Context.Service<{ query: (sql: string) => string }>(
|
|
570
|
+
* "Database"
|
|
571
|
+
* )
|
|
572
|
+
*
|
|
573
|
+
* const context = Context.make(Logger, {
|
|
574
|
+
* log: (msg: string) => console.log(msg)
|
|
575
|
+
* })
|
|
576
|
+
*
|
|
577
|
+
* const logger = Context.getOrElse(context, Logger, () => ({ log: () => {} }))
|
|
578
|
+
* const database = Context.getOrElse(
|
|
579
|
+
* context,
|
|
580
|
+
* Database,
|
|
581
|
+
* () => ({ query: () => "fallback" })
|
|
582
|
+
* )
|
|
583
|
+
*
|
|
584
|
+
* assert.deepStrictEqual(logger, { log: (msg: string) => console.log(msg) })
|
|
585
|
+
* assert.deepStrictEqual(database, { query: () => "fallback" })
|
|
586
|
+
* ```
|
|
587
|
+
*
|
|
588
|
+
* @since 4.0.0
|
|
589
|
+
* @category Getters
|
|
590
|
+
*/
|
|
591
|
+
<S, I, B>(key: Key<I, S>, orElse: LazyArg<B>): <Services>(self: Context<Services>) => S | B;
|
|
592
|
+
/**
|
|
593
|
+
* Get a service from the context that corresponds to the given key, or
|
|
594
|
+
* use the fallback value.
|
|
595
|
+
*
|
|
596
|
+
* @example
|
|
597
|
+
* ```ts
|
|
598
|
+
* import { Context } from "effect"
|
|
599
|
+
* import * as assert from "node:assert"
|
|
600
|
+
*
|
|
601
|
+
* const Logger = Context.Service<{ log: (msg: string) => void }>("Logger")
|
|
602
|
+
* const Database = Context.Service<{ query: (sql: string) => string }>(
|
|
603
|
+
* "Database"
|
|
604
|
+
* )
|
|
605
|
+
*
|
|
606
|
+
* const context = Context.make(Logger, {
|
|
607
|
+
* log: (msg: string) => console.log(msg)
|
|
608
|
+
* })
|
|
609
|
+
*
|
|
610
|
+
* const logger = Context.getOrElse(context, Logger, () => ({ log: () => {} }))
|
|
611
|
+
* const database = Context.getOrElse(
|
|
612
|
+
* context,
|
|
613
|
+
* Database,
|
|
614
|
+
* () => ({ query: () => "fallback" })
|
|
615
|
+
* )
|
|
616
|
+
*
|
|
617
|
+
* assert.deepStrictEqual(logger, { log: (msg: string) => console.log(msg) })
|
|
618
|
+
* assert.deepStrictEqual(database, { query: () => "fallback" })
|
|
619
|
+
* ```
|
|
620
|
+
*
|
|
621
|
+
* @since 4.0.0
|
|
622
|
+
* @category Getters
|
|
623
|
+
*/
|
|
624
|
+
<Services, S, I, B>(self: Context<Services>, key: Key<I, S>, orElse: LazyArg<B>): S | B;
|
|
625
|
+
};
|
|
626
|
+
/**
|
|
627
|
+
* @since 4.0.0
|
|
628
|
+
* @category Getters
|
|
629
|
+
*/
|
|
630
|
+
export declare const getOrUndefined: {
|
|
631
|
+
/**
|
|
632
|
+
* @since 4.0.0
|
|
633
|
+
* @category Getters
|
|
634
|
+
*/
|
|
635
|
+
<S, I>(key: Key<I, S>): <Services>(self: Context<Services>) => S | undefined;
|
|
636
|
+
/**
|
|
637
|
+
* @since 4.0.0
|
|
638
|
+
* @category Getters
|
|
639
|
+
*/
|
|
640
|
+
<Services, S, I>(self: Context<Services>, key: Key<I, S>): S | undefined;
|
|
641
|
+
};
|
|
642
|
+
/**
|
|
643
|
+
* Get a service from the context that corresponds to the given key.
|
|
644
|
+
*
|
|
645
|
+
* This function is unsafe because if the key is not present in the context, a
|
|
646
|
+
* runtime error will be thrown.
|
|
647
|
+
*
|
|
648
|
+
* For a safer version see {@link getOption}.
|
|
649
|
+
*
|
|
650
|
+
* @param self - The `Context` to search for the service.
|
|
651
|
+
* @param service - The `Service` of the service to retrieve.
|
|
652
|
+
*
|
|
653
|
+
* @example
|
|
654
|
+
* ```ts
|
|
655
|
+
* import { Context } from "effect"
|
|
656
|
+
* import * as assert from "node:assert"
|
|
657
|
+
*
|
|
658
|
+
* const Port = Context.Service<{ PORT: number }>("Port")
|
|
659
|
+
* const Timeout = Context.Service<{ TIMEOUT: number }>("Timeout")
|
|
660
|
+
*
|
|
661
|
+
* const context = Context.make(Port, { PORT: 8080 })
|
|
662
|
+
*
|
|
663
|
+
* assert.deepStrictEqual(Context.getUnsafe(context, Port), { PORT: 8080 })
|
|
664
|
+
* assert.throws(() => Context.getUnsafe(context, Timeout))
|
|
665
|
+
* ```
|
|
666
|
+
*
|
|
667
|
+
* @since 4.0.0
|
|
668
|
+
* @category unsafe
|
|
669
|
+
*/
|
|
670
|
+
export declare const getUnsafe: {
|
|
671
|
+
/**
|
|
672
|
+
* Get a service from the context that corresponds to the given key.
|
|
673
|
+
*
|
|
674
|
+
* This function is unsafe because if the key is not present in the context, a
|
|
675
|
+
* runtime error will be thrown.
|
|
676
|
+
*
|
|
677
|
+
* For a safer version see {@link getOption}.
|
|
678
|
+
*
|
|
679
|
+
* @param self - The `Context` to search for the service.
|
|
680
|
+
* @param service - The `Service` of the service to retrieve.
|
|
681
|
+
*
|
|
682
|
+
* @example
|
|
683
|
+
* ```ts
|
|
684
|
+
* import { Context } from "effect"
|
|
685
|
+
* import * as assert from "node:assert"
|
|
686
|
+
*
|
|
687
|
+
* const Port = Context.Service<{ PORT: number }>("Port")
|
|
688
|
+
* const Timeout = Context.Service<{ TIMEOUT: number }>("Timeout")
|
|
689
|
+
*
|
|
690
|
+
* const context = Context.make(Port, { PORT: 8080 })
|
|
691
|
+
*
|
|
692
|
+
* assert.deepStrictEqual(Context.getUnsafe(context, Port), { PORT: 8080 })
|
|
693
|
+
* assert.throws(() => Context.getUnsafe(context, Timeout))
|
|
694
|
+
* ```
|
|
695
|
+
*
|
|
696
|
+
* @since 4.0.0
|
|
697
|
+
* @category unsafe
|
|
698
|
+
*/
|
|
699
|
+
<S, I>(service: Key<I, S>): <Services>(self: Context<Services>) => S;
|
|
700
|
+
/**
|
|
701
|
+
* Get a service from the context that corresponds to the given key.
|
|
702
|
+
*
|
|
703
|
+
* This function is unsafe because if the key is not present in the context, a
|
|
704
|
+
* runtime error will be thrown.
|
|
705
|
+
*
|
|
706
|
+
* For a safer version see {@link getOption}.
|
|
707
|
+
*
|
|
708
|
+
* @param self - The `Context` to search for the service.
|
|
709
|
+
* @param service - The `Service` of the service to retrieve.
|
|
710
|
+
*
|
|
711
|
+
* @example
|
|
712
|
+
* ```ts
|
|
713
|
+
* import { Context } from "effect"
|
|
714
|
+
* import * as assert from "node:assert"
|
|
715
|
+
*
|
|
716
|
+
* const Port = Context.Service<{ PORT: number }>("Port")
|
|
717
|
+
* const Timeout = Context.Service<{ TIMEOUT: number }>("Timeout")
|
|
718
|
+
*
|
|
719
|
+
* const context = Context.make(Port, { PORT: 8080 })
|
|
720
|
+
*
|
|
721
|
+
* assert.deepStrictEqual(Context.getUnsafe(context, Port), { PORT: 8080 })
|
|
722
|
+
* assert.throws(() => Context.getUnsafe(context, Timeout))
|
|
723
|
+
* ```
|
|
724
|
+
*
|
|
725
|
+
* @since 4.0.0
|
|
726
|
+
* @category unsafe
|
|
727
|
+
*/
|
|
728
|
+
<Services, S, I>(self: Context<Services>, services: Key<I, S>): S;
|
|
729
|
+
};
|
|
730
|
+
/**
|
|
731
|
+
* Get a service from the context that corresponds to the given key.
|
|
732
|
+
*
|
|
733
|
+
* @param self - The `Context` to search for the service.
|
|
734
|
+
* @param service - The `Service` of the service to retrieve.
|
|
735
|
+
*
|
|
736
|
+
* @example
|
|
737
|
+
* ```ts
|
|
738
|
+
* import { pipe, Context } from "effect"
|
|
739
|
+
* import * as assert from "node:assert"
|
|
740
|
+
*
|
|
741
|
+
* const Port = Context.Service<{ PORT: number }>("Port")
|
|
742
|
+
* const Timeout = Context.Service<{ TIMEOUT: number }>("Timeout")
|
|
743
|
+
*
|
|
744
|
+
* const context = pipe(
|
|
745
|
+
* Context.make(Port, { PORT: 8080 }),
|
|
746
|
+
* Context.add(Timeout, { TIMEOUT: 5000 })
|
|
747
|
+
* )
|
|
748
|
+
*
|
|
749
|
+
* assert.deepStrictEqual(Context.get(context, Timeout), { TIMEOUT: 5000 })
|
|
750
|
+
* ```
|
|
751
|
+
*
|
|
752
|
+
* @since 4.0.0
|
|
753
|
+
* @category Getters
|
|
754
|
+
*/
|
|
755
|
+
export declare const get: {
|
|
756
|
+
/**
|
|
757
|
+
* Get a service from the context that corresponds to the given key.
|
|
758
|
+
*
|
|
759
|
+
* @param self - The `Context` to search for the service.
|
|
760
|
+
* @param service - The `Service` of the service to retrieve.
|
|
761
|
+
*
|
|
762
|
+
* @example
|
|
763
|
+
* ```ts
|
|
764
|
+
* import { pipe, Context } from "effect"
|
|
765
|
+
* import * as assert from "node:assert"
|
|
766
|
+
*
|
|
767
|
+
* const Port = Context.Service<{ PORT: number }>("Port")
|
|
768
|
+
* const Timeout = Context.Service<{ TIMEOUT: number }>("Timeout")
|
|
769
|
+
*
|
|
770
|
+
* const context = pipe(
|
|
771
|
+
* Context.make(Port, { PORT: 8080 }),
|
|
772
|
+
* Context.add(Timeout, { TIMEOUT: 5000 })
|
|
773
|
+
* )
|
|
774
|
+
*
|
|
775
|
+
* assert.deepStrictEqual(Context.get(context, Timeout), { TIMEOUT: 5000 })
|
|
776
|
+
* ```
|
|
777
|
+
*
|
|
778
|
+
* @since 4.0.0
|
|
779
|
+
* @category Getters
|
|
780
|
+
*/
|
|
781
|
+
<Services, I extends Services, S>(service: Key<I, S>): (self: Context<Services>) => S;
|
|
782
|
+
/**
|
|
783
|
+
* Get a service from the context that corresponds to the given key.
|
|
784
|
+
*
|
|
785
|
+
* @param self - The `Context` to search for the service.
|
|
786
|
+
* @param service - The `Service` of the service to retrieve.
|
|
787
|
+
*
|
|
788
|
+
* @example
|
|
789
|
+
* ```ts
|
|
790
|
+
* import { pipe, Context } from "effect"
|
|
791
|
+
* import * as assert from "node:assert"
|
|
792
|
+
*
|
|
793
|
+
* const Port = Context.Service<{ PORT: number }>("Port")
|
|
794
|
+
* const Timeout = Context.Service<{ TIMEOUT: number }>("Timeout")
|
|
795
|
+
*
|
|
796
|
+
* const context = pipe(
|
|
797
|
+
* Context.make(Port, { PORT: 8080 }),
|
|
798
|
+
* Context.add(Timeout, { TIMEOUT: 5000 })
|
|
799
|
+
* )
|
|
800
|
+
*
|
|
801
|
+
* assert.deepStrictEqual(Context.get(context, Timeout), { TIMEOUT: 5000 })
|
|
802
|
+
* ```
|
|
803
|
+
*
|
|
804
|
+
* @since 4.0.0
|
|
805
|
+
* @category Getters
|
|
806
|
+
*/
|
|
807
|
+
<Services, I extends Services, S>(self: Context<Services>, service: Key<I, S>): S;
|
|
808
|
+
};
|
|
809
|
+
/**
|
|
810
|
+
* @example
|
|
811
|
+
* ```ts
|
|
812
|
+
* import { Context } from "effect"
|
|
813
|
+
* import * as assert from "node:assert"
|
|
814
|
+
*
|
|
815
|
+
* const LoggerRef = Context.Reference("Logger", {
|
|
816
|
+
* defaultValue: () => ({ log: (msg: string) => console.log(msg) })
|
|
817
|
+
* })
|
|
818
|
+
*
|
|
819
|
+
* const context = Context.empty()
|
|
820
|
+
* const logger = Context.getReferenceUnsafe(context, LoggerRef)
|
|
821
|
+
*
|
|
822
|
+
* assert.deepStrictEqual(logger, { log: (msg: string) => console.log(msg) })
|
|
823
|
+
* ```
|
|
824
|
+
*
|
|
825
|
+
* @since 4.0.0
|
|
826
|
+
* @category unsafe
|
|
827
|
+
*/
|
|
828
|
+
export declare const getReferenceUnsafe: <Services, S>(self: Context<Services>, service: Reference<S>) => S;
|
|
829
|
+
/**
|
|
830
|
+
* Get the value associated with the specified key from the context wrapped in
|
|
831
|
+
* an `Option` object. If the key is not found, the `Option` object will be
|
|
832
|
+
* `None`.
|
|
833
|
+
*
|
|
834
|
+
* @param self - The `Context` to search for the service.
|
|
835
|
+
* @param service - The `Service` of the service to retrieve.
|
|
836
|
+
*
|
|
837
|
+
* @example
|
|
838
|
+
* ```ts
|
|
839
|
+
* import { Option, Context } from "effect"
|
|
840
|
+
* import * as assert from "node:assert"
|
|
841
|
+
*
|
|
842
|
+
* const Port = Context.Service<{ PORT: number }>("Port")
|
|
843
|
+
* const Timeout = Context.Service<{ TIMEOUT: number }>("Timeout")
|
|
844
|
+
*
|
|
845
|
+
* const context = Context.make(Port, { PORT: 8080 })
|
|
846
|
+
*
|
|
847
|
+
* assert.deepStrictEqual(
|
|
848
|
+
* Context.getOption(context, Port),
|
|
849
|
+
* Option.some({ PORT: 8080 })
|
|
850
|
+
* )
|
|
851
|
+
* assert.deepStrictEqual(Context.getOption(context, Timeout), Option.none())
|
|
852
|
+
* ```
|
|
853
|
+
*
|
|
854
|
+
* @since 4.0.0
|
|
855
|
+
* @category Getters
|
|
856
|
+
*/
|
|
857
|
+
export declare const getOption: {
|
|
858
|
+
/**
|
|
859
|
+
* Get the value associated with the specified key from the context wrapped in
|
|
860
|
+
* an `Option` object. If the key is not found, the `Option` object will be
|
|
861
|
+
* `None`.
|
|
862
|
+
*
|
|
863
|
+
* @param self - The `Context` to search for the service.
|
|
864
|
+
* @param service - The `Service` of the service to retrieve.
|
|
865
|
+
*
|
|
866
|
+
* @example
|
|
867
|
+
* ```ts
|
|
868
|
+
* import { Option, Context } from "effect"
|
|
869
|
+
* import * as assert from "node:assert"
|
|
870
|
+
*
|
|
871
|
+
* const Port = Context.Service<{ PORT: number }>("Port")
|
|
872
|
+
* const Timeout = Context.Service<{ TIMEOUT: number }>("Timeout")
|
|
873
|
+
*
|
|
874
|
+
* const context = Context.make(Port, { PORT: 8080 })
|
|
875
|
+
*
|
|
876
|
+
* assert.deepStrictEqual(
|
|
877
|
+
* Context.getOption(context, Port),
|
|
878
|
+
* Option.some({ PORT: 8080 })
|
|
879
|
+
* )
|
|
880
|
+
* assert.deepStrictEqual(Context.getOption(context, Timeout), Option.none())
|
|
881
|
+
* ```
|
|
882
|
+
*
|
|
883
|
+
* @since 4.0.0
|
|
884
|
+
* @category Getters
|
|
885
|
+
*/
|
|
886
|
+
<S, I>(service: Key<I, S>): <Services>(self: Context<Services>) => Option.Option<S>;
|
|
887
|
+
/**
|
|
888
|
+
* Get the value associated with the specified key from the context wrapped in
|
|
889
|
+
* an `Option` object. If the key is not found, the `Option` object will be
|
|
890
|
+
* `None`.
|
|
891
|
+
*
|
|
892
|
+
* @param self - The `Context` to search for the service.
|
|
893
|
+
* @param service - The `Service` of the service to retrieve.
|
|
894
|
+
*
|
|
895
|
+
* @example
|
|
896
|
+
* ```ts
|
|
897
|
+
* import { Option, Context } from "effect"
|
|
898
|
+
* import * as assert from "node:assert"
|
|
899
|
+
*
|
|
900
|
+
* const Port = Context.Service<{ PORT: number }>("Port")
|
|
901
|
+
* const Timeout = Context.Service<{ TIMEOUT: number }>("Timeout")
|
|
902
|
+
*
|
|
903
|
+
* const context = Context.make(Port, { PORT: 8080 })
|
|
904
|
+
*
|
|
905
|
+
* assert.deepStrictEqual(
|
|
906
|
+
* Context.getOption(context, Port),
|
|
907
|
+
* Option.some({ PORT: 8080 })
|
|
908
|
+
* )
|
|
909
|
+
* assert.deepStrictEqual(Context.getOption(context, Timeout), Option.none())
|
|
910
|
+
* ```
|
|
911
|
+
*
|
|
912
|
+
* @since 4.0.0
|
|
913
|
+
* @category Getters
|
|
914
|
+
*/
|
|
915
|
+
<Services, S, I>(self: Context<Services>, service: Key<I, S>): Option.Option<S>;
|
|
916
|
+
};
|
|
917
|
+
/**
|
|
918
|
+
* Merges two `Context`s, returning a new `Context` containing the services of both.
|
|
919
|
+
*
|
|
920
|
+
* @param self - The first `Context` to merge.
|
|
921
|
+
* @param that - The second `Context` to merge.
|
|
922
|
+
*
|
|
923
|
+
* @example
|
|
924
|
+
* ```ts
|
|
925
|
+
* import { Context } from "effect"
|
|
926
|
+
* import * as assert from "node:assert"
|
|
927
|
+
*
|
|
928
|
+
* const Port = Context.Service<{ PORT: number }>("Port")
|
|
929
|
+
* const Timeout = Context.Service<{ TIMEOUT: number }>("Timeout")
|
|
930
|
+
*
|
|
931
|
+
* const firstContext = Context.make(Port, { PORT: 8080 })
|
|
932
|
+
* const secondContext = Context.make(Timeout, { TIMEOUT: 5000 })
|
|
933
|
+
*
|
|
934
|
+
* const context = Context.merge(firstContext, secondContext)
|
|
935
|
+
*
|
|
936
|
+
* assert.deepStrictEqual(Context.get(context, Port), { PORT: 8080 })
|
|
937
|
+
* assert.deepStrictEqual(Context.get(context, Timeout), { TIMEOUT: 5000 })
|
|
938
|
+
* ```
|
|
939
|
+
*
|
|
940
|
+
* @since 4.0.0
|
|
941
|
+
* @category Utils
|
|
942
|
+
*/
|
|
943
|
+
export declare const merge: {
|
|
944
|
+
/**
|
|
945
|
+
* Merges two `Context`s, returning a new `Context` containing the services of both.
|
|
946
|
+
*
|
|
947
|
+
* @param self - The first `Context` to merge.
|
|
948
|
+
* @param that - The second `Context` to merge.
|
|
949
|
+
*
|
|
950
|
+
* @example
|
|
951
|
+
* ```ts
|
|
952
|
+
* import { Context } from "effect"
|
|
953
|
+
* import * as assert from "node:assert"
|
|
954
|
+
*
|
|
955
|
+
* const Port = Context.Service<{ PORT: number }>("Port")
|
|
956
|
+
* const Timeout = Context.Service<{ TIMEOUT: number }>("Timeout")
|
|
957
|
+
*
|
|
958
|
+
* const firstContext = Context.make(Port, { PORT: 8080 })
|
|
959
|
+
* const secondContext = Context.make(Timeout, { TIMEOUT: 5000 })
|
|
960
|
+
*
|
|
961
|
+
* const context = Context.merge(firstContext, secondContext)
|
|
962
|
+
*
|
|
963
|
+
* assert.deepStrictEqual(Context.get(context, Port), { PORT: 8080 })
|
|
964
|
+
* assert.deepStrictEqual(Context.get(context, Timeout), { TIMEOUT: 5000 })
|
|
965
|
+
* ```
|
|
966
|
+
*
|
|
967
|
+
* @since 4.0.0
|
|
968
|
+
* @category Utils
|
|
969
|
+
*/
|
|
970
|
+
<R1>(that: Context<R1>): <Services>(self: Context<Services>) => Context<R1 | Services>;
|
|
971
|
+
/**
|
|
972
|
+
* Merges two `Context`s, returning a new `Context` containing the services of both.
|
|
973
|
+
*
|
|
974
|
+
* @param self - The first `Context` to merge.
|
|
975
|
+
* @param that - The second `Context` to merge.
|
|
976
|
+
*
|
|
977
|
+
* @example
|
|
978
|
+
* ```ts
|
|
979
|
+
* import { Context } from "effect"
|
|
980
|
+
* import * as assert from "node:assert"
|
|
981
|
+
*
|
|
982
|
+
* const Port = Context.Service<{ PORT: number }>("Port")
|
|
983
|
+
* const Timeout = Context.Service<{ TIMEOUT: number }>("Timeout")
|
|
984
|
+
*
|
|
985
|
+
* const firstContext = Context.make(Port, { PORT: 8080 })
|
|
986
|
+
* const secondContext = Context.make(Timeout, { TIMEOUT: 5000 })
|
|
987
|
+
*
|
|
988
|
+
* const context = Context.merge(firstContext, secondContext)
|
|
989
|
+
*
|
|
990
|
+
* assert.deepStrictEqual(Context.get(context, Port), { PORT: 8080 })
|
|
991
|
+
* assert.deepStrictEqual(Context.get(context, Timeout), { TIMEOUT: 5000 })
|
|
992
|
+
* ```
|
|
993
|
+
*
|
|
994
|
+
* @since 4.0.0
|
|
995
|
+
* @category Utils
|
|
996
|
+
*/
|
|
997
|
+
<Services, R1>(self: Context<Services>, that: Context<R1>): Context<Services | R1>;
|
|
998
|
+
};
|
|
999
|
+
/**
|
|
1000
|
+
* Merges any number of `Context`s, returning a new `Context` containing the services of all.
|
|
1001
|
+
*
|
|
1002
|
+
* @example
|
|
1003
|
+
* ```ts
|
|
1004
|
+
* import { Context } from "effect"
|
|
1005
|
+
* import * as assert from "node:assert"
|
|
1006
|
+
*
|
|
1007
|
+
* const Port = Context.Service<{ PORT: number }>("Port")
|
|
1008
|
+
* const Timeout = Context.Service<{ TIMEOUT: number }>("Timeout")
|
|
1009
|
+
* const Host = Context.Service<{ HOST: string }>("Host")
|
|
1010
|
+
*
|
|
1011
|
+
* const firstContext = Context.make(Port, { PORT: 8080 })
|
|
1012
|
+
* const secondContext = Context.make(Timeout, { TIMEOUT: 5000 })
|
|
1013
|
+
* const thirdContext = Context.make(Host, { HOST: "localhost" })
|
|
1014
|
+
*
|
|
1015
|
+
* const context = Context.mergeAll(
|
|
1016
|
+
* firstContext,
|
|
1017
|
+
* secondContext,
|
|
1018
|
+
* thirdContext
|
|
1019
|
+
* )
|
|
1020
|
+
*
|
|
1021
|
+
* assert.deepStrictEqual(Context.get(context, Port), { PORT: 8080 })
|
|
1022
|
+
* assert.deepStrictEqual(Context.get(context, Timeout), { TIMEOUT: 5000 })
|
|
1023
|
+
* assert.deepStrictEqual(Context.get(context, Host), { HOST: "localhost" })
|
|
1024
|
+
* ```
|
|
1025
|
+
*
|
|
1026
|
+
* @since 3.12.0
|
|
1027
|
+
*/
|
|
1028
|
+
export declare const mergeAll: <T extends Array<unknown>>(...ctxs: [...{ [K in keyof T]: Context<T[K]>; }]) => Context<T[number]>;
|
|
1029
|
+
/**
|
|
1030
|
+
* Returns a new `Context` that contains only the specified services.
|
|
1031
|
+
*
|
|
1032
|
+
* @param self - The `Context` to prune services from.
|
|
1033
|
+
* @param services - The list of `Service`s to be included in the new `Context`.
|
|
1034
|
+
*
|
|
1035
|
+
* @example
|
|
1036
|
+
* ```ts
|
|
1037
|
+
* import { Option, pipe, Context } from "effect"
|
|
1038
|
+
* import * as assert from "node:assert"
|
|
1039
|
+
*
|
|
1040
|
+
* const Port = Context.Service<{ PORT: number }>("Port")
|
|
1041
|
+
* const Timeout = Context.Service<{ TIMEOUT: number }>("Timeout")
|
|
1042
|
+
*
|
|
1043
|
+
* const someContext = pipe(
|
|
1044
|
+
* Context.make(Port, { PORT: 8080 }),
|
|
1045
|
+
* Context.add(Timeout, { TIMEOUT: 5000 })
|
|
1046
|
+
* )
|
|
1047
|
+
*
|
|
1048
|
+
* const context = pipe(someContext, Context.pick(Port))
|
|
1049
|
+
*
|
|
1050
|
+
* assert.deepStrictEqual(
|
|
1051
|
+
* Context.getOption(context, Port),
|
|
1052
|
+
* Option.some({ PORT: 8080 })
|
|
1053
|
+
* )
|
|
1054
|
+
* assert.deepStrictEqual(Context.getOption(context, Timeout), Option.none())
|
|
1055
|
+
* ```
|
|
1056
|
+
*
|
|
1057
|
+
* @since 4.0.0
|
|
1058
|
+
* @category Utils
|
|
1059
|
+
*/
|
|
1060
|
+
export declare const pick: <S extends ReadonlyArray<Key<any, any>>>(...services: S) => <Services>(self: Context<Services>) => Context<Services & Service.Identifier<S[number]>>;
|
|
1061
|
+
/**
|
|
1062
|
+
* @example
|
|
1063
|
+
* ```ts
|
|
1064
|
+
* import { Option, pipe, Context } from "effect"
|
|
1065
|
+
* import * as assert from "node:assert"
|
|
1066
|
+
*
|
|
1067
|
+
* const Port = Context.Service<{ PORT: number }>("Port")
|
|
1068
|
+
* const Timeout = Context.Service<{ TIMEOUT: number }>("Timeout")
|
|
1069
|
+
*
|
|
1070
|
+
* const someContext = pipe(
|
|
1071
|
+
* Context.make(Port, { PORT: 8080 }),
|
|
1072
|
+
* Context.add(Timeout, { TIMEOUT: 5000 })
|
|
1073
|
+
* )
|
|
1074
|
+
*
|
|
1075
|
+
* const context = pipe(someContext, Context.omit(Timeout))
|
|
1076
|
+
*
|
|
1077
|
+
* assert.deepStrictEqual(
|
|
1078
|
+
* Context.getOption(context, Port),
|
|
1079
|
+
* Option.some({ PORT: 8080 })
|
|
1080
|
+
* )
|
|
1081
|
+
* assert.deepStrictEqual(Context.getOption(context, Timeout), Option.none())
|
|
1082
|
+
* ```
|
|
1083
|
+
*
|
|
1084
|
+
* @since 4.0.0
|
|
1085
|
+
* @category Utils
|
|
1086
|
+
*/
|
|
1087
|
+
export declare const omit: <S extends ReadonlyArray<Key<any, any>>>(...keys: S) => <Services>(self: Context<Services>) => Context<Exclude<Services, Service.Identifier<S[number]>>>;
|
|
1088
|
+
/**
|
|
1089
|
+
* Perform a series of mutations on a `Context`. Prevents unnecessary copying
|
|
1090
|
+
* of the underlying map when multiple mutations are needed.
|
|
1091
|
+
*
|
|
1092
|
+
* @since 4.0.0
|
|
1093
|
+
* @category Utils
|
|
1094
|
+
*/
|
|
1095
|
+
export declare const mutate: {
|
|
1096
|
+
/**
|
|
1097
|
+
* Perform a series of mutations on a `Context`. Prevents unnecessary copying
|
|
1098
|
+
* of the underlying map when multiple mutations are needed.
|
|
1099
|
+
*
|
|
1100
|
+
* @since 4.0.0
|
|
1101
|
+
* @category Utils
|
|
1102
|
+
*/
|
|
1103
|
+
<Services, B>(f: (context: Context<Services>) => Context<B>): <Services>(self: Context<Services>) => Context<B>;
|
|
1104
|
+
/**
|
|
1105
|
+
* Perform a series of mutations on a `Context`. Prevents unnecessary copying
|
|
1106
|
+
* of the underlying map when multiple mutations are needed.
|
|
1107
|
+
*
|
|
1108
|
+
* @since 4.0.0
|
|
1109
|
+
* @category Utils
|
|
1110
|
+
*/
|
|
1111
|
+
<Services, B>(self: Context<Services>, f: (context: Context<Services>) => Context<B>): Context<B>;
|
|
1112
|
+
};
|
|
1113
|
+
/**
|
|
1114
|
+
* Creates a context key with a default value.
|
|
1115
|
+
*
|
|
1116
|
+
* **Details**
|
|
1117
|
+
*
|
|
1118
|
+
* `Context.Reference` allows you to create a key that can hold a value. You
|
|
1119
|
+
* can provide a default value for the service, which will automatically be used
|
|
1120
|
+
* when the context is accessed, or override it with a custom implementation
|
|
1121
|
+
* when needed.
|
|
1122
|
+
*
|
|
1123
|
+
* @example
|
|
1124
|
+
* ```ts
|
|
1125
|
+
* import { Context } from "effect"
|
|
1126
|
+
*
|
|
1127
|
+
* // Create a reference with a default value
|
|
1128
|
+
* const LoggerRef = Context.Reference("Logger", {
|
|
1129
|
+
* defaultValue: () => ({ log: (msg: string) => console.log(msg) })
|
|
1130
|
+
* })
|
|
1131
|
+
*
|
|
1132
|
+
* // The reference provides the default value when accessed from an empty context
|
|
1133
|
+
* const context = Context.empty()
|
|
1134
|
+
* const logger = Context.get(context, LoggerRef)
|
|
1135
|
+
*
|
|
1136
|
+
* // You can also override the default value
|
|
1137
|
+
* const customContext = Context.make(LoggerRef, {
|
|
1138
|
+
* log: (msg: string) => `Custom: ${msg}`
|
|
1139
|
+
* })
|
|
1140
|
+
* const customLogger = Context.get(customContext, LoggerRef)
|
|
1141
|
+
* ```
|
|
1142
|
+
*
|
|
1143
|
+
* @since 4.0.0
|
|
1144
|
+
* @category References
|
|
1145
|
+
*/
|
|
1146
|
+
export declare const Reference: <Service>(key: string, options: {
|
|
1147
|
+
readonly defaultValue: () => Service;
|
|
1148
|
+
}) => Reference<Service>;
|
|
1149
|
+
export {};
|
|
1150
|
+
//# sourceMappingURL=Context.d.ts.map
|