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
|
@@ -10,6 +10,8 @@
|
|
|
10
10
|
* @stability unstable
|
|
11
11
|
* @since 4.0.0
|
|
12
12
|
*/
|
|
13
|
+
import * as Arr from "../Array.ts"
|
|
14
|
+
import * as ByteSize from "../ByteSize.ts"
|
|
13
15
|
import * as Sse from "../encoding/Sse.ts"
|
|
14
16
|
import { constVoid, type LazyArg } from "../Function.ts"
|
|
15
17
|
import { hasBody, type HttpMethod } from "../http/HttpMethod.ts"
|
|
@@ -19,7 +21,9 @@ import * as Predicate from "../Predicate.ts"
|
|
|
19
21
|
import * as Schema from "../Schema.ts"
|
|
20
22
|
import * as SchemaAST from "../SchemaAST.ts"
|
|
21
23
|
import * as SchemaTransformation from "../SchemaTransformation.ts"
|
|
24
|
+
import * as Socket from "../socket/Socket.ts"
|
|
22
25
|
import * as Stream from "../Stream.ts"
|
|
26
|
+
import * as MediaType from "./internal/mediaType.ts"
|
|
23
27
|
|
|
24
28
|
declare module "../Schema.ts" {
|
|
25
29
|
namespace Annotations {
|
|
@@ -120,9 +124,15 @@ export type StatusLiteral = HttpStatus.Literal
|
|
|
120
124
|
*
|
|
121
125
|
* **Details**
|
|
122
126
|
*
|
|
123
|
-
*
|
|
124
|
-
* schema
|
|
125
|
-
*
|
|
127
|
+
* Stores the status with `.annotateKey({ httpApiStatus: code })` unless the
|
|
128
|
+
* schema or any of its checks already has an ordinary `httpApiStatus`
|
|
129
|
+
* annotation, including an explicit `undefined`. In that case, uses
|
|
130
|
+
* `.annotate({ httpApiStatus: code })` instead.
|
|
131
|
+
*
|
|
132
|
+
* Ordinary status annotations take precedence over key annotations. Checks
|
|
133
|
+
* without a status annotation preserve the existing status. You can pass
|
|
134
|
+
* either a numeric code (for example, `201`) or a common literal name
|
|
135
|
+
* (for example, `"Created"`).
|
|
126
136
|
*
|
|
127
137
|
* @stability unstable
|
|
128
138
|
* @category schemas
|
|
@@ -142,7 +152,10 @@ export function status(code: StatusLiteral): {
|
|
|
142
152
|
*/
|
|
143
153
|
export function status(code: number | StatusLiteral) {
|
|
144
154
|
const statusCode = typeof code === "string" ? HttpStatus.fromLiteral(code) : code
|
|
145
|
-
return <S extends Schema.Top>(self: S): S["Rebuild"] =>
|
|
155
|
+
return <S extends Schema.Top>(self: S): S["Rebuild"] =>
|
|
156
|
+
findHttpApiStatusAnnotation(self.ast) === undefined
|
|
157
|
+
? self.annotateKey({ httpApiStatus: statusCode })
|
|
158
|
+
: self.annotate({ httpApiStatus: statusCode })
|
|
146
159
|
}
|
|
147
160
|
|
|
148
161
|
/**
|
|
@@ -251,7 +264,7 @@ export function asNoContent<S extends Schema.Constraint>(options: {
|
|
|
251
264
|
}
|
|
252
265
|
}
|
|
253
266
|
|
|
254
|
-
type StreamMode = "sse" | "uint8array"
|
|
267
|
+
type StreamMode = "sse" | "uint8array" | "ndjson"
|
|
255
268
|
|
|
256
269
|
/**
|
|
257
270
|
* Mode describing whether an SSE stream emits full events or raw data values.
|
|
@@ -282,6 +295,9 @@ export type StreamSseMode = "events" | "data"
|
|
|
282
295
|
* application event. Endpoint construction rejects event schemas that declare
|
|
283
296
|
* the reserved name statically.
|
|
284
297
|
*
|
|
298
|
+
* `StreamSse` is response-only. The `payload` slot's type excludes it, and
|
|
299
|
+
* endpoint construction rejects it.
|
|
300
|
+
*
|
|
285
301
|
* @stability unstable
|
|
286
302
|
* @category models
|
|
287
303
|
* @since 4.0.0
|
|
@@ -309,6 +325,7 @@ export interface StreamSse<
|
|
|
309
325
|
readonly mode: "sse"
|
|
310
326
|
readonly sseMode: StreamSseMode
|
|
311
327
|
readonly contentType: string
|
|
328
|
+
readonly contentTypes: Arr.NonEmptyReadonlyArray<string>
|
|
312
329
|
readonly events: Events
|
|
313
330
|
readonly error: Error
|
|
314
331
|
readonly "~Value"?: Value | undefined
|
|
@@ -339,13 +356,14 @@ export interface SseEventFromData<Data extends Schema.Constraint> extends
|
|
|
339
356
|
{}
|
|
340
357
|
|
|
341
358
|
/**
|
|
342
|
-
* Schema for a streaming `Uint8Array`
|
|
359
|
+
* Schema for a streaming `Uint8Array` body.
|
|
343
360
|
*
|
|
344
361
|
* **Details**
|
|
345
362
|
*
|
|
346
|
-
*
|
|
347
|
-
*
|
|
348
|
-
* the
|
|
363
|
+
* It works as a success response or as a request payload. It is intentionally
|
|
364
|
+
* separate from the buffered `asUint8Array` encoding. As a payload, the handler
|
|
365
|
+
* receives the body as it is read, and `maxBytes` caps the bytes read. It has
|
|
366
|
+
* no default and does not fall back to `MaxBodySize`.
|
|
349
367
|
*
|
|
350
368
|
* @stability unstable
|
|
351
369
|
* @category models
|
|
@@ -366,22 +384,93 @@ export interface StreamUint8Array extends
|
|
|
366
384
|
readonly _tag: "StreamUint8Array"
|
|
367
385
|
readonly mode: "uint8array"
|
|
368
386
|
readonly contentType: string
|
|
387
|
+
readonly contentTypes: Arr.NonEmptyReadonlyArray<string>
|
|
388
|
+
readonly maxBytes: ByteSize.ByteSize | undefined
|
|
389
|
+
}
|
|
390
|
+
|
|
391
|
+
/**
|
|
392
|
+
* Schema for a stream of newline-delimited JSON elements.
|
|
393
|
+
*
|
|
394
|
+
* **Details**
|
|
395
|
+
*
|
|
396
|
+
* Each element is encoded as one line of JSON followed by `\n`, including the
|
|
397
|
+
* last. When decoding, `\n`, `\r\n` and a bare `\r` end a line, empty lines are
|
|
398
|
+
* skipped, a leading BOM is stripped and invalid UTF-8 fails. The first
|
|
399
|
+
* malformed line or element that fails to decode ends the stream, after every
|
|
400
|
+
* element before it has been delivered. A missing final newline is accepted if
|
|
401
|
+
* the last line parses.
|
|
402
|
+
*
|
|
403
|
+
* `maxElementBytes` caps the UTF-8 bytes of one line, without its terminator.
|
|
404
|
+
* `maxBytes` caps the whole body and has no default.
|
|
405
|
+
*
|
|
406
|
+
* As a request payload, the handler receives the elements as the body is
|
|
407
|
+
* read. Malformed lines and elements that fail to decode are an
|
|
408
|
+
* `HttpApiSchemaError`, and limit breaches are an `HttpApiPayloadTooLarge`.
|
|
409
|
+
*
|
|
410
|
+
* **Gotchas**
|
|
411
|
+
*
|
|
412
|
+
* There is no `error` schema. A failure mid-stream aborts the connection, so
|
|
413
|
+
* the reader sees a body read error, never a clean end. Typed failures
|
|
414
|
+
* mid-stream are a {@link StreamSse} feature. A body cut cleanly at a line
|
|
415
|
+
* boundary can't be told apart from a complete one.
|
|
416
|
+
*
|
|
417
|
+
* @stability unstable
|
|
418
|
+
* @category models
|
|
419
|
+
* @since 4.0.6
|
|
420
|
+
*/
|
|
421
|
+
export interface StreamNdjson<S extends Schema.Constraint> extends
|
|
422
|
+
Schema.BottomLazy<
|
|
423
|
+
SchemaAST.Declaration,
|
|
424
|
+
StreamNdjson<S>
|
|
425
|
+
>
|
|
426
|
+
{
|
|
427
|
+
readonly "Type": Stream.Stream<S["Type"], unknown, never>
|
|
428
|
+
readonly "Encoded": Stream.Stream<S["Type"], unknown, never>
|
|
429
|
+
readonly "DecodingServices": S["DecodingServices"]
|
|
430
|
+
readonly "EncodingServices": S["EncodingServices"]
|
|
431
|
+
readonly "Rebuild": StreamNdjson<S>
|
|
432
|
+
readonly "~type.make.in": Stream.Stream<S["Type"], unknown, never>
|
|
433
|
+
readonly "~type.make": Stream.Stream<S["Type"], unknown, never>
|
|
434
|
+
readonly "Iso": Stream.Stream<S["Type"], unknown, never>
|
|
435
|
+
readonly [StreamSchemaTypeId]: typeof StreamSchemaTypeId
|
|
436
|
+
readonly _tag: "StreamNdjson"
|
|
437
|
+
readonly mode: "ndjson"
|
|
438
|
+
readonly contentType: string
|
|
439
|
+
readonly contentTypes: Arr.NonEmptyReadonlyArray<string>
|
|
440
|
+
readonly schema: S
|
|
441
|
+
readonly maxBytes: ByteSize.ByteSize | undefined
|
|
442
|
+
readonly maxElementBytes: ByteSize.ByteSize
|
|
369
443
|
}
|
|
370
444
|
|
|
371
445
|
/**
|
|
372
|
-
* Schema for a streaming HTTP API
|
|
446
|
+
* Schema for a streaming HTTP API body.
|
|
447
|
+
*
|
|
448
|
+
* **Details**
|
|
449
|
+
*
|
|
450
|
+
* {@link StreamUint8Array} and {@link StreamNdjson} describe the body in either
|
|
451
|
+
* direction, with the endpoint slot deciding which. {@link StreamSse} is for
|
|
452
|
+
* success responses only.
|
|
373
453
|
*
|
|
374
454
|
* @stability unstable
|
|
375
455
|
* @category models
|
|
376
456
|
* @since 4.0.0
|
|
377
457
|
*/
|
|
378
|
-
export type StreamSchema =
|
|
458
|
+
export type StreamSchema =
|
|
459
|
+
| StreamSse<Sse.EventCodec, Schema.Top, unknown>
|
|
460
|
+
| StreamUint8Array
|
|
461
|
+
| StreamNdjson<Schema.Top>
|
|
379
462
|
|
|
380
463
|
const streamSchema = Schema.declare(Stream.isStream)
|
|
381
464
|
|
|
465
|
+
const defaultMaxElementBytes = ByteSize.mebibytes(1)
|
|
466
|
+
|
|
382
467
|
/**
|
|
383
468
|
* Creates a Server-Sent Events streaming success response schema.
|
|
384
469
|
*
|
|
470
|
+
* **Details**
|
|
471
|
+
*
|
|
472
|
+
* `StreamSse` is response-only. Endpoint construction rejects it in `payload`.
|
|
473
|
+
*
|
|
385
474
|
* @stability unstable
|
|
386
475
|
* @category constructors
|
|
387
476
|
* @since 4.0.0
|
|
@@ -390,6 +479,10 @@ export const StreamSse: {
|
|
|
390
479
|
/**
|
|
391
480
|
* Creates a Server-Sent Events streaming success response schema.
|
|
392
481
|
*
|
|
482
|
+
* **Details**
|
|
483
|
+
*
|
|
484
|
+
* `StreamSse` is response-only. Endpoint construction rejects it in `payload`.
|
|
485
|
+
*
|
|
393
486
|
* @stability unstable
|
|
394
487
|
* @category constructors
|
|
395
488
|
* @since 4.0.0
|
|
@@ -404,6 +497,10 @@ export const StreamSse: {
|
|
|
404
497
|
/**
|
|
405
498
|
* Creates a Server-Sent Events streaming success response schema.
|
|
406
499
|
*
|
|
500
|
+
* **Details**
|
|
501
|
+
*
|
|
502
|
+
* `StreamSse` is response-only. Endpoint construction rejects it in `payload`.
|
|
503
|
+
*
|
|
407
504
|
* @stability unstable
|
|
408
505
|
* @category constructors
|
|
409
506
|
* @since 4.0.0
|
|
@@ -433,27 +530,87 @@ export const StreamSse: {
|
|
|
433
530
|
_tag: "StreamSse",
|
|
434
531
|
mode: "sse",
|
|
435
532
|
sseMode: options.events === undefined ? "data" : "events",
|
|
436
|
-
|
|
533
|
+
...streamContentTypes(options.contentType, "sse"),
|
|
437
534
|
events,
|
|
438
535
|
error: options.error ?? Schema.Never
|
|
439
536
|
})
|
|
440
537
|
}
|
|
441
538
|
|
|
442
539
|
/**
|
|
443
|
-
* Creates a streaming `Uint8Array`
|
|
540
|
+
* Creates a streaming `Uint8Array` body schema.
|
|
541
|
+
*
|
|
542
|
+
* **Details**
|
|
543
|
+
*
|
|
544
|
+
* `contentType` defaults to `application/octet-stream`. Pass a list when the
|
|
545
|
+
* same stream is sent under several media types. The first entry is the
|
|
546
|
+
* default response type, and payloads are accepted under every entry.
|
|
547
|
+
* `maxBytes` only applies to request payloads and has no default.
|
|
444
548
|
*
|
|
445
549
|
* @stability unstable
|
|
446
550
|
* @category constructors
|
|
447
551
|
* @since 4.0.0
|
|
448
552
|
*/
|
|
449
553
|
export const StreamUint8Array = (options?: {
|
|
450
|
-
readonly contentType?: string | undefined
|
|
554
|
+
readonly contentType?: string | ReadonlyArray<string> | undefined
|
|
555
|
+
readonly maxBytes?: ByteSize.Input | undefined
|
|
451
556
|
}): StreamUint8Array =>
|
|
452
557
|
Schema.make<StreamUint8Array>(streamSchema.ast, {
|
|
453
558
|
[StreamSchemaTypeId]: StreamSchemaTypeId,
|
|
454
559
|
_tag: "StreamUint8Array",
|
|
455
560
|
mode: "uint8array",
|
|
456
|
-
|
|
561
|
+
...streamContentTypes(options?.contentType, "uint8array"),
|
|
562
|
+
maxBytes: options?.maxBytes === undefined ? undefined : ByteSize.fromInputUnsafe(options.maxBytes)
|
|
563
|
+
})
|
|
564
|
+
|
|
565
|
+
/**
|
|
566
|
+
* Creates a schema for a stream of newline-delimited JSON elements.
|
|
567
|
+
*
|
|
568
|
+
* **Details**
|
|
569
|
+
*
|
|
570
|
+
* `contentType` defaults to `application/x-ndjson` and `maxElementBytes` to 1
|
|
571
|
+
* MiB. `maxBytes` has no default. Pass a list of content types to accept
|
|
572
|
+
* aliases such as `application/jsonl`. The first entry is the default.
|
|
573
|
+
*
|
|
574
|
+
* **Example** (Declaring an NDJSON request payload)
|
|
575
|
+
*
|
|
576
|
+
* ```ts import.meta.vitest
|
|
577
|
+
* import { Schema } from "effect"
|
|
578
|
+
* import { HttpApiEndpoint, HttpApiSchema } from "effect/http-api"
|
|
579
|
+
*
|
|
580
|
+
* const Event = Schema.Struct({ id: Schema.Number })
|
|
581
|
+
* const payload = HttpApiSchema.StreamNdjson({ schema: Event, maxBytes: "100 MiB" })
|
|
582
|
+
*
|
|
583
|
+
* // The handler receives a Stream of Events
|
|
584
|
+
* const importEvents = HttpApiEndpoint.post("importEvents", "/events", {
|
|
585
|
+
* payload,
|
|
586
|
+
* success: Schema.Number
|
|
587
|
+
* })
|
|
588
|
+
*
|
|
589
|
+
* importEvents.path // => "/events"
|
|
590
|
+
* payload.contentType // => "application/x-ndjson"
|
|
591
|
+
* payload.maxElementBytes // => 1048576n
|
|
592
|
+
* ```
|
|
593
|
+
*
|
|
594
|
+
* @stability unstable
|
|
595
|
+
* @category constructors
|
|
596
|
+
* @since 4.0.6
|
|
597
|
+
*/
|
|
598
|
+
export const StreamNdjson = <S extends Schema.Constraint>(options: {
|
|
599
|
+
readonly schema: S
|
|
600
|
+
readonly contentType?: string | ReadonlyArray<string> | undefined
|
|
601
|
+
readonly maxBytes?: ByteSize.Input | undefined
|
|
602
|
+
readonly maxElementBytes?: ByteSize.Input | undefined
|
|
603
|
+
}): StreamNdjson<S> =>
|
|
604
|
+
Schema.make<StreamNdjson<S>>(streamSchema.ast, {
|
|
605
|
+
[StreamSchemaTypeId]: StreamSchemaTypeId,
|
|
606
|
+
_tag: "StreamNdjson",
|
|
607
|
+
mode: "ndjson",
|
|
608
|
+
...streamContentTypes(options.contentType, "ndjson"),
|
|
609
|
+
schema: options.schema,
|
|
610
|
+
maxBytes: options.maxBytes === undefined ? undefined : ByteSize.fromInputUnsafe(options.maxBytes),
|
|
611
|
+
maxElementBytes: options.maxElementBytes === undefined
|
|
612
|
+
? defaultMaxElementBytes
|
|
613
|
+
: ByteSize.fromInputUnsafe(options.maxElementBytes)
|
|
457
614
|
})
|
|
458
615
|
|
|
459
616
|
/**
|
|
@@ -474,12 +631,176 @@ export const isStreamSse = (u: unknown): u is StreamSse<Sse.EventCodec, Schema.T
|
|
|
474
631
|
export const isStreamUint8Array = (u: unknown): u is StreamUint8Array =>
|
|
475
632
|
isStreamSchema(u) && u._tag === "StreamUint8Array"
|
|
476
633
|
|
|
634
|
+
/**
|
|
635
|
+
* @internal
|
|
636
|
+
*/
|
|
637
|
+
export const isStreamNdjson = (u: unknown): u is StreamNdjson<Schema.Top> =>
|
|
638
|
+
isStreamSchema(u) && u._tag === "StreamNdjson"
|
|
639
|
+
|
|
640
|
+
const UpgradeTypeId = "~effect/http-api/HttpApiSchema/Upgrade"
|
|
641
|
+
|
|
642
|
+
/**
|
|
643
|
+
* Schema for a success response that switches the connection to another
|
|
644
|
+
* protocol with an HTTP/1.1 upgrade.
|
|
645
|
+
*
|
|
646
|
+
* **Details**
|
|
647
|
+
*
|
|
648
|
+
* Created with {@link Upgrade}. The response is `101 Switching Protocols`, and
|
|
649
|
+
* the connection then carries raw bytes in both directions as a `Socket`.
|
|
650
|
+
* `Headers` is the schema of the custom `101` headers, or `never` when the
|
|
651
|
+
* upgrade declares none.
|
|
652
|
+
*
|
|
653
|
+
* @stability unstable
|
|
654
|
+
* @category models
|
|
655
|
+
* @since 4.0.6
|
|
656
|
+
*/
|
|
657
|
+
export interface Upgrade<Headers extends Schema.Top = Schema.Top> extends
|
|
658
|
+
Schema.Bottom<
|
|
659
|
+
Socket.Socket,
|
|
660
|
+
Socket.Socket,
|
|
661
|
+
never,
|
|
662
|
+
never,
|
|
663
|
+
SchemaAST.Declaration,
|
|
664
|
+
Upgrade<Headers>
|
|
665
|
+
>
|
|
666
|
+
{
|
|
667
|
+
readonly "Rebuild": Upgrade<Headers>
|
|
668
|
+
readonly [UpgradeTypeId]: typeof UpgradeTypeId
|
|
669
|
+
readonly protocol: string
|
|
670
|
+
readonly headers: Headers | undefined
|
|
671
|
+
}
|
|
672
|
+
|
|
673
|
+
const upgradeSchema = Schema.declare(Socket.isSocket).pipe(status(101))
|
|
674
|
+
|
|
675
|
+
/**
|
|
676
|
+
* Declares an endpoint success that upgrades the connection to `protocol`,
|
|
677
|
+
* such as Docker's `tcp` for container attach.
|
|
678
|
+
*
|
|
679
|
+
* **When to use**
|
|
680
|
+
*
|
|
681
|
+
* Use as the only success schema of an endpoint that hands over its
|
|
682
|
+
* connection as a raw byte stream after `101 Switching Protocols`. For
|
|
683
|
+
* WebSocket, upgrade the request with `HttpServerRequest.upgrade` and
|
|
684
|
+
* connect with `Socket.makeWebSocket` instead.
|
|
685
|
+
*
|
|
686
|
+
* **Details**
|
|
687
|
+
*
|
|
688
|
+
* The handler receives an `upgrade` function that returns the connection.
|
|
689
|
+
* The `101` response is sent when the handler acquires the socket's reader,
|
|
690
|
+
* so a handler can still fail with a declared error before then. Requests
|
|
691
|
+
* that do not ask for `protocol` get `426 Upgrade Required`.
|
|
692
|
+
*
|
|
693
|
+
* `headers` declares custom `101` response headers, encoded like
|
|
694
|
+
* `WithHeaders` headers. The handler passes them to `upgrade`, so they can
|
|
695
|
+
* depend on the decoded request. `Connection`, `Upgrade`, `Content-Length`
|
|
696
|
+
* and `Transfer-Encoding` cannot be set.
|
|
697
|
+
*
|
|
698
|
+
* The endpoint may declare a buffered payload, which is decoded before the
|
|
699
|
+
* handler runs. Streaming payloads are rejected.
|
|
700
|
+
*
|
|
701
|
+
* The client sends `Connection: Upgrade` and `Upgrade: protocol`, and returns
|
|
702
|
+
* the response headers with the connection, decoded with `headers` when
|
|
703
|
+
* declared. Other responses are decoded as the endpoint's errors.
|
|
704
|
+
*
|
|
705
|
+
* **Example** (Declaring an exec start endpoint)
|
|
706
|
+
*
|
|
707
|
+
* ```ts
|
|
708
|
+
* import { Schema } from "effect"
|
|
709
|
+
* import { HttpApiEndpoint, HttpApiSchema } from "effect/http-api"
|
|
710
|
+
*
|
|
711
|
+
* const start = HttpApiEndpoint.post("start", "/exec/:id/start", {
|
|
712
|
+
* params: { id: Schema.String },
|
|
713
|
+
* payload: Schema.Struct({ Detach: Schema.Boolean, Tty: Schema.Boolean }),
|
|
714
|
+
* success: HttpApiSchema.Upgrade({
|
|
715
|
+
* protocol: "tcp",
|
|
716
|
+
* headers: {
|
|
717
|
+
* "content-type": Schema.Literals([
|
|
718
|
+
* "application/vnd.docker.raw-stream",
|
|
719
|
+
* "application/vnd.docker.multiplexed-stream"
|
|
720
|
+
* ])
|
|
721
|
+
* }
|
|
722
|
+
* })
|
|
723
|
+
* })
|
|
724
|
+
* ```
|
|
725
|
+
*
|
|
726
|
+
* @stability unstable
|
|
727
|
+
* @category constructors
|
|
728
|
+
* @since 4.0.6
|
|
729
|
+
*/
|
|
730
|
+
export function Upgrade(options: { readonly protocol: string }): Upgrade<never>
|
|
731
|
+
/**
|
|
732
|
+
* @stability unstable
|
|
733
|
+
*/
|
|
734
|
+
export function Upgrade<H extends Schema.Struct.Fields>(options: {
|
|
735
|
+
readonly protocol: string
|
|
736
|
+
readonly headers: H
|
|
737
|
+
}): Upgrade<Schema.Struct<H>>
|
|
738
|
+
/**
|
|
739
|
+
* @stability unstable
|
|
740
|
+
*/
|
|
741
|
+
export function Upgrade<H extends Schema.Top>(options: {
|
|
742
|
+
readonly protocol: string
|
|
743
|
+
readonly headers: H
|
|
744
|
+
}): Upgrade<H>
|
|
745
|
+
/**
|
|
746
|
+
* @stability unstable
|
|
747
|
+
*/
|
|
748
|
+
export function Upgrade(options: {
|
|
749
|
+
readonly protocol: string
|
|
750
|
+
readonly headers?: Schema.Top | Schema.Struct.Fields | undefined
|
|
751
|
+
}): Upgrade {
|
|
752
|
+
if (options.protocol.toLowerCase() === "websocket") {
|
|
753
|
+
throw new Error("Upgrade does not support WebSocket")
|
|
754
|
+
}
|
|
755
|
+
const headers = options.headers === undefined || Schema.isSchema(options.headers)
|
|
756
|
+
? options.headers
|
|
757
|
+
: Schema.Struct(options.headers)
|
|
758
|
+
return rebuildUpgrade(options.protocol, headers)
|
|
759
|
+
}
|
|
760
|
+
|
|
761
|
+
/**
|
|
762
|
+
* @internal
|
|
763
|
+
*/
|
|
764
|
+
export const rebuildUpgrade = (protocol: string, headers: Schema.Top | undefined): Upgrade =>
|
|
765
|
+
Schema.make<Upgrade>(upgradeSchema.ast, {
|
|
766
|
+
[UpgradeTypeId]: UpgradeTypeId,
|
|
767
|
+
protocol,
|
|
768
|
+
headers
|
|
769
|
+
})
|
|
770
|
+
|
|
771
|
+
/**
|
|
772
|
+
* @internal
|
|
773
|
+
*/
|
|
774
|
+
export const isUpgrade = (u: unknown): u is Upgrade => Schema.isSchema(u) && Predicate.hasProperty(u, UpgradeTypeId)
|
|
775
|
+
|
|
776
|
+
function streamContentTypes(
|
|
777
|
+
contentType: string | ReadonlyArray<string> | undefined,
|
|
778
|
+
mode: StreamMode
|
|
779
|
+
): { readonly contentType: string; readonly contentTypes: Arr.NonEmptyReadonlyArray<string> } {
|
|
780
|
+
if (contentType === undefined) contentType = defaultStreamContentType(mode)
|
|
781
|
+
if (typeof contentType === "string") return { contentType, contentTypes: [contentType] }
|
|
782
|
+
if (!Arr.isReadonlyArrayNonEmpty(contentType)) {
|
|
783
|
+
throw new Error("Stream schemas require at least one content type")
|
|
784
|
+
}
|
|
785
|
+
const seen = new Set<string>()
|
|
786
|
+
for (const entry of contentType) {
|
|
787
|
+
const normalized = MediaType.normalize(entry)
|
|
788
|
+
if (seen.has(normalized)) {
|
|
789
|
+
throw new Error(`Duplicate stream content type: ${entry}`)
|
|
790
|
+
}
|
|
791
|
+
seen.add(normalized)
|
|
792
|
+
}
|
|
793
|
+
return { contentType: contentType[0], contentTypes: contentType }
|
|
794
|
+
}
|
|
795
|
+
|
|
477
796
|
function defaultStreamContentType(mode: StreamMode): string {
|
|
478
797
|
switch (mode) {
|
|
479
798
|
case "sse":
|
|
480
799
|
return "text/event-stream"
|
|
481
800
|
case "uint8array":
|
|
482
801
|
return "application/octet-stream"
|
|
802
|
+
case "ndjson":
|
|
803
|
+
return "application/x-ndjson"
|
|
483
804
|
}
|
|
484
805
|
}
|
|
485
806
|
|
|
@@ -535,8 +856,8 @@ export type WithHeadersValueTypeId = typeof WithHeadersValueTypeId
|
|
|
535
856
|
* `StreamSse` and `StreamUint8Array`; error responses remain non-streaming.
|
|
536
857
|
* Nesting `WithHeaders` is rejected at construction.
|
|
537
858
|
* - `headers` is any schema; endpoint construction applies
|
|
538
|
-
*
|
|
539
|
-
*
|
|
859
|
+
* a StringTree codec unless codecs are disabled. Optional headers that encode
|
|
860
|
+
* to `undefined` are omitted from the response.
|
|
540
861
|
* - Status and response-encoding annotations are resolved from the wrapper
|
|
541
862
|
* first, falling through to the inner schema.
|
|
542
863
|
* - A header-carrying response cannot share its status and content type with
|
|
@@ -645,6 +966,9 @@ export function WithHeaders(
|
|
|
645
966
|
if (isWithHeaders(schema)) {
|
|
646
967
|
throw new Error("WithHeaders schemas cannot be nested")
|
|
647
968
|
}
|
|
969
|
+
if (isUpgrade(schema)) {
|
|
970
|
+
throw new Error("WithHeaders cannot wrap an upgrade")
|
|
971
|
+
}
|
|
648
972
|
return Schema.make<WithHeaders<Schema.Top, Schema.Top>>(withHeadersValueSchema.ast, {
|
|
649
973
|
[WithHeadersTypeId]: WithHeadersTypeId,
|
|
650
974
|
schema,
|
|
@@ -809,6 +1133,9 @@ export function encodeToWithHeaders<
|
|
|
809
1133
|
}) {
|
|
810
1134
|
return (self: S): encodeToWithHeaders<S, Body, Headers> => {
|
|
811
1135
|
const body = options.body
|
|
1136
|
+
if (isUpgrade(body)) {
|
|
1137
|
+
throw new Error("encodeToWithHeaders cannot wrap an upgrade")
|
|
1138
|
+
}
|
|
812
1139
|
const headers = Schema.Struct(options.headers)
|
|
813
1140
|
const status = resolveHttpApiStatus(body.ast)
|
|
814
1141
|
const encoding = resolveHttpApiEncoding(body.ast)
|
|
@@ -974,6 +1301,12 @@ export function asJson(options?: {
|
|
|
974
1301
|
*
|
|
975
1302
|
* The schema's encoded side must be a record of strings.
|
|
976
1303
|
*
|
|
1304
|
+
* **Gotchas**
|
|
1305
|
+
*
|
|
1306
|
+
* Fields are flat on the server. A field that encodes to a nested object is
|
|
1307
|
+
* sent as bracket keys that the server does not read back; use an explicit
|
|
1308
|
+
* codec such as `Schema.fromJsonString(...)` for structured values.
|
|
1309
|
+
*
|
|
977
1310
|
* @stability unstable
|
|
978
1311
|
* @category encoding
|
|
979
1312
|
* @since 4.0.0
|
|
@@ -1049,7 +1382,29 @@ const resolveHttpApiEncoding = SchemaAST.resolveAt<Encoding>("~httpApiEncoding")
|
|
|
1049
1382
|
*/
|
|
1050
1383
|
export const getWithHeadersAnnotation = SchemaAST.resolveAt<WithHeadersAnnotation>("~httpApiWithHeaders")
|
|
1051
1384
|
|
|
1052
|
-
|
|
1385
|
+
function findHttpApiStatusAnnotation(
|
|
1386
|
+
ast: SchemaAST.AST | SchemaAST.FilterGroup<any>
|
|
1387
|
+
): Schema.Annotations.Annotations | undefined {
|
|
1388
|
+
if (ast.checks) {
|
|
1389
|
+
for (let i = ast.checks.length - 1; i >= 0; i--) {
|
|
1390
|
+
const check = ast.checks[i]
|
|
1391
|
+
if (check.annotations && "httpApiStatus" in check.annotations) return check.annotations
|
|
1392
|
+
if (check._tag === "FilterGroup") {
|
|
1393
|
+
const annotations = findHttpApiStatusAnnotation(check)
|
|
1394
|
+
if (annotations !== undefined) return annotations
|
|
1395
|
+
}
|
|
1396
|
+
}
|
|
1397
|
+
}
|
|
1398
|
+
const annotations = ast.annotations
|
|
1399
|
+
return annotations && "httpApiStatus" in annotations ? annotations : undefined
|
|
1400
|
+
}
|
|
1401
|
+
|
|
1402
|
+
function resolveHttpApiStatus(ast: SchemaAST.AST): number | undefined {
|
|
1403
|
+
const annotations = findHttpApiStatusAnnotation(ast)
|
|
1404
|
+
// An explicit undefined clears the status instead of falling back to key context.
|
|
1405
|
+
if (annotations !== undefined) return annotations.httpApiStatus as number | undefined
|
|
1406
|
+
return ast.context?.annotations?.httpApiStatus
|
|
1407
|
+
}
|
|
1053
1408
|
|
|
1054
1409
|
const defaultJsonEncoding: Encoding = {
|
|
1055
1410
|
_tag: "Json",
|
|
@@ -17,11 +17,12 @@ 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/httpApiSwagger.ts"
|
|
21
20
|
import * as OpenApi from "./OpenApi.ts"
|
|
22
21
|
|
|
23
22
|
const makeHandler = <Id extends string, Groups extends HttpApiGroup.Constraint>(options: {
|
|
24
23
|
readonly api: HttpApi.HttpApi<Id, Groups>
|
|
24
|
+
readonly javascript: string
|
|
25
|
+
readonly css: string
|
|
25
26
|
}) => {
|
|
26
27
|
const makeResponse = Function.memoize((api: HttpApi.HttpApi<Id, Groups>) => {
|
|
27
28
|
const spec = OpenApi.fromApi(api)
|
|
@@ -31,7 +32,7 @@ const makeHandler = <Id extends string, Groups extends HttpApiGroup.Constraint>(
|
|
|
31
32
|
<meta charset="utf-8" />
|
|
32
33
|
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
33
34
|
<title>${Html.escape(spec.info.title)} Documentation</title>
|
|
34
|
-
<style>${
|
|
35
|
+
<style>${options.css}</style>
|
|
35
36
|
</head>
|
|
36
37
|
<body>
|
|
37
38
|
<div id="swagger-ui"></div>
|
|
@@ -39,7 +40,7 @@ const makeHandler = <Id extends string, Groups extends HttpApiGroup.Constraint>(
|
|
|
39
40
|
${Html.escapeJson(spec)}
|
|
40
41
|
</script>
|
|
41
42
|
<script>
|
|
42
|
-
${
|
|
43
|
+
${options.javascript}
|
|
43
44
|
window.onload = () => {
|
|
44
45
|
window.ui = SwaggerUIBundle({
|
|
45
46
|
spec: JSON.parse(document.getElementById("swagger-spec").textContent),
|
|
@@ -57,6 +58,11 @@ const makeHandler = <Id extends string, Groups extends HttpApiGroup.Constraint>(
|
|
|
57
58
|
* Mounts Swagger UI for an `HttpApi` at the configured path, defaulting to
|
|
58
59
|
* `/docs`, using the OpenAPI specification generated from the API.
|
|
59
60
|
*
|
|
61
|
+
* **Details**
|
|
62
|
+
*
|
|
63
|
+
* The bundled Swagger UI assets are loaded when the layer is built, not when
|
|
64
|
+
* this module is imported.
|
|
65
|
+
*
|
|
60
66
|
* @stability unstable
|
|
61
67
|
* @category layers
|
|
62
68
|
* @since 4.0.0
|
|
@@ -68,6 +74,7 @@ export const layer = <Id extends string, Groups extends HttpApiGroup.Constraint>
|
|
|
68
74
|
}
|
|
69
75
|
): Layer.Layer<never, never, HttpRouter.HttpRouter> =>
|
|
70
76
|
HttpRouter.use(Effect.fnUntraced(function*(router) {
|
|
71
|
-
const
|
|
77
|
+
const { css, javascript } = yield* Effect.promise(() => import("./internal/httpApiSwagger.ts"))
|
|
78
|
+
const handler = makeHandler({ api, javascript, css })
|
|
72
79
|
yield* router.add("GET", options?.path ?? "/docs", handler)
|
|
73
80
|
}))
|