effect 4.0.4 → 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/src/52_graphql/10_basics.ts +19 -13
- package/ai-docs/src/52_graphql/30_batching.ts +6 -4
- package/ai-docs/src/52_graphql/40_aliased-batching.ts +6 -4
- package/ai-docs/tsconfig.json +3 -1
- package/dist/Array.d.ts +207 -58
- package/dist/Array.d.ts.map +1 -1
- package/dist/Array.js +45 -22
- 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 +187 -14
- package/dist/Channel.d.ts.map +1 -1
- package/dist/Channel.js +142 -33
- 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 +34 -32
- 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 +58 -21
- package/dist/Duration.js.map +1 -1
- package/dist/Effect.d.ts +548 -182
- package/dist/Effect.d.ts.map +1 -1
- package/dist/Effect.js +261 -76
- 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 +28 -9
- 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/Match.d.ts +20 -6
- package/dist/Match.d.ts.map +1 -1
- package/dist/Match.js +2 -2
- package/dist/Match.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 +37 -5
- package/dist/Path.d.ts.map +1 -1
- package/dist/Path.js +44 -6
- 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 +383 -326
- package/dist/Schema.d.ts.map +1 -1
- package/dist/Schema.js +338 -17
- 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 +16 -2
- package/dist/String.d.ts.map +1 -1
- package/dist/String.js +25 -10
- 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/TxRef.d.ts.map +1 -1
- package/dist/TxRef.js +3 -2
- package/dist/TxRef.js.map +1 -1
- package/dist/ai/AiError.d.ts +78 -14
- package/dist/ai/AiError.d.ts.map +1 -1
- package/dist/ai/AiError.js +51 -3
- 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 +116 -20
- package/dist/ai/Decision.d.ts.map +1 -1
- package/dist/ai/Decision.js +37 -3
- 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 +183 -95
- package/dist/ai/DecisionModel.js.map +1 -1
- package/dist/ai/EmbeddingModel.d.ts +10 -0
- package/dist/ai/EmbeddingModel.d.ts.map +1 -1
- package/dist/ai/EmbeddingModel.js +21 -7
- package/dist/ai/EmbeddingModel.js.map +1 -1
- package/dist/ai/LanguageModel.d.ts.map +1 -1
- package/dist/ai/LanguageModel.js +47 -35
- package/dist/ai/LanguageModel.js.map +1 -1
- package/dist/ai/McpClient.d.ts +289 -0
- package/dist/ai/McpClient.d.ts.map +1 -0
- package/dist/ai/McpClient.js +819 -0
- package/dist/ai/McpClient.js.map +1 -0
- package/dist/ai/McpClientError.d.ts +254 -0
- package/dist/ai/McpClientError.d.ts.map +1 -0
- package/dist/ai/McpClientError.js +260 -0
- package/dist/ai/McpClientError.js.map +1 -0
- package/dist/ai/McpProtocol.d.ts +2 -2
- package/dist/ai/McpProtocol.d.ts.map +1 -1
- package/dist/ai/McpSchema.d.ts +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 +6 -52
- package/dist/ai/McpServer.d.ts.map +1 -1
- package/dist/ai/McpServer.js +27 -50
- 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 +148 -4
- 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 +10 -0
- package/dist/cli/Completions.d.ts.map +1 -1
- package/dist/cli/Completions.js.map +1 -1
- package/dist/cli/Flag.d.ts +215 -0
- package/dist/cli/Flag.d.ts.map +1 -1
- package/dist/cli/Flag.js +89 -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 +194 -0
- package/dist/cli/Param.d.ts.map +1 -1
- package/dist/cli/Param.js +86 -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 +7 -3
- package/dist/cli/internal/command.js.map +1 -1
- package/dist/cli/internal/completions/bash.js +7 -5
- package/dist/cli/internal/completions/bash.js.map +1 -1
- package/dist/cli/internal/completions/descriptor.js +16 -1
- package/dist/cli/internal/completions/descriptor.js.map +1 -1
- package/dist/cli/internal/completions/fish.js +12 -10
- package/dist/cli/internal/completions/fish.js.map +1 -1
- package/dist/cli/internal/completions/powershell.js +20 -10
- package/dist/cli/internal/completions/powershell.js.map +1 -1
- package/dist/cli/internal/completions/zsh.js +15 -8
- 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 +35 -15
- package/dist/cli/internal/parser.js.map +1 -1
- package/dist/cli/internal/wizard.d.ts.map +1 -1
- package/dist/cli/internal/wizard.js +2 -1
- package/dist/cli/internal/wizard.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 +2 -1
- package/dist/cluster/ClusterWorkflowEngine.d.ts.map +1 -1
- package/dist/cluster/ClusterWorkflowEngine.js +98 -18
- 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 +20 -12
- package/dist/cluster/MessageStorage.js.map +1 -1
- package/dist/cluster/Runners.d.ts.map +1 -1
- package/dist/cluster/Runners.js +96 -37
- 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 +66 -9
- 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/Sse.js +1 -1
- package/dist/encoding/Sse.js.map +1 -1
- package/dist/encoding/Tar.d.ts +309 -0
- package/dist/encoding/Tar.d.ts.map +1 -0
- package/dist/encoding/Tar.js +1182 -0
- package/dist/encoding/Tar.js.map +1 -0
- package/dist/encoding/Toml.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/GraphQLClient.d.ts.map +1 -1
- package/dist/graphql/GraphQLClient.js +12 -5
- package/dist/graphql/GraphQLClient.js.map +1 -1
- 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 +252 -11
- package/dist/graphql/GraphQLProtocol.d.ts.map +1 -1
- package/dist/graphql/GraphQLProtocol.js +99 -8
- package/dist/graphql/GraphQLProtocol.js.map +1 -1
- package/dist/graphql/GraphQLResolver.d.ts +3 -1
- package/dist/graphql/GraphQLResolver.d.ts.map +1 -1
- package/dist/graphql/GraphQLResolver.js +91 -19
- package/dist/graphql/GraphQLResolver.js.map +1 -1
- package/dist/http/FetchHttpClient.d.ts +13 -3
- package/dist/http/FetchHttpClient.d.ts.map +1 -1
- package/dist/http/FetchHttpClient.js +56 -6
- package/dist/http/FetchHttpClient.js.map +1 -1
- package/dist/http/FindMyWay/internal/router.js +12 -1
- package/dist/http/FindMyWay/internal/router.js.map +1 -1
- package/dist/http/Headers.d.ts +230 -3
- package/dist/http/Headers.d.ts.map +1 -1
- package/dist/http/Headers.js +267 -5
- package/dist/http/Headers.js.map +1 -1
- package/dist/http/HttpClient.d.ts +105 -0
- package/dist/http/HttpClient.d.ts.map +1 -1
- package/dist/http/HttpClient.js +69 -17
- package/dist/http/HttpClient.js.map +1 -1
- package/dist/http/HttpClientError.d.ts.map +1 -1
- package/dist/http/HttpClientError.js +8 -6
- package/dist/http/HttpClientError.js.map +1 -1
- package/dist/http/HttpClientRequest.d.ts +274 -7
- package/dist/http/HttpClientRequest.d.ts.map +1 -1
- package/dist/http/HttpClientRequest.js +91 -3
- package/dist/http/HttpClientRequest.js.map +1 -1
- package/dist/http/HttpClientResponse.d.ts +53 -0
- package/dist/http/HttpClientResponse.d.ts.map +1 -1
- package/dist/http/HttpClientResponse.js +47 -0
- package/dist/http/HttpClientResponse.js.map +1 -1
- package/dist/http/HttpEffect.d.ts +6 -2
- package/dist/http/HttpEffect.d.ts.map +1 -1
- package/dist/http/HttpEffect.js +21 -17
- package/dist/http/HttpEffect.js.map +1 -1
- package/dist/http/HttpIncomingMessage.d.ts +2 -1
- package/dist/http/HttpIncomingMessage.d.ts.map +1 -1
- package/dist/http/HttpIncomingMessage.js +3 -23
- package/dist/http/HttpIncomingMessage.js.map +1 -1
- package/dist/http/HttpMiddleware.d.ts +179 -2
- package/dist/http/HttpMiddleware.d.ts.map +1 -1
- package/dist/http/HttpMiddleware.js +226 -18
- package/dist/http/HttpMiddleware.js.map +1 -1
- package/dist/http/HttpRouter.d.ts.map +1 -1
- package/dist/http/HttpRouter.js +58 -14
- 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 +11 -7
- 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 +38 -12
- 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 +25 -17
- package/dist/http/HttpStaticServer.js.map +1 -1
- package/dist/http/HttpTraceContext.js +1 -1
- package/dist/http/HttpTraceContext.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 +8 -2
- package/dist/http/Url.js.map +1 -1
- package/dist/http/UrlParams.d.ts +112 -8
- package/dist/http/UrlParams.d.ts.map +1 -1
- package/dist/http/UrlParams.js +141 -14
- package/dist/http/UrlParams.js.map +1 -1
- package/dist/http/internal/compression.d.ts +1 -1
- package/dist/http/internal/compression.d.ts.map +1 -1
- package/dist/http/internal/compression.js +2 -10
- package/dist/http/internal/compression.js.map +1 -1
- package/dist/http/internal/compressionBody.d.ts +2 -0
- package/dist/http/internal/compressionBody.d.ts.map +1 -0
- package/dist/http/internal/compressionBody.js +36 -0
- package/dist/http/internal/compressionBody.js.map +1 -0
- package/dist/http/internal/decompression.d.ts +2 -0
- package/dist/http/internal/decompression.d.ts.map +1 -0
- package/dist/http/internal/decompression.js +168 -0
- package/dist/http/internal/decompression.js.map +1 -0
- 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/tracing.js +14 -4
- package/dist/http/internal/tracing.js.map +1 -1
- package/dist/http/internal/urlParams.d.ts +2 -0
- package/dist/http/internal/urlParams.d.ts.map +1 -0
- package/dist/http/internal/urlParams.js +4 -0
- package/dist/http/internal/urlParams.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 +85 -24
- 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 +18 -2
- 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 +89 -76
- package/dist/internal/effect.js.map +1 -1
- package/dist/internal/graphql.js +12 -2
- package/dist/internal/graphql.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/Otlp.d.ts +15 -0
- package/dist/observability/Otlp.d.ts.map +1 -1
- package/dist/observability/Otlp.js +3 -0
- package/dist/observability/Otlp.js.map +1 -1
- package/dist/observability/OtlpExporter.d.ts +8 -0
- package/dist/observability/OtlpExporter.d.ts.map +1 -1
- package/dist/observability/OtlpExporter.js +15 -13
- package/dist/observability/OtlpExporter.js.map +1 -1
- package/dist/observability/OtlpLogger.d.ts +17 -0
- package/dist/observability/OtlpLogger.d.ts.map +1 -1
- package/dist/observability/OtlpLogger.js +14 -1
- package/dist/observability/OtlpLogger.js.map +1 -1
- package/dist/observability/OtlpMetrics.d.ts +17 -0
- package/dist/observability/OtlpMetrics.d.ts.map +1 -1
- package/dist/observability/OtlpMetrics.js +18 -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/OtlpTracer.d.ts +17 -0
- package/dist/observability/OtlpTracer.d.ts.map +1 -1
- package/dist/observability/OtlpTracer.js +15 -2
- package/dist/observability/OtlpTracer.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 +6 -0
- package/dist/reactivity/AsyncResult.d.ts.map +1 -1
- package/dist/reactivity/AsyncResult.js +28 -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 +47 -10
- 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 +202 -61
- 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 +151 -12
- package/dist/sql/SqlClient.d.ts.map +1 -1
- package/dist/sql/SqlClient.js +156 -34
- 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 +16 -3
- package/dist/testing/TestClock.d.ts.map +1 -1
- package/dist/testing/TestClock.js +115 -23
- 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/Activity.js +1 -0
- package/dist/workflow/Activity.js.map +1 -1
- package/dist/workflow/Workflow.d.ts +22 -0
- package/dist/workflow/Workflow.d.ts.map +1 -1
- package/dist/workflow/Workflow.js +15 -3
- package/dist/workflow/Workflow.js.map +1 -1
- package/dist/workflow/WorkflowEngine.d.ts +20 -1
- package/dist/workflow/WorkflowEngine.d.ts.map +1 -1
- package/dist/workflow/WorkflowEngine.js +52 -24
- package/dist/workflow/WorkflowEngine.js.map +1 -1
- package/package.json +13 -3
- package/src/Array.ts +223 -61
- package/src/Bytes.ts +111 -0
- package/src/Channel.ts +287 -439
- package/src/ChannelSchema.ts +1 -49
- package/src/Chunk.ts +55 -61
- package/src/Config.ts +12 -86
- package/src/ConfigProvider.ts +41 -44
- package/src/Cron.ts +6 -3
- package/src/Duration.ts +70 -21
- package/src/Effect.ts +642 -220
- 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 +33 -9
- 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/Match.ts +65 -12
- 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 +61 -8
- 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 +596 -348
- 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 +25 -12
- package/src/TextDiff.ts +766 -0
- package/src/TxHashMap.ts +1 -103
- package/src/TxHashSet.ts +48 -753
- package/src/TxRef.ts +4 -2
- package/src/ai/AiError.ts +69 -5
- package/src/ai/Chat.ts +10 -5
- package/src/ai/Decision.ts +119 -22
- package/src/ai/DecisionModel.ts +265 -109
- package/src/ai/EmbeddingModel.ts +25 -13
- package/src/ai/LanguageModel.ts +57 -51
- 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 +232 -275
- 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 +10 -0
- package/src/cli/Flag.ts +218 -0
- package/src/cli/GlobalFlag.ts +3 -3
- package/src/cli/Param.ts +218 -0
- package/src/cli/TerminalCapabilities.ts +156 -0
- package/src/cli/index.ts +6 -0
- package/src/cli/internal/command.ts +10 -4
- package/src/cli/internal/completions/bash.ts +7 -5
- package/src/cli/internal/completions/descriptor.ts +20 -1
- package/src/cli/internal/completions/fish.ts +12 -10
- package/src/cli/internal/completions/powershell.ts +25 -13
- package/src/cli/internal/completions/zsh.ts +15 -8
- package/src/cli/internal/formatter.ts +18 -0
- package/src/cli/internal/lexer.ts +12 -5
- package/src/cli/internal/parser.ts +43 -14
- package/src/cli/internal/wizard.ts +2 -1
- package/src/cluster/ClusterCron.ts +94 -35
- package/src/cluster/ClusterMetrics.ts +149 -7
- package/src/cluster/ClusterWorkflowEngine.ts +164 -53
- package/src/cluster/Entity.ts +4 -0
- package/src/cluster/MessageStorage.ts +21 -3
- package/src/cluster/Runners.ts +145 -72
- 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 +81 -11
- 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/Sse.ts +1 -1
- 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/GraphQLClient.ts +17 -5
- package/src/graphql/GraphQLClientError.ts +5 -12
- package/src/graphql/GraphQLProtocol.ts +277 -20
- package/src/graphql/GraphQLResolver.ts +109 -230
- package/src/http/FetchHttpClient.ts +61 -8
- package/src/http/FindMyWay/internal/router.ts +13 -1
- package/src/http/Headers.ts +343 -163
- package/src/http/HttpClient.ts +144 -136
- package/src/http/HttpClientError.ts +10 -6
- package/src/http/HttpClientRequest.ts +315 -11
- 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 +265 -28
- package/src/http/HttpRouter.ts +67 -14
- package/src/http/HttpServerError.ts +14 -7
- package/src/http/HttpServerRequest.ts +73 -14
- package/src/http/HttpServerResponse.ts +49 -23
- package/src/http/HttpStaticServer.ts +29 -19
- package/src/http/HttpTraceContext.ts +1 -1
- 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 +8 -2
- package/src/http/UrlParams.ts +225 -26
- package/src/http/internal/compression.ts +3 -17
- package/src/http/internal/compressionBody.ts +56 -0
- package/src/http/internal/decompression.ts +235 -0
- package/src/http/internal/lazyStream.ts +25 -0
- package/src/http/internal/requestState.ts +33 -0
- package/src/http/internal/tracing.ts +21 -4
- package/src/http/internal/urlParams.ts +5 -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 +160 -31
- 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 +22 -2
- package/src/internal/dateTime.ts +20 -7
- package/src/internal/effect.ts +125 -88
- package/src/internal/graphql.ts +30 -7
- 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/Otlp.ts +18 -0
- package/src/observability/OtlpExporter.ts +19 -15
- package/src/observability/OtlpLogger.ts +31 -2
- package/src/observability/OtlpMetrics.ts +35 -4
- package/src/observability/OtlpResource.ts +16 -6
- package/src/observability/OtlpSerialization.ts +17 -3
- package/src/observability/OtlpTracer.ts +32 -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 +35 -38
- package/src/reactivity/Atom.ts +134 -166
- package/src/reactivity/AtomHttpApi.ts +10 -16
- package/src/reactivity/AtomRegistry.ts +53 -30
- 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 +285 -104
- 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 +275 -36
- package/src/sql/SqlResolver.ts +9 -0
- package/src/sql/Statement.ts +35 -8
- package/src/testing/TestClock.ts +147 -29
- package/src/testing/TestSchema.ts +9 -3
- package/src/workflow/Activity.ts +1 -0
- package/src/workflow/Workflow.ts +31 -5
- package/src/workflow/WorkflowEngine.ts +93 -31
- 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
|
@@ -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"
|
|
@@ -30,6 +31,7 @@ import * as Stream from "../Stream.ts"
|
|
|
30
31
|
import * as Headers from "./Headers.ts"
|
|
31
32
|
import * as HttpBody from "./HttpBody.ts"
|
|
32
33
|
import { hasBody, type HttpMethod } from "./HttpMethod.ts"
|
|
34
|
+
import * as compression from "./internal/compressionBody.ts"
|
|
33
35
|
import * as bodyInternal from "./internal/httpBody.ts"
|
|
34
36
|
import * as Url from "./Url.ts"
|
|
35
37
|
import * as UrlParams from "./UrlParams.ts"
|
|
@@ -104,7 +106,7 @@ const Proto = {
|
|
|
104
106
|
return {
|
|
105
107
|
_id: "HttpClientRequest",
|
|
106
108
|
method: this.method,
|
|
107
|
-
url: this.url,
|
|
109
|
+
url: UrlParams.redactUrl(this.url),
|
|
108
110
|
urlParams: this.urlParams,
|
|
109
111
|
hash: this.hash,
|
|
110
112
|
headers: redact(this.headers),
|
|
@@ -482,7 +484,8 @@ export const removeHeader: {
|
|
|
482
484
|
)
|
|
483
485
|
|
|
484
486
|
/**
|
|
485
|
-
* 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.
|
|
486
489
|
*
|
|
487
490
|
* @stability unstable
|
|
488
491
|
* @category combinators
|
|
@@ -490,7 +493,8 @@ export const removeHeader: {
|
|
|
490
493
|
*/
|
|
491
494
|
export const basicAuth: {
|
|
492
495
|
/**
|
|
493
|
-
* 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.
|
|
494
498
|
*
|
|
495
499
|
* @stability unstable
|
|
496
500
|
* @category combinators
|
|
@@ -498,7 +502,8 @@ export const basicAuth: {
|
|
|
498
502
|
*/
|
|
499
503
|
(username: string | Redacted.Redacted, password: string | Redacted.Redacted): (self: HttpClientRequest) => HttpClientRequest
|
|
500
504
|
/**
|
|
501
|
-
* 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.
|
|
502
507
|
*
|
|
503
508
|
* @stability unstable
|
|
504
509
|
* @category combinators
|
|
@@ -516,7 +521,11 @@ export const basicAuth: {
|
|
|
516
521
|
username: string | Redacted.Redacted,
|
|
517
522
|
password: string | Redacted.Redacted
|
|
518
523
|
): HttpClientRequest =>
|
|
519
|
-
setHeader(
|
|
524
|
+
setHeader(
|
|
525
|
+
self,
|
|
526
|
+
"Authorization",
|
|
527
|
+
`Basic ${Base64.encode(`${stringOrRedacted(username)}:${stringOrRedacted(password)}`)}`
|
|
528
|
+
)
|
|
520
529
|
)
|
|
521
530
|
|
|
522
531
|
/**
|
|
@@ -584,6 +593,136 @@ export const accept: {
|
|
|
584
593
|
*/
|
|
585
594
|
export const acceptJson: (self: HttpClientRequest) => HttpClientRequest = accept("application/json")
|
|
586
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
|
+
|
|
587
726
|
/**
|
|
588
727
|
* Sets the request URL. When given a `URL`, its search parameters and hash are extracted into the request's structured fields.
|
|
589
728
|
*
|
|
@@ -755,6 +894,10 @@ export const updateUrl: {
|
|
|
755
894
|
/**
|
|
756
895
|
* Sets one query parameter, replacing existing values for that parameter name.
|
|
757
896
|
*
|
|
897
|
+
* **Details**
|
|
898
|
+
*
|
|
899
|
+
* A `Redacted` value is sent unwrapped and stays redacted in inspection, errors and spans.
|
|
900
|
+
*
|
|
758
901
|
* @stability unstable
|
|
759
902
|
* @category combinators
|
|
760
903
|
* @since 4.0.0
|
|
@@ -763,20 +906,28 @@ export const setUrlParam: {
|
|
|
763
906
|
/**
|
|
764
907
|
* Sets one query parameter, replacing existing values for that parameter name.
|
|
765
908
|
*
|
|
909
|
+
* **Details**
|
|
910
|
+
*
|
|
911
|
+
* A `Redacted` value is sent unwrapped and stays redacted in inspection, errors and spans.
|
|
912
|
+
*
|
|
766
913
|
* @stability unstable
|
|
767
914
|
* @category combinators
|
|
768
915
|
* @since 4.0.0
|
|
769
916
|
*/
|
|
770
|
-
(key: string, value: string): (self: HttpClientRequest) => HttpClientRequest
|
|
917
|
+
(key: string, value: string | Redacted.Redacted): (self: HttpClientRequest) => HttpClientRequest
|
|
771
918
|
/**
|
|
772
919
|
* Sets one query parameter, replacing existing values for that parameter name.
|
|
773
920
|
*
|
|
921
|
+
* **Details**
|
|
922
|
+
*
|
|
923
|
+
* A `Redacted` value is sent unwrapped and stays redacted in inspection, errors and spans.
|
|
924
|
+
*
|
|
774
925
|
* @stability unstable
|
|
775
926
|
* @category combinators
|
|
776
927
|
* @since 4.0.0
|
|
777
928
|
*/
|
|
778
|
-
(self: HttpClientRequest, key: string, value: string): HttpClientRequest
|
|
779
|
-
} = dual(3, (self: HttpClientRequest, key: string, value: string): HttpClientRequest =>
|
|
929
|
+
(self: HttpClientRequest, key: string, value: string | Redacted.Redacted): HttpClientRequest
|
|
930
|
+
} = dual(3, (self: HttpClientRequest, key: string, value: string | Redacted.Redacted): HttpClientRequest =>
|
|
780
931
|
makeWith(
|
|
781
932
|
self.method,
|
|
782
933
|
self.url,
|
|
@@ -823,6 +974,10 @@ export const setUrlParams: {
|
|
|
823
974
|
/**
|
|
824
975
|
* Appends one query parameter value without removing existing values for the same name.
|
|
825
976
|
*
|
|
977
|
+
* **Details**
|
|
978
|
+
*
|
|
979
|
+
* A `Redacted` value is sent unwrapped and stays redacted in inspection, errors and spans.
|
|
980
|
+
*
|
|
826
981
|
* @stability unstable
|
|
827
982
|
* @category combinators
|
|
828
983
|
* @since 4.0.0
|
|
@@ -831,20 +986,28 @@ export const appendUrlParam: {
|
|
|
831
986
|
/**
|
|
832
987
|
* Appends one query parameter value without removing existing values for the same name.
|
|
833
988
|
*
|
|
989
|
+
* **Details**
|
|
990
|
+
*
|
|
991
|
+
* A `Redacted` value is sent unwrapped and stays redacted in inspection, errors and spans.
|
|
992
|
+
*
|
|
834
993
|
* @stability unstable
|
|
835
994
|
* @category combinators
|
|
836
995
|
* @since 4.0.0
|
|
837
996
|
*/
|
|
838
|
-
(key: string, value: string): (self: HttpClientRequest) => HttpClientRequest
|
|
997
|
+
(key: string, value: string | Redacted.Redacted): (self: HttpClientRequest) => HttpClientRequest
|
|
839
998
|
/**
|
|
840
999
|
* Appends one query parameter value without removing existing values for the same name.
|
|
841
1000
|
*
|
|
1001
|
+
* **Details**
|
|
1002
|
+
*
|
|
1003
|
+
* A `Redacted` value is sent unwrapped and stays redacted in inspection, errors and spans.
|
|
1004
|
+
*
|
|
842
1005
|
* @stability unstable
|
|
843
1006
|
* @category combinators
|
|
844
1007
|
* @since 4.0.0
|
|
845
1008
|
*/
|
|
846
|
-
(self: HttpClientRequest, key: string, value: string): HttpClientRequest
|
|
847
|
-
} = dual(3, (self: HttpClientRequest, key: string, value: string): HttpClientRequest =>
|
|
1009
|
+
(self: HttpClientRequest, key: string, value: string | Redacted.Redacted): HttpClientRequest
|
|
1010
|
+
} = dual(3, (self: HttpClientRequest, key: string, value: string | Redacted.Redacted): HttpClientRequest =>
|
|
848
1011
|
makeWith(
|
|
849
1012
|
self.method,
|
|
850
1013
|
self.url,
|
|
@@ -974,6 +1137,147 @@ export const setBody: {
|
|
|
974
1137
|
)
|
|
975
1138
|
})
|
|
976
1139
|
|
|
1140
|
+
/**
|
|
1141
|
+
* Algorithms supported by Web `CompressionStream` for request body compression.
|
|
1142
|
+
*
|
|
1143
|
+
* @stability unstable
|
|
1144
|
+
* @category models
|
|
1145
|
+
* @since 4.0.0
|
|
1146
|
+
*/
|
|
1147
|
+
export type CompressionAlgorithm = "gzip" | "deflate"
|
|
1148
|
+
|
|
1149
|
+
/**
|
|
1150
|
+
* Options for request body compression.
|
|
1151
|
+
*
|
|
1152
|
+
* @stability unstable
|
|
1153
|
+
* @category options
|
|
1154
|
+
* @since 4.0.0
|
|
1155
|
+
*/
|
|
1156
|
+
export interface CompressionOptions {
|
|
1157
|
+
/**
|
|
1158
|
+
* Minimum known body length in bytes to compress. Defaults to `1024`.
|
|
1159
|
+
* Bodies with unknown length are always compressed.
|
|
1160
|
+
*/
|
|
1161
|
+
readonly minSize?: number | undefined
|
|
1162
|
+
}
|
|
1163
|
+
|
|
1164
|
+
/**
|
|
1165
|
+
* Compresses a request body using Web `CompressionStream` and sets `Content-Encoding`.
|
|
1166
|
+
*
|
|
1167
|
+
* **Details**
|
|
1168
|
+
*
|
|
1169
|
+
* Byte-array bodies (including text, JSON, and URL-encoded bodies) are compressed
|
|
1170
|
+
* into a new `Uint8Array` body, preserving the content type and updating
|
|
1171
|
+
* `Content-Length`. The compressed body does not retain the original lazy text.
|
|
1172
|
+
* Stream bodies are compressed lazily and have their content length removed.
|
|
1173
|
+
* They still require a client runtime that supports streaming request bodies
|
|
1174
|
+
* (Fetch requires `duplex: "half"`, which Safari and Firefox do not support).
|
|
1175
|
+
*
|
|
1176
|
+
* Returns the original request unchanged for empty, FormData, and raw bodies,
|
|
1177
|
+
* bodies with a known length below `options.minSize`, or requests with any
|
|
1178
|
+
* existing `Content-Encoding` header, including `identity`. Unknown-length
|
|
1179
|
+
* streams are always compressed. The default minimum is 1024 bytes because
|
|
1180
|
+
* gzip can make very small bodies larger.
|
|
1181
|
+
*
|
|
1182
|
+
* Requires `CompressionStream` (available in browsers, Node 18+, Bun, and Deno).
|
|
1183
|
+
* There is no typed error channel: byte compression failures are defects;
|
|
1184
|
+
* stream failures surface when the body is sent.
|
|
1185
|
+
*
|
|
1186
|
+
* To compress every request, use
|
|
1187
|
+
* `HttpClient.mapRequestEffect(HttpClientRequest.compressBody("gzip"))`.
|
|
1188
|
+
* `HttpClient.retryTransient` re-runs preprocessing, so this recompresses on
|
|
1189
|
+
* every retry. For large bodies, compress once before calling `client.execute`.
|
|
1190
|
+
*
|
|
1191
|
+
* @stability unstable
|
|
1192
|
+
* @category combinators
|
|
1193
|
+
* @since 4.0.0
|
|
1194
|
+
*/
|
|
1195
|
+
export const compressBody: {
|
|
1196
|
+
/**
|
|
1197
|
+
* Compresses a request body using Web `CompressionStream` and sets `Content-Encoding`.
|
|
1198
|
+
*
|
|
1199
|
+
* **Details**
|
|
1200
|
+
*
|
|
1201
|
+
* Byte-array bodies (including text, JSON, and URL-encoded bodies) are compressed
|
|
1202
|
+
* into a new `Uint8Array` body, preserving the content type and updating
|
|
1203
|
+
* `Content-Length`. The compressed body does not retain the original lazy text.
|
|
1204
|
+
* Stream bodies are compressed lazily and have their content length removed.
|
|
1205
|
+
* They still require a client runtime that supports streaming request bodies
|
|
1206
|
+
* (Fetch requires `duplex: "half"`, which Safari and Firefox do not support).
|
|
1207
|
+
*
|
|
1208
|
+
* Returns the original request unchanged for empty, FormData, and raw bodies,
|
|
1209
|
+
* bodies with a known length below `options.minSize`, or requests with any
|
|
1210
|
+
* existing `Content-Encoding` header, including `identity`. Unknown-length
|
|
1211
|
+
* streams are always compressed. The default minimum is 1024 bytes because
|
|
1212
|
+
* gzip can make very small bodies larger.
|
|
1213
|
+
*
|
|
1214
|
+
* Requires `CompressionStream` (available in browsers, Node 18+, Bun, and Deno).
|
|
1215
|
+
* There is no typed error channel: byte compression failures are defects;
|
|
1216
|
+
* stream failures surface when the body is sent.
|
|
1217
|
+
*
|
|
1218
|
+
* To compress every request, use
|
|
1219
|
+
* `HttpClient.mapRequestEffect(HttpClientRequest.compressBody("gzip"))`.
|
|
1220
|
+
* `HttpClient.retryTransient` re-runs preprocessing, so this recompresses on
|
|
1221
|
+
* every retry. For large bodies, compress once before calling `client.execute`.
|
|
1222
|
+
*
|
|
1223
|
+
* @stability unstable
|
|
1224
|
+
* @category combinators
|
|
1225
|
+
* @since 4.0.0
|
|
1226
|
+
*/
|
|
1227
|
+
(algorithm: CompressionAlgorithm, options?: CompressionOptions | undefined): (self: HttpClientRequest) => Effect.Effect<HttpClientRequest>
|
|
1228
|
+
/**
|
|
1229
|
+
* Compresses a request body using Web `CompressionStream` and sets `Content-Encoding`.
|
|
1230
|
+
*
|
|
1231
|
+
* **Details**
|
|
1232
|
+
*
|
|
1233
|
+
* Byte-array bodies (including text, JSON, and URL-encoded bodies) are compressed
|
|
1234
|
+
* into a new `Uint8Array` body, preserving the content type and updating
|
|
1235
|
+
* `Content-Length`. The compressed body does not retain the original lazy text.
|
|
1236
|
+
* Stream bodies are compressed lazily and have their content length removed.
|
|
1237
|
+
* They still require a client runtime that supports streaming request bodies
|
|
1238
|
+
* (Fetch requires `duplex: "half"`, which Safari and Firefox do not support).
|
|
1239
|
+
*
|
|
1240
|
+
* Returns the original request unchanged for empty, FormData, and raw bodies,
|
|
1241
|
+
* bodies with a known length below `options.minSize`, or requests with any
|
|
1242
|
+
* existing `Content-Encoding` header, including `identity`. Unknown-length
|
|
1243
|
+
* streams are always compressed. The default minimum is 1024 bytes because
|
|
1244
|
+
* gzip can make very small bodies larger.
|
|
1245
|
+
*
|
|
1246
|
+
* Requires `CompressionStream` (available in browsers, Node 18+, Bun, and Deno).
|
|
1247
|
+
* There is no typed error channel: byte compression failures are defects;
|
|
1248
|
+
* stream failures surface when the body is sent.
|
|
1249
|
+
*
|
|
1250
|
+
* To compress every request, use
|
|
1251
|
+
* `HttpClient.mapRequestEffect(HttpClientRequest.compressBody("gzip"))`.
|
|
1252
|
+
* `HttpClient.retryTransient` re-runs preprocessing, so this recompresses on
|
|
1253
|
+
* every retry. For large bodies, compress once before calling `client.execute`.
|
|
1254
|
+
*
|
|
1255
|
+
* @stability unstable
|
|
1256
|
+
* @category combinators
|
|
1257
|
+
* @since 4.0.0
|
|
1258
|
+
*/
|
|
1259
|
+
(
|
|
1260
|
+
self: HttpClientRequest,
|
|
1261
|
+
algorithm: CompressionAlgorithm,
|
|
1262
|
+
options?: CompressionOptions | undefined
|
|
1263
|
+
): Effect.Effect<HttpClientRequest>
|
|
1264
|
+
} = dual(
|
|
1265
|
+
(args) => isHttpClientRequest(args[0]),
|
|
1266
|
+
(
|
|
1267
|
+
self: HttpClientRequest,
|
|
1268
|
+
algorithm: CompressionAlgorithm,
|
|
1269
|
+
options?: CompressionOptions | undefined
|
|
1270
|
+
): Effect.Effect<HttpClientRequest> => {
|
|
1271
|
+
if (self.headers["content-encoding"] !== undefined) {
|
|
1272
|
+
return Effect.succeed(self)
|
|
1273
|
+
}
|
|
1274
|
+
return Effect.map(
|
|
1275
|
+
compression.compressBody(self.body, algorithm, options),
|
|
1276
|
+
(body) => body === self.body ? self : setHeader(setBody(self, body), "content-encoding", algorithm)
|
|
1277
|
+
)
|
|
1278
|
+
}
|
|
1279
|
+
)
|
|
1280
|
+
|
|
977
1281
|
/**
|
|
978
1282
|
* Sets a `Uint8Array` request body with an optional content type.
|
|
979
1283
|
*
|
|
@@ -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
|
}
|
package/src/http/HttpEffect.ts
CHANGED
|
@@ -28,7 +28,7 @@ import { HttpServerRequest } from "./HttpServerRequest.ts"
|
|
|
28
28
|
import * as Request from "./HttpServerRequest.ts"
|
|
29
29
|
import type { HttpServerResponse } from "./HttpServerResponse.ts"
|
|
30
30
|
import * as Response from "./HttpServerResponse.ts"
|
|
31
|
-
import * as
|
|
31
|
+
import * as requestState from "./internal/requestState.ts"
|
|
32
32
|
|
|
33
33
|
/**
|
|
34
34
|
* Runs an HTTP server effect, sends the produced response with the supplied handler, and converts failures into HTTP responses.
|
|
@@ -55,7 +55,7 @@ export const toHandled = <E, R, EH, RH>(
|
|
|
55
55
|
return Effect.flatMapEager(causeResponse(cause), ([response, cause]) => {
|
|
56
56
|
const fiber = Fiber.getCurrent()!
|
|
57
57
|
reportCauseUnsafe(fiber, cause)
|
|
58
|
-
const handler = preResponseHandler
|
|
58
|
+
const handler = frame.preResponseHandler
|
|
59
59
|
const cont = cause.reasons.length === 0 ? Effect.succeed(response) : Effect.failCause(cause)
|
|
60
60
|
if (handler === undefined) {
|
|
61
61
|
;(request as any)[handledSymbol] = true
|
|
@@ -78,10 +78,11 @@ export const toHandled = <E, R, EH, RH>(
|
|
|
78
78
|
// Writes the response, applying any registered pre-response handler first.
|
|
79
79
|
// Returns an `Exit` when the write completes synchronously.
|
|
80
80
|
const sendResponse = (
|
|
81
|
-
|
|
81
|
+
frame: RequestFrame,
|
|
82
82
|
response: HttpServerResponse
|
|
83
83
|
): Effect.Effect<HttpServerResponse, EH | HttpServerError, RH> => {
|
|
84
|
-
const
|
|
84
|
+
const request = frame.request
|
|
85
|
+
const handler = frame.preResponseHandler
|
|
85
86
|
if (handler === undefined) {
|
|
86
87
|
;(request as any)[handledSymbol] = true
|
|
87
88
|
return Effect.mapEager(
|
|
@@ -105,7 +106,7 @@ export const toHandled = <E, R, EH, RH>(
|
|
|
105
106
|
> => {
|
|
106
107
|
const request = frame.request
|
|
107
108
|
const responded = Effect.matchCauseEffect(self, {
|
|
108
|
-
onSuccess: (response) => sendResponse(
|
|
109
|
+
onSuccess: (response) => sendResponse(frame, response),
|
|
109
110
|
onFailure: (cause) => handleCause(frame, cause)
|
|
110
111
|
})
|
|
111
112
|
return middleware === undefined ?
|
|
@@ -152,18 +153,19 @@ export const toHandled = <E, R, EH, RH>(
|
|
|
152
153
|
return Scope.closeUnsafe(frame.scope, frame.cause === undefined ? exit : Exit.failCause(frame.cause))
|
|
153
154
|
}, true)
|
|
154
155
|
|
|
155
|
-
class RequestFrame {
|
|
156
|
+
class RequestFrame extends requestState.RequestState {
|
|
156
157
|
readonly scope: Scope.Closeable
|
|
157
158
|
readonly prev: Context.Context<never>
|
|
158
159
|
readonly request: HttpServerRequest
|
|
159
160
|
cause: Cause.Cause<E | EH | HttpServerError> | undefined
|
|
160
161
|
constructor(scope: Scope.Closeable, prev: Context.Context<never>, request: HttpServerRequest) {
|
|
162
|
+
super()
|
|
161
163
|
this.scope = scope
|
|
162
164
|
this.prev = prev
|
|
163
165
|
this.request = request
|
|
164
166
|
}
|
|
165
167
|
[contA](response: HttpServerResponse, fiber: Fiber.Fiber<unknown, unknown>) {
|
|
166
|
-
const sent = sendResponse(this
|
|
168
|
+
const sent = sendResponse(this, response)
|
|
167
169
|
// Most response writes complete synchronously.
|
|
168
170
|
if (effectIsExit(sent) && sent._tag === "Success") {
|
|
169
171
|
fiber.setContext(this.prev)
|
|
@@ -182,7 +184,7 @@ export const toHandled = <E, R, EH, RH>(
|
|
|
182
184
|
fiberEnterUninterruptibleUnsafe(fiber)
|
|
183
185
|
const scope = Scope.makeUnsafe()
|
|
184
186
|
const frame = new RequestFrame(scope, fiber.context, Context.getUnsafe(fiber.context, HttpServerRequest))
|
|
185
|
-
fiber.setContext(Context.add(frame.prev, Scope.Scope, scope))
|
|
187
|
+
fiber.setContext(Context.add(Context.add(frame.prev, Scope.Scope, scope), requestState.CurrentRequestState, frame))
|
|
186
188
|
// The native tracer has no backend, so its spans are unobservable.
|
|
187
189
|
const currentTracer = fiber.cache.tracer
|
|
188
190
|
if (
|
|
@@ -262,22 +264,20 @@ export type PreResponseHandler = (
|
|
|
262
264
|
* @since 4.0.0
|
|
263
265
|
*/
|
|
264
266
|
export const appendPreResponseHandler = (handler: PreResponseHandler): Effect.Effect<void, never, HttpServerRequest> =>
|
|
265
|
-
|
|
266
|
-
appendPreResponseHandlerUnsafe(request, handler)
|
|
267
|
-
return Effect.void
|
|
268
|
-
})
|
|
267
|
+
withPreResponseHandler(Effect.void, handler)
|
|
269
268
|
|
|
270
269
|
/**
|
|
271
|
-
* Registers a pre-response handler for the
|
|
270
|
+
* Registers a pre-response handler for the HTTP server request that owns the
|
|
271
|
+
* supplied fiber context. Does nothing outside a server request.
|
|
272
272
|
*
|
|
273
273
|
* @stability unstable
|
|
274
274
|
* @category unsafe
|
|
275
275
|
* @since 4.0.0
|
|
276
276
|
*/
|
|
277
277
|
export const appendPreResponseHandlerUnsafe: (
|
|
278
|
-
|
|
278
|
+
context: Context.Context<never>,
|
|
279
279
|
handler: PreResponseHandler
|
|
280
|
-
) => void =
|
|
280
|
+
) => void = requestState.appendPreResponseHandlerUnsafe
|
|
281
281
|
|
|
282
282
|
/**
|
|
283
283
|
* Runs an effect after registering a pre-response handler for the current HTTP server request.
|
|
@@ -304,25 +304,13 @@ export const withPreResponseHandler: {
|
|
|
304
304
|
*/
|
|
305
305
|
<A, E, R>(self: Effect.Effect<A, E, R>, handler: PreResponseHandler): Effect.Effect<A, E, R | HttpServerRequest>
|
|
306
306
|
} = dual<
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
* @stability unstable
|
|
311
|
-
* @category handlers
|
|
312
|
-
* @since 4.0.0
|
|
313
|
-
*/
|
|
314
|
-
(handler: PreResponseHandler) => <A, E, R>(self: Effect.Effect<A, E, R>) => Effect.Effect<A, E, R | HttpServerRequest>,
|
|
315
|
-
/**
|
|
316
|
-
* Runs an effect after registering a pre-response handler for the current HTTP server request.
|
|
317
|
-
*
|
|
318
|
-
* @stability unstable
|
|
319
|
-
* @category handlers
|
|
320
|
-
* @since 4.0.0
|
|
321
|
-
*/
|
|
307
|
+
(
|
|
308
|
+
handler: PreResponseHandler
|
|
309
|
+
) => <A, E, R>(self: Effect.Effect<A, E, R>) => Effect.Effect<A, E, R | HttpServerRequest>,
|
|
322
310
|
<A, E, R>(self: Effect.Effect<A, E, R>, handler: PreResponseHandler) => Effect.Effect<A, E, R | HttpServerRequest>
|
|
323
311
|
>(2, (self, handler) =>
|
|
324
|
-
|
|
325
|
-
appendPreResponseHandlerUnsafe(
|
|
312
|
+
Effect.withFiber((fiber) => {
|
|
313
|
+
appendPreResponseHandlerUnsafe(fiber.context, handler)
|
|
326
314
|
return self
|
|
327
315
|
}))
|
|
328
316
|
|
|
@@ -398,6 +386,9 @@ export const toWebHandler: <E>(
|
|
|
398
386
|
*
|
|
399
387
|
* **Details**
|
|
400
388
|
*
|
|
389
|
+
* Every call to `dispose` returns the same promise, which resolves once the
|
|
390
|
+
* layer resources have been released.
|
|
391
|
+
*
|
|
401
392
|
* The layer is built immediately, so the cost is paid when the handler is
|
|
402
393
|
* created rather than on the first request. A layer that performs asynchronous
|
|
403
394
|
* work while building may still be in progress when the first request arrives,
|
|
@@ -435,7 +426,8 @@ export const toWebHandlerLayerWith = <
|
|
|
435
426
|
) => Promise<globalThis.Response>
|
|
436
427
|
} => {
|
|
437
428
|
const scope = Scope.makeUnsafe()
|
|
438
|
-
|
|
429
|
+
let disposing: Promise<void> | undefined
|
|
430
|
+
const dispose = () => disposing ??= Effect.runPromise(Scope.close(scope, Exit.void))
|
|
439
431
|
|
|
440
432
|
let handlerCache:
|
|
441
433
|
| ((request: Request, context?: Context.Context<ReqR> | undefined) => Promise<globalThis.Response>)
|