effect 4.0.5 → 4.0.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/ai-docs/package.json +1 -1
- package/ai-docs/src/06_schedule/10_schedules.ts +5 -4
- package/ai-docs/tsconfig.json +3 -1
- package/dist/Arbitrary.d.ts +10 -2
- package/dist/Arbitrary.d.ts.map +1 -1
- package/dist/Arbitrary.js +2 -1
- package/dist/Arbitrary.js.map +1 -1
- package/dist/Array.d.ts +117 -52
- package/dist/Array.d.ts.map +1 -1
- package/dist/Array.js +41 -20
- package/dist/Array.js.map +1 -1
- package/dist/Bytes.d.ts +79 -0
- package/dist/Bytes.d.ts.map +1 -0
- package/dist/Bytes.js +109 -0
- package/dist/Bytes.js.map +1 -0
- package/dist/Channel.d.ts +181 -13
- package/dist/Channel.d.ts.map +1 -1
- package/dist/Channel.js +144 -34
- package/dist/Channel.js.map +1 -1
- package/dist/ChannelSchema.d.ts.map +1 -1
- package/dist/ChannelSchema.js.map +1 -1
- package/dist/Chunk.d.ts +39 -21
- package/dist/Chunk.d.ts.map +1 -1
- package/dist/Chunk.js +26 -17
- package/dist/Chunk.js.map +1 -1
- package/dist/Config.d.ts.map +1 -1
- package/dist/Config.js +8 -3
- package/dist/Config.js.map +1 -1
- package/dist/ConfigProvider.d.ts.map +1 -1
- package/dist/ConfigProvider.js +2 -1
- package/dist/ConfigProvider.js.map +1 -1
- package/dist/Cron.d.ts +2 -2
- package/dist/Cron.d.ts.map +1 -1
- package/dist/Cron.js +6 -3
- package/dist/Cron.js.map +1 -1
- package/dist/Data.d.ts +54 -235
- package/dist/Data.d.ts.map +1 -1
- package/dist/Data.js.map +1 -1
- package/dist/Duration.d.ts.map +1 -1
- package/dist/Duration.js +56 -16
- package/dist/Duration.js.map +1 -1
- package/dist/Effect.d.ts +488 -164
- package/dist/Effect.d.ts.map +1 -1
- package/dist/Effect.js +204 -38
- package/dist/Effect.js.map +1 -1
- package/dist/Equal.d.ts.map +1 -1
- package/dist/Equal.js +8 -1
- package/dist/Equal.js.map +1 -1
- package/dist/Equivalence.d.ts +2 -1
- package/dist/Equivalence.d.ts.map +1 -1
- package/dist/Equivalence.js +12 -8
- package/dist/Equivalence.js.map +1 -1
- package/dist/Exit.d.ts +27 -12
- package/dist/Exit.d.ts.map +1 -1
- package/dist/Exit.js +8 -3
- package/dist/Exit.js.map +1 -1
- package/dist/FiberHandle.d.ts +2 -0
- package/dist/FiberHandle.d.ts.map +1 -1
- package/dist/FiberHandle.js +9 -4
- package/dist/FiberHandle.js.map +1 -1
- package/dist/FiberMap.d.ts +2 -0
- package/dist/FiberMap.d.ts.map +1 -1
- package/dist/FiberMap.js +5 -2
- package/dist/FiberMap.js.map +1 -1
- package/dist/FileSystem.d.ts +5 -0
- package/dist/FileSystem.d.ts.map +1 -1
- package/dist/FileSystem.js +3 -0
- package/dist/FileSystem.js.map +1 -1
- package/dist/Formatter.d.ts.map +1 -1
- package/dist/Formatter.js +27 -13
- package/dist/Formatter.js.map +1 -1
- package/dist/Graph.d.ts.map +1 -1
- package/dist/Graph.js.map +1 -1
- package/dist/Hash.d.ts.map +1 -1
- package/dist/Hash.js +4 -1
- package/dist/Hash.js.map +1 -1
- package/dist/HashSet.d.ts.map +1 -1
- package/dist/HashSet.js.map +1 -1
- package/dist/Iterable.d.ts.map +1 -1
- package/dist/Iterable.js +18 -17
- package/dist/Iterable.js.map +1 -1
- package/dist/JsonPatch.js +4 -0
- package/dist/JsonPatch.js.map +1 -1
- package/dist/JsonSchema.d.ts +9 -3
- package/dist/JsonSchema.d.ts.map +1 -1
- package/dist/JsonSchema.js +32 -43
- package/dist/JsonSchema.js.map +1 -1
- package/dist/Layer.d.ts.map +1 -1
- package/dist/Layer.js +2 -2
- package/dist/Layer.js.map +1 -1
- package/dist/ManagedRuntime.d.ts +19 -1
- package/dist/ManagedRuntime.d.ts.map +1 -1
- package/dist/ManagedRuntime.js +62 -6
- package/dist/ManagedRuntime.js.map +1 -1
- package/dist/Metric.d.ts +135 -3
- package/dist/Metric.d.ts.map +1 -1
- package/dist/Metric.js +197 -25
- package/dist/Metric.js.map +1 -1
- package/dist/MutableHashMap.d.ts.map +1 -1
- package/dist/MutableHashMap.js.map +1 -1
- package/dist/MutableList.d.ts +5 -2
- package/dist/MutableList.d.ts.map +1 -1
- package/dist/MutableList.js +7 -5
- package/dist/MutableList.js.map +1 -1
- package/dist/MutableRef.d.ts.map +1 -1
- package/dist/MutableRef.js +7 -0
- package/dist/MutableRef.js.map +1 -1
- package/dist/Number.js +2 -2
- package/dist/Number.js.map +1 -1
- package/dist/Optic.d.ts.map +1 -1
- package/dist/Optic.js.map +1 -1
- package/dist/PartitionedSemaphore.d.ts +2 -1
- package/dist/PartitionedSemaphore.d.ts.map +1 -1
- package/dist/PartitionedSemaphore.js +22 -12
- package/dist/PartitionedSemaphore.js.map +1 -1
- package/dist/Path.d.ts.map +1 -1
- package/dist/Path.js +8 -1
- package/dist/Path.js.map +1 -1
- package/dist/Pool.d.ts.map +1 -1
- package/dist/Pool.js +77 -27
- package/dist/Pool.js.map +1 -1
- package/dist/PubSub.d.ts.map +1 -1
- package/dist/PubSub.js +17 -13
- package/dist/PubSub.js.map +1 -1
- package/dist/Queue.d.ts +4 -1
- package/dist/Queue.d.ts.map +1 -1
- package/dist/Queue.js +4 -1
- package/dist/Queue.js.map +1 -1
- package/dist/Random.d.ts.map +1 -1
- package/dist/Random.js +1 -1
- package/dist/Random.js.map +1 -1
- package/dist/RcMap.d.ts +12 -7
- package/dist/RcMap.d.ts.map +1 -1
- package/dist/RcMap.js +9 -6
- package/dist/RcMap.js.map +1 -1
- package/dist/Record.d.ts +51 -0
- package/dist/Record.d.ts.map +1 -1
- package/dist/Record.js +17 -0
- package/dist/Record.js.map +1 -1
- package/dist/Ref.d.ts.map +1 -1
- package/dist/Ref.js +8 -0
- package/dist/Ref.js.map +1 -1
- package/dist/References.d.ts +5 -4
- package/dist/References.d.ts.map +1 -1
- package/dist/References.js +5 -4
- package/dist/References.js.map +1 -1
- package/dist/RequestResolver.d.ts +31 -1
- package/dist/RequestResolver.d.ts.map +1 -1
- package/dist/RequestResolver.js +39 -4
- package/dist/RequestResolver.js.map +1 -1
- package/dist/Resource.js +1 -1
- package/dist/Resource.js.map +1 -1
- package/dist/Runtime.d.ts +3 -3
- package/dist/Runtime.d.ts.map +1 -1
- package/dist/Runtime.js +18 -15
- package/dist/Runtime.js.map +1 -1
- package/dist/Schedule.d.ts.map +1 -1
- package/dist/Schedule.js +1 -1
- package/dist/Schedule.js.map +1 -1
- package/dist/Schema.d.ts +408 -340
- package/dist/Schema.d.ts.map +1 -1
- package/dist/Schema.js +370 -47
- package/dist/Schema.js.map +1 -1
- package/dist/SchemaAST.d.ts +9 -7
- package/dist/SchemaAST.d.ts.map +1 -1
- package/dist/SchemaAST.js +38 -25
- package/dist/SchemaAST.js.map +1 -1
- package/dist/SchemaGetter.d.ts +8 -3
- package/dist/SchemaGetter.d.ts.map +1 -1
- package/dist/SchemaGetter.js +15 -5
- package/dist/SchemaGetter.js.map +1 -1
- package/dist/SchemaIssue.d.ts +4 -4
- package/dist/SchemaIssue.d.ts.map +1 -1
- package/dist/SchemaIssue.js +29 -51
- package/dist/SchemaIssue.js.map +1 -1
- package/dist/SchemaParser.d.ts.map +1 -1
- package/dist/SchemaParser.js +48 -22
- package/dist/SchemaParser.js.map +1 -1
- package/dist/SchemaRepresentation.d.ts +75 -11
- package/dist/SchemaRepresentation.d.ts.map +1 -1
- package/dist/SchemaRepresentation.js +41 -13
- package/dist/SchemaRepresentation.js.map +1 -1
- package/dist/SchemaTransformation.d.ts +5 -2
- package/dist/SchemaTransformation.d.ts.map +1 -1
- package/dist/SchemaTransformation.js +10 -3
- package/dist/SchemaTransformation.js.map +1 -1
- package/dist/Scope.d.ts +12 -2
- package/dist/Scope.d.ts.map +1 -1
- package/dist/Scope.js +5 -0
- package/dist/Scope.js.map +1 -1
- package/dist/ScopedCache.d.ts +10 -7
- package/dist/ScopedCache.d.ts.map +1 -1
- package/dist/ScopedCache.js +9 -5
- package/dist/ScopedCache.js.map +1 -1
- package/dist/SemVer.d.ts +1196 -0
- package/dist/SemVer.d.ts.map +1 -0
- package/dist/SemVer.js +756 -0
- package/dist/SemVer.js.map +1 -0
- package/dist/SemVerRange.d.ts +559 -0
- package/dist/SemVerRange.d.ts.map +1 -0
- package/dist/SemVerRange.js +551 -0
- package/dist/SemVerRange.js.map +1 -0
- package/dist/Semaphore.d.ts.map +1 -1
- package/dist/Semaphore.js +54 -35
- package/dist/Semaphore.js.map +1 -1
- package/dist/Sink.d.ts.map +1 -1
- package/dist/Sink.js +13 -4
- package/dist/Sink.js.map +1 -1
- package/dist/Stream.d.ts +235 -8
- package/dist/Stream.d.ts.map +1 -1
- package/dist/Stream.js +167 -70
- package/dist/Stream.js.map +1 -1
- package/dist/String.d.ts +7 -2
- package/dist/String.d.ts.map +1 -1
- package/dist/String.js +11 -6
- package/dist/String.js.map +1 -1
- package/dist/TextDiff.d.ts +399 -0
- package/dist/TextDiff.d.ts.map +1 -0
- package/dist/TextDiff.js +634 -0
- package/dist/TextDiff.js.map +1 -0
- package/dist/Tracer.d.ts +11 -1
- package/dist/Tracer.d.ts.map +1 -1
- package/dist/Tracer.js +6 -1
- package/dist/Tracer.js.map +1 -1
- package/dist/TxHashMap.d.ts.map +1 -1
- package/dist/TxHashMap.js.map +1 -1
- package/dist/TxHashSet.d.ts.map +1 -1
- package/dist/TxHashSet.js.map +1 -1
- package/dist/ai/AiError.d.ts +68 -4
- package/dist/ai/AiError.d.ts.map +1 -1
- package/dist/ai/AiError.js +50 -2
- package/dist/ai/AiError.js.map +1 -1
- package/dist/ai/Chat.d.ts +1 -2
- package/dist/ai/Chat.d.ts.map +1 -1
- package/dist/ai/Chat.js +6 -3
- package/dist/ai/Chat.js.map +1 -1
- package/dist/ai/Decision.d.ts +46 -1
- package/dist/ai/Decision.d.ts.map +1 -1
- package/dist/ai/Decision.js.map +1 -1
- package/dist/ai/DecisionModel.d.ts +129 -11
- package/dist/ai/DecisionModel.d.ts.map +1 -1
- package/dist/ai/DecisionModel.js +182 -94
- package/dist/ai/DecisionModel.js.map +1 -1
- package/dist/ai/EmbeddingModel.d.ts +10 -0
- package/dist/ai/EmbeddingModel.d.ts.map +1 -1
- package/dist/ai/EmbeddingModel.js +21 -7
- package/dist/ai/EmbeddingModel.js.map +1 -1
- package/dist/ai/LanguageModel.d.ts.map +1 -1
- package/dist/ai/LanguageModel.js +9 -0
- package/dist/ai/LanguageModel.js.map +1 -1
- package/dist/ai/McpClient.d.ts +289 -0
- package/dist/ai/McpClient.d.ts.map +1 -0
- package/dist/ai/McpClient.js +819 -0
- package/dist/ai/McpClient.js.map +1 -0
- package/dist/ai/McpClientError.d.ts +254 -0
- package/dist/ai/McpClientError.d.ts.map +1 -0
- package/dist/ai/McpClientError.js +260 -0
- package/dist/ai/McpClientError.js.map +1 -0
- package/dist/ai/McpProtocol.d.ts +2 -2
- package/dist/ai/McpProtocol.d.ts.map +1 -1
- package/dist/ai/McpSchema.d.ts +258 -125
- package/dist/ai/McpSchema.d.ts.map +1 -1
- package/dist/ai/McpSchema.js +94 -24
- package/dist/ai/McpSchema.js.map +1 -1
- package/dist/ai/McpServer.d.ts.map +1 -1
- package/dist/ai/McpServer.js +46 -37
- package/dist/ai/McpServer.js.map +1 -1
- package/dist/ai/Prompt.d.ts +74 -20
- package/dist/ai/Prompt.d.ts.map +1 -1
- package/dist/ai/Prompt.js +61 -1
- package/dist/ai/Prompt.js.map +1 -1
- package/dist/ai/Response.d.ts +160 -3
- package/dist/ai/Response.d.ts.map +1 -1
- package/dist/ai/Response.js +39 -37
- package/dist/ai/Response.js.map +1 -1
- package/dist/ai/Tool.d.ts +36 -4
- package/dist/ai/Tool.d.ts.map +1 -1
- package/dist/ai/Tool.js +5 -2
- package/dist/ai/Tool.js.map +1 -1
- package/dist/ai/Toolkit.d.ts +48 -1
- package/dist/ai/Toolkit.d.ts.map +1 -1
- package/dist/ai/Toolkit.js +73 -13
- package/dist/ai/Toolkit.js.map +1 -1
- package/dist/ai/index.d.ts +10 -0
- package/dist/ai/index.d.ts.map +1 -1
- package/dist/ai/index.js +10 -0
- package/dist/ai/index.js.map +1 -1
- package/dist/ai/internal/mcpCore.js.map +1 -1
- package/dist/ai/internal/mcpProtocol/v2024_11_05.js +1 -1
- package/dist/ai/internal/mcpProtocol/v2024_11_05.js.map +1 -1
- package/dist/ai/internal/mcpProtocol/v2025_03_26.js +1 -1
- package/dist/ai/internal/mcpProtocol/v2025_03_26.js.map +1 -1
- package/dist/ai/internal/mcpProtocol/v2025_06_18.js +2 -2
- package/dist/ai/internal/mcpProtocol/v2025_06_18.js.map +1 -1
- package/dist/ai/internal/mcpProtocol/v2025_11_25.js +2 -2
- package/dist/ai/internal/mcpProtocol/v2025_11_25.js.map +1 -1
- package/dist/ai/internal/mcpProtocol/v2026_07_28.js +4 -7
- package/dist/ai/internal/mcpProtocol/v2026_07_28.js.map +1 -1
- package/dist/ai/internal/mcpProtocol.js +16 -2
- package/dist/ai/internal/mcpProtocol.js.map +1 -1
- package/dist/ai/internal/mcpRuntime.js +3 -4
- package/dist/ai/internal/mcpRuntime.js.map +1 -1
- package/dist/ai/internal/mcpSchema/v2024_11_05.js +19 -13
- package/dist/ai/internal/mcpSchema/v2024_11_05.js.map +1 -1
- package/dist/ai/internal/mcpSchema/v2025_03_26.js +3 -2
- package/dist/ai/internal/mcpSchema/v2025_03_26.js.map +1 -1
- package/dist/ai/internal/mcpSchema/v2025_06_18.js +7 -7
- package/dist/ai/internal/mcpSchema/v2025_06_18.js.map +1 -1
- package/dist/ai/internal/mcpSchema/v2025_11_25.js +8 -8
- package/dist/ai/internal/mcpSchema/v2025_11_25.js.map +1 -1
- package/dist/ai/internal/mcpSchema/v2026_07_28.js +43 -42
- package/dist/ai/internal/mcpSchema/v2026_07_28.js.map +1 -1
- package/dist/cli/Argument.d.ts +15 -0
- package/dist/cli/Argument.d.ts.map +1 -1
- package/dist/cli/Argument.js +5 -0
- package/dist/cli/Argument.js.map +1 -1
- package/dist/cli/CliError.d.ts +120 -2
- package/dist/cli/CliError.d.ts.map +1 -1
- package/dist/cli/CliError.js +106 -5
- package/dist/cli/CliError.js.map +1 -1
- package/dist/cli/CliOutput.d.ts +155 -6
- package/dist/cli/CliOutput.d.ts.map +1 -1
- package/dist/cli/CliOutput.js +62 -6
- package/dist/cli/CliOutput.js.map +1 -1
- package/dist/cli/Command.d.ts +310 -18
- package/dist/cli/Command.d.ts.map +1 -1
- package/dist/cli/Command.js +164 -33
- package/dist/cli/Command.js.map +1 -1
- package/dist/cli/Completions.d.ts +63 -0
- package/dist/cli/Completions.d.ts.map +1 -1
- package/dist/cli/Completions.js +49 -9
- package/dist/cli/Completions.js.map +1 -1
- package/dist/cli/Flag.d.ts +130 -0
- package/dist/cli/Flag.d.ts.map +1 -1
- package/dist/cli/Flag.js +61 -0
- package/dist/cli/Flag.js.map +1 -1
- package/dist/cli/GlobalFlag.d.ts.map +1 -1
- package/dist/cli/GlobalFlag.js +14 -6
- package/dist/cli/GlobalFlag.js.map +1 -1
- package/dist/cli/Param.d.ts +116 -0
- package/dist/cli/Param.d.ts.map +1 -1
- package/dist/cli/Param.js +77 -2
- package/dist/cli/Param.js.map +1 -1
- package/dist/cli/TerminalCapabilities.d.ts +85 -0
- package/dist/cli/TerminalCapabilities.d.ts.map +1 -0
- package/dist/cli/TerminalCapabilities.js +124 -0
- package/dist/cli/TerminalCapabilities.js.map +1 -0
- package/dist/cli/index.d.ts +5 -0
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +5 -0
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/internal/command.d.ts +2 -1
- package/dist/cli/internal/command.d.ts.map +1 -1
- package/dist/cli/internal/command.js +5 -2
- package/dist/cli/internal/command.js.map +1 -1
- package/dist/cli/internal/completions/bash.js +77 -30
- package/dist/cli/internal/completions/bash.js.map +1 -1
- package/dist/cli/internal/completions/descriptor.js +9 -1
- package/dist/cli/internal/completions/descriptor.js.map +1 -1
- package/dist/cli/internal/completions/fish.js +10 -8
- package/dist/cli/internal/completions/fish.js.map +1 -1
- package/dist/cli/internal/completions/powershell.js +18 -9
- package/dist/cli/internal/completions/powershell.js.map +1 -1
- package/dist/cli/internal/completions/zsh.js +8 -5
- package/dist/cli/internal/completions/zsh.js.map +1 -1
- package/dist/cli/internal/formatter.d.ts +2 -0
- package/dist/cli/internal/formatter.d.ts.map +1 -0
- package/dist/cli/internal/formatter.js +15 -0
- package/dist/cli/internal/formatter.js.map +1 -0
- package/dist/cli/internal/lexer.js +24 -10
- package/dist/cli/internal/lexer.js.map +1 -1
- package/dist/cli/internal/parser.js +24 -12
- package/dist/cli/internal/parser.js.map +1 -1
- package/dist/cluster/ClusterCron.d.ts +29 -1
- package/dist/cluster/ClusterCron.d.ts.map +1 -1
- package/dist/cluster/ClusterCron.js +64 -32
- package/dist/cluster/ClusterCron.js.map +1 -1
- package/dist/cluster/ClusterMetrics.d.ts +143 -7
- package/dist/cluster/ClusterMetrics.d.ts.map +1 -1
- package/dist/cluster/ClusterMetrics.js +151 -7
- package/dist/cluster/ClusterMetrics.js.map +1 -1
- package/dist/cluster/ClusterWorkflowEngine.d.ts +1 -1
- package/dist/cluster/ClusterWorkflowEngine.d.ts.map +1 -1
- package/dist/cluster/ClusterWorkflowEngine.js +82 -21
- package/dist/cluster/ClusterWorkflowEngine.js.map +1 -1
- package/dist/cluster/Entity.d.ts +2 -0
- package/dist/cluster/Entity.d.ts.map +1 -1
- package/dist/cluster/Entity.js.map +1 -1
- package/dist/cluster/MessageStorage.d.ts +44 -45
- package/dist/cluster/MessageStorage.d.ts.map +1 -1
- package/dist/cluster/MessageStorage.js +6 -7
- package/dist/cluster/MessageStorage.js.map +1 -1
- package/dist/cluster/Runners.d.ts.map +1 -1
- package/dist/cluster/Runners.js +54 -15
- package/dist/cluster/Runners.js.map +1 -1
- package/dist/cluster/Sharding.d.ts +1 -0
- package/dist/cluster/Sharding.d.ts.map +1 -1
- package/dist/cluster/Sharding.js +155 -52
- package/dist/cluster/Sharding.js.map +1 -1
- package/dist/cluster/ShardingConfig.d.ts +30 -0
- package/dist/cluster/ShardingConfig.d.ts.map +1 -1
- package/dist/cluster/ShardingConfig.js +4 -0
- package/dist/cluster/ShardingConfig.js.map +1 -1
- package/dist/cluster/Snowflake.d.ts.map +1 -1
- package/dist/cluster/Snowflake.js +3 -7
- package/dist/cluster/Snowflake.js.map +1 -1
- package/dist/cluster/SqlMessageStorage.d.ts.map +1 -1
- package/dist/cluster/SqlMessageStorage.js +40 -50
- package/dist/cluster/SqlMessageStorage.js.map +1 -1
- package/dist/cluster/SqlRunnerStorage.d.ts +2 -2
- package/dist/cluster/SqlRunnerStorage.d.ts.map +1 -1
- package/dist/cluster/SqlRunnerStorage.js +97 -43
- package/dist/cluster/SqlRunnerStorage.js.map +1 -1
- package/dist/cluster/internal/entityManager.js +119 -28
- package/dist/cluster/internal/entityManager.js.map +1 -1
- package/dist/devtools/DevTools.d.ts +3 -2
- package/dist/devtools/DevTools.d.ts.map +1 -1
- package/dist/devtools/DevTools.js +3 -2
- package/dist/devtools/DevTools.js.map +1 -1
- package/dist/devtools/DevToolsClient.d.ts +11 -0
- package/dist/devtools/DevToolsClient.d.ts.map +1 -1
- package/dist/devtools/DevToolsClient.js +33 -4
- package/dist/devtools/DevToolsClient.js.map +1 -1
- package/dist/encoding/Base64.js +36 -0
- package/dist/encoding/Base64.js.map +1 -1
- package/dist/encoding/Base64Url.d.ts +29 -0
- package/dist/encoding/Base64Url.d.ts.map +1 -1
- package/dist/encoding/Base64Url.js +29 -0
- package/dist/encoding/Base64Url.js.map +1 -1
- package/dist/encoding/Ini.d.ts.map +1 -1
- package/dist/encoding/Ini.js +3 -0
- package/dist/encoding/Ini.js.map +1 -1
- package/dist/encoding/JsonArray.d.ts +270 -0
- package/dist/encoding/JsonArray.d.ts.map +1 -0
- package/dist/encoding/JsonArray.js +691 -0
- package/dist/encoding/JsonArray.js.map +1 -0
- package/dist/encoding/Ndjson.d.ts +43 -4
- package/dist/encoding/Ndjson.d.ts.map +1 -1
- package/dist/encoding/Ndjson.js +169 -18
- package/dist/encoding/Ndjson.js.map +1 -1
- package/dist/encoding/SchemaBinary.d.ts +9 -1
- package/dist/encoding/SchemaBinary.d.ts.map +1 -1
- package/dist/encoding/SchemaBinary.js +12 -19
- package/dist/encoding/SchemaBinary.js.map +1 -1
- package/dist/encoding/Sse.d.ts.map +1 -1
- package/dist/encoding/Sse.js +3 -3
- package/dist/encoding/Sse.js.map +1 -1
- package/dist/encoding/Tar.d.ts +309 -0
- package/dist/encoding/Tar.d.ts.map +1 -0
- package/dist/encoding/Tar.js +1182 -0
- package/dist/encoding/Tar.js.map +1 -0
- package/dist/encoding/Toml.d.ts.map +1 -1
- package/dist/encoding/Toml.js +24 -19
- package/dist/encoding/Toml.js.map +1 -1
- package/dist/encoding/Xml.d.ts +464 -0
- package/dist/encoding/Xml.d.ts.map +1 -0
- package/dist/encoding/Xml.js +1619 -0
- package/dist/encoding/Xml.js.map +1 -0
- package/dist/encoding/Yaml.d.ts +6 -2
- package/dist/encoding/Yaml.d.ts.map +1 -1
- package/dist/encoding/Yaml.js +97 -34
- package/dist/encoding/Yaml.js.map +1 -1
- package/dist/encoding/Zip.d.ts +413 -0
- package/dist/encoding/Zip.d.ts.map +1 -0
- package/dist/encoding/Zip.js +1255 -0
- package/dist/encoding/Zip.js.map +1 -0
- package/dist/encoding/index.d.ts +20 -0
- package/dist/encoding/index.d.ts.map +1 -1
- package/dist/encoding/index.js +20 -0
- package/dist/encoding/index.js.map +1 -1
- package/dist/eventlog/EventJournal.d.ts +90 -5
- package/dist/eventlog/EventJournal.d.ts.map +1 -1
- package/dist/eventlog/EventJournal.js +488 -228
- package/dist/eventlog/EventJournal.js.map +1 -1
- package/dist/eventlog/EventLog.d.ts +180 -12
- package/dist/eventlog/EventLog.d.ts.map +1 -1
- package/dist/eventlog/EventLog.js +394 -146
- package/dist/eventlog/EventLog.js.map +1 -1
- package/dist/eventlog/EventLogEncryption.d.ts +36 -30
- package/dist/eventlog/EventLogEncryption.d.ts.map +1 -1
- package/dist/eventlog/EventLogEncryption.js +97 -38
- package/dist/eventlog/EventLogEncryption.js.map +1 -1
- package/dist/eventlog/EventLogMessage.d.ts +74 -34
- package/dist/eventlog/EventLogMessage.d.ts.map +1 -1
- package/dist/eventlog/EventLogMessage.js +45 -11
- package/dist/eventlog/EventLogMessage.js.map +1 -1
- package/dist/eventlog/EventLogRemote.d.ts +45 -8
- package/dist/eventlog/EventLogRemote.d.ts.map +1 -1
- package/dist/eventlog/EventLogRemote.js +51 -14
- package/dist/eventlog/EventLogRemote.js.map +1 -1
- package/dist/eventlog/EventLogServer.d.ts +46 -3
- package/dist/eventlog/EventLogServer.d.ts.map +1 -1
- package/dist/eventlog/EventLogServer.js +119 -19
- package/dist/eventlog/EventLogServer.js.map +1 -1
- package/dist/eventlog/EventLogServerEncrypted.d.ts +23 -33
- package/dist/eventlog/EventLogServerEncrypted.d.ts.map +1 -1
- package/dist/eventlog/EventLogServerEncrypted.js +97 -70
- package/dist/eventlog/EventLogServerEncrypted.js.map +1 -1
- package/dist/eventlog/EventLogServerUnencrypted.d.ts +39 -5
- package/dist/eventlog/EventLogServerUnencrypted.d.ts.map +1 -1
- package/dist/eventlog/EventLogServerUnencrypted.js +151 -69
- package/dist/eventlog/EventLogServerUnencrypted.js.map +1 -1
- package/dist/eventlog/EventRow.d.ts +288 -0
- package/dist/eventlog/EventRow.d.ts.map +1 -0
- package/dist/eventlog/EventRow.js +435 -0
- package/dist/eventlog/EventRow.js.map +1 -0
- package/dist/eventlog/SqlEventJournal.d.ts +18 -18
- package/dist/eventlog/SqlEventJournal.d.ts.map +1 -1
- package/dist/eventlog/SqlEventJournal.js +417 -169
- package/dist/eventlog/SqlEventJournal.js.map +1 -1
- package/dist/eventlog/SqlEventLogServerEncrypted.d.ts +10 -18
- package/dist/eventlog/SqlEventLogServerEncrypted.d.ts.map +1 -1
- package/dist/eventlog/SqlEventLogServerEncrypted.js +179 -69
- package/dist/eventlog/SqlEventLogServerEncrypted.js.map +1 -1
- package/dist/eventlog/SqlEventLogServerUnencrypted.d.ts +23 -3
- package/dist/eventlog/SqlEventLogServerUnencrypted.d.ts.map +1 -1
- package/dist/eventlog/SqlEventLogServerUnencrypted.js +102 -51
- package/dist/eventlog/SqlEventLogServerUnencrypted.js.map +1 -1
- package/dist/eventlog/index.d.ts +5 -0
- package/dist/eventlog/index.d.ts.map +1 -1
- package/dist/eventlog/index.js +5 -0
- package/dist/eventlog/index.js.map +1 -1
- package/dist/eventlog/internal/conflicts.d.ts +46 -0
- package/dist/eventlog/internal/conflicts.d.ts.map +1 -0
- package/dist/eventlog/internal/conflicts.js +89 -0
- package/dist/eventlog/internal/conflicts.js.map +1 -0
- package/dist/graphql/GraphQLClientError.d.ts +2 -2
- package/dist/graphql/GraphQLClientError.d.ts.map +1 -1
- package/dist/graphql/GraphQLClientError.js +4 -18
- package/dist/graphql/GraphQLClientError.js.map +1 -1
- package/dist/graphql/GraphQLProtocol.d.ts +12 -9
- package/dist/graphql/GraphQLProtocol.d.ts.map +1 -1
- package/dist/graphql/GraphQLProtocol.js +4 -3
- package/dist/graphql/GraphQLProtocol.js.map +1 -1
- package/dist/graphql/GraphQLResolver.d.ts +2 -0
- package/dist/graphql/GraphQLResolver.d.ts.map +1 -1
- package/dist/graphql/GraphQLResolver.js +74 -32
- package/dist/graphql/GraphQLResolver.js.map +1 -1
- package/dist/http/Cookies.d.ts.map +1 -1
- package/dist/http/Cookies.js +10 -9
- package/dist/http/Cookies.js.map +1 -1
- package/dist/http/FetchHttpClient.d.ts +8 -1
- package/dist/http/FetchHttpClient.d.ts.map +1 -1
- package/dist/http/FetchHttpClient.js +51 -4
- package/dist/http/FetchHttpClient.js.map +1 -1
- package/dist/http/FindMyWay/internal/router.js +10 -0
- package/dist/http/FindMyWay/internal/router.js.map +1 -1
- package/dist/http/Headers.d.ts +227 -0
- package/dist/http/Headers.d.ts.map +1 -1
- package/dist/http/Headers.js +261 -0
- package/dist/http/Headers.js.map +1 -1
- package/dist/http/HttpClient.d.ts +516 -0
- package/dist/http/HttpClient.d.ts.map +1 -1
- package/dist/http/HttpClient.js +286 -23
- package/dist/http/HttpClient.js.map +1 -1
- package/dist/http/HttpClientError.d.ts +8 -1
- package/dist/http/HttpClientError.d.ts.map +1 -1
- package/dist/http/HttpClientError.js +37 -1
- package/dist/http/HttpClientError.js.map +1 -1
- package/dist/http/HttpClientRequest.d.ts +127 -3
- package/dist/http/HttpClientRequest.d.ts.map +1 -1
- package/dist/http/HttpClientRequest.js +45 -3
- package/dist/http/HttpClientRequest.js.map +1 -1
- package/dist/http/HttpClientResponse.d.ts +53 -0
- package/dist/http/HttpClientResponse.d.ts.map +1 -1
- package/dist/http/HttpClientResponse.js +47 -0
- package/dist/http/HttpClientResponse.js.map +1 -1
- package/dist/http/HttpEffect.d.ts +6 -2
- package/dist/http/HttpEffect.d.ts.map +1 -1
- package/dist/http/HttpEffect.js +21 -17
- package/dist/http/HttpEffect.js.map +1 -1
- package/dist/http/HttpIncomingMessage.d.ts +2 -1
- package/dist/http/HttpIncomingMessage.d.ts.map +1 -1
- package/dist/http/HttpIncomingMessage.js +3 -23
- package/dist/http/HttpIncomingMessage.js.map +1 -1
- package/dist/http/HttpMiddleware.d.ts +119 -2
- package/dist/http/HttpMiddleware.d.ts.map +1 -1
- package/dist/http/HttpMiddleware.js +173 -29
- package/dist/http/HttpMiddleware.js.map +1 -1
- package/dist/http/HttpRouter.d.ts.map +1 -1
- package/dist/http/HttpRouter.js +9 -3
- package/dist/http/HttpRouter.js.map +1 -1
- package/dist/http/HttpServerError.d.ts +5 -2
- package/dist/http/HttpServerError.d.ts.map +1 -1
- package/dist/http/HttpServerError.js +7 -5
- package/dist/http/HttpServerError.js.map +1 -1
- package/dist/http/HttpServerRequest.d.ts +30 -5
- package/dist/http/HttpServerRequest.d.ts.map +1 -1
- package/dist/http/HttpServerRequest.js +109 -20
- package/dist/http/HttpServerRequest.js.map +1 -1
- package/dist/http/HttpServerResponse.d.ts +17 -8
- package/dist/http/HttpServerResponse.d.ts.map +1 -1
- package/dist/http/HttpServerResponse.js +37 -21
- package/dist/http/HttpServerResponse.js.map +1 -1
- package/dist/http/HttpStaticServer.d.ts +0 -12
- package/dist/http/HttpStaticServer.d.ts.map +1 -1
- package/dist/http/HttpStaticServer.js +65 -24
- package/dist/http/HttpStaticServer.js.map +1 -1
- package/dist/http/MultipartParser/internal/contentType.d.ts +15 -1
- package/dist/http/MultipartParser/internal/contentType.d.ts.map +1 -1
- package/dist/http/MultipartParser/internal/contentType.js +89 -7
- package/dist/http/MultipartParser/internal/contentType.js.map +1 -1
- package/dist/http/MultipartParser/internal/headers.d.ts.map +1 -1
- package/dist/http/MultipartParser/internal/headers.js +4 -12
- package/dist/http/MultipartParser/internal/headers.js.map +1 -1
- package/dist/http/MultipartParser/internal/multipart.d.ts.map +1 -1
- package/dist/http/MultipartParser/internal/multipart.js +6 -27
- package/dist/http/MultipartParser/internal/multipart.js.map +1 -1
- package/dist/http/Url.d.ts.map +1 -1
- package/dist/http/Url.js +6 -1
- package/dist/http/Url.js.map +1 -1
- package/dist/http/UrlParams.d.ts +3 -1
- package/dist/http/UrlParams.d.ts.map +1 -1
- package/dist/http/UrlParams.js +4 -2
- package/dist/http/UrlParams.js.map +1 -1
- package/dist/http/internal/compression.js +4 -5
- package/dist/http/internal/compression.js.map +1 -1
- package/dist/http/internal/decompression.js +20 -11
- package/dist/http/internal/decompression.js.map +1 -1
- package/dist/http/internal/httpBody.js +8 -1
- package/dist/http/internal/httpBody.js.map +1 -1
- package/dist/http/internal/lazyStream.d.ts +2 -0
- package/dist/http/internal/lazyStream.d.ts.map +1 -0
- package/dist/http/internal/lazyStream.js +18 -0
- package/dist/http/internal/lazyStream.js.map +1 -0
- package/dist/http/internal/requestState.d.ts +2 -0
- package/dist/http/internal/requestState.d.ts.map +1 -0
- package/dist/http/internal/requestState.js +28 -0
- package/dist/http/internal/requestState.js.map +1 -0
- package/dist/http/internal/urlParams.js +25 -0
- package/dist/http/internal/urlParams.js.map +1 -1
- package/dist/http/internal/webResponse.d.ts +2 -0
- package/dist/http/internal/webResponse.d.ts.map +1 -0
- package/dist/http/internal/webResponse.js +12 -0
- package/dist/http/internal/webResponse.js.map +1 -0
- package/dist/http-api/HttpApi.d.ts +3 -6
- package/dist/http-api/HttpApi.d.ts.map +1 -1
- package/dist/http-api/HttpApi.js +4 -7
- package/dist/http-api/HttpApi.js.map +1 -1
- package/dist/http-api/HttpApiBuilder.d.ts.map +1 -1
- package/dist/http-api/HttpApiBuilder.js +142 -23
- package/dist/http-api/HttpApiBuilder.js.map +1 -1
- package/dist/http-api/HttpApiClient.d.ts +99 -4
- package/dist/http-api/HttpApiClient.d.ts.map +1 -1
- package/dist/http-api/HttpApiClient.js +218 -60
- package/dist/http-api/HttpApiClient.js.map +1 -1
- package/dist/http-api/HttpApiEndpoint.d.ts +72 -29
- package/dist/http-api/HttpApiEndpoint.d.ts.map +1 -1
- package/dist/http-api/HttpApiEndpoint.js +140 -14
- package/dist/http-api/HttpApiEndpoint.js.map +1 -1
- package/dist/http-api/HttpApiError.d.ts +58 -0
- package/dist/http-api/HttpApiError.d.ts.map +1 -1
- package/dist/http-api/HttpApiError.js +38 -12
- package/dist/http-api/HttpApiError.js.map +1 -1
- package/dist/http-api/HttpApiScalar.d.ts +2 -1
- package/dist/http-api/HttpApiScalar.d.ts.map +1 -1
- package/dist/http-api/HttpApiScalar.js +6 -3
- package/dist/http-api/HttpApiScalar.js.map +1 -1
- package/dist/http-api/HttpApiSchema.d.ts +242 -13
- package/dist/http-api/HttpApiSchema.d.ts.map +1 -1
- package/dist/http-api/HttpApiSchema.js +149 -5
- package/dist/http-api/HttpApiSchema.js.map +1 -1
- package/dist/http-api/HttpApiSwagger.d.ts +5 -0
- package/dist/http-api/HttpApiSwagger.d.ts.map +1 -1
- package/dist/http-api/HttpApiSwagger.js +14 -4
- package/dist/http-api/HttpApiSwagger.js.map +1 -1
- package/dist/http-api/HttpApiTest.d.ts +13 -2
- package/dist/http-api/HttpApiTest.d.ts.map +1 -1
- package/dist/http-api/HttpApiTest.js +33 -11
- package/dist/http-api/HttpApiTest.js.map +1 -1
- package/dist/http-api/OpenApi.d.ts +17 -3
- package/dist/http-api/OpenApi.d.ts.map +1 -1
- package/dist/http-api/OpenApi.js +81 -47
- package/dist/http-api/OpenApi.js.map +1 -1
- package/dist/http-api/internal/path.js +35 -10
- package/dist/http-api/internal/path.js.map +1 -1
- package/dist/http-api/internal/toCodecHttpProperties.d.ts +2 -0
- package/dist/http-api/internal/toCodecHttpProperties.d.ts.map +1 -0
- package/dist/http-api/internal/toCodecHttpProperties.js +38 -0
- package/dist/http-api/internal/toCodecHttpProperties.js.map +1 -0
- package/dist/index.d.ts +20 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +20 -0
- package/dist/index.js.map +1 -1
- package/dist/internal/arbitrary/runner.d.ts.map +1 -1
- package/dist/internal/arbitrary/runner.js +120 -44
- package/dist/internal/arbitrary/runner.js.map +1 -1
- package/dist/internal/core.js +3 -1
- package/dist/internal/core.js.map +1 -1
- package/dist/internal/dateTime.js +19 -7
- package/dist/internal/dateTime.js.map +1 -1
- package/dist/internal/effect.js +106 -87
- package/dist/internal/effect.js.map +1 -1
- package/dist/internal/equal.js +14 -0
- package/dist/internal/equal.js.map +1 -1
- package/dist/internal/hashMap.js +2 -2
- package/dist/internal/hashMap.js.map +1 -1
- package/dist/internal/hydration.d.ts +2 -0
- package/dist/internal/hydration.d.ts.map +1 -0
- package/dist/internal/hydration.js +15 -0
- package/dist/internal/hydration.js.map +1 -0
- package/dist/internal/inflate.d.ts +2 -0
- package/dist/internal/inflate.d.ts.map +1 -0
- package/dist/internal/inflate.js +680 -0
- package/dist/internal/inflate.js.map +1 -0
- package/dist/internal/jsonSchema.d.ts +2 -0
- package/dist/internal/jsonSchema.d.ts.map +1 -0
- package/dist/internal/jsonSchema.js +28 -0
- package/dist/internal/jsonSchema.js.map +1 -0
- package/dist/internal/matcher.js +1 -1
- package/dist/internal/matcher.js.map +1 -1
- package/dist/internal/record.js +6 -0
- package/dist/internal/record.js.map +1 -1
- package/dist/internal/request.js +20 -7
- package/dist/internal/request.js.map +1 -1
- package/dist/internal/schedule.js +17 -22
- package/dist/internal/schedule.js.map +1 -1
- package/dist/internal/schema/compilerRegistry.js +4 -1
- package/dist/internal/schema/compilerRegistry.js.map +1 -1
- package/dist/internal/schema/content.d.ts +2 -0
- package/dist/internal/schema/content.d.ts.map +1 -0
- package/dist/internal/schema/content.js +13 -0
- package/dist/internal/schema/content.js.map +1 -0
- package/dist/internal/schema/fromJsonSchemaDocument.js +253 -255
- package/dist/internal/schema/fromJsonSchemaDocument.js.map +1 -1
- package/dist/internal/schema/fromRepresentation.js +2 -1
- package/dist/internal/schema/fromRepresentation.js.map +1 -1
- package/dist/internal/schema/interpreter.js +51 -36
- package/dist/internal/schema/interpreter.js.map +1 -1
- package/dist/internal/schema/standardSchema.js +42 -35
- package/dist/internal/schema/standardSchema.js.map +1 -1
- package/dist/internal/schema/toCodeDocument.js +10 -5
- package/dist/internal/schema/toCodeDocument.js.map +1 -1
- package/dist/internal/schema/toCodec.js +99 -17
- package/dist/internal/schema/toCodec.js.map +1 -1
- package/dist/internal/schema/toFormatter.js +5 -5
- package/dist/internal/schema/toFormatter.js.map +1 -1
- package/dist/internal/schema/toJsonSchemaDocument.js +257 -170
- package/dist/internal/schema/toJsonSchemaDocument.js.map +1 -1
- package/dist/internal/schema/toRepresentation.js +107 -129
- package/dist/internal/schema/toRepresentation.js.map +1 -1
- package/dist/internal/sql.d.ts +2 -0
- package/dist/internal/sql.d.ts.map +1 -0
- package/dist/internal/sql.js +13 -0
- package/dist/internal/sql.js.map +1 -0
- package/dist/internal/trie.js +1 -3
- package/dist/internal/trie.js.map +1 -1
- package/dist/internal/uuid.js +7 -3
- package/dist/internal/uuid.js.map +1 -1
- package/dist/internal/version.js +1 -1
- package/dist/net/NetAddress.d.ts.map +1 -1
- package/dist/net/NetAddress.js +2 -8
- package/dist/net/NetAddress.js.map +1 -1
- package/dist/observability/OtlpExporter.d.ts.map +1 -1
- package/dist/observability/OtlpExporter.js +5 -12
- package/dist/observability/OtlpExporter.js.map +1 -1
- package/dist/observability/OtlpMetrics.d.ts.map +1 -1
- package/dist/observability/OtlpMetrics.js +5 -3
- package/dist/observability/OtlpMetrics.js.map +1 -1
- package/dist/observability/OtlpProxy.d.ts +154 -0
- package/dist/observability/OtlpProxy.d.ts.map +1 -0
- package/dist/observability/OtlpProxy.js +235 -0
- package/dist/observability/OtlpProxy.js.map +1 -0
- package/dist/observability/OtlpResource.d.ts +3 -1
- package/dist/observability/OtlpResource.d.ts.map +1 -1
- package/dist/observability/OtlpResource.js +11 -4
- package/dist/observability/OtlpResource.js.map +1 -1
- package/dist/observability/OtlpSerialization.d.ts +5 -0
- package/dist/observability/OtlpSerialization.d.ts.map +1 -1
- package/dist/observability/OtlpSerialization.js +14 -3
- package/dist/observability/OtlpSerialization.js.map +1 -1
- package/dist/observability/OtlpTracer.d.ts.map +1 -1
- package/dist/observability/OtlpTracer.js +4 -0
- package/dist/observability/OtlpTracer.js.map +1 -1
- package/dist/observability/index.d.ts +5 -0
- package/dist/observability/index.d.ts.map +1 -1
- package/dist/observability/index.js +5 -0
- package/dist/observability/index.js.map +1 -1
- package/dist/observability/internal/protobuf.d.ts +0 -9
- package/dist/observability/internal/protobuf.d.ts.map +1 -1
- package/dist/observability/internal/protobuf.js +2 -10
- package/dist/observability/internal/protobuf.js.map +1 -1
- package/dist/persistence/CircuitBreaker.d.ts +897 -0
- package/dist/persistence/CircuitBreaker.d.ts.map +1 -0
- package/dist/persistence/CircuitBreaker.js +1165 -0
- package/dist/persistence/CircuitBreaker.js.map +1 -0
- package/dist/persistence/PersistedCache.d.ts.map +1 -1
- package/dist/persistence/PersistedCache.js +1 -1
- package/dist/persistence/PersistedCache.js.map +1 -1
- package/dist/persistence/PersistedQueue.d.ts +6 -2
- package/dist/persistence/PersistedQueue.d.ts.map +1 -1
- package/dist/persistence/PersistedQueue.js +162 -84
- package/dist/persistence/PersistedQueue.js.map +1 -1
- package/dist/persistence/Persistence.d.ts +28 -0
- package/dist/persistence/Persistence.d.ts.map +1 -1
- package/dist/persistence/Persistence.js +36 -8
- package/dist/persistence/Persistence.js.map +1 -1
- package/dist/persistence/RateLimiter.d.ts.map +1 -1
- package/dist/persistence/RateLimiter.js +8 -12
- package/dist/persistence/RateLimiter.js.map +1 -1
- package/dist/persistence/Redis.d.ts +78 -2
- package/dist/persistence/Redis.d.ts.map +1 -1
- package/dist/persistence/Redis.js +62 -7
- package/dist/persistence/Redis.js.map +1 -1
- package/dist/persistence/UserDirectories.d.ts +129 -0
- package/dist/persistence/UserDirectories.d.ts.map +1 -0
- package/dist/persistence/UserDirectories.js +178 -0
- package/dist/persistence/UserDirectories.js.map +1 -0
- package/dist/persistence/index.d.ts +10 -0
- package/dist/persistence/index.d.ts.map +1 -1
- package/dist/persistence/index.js +10 -0
- package/dist/persistence/index.js.map +1 -1
- package/dist/process/ChildProcess.d.ts +32 -5
- package/dist/process/ChildProcess.d.ts.map +1 -1
- package/dist/process/ChildProcess.js.map +1 -1
- package/dist/process/ChildProcessSpawner.d.ts +30 -0
- package/dist/process/ChildProcessSpawner.d.ts.map +1 -1
- package/dist/process/ChildProcessSpawner.js +5 -2
- package/dist/process/ChildProcessSpawner.js.map +1 -1
- package/dist/reactivity/AsyncResult.d.ts +1 -1
- package/dist/reactivity/AsyncResult.d.ts.map +1 -1
- package/dist/reactivity/AsyncResult.js +1 -1
- package/dist/reactivity/AsyncResult.js.map +1 -1
- package/dist/reactivity/Atom.d.ts +69 -30
- package/dist/reactivity/Atom.d.ts.map +1 -1
- package/dist/reactivity/Atom.js +40 -15
- package/dist/reactivity/Atom.js.map +1 -1
- package/dist/reactivity/AtomHttpApi.d.ts +5 -5
- package/dist/reactivity/AtomHttpApi.d.ts.map +1 -1
- package/dist/reactivity/AtomHttpApi.js +1 -1
- package/dist/reactivity/AtomHttpApi.js.map +1 -1
- package/dist/reactivity/AtomRegistry.d.ts +2 -2
- package/dist/reactivity/AtomRegistry.d.ts.map +1 -1
- package/dist/reactivity/AtomRegistry.js +44 -9
- package/dist/reactivity/AtomRegistry.js.map +1 -1
- package/dist/reactivity/AtomRpc.d.ts +3 -3
- package/dist/reactivity/AtomRpc.d.ts.map +1 -1
- package/dist/reactivity/AtomRpc.js +1 -1
- package/dist/reactivity/AtomRpc.js.map +1 -1
- package/dist/reactivity/Hydration.d.ts.map +1 -1
- package/dist/reactivity/Hydration.js +46 -12
- package/dist/reactivity/Hydration.js.map +1 -1
- package/dist/reactivity/Reactivity.d.ts +71 -7
- package/dist/reactivity/Reactivity.d.ts.map +1 -1
- package/dist/reactivity/Reactivity.js +21 -12
- package/dist/reactivity/Reactivity.js.map +1 -1
- package/dist/rpc/Rpc.d.ts +18 -0
- package/dist/rpc/Rpc.d.ts.map +1 -1
- package/dist/rpc/Rpc.js +20 -0
- package/dist/rpc/Rpc.js.map +1 -1
- package/dist/rpc/RpcClient.d.ts +26 -2
- package/dist/rpc/RpcClient.d.ts.map +1 -1
- package/dist/rpc/RpcClient.js +198 -61
- package/dist/rpc/RpcClient.js.map +1 -1
- package/dist/rpc/RpcSerialization.d.ts +29 -0
- package/dist/rpc/RpcSerialization.d.ts.map +1 -1
- package/dist/rpc/RpcSerialization.js +41 -13
- package/dist/rpc/RpcSerialization.js.map +1 -1
- package/dist/rpc/RpcServer.d.ts.map +1 -1
- package/dist/rpc/RpcServer.js +20 -19
- package/dist/rpc/RpcServer.js.map +1 -1
- package/dist/rpc/RpcTest.d.ts +1 -0
- package/dist/rpc/RpcTest.d.ts.map +1 -1
- package/dist/rpc/RpcTest.js +1 -0
- package/dist/rpc/RpcTest.js.map +1 -1
- package/dist/schema/Model.d.ts +1 -1
- package/dist/schema/VariantSchema.d.ts +22 -3
- package/dist/schema/VariantSchema.d.ts.map +1 -1
- package/dist/schema/VariantSchema.js +32 -18
- package/dist/schema/VariantSchema.js.map +1 -1
- package/dist/socket/Socket.d.ts +23 -1
- package/dist/socket/Socket.d.ts.map +1 -1
- package/dist/socket/Socket.js +36 -3
- package/dist/socket/Socket.js.map +1 -1
- package/dist/sql/Migrator.d.ts +2 -1
- package/dist/sql/Migrator.d.ts.map +1 -1
- package/dist/sql/Migrator.js +21 -6
- package/dist/sql/Migrator.js.map +1 -1
- package/dist/sql/SqlClient.d.ts +148 -5
- package/dist/sql/SqlClient.d.ts.map +1 -1
- package/dist/sql/SqlClient.js +155 -27
- package/dist/sql/SqlClient.js.map +1 -1
- package/dist/sql/SqlResolver.d.ts +13 -0
- package/dist/sql/SqlResolver.d.ts.map +1 -1
- package/dist/sql/SqlResolver.js +27 -4
- package/dist/sql/SqlResolver.js.map +1 -1
- package/dist/sql/Statement.d.ts +10 -1
- package/dist/sql/Statement.d.ts.map +1 -1
- package/dist/sql/Statement.js +45 -7
- package/dist/sql/Statement.js.map +1 -1
- package/dist/testing/TestClock.d.ts.map +1 -1
- package/dist/testing/TestClock.js +4 -2
- package/dist/testing/TestClock.js.map +1 -1
- package/dist/testing/TestSchema.d.ts +7 -1
- package/dist/testing/TestSchema.d.ts.map +1 -1
- package/dist/testing/TestSchema.js +9 -3
- package/dist/testing/TestSchema.js.map +1 -1
- package/dist/workflow/DurableDeferred.d.ts.map +1 -1
- package/dist/workflow/DurableDeferred.js +21 -2
- package/dist/workflow/DurableDeferred.js.map +1 -1
- package/dist/workflow/WorkflowEngine.d.ts.map +1 -1
- package/dist/workflow/WorkflowEngine.js +18 -4
- package/dist/workflow/WorkflowEngine.js.map +1 -1
- package/package.json +13 -3
- package/src/Arbitrary.ts +10 -2
- package/src/Array.ts +128 -55
- package/src/Bytes.ts +111 -0
- package/src/Channel.ts +308 -452
- package/src/ChannelSchema.ts +1 -49
- package/src/Chunk.ts +55 -61
- package/src/Config.ts +12 -86
- package/src/ConfigProvider.ts +2 -1
- package/src/Cron.ts +6 -3
- package/src/Data.ts +60 -265
- package/src/Duration.ts +66 -16
- package/src/Effect.ts +503 -168
- package/src/Equal.ts +8 -1
- package/src/Equivalence.ts +7 -4
- package/src/Exit.ts +27 -12
- package/src/FiberHandle.ts +10 -9
- package/src/FiberMap.ts +13 -66
- package/src/FileSystem.ts +10 -0
- package/src/Formatter.ts +28 -13
- package/src/Graph.ts +171 -1263
- package/src/Hash.ts +4 -1
- package/src/HashSet.ts +0 -60
- package/src/Iterable.ts +15 -14
- package/src/JsonPatch.ts +4 -0
- package/src/JsonSchema.ts +40 -43
- package/src/Layer.ts +2 -2
- package/src/ManagedRuntime.ts +72 -6
- package/src/Metric.ts +252 -510
- package/src/MutableHashMap.ts +4 -473
- package/src/MutableList.ts +7 -5
- package/src/MutableRef.ts +8 -1
- package/src/Number.ts +2 -2
- package/src/Optic.ts +17 -332
- package/src/PartitionedSemaphore.ts +24 -13
- package/src/Path.ts +9 -1
- package/src/Pool.ts +109 -37
- package/src/PubSub.ts +17 -13
- package/src/Queue.ts +5 -37
- package/src/Random.ts +1 -1
- package/src/RcMap.ts +14 -8
- package/src/Record.ts +51 -0
- package/src/Ref.ts +15 -104
- package/src/References.ts +5 -4
- package/src/RequestResolver.ts +46 -87
- package/src/Resource.ts +1 -1
- package/src/Runtime.ts +19 -18
- package/src/Schedule.ts +3 -95
- package/src/Schema.ts +639 -381
- package/src/SchemaAST.ts +40 -29
- package/src/SchemaGetter.ts +22 -5
- package/src/SchemaIssue.ts +44 -53
- package/src/SchemaParser.ts +51 -18
- package/src/SchemaRepresentation.ts +95 -35
- package/src/SchemaTransformation.ts +10 -3
- package/src/Scope.ts +12 -2
- package/src/ScopedCache.ts +17 -142
- package/src/SemVer.ts +1528 -0
- package/src/SemVerRange.ts +883 -0
- package/src/Semaphore.ts +67 -40
- package/src/Sink.ts +21 -4
- package/src/Stream.ts +367 -1027
- package/src/String.ts +11 -8
- package/src/TextDiff.ts +766 -0
- package/src/Tracer.ts +15 -1
- package/src/TxHashMap.ts +1 -103
- package/src/TxHashSet.ts +48 -753
- package/src/ai/AiError.ts +66 -4
- package/src/ai/Chat.ts +10 -5
- package/src/ai/Decision.ts +49 -1
- package/src/ai/DecisionModel.ts +264 -108
- package/src/ai/EmbeddingModel.ts +25 -13
- package/src/ai/LanguageModel.ts +9 -0
- package/src/ai/McpClient.ts +1211 -0
- package/src/ai/McpClientError.ts +329 -0
- package/src/ai/McpProtocol.ts +2 -2
- package/src/ai/McpSchema.ts +153 -35
- package/src/ai/McpServer.ts +231 -233
- package/src/ai/Prompt.ts +114 -35
- package/src/ai/Response.ts +220 -65
- package/src/ai/Tool.ts +50 -6
- package/src/ai/Toolkit.ts +82 -11
- package/src/ai/index.ts +12 -0
- package/src/ai/internal/mcpCore.ts +13 -14
- package/src/ai/internal/mcpProtocol/v2024_11_05.ts +1 -1
- package/src/ai/internal/mcpProtocol/v2025_03_26.ts +1 -1
- package/src/ai/internal/mcpProtocol/v2025_06_18.ts +3 -3
- package/src/ai/internal/mcpProtocol/v2025_11_25.ts +3 -3
- package/src/ai/internal/mcpProtocol/v2026_07_28.ts +12 -14
- package/src/ai/internal/mcpProtocol.ts +22 -2
- package/src/ai/internal/mcpRuntime.ts +3 -4
- package/src/ai/internal/mcpSchema/v2024_11_05.ts +20 -13
- package/src/ai/internal/mcpSchema/v2025_03_26.ts +4 -2
- package/src/ai/internal/mcpSchema/v2025_06_18.ts +7 -7
- package/src/ai/internal/mcpSchema/v2025_11_25.ts +8 -8
- package/src/ai/internal/mcpSchema/v2026_07_28.ts +44 -42
- package/src/cli/Argument.ts +15 -0
- package/src/cli/CliError.ts +136 -4
- package/src/cli/CliOutput.ts +183 -6
- package/src/cli/Command.ts +367 -48
- package/src/cli/Completions.ts +56 -0
- package/src/cli/Flag.ts +132 -0
- package/src/cli/GlobalFlag.ts +5 -6
- package/src/cli/Param.ts +151 -6
- package/src/cli/TerminalCapabilities.ts +159 -0
- package/src/cli/index.ts +6 -0
- package/src/cli/internal/command.ts +8 -3
- package/src/cli/internal/completions/bash.ts +83 -32
- package/src/cli/internal/completions/descriptor.ts +11 -1
- package/src/cli/internal/completions/fish.ts +10 -8
- package/src/cli/internal/completions/powershell.ts +23 -14
- package/src/cli/internal/completions/zsh.ts +8 -5
- package/src/cli/internal/formatter.ts +18 -0
- package/src/cli/internal/lexer.ts +12 -5
- package/src/cli/internal/parser.ts +31 -11
- package/src/cluster/ClusterCron.ts +94 -35
- package/src/cluster/ClusterMetrics.ts +149 -7
- package/src/cluster/ClusterWorkflowEngine.ts +130 -57
- package/src/cluster/Entity.ts +4 -0
- package/src/cluster/MessageStorage.ts +26 -14
- package/src/cluster/Runners.ts +76 -25
- package/src/cluster/Sharding.ts +200 -58
- package/src/cluster/ShardingConfig.ts +20 -0
- package/src/cluster/Snowflake.ts +3 -7
- package/src/cluster/SqlMessageStorage.ts +58 -55
- package/src/cluster/SqlRunnerStorage.ts +120 -51
- package/src/cluster/internal/entityManager.ts +155 -32
- package/src/devtools/DevTools.ts +3 -2
- package/src/devtools/DevToolsClient.ts +29 -10
- package/src/encoding/Base64.ts +38 -0
- package/src/encoding/Base64Url.ts +31 -0
- package/src/encoding/Ini.ts +3 -0
- package/src/encoding/JsonArray.ts +849 -0
- package/src/encoding/Ndjson.ts +211 -20
- package/src/encoding/SchemaBinary.ts +14 -48
- package/src/encoding/Sse.ts +4 -3
- package/src/encoding/Tar.ts +1417 -0
- package/src/encoding/Toml.ts +36 -19
- package/src/encoding/Xml.ts +2037 -0
- package/src/encoding/Yaml.ts +108 -36
- package/src/encoding/Zip.ts +1558 -0
- package/src/encoding/index.ts +24 -0
- package/src/eventlog/EventJournal.ts +611 -227
- package/src/eventlog/EventLog.ts +496 -196
- package/src/eventlog/EventLogEncryption.ts +128 -43
- package/src/eventlog/EventLogMessage.ts +62 -11
- package/src/eventlog/EventLogRemote.ts +77 -21
- package/src/eventlog/EventLogServer.ts +162 -20
- package/src/eventlog/EventLogServerEncrypted.ts +121 -80
- package/src/eventlog/EventLogServerUnencrypted.ts +180 -77
- package/src/eventlog/EventRow.ts +706 -0
- package/src/eventlog/SqlEventJournal.ts +496 -193
- package/src/eventlog/SqlEventLogServerEncrypted.ts +212 -83
- package/src/eventlog/SqlEventLogServerUnencrypted.ts +141 -62
- package/src/eventlog/index.ts +6 -0
- package/src/eventlog/internal/conflicts.ts +119 -0
- package/src/graphql/GraphQLClientError.ts +5 -12
- package/src/graphql/GraphQLProtocol.ts +12 -9
- package/src/graphql/GraphQLResolver.ts +90 -239
- package/src/http/Cookies.ts +10 -11
- package/src/http/FetchHttpClient.ts +56 -6
- package/src/http/FindMyWay/internal/router.ts +11 -0
- package/src/http/Headers.ts +337 -154
- package/src/http/HttpClient.ts +673 -142
- package/src/http/HttpClientError.ts +35 -1
- package/src/http/HttpClientRequest.ts +151 -5
- package/src/http/HttpClientResponse.ts +71 -0
- package/src/http/HttpEffect.ts +25 -33
- package/src/http/HttpIncomingMessage.ts +3 -23
- package/src/http/HttpMiddleware.ts +194 -40
- package/src/http/HttpRouter.ts +10 -3
- package/src/http/HttpServerError.ts +8 -5
- package/src/http/HttpServerRequest.ts +172 -27
- package/src/http/HttpServerResponse.ts +49 -23
- package/src/http/HttpStaticServer.ts +71 -26
- package/src/http/MultipartParser/internal/contentType.ts +109 -8
- package/src/http/MultipartParser/internal/headers.ts +4 -16
- package/src/http/MultipartParser/internal/multipart.ts +10 -32
- package/src/http/Url.ts +6 -1
- package/src/http/UrlParams.ts +6 -1
- package/src/http/internal/compression.ts +4 -5
- package/src/http/internal/decompression.ts +32 -17
- package/src/http/internal/httpBody.ts +10 -2
- package/src/http/internal/lazyStream.ts +25 -0
- package/src/http/internal/requestState.ts +33 -0
- package/src/http/internal/urlParams.ts +29 -0
- package/src/http/internal/webResponse.ts +20 -0
- package/src/http-api/HttpApi.ts +4 -7
- package/src/http-api/HttpApiBuilder.ts +190 -32
- package/src/http-api/HttpApiClient.ts +364 -90
- package/src/http-api/HttpApiEndpoint.ts +248 -46
- package/src/http-api/HttpApiError.ts +55 -0
- package/src/http-api/HttpApiScalar.ts +4 -3
- package/src/http-api/HttpApiSchema.ts +373 -18
- package/src/http-api/HttpApiSwagger.ts +11 -4
- package/src/http-api/HttpApiTest.ts +36 -11
- package/src/http-api/OpenApi.ts +103 -58
- package/src/http-api/internal/path.ts +40 -12
- package/src/http-api/internal/toCodecHttpProperties.ts +56 -0
- package/src/index.ts +24 -0
- package/src/internal/arbitrary/runner.ts +133 -36
- package/src/internal/core.ts +3 -1
- package/src/internal/dateTime.ts +20 -7
- package/src/internal/effect.ts +144 -100
- package/src/internal/equal.ts +17 -0
- package/src/internal/hashMap.ts +2 -2
- package/src/internal/hydration.ts +15 -0
- package/src/internal/inflate.ts +710 -0
- package/src/internal/jsonSchema.ts +27 -0
- package/src/internal/matcher.ts +1 -1
- package/src/internal/record.ts +6 -0
- package/src/internal/request.ts +21 -6
- package/src/internal/schedule.ts +20 -39
- package/src/internal/schema/compilerRegistry.ts +6 -1
- package/src/internal/schema/content.ts +18 -0
- package/src/internal/schema/fromJsonSchemaDocument.ts +458 -351
- package/src/internal/schema/fromRepresentation.ts +2 -1
- package/src/internal/schema/interpreter.ts +58 -45
- package/src/internal/schema/standardSchema.ts +34 -32
- package/src/internal/schema/toCodeDocument.ts +12 -7
- package/src/internal/schema/toCodec.ts +134 -15
- package/src/internal/schema/toFormatter.ts +6 -6
- package/src/internal/schema/toJsonSchemaDocument.ts +246 -194
- package/src/internal/schema/toRepresentation.ts +122 -140
- package/src/internal/sql.ts +14 -0
- package/src/internal/trie.ts +1 -3
- package/src/internal/uuid.ts +15 -10
- package/src/internal/version.ts +1 -1
- package/src/net/NetAddress.ts +2 -9
- package/src/observability/OtlpExporter.ts +5 -12
- package/src/observability/OtlpMetrics.ts +5 -3
- package/src/observability/OtlpProxy.ts +314 -0
- package/src/observability/OtlpResource.ts +16 -6
- package/src/observability/OtlpSerialization.ts +17 -3
- package/src/observability/OtlpTracer.ts +4 -0
- package/src/observability/index.ts +6 -0
- package/src/observability/internal/protobuf.ts +2 -10
- package/src/persistence/CircuitBreaker.ts +1678 -0
- package/src/persistence/PersistedCache.ts +3 -1
- package/src/persistence/PersistedQueue.ts +223 -153
- package/src/persistence/Persistence.ts +64 -30
- package/src/persistence/RateLimiter.ts +18 -21
- package/src/persistence/Redis.ts +129 -8
- package/src/persistence/UserDirectories.ts +273 -0
- package/src/persistence/index.ts +12 -0
- package/src/process/ChildProcess.ts +32 -5
- package/src/process/ChildProcessSpawner.ts +41 -2
- package/src/reactivity/AsyncResult.ts +5 -39
- package/src/reactivity/Atom.ts +134 -166
- package/src/reactivity/AtomHttpApi.ts +10 -16
- package/src/reactivity/AtomRegistry.ts +50 -29
- package/src/reactivity/AtomRpc.ts +6 -22
- package/src/reactivity/Hydration.ts +53 -12
- package/src/reactivity/Reactivity.ts +97 -39
- package/src/rpc/Rpc.ts +21 -0
- package/src/rpc/RpcClient.ts +283 -104
- package/src/rpc/RpcSerialization.ts +53 -14
- package/src/rpc/RpcServer.ts +27 -21
- package/src/rpc/RpcTest.ts +3 -0
- package/src/schema/VariantSchema.ts +86 -22
- package/src/socket/Socket.ts +45 -20
- package/src/sql/Migrator.ts +26 -11
- package/src/sql/SqlClient.ts +273 -29
- package/src/sql/SqlResolver.ts +32 -9
- package/src/sql/Statement.ts +65 -10
- package/src/testing/TestClock.ts +4 -1
- package/src/testing/TestSchema.ts +9 -3
- package/src/workflow/DurableDeferred.ts +23 -6
- package/src/workflow/WorkflowEngine.ts +34 -10
- package/dist/http/internal/preResponseHandler.d.ts +0 -2
- package/dist/http/internal/preResponseHandler.d.ts.map +0 -1
- package/dist/http/internal/preResponseHandler.js +0 -14
- package/dist/http/internal/preResponseHandler.js.map +0 -1
- package/src/http/internal/preResponseHandler.ts +0 -19
package/src/cli/Command.ts
CHANGED
|
@@ -34,6 +34,7 @@ import * as CliOutput from "./CliOutput.ts"
|
|
|
34
34
|
import * as GlobalFlag from "./GlobalFlag.ts"
|
|
35
35
|
import { checkForDuplicateFlags, makeCommand, makeParser, toImpl, TypeId } from "./internal/command.ts"
|
|
36
36
|
import { mergeConfig, parseConfig } from "./internal/config.ts"
|
|
37
|
+
import { resolveFormatter } from "./internal/formatter.ts"
|
|
37
38
|
import { getGlobalFlagsForCommandPath, getGlobalFlagsForCommandTree, getHelpForCommandPath } from "./internal/help.ts"
|
|
38
39
|
import * as Lexer from "./internal/lexer.ts"
|
|
39
40
|
import * as Parser from "./internal/parser.ts"
|
|
@@ -1121,6 +1122,247 @@ export const withHandler: {
|
|
|
1121
1122
|
): Command<Name, A, ContextInput, E, Exclude<R, BuiltInSettingContext>> =>
|
|
1122
1123
|
makeCommand({ ...toImpl(self), handle: handler } as any))
|
|
1123
1124
|
|
|
1125
|
+
/**
|
|
1126
|
+
* Validates the parsed input of a command before the handler runs.
|
|
1127
|
+
*
|
|
1128
|
+
* **Details**
|
|
1129
|
+
*
|
|
1130
|
+
* Use this for rules that involve several flags or arguments, such as
|
|
1131
|
+
* mutually exclusive flags. The validation receives the same input as the
|
|
1132
|
+
* handler, with defaults, prompts and the wizard already applied. A failure
|
|
1133
|
+
* is shown with the command help, like a parse error, and the handler does
|
|
1134
|
+
* not run. Fail with `CliError.ValidationError` to supply the message, or
|
|
1135
|
+
* with any other `CliError`. Validations run in the order they were added and
|
|
1136
|
+
* stop at the first failure. Adding a handler later with `withHandler` keeps
|
|
1137
|
+
* them.
|
|
1138
|
+
*
|
|
1139
|
+
* A validation sees only the input that exists where it is applied. Add it
|
|
1140
|
+
* after `withSharedFlags` to see the shared flags. Added after
|
|
1141
|
+
* `withSubcommands`, it also runs when a subcommand is selected, with the
|
|
1142
|
+
* parent's shared flags as input.
|
|
1143
|
+
*
|
|
1144
|
+
* **Example** (Rejecting mutually exclusive flags)
|
|
1145
|
+
*
|
|
1146
|
+
* ```ts import.meta.vitest
|
|
1147
|
+
* import { Effect, FileSystem, Layer, Path, Stdio, Terminal } from "effect"
|
|
1148
|
+
* import { CliError, Command, Flag } from "effect/cli"
|
|
1149
|
+
* import { ChildProcessSpawner } from "effect/process"
|
|
1150
|
+
* import { TestConsole } from "effect/testing"
|
|
1151
|
+
*
|
|
1152
|
+
* const CliTestLayer = Layer.mergeAll(
|
|
1153
|
+
* FileSystem.layerNoop({}),
|
|
1154
|
+
* Path.layer,
|
|
1155
|
+
* Stdio.layerTest({}),
|
|
1156
|
+
* TestConsole.layer,
|
|
1157
|
+
* Layer.succeed(Terminal.Terminal, Terminal.make({
|
|
1158
|
+
* columns: Effect.succeed(80),
|
|
1159
|
+
* rows: Effect.succeed(24),
|
|
1160
|
+
* readInput: Effect.die("unused"),
|
|
1161
|
+
* readLine: Effect.die("unused"),
|
|
1162
|
+
* display: () => Effect.void
|
|
1163
|
+
* })),
|
|
1164
|
+
* Layer.succeed(
|
|
1165
|
+
* ChildProcessSpawner.ChildProcessSpawner,
|
|
1166
|
+
* ChildProcessSpawner.make(() => Effect.die("unused"))
|
|
1167
|
+
* )
|
|
1168
|
+
* )
|
|
1169
|
+
*
|
|
1170
|
+
* const download = Command.make("download", {
|
|
1171
|
+
* useApi: Flag.Boolean("use-api").pipe(Flag.withDefault(false)),
|
|
1172
|
+
* useDocker: Flag.Boolean("use-docker").pipe(Flag.withDefault(false))
|
|
1173
|
+
* }, () => Effect.void).pipe(
|
|
1174
|
+
* Command.validate(({ useApi, useDocker }) =>
|
|
1175
|
+
* useApi && useDocker
|
|
1176
|
+
* ? Effect.fail(
|
|
1177
|
+
* new CliError.ValidationError({
|
|
1178
|
+
* message: "--use-api and --use-docker are mutually exclusive"
|
|
1179
|
+
* })
|
|
1180
|
+
* )
|
|
1181
|
+
* : Effect.void
|
|
1182
|
+
* )
|
|
1183
|
+
* )
|
|
1184
|
+
*
|
|
1185
|
+
* const error = await Effect.runPromise(
|
|
1186
|
+
* Command.runWith(download, { version: "1.0.0" })(["--use-api", "--use-docker"]).pipe(
|
|
1187
|
+
* Effect.flip,
|
|
1188
|
+
* Effect.provide(CliTestLayer)
|
|
1189
|
+
* )
|
|
1190
|
+
* )
|
|
1191
|
+
* error._tag // => "ShowHelp"
|
|
1192
|
+
* error.errors[0].message // => "--use-api and --use-docker are mutually exclusive"
|
|
1193
|
+
* ```
|
|
1194
|
+
*
|
|
1195
|
+
* @stability unstable
|
|
1196
|
+
* @category combinators
|
|
1197
|
+
* @since 4.1.0
|
|
1198
|
+
*/
|
|
1199
|
+
export const validate: {
|
|
1200
|
+
/**
|
|
1201
|
+
* Validates the parsed input of a command before the handler runs.
|
|
1202
|
+
*
|
|
1203
|
+
* **Details**
|
|
1204
|
+
*
|
|
1205
|
+
* Use this for rules that involve several flags or arguments, such as
|
|
1206
|
+
* mutually exclusive flags. The validation receives the same input as the
|
|
1207
|
+
* handler, with defaults, prompts and the wizard already applied. A failure
|
|
1208
|
+
* is shown with the command help, like a parse error, and the handler does
|
|
1209
|
+
* not run. Fail with `CliError.ValidationError` to supply the message, or
|
|
1210
|
+
* with any other `CliError`. Validations run in the order they were added and
|
|
1211
|
+
* stop at the first failure. Adding a handler later with `withHandler` keeps
|
|
1212
|
+
* them.
|
|
1213
|
+
*
|
|
1214
|
+
* A validation sees only the input that exists where it is applied. Add it
|
|
1215
|
+
* after `withSharedFlags` to see the shared flags. Added after
|
|
1216
|
+
* `withSubcommands`, it also runs when a subcommand is selected, with the
|
|
1217
|
+
* parent's shared flags as input.
|
|
1218
|
+
*
|
|
1219
|
+
* **Example** (Rejecting mutually exclusive flags)
|
|
1220
|
+
*
|
|
1221
|
+
* ```ts import.meta.vitest
|
|
1222
|
+
* import { Effect, FileSystem, Layer, Path, Stdio, Terminal } from "effect"
|
|
1223
|
+
* import { CliError, Command, Flag } from "effect/cli"
|
|
1224
|
+
* import { ChildProcessSpawner } from "effect/process"
|
|
1225
|
+
* import { TestConsole } from "effect/testing"
|
|
1226
|
+
*
|
|
1227
|
+
* const CliTestLayer = Layer.mergeAll(
|
|
1228
|
+
* FileSystem.layerNoop({}),
|
|
1229
|
+
* Path.layer,
|
|
1230
|
+
* Stdio.layerTest({}),
|
|
1231
|
+
* TestConsole.layer,
|
|
1232
|
+
* Layer.succeed(Terminal.Terminal, Terminal.make({
|
|
1233
|
+
* columns: Effect.succeed(80),
|
|
1234
|
+
* rows: Effect.succeed(24),
|
|
1235
|
+
* readInput: Effect.die("unused"),
|
|
1236
|
+
* readLine: Effect.die("unused"),
|
|
1237
|
+
* display: () => Effect.void
|
|
1238
|
+
* })),
|
|
1239
|
+
* Layer.succeed(
|
|
1240
|
+
* ChildProcessSpawner.ChildProcessSpawner,
|
|
1241
|
+
* ChildProcessSpawner.make(() => Effect.die("unused"))
|
|
1242
|
+
* )
|
|
1243
|
+
* )
|
|
1244
|
+
*
|
|
1245
|
+
* const download = Command.make("download", {
|
|
1246
|
+
* useApi: Flag.Boolean("use-api").pipe(Flag.withDefault(false)),
|
|
1247
|
+
* useDocker: Flag.Boolean("use-docker").pipe(Flag.withDefault(false))
|
|
1248
|
+
* }, () => Effect.void).pipe(
|
|
1249
|
+
* Command.validate(({ useApi, useDocker }) =>
|
|
1250
|
+
* useApi && useDocker
|
|
1251
|
+
* ? Effect.fail(
|
|
1252
|
+
* new CliError.ValidationError({
|
|
1253
|
+
* message: "--use-api and --use-docker are mutually exclusive"
|
|
1254
|
+
* })
|
|
1255
|
+
* )
|
|
1256
|
+
* : Effect.void
|
|
1257
|
+
* )
|
|
1258
|
+
* )
|
|
1259
|
+
*
|
|
1260
|
+
* const error = await Effect.runPromise(
|
|
1261
|
+
* Command.runWith(download, { version: "1.0.0" })(["--use-api", "--use-docker"]).pipe(
|
|
1262
|
+
* Effect.flip,
|
|
1263
|
+
* Effect.provide(CliTestLayer)
|
|
1264
|
+
* )
|
|
1265
|
+
* )
|
|
1266
|
+
* error._tag // => "ShowHelp"
|
|
1267
|
+
* error.errors[0].message // => "--use-api and --use-docker are mutually exclusive"
|
|
1268
|
+
* ```
|
|
1269
|
+
*
|
|
1270
|
+
* @stability unstable
|
|
1271
|
+
* @category combinators
|
|
1272
|
+
* @since 4.1.0
|
|
1273
|
+
*/
|
|
1274
|
+
<Input>(f: (input: Input) => Effect.Effect<void, CliError.CliError, Environment>): <Name extends string, ContextInput, E, R>(
|
|
1275
|
+
self: Command<Name, Input, ContextInput, E, R>
|
|
1276
|
+
) => Command<Name, Input, ContextInput, E, R>
|
|
1277
|
+
/**
|
|
1278
|
+
* Validates the parsed input of a command before the handler runs.
|
|
1279
|
+
*
|
|
1280
|
+
* **Details**
|
|
1281
|
+
*
|
|
1282
|
+
* Use this for rules that involve several flags or arguments, such as
|
|
1283
|
+
* mutually exclusive flags. The validation receives the same input as the
|
|
1284
|
+
* handler, with defaults, prompts and the wizard already applied. A failure
|
|
1285
|
+
* is shown with the command help, like a parse error, and the handler does
|
|
1286
|
+
* not run. Fail with `CliError.ValidationError` to supply the message, or
|
|
1287
|
+
* with any other `CliError`. Validations run in the order they were added and
|
|
1288
|
+
* stop at the first failure. Adding a handler later with `withHandler` keeps
|
|
1289
|
+
* them.
|
|
1290
|
+
*
|
|
1291
|
+
* A validation sees only the input that exists where it is applied. Add it
|
|
1292
|
+
* after `withSharedFlags` to see the shared flags. Added after
|
|
1293
|
+
* `withSubcommands`, it also runs when a subcommand is selected, with the
|
|
1294
|
+
* parent's shared flags as input.
|
|
1295
|
+
*
|
|
1296
|
+
* **Example** (Rejecting mutually exclusive flags)
|
|
1297
|
+
*
|
|
1298
|
+
* ```ts import.meta.vitest
|
|
1299
|
+
* import { Effect, FileSystem, Layer, Path, Stdio, Terminal } from "effect"
|
|
1300
|
+
* import { CliError, Command, Flag } from "effect/cli"
|
|
1301
|
+
* import { ChildProcessSpawner } from "effect/process"
|
|
1302
|
+
* import { TestConsole } from "effect/testing"
|
|
1303
|
+
*
|
|
1304
|
+
* const CliTestLayer = Layer.mergeAll(
|
|
1305
|
+
* FileSystem.layerNoop({}),
|
|
1306
|
+
* Path.layer,
|
|
1307
|
+
* Stdio.layerTest({}),
|
|
1308
|
+
* TestConsole.layer,
|
|
1309
|
+
* Layer.succeed(Terminal.Terminal, Terminal.make({
|
|
1310
|
+
* columns: Effect.succeed(80),
|
|
1311
|
+
* rows: Effect.succeed(24),
|
|
1312
|
+
* readInput: Effect.die("unused"),
|
|
1313
|
+
* readLine: Effect.die("unused"),
|
|
1314
|
+
* display: () => Effect.void
|
|
1315
|
+
* })),
|
|
1316
|
+
* Layer.succeed(
|
|
1317
|
+
* ChildProcessSpawner.ChildProcessSpawner,
|
|
1318
|
+
* ChildProcessSpawner.make(() => Effect.die("unused"))
|
|
1319
|
+
* )
|
|
1320
|
+
* )
|
|
1321
|
+
*
|
|
1322
|
+
* const download = Command.make("download", {
|
|
1323
|
+
* useApi: Flag.Boolean("use-api").pipe(Flag.withDefault(false)),
|
|
1324
|
+
* useDocker: Flag.Boolean("use-docker").pipe(Flag.withDefault(false))
|
|
1325
|
+
* }, () => Effect.void).pipe(
|
|
1326
|
+
* Command.validate(({ useApi, useDocker }) =>
|
|
1327
|
+
* useApi && useDocker
|
|
1328
|
+
* ? Effect.fail(
|
|
1329
|
+
* new CliError.ValidationError({
|
|
1330
|
+
* message: "--use-api and --use-docker are mutually exclusive"
|
|
1331
|
+
* })
|
|
1332
|
+
* )
|
|
1333
|
+
* : Effect.void
|
|
1334
|
+
* )
|
|
1335
|
+
* )
|
|
1336
|
+
*
|
|
1337
|
+
* const error = await Effect.runPromise(
|
|
1338
|
+
* Command.runWith(download, { version: "1.0.0" })(["--use-api", "--use-docker"]).pipe(
|
|
1339
|
+
* Effect.flip,
|
|
1340
|
+
* Effect.provide(CliTestLayer)
|
|
1341
|
+
* )
|
|
1342
|
+
* )
|
|
1343
|
+
* error._tag // => "ShowHelp"
|
|
1344
|
+
* error.errors[0].message // => "--use-api and --use-docker are mutually exclusive"
|
|
1345
|
+
* ```
|
|
1346
|
+
*
|
|
1347
|
+
* @stability unstable
|
|
1348
|
+
* @category combinators
|
|
1349
|
+
* @since 4.1.0
|
|
1350
|
+
*/
|
|
1351
|
+
<Name extends string, Input, ContextInput, E, R>(
|
|
1352
|
+
self: Command<Name, Input, ContextInput, E, R>,
|
|
1353
|
+
f: (input: Input) => Effect.Effect<void, CliError.CliError, Environment>
|
|
1354
|
+
): Command<Name, Input, ContextInput, E, R>
|
|
1355
|
+
} = dual(2, <Name extends string, Input, ContextInput, E, R>(
|
|
1356
|
+
self: Command<Name, Input, ContextInput, E, R>,
|
|
1357
|
+
f: (input: Input) => Effect.Effect<void, CliError.CliError, Environment>
|
|
1358
|
+
): Command<Name, Input, ContextInput, E, R> => {
|
|
1359
|
+
const impl = toImpl(self)
|
|
1360
|
+
return makeCommand({
|
|
1361
|
+
...impl,
|
|
1362
|
+
parse: (raw) => Effect.tap(impl.parse(raw), f)
|
|
1363
|
+
}) as any
|
|
1364
|
+
})
|
|
1365
|
+
|
|
1124
1366
|
interface SubcommandGroupInternal {
|
|
1125
1367
|
readonly group: string | undefined
|
|
1126
1368
|
readonly commands: NonEmptyReadonlyArray<Command.Any>
|
|
@@ -1475,7 +1717,7 @@ export const withSubcommands: {
|
|
|
1475
1717
|
unlisted: impl.unlisted,
|
|
1476
1718
|
annotations: impl.annotations,
|
|
1477
1719
|
globalFlags: impl.globalFlags,
|
|
1478
|
-
|
|
1720
|
+
resolveExamples: impl.resolveExamples,
|
|
1479
1721
|
service: impl.service,
|
|
1480
1722
|
subcommands: normalized.groups,
|
|
1481
1723
|
parse,
|
|
@@ -1597,7 +1839,7 @@ export const withSharedFlags: {
|
|
|
1597
1839
|
unlisted: impl.unlisted,
|
|
1598
1840
|
annotations: impl.annotations,
|
|
1599
1841
|
globalFlags: impl.globalFlags,
|
|
1600
|
-
|
|
1842
|
+
resolveExamples: impl.resolveExamples,
|
|
1601
1843
|
service: impl.service as Context.Key<CommandContext<Name>, NextContextInput>,
|
|
1602
1844
|
subcommands: impl.subcommands,
|
|
1603
1845
|
parse,
|
|
@@ -2163,6 +2405,10 @@ export const annotateMerge: {
|
|
|
2163
2405
|
* Examples are exposed in structured `HelpDoc` data and rendered by the
|
|
2164
2406
|
* default formatter in an `EXAMPLES` section.
|
|
2165
2407
|
*
|
|
2408
|
+
* Pass a function to build examples from the `commandPath` shown in help, so
|
|
2409
|
+
* they stay correct wherever the command is mounted. The `examples` field
|
|
2410
|
+
* resolves the function with the command's own name as the path.
|
|
2411
|
+
*
|
|
2166
2412
|
* **Example** (Adding usage examples)
|
|
2167
2413
|
*
|
|
2168
2414
|
* ```ts import.meta.vitest
|
|
@@ -2178,6 +2424,20 @@ export const annotateMerge: {
|
|
|
2178
2424
|
* login.examples.map((example) => example.command) // => ["myapp login", "myapp login --token sbp_abc123"]
|
|
2179
2425
|
* ```
|
|
2180
2426
|
*
|
|
2427
|
+
* **Example** (Deriving examples from the command path)
|
|
2428
|
+
*
|
|
2429
|
+
* ```ts import.meta.vitest
|
|
2430
|
+
* import { Command } from "effect/cli"
|
|
2431
|
+
*
|
|
2432
|
+
* const deploy = Command.make("deploy").pipe(
|
|
2433
|
+
* Command.withExamples(({ commandPath }) => [
|
|
2434
|
+
* { command: `${commandPath.join(" ")} --yes`, description: "Take every default" }
|
|
2435
|
+
* ])
|
|
2436
|
+
* )
|
|
2437
|
+
*
|
|
2438
|
+
* deploy.examples.map((example) => example.command) // => ["deploy --yes"]
|
|
2439
|
+
* ```
|
|
2440
|
+
*
|
|
2181
2441
|
* @stability unstable
|
|
2182
2442
|
* @category combinators
|
|
2183
2443
|
* @since 4.0.0
|
|
@@ -2191,6 +2451,10 @@ export const withExamples: {
|
|
|
2191
2451
|
* Examples are exposed in structured `HelpDoc` data and rendered by the
|
|
2192
2452
|
* default formatter in an `EXAMPLES` section.
|
|
2193
2453
|
*
|
|
2454
|
+
* Pass a function to build examples from the `commandPath` shown in help, so
|
|
2455
|
+
* they stay correct wherever the command is mounted. The `examples` field
|
|
2456
|
+
* resolves the function with the command's own name as the path.
|
|
2457
|
+
*
|
|
2194
2458
|
* **Example** (Adding usage examples)
|
|
2195
2459
|
*
|
|
2196
2460
|
* ```ts import.meta.vitest
|
|
@@ -2206,11 +2470,29 @@ export const withExamples: {
|
|
|
2206
2470
|
* login.examples.map((example) => example.command) // => ["myapp login", "myapp login --token sbp_abc123"]
|
|
2207
2471
|
* ```
|
|
2208
2472
|
*
|
|
2473
|
+
* **Example** (Deriving examples from the command path)
|
|
2474
|
+
*
|
|
2475
|
+
* ```ts import.meta.vitest
|
|
2476
|
+
* import { Command } from "effect/cli"
|
|
2477
|
+
*
|
|
2478
|
+
* const deploy = Command.make("deploy").pipe(
|
|
2479
|
+
* Command.withExamples(({ commandPath }) => [
|
|
2480
|
+
* { command: `${commandPath.join(" ")} --yes`, description: "Take every default" }
|
|
2481
|
+
* ])
|
|
2482
|
+
* )
|
|
2483
|
+
*
|
|
2484
|
+
* deploy.examples.map((example) => example.command) // => ["deploy --yes"]
|
|
2485
|
+
* ```
|
|
2486
|
+
*
|
|
2209
2487
|
* @stability unstable
|
|
2210
2488
|
* @category combinators
|
|
2211
2489
|
* @since 4.0.0
|
|
2212
2490
|
*/
|
|
2213
|
-
(
|
|
2491
|
+
(
|
|
2492
|
+
examples:
|
|
2493
|
+
| ReadonlyArray<Command.Example>
|
|
2494
|
+
| ((context: { readonly commandPath: ReadonlyArray<string> }) => ReadonlyArray<Command.Example>)
|
|
2495
|
+
): <const Name extends string, Input, E, R, ContextInput>(
|
|
2214
2496
|
self: Command<Name, Input, ContextInput, E, R>
|
|
2215
2497
|
) => Command<Name, Input, ContextInput, E, R>
|
|
2216
2498
|
/**
|
|
@@ -2221,6 +2503,10 @@ export const withExamples: {
|
|
|
2221
2503
|
* Examples are exposed in structured `HelpDoc` data and rendered by the
|
|
2222
2504
|
* default formatter in an `EXAMPLES` section.
|
|
2223
2505
|
*
|
|
2506
|
+
* Pass a function to build examples from the `commandPath` shown in help, so
|
|
2507
|
+
* they stay correct wherever the command is mounted. The `examples` field
|
|
2508
|
+
* resolves the function with the command's own name as the path.
|
|
2509
|
+
*
|
|
2224
2510
|
* **Example** (Adding usage examples)
|
|
2225
2511
|
*
|
|
2226
2512
|
* ```ts import.meta.vitest
|
|
@@ -2236,18 +2522,40 @@ export const withExamples: {
|
|
|
2236
2522
|
* login.examples.map((example) => example.command) // => ["myapp login", "myapp login --token sbp_abc123"]
|
|
2237
2523
|
* ```
|
|
2238
2524
|
*
|
|
2525
|
+
* **Example** (Deriving examples from the command path)
|
|
2526
|
+
*
|
|
2527
|
+
* ```ts import.meta.vitest
|
|
2528
|
+
* import { Command } from "effect/cli"
|
|
2529
|
+
*
|
|
2530
|
+
* const deploy = Command.make("deploy").pipe(
|
|
2531
|
+
* Command.withExamples(({ commandPath }) => [
|
|
2532
|
+
* { command: `${commandPath.join(" ")} --yes`, description: "Take every default" }
|
|
2533
|
+
* ])
|
|
2534
|
+
* )
|
|
2535
|
+
*
|
|
2536
|
+
* deploy.examples.map((example) => example.command) // => ["deploy --yes"]
|
|
2537
|
+
* ```
|
|
2538
|
+
*
|
|
2239
2539
|
* @stability unstable
|
|
2240
2540
|
* @category combinators
|
|
2241
2541
|
* @since 4.0.0
|
|
2242
2542
|
*/
|
|
2243
2543
|
<const Name extends string, Input, E, R, ContextInput>(
|
|
2244
2544
|
self: Command<Name, Input, ContextInput, E, R>,
|
|
2245
|
-
examples:
|
|
2545
|
+
examples:
|
|
2546
|
+
| ReadonlyArray<Command.Example>
|
|
2547
|
+
| ((context: { readonly commandPath: ReadonlyArray<string> }) => ReadonlyArray<Command.Example>)
|
|
2246
2548
|
): Command<Name, Input, ContextInput, E, R>
|
|
2247
2549
|
} = dual(2, <const Name extends string, Input, E, R, ContextInput>(
|
|
2248
2550
|
self: Command<Name, Input, ContextInput, E, R>,
|
|
2249
|
-
examples:
|
|
2250
|
-
|
|
2551
|
+
examples:
|
|
2552
|
+
| ReadonlyArray<Command.Example>
|
|
2553
|
+
| ((context: { readonly commandPath: ReadonlyArray<string> }) => ReadonlyArray<Command.Example>)
|
|
2554
|
+
) =>
|
|
2555
|
+
makeCommand({
|
|
2556
|
+
...toImpl(self),
|
|
2557
|
+
resolveExamples: Predicate.isFunction(examples) ? (commandPath) => examples({ commandPath }) : () => examples
|
|
2558
|
+
}))
|
|
2251
2559
|
|
|
2252
2560
|
/* ========================================================================== */
|
|
2253
2561
|
/* Providing Services */
|
|
@@ -2755,19 +3063,24 @@ const showHelp = <Name extends string, Input, E, R, ContextInput>(
|
|
|
2755
3063
|
): Effect.Effect<void, CliError.CliError, Environment> =>
|
|
2756
3064
|
Effect.gen(function*() {
|
|
2757
3065
|
const { builtIns } = yield* CliConfig.CliConfig
|
|
2758
|
-
const
|
|
2759
|
-
const
|
|
2760
|
-
yield*
|
|
2761
|
-
|
|
2762
|
-
|
|
2763
|
-
|
|
3066
|
+
const presenter = yield* CliOutput.Presenter
|
|
3067
|
+
const { commandPath, errors } = error
|
|
3068
|
+
const helpDoc = yield* getHelpForCommandPath(command, commandPath, builtIns)
|
|
3069
|
+
yield* presenter.present(
|
|
3070
|
+
renderErrors && errors.length > 0
|
|
3071
|
+
? { _tag: "InvalidInvocation", commandPath, helpDoc, errors }
|
|
3072
|
+
: { _tag: "Help", reason: "Implicit", commandPath, helpDoc }
|
|
3073
|
+
)
|
|
2764
3074
|
})
|
|
2765
3075
|
|
|
2766
|
-
const showUserError = (error:
|
|
3076
|
+
const showUserError = (error: object, userMessage: string): Effect.Effect<void> =>
|
|
2767
3077
|
Effect.gen(function*() {
|
|
2768
|
-
const formatter = yield*
|
|
2769
|
-
|
|
2770
|
-
|
|
3078
|
+
const formatter = yield* resolveFormatter
|
|
3079
|
+
const rendered = error instanceof CliError.UserError
|
|
3080
|
+
? error
|
|
3081
|
+
: new CliError.UserError({ cause: error, userMessage })
|
|
3082
|
+
yield* Console.error(formatter.formatError(rendered))
|
|
3083
|
+
Object.assign(error, { [Runtime.errorReported]: false })
|
|
2771
3084
|
})
|
|
2772
3085
|
|
|
2773
3086
|
/**
|
|
@@ -2778,10 +3091,12 @@ const showUserError = (error: CliError.UserError): Effect.Effect<void> =>
|
|
|
2778
3091
|
* Use when command-line arguments should come from `Stdio` at the application
|
|
2779
3092
|
* entry point.
|
|
2780
3093
|
*
|
|
2781
|
-
* Help
|
|
2782
|
-
* `
|
|
2783
|
-
*
|
|
2784
|
-
* `
|
|
3094
|
+
* Help, version, and parse error output is written through
|
|
3095
|
+
* `CliOutput.Presenter`. Help documents are always presented. By default,
|
|
3096
|
+
* parse error details are also presented, and handler failures annotated with
|
|
3097
|
+
* `CliError.userMessage`, including `CliError.UserError`, are rendered with the
|
|
3098
|
+
* installed `CliOutput.Formatter` before the error is rethrown. Set
|
|
3099
|
+
* `renderErrors` to `false` when the host application owns error rendering.
|
|
2785
3100
|
*
|
|
2786
3101
|
* **Example** (Running commands with standard input)
|
|
2787
3102
|
*
|
|
@@ -2841,10 +3156,12 @@ export const run: {
|
|
|
2841
3156
|
* Use when command-line arguments should come from `Stdio` at the application
|
|
2842
3157
|
* entry point.
|
|
2843
3158
|
*
|
|
2844
|
-
* Help
|
|
2845
|
-
* `
|
|
2846
|
-
*
|
|
2847
|
-
* `
|
|
3159
|
+
* Help, version, and parse error output is written through
|
|
3160
|
+
* `CliOutput.Presenter`. Help documents are always presented. By default,
|
|
3161
|
+
* parse error details are also presented, and handler failures annotated with
|
|
3162
|
+
* `CliError.userMessage`, including `CliError.UserError`, are rendered with the
|
|
3163
|
+
* installed `CliOutput.Formatter` before the error is rethrown. Set
|
|
3164
|
+
* `renderErrors` to `false` when the host application owns error rendering.
|
|
2848
3165
|
*
|
|
2849
3166
|
* **Example** (Running commands with standard input)
|
|
2850
3167
|
*
|
|
@@ -2911,10 +3228,12 @@ export const run: {
|
|
|
2911
3228
|
* Use when command-line arguments should come from `Stdio` at the application
|
|
2912
3229
|
* entry point.
|
|
2913
3230
|
*
|
|
2914
|
-
* Help
|
|
2915
|
-
* `
|
|
2916
|
-
*
|
|
2917
|
-
* `
|
|
3231
|
+
* Help, version, and parse error output is written through
|
|
3232
|
+
* `CliOutput.Presenter`. Help documents are always presented. By default,
|
|
3233
|
+
* parse error details are also presented, and handler failures annotated with
|
|
3234
|
+
* `CliError.userMessage`, including `CliError.UserError`, are rendered with the
|
|
3235
|
+
* installed `CliOutput.Formatter` before the error is rethrown. Set
|
|
3236
|
+
* `renderErrors` to `false` when the host application owns error rendering.
|
|
2918
3237
|
*
|
|
2919
3238
|
* **Example** (Running commands with standard input)
|
|
2920
3239
|
*
|
|
@@ -2994,10 +3313,12 @@ export const run: {
|
|
|
2994
3313
|
* Use when you need to test CLI applications or programmatically execute
|
|
2995
3314
|
* commands with specific arguments.
|
|
2996
3315
|
*
|
|
2997
|
-
* Help
|
|
2998
|
-
* `
|
|
2999
|
-
*
|
|
3000
|
-
* `
|
|
3316
|
+
* Help, version, and parse error output is written through
|
|
3317
|
+
* `CliOutput.Presenter`. Help documents are always presented. By default,
|
|
3318
|
+
* parse error details are also presented, and handler failures annotated with
|
|
3319
|
+
* `CliError.userMessage`, including `CliError.UserError`, are rendered with the
|
|
3320
|
+
* installed `CliOutput.Formatter` before the error is rethrown. Set
|
|
3321
|
+
* `renderErrors` to `false` when the host application owns error rendering.
|
|
3001
3322
|
*
|
|
3002
3323
|
* **Example** (Running commands with explicit arguments)
|
|
3003
3324
|
*
|
|
@@ -3080,6 +3401,9 @@ export const runWith = <const Name extends string, Input, E, R, ContextInput>(
|
|
|
3080
3401
|
// 3. Parse command arguments from remaining tokens
|
|
3081
3402
|
const parsedArgs = yield* Parser.parseArgs({ tokens: remainder, trailingOperands }, command)
|
|
3082
3403
|
const commandPath = [command.name, ...Parser.getCommandPath(parsedArgs)] as const
|
|
3404
|
+
const toShowHelp = Effect.mapError((error: CliError.CliError) =>
|
|
3405
|
+
error._tag === "ShowHelp" ? error : new CliError.ShowHelp({ commandPath, errors: [error] })
|
|
3406
|
+
)
|
|
3083
3407
|
const handlerCtx: GlobalFlag.HandlerContext = { builtIns, command, commandPath, version: config.version }
|
|
3084
3408
|
const activeFlags = getGlobalFlagsForCommandPath(command, commandPath, builtIns)
|
|
3085
3409
|
|
|
@@ -3102,7 +3426,7 @@ export const runWith = <const Name extends string, Input, E, R, ContextInput>(
|
|
|
3102
3426
|
return entries !== undefined && entries.length > 0
|
|
3103
3427
|
})
|
|
3104
3428
|
if (!hasEntry) continue
|
|
3105
|
-
const [, value] = yield* flag.flag.parse(emptyArgs)
|
|
3429
|
+
const [, value] = yield* flag.flag.parse(emptyArgs).pipe(toShowHelp)
|
|
3106
3430
|
if (flag === GlobalFlag.Wizard) {
|
|
3107
3431
|
const { colors } = yield* Prompt.Theme
|
|
3108
3432
|
return yield* Effect.gen(function*() {
|
|
@@ -3135,23 +3459,17 @@ export const runWith = <const Name extends string, Input, E, R, ContextInput>(
|
|
|
3135
3459
|
if (parsedArgs.errors && parsedArgs.errors.length > 0) {
|
|
3136
3460
|
return yield* new CliError.ShowHelp({ commandPath, errors: parsedArgs.errors })
|
|
3137
3461
|
}
|
|
3138
|
-
const
|
|
3139
|
-
if (parseResult._tag === "Failure") {
|
|
3140
|
-
return yield* new CliError.ShowHelp({
|
|
3141
|
-
commandPath,
|
|
3142
|
-
errors: [parseResult.failure as CliError.NonShowHelpErrors]
|
|
3143
|
-
})
|
|
3144
|
-
}
|
|
3462
|
+
const input = yield* commandImpl.parse(parsedArgs).pipe(toShowHelp)
|
|
3145
3463
|
|
|
3146
3464
|
// 7. Provide setting values
|
|
3147
|
-
let program = commandImpl.handle(
|
|
3465
|
+
let program = commandImpl.handle(input, [command.name])
|
|
3148
3466
|
const logLevel = activeFlags.includes(GlobalFlag.LogLevel)
|
|
3149
|
-
? (yield* GlobalFlag.LogLevel.flag.parse(emptyArgs))[1]
|
|
3467
|
+
? (yield* GlobalFlag.LogLevel.flag.parse(emptyArgs).pipe(toShowHelp))[1]
|
|
3150
3468
|
: Option.none()
|
|
3151
3469
|
program = Effect.provideService(program, GlobalFlag.LogLevel, logLevel)
|
|
3152
3470
|
for (const flag of activeFlags) {
|
|
3153
3471
|
if (flag._tag !== "Setting" || flag === GlobalFlag.LogLevel) continue
|
|
3154
|
-
const [, value] = yield* flag.flag.parse(emptyArgs)
|
|
3472
|
+
const [, value] = yield* flag.flag.parse(emptyArgs).pipe(toShowHelp)
|
|
3155
3473
|
program = Effect.provideService(program, flag, value)
|
|
3156
3474
|
}
|
|
3157
3475
|
|
|
@@ -3172,11 +3490,12 @@ export const runWith = <const Name extends string, Input, E, R, ContextInput>(
|
|
|
3172
3490
|
(error) => Effect.andThen(showHelp(command, error, config.renderErrors !== false), Effect.fail(error))
|
|
3173
3491
|
),
|
|
3174
3492
|
Effect.catchFilter(
|
|
3175
|
-
(error) =>
|
|
3176
|
-
config.renderErrors
|
|
3177
|
-
|
|
3178
|
-
|
|
3179
|
-
|
|
3493
|
+
(error) => {
|
|
3494
|
+
if (config.renderErrors === false || !Predicate.isObjectKeyword(error)) return Result.fail(error)
|
|
3495
|
+
const userMessage = CliError.getUserMessage(error)
|
|
3496
|
+
return userMessage === undefined ? Result.fail(error) : Result.succeed({ error, userMessage })
|
|
3497
|
+
},
|
|
3498
|
+
({ error, userMessage }) => Effect.andThen(showUserError(error, userMessage), Effect.fail(error))
|
|
3180
3499
|
),
|
|
3181
3500
|
Effect.catchFilter(
|
|
3182
3501
|
(e) =>
|
package/src/cli/Completions.ts
CHANGED
|
@@ -7,7 +7,9 @@
|
|
|
7
7
|
* @stability unstable
|
|
8
8
|
* @since 4.0.0
|
|
9
9
|
*/
|
|
10
|
+
import type { Command } from "./Command.ts"
|
|
10
11
|
import * as Bash from "./internal/completions/bash.ts"
|
|
12
|
+
import * as Descriptor from "./internal/completions/descriptor.ts"
|
|
11
13
|
import * as Fish from "./internal/completions/fish.ts"
|
|
12
14
|
import * as PowerShell from "./internal/completions/powershell.ts"
|
|
13
15
|
import * as Zsh from "./internal/completions/zsh.ts"
|
|
@@ -53,6 +55,11 @@ export interface FlagDescriptor {
|
|
|
53
55
|
* `=` (`--name=value`), never given as the next word.
|
|
54
56
|
*/
|
|
55
57
|
readonly optionalValue?: boolean | undefined
|
|
58
|
+
/**
|
|
59
|
+
* Long name that sets a boolean flag to `false`. Defaults to `no-<name>`;
|
|
60
|
+
* `false` means the flag has no negated form.
|
|
61
|
+
*/
|
|
62
|
+
readonly negation?: string | false | undefined
|
|
56
63
|
}
|
|
57
64
|
|
|
58
65
|
/**
|
|
@@ -101,6 +108,55 @@ export type ArgumentType =
|
|
|
101
108
|
| { readonly _tag: "Choice"; readonly values: ReadonlyArray<string> }
|
|
102
109
|
| { readonly _tag: "Path"; readonly pathType: "file" | "directory" | "either" }
|
|
103
110
|
|
|
111
|
+
/**
|
|
112
|
+
* Converts a command tree into a `CommandDescriptor` for completion script
|
|
113
|
+
* generation.
|
|
114
|
+
*
|
|
115
|
+
* **When to use**
|
|
116
|
+
*
|
|
117
|
+
* Use when you need to generate a completion script from an existing
|
|
118
|
+
* `Command`, for example in a build step, without running the CLI or
|
|
119
|
+
* capturing the output of the built-in `--completions` flag.
|
|
120
|
+
*
|
|
121
|
+
* **Details**
|
|
122
|
+
*
|
|
123
|
+
* Reads the command's flags, arguments, and subcommands, including flags
|
|
124
|
+
* shared with subcommands and aliases. Hidden flags and unlisted subcommands
|
|
125
|
+
* are omitted, matching `--help`. Command handlers are never run.
|
|
126
|
+
*
|
|
127
|
+
* **Example** (Generating a Zsh completion script at build time)
|
|
128
|
+
*
|
|
129
|
+
* ```ts import.meta.vitest
|
|
130
|
+
* import { Effect } from "effect"
|
|
131
|
+
* import { Command, Completions, Flag } from "effect/cli"
|
|
132
|
+
*
|
|
133
|
+
* const start = Command.make(
|
|
134
|
+
* "start",
|
|
135
|
+
* { port: Flag.Int("port") },
|
|
136
|
+
* ({ port }) => Effect.log(`Listening on ${port}`)
|
|
137
|
+
* )
|
|
138
|
+
*
|
|
139
|
+
* const cli = Command.make("server").pipe(
|
|
140
|
+
* Command.withSubcommands([start])
|
|
141
|
+
* )
|
|
142
|
+
*
|
|
143
|
+
* const script = Completions.generate(
|
|
144
|
+
* "server",
|
|
145
|
+
* "zsh",
|
|
146
|
+
* Completions.fromCommand(cli)
|
|
147
|
+
* )
|
|
148
|
+
*
|
|
149
|
+
* script.startsWith("#compdef server") // => true
|
|
150
|
+
* ```
|
|
151
|
+
*
|
|
152
|
+
* @see {@link generate} for turning the descriptor into a shell script
|
|
153
|
+
*
|
|
154
|
+
* @stability unstable
|
|
155
|
+
* @category constructors
|
|
156
|
+
* @since 4.0.7
|
|
157
|
+
*/
|
|
158
|
+
export const fromCommand = (command: Command.Any): CommandDescriptor => Descriptor.fromCommand(command)
|
|
159
|
+
|
|
104
160
|
/**
|
|
105
161
|
* Generates a shell completion script for a command descriptor.
|
|
106
162
|
*
|