effect 4.0.5 → 4.0.7
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/ai-docs/package.json +1 -1
- package/ai-docs/src/06_schedule/10_schedules.ts +5 -4
- package/ai-docs/tsconfig.json +3 -1
- package/dist/Arbitrary.d.ts +10 -2
- package/dist/Arbitrary.d.ts.map +1 -1
- package/dist/Arbitrary.js +2 -1
- package/dist/Arbitrary.js.map +1 -1
- package/dist/Array.d.ts +117 -52
- package/dist/Array.d.ts.map +1 -1
- package/dist/Array.js +41 -20
- package/dist/Array.js.map +1 -1
- package/dist/Bytes.d.ts +79 -0
- package/dist/Bytes.d.ts.map +1 -0
- package/dist/Bytes.js +109 -0
- package/dist/Bytes.js.map +1 -0
- package/dist/Channel.d.ts +181 -13
- package/dist/Channel.d.ts.map +1 -1
- package/dist/Channel.js +144 -34
- package/dist/Channel.js.map +1 -1
- package/dist/ChannelSchema.d.ts.map +1 -1
- package/dist/ChannelSchema.js.map +1 -1
- package/dist/Chunk.d.ts +39 -21
- package/dist/Chunk.d.ts.map +1 -1
- package/dist/Chunk.js +26 -17
- package/dist/Chunk.js.map +1 -1
- package/dist/Config.d.ts.map +1 -1
- package/dist/Config.js +8 -3
- package/dist/Config.js.map +1 -1
- package/dist/ConfigProvider.d.ts.map +1 -1
- package/dist/ConfigProvider.js +2 -1
- package/dist/ConfigProvider.js.map +1 -1
- package/dist/Cron.d.ts +2 -2
- package/dist/Cron.d.ts.map +1 -1
- package/dist/Cron.js +6 -3
- package/dist/Cron.js.map +1 -1
- package/dist/Data.d.ts +54 -235
- package/dist/Data.d.ts.map +1 -1
- package/dist/Data.js.map +1 -1
- package/dist/Duration.d.ts.map +1 -1
- package/dist/Duration.js +56 -16
- package/dist/Duration.js.map +1 -1
- package/dist/Effect.d.ts +488 -164
- package/dist/Effect.d.ts.map +1 -1
- package/dist/Effect.js +204 -38
- package/dist/Effect.js.map +1 -1
- package/dist/Equal.d.ts.map +1 -1
- package/dist/Equal.js +8 -1
- package/dist/Equal.js.map +1 -1
- package/dist/Equivalence.d.ts +2 -1
- package/dist/Equivalence.d.ts.map +1 -1
- package/dist/Equivalence.js +12 -8
- package/dist/Equivalence.js.map +1 -1
- package/dist/Exit.d.ts +27 -12
- package/dist/Exit.d.ts.map +1 -1
- package/dist/Exit.js +8 -3
- package/dist/Exit.js.map +1 -1
- package/dist/FiberHandle.d.ts +2 -0
- package/dist/FiberHandle.d.ts.map +1 -1
- package/dist/FiberHandle.js +9 -4
- package/dist/FiberHandle.js.map +1 -1
- package/dist/FiberMap.d.ts +2 -0
- package/dist/FiberMap.d.ts.map +1 -1
- package/dist/FiberMap.js +5 -2
- package/dist/FiberMap.js.map +1 -1
- package/dist/FileSystem.d.ts +5 -0
- package/dist/FileSystem.d.ts.map +1 -1
- package/dist/FileSystem.js +3 -0
- package/dist/FileSystem.js.map +1 -1
- package/dist/Formatter.d.ts.map +1 -1
- package/dist/Formatter.js +27 -13
- package/dist/Formatter.js.map +1 -1
- package/dist/Graph.d.ts.map +1 -1
- package/dist/Graph.js.map +1 -1
- package/dist/Hash.d.ts.map +1 -1
- package/dist/Hash.js +4 -1
- package/dist/Hash.js.map +1 -1
- package/dist/HashSet.d.ts.map +1 -1
- package/dist/HashSet.js.map +1 -1
- package/dist/Iterable.d.ts.map +1 -1
- package/dist/Iterable.js +18 -17
- package/dist/Iterable.js.map +1 -1
- package/dist/JsonPatch.js +4 -0
- package/dist/JsonPatch.js.map +1 -1
- package/dist/JsonSchema.d.ts +9 -3
- package/dist/JsonSchema.d.ts.map +1 -1
- package/dist/JsonSchema.js +32 -43
- package/dist/JsonSchema.js.map +1 -1
- package/dist/Layer.d.ts.map +1 -1
- package/dist/Layer.js +2 -2
- package/dist/Layer.js.map +1 -1
- package/dist/ManagedRuntime.d.ts +19 -1
- package/dist/ManagedRuntime.d.ts.map +1 -1
- package/dist/ManagedRuntime.js +62 -6
- package/dist/ManagedRuntime.js.map +1 -1
- package/dist/Metric.d.ts +135 -3
- package/dist/Metric.d.ts.map +1 -1
- package/dist/Metric.js +197 -25
- package/dist/Metric.js.map +1 -1
- package/dist/MutableHashMap.d.ts.map +1 -1
- package/dist/MutableHashMap.js.map +1 -1
- package/dist/MutableList.d.ts +5 -2
- package/dist/MutableList.d.ts.map +1 -1
- package/dist/MutableList.js +7 -5
- package/dist/MutableList.js.map +1 -1
- package/dist/MutableRef.d.ts.map +1 -1
- package/dist/MutableRef.js +7 -0
- package/dist/MutableRef.js.map +1 -1
- package/dist/Number.js +2 -2
- package/dist/Number.js.map +1 -1
- package/dist/Optic.d.ts.map +1 -1
- package/dist/Optic.js.map +1 -1
- package/dist/PartitionedSemaphore.d.ts +2 -1
- package/dist/PartitionedSemaphore.d.ts.map +1 -1
- package/dist/PartitionedSemaphore.js +22 -12
- package/dist/PartitionedSemaphore.js.map +1 -1
- package/dist/Path.d.ts.map +1 -1
- package/dist/Path.js +8 -1
- package/dist/Path.js.map +1 -1
- package/dist/Pool.d.ts.map +1 -1
- package/dist/Pool.js +77 -27
- package/dist/Pool.js.map +1 -1
- package/dist/PubSub.d.ts.map +1 -1
- package/dist/PubSub.js +17 -13
- package/dist/PubSub.js.map +1 -1
- package/dist/Queue.d.ts +4 -1
- package/dist/Queue.d.ts.map +1 -1
- package/dist/Queue.js +4 -1
- package/dist/Queue.js.map +1 -1
- package/dist/Random.d.ts.map +1 -1
- package/dist/Random.js +1 -1
- package/dist/Random.js.map +1 -1
- package/dist/RcMap.d.ts +12 -7
- package/dist/RcMap.d.ts.map +1 -1
- package/dist/RcMap.js +9 -6
- package/dist/RcMap.js.map +1 -1
- package/dist/Record.d.ts +51 -0
- package/dist/Record.d.ts.map +1 -1
- package/dist/Record.js +17 -0
- package/dist/Record.js.map +1 -1
- package/dist/Ref.d.ts.map +1 -1
- package/dist/Ref.js +8 -0
- package/dist/Ref.js.map +1 -1
- package/dist/References.d.ts +5 -4
- package/dist/References.d.ts.map +1 -1
- package/dist/References.js +5 -4
- package/dist/References.js.map +1 -1
- package/dist/RequestResolver.d.ts +31 -1
- package/dist/RequestResolver.d.ts.map +1 -1
- package/dist/RequestResolver.js +39 -4
- package/dist/RequestResolver.js.map +1 -1
- package/dist/Resource.js +1 -1
- package/dist/Resource.js.map +1 -1
- package/dist/Runtime.d.ts +3 -3
- package/dist/Runtime.d.ts.map +1 -1
- package/dist/Runtime.js +18 -15
- package/dist/Runtime.js.map +1 -1
- package/dist/Schedule.d.ts.map +1 -1
- package/dist/Schedule.js +1 -1
- package/dist/Schedule.js.map +1 -1
- package/dist/Schema.d.ts +408 -340
- package/dist/Schema.d.ts.map +1 -1
- package/dist/Schema.js +370 -47
- package/dist/Schema.js.map +1 -1
- package/dist/SchemaAST.d.ts +9 -7
- package/dist/SchemaAST.d.ts.map +1 -1
- package/dist/SchemaAST.js +38 -25
- package/dist/SchemaAST.js.map +1 -1
- package/dist/SchemaGetter.d.ts +8 -3
- package/dist/SchemaGetter.d.ts.map +1 -1
- package/dist/SchemaGetter.js +15 -5
- package/dist/SchemaGetter.js.map +1 -1
- package/dist/SchemaIssue.d.ts +4 -4
- package/dist/SchemaIssue.d.ts.map +1 -1
- package/dist/SchemaIssue.js +29 -51
- package/dist/SchemaIssue.js.map +1 -1
- package/dist/SchemaParser.d.ts.map +1 -1
- package/dist/SchemaParser.js +48 -22
- package/dist/SchemaParser.js.map +1 -1
- package/dist/SchemaRepresentation.d.ts +75 -11
- package/dist/SchemaRepresentation.d.ts.map +1 -1
- package/dist/SchemaRepresentation.js +41 -13
- package/dist/SchemaRepresentation.js.map +1 -1
- package/dist/SchemaTransformation.d.ts +5 -2
- package/dist/SchemaTransformation.d.ts.map +1 -1
- package/dist/SchemaTransformation.js +10 -3
- package/dist/SchemaTransformation.js.map +1 -1
- package/dist/Scope.d.ts +12 -2
- package/dist/Scope.d.ts.map +1 -1
- package/dist/Scope.js +5 -0
- package/dist/Scope.js.map +1 -1
- package/dist/ScopedCache.d.ts +10 -7
- package/dist/ScopedCache.d.ts.map +1 -1
- package/dist/ScopedCache.js +9 -5
- package/dist/ScopedCache.js.map +1 -1
- package/dist/SemVer.d.ts +1196 -0
- package/dist/SemVer.d.ts.map +1 -0
- package/dist/SemVer.js +756 -0
- package/dist/SemVer.js.map +1 -0
- package/dist/SemVerRange.d.ts +559 -0
- package/dist/SemVerRange.d.ts.map +1 -0
- package/dist/SemVerRange.js +551 -0
- package/dist/SemVerRange.js.map +1 -0
- package/dist/Semaphore.d.ts.map +1 -1
- package/dist/Semaphore.js +54 -35
- package/dist/Semaphore.js.map +1 -1
- package/dist/Sink.d.ts.map +1 -1
- package/dist/Sink.js +13 -4
- package/dist/Sink.js.map +1 -1
- package/dist/Stream.d.ts +235 -8
- package/dist/Stream.d.ts.map +1 -1
- package/dist/Stream.js +167 -70
- package/dist/Stream.js.map +1 -1
- package/dist/String.d.ts +7 -2
- package/dist/String.d.ts.map +1 -1
- package/dist/String.js +11 -6
- package/dist/String.js.map +1 -1
- package/dist/TextDiff.d.ts +399 -0
- package/dist/TextDiff.d.ts.map +1 -0
- package/dist/TextDiff.js +634 -0
- package/dist/TextDiff.js.map +1 -0
- package/dist/Tracer.d.ts +11 -1
- package/dist/Tracer.d.ts.map +1 -1
- package/dist/Tracer.js +6 -1
- package/dist/Tracer.js.map +1 -1
- package/dist/TxHashMap.d.ts.map +1 -1
- package/dist/TxHashMap.js.map +1 -1
- package/dist/TxHashSet.d.ts.map +1 -1
- package/dist/TxHashSet.js.map +1 -1
- package/dist/ai/AiError.d.ts +68 -4
- package/dist/ai/AiError.d.ts.map +1 -1
- package/dist/ai/AiError.js +50 -2
- package/dist/ai/AiError.js.map +1 -1
- package/dist/ai/Chat.d.ts +1 -2
- package/dist/ai/Chat.d.ts.map +1 -1
- package/dist/ai/Chat.js +6 -3
- package/dist/ai/Chat.js.map +1 -1
- package/dist/ai/Decision.d.ts +46 -1
- package/dist/ai/Decision.d.ts.map +1 -1
- package/dist/ai/Decision.js.map +1 -1
- package/dist/ai/DecisionModel.d.ts +129 -11
- package/dist/ai/DecisionModel.d.ts.map +1 -1
- package/dist/ai/DecisionModel.js +182 -94
- package/dist/ai/DecisionModel.js.map +1 -1
- package/dist/ai/EmbeddingModel.d.ts +10 -0
- package/dist/ai/EmbeddingModel.d.ts.map +1 -1
- package/dist/ai/EmbeddingModel.js +21 -7
- package/dist/ai/EmbeddingModel.js.map +1 -1
- package/dist/ai/LanguageModel.d.ts.map +1 -1
- package/dist/ai/LanguageModel.js +9 -0
- package/dist/ai/LanguageModel.js.map +1 -1
- package/dist/ai/McpClient.d.ts +289 -0
- package/dist/ai/McpClient.d.ts.map +1 -0
- package/dist/ai/McpClient.js +819 -0
- package/dist/ai/McpClient.js.map +1 -0
- package/dist/ai/McpClientError.d.ts +254 -0
- package/dist/ai/McpClientError.d.ts.map +1 -0
- package/dist/ai/McpClientError.js +260 -0
- package/dist/ai/McpClientError.js.map +1 -0
- package/dist/ai/McpProtocol.d.ts +2 -2
- package/dist/ai/McpProtocol.d.ts.map +1 -1
- package/dist/ai/McpSchema.d.ts +258 -125
- package/dist/ai/McpSchema.d.ts.map +1 -1
- package/dist/ai/McpSchema.js +94 -24
- package/dist/ai/McpSchema.js.map +1 -1
- package/dist/ai/McpServer.d.ts.map +1 -1
- package/dist/ai/McpServer.js +46 -37
- package/dist/ai/McpServer.js.map +1 -1
- package/dist/ai/Prompt.d.ts +74 -20
- package/dist/ai/Prompt.d.ts.map +1 -1
- package/dist/ai/Prompt.js +61 -1
- package/dist/ai/Prompt.js.map +1 -1
- package/dist/ai/Response.d.ts +160 -3
- package/dist/ai/Response.d.ts.map +1 -1
- package/dist/ai/Response.js +39 -37
- package/dist/ai/Response.js.map +1 -1
- package/dist/ai/Tool.d.ts +36 -4
- package/dist/ai/Tool.d.ts.map +1 -1
- package/dist/ai/Tool.js +5 -2
- package/dist/ai/Tool.js.map +1 -1
- package/dist/ai/Toolkit.d.ts +48 -1
- package/dist/ai/Toolkit.d.ts.map +1 -1
- package/dist/ai/Toolkit.js +73 -13
- package/dist/ai/Toolkit.js.map +1 -1
- package/dist/ai/index.d.ts +10 -0
- package/dist/ai/index.d.ts.map +1 -1
- package/dist/ai/index.js +10 -0
- package/dist/ai/index.js.map +1 -1
- package/dist/ai/internal/mcpCore.js.map +1 -1
- package/dist/ai/internal/mcpProtocol/v2024_11_05.js +1 -1
- package/dist/ai/internal/mcpProtocol/v2024_11_05.js.map +1 -1
- package/dist/ai/internal/mcpProtocol/v2025_03_26.js +1 -1
- package/dist/ai/internal/mcpProtocol/v2025_03_26.js.map +1 -1
- package/dist/ai/internal/mcpProtocol/v2025_06_18.js +2 -2
- package/dist/ai/internal/mcpProtocol/v2025_06_18.js.map +1 -1
- package/dist/ai/internal/mcpProtocol/v2025_11_25.js +2 -2
- package/dist/ai/internal/mcpProtocol/v2025_11_25.js.map +1 -1
- package/dist/ai/internal/mcpProtocol/v2026_07_28.js +4 -7
- package/dist/ai/internal/mcpProtocol/v2026_07_28.js.map +1 -1
- package/dist/ai/internal/mcpProtocol.js +16 -2
- package/dist/ai/internal/mcpProtocol.js.map +1 -1
- package/dist/ai/internal/mcpRuntime.js +3 -4
- package/dist/ai/internal/mcpRuntime.js.map +1 -1
- package/dist/ai/internal/mcpSchema/v2024_11_05.js +19 -13
- package/dist/ai/internal/mcpSchema/v2024_11_05.js.map +1 -1
- package/dist/ai/internal/mcpSchema/v2025_03_26.js +3 -2
- package/dist/ai/internal/mcpSchema/v2025_03_26.js.map +1 -1
- package/dist/ai/internal/mcpSchema/v2025_06_18.js +7 -7
- package/dist/ai/internal/mcpSchema/v2025_06_18.js.map +1 -1
- package/dist/ai/internal/mcpSchema/v2025_11_25.js +8 -8
- package/dist/ai/internal/mcpSchema/v2025_11_25.js.map +1 -1
- package/dist/ai/internal/mcpSchema/v2026_07_28.js +43 -42
- package/dist/ai/internal/mcpSchema/v2026_07_28.js.map +1 -1
- package/dist/cli/Argument.d.ts +15 -0
- package/dist/cli/Argument.d.ts.map +1 -1
- package/dist/cli/Argument.js +5 -0
- package/dist/cli/Argument.js.map +1 -1
- package/dist/cli/CliError.d.ts +120 -2
- package/dist/cli/CliError.d.ts.map +1 -1
- package/dist/cli/CliError.js +106 -5
- package/dist/cli/CliError.js.map +1 -1
- package/dist/cli/CliOutput.d.ts +155 -6
- package/dist/cli/CliOutput.d.ts.map +1 -1
- package/dist/cli/CliOutput.js +62 -6
- package/dist/cli/CliOutput.js.map +1 -1
- package/dist/cli/Command.d.ts +310 -18
- package/dist/cli/Command.d.ts.map +1 -1
- package/dist/cli/Command.js +164 -33
- package/dist/cli/Command.js.map +1 -1
- package/dist/cli/Completions.d.ts +63 -0
- package/dist/cli/Completions.d.ts.map +1 -1
- package/dist/cli/Completions.js +49 -9
- package/dist/cli/Completions.js.map +1 -1
- package/dist/cli/Flag.d.ts +130 -0
- package/dist/cli/Flag.d.ts.map +1 -1
- package/dist/cli/Flag.js +61 -0
- package/dist/cli/Flag.js.map +1 -1
- package/dist/cli/GlobalFlag.d.ts.map +1 -1
- package/dist/cli/GlobalFlag.js +14 -6
- package/dist/cli/GlobalFlag.js.map +1 -1
- package/dist/cli/Param.d.ts +116 -0
- package/dist/cli/Param.d.ts.map +1 -1
- package/dist/cli/Param.js +77 -2
- package/dist/cli/Param.js.map +1 -1
- package/dist/cli/TerminalCapabilities.d.ts +85 -0
- package/dist/cli/TerminalCapabilities.d.ts.map +1 -0
- package/dist/cli/TerminalCapabilities.js +124 -0
- package/dist/cli/TerminalCapabilities.js.map +1 -0
- package/dist/cli/index.d.ts +5 -0
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +5 -0
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/internal/command.d.ts +2 -1
- package/dist/cli/internal/command.d.ts.map +1 -1
- package/dist/cli/internal/command.js +5 -2
- package/dist/cli/internal/command.js.map +1 -1
- package/dist/cli/internal/completions/bash.js +77 -30
- package/dist/cli/internal/completions/bash.js.map +1 -1
- package/dist/cli/internal/completions/descriptor.js +9 -1
- package/dist/cli/internal/completions/descriptor.js.map +1 -1
- package/dist/cli/internal/completions/fish.js +10 -8
- package/dist/cli/internal/completions/fish.js.map +1 -1
- package/dist/cli/internal/completions/powershell.js +18 -9
- package/dist/cli/internal/completions/powershell.js.map +1 -1
- package/dist/cli/internal/completions/zsh.js +8 -5
- package/dist/cli/internal/completions/zsh.js.map +1 -1
- package/dist/cli/internal/formatter.d.ts +2 -0
- package/dist/cli/internal/formatter.d.ts.map +1 -0
- package/dist/cli/internal/formatter.js +15 -0
- package/dist/cli/internal/formatter.js.map +1 -0
- package/dist/cli/internal/lexer.js +24 -10
- package/dist/cli/internal/lexer.js.map +1 -1
- package/dist/cli/internal/parser.js +24 -12
- package/dist/cli/internal/parser.js.map +1 -1
- package/dist/cluster/ClusterCron.d.ts +29 -1
- package/dist/cluster/ClusterCron.d.ts.map +1 -1
- package/dist/cluster/ClusterCron.js +64 -32
- package/dist/cluster/ClusterCron.js.map +1 -1
- package/dist/cluster/ClusterMetrics.d.ts +143 -7
- package/dist/cluster/ClusterMetrics.d.ts.map +1 -1
- package/dist/cluster/ClusterMetrics.js +151 -7
- package/dist/cluster/ClusterMetrics.js.map +1 -1
- package/dist/cluster/ClusterWorkflowEngine.d.ts +1 -1
- package/dist/cluster/ClusterWorkflowEngine.d.ts.map +1 -1
- package/dist/cluster/ClusterWorkflowEngine.js +82 -21
- package/dist/cluster/ClusterWorkflowEngine.js.map +1 -1
- package/dist/cluster/Entity.d.ts +2 -0
- package/dist/cluster/Entity.d.ts.map +1 -1
- package/dist/cluster/Entity.js.map +1 -1
- package/dist/cluster/MessageStorage.d.ts +44 -45
- package/dist/cluster/MessageStorage.d.ts.map +1 -1
- package/dist/cluster/MessageStorage.js +6 -7
- package/dist/cluster/MessageStorage.js.map +1 -1
- package/dist/cluster/Runners.d.ts.map +1 -1
- package/dist/cluster/Runners.js +54 -15
- package/dist/cluster/Runners.js.map +1 -1
- package/dist/cluster/Sharding.d.ts +1 -0
- package/dist/cluster/Sharding.d.ts.map +1 -1
- package/dist/cluster/Sharding.js +155 -52
- package/dist/cluster/Sharding.js.map +1 -1
- package/dist/cluster/ShardingConfig.d.ts +30 -0
- package/dist/cluster/ShardingConfig.d.ts.map +1 -1
- package/dist/cluster/ShardingConfig.js +4 -0
- package/dist/cluster/ShardingConfig.js.map +1 -1
- package/dist/cluster/Snowflake.d.ts.map +1 -1
- package/dist/cluster/Snowflake.js +3 -7
- package/dist/cluster/Snowflake.js.map +1 -1
- package/dist/cluster/SqlMessageStorage.d.ts.map +1 -1
- package/dist/cluster/SqlMessageStorage.js +40 -50
- package/dist/cluster/SqlMessageStorage.js.map +1 -1
- package/dist/cluster/SqlRunnerStorage.d.ts +2 -2
- package/dist/cluster/SqlRunnerStorage.d.ts.map +1 -1
- package/dist/cluster/SqlRunnerStorage.js +97 -43
- package/dist/cluster/SqlRunnerStorage.js.map +1 -1
- package/dist/cluster/internal/entityManager.js +119 -28
- package/dist/cluster/internal/entityManager.js.map +1 -1
- package/dist/devtools/DevTools.d.ts +3 -2
- package/dist/devtools/DevTools.d.ts.map +1 -1
- package/dist/devtools/DevTools.js +3 -2
- package/dist/devtools/DevTools.js.map +1 -1
- package/dist/devtools/DevToolsClient.d.ts +11 -0
- package/dist/devtools/DevToolsClient.d.ts.map +1 -1
- package/dist/devtools/DevToolsClient.js +33 -4
- package/dist/devtools/DevToolsClient.js.map +1 -1
- package/dist/encoding/Base64.js +36 -0
- package/dist/encoding/Base64.js.map +1 -1
- package/dist/encoding/Base64Url.d.ts +29 -0
- package/dist/encoding/Base64Url.d.ts.map +1 -1
- package/dist/encoding/Base64Url.js +29 -0
- package/dist/encoding/Base64Url.js.map +1 -1
- package/dist/encoding/Ini.d.ts.map +1 -1
- package/dist/encoding/Ini.js +3 -0
- package/dist/encoding/Ini.js.map +1 -1
- package/dist/encoding/JsonArray.d.ts +270 -0
- package/dist/encoding/JsonArray.d.ts.map +1 -0
- package/dist/encoding/JsonArray.js +691 -0
- package/dist/encoding/JsonArray.js.map +1 -0
- package/dist/encoding/Ndjson.d.ts +43 -4
- package/dist/encoding/Ndjson.d.ts.map +1 -1
- package/dist/encoding/Ndjson.js +169 -18
- package/dist/encoding/Ndjson.js.map +1 -1
- package/dist/encoding/SchemaBinary.d.ts +9 -1
- package/dist/encoding/SchemaBinary.d.ts.map +1 -1
- package/dist/encoding/SchemaBinary.js +12 -19
- package/dist/encoding/SchemaBinary.js.map +1 -1
- package/dist/encoding/Sse.d.ts.map +1 -1
- package/dist/encoding/Sse.js +3 -3
- package/dist/encoding/Sse.js.map +1 -1
- package/dist/encoding/Tar.d.ts +309 -0
- package/dist/encoding/Tar.d.ts.map +1 -0
- package/dist/encoding/Tar.js +1182 -0
- package/dist/encoding/Tar.js.map +1 -0
- package/dist/encoding/Toml.d.ts.map +1 -1
- package/dist/encoding/Toml.js +24 -19
- package/dist/encoding/Toml.js.map +1 -1
- package/dist/encoding/Xml.d.ts +464 -0
- package/dist/encoding/Xml.d.ts.map +1 -0
- package/dist/encoding/Xml.js +1619 -0
- package/dist/encoding/Xml.js.map +1 -0
- package/dist/encoding/Yaml.d.ts +6 -2
- package/dist/encoding/Yaml.d.ts.map +1 -1
- package/dist/encoding/Yaml.js +97 -34
- package/dist/encoding/Yaml.js.map +1 -1
- package/dist/encoding/Zip.d.ts +413 -0
- package/dist/encoding/Zip.d.ts.map +1 -0
- package/dist/encoding/Zip.js +1255 -0
- package/dist/encoding/Zip.js.map +1 -0
- package/dist/encoding/index.d.ts +20 -0
- package/dist/encoding/index.d.ts.map +1 -1
- package/dist/encoding/index.js +20 -0
- package/dist/encoding/index.js.map +1 -1
- package/dist/eventlog/EventJournal.d.ts +90 -5
- package/dist/eventlog/EventJournal.d.ts.map +1 -1
- package/dist/eventlog/EventJournal.js +488 -228
- package/dist/eventlog/EventJournal.js.map +1 -1
- package/dist/eventlog/EventLog.d.ts +180 -12
- package/dist/eventlog/EventLog.d.ts.map +1 -1
- package/dist/eventlog/EventLog.js +394 -146
- package/dist/eventlog/EventLog.js.map +1 -1
- package/dist/eventlog/EventLogEncryption.d.ts +36 -30
- package/dist/eventlog/EventLogEncryption.d.ts.map +1 -1
- package/dist/eventlog/EventLogEncryption.js +97 -38
- package/dist/eventlog/EventLogEncryption.js.map +1 -1
- package/dist/eventlog/EventLogMessage.d.ts +74 -34
- package/dist/eventlog/EventLogMessage.d.ts.map +1 -1
- package/dist/eventlog/EventLogMessage.js +45 -11
- package/dist/eventlog/EventLogMessage.js.map +1 -1
- package/dist/eventlog/EventLogRemote.d.ts +45 -8
- package/dist/eventlog/EventLogRemote.d.ts.map +1 -1
- package/dist/eventlog/EventLogRemote.js +51 -14
- package/dist/eventlog/EventLogRemote.js.map +1 -1
- package/dist/eventlog/EventLogServer.d.ts +46 -3
- package/dist/eventlog/EventLogServer.d.ts.map +1 -1
- package/dist/eventlog/EventLogServer.js +119 -19
- package/dist/eventlog/EventLogServer.js.map +1 -1
- package/dist/eventlog/EventLogServerEncrypted.d.ts +23 -33
- package/dist/eventlog/EventLogServerEncrypted.d.ts.map +1 -1
- package/dist/eventlog/EventLogServerEncrypted.js +97 -70
- package/dist/eventlog/EventLogServerEncrypted.js.map +1 -1
- package/dist/eventlog/EventLogServerUnencrypted.d.ts +39 -5
- package/dist/eventlog/EventLogServerUnencrypted.d.ts.map +1 -1
- package/dist/eventlog/EventLogServerUnencrypted.js +151 -69
- package/dist/eventlog/EventLogServerUnencrypted.js.map +1 -1
- package/dist/eventlog/EventRow.d.ts +288 -0
- package/dist/eventlog/EventRow.d.ts.map +1 -0
- package/dist/eventlog/EventRow.js +435 -0
- package/dist/eventlog/EventRow.js.map +1 -0
- package/dist/eventlog/SqlEventJournal.d.ts +18 -18
- package/dist/eventlog/SqlEventJournal.d.ts.map +1 -1
- package/dist/eventlog/SqlEventJournal.js +417 -169
- package/dist/eventlog/SqlEventJournal.js.map +1 -1
- package/dist/eventlog/SqlEventLogServerEncrypted.d.ts +10 -18
- package/dist/eventlog/SqlEventLogServerEncrypted.d.ts.map +1 -1
- package/dist/eventlog/SqlEventLogServerEncrypted.js +179 -69
- package/dist/eventlog/SqlEventLogServerEncrypted.js.map +1 -1
- package/dist/eventlog/SqlEventLogServerUnencrypted.d.ts +23 -3
- package/dist/eventlog/SqlEventLogServerUnencrypted.d.ts.map +1 -1
- package/dist/eventlog/SqlEventLogServerUnencrypted.js +102 -51
- package/dist/eventlog/SqlEventLogServerUnencrypted.js.map +1 -1
- package/dist/eventlog/index.d.ts +5 -0
- package/dist/eventlog/index.d.ts.map +1 -1
- package/dist/eventlog/index.js +5 -0
- package/dist/eventlog/index.js.map +1 -1
- package/dist/eventlog/internal/conflicts.d.ts +46 -0
- package/dist/eventlog/internal/conflicts.d.ts.map +1 -0
- package/dist/eventlog/internal/conflicts.js +89 -0
- package/dist/eventlog/internal/conflicts.js.map +1 -0
- package/dist/graphql/GraphQLClientError.d.ts +2 -2
- package/dist/graphql/GraphQLClientError.d.ts.map +1 -1
- package/dist/graphql/GraphQLClientError.js +4 -18
- package/dist/graphql/GraphQLClientError.js.map +1 -1
- package/dist/graphql/GraphQLProtocol.d.ts +12 -9
- package/dist/graphql/GraphQLProtocol.d.ts.map +1 -1
- package/dist/graphql/GraphQLProtocol.js +4 -3
- package/dist/graphql/GraphQLProtocol.js.map +1 -1
- package/dist/graphql/GraphQLResolver.d.ts +2 -0
- package/dist/graphql/GraphQLResolver.d.ts.map +1 -1
- package/dist/graphql/GraphQLResolver.js +74 -32
- package/dist/graphql/GraphQLResolver.js.map +1 -1
- package/dist/http/Cookies.d.ts.map +1 -1
- package/dist/http/Cookies.js +10 -9
- package/dist/http/Cookies.js.map +1 -1
- package/dist/http/FetchHttpClient.d.ts +8 -1
- package/dist/http/FetchHttpClient.d.ts.map +1 -1
- package/dist/http/FetchHttpClient.js +51 -4
- package/dist/http/FetchHttpClient.js.map +1 -1
- package/dist/http/FindMyWay/internal/router.js +10 -0
- package/dist/http/FindMyWay/internal/router.js.map +1 -1
- package/dist/http/Headers.d.ts +227 -0
- package/dist/http/Headers.d.ts.map +1 -1
- package/dist/http/Headers.js +261 -0
- package/dist/http/Headers.js.map +1 -1
- package/dist/http/HttpClient.d.ts +516 -0
- package/dist/http/HttpClient.d.ts.map +1 -1
- package/dist/http/HttpClient.js +286 -23
- package/dist/http/HttpClient.js.map +1 -1
- package/dist/http/HttpClientError.d.ts +8 -1
- package/dist/http/HttpClientError.d.ts.map +1 -1
- package/dist/http/HttpClientError.js +37 -1
- package/dist/http/HttpClientError.js.map +1 -1
- package/dist/http/HttpClientRequest.d.ts +127 -3
- package/dist/http/HttpClientRequest.d.ts.map +1 -1
- package/dist/http/HttpClientRequest.js +45 -3
- package/dist/http/HttpClientRequest.js.map +1 -1
- package/dist/http/HttpClientResponse.d.ts +53 -0
- package/dist/http/HttpClientResponse.d.ts.map +1 -1
- package/dist/http/HttpClientResponse.js +47 -0
- package/dist/http/HttpClientResponse.js.map +1 -1
- package/dist/http/HttpEffect.d.ts +6 -2
- package/dist/http/HttpEffect.d.ts.map +1 -1
- package/dist/http/HttpEffect.js +21 -17
- package/dist/http/HttpEffect.js.map +1 -1
- package/dist/http/HttpIncomingMessage.d.ts +2 -1
- package/dist/http/HttpIncomingMessage.d.ts.map +1 -1
- package/dist/http/HttpIncomingMessage.js +3 -23
- package/dist/http/HttpIncomingMessage.js.map +1 -1
- package/dist/http/HttpMiddleware.d.ts +119 -2
- package/dist/http/HttpMiddleware.d.ts.map +1 -1
- package/dist/http/HttpMiddleware.js +173 -29
- package/dist/http/HttpMiddleware.js.map +1 -1
- package/dist/http/HttpRouter.d.ts.map +1 -1
- package/dist/http/HttpRouter.js +9 -3
- package/dist/http/HttpRouter.js.map +1 -1
- package/dist/http/HttpServerError.d.ts +5 -2
- package/dist/http/HttpServerError.d.ts.map +1 -1
- package/dist/http/HttpServerError.js +7 -5
- package/dist/http/HttpServerError.js.map +1 -1
- package/dist/http/HttpServerRequest.d.ts +30 -5
- package/dist/http/HttpServerRequest.d.ts.map +1 -1
- package/dist/http/HttpServerRequest.js +109 -20
- package/dist/http/HttpServerRequest.js.map +1 -1
- package/dist/http/HttpServerResponse.d.ts +17 -8
- package/dist/http/HttpServerResponse.d.ts.map +1 -1
- package/dist/http/HttpServerResponse.js +37 -21
- package/dist/http/HttpServerResponse.js.map +1 -1
- package/dist/http/HttpStaticServer.d.ts +0 -12
- package/dist/http/HttpStaticServer.d.ts.map +1 -1
- package/dist/http/HttpStaticServer.js +65 -24
- package/dist/http/HttpStaticServer.js.map +1 -1
- package/dist/http/MultipartParser/internal/contentType.d.ts +15 -1
- package/dist/http/MultipartParser/internal/contentType.d.ts.map +1 -1
- package/dist/http/MultipartParser/internal/contentType.js +89 -7
- package/dist/http/MultipartParser/internal/contentType.js.map +1 -1
- package/dist/http/MultipartParser/internal/headers.d.ts.map +1 -1
- package/dist/http/MultipartParser/internal/headers.js +4 -12
- package/dist/http/MultipartParser/internal/headers.js.map +1 -1
- package/dist/http/MultipartParser/internal/multipart.d.ts.map +1 -1
- package/dist/http/MultipartParser/internal/multipart.js +6 -27
- package/dist/http/MultipartParser/internal/multipart.js.map +1 -1
- package/dist/http/Url.d.ts.map +1 -1
- package/dist/http/Url.js +6 -1
- package/dist/http/Url.js.map +1 -1
- package/dist/http/UrlParams.d.ts +3 -1
- package/dist/http/UrlParams.d.ts.map +1 -1
- package/dist/http/UrlParams.js +4 -2
- package/dist/http/UrlParams.js.map +1 -1
- package/dist/http/internal/compression.js +4 -5
- package/dist/http/internal/compression.js.map +1 -1
- package/dist/http/internal/decompression.js +20 -11
- package/dist/http/internal/decompression.js.map +1 -1
- package/dist/http/internal/httpBody.js +8 -1
- package/dist/http/internal/httpBody.js.map +1 -1
- package/dist/http/internal/lazyStream.d.ts +2 -0
- package/dist/http/internal/lazyStream.d.ts.map +1 -0
- package/dist/http/internal/lazyStream.js +18 -0
- package/dist/http/internal/lazyStream.js.map +1 -0
- package/dist/http/internal/requestState.d.ts +2 -0
- package/dist/http/internal/requestState.d.ts.map +1 -0
- package/dist/http/internal/requestState.js +28 -0
- package/dist/http/internal/requestState.js.map +1 -0
- package/dist/http/internal/urlParams.js +25 -0
- package/dist/http/internal/urlParams.js.map +1 -1
- package/dist/http/internal/webResponse.d.ts +2 -0
- package/dist/http/internal/webResponse.d.ts.map +1 -0
- package/dist/http/internal/webResponse.js +12 -0
- package/dist/http/internal/webResponse.js.map +1 -0
- package/dist/http-api/HttpApi.d.ts +3 -6
- package/dist/http-api/HttpApi.d.ts.map +1 -1
- package/dist/http-api/HttpApi.js +4 -7
- package/dist/http-api/HttpApi.js.map +1 -1
- package/dist/http-api/HttpApiBuilder.d.ts.map +1 -1
- package/dist/http-api/HttpApiBuilder.js +142 -23
- package/dist/http-api/HttpApiBuilder.js.map +1 -1
- package/dist/http-api/HttpApiClient.d.ts +99 -4
- package/dist/http-api/HttpApiClient.d.ts.map +1 -1
- package/dist/http-api/HttpApiClient.js +218 -60
- package/dist/http-api/HttpApiClient.js.map +1 -1
- package/dist/http-api/HttpApiEndpoint.d.ts +72 -29
- package/dist/http-api/HttpApiEndpoint.d.ts.map +1 -1
- package/dist/http-api/HttpApiEndpoint.js +140 -14
- package/dist/http-api/HttpApiEndpoint.js.map +1 -1
- package/dist/http-api/HttpApiError.d.ts +58 -0
- package/dist/http-api/HttpApiError.d.ts.map +1 -1
- package/dist/http-api/HttpApiError.js +38 -12
- package/dist/http-api/HttpApiError.js.map +1 -1
- package/dist/http-api/HttpApiScalar.d.ts +2 -1
- package/dist/http-api/HttpApiScalar.d.ts.map +1 -1
- package/dist/http-api/HttpApiScalar.js +6 -3
- package/dist/http-api/HttpApiScalar.js.map +1 -1
- package/dist/http-api/HttpApiSchema.d.ts +242 -13
- package/dist/http-api/HttpApiSchema.d.ts.map +1 -1
- package/dist/http-api/HttpApiSchema.js +149 -5
- package/dist/http-api/HttpApiSchema.js.map +1 -1
- package/dist/http-api/HttpApiSwagger.d.ts +5 -0
- package/dist/http-api/HttpApiSwagger.d.ts.map +1 -1
- package/dist/http-api/HttpApiSwagger.js +14 -4
- package/dist/http-api/HttpApiSwagger.js.map +1 -1
- package/dist/http-api/HttpApiTest.d.ts +13 -2
- package/dist/http-api/HttpApiTest.d.ts.map +1 -1
- package/dist/http-api/HttpApiTest.js +33 -11
- package/dist/http-api/HttpApiTest.js.map +1 -1
- package/dist/http-api/OpenApi.d.ts +17 -3
- package/dist/http-api/OpenApi.d.ts.map +1 -1
- package/dist/http-api/OpenApi.js +81 -47
- package/dist/http-api/OpenApi.js.map +1 -1
- package/dist/http-api/internal/path.js +35 -10
- package/dist/http-api/internal/path.js.map +1 -1
- package/dist/http-api/internal/toCodecHttpProperties.d.ts +2 -0
- package/dist/http-api/internal/toCodecHttpProperties.d.ts.map +1 -0
- package/dist/http-api/internal/toCodecHttpProperties.js +38 -0
- package/dist/http-api/internal/toCodecHttpProperties.js.map +1 -0
- package/dist/index.d.ts +20 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +20 -0
- package/dist/index.js.map +1 -1
- package/dist/internal/arbitrary/runner.d.ts.map +1 -1
- package/dist/internal/arbitrary/runner.js +120 -44
- package/dist/internal/arbitrary/runner.js.map +1 -1
- package/dist/internal/core.js +3 -1
- package/dist/internal/core.js.map +1 -1
- package/dist/internal/dateTime.js +19 -7
- package/dist/internal/dateTime.js.map +1 -1
- package/dist/internal/effect.js +106 -87
- package/dist/internal/effect.js.map +1 -1
- package/dist/internal/equal.js +14 -0
- package/dist/internal/equal.js.map +1 -1
- package/dist/internal/hashMap.js +2 -2
- package/dist/internal/hashMap.js.map +1 -1
- package/dist/internal/hydration.d.ts +2 -0
- package/dist/internal/hydration.d.ts.map +1 -0
- package/dist/internal/hydration.js +15 -0
- package/dist/internal/hydration.js.map +1 -0
- package/dist/internal/inflate.d.ts +2 -0
- package/dist/internal/inflate.d.ts.map +1 -0
- package/dist/internal/inflate.js +680 -0
- package/dist/internal/inflate.js.map +1 -0
- package/dist/internal/jsonSchema.d.ts +2 -0
- package/dist/internal/jsonSchema.d.ts.map +1 -0
- package/dist/internal/jsonSchema.js +28 -0
- package/dist/internal/jsonSchema.js.map +1 -0
- package/dist/internal/matcher.js +1 -1
- package/dist/internal/matcher.js.map +1 -1
- package/dist/internal/record.js +6 -0
- package/dist/internal/record.js.map +1 -1
- package/dist/internal/request.js +20 -7
- package/dist/internal/request.js.map +1 -1
- package/dist/internal/schedule.js +17 -22
- package/dist/internal/schedule.js.map +1 -1
- package/dist/internal/schema/compilerRegistry.js +4 -1
- package/dist/internal/schema/compilerRegistry.js.map +1 -1
- package/dist/internal/schema/content.d.ts +2 -0
- package/dist/internal/schema/content.d.ts.map +1 -0
- package/dist/internal/schema/content.js +13 -0
- package/dist/internal/schema/content.js.map +1 -0
- package/dist/internal/schema/fromJsonSchemaDocument.js +253 -255
- package/dist/internal/schema/fromJsonSchemaDocument.js.map +1 -1
- package/dist/internal/schema/fromRepresentation.js +2 -1
- package/dist/internal/schema/fromRepresentation.js.map +1 -1
- package/dist/internal/schema/interpreter.js +51 -36
- package/dist/internal/schema/interpreter.js.map +1 -1
- package/dist/internal/schema/standardSchema.js +42 -35
- package/dist/internal/schema/standardSchema.js.map +1 -1
- package/dist/internal/schema/toCodeDocument.js +10 -5
- package/dist/internal/schema/toCodeDocument.js.map +1 -1
- package/dist/internal/schema/toCodec.js +99 -17
- package/dist/internal/schema/toCodec.js.map +1 -1
- package/dist/internal/schema/toFormatter.js +5 -5
- package/dist/internal/schema/toFormatter.js.map +1 -1
- package/dist/internal/schema/toJsonSchemaDocument.js +257 -170
- package/dist/internal/schema/toJsonSchemaDocument.js.map +1 -1
- package/dist/internal/schema/toRepresentation.js +107 -129
- package/dist/internal/schema/toRepresentation.js.map +1 -1
- package/dist/internal/sql.d.ts +2 -0
- package/dist/internal/sql.d.ts.map +1 -0
- package/dist/internal/sql.js +13 -0
- package/dist/internal/sql.js.map +1 -0
- package/dist/internal/trie.js +1 -3
- package/dist/internal/trie.js.map +1 -1
- package/dist/internal/uuid.js +7 -3
- package/dist/internal/uuid.js.map +1 -1
- package/dist/internal/version.js +1 -1
- package/dist/net/NetAddress.d.ts.map +1 -1
- package/dist/net/NetAddress.js +2 -8
- package/dist/net/NetAddress.js.map +1 -1
- package/dist/observability/OtlpExporter.d.ts.map +1 -1
- package/dist/observability/OtlpExporter.js +5 -12
- package/dist/observability/OtlpExporter.js.map +1 -1
- package/dist/observability/OtlpMetrics.d.ts.map +1 -1
- package/dist/observability/OtlpMetrics.js +5 -3
- package/dist/observability/OtlpMetrics.js.map +1 -1
- package/dist/observability/OtlpProxy.d.ts +154 -0
- package/dist/observability/OtlpProxy.d.ts.map +1 -0
- package/dist/observability/OtlpProxy.js +235 -0
- package/dist/observability/OtlpProxy.js.map +1 -0
- package/dist/observability/OtlpResource.d.ts +3 -1
- package/dist/observability/OtlpResource.d.ts.map +1 -1
- package/dist/observability/OtlpResource.js +11 -4
- package/dist/observability/OtlpResource.js.map +1 -1
- package/dist/observability/OtlpSerialization.d.ts +5 -0
- package/dist/observability/OtlpSerialization.d.ts.map +1 -1
- package/dist/observability/OtlpSerialization.js +14 -3
- package/dist/observability/OtlpSerialization.js.map +1 -1
- package/dist/observability/OtlpTracer.d.ts.map +1 -1
- package/dist/observability/OtlpTracer.js +4 -0
- package/dist/observability/OtlpTracer.js.map +1 -1
- package/dist/observability/index.d.ts +5 -0
- package/dist/observability/index.d.ts.map +1 -1
- package/dist/observability/index.js +5 -0
- package/dist/observability/index.js.map +1 -1
- package/dist/observability/internal/protobuf.d.ts +0 -9
- package/dist/observability/internal/protobuf.d.ts.map +1 -1
- package/dist/observability/internal/protobuf.js +2 -10
- package/dist/observability/internal/protobuf.js.map +1 -1
- package/dist/persistence/CircuitBreaker.d.ts +897 -0
- package/dist/persistence/CircuitBreaker.d.ts.map +1 -0
- package/dist/persistence/CircuitBreaker.js +1165 -0
- package/dist/persistence/CircuitBreaker.js.map +1 -0
- package/dist/persistence/PersistedCache.d.ts.map +1 -1
- package/dist/persistence/PersistedCache.js +1 -1
- package/dist/persistence/PersistedCache.js.map +1 -1
- package/dist/persistence/PersistedQueue.d.ts +6 -2
- package/dist/persistence/PersistedQueue.d.ts.map +1 -1
- package/dist/persistence/PersistedQueue.js +162 -84
- package/dist/persistence/PersistedQueue.js.map +1 -1
- package/dist/persistence/Persistence.d.ts +28 -0
- package/dist/persistence/Persistence.d.ts.map +1 -1
- package/dist/persistence/Persistence.js +36 -8
- package/dist/persistence/Persistence.js.map +1 -1
- package/dist/persistence/RateLimiter.d.ts.map +1 -1
- package/dist/persistence/RateLimiter.js +8 -12
- package/dist/persistence/RateLimiter.js.map +1 -1
- package/dist/persistence/Redis.d.ts +78 -2
- package/dist/persistence/Redis.d.ts.map +1 -1
- package/dist/persistence/Redis.js +62 -7
- package/dist/persistence/Redis.js.map +1 -1
- package/dist/persistence/UserDirectories.d.ts +129 -0
- package/dist/persistence/UserDirectories.d.ts.map +1 -0
- package/dist/persistence/UserDirectories.js +178 -0
- package/dist/persistence/UserDirectories.js.map +1 -0
- package/dist/persistence/index.d.ts +10 -0
- package/dist/persistence/index.d.ts.map +1 -1
- package/dist/persistence/index.js +10 -0
- package/dist/persistence/index.js.map +1 -1
- package/dist/process/ChildProcess.d.ts +32 -5
- package/dist/process/ChildProcess.d.ts.map +1 -1
- package/dist/process/ChildProcess.js.map +1 -1
- package/dist/process/ChildProcessSpawner.d.ts +30 -0
- package/dist/process/ChildProcessSpawner.d.ts.map +1 -1
- package/dist/process/ChildProcessSpawner.js +5 -2
- package/dist/process/ChildProcessSpawner.js.map +1 -1
- package/dist/reactivity/AsyncResult.d.ts +1 -1
- package/dist/reactivity/AsyncResult.d.ts.map +1 -1
- package/dist/reactivity/AsyncResult.js +1 -1
- package/dist/reactivity/AsyncResult.js.map +1 -1
- package/dist/reactivity/Atom.d.ts +69 -30
- package/dist/reactivity/Atom.d.ts.map +1 -1
- package/dist/reactivity/Atom.js +40 -15
- package/dist/reactivity/Atom.js.map +1 -1
- package/dist/reactivity/AtomHttpApi.d.ts +5 -5
- package/dist/reactivity/AtomHttpApi.d.ts.map +1 -1
- package/dist/reactivity/AtomHttpApi.js +1 -1
- package/dist/reactivity/AtomHttpApi.js.map +1 -1
- package/dist/reactivity/AtomRegistry.d.ts +2 -2
- package/dist/reactivity/AtomRegistry.d.ts.map +1 -1
- package/dist/reactivity/AtomRegistry.js +44 -9
- package/dist/reactivity/AtomRegistry.js.map +1 -1
- package/dist/reactivity/AtomRpc.d.ts +3 -3
- package/dist/reactivity/AtomRpc.d.ts.map +1 -1
- package/dist/reactivity/AtomRpc.js +1 -1
- package/dist/reactivity/AtomRpc.js.map +1 -1
- package/dist/reactivity/Hydration.d.ts.map +1 -1
- package/dist/reactivity/Hydration.js +46 -12
- package/dist/reactivity/Hydration.js.map +1 -1
- package/dist/reactivity/Reactivity.d.ts +71 -7
- package/dist/reactivity/Reactivity.d.ts.map +1 -1
- package/dist/reactivity/Reactivity.js +21 -12
- package/dist/reactivity/Reactivity.js.map +1 -1
- package/dist/rpc/Rpc.d.ts +18 -0
- package/dist/rpc/Rpc.d.ts.map +1 -1
- package/dist/rpc/Rpc.js +20 -0
- package/dist/rpc/Rpc.js.map +1 -1
- package/dist/rpc/RpcClient.d.ts +26 -2
- package/dist/rpc/RpcClient.d.ts.map +1 -1
- package/dist/rpc/RpcClient.js +198 -61
- package/dist/rpc/RpcClient.js.map +1 -1
- package/dist/rpc/RpcSerialization.d.ts +29 -0
- package/dist/rpc/RpcSerialization.d.ts.map +1 -1
- package/dist/rpc/RpcSerialization.js +41 -13
- package/dist/rpc/RpcSerialization.js.map +1 -1
- package/dist/rpc/RpcServer.d.ts.map +1 -1
- package/dist/rpc/RpcServer.js +20 -19
- package/dist/rpc/RpcServer.js.map +1 -1
- package/dist/rpc/RpcTest.d.ts +1 -0
- package/dist/rpc/RpcTest.d.ts.map +1 -1
- package/dist/rpc/RpcTest.js +1 -0
- package/dist/rpc/RpcTest.js.map +1 -1
- package/dist/schema/Model.d.ts +1 -1
- package/dist/schema/VariantSchema.d.ts +22 -3
- package/dist/schema/VariantSchema.d.ts.map +1 -1
- package/dist/schema/VariantSchema.js +32 -18
- package/dist/schema/VariantSchema.js.map +1 -1
- package/dist/socket/Socket.d.ts +23 -1
- package/dist/socket/Socket.d.ts.map +1 -1
- package/dist/socket/Socket.js +36 -3
- package/dist/socket/Socket.js.map +1 -1
- package/dist/sql/Migrator.d.ts +2 -1
- package/dist/sql/Migrator.d.ts.map +1 -1
- package/dist/sql/Migrator.js +21 -6
- package/dist/sql/Migrator.js.map +1 -1
- package/dist/sql/SqlClient.d.ts +148 -5
- package/dist/sql/SqlClient.d.ts.map +1 -1
- package/dist/sql/SqlClient.js +155 -27
- package/dist/sql/SqlClient.js.map +1 -1
- package/dist/sql/SqlResolver.d.ts +13 -0
- package/dist/sql/SqlResolver.d.ts.map +1 -1
- package/dist/sql/SqlResolver.js +27 -4
- package/dist/sql/SqlResolver.js.map +1 -1
- package/dist/sql/Statement.d.ts +10 -1
- package/dist/sql/Statement.d.ts.map +1 -1
- package/dist/sql/Statement.js +45 -7
- package/dist/sql/Statement.js.map +1 -1
- package/dist/testing/TestClock.d.ts.map +1 -1
- package/dist/testing/TestClock.js +4 -2
- package/dist/testing/TestClock.js.map +1 -1
- package/dist/testing/TestSchema.d.ts +7 -1
- package/dist/testing/TestSchema.d.ts.map +1 -1
- package/dist/testing/TestSchema.js +9 -3
- package/dist/testing/TestSchema.js.map +1 -1
- package/dist/workflow/DurableDeferred.d.ts.map +1 -1
- package/dist/workflow/DurableDeferred.js +21 -2
- package/dist/workflow/DurableDeferred.js.map +1 -1
- package/dist/workflow/WorkflowEngine.d.ts.map +1 -1
- package/dist/workflow/WorkflowEngine.js +18 -4
- package/dist/workflow/WorkflowEngine.js.map +1 -1
- package/package.json +13 -3
- package/src/Arbitrary.ts +10 -2
- package/src/Array.ts +128 -55
- package/src/Bytes.ts +111 -0
- package/src/Channel.ts +308 -452
- package/src/ChannelSchema.ts +1 -49
- package/src/Chunk.ts +55 -61
- package/src/Config.ts +12 -86
- package/src/ConfigProvider.ts +2 -1
- package/src/Cron.ts +6 -3
- package/src/Data.ts +60 -265
- package/src/Duration.ts +66 -16
- package/src/Effect.ts +503 -168
- package/src/Equal.ts +8 -1
- package/src/Equivalence.ts +7 -4
- package/src/Exit.ts +27 -12
- package/src/FiberHandle.ts +10 -9
- package/src/FiberMap.ts +13 -66
- package/src/FileSystem.ts +10 -0
- package/src/Formatter.ts +28 -13
- package/src/Graph.ts +171 -1263
- package/src/Hash.ts +4 -1
- package/src/HashSet.ts +0 -60
- package/src/Iterable.ts +15 -14
- package/src/JsonPatch.ts +4 -0
- package/src/JsonSchema.ts +40 -43
- package/src/Layer.ts +2 -2
- package/src/ManagedRuntime.ts +72 -6
- package/src/Metric.ts +252 -510
- package/src/MutableHashMap.ts +4 -473
- package/src/MutableList.ts +7 -5
- package/src/MutableRef.ts +8 -1
- package/src/Number.ts +2 -2
- package/src/Optic.ts +17 -332
- package/src/PartitionedSemaphore.ts +24 -13
- package/src/Path.ts +9 -1
- package/src/Pool.ts +109 -37
- package/src/PubSub.ts +17 -13
- package/src/Queue.ts +5 -37
- package/src/Random.ts +1 -1
- package/src/RcMap.ts +14 -8
- package/src/Record.ts +51 -0
- package/src/Ref.ts +15 -104
- package/src/References.ts +5 -4
- package/src/RequestResolver.ts +46 -87
- package/src/Resource.ts +1 -1
- package/src/Runtime.ts +19 -18
- package/src/Schedule.ts +3 -95
- package/src/Schema.ts +639 -381
- package/src/SchemaAST.ts +40 -29
- package/src/SchemaGetter.ts +22 -5
- package/src/SchemaIssue.ts +44 -53
- package/src/SchemaParser.ts +51 -18
- package/src/SchemaRepresentation.ts +95 -35
- package/src/SchemaTransformation.ts +10 -3
- package/src/Scope.ts +12 -2
- package/src/ScopedCache.ts +17 -142
- package/src/SemVer.ts +1528 -0
- package/src/SemVerRange.ts +883 -0
- package/src/Semaphore.ts +67 -40
- package/src/Sink.ts +21 -4
- package/src/Stream.ts +367 -1027
- package/src/String.ts +11 -8
- package/src/TextDiff.ts +766 -0
- package/src/Tracer.ts +15 -1
- package/src/TxHashMap.ts +1 -103
- package/src/TxHashSet.ts +48 -753
- package/src/ai/AiError.ts +66 -4
- package/src/ai/Chat.ts +10 -5
- package/src/ai/Decision.ts +49 -1
- package/src/ai/DecisionModel.ts +264 -108
- package/src/ai/EmbeddingModel.ts +25 -13
- package/src/ai/LanguageModel.ts +9 -0
- package/src/ai/McpClient.ts +1211 -0
- package/src/ai/McpClientError.ts +329 -0
- package/src/ai/McpProtocol.ts +2 -2
- package/src/ai/McpSchema.ts +153 -35
- package/src/ai/McpServer.ts +231 -233
- package/src/ai/Prompt.ts +114 -35
- package/src/ai/Response.ts +220 -65
- package/src/ai/Tool.ts +50 -6
- package/src/ai/Toolkit.ts +82 -11
- package/src/ai/index.ts +12 -0
- package/src/ai/internal/mcpCore.ts +13 -14
- package/src/ai/internal/mcpProtocol/v2024_11_05.ts +1 -1
- package/src/ai/internal/mcpProtocol/v2025_03_26.ts +1 -1
- package/src/ai/internal/mcpProtocol/v2025_06_18.ts +3 -3
- package/src/ai/internal/mcpProtocol/v2025_11_25.ts +3 -3
- package/src/ai/internal/mcpProtocol/v2026_07_28.ts +12 -14
- package/src/ai/internal/mcpProtocol.ts +22 -2
- package/src/ai/internal/mcpRuntime.ts +3 -4
- package/src/ai/internal/mcpSchema/v2024_11_05.ts +20 -13
- package/src/ai/internal/mcpSchema/v2025_03_26.ts +4 -2
- package/src/ai/internal/mcpSchema/v2025_06_18.ts +7 -7
- package/src/ai/internal/mcpSchema/v2025_11_25.ts +8 -8
- package/src/ai/internal/mcpSchema/v2026_07_28.ts +44 -42
- package/src/cli/Argument.ts +15 -0
- package/src/cli/CliError.ts +136 -4
- package/src/cli/CliOutput.ts +183 -6
- package/src/cli/Command.ts +367 -48
- package/src/cli/Completions.ts +56 -0
- package/src/cli/Flag.ts +132 -0
- package/src/cli/GlobalFlag.ts +5 -6
- package/src/cli/Param.ts +151 -6
- package/src/cli/TerminalCapabilities.ts +159 -0
- package/src/cli/index.ts +6 -0
- package/src/cli/internal/command.ts +8 -3
- package/src/cli/internal/completions/bash.ts +83 -32
- package/src/cli/internal/completions/descriptor.ts +11 -1
- package/src/cli/internal/completions/fish.ts +10 -8
- package/src/cli/internal/completions/powershell.ts +23 -14
- package/src/cli/internal/completions/zsh.ts +8 -5
- package/src/cli/internal/formatter.ts +18 -0
- package/src/cli/internal/lexer.ts +12 -5
- package/src/cli/internal/parser.ts +31 -11
- package/src/cluster/ClusterCron.ts +94 -35
- package/src/cluster/ClusterMetrics.ts +149 -7
- package/src/cluster/ClusterWorkflowEngine.ts +130 -57
- package/src/cluster/Entity.ts +4 -0
- package/src/cluster/MessageStorage.ts +26 -14
- package/src/cluster/Runners.ts +76 -25
- package/src/cluster/Sharding.ts +200 -58
- package/src/cluster/ShardingConfig.ts +20 -0
- package/src/cluster/Snowflake.ts +3 -7
- package/src/cluster/SqlMessageStorage.ts +58 -55
- package/src/cluster/SqlRunnerStorage.ts +120 -51
- package/src/cluster/internal/entityManager.ts +155 -32
- package/src/devtools/DevTools.ts +3 -2
- package/src/devtools/DevToolsClient.ts +29 -10
- package/src/encoding/Base64.ts +38 -0
- package/src/encoding/Base64Url.ts +31 -0
- package/src/encoding/Ini.ts +3 -0
- package/src/encoding/JsonArray.ts +849 -0
- package/src/encoding/Ndjson.ts +211 -20
- package/src/encoding/SchemaBinary.ts +14 -48
- package/src/encoding/Sse.ts +4 -3
- package/src/encoding/Tar.ts +1417 -0
- package/src/encoding/Toml.ts +36 -19
- package/src/encoding/Xml.ts +2037 -0
- package/src/encoding/Yaml.ts +108 -36
- package/src/encoding/Zip.ts +1558 -0
- package/src/encoding/index.ts +24 -0
- package/src/eventlog/EventJournal.ts +611 -227
- package/src/eventlog/EventLog.ts +496 -196
- package/src/eventlog/EventLogEncryption.ts +128 -43
- package/src/eventlog/EventLogMessage.ts +62 -11
- package/src/eventlog/EventLogRemote.ts +77 -21
- package/src/eventlog/EventLogServer.ts +162 -20
- package/src/eventlog/EventLogServerEncrypted.ts +121 -80
- package/src/eventlog/EventLogServerUnencrypted.ts +180 -77
- package/src/eventlog/EventRow.ts +706 -0
- package/src/eventlog/SqlEventJournal.ts +496 -193
- package/src/eventlog/SqlEventLogServerEncrypted.ts +212 -83
- package/src/eventlog/SqlEventLogServerUnencrypted.ts +141 -62
- package/src/eventlog/index.ts +6 -0
- package/src/eventlog/internal/conflicts.ts +119 -0
- package/src/graphql/GraphQLClientError.ts +5 -12
- package/src/graphql/GraphQLProtocol.ts +12 -9
- package/src/graphql/GraphQLResolver.ts +90 -239
- package/src/http/Cookies.ts +10 -11
- package/src/http/FetchHttpClient.ts +56 -6
- package/src/http/FindMyWay/internal/router.ts +11 -0
- package/src/http/Headers.ts +337 -154
- package/src/http/HttpClient.ts +673 -142
- package/src/http/HttpClientError.ts +35 -1
- package/src/http/HttpClientRequest.ts +151 -5
- package/src/http/HttpClientResponse.ts +71 -0
- package/src/http/HttpEffect.ts +25 -33
- package/src/http/HttpIncomingMessage.ts +3 -23
- package/src/http/HttpMiddleware.ts +194 -40
- package/src/http/HttpRouter.ts +10 -3
- package/src/http/HttpServerError.ts +8 -5
- package/src/http/HttpServerRequest.ts +172 -27
- package/src/http/HttpServerResponse.ts +49 -23
- package/src/http/HttpStaticServer.ts +71 -26
- package/src/http/MultipartParser/internal/contentType.ts +109 -8
- package/src/http/MultipartParser/internal/headers.ts +4 -16
- package/src/http/MultipartParser/internal/multipart.ts +10 -32
- package/src/http/Url.ts +6 -1
- package/src/http/UrlParams.ts +6 -1
- package/src/http/internal/compression.ts +4 -5
- package/src/http/internal/decompression.ts +32 -17
- package/src/http/internal/httpBody.ts +10 -2
- package/src/http/internal/lazyStream.ts +25 -0
- package/src/http/internal/requestState.ts +33 -0
- package/src/http/internal/urlParams.ts +29 -0
- package/src/http/internal/webResponse.ts +20 -0
- package/src/http-api/HttpApi.ts +4 -7
- package/src/http-api/HttpApiBuilder.ts +190 -32
- package/src/http-api/HttpApiClient.ts +364 -90
- package/src/http-api/HttpApiEndpoint.ts +248 -46
- package/src/http-api/HttpApiError.ts +55 -0
- package/src/http-api/HttpApiScalar.ts +4 -3
- package/src/http-api/HttpApiSchema.ts +373 -18
- package/src/http-api/HttpApiSwagger.ts +11 -4
- package/src/http-api/HttpApiTest.ts +36 -11
- package/src/http-api/OpenApi.ts +103 -58
- package/src/http-api/internal/path.ts +40 -12
- package/src/http-api/internal/toCodecHttpProperties.ts +56 -0
- package/src/index.ts +24 -0
- package/src/internal/arbitrary/runner.ts +133 -36
- package/src/internal/core.ts +3 -1
- package/src/internal/dateTime.ts +20 -7
- package/src/internal/effect.ts +144 -100
- package/src/internal/equal.ts +17 -0
- package/src/internal/hashMap.ts +2 -2
- package/src/internal/hydration.ts +15 -0
- package/src/internal/inflate.ts +710 -0
- package/src/internal/jsonSchema.ts +27 -0
- package/src/internal/matcher.ts +1 -1
- package/src/internal/record.ts +6 -0
- package/src/internal/request.ts +21 -6
- package/src/internal/schedule.ts +20 -39
- package/src/internal/schema/compilerRegistry.ts +6 -1
- package/src/internal/schema/content.ts +18 -0
- package/src/internal/schema/fromJsonSchemaDocument.ts +458 -351
- package/src/internal/schema/fromRepresentation.ts +2 -1
- package/src/internal/schema/interpreter.ts +58 -45
- package/src/internal/schema/standardSchema.ts +34 -32
- package/src/internal/schema/toCodeDocument.ts +12 -7
- package/src/internal/schema/toCodec.ts +134 -15
- package/src/internal/schema/toFormatter.ts +6 -6
- package/src/internal/schema/toJsonSchemaDocument.ts +246 -194
- package/src/internal/schema/toRepresentation.ts +122 -140
- package/src/internal/sql.ts +14 -0
- package/src/internal/trie.ts +1 -3
- package/src/internal/uuid.ts +15 -10
- package/src/internal/version.ts +1 -1
- package/src/net/NetAddress.ts +2 -9
- package/src/observability/OtlpExporter.ts +5 -12
- package/src/observability/OtlpMetrics.ts +5 -3
- package/src/observability/OtlpProxy.ts +314 -0
- package/src/observability/OtlpResource.ts +16 -6
- package/src/observability/OtlpSerialization.ts +17 -3
- package/src/observability/OtlpTracer.ts +4 -0
- package/src/observability/index.ts +6 -0
- package/src/observability/internal/protobuf.ts +2 -10
- package/src/persistence/CircuitBreaker.ts +1678 -0
- package/src/persistence/PersistedCache.ts +3 -1
- package/src/persistence/PersistedQueue.ts +223 -153
- package/src/persistence/Persistence.ts +64 -30
- package/src/persistence/RateLimiter.ts +18 -21
- package/src/persistence/Redis.ts +129 -8
- package/src/persistence/UserDirectories.ts +273 -0
- package/src/persistence/index.ts +12 -0
- package/src/process/ChildProcess.ts +32 -5
- package/src/process/ChildProcessSpawner.ts +41 -2
- package/src/reactivity/AsyncResult.ts +5 -39
- package/src/reactivity/Atom.ts +134 -166
- package/src/reactivity/AtomHttpApi.ts +10 -16
- package/src/reactivity/AtomRegistry.ts +50 -29
- package/src/reactivity/AtomRpc.ts +6 -22
- package/src/reactivity/Hydration.ts +53 -12
- package/src/reactivity/Reactivity.ts +97 -39
- package/src/rpc/Rpc.ts +21 -0
- package/src/rpc/RpcClient.ts +283 -104
- package/src/rpc/RpcSerialization.ts +53 -14
- package/src/rpc/RpcServer.ts +27 -21
- package/src/rpc/RpcTest.ts +3 -0
- package/src/schema/VariantSchema.ts +86 -22
- package/src/socket/Socket.ts +45 -20
- package/src/sql/Migrator.ts +26 -11
- package/src/sql/SqlClient.ts +273 -29
- package/src/sql/SqlResolver.ts +32 -9
- package/src/sql/Statement.ts +65 -10
- package/src/testing/TestClock.ts +4 -1
- package/src/testing/TestSchema.ts +9 -3
- package/src/workflow/DurableDeferred.ts +23 -6
- package/src/workflow/WorkflowEngine.ts +34 -10
- package/dist/http/internal/preResponseHandler.d.ts +0 -2
- package/dist/http/internal/preResponseHandler.d.ts.map +0 -1
- package/dist/http/internal/preResponseHandler.js +0 -14
- package/dist/http/internal/preResponseHandler.js.map +0 -1
- package/src/http/internal/preResponseHandler.ts +0 -19
|
@@ -9,6 +9,62 @@
|
|
|
9
9
|
* constructors, payload and response schema helpers, and type utilities used by
|
|
10
10
|
* builders and generated clients.
|
|
11
11
|
*
|
|
12
|
+
* **Request variants**
|
|
13
|
+
*
|
|
14
|
+
* A server needs a distinct method and path per endpoint.
|
|
15
|
+
* `HttpApiBuilder.layer` rejects two endpoints that share them, even when their
|
|
16
|
+
* query, headers or payload differ. Declare the variants of one operation as a
|
|
17
|
+
* single endpoint instead:
|
|
18
|
+
*
|
|
19
|
+
* - discriminate with a `query` or `headers` field, such as `stream: Schema.Boolean`
|
|
20
|
+
* - list several `payload` schemas, chosen by the request `Content-Type`
|
|
21
|
+
* - list several `success` schemas with distinct content types or statuses. One
|
|
22
|
+
* of them can be a stream. The server encodes whichever value the handler
|
|
23
|
+
* returns, and the client decodes by the response `Content-Type`
|
|
24
|
+
*
|
|
25
|
+
* The handler branches on the decoded request, and OpenAPI documents one
|
|
26
|
+
* operation with every alternative. The generated client returns the union of
|
|
27
|
+
* the success types. Wrap the client method to narrow the result per variant
|
|
28
|
+
* when callers need it.
|
|
29
|
+
*
|
|
30
|
+
* **Example** (Buffered and streaming variants of one operation)
|
|
31
|
+
*
|
|
32
|
+
* ```ts import.meta.vitest
|
|
33
|
+
* import { Effect, Schema, Stream } from "effect"
|
|
34
|
+
* import { HttpApi, HttpApiBuilder, HttpApiEndpoint, HttpApiGroup, HttpApiSchema } from "effect/http-api"
|
|
35
|
+
*
|
|
36
|
+
* const Stats = Schema.Struct({ cpu: Schema.Number })
|
|
37
|
+
*
|
|
38
|
+
* const Api = HttpApi.make("Docker").add(
|
|
39
|
+
* HttpApiGroup.make("containers").add(
|
|
40
|
+
* // GET /stats?stream=false returns JSON, ?stream=true returns NDJSON
|
|
41
|
+
* HttpApiEndpoint.get("stats", "/stats", {
|
|
42
|
+
* query: { stream: Schema.Boolean },
|
|
43
|
+
* success: [Stats, HttpApiSchema.StreamNdjson({ schema: Stats })]
|
|
44
|
+
* }),
|
|
45
|
+
* // POST /images accepts a JSON pull request or a tar archive
|
|
46
|
+
* HttpApiEndpoint.post("createImage", "/images", {
|
|
47
|
+
* payload: [
|
|
48
|
+
* Schema.Struct({ fromImage: Schema.String }),
|
|
49
|
+
* HttpApiSchema.StreamUint8Array({ contentType: "application/x-tar" })
|
|
50
|
+
* ],
|
|
51
|
+
* success: Schema.String
|
|
52
|
+
* })
|
|
53
|
+
* )
|
|
54
|
+
* )
|
|
55
|
+
*
|
|
56
|
+
* const ContainersLive = HttpApiBuilder.group(Api, "containers", (handlers) =>
|
|
57
|
+
* handlers
|
|
58
|
+
* .handle("stats", ({ query }) =>
|
|
59
|
+
* Effect.succeed(query.stream ? Stream.make({ cpu: 1 }, { cpu: 2 }) : { cpu: 1 })
|
|
60
|
+
* )
|
|
61
|
+
* .handle("createImage", ({ payload }) =>
|
|
62
|
+
* Stream.isStream(payload)
|
|
63
|
+
* ? Effect.as(Stream.runDrain(payload), "imported")
|
|
64
|
+
* : Effect.succeed(`pulled ${payload.fromImage}`)
|
|
65
|
+
* ))
|
|
66
|
+
* ```
|
|
67
|
+
*
|
|
12
68
|
* @stability unstable
|
|
13
69
|
* @since 4.0.0
|
|
14
70
|
*/
|
|
@@ -18,7 +74,7 @@ import * as Context from "../Context.ts"
|
|
|
18
74
|
import type { Effect } from "../Effect.ts"
|
|
19
75
|
import type * as Sse from "../encoding/Sse.ts"
|
|
20
76
|
import { identity, memoize } from "../Function.ts"
|
|
21
|
-
import type
|
|
77
|
+
import { hasBody, type HttpMethod } from "../http/HttpMethod.ts"
|
|
22
78
|
import * as HttpRouter from "../http/HttpRouter.ts"
|
|
23
79
|
import type { HttpServerRequest } from "../http/HttpServerRequest.ts"
|
|
24
80
|
import type { HttpServerResponse } from "../http/HttpServerResponse.ts"
|
|
@@ -27,13 +83,16 @@ import { type Pipeable, pipeArguments } from "../Pipeable.ts"
|
|
|
27
83
|
import * as Predicate from "../Predicate.ts"
|
|
28
84
|
import * as Schema from "../Schema.ts"
|
|
29
85
|
import * as AST from "../SchemaAST.ts"
|
|
86
|
+
import type * as Socket from "../socket/Socket.ts"
|
|
30
87
|
import type * as Stream from "../Stream.ts"
|
|
31
88
|
import type { Simplify } from "../Struct.ts"
|
|
32
89
|
import type * as Types from "../Types.ts"
|
|
90
|
+
import type * as HttpApiError from "./HttpApiError.ts"
|
|
33
91
|
import type * as HttpApiGroup from "./HttpApiGroup.ts"
|
|
34
92
|
import type * as HttpApiMiddleware from "./HttpApiMiddleware.ts"
|
|
35
93
|
import * as HttpApiSchema from "./HttpApiSchema.ts"
|
|
36
94
|
import * as MediaType from "./internal/mediaType.ts"
|
|
95
|
+
import { toCodecHttpProperties } from "./internal/toCodecHttpProperties.ts"
|
|
37
96
|
|
|
38
97
|
const TypeId = "~effect/http-api/HttpApiEndpoint"
|
|
39
98
|
|
|
@@ -57,6 +116,8 @@ type SuccessType<S> = S extends HttpApiSchema.WithHeaders<
|
|
|
57
116
|
infer _Value
|
|
58
117
|
> ? Stream.Stream<_Value, _Error["Type"], never>
|
|
59
118
|
: S extends HttpApiSchema.StreamUint8Array ? Stream.Stream<Uint8Array, unknown, never>
|
|
119
|
+
: S extends HttpApiSchema.StreamNdjson<infer _S> ? Stream.Stream<_S["Type"], unknown, never>
|
|
120
|
+
: S extends HttpApiSchema.Upgrade ? void
|
|
60
121
|
: S extends Schema.Constraint ? S["Type"]
|
|
61
122
|
: never
|
|
62
123
|
|
|
@@ -66,6 +127,8 @@ type SuccessEncodingServices<S> = S extends HttpApiSchema.StreamSse<
|
|
|
66
127
|
infer _Value
|
|
67
128
|
> ? _Events["EncodingServices"] | _Error["EncodingServices"]
|
|
68
129
|
: S extends HttpApiSchema.StreamUint8Array ? never
|
|
130
|
+
: S extends HttpApiSchema.StreamNdjson<infer _S> ? _S["EncodingServices"]
|
|
131
|
+
: S extends HttpApiSchema.Upgrade<infer _Headers> ? _Headers["EncodingServices"]
|
|
69
132
|
: S extends Schema.Constraint ? S["EncodingServices"]
|
|
70
133
|
: never
|
|
71
134
|
|
|
@@ -75,6 +138,8 @@ type SuccessDecodingServices<S> = S extends HttpApiSchema.StreamSse<
|
|
|
75
138
|
infer _Value
|
|
76
139
|
> ? _Events["DecodingServices"] | _Error["DecodingServices"]
|
|
77
140
|
: S extends HttpApiSchema.StreamUint8Array ? never
|
|
141
|
+
: S extends HttpApiSchema.StreamNdjson<infer _S> ? _S["DecodingServices"]
|
|
142
|
+
: S extends HttpApiSchema.Upgrade<infer _Headers> ? _Headers["DecodingServices"]
|
|
78
143
|
: S extends Schema.Constraint ? S["DecodingServices"]
|
|
79
144
|
: never
|
|
80
145
|
|
|
@@ -82,13 +147,27 @@ type UnwrapReadonlyArray<S> = S extends ReadonlyArray<infer A> ? A : S
|
|
|
82
147
|
|
|
83
148
|
type ExtractBufferedSuccess<S extends SuccessConstraint> = Exclude<
|
|
84
149
|
Extract<UnwrapReadonlyArray<S>, Schema.Top>,
|
|
85
|
-
HttpApiSchema.StreamSchema | HttpApiSchema.WithHeaders<Schema.Top, Schema.Top>
|
|
150
|
+
HttpApiSchema.StreamSchema | HttpApiSchema.Upgrade | HttpApiSchema.WithHeaders<Schema.Top, Schema.Top>
|
|
86
151
|
>
|
|
87
152
|
|
|
88
153
|
type ExtractStreamSuccess<S extends SuccessConstraint> = UnwrapReadonlyArray<S> extends infer Success ?
|
|
89
154
|
Success extends HttpApiSchema.StreamSchema ? Success : never
|
|
90
155
|
: never
|
|
91
156
|
|
|
157
|
+
type ExtractUpgradeSuccess<S extends SuccessConstraint> = UnwrapReadonlyArray<S> extends infer Success ?
|
|
158
|
+
Success extends HttpApiSchema.Upgrade<infer _Headers> ?
|
|
159
|
+
[_Headers] extends [never] ? Success : HttpApiSchema.Upgrade<Schema.toCodecStringTree<_Headers>>
|
|
160
|
+
: never
|
|
161
|
+
: never
|
|
162
|
+
|
|
163
|
+
type UpgradeRequest<Success> = [Extract<Success, HttpApiSchema.Upgrade>] extends [never] ? {}
|
|
164
|
+
: { readonly upgrade: UpgradeFunction<Extract<Success, HttpApiSchema.Upgrade>> }
|
|
165
|
+
|
|
166
|
+
type UpgradeFunction<S> = S extends HttpApiSchema.Upgrade<infer _Headers> ?
|
|
167
|
+
[_Headers] extends [never] ? () => Effect<Socket.Socket>
|
|
168
|
+
: (options: { readonly headers: _Headers["Type"] }) => Effect<Socket.Socket>
|
|
169
|
+
: never
|
|
170
|
+
|
|
92
171
|
type ExtractWithHeadersSuccess<S extends SuccessConstraint> = UnwrapReadonlyArray<S> extends infer Success ?
|
|
93
172
|
Success extends HttpApiSchema.WithHeaders<infer _Inner, infer _Headers> ? HttpApiSchema.WithHeaders<
|
|
94
173
|
_Inner extends HttpApiSchema.StreamSchema ? _Inner : Schema.toCodecJson<_Inner>,
|
|
@@ -98,8 +177,12 @@ type ExtractWithHeadersSuccess<S extends SuccessConstraint> = UnwrapReadonlyArra
|
|
|
98
177
|
: never
|
|
99
178
|
|
|
100
179
|
type ToSuccessCodec<S extends SuccessConstraint> = [ExtractBufferedSuccess<S>] extends [never] ?
|
|
101
|
-
ExtractStreamSuccess<S> | ExtractWithHeadersSuccess<S>
|
|
102
|
-
:
|
|
180
|
+
ExtractStreamSuccess<S> | ExtractUpgradeSuccess<S> | ExtractWithHeadersSuccess<S>
|
|
181
|
+
:
|
|
182
|
+
| Schema.toCodecJson<ExtractBufferedSuccess<S>>
|
|
183
|
+
| ExtractStreamSuccess<S>
|
|
184
|
+
| ExtractUpgradeSuccess<S>
|
|
185
|
+
| ExtractWithHeadersSuccess<S>
|
|
103
186
|
|
|
104
187
|
type ToJsonCodec<S> = [S] extends [never] ? never
|
|
105
188
|
: [S] extends [Schema.Constraint] ? Schema.toCodecJson<S>
|
|
@@ -110,13 +193,33 @@ type ToStringTreeCodec<S> = [S] extends [never] ? never
|
|
|
110
193
|
: [S] extends [Schema.Constraint] ? Schema.toCodecStringTree<S>
|
|
111
194
|
: never
|
|
112
195
|
|
|
113
|
-
type
|
|
196
|
+
type ToPayloadCodec<S> = [Exclude<S, HttpApiSchema.StreamSchema>] extends [never] ?
|
|
197
|
+
Extract<S, HttpApiSchema.StreamSchema>
|
|
198
|
+
: ToJsonCodec<Exclude<S, HttpApiSchema.StreamSchema>> | Extract<S, HttpApiSchema.StreamSchema>
|
|
199
|
+
|
|
200
|
+
// Stream payloads are keyed on the schema, because a stream schema's `Type`
|
|
201
|
+
// describes the response direction.
|
|
202
|
+
type RequestPayload<Payload> = Payload extends HttpApiSchema.StreamUint8Array ?
|
|
203
|
+
Stream.Stream<Uint8Array, HttpApiError.HttpApiPayloadTooLarge>
|
|
204
|
+
: Payload extends HttpApiSchema.StreamNdjson<infer _S> ?
|
|
205
|
+
Stream.Stream<_S["Type"], HttpApiError.HttpApiSchemaError | HttpApiError.HttpApiPayloadTooLarge>
|
|
206
|
+
: Payload extends Schema.Top ? BufferedRequestPayload<Payload["Type"]>
|
|
207
|
+
: never
|
|
208
|
+
|
|
209
|
+
type BufferedRequestPayload<PayloadType> = PayloadType extends Brand<HttpApiSchema.MultipartStreamTypeId> ?
|
|
210
|
+
Stream.Stream<Multipart.Part, Multipart.MultipartError>
|
|
211
|
+
: Simplify<PayloadType>
|
|
212
|
+
|
|
213
|
+
type PayloadError<Payload> = Payload extends HttpApiSchema.StreamUint8Array ? HttpApiError.HttpApiPayloadTooLarge
|
|
214
|
+
: Payload extends HttpApiSchema.StreamNdjson<infer _S> ?
|
|
215
|
+
HttpApiError.HttpApiSchemaError | HttpApiError.HttpApiPayloadTooLarge
|
|
216
|
+
: never
|
|
217
|
+
|
|
218
|
+
type RequestFromParts<Endpoint, ParamsType, QueryType, Payload, HeadersType, Success> =
|
|
219
|
+
& UpgradeRequest<Success>
|
|
114
220
|
& ([ParamsType] extends [never] ? {} : { readonly params: Simplify<ParamsType> })
|
|
115
221
|
& ([QueryType] extends [never] ? {} : { readonly query: Simplify<QueryType> })
|
|
116
|
-
& ([
|
|
117
|
-
: PayloadType extends Brand<HttpApiSchema.MultipartStreamTypeId> ?
|
|
118
|
-
{ readonly payload: Stream.Stream<Multipart.Part, Multipart.MultipartError> }
|
|
119
|
-
: { readonly payload: Simplify<PayloadType> })
|
|
222
|
+
& ([Payload] extends [never] ? {} : { readonly payload: RequestPayload<Payload> })
|
|
120
223
|
& ([HeadersType] extends [never] ? {} : { readonly headers: Simplify<HeadersType> })
|
|
121
224
|
& {
|
|
122
225
|
readonly request: HttpServerRequest
|
|
@@ -124,7 +227,8 @@ type RequestFromParts<Endpoint, ParamsType, QueryType, PayloadType, HeadersType>
|
|
|
124
227
|
readonly group: HttpApiGroup.Top
|
|
125
228
|
}
|
|
126
229
|
|
|
127
|
-
type RequestRawFromParts<Endpoint, ParamsType, QueryType, HeadersType> =
|
|
230
|
+
type RequestRawFromParts<Endpoint, ParamsType, QueryType, HeadersType, Success> =
|
|
231
|
+
& UpgradeRequest<Success>
|
|
128
232
|
& ([ParamsType] extends [never] ? {} : { readonly params: Simplify<ParamsType> })
|
|
129
233
|
& ([QueryType] extends [never] ? {} : { readonly query: Simplify<QueryType> })
|
|
130
234
|
& ([HeadersType] extends [never] ? {} : { readonly headers: Simplify<HeadersType> })
|
|
@@ -138,14 +242,26 @@ type RequestRawFromParts<Endpoint, ParamsType, QueryType, HeadersType> =
|
|
|
138
242
|
* Maps normalized media types to a payload encoding strategy and one or more
|
|
139
243
|
* schemas. Each schema retains its declared content type in its encoding annotation.
|
|
140
244
|
*
|
|
245
|
+
* **Details**
|
|
246
|
+
*
|
|
247
|
+
* A streaming payload (`HttpApiSchema.StreamUint8Array` or
|
|
248
|
+
* `HttpApiSchema.StreamNdjson`) has a `Stream` encoding and is the only schema
|
|
249
|
+
* for its media type.
|
|
250
|
+
*
|
|
141
251
|
* @stability unstable
|
|
142
252
|
* @category models
|
|
143
253
|
* @since 4.0.0
|
|
144
254
|
*/
|
|
145
|
-
export type PayloadMap = ReadonlyMap<
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
255
|
+
export type PayloadMap = ReadonlyMap<
|
|
256
|
+
string,
|
|
257
|
+
{
|
|
258
|
+
readonly encoding: HttpApiSchema.PayloadEncoding
|
|
259
|
+
readonly schemas: readonly [Schema.Top, ...Array<Schema.Top>]
|
|
260
|
+
} | {
|
|
261
|
+
readonly encoding: { readonly _tag: "Stream"; readonly contentType: string }
|
|
262
|
+
readonly schemas: readonly [HttpApiSchema.StreamUint8Array | HttpApiSchema.StreamNdjson<Schema.Top>]
|
|
263
|
+
}
|
|
264
|
+
>
|
|
149
265
|
|
|
150
266
|
/**
|
|
151
267
|
* Represents an API endpoint. An API endpoint is mapped to a single route on
|
|
@@ -178,8 +294,15 @@ export interface HttpApiEndpoint<
|
|
|
178
294
|
readonly "~Error": Error
|
|
179
295
|
readonly "~Middleware": Middleware
|
|
180
296
|
readonly "~MiddlewareServices": MiddlewareServices
|
|
181
|
-
readonly "~Request": RequestFromParts<
|
|
182
|
-
|
|
297
|
+
readonly "~Request": RequestFromParts<
|
|
298
|
+
this,
|
|
299
|
+
Params["Type"],
|
|
300
|
+
Query["Type"],
|
|
301
|
+
Payload,
|
|
302
|
+
Headers["Type"],
|
|
303
|
+
Success
|
|
304
|
+
>
|
|
305
|
+
readonly "~RequestRaw": RequestRawFromParts<this, Params["Type"], Query["Type"], Headers["Type"], Success>
|
|
183
306
|
|
|
184
307
|
readonly identifier: Identifier
|
|
185
308
|
readonly path: Path
|
|
@@ -518,7 +641,7 @@ export type RequestRaw<Endpoint> = Endpoint extends ConstraintRequest ? Endpoint
|
|
|
518
641
|
* Builds the request object accepted by a generated client method, including the
|
|
519
642
|
* params, query, headers, and payload required by the endpoint, plus optional
|
|
520
643
|
* response mode and SSE decoding options. Multipart payloads are supplied as
|
|
521
|
-
* `FormData`.
|
|
644
|
+
* `FormData`, and streaming payloads as a `Stream` that requires `PayloadR`.
|
|
522
645
|
*
|
|
523
646
|
* @stability unstable
|
|
524
647
|
* @category utility types
|
|
@@ -529,7 +652,8 @@ export type ClientRequest<
|
|
|
529
652
|
Query extends Schema.Constraint,
|
|
530
653
|
Payload extends Schema.Constraint,
|
|
531
654
|
Headers extends Schema.Constraint,
|
|
532
|
-
ResponseMode extends ClientResponseMode
|
|
655
|
+
ResponseMode extends ClientResponseMode,
|
|
656
|
+
PayloadR = never
|
|
533
657
|
> = (
|
|
534
658
|
& ([Params["Type"]] extends [never] ? {} : { readonly params: Params["Type"] })
|
|
535
659
|
& ([Query["Type"]] extends [never] ? {} : { readonly query: Query["Type"] })
|
|
@@ -538,8 +662,8 @@ export type ClientRequest<
|
|
|
538
662
|
: Payload["Type"] extends infer P ?
|
|
539
663
|
P extends Brand<HttpApiSchema.MultipartTypeId> | Brand<HttpApiSchema.MultipartStreamTypeId>
|
|
540
664
|
? { readonly payload: FormData }
|
|
541
|
-
: { readonly payload: Payload
|
|
542
|
-
: { readonly payload: Payload
|
|
665
|
+
: { readonly payload: ClientPayload<Payload, PayloadR> }
|
|
666
|
+
: { readonly payload: ClientPayload<Payload, PayloadR> })
|
|
543
667
|
) extends infer Req ? keyof Req extends never ? (void | {
|
|
544
668
|
readonly responseMode?: ResponseMode
|
|
545
669
|
readonly sseOptions?: Sse.DecodeOptions | undefined
|
|
@@ -550,6 +674,11 @@ export type ClientRequest<
|
|
|
550
674
|
} :
|
|
551
675
|
void
|
|
552
676
|
|
|
677
|
+
type ClientPayload<Payload extends Schema.Constraint, R> = Payload extends HttpApiSchema.StreamUint8Array
|
|
678
|
+
? Stream.Stream<Uint8Array, unknown, R>
|
|
679
|
+
: Payload extends HttpApiSchema.StreamNdjson<infer S> ? Stream.Stream<S["Type"], unknown, R>
|
|
680
|
+
: Payload["Type"]
|
|
681
|
+
|
|
553
682
|
/**
|
|
554
683
|
* Controls what a generated client method returns: the decoded success value,
|
|
555
684
|
* the decoded value paired with the raw response, or only the raw response.
|
|
@@ -628,7 +757,11 @@ export type ErrorServicesDecode<Endpoint> = Endpoint extends ConstraintRequest ?
|
|
|
628
757
|
*/
|
|
629
758
|
export type Handler<Endpoint extends Constraint, E, R> = (
|
|
630
759
|
request: Simplify<Endpoint["~Request"]>
|
|
631
|
-
) => Effect<
|
|
760
|
+
) => Effect<
|
|
761
|
+
SuccessType<Endpoint["~Success"]> | HttpServerResponse,
|
|
762
|
+
Endpoint["~Error"]["Type"] | PayloadError<Payload<Endpoint>> | E,
|
|
763
|
+
R
|
|
764
|
+
>
|
|
632
765
|
|
|
633
766
|
/**
|
|
634
767
|
* The raw server handler for an endpoint, receiving a request shape without a
|
|
@@ -981,7 +1114,9 @@ export type QueryConstraint =
|
|
|
981
1114
|
* encode to `string | ReadonlyArray<string> | undefined` and OpenAPI can expand
|
|
982
1115
|
* it into `in: query` parameters
|
|
983
1116
|
* - for body methods, payload may be any `Schema.Top` (or content-type keyed
|
|
984
|
-
* schemas) and OpenAPI uses `requestBody` instead of `parameters
|
|
1117
|
+
* schemas) and OpenAPI uses `requestBody` instead of `parameters`. This
|
|
1118
|
+
* includes one `HttpApiSchema.StreamUint8Array` or `HttpApiSchema.StreamNdjson`,
|
|
1119
|
+
* but not `HttpApiSchema.StreamSse`, which is response-only
|
|
985
1120
|
*
|
|
986
1121
|
* @stability unstable
|
|
987
1122
|
* @category utility types
|
|
@@ -991,7 +1126,10 @@ export type PayloadConstraint<Method extends HttpMethod> = Method extends HttpMe
|
|
|
991
1126
|
string,
|
|
992
1127
|
Schema.Encoder<string | ReadonlyArray<string> | undefined, unknown>
|
|
993
1128
|
> :
|
|
994
|
-
|
|
1129
|
+
PayloadSchema | ReadonlyArray<PayloadSchema>
|
|
1130
|
+
|
|
1131
|
+
// `StreamSse` is response-only, so it is the one stream schema excluded here.
|
|
1132
|
+
type PayloadSchema = Schema.Top & { readonly sseMode?: never }
|
|
995
1133
|
|
|
996
1134
|
/**
|
|
997
1135
|
* Payload constraint used when automatic codecs are enabled: no-body methods
|
|
@@ -1004,7 +1142,7 @@ export type PayloadConstraint<Method extends HttpMethod> = Method extends HttpMe
|
|
|
1004
1142
|
*/
|
|
1005
1143
|
export type PayloadConstraintCodecs<Method extends HttpMethod> = Method extends HttpMethod.NoBody ?
|
|
1006
1144
|
Record<string, Schema.Top> :
|
|
1007
|
-
|
|
1145
|
+
PayloadSchema | ReadonlyArray<PayloadSchema>
|
|
1008
1146
|
|
|
1009
1147
|
/**
|
|
1010
1148
|
* Constraint for success response schemas, allowing either a single schema or a
|
|
@@ -1031,7 +1169,7 @@ type ErrorSchema<S> = S extends HttpApiSchema.WithHeaders<infer Inner, Schema.To
|
|
|
1031
1169
|
type ErrorNoStream<S extends ErrorConstraint> = [
|
|
1032
1170
|
Extract<
|
|
1033
1171
|
ErrorSchema<S extends ReadonlyArray<Schema.Constraint> ? S[number] : S>,
|
|
1034
|
-
HttpApiSchema.StreamSchema
|
|
1172
|
+
HttpApiSchema.StreamSchema | HttpApiSchema.Upgrade
|
|
1035
1173
|
>
|
|
1036
1174
|
] extends [never] ? S : never
|
|
1037
1175
|
|
|
@@ -1041,6 +1179,16 @@ type ErrorNoStream<S extends ErrorConstraint> = [
|
|
|
1041
1179
|
* and response schemas, applying automatic JSON or string-tree codecs unless
|
|
1042
1180
|
* `disableCodecs` is enabled.
|
|
1043
1181
|
*
|
|
1182
|
+
* **Gotchas**
|
|
1183
|
+
*
|
|
1184
|
+
* URL parameters are flat on the server: each `query` field, each field of a
|
|
1185
|
+
* no-body `payload` and each field of a form-urlencoded `payload` should encode
|
|
1186
|
+
* to a string or an array of strings. A field that encodes to a nested object
|
|
1187
|
+
* is sent as bracket keys (`meta[k]=v`) that the server does not read back, so
|
|
1188
|
+
* it is dropped, or reported missing when required. Send structured values with
|
|
1189
|
+
* an explicit codec such as `Schema.fromJsonString(...)`, or declare bracket
|
|
1190
|
+
* keys literally, for example `"page[size]": Schema.String`.
|
|
1191
|
+
*
|
|
1044
1192
|
* @stability unstable
|
|
1045
1193
|
* @category constructors
|
|
1046
1194
|
* @since 4.0.0
|
|
@@ -1073,7 +1221,7 @@ export const make = <Method extends HttpMethod>(method: Method): {
|
|
|
1073
1221
|
Path,
|
|
1074
1222
|
ToStringTreeCodec<Params>,
|
|
1075
1223
|
ToStringTreeCodec<Query>,
|
|
1076
|
-
Method extends HttpMethod.WithBody ?
|
|
1224
|
+
Method extends HttpMethod.WithBody ? ToPayloadCodec<ToSchema<Payload>>
|
|
1077
1225
|
: ToStringTreeCodec<ToSchema<Payload>>,
|
|
1078
1226
|
ToStringTreeCodec<Headers>,
|
|
1079
1227
|
ToSuccessCodec<Success>,
|
|
@@ -1147,16 +1295,17 @@ export const make = <Method extends HttpMethod>(method: Method): {
|
|
|
1147
1295
|
Error extends ReadonlyArray<Schema.Constraint> ? Error[number] : Error
|
|
1148
1296
|
> => {
|
|
1149
1297
|
const disableCodecs = options?.disableCodecs ?? false
|
|
1150
|
-
const
|
|
1298
|
+
const transformProperties = disableCodecs ? identity : toCodecHttpProperties
|
|
1299
|
+
const payload = getPayload(options?.payload, method, disableCodecs)
|
|
1151
1300
|
return makeProto({
|
|
1152
1301
|
identifier,
|
|
1153
1302
|
path,
|
|
1154
1303
|
method,
|
|
1155
|
-
params: ensureStruct(options?.params,
|
|
1156
|
-
query: ensureStruct(options?.query,
|
|
1157
|
-
headers: ensureStruct(options?.headers,
|
|
1158
|
-
payload
|
|
1159
|
-
success: getSuccessResponse(options?.success, method, disableCodecs),
|
|
1304
|
+
params: ensureStruct(options?.params, transformProperties),
|
|
1305
|
+
query: ensureStruct(options?.query, transformProperties),
|
|
1306
|
+
headers: ensureStruct(options?.headers, transformProperties),
|
|
1307
|
+
payload,
|
|
1308
|
+
success: getSuccessResponse(options?.success, method, payload, disableCodecs),
|
|
1160
1309
|
error: getErrorResponse(options?.error, disableCodecs),
|
|
1161
1310
|
annotations: Context.empty(),
|
|
1162
1311
|
middlewares: new Set(),
|
|
@@ -1185,21 +1334,48 @@ function getPayload(
|
|
|
1185
1334
|
): PayloadMap {
|
|
1186
1335
|
const result: Map<
|
|
1187
1336
|
string,
|
|
1188
|
-
{
|
|
1337
|
+
{
|
|
1338
|
+
encoding: HttpApiSchema.PayloadEncoding | { readonly _tag: "Stream"; readonly contentType: string }
|
|
1339
|
+
schemas: [Schema.Top, ...Array<Schema.Top>]
|
|
1340
|
+
}
|
|
1189
1341
|
> = new Map()
|
|
1190
|
-
if (payload === undefined) return result
|
|
1342
|
+
if (payload === undefined) return result as PayloadMap
|
|
1191
1343
|
const schemas: Array<Schema.Top> = Array.isArray(payload)
|
|
1192
1344
|
? payload
|
|
1193
1345
|
: Schema.isSchema(payload)
|
|
1194
1346
|
? [payload]
|
|
1195
1347
|
: [(Schema.Struct(payload as any)).pipe(HttpApiSchema.asFormUrlEncoded())]
|
|
1196
1348
|
const transform = disableCodecs ? identity : transformPayload
|
|
1349
|
+
let hasStream = false
|
|
1197
1350
|
|
|
1198
1351
|
for (const schema of schemas) {
|
|
1352
|
+
if (HttpApiSchema.isStreamSchema(schema)) {
|
|
1353
|
+
if (HttpApiSchema.isStreamSse(schema)) {
|
|
1354
|
+
throw new Error("StreamSse is response-only and cannot be used as a payload")
|
|
1355
|
+
}
|
|
1356
|
+
if (!hasBody(method)) {
|
|
1357
|
+
throw new Error(`${method} endpoints cannot declare a streaming payload`)
|
|
1358
|
+
}
|
|
1359
|
+
if (hasStream) {
|
|
1360
|
+
throw new Error("Multiple streaming payloads are not supported")
|
|
1361
|
+
}
|
|
1362
|
+
hasStream = true
|
|
1363
|
+
for (const declared of schema.contentTypes) {
|
|
1364
|
+
const contentType = MediaType.normalize(declared)
|
|
1365
|
+
if (result.has(contentType)) {
|
|
1366
|
+
throw new Error(`Cannot combine buffered and streaming payloads for content-type: ${declared}`)
|
|
1367
|
+
}
|
|
1368
|
+
result.set(contentType, { encoding: { _tag: "Stream", contentType: declared }, schemas: [schema] })
|
|
1369
|
+
}
|
|
1370
|
+
continue
|
|
1371
|
+
}
|
|
1199
1372
|
const encoding = HttpApiSchema.getPayloadEncoding(schema.ast, method)
|
|
1200
1373
|
const contentType = MediaType.normalize(encoding.contentType)
|
|
1201
1374
|
const existing = result.get(contentType)
|
|
1202
1375
|
if (existing) {
|
|
1376
|
+
if (existing.encoding._tag === "Stream") {
|
|
1377
|
+
throw new Error(`Cannot combine buffered and streaming payloads for content-type: ${encoding.contentType}`)
|
|
1378
|
+
}
|
|
1203
1379
|
if (existing.encoding._tag !== encoding._tag) {
|
|
1204
1380
|
throw new Error(`Multiple payload encodings for content-type: ${encoding.contentType}`)
|
|
1205
1381
|
}
|
|
@@ -1211,7 +1387,7 @@ function getPayload(
|
|
|
1211
1387
|
result.set(contentType, { encoding, schemas: [transform(schema, method)] })
|
|
1212
1388
|
}
|
|
1213
1389
|
}
|
|
1214
|
-
return result
|
|
1390
|
+
return result as PayloadMap
|
|
1215
1391
|
}
|
|
1216
1392
|
|
|
1217
1393
|
const reservedStreamFailureEvent = "effect/http-api/stream/failure"
|
|
@@ -1219,21 +1395,27 @@ const reservedStreamFailureEvent = "effect/http-api/stream/failure"
|
|
|
1219
1395
|
function getSuccessResponse(
|
|
1220
1396
|
success: Schema.Top | ReadonlyArray<Schema.Top> | undefined,
|
|
1221
1397
|
method: HttpMethod,
|
|
1398
|
+
payload: PayloadMap,
|
|
1222
1399
|
disableCodecs: boolean
|
|
1223
1400
|
): Set<Schema.Top> {
|
|
1224
1401
|
if (success === undefined) return new Set()
|
|
1225
1402
|
const schemas = Arr.ensure(success)
|
|
1226
|
-
validateSuccessResponse(schemas, method)
|
|
1403
|
+
validateSuccessResponse(schemas, method, payload)
|
|
1227
1404
|
return new Set(disableCodecs ? schemas : schemas.map(transformResponseSchema))
|
|
1228
1405
|
}
|
|
1229
1406
|
|
|
1230
1407
|
const transformResponseSchema = memoize((schema: Schema.Top): Schema.Top => {
|
|
1231
1408
|
if (HttpApiSchema.isStreamSchema(schema)) return schema
|
|
1409
|
+
if (HttpApiSchema.isUpgrade(schema)) {
|
|
1410
|
+
return schema.headers === undefined
|
|
1411
|
+
? schema
|
|
1412
|
+
: HttpApiSchema.rebuildUpgrade(schema.protocol, toCodecHttpProperties(schema.headers))
|
|
1413
|
+
}
|
|
1232
1414
|
if (HttpApiSchema.isWithHeaders(schema)) {
|
|
1233
1415
|
const inner = HttpApiSchema.isStreamSchema(schema.schema)
|
|
1234
1416
|
? schema.schema
|
|
1235
1417
|
: applyResponseEncoding(schema.schema, HttpApiSchema.getResponseEncodingSchema(schema))
|
|
1236
|
-
return HttpApiSchema.rebuildWithHeaders(schema, inner,
|
|
1418
|
+
return HttpApiSchema.rebuildWithHeaders(schema, inner, toCodecHttpProperties(schema.headers))
|
|
1237
1419
|
}
|
|
1238
1420
|
return transformResponse(schema)
|
|
1239
1421
|
})
|
|
@@ -1249,12 +1431,30 @@ function getErrorResponse(
|
|
|
1249
1431
|
if (HttpApiSchema.isStreamSchema(body)) {
|
|
1250
1432
|
throw new Error("Streaming schemas are not supported in error responses")
|
|
1251
1433
|
}
|
|
1434
|
+
if (HttpApiSchema.isUpgrade(body)) {
|
|
1435
|
+
throw new Error("Upgrade schemas are not supported in error responses")
|
|
1436
|
+
}
|
|
1252
1437
|
}
|
|
1253
1438
|
validateResponseExclusivity(schemas, HttpApiSchema.getStatusErrorSchema)
|
|
1254
1439
|
return new Set(disableCodecs ? schemas : schemas.map(transformResponseSchema))
|
|
1255
1440
|
}
|
|
1256
1441
|
|
|
1257
|
-
function validateSuccessResponse(schemas: ReadonlyArray<Schema.Constraint>, method: HttpMethod) {
|
|
1442
|
+
function validateSuccessResponse(schemas: ReadonlyArray<Schema.Constraint>, method: HttpMethod, payload: PayloadMap) {
|
|
1443
|
+
if (schemas.some(HttpApiSchema.isUpgrade)) {
|
|
1444
|
+
if (schemas.length > 1) {
|
|
1445
|
+
throw new Error("Cannot combine an upgrade with other success responses")
|
|
1446
|
+
}
|
|
1447
|
+
if (method === "HEAD") {
|
|
1448
|
+
throw new Error("HEAD endpoints cannot declare an upgrade")
|
|
1449
|
+
}
|
|
1450
|
+
// The 101 can only follow the end of the request, so the body is read before the upgrade.
|
|
1451
|
+
for (const { encoding } of payload.values()) {
|
|
1452
|
+
if (encoding._tag === "Stream" || (encoding._tag === "Multipart" && encoding.mode === "stream")) {
|
|
1453
|
+
throw new Error("Upgrade endpoints cannot declare a streaming payload")
|
|
1454
|
+
}
|
|
1455
|
+
}
|
|
1456
|
+
return
|
|
1457
|
+
}
|
|
1258
1458
|
let hasStream = false
|
|
1259
1459
|
const statuses = new Map<number, {
|
|
1260
1460
|
readonly stream?: HttpApiSchema.StreamSchema | undefined
|
|
@@ -1275,10 +1475,12 @@ function validateSuccessResponse(schemas: ReadonlyArray<Schema.Constraint>, meth
|
|
|
1275
1475
|
if (entry.noContent) {
|
|
1276
1476
|
throw new Error(`Cannot combine no-content and streaming success responses for status: ${status}`)
|
|
1277
1477
|
}
|
|
1278
|
-
|
|
1279
|
-
|
|
1280
|
-
|
|
1281
|
-
|
|
1478
|
+
for (const declared of inner.contentTypes) {
|
|
1479
|
+
if (entry.bufferedContentTypes.has(MediaType.normalize(declared))) {
|
|
1480
|
+
throw new Error(
|
|
1481
|
+
`Cannot combine buffered and streaming success responses for status ${status} and content-type: ${declared}`
|
|
1482
|
+
)
|
|
1483
|
+
}
|
|
1282
1484
|
}
|
|
1283
1485
|
statuses.set(status, { ...entry, stream: inner })
|
|
1284
1486
|
} else {
|
|
@@ -1289,9 +1491,8 @@ function validateSuccessResponse(schemas: ReadonlyArray<Schema.Constraint>, meth
|
|
|
1289
1491
|
throw new Error(`Cannot combine no-content and streaming success responses for status: ${status}`)
|
|
1290
1492
|
}
|
|
1291
1493
|
const encoding = HttpApiSchema.getResponseEncodingSchema(schema)
|
|
1292
|
-
|
|
1293
|
-
|
|
1294
|
-
) {
|
|
1494
|
+
const contentType = MediaType.normalize(encoding.contentType)
|
|
1495
|
+
if (entry.stream.contentTypes.some((declared) => MediaType.normalize(declared) === contentType)) {
|
|
1295
1496
|
throw new Error(
|
|
1296
1497
|
`Cannot combine buffered and streaming success responses for status ${status} and content-type: ${encoding.contentType}`
|
|
1297
1498
|
)
|
|
@@ -1424,7 +1625,7 @@ function transformResponse(schema: Schema.Top): Schema.Top {
|
|
|
1424
1625
|
"~httpApiWithHeaders": {
|
|
1425
1626
|
...withHeaders,
|
|
1426
1627
|
bodyCodec: applyResponseEncoding(withHeaders.body, encoding),
|
|
1427
|
-
headersCodec:
|
|
1628
|
+
headersCodec: toCodecHttpProperties(withHeaders.headers)
|
|
1428
1629
|
}
|
|
1429
1630
|
})
|
|
1430
1631
|
}
|
|
@@ -1442,6 +1643,7 @@ function applyResponseEncoding(schema: Schema.Top, encoding: HttpApiSchema.Respo
|
|
|
1442
1643
|
}
|
|
1443
1644
|
|
|
1444
1645
|
function transformPayload(schema: Schema.Top, method: HttpMethod): Schema.Top {
|
|
1646
|
+
if (!hasBody(method)) return toCodecHttpProperties(schema)
|
|
1445
1647
|
const encoding = HttpApiSchema.getPayloadEncoding(schema.ast, method)
|
|
1446
1648
|
switch (encoding._tag) {
|
|
1447
1649
|
case "Json":
|
|
@@ -10,6 +10,7 @@
|
|
|
10
10
|
* @stability unstable
|
|
11
11
|
* @since 4.0.0
|
|
12
12
|
*/
|
|
13
|
+
import type * as ByteSize from "../ByteSize.ts"
|
|
13
14
|
import * as Data from "../Data.ts"
|
|
14
15
|
import * as Effect from "../Effect.ts"
|
|
15
16
|
import * as ErrorReporter from "../ErrorReporter.ts"
|
|
@@ -28,6 +29,7 @@ const notAcceptableResponse = HttpServerResponse.empty({ status: 406 })
|
|
|
28
29
|
const requestTimeoutResponse = HttpServerResponse.empty({ status: 408 })
|
|
29
30
|
const conflictResponse = HttpServerResponse.empty({ status: 409 })
|
|
30
31
|
const goneResponse = HttpServerResponse.empty({ status: 410 })
|
|
32
|
+
const payloadTooLargeResponse = HttpServerResponse.empty({ status: 413 })
|
|
31
33
|
const unprocessableEntityResponse = HttpServerResponse.empty({ status: 422 })
|
|
32
34
|
const internalServerErrorResponse = HttpServerResponse.empty({ status: 500 })
|
|
33
35
|
const notImplementedResponse = HttpServerResponse.empty({ status: 501 })
|
|
@@ -505,3 +507,56 @@ export class HttpApiSchemaError extends Data.TaggedClass("HttpApiSchemaError")<{
|
|
|
505
507
|
return Effect.succeed(this[ErrorReporter.ignore] ? badRequestResponse : internalServerErrorResponse)
|
|
506
508
|
}
|
|
507
509
|
}
|
|
510
|
+
|
|
511
|
+
/**
|
|
512
|
+
* Type-level identifier used to mark `HttpApiPayloadTooLarge` values.
|
|
513
|
+
*
|
|
514
|
+
* @stability unstable
|
|
515
|
+
* @category type IDs
|
|
516
|
+
* @since 4.0.6
|
|
517
|
+
*/
|
|
518
|
+
export type HttpApiPayloadTooLargeTypeId = "~effect/http-api/HttpApiError/HttpApiPayloadTooLarge"
|
|
519
|
+
|
|
520
|
+
/**
|
|
521
|
+
* Runtime identifier used to mark and detect `HttpApiPayloadTooLarge` values.
|
|
522
|
+
*
|
|
523
|
+
* @stability unstable
|
|
524
|
+
* @category type IDs
|
|
525
|
+
* @since 4.0.6
|
|
526
|
+
*/
|
|
527
|
+
export const HttpApiPayloadTooLargeTypeId: HttpApiPayloadTooLargeTypeId =
|
|
528
|
+
"~effect/http-api/HttpApiError/HttpApiPayloadTooLarge"
|
|
529
|
+
|
|
530
|
+
/**
|
|
531
|
+
* Error raised when a streaming request payload exceeds a limit declared on
|
|
532
|
+
* its `HttpApiSchema.StreamUint8Array` or `HttpApiSchema.StreamNdjson` schema.
|
|
533
|
+
* It responds with an empty `413 Payload Too Large` and is ignored by error
|
|
534
|
+
* reporters.
|
|
535
|
+
*
|
|
536
|
+
* **Details**
|
|
537
|
+
*
|
|
538
|
+
* `limit` names the option that was exceeded: `maxBytes` caps the whole body
|
|
539
|
+
* and `maxElementBytes` caps one NDJSON line. `size` is its configured value.
|
|
540
|
+
*
|
|
541
|
+
* @stability unstable
|
|
542
|
+
* @category errors
|
|
543
|
+
* @since 4.0.6
|
|
544
|
+
*/
|
|
545
|
+
export class HttpApiPayloadTooLarge extends Data.TaggedClass("HttpApiPayloadTooLarge")<{
|
|
546
|
+
readonly limit: "maxBytes" | "maxElementBytes"
|
|
547
|
+
readonly size: ByteSize.ByteSize
|
|
548
|
+
}> {
|
|
549
|
+
readonly [HttpApiPayloadTooLargeTypeId]: HttpApiPayloadTooLargeTypeId = HttpApiPayloadTooLargeTypeId
|
|
550
|
+
readonly [ErrorReporter.ignore] = true
|
|
551
|
+
|
|
552
|
+
static is(u: unknown): u is HttpApiPayloadTooLarge {
|
|
553
|
+
return hasProperty(u, HttpApiPayloadTooLargeTypeId)
|
|
554
|
+
}
|
|
555
|
+
|
|
556
|
+
readonly name = "HttpApiPayloadTooLarge"
|
|
557
|
+
readonly message = `Payload exceeds ${this.limit} of ${this.size} bytes`;
|
|
558
|
+
|
|
559
|
+
[HttpServerRespondable.symbol]() {
|
|
560
|
+
return Effect.succeed(payloadTooLargeResponse)
|
|
561
|
+
}
|
|
562
|
+
}
|
|
@@ -17,7 +17,6 @@ import type * as Layer from "../Layer.ts"
|
|
|
17
17
|
import type * as HttpApi from "./HttpApi.ts"
|
|
18
18
|
import type * as HttpApiGroup from "./HttpApiGroup.ts"
|
|
19
19
|
import * as Html from "./internal/html.ts"
|
|
20
|
-
import * as internal from "./internal/httpApiScalar.ts"
|
|
21
20
|
import * as OpenApi from "./OpenApi.ts"
|
|
22
21
|
|
|
23
22
|
/**
|
|
@@ -212,7 +211,8 @@ const makeHandler = <Id extends string, Groups extends HttpApiGroup.Constraint>(
|
|
|
212
211
|
* **Details**
|
|
213
212
|
*
|
|
214
213
|
* The route serves the OpenAPI specification generated from the API at the
|
|
215
|
-
* configured path, defaulting to `/docs`.
|
|
214
|
+
* configured path, defaulting to `/docs`. The bundled script is loaded when
|
|
215
|
+
* the layer is built, not when this module is imported.
|
|
216
216
|
*
|
|
217
217
|
* @stability unstable
|
|
218
218
|
* @category layers
|
|
@@ -226,11 +226,12 @@ export const layer = <Id extends string, Groups extends HttpApiGroup.Constraint>
|
|
|
226
226
|
} | undefined
|
|
227
227
|
): Layer.Layer<never, never, HttpRouter.HttpRouter> =>
|
|
228
228
|
HttpRouter.use(Effect.fnUntraced(function*(router) {
|
|
229
|
+
const { javascript } = yield* Effect.promise(() => import("./internal/httpApiScalar.ts"))
|
|
229
230
|
const handler = makeHandler({
|
|
230
231
|
api,
|
|
231
232
|
source: {
|
|
232
233
|
_tag: "Inline",
|
|
233
|
-
source:
|
|
234
|
+
source: javascript
|
|
234
235
|
},
|
|
235
236
|
scalar: options?.scalar
|
|
236
237
|
})
|