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
|
@@ -1,13 +1,7 @@
|
|
|
1
|
-
|
|
2
|
-
* Serializable GraphQL client errors with an operation name and a
|
|
3
|
-
* `Schema.TaggedError` reason.
|
|
4
|
-
*
|
|
5
|
-
* @stability experimental
|
|
6
|
-
* @since 4.0.0
|
|
7
|
-
*/
|
|
8
|
-
import * as Duration from "../Duration.js";
|
|
1
|
+
import * as Headers from "../http/Headers.js";
|
|
9
2
|
import { HeadersSchema } from "../internal/graphqlHeaders.js";
|
|
10
3
|
import { hasProperty } from "../Predicate.js";
|
|
4
|
+
import * as Result from "../Result.js";
|
|
11
5
|
import * as Schema from "../Schema.js";
|
|
12
6
|
const TypeId = "~effect/graphql/GraphQLClientError";
|
|
13
7
|
/**
|
|
@@ -201,16 +195,8 @@ const isRetryableStatus = status => status === 429 || status >= 500 && status <
|
|
|
201
195
|
*/
|
|
202
196
|
const parseRetryAfter = (value, now) => {
|
|
203
197
|
if (value === undefined) return undefined;
|
|
204
|
-
const
|
|
205
|
-
|
|
206
|
-
return Duration.seconds(Number(trimmed));
|
|
207
|
-
}
|
|
208
|
-
// Every HTTP date names a day or month; `Date.parse` alone also accepts
|
|
209
|
-
// bare numbers such as `1.5` or `-1`.
|
|
210
|
-
if (!/[a-z]/i.test(trimmed)) return undefined;
|
|
211
|
-
const date = Date.parse(trimmed);
|
|
212
|
-
if (Number.isNaN(date)) return undefined;
|
|
213
|
-
return Duration.millis(Math.max(0, date - now));
|
|
198
|
+
const retryAfter = Headers.parseRetryAfter(value);
|
|
199
|
+
return Result.isSuccess(retryAfter) ? Headers.retryAfterDelay(retryAfter.success, now) : undefined;
|
|
214
200
|
};
|
|
215
201
|
/**
|
|
216
202
|
* The client could not get a GraphQL response from the server: a network
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GraphQLClientError.js","names":[],"sources":["../../src/graphql/GraphQLClientError.ts"],"sourcesContent":[null],"mappings":"
|
|
1
|
+
{"version":3,"file":"GraphQLClientError.js","names":[],"sources":["../../src/graphql/GraphQLClientError.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -89,6 +89,14 @@ declare const GraphQLProtocol_base: Context.ServiceClass<GraphQLProtocol, "effec
|
|
|
89
89
|
readonly status?: number | undefined;
|
|
90
90
|
readonly headers?: Headers.Headers | undefined;
|
|
91
91
|
}, TransportError>;
|
|
92
|
+
/**
|
|
93
|
+
* Resolves the transport URL for resolver batching. Set by `layerHttp`;
|
|
94
|
+
* optional for custom transports.
|
|
95
|
+
*/
|
|
96
|
+
readonly url?: ((options: {
|
|
97
|
+
readonly kind: Kind;
|
|
98
|
+
readonly operationName: string;
|
|
99
|
+
}) => Effect.Effect<string>) | undefined;
|
|
92
100
|
}>;
|
|
93
101
|
/**
|
|
94
102
|
* The transport service. `execute` answers a query or mutation with the raw
|
|
@@ -133,6 +141,20 @@ declare const GraphQLProtocol_base: Context.ServiceClass<GraphQLProtocol, "effec
|
|
|
133
141
|
*/
|
|
134
142
|
export declare class GraphQLProtocol extends GraphQLProtocol_base {
|
|
135
143
|
}
|
|
144
|
+
/**
|
|
145
|
+
* The URL of an HTTP transport: fixed, resolved for each operation from the
|
|
146
|
+
* calling context, `kind` and `operationName`, or an `Effect` with no errors
|
|
147
|
+
* or requirements. See {@link layerHttp}.
|
|
148
|
+
*
|
|
149
|
+
* @stability experimental
|
|
150
|
+
* @category models
|
|
151
|
+
* @since 4.0.0
|
|
152
|
+
*/
|
|
153
|
+
export type Url = string | Effect.Effect<string> | ((options: {
|
|
154
|
+
readonly context: Context.Context<never>;
|
|
155
|
+
readonly kind: Kind;
|
|
156
|
+
readonly operationName: string;
|
|
157
|
+
}) => string);
|
|
136
158
|
/**
|
|
137
159
|
* Builds the HTTP transport as an effect, for composing transports by hand.
|
|
138
160
|
* Most code uses {@link layerHttp}.
|
|
@@ -141,9 +163,9 @@ export declare class GraphQLProtocol extends GraphQLProtocol_base {
|
|
|
141
163
|
*
|
|
142
164
|
* Takes the same options as {@link layerHttp}, including `queryMethod`.
|
|
143
165
|
* Without `subscriptions`, subscriptions use graphql-sse distinct mode on
|
|
144
|
-
* `url`. With `subscriptions.webSocket`,
|
|
145
|
-
* the effect also builds the graphql-ws
|
|
146
|
-
* `Socket.WebSocketConstructor` and a `Scope`.
|
|
166
|
+
* `url`. With `subscriptions.webSocket`, `url` must be a string, subscriptions
|
|
167
|
+
* go over graphql-ws instead, and the effect also builds the graphql-ws
|
|
168
|
+
* transport, so it needs a `Socket.WebSocketConstructor` and a `Scope`.
|
|
147
169
|
*
|
|
148
170
|
* @stability experimental
|
|
149
171
|
* @category constructors
|
|
@@ -158,9 +180,9 @@ export declare const makeHttp: {
|
|
|
158
180
|
*
|
|
159
181
|
* Takes the same options as {@link layerHttp}, including `queryMethod`.
|
|
160
182
|
* Without `subscriptions`, subscriptions use graphql-sse distinct mode on
|
|
161
|
-
* `url`. With `subscriptions.webSocket`,
|
|
162
|
-
* the effect also builds the graphql-ws
|
|
163
|
-
* `Socket.WebSocketConstructor` and a `Scope`.
|
|
183
|
+
* `url`. With `subscriptions.webSocket`, `url` must be a string, subscriptions
|
|
184
|
+
* go over graphql-ws instead, and the effect also builds the graphql-ws
|
|
185
|
+
* transport, so it needs a `Socket.WebSocketConstructor` and a `Scope`.
|
|
164
186
|
*
|
|
165
187
|
* @stability experimental
|
|
166
188
|
* @category constructors
|
|
@@ -188,16 +210,16 @@ export declare const makeHttp: {
|
|
|
188
210
|
*
|
|
189
211
|
* Takes the same options as {@link layerHttp}, including `queryMethod`.
|
|
190
212
|
* Without `subscriptions`, subscriptions use graphql-sse distinct mode on
|
|
191
|
-
* `url`. With `subscriptions.webSocket`,
|
|
192
|
-
* the effect also builds the graphql-ws
|
|
193
|
-
* `Socket.WebSocketConstructor` and a `Scope`.
|
|
213
|
+
* `url`. With `subscriptions.webSocket`, `url` must be a string, subscriptions
|
|
214
|
+
* go over graphql-ws instead, and the effect also builds the graphql-ws
|
|
215
|
+
* transport, so it needs a `Socket.WebSocketConstructor` and a `Scope`.
|
|
194
216
|
*
|
|
195
217
|
* @stability experimental
|
|
196
218
|
* @category constructors
|
|
197
219
|
* @since 4.0.0
|
|
198
220
|
*/
|
|
199
221
|
(options: {
|
|
200
|
-
readonly url:
|
|
222
|
+
readonly url: Url;
|
|
201
223
|
readonly queryMethod?: "GET" | "POST" | undefined;
|
|
202
224
|
readonly subscriptions?: undefined;
|
|
203
225
|
}): Effect.Effect<GraphQLProtocol["Service"], never, HttpClient.HttpClient>;
|
|
@@ -246,6 +268,29 @@ export declare const makeHttp: {
|
|
|
246
268
|
* With `subscriptions: { webSocket }`, subscriptions go over graphql-ws as in
|
|
247
269
|
* {@link layerWebSocket}, and the layer needs a `Socket.WebSocketConstructor`.
|
|
248
270
|
*
|
|
271
|
+
* To route each query, mutation and graphql-sse subscription, `url` can be a
|
|
272
|
+
* function of the calling fiber's context (including the call's `context`
|
|
273
|
+
* option), `kind` and `operationName`, or an `Effect<string>` with no errors
|
|
274
|
+
* or requirements that runs in that context. Use a defaulted
|
|
275
|
+
* `Context.Reference` to select the server. Reading a missing service with
|
|
276
|
+
* `Context.get` is a defect, not a `TransportError`. Neither form can be
|
|
277
|
+
* combined with `subscriptions.webSocket`: the socket URL is fixed at
|
|
278
|
+
* connection time.
|
|
279
|
+
*
|
|
280
|
+
* **Gotchas**
|
|
281
|
+
*
|
|
282
|
+
* `GraphQLResolver` resolves each lookup's URL once, in the calling fiber,
|
|
283
|
+
* before middleware run and before the batched request exists, then sends
|
|
284
|
+
* each batch to the URL it was grouped by. A single call resolves it in the
|
|
285
|
+
* transport, after middleware.
|
|
286
|
+
* So the URL must depend only on the context and the operation, and
|
|
287
|
+
* middleware must not change `kind` or `operationName` or provide services
|
|
288
|
+
* the URL reads.
|
|
289
|
+
*
|
|
290
|
+
* `RequestResolver.withCache` and `RequestResolver.persisted` key on the lookup,
|
|
291
|
+
* not the URL, so results can leak across servers. For caching, use a separate
|
|
292
|
+
* client and resolver per server, for example with `LayerMap`.
|
|
293
|
+
*
|
|
249
294
|
* **Example** (Building a client over HTTP)
|
|
250
295
|
*
|
|
251
296
|
* ```ts import.meta.vitest
|
|
@@ -319,6 +364,56 @@ export declare const makeHttp: {
|
|
|
319
364
|
* await Effect.runPromise(program) // => { viewer: { login: "GET draft-token" } }
|
|
320
365
|
* ```
|
|
321
366
|
*
|
|
367
|
+
* **Example** (One client for github.com, GHE.com and GitHub Enterprise Server)
|
|
368
|
+
*
|
|
369
|
+
* ```ts import.meta.vitest
|
|
370
|
+
* import { Context, Effect, Layer, Schema } from "effect"
|
|
371
|
+
* import { GraphQL, GraphQLClient, GraphQLGroup, GraphQLProtocol } from "effect/graphql"
|
|
372
|
+
* import { HttpClient, HttpClientResponse } from "effect/http"
|
|
373
|
+
*
|
|
374
|
+
* const Viewer = GraphQL.query("Viewer", {
|
|
375
|
+
* document: "query Viewer{viewer{login}}",
|
|
376
|
+
* result: Schema.Struct({ viewer: Schema.Struct({ login: Schema.String }) })
|
|
377
|
+
* })
|
|
378
|
+
*
|
|
379
|
+
* const GitHubHost = Context.Reference<string>("GitHubHost", { defaultValue: () => "github.com" })
|
|
380
|
+
*
|
|
381
|
+
* const Protocol = GraphQLProtocol.layerHttp({
|
|
382
|
+
* url: ({ context }) => {
|
|
383
|
+
* const host = Context.get(context, GitHubHost)
|
|
384
|
+
* if (host === "github.com") return "https://api.github.com/graphql"
|
|
385
|
+
* if (host.endsWith(".ghe.com")) return `https://api.${host}/graphql`
|
|
386
|
+
* return `https://${host}/api/graphql`
|
|
387
|
+
* }
|
|
388
|
+
* })
|
|
389
|
+
*
|
|
390
|
+
* // Echo the request URL instead of calling GitHub.
|
|
391
|
+
* const FakeServer = Layer.succeed(
|
|
392
|
+
* HttpClient.HttpClient,
|
|
393
|
+
* HttpClient.make((request, url) =>
|
|
394
|
+
* Effect.succeed(HttpClientResponse.fromWeb(
|
|
395
|
+
* request,
|
|
396
|
+
* new Response(JSON.stringify({ data: { viewer: { login: url.href } } }), {
|
|
397
|
+
* headers: { "content-type": "application/graphql-response+json" }
|
|
398
|
+
* })
|
|
399
|
+
* ))
|
|
400
|
+
* )
|
|
401
|
+
* )
|
|
402
|
+
*
|
|
403
|
+
* const program = Effect.gen(function*() {
|
|
404
|
+
* const client = yield* GraphQLClient.make(GraphQLGroup.make(Viewer))
|
|
405
|
+
* const dotcom = yield* client.Viewer()
|
|
406
|
+
* const cloud = yield* client.Viewer().pipe(Effect.provideService(GitHubHost, "acme.ghe.com"))
|
|
407
|
+
* const server = yield* client.Viewer(undefined, { context: Context.make(GitHubHost, "github.example.com") })
|
|
408
|
+
* return [dotcom, cloud, server].map((result) => result.viewer.login)
|
|
409
|
+
* }).pipe(
|
|
410
|
+
* Effect.provide(Protocol),
|
|
411
|
+
* Effect.provide(FakeServer)
|
|
412
|
+
* )
|
|
413
|
+
*
|
|
414
|
+
* await Effect.runPromise(program) // => ["https://api.github.com/graphql", "https://api.acme.ghe.com/graphql", "https://github.example.com/api/graphql"]
|
|
415
|
+
* ```
|
|
416
|
+
*
|
|
322
417
|
* **Example** (Subscriptions over graphql-ws, everything else over POST)
|
|
323
418
|
*
|
|
324
419
|
* ```ts import.meta.vitest
|
|
@@ -389,6 +484,29 @@ export declare const layerHttp: {
|
|
|
389
484
|
* With `subscriptions: { webSocket }`, subscriptions go over graphql-ws as in
|
|
390
485
|
* {@link layerWebSocket}, and the layer needs a `Socket.WebSocketConstructor`.
|
|
391
486
|
*
|
|
487
|
+
* To route each query, mutation and graphql-sse subscription, `url` can be a
|
|
488
|
+
* function of the calling fiber's context (including the call's `context`
|
|
489
|
+
* option), `kind` and `operationName`, or an `Effect<string>` with no errors
|
|
490
|
+
* or requirements that runs in that context. Use a defaulted
|
|
491
|
+
* `Context.Reference` to select the server. Reading a missing service with
|
|
492
|
+
* `Context.get` is a defect, not a `TransportError`. Neither form can be
|
|
493
|
+
* combined with `subscriptions.webSocket`: the socket URL is fixed at
|
|
494
|
+
* connection time.
|
|
495
|
+
*
|
|
496
|
+
* **Gotchas**
|
|
497
|
+
*
|
|
498
|
+
* `GraphQLResolver` resolves each lookup's URL once, in the calling fiber,
|
|
499
|
+
* before middleware run and before the batched request exists, then sends
|
|
500
|
+
* each batch to the URL it was grouped by. A single call resolves it in the
|
|
501
|
+
* transport, after middleware.
|
|
502
|
+
* So the URL must depend only on the context and the operation, and
|
|
503
|
+
* middleware must not change `kind` or `operationName` or provide services
|
|
504
|
+
* the URL reads.
|
|
505
|
+
*
|
|
506
|
+
* `RequestResolver.withCache` and `RequestResolver.persisted` key on the lookup,
|
|
507
|
+
* not the URL, so results can leak across servers. For caching, use a separate
|
|
508
|
+
* client and resolver per server, for example with `LayerMap`.
|
|
509
|
+
*
|
|
392
510
|
* **Example** (Building a client over HTTP)
|
|
393
511
|
*
|
|
394
512
|
* ```ts import.meta.vitest
|
|
@@ -462,6 +580,56 @@ export declare const layerHttp: {
|
|
|
462
580
|
* await Effect.runPromise(program) // => { viewer: { login: "GET draft-token" } }
|
|
463
581
|
* ```
|
|
464
582
|
*
|
|
583
|
+
* **Example** (One client for github.com, GHE.com and GitHub Enterprise Server)
|
|
584
|
+
*
|
|
585
|
+
* ```ts import.meta.vitest
|
|
586
|
+
* import { Context, Effect, Layer, Schema } from "effect"
|
|
587
|
+
* import { GraphQL, GraphQLClient, GraphQLGroup, GraphQLProtocol } from "effect/graphql"
|
|
588
|
+
* import { HttpClient, HttpClientResponse } from "effect/http"
|
|
589
|
+
*
|
|
590
|
+
* const Viewer = GraphQL.query("Viewer", {
|
|
591
|
+
* document: "query Viewer{viewer{login}}",
|
|
592
|
+
* result: Schema.Struct({ viewer: Schema.Struct({ login: Schema.String }) })
|
|
593
|
+
* })
|
|
594
|
+
*
|
|
595
|
+
* const GitHubHost = Context.Reference<string>("GitHubHost", { defaultValue: () => "github.com" })
|
|
596
|
+
*
|
|
597
|
+
* const Protocol = GraphQLProtocol.layerHttp({
|
|
598
|
+
* url: ({ context }) => {
|
|
599
|
+
* const host = Context.get(context, GitHubHost)
|
|
600
|
+
* if (host === "github.com") return "https://api.github.com/graphql"
|
|
601
|
+
* if (host.endsWith(".ghe.com")) return `https://api.${host}/graphql`
|
|
602
|
+
* return `https://${host}/api/graphql`
|
|
603
|
+
* }
|
|
604
|
+
* })
|
|
605
|
+
*
|
|
606
|
+
* // Echo the request URL instead of calling GitHub.
|
|
607
|
+
* const FakeServer = Layer.succeed(
|
|
608
|
+
* HttpClient.HttpClient,
|
|
609
|
+
* HttpClient.make((request, url) =>
|
|
610
|
+
* Effect.succeed(HttpClientResponse.fromWeb(
|
|
611
|
+
* request,
|
|
612
|
+
* new Response(JSON.stringify({ data: { viewer: { login: url.href } } }), {
|
|
613
|
+
* headers: { "content-type": "application/graphql-response+json" }
|
|
614
|
+
* })
|
|
615
|
+
* ))
|
|
616
|
+
* )
|
|
617
|
+
* )
|
|
618
|
+
*
|
|
619
|
+
* const program = Effect.gen(function*() {
|
|
620
|
+
* const client = yield* GraphQLClient.make(GraphQLGroup.make(Viewer))
|
|
621
|
+
* const dotcom = yield* client.Viewer()
|
|
622
|
+
* const cloud = yield* client.Viewer().pipe(Effect.provideService(GitHubHost, "acme.ghe.com"))
|
|
623
|
+
* const server = yield* client.Viewer(undefined, { context: Context.make(GitHubHost, "github.example.com") })
|
|
624
|
+
* return [dotcom, cloud, server].map((result) => result.viewer.login)
|
|
625
|
+
* }).pipe(
|
|
626
|
+
* Effect.provide(Protocol),
|
|
627
|
+
* Effect.provide(FakeServer)
|
|
628
|
+
* )
|
|
629
|
+
*
|
|
630
|
+
* await Effect.runPromise(program) // => ["https://api.github.com/graphql", "https://api.acme.ghe.com/graphql", "https://github.example.com/api/graphql"]
|
|
631
|
+
* ```
|
|
632
|
+
*
|
|
465
633
|
* **Example** (Subscriptions over graphql-ws, everything else over POST)
|
|
466
634
|
*
|
|
467
635
|
* ```ts import.meta.vitest
|
|
@@ -545,6 +713,29 @@ export declare const layerHttp: {
|
|
|
545
713
|
* With `subscriptions: { webSocket }`, subscriptions go over graphql-ws as in
|
|
546
714
|
* {@link layerWebSocket}, and the layer needs a `Socket.WebSocketConstructor`.
|
|
547
715
|
*
|
|
716
|
+
* To route each query, mutation and graphql-sse subscription, `url` can be a
|
|
717
|
+
* function of the calling fiber's context (including the call's `context`
|
|
718
|
+
* option), `kind` and `operationName`, or an `Effect<string>` with no errors
|
|
719
|
+
* or requirements that runs in that context. Use a defaulted
|
|
720
|
+
* `Context.Reference` to select the server. Reading a missing service with
|
|
721
|
+
* `Context.get` is a defect, not a `TransportError`. Neither form can be
|
|
722
|
+
* combined with `subscriptions.webSocket`: the socket URL is fixed at
|
|
723
|
+
* connection time.
|
|
724
|
+
*
|
|
725
|
+
* **Gotchas**
|
|
726
|
+
*
|
|
727
|
+
* `GraphQLResolver` resolves each lookup's URL once, in the calling fiber,
|
|
728
|
+
* before middleware run and before the batched request exists, then sends
|
|
729
|
+
* each batch to the URL it was grouped by. A single call resolves it in the
|
|
730
|
+
* transport, after middleware.
|
|
731
|
+
* So the URL must depend only on the context and the operation, and
|
|
732
|
+
* middleware must not change `kind` or `operationName` or provide services
|
|
733
|
+
* the URL reads.
|
|
734
|
+
*
|
|
735
|
+
* `RequestResolver.withCache` and `RequestResolver.persisted` key on the lookup,
|
|
736
|
+
* not the URL, so results can leak across servers. For caching, use a separate
|
|
737
|
+
* client and resolver per server, for example with `LayerMap`.
|
|
738
|
+
*
|
|
548
739
|
* **Example** (Building a client over HTTP)
|
|
549
740
|
*
|
|
550
741
|
* ```ts import.meta.vitest
|
|
@@ -618,6 +809,56 @@ export declare const layerHttp: {
|
|
|
618
809
|
* await Effect.runPromise(program) // => { viewer: { login: "GET draft-token" } }
|
|
619
810
|
* ```
|
|
620
811
|
*
|
|
812
|
+
* **Example** (One client for github.com, GHE.com and GitHub Enterprise Server)
|
|
813
|
+
*
|
|
814
|
+
* ```ts import.meta.vitest
|
|
815
|
+
* import { Context, Effect, Layer, Schema } from "effect"
|
|
816
|
+
* import { GraphQL, GraphQLClient, GraphQLGroup, GraphQLProtocol } from "effect/graphql"
|
|
817
|
+
* import { HttpClient, HttpClientResponse } from "effect/http"
|
|
818
|
+
*
|
|
819
|
+
* const Viewer = GraphQL.query("Viewer", {
|
|
820
|
+
* document: "query Viewer{viewer{login}}",
|
|
821
|
+
* result: Schema.Struct({ viewer: Schema.Struct({ login: Schema.String }) })
|
|
822
|
+
* })
|
|
823
|
+
*
|
|
824
|
+
* const GitHubHost = Context.Reference<string>("GitHubHost", { defaultValue: () => "github.com" })
|
|
825
|
+
*
|
|
826
|
+
* const Protocol = GraphQLProtocol.layerHttp({
|
|
827
|
+
* url: ({ context }) => {
|
|
828
|
+
* const host = Context.get(context, GitHubHost)
|
|
829
|
+
* if (host === "github.com") return "https://api.github.com/graphql"
|
|
830
|
+
* if (host.endsWith(".ghe.com")) return `https://api.${host}/graphql`
|
|
831
|
+
* return `https://${host}/api/graphql`
|
|
832
|
+
* }
|
|
833
|
+
* })
|
|
834
|
+
*
|
|
835
|
+
* // Echo the request URL instead of calling GitHub.
|
|
836
|
+
* const FakeServer = Layer.succeed(
|
|
837
|
+
* HttpClient.HttpClient,
|
|
838
|
+
* HttpClient.make((request, url) =>
|
|
839
|
+
* Effect.succeed(HttpClientResponse.fromWeb(
|
|
840
|
+
* request,
|
|
841
|
+
* new Response(JSON.stringify({ data: { viewer: { login: url.href } } }), {
|
|
842
|
+
* headers: { "content-type": "application/graphql-response+json" }
|
|
843
|
+
* })
|
|
844
|
+
* ))
|
|
845
|
+
* )
|
|
846
|
+
* )
|
|
847
|
+
*
|
|
848
|
+
* const program = Effect.gen(function*() {
|
|
849
|
+
* const client = yield* GraphQLClient.make(GraphQLGroup.make(Viewer))
|
|
850
|
+
* const dotcom = yield* client.Viewer()
|
|
851
|
+
* const cloud = yield* client.Viewer().pipe(Effect.provideService(GitHubHost, "acme.ghe.com"))
|
|
852
|
+
* const server = yield* client.Viewer(undefined, { context: Context.make(GitHubHost, "github.example.com") })
|
|
853
|
+
* return [dotcom, cloud, server].map((result) => result.viewer.login)
|
|
854
|
+
* }).pipe(
|
|
855
|
+
* Effect.provide(Protocol),
|
|
856
|
+
* Effect.provide(FakeServer)
|
|
857
|
+
* )
|
|
858
|
+
*
|
|
859
|
+
* await Effect.runPromise(program) // => ["https://api.github.com/graphql", "https://api.acme.ghe.com/graphql", "https://github.example.com/api/graphql"]
|
|
860
|
+
* ```
|
|
861
|
+
*
|
|
621
862
|
* **Example** (Subscriptions over graphql-ws, everything else over POST)
|
|
622
863
|
*
|
|
623
864
|
* ```ts import.meta.vitest
|
|
@@ -644,7 +885,7 @@ export declare const layerHttp: {
|
|
|
644
885
|
* @since 4.0.0
|
|
645
886
|
*/
|
|
646
887
|
(options: {
|
|
647
|
-
readonly url:
|
|
888
|
+
readonly url: Url;
|
|
648
889
|
readonly queryMethod?: "GET" | "POST" | undefined;
|
|
649
890
|
readonly subscriptions?: undefined;
|
|
650
891
|
}): Layer.Layer<GraphQLProtocol, never, HttpClient.HttpClient>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GraphQLProtocol.d.ts","sourceRoot":"","sources":["../../src/graphql/GraphQLProtocol.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,OAAO,MAAM,eAAe,CAAA;AAExC,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAA;AAC1C,OAAO,KAAK,MAAM,MAAM,cAAc,CAAA;
|
|
1
|
+
{"version":3,"file":"GraphQLProtocol.d.ts","sourceRoot":"","sources":["../../src/graphql/GraphQLProtocol.ts"],"names":[],"mappings":"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"}
|
|
@@ -20,6 +20,7 @@ import * as Duration from "../Duration.js";
|
|
|
20
20
|
import * as Effect from "../Effect.js";
|
|
21
21
|
import * as Sse from "../encoding/Sse.js";
|
|
22
22
|
import * as Fiber from "../Fiber.js";
|
|
23
|
+
import { constant } from "../Function.js";
|
|
23
24
|
import * as Headers from "../http/Headers.js";
|
|
24
25
|
import * as HttpClient from "../http/HttpClient.js";
|
|
25
26
|
import * as HttpClientError from "../http/HttpClientError.js";
|
|
@@ -217,12 +218,15 @@ const sseEvents = response => Stream.suspend(() => {
|
|
|
217
218
|
})))));
|
|
218
219
|
});
|
|
219
220
|
const makeHttpWith = options => {
|
|
221
|
+
const resolve = urlResolver(options.url);
|
|
222
|
+
// A resolver batch carries the URL it was grouped by.
|
|
223
|
+
const urlOf = request => internalGraphQL.ResolvedUrl.use(resolved => resolved?.resolve === resolve ? Effect.succeed(resolved.url) : resolve(request));
|
|
220
224
|
const http = Clock.clockWith(clock => HttpClient.HttpClient.useSync(client => {
|
|
221
|
-
const execute = request => Effect.flatMap(Effect.service(internalGraphQL.ForcePost), forcePost => {
|
|
225
|
+
const execute = request => Effect.flatMap(Effect.zip(Effect.service(internalGraphQL.ForcePost), urlOf(request)), ([forcePost, url]) => {
|
|
222
226
|
const toRequest = options.queryMethod === "GET" && request.kind === "query" && !forcePost ? getRequest : postRequest;
|
|
223
|
-
return client.execute(toRequest(
|
|
227
|
+
return client.execute(toRequest(url, request, `${graphqlResponseContentType}, ${jsonContentType}`)).pipe(Effect.flatMap(readAnswer), fromHttpClientError(clock));
|
|
224
228
|
});
|
|
225
|
-
const subscribe = request => Stream.unwrap(Effect.
|
|
229
|
+
const subscribe = request => Stream.unwrap(Effect.flatMap(urlOf(request), url => client.execute(postRequest(url, request, eventStreamContentType)).pipe(Effect.flatMap(response => {
|
|
226
230
|
const contentType = contentTypeOf(response);
|
|
227
231
|
if (contentType.includes(eventStreamContentType) && response.status >= 200 && response.status < 300) {
|
|
228
232
|
return Effect.succeed(sseEvents(response));
|
|
@@ -233,15 +237,29 @@ const makeHttpWith = options => {
|
|
|
233
237
|
}), fromHttpClientError(clock))));
|
|
234
238
|
return GraphQLProtocol.of({
|
|
235
239
|
execute,
|
|
236
|
-
subscribe
|
|
240
|
+
subscribe,
|
|
241
|
+
url: resolve
|
|
237
242
|
});
|
|
238
243
|
}));
|
|
239
244
|
const webSocket = options.subscriptions?.webSocket;
|
|
240
245
|
return webSocket === undefined ? http : Effect.zipWith(http, makeWebSocket(webSocket), (http, ws) => GraphQLProtocol.of({
|
|
241
246
|
execute: http.execute,
|
|
242
|
-
subscribe: ws.subscribe
|
|
247
|
+
subscribe: ws.subscribe,
|
|
248
|
+
url: http.url
|
|
243
249
|
}));
|
|
244
250
|
};
|
|
251
|
+
const urlResolver = url => {
|
|
252
|
+
if (typeof url === "string") return constant(Effect.succeed(url));
|
|
253
|
+
if (Effect.isEffect(url)) return constant(url);
|
|
254
|
+
return ({
|
|
255
|
+
kind,
|
|
256
|
+
operationName
|
|
257
|
+
}) => Effect.contextWith(context => Effect.succeed(url({
|
|
258
|
+
context,
|
|
259
|
+
kind,
|
|
260
|
+
operationName
|
|
261
|
+
})));
|
|
262
|
+
};
|
|
245
263
|
/**
|
|
246
264
|
* Builds the HTTP transport as an effect, for composing transports by hand.
|
|
247
265
|
* Most code uses {@link layerHttp}.
|
|
@@ -250,9 +268,9 @@ const makeHttpWith = options => {
|
|
|
250
268
|
*
|
|
251
269
|
* Takes the same options as {@link layerHttp}, including `queryMethod`.
|
|
252
270
|
* Without `subscriptions`, subscriptions use graphql-sse distinct mode on
|
|
253
|
-
* `url`. With `subscriptions.webSocket`,
|
|
254
|
-
* the effect also builds the graphql-ws
|
|
255
|
-
* `Socket.WebSocketConstructor` and a `Scope`.
|
|
271
|
+
* `url`. With `subscriptions.webSocket`, `url` must be a string, subscriptions
|
|
272
|
+
* go over graphql-ws instead, and the effect also builds the graphql-ws
|
|
273
|
+
* transport, so it needs a `Socket.WebSocketConstructor` and a `Scope`.
|
|
256
274
|
*
|
|
257
275
|
* @stability experimental
|
|
258
276
|
* @category constructors
|
|
@@ -303,6 +321,29 @@ export const makeHttp = makeHttpWith;
|
|
|
303
321
|
* With `subscriptions: { webSocket }`, subscriptions go over graphql-ws as in
|
|
304
322
|
* {@link layerWebSocket}, and the layer needs a `Socket.WebSocketConstructor`.
|
|
305
323
|
*
|
|
324
|
+
* To route each query, mutation and graphql-sse subscription, `url` can be a
|
|
325
|
+
* function of the calling fiber's context (including the call's `context`
|
|
326
|
+
* option), `kind` and `operationName`, or an `Effect<string>` with no errors
|
|
327
|
+
* or requirements that runs in that context. Use a defaulted
|
|
328
|
+
* `Context.Reference` to select the server. Reading a missing service with
|
|
329
|
+
* `Context.get` is a defect, not a `TransportError`. Neither form can be
|
|
330
|
+
* combined with `subscriptions.webSocket`: the socket URL is fixed at
|
|
331
|
+
* connection time.
|
|
332
|
+
*
|
|
333
|
+
* **Gotchas**
|
|
334
|
+
*
|
|
335
|
+
* `GraphQLResolver` resolves each lookup's URL once, in the calling fiber,
|
|
336
|
+
* before middleware run and before the batched request exists, then sends
|
|
337
|
+
* each batch to the URL it was grouped by. A single call resolves it in the
|
|
338
|
+
* transport, after middleware.
|
|
339
|
+
* So the URL must depend only on the context and the operation, and
|
|
340
|
+
* middleware must not change `kind` or `operationName` or provide services
|
|
341
|
+
* the URL reads.
|
|
342
|
+
*
|
|
343
|
+
* `RequestResolver.withCache` and `RequestResolver.persisted` key on the lookup,
|
|
344
|
+
* not the URL, so results can leak across servers. For caching, use a separate
|
|
345
|
+
* client and resolver per server, for example with `LayerMap`.
|
|
346
|
+
*
|
|
306
347
|
* **Example** (Building a client over HTTP)
|
|
307
348
|
*
|
|
308
349
|
* ```ts import.meta.vitest
|
|
@@ -376,6 +417,56 @@ export const makeHttp = makeHttpWith;
|
|
|
376
417
|
* await Effect.runPromise(program) // => { viewer: { login: "GET draft-token" } }
|
|
377
418
|
* ```
|
|
378
419
|
*
|
|
420
|
+
* **Example** (One client for github.com, GHE.com and GitHub Enterprise Server)
|
|
421
|
+
*
|
|
422
|
+
* ```ts import.meta.vitest
|
|
423
|
+
* import { Context, Effect, Layer, Schema } from "effect"
|
|
424
|
+
* import { GraphQL, GraphQLClient, GraphQLGroup, GraphQLProtocol } from "effect/graphql"
|
|
425
|
+
* import { HttpClient, HttpClientResponse } from "effect/http"
|
|
426
|
+
*
|
|
427
|
+
* const Viewer = GraphQL.query("Viewer", {
|
|
428
|
+
* document: "query Viewer{viewer{login}}",
|
|
429
|
+
* result: Schema.Struct({ viewer: Schema.Struct({ login: Schema.String }) })
|
|
430
|
+
* })
|
|
431
|
+
*
|
|
432
|
+
* const GitHubHost = Context.Reference<string>("GitHubHost", { defaultValue: () => "github.com" })
|
|
433
|
+
*
|
|
434
|
+
* const Protocol = GraphQLProtocol.layerHttp({
|
|
435
|
+
* url: ({ context }) => {
|
|
436
|
+
* const host = Context.get(context, GitHubHost)
|
|
437
|
+
* if (host === "github.com") return "https://api.github.com/graphql"
|
|
438
|
+
* if (host.endsWith(".ghe.com")) return `https://api.${host}/graphql`
|
|
439
|
+
* return `https://${host}/api/graphql`
|
|
440
|
+
* }
|
|
441
|
+
* })
|
|
442
|
+
*
|
|
443
|
+
* // Echo the request URL instead of calling GitHub.
|
|
444
|
+
* const FakeServer = Layer.succeed(
|
|
445
|
+
* HttpClient.HttpClient,
|
|
446
|
+
* HttpClient.make((request, url) =>
|
|
447
|
+
* Effect.succeed(HttpClientResponse.fromWeb(
|
|
448
|
+
* request,
|
|
449
|
+
* new Response(JSON.stringify({ data: { viewer: { login: url.href } } }), {
|
|
450
|
+
* headers: { "content-type": "application/graphql-response+json" }
|
|
451
|
+
* })
|
|
452
|
+
* ))
|
|
453
|
+
* )
|
|
454
|
+
* )
|
|
455
|
+
*
|
|
456
|
+
* const program = Effect.gen(function*() {
|
|
457
|
+
* const client = yield* GraphQLClient.make(GraphQLGroup.make(Viewer))
|
|
458
|
+
* const dotcom = yield* client.Viewer()
|
|
459
|
+
* const cloud = yield* client.Viewer().pipe(Effect.provideService(GitHubHost, "acme.ghe.com"))
|
|
460
|
+
* const server = yield* client.Viewer(undefined, { context: Context.make(GitHubHost, "github.example.com") })
|
|
461
|
+
* return [dotcom, cloud, server].map((result) => result.viewer.login)
|
|
462
|
+
* }).pipe(
|
|
463
|
+
* Effect.provide(Protocol),
|
|
464
|
+
* Effect.provide(FakeServer)
|
|
465
|
+
* )
|
|
466
|
+
*
|
|
467
|
+
* await Effect.runPromise(program) // => ["https://api.github.com/graphql", "https://api.acme.ghe.com/graphql", "https://github.example.com/api/graphql"]
|
|
468
|
+
* ```
|
|
469
|
+
*
|
|
379
470
|
* **Example** (Subscriptions over graphql-ws, everything else over POST)
|
|
380
471
|
*
|
|
381
472
|
* ```ts import.meta.vitest
|