effect 4.0.0-beta.2 → 4.0.0-beta.20
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 +733 -687
- package/dist/Effect.d.ts.map +1 -1
- package/dist/Effect.js +233 -250
- 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 +91 -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 +3 -2
- 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 +123 -76
- 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 +225 -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 +33 -6
- 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/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/WorkflowEngine.d.ts +8 -1
- package/dist/unstable/workflow/WorkflowEngine.d.ts.map +1 -1
- package/dist/unstable/workflow/WorkflowEngine.js +133 -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 +909 -817
- 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 +315 -160
- package/src/Schema.ts +661 -116
- package/src/SchemaAST.ts +3 -2
- 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 +565 -600
- 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 +660 -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 +46 -8
- 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/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 +1 -1
- package/src/unstable/workflow/WorkflowEngine.ts +181 -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
|
@@ -0,0 +1,459 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Pluggable error reporting for Effect programs.
|
|
3
|
+
*
|
|
4
|
+
* Reporting is triggered by `Effect.withErrorReporting`,
|
|
5
|
+
* `ErrorReporter.report`, or built-in reporting boundaries in the HTTP and
|
|
6
|
+
* RPC server modules.
|
|
7
|
+
*
|
|
8
|
+
* Each reporter receives a structured callback with the failing `Cause`, a
|
|
9
|
+
* pretty-printed `Error`, severity, and any extra attributes attached to the
|
|
10
|
+
* original error — making it straightforward to forward failures to Sentry,
|
|
11
|
+
* Datadog, or a custom logging backend.
|
|
12
|
+
*
|
|
13
|
+
* Use the annotation symbols (`ignore`, `severity`, `attributes`) on your
|
|
14
|
+
* error classes to control reporting behavior per-error.
|
|
15
|
+
*
|
|
16
|
+
* @example
|
|
17
|
+
* ```ts
|
|
18
|
+
* import { Data, Effect, ErrorReporter } from "effect"
|
|
19
|
+
*
|
|
20
|
+
* // A reporter that logs to the console
|
|
21
|
+
* const consoleReporter = ErrorReporter.make(({ error, severity }) => {
|
|
22
|
+
* console.error(`[${severity}]`, error.message)
|
|
23
|
+
* })
|
|
24
|
+
*
|
|
25
|
+
* // An error that should be ignored by reporters
|
|
26
|
+
* class NotFoundError extends Data.TaggedError("NotFoundError")<{}> {
|
|
27
|
+
* readonly [ErrorReporter.ignore] = true
|
|
28
|
+
* }
|
|
29
|
+
*
|
|
30
|
+
* // An error with custom severity and attributes
|
|
31
|
+
* class RateLimitError extends Data.TaggedError("RateLimitError")<{
|
|
32
|
+
* readonly retryAfter: number
|
|
33
|
+
* }> {
|
|
34
|
+
* readonly [ErrorReporter.severity] = "Warn" as const
|
|
35
|
+
* readonly [ErrorReporter.attributes] = {
|
|
36
|
+
* retryAfter: this.retryAfter
|
|
37
|
+
* }
|
|
38
|
+
* }
|
|
39
|
+
*
|
|
40
|
+
* // Opt in to error reporting with Effect.withErrorReporting
|
|
41
|
+
* const program = Effect.gen(function*() {
|
|
42
|
+
* yield* new RateLimitError({ retryAfter: 60 })
|
|
43
|
+
* }).pipe(
|
|
44
|
+
* Effect.withErrorReporting,
|
|
45
|
+
* Effect.provide(ErrorReporter.layer([consoleReporter]))
|
|
46
|
+
* )
|
|
47
|
+
* ```
|
|
48
|
+
*
|
|
49
|
+
* @since 4.0.0
|
|
50
|
+
*/
|
|
51
|
+
import type * as Cause from "./Cause.ts"
|
|
52
|
+
import * as Effect from "./Effect.ts"
|
|
53
|
+
import type * as Fiber from "./Fiber.ts"
|
|
54
|
+
import * as effect from "./internal/effect.ts"
|
|
55
|
+
import * as Layer from "./Layer.ts"
|
|
56
|
+
import * as LogLevel from "./LogLevel.ts"
|
|
57
|
+
import type { Severity } from "./LogLevel.ts"
|
|
58
|
+
import type { ReadonlyRecord } from "./Record.ts"
|
|
59
|
+
import type * as Scope from "./Scope.ts"
|
|
60
|
+
import type * as ServiceMap from "./ServiceMap.ts"
|
|
61
|
+
|
|
62
|
+
/**
|
|
63
|
+
* @since 4.0.0
|
|
64
|
+
* @category Type Identifiers
|
|
65
|
+
*/
|
|
66
|
+
export type TypeId = "~effect/ErrorReporter"
|
|
67
|
+
|
|
68
|
+
/**
|
|
69
|
+
* @since 4.0.0
|
|
70
|
+
* @category Type Identifiers
|
|
71
|
+
*/
|
|
72
|
+
export const TypeId: TypeId = "~effect/ErrorReporter"
|
|
73
|
+
|
|
74
|
+
/**
|
|
75
|
+
* An `ErrorReporter` receives reported failures and forwards them to an
|
|
76
|
+
* external system (logging service, error tracker, etc.).
|
|
77
|
+
*
|
|
78
|
+
* Reporting is triggered by `Effect.withErrorReporting`,
|
|
79
|
+
* `ErrorReporter.report`, or built-in boundaries in the HTTP and RPC server
|
|
80
|
+
* modules. Use {@link make} to create a reporter — it handles deduplication
|
|
81
|
+
* and per-error annotation extraction automatically.
|
|
82
|
+
*
|
|
83
|
+
* @since 4.0.0
|
|
84
|
+
* @category Models
|
|
85
|
+
*/
|
|
86
|
+
export interface ErrorReporter {
|
|
87
|
+
readonly [TypeId]: TypeId
|
|
88
|
+
report(options: {
|
|
89
|
+
readonly cause: Cause.Cause<unknown>
|
|
90
|
+
readonly fiber: Fiber.Fiber<unknown, unknown>
|
|
91
|
+
readonly timestamp: bigint
|
|
92
|
+
}): void
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
/**
|
|
96
|
+
* Creates an `ErrorReporter` from a callback.
|
|
97
|
+
*
|
|
98
|
+
* The returned reporter automatically deduplicates causes and individual
|
|
99
|
+
* errors (the same object is never reported twice), skips interruptions,
|
|
100
|
+
* and resolves the `ignore`, `severity`, and `attributes` annotations on
|
|
101
|
+
* each error before invoking your callback.
|
|
102
|
+
*
|
|
103
|
+
* @example
|
|
104
|
+
* ```ts
|
|
105
|
+
* import { ErrorReporter } from "effect"
|
|
106
|
+
*
|
|
107
|
+
* // Forward every failure to the console
|
|
108
|
+
* const consoleReporter = ErrorReporter.make(
|
|
109
|
+
* ({ error, severity, attributes }) => {
|
|
110
|
+
* console.error(`[${severity}]`, error.message, attributes)
|
|
111
|
+
* }
|
|
112
|
+
* )
|
|
113
|
+
* ```
|
|
114
|
+
*
|
|
115
|
+
* @since 4.0.0
|
|
116
|
+
* @category Constructors
|
|
117
|
+
*/
|
|
118
|
+
export const make = (
|
|
119
|
+
report: (options: {
|
|
120
|
+
readonly cause: Cause.Cause<unknown>
|
|
121
|
+
readonly error: Error
|
|
122
|
+
readonly attributes: ReadonlyRecord<string, unknown>
|
|
123
|
+
readonly severity: Severity
|
|
124
|
+
readonly fiber: Fiber.Fiber<unknown, unknown>
|
|
125
|
+
readonly timestamp: bigint
|
|
126
|
+
}) => void
|
|
127
|
+
): ErrorReporter => {
|
|
128
|
+
const reported = new WeakSet<Cause.Cause<unknown> | object>()
|
|
129
|
+
return {
|
|
130
|
+
[TypeId]: TypeId,
|
|
131
|
+
report(options) {
|
|
132
|
+
if (reported.has(options.cause)) return
|
|
133
|
+
reported.add(options.cause)
|
|
134
|
+
for (let i = 0; i < options.cause.reasons.length; i++) {
|
|
135
|
+
const reason = options.cause.reasons[i]
|
|
136
|
+
if (reason._tag === "Interrupt") continue
|
|
137
|
+
const original = reason._tag === "Fail" ? reason.error : reason.defect
|
|
138
|
+
const isObject = typeof original === "object" && original !== null
|
|
139
|
+
if (isObject) {
|
|
140
|
+
if (reported.has(original)) continue
|
|
141
|
+
reported.add(original)
|
|
142
|
+
}
|
|
143
|
+
if (isIgnored(original)) continue
|
|
144
|
+
const pretty = effect.causePrettyError(original as any, reason.annotations)
|
|
145
|
+
report({
|
|
146
|
+
...options,
|
|
147
|
+
error: pretty,
|
|
148
|
+
severity: isObject ? getSeverity(original) : "Info",
|
|
149
|
+
attributes: isObject ? getAttributes(original) : emptyAttributes
|
|
150
|
+
})
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
/**
|
|
157
|
+
* A `ServiceMap.Reference` holding the set of active `ErrorReporter`s for the
|
|
158
|
+
* current fiber. Defaults to an empty set (no reporting).
|
|
159
|
+
*
|
|
160
|
+
* Prefer {@link layer} to configure reporters via the `Layer` API. Use this
|
|
161
|
+
* reference directly only when you need low-level control (e.g. reading the
|
|
162
|
+
* current reporters or swapping them inside a `FiberRef`).
|
|
163
|
+
*
|
|
164
|
+
* @since 4.0.0
|
|
165
|
+
* @category References
|
|
166
|
+
*/
|
|
167
|
+
export const CurrentErrorReporters: ServiceMap.Reference<ReadonlySet<ErrorReporter>> = effect.CurrentErrorReporters
|
|
168
|
+
|
|
169
|
+
/**
|
|
170
|
+
* Creates a `Layer` that registers one or more `ErrorReporter`s.
|
|
171
|
+
*
|
|
172
|
+
* Reporters can be plain `ErrorReporter` values or effectful
|
|
173
|
+
* `Effect<ErrorReporter>` values that are resolved when the layer is built.
|
|
174
|
+
*
|
|
175
|
+
* By default the provided reporters **replace** any previously registered
|
|
176
|
+
* reporters. Set `mergeWithExisting: true` to add them alongside existing
|
|
177
|
+
* ones.
|
|
178
|
+
*
|
|
179
|
+
* @example
|
|
180
|
+
* ```ts
|
|
181
|
+
* import { Effect, ErrorReporter } from "effect"
|
|
182
|
+
*
|
|
183
|
+
* const consoleReporter = ErrorReporter.make(({ error, severity }) => {
|
|
184
|
+
* console.error(`[${severity}]`, error.message)
|
|
185
|
+
* })
|
|
186
|
+
*
|
|
187
|
+
* const metricsReporter = ErrorReporter.make(({ severity }) => {
|
|
188
|
+
* // increment an error counter by severity
|
|
189
|
+
* })
|
|
190
|
+
*
|
|
191
|
+
* // Replace all existing reporters
|
|
192
|
+
* const ReporterLive = ErrorReporter.layer([
|
|
193
|
+
* consoleReporter,
|
|
194
|
+
* metricsReporter
|
|
195
|
+
* ])
|
|
196
|
+
*
|
|
197
|
+
* // Add to existing reporters instead of replacing
|
|
198
|
+
* const ReporterMerged = ErrorReporter.layer(
|
|
199
|
+
* [metricsReporter],
|
|
200
|
+
* { mergeWithExisting: true }
|
|
201
|
+
* )
|
|
202
|
+
*
|
|
203
|
+
* const program = Effect.gen(function*() {
|
|
204
|
+
* yield* Effect.fail("boom")
|
|
205
|
+
* }).pipe(
|
|
206
|
+
* Effect.withErrorReporting,
|
|
207
|
+
* Effect.provide(ReporterLive)
|
|
208
|
+
* )
|
|
209
|
+
* ```
|
|
210
|
+
*
|
|
211
|
+
* @since 4.0.0
|
|
212
|
+
* @category Layers
|
|
213
|
+
*/
|
|
214
|
+
export const layer = <
|
|
215
|
+
const Reporters extends ReadonlyArray<ErrorReporter | Effect.Effect<ErrorReporter, any, any>>
|
|
216
|
+
>(
|
|
217
|
+
reporters: Reporters,
|
|
218
|
+
options?: { readonly mergeWithExisting?: boolean | undefined } | undefined
|
|
219
|
+
): Layer.Layer<
|
|
220
|
+
never,
|
|
221
|
+
Reporters extends readonly [] ? never : Effect.Error<Reporters[number]>,
|
|
222
|
+
Exclude<
|
|
223
|
+
Reporters extends readonly [] ? never : Effect.Services<Reporters[number]>,
|
|
224
|
+
Scope.Scope
|
|
225
|
+
>
|
|
226
|
+
> =>
|
|
227
|
+
Layer.effect(
|
|
228
|
+
CurrentErrorReporters,
|
|
229
|
+
Effect.withFiber(Effect.fnUntraced(function*(fiber) {
|
|
230
|
+
const currentReporters = new Set(
|
|
231
|
+
options?.mergeWithExisting === true ? fiber.getRef(effect.CurrentErrorReporters) : []
|
|
232
|
+
)
|
|
233
|
+
for (const reporter of reporters) {
|
|
234
|
+
currentReporters.add(Effect.isEffect(reporter) ? yield* reporter : reporter)
|
|
235
|
+
}
|
|
236
|
+
return currentReporters
|
|
237
|
+
}))
|
|
238
|
+
)
|
|
239
|
+
|
|
240
|
+
/**
|
|
241
|
+
* Manually report a `Cause` to all registered `ErrorReporter`s on the
|
|
242
|
+
* current fiber.
|
|
243
|
+
*
|
|
244
|
+
* This is useful when you want to report an error for observability without
|
|
245
|
+
* actually failing the fiber.
|
|
246
|
+
*
|
|
247
|
+
* @example
|
|
248
|
+
* ```ts
|
|
249
|
+
* import { Cause, Effect, ErrorReporter } from "effect"
|
|
250
|
+
*
|
|
251
|
+
* // Log the cause for monitoring, then continue with a fallback
|
|
252
|
+
* const program = Effect.gen(function*() {
|
|
253
|
+
* const cause = Cause.fail("something went wrong")
|
|
254
|
+
* yield* ErrorReporter.report(cause)
|
|
255
|
+
* return "fallback value"
|
|
256
|
+
* })
|
|
257
|
+
* ```
|
|
258
|
+
*
|
|
259
|
+
* @since 4.0.0
|
|
260
|
+
* @category Reporting
|
|
261
|
+
*/
|
|
262
|
+
export const report = <E>(cause: Cause.Cause<E>): Effect.Effect<void> =>
|
|
263
|
+
Effect.withFiber((fiber) => {
|
|
264
|
+
effect.reportCauseUnsafe(fiber, cause)
|
|
265
|
+
return Effect.void
|
|
266
|
+
})
|
|
267
|
+
|
|
268
|
+
/**
|
|
269
|
+
* Interface that errors can implement to control reporting behavior.
|
|
270
|
+
*
|
|
271
|
+
* All three annotation properties are optional:
|
|
272
|
+
* - `[ErrorReporter.ignore]` — when `true`, the error is never reported
|
|
273
|
+
* - `[ErrorReporter.severity]` — overrides the default `"Error"` severity
|
|
274
|
+
* - `[ErrorReporter.attributes]` — extra key/value pairs forwarded to reporters
|
|
275
|
+
*
|
|
276
|
+
* The global `Error` interface is augmented with `Reportable`, so these
|
|
277
|
+
* properties are available on all `Error` instances.
|
|
278
|
+
*
|
|
279
|
+
* @since 4.0.0
|
|
280
|
+
* @category Annotations
|
|
281
|
+
*/
|
|
282
|
+
export interface Reportable {
|
|
283
|
+
readonly [ignore]?: boolean
|
|
284
|
+
readonly [severity]?: Severity
|
|
285
|
+
readonly [attributes]?: ReadonlyRecord<string, unknown>
|
|
286
|
+
}
|
|
287
|
+
|
|
288
|
+
declare global {
|
|
289
|
+
interface Error extends Reportable {}
|
|
290
|
+
}
|
|
291
|
+
|
|
292
|
+
/**
|
|
293
|
+
* Symbol key used to mark an error as unreportable.
|
|
294
|
+
*
|
|
295
|
+
* Set this property to `true` on any error class to prevent it from being
|
|
296
|
+
* forwarded to reporters. Useful for expected errors such as HTTP 404s.
|
|
297
|
+
*
|
|
298
|
+
* @example
|
|
299
|
+
* ```ts
|
|
300
|
+
* import { Data, ErrorReporter } from "effect"
|
|
301
|
+
*
|
|
302
|
+
* class NotFoundError extends Data.TaggedError("NotFoundError")<{}> {
|
|
303
|
+
* readonly [ErrorReporter.ignore] = true
|
|
304
|
+
* }
|
|
305
|
+
* ```
|
|
306
|
+
*
|
|
307
|
+
* @since 4.0.0
|
|
308
|
+
* @category Annotations
|
|
309
|
+
*/
|
|
310
|
+
export type ignore = "~effect/ErrorReporter/ignore"
|
|
311
|
+
|
|
312
|
+
/**
|
|
313
|
+
* Symbol key used to mark an error as unreportable.
|
|
314
|
+
*
|
|
315
|
+
* Set this property to `true` on any error class to prevent it from being
|
|
316
|
+
* forwarded to reporters. Useful for expected errors such as HTTP 404s.
|
|
317
|
+
*
|
|
318
|
+
* @example
|
|
319
|
+
* ```ts
|
|
320
|
+
* import { Data, ErrorReporter } from "effect"
|
|
321
|
+
*
|
|
322
|
+
* class NotFoundError extends Data.TaggedError("NotFoundError")<{}> {
|
|
323
|
+
* readonly [ErrorReporter.ignore] = true
|
|
324
|
+
* }
|
|
325
|
+
* ```
|
|
326
|
+
*
|
|
327
|
+
* @since 4.0.0
|
|
328
|
+
* @category Annotations
|
|
329
|
+
*/
|
|
330
|
+
export const ignore: ignore = "~effect/ErrorReporter/ignore"
|
|
331
|
+
|
|
332
|
+
/**
|
|
333
|
+
* Returns `true` if the given value has the `ErrorReporter.ignore` annotation
|
|
334
|
+
* set to `true`.
|
|
335
|
+
*
|
|
336
|
+
* @since 4.0.0
|
|
337
|
+
* @category Annotations
|
|
338
|
+
*/
|
|
339
|
+
export const isIgnored = (u: unknown): boolean =>
|
|
340
|
+
typeof u === "object" && u !== null && ignore in u && u[ignore] === true
|
|
341
|
+
|
|
342
|
+
/**
|
|
343
|
+
* Symbol key used to override the severity level of an error.
|
|
344
|
+
*
|
|
345
|
+
* When set, the reporter callback receives this value as `severity` instead
|
|
346
|
+
* of the default `"Error"`. Accepted values are the `LogLevel.Severity`
|
|
347
|
+
* literals: `"Trace"`, `"Debug"`, `"Info"`, `"Warn"`, `"Error"`, `"Fatal"`.
|
|
348
|
+
*
|
|
349
|
+
* @example
|
|
350
|
+
* ```ts
|
|
351
|
+
* import { Data, ErrorReporter } from "effect"
|
|
352
|
+
*
|
|
353
|
+
* class DeprecationWarning extends Data.TaggedError("DeprecationWarning")<{}> {
|
|
354
|
+
* readonly [ErrorReporter.severity] = "Warn" as const
|
|
355
|
+
* }
|
|
356
|
+
* ```
|
|
357
|
+
*
|
|
358
|
+
* @since 4.0.0
|
|
359
|
+
* @category Annotations
|
|
360
|
+
*/
|
|
361
|
+
export type severity = "~effect/ErrorReporter/severity"
|
|
362
|
+
|
|
363
|
+
/**
|
|
364
|
+
* Symbol key used to override the severity level of an error.
|
|
365
|
+
*
|
|
366
|
+
* When set, the reporter callback receives this value as `severity` instead
|
|
367
|
+
* of the default `"Error"`. Accepted values are the `LogLevel.Severity`
|
|
368
|
+
* literals: `"Trace"`, `"Debug"`, `"Info"`, `"Warn"`, `"Error"`, `"Fatal"`.
|
|
369
|
+
*
|
|
370
|
+
* @example
|
|
371
|
+
* ```ts
|
|
372
|
+
* import { Data, ErrorReporter } from "effect"
|
|
373
|
+
*
|
|
374
|
+
* class DeprecationWarning extends Data.TaggedError("DeprecationWarning")<{}> {
|
|
375
|
+
* readonly [ErrorReporter.severity] = "Warn" as const
|
|
376
|
+
* }
|
|
377
|
+
* ```
|
|
378
|
+
*
|
|
379
|
+
* @since 4.0.0
|
|
380
|
+
* @category Annotations
|
|
381
|
+
*/
|
|
382
|
+
export const severity: severity = "~effect/ErrorReporter/severity"
|
|
383
|
+
|
|
384
|
+
/**
|
|
385
|
+
* Reads the `ErrorReporter.severity` annotation from an error object,
|
|
386
|
+
* falling back to `"Error"` when unset or invalid.
|
|
387
|
+
*
|
|
388
|
+
* @since 4.0.0
|
|
389
|
+
* @category Annotations
|
|
390
|
+
*/
|
|
391
|
+
export const getSeverity = (error: object): Severity => {
|
|
392
|
+
if (severity in error && LogLevel.values.includes(error[severity] as Severity)) {
|
|
393
|
+
return error[severity] as Severity
|
|
394
|
+
}
|
|
395
|
+
return "Info"
|
|
396
|
+
}
|
|
397
|
+
|
|
398
|
+
/**
|
|
399
|
+
* Symbol key used to attach extra key/value metadata to an error report.
|
|
400
|
+
*
|
|
401
|
+
* Reporters receive these attributes alongside the error, making it easy to
|
|
402
|
+
* include contextual information such as user IDs, request IDs, or any
|
|
403
|
+
* domain-specific data useful for debugging.
|
|
404
|
+
*
|
|
405
|
+
* @example
|
|
406
|
+
* ```ts
|
|
407
|
+
* import { Data, ErrorReporter } from "effect"
|
|
408
|
+
*
|
|
409
|
+
* class PaymentError extends Data.TaggedError("PaymentError")<{
|
|
410
|
+
* readonly orderId: string
|
|
411
|
+
* }> {
|
|
412
|
+
* readonly [ErrorReporter.attributes] = {
|
|
413
|
+
* orderId: this.orderId
|
|
414
|
+
* }
|
|
415
|
+
* }
|
|
416
|
+
* ```
|
|
417
|
+
*
|
|
418
|
+
* @since 4.0.0
|
|
419
|
+
* @category Annotations
|
|
420
|
+
*/
|
|
421
|
+
export type attributes = "~effect/ErrorReporter/attributes"
|
|
422
|
+
|
|
423
|
+
/**
|
|
424
|
+
* Symbol key used to attach extra key/value metadata to an error report.
|
|
425
|
+
*
|
|
426
|
+
* Reporters receive these attributes alongside the error, making it easy to
|
|
427
|
+
* include contextual information such as user IDs, request IDs, or any
|
|
428
|
+
* domain-specific data useful for debugging.
|
|
429
|
+
*
|
|
430
|
+
* @example
|
|
431
|
+
* ```ts
|
|
432
|
+
* import { Data, ErrorReporter } from "effect"
|
|
433
|
+
*
|
|
434
|
+
* class PaymentError extends Data.TaggedError("PaymentError")<{
|
|
435
|
+
* readonly orderId: string
|
|
436
|
+
* }> {
|
|
437
|
+
* readonly [ErrorReporter.attributes] = {
|
|
438
|
+
* orderId: this.orderId
|
|
439
|
+
* }
|
|
440
|
+
* }
|
|
441
|
+
* ```
|
|
442
|
+
*
|
|
443
|
+
* @since 4.0.0
|
|
444
|
+
* @category Annotations
|
|
445
|
+
*/
|
|
446
|
+
export const attributes: attributes = "~effect/ErrorReporter/attributes"
|
|
447
|
+
|
|
448
|
+
/**
|
|
449
|
+
* Reads the `ErrorReporter.attributes` annotation from an error object,
|
|
450
|
+
* returning an empty record when unset.
|
|
451
|
+
*
|
|
452
|
+
* @since 4.0.0
|
|
453
|
+
* @category Annotations
|
|
454
|
+
*/
|
|
455
|
+
export const getAttributes = (error: object): ReadonlyRecord<string, unknown> => {
|
|
456
|
+
return attributes in error ? error[attributes] as any : emptyAttributes
|
|
457
|
+
}
|
|
458
|
+
|
|
459
|
+
const emptyAttributes: ReadonlyRecord<string, unknown> = {}
|
package/src/Fiber.ts
CHANGED
|
@@ -338,7 +338,10 @@ export const interruptAs: {
|
|
|
338
338
|
* @since 2.0.0
|
|
339
339
|
* @category interruption
|
|
340
340
|
*/
|
|
341
|
-
(
|
|
341
|
+
(
|
|
342
|
+
fiberId: number | undefined,
|
|
343
|
+
annotations?: ServiceMap.ServiceMap<never> | undefined
|
|
344
|
+
): <A, E>(self: Fiber<A, E>) => Effect<void>
|
|
342
345
|
/**
|
|
343
346
|
* Interrupts a fiber with a specific fiber ID as the interruptor. This allows
|
|
344
347
|
* tracking which fiber initiated the interruption.
|
|
@@ -361,7 +364,11 @@ export const interruptAs: {
|
|
|
361
364
|
* @since 2.0.0
|
|
362
365
|
* @category interruption
|
|
363
366
|
*/
|
|
364
|
-
<A, E>(
|
|
367
|
+
<A, E>(
|
|
368
|
+
self: Fiber<A, E>,
|
|
369
|
+
fiberId: number | undefined,
|
|
370
|
+
annotations?: ServiceMap.ServiceMap<never> | undefined
|
|
371
|
+
): Effect<void>
|
|
365
372
|
} = effect.fiberInterruptAs
|
|
366
373
|
|
|
367
374
|
/**
|
package/src/FileSystem.ts
CHANGED
|
@@ -733,8 +733,7 @@ export const make = (
|
|
|
733
733
|
Effect.as(true),
|
|
734
734
|
Effect.catchTag(
|
|
735
735
|
"PlatformError",
|
|
736
|
-
(e) =>
|
|
737
|
-
e.reason._tag === "SystemError" && e.reason.kind === "NotFound" ? Effect.succeed(false) : Effect.fail(e)
|
|
736
|
+
(e) => e.reason._tag === "NotFound" ? Effect.succeed(false) : Effect.fail(e)
|
|
738
737
|
)
|
|
739
738
|
),
|
|
740
739
|
readFileString: (path, encoding) =>
|
|
@@ -757,16 +756,16 @@ export const make = (
|
|
|
757
756
|
const bytesToRead = options?.bytesToRead !== undefined ? Size(options.bytesToRead) : undefined
|
|
758
757
|
let totalBytesRead = BigInt(0)
|
|
759
758
|
const chunkSize = Size(options?.chunkSize ?? 64 * 1024)
|
|
759
|
+
const readChunk = file.readAlloc(chunkSize)
|
|
760
760
|
return Stream.fromPull(Effect.succeed(
|
|
761
761
|
Effect.flatMap(
|
|
762
762
|
Effect.suspend((): Pull.Pull<Uint8Array | undefined, PlatformError> => {
|
|
763
763
|
if (bytesToRead !== undefined && bytesToRead <= totalBytesRead) {
|
|
764
764
|
return Cause.done()
|
|
765
765
|
}
|
|
766
|
-
|
|
767
|
-
? bytesToRead - totalBytesRead
|
|
768
|
-
:
|
|
769
|
-
return file.readAlloc(toRead)
|
|
766
|
+
return bytesToRead !== undefined && (bytesToRead - totalBytesRead) < chunkSize
|
|
767
|
+
? file.readAlloc(bytesToRead - totalBytesRead)
|
|
768
|
+
: readChunk
|
|
770
769
|
}),
|
|
771
770
|
(buf) => {
|
|
772
771
|
if (!buf) return Cause.done()
|
|
@@ -802,7 +801,7 @@ const notFound = (method: string, path: string) =>
|
|
|
802
801
|
systemError({
|
|
803
802
|
module: "FileSystem",
|
|
804
803
|
method,
|
|
805
|
-
|
|
804
|
+
_tag: "NotFound",
|
|
806
805
|
description: "No such file or directory",
|
|
807
806
|
pathOrDescriptor: path
|
|
808
807
|
})
|
|
@@ -829,9 +828,9 @@ const notFound = (method: string, path: string) =>
|
|
|
829
828
|
* }
|
|
830
829
|
* return Effect.fail(
|
|
831
830
|
* PlatformError.systemError({
|
|
831
|
+
* _tag: "NotFound",
|
|
832
832
|
* module: "FileSystem",
|
|
833
833
|
* method: "readFileString",
|
|
834
|
-
* kind: "NotFound",
|
|
835
834
|
* description: "File not found",
|
|
836
835
|
* pathOrDescriptor: path
|
|
837
836
|
* })
|
package/src/Filter.ts
CHANGED
|
@@ -7,7 +7,7 @@ import { dual } from "./Function.ts"
|
|
|
7
7
|
import * as Option from "./Option.ts"
|
|
8
8
|
import * as Predicate from "./Predicate.ts"
|
|
9
9
|
import * as Result from "./Result.ts"
|
|
10
|
-
import type { EqualsWith, ExcludeTag, ExtractTag, Tags } from "./Types.ts"
|
|
10
|
+
import type { EqualsWith, ExcludeTag, ExtractReason, ExtractTag, ReasonTags, Tags } from "./Types.ts"
|
|
11
11
|
|
|
12
12
|
/**
|
|
13
13
|
* Represents a filter function that can transform inputs to outputs or filter them out.
|
|
@@ -74,63 +74,6 @@ export interface FilterEffect<
|
|
|
74
74
|
(input: Input, ...args: Args): Effect<Result.Result<Pass, Fail>, E, R>
|
|
75
75
|
}
|
|
76
76
|
|
|
77
|
-
// -------------------------------------------------------------------------------------
|
|
78
|
-
// apply
|
|
79
|
-
// -------------------------------------------------------------------------------------
|
|
80
|
-
|
|
81
|
-
/**
|
|
82
|
-
* @since 4.0.0
|
|
83
|
-
* @category Apply
|
|
84
|
-
*/
|
|
85
|
-
export type OrPredicate<A, R extends boolean | Result.Result<any, any>, Args extends ReadonlyArray<any> = []> = (
|
|
86
|
-
input: A,
|
|
87
|
-
...args: Args
|
|
88
|
-
) => R
|
|
89
|
-
|
|
90
|
-
/**
|
|
91
|
-
* @since 4.0.0
|
|
92
|
-
* @category Apply
|
|
93
|
-
*/
|
|
94
|
-
export type ResultOrBool<Out = any> = boolean | Result.Result<any, Out>
|
|
95
|
-
|
|
96
|
-
/**
|
|
97
|
-
* @since 4.0.0
|
|
98
|
-
* @category Apply
|
|
99
|
-
*/
|
|
100
|
-
export type Pass<A, R extends boolean | Result.Result<any, any>> = [R] extends [Result.Result<infer _P, infer _F>] ? _P
|
|
101
|
-
: A
|
|
102
|
-
|
|
103
|
-
/**
|
|
104
|
-
* @since 4.0.0
|
|
105
|
-
* @category Apply
|
|
106
|
-
*/
|
|
107
|
-
export type Fail<A, R extends boolean | Result.Result<any, any>> = [R] extends [Result.Result<infer _P, infer _F>] ? _F
|
|
108
|
-
: A
|
|
109
|
-
|
|
110
|
-
/**
|
|
111
|
-
* @since 4.0.0
|
|
112
|
-
* @category Apply
|
|
113
|
-
*/
|
|
114
|
-
export type ApplyResult<A, R extends boolean | Result.Result<any, any>> = Result.Result<Pass<A, R>, Fail<A, R>>
|
|
115
|
-
|
|
116
|
-
/**
|
|
117
|
-
* Applies a filter, predicate, or refinement to an input and returns a boxed
|
|
118
|
-
* result. Extra arguments are forwarded to the function.
|
|
119
|
-
*
|
|
120
|
-
* @since 4.0.0
|
|
121
|
-
* @category Apply
|
|
122
|
-
*/
|
|
123
|
-
export const apply = <In, R extends ResultOrBool>(
|
|
124
|
-
filter: (input: In, ...args: Array<any>) => R,
|
|
125
|
-
input: In,
|
|
126
|
-
...args: Array<any>
|
|
127
|
-
): ApplyResult<In, R> => {
|
|
128
|
-
const result = filter(input, ...args)
|
|
129
|
-
if (result === true) return Result.succeed(input) as any
|
|
130
|
-
if (result === false) return Result.fail(input) as any
|
|
131
|
-
return result as any
|
|
132
|
-
}
|
|
133
|
-
|
|
134
77
|
// -------------------------------------------------------------------------------------
|
|
135
78
|
// Constructors
|
|
136
79
|
// -------------------------------------------------------------------------------------
|
|
@@ -456,6 +399,53 @@ const taggedImpl =
|
|
|
456
399
|
<Input>(input: Input): Result.Result<ExtractTag<Input, Tag>, ExcludeTag<Input, Tag>> =>
|
|
457
400
|
Predicate.isTagged(input, tag) ? Result.succeed(input as any) : Result.fail(input as ExcludeTag<Input, Tag>)
|
|
458
401
|
|
|
402
|
+
/**
|
|
403
|
+
* Creates a filter that extracts a reason from a tagged error.
|
|
404
|
+
*
|
|
405
|
+
* @since 4.0.0
|
|
406
|
+
* @category Constructors
|
|
407
|
+
*/
|
|
408
|
+
export const reason: {
|
|
409
|
+
/**
|
|
410
|
+
* Creates a filter that extracts a reason from a tagged error.
|
|
411
|
+
*
|
|
412
|
+
* @since 4.0.0
|
|
413
|
+
* @category Constructors
|
|
414
|
+
*/
|
|
415
|
+
<Input>(): <const Tag extends Tags<Input>, const ReasonTag extends ReasonTags<ExtractTag<Input, Tag>>>(
|
|
416
|
+
tag: Tag,
|
|
417
|
+
reasonTag: ReasonTag
|
|
418
|
+
) => Filter<Input, ExtractReason<ExtractTag<Input, Tag>, ReasonTag>, Input>
|
|
419
|
+
/**
|
|
420
|
+
* Creates a filter that extracts a reason from a tagged error.
|
|
421
|
+
*
|
|
422
|
+
* @since 4.0.0
|
|
423
|
+
* @category Constructors
|
|
424
|
+
*/
|
|
425
|
+
<Input, const Tag extends Tags<Input>, const ReasonTag extends ReasonTags<ExtractTag<Input, Tag>>>(tag: Tag, reasonTag: ReasonTag): Filter<Input, ExtractReason<ExtractTag<Input, Tag>, ReasonTag>, Input>
|
|
426
|
+
/**
|
|
427
|
+
* Creates a filter that extracts a reason from a tagged error.
|
|
428
|
+
*
|
|
429
|
+
* @since 4.0.0
|
|
430
|
+
* @category Constructors
|
|
431
|
+
*/
|
|
432
|
+
<const Tag extends string, const ReasonTag extends string>(tag: Tag, reasonTag: ReasonTag): <Input>(input: Input) => Result.Result<ExtractReason<ExtractTag<Input, Tag>, ReasonTag>, Input>
|
|
433
|
+
} = function() {
|
|
434
|
+
return arguments.length === 0 ? reasonImpl : reasonImpl(arguments[0] as any, arguments[1] as any)
|
|
435
|
+
} as any
|
|
436
|
+
|
|
437
|
+
const reasonImpl =
|
|
438
|
+
<const Tag extends string, const ReasonTag extends string>(tag: Tag, reasonTag: ReasonTag) =>
|
|
439
|
+
<Input>(input: Input): Result.Result<ExtractTag<Input, Tag>, ExcludeTag<Input, Tag>> => {
|
|
440
|
+
if (
|
|
441
|
+
Predicate.isTagged(input, tag) && Predicate.hasProperty(input, "reason") &&
|
|
442
|
+
Predicate.isTagged(input.reason, reasonTag)
|
|
443
|
+
) {
|
|
444
|
+
return Result.succeed(input.reason as any)
|
|
445
|
+
}
|
|
446
|
+
return Result.fail(input as any)
|
|
447
|
+
}
|
|
448
|
+
|
|
459
449
|
/**
|
|
460
450
|
* Creates a filter that only passes values equal to the specified value using structural equality.
|
|
461
451
|
*
|