effect 4.0.0-beta.2 → 4.0.0-beta.21
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/Array.d.ts +127 -299
- package/dist/Array.d.ts.map +1 -1
- package/dist/Array.js +102 -62
- package/dist/Array.js.map +1 -1
- package/dist/Cache.d.ts +2 -2
- package/dist/Cache.d.ts.map +1 -1
- package/dist/Cache.js +6 -5
- package/dist/Cache.js.map +1 -1
- package/dist/Cause.d.ts +1 -1
- package/dist/Cause.d.ts.map +1 -1
- package/dist/Channel.d.ts +116 -30
- package/dist/Channel.d.ts.map +1 -1
- package/dist/Channel.js +82 -37
- package/dist/Channel.js.map +1 -1
- package/dist/Chunk.d.ts +54 -247
- package/dist/Chunk.d.ts.map +1 -1
- package/dist/Chunk.js +36 -67
- package/dist/Chunk.js.map +1 -1
- package/dist/Combiner.d.ts +280 -13
- package/dist/Combiner.d.ts.map +1 -1
- package/dist/Combiner.js +198 -7
- package/dist/Combiner.js.map +1 -1
- package/dist/Config.d.ts +165 -9
- package/dist/Config.d.ts.map +1 -1
- package/dist/Config.js +62 -7
- package/dist/Config.js.map +1 -1
- package/dist/ConfigProvider.d.ts +1 -1
- package/dist/Cron.d.ts +1 -1
- package/dist/Data.d.ts +534 -365
- package/dist/Data.d.ts.map +1 -1
- package/dist/Data.js +132 -79
- package/dist/Data.js.map +1 -1
- package/dist/DateTime.d.ts +23 -161
- package/dist/DateTime.d.ts.map +1 -1
- package/dist/DateTime.js +6 -51
- package/dist/DateTime.js.map +1 -1
- package/dist/Duration.d.ts +12 -12
- package/dist/Duration.d.ts.map +1 -1
- package/dist/Duration.js +12 -12
- package/dist/Duration.js.map +1 -1
- package/dist/Effect.d.ts +829 -692
- package/dist/Effect.d.ts.map +1 -1
- package/dist/Effect.js +263 -251
- package/dist/Effect.js.map +1 -1
- package/dist/Encoding.d.ts +194 -0
- package/dist/Encoding.d.ts.map +1 -0
- package/dist/Encoding.js +352 -0
- package/dist/Encoding.js.map +1 -0
- package/dist/Equal.d.ts +276 -109
- package/dist/Equal.d.ts.map +1 -1
- package/dist/Equal.js +124 -48
- package/dist/Equal.js.map +1 -1
- package/dist/ErrorReporter.d.ts +376 -0
- package/dist/ErrorReporter.d.ts.map +1 -0
- package/dist/ErrorReporter.js +246 -0
- package/dist/ErrorReporter.js.map +1 -0
- package/dist/Fiber.d.ts +2 -2
- package/dist/Fiber.d.ts.map +1 -1
- package/dist/Fiber.js.map +1 -1
- package/dist/FileSystem.d.ts +1 -1
- package/dist/FileSystem.d.ts.map +1 -1
- package/dist/FileSystem.js +5 -5
- package/dist/FileSystem.js.map +1 -1
- package/dist/Filter.d.ts +30 -34
- package/dist/Filter.d.ts.map +1 -1
- package/dist/Filter.js +15 -13
- package/dist/Filter.js.map +1 -1
- package/dist/Formatter.d.ts +131 -47
- package/dist/Formatter.d.ts.map +1 -1
- package/dist/Formatter.js +229 -51
- package/dist/Formatter.js.map +1 -1
- package/dist/Graph.d.ts +1 -1
- package/dist/Graph.d.ts.map +1 -1
- package/dist/Graph.js +5 -8
- package/dist/Graph.js.map +1 -1
- package/dist/HashMap.d.ts +15 -14
- package/dist/HashMap.d.ts.map +1 -1
- package/dist/HashMap.js +4 -4
- package/dist/HashMap.js.map +1 -1
- package/dist/Iterable.d.ts +40 -39
- package/dist/Iterable.d.ts.map +1 -1
- package/dist/Iterable.js +94 -22
- package/dist/Iterable.js.map +1 -1
- package/dist/JsonSchema.d.ts +299 -10
- package/dist/JsonSchema.d.ts.map +1 -1
- package/dist/JsonSchema.js +323 -4
- package/dist/JsonSchema.js.map +1 -1
- package/dist/Latch.d.ts +109 -0
- package/dist/Latch.d.ts.map +1 -0
- package/dist/Latch.js +72 -0
- package/dist/Latch.js.map +1 -0
- package/dist/Layer.d.ts +9 -9
- package/dist/Layer.d.ts.map +1 -1
- package/dist/Layer.js.map +1 -1
- package/dist/LayerMap.d.ts +4 -4
- package/dist/LayerMap.d.ts.map +1 -1
- package/dist/LogLevel.d.ts +32 -0
- package/dist/LogLevel.d.ts.map +1 -1
- package/dist/LogLevel.js +28 -100
- package/dist/LogLevel.js.map +1 -1
- package/dist/Logger.d.ts +29 -95
- package/dist/Logger.d.ts.map +1 -1
- package/dist/Logger.js +2 -3
- package/dist/Logger.js.map +1 -1
- package/dist/ManagedRuntime.d.ts +1 -1
- package/dist/ManagedRuntime.js +1 -1
- package/dist/Metric.d.ts +2 -2
- package/dist/Metric.d.ts.map +1 -1
- package/dist/Metric.js +1 -1
- package/dist/Metric.js.map +1 -1
- package/dist/Optic.d.ts +947 -18
- package/dist/Optic.d.ts.map +1 -1
- package/dist/Optic.js +454 -5
- package/dist/Optic.js.map +1 -1
- package/dist/Option.d.ts +22 -15
- package/dist/Option.d.ts.map +1 -1
- package/dist/Option.js +14 -7
- package/dist/Option.js.map +1 -1
- package/dist/Pipeable.d.ts +17 -0
- package/dist/Pipeable.d.ts.map +1 -1
- package/dist/Pipeable.js +19 -1
- package/dist/Pipeable.js.map +1 -1
- package/dist/PlatformError.d.ts +10 -9
- package/dist/PlatformError.d.ts.map +1 -1
- package/dist/PlatformError.js +2 -2
- package/dist/PlatformError.js.map +1 -1
- package/dist/Pool.d.ts +6 -4
- package/dist/Pool.d.ts.map +1 -1
- package/dist/Pool.js +7 -5
- package/dist/Pool.js.map +1 -1
- package/dist/PubSub.d.ts +3 -2
- package/dist/PubSub.d.ts.map +1 -1
- package/dist/PubSub.js +3 -2
- package/dist/PubSub.js.map +1 -1
- package/dist/Pull.d.ts.map +1 -1
- package/dist/Pull.js +1 -1
- package/dist/Pull.js.map +1 -1
- package/dist/Queue.d.ts.map +1 -1
- package/dist/Queue.js +0 -1
- package/dist/Queue.js.map +1 -1
- package/dist/Random.d.ts +35 -1
- package/dist/Random.d.ts.map +1 -1
- package/dist/Random.js +46 -12
- 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 +1 -1
- package/dist/RcMap.js.map +1 -1
- package/dist/RcRef.d.ts +1 -1
- package/dist/RcRef.d.ts.map +1 -1
- package/dist/Record.d.ts +24 -120
- package/dist/Record.d.ts.map +1 -1
- package/dist/Record.js +21 -41
- package/dist/Record.js.map +1 -1
- package/dist/Reducer.d.ts +166 -7
- package/dist/Reducer.d.ts.map +1 -1
- package/dist/Reducer.js +135 -1
- package/dist/Reducer.js.map +1 -1
- package/dist/References.d.ts +3 -3
- package/dist/References.d.ts.map +1 -1
- package/dist/Request.d.ts +1 -1
- package/dist/Request.d.ts.map +1 -1
- package/dist/Request.js +2 -1
- package/dist/Request.js.map +1 -1
- package/dist/RequestResolver.d.ts +6 -26
- package/dist/RequestResolver.d.ts.map +1 -1
- package/dist/RequestResolver.js +0 -20
- package/dist/RequestResolver.js.map +1 -1
- package/dist/Result.d.ts +12 -0
- package/dist/Result.d.ts.map +1 -1
- package/dist/Result.js +12 -0
- package/dist/Result.js.map +1 -1
- package/dist/Schedule.d.ts +47 -20
- package/dist/Schedule.d.ts.map +1 -1
- package/dist/Schedule.js +94 -34
- package/dist/Schedule.js.map +1 -1
- package/dist/Schema.d.ts +266 -50
- package/dist/Schema.d.ts.map +1 -1
- package/dist/Schema.js +426 -74
- package/dist/Schema.js.map +1 -1
- package/dist/SchemaAST.d.ts.map +1 -1
- package/dist/SchemaAST.js +7 -6
- package/dist/SchemaAST.js.map +1 -1
- package/dist/SchemaGetter.d.ts +2 -2
- package/dist/SchemaGetter.d.ts.map +1 -1
- package/dist/SchemaGetter.js +12 -14
- package/dist/SchemaGetter.js.map +1 -1
- package/dist/SchemaParser.d.ts +5 -0
- package/dist/SchemaParser.d.ts.map +1 -1
- package/dist/SchemaParser.js +10 -0
- package/dist/SchemaParser.js.map +1 -1
- package/dist/SchemaRepresentation.d.ts +44 -43
- package/dist/SchemaRepresentation.d.ts.map +1 -1
- package/dist/SchemaRepresentation.js +43 -24
- package/dist/SchemaRepresentation.js.map +1 -1
- package/dist/SchemaTransformation.d.ts +107 -3
- package/dist/SchemaTransformation.d.ts.map +1 -1
- package/dist/SchemaTransformation.js +159 -4
- package/dist/SchemaTransformation.js.map +1 -1
- package/dist/ScopedCache.d.ts +2 -2
- package/dist/ScopedCache.d.ts.map +1 -1
- package/dist/ScopedCache.js +1 -1
- package/dist/ScopedCache.js.map +1 -1
- package/dist/Semaphore.d.ts +211 -0
- package/dist/Semaphore.d.ts.map +1 -0
- package/dist/{PartitionedSemaphore.js → Semaphore.js} +97 -13
- package/dist/Semaphore.js.map +1 -0
- package/dist/ServiceMap.d.ts +39 -30
- package/dist/ServiceMap.d.ts.map +1 -1
- package/dist/ServiceMap.js +3 -3
- package/dist/ServiceMap.js.map +1 -1
- package/dist/Sink.d.ts +13 -13
- package/dist/Sink.d.ts.map +1 -1
- package/dist/Sink.js +53 -6
- package/dist/Sink.js.map +1 -1
- package/dist/Stream.d.ts +235 -423
- package/dist/Stream.d.ts.map +1 -1
- package/dist/Stream.js +124 -77
- package/dist/Stream.js.map +1 -1
- package/dist/Struct.d.ts +16 -0
- package/dist/Struct.d.ts.map +1 -1
- package/dist/Struct.js +22 -0
- package/dist/Struct.js.map +1 -1
- package/dist/SubscriptionRef.d.ts +2 -1
- package/dist/SubscriptionRef.d.ts.map +1 -1
- package/dist/SubscriptionRef.js +2 -1
- package/dist/SubscriptionRef.js.map +1 -1
- package/dist/SynchronizedRef.d.ts +2 -1
- package/dist/SynchronizedRef.d.ts.map +1 -1
- package/dist/SynchronizedRef.js +2 -1
- package/dist/SynchronizedRef.js.map +1 -1
- package/dist/Trie.d.ts +18 -17
- package/dist/Trie.d.ts.map +1 -1
- package/dist/Trie.js +5 -5
- package/dist/Trie.js.map +1 -1
- package/dist/TxChunk.d.ts +37 -37
- package/dist/TxChunk.d.ts.map +1 -1
- package/dist/TxChunk.js +3 -3
- package/dist/TxChunk.js.map +1 -1
- package/dist/TxDeferred.d.ts +328 -0
- package/dist/TxDeferred.d.ts.map +1 -0
- package/dist/TxDeferred.js +196 -0
- package/dist/TxDeferred.js.map +1 -0
- package/dist/TxHashMap.d.ts +84 -83
- package/dist/TxHashMap.d.ts.map +1 -1
- package/dist/TxHashMap.js +24 -24
- package/dist/TxHashMap.js.map +1 -1
- package/dist/TxHashSet.d.ts +35 -35
- package/dist/TxHashSet.d.ts.map +1 -1
- package/dist/TxHashSet.js +14 -14
- package/dist/TxHashSet.js.map +1 -1
- package/dist/TxPriorityQueue.d.ts +609 -0
- package/dist/TxPriorityQueue.d.ts.map +1 -0
- package/dist/TxPriorityQueue.js +415 -0
- package/dist/TxPriorityQueue.js.map +1 -0
- package/dist/TxPubSub.d.ts +585 -0
- package/dist/TxPubSub.d.ts.map +1 -0
- package/dist/TxPubSub.js +521 -0
- package/dist/TxPubSub.js.map +1 -0
- package/dist/TxQueue.d.ts +32 -32
- package/dist/TxQueue.d.ts.map +1 -1
- package/dist/TxQueue.js +26 -26
- package/dist/TxQueue.js.map +1 -1
- package/dist/TxReentrantLock.d.ts +523 -0
- package/dist/TxReentrantLock.d.ts.map +1 -0
- package/dist/TxReentrantLock.js +504 -0
- package/dist/TxReentrantLock.js.map +1 -0
- package/dist/TxRef.d.ts +34 -34
- package/dist/TxRef.d.ts.map +1 -1
- package/dist/TxRef.js +21 -14
- package/dist/TxRef.js.map +1 -1
- package/dist/TxSemaphore.d.ts +8 -8
- package/dist/TxSemaphore.d.ts.map +1 -1
- package/dist/TxSemaphore.js +7 -7
- package/dist/TxSemaphore.js.map +1 -1
- package/dist/TxSubscriptionRef.d.ts +508 -0
- package/dist/TxSubscriptionRef.d.ts.map +1 -0
- package/dist/TxSubscriptionRef.js +293 -0
- package/dist/TxSubscriptionRef.js.map +1 -0
- package/dist/Types.d.ts +84 -6
- package/dist/Types.d.ts.map +1 -1
- package/dist/index.d.ts +591 -20
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +591 -20
- package/dist/index.js.map +1 -1
- package/dist/internal/core.js +11 -3
- package/dist/internal/core.js.map +1 -1
- package/dist/internal/dateTime.js +3 -11
- package/dist/internal/dateTime.js.map +1 -1
- package/dist/internal/effect.js +263 -99
- package/dist/internal/effect.js.map +1 -1
- package/dist/internal/hashMap.js +5 -4
- package/dist/internal/hashMap.js.map +1 -1
- package/dist/internal/random.d.ts +2 -0
- package/dist/internal/random.d.ts.map +1 -0
- package/dist/internal/random.js +13 -0
- package/dist/internal/random.js.map +1 -0
- package/dist/internal/rcRef.js +3 -2
- package/dist/internal/rcRef.js.map +1 -1
- package/dist/internal/request.js +2 -2
- package/dist/internal/request.js.map +1 -1
- package/dist/internal/schema/annotations.js +2 -0
- package/dist/internal/schema/annotations.js.map +1 -1
- package/dist/internal/schema/schema.js +1 -0
- package/dist/internal/schema/schema.js.map +1 -1
- package/dist/internal/trie.js +5 -4
- package/dist/internal/trie.js.map +1 -1
- package/dist/testing/TestClock.d.ts +7 -6
- package/dist/testing/TestClock.d.ts.map +1 -1
- package/dist/testing/TestClock.js +6 -4
- package/dist/testing/TestClock.js.map +1 -1
- package/dist/testing/TestSchema.d.ts +8 -8
- package/dist/testing/TestSchema.d.ts.map +1 -1
- package/dist/testing/TestSchema.js.map +1 -1
- package/dist/unstable/ai/AiError.d.ts +128 -48
- package/dist/unstable/ai/AiError.d.ts.map +1 -1
- package/dist/unstable/ai/AiError.js +11 -12
- package/dist/unstable/ai/AiError.js.map +1 -1
- package/dist/unstable/ai/Chat.d.ts +3 -3
- package/dist/unstable/ai/Chat.d.ts.map +1 -1
- package/dist/unstable/ai/Chat.js +4 -3
- package/dist/unstable/ai/Chat.js.map +1 -1
- package/dist/unstable/ai/LanguageModel.d.ts +4 -2
- package/dist/unstable/ai/LanguageModel.d.ts.map +1 -1
- package/dist/unstable/ai/LanguageModel.js +86 -14
- package/dist/unstable/ai/LanguageModel.js.map +1 -1
- package/dist/unstable/ai/McpSchema.d.ts +163 -87
- package/dist/unstable/ai/McpSchema.d.ts.map +1 -1
- package/dist/unstable/ai/McpSchema.js +49 -12
- package/dist/unstable/ai/McpSchema.js.map +1 -1
- package/dist/unstable/ai/McpServer.d.ts +1 -1
- package/dist/unstable/ai/McpServer.d.ts.map +1 -1
- package/dist/unstable/ai/McpServer.js +35 -7
- package/dist/unstable/ai/McpServer.js.map +1 -1
- package/dist/unstable/ai/Model.d.ts +25 -7
- package/dist/unstable/ai/Model.d.ts.map +1 -1
- package/dist/unstable/ai/Model.js +22 -6
- package/dist/unstable/ai/Model.js.map +1 -1
- package/dist/unstable/ai/Prompt.d.ts +20 -20
- package/dist/unstable/ai/Prompt.d.ts.map +1 -1
- package/dist/unstable/ai/Response.d.ts +26 -26
- package/dist/unstable/ai/Response.d.ts.map +1 -1
- package/dist/unstable/ai/Response.js +1 -1
- package/dist/unstable/ai/Response.js.map +1 -1
- package/dist/unstable/ai/Tool.d.ts +19 -3
- package/dist/unstable/ai/Tool.d.ts.map +1 -1
- package/dist/unstable/ai/Tool.js +14 -9
- package/dist/unstable/ai/Tool.js.map +1 -1
- package/dist/unstable/ai/index.d.ts +1 -1
- package/dist/unstable/ai/index.js +1 -1
- package/dist/unstable/cli/CliError.d.ts +5 -5
- package/dist/unstable/cli/CliOutput.js +59 -6
- package/dist/unstable/cli/CliOutput.js.map +1 -1
- package/dist/unstable/cli/Command.d.ts +276 -19
- package/dist/unstable/cli/Command.d.ts.map +1 -1
- package/dist/unstable/cli/Command.js +234 -36
- package/dist/unstable/cli/Command.js.map +1 -1
- package/dist/unstable/cli/GlobalFlag.d.ts +125 -0
- package/dist/unstable/cli/GlobalFlag.d.ts.map +1 -0
- package/dist/unstable/cli/GlobalFlag.js +118 -0
- package/dist/unstable/cli/GlobalFlag.js.map +1 -0
- package/dist/unstable/cli/HelpDoc.d.ts +70 -2
- package/dist/unstable/cli/HelpDoc.d.ts.map +1 -1
- package/dist/unstable/cli/index.d.ts +4 -0
- package/dist/unstable/cli/index.d.ts.map +1 -1
- package/dist/unstable/cli/index.js +4 -0
- package/dist/unstable/cli/index.js.map +1 -1
- package/dist/unstable/cli/internal/command.d.ts +17 -8
- package/dist/unstable/cli/internal/command.d.ts.map +1 -1
- package/dist/unstable/cli/internal/command.js +32 -23
- package/dist/unstable/cli/internal/command.js.map +1 -1
- package/dist/unstable/cli/internal/completions/CommandDescriptor.js +7 -2
- package/dist/unstable/cli/internal/completions/CommandDescriptor.js.map +1 -1
- package/dist/unstable/cli/internal/help.d.ts +33 -0
- package/dist/unstable/cli/internal/help.d.ts.map +1 -0
- package/dist/unstable/cli/internal/help.js +107 -0
- package/dist/unstable/cli/internal/help.js.map +1 -0
- package/dist/unstable/cli/internal/parser.js +29 -36
- package/dist/unstable/cli/internal/parser.js.map +1 -1
- package/dist/unstable/cluster/ClusterCron.d.ts +1 -1
- package/dist/unstable/cluster/ClusterCron.d.ts.map +1 -1
- package/dist/unstable/cluster/ClusterCron.js +1 -1
- package/dist/unstable/cluster/ClusterCron.js.map +1 -1
- package/dist/unstable/cluster/ClusterWorkflowEngine.d.ts.map +1 -1
- package/dist/unstable/cluster/ClusterWorkflowEngine.js +4 -3
- package/dist/unstable/cluster/ClusterWorkflowEngine.js.map +1 -1
- package/dist/unstable/cluster/Entity.d.ts +7 -6
- package/dist/unstable/cluster/Entity.d.ts.map +1 -1
- package/dist/unstable/cluster/Entity.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/Envelope.d.ts +1 -1
- package/dist/unstable/cluster/K8sHttpClient.d.ts +1 -1
- package/dist/unstable/cluster/K8sHttpClient.js +4 -4
- package/dist/unstable/cluster/K8sHttpClient.js.map +1 -1
- package/dist/unstable/cluster/Message.d.ts +10 -10
- package/dist/unstable/cluster/MessageStorage.d.ts.map +1 -1
- package/dist/unstable/cluster/MessageStorage.js +2 -1
- package/dist/unstable/cluster/MessageStorage.js.map +1 -1
- package/dist/unstable/cluster/Reply.d.ts +6 -6
- package/dist/unstable/cluster/Runner.d.ts +1 -1
- package/dist/unstable/cluster/Runners.d.ts.map +1 -1
- package/dist/unstable/cluster/Runners.js +4 -3
- package/dist/unstable/cluster/Runners.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 +9 -7
- package/dist/unstable/cluster/Sharding.js.map +1 -1
- package/dist/unstable/cluster/ShardingConfig.d.ts +21 -21
- package/dist/unstable/cluster/ShardingConfig.d.ts.map +1 -1
- package/dist/unstable/cluster/ShardingConfig.js +20 -20
- package/dist/unstable/cluster/ShardingConfig.js.map +1 -1
- package/dist/unstable/cluster/SqlRunnerStorage.js +1 -1
- package/dist/unstable/cluster/SqlRunnerStorage.js.map +1 -1
- package/dist/unstable/cluster/internal/entityManager.js +5 -4
- package/dist/unstable/cluster/internal/entityManager.js.map +1 -1
- package/dist/unstable/cluster/internal/entityReaper.js +2 -1
- package/dist/unstable/cluster/internal/entityReaper.js.map +1 -1
- package/dist/unstable/cluster/internal/resourceRef.js +2 -1
- package/dist/unstable/cluster/internal/resourceRef.js.map +1 -1
- package/dist/unstable/devtools/DevToolsSchema.d.ts +36 -36
- package/dist/unstable/encoding/Msgpack.d.ts +1 -1
- package/dist/unstable/encoding/Ndjson.d.ts +1 -1
- package/dist/unstable/encoding/Sse.d.ts +4 -4
- package/dist/unstable/encoding/Sse.d.ts.map +1 -1
- package/dist/unstable/encoding/Sse.js +1 -1
- package/dist/unstable/encoding/Sse.js.map +1 -1
- package/dist/unstable/eventlog/EventJournal.d.ts +2 -2
- package/dist/unstable/eventlog/EventLog.d.ts.map +1 -1
- package/dist/unstable/eventlog/EventLog.js +2 -1
- package/dist/unstable/eventlog/EventLog.js.map +1 -1
- package/dist/unstable/eventlog/EventLogRemote.d.ts +6 -6
- package/dist/unstable/http/Cookies.d.ts +3 -3
- package/dist/unstable/http/Cookies.d.ts.map +1 -1
- package/dist/unstable/http/Cookies.js +2 -2
- package/dist/unstable/http/Cookies.js.map +1 -1
- package/dist/unstable/http/Headers.d.ts.map +1 -1
- package/dist/unstable/http/Headers.js +27 -10
- package/dist/unstable/http/Headers.js.map +1 -1
- package/dist/unstable/http/HttpBody.d.ts +17 -2
- package/dist/unstable/http/HttpBody.d.ts.map +1 -1
- package/dist/unstable/http/HttpBody.js +28 -1
- package/dist/unstable/http/HttpBody.js.map +1 -1
- package/dist/unstable/http/HttpClient.d.ts +37 -13
- package/dist/unstable/http/HttpClient.d.ts.map +1 -1
- package/dist/unstable/http/HttpClient.js +4 -4
- package/dist/unstable/http/HttpClient.js.map +1 -1
- package/dist/unstable/http/HttpClientError.d.ts +7 -7
- package/dist/unstable/http/HttpClientRequest.d.ts +27 -11
- package/dist/unstable/http/HttpClientRequest.d.ts.map +1 -1
- package/dist/unstable/http/HttpClientRequest.js +15 -3
- package/dist/unstable/http/HttpClientRequest.js.map +1 -1
- package/dist/unstable/http/HttpEffect.d.ts +3 -8
- package/dist/unstable/http/HttpEffect.d.ts.map +1 -1
- package/dist/unstable/http/HttpEffect.js +42 -56
- package/dist/unstable/http/HttpEffect.js.map +1 -1
- package/dist/unstable/http/HttpMethod.d.ts +4 -4
- package/dist/unstable/http/HttpMethod.d.ts.map +1 -1
- package/dist/unstable/http/HttpMethod.js +3 -3
- package/dist/unstable/http/HttpMethod.js.map +1 -1
- package/dist/unstable/http/HttpMiddleware.d.ts +1 -6
- package/dist/unstable/http/HttpMiddleware.d.ts.map +1 -1
- package/dist/unstable/http/HttpMiddleware.js +8 -17
- package/dist/unstable/http/HttpMiddleware.js.map +1 -1
- package/dist/unstable/http/HttpServerError.d.ts +20 -33
- package/dist/unstable/http/HttpServerError.d.ts.map +1 -1
- package/dist/unstable/http/HttpServerError.js +37 -44
- package/dist/unstable/http/HttpServerError.js.map +1 -1
- package/dist/unstable/http/HttpServerRequest.d.ts +1 -1
- package/dist/unstable/http/HttpServerRequest.d.ts.map +1 -1
- package/dist/unstable/http/HttpServerRespondable.d.ts +2 -2
- package/dist/unstable/http/HttpServerRespondable.d.ts.map +1 -1
- package/dist/unstable/http/HttpServerRespondable.js +5 -5
- package/dist/unstable/http/HttpServerRespondable.js.map +1 -1
- package/dist/unstable/http/HttpServerResponse.d.ts +2 -1
- package/dist/unstable/http/HttpServerResponse.d.ts.map +1 -1
- package/dist/unstable/http/HttpServerResponse.js +3 -1
- package/dist/unstable/http/HttpServerResponse.js.map +1 -1
- package/dist/unstable/http/Multipart.d.ts +3 -3
- package/dist/unstable/http/UrlParams.d.ts +14 -6
- package/dist/unstable/http/UrlParams.d.ts.map +1 -1
- package/dist/unstable/http/UrlParams.js +1 -1
- package/dist/unstable/http/UrlParams.js.map +1 -1
- package/dist/unstable/http/internal/preResponseHandler.d.ts +2 -0
- package/dist/unstable/http/internal/preResponseHandler.d.ts.map +1 -0
- package/dist/unstable/http/internal/preResponseHandler.js +10 -0
- package/dist/unstable/http/internal/preResponseHandler.js.map +1 -0
- package/dist/unstable/httpapi/HttpApi.d.ts +3 -3
- package/dist/unstable/httpapi/HttpApi.d.ts.map +1 -1
- package/dist/unstable/httpapi/HttpApi.js.map +1 -1
- package/dist/unstable/httpapi/HttpApiBuilder.d.ts +11 -5
- package/dist/unstable/httpapi/HttpApiBuilder.d.ts.map +1 -1
- package/dist/unstable/httpapi/HttpApiBuilder.js +23 -12
- package/dist/unstable/httpapi/HttpApiBuilder.js.map +1 -1
- package/dist/unstable/httpapi/HttpApiClient.d.ts +7 -2
- package/dist/unstable/httpapi/HttpApiClient.d.ts.map +1 -1
- package/dist/unstable/httpapi/HttpApiClient.js +3 -3
- package/dist/unstable/httpapi/HttpApiClient.js.map +1 -1
- package/dist/unstable/httpapi/HttpApiEndpoint.d.ts +31 -44
- package/dist/unstable/httpapi/HttpApiEndpoint.d.ts.map +1 -1
- package/dist/unstable/httpapi/HttpApiEndpoint.js +15 -24
- package/dist/unstable/httpapi/HttpApiEndpoint.js.map +1 -1
- package/dist/unstable/httpapi/HttpApiError.d.ts +11 -0
- package/dist/unstable/httpapi/HttpApiError.d.ts.map +1 -1
- package/dist/unstable/httpapi/HttpApiError.js +29 -9
- package/dist/unstable/httpapi/HttpApiError.js.map +1 -1
- package/dist/unstable/httpapi/HttpApiGroup.d.ts +3 -3
- package/dist/unstable/httpapi/HttpApiGroup.d.ts.map +1 -1
- package/dist/unstable/httpapi/HttpApiGroup.js.map +1 -1
- package/dist/unstable/httpapi/HttpApiMiddleware.d.ts +4 -4
- package/dist/unstable/httpapi/HttpApiMiddleware.d.ts.map +1 -1
- package/dist/unstable/httpapi/HttpApiMiddleware.js.map +1 -1
- package/dist/unstable/httpapi/HttpApiScalar.d.ts +6 -0
- package/dist/unstable/httpapi/HttpApiScalar.d.ts.map +1 -1
- package/dist/unstable/httpapi/HttpApiScalar.js.map +1 -1
- package/dist/unstable/httpapi/HttpApiSecurity.d.ts +2 -2
- package/dist/unstable/httpapi/HttpApiSecurity.d.ts.map +1 -1
- package/dist/unstable/httpapi/HttpApiSecurity.js.map +1 -1
- package/dist/unstable/httpapi/OpenApi.d.ts.map +1 -1
- package/dist/unstable/httpapi/OpenApi.js +32 -21
- package/dist/unstable/httpapi/OpenApi.js.map +1 -1
- package/dist/unstable/observability/Otlp.d.ts +12 -12
- package/dist/unstable/observability/Otlp.d.ts.map +1 -1
- package/dist/unstable/observability/OtlpExporter.d.ts +2 -2
- package/dist/unstable/observability/OtlpExporter.d.ts.map +1 -1
- package/dist/unstable/observability/OtlpExporter.js +1 -1
- package/dist/unstable/observability/OtlpExporter.js.map +1 -1
- package/dist/unstable/observability/OtlpLogger.d.ts +4 -4
- package/dist/unstable/observability/OtlpLogger.d.ts.map +1 -1
- package/dist/unstable/observability/OtlpLogger.js +7 -4
- package/dist/unstable/observability/OtlpLogger.js.map +1 -1
- package/dist/unstable/observability/OtlpMetrics.d.ts +4 -4
- package/dist/unstable/observability/OtlpMetrics.d.ts.map +1 -1
- package/dist/unstable/observability/OtlpTracer.d.ts +4 -4
- package/dist/unstable/observability/OtlpTracer.d.ts.map +1 -1
- package/dist/unstable/persistence/KeyValueStore.d.ts +1 -1
- package/dist/unstable/persistence/KeyValueStore.js +6 -6
- package/dist/unstable/persistence/KeyValueStore.js.map +1 -1
- package/dist/unstable/persistence/Persistable.d.ts +2 -2
- package/dist/unstable/persistence/Persistable.d.ts.map +1 -1
- package/dist/unstable/persistence/PersistedCache.d.ts +6 -5
- package/dist/unstable/persistence/PersistedCache.d.ts.map +1 -1
- package/dist/unstable/persistence/PersistedCache.js +2 -1
- package/dist/unstable/persistence/PersistedCache.js.map +1 -1
- package/dist/unstable/persistence/PersistedQueue.d.ts +12 -12
- package/dist/unstable/persistence/PersistedQueue.d.ts.map +1 -1
- package/dist/unstable/persistence/PersistedQueue.js +12 -11
- package/dist/unstable/persistence/PersistedQueue.js.map +1 -1
- package/dist/unstable/persistence/Persistence.d.ts +1 -1
- package/dist/unstable/persistence/Persistence.d.ts.map +1 -1
- package/dist/unstable/persistence/Persistence.js +2 -2
- package/dist/unstable/persistence/Persistence.js.map +1 -1
- package/dist/unstable/persistence/RateLimiter.d.ts +3 -3
- package/dist/unstable/persistence/RateLimiter.d.ts.map +1 -1
- package/dist/unstable/persistence/RateLimiter.js +1 -1
- package/dist/unstable/persistence/RateLimiter.js.map +1 -1
- package/dist/unstable/process/ChildProcess.d.ts +5 -128
- package/dist/unstable/process/ChildProcess.d.ts.map +1 -1
- package/dist/unstable/process/ChildProcess.js +1 -65
- package/dist/unstable/process/ChildProcess.js.map +1 -1
- package/dist/unstable/process/ChildProcessSpawner.d.ts +45 -7
- package/dist/unstable/process/ChildProcessSpawner.d.ts.map +1 -1
- package/dist/unstable/process/ChildProcessSpawner.js +21 -1
- package/dist/unstable/process/ChildProcessSpawner.js.map +1 -1
- package/dist/unstable/reactivity/Atom.d.ts +10 -10
- package/dist/unstable/reactivity/Atom.d.ts.map +1 -1
- package/dist/unstable/reactivity/Atom.js +16 -13
- package/dist/unstable/reactivity/Atom.js.map +1 -1
- package/dist/unstable/reactivity/AtomHttpApi.d.ts +8 -8
- package/dist/unstable/reactivity/AtomHttpApi.d.ts.map +1 -1
- package/dist/unstable/reactivity/AtomHttpApi.js +3 -3
- package/dist/unstable/reactivity/AtomHttpApi.js.map +1 -1
- package/dist/unstable/reactivity/AtomRegistry.d.ts +6 -0
- package/dist/unstable/reactivity/AtomRegistry.d.ts.map +1 -1
- package/dist/unstable/reactivity/AtomRegistry.js +24 -7
- package/dist/unstable/reactivity/AtomRegistry.js.map +1 -1
- package/dist/unstable/reactivity/AtomRpc.d.ts +1 -1
- package/dist/unstable/reactivity/AtomRpc.d.ts.map +1 -1
- package/dist/unstable/reactivity/AtomRpc.js +1 -1
- package/dist/unstable/reactivity/AtomRpc.js.map +1 -1
- package/dist/unstable/reactivity/Hydration.d.ts +39 -0
- package/dist/unstable/reactivity/Hydration.d.ts.map +1 -0
- package/dist/unstable/reactivity/Hydration.js +76 -0
- package/dist/unstable/reactivity/Hydration.js.map +1 -0
- package/dist/unstable/reactivity/index.d.ts +4 -0
- package/dist/unstable/reactivity/index.d.ts.map +1 -1
- package/dist/unstable/reactivity/index.js +4 -0
- package/dist/unstable/reactivity/index.js.map +1 -1
- package/dist/unstable/rpc/Rpc.d.ts +4 -4
- package/dist/unstable/rpc/Rpc.d.ts.map +1 -1
- package/dist/unstable/rpc/Rpc.js.map +1 -1
- package/dist/unstable/rpc/RpcClient.d.ts +5 -26
- package/dist/unstable/rpc/RpcClient.d.ts.map +1 -1
- package/dist/unstable/rpc/RpcClient.js +6 -13
- package/dist/unstable/rpc/RpcClient.js.map +1 -1
- package/dist/unstable/rpc/RpcGroup.d.ts +2 -2
- package/dist/unstable/rpc/RpcGroup.d.ts.map +1 -1
- package/dist/unstable/rpc/RpcGroup.js.map +1 -1
- package/dist/unstable/rpc/RpcMiddleware.d.ts +3 -3
- package/dist/unstable/rpc/RpcMiddleware.d.ts.map +1 -1
- package/dist/unstable/rpc/RpcMiddleware.js.map +1 -1
- package/dist/unstable/rpc/RpcSchema.d.ts +13 -0
- package/dist/unstable/rpc/RpcSchema.d.ts.map +1 -1
- package/dist/unstable/rpc/RpcSchema.js +14 -0
- package/dist/unstable/rpc/RpcSchema.js.map +1 -1
- package/dist/unstable/rpc/RpcSerialization.d.ts.map +1 -1
- package/dist/unstable/rpc/RpcSerialization.js +34 -9
- package/dist/unstable/rpc/RpcSerialization.js.map +1 -1
- package/dist/unstable/rpc/RpcServer.d.ts +0 -7
- package/dist/unstable/rpc/RpcServer.d.ts.map +1 -1
- package/dist/unstable/rpc/RpcServer.js +15 -15
- package/dist/unstable/rpc/RpcServer.js.map +1 -1
- package/dist/unstable/rpc/Utils.d.ts.map +1 -1
- package/dist/unstable/rpc/Utils.js +2 -1
- package/dist/unstable/rpc/Utils.js.map +1 -1
- package/dist/unstable/schema/Model.d.ts +1 -1
- package/dist/unstable/schema/Model.d.ts.map +1 -1
- package/dist/unstable/schema/VariantSchema.d.ts +3 -3
- package/dist/unstable/schema/VariantSchema.d.ts.map +1 -1
- package/dist/unstable/schema/VariantSchema.js +3 -3
- package/dist/unstable/schema/VariantSchema.js.map +1 -1
- package/dist/unstable/socket/Socket.d.ts +4 -4
- package/dist/unstable/socket/Socket.d.ts.map +1 -1
- package/dist/unstable/socket/Socket.js +6 -5
- package/dist/unstable/socket/Socket.js.map +1 -1
- package/dist/unstable/socket/SocketServer.d.ts +3 -3
- package/dist/unstable/sql/Migrator.d.ts +1 -1
- package/dist/unstable/sql/SqlClient.d.ts +1 -1
- package/dist/unstable/sql/SqlClient.d.ts.map +1 -1
- package/dist/unstable/sql/SqlError.d.ts +14 -14
- package/dist/unstable/sql/SqlError.d.ts.map +1 -1
- package/dist/unstable/sql/SqlError.js +9 -3
- package/dist/unstable/sql/SqlError.js.map +1 -1
- package/dist/unstable/sql/SqlModel.d.ts +2 -2
- package/dist/unstable/sql/SqlModel.d.ts.map +1 -1
- package/dist/unstable/sql/SqlModel.js +3 -3
- package/dist/unstable/sql/SqlModel.js.map +1 -1
- package/dist/unstable/sql/SqlSchema.d.ts +16 -5
- package/dist/unstable/sql/SqlSchema.d.ts.map +1 -1
- package/dist/unstable/sql/SqlSchema.js +17 -7
- package/dist/unstable/sql/SqlSchema.js.map +1 -1
- package/dist/unstable/sql/Statement.js +0 -1
- package/dist/unstable/sql/Statement.js.map +1 -1
- package/dist/unstable/workers/Worker.d.ts.map +1 -1
- package/dist/unstable/workers/Worker.js +2 -1
- package/dist/unstable/workers/Worker.js.map +1 -1
- package/dist/unstable/workflow/DurableClock.d.ts +3 -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.js +2 -2
- package/dist/unstable/workflow/DurableDeferred.js.map +1 -1
- package/dist/unstable/workflow/Workflow.d.ts +3 -3
- package/dist/unstable/workflow/Workflow.d.ts.map +1 -1
- package/dist/unstable/workflow/Workflow.js +1 -1
- package/dist/unstable/workflow/Workflow.js.map +1 -1
- package/dist/unstable/workflow/WorkflowEngine.d.ts +12 -1
- package/dist/unstable/workflow/WorkflowEngine.d.ts.map +1 -1
- package/dist/unstable/workflow/WorkflowEngine.js +137 -1
- package/dist/unstable/workflow/WorkflowEngine.js.map +1 -1
- package/package.json +2 -2
- package/src/Array.ts +190 -342
- package/src/Cache.ts +9 -8
- package/src/Cause.ts +1 -1
- package/src/Channel.ts +554 -138
- package/src/Chunk.ts +81 -268
- package/src/Combiner.ts +280 -13
- package/src/Config.ts +183 -21
- package/src/Data.ts +538 -374
- package/src/DateTime.ts +24 -164
- package/src/Duration.ts +15 -15
- package/src/Effect.ts +991 -800
- package/src/Encoding.ts +879 -0
- package/src/Equal.ts +278 -111
- package/src/ErrorReporter.ts +459 -0
- package/src/Fiber.ts +9 -2
- package/src/FileSystem.ts +7 -8
- package/src/Filter.ts +48 -58
- package/src/Formatter.ts +253 -51
- package/src/Graph.ts +24 -11
- package/src/HashMap.ts +15 -14
- package/src/Iterable.ts +105 -50
- package/src/JsonSchema.ts +383 -10
- package/src/Latch.ts +112 -0
- package/src/Layer.ts +11 -15
- package/src/LayerMap.ts +5 -5
- package/src/LogLevel.ts +37 -0
- package/src/Logger.ts +33 -100
- package/src/ManagedRuntime.ts +1 -1
- package/src/Metric.ts +4 -4
- package/src/Optic.ts +948 -19
- package/src/Option.ts +30 -20
- package/src/Pipeable.ts +32 -1
- package/src/PlatformError.ts +5 -5
- package/src/Pool.ts +13 -11
- package/src/PubSub.ts +10 -9
- package/src/Pull.ts +1 -1
- package/src/Queue.ts +0 -1
- package/src/Random.ts +51 -14
- package/src/RcMap.ts +5 -5
- package/src/RcRef.ts +1 -1
- package/src/Record.ts +43 -152
- package/src/Reducer.ts +166 -7
- package/src/References.ts +4 -4
- package/src/Request.ts +3 -2
- package/src/RequestResolver.ts +9 -29
- package/src/Result.ts +13 -0
- package/src/Schedule.ts +318 -160
- package/src/Schema.ts +661 -116
- package/src/SchemaAST.ts +7 -6
- package/src/SchemaGetter.ts +12 -14
- package/src/SchemaParser.ts +11 -0
- package/src/SchemaRepresentation.ts +43 -24
- package/src/SchemaTransformation.ts +189 -4
- package/src/ScopedCache.ts +3 -3
- package/src/Semaphore.ts +356 -0
- package/src/ServiceMap.ts +47 -38
- package/src/Sink.ts +78 -26
- package/src/Stream.ts +566 -601
- package/src/Struct.ts +26 -0
- package/src/SubscriptionRef.ts +3 -2
- package/src/SynchronizedRef.ts +3 -2
- package/src/Trie.ts +18 -17
- package/src/TxChunk.ts +72 -53
- package/src/TxDeferred.ts +394 -0
- package/src/TxHashMap.ts +332 -285
- package/src/TxHashSet.ts +111 -116
- package/src/TxPriorityQueue.ts +767 -0
- package/src/TxPubSub.ts +789 -0
- package/src/TxQueue.ts +241 -251
- package/src/TxReentrantLock.ts +753 -0
- package/src/TxRef.ts +50 -38
- package/src/TxSemaphore.ts +29 -32
- package/src/TxSubscriptionRef.ts +639 -0
- package/src/Types.ts +78 -2
- package/src/index.ts +600 -21
- package/src/internal/core.ts +12 -5
- package/src/internal/dateTime.ts +9 -30
- package/src/internal/effect.ts +744 -265
- package/src/internal/hashMap.ts +9 -7
- package/src/internal/random.ts +20 -0
- package/src/internal/rcRef.ts +4 -3
- package/src/internal/request.ts +2 -2
- package/src/internal/schema/annotations.ts +2 -0
- package/src/internal/schema/schema.ts +1 -0
- package/src/internal/trie.ts +16 -9
- package/src/testing/TestClock.ts +13 -11
- package/src/testing/TestSchema.ts +10 -10
- package/src/unstable/ai/AiError.ts +97 -44
- package/src/unstable/ai/Chat.ts +12 -11
- package/src/unstable/ai/LanguageModel.ts +129 -25
- package/src/unstable/ai/McpSchema.ts +59 -13
- package/src/unstable/ai/McpServer.ts +48 -9
- package/src/unstable/ai/Model.ts +40 -9
- package/src/unstable/ai/Prompt.ts +37 -37
- package/src/unstable/ai/Response.ts +25 -25
- package/src/unstable/ai/Tool.ts +19 -13
- package/src/unstable/ai/index.ts +1 -1
- package/src/unstable/cli/CliOutput.ts +75 -6
- package/src/unstable/cli/Command.ts +501 -60
- package/src/unstable/cli/GlobalFlag.ts +243 -0
- package/src/unstable/cli/HelpDoc.ts +80 -2
- package/src/unstable/cli/index.ts +5 -0
- package/src/unstable/cli/internal/command.ts +50 -34
- package/src/unstable/cli/internal/completions/CommandDescriptor.ts +7 -2
- package/src/unstable/cli/internal/help.ts +146 -0
- package/src/unstable/cli/internal/parser.ts +33 -54
- package/src/unstable/cluster/ClusterCron.ts +2 -2
- package/src/unstable/cluster/ClusterWorkflowEngine.ts +5 -4
- package/src/unstable/cluster/Entity.ts +11 -10
- package/src/unstable/cluster/EntityResource.ts +4 -4
- package/src/unstable/cluster/Envelope.ts +1 -1
- package/src/unstable/cluster/K8sHttpClient.ts +5 -5
- package/src/unstable/cluster/MessageStorage.ts +3 -5
- package/src/unstable/cluster/Runners.ts +6 -5
- package/src/unstable/cluster/Sharding.ts +12 -10
- package/src/unstable/cluster/ShardingConfig.ts +30 -31
- package/src/unstable/cluster/SqlRunnerStorage.ts +1 -1
- package/src/unstable/cluster/internal/entityManager.ts +9 -8
- package/src/unstable/cluster/internal/entityReaper.ts +2 -1
- package/src/unstable/cluster/internal/resourceRef.ts +2 -1
- package/src/unstable/encoding/Sse.ts +3 -5
- package/src/unstable/eventlog/EventLog.ts +2 -1
- package/src/unstable/http/Cookies.ts +3 -3
- package/src/unstable/http/Headers.ts +28 -13
- package/src/unstable/http/HttpBody.ts +42 -1
- package/src/unstable/http/HttpClient.ts +58 -23
- package/src/unstable/http/HttpClientRequest.ts +38 -13
- package/src/unstable/http/HttpEffect.ts +46 -68
- package/src/unstable/http/HttpMethod.ts +16 -4
- package/src/unstable/http/HttpMiddleware.ts +9 -24
- package/src/unstable/http/HttpServerError.ts +42 -45
- package/src/unstable/http/HttpServerRequest.ts +1 -1
- package/src/unstable/http/HttpServerRespondable.ts +6 -6
- package/src/unstable/http/HttpServerResponse.ts +4 -2
- package/src/unstable/http/Multipart.ts +2 -2
- package/src/unstable/http/UrlParams.ts +20 -5
- package/src/unstable/http/internal/preResponseHandler.ts +15 -0
- package/src/unstable/httpapi/HttpApi.ts +5 -5
- package/src/unstable/httpapi/HttpApiBuilder.ts +77 -21
- package/src/unstable/httpapi/HttpApiClient.ts +14 -6
- package/src/unstable/httpapi/HttpApiEndpoint.ts +67 -83
- package/src/unstable/httpapi/HttpApiError.ts +30 -9
- package/src/unstable/httpapi/HttpApiGroup.ts +6 -6
- package/src/unstable/httpapi/HttpApiMiddleware.ts +4 -4
- package/src/unstable/httpapi/HttpApiScalar.ts +6 -0
- package/src/unstable/httpapi/HttpApiSecurity.ts +3 -3
- package/src/unstable/httpapi/OpenApi.ts +41 -23
- package/src/unstable/observability/Otlp.ts +12 -12
- package/src/unstable/observability/OtlpExporter.ts +3 -3
- package/src/unstable/observability/OtlpLogger.ts +13 -9
- package/src/unstable/observability/OtlpMetrics.ts +4 -4
- package/src/unstable/observability/OtlpTracer.ts +4 -4
- package/src/unstable/persistence/KeyValueStore.ts +6 -6
- package/src/unstable/persistence/Persistable.ts +2 -2
- package/src/unstable/persistence/PersistedCache.ts +20 -9
- package/src/unstable/persistence/PersistedQueue.ts +25 -24
- package/src/unstable/persistence/Persistence.ts +3 -3
- package/src/unstable/persistence/RateLimiter.ts +4 -4
- package/src/unstable/process/ChildProcess.ts +6 -208
- package/src/unstable/process/ChildProcessSpawner.ts +75 -14
- package/src/unstable/reactivity/Atom.ts +27 -25
- package/src/unstable/reactivity/AtomHttpApi.ts +21 -20
- package/src/unstable/reactivity/AtomRegistry.ts +31 -7
- package/src/unstable/reactivity/AtomRpc.ts +3 -3
- package/src/unstable/reactivity/Hydration.ts +112 -0
- package/src/unstable/reactivity/index.ts +5 -0
- package/src/unstable/rpc/Rpc.ts +6 -6
- package/src/unstable/rpc/RpcClient.ts +12 -54
- package/src/unstable/rpc/RpcGroup.ts +4 -4
- package/src/unstable/rpc/RpcMiddleware.ts +3 -3
- package/src/unstable/rpc/RpcSchema.ts +17 -0
- package/src/unstable/rpc/RpcSerialization.ts +44 -9
- package/src/unstable/rpc/RpcServer.ts +21 -30
- package/src/unstable/rpc/Utils.ts +2 -1
- package/src/unstable/schema/VariantSchema.ts +6 -6
- package/src/unstable/socket/Socket.ts +16 -17
- package/src/unstable/sql/SqlClient.ts +1 -1
- package/src/unstable/sql/SqlError.ts +11 -9
- package/src/unstable/sql/SqlModel.ts +5 -5
- package/src/unstable/sql/SqlSchema.ts +41 -25
- package/src/unstable/sql/Statement.ts +0 -1
- package/src/unstable/workers/Worker.ts +2 -1
- package/src/unstable/workflow/DurableClock.ts +8 -8
- package/src/unstable/workflow/DurableDeferred.ts +2 -2
- package/src/unstable/workflow/Workflow.ts +6 -2
- package/src/unstable/workflow/WorkflowEngine.ts +185 -2
- package/dist/PartitionedSemaphore.d.ts +0 -52
- package/dist/PartitionedSemaphore.d.ts.map +0 -1
- package/dist/PartitionedSemaphore.js.map +0 -1
- package/dist/encoding/Base64.d.ts +0 -67
- package/dist/encoding/Base64.d.ts.map +0 -1
- package/dist/encoding/Base64.js +0 -146
- package/dist/encoding/Base64.js.map +0 -1
- package/dist/encoding/Base64Url.d.ts +0 -60
- package/dist/encoding/Base64Url.d.ts.map +0 -1
- package/dist/encoding/Base64Url.js +0 -89
- package/dist/encoding/Base64Url.js.map +0 -1
- package/dist/encoding/EncodingError.d.ts +0 -31
- package/dist/encoding/EncodingError.d.ts.map +0 -1
- package/dist/encoding/EncodingError.js +0 -22
- package/dist/encoding/EncodingError.js.map +0 -1
- package/dist/encoding/Hex.d.ts +0 -61
- package/dist/encoding/Hex.d.ts.map +0 -1
- package/dist/encoding/Hex.js +0 -115
- package/dist/encoding/Hex.js.map +0 -1
- package/dist/encoding/index.d.ts +0 -26
- package/dist/encoding/index.d.ts.map +0 -1
- package/dist/encoding/index.js +0 -27
- package/dist/encoding/index.js.map +0 -1
- package/dist/unstable/cli/internal/builtInFlags.d.ts +0 -7
- package/dist/unstable/cli/internal/builtInFlags.d.ts.map +0 -1
- package/dist/unstable/cli/internal/builtInFlags.js +0 -44
- package/dist/unstable/cli/internal/builtInFlags.js.map +0 -1
- package/src/PartitionedSemaphore.ts +0 -182
- package/src/encoding/Base64.ts +0 -366
- package/src/encoding/Base64Url.ts +0 -104
- package/src/encoding/EncodingError.ts +0 -35
- package/src/encoding/Hex.ts +0 -390
- package/src/encoding/index.ts +0 -31
- package/src/unstable/cli/internal/builtInFlags.ts +0 -78
package/src/Combiner.ts
CHANGED
|
@@ -1,16 +1,92 @@
|
|
|
1
1
|
/**
|
|
2
|
+
* A module for combining two values of the same type into one.
|
|
3
|
+
*
|
|
4
|
+
* A `Combiner<A>` wraps a single binary function `(self: A, that: A) => A`.
|
|
5
|
+
* It describes *how* two values merge but carries no initial/empty value
|
|
6
|
+
* (for that, see {@link Reducer} which extends `Combiner` with an
|
|
7
|
+
* `initialValue`).
|
|
8
|
+
*
|
|
9
|
+
* ## Mental model
|
|
10
|
+
*
|
|
11
|
+
* - **Combiner** – an object with a `combine(self, that)` method that returns
|
|
12
|
+
* a value of the same type.
|
|
13
|
+
* - **Argument order** – `self` is the "left" / accumulator side, `that` is
|
|
14
|
+
* the "right" / incoming side.
|
|
15
|
+
* - **No identity element** – unlike a monoid, a `Combiner` does not require
|
|
16
|
+
* a neutral element. Use {@link Reducer} when you need one.
|
|
17
|
+
* - **Purity** – all combiners produced by this module are pure; they never
|
|
18
|
+
* mutate their arguments.
|
|
19
|
+
* - **Composability** – combiners can be lifted into `Option`, `Struct`,
|
|
20
|
+
* `Tuple`, and other container types via helpers in those modules.
|
|
21
|
+
*
|
|
22
|
+
* ## Common tasks
|
|
23
|
+
*
|
|
24
|
+
* - Create a combiner from any binary function → {@link make}
|
|
25
|
+
* - Swap argument order → {@link flip}
|
|
26
|
+
* - Pick the smaller / larger of two values → {@link min} / {@link max}
|
|
27
|
+
* - Always keep the first or last value → {@link first} / {@link last}
|
|
28
|
+
* - Ignore both values and return a fixed result → {@link constant}
|
|
29
|
+
* - Insert a separator between combined values → {@link intercalate}
|
|
30
|
+
*
|
|
31
|
+
* ## Gotchas
|
|
32
|
+
*
|
|
33
|
+
* - `min` and `max` require an `Order<A>`, not a raw comparator. Import from
|
|
34
|
+
* e.g. `Number.Order` or `String.Order`.
|
|
35
|
+
* - `intercalate` is curried: call it with the separator first, then pass the
|
|
36
|
+
* base combiner.
|
|
37
|
+
* - A `Reducer` (which adds `initialValue`) is also a valid `Combiner` — you
|
|
38
|
+
* can pass a `Reducer` anywhere a `Combiner` is expected.
|
|
39
|
+
*
|
|
40
|
+
* ## Quickstart
|
|
41
|
+
*
|
|
42
|
+
* **Example** (combining strings with a separator)
|
|
43
|
+
*
|
|
44
|
+
* ```ts
|
|
45
|
+
* import { Combiner, String } from "effect"
|
|
46
|
+
*
|
|
47
|
+
* const csv = Combiner.intercalate(",")(String.ReducerConcat)
|
|
48
|
+
*
|
|
49
|
+
* console.log(csv.combine("a", "b"))
|
|
50
|
+
* // Output: "a,b"
|
|
51
|
+
*
|
|
52
|
+
* console.log(csv.combine(csv.combine("a", "b"), "c"))
|
|
53
|
+
* // Output: "a,b,c"
|
|
54
|
+
* ```
|
|
55
|
+
*
|
|
56
|
+
* ## See also
|
|
57
|
+
*
|
|
58
|
+
* - {@link make} – the primary constructor
|
|
59
|
+
* - {@link Combiner} – the core interface
|
|
60
|
+
*
|
|
2
61
|
* @since 4.0.0
|
|
3
62
|
*/
|
|
4
63
|
import type * as Order from "./Order.ts"
|
|
5
64
|
|
|
6
65
|
/**
|
|
7
|
-
*
|
|
8
|
-
*
|
|
66
|
+
* Represents a strategy for combining two values of the same type `A`.
|
|
67
|
+
*
|
|
68
|
+
* A `Combiner` contains a single `combine` method that takes two values and
|
|
69
|
+
* returns a merged result. It does not include an identity/empty value; use
|
|
70
|
+
* `Reducer` when you need one.
|
|
71
|
+
*
|
|
72
|
+
* When to use:
|
|
73
|
+
* - You need to describe how two values of the same type merge.
|
|
74
|
+
* - You want to pass a reusable combining strategy to library functions like
|
|
75
|
+
* `Struct.makeCombiner` or `Option.makeCombinerFailFast`.
|
|
76
|
+
* - You are building a `Reducer` and need to define the combining step first.
|
|
77
|
+
*
|
|
78
|
+
* **Example** (number addition combiner)
|
|
79
|
+
*
|
|
80
|
+
* ```ts
|
|
81
|
+
* import { Combiner } from "effect"
|
|
82
|
+
*
|
|
83
|
+
* const Sum = Combiner.make<number>((self, that) => self + that)
|
|
9
84
|
*
|
|
10
|
-
*
|
|
11
|
-
*
|
|
12
|
-
*
|
|
13
|
-
*
|
|
85
|
+
* console.log(Sum.combine(3, 4))
|
|
86
|
+
* // Output: 7
|
|
87
|
+
* ```
|
|
88
|
+
*
|
|
89
|
+
* @see {@link make} – create a `Combiner` from a function
|
|
14
90
|
*
|
|
15
91
|
* @category model
|
|
16
92
|
* @since 4.0.0
|
|
@@ -23,7 +99,29 @@ export interface Combiner<A> {
|
|
|
23
99
|
}
|
|
24
100
|
|
|
25
101
|
/**
|
|
26
|
-
* Creates a `Combiner` from a
|
|
102
|
+
* Creates a `Combiner` from a binary function.
|
|
103
|
+
*
|
|
104
|
+
* When to use:
|
|
105
|
+
* - You have a custom combining operation that is not covered by the built-in
|
|
106
|
+
* constructors (`min`, `max`, `first`, `last`, `constant`).
|
|
107
|
+
*
|
|
108
|
+
* Behavior:
|
|
109
|
+
* - Returns a new `Combiner` whose `combine` method delegates to the provided
|
|
110
|
+
* function.
|
|
111
|
+
* - Pure – the returned combiner does not mutate its arguments.
|
|
112
|
+
*
|
|
113
|
+
* **Example** (multiplying numbers)
|
|
114
|
+
*
|
|
115
|
+
* ```ts
|
|
116
|
+
* import { Combiner } from "effect"
|
|
117
|
+
*
|
|
118
|
+
* const Product = Combiner.make<number>((self, that) => self * that)
|
|
119
|
+
*
|
|
120
|
+
* console.log(Product.combine(3, 5))
|
|
121
|
+
* // Output: 15
|
|
122
|
+
* ```
|
|
123
|
+
*
|
|
124
|
+
* @see {@link Combiner} – the interface this creates
|
|
27
125
|
*
|
|
28
126
|
* @since 4.0.0
|
|
29
127
|
*/
|
|
@@ -32,6 +130,31 @@ export function make<A>(combine: (self: A, that: A) => A): Combiner<A> {
|
|
|
32
130
|
}
|
|
33
131
|
|
|
34
132
|
/**
|
|
133
|
+
* Reverses the argument order of a combiner's `combine` method.
|
|
134
|
+
*
|
|
135
|
+
* When to use:
|
|
136
|
+
* - You need the "right" value to act as the accumulator side.
|
|
137
|
+
* - You want to reverse the natural direction of a non-commutative combiner
|
|
138
|
+
* (e.g. string concatenation).
|
|
139
|
+
*
|
|
140
|
+
* Behavior:
|
|
141
|
+
* - Returns a new `Combiner` where `combine(self, that)` calls the original
|
|
142
|
+
* combiner as `combine(that, self)`.
|
|
143
|
+
* - Does not mutate the input combiner.
|
|
144
|
+
*
|
|
145
|
+
* **Example** (reversing string concatenation)
|
|
146
|
+
*
|
|
147
|
+
* ```ts
|
|
148
|
+
* import { Combiner, String } from "effect"
|
|
149
|
+
*
|
|
150
|
+
* const Prepend = Combiner.flip(String.ReducerConcat)
|
|
151
|
+
*
|
|
152
|
+
* console.log(Prepend.combine("a", "b"))
|
|
153
|
+
* // Output: "ba"
|
|
154
|
+
* ```
|
|
155
|
+
*
|
|
156
|
+
* @see {@link make}
|
|
157
|
+
*
|
|
35
158
|
* @since 4.0.0
|
|
36
159
|
*/
|
|
37
160
|
export function flip<A>(combiner: Combiner<A>): Combiner<A> {
|
|
@@ -39,7 +162,33 @@ export function flip<A>(combiner: Combiner<A>): Combiner<A> {
|
|
|
39
162
|
}
|
|
40
163
|
|
|
41
164
|
/**
|
|
42
|
-
* Creates a `Combiner` that returns the smaller of two values
|
|
165
|
+
* Creates a `Combiner` that returns the smaller of two values according to
|
|
166
|
+
* the provided `Order`.
|
|
167
|
+
*
|
|
168
|
+
* When to use:
|
|
169
|
+
* - You want to accumulate the minimum value across a collection.
|
|
170
|
+
* - You are building a `Reducer` that tracks the running minimum.
|
|
171
|
+
*
|
|
172
|
+
* Behavior:
|
|
173
|
+
* - Compares using the given `Order`. When values are equal, returns `that`
|
|
174
|
+
* (the second argument).
|
|
175
|
+
* - Pure – does not mutate either argument.
|
|
176
|
+
*
|
|
177
|
+
* **Example** (minimum of two numbers)
|
|
178
|
+
*
|
|
179
|
+
* ```ts
|
|
180
|
+
* import { Combiner, Number } from "effect"
|
|
181
|
+
*
|
|
182
|
+
* const Min = Combiner.min(Number.Order)
|
|
183
|
+
*
|
|
184
|
+
* console.log(Min.combine(3, 1))
|
|
185
|
+
* // Output: 1
|
|
186
|
+
*
|
|
187
|
+
* console.log(Min.combine(1, 3))
|
|
188
|
+
* // Output: 1
|
|
189
|
+
* ```
|
|
190
|
+
*
|
|
191
|
+
* @see {@link max}
|
|
43
192
|
*
|
|
44
193
|
* @since 4.0.0
|
|
45
194
|
*/
|
|
@@ -48,7 +197,33 @@ export function min<A>(order: Order.Order<A>): Combiner<A> {
|
|
|
48
197
|
}
|
|
49
198
|
|
|
50
199
|
/**
|
|
51
|
-
* Creates a `Combiner` that returns the larger of two values
|
|
200
|
+
* Creates a `Combiner` that returns the larger of two values according to
|
|
201
|
+
* the provided `Order`.
|
|
202
|
+
*
|
|
203
|
+
* When to use:
|
|
204
|
+
* - You want to accumulate the maximum value across a collection.
|
|
205
|
+
* - You are building a `Reducer` that tracks the running maximum.
|
|
206
|
+
*
|
|
207
|
+
* Behavior:
|
|
208
|
+
* - Compares using the given `Order`. When values are equal, returns `that`
|
|
209
|
+
* (the second argument).
|
|
210
|
+
* - Pure – does not mutate either argument.
|
|
211
|
+
*
|
|
212
|
+
* **Example** (maximum of two numbers)
|
|
213
|
+
*
|
|
214
|
+
* ```ts
|
|
215
|
+
* import { Combiner, Number } from "effect"
|
|
216
|
+
*
|
|
217
|
+
* const Max = Combiner.max(Number.Order)
|
|
218
|
+
*
|
|
219
|
+
* console.log(Max.combine(3, 1))
|
|
220
|
+
* // Output: 3
|
|
221
|
+
*
|
|
222
|
+
* console.log(Max.combine(1, 3))
|
|
223
|
+
* // Output: 3
|
|
224
|
+
* ```
|
|
225
|
+
*
|
|
226
|
+
* @see {@link min}
|
|
52
227
|
*
|
|
53
228
|
* @since 4.0.0
|
|
54
229
|
*/
|
|
@@ -57,7 +232,29 @@ export function max<A>(order: Order.Order<A>): Combiner<A> {
|
|
|
57
232
|
}
|
|
58
233
|
|
|
59
234
|
/**
|
|
60
|
-
* Creates a `Combiner` that returns the first
|
|
235
|
+
* Creates a `Combiner` that always returns the first (left) argument.
|
|
236
|
+
*
|
|
237
|
+
* When to use:
|
|
238
|
+
* - You want "first write wins" semantics when merging values.
|
|
239
|
+
* - You need a combiner but the combining logic should be a no-op that keeps
|
|
240
|
+
* the existing value.
|
|
241
|
+
*
|
|
242
|
+
* Behavior:
|
|
243
|
+
* - `combine(self, that)` returns `self`, ignoring `that`.
|
|
244
|
+
* - Pure – the second argument is discarded, not mutated.
|
|
245
|
+
*
|
|
246
|
+
* **Example** (keeping the first value)
|
|
247
|
+
*
|
|
248
|
+
* ```ts
|
|
249
|
+
* import { Combiner } from "effect"
|
|
250
|
+
*
|
|
251
|
+
* const First = Combiner.first<number>()
|
|
252
|
+
*
|
|
253
|
+
* console.log(First.combine(1, 2))
|
|
254
|
+
* // Output: 1
|
|
255
|
+
* ```
|
|
256
|
+
*
|
|
257
|
+
* @see {@link last}
|
|
61
258
|
*
|
|
62
259
|
* @since 4.0.0
|
|
63
260
|
*/
|
|
@@ -66,7 +263,28 @@ export function first<A>(): Combiner<A> {
|
|
|
66
263
|
}
|
|
67
264
|
|
|
68
265
|
/**
|
|
69
|
-
* Creates a `Combiner` that returns the last
|
|
266
|
+
* Creates a `Combiner` that always returns the last (right) argument.
|
|
267
|
+
*
|
|
268
|
+
* When to use:
|
|
269
|
+
* - You want "last write wins" semantics when merging values.
|
|
270
|
+
* - You need a combiner that replaces the accumulator with each new value.
|
|
271
|
+
*
|
|
272
|
+
* Behavior:
|
|
273
|
+
* - `combine(self, that)` returns `that`, ignoring `self`.
|
|
274
|
+
* - Pure – the first argument is discarded, not mutated.
|
|
275
|
+
*
|
|
276
|
+
* **Example** (keeping the last value)
|
|
277
|
+
*
|
|
278
|
+
* ```ts
|
|
279
|
+
* import { Combiner } from "effect"
|
|
280
|
+
*
|
|
281
|
+
* const Last = Combiner.last<number>()
|
|
282
|
+
*
|
|
283
|
+
* console.log(Last.combine(1, 2))
|
|
284
|
+
* // Output: 2
|
|
285
|
+
* ```
|
|
286
|
+
*
|
|
287
|
+
* @see {@link first}
|
|
70
288
|
*
|
|
71
289
|
* @since 4.0.0
|
|
72
290
|
*/
|
|
@@ -75,7 +293,31 @@ export function last<A>(): Combiner<A> {
|
|
|
75
293
|
}
|
|
76
294
|
|
|
77
295
|
/**
|
|
78
|
-
* Creates a `Combiner` that
|
|
296
|
+
* Creates a `Combiner` that ignores both arguments and always returns the
|
|
297
|
+
* given constant value.
|
|
298
|
+
*
|
|
299
|
+
* When to use:
|
|
300
|
+
* - You need a combiner that produces a fixed result regardless of input.
|
|
301
|
+
* - You are providing a combiner to a generic API but the combined value is
|
|
302
|
+
* predetermined.
|
|
303
|
+
*
|
|
304
|
+
* Behavior:
|
|
305
|
+
* - `combine(self, that)` returns the constant `a`, ignoring both arguments.
|
|
306
|
+
* - Pure – no mutation occurs.
|
|
307
|
+
*
|
|
308
|
+
* **Example** (always returning zero)
|
|
309
|
+
*
|
|
310
|
+
* ```ts
|
|
311
|
+
* import { Combiner } from "effect"
|
|
312
|
+
*
|
|
313
|
+
* const Zero = Combiner.constant(0)
|
|
314
|
+
*
|
|
315
|
+
* console.log(Zero.combine(42, 99))
|
|
316
|
+
* // Output: 0
|
|
317
|
+
* ```
|
|
318
|
+
*
|
|
319
|
+
* @see {@link first}
|
|
320
|
+
* @see {@link last}
|
|
79
321
|
*
|
|
80
322
|
* @since 4.0.0
|
|
81
323
|
*/
|
|
@@ -84,7 +326,32 @@ export function constant<A>(a: A): Combiner<A> {
|
|
|
84
326
|
}
|
|
85
327
|
|
|
86
328
|
/**
|
|
87
|
-
*
|
|
329
|
+
* Wraps a `Combiner` so that a separator value is inserted between every
|
|
330
|
+
* pair of combined elements.
|
|
331
|
+
*
|
|
332
|
+
* When to use:
|
|
333
|
+
* - You are building delimited strings (CSV, paths, etc.) by repeated
|
|
334
|
+
* combination.
|
|
335
|
+
* - You need to inject a fixed separator between accumulated values.
|
|
336
|
+
*
|
|
337
|
+
* Behavior:
|
|
338
|
+
* - `intercalate(middle)(combiner).combine(self, that)` is equivalent to
|
|
339
|
+
* `combiner.combine(self, combiner.combine(middle, that))`.
|
|
340
|
+
* - Curried: first provide the separator, then the base combiner.
|
|
341
|
+
* - Does not mutate the input combiner; returns a new one.
|
|
342
|
+
*
|
|
343
|
+
* **Example** (joining strings with a separator)
|
|
344
|
+
*
|
|
345
|
+
* ```ts
|
|
346
|
+
* import { Combiner, String } from "effect"
|
|
347
|
+
*
|
|
348
|
+
* const commaSep = Combiner.intercalate(",")(String.ReducerConcat)
|
|
349
|
+
*
|
|
350
|
+
* console.log(commaSep.combine("a", "b"))
|
|
351
|
+
* // Output: "a,b"
|
|
352
|
+
* ```
|
|
353
|
+
*
|
|
354
|
+
* @see {@link make}
|
|
88
355
|
*
|
|
89
356
|
* @since 4.0.0
|
|
90
357
|
*/
|
package/src/Config.ts
CHANGED
|
@@ -75,7 +75,7 @@ import type { Path, SourceError } from "./ConfigProvider.ts"
|
|
|
75
75
|
import * as ConfigProvider from "./ConfigProvider.ts"
|
|
76
76
|
import * as Duration_ from "./Duration.ts"
|
|
77
77
|
import * as Effect from "./Effect.ts"
|
|
78
|
-
import { dual
|
|
78
|
+
import { dual } from "./Function.ts"
|
|
79
79
|
import { PipeInspectableProto, YieldableProto } from "./internal/core.ts"
|
|
80
80
|
import * as LogLevel_ from "./LogLevel.ts"
|
|
81
81
|
import * as Option from "./Option.ts"
|
|
@@ -569,7 +569,7 @@ function isMissingDataOnly(issue: Issue.Issue): boolean {
|
|
|
569
569
|
* ```ts
|
|
570
570
|
* import { Config, ConfigProvider, Effect } from "effect"
|
|
571
571
|
*
|
|
572
|
-
* const port = Config.number("port").pipe(Config.withDefault(
|
|
572
|
+
* const port = Config.number("port").pipe(Config.withDefault(3000))
|
|
573
573
|
*
|
|
574
574
|
* const provider = ConfigProvider.fromUnknown({})
|
|
575
575
|
* // Effect.runSync(port.parse(provider)) // 3000
|
|
@@ -598,7 +598,7 @@ export const withDefault: {
|
|
|
598
598
|
* ```ts
|
|
599
599
|
* import { Config, ConfigProvider, Effect } from "effect"
|
|
600
600
|
*
|
|
601
|
-
* const port = Config.number("port").pipe(Config.withDefault(
|
|
601
|
+
* const port = Config.number("port").pipe(Config.withDefault(3000))
|
|
602
602
|
*
|
|
603
603
|
* const provider = ConfigProvider.fromUnknown({})
|
|
604
604
|
* // Effect.runSync(port.parse(provider)) // 3000
|
|
@@ -609,7 +609,7 @@ export const withDefault: {
|
|
|
609
609
|
*
|
|
610
610
|
* @since 4.0.0
|
|
611
611
|
*/
|
|
612
|
-
<const A2>(defaultValue:
|
|
612
|
+
<const A2>(defaultValue: A2): <A>(self: Config<A>) => Config<A2 | A>
|
|
613
613
|
/**
|
|
614
614
|
* Provides a fallback value when the config fails due to missing data.
|
|
615
615
|
*
|
|
@@ -627,7 +627,7 @@ export const withDefault: {
|
|
|
627
627
|
* ```ts
|
|
628
628
|
* import { Config, ConfigProvider, Effect } from "effect"
|
|
629
629
|
*
|
|
630
|
-
* const port = Config.number("port").pipe(Config.withDefault(
|
|
630
|
+
* const port = Config.number("port").pipe(Config.withDefault(3000))
|
|
631
631
|
*
|
|
632
632
|
* const provider = ConfigProvider.fromUnknown({})
|
|
633
633
|
* // Effect.runSync(port.parse(provider)) // 3000
|
|
@@ -638,13 +638,13 @@ export const withDefault: {
|
|
|
638
638
|
*
|
|
639
639
|
* @since 4.0.0
|
|
640
640
|
*/
|
|
641
|
-
<A, const A2>(self: Config<A>, defaultValue:
|
|
642
|
-
} = dual(2, <A, const A2>(self: Config<A>, defaultValue:
|
|
641
|
+
<A, const A2>(self: Config<A>, defaultValue: A2): Config<A | A2>
|
|
642
|
+
} = dual(2, <A, const A2>(self: Config<A>, defaultValue: A2): Config<A | A2> => {
|
|
643
643
|
return orElse(self, (err) => {
|
|
644
644
|
if (Schema.isSchemaError(err.cause)) {
|
|
645
645
|
const issue = err.cause.issue
|
|
646
646
|
if (isMissingDataOnly(issue)) {
|
|
647
|
-
return succeed(defaultValue
|
|
647
|
+
return succeed(defaultValue)
|
|
648
648
|
}
|
|
649
649
|
}
|
|
650
650
|
return fail(err.cause)
|
|
@@ -678,7 +678,7 @@ export const withDefault: {
|
|
|
678
678
|
* @since 4.0.0
|
|
679
679
|
*/
|
|
680
680
|
export const option = <A>(self: Config<A>): Config<Option.Option<A>> =>
|
|
681
|
-
self.pipe(map(Option.some), withDefault(
|
|
681
|
+
self.pipe(map(Option.some), withDefault(Option.none()))
|
|
682
682
|
|
|
683
683
|
/**
|
|
684
684
|
* Utility type that recursively replaces primitives with `Config` in a nested
|
|
@@ -886,18 +886,19 @@ export function schema<T, E>(codec: Schema.Codec<T, E>, path?: string | ConfigPr
|
|
|
886
886
|
const decodeUnknownEffect = Parser.decodeUnknownEffect(toCodecStringTree)
|
|
887
887
|
const toCodecStringTreeEncoded = AST.toEncoded(toCodecStringTree.ast)
|
|
888
888
|
const defaultPath = typeof path === "string" ? [path] : path ?? []
|
|
889
|
-
return make((provider) =>
|
|
890
|
-
|
|
889
|
+
return make((provider) => {
|
|
890
|
+
const path = provider.prefix ? [...provider.prefix, ...defaultPath] : defaultPath
|
|
891
|
+
return recur(toCodecStringTreeEncoded, provider, defaultPath).pipe(
|
|
891
892
|
Effect.flatMapEager((tree) =>
|
|
892
|
-
decodeUnknownEffect(tree).pipe(
|
|
893
|
-
|
|
894
|
-
|
|
893
|
+
decodeUnknownEffect(tree).pipe(
|
|
894
|
+
Effect.mapErrorEager((issue) =>
|
|
895
|
+
new Schema.SchemaError(path.length > 0 ? new Issue.Pointer(path, issue) : issue)
|
|
896
|
+
)
|
|
897
|
+
)
|
|
895
898
|
),
|
|
896
|
-
Effect.mapErrorEager((cause) =>
|
|
897
|
-
new ConfigError(cause)
|
|
898
|
-
)
|
|
899
|
+
Effect.mapErrorEager((cause) => new ConfigError(cause))
|
|
899
900
|
)
|
|
900
|
-
)
|
|
901
|
+
})
|
|
901
902
|
}
|
|
902
903
|
|
|
903
904
|
/** @internal */
|
|
@@ -938,7 +939,7 @@ export const Boolean = Schema.Literals([...TrueValues.literals, ...FalseValues.l
|
|
|
938
939
|
* - Pass to {@link schema} for custom paths, or use the {@link duration}
|
|
939
940
|
* convenience constructor.
|
|
940
941
|
*
|
|
941
|
-
* Accepts any string that `Duration.
|
|
942
|
+
* Accepts any string that `Duration.fromInput` can parse (e.g.
|
|
942
943
|
* `"10 seconds"`, `"500 millis"`).
|
|
943
944
|
*
|
|
944
945
|
* @see {@link duration} – convenience constructor
|
|
@@ -948,7 +949,7 @@ export const Boolean = Schema.Literals([...TrueValues.literals, ...FalseValues.l
|
|
|
948
949
|
*/
|
|
949
950
|
export const Duration = Schema.String.pipe(Schema.decodeTo(Schema.Duration, {
|
|
950
951
|
decode: Getter.transformOrFail((s) => {
|
|
951
|
-
const d = Duration_.
|
|
952
|
+
const d = Duration_.fromInput(s as any)
|
|
952
953
|
return d ? Effect.succeed(d) : Effect.fail(new Issue.InvalidValue(Option.some(s)))
|
|
953
954
|
}),
|
|
954
955
|
encode: Getter.forbidden(() => "Encoding Duration is not supported")
|
|
@@ -1235,7 +1236,7 @@ export function boolean(name?: string) {
|
|
|
1235
1236
|
*
|
|
1236
1237
|
* Shortcut for `Config.schema(Config.Duration, name)`.
|
|
1237
1238
|
*
|
|
1238
|
-
* Accepts any string that `Duration.
|
|
1239
|
+
* Accepts any string that `Duration.fromInput` can parse (e.g.
|
|
1239
1240
|
* `"10 seconds"`, `"500 millis"`, `"2 minutes"`).
|
|
1240
1241
|
*
|
|
1241
1242
|
* **Example** (Reading a duration)
|
|
@@ -1446,3 +1447,164 @@ export function url(name?: string) {
|
|
|
1446
1447
|
export function date(name?: string) {
|
|
1447
1448
|
return schema(Schema.DateValid, name)
|
|
1448
1449
|
}
|
|
1450
|
+
|
|
1451
|
+
/**
|
|
1452
|
+
* Scopes a config under a named prefix.
|
|
1453
|
+
*
|
|
1454
|
+
* When to use:
|
|
1455
|
+
* - Grouping related config keys under a common namespace (e.g.
|
|
1456
|
+
* `"database"`, `"redis"`).
|
|
1457
|
+
* - Building reusable config fragments that callers nest at different paths.
|
|
1458
|
+
*
|
|
1459
|
+
* The prefix is prepended to every key the inner config reads. With
|
|
1460
|
+
* `fromUnknown` this means an extra object level; with `fromEnv` it means
|
|
1461
|
+
* a `_`-separated prefix on env var names.
|
|
1462
|
+
*
|
|
1463
|
+
* Multiple `nested` calls compose: the outermost name becomes the
|
|
1464
|
+
* outermost path segment.
|
|
1465
|
+
*
|
|
1466
|
+
* **Example** (Nesting a struct config under `"database"`)
|
|
1467
|
+
*
|
|
1468
|
+
* ```ts
|
|
1469
|
+
* import { Config, ConfigProvider, Effect } from "effect"
|
|
1470
|
+
*
|
|
1471
|
+
* const dbConfig = Config.all({
|
|
1472
|
+
* host: Config.string("host"),
|
|
1473
|
+
* port: Config.number("port")
|
|
1474
|
+
* }).pipe(Config.nested("database"))
|
|
1475
|
+
*
|
|
1476
|
+
* const provider = ConfigProvider.fromUnknown({
|
|
1477
|
+
* database: { host: "localhost", port: "5432" }
|
|
1478
|
+
* })
|
|
1479
|
+
* // Effect.runSync(dbConfig.parse(provider))
|
|
1480
|
+
* // { host: "localhost", port: 5432 }
|
|
1481
|
+
* ```
|
|
1482
|
+
*
|
|
1483
|
+
* **Example** (Env vars with nested prefix)
|
|
1484
|
+
*
|
|
1485
|
+
* ```ts
|
|
1486
|
+
* import { Config, ConfigProvider, Effect } from "effect"
|
|
1487
|
+
*
|
|
1488
|
+
* const host = Config.string("host").pipe(Config.nested("database"))
|
|
1489
|
+
*
|
|
1490
|
+
* const provider = ConfigProvider.fromEnv({
|
|
1491
|
+
* env: { database_host: "localhost" }
|
|
1492
|
+
* })
|
|
1493
|
+
* // Effect.runSync(host.parse(provider)) // "localhost"
|
|
1494
|
+
* ```
|
|
1495
|
+
*
|
|
1496
|
+
* @see {@link all} – combine multiple configs into a struct
|
|
1497
|
+
* @see {@link schema} – read structured config from a schema
|
|
1498
|
+
*
|
|
1499
|
+
* @category Combinators
|
|
1500
|
+
* @since 4.0.0
|
|
1501
|
+
*/
|
|
1502
|
+
export const nested: {
|
|
1503
|
+
/**
|
|
1504
|
+
* Scopes a config under a named prefix.
|
|
1505
|
+
*
|
|
1506
|
+
* When to use:
|
|
1507
|
+
* - Grouping related config keys under a common namespace (e.g.
|
|
1508
|
+
* `"database"`, `"redis"`).
|
|
1509
|
+
* - Building reusable config fragments that callers nest at different paths.
|
|
1510
|
+
*
|
|
1511
|
+
* The prefix is prepended to every key the inner config reads. With
|
|
1512
|
+
* `fromUnknown` this means an extra object level; with `fromEnv` it means
|
|
1513
|
+
* a `_`-separated prefix on env var names.
|
|
1514
|
+
*
|
|
1515
|
+
* Multiple `nested` calls compose: the outermost name becomes the
|
|
1516
|
+
* outermost path segment.
|
|
1517
|
+
*
|
|
1518
|
+
* **Example** (Nesting a struct config under `"database"`)
|
|
1519
|
+
*
|
|
1520
|
+
* ```ts
|
|
1521
|
+
* import { Config, ConfigProvider, Effect } from "effect"
|
|
1522
|
+
*
|
|
1523
|
+
* const dbConfig = Config.all({
|
|
1524
|
+
* host: Config.string("host"),
|
|
1525
|
+
* port: Config.number("port")
|
|
1526
|
+
* }).pipe(Config.nested("database"))
|
|
1527
|
+
*
|
|
1528
|
+
* const provider = ConfigProvider.fromUnknown({
|
|
1529
|
+
* database: { host: "localhost", port: "5432" }
|
|
1530
|
+
* })
|
|
1531
|
+
* // Effect.runSync(dbConfig.parse(provider))
|
|
1532
|
+
* // { host: "localhost", port: 5432 }
|
|
1533
|
+
* ```
|
|
1534
|
+
*
|
|
1535
|
+
* **Example** (Env vars with nested prefix)
|
|
1536
|
+
*
|
|
1537
|
+
* ```ts
|
|
1538
|
+
* import { Config, ConfigProvider, Effect } from "effect"
|
|
1539
|
+
*
|
|
1540
|
+
* const host = Config.string("host").pipe(Config.nested("database"))
|
|
1541
|
+
*
|
|
1542
|
+
* const provider = ConfigProvider.fromEnv({
|
|
1543
|
+
* env: { database_host: "localhost" }
|
|
1544
|
+
* })
|
|
1545
|
+
* // Effect.runSync(host.parse(provider)) // "localhost"
|
|
1546
|
+
* ```
|
|
1547
|
+
*
|
|
1548
|
+
* @see {@link all} – combine multiple configs into a struct
|
|
1549
|
+
* @see {@link schema} – read structured config from a schema
|
|
1550
|
+
*
|
|
1551
|
+
* @category Combinators
|
|
1552
|
+
* @since 4.0.0
|
|
1553
|
+
*/
|
|
1554
|
+
(name: string): <A>(self: Config<A>) => Config<A>
|
|
1555
|
+
/**
|
|
1556
|
+
* Scopes a config under a named prefix.
|
|
1557
|
+
*
|
|
1558
|
+
* When to use:
|
|
1559
|
+
* - Grouping related config keys under a common namespace (e.g.
|
|
1560
|
+
* `"database"`, `"redis"`).
|
|
1561
|
+
* - Building reusable config fragments that callers nest at different paths.
|
|
1562
|
+
*
|
|
1563
|
+
* The prefix is prepended to every key the inner config reads. With
|
|
1564
|
+
* `fromUnknown` this means an extra object level; with `fromEnv` it means
|
|
1565
|
+
* a `_`-separated prefix on env var names.
|
|
1566
|
+
*
|
|
1567
|
+
* Multiple `nested` calls compose: the outermost name becomes the
|
|
1568
|
+
* outermost path segment.
|
|
1569
|
+
*
|
|
1570
|
+
* **Example** (Nesting a struct config under `"database"`)
|
|
1571
|
+
*
|
|
1572
|
+
* ```ts
|
|
1573
|
+
* import { Config, ConfigProvider, Effect } from "effect"
|
|
1574
|
+
*
|
|
1575
|
+
* const dbConfig = Config.all({
|
|
1576
|
+
* host: Config.string("host"),
|
|
1577
|
+
* port: Config.number("port")
|
|
1578
|
+
* }).pipe(Config.nested("database"))
|
|
1579
|
+
*
|
|
1580
|
+
* const provider = ConfigProvider.fromUnknown({
|
|
1581
|
+
* database: { host: "localhost", port: "5432" }
|
|
1582
|
+
* })
|
|
1583
|
+
* // Effect.runSync(dbConfig.parse(provider))
|
|
1584
|
+
* // { host: "localhost", port: 5432 }
|
|
1585
|
+
* ```
|
|
1586
|
+
*
|
|
1587
|
+
* **Example** (Env vars with nested prefix)
|
|
1588
|
+
*
|
|
1589
|
+
* ```ts
|
|
1590
|
+
* import { Config, ConfigProvider, Effect } from "effect"
|
|
1591
|
+
*
|
|
1592
|
+
* const host = Config.string("host").pipe(Config.nested("database"))
|
|
1593
|
+
*
|
|
1594
|
+
* const provider = ConfigProvider.fromEnv({
|
|
1595
|
+
* env: { database_host: "localhost" }
|
|
1596
|
+
* })
|
|
1597
|
+
* // Effect.runSync(host.parse(provider)) // "localhost"
|
|
1598
|
+
* ```
|
|
1599
|
+
*
|
|
1600
|
+
* @see {@link all} – combine multiple configs into a struct
|
|
1601
|
+
* @see {@link schema} – read structured config from a schema
|
|
1602
|
+
*
|
|
1603
|
+
* @category Combinators
|
|
1604
|
+
* @since 4.0.0
|
|
1605
|
+
*/
|
|
1606
|
+
<A>(self: Config<A>, name: string): Config<A>
|
|
1607
|
+
} = dual(
|
|
1608
|
+
2,
|
|
1609
|
+
<A>(self: Config<A>, name: string): Config<A> => make((provider) => self.parse(ConfigProvider.nested(provider, name)))
|
|
1610
|
+
)
|