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
|
@@ -4,8 +4,11 @@
|
|
|
4
4
|
import * as Cause from "../../Cause.ts"
|
|
5
5
|
import * as Data from "../../Data.ts"
|
|
6
6
|
import * as Effect from "../../Effect.ts"
|
|
7
|
+
import * as ErrorReporter from "../../ErrorReporter.ts"
|
|
7
8
|
import type * as Exit from "../../Exit.ts"
|
|
9
|
+
import { constUndefined } from "../../Function.ts"
|
|
8
10
|
import { hasProperty } from "../../Predicate.ts"
|
|
11
|
+
import * as ServiceMap from "../../ServiceMap.ts"
|
|
9
12
|
import type * as Request from "./HttpServerRequest.ts"
|
|
10
13
|
import * as Respondable from "./HttpServerRespondable.ts"
|
|
11
14
|
import * as Response from "./HttpServerResponse.ts"
|
|
@@ -32,35 +35,24 @@ export class HttpServerError extends Data.TaggedError("HttpServerError")<{
|
|
|
32
35
|
}
|
|
33
36
|
}
|
|
34
37
|
|
|
35
|
-
/**
|
|
36
|
-
* @since 4.0.0
|
|
37
|
-
*/
|
|
38
38
|
readonly [TypeId] = TypeId
|
|
39
39
|
|
|
40
|
-
/**
|
|
41
|
-
* @since 4.0.0
|
|
42
|
-
*/
|
|
43
40
|
override stack = `${this.name}: ${this.message}`
|
|
44
41
|
|
|
45
|
-
/**
|
|
46
|
-
* @since 4.0.0
|
|
47
|
-
*/
|
|
48
42
|
get request(): Request.HttpServerRequest {
|
|
49
43
|
return this.reason.request
|
|
50
44
|
}
|
|
51
45
|
|
|
52
|
-
/**
|
|
53
|
-
* @since 4.0.0
|
|
54
|
-
*/
|
|
55
46
|
get response(): Response.HttpServerResponse | undefined {
|
|
56
47
|
return "response" in this.reason ? this.reason.response : undefined
|
|
57
48
|
}
|
|
58
49
|
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
50
|
+
[Respondable.symbol]() {
|
|
51
|
+
return this.reason[Respondable.symbol]()
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
override get [ErrorReporter.ignore](): boolean {
|
|
55
|
+
return this.reason[ErrorReporter.ignore] ?? false
|
|
64
56
|
}
|
|
65
57
|
|
|
66
58
|
override get message(): string {
|
|
@@ -80,7 +72,7 @@ export class RequestParseError extends Data.TaggedError("RequestParseError")<{
|
|
|
80
72
|
/**
|
|
81
73
|
* @since 4.0.0
|
|
82
74
|
*/
|
|
83
|
-
[Respondable.
|
|
75
|
+
[Respondable.symbol]() {
|
|
84
76
|
return Effect.succeed(Response.empty({ status: 400 }))
|
|
85
77
|
}
|
|
86
78
|
|
|
@@ -102,13 +94,12 @@ export class RouteNotFound extends Data.TaggedError("RouteNotFound")<{
|
|
|
102
94
|
readonly description?: string
|
|
103
95
|
readonly cause?: unknown
|
|
104
96
|
}> implements Respondable.Respondable {
|
|
105
|
-
|
|
106
|
-
* @since 4.0.0
|
|
107
|
-
*/
|
|
108
|
-
[Respondable.TypeId]() {
|
|
97
|
+
[Respondable.symbol]() {
|
|
109
98
|
return Effect.succeed(Response.empty({ status: 404 }))
|
|
110
99
|
}
|
|
111
100
|
|
|
101
|
+
override readonly [ErrorReporter.ignore] = true
|
|
102
|
+
|
|
112
103
|
get methodAndUrl() {
|
|
113
104
|
return `${this.request.method} ${this.request.url}`
|
|
114
105
|
}
|
|
@@ -130,7 +121,7 @@ export class InternalError extends Data.TaggedError("InternalError")<{
|
|
|
130
121
|
/**
|
|
131
122
|
* @since 4.0.0
|
|
132
123
|
*/
|
|
133
|
-
[Respondable.
|
|
124
|
+
[Respondable.symbol]() {
|
|
134
125
|
return Effect.succeed(Response.empty({ status: 500 }))
|
|
135
126
|
}
|
|
136
127
|
|
|
@@ -159,10 +150,7 @@ export class ResponseError extends Data.TaggedError("ResponseError")<{
|
|
|
159
150
|
readonly description?: string
|
|
160
151
|
readonly cause?: unknown
|
|
161
152
|
}> implements Respondable.Respondable {
|
|
162
|
-
|
|
163
|
-
* @since 4.0.0
|
|
164
|
-
*/
|
|
165
|
-
[Respondable.TypeId]() {
|
|
153
|
+
[Respondable.symbol]() {
|
|
166
154
|
return Effect.succeed(Response.empty({ status: 500 }))
|
|
167
155
|
}
|
|
168
156
|
|
|
@@ -196,16 +184,25 @@ export class ServeError extends Data.TaggedError("ServeError")<{
|
|
|
196
184
|
readonly cause: unknown
|
|
197
185
|
}> {}
|
|
198
186
|
|
|
187
|
+
/**
|
|
188
|
+
* @since 4.0.0
|
|
189
|
+
* @category Annotations
|
|
190
|
+
*/
|
|
191
|
+
export class ClientAbort extends ServiceMap.Service<ClientAbort, true>()("effect/http/HttpServerError/ClientAbort") {
|
|
192
|
+
static annotation = this.serviceMap(true).pipe(
|
|
193
|
+
ServiceMap.add(Cause.StackTrace, {
|
|
194
|
+
name: "ClientAbort",
|
|
195
|
+
stack: constUndefined,
|
|
196
|
+
parent: undefined
|
|
197
|
+
})
|
|
198
|
+
)
|
|
199
|
+
}
|
|
200
|
+
|
|
199
201
|
const formatRequestMessage = (reason: string, description: string | undefined, info: string) => {
|
|
200
202
|
const prefix = `${reason} (${info})`
|
|
201
203
|
return description ? `${prefix}: ${description}` : prefix
|
|
202
204
|
}
|
|
203
205
|
|
|
204
|
-
/**
|
|
205
|
-
* @since 4.0.0
|
|
206
|
-
*/
|
|
207
|
-
export const clientAbortFiberId = -499
|
|
208
|
-
|
|
209
206
|
/**
|
|
210
207
|
* @since 4.0.0
|
|
211
208
|
*/
|
|
@@ -215,37 +212,37 @@ export const causeResponse = <E>(
|
|
|
215
212
|
let response: Response.HttpServerResponse | undefined
|
|
216
213
|
let effect = succeedInternalServerError
|
|
217
214
|
const failures: Array<Cause.Reason<E>> = []
|
|
218
|
-
let
|
|
215
|
+
let interrupts: Array<Cause.Interrupt> = []
|
|
219
216
|
let isClientInterrupt = false
|
|
220
217
|
for (let i = 0; i < cause.reasons.length; i++) {
|
|
221
|
-
const
|
|
222
|
-
switch (
|
|
218
|
+
const reason = cause.reasons[i]
|
|
219
|
+
switch (reason._tag) {
|
|
223
220
|
case "Fail": {
|
|
224
|
-
effect = Respondable.toResponseOrElse(
|
|
225
|
-
failures.push(
|
|
221
|
+
effect = Respondable.toResponseOrElse(reason.error, internalServerError)
|
|
222
|
+
failures.push(reason)
|
|
226
223
|
break
|
|
227
224
|
}
|
|
228
225
|
case "Die": {
|
|
229
|
-
if (Response.isHttpServerResponse(
|
|
230
|
-
response =
|
|
226
|
+
if (Response.isHttpServerResponse(reason.defect)) {
|
|
227
|
+
response = reason.defect
|
|
231
228
|
} else {
|
|
232
|
-
effect = Respondable.toResponseOrElseDefect(
|
|
233
|
-
failures.push(
|
|
229
|
+
effect = Respondable.toResponseOrElseDefect(reason.defect, internalServerError)
|
|
230
|
+
failures.push(reason)
|
|
234
231
|
}
|
|
235
232
|
break
|
|
236
233
|
}
|
|
237
234
|
case "Interrupt": {
|
|
238
|
-
isClientInterrupt =
|
|
235
|
+
isClientInterrupt = reason.annotations.has(ClientAbort.key)
|
|
239
236
|
if (failures.length > 0) break
|
|
240
|
-
|
|
237
|
+
interrupts.push(reason)
|
|
241
238
|
break
|
|
242
239
|
}
|
|
243
240
|
}
|
|
244
241
|
}
|
|
245
242
|
if (response) {
|
|
246
243
|
return Effect.succeed([response, Cause.fromReasons(failures)] as const)
|
|
247
|
-
} else if (
|
|
248
|
-
failures.push(
|
|
244
|
+
} else if (interrupts.length > 0 && failures.length === 0) {
|
|
245
|
+
failures.push(...interrupts)
|
|
249
246
|
effect = isClientInterrupt ? clientAbortError : serverAbortError
|
|
250
247
|
}
|
|
251
248
|
return Effect.mapEager(effect, (response) => {
|
|
@@ -43,7 +43,7 @@ export const TypeId = "~effect/http/HttpServerRequest"
|
|
|
43
43
|
*/
|
|
44
44
|
export interface HttpServerRequest extends HttpIncomingMessage.HttpIncomingMessage<HttpServerError> {
|
|
45
45
|
readonly [TypeId]: typeof TypeId
|
|
46
|
-
readonly source:
|
|
46
|
+
readonly source: object
|
|
47
47
|
readonly url: string
|
|
48
48
|
readonly originalUrl: string
|
|
49
49
|
readonly method: HttpMethod
|
|
@@ -12,21 +12,21 @@ import * as Response from "./HttpServerResponse.ts"
|
|
|
12
12
|
* @since 4.0.0
|
|
13
13
|
* @category Type IDs
|
|
14
14
|
*/
|
|
15
|
-
export const
|
|
15
|
+
export const symbol = "~effect/http/HttpServerRespondable"
|
|
16
16
|
|
|
17
17
|
/**
|
|
18
18
|
* @since 4.0.0
|
|
19
19
|
* @category models
|
|
20
20
|
*/
|
|
21
21
|
export interface Respondable {
|
|
22
|
-
|
|
22
|
+
[symbol](): Effect.Effect<HttpServerResponse, unknown>
|
|
23
23
|
}
|
|
24
24
|
|
|
25
25
|
/**
|
|
26
26
|
* @since 4.0.0
|
|
27
27
|
* @category guards
|
|
28
28
|
*/
|
|
29
|
-
export const isRespondable = (u: unknown): u is Respondable => hasProperty(u,
|
|
29
|
+
export const isRespondable = (u: unknown): u is Respondable => hasProperty(u, symbol)
|
|
30
30
|
|
|
31
31
|
const badRequest = Response.empty({ status: 400 })
|
|
32
32
|
const notFound = Response.empty({ status: 404 })
|
|
@@ -39,7 +39,7 @@ export const toResponse = (self: Respondable): Effect.Effect<HttpServerResponse>
|
|
|
39
39
|
if (Response.isHttpServerResponse(self)) {
|
|
40
40
|
return Effect.succeed(self)
|
|
41
41
|
}
|
|
42
|
-
return Effect.orDie(self[
|
|
42
|
+
return Effect.orDie(self[symbol]())
|
|
43
43
|
}
|
|
44
44
|
|
|
45
45
|
/**
|
|
@@ -50,7 +50,7 @@ export const toResponseOrElse = (u: unknown, orElse: HttpServerResponse): Effect
|
|
|
50
50
|
if (Response.isHttpServerResponse(u)) {
|
|
51
51
|
return Effect.succeed(u)
|
|
52
52
|
} else if (isRespondable(u)) {
|
|
53
|
-
return Effect.catchCause(u[
|
|
53
|
+
return Effect.catchCause(u[symbol](), () => Effect.succeed(orElse))
|
|
54
54
|
// add support for some commmon types
|
|
55
55
|
} else if (Schema.isSchemaError(u)) {
|
|
56
56
|
return Effect.succeed(badRequest)
|
|
@@ -68,7 +68,7 @@ export const toResponseOrElseDefect = (u: unknown, orElse: HttpServerResponse):
|
|
|
68
68
|
if (Response.isHttpServerResponse(u)) {
|
|
69
69
|
return Effect.succeed(u)
|
|
70
70
|
} else if (isRespondable(u)) {
|
|
71
|
-
return Effect.catchCause(u[
|
|
71
|
+
return Effect.catchCause(u[symbol](), () => Effect.succeed(orElse))
|
|
72
72
|
}
|
|
73
73
|
return Effect.succeed(orElse)
|
|
74
74
|
}
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
* @since 4.0.0
|
|
3
3
|
*/
|
|
4
4
|
import * as Effect from "../../Effect.ts"
|
|
5
|
+
import * as ErrorReporter from "../../ErrorReporter.ts"
|
|
5
6
|
import type * as FileSystem from "../../FileSystem.ts"
|
|
6
7
|
import { dual } from "../../Function.ts"
|
|
7
8
|
import type * as Inspectable from "../../Inspectable.ts"
|
|
@@ -28,7 +29,7 @@ const TypeId = "~effect/http/HttpServerResponse"
|
|
|
28
29
|
* @since 4.0.0
|
|
29
30
|
* @category models
|
|
30
31
|
*/
|
|
31
|
-
export interface HttpServerResponse extends Inspectable.Inspectable, Pipeable {
|
|
32
|
+
export interface HttpServerResponse extends Inspectable.Inspectable, Pipeable, ErrorReporter.Reportable {
|
|
32
33
|
readonly [TypeId]: typeof TypeId
|
|
33
34
|
readonly status: number
|
|
34
35
|
readonly statusText?: string | undefined
|
|
@@ -327,7 +328,7 @@ export const formData = (
|
|
|
327
328
|
statusText: options?.statusText,
|
|
328
329
|
headers: options?.headers && Headers.fromInput(options.headers),
|
|
329
330
|
cookies: options?.cookies,
|
|
330
|
-
body: Body.
|
|
331
|
+
body: Body.formData(body)
|
|
331
332
|
})
|
|
332
333
|
|
|
333
334
|
/**
|
|
@@ -834,6 +835,7 @@ const Proto: Omit<
|
|
|
834
835
|
> = {
|
|
835
836
|
...PipeInspectableProto,
|
|
836
837
|
[TypeId]: TypeId,
|
|
838
|
+
[ErrorReporter.ignore]: true,
|
|
837
839
|
toJSON(this: HttpServerResponse) {
|
|
838
840
|
return {
|
|
839
841
|
_id: "HttpServerResponse",
|
|
@@ -203,13 +203,13 @@ export const PersistedFileSchema: PersistedFileSchema = Schema.declare(
|
|
|
203
203
|
* @since 4.0.0
|
|
204
204
|
* @category Schemas
|
|
205
205
|
*/
|
|
206
|
-
export const FilesSchema: Schema
|
|
206
|
+
export const FilesSchema: Schema.$Array<PersistedFileSchema> = Schema.Array(PersistedFileSchema)
|
|
207
207
|
|
|
208
208
|
/**
|
|
209
209
|
* @since 4.0.0
|
|
210
210
|
* @category Schemas
|
|
211
211
|
*/
|
|
212
|
-
export const SingleFileSchema: Schema.decodeTo<PersistedFileSchema, Schema
|
|
212
|
+
export const SingleFileSchema: Schema.decodeTo<PersistedFileSchema, Schema.$Array<PersistedFileSchema>> = FilesSchema
|
|
213
213
|
.check(
|
|
214
214
|
Schema.isLengthBetween(1, 1)
|
|
215
215
|
).pipe(
|
|
@@ -43,10 +43,14 @@ export const isUrlParams = (u: unknown): u is UrlParams => hasProperty(u, TypeId
|
|
|
43
43
|
* @category models
|
|
44
44
|
*/
|
|
45
45
|
export type Input =
|
|
46
|
-
|
|
|
46
|
+
| CoercibleRecordInput
|
|
47
47
|
| Iterable<readonly [string, Coercible]>
|
|
48
48
|
| URLSearchParams
|
|
49
49
|
|
|
50
|
+
type CoercibleRecordInput = CoercibleRecord & {
|
|
51
|
+
readonly [Symbol.iterator]?: never
|
|
52
|
+
}
|
|
53
|
+
|
|
50
54
|
/**
|
|
51
55
|
* @since 4.0.0
|
|
52
56
|
* @category models
|
|
@@ -57,8 +61,17 @@ export type Coercible = string | number | bigint | boolean | null | undefined
|
|
|
57
61
|
* @since 4.0.0
|
|
58
62
|
* @category models
|
|
59
63
|
*/
|
|
60
|
-
|
|
61
|
-
|
|
64
|
+
type CoercibleRecordField<A> = A extends Coercible ? A
|
|
65
|
+
: A extends ReadonlyArray<infer Item> ? ReadonlyArray<Item extends Coercible ? Item : never>
|
|
66
|
+
: A extends object ? CoercibleRecord<A>
|
|
67
|
+
: never
|
|
68
|
+
|
|
69
|
+
/**
|
|
70
|
+
* @since 4.0.0
|
|
71
|
+
* @category models
|
|
72
|
+
*/
|
|
73
|
+
export type CoercibleRecord<A extends object = any> = {
|
|
74
|
+
readonly [K in keyof A]: CoercibleRecordField<A[K]>
|
|
62
75
|
}
|
|
63
76
|
|
|
64
77
|
const Proto = {
|
|
@@ -110,7 +123,9 @@ export const fromInput = (input: Input): UrlParams => {
|
|
|
110
123
|
}
|
|
111
124
|
|
|
112
125
|
const fromInputNested = (input: Input): Array<[string | Array<string>, any]> => {
|
|
113
|
-
const entries =
|
|
126
|
+
const entries = typeof (input as any)[Symbol.iterator] === "function"
|
|
127
|
+
? Arr.fromIterable(input as Iterable<readonly [string, Coercible]>)
|
|
128
|
+
: Object.entries(input)
|
|
114
129
|
const out: Array<[string | Array<string>, string]> = []
|
|
115
130
|
for (const [key, value] of entries) {
|
|
116
131
|
if (Array.isArray(value)) {
|
|
@@ -539,7 +554,7 @@ export const schemaJsonField = (field: string): schemaJsonField =>
|
|
|
539
554
|
*/
|
|
540
555
|
export interface schemaRecord extends
|
|
541
556
|
Schema.decodeTo<
|
|
542
|
-
Schema
|
|
557
|
+
Schema.$Record<Schema.String, Schema.Union<readonly [Schema.String, Schema.NonEmptyArray<Schema.String>]>>,
|
|
543
558
|
UrlParamsSchema,
|
|
544
559
|
never,
|
|
545
560
|
never
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import * as Effect from "../../../Effect.ts"
|
|
2
|
+
import type { PreResponseHandler } from "../HttpEffect.ts"
|
|
3
|
+
import type { HttpServerRequest } from "../HttpServerRequest.ts"
|
|
4
|
+
|
|
5
|
+
/** @internal */
|
|
6
|
+
export const requestPreResponseHandlers = new WeakMap<object, PreResponseHandler>()
|
|
7
|
+
|
|
8
|
+
/** @internal */
|
|
9
|
+
export const appendPreResponseHandlerUnsafe = (request: HttpServerRequest, handler: PreResponseHandler): void => {
|
|
10
|
+
const prev = requestPreResponseHandlers.get(request.source)
|
|
11
|
+
const next: PreResponseHandler = prev ?
|
|
12
|
+
(request, response) => Effect.flatMap(prev(request, response), (response) => handler(request, response))
|
|
13
|
+
: handler
|
|
14
|
+
requestPreResponseHandlers.set(request.source, next)
|
|
15
|
+
}
|
|
@@ -67,13 +67,13 @@ export interface HttpApi<
|
|
|
67
67
|
* api is called.
|
|
68
68
|
*/
|
|
69
69
|
middleware<I extends HttpApiMiddleware.AnyId, S>(
|
|
70
|
-
middleware: ServiceMap.
|
|
70
|
+
middleware: ServiceMap.Key<I, S>
|
|
71
71
|
): HttpApi<Id, HttpApiGroup.AddMiddleware<Groups, I>>
|
|
72
72
|
|
|
73
73
|
/**
|
|
74
74
|
* Annotate the `HttpApi`.
|
|
75
75
|
*/
|
|
76
|
-
annotate<I, S>(tag: ServiceMap.
|
|
76
|
+
annotate<I, S>(tag: ServiceMap.Key<I, S>, value: S): HttpApi<Id, Groups>
|
|
77
77
|
|
|
78
78
|
/**
|
|
79
79
|
* Annotate the `HttpApi` with a ServiceMap.
|
|
@@ -137,14 +137,14 @@ const Proto = {
|
|
|
137
137
|
annotations: this.annotations
|
|
138
138
|
})
|
|
139
139
|
},
|
|
140
|
-
middleware(this: AnyWithProps, tag: HttpApiMiddleware.
|
|
140
|
+
middleware(this: AnyWithProps, tag: HttpApiMiddleware.AnyService) {
|
|
141
141
|
return makeProto({
|
|
142
142
|
identifier: this.identifier,
|
|
143
143
|
groups: Record.map(this.groups, (group) => group.middleware(tag as any)),
|
|
144
144
|
annotations: this.annotations
|
|
145
145
|
})
|
|
146
146
|
},
|
|
147
|
-
annotate(this: AnyWithProps, key: ServiceMap.
|
|
147
|
+
annotate(this: AnyWithProps, key: ServiceMap.Key<any, any>, value: any) {
|
|
148
148
|
return makeProto({
|
|
149
149
|
identifier: this.identifier,
|
|
150
150
|
groups: this.groups,
|
|
@@ -212,7 +212,7 @@ export const reflect = <Id extends string, Groups extends HttpApiGroup.Any>(
|
|
|
212
212
|
readonly group: HttpApiGroup.AnyWithProps
|
|
213
213
|
readonly endpoint: HttpApiEndpoint.AnyWithProps
|
|
214
214
|
readonly mergedAnnotations: ServiceMap.ServiceMap<never>
|
|
215
|
-
readonly middleware: ReadonlySet<HttpApiMiddleware.
|
|
215
|
+
readonly middleware: ReadonlySet<HttpApiMiddleware.AnyService>
|
|
216
216
|
readonly successes: ReadonlyMap<number, readonly [Schema.Top, ...Array<Schema.Top>]>
|
|
217
217
|
readonly errors: ReadonlyMap<number, readonly [Schema.Top, ...Array<Schema.Top>]>
|
|
218
218
|
}) => void
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* @since 4.0.0
|
|
3
3
|
*/
|
|
4
4
|
import * as Effect from "../../Effect.ts"
|
|
5
|
-
import * as
|
|
5
|
+
import * as Encoding from "../../Encoding.ts"
|
|
6
6
|
import * as Fiber from "../../Fiber.ts"
|
|
7
7
|
import type { FileSystem } from "../../FileSystem.ts"
|
|
8
8
|
import { identity } from "../../Function.ts"
|
|
@@ -20,7 +20,7 @@ import * as Transformation from "../../SchemaTransformation.ts"
|
|
|
20
20
|
import type * as Scope from "../../Scope.ts"
|
|
21
21
|
import * as ServiceMap from "../../ServiceMap.ts"
|
|
22
22
|
import * as Stream from "../../Stream.ts"
|
|
23
|
-
import type { Covariant } from "../../Types.ts"
|
|
23
|
+
import type { Covariant, NoInfer } from "../../Types.ts"
|
|
24
24
|
import * as UndefinedOr from "../../UndefinedOr.ts"
|
|
25
25
|
import type { Cookie } from "../http/Cookies.ts"
|
|
26
26
|
import type * as Etag from "../http/Etag.ts"
|
|
@@ -63,7 +63,6 @@ export const layer = <Id extends string, Groups extends HttpApiGroup.Any>(
|
|
|
63
63
|
| HttpPlatform
|
|
64
64
|
| Path
|
|
65
65
|
| HttpApiGroup.ToService<Id, Groups>
|
|
66
|
-
| HttpApiGroup.ErrorServicesEncode<Groups>
|
|
67
66
|
> =>
|
|
68
67
|
HttpRouter.use(Effect.fnUntraced(function*(router) {
|
|
69
68
|
const services = yield* Effect.services<
|
|
@@ -168,7 +167,7 @@ export interface Handlers<
|
|
|
168
167
|
| R
|
|
169
168
|
| HttpApiEndpoint.MiddlewareWithName<Endpoints, Name>
|
|
170
169
|
| HttpApiEndpoint.MiddlewareServicesWithName<Endpoints, Name>
|
|
171
|
-
| HttpApiEndpoint.
|
|
170
|
+
| HttpApiEndpoint.ExcludeProvidedWithName<
|
|
172
171
|
Endpoints,
|
|
173
172
|
Name,
|
|
174
173
|
R1 | HttpApiEndpoint.ServerServicesWithName<Endpoints, Name>
|
|
@@ -188,7 +187,7 @@ export interface Handlers<
|
|
|
188
187
|
| R
|
|
189
188
|
| HttpApiEndpoint.MiddlewareWithName<Endpoints, Name>
|
|
190
189
|
| HttpApiEndpoint.MiddlewareServicesWithName<Endpoints, Name>
|
|
191
|
-
| HttpApiEndpoint.
|
|
190
|
+
| HttpApiEndpoint.ExcludeProvidedWithName<
|
|
192
191
|
Endpoints,
|
|
193
192
|
Name,
|
|
194
193
|
R1 | HttpApiEndpoint.ServerServicesWithName<Endpoints, Name>
|
|
@@ -284,6 +283,54 @@ export declare namespace Handlers {
|
|
|
284
283
|
never
|
|
285
284
|
}
|
|
286
285
|
|
|
286
|
+
/**
|
|
287
|
+
* @since 4.0.0
|
|
288
|
+
* @category handlers
|
|
289
|
+
*/
|
|
290
|
+
export const endpoint = <
|
|
291
|
+
ApiId extends string,
|
|
292
|
+
Groups extends HttpApiGroup.Any,
|
|
293
|
+
const GroupName extends HttpApiGroup.Name<Groups>,
|
|
294
|
+
const EndpointName extends HttpApiEndpoint.Name<HttpApiGroup.Endpoints<HttpApiGroup.WithName<Groups, GroupName>>>,
|
|
295
|
+
R,
|
|
296
|
+
Group extends HttpApiGroup.Any = HttpApiGroup.WithName<Groups, GroupName>,
|
|
297
|
+
Endpoint extends HttpApiEndpoint.Any = HttpApiEndpoint.WithName<HttpApiGroup.Endpoints<Group>, EndpointName>
|
|
298
|
+
>(
|
|
299
|
+
api: HttpApi.HttpApi<ApiId, Groups>,
|
|
300
|
+
groupName: GroupName,
|
|
301
|
+
endpointName: EndpointName,
|
|
302
|
+
handler: NoInfer<
|
|
303
|
+
HttpApiEndpoint.HandlerWithName<
|
|
304
|
+
HttpApiGroup.Endpoints<HttpApiGroup.WithName<Groups, GroupName>>,
|
|
305
|
+
EndpointName,
|
|
306
|
+
never,
|
|
307
|
+
R
|
|
308
|
+
>
|
|
309
|
+
>
|
|
310
|
+
): Effect.Effect<
|
|
311
|
+
Effect.Effect<
|
|
312
|
+
HttpServerResponse,
|
|
313
|
+
never,
|
|
314
|
+
| HttpServerRequest
|
|
315
|
+
| HttpRouter.RouteContext
|
|
316
|
+
| Request.ParsedSearchParams
|
|
317
|
+
| Exclude<R, HttpApiEndpoint.MiddlewareProvides<Endpoint>>
|
|
318
|
+
>,
|
|
319
|
+
never,
|
|
320
|
+
| HttpApiEndpoint.ServerServices<Endpoint>
|
|
321
|
+
| HttpApiEndpoint.Middleware<Endpoint>
|
|
322
|
+
| HttpApiEndpoint.MiddlewareServices<Endpoint>
|
|
323
|
+
| Etag.Generator
|
|
324
|
+
| FileSystem
|
|
325
|
+
| HttpPlatform
|
|
326
|
+
| Path
|
|
327
|
+
> =>
|
|
328
|
+
Effect.servicesWith((services: ServiceMap.ServiceMap<any>) => {
|
|
329
|
+
const group = api.groups[groupName] as unknown as HttpApiGroup.AnyWithProps
|
|
330
|
+
const endpoint = group.endpoints[endpointName] as unknown as HttpApiEndpoint.AnyWithProps
|
|
331
|
+
return Effect.succeed(handlerToHttpEffect(group, endpoint, services, handler as any, false))
|
|
332
|
+
})
|
|
333
|
+
|
|
287
334
|
/**
|
|
288
335
|
* @since 4.0.0
|
|
289
336
|
* @category security
|
|
@@ -328,7 +375,7 @@ export const securityDecode = <Security extends HttpApiSecurity.HttpApiSecurity>
|
|
|
328
375
|
} as any
|
|
329
376
|
return HttpServerRequest.asEffect().pipe(
|
|
330
377
|
Effect.flatMap((request) =>
|
|
331
|
-
|
|
378
|
+
Encoding.decodeBase64String((request.headers.authorization ?? "").slice(basicLen)).asEffect()
|
|
332
379
|
),
|
|
333
380
|
Effect.match({
|
|
334
381
|
onFailure: () => empty,
|
|
@@ -356,7 +403,7 @@ export const securitySetCookie = (
|
|
|
356
403
|
self: HttpApiSecurity.ApiKey,
|
|
357
404
|
value: string | Redacted.Redacted,
|
|
358
405
|
options?: Cookie["options"]
|
|
359
|
-
): Effect.Effect<void> =>
|
|
406
|
+
): Effect.Effect<void, never, HttpServerRequest> =>
|
|
360
407
|
HttpEffect.appendPreResponseHandler((_req, response) =>
|
|
361
408
|
Effect.orDie(
|
|
362
409
|
Response.setCookie(response, self.key, stringOrRedacted(value), {
|
|
@@ -497,22 +544,23 @@ function decodePayload(
|
|
|
497
544
|
}
|
|
498
545
|
}
|
|
499
546
|
|
|
500
|
-
function
|
|
547
|
+
function handlerToHttpEffect(
|
|
501
548
|
group: HttpApiGroup.AnyWithProps,
|
|
502
|
-
|
|
503
|
-
services: ServiceMap.ServiceMap<any
|
|
504
|
-
|
|
505
|
-
|
|
549
|
+
endpoint: HttpApiEndpoint.AnyWithProps,
|
|
550
|
+
services: ServiceMap.ServiceMap<any>,
|
|
551
|
+
handler: HttpApiEndpoint.Handler<any, any, any>,
|
|
552
|
+
isRaw: boolean
|
|
553
|
+
) {
|
|
506
554
|
const encodeSuccess = Schema.encodeUnknownEffect(makeSuccessSchema(endpoint))
|
|
507
555
|
const encodeError = Schema.encodeUnknownEffect(makeErrorSchema(endpoint))
|
|
508
|
-
const decodeParams = UndefinedOr.map(
|
|
509
|
-
const decodeHeaders = UndefinedOr.map(
|
|
510
|
-
const decodeQuery = UndefinedOr.map(
|
|
556
|
+
const decodeParams = UndefinedOr.map(endpoint.params, Schema.decodeUnknownEffect)
|
|
557
|
+
const decodeHeaders = UndefinedOr.map(endpoint.headers, Schema.decodeUnknownEffect)
|
|
558
|
+
const decodeQuery = UndefinedOr.map(endpoint.query, Schema.decodeUnknownEffect)
|
|
511
559
|
|
|
512
|
-
const shouldParsePayload = endpoint.payload.size > 0 && !
|
|
560
|
+
const shouldParsePayload = endpoint.payload.size > 0 && !isRaw
|
|
513
561
|
const payloadBy = shouldParsePayload ? buildPayloadDecoders(endpoint.payload) : undefined
|
|
514
562
|
|
|
515
|
-
|
|
563
|
+
return applyMiddleware(
|
|
516
564
|
group,
|
|
517
565
|
endpoint,
|
|
518
566
|
services,
|
|
@@ -545,10 +593,11 @@ function handlerToRoute(
|
|
|
545
593
|
request.payload = yield* result
|
|
546
594
|
}
|
|
547
595
|
}
|
|
548
|
-
const response = yield* handler
|
|
596
|
+
const response = yield* handler(request)
|
|
549
597
|
return Response.isHttpServerResponse(response) ? response : yield* encodeSuccess(response)
|
|
550
598
|
})
|
|
551
599
|
).pipe(
|
|
600
|
+
Effect.withErrorReporting,
|
|
552
601
|
Effect.catch((error) => {
|
|
553
602
|
if (Schema.isSchemaError(error)) {
|
|
554
603
|
error = HttpApiSchemaError.fromSchemaError(error)
|
|
@@ -557,11 +606,18 @@ function handlerToRoute(
|
|
|
557
606
|
}),
|
|
558
607
|
Effect.provideServices(services)
|
|
559
608
|
)
|
|
609
|
+
}
|
|
560
610
|
|
|
611
|
+
function handlerToRoute(
|
|
612
|
+
group: HttpApiGroup.AnyWithProps,
|
|
613
|
+
handler: Handlers.Item<any>,
|
|
614
|
+
services: ServiceMap.ServiceMap<any>
|
|
615
|
+
): HttpRouter.Route<any, any> {
|
|
616
|
+
const endpoint = handler.endpoint
|
|
561
617
|
return HttpRouter.route(
|
|
562
618
|
endpoint.method,
|
|
563
619
|
endpoint.path as HttpRouter.PathInput,
|
|
564
|
-
|
|
620
|
+
handlerToHttpEffect(group, endpoint, services, handler.handler, handler.isRaw),
|
|
565
621
|
{ uninterruptible: handler.uninterruptible }
|
|
566
622
|
)
|
|
567
623
|
}
|
|
@@ -585,7 +641,7 @@ const applyMiddleware = <A extends Effect.Effect<any, any, any>>(
|
|
|
585
641
|
) => {
|
|
586
642
|
const options = { group, endpoint }
|
|
587
643
|
for (const key_ of endpoint.middlewares) {
|
|
588
|
-
const key = key_ as any as HttpApiMiddleware.
|
|
644
|
+
const key = key_ as any as HttpApiMiddleware.AnyService
|
|
589
645
|
const service = services.mapUnsafe.get(key_.key) as HttpApiMiddleware.HttpApiMiddleware<any, any, any>
|
|
590
646
|
const apply = HttpApiMiddleware.isSecurity(key)
|
|
591
647
|
? makeSecurityMiddleware(key, service as any)
|
|
@@ -601,7 +657,7 @@ const securityMiddlewareCache = new WeakMap<
|
|
|
601
657
|
>()
|
|
602
658
|
|
|
603
659
|
const makeSecurityMiddleware = (
|
|
604
|
-
key: HttpApiMiddleware.
|
|
660
|
+
key: HttpApiMiddleware.AnyServiceSecurity,
|
|
605
661
|
service: HttpApiMiddleware.HttpApiMiddlewareSecurity<any, any, any, any>
|
|
606
662
|
): (effect: Effect.Effect<any, any, any>, options: any) => Effect.Effect<any, any, any> => {
|
|
607
663
|
if (securityMiddlewareCache.has(key)) {
|
|
@@ -32,7 +32,7 @@ import * as HttpApiSchema from "./HttpApiSchema.ts"
|
|
|
32
32
|
* @since 4.0.0
|
|
33
33
|
* @category models
|
|
34
34
|
*/
|
|
35
|
-
export type Client<Groups extends HttpApiGroup.Any, E, R> = Simplify<
|
|
35
|
+
export type Client<Groups extends HttpApiGroup.Any, E = HttpApiSchemaError, R = never> = Simplify<
|
|
36
36
|
& {
|
|
37
37
|
readonly [Group in Extract<Groups, { readonly topLevel: false }> as HttpApiGroup.Name<Group>]: Client.Group<
|
|
38
38
|
Group,
|
|
@@ -46,6 +46,14 @@ export type Client<Groups extends HttpApiGroup.Any, E, R> = Simplify<
|
|
|
46
46
|
}
|
|
47
47
|
>
|
|
48
48
|
|
|
49
|
+
/**
|
|
50
|
+
* @since 4.0.0
|
|
51
|
+
* @category models
|
|
52
|
+
*/
|
|
53
|
+
export type ForApi<Api extends HttpApi.Any, E = HttpApiSchemaError, R = never> = Api extends
|
|
54
|
+
HttpApi.HttpApi<infer _Id, infer Groups> ? Client<Groups, E, R> :
|
|
55
|
+
never
|
|
56
|
+
|
|
49
57
|
/**
|
|
50
58
|
* @since 4.0.0
|
|
51
59
|
* @category models
|
|
@@ -128,7 +136,7 @@ const makeClient = <ApiId extends string, Groups extends HttpApiGroup.Any, E, R>
|
|
|
128
136
|
readonly group: HttpApiGroup.AnyWithProps
|
|
129
137
|
readonly endpoint: HttpApiEndpoint.AnyWithProps
|
|
130
138
|
readonly mergedAnnotations: ServiceMap.ServiceMap<never>
|
|
131
|
-
readonly middleware: ReadonlySet<HttpApiMiddleware.
|
|
139
|
+
readonly middleware: ReadonlySet<HttpApiMiddleware.AnyService>
|
|
132
140
|
readonly successes: ReadonlyMap<number, readonly [Schema.Top, ...Array<Schema.Top>]>
|
|
133
141
|
readonly errors: ReadonlyMap<number, readonly [Schema.Top, ...Array<Schema.Top>]>
|
|
134
142
|
readonly endpointFn: Function
|
|
@@ -217,7 +225,7 @@ const makeClient = <ApiId extends string, Groups extends HttpApiGroup.Any, E, R>
|
|
|
217
225
|
})
|
|
218
226
|
|
|
219
227
|
// encoders
|
|
220
|
-
const encodeParams = UndefinedOr.map(
|
|
228
|
+
const encodeParams = UndefinedOr.map(endpoint.params, Schema.encodeUnknownEffect)
|
|
221
229
|
|
|
222
230
|
const payloadSchemas = HttpApiEndpoint.getPayloadSchemas(endpoint)
|
|
223
231
|
const encodePayload = Arr.isArrayNonEmpty(payloadSchemas) ?
|
|
@@ -226,8 +234,8 @@ const makeClient = <ApiId extends string, Groups extends HttpApiGroup.Any, E, R>
|
|
|
226
234
|
: Schema.encodeUnknownEffect(Schema.Union(payloadSchemas)) :
|
|
227
235
|
undefined
|
|
228
236
|
|
|
229
|
-
const encodeHeaders = UndefinedOr.map(
|
|
230
|
-
const encodeQuery = UndefinedOr.map(
|
|
237
|
+
const encodeHeaders = UndefinedOr.map(endpoint.headers, Schema.encodeUnknownEffect)
|
|
238
|
+
const encodeQuery = UndefinedOr.map(endpoint.query, Schema.encodeUnknownEffect)
|
|
231
239
|
|
|
232
240
|
const middlewareKeys = Array.from(onEndpointOptions.middleware, (tag) => `${tag.key}/Client`)
|
|
233
241
|
|
|
@@ -314,7 +322,7 @@ export const make = <ApiId extends string, Groups extends HttpApiGroup.Any>(
|
|
|
314
322
|
readonly baseUrl?: URL | string | undefined
|
|
315
323
|
}
|
|
316
324
|
): Effect.Effect<
|
|
317
|
-
Client<Groups
|
|
325
|
+
Client<Groups>,
|
|
318
326
|
never,
|
|
319
327
|
HttpClient.HttpClient | HttpApiGroup.MiddlewareClient<Groups>
|
|
320
328
|
> =>
|