effect 4.0.5 → 4.0.6
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/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 +125 -30
- 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/Duration.d.ts.map +1 -1
- package/dist/Duration.js +56 -16
- package/dist/Duration.js.map +1 -1
- package/dist/Effect.d.ts +487 -163
- package/dist/Effect.d.ts.map +1 -1
- package/dist/Effect.js +203 -37
- package/dist/Effect.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 +24 -9
- 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/Graph.d.ts.map +1 -1
- package/dist/Graph.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/JsonSchema.d.ts +9 -3
- package/dist/JsonSchema.d.ts.map +1 -1
- package/dist/JsonSchema.js +19 -3
- 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 +132 -0
- 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/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/Path.d.ts.map +1 -1
- package/dist/Path.js +8 -1
- package/dist/Path.js.map +1 -1
- package/dist/PubSub.d.ts.map +1 -1
- package/dist/PubSub.js +12 -7
- 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.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.map +1 -1
- package/dist/Schema.d.ts +384 -332
- package/dist/Schema.d.ts.map +1 -1
- package/dist/Schema.js +333 -19
- package/dist/Schema.js.map +1 -1
- package/dist/SchemaAST.d.ts +5 -5
- package/dist/SchemaAST.d.ts.map +1 -1
- package/dist/SchemaAST.js +24 -8
- 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/SchemaRepresentation.d.ts +56 -1
- package/dist/SchemaRepresentation.d.ts.map +1 -1
- package/dist/SchemaRepresentation.js +18 -0
- package/dist/SchemaRepresentation.js.map +1 -1
- package/dist/SchemaTransformation.d.ts +1 -1
- package/dist/SchemaTransformation.js +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/Sink.d.ts.map +1 -1
- package/dist/Sink.js +6 -2
- 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 +145 -60
- package/dist/Stream.js.map +1 -1
- package/dist/String.d.ts +4 -2
- package/dist/String.d.ts.map +1 -1
- package/dist/String.js +8 -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/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/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 +368 -235
- 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 +25 -22
- package/dist/ai/McpServer.js.map +1 -1
- package/dist/ai/Prompt.d.ts +22 -20
- package/dist/ai/Prompt.d.ts.map +1 -1
- package/dist/ai/Prompt.js +23 -1
- package/dist/ai/Prompt.js.map +1 -1
- package/dist/ai/Response.d.ts +147 -3
- package/dist/ai/Response.d.ts.map +1 -1
- package/dist/ai/Response.js +35 -37
- package/dist/ai/Response.js.map +1 -1
- package/dist/ai/Tool.d.ts +12 -4
- package/dist/ai/Tool.d.ts.map +1 -1
- 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 +65 -12
- 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/CliError.d.ts +42 -2
- package/dist/cli/CliError.d.ts.map +1 -1
- package/dist/cli/CliError.js +44 -5
- package/dist/cli/CliError.js.map +1 -1
- package/dist/cli/Command.d.ts +286 -2
- package/dist/cli/Command.d.ts.map +1 -1
- package/dist/cli/Command.js +107 -6
- package/dist/cli/Command.js.map +1 -1
- package/dist/cli/Completions.d.ts +5 -0
- package/dist/cli/Completions.d.ts.map +1 -1
- package/dist/cli/Completions.js.map +1 -1
- package/dist/cli/Flag.d.ts +115 -0
- package/dist/cli/Flag.d.ts.map +1 -1
- package/dist/cli/Flag.js +56 -0
- package/dist/cli/Flag.js.map +1 -1
- package/dist/cli/GlobalFlag.d.ts.map +1 -1
- package/dist/cli/GlobalFlag.js +3 -3
- package/dist/cli/GlobalFlag.js.map +1 -1
- package/dist/cli/Param.d.ts +107 -0
- package/dist/cli/Param.d.ts.map +1 -1
- package/dist/cli/Param.js +56 -0
- package/dist/cli/Param.js.map +1 -1
- package/dist/cli/TerminalCapabilities.d.ts +84 -0
- package/dist/cli/TerminalCapabilities.d.ts.map +1 -0
- package/dist/cli/TerminalCapabilities.js +122 -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 +4 -3
- 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 +37 -11
- 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 +21 -0
- package/dist/cluster/MessageStorage.d.ts.map +1 -1
- 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 +95 -32
- package/dist/cluster/Sharding.js.map +1 -1
- package/dist/cluster/ShardingConfig.d.ts +20 -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/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 +10 -4
- package/dist/cluster/SqlRunnerStorage.js.map +1 -1
- package/dist/cluster/internal/entityManager.js +65 -8
- 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 +31 -4
- package/dist/devtools/DevToolsClient.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/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.js +3 -3
- 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 +387 -159
- 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 +47 -0
- package/dist/eventlog/internal/conflicts.d.ts.map +1 -0
- package/dist/eventlog/internal/conflicts.js +92 -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/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 +93 -0
- package/dist/http/HttpClient.d.ts.map +1 -1
- package/dist/http/HttpClient.js +55 -16
- package/dist/http/HttpClient.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 +44 -2
- 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 +159 -13
- package/dist/http/HttpMiddleware.js.map +1 -1
- package/dist/http/HttpRouter.d.ts.map +1 -1
- package/dist/http/HttpRouter.js +7 -2
- 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 +5 -3
- package/dist/http/HttpServerError.js.map +1 -1
- package/dist/http/HttpServerRequest.d.ts +25 -5
- package/dist/http/HttpServerRequest.d.ts.map +1 -1
- package/dist/http/HttpServerRequest.js +36 -10
- 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 +21 -7
- 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 +87 -5
- 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/internal/decompression.js +17 -11
- package/dist/http/internal/decompression.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/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.js +1 -1
- 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 +121 -18
- package/dist/http-api/HttpApiBuilder.js.map +1 -1
- package/dist/http-api/HttpApiClient.d.ts +29 -4
- package/dist/http-api/HttpApiClient.d.ts.map +1 -1
- package/dist/http-api/HttpApiClient.js +83 -23
- package/dist/http-api/HttpApiClient.js.map +1 -1
- package/dist/http-api/HttpApiEndpoint.d.ts +55 -29
- package/dist/http-api/HttpApiEndpoint.d.ts.map +1 -1
- package/dist/http-api/HttpApiEndpoint.js +49 -5
- 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 +191 -9
- package/dist/http-api/HttpApiSchema.d.ts.map +1 -1
- package/dist/http-api/HttpApiSchema.js +137 -4
- 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 +30 -9
- 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 +57 -32
- 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/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/core.js +1 -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 +85 -74
- package/dist/internal/effect.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/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/fromJsonSchemaDocument.js +136 -126
- package/dist/internal/schema/fromJsonSchemaDocument.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 +34 -33
- package/dist/internal/schema/standardSchema.js.map +1 -1
- package/dist/internal/schema/toCodeDocument.js +7 -2
- package/dist/internal/schema/toCodeDocument.js.map +1 -1
- package/dist/internal/schema/toCodec.js +86 -1
- 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 +60 -38
- package/dist/internal/schema/toJsonSchemaDocument.js.map +1 -1
- 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/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/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/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/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 +5 -0
- package/dist/persistence/index.d.ts.map +1 -1
- package/dist/persistence/index.js +5 -0
- package/dist/persistence/index.js.map +1 -1
- package/dist/process/ChildProcess.d.ts +2 -1
- package/dist/process/ChildProcess.d.ts.map +1 -1
- package/dist/process/ChildProcess.js.map +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 +196 -60
- package/dist/rpc/RpcClient.js.map +1 -1
- package/dist/rpc/RpcSerialization.d.ts +15 -0
- package/dist/rpc/RpcSerialization.d.ts.map +1 -1
- package/dist/rpc/RpcSerialization.js +21 -5
- package/dist/rpc/RpcSerialization.js.map +1 -1
- package/dist/rpc/RpcServer.d.ts.map +1 -1
- package/dist/rpc/RpcServer.js +9 -18
- package/dist/rpc/RpcServer.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.map +1 -1
- package/dist/sql/Migrator.js +15 -3
- package/dist/sql/Migrator.js.map +1 -1
- package/dist/sql/SqlClient.d.ts +143 -5
- package/dist/sql/SqlClient.d.ts.map +1 -1
- package/dist/sql/SqlClient.js +148 -27
- package/dist/sql/SqlClient.js.map +1 -1
- package/dist/sql/SqlResolver.d.ts +9 -0
- package/dist/sql/SqlResolver.d.ts.map +1 -1
- package/dist/sql/SqlResolver.js +9 -0
- package/dist/sql/SqlResolver.js.map +1 -1
- package/dist/sql/Statement.d.ts +3 -1
- package/dist/sql/Statement.d.ts.map +1 -1
- package/dist/sql/Statement.js +24 -5
- 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/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/Array.ts +128 -55
- package/src/Bytes.ts +111 -0
- package/src/Channel.ts +263 -436
- 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/Duration.ts +66 -16
- package/src/Effect.ts +502 -167
- package/src/Equivalence.ts +7 -4
- package/src/Exit.ts +24 -9
- package/src/FiberHandle.ts +10 -9
- package/src/FiberMap.ts +13 -66
- package/src/FileSystem.ts +10 -0
- package/src/Graph.ts +171 -1263
- package/src/HashSet.ts +0 -60
- package/src/Iterable.ts +15 -14
- package/src/JsonSchema.ts +28 -3
- package/src/Layer.ts +2 -2
- package/src/ManagedRuntime.ts +72 -6
- package/src/Metric.ts +249 -507
- package/src/MutableHashMap.ts +4 -473
- package/src/Number.ts +2 -2
- package/src/Optic.ts +17 -332
- package/src/Path.ts +9 -1
- package/src/PubSub.ts +12 -7
- 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 +7 -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 +2 -94
- package/src/Schema.ts +591 -356
- package/src/SchemaAST.ts +20 -9
- package/src/SchemaGetter.ts +22 -5
- package/src/SchemaIssue.ts +44 -53
- package/src/SchemaRepresentation.ts +64 -1
- package/src/SchemaTransformation.ts +1 -1
- 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/Sink.ts +6 -2
- package/src/Stream.ts +334 -1011
- package/src/String.ts +8 -8
- package/src/TextDiff.ts +766 -0
- 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/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 +217 -220
- package/src/ai/Prompt.ts +49 -35
- package/src/ai/Response.ts +195 -65
- package/src/ai/Tool.ts +12 -4
- package/src/ai/Toolkit.ts +78 -10
- 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/CliError.ts +49 -4
- package/src/cli/Command.ts +316 -9
- package/src/cli/Completions.ts +5 -0
- package/src/cli/Flag.ts +117 -0
- package/src/cli/GlobalFlag.ts +3 -3
- package/src/cli/Param.ts +122 -0
- package/src/cli/TerminalCapabilities.ts +156 -0
- package/src/cli/index.ts +6 -0
- package/src/cli/internal/command.ts +8 -3
- package/src/cli/internal/completions/bash.ts +4 -3
- 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 +84 -41
- package/src/cluster/Entity.ts +4 -0
- package/src/cluster/MessageStorage.ts +7 -0
- package/src/cluster/Runners.ts +76 -25
- package/src/cluster/Sharding.ts +118 -38
- package/src/cluster/ShardingConfig.ts +15 -0
- package/src/cluster/SqlMessageStorage.ts +58 -55
- package/src/cluster/SqlRunnerStorage.ts +10 -4
- package/src/cluster/internal/entityManager.ts +80 -10
- package/src/devtools/DevTools.ts +3 -2
- package/src/devtools/DevToolsClient.ts +27 -10
- 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/Tar.ts +1417 -0
- package/src/encoding/Toml.ts +3 -3
- 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 +453 -173
- 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 +123 -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/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 +126 -135
- package/src/http/HttpClientRequest.ts +142 -4
- 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 +180 -23
- package/src/http/HttpRouter.ts +8 -2
- package/src/http/HttpServerError.ts +6 -3
- package/src/http/HttpServerRequest.ts +71 -12
- package/src/http/HttpServerResponse.ts +49 -23
- package/src/http/HttpStaticServer.ts +25 -9
- package/src/http/MultipartParser/internal/contentType.ts +107 -6
- 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/internal/decompression.ts +26 -17
- package/src/http/internal/lazyStream.ts +25 -0
- package/src/http/internal/requestState.ts +33 -0
- package/src/http/internal/webResponse.ts +20 -0
- package/src/http-api/HttpApi.ts +1 -1
- package/src/http-api/HttpApiBuilder.ts +151 -23
- package/src/http-api/HttpApiClient.ts +158 -30
- package/src/http-api/HttpApiEndpoint.ts +144 -33
- package/src/http-api/HttpApiError.ts +55 -0
- package/src/http-api/HttpApiScalar.ts +4 -3
- package/src/http-api/HttpApiSchema.ts +275 -13
- package/src/http-api/HttpApiSwagger.ts +11 -4
- package/src/http-api/HttpApiTest.ts +33 -9
- package/src/http-api/OpenApi.ts +84 -42
- package/src/http-api/internal/path.ts +40 -12
- package/src/index.ts +24 -0
- package/src/internal/core.ts +1 -1
- package/src/internal/dateTime.ts +20 -7
- package/src/internal/effect.ts +120 -84
- package/src/internal/hashMap.ts +2 -2
- package/src/internal/hydration.ts +15 -0
- package/src/internal/inflate.ts +710 -0
- 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/fromJsonSchemaDocument.ts +262 -193
- package/src/internal/schema/interpreter.ts +58 -45
- package/src/internal/schema/standardSchema.ts +32 -30
- package/src/internal/schema/toCodeDocument.ts +8 -3
- package/src/internal/schema/toCodec.ts +116 -1
- package/src/internal/schema/toFormatter.ts +6 -6
- package/src/internal/schema/toJsonSchemaDocument.ts +69 -39
- 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/OtlpResource.ts +16 -6
- package/src/observability/OtlpSerialization.ts +17 -3
- package/src/observability/internal/protobuf.ts +2 -10
- 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/UserDirectories.ts +273 -0
- package/src/persistence/index.ts +6 -0
- package/src/process/ChildProcess.ts +2 -1
- package/src/reactivity/AsyncResult.ts +4 -38
- 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 +279 -103
- package/src/rpc/RpcSerialization.ts +21 -5
- package/src/rpc/RpcServer.ts +11 -20
- package/src/schema/VariantSchema.ts +86 -22
- package/src/socket/Socket.ts +45 -20
- package/src/sql/Migrator.ts +19 -9
- package/src/sql/SqlClient.ts +266 -29
- package/src/sql/SqlResolver.ts +9 -0
- package/src/sql/Statement.ts +35 -8
- package/src/testing/TestClock.ts +4 -1
- package/src/testing/TestSchema.ts +9 -3
- 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,7 @@
|
|
|
10
10
|
* @stability unstable
|
|
11
11
|
* @since 4.0.0
|
|
12
12
|
*/
|
|
13
|
+
import * as ByteSize from "../ByteSize.ts"
|
|
13
14
|
import * as Sse from "../encoding/Sse.ts"
|
|
14
15
|
import { constVoid, type LazyArg } from "../Function.ts"
|
|
15
16
|
import { hasBody, type HttpMethod } from "../http/HttpMethod.ts"
|
|
@@ -19,6 +20,7 @@ import * as Predicate from "../Predicate.ts"
|
|
|
19
20
|
import * as Schema from "../Schema.ts"
|
|
20
21
|
import * as SchemaAST from "../SchemaAST.ts"
|
|
21
22
|
import * as SchemaTransformation from "../SchemaTransformation.ts"
|
|
23
|
+
import * as Socket from "../socket/Socket.ts"
|
|
22
24
|
import * as Stream from "../Stream.ts"
|
|
23
25
|
|
|
24
26
|
declare module "../Schema.ts" {
|
|
@@ -120,8 +122,12 @@ export type StatusLiteral = HttpStatus.Literal
|
|
|
120
122
|
*
|
|
121
123
|
* **Details**
|
|
122
124
|
*
|
|
123
|
-
*
|
|
124
|
-
* schema
|
|
125
|
+
* The status is stored with `.annotateKey({ httpApiStatus: code })`, so a named
|
|
126
|
+
* schema reused with different statuses still emits a single OpenAPI component.
|
|
127
|
+
* If the schema has checks or already has an `httpApiStatus` annotation, it is
|
|
128
|
+
* stored with `.annotate({ httpApiStatus: code })` instead. A later
|
|
129
|
+
* `.annotate({ httpApiStatus })` takes precedence, and a later check drops the
|
|
130
|
+
* status. You can pass either a numeric status code (for example, `201`) or a
|
|
125
131
|
* common literal name (for example, `"Created"`).
|
|
126
132
|
*
|
|
127
133
|
* @stability unstable
|
|
@@ -142,7 +148,10 @@ export function status(code: StatusLiteral): {
|
|
|
142
148
|
*/
|
|
143
149
|
export function status(code: number | StatusLiteral) {
|
|
144
150
|
const statusCode = typeof code === "string" ? HttpStatus.fromLiteral(code) : code
|
|
145
|
-
return <S extends Schema.Top>(self: S): S["Rebuild"] =>
|
|
151
|
+
return <S extends Schema.Top>(self: S): S["Rebuild"] =>
|
|
152
|
+
self.ast.checks !== undefined || hasStatusAnnotation(self.ast)
|
|
153
|
+
? self.annotate({ httpApiStatus: statusCode })
|
|
154
|
+
: self.annotateKey({ httpApiStatus: statusCode })
|
|
146
155
|
}
|
|
147
156
|
|
|
148
157
|
/**
|
|
@@ -251,7 +260,7 @@ export function asNoContent<S extends Schema.Constraint>(options: {
|
|
|
251
260
|
}
|
|
252
261
|
}
|
|
253
262
|
|
|
254
|
-
type StreamMode = "sse" | "uint8array"
|
|
263
|
+
type StreamMode = "sse" | "uint8array" | "ndjson"
|
|
255
264
|
|
|
256
265
|
/**
|
|
257
266
|
* Mode describing whether an SSE stream emits full events or raw data values.
|
|
@@ -282,6 +291,9 @@ export type StreamSseMode = "events" | "data"
|
|
|
282
291
|
* application event. Endpoint construction rejects event schemas that declare
|
|
283
292
|
* the reserved name statically.
|
|
284
293
|
*
|
|
294
|
+
* `StreamSse` is response-only. The `payload` slot's type excludes it, and
|
|
295
|
+
* endpoint construction rejects it.
|
|
296
|
+
*
|
|
285
297
|
* @stability unstable
|
|
286
298
|
* @category models
|
|
287
299
|
* @since 4.0.0
|
|
@@ -339,13 +351,14 @@ export interface SseEventFromData<Data extends Schema.Constraint> extends
|
|
|
339
351
|
{}
|
|
340
352
|
|
|
341
353
|
/**
|
|
342
|
-
* Schema for a streaming `Uint8Array`
|
|
354
|
+
* Schema for a streaming `Uint8Array` body.
|
|
343
355
|
*
|
|
344
356
|
* **Details**
|
|
345
357
|
*
|
|
346
|
-
*
|
|
347
|
-
*
|
|
348
|
-
* the
|
|
358
|
+
* It works as a success response or as a request payload. It is intentionally
|
|
359
|
+
* separate from the buffered `asUint8Array` encoding. As a payload, the handler
|
|
360
|
+
* receives the body as it is read, and `maxBytes` caps the bytes read. It has
|
|
361
|
+
* no default and does not fall back to `MaxBodySize`.
|
|
349
362
|
*
|
|
350
363
|
* @stability unstable
|
|
351
364
|
* @category models
|
|
@@ -366,22 +379,91 @@ export interface StreamUint8Array extends
|
|
|
366
379
|
readonly _tag: "StreamUint8Array"
|
|
367
380
|
readonly mode: "uint8array"
|
|
368
381
|
readonly contentType: string
|
|
382
|
+
readonly maxBytes: ByteSize.ByteSize | undefined
|
|
369
383
|
}
|
|
370
384
|
|
|
371
385
|
/**
|
|
372
|
-
* Schema for a
|
|
386
|
+
* Schema for a stream of newline-delimited JSON elements.
|
|
387
|
+
*
|
|
388
|
+
* **Details**
|
|
389
|
+
*
|
|
390
|
+
* Each element is encoded as one line of JSON followed by `\n`, including the
|
|
391
|
+
* last. When decoding, `\n`, `\r\n` and a bare `\r` end a line, empty lines are
|
|
392
|
+
* skipped, a leading BOM is stripped and invalid UTF-8 fails. The first
|
|
393
|
+
* malformed line or element that fails to decode ends the stream, after every
|
|
394
|
+
* element before it has been delivered. A missing final newline is accepted if
|
|
395
|
+
* the last line parses.
|
|
396
|
+
*
|
|
397
|
+
* `maxElementBytes` caps the UTF-8 bytes of one line, without its terminator.
|
|
398
|
+
* `maxBytes` caps the whole body and has no default.
|
|
399
|
+
*
|
|
400
|
+
* As a request payload, the handler receives the elements as the body is
|
|
401
|
+
* read. Malformed lines and elements that fail to decode are an
|
|
402
|
+
* `HttpApiSchemaError`, and limit breaches are an `HttpApiPayloadTooLarge`.
|
|
403
|
+
*
|
|
404
|
+
* **Gotchas**
|
|
405
|
+
*
|
|
406
|
+
* There is no `error` schema. A failure mid-stream aborts the connection, so
|
|
407
|
+
* the reader sees a body read error, never a clean end. Typed failures
|
|
408
|
+
* mid-stream are a {@link StreamSse} feature. A body cut cleanly at a line
|
|
409
|
+
* boundary can't be told apart from a complete one.
|
|
410
|
+
*
|
|
411
|
+
* @stability unstable
|
|
412
|
+
* @category models
|
|
413
|
+
* @since 4.0.6
|
|
414
|
+
*/
|
|
415
|
+
export interface StreamNdjson<S extends Schema.Constraint> extends
|
|
416
|
+
Schema.BottomLazy<
|
|
417
|
+
SchemaAST.Declaration,
|
|
418
|
+
StreamNdjson<S>
|
|
419
|
+
>
|
|
420
|
+
{
|
|
421
|
+
readonly "Type": Stream.Stream<S["Type"], unknown, never>
|
|
422
|
+
readonly "Encoded": Stream.Stream<S["Type"], unknown, never>
|
|
423
|
+
readonly "DecodingServices": S["DecodingServices"]
|
|
424
|
+
readonly "EncodingServices": S["EncodingServices"]
|
|
425
|
+
readonly "Rebuild": StreamNdjson<S>
|
|
426
|
+
readonly "~type.make.in": Stream.Stream<S["Type"], unknown, never>
|
|
427
|
+
readonly "~type.make": Stream.Stream<S["Type"], unknown, never>
|
|
428
|
+
readonly "Iso": Stream.Stream<S["Type"], unknown, never>
|
|
429
|
+
readonly [StreamSchemaTypeId]: typeof StreamSchemaTypeId
|
|
430
|
+
readonly _tag: "StreamNdjson"
|
|
431
|
+
readonly mode: "ndjson"
|
|
432
|
+
readonly contentType: string
|
|
433
|
+
readonly schema: S
|
|
434
|
+
readonly maxBytes: ByteSize.ByteSize | undefined
|
|
435
|
+
readonly maxElementBytes: ByteSize.ByteSize
|
|
436
|
+
}
|
|
437
|
+
|
|
438
|
+
/**
|
|
439
|
+
* Schema for a streaming HTTP API body.
|
|
440
|
+
*
|
|
441
|
+
* **Details**
|
|
442
|
+
*
|
|
443
|
+
* {@link StreamUint8Array} and {@link StreamNdjson} describe the body in either
|
|
444
|
+
* direction, with the endpoint slot deciding which. {@link StreamSse} is for
|
|
445
|
+
* success responses only.
|
|
373
446
|
*
|
|
374
447
|
* @stability unstable
|
|
375
448
|
* @category models
|
|
376
449
|
* @since 4.0.0
|
|
377
450
|
*/
|
|
378
|
-
export type StreamSchema =
|
|
451
|
+
export type StreamSchema =
|
|
452
|
+
| StreamSse<Sse.EventCodec, Schema.Top, unknown>
|
|
453
|
+
| StreamUint8Array
|
|
454
|
+
| StreamNdjson<Schema.Top>
|
|
379
455
|
|
|
380
456
|
const streamSchema = Schema.declare(Stream.isStream)
|
|
381
457
|
|
|
458
|
+
const defaultMaxElementBytes = ByteSize.mebibytes(1)
|
|
459
|
+
|
|
382
460
|
/**
|
|
383
461
|
* Creates a Server-Sent Events streaming success response schema.
|
|
384
462
|
*
|
|
463
|
+
* **Details**
|
|
464
|
+
*
|
|
465
|
+
* `StreamSse` is response-only. Endpoint construction rejects it in `payload`.
|
|
466
|
+
*
|
|
385
467
|
* @stability unstable
|
|
386
468
|
* @category constructors
|
|
387
469
|
* @since 4.0.0
|
|
@@ -390,6 +472,10 @@ export const StreamSse: {
|
|
|
390
472
|
/**
|
|
391
473
|
* Creates a Server-Sent Events streaming success response schema.
|
|
392
474
|
*
|
|
475
|
+
* **Details**
|
|
476
|
+
*
|
|
477
|
+
* `StreamSse` is response-only. Endpoint construction rejects it in `payload`.
|
|
478
|
+
*
|
|
393
479
|
* @stability unstable
|
|
394
480
|
* @category constructors
|
|
395
481
|
* @since 4.0.0
|
|
@@ -404,6 +490,10 @@ export const StreamSse: {
|
|
|
404
490
|
/**
|
|
405
491
|
* Creates a Server-Sent Events streaming success response schema.
|
|
406
492
|
*
|
|
493
|
+
* **Details**
|
|
494
|
+
*
|
|
495
|
+
* `StreamSse` is response-only. Endpoint construction rejects it in `payload`.
|
|
496
|
+
*
|
|
407
497
|
* @stability unstable
|
|
408
498
|
* @category constructors
|
|
409
499
|
* @since 4.0.0
|
|
@@ -440,7 +530,12 @@ export const StreamSse: {
|
|
|
440
530
|
}
|
|
441
531
|
|
|
442
532
|
/**
|
|
443
|
-
* Creates a streaming `Uint8Array`
|
|
533
|
+
* Creates a streaming `Uint8Array` body schema.
|
|
534
|
+
*
|
|
535
|
+
* **Details**
|
|
536
|
+
*
|
|
537
|
+
* `contentType` defaults to `application/octet-stream`. `maxBytes` only applies
|
|
538
|
+
* to request payloads and has no default.
|
|
444
539
|
*
|
|
445
540
|
* @stability unstable
|
|
446
541
|
* @category constructors
|
|
@@ -448,12 +543,64 @@ export const StreamSse: {
|
|
|
448
543
|
*/
|
|
449
544
|
export const StreamUint8Array = (options?: {
|
|
450
545
|
readonly contentType?: string | undefined
|
|
546
|
+
readonly maxBytes?: ByteSize.Input | undefined
|
|
451
547
|
}): StreamUint8Array =>
|
|
452
548
|
Schema.make<StreamUint8Array>(streamSchema.ast, {
|
|
453
549
|
[StreamSchemaTypeId]: StreamSchemaTypeId,
|
|
454
550
|
_tag: "StreamUint8Array",
|
|
455
551
|
mode: "uint8array",
|
|
456
|
-
contentType: options?.contentType ?? defaultStreamContentType("uint8array")
|
|
552
|
+
contentType: options?.contentType ?? defaultStreamContentType("uint8array"),
|
|
553
|
+
maxBytes: options?.maxBytes === undefined ? undefined : ByteSize.fromInputUnsafe(options.maxBytes)
|
|
554
|
+
})
|
|
555
|
+
|
|
556
|
+
/**
|
|
557
|
+
* Creates a schema for a stream of newline-delimited JSON elements.
|
|
558
|
+
*
|
|
559
|
+
* **Details**
|
|
560
|
+
*
|
|
561
|
+
* `contentType` defaults to `application/x-ndjson` and `maxElementBytes` to 1
|
|
562
|
+
* MiB. `maxBytes` has no default.
|
|
563
|
+
*
|
|
564
|
+
* **Example** (Declaring an NDJSON request payload)
|
|
565
|
+
*
|
|
566
|
+
* ```ts import.meta.vitest
|
|
567
|
+
* import { Schema } from "effect"
|
|
568
|
+
* import { HttpApiEndpoint, HttpApiSchema } from "effect/http-api"
|
|
569
|
+
*
|
|
570
|
+
* const Event = Schema.Struct({ id: Schema.Number })
|
|
571
|
+
* const payload = HttpApiSchema.StreamNdjson({ schema: Event, maxBytes: "100 MiB" })
|
|
572
|
+
*
|
|
573
|
+
* // The handler receives a Stream of Events
|
|
574
|
+
* const importEvents = HttpApiEndpoint.post("importEvents", "/events", {
|
|
575
|
+
* payload,
|
|
576
|
+
* success: Schema.Number
|
|
577
|
+
* })
|
|
578
|
+
*
|
|
579
|
+
* importEvents.path // => "/events"
|
|
580
|
+
* payload.contentType // => "application/x-ndjson"
|
|
581
|
+
* payload.maxElementBytes // => 1048576n
|
|
582
|
+
* ```
|
|
583
|
+
*
|
|
584
|
+
* @stability unstable
|
|
585
|
+
* @category constructors
|
|
586
|
+
* @since 4.0.6
|
|
587
|
+
*/
|
|
588
|
+
export const StreamNdjson = <S extends Schema.Constraint>(options: {
|
|
589
|
+
readonly schema: S
|
|
590
|
+
readonly contentType?: string | undefined
|
|
591
|
+
readonly maxBytes?: ByteSize.Input | undefined
|
|
592
|
+
readonly maxElementBytes?: ByteSize.Input | undefined
|
|
593
|
+
}): StreamNdjson<S> =>
|
|
594
|
+
Schema.make<StreamNdjson<S>>(streamSchema.ast, {
|
|
595
|
+
[StreamSchemaTypeId]: StreamSchemaTypeId,
|
|
596
|
+
_tag: "StreamNdjson",
|
|
597
|
+
mode: "ndjson",
|
|
598
|
+
contentType: options.contentType ?? defaultStreamContentType("ndjson"),
|
|
599
|
+
schema: options.schema,
|
|
600
|
+
maxBytes: options.maxBytes === undefined ? undefined : ByteSize.fromInputUnsafe(options.maxBytes),
|
|
601
|
+
maxElementBytes: options.maxElementBytes === undefined
|
|
602
|
+
? defaultMaxElementBytes
|
|
603
|
+
: ByteSize.fromInputUnsafe(options.maxElementBytes)
|
|
457
604
|
})
|
|
458
605
|
|
|
459
606
|
/**
|
|
@@ -474,12 +621,109 @@ export const isStreamSse = (u: unknown): u is StreamSse<Sse.EventCodec, Schema.T
|
|
|
474
621
|
export const isStreamUint8Array = (u: unknown): u is StreamUint8Array =>
|
|
475
622
|
isStreamSchema(u) && u._tag === "StreamUint8Array"
|
|
476
623
|
|
|
624
|
+
/**
|
|
625
|
+
* @internal
|
|
626
|
+
*/
|
|
627
|
+
export const isStreamNdjson = (u: unknown): u is StreamNdjson<Schema.Top> =>
|
|
628
|
+
isStreamSchema(u) && u._tag === "StreamNdjson"
|
|
629
|
+
|
|
630
|
+
const UpgradeTypeId = "~effect/http-api/HttpApiSchema/Upgrade"
|
|
631
|
+
|
|
632
|
+
/**
|
|
633
|
+
* Schema for a success response that switches the connection to another
|
|
634
|
+
* protocol with an HTTP/1.1 upgrade.
|
|
635
|
+
*
|
|
636
|
+
* **Details**
|
|
637
|
+
*
|
|
638
|
+
* Created with {@link Upgrade}. The response is `101 Switching Protocols`, and
|
|
639
|
+
* the connection then carries raw bytes in both directions as a `Socket`.
|
|
640
|
+
*
|
|
641
|
+
* @stability unstable
|
|
642
|
+
* @category models
|
|
643
|
+
* @since 4.0.6
|
|
644
|
+
*/
|
|
645
|
+
export interface Upgrade extends
|
|
646
|
+
Schema.Bottom<
|
|
647
|
+
Socket.Socket,
|
|
648
|
+
Socket.Socket,
|
|
649
|
+
never,
|
|
650
|
+
never,
|
|
651
|
+
SchemaAST.Declaration,
|
|
652
|
+
Upgrade
|
|
653
|
+
>
|
|
654
|
+
{
|
|
655
|
+
readonly "Rebuild": Upgrade
|
|
656
|
+
readonly [UpgradeTypeId]: typeof UpgradeTypeId
|
|
657
|
+
readonly protocol: string
|
|
658
|
+
}
|
|
659
|
+
|
|
660
|
+
const upgradeSchema = Schema.declare(Socket.isSocket).pipe(status(101))
|
|
661
|
+
|
|
662
|
+
/**
|
|
663
|
+
* Declares an endpoint success that upgrades the connection to `protocol`,
|
|
664
|
+
* such as Docker's `tcp` for container attach.
|
|
665
|
+
*
|
|
666
|
+
* **When to use**
|
|
667
|
+
*
|
|
668
|
+
* Use as the only success schema of an endpoint that hands over its
|
|
669
|
+
* connection as a raw byte stream after `101 Switching Protocols`. For
|
|
670
|
+
* WebSocket, upgrade the request with `HttpServerRequest.upgrade` and
|
|
671
|
+
* connect with `Socket.makeWebSocket` instead.
|
|
672
|
+
*
|
|
673
|
+
* **Details**
|
|
674
|
+
*
|
|
675
|
+
* The handler receives the connection as `socket`. The `101` response is
|
|
676
|
+
* sent when the handler acquires the socket's reader, so a handler can still
|
|
677
|
+
* fail with a declared error before then. Requests that do not ask for
|
|
678
|
+
* `protocol` get `426 Upgrade Required`.
|
|
679
|
+
*
|
|
680
|
+
* The client sends `Connection: Upgrade` and `Upgrade: protocol`, and returns
|
|
681
|
+
* the response headers with the connection. Other responses are decoded as
|
|
682
|
+
* the endpoint's errors.
|
|
683
|
+
*
|
|
684
|
+
* The endpoint cannot declare a payload or other success schemas.
|
|
685
|
+
*
|
|
686
|
+
* **Example** (Declaring an attach endpoint)
|
|
687
|
+
*
|
|
688
|
+
* ```ts
|
|
689
|
+
* import { Schema } from "effect"
|
|
690
|
+
* import { HttpApiEndpoint, HttpApiSchema } from "effect/http-api"
|
|
691
|
+
*
|
|
692
|
+
* const attach = HttpApiEndpoint.post("attach", "/containers/:id/attach", {
|
|
693
|
+
* params: { id: Schema.String },
|
|
694
|
+
* success: HttpApiSchema.Upgrade({ protocol: "tcp" })
|
|
695
|
+
* })
|
|
696
|
+
* ```
|
|
697
|
+
*
|
|
698
|
+
* @stability unstable
|
|
699
|
+
* @category constructors
|
|
700
|
+
* @since 4.0.6
|
|
701
|
+
*/
|
|
702
|
+
export const Upgrade = (options: {
|
|
703
|
+
readonly protocol: string
|
|
704
|
+
}): Upgrade => {
|
|
705
|
+
if (options.protocol.toLowerCase() === "websocket") {
|
|
706
|
+
throw new Error("Upgrade does not support WebSocket")
|
|
707
|
+
}
|
|
708
|
+
return Schema.make<Upgrade>(upgradeSchema.ast, {
|
|
709
|
+
[UpgradeTypeId]: UpgradeTypeId,
|
|
710
|
+
protocol: options.protocol
|
|
711
|
+
})
|
|
712
|
+
}
|
|
713
|
+
|
|
714
|
+
/**
|
|
715
|
+
* @internal
|
|
716
|
+
*/
|
|
717
|
+
export const isUpgrade = (u: unknown): u is Upgrade => Schema.isSchema(u) && Predicate.hasProperty(u, UpgradeTypeId)
|
|
718
|
+
|
|
477
719
|
function defaultStreamContentType(mode: StreamMode): string {
|
|
478
720
|
switch (mode) {
|
|
479
721
|
case "sse":
|
|
480
722
|
return "text/event-stream"
|
|
481
723
|
case "uint8array":
|
|
482
724
|
return "application/octet-stream"
|
|
725
|
+
case "ndjson":
|
|
726
|
+
return "application/x-ndjson"
|
|
483
727
|
}
|
|
484
728
|
}
|
|
485
729
|
|
|
@@ -645,6 +889,9 @@ export function WithHeaders(
|
|
|
645
889
|
if (isWithHeaders(schema)) {
|
|
646
890
|
throw new Error("WithHeaders schemas cannot be nested")
|
|
647
891
|
}
|
|
892
|
+
if (isUpgrade(schema)) {
|
|
893
|
+
throw new Error("WithHeaders cannot wrap an upgrade")
|
|
894
|
+
}
|
|
648
895
|
return Schema.make<WithHeaders<Schema.Top, Schema.Top>>(withHeadersValueSchema.ast, {
|
|
649
896
|
[WithHeadersTypeId]: WithHeadersTypeId,
|
|
650
897
|
schema,
|
|
@@ -809,6 +1056,9 @@ export function encodeToWithHeaders<
|
|
|
809
1056
|
}) {
|
|
810
1057
|
return (self: S): encodeToWithHeaders<S, Body, Headers> => {
|
|
811
1058
|
const body = options.body
|
|
1059
|
+
if (isUpgrade(body)) {
|
|
1060
|
+
throw new Error("encodeToWithHeaders cannot wrap an upgrade")
|
|
1061
|
+
}
|
|
812
1062
|
const headers = Schema.Struct(options.headers)
|
|
813
1063
|
const status = resolveHttpApiStatus(body.ast)
|
|
814
1064
|
const encoding = resolveHttpApiEncoding(body.ast)
|
|
@@ -1049,7 +1299,19 @@ const resolveHttpApiEncoding = SchemaAST.resolveAt<Encoding>("~httpApiEncoding")
|
|
|
1049
1299
|
*/
|
|
1050
1300
|
export const getWithHeadersAnnotation = SchemaAST.resolveAt<WithHeadersAnnotation>("~httpApiWithHeaders")
|
|
1051
1301
|
|
|
1052
|
-
const
|
|
1302
|
+
const resolveHttpApiStatusAnnotation = SchemaAST.resolveAt<number>("httpApiStatus")
|
|
1303
|
+
|
|
1304
|
+
function hasStatusAnnotation(ast: SchemaAST.AST): boolean {
|
|
1305
|
+
const annotations = SchemaAST.resolve(ast)
|
|
1306
|
+
return annotations !== undefined && "httpApiStatus" in annotations
|
|
1307
|
+
}
|
|
1308
|
+
|
|
1309
|
+
// An `httpApiStatus` annotation, even `undefined`, overrides the key context set by
|
|
1310
|
+
// `status`, which a later check drops, matching annotations
|
|
1311
|
+
function resolveHttpApiStatus(ast: SchemaAST.AST): number | undefined {
|
|
1312
|
+
if (hasStatusAnnotation(ast)) return resolveHttpApiStatusAnnotation(ast)
|
|
1313
|
+
return ast.checks === undefined ? ast.context?.annotations?.httpApiStatus : undefined
|
|
1314
|
+
}
|
|
1053
1315
|
|
|
1054
1316
|
const defaultJsonEncoding: Encoding = {
|
|
1055
1317
|
_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
|
}))
|
|
@@ -11,17 +11,19 @@
|
|
|
11
11
|
*/
|
|
12
12
|
import * as Context from "../Context.ts"
|
|
13
13
|
import * as Effect from "../Effect.ts"
|
|
14
|
+
import * as Exit from "../Exit.ts"
|
|
14
15
|
import type { FileSystem } from "../FileSystem.ts"
|
|
15
16
|
import type { Generator } from "../http/Etag.ts"
|
|
16
17
|
import * as HttpClient from "../http/HttpClient.ts"
|
|
18
|
+
import * as HttpEffect from "../http/HttpEffect.ts"
|
|
17
19
|
import type { HttpPlatform } from "../http/HttpPlatform.ts"
|
|
18
20
|
import * as HttpRouter from "../http/HttpRouter.ts"
|
|
19
21
|
import * as HttpServerRequest from "../http/HttpServerRequest.ts"
|
|
20
22
|
import * as HttpServerResponse from "../http/HttpServerResponse.ts"
|
|
21
|
-
import
|
|
23
|
+
import { CurrentRequestState, RequestState } from "../http/internal/requestState.ts"
|
|
22
24
|
import * as Layer from "../Layer.ts"
|
|
23
25
|
import type { Path } from "../Path.ts"
|
|
24
|
-
import
|
|
26
|
+
import * as Scope from "../Scope.ts"
|
|
25
27
|
import type * as HttpApi from "./HttpApi.ts"
|
|
26
28
|
import type { HandlerRuntime } from "./HttpApiBuilder.ts"
|
|
27
29
|
import * as HttpApiBuilder from "./HttpApiBuilder.ts"
|
|
@@ -37,6 +39,17 @@ import type * as HttpApiGroup from "./HttpApiGroup.ts"
|
|
|
37
39
|
* Handlers for the selected groups are taken from the environment; unselected
|
|
38
40
|
* groups are wired with placeholder handlers that fail if called.
|
|
39
41
|
*
|
|
42
|
+
* Each call runs its handler in a request scope that is a child of the
|
|
43
|
+
* `Scope` the client was created in. A streaming response keeps that scope
|
|
44
|
+
* open until its body ends, and a body that is never read is closed with the
|
|
45
|
+
* owning `Scope`.
|
|
46
|
+
*
|
|
47
|
+
* A `Stream` payload reaches the handler unbuffered: each element is pulled
|
|
48
|
+
* from the caller's stream as the handler reads it. If the caller's stream
|
|
49
|
+
* fails, reading the request body fails with it. Client aborts and socket
|
|
50
|
+
* behavior such as draining unread bodies, closing the connection, or
|
|
51
|
+
* answering with `499` are not emulated.
|
|
52
|
+
*
|
|
40
53
|
* @stability unstable
|
|
41
54
|
* @category testing
|
|
42
55
|
* @since 4.0.0
|
|
@@ -62,7 +75,7 @@ export const groups = Effect.fnUntraced(function*<
|
|
|
62
75
|
| Generator
|
|
63
76
|
| HttpPlatform
|
|
64
77
|
| Path
|
|
65
|
-
| Scope
|
|
78
|
+
| Scope.Scope
|
|
66
79
|
> {
|
|
67
80
|
let context = yield* Effect.context<HttpApiGroup.ToService<ApiId, SelectedGroups>>()
|
|
68
81
|
|
|
@@ -100,18 +113,29 @@ export const groups = Effect.fnUntraced(function*<
|
|
|
100
113
|
Layer.provide(Layer.succeedContext(context))
|
|
101
114
|
) as any
|
|
102
115
|
const handler = yield* HttpRouter.toHttpEffect(layer)
|
|
103
|
-
const
|
|
116
|
+
const scope = yield* Effect.scope
|
|
117
|
+
const httpClient = HttpClient.make((request) => {
|
|
118
|
+
const requestScope = Scope.forkUnsafe(scope)
|
|
104
119
|
const serverRequest = HttpServerRequest.fromClientRequest(request)
|
|
105
|
-
const
|
|
120
|
+
const state = new RequestState()
|
|
121
|
+
let transferred = false
|
|
122
|
+
return handler.pipe(
|
|
106
123
|
Effect.flatMap((response) => {
|
|
107
|
-
const preResponse = preResponseHandler
|
|
124
|
+
const preResponse = state.preResponseHandler
|
|
108
125
|
return preResponse === undefined ? Effect.succeed(response) : preResponse(serverRequest, response)
|
|
109
126
|
}),
|
|
127
|
+
Effect.map((response) => {
|
|
128
|
+
const transfer = HttpEffect.scopeTransferToStream(response)
|
|
129
|
+
transferred = transfer !== response
|
|
130
|
+
return HttpServerResponse.toClientResponse(transfer, { request })
|
|
131
|
+
}),
|
|
110
132
|
Effect.provideService(HttpServerRequest.HttpServerRequest, serverRequest),
|
|
111
|
-
Effect.
|
|
133
|
+
Effect.provideService(CurrentRequestState, state),
|
|
134
|
+
Effect.provideService(Scope.Scope, requestScope),
|
|
135
|
+
Effect.orDie,
|
|
136
|
+
Effect.onExit((exit) => transferred && Exit.isSuccess(exit) ? Effect.void : Scope.close(requestScope, exit))
|
|
112
137
|
)
|
|
113
|
-
|
|
114
|
-
}, Effect.scoped))
|
|
138
|
+
})
|
|
115
139
|
|
|
116
140
|
return yield* HttpApiClient.makeWith(api, {
|
|
117
141
|
httpClient,
|