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
package/src/http/HttpClient.ts
CHANGED
|
@@ -46,6 +46,7 @@ import * as HttpIncomingMessage from "./HttpIncomingMessage.ts"
|
|
|
46
46
|
import * as HttpMethod from "./HttpMethod.ts"
|
|
47
47
|
import * as TraceContext from "./HttpTraceContext.ts"
|
|
48
48
|
import * as tracing from "./internal/tracing.ts"
|
|
49
|
+
import { getWebSource, WebSourceSymbol } from "./internal/webResponse.ts"
|
|
49
50
|
import * as Url from "./Url.ts"
|
|
50
51
|
import * as UrlParams from "./UrlParams.ts"
|
|
51
52
|
|
|
@@ -467,56 +468,7 @@ export const catchTag: {
|
|
|
467
468
|
transformResponse(
|
|
468
469
|
self,
|
|
469
470
|
(effect) =>
|
|
470
|
-
Effect.catchTag
|
|
471
|
-
* Handles client failures with one or more matching `_tag` values and returns a transformed client.
|
|
472
|
-
*
|
|
473
|
-
* @stability unstable
|
|
474
|
-
* @category error handling
|
|
475
|
-
* @since 4.0.0
|
|
476
|
-
*/
|
|
477
|
-
HttpClientResponse.HttpClientResponse, /**
|
|
478
|
-
* Handles client failures with one or more matching `_tag` values and returns a transformed client.
|
|
479
|
-
*
|
|
480
|
-
* @stability unstable
|
|
481
|
-
* @category error handling
|
|
482
|
-
* @since 4.0.0
|
|
483
|
-
*/
|
|
484
|
-
E, /**
|
|
485
|
-
* Handles client failures with one or more matching `_tag` values and returns a transformed client.
|
|
486
|
-
*
|
|
487
|
-
* @stability unstable
|
|
488
|
-
* @category error handling
|
|
489
|
-
* @since 4.0.0
|
|
490
|
-
*/
|
|
491
|
-
R, /**
|
|
492
|
-
* Handles client failures with one or more matching `_tag` values and returns a transformed client.
|
|
493
|
-
*
|
|
494
|
-
* @stability unstable
|
|
495
|
-
* @category error handling
|
|
496
|
-
* @since 4.0.0
|
|
497
|
-
*/
|
|
498
|
-
K, /**
|
|
499
|
-
* Handles client failures with one or more matching `_tag` values and returns a transformed client.
|
|
500
|
-
*
|
|
501
|
-
* @stability unstable
|
|
502
|
-
* @category error handling
|
|
503
|
-
* @since 4.0.0
|
|
504
|
-
*/
|
|
505
|
-
R1, /**
|
|
506
|
-
* Handles client failures with one or more matching `_tag` values and returns a transformed client.
|
|
507
|
-
*
|
|
508
|
-
* @stability unstable
|
|
509
|
-
* @category error handling
|
|
510
|
-
* @since 4.0.0
|
|
511
|
-
*/
|
|
512
|
-
E1, /**
|
|
513
|
-
* Handles client failures with one or more matching `_tag` values and returns a transformed client.
|
|
514
|
-
*
|
|
515
|
-
* @stability unstable
|
|
516
|
-
* @category error handling
|
|
517
|
-
* @since 4.0.0
|
|
518
|
-
*/
|
|
519
|
-
HttpClientResponse.HttpClientResponse>(
|
|
471
|
+
Effect.catchTag<HttpClientResponse.HttpClientResponse, E, R, K, R1, E1, HttpClientResponse.HttpClientResponse>(
|
|
520
472
|
effect,
|
|
521
473
|
tag,
|
|
522
474
|
f
|
|
@@ -1641,81 +1593,18 @@ export const withRateLimiter: {
|
|
|
1641
1593
|
) => {
|
|
1642
1594
|
onResponse?.(clock, key, response.headers, tokens, sent)
|
|
1643
1595
|
if (options.disableResponseInspection || response.status !== 429) {
|
|
1644
|
-
return Effect.succeed
|
|
1645
|
-
* Applies request rate limiting using the `RateLimiter` service.
|
|
1646
|
-
*
|
|
1647
|
-
* **Details**
|
|
1648
|
-
*
|
|
1649
|
-
* It can update limits by inspecting common rate limit response headers and
|
|
1650
|
-
* automatically retries HTTP `429` responses (or `HttpClientError` values
|
|
1651
|
-
* wrapping a `429` response) by forcing the retry back through the limiter.
|
|
1652
|
-
* When a response reports the remaining budget, requests wait for the
|
|
1653
|
-
* reported reset once that budget is exhausted.
|
|
1654
|
-
*
|
|
1655
|
-
* **Gotchas**
|
|
1656
|
-
*
|
|
1657
|
-
* Automatic HTTP `429` retries are unlimited unless `times` is specified.
|
|
1658
|
-
* Disabling response inspection does not disable retries; set `times` to `0`
|
|
1659
|
-
* to return or fail with the first `429`.
|
|
1660
|
-
*
|
|
1661
|
-
* @stability unstable
|
|
1662
|
-
* @category rate limiting
|
|
1663
|
-
* @since 4.0.0
|
|
1664
|
-
*/
|
|
1665
|
-
Duration.Duration | undefined>(undefined);
|
|
1596
|
+
return Effect.succeed<Duration.Duration | undefined>(undefined)
|
|
1666
1597
|
}
|
|
1667
1598
|
const retryAfter = parseRetryAfter(
|
|
1668
1599
|
clock.currentTimeMillisUnsafe(),
|
|
1669
1600
|
getHeader(response.headers, ...headerNames.retryAfter)
|
|
1670
1601
|
)
|
|
1671
1602
|
if (retryAfter === undefined) {
|
|
1672
|
-
return Effect.succeed
|
|
1673
|
-
* Applies request rate limiting using the `RateLimiter` service.
|
|
1674
|
-
*
|
|
1675
|
-
* **Details**
|
|
1676
|
-
*
|
|
1677
|
-
* It can update limits by inspecting common rate limit response headers and
|
|
1678
|
-
* automatically retries HTTP `429` responses (or `HttpClientError` values
|
|
1679
|
-
* wrapping a `429` response) by forcing the retry back through the limiter.
|
|
1680
|
-
* When a response reports the remaining budget, requests wait for the
|
|
1681
|
-
* reported reset once that budget is exhausted.
|
|
1682
|
-
*
|
|
1683
|
-
* **Gotchas**
|
|
1684
|
-
*
|
|
1685
|
-
* Automatic HTTP `429` retries are unlimited unless `times` is specified.
|
|
1686
|
-
* Disabling response inspection does not disable retries; set `times` to `0`
|
|
1687
|
-
* to return or fail with the first `429`.
|
|
1688
|
-
*
|
|
1689
|
-
* @stability unstable
|
|
1690
|
-
* @category rate limiting
|
|
1691
|
-
* @since 4.0.0
|
|
1692
|
-
*/
|
|
1693
|
-
Duration.Duration | undefined>(undefined);
|
|
1603
|
+
return Effect.succeed<Duration.Duration | undefined>(undefined)
|
|
1694
1604
|
}
|
|
1695
1605
|
const delay = parseRateLimitWindow(clock, response.headers, headerNames) ?? retryAfter
|
|
1696
1606
|
if (adaptive === undefined) {
|
|
1697
|
-
return Effect.succeed
|
|
1698
|
-
* Applies request rate limiting using the `RateLimiter` service.
|
|
1699
|
-
*
|
|
1700
|
-
* **Details**
|
|
1701
|
-
*
|
|
1702
|
-
* It can update limits by inspecting common rate limit response headers and
|
|
1703
|
-
* automatically retries HTTP `429` responses (or `HttpClientError` values
|
|
1704
|
-
* wrapping a `429` response) by forcing the retry back through the limiter.
|
|
1705
|
-
* When a response reports the remaining budget, requests wait for the
|
|
1706
|
-
* reported reset once that budget is exhausted.
|
|
1707
|
-
*
|
|
1708
|
-
* **Gotchas**
|
|
1709
|
-
*
|
|
1710
|
-
* Automatic HTTP `429` retries are unlimited unless `times` is specified.
|
|
1711
|
-
* Disabling response inspection does not disable retries; set `times` to `0`
|
|
1712
|
-
* to return or fail with the first `429`.
|
|
1713
|
-
*
|
|
1714
|
-
* @stability unstable
|
|
1715
|
-
* @category rate limiting
|
|
1716
|
-
* @since 4.0.0
|
|
1717
|
-
*/
|
|
1718
|
-
Duration.Duration | undefined>(delay);
|
|
1607
|
+
return Effect.succeed<Duration.Duration | undefined>(delay)
|
|
1719
1608
|
}
|
|
1720
1609
|
return Effect.as(
|
|
1721
1610
|
options.limiter.adaptiveFeedback({
|
|
@@ -1786,7 +1675,7 @@ export const withRateLimiter: {
|
|
|
1786
1675
|
return Duration.isZero(delay) ? runAdaptive() : Effect.flatMap(Effect.sleep(delay), runAdaptive)
|
|
1787
1676
|
}
|
|
1788
1677
|
)
|
|
1789
|
-
})
|
|
1678
|
+
})
|
|
1790
1679
|
})
|
|
1791
1680
|
|
|
1792
1681
|
interface RateLimiterHeaderNames {
|
|
@@ -1888,6 +1777,8 @@ const parseRateLimitWindow = (
|
|
|
1888
1777
|
return parseResetHeader(clock, getHeader(headers, ...headerNames.reset))
|
|
1889
1778
|
}
|
|
1890
1779
|
|
|
1780
|
+
// An invalid Retry-After is treated as absent (RFC 9110 §10.2.3); the
|
|
1781
|
+
// one millisecond floor keeps a past date or `0` from retrying immediately.
|
|
1891
1782
|
const parseRetryAfter = (
|
|
1892
1783
|
nowMillis: number,
|
|
1893
1784
|
value: string | undefined
|
|
@@ -1895,22 +1786,10 @@ const parseRetryAfter = (
|
|
|
1895
1786
|
if (value === undefined) {
|
|
1896
1787
|
return undefined
|
|
1897
1788
|
}
|
|
1898
|
-
const
|
|
1899
|
-
|
|
1900
|
-
|
|
1901
|
-
|
|
1902
|
-
? Duration.max(Duration.seconds(numeric), Duration.millis(1))
|
|
1903
|
-
: undefined
|
|
1904
|
-
}
|
|
1905
|
-
const parsedDate = Date.parse(trimmed)
|
|
1906
|
-
if (Number.isNaN(parsedDate)) {
|
|
1907
|
-
return undefined
|
|
1908
|
-
}
|
|
1909
|
-
const millis = parsedDate - nowMillis
|
|
1910
|
-
if (millis <= 0) {
|
|
1911
|
-
return Duration.millis(1)
|
|
1912
|
-
}
|
|
1913
|
-
return Duration.millis(millis)
|
|
1789
|
+
const retryAfter = Headers.parseRetryAfter(value)
|
|
1790
|
+
return Result.isSuccess(retryAfter)
|
|
1791
|
+
? Duration.max(Headers.retryAfterDelay(retryAfter.success, nowMillis), Duration.millis(1))
|
|
1792
|
+
: undefined
|
|
1914
1793
|
}
|
|
1915
1794
|
|
|
1916
1795
|
const parseResetAfter = (value: string | undefined): Duration.Duration | undefined => {
|
|
@@ -2157,6 +2036,37 @@ export const withScope = <E, R>(
|
|
|
2157
2036
|
/**
|
|
2158
2037
|
* Enables following HTTP redirects up to a specified number of times.
|
|
2159
2038
|
*
|
|
2039
|
+
* **Details**
|
|
2040
|
+
*
|
|
2041
|
+
* Follows `3xx` responses that include a `Location` header, up to
|
|
2042
|
+
* `maxRedirects` (default `10`) times. When the limit is reached or the
|
|
2043
|
+
* `Location` header is not a valid URL, the last redirect response is returned.
|
|
2044
|
+
*
|
|
2045
|
+
* **Gotchas**
|
|
2046
|
+
*
|
|
2047
|
+
* This only sees redirects that the underlying client returns. `fetch`
|
|
2048
|
+
* follows redirects itself by default, so with `FetchHttpClient` provide
|
|
2049
|
+
* `FetchHttpClient.RequestInit` with `{ redirect: "manual" }`. Browsers return
|
|
2050
|
+
* an opaque response without a `Location` header for manual redirects, so
|
|
2051
|
+
* this cannot follow them there.
|
|
2052
|
+
*
|
|
2053
|
+
* **Example** (Following redirects with FetchHttpClient)
|
|
2054
|
+
*
|
|
2055
|
+
* ```ts
|
|
2056
|
+
* import { Effect } from "effect"
|
|
2057
|
+
* import { FetchHttpClient, HttpClient } from "effect/http"
|
|
2058
|
+
*
|
|
2059
|
+
* const program = Effect.gen(function*() {
|
|
2060
|
+
* const client = (yield* HttpClient.HttpClient).pipe(
|
|
2061
|
+
* HttpClient.followRedirects(5)
|
|
2062
|
+
* )
|
|
2063
|
+
* return yield* client.get("https://example.com/redirect")
|
|
2064
|
+
* }).pipe(
|
|
2065
|
+
* Effect.provide(FetchHttpClient.layer),
|
|
2066
|
+
* Effect.provideService(FetchHttpClient.RequestInit, { redirect: "manual" })
|
|
2067
|
+
* )
|
|
2068
|
+
* ```
|
|
2069
|
+
*
|
|
2160
2070
|
* @stability unstable
|
|
2161
2071
|
* @category redirects
|
|
2162
2072
|
* @since 4.0.0
|
|
@@ -2165,6 +2075,37 @@ export const followRedirects: {
|
|
|
2165
2075
|
/**
|
|
2166
2076
|
* Enables following HTTP redirects up to a specified number of times.
|
|
2167
2077
|
*
|
|
2078
|
+
* **Details**
|
|
2079
|
+
*
|
|
2080
|
+
* Follows `3xx` responses that include a `Location` header, up to
|
|
2081
|
+
* `maxRedirects` (default `10`) times. When the limit is reached or the
|
|
2082
|
+
* `Location` header is not a valid URL, the last redirect response is returned.
|
|
2083
|
+
*
|
|
2084
|
+
* **Gotchas**
|
|
2085
|
+
*
|
|
2086
|
+
* This only sees redirects that the underlying client returns. `fetch`
|
|
2087
|
+
* follows redirects itself by default, so with `FetchHttpClient` provide
|
|
2088
|
+
* `FetchHttpClient.RequestInit` with `{ redirect: "manual" }`. Browsers return
|
|
2089
|
+
* an opaque response without a `Location` header for manual redirects, so
|
|
2090
|
+
* this cannot follow them there.
|
|
2091
|
+
*
|
|
2092
|
+
* **Example** (Following redirects with FetchHttpClient)
|
|
2093
|
+
*
|
|
2094
|
+
* ```ts
|
|
2095
|
+
* import { Effect } from "effect"
|
|
2096
|
+
* import { FetchHttpClient, HttpClient } from "effect/http"
|
|
2097
|
+
*
|
|
2098
|
+
* const program = Effect.gen(function*() {
|
|
2099
|
+
* const client = (yield* HttpClient.HttpClient).pipe(
|
|
2100
|
+
* HttpClient.followRedirects(5)
|
|
2101
|
+
* )
|
|
2102
|
+
* return yield* client.get("https://example.com/redirect")
|
|
2103
|
+
* }).pipe(
|
|
2104
|
+
* Effect.provide(FetchHttpClient.layer),
|
|
2105
|
+
* Effect.provideService(FetchHttpClient.RequestInit, { redirect: "manual" })
|
|
2106
|
+
* )
|
|
2107
|
+
* ```
|
|
2108
|
+
*
|
|
2168
2109
|
* @stability unstable
|
|
2169
2110
|
* @category redirects
|
|
2170
2111
|
* @since 4.0.0
|
|
@@ -2173,6 +2114,37 @@ export const followRedirects: {
|
|
|
2173
2114
|
/**
|
|
2174
2115
|
* Enables following HTTP redirects up to a specified number of times.
|
|
2175
2116
|
*
|
|
2117
|
+
* **Details**
|
|
2118
|
+
*
|
|
2119
|
+
* Follows `3xx` responses that include a `Location` header, up to
|
|
2120
|
+
* `maxRedirects` (default `10`) times. When the limit is reached or the
|
|
2121
|
+
* `Location` header is not a valid URL, the last redirect response is returned.
|
|
2122
|
+
*
|
|
2123
|
+
* **Gotchas**
|
|
2124
|
+
*
|
|
2125
|
+
* This only sees redirects that the underlying client returns. `fetch`
|
|
2126
|
+
* follows redirects itself by default, so with `FetchHttpClient` provide
|
|
2127
|
+
* `FetchHttpClient.RequestInit` with `{ redirect: "manual" }`. Browsers return
|
|
2128
|
+
* an opaque response without a `Location` header for manual redirects, so
|
|
2129
|
+
* this cannot follow them there.
|
|
2130
|
+
*
|
|
2131
|
+
* **Example** (Following redirects with FetchHttpClient)
|
|
2132
|
+
*
|
|
2133
|
+
* ```ts
|
|
2134
|
+
* import { Effect } from "effect"
|
|
2135
|
+
* import { FetchHttpClient, HttpClient } from "effect/http"
|
|
2136
|
+
*
|
|
2137
|
+
* const program = Effect.gen(function*() {
|
|
2138
|
+
* const client = (yield* HttpClient.HttpClient).pipe(
|
|
2139
|
+
* HttpClient.followRedirects(5)
|
|
2140
|
+
* )
|
|
2141
|
+
* return yield* client.get("https://example.com/redirect")
|
|
2142
|
+
* }).pipe(
|
|
2143
|
+
* Effect.provide(FetchHttpClient.layer),
|
|
2144
|
+
* Effect.provideService(FetchHttpClient.RequestInit, { redirect: "manual" })
|
|
2145
|
+
* )
|
|
2146
|
+
* ```
|
|
2147
|
+
*
|
|
2176
2148
|
* @stability unstable
|
|
2177
2149
|
* @category redirects
|
|
2178
2150
|
* @since 4.0.0
|
|
@@ -2202,7 +2174,11 @@ export const followRedirects: {
|
|
|
2202
2174
|
) {
|
|
2203
2175
|
return Effect.succeed(response)
|
|
2204
2176
|
}
|
|
2205
|
-
const
|
|
2177
|
+
const urlResult = Url.fromString(response.headers.location, response.request.url)
|
|
2178
|
+
if (Result.isFailure(urlResult)) {
|
|
2179
|
+
return Effect.succeed(response)
|
|
2180
|
+
}
|
|
2181
|
+
const url = urlResult.success
|
|
2206
2182
|
const request = currentRequest ?? response.request
|
|
2207
2183
|
let nextRequest = request
|
|
2208
2184
|
if (
|
|
@@ -2324,7 +2300,11 @@ export const layerMergedContext = <E, R>(
|
|
|
2324
2300
|
const responseRegistry = (() => {
|
|
2325
2301
|
if ("FinalizationRegistry" in globalThis && globalThis.FinalizationRegistry) {
|
|
2326
2302
|
const registry = new FinalizationRegistry((controller: AbortController) => {
|
|
2327
|
-
|
|
2303
|
+
try {
|
|
2304
|
+
controller.abort()
|
|
2305
|
+
} catch {
|
|
2306
|
+
// Runtimes such as workerd disallow aborting I/O outside its request context.
|
|
2307
|
+
}
|
|
2328
2308
|
})
|
|
2329
2309
|
return {
|
|
2330
2310
|
register(response: HttpClientResponse.HttpClientResponse, controller: AbortController) {
|
|
@@ -2424,6 +2404,17 @@ class InterruptibleResponse implements HttpClientResponse.HttpClientResponse, Pi
|
|
|
2424
2404
|
return this.applyInterrupt(this.original.arrayBuffer)
|
|
2425
2405
|
}
|
|
2426
2406
|
|
|
2407
|
+
get upgrade() {
|
|
2408
|
+
return this.applyInterrupt(this.original.upgrade)
|
|
2409
|
+
}
|
|
2410
|
+
|
|
2411
|
+
[WebSourceSymbol]() {
|
|
2412
|
+
const source = getWebSource(this.original)
|
|
2413
|
+
// A handed-over Web body outlives this wrapper, so collecting it must not abort the request.
|
|
2414
|
+
if (source !== undefined) responseRegistry.unregister(this.original)
|
|
2415
|
+
return source
|
|
2416
|
+
}
|
|
2417
|
+
|
|
2427
2418
|
get stream() {
|
|
2428
2419
|
return Stream.suspend(() => {
|
|
2429
2420
|
responseRegistry.unregister(this.original)
|
|
@@ -13,6 +13,7 @@
|
|
|
13
13
|
import type * as ByteSize from "../ByteSize.ts"
|
|
14
14
|
import * as Context from "../Context.ts"
|
|
15
15
|
import * as Effect from "../Effect.ts"
|
|
16
|
+
import * as Base64 from "../encoding/Base64.ts"
|
|
16
17
|
import type * as FileSystem from "../FileSystem.ts"
|
|
17
18
|
import { dual } from "../Function.ts"
|
|
18
19
|
import * as Inspectable from "../Inspectable.ts"
|
|
@@ -483,7 +484,8 @@ export const removeHeader: {
|
|
|
483
484
|
)
|
|
484
485
|
|
|
485
486
|
/**
|
|
486
|
-
* Sets the `Authorization` header using HTTP Basic authentication credentials
|
|
487
|
+
* Sets the `Authorization` header using HTTP Basic authentication credentials,
|
|
488
|
+
* encoded as UTF-8 before base64 encoding.
|
|
487
489
|
*
|
|
488
490
|
* @stability unstable
|
|
489
491
|
* @category combinators
|
|
@@ -491,7 +493,8 @@ export const removeHeader: {
|
|
|
491
493
|
*/
|
|
492
494
|
export const basicAuth: {
|
|
493
495
|
/**
|
|
494
|
-
* Sets the `Authorization` header using HTTP Basic authentication credentials
|
|
496
|
+
* Sets the `Authorization` header using HTTP Basic authentication credentials,
|
|
497
|
+
* encoded as UTF-8 before base64 encoding.
|
|
495
498
|
*
|
|
496
499
|
* @stability unstable
|
|
497
500
|
* @category combinators
|
|
@@ -499,7 +502,8 @@ export const basicAuth: {
|
|
|
499
502
|
*/
|
|
500
503
|
(username: string | Redacted.Redacted, password: string | Redacted.Redacted): (self: HttpClientRequest) => HttpClientRequest
|
|
501
504
|
/**
|
|
502
|
-
* Sets the `Authorization` header using HTTP Basic authentication credentials
|
|
505
|
+
* Sets the `Authorization` header using HTTP Basic authentication credentials,
|
|
506
|
+
* encoded as UTF-8 before base64 encoding.
|
|
503
507
|
*
|
|
504
508
|
* @stability unstable
|
|
505
509
|
* @category combinators
|
|
@@ -517,7 +521,11 @@ export const basicAuth: {
|
|
|
517
521
|
username: string | Redacted.Redacted,
|
|
518
522
|
password: string | Redacted.Redacted
|
|
519
523
|
): HttpClientRequest =>
|
|
520
|
-
setHeader(
|
|
524
|
+
setHeader(
|
|
525
|
+
self,
|
|
526
|
+
"Authorization",
|
|
527
|
+
`Basic ${Base64.encode(`${stringOrRedacted(username)}:${stringOrRedacted(password)}`)}`
|
|
528
|
+
)
|
|
521
529
|
)
|
|
522
530
|
|
|
523
531
|
/**
|
|
@@ -585,6 +593,136 @@ export const accept: {
|
|
|
585
593
|
*/
|
|
586
594
|
export const acceptJson: (self: HttpClientRequest) => HttpClientRequest = accept("application/json")
|
|
587
595
|
|
|
596
|
+
/**
|
|
597
|
+
* Asks the server to switch the connection to another protocol by setting the
|
|
598
|
+
* `Connection: Upgrade` and `Upgrade` headers.
|
|
599
|
+
*
|
|
600
|
+
* **When to use**
|
|
601
|
+
*
|
|
602
|
+
* Use to switch an HTTP/1.1 connection to a raw byte stream, such as Docker's
|
|
603
|
+
* `Upgrade: tcp` for container attach. For WebSocket, use `Socket.makeWebSocket`.
|
|
604
|
+
*
|
|
605
|
+
* **Details**
|
|
606
|
+
*
|
|
607
|
+
* The request is otherwise ordinary, so client transforms such as base URLs,
|
|
608
|
+
* authentication, and tracing apply to it. When the server answers `101
|
|
609
|
+
* Switching Protocols`, `HttpClientResponse.upgrade` hands over the
|
|
610
|
+
* connection as a `Socket`. Any other response is read as usual.
|
|
611
|
+
*
|
|
612
|
+
* **Example** (Attaching to a Docker container)
|
|
613
|
+
*
|
|
614
|
+
* ```ts
|
|
615
|
+
* import { Effect } from "effect"
|
|
616
|
+
* import { HttpClient, HttpClientRequest } from "effect/http"
|
|
617
|
+
*
|
|
618
|
+
* const program = Effect.gen(function*() {
|
|
619
|
+
* const client = yield* HttpClient.HttpClient
|
|
620
|
+
* const response = yield* client.execute(
|
|
621
|
+
* HttpClientRequest.post("/containers/abc/attach?stream=1&stdout=1").pipe(
|
|
622
|
+
* HttpClientRequest.upgrade("tcp")
|
|
623
|
+
* )
|
|
624
|
+
* )
|
|
625
|
+
* const socket = yield* response.upgrade
|
|
626
|
+
* const reader = yield* socket.reader
|
|
627
|
+
* return yield* reader.pull
|
|
628
|
+
* })
|
|
629
|
+
* ```
|
|
630
|
+
*
|
|
631
|
+
* @stability unstable
|
|
632
|
+
* @category combinators
|
|
633
|
+
* @since 4.0.6
|
|
634
|
+
*/
|
|
635
|
+
export const upgrade: {
|
|
636
|
+
/**
|
|
637
|
+
* Asks the server to switch the connection to another protocol by setting the
|
|
638
|
+
* `Connection: Upgrade` and `Upgrade` headers.
|
|
639
|
+
*
|
|
640
|
+
* **When to use**
|
|
641
|
+
*
|
|
642
|
+
* Use to switch an HTTP/1.1 connection to a raw byte stream, such as Docker's
|
|
643
|
+
* `Upgrade: tcp` for container attach. For WebSocket, use `Socket.makeWebSocket`.
|
|
644
|
+
*
|
|
645
|
+
* **Details**
|
|
646
|
+
*
|
|
647
|
+
* The request is otherwise ordinary, so client transforms such as base URLs,
|
|
648
|
+
* authentication, and tracing apply to it. When the server answers `101
|
|
649
|
+
* Switching Protocols`, `HttpClientResponse.upgrade` hands over the
|
|
650
|
+
* connection as a `Socket`. Any other response is read as usual.
|
|
651
|
+
*
|
|
652
|
+
* **Example** (Attaching to a Docker container)
|
|
653
|
+
*
|
|
654
|
+
* ```ts
|
|
655
|
+
* import { Effect } from "effect"
|
|
656
|
+
* import { HttpClient, HttpClientRequest } from "effect/http"
|
|
657
|
+
*
|
|
658
|
+
* const program = Effect.gen(function*() {
|
|
659
|
+
* const client = yield* HttpClient.HttpClient
|
|
660
|
+
* const response = yield* client.execute(
|
|
661
|
+
* HttpClientRequest.post("/containers/abc/attach?stream=1&stdout=1").pipe(
|
|
662
|
+
* HttpClientRequest.upgrade("tcp")
|
|
663
|
+
* )
|
|
664
|
+
* )
|
|
665
|
+
* const socket = yield* response.upgrade
|
|
666
|
+
* const reader = yield* socket.reader
|
|
667
|
+
* return yield* reader.pull
|
|
668
|
+
* })
|
|
669
|
+
* ```
|
|
670
|
+
*
|
|
671
|
+
* @stability unstable
|
|
672
|
+
* @category combinators
|
|
673
|
+
* @since 4.0.6
|
|
674
|
+
*/
|
|
675
|
+
(protocol: string): (self: HttpClientRequest) => HttpClientRequest
|
|
676
|
+
/**
|
|
677
|
+
* Asks the server to switch the connection to another protocol by setting the
|
|
678
|
+
* `Connection: Upgrade` and `Upgrade` headers.
|
|
679
|
+
*
|
|
680
|
+
* **When to use**
|
|
681
|
+
*
|
|
682
|
+
* Use to switch an HTTP/1.1 connection to a raw byte stream, such as Docker's
|
|
683
|
+
* `Upgrade: tcp` for container attach. For WebSocket, use `Socket.makeWebSocket`.
|
|
684
|
+
*
|
|
685
|
+
* **Details**
|
|
686
|
+
*
|
|
687
|
+
* The request is otherwise ordinary, so client transforms such as base URLs,
|
|
688
|
+
* authentication, and tracing apply to it. When the server answers `101
|
|
689
|
+
* Switching Protocols`, `HttpClientResponse.upgrade` hands over the
|
|
690
|
+
* connection as a `Socket`. Any other response is read as usual.
|
|
691
|
+
*
|
|
692
|
+
* **Example** (Attaching to a Docker container)
|
|
693
|
+
*
|
|
694
|
+
* ```ts
|
|
695
|
+
* import { Effect } from "effect"
|
|
696
|
+
* import { HttpClient, HttpClientRequest } from "effect/http"
|
|
697
|
+
*
|
|
698
|
+
* const program = Effect.gen(function*() {
|
|
699
|
+
* const client = yield* HttpClient.HttpClient
|
|
700
|
+
* const response = yield* client.execute(
|
|
701
|
+
* HttpClientRequest.post("/containers/abc/attach?stream=1&stdout=1").pipe(
|
|
702
|
+
* HttpClientRequest.upgrade("tcp")
|
|
703
|
+
* )
|
|
704
|
+
* )
|
|
705
|
+
* const socket = yield* response.upgrade
|
|
706
|
+
* const reader = yield* socket.reader
|
|
707
|
+
* return yield* reader.pull
|
|
708
|
+
* })
|
|
709
|
+
* ```
|
|
710
|
+
*
|
|
711
|
+
* @stability unstable
|
|
712
|
+
* @category combinators
|
|
713
|
+
* @since 4.0.6
|
|
714
|
+
*/
|
|
715
|
+
(self: HttpClientRequest, protocol: string): HttpClientRequest
|
|
716
|
+
} = dual(2, (self: HttpClientRequest, protocol: string): HttpClientRequest =>
|
|
717
|
+
makeWith(
|
|
718
|
+
self.method,
|
|
719
|
+
self.url,
|
|
720
|
+
self.urlParams,
|
|
721
|
+
self.hash,
|
|
722
|
+
Headers.set(Headers.set(self.headers, "connection", "Upgrade"), "upgrade", protocol),
|
|
723
|
+
self.body
|
|
724
|
+
))
|
|
725
|
+
|
|
588
726
|
/**
|
|
589
727
|
* Sets the request URL. When given a `URL`, its search parameters and hash are extracted into the request's structured fields.
|
|
590
728
|
*
|
|
@@ -17,6 +17,7 @@ import * as Option from "../Option.ts"
|
|
|
17
17
|
import { type Pipeable, pipeArguments } from "../Pipeable.ts"
|
|
18
18
|
import * as Schema from "../Schema.ts"
|
|
19
19
|
import type { ParseOptions } from "../SchemaAST.ts"
|
|
20
|
+
import type * as Socket from "../socket/Socket.ts"
|
|
20
21
|
import * as Stream from "../Stream.ts"
|
|
21
22
|
import type { Unify } from "../Unify.ts"
|
|
22
23
|
import * as Cookies from "./Cookies.ts"
|
|
@@ -24,6 +25,7 @@ import * as Headers from "./Headers.ts"
|
|
|
24
25
|
import * as Error from "./HttpClientError.ts"
|
|
25
26
|
import * as HttpClientRequest from "./HttpClientRequest.ts"
|
|
26
27
|
import * as HttpIncomingMessage from "./HttpIncomingMessage.ts"
|
|
28
|
+
import { getWebSource, WebSourceSymbol } from "./internal/webResponse.ts"
|
|
27
29
|
import * as UrlParams from "./UrlParams.ts"
|
|
28
30
|
|
|
29
31
|
/**
|
|
@@ -83,6 +85,23 @@ export interface HttpClientResponse extends HttpIncomingMessage.HttpIncomingMess
|
|
|
83
85
|
readonly status: number
|
|
84
86
|
readonly cookies: Cookies.Cookies
|
|
85
87
|
readonly formData: Effect.Effect<FormData, Error.HttpClientError>
|
|
88
|
+
/**
|
|
89
|
+
* Hands over the connection of a `101 Switching Protocols` response as a
|
|
90
|
+
* `Socket`.
|
|
91
|
+
*
|
|
92
|
+
* **Details**
|
|
93
|
+
*
|
|
94
|
+
* Ask for an upgrade with `HttpClientRequest.upgrade`. Bytes the server
|
|
95
|
+
* sent after the response head come first on the reader. Releasing the
|
|
96
|
+
* writer's scope half-closes the connection, and releasing the reader's
|
|
97
|
+
* scope closes it. Closing the request's scope (see `HttpClient.withScope`)
|
|
98
|
+
* also closes it.
|
|
99
|
+
*
|
|
100
|
+
* Fails with a `StatusCodeError` for any other status, so a refusal can be
|
|
101
|
+
* read from the response body as usual. Backends that cannot hand over a
|
|
102
|
+
* connection, such as fetch, never produce a `101` and fail the same way.
|
|
103
|
+
*/
|
|
104
|
+
readonly upgrade: Effect.Effect<Socket.Socket, Error.HttpClientError>
|
|
86
105
|
}
|
|
87
106
|
|
|
88
107
|
/**
|
|
@@ -95,6 +114,42 @@ export interface HttpClientResponse extends HttpIncomingMessage.HttpIncomingMess
|
|
|
95
114
|
export const fromWeb = (request: HttpClientRequest.HttpClientRequest, source: Response): HttpClientResponse =>
|
|
96
115
|
new WebHttpClientResponse(request, source)
|
|
97
116
|
|
|
117
|
+
/**
|
|
118
|
+
* Returns the original Web `Response` of a fetch-backed `HttpClientResponse`.
|
|
119
|
+
*
|
|
120
|
+
* **When to use**
|
|
121
|
+
*
|
|
122
|
+
* Use to hand a response body to a Web API without copying it, such as
|
|
123
|
+
* writing a fetched file to Cloudflare R2. The original body keeps runtime
|
|
124
|
+
* capabilities, such as workerd's known length, that a stream converted from
|
|
125
|
+
* `stream` does not.
|
|
126
|
+
*
|
|
127
|
+
* **Details**
|
|
128
|
+
*
|
|
129
|
+
* Returns `Some` for responses created with `fromWeb`, which includes every
|
|
130
|
+
* response from `FetchHttpClient`, and `None` for other backends.
|
|
131
|
+
*
|
|
132
|
+
* Calling `toWeb` hands the body over: the response is no longer aborted when
|
|
133
|
+
* the `HttpClientResponse` is garbage collected, so read or cancel the body
|
|
134
|
+
* through the returned `Response`.
|
|
135
|
+
*
|
|
136
|
+
* **Gotchas**
|
|
137
|
+
*
|
|
138
|
+
* The body can be read once. After converting, read it from the returned
|
|
139
|
+
* `Response`, not from the `HttpClientResponse`.
|
|
140
|
+
*
|
|
141
|
+
* After the hand-off, Effect aborts the request only when the scope of
|
|
142
|
+
* `HttpClient.withScope` closes. When the request streams its body, finishing
|
|
143
|
+
* or cancelling the returned body does not stop the upload; execute the
|
|
144
|
+
* request with `HttpClient.withScope` and close the scope to stop it.
|
|
145
|
+
*
|
|
146
|
+
* @stability unstable
|
|
147
|
+
* @category converting
|
|
148
|
+
* @since 4.0.0
|
|
149
|
+
*/
|
|
150
|
+
export const toWeb = (self: HttpClientResponse): Option.Option<globalThis.Response> =>
|
|
151
|
+
Option.fromUndefinedOr(getWebSource(self))
|
|
152
|
+
|
|
98
153
|
/**
|
|
99
154
|
* Creates a decoder for a response's status, headers, and JSON body using the supplied schema.
|
|
100
155
|
*
|
|
@@ -350,6 +405,10 @@ class WebHttpClientResponse extends Inspectable.Class implements HttpClientRespo
|
|
|
350
405
|
return Option.none()
|
|
351
406
|
}
|
|
352
407
|
|
|
408
|
+
[WebSourceSymbol](): globalThis.Response {
|
|
409
|
+
return this.source
|
|
410
|
+
}
|
|
411
|
+
|
|
353
412
|
get stream(): Stream.Stream<Uint8Array, Error.HttpClientError> {
|
|
354
413
|
return this.source.body
|
|
355
414
|
? Stream.fromReadableStream({
|
|
@@ -443,6 +502,18 @@ class WebHttpClientResponse extends Inspectable.Class implements HttpClientRespo
|
|
|
443
502
|
return this.arrayBufferBody
|
|
444
503
|
}
|
|
445
504
|
|
|
505
|
+
get upgrade(): Effect.Effect<Socket.Socket, Error.HttpClientError> {
|
|
506
|
+
return Effect.fail(
|
|
507
|
+
new Error.HttpClientError({
|
|
508
|
+
reason: new Error.StatusCodeError({
|
|
509
|
+
request: this.request,
|
|
510
|
+
response: this,
|
|
511
|
+
description: "fetch cannot hand over the connection of an HTTP upgrade"
|
|
512
|
+
})
|
|
513
|
+
})
|
|
514
|
+
)
|
|
515
|
+
}
|
|
516
|
+
|
|
446
517
|
pipe() {
|
|
447
518
|
return pipeArguments(this, arguments)
|
|
448
519
|
}
|