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
|
@@ -0,0 +1,883 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* npm-style version ranges over `SemVer` values.
|
|
3
|
+
*
|
|
4
|
+
* A `SemVerRange` keeps the syntax it was parsed from, such as `^1.2`, `~1.2.3`,
|
|
5
|
+
* `1.x`, or `1.2.3 - 2.3.4`. Matching follows node-semver's pre-release rules,
|
|
6
|
+
* except that wildcard alternatives preserve the union described in {@link matches}.
|
|
7
|
+
*
|
|
8
|
+
* @stability unstable
|
|
9
|
+
* @since 4.0.6
|
|
10
|
+
*/
|
|
11
|
+
import * as Equal from "./Equal.ts"
|
|
12
|
+
import { dual } from "./Function.ts"
|
|
13
|
+
import * as Hash from "./Hash.ts"
|
|
14
|
+
import { type Inspectable, NodeInspectSymbol } from "./Inspectable.ts"
|
|
15
|
+
import * as Option from "./Option.ts"
|
|
16
|
+
import { type Pipeable, pipeArguments } from "./Pipeable.ts"
|
|
17
|
+
import { hasProperty } from "./Predicate.ts"
|
|
18
|
+
import * as Result from "./Result.ts"
|
|
19
|
+
import {
|
|
20
|
+
compareCore,
|
|
21
|
+
type Core,
|
|
22
|
+
fromInputUnsafe as versionFromInputUnsafe,
|
|
23
|
+
type Input as VersionInput,
|
|
24
|
+
invalid,
|
|
25
|
+
parseComponent,
|
|
26
|
+
prereleaseIdentifier,
|
|
27
|
+
sameCore,
|
|
28
|
+
type SemVer,
|
|
29
|
+
type SemVerError,
|
|
30
|
+
tryParse
|
|
31
|
+
} from "./SemVer.ts"
|
|
32
|
+
|
|
33
|
+
const TypeId = "~effect/SemVerRange"
|
|
34
|
+
|
|
35
|
+
/**
|
|
36
|
+
* Represents an npm-style version range.
|
|
37
|
+
*
|
|
38
|
+
* **Details**
|
|
39
|
+
*
|
|
40
|
+
* Ranges are opaque. {@link format} preserves parsed operators such as `^1.2`
|
|
41
|
+
* rather than expanding them into bounds.
|
|
42
|
+
*
|
|
43
|
+
* @see {@link parse} for decoding range strings
|
|
44
|
+
* @see {@link matches} for matching versions
|
|
45
|
+
* @stability unstable
|
|
46
|
+
* @category models
|
|
47
|
+
* @since 4.0.6
|
|
48
|
+
*/
|
|
49
|
+
export interface SemVerRange extends Pipeable, Equal.Equal, Inspectable {
|
|
50
|
+
readonly [TypeId]: typeof TypeId
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
interface PartialVersion {
|
|
54
|
+
// The components given before the first wildcard; empty for `*`.
|
|
55
|
+
readonly components: ReadonlyArray<number>
|
|
56
|
+
// Only a full MAJOR.MINOR.PATCH may carry a pre-release.
|
|
57
|
+
readonly prerelease: ReadonlyArray<string | number>
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
type Operator = "=" | "<" | "<=" | ">" | ">=" | "~" | "^"
|
|
61
|
+
|
|
62
|
+
type Comparator =
|
|
63
|
+
| {
|
|
64
|
+
readonly _tag: "Comparator"
|
|
65
|
+
readonly operator: Operator
|
|
66
|
+
readonly version: PartialVersion
|
|
67
|
+
}
|
|
68
|
+
| {
|
|
69
|
+
readonly _tag: "Hyphen"
|
|
70
|
+
readonly from: PartialVersion
|
|
71
|
+
readonly to: PartialVersion
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
interface SemVerRangeImpl extends SemVerRange {
|
|
75
|
+
// Alternatives separated by `||`, each a set of comparators that must all match.
|
|
76
|
+
readonly sets: ReadonlyArray<ReadonlyArray<Comparator>>
|
|
77
|
+
matcher?: (version: SemVer) => boolean
|
|
78
|
+
prereleaseMatcher?: (version: SemVer) => boolean
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
/**
|
|
82
|
+
* Options controlling how pre-release versions match a range.
|
|
83
|
+
*
|
|
84
|
+
* @stability unstable
|
|
85
|
+
* @category models
|
|
86
|
+
* @since 4.0.6
|
|
87
|
+
*/
|
|
88
|
+
export interface MatchOptions {
|
|
89
|
+
/**
|
|
90
|
+
* Lets pre-release versions match any comparator set whose bounds contain
|
|
91
|
+
* them, and lowers wildcard lower bounds to include pre-releases.
|
|
92
|
+
*
|
|
93
|
+
* @default false
|
|
94
|
+
*/
|
|
95
|
+
readonly includePrerelease?: boolean | undefined
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
const SemVerRangeProto: SemVerRange = {
|
|
99
|
+
[TypeId]: TypeId,
|
|
100
|
+
[Equal.symbol](this: SemVerRange, that: unknown): boolean {
|
|
101
|
+
return isSemVerRange(that) && format(this) === format(that)
|
|
102
|
+
},
|
|
103
|
+
[Hash.symbol](this: SemVerRange): number {
|
|
104
|
+
return Hash.string(format(this))
|
|
105
|
+
},
|
|
106
|
+
toString(this: SemVerRange) {
|
|
107
|
+
return `SemVerRange(${format(this)})`
|
|
108
|
+
},
|
|
109
|
+
toJSON(this: SemVerRange) {
|
|
110
|
+
return { _id: "SemVerRange", value: format(this) }
|
|
111
|
+
},
|
|
112
|
+
[NodeInspectSymbol](this: SemVerRange) {
|
|
113
|
+
return this.toJSON()
|
|
114
|
+
},
|
|
115
|
+
pipe() {
|
|
116
|
+
return pipeArguments(this, arguments)
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
/**
|
|
121
|
+
* Checks whether a value is a `SemVerRange`.
|
|
122
|
+
*
|
|
123
|
+
* @stability unstable
|
|
124
|
+
* @category guards
|
|
125
|
+
* @since 4.0.6
|
|
126
|
+
*/
|
|
127
|
+
export const isSemVerRange = (u: unknown): u is SemVerRange => hasProperty(u, TypeId)
|
|
128
|
+
|
|
129
|
+
const isRangeArgs = (args: IArguments) => isSemVerRange(args[0])
|
|
130
|
+
|
|
131
|
+
const wildcard: PartialVersion = { components: [], prerelease: [] }
|
|
132
|
+
const operatorPattern = /^(<=|>=|<|>|=|~|\^)?(.*)$/
|
|
133
|
+
const isWildcard = (part: string): boolean => part === "x" || part === "X" || part === "*"
|
|
134
|
+
|
|
135
|
+
const componentLabels = ["major", "minor", "patch"] as const
|
|
136
|
+
|
|
137
|
+
const parsePartial = (input: string): PartialVersion => {
|
|
138
|
+
if (input.length === 0) return invalid("expected a version after the operator")
|
|
139
|
+
if (input.includes("+")) {
|
|
140
|
+
return invalid(`build metadata is not allowed in ranges, received ${JSON.stringify(input)}`)
|
|
141
|
+
}
|
|
142
|
+
const dash = input.indexOf("-")
|
|
143
|
+
const parts = (dash === -1 ? input : input.slice(0, dash)).split(".")
|
|
144
|
+
if (parts.length > 3) return invalid(`expected at most MAJOR.MINOR.PATCH, received ${JSON.stringify(input)}`)
|
|
145
|
+
const components: Array<number> = []
|
|
146
|
+
for (let i = 0; i < parts.length; i++) {
|
|
147
|
+
if (isWildcard(parts[i])) continue
|
|
148
|
+
// A skipped wildcard leaves `components` shorter than the position reached.
|
|
149
|
+
if (components.length < i) {
|
|
150
|
+
return invalid(`a version component cannot follow a wildcard, received ${JSON.stringify(input)}`)
|
|
151
|
+
}
|
|
152
|
+
components.push(parseComponent(parts[i], componentLabels[i]))
|
|
153
|
+
}
|
|
154
|
+
if (dash === -1) return { components, prerelease: [] }
|
|
155
|
+
if (components.length < 3) {
|
|
156
|
+
return invalid(`a pre-release requires MAJOR.MINOR.PATCH, received ${JSON.stringify(input)}`)
|
|
157
|
+
}
|
|
158
|
+
return { components, prerelease: input.slice(dash + 1).split(".").map(prereleaseIdentifier) }
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
const parseComparatorSet = (input: string): ReadonlyArray<Comparator> => {
|
|
162
|
+
const tokens = input.split(/\s+/).filter((token) => token.length > 0)
|
|
163
|
+
if (tokens.length === 0) return invalid("expected a comparator")
|
|
164
|
+
if (tokens.length === 3 && tokens[1] === "-") {
|
|
165
|
+
return [{ _tag: "Hyphen", from: parsePartial(tokens[0]), to: parsePartial(tokens[2]) }]
|
|
166
|
+
}
|
|
167
|
+
const comparators: Array<Comparator> = []
|
|
168
|
+
for (let i = 0; i < tokens.length; i++) {
|
|
169
|
+
const [, operator, rest] = operatorPattern.exec(tokens[i])!
|
|
170
|
+
// Allow whitespace between an operator and its version, as in `>= 1.2.3`.
|
|
171
|
+
const version = rest.length === 0 && operator !== undefined && i + 1 < tokens.length ? tokens[++i] : rest
|
|
172
|
+
comparators.push({ _tag: "Comparator", operator: (operator ?? "=") as Operator, version: parsePartial(version) })
|
|
173
|
+
}
|
|
174
|
+
return comparators
|
|
175
|
+
}
|
|
176
|
+
|
|
177
|
+
const makeRange = (sets: ReadonlyArray<ReadonlyArray<Comparator>>): SemVerRange => {
|
|
178
|
+
const self = Object.create(SemVerRangeProto)
|
|
179
|
+
self.sets = sets
|
|
180
|
+
return self
|
|
181
|
+
}
|
|
182
|
+
|
|
183
|
+
const parseOrThrow = (input: string): SemVerRange => {
|
|
184
|
+
if (input.trim().length === 0) return any
|
|
185
|
+
return makeRange(input.split("||").map(parseComparatorSet))
|
|
186
|
+
}
|
|
187
|
+
|
|
188
|
+
/**
|
|
189
|
+
* Parses an npm-style version range.
|
|
190
|
+
*
|
|
191
|
+
* **Details**
|
|
192
|
+
*
|
|
193
|
+
* Supports:
|
|
194
|
+
*
|
|
195
|
+
* - comparators `=`, `<`, `<=`, `>`, `>=`, whitespace-separated as AND;
|
|
196
|
+
* - alternatives separated by `||`;
|
|
197
|
+
* - X-ranges such as `1.x`, `1.2.*`, `1`, and `*`;
|
|
198
|
+
* - tilde (`~1.2.3`), caret (`^1.2.3`), and hyphen (`1.2.3 - 2.3.4`) ranges.
|
|
199
|
+
*
|
|
200
|
+
* An empty string is equivalent to `*`. Invalid input fails with
|
|
201
|
+
* `SemVer.SemVerError`.
|
|
202
|
+
*
|
|
203
|
+
* **Gotchas**
|
|
204
|
+
*
|
|
205
|
+
* Versions must follow the strict SemVer grammar apart from wildcards, so a
|
|
206
|
+
* `v` prefix, leading zeros, build metadata, and empty `||` alternatives are
|
|
207
|
+
* rejected.
|
|
208
|
+
*
|
|
209
|
+
* **Example** (Parsing and matching a caret range)
|
|
210
|
+
*
|
|
211
|
+
* ```ts import.meta.vitest
|
|
212
|
+
* import { Result, SemVerRange } from "effect"
|
|
213
|
+
*
|
|
214
|
+
* const range = SemVerRange.parseUnsafe("^1.2.0 || >=3.0.0-rc.1")
|
|
215
|
+
*
|
|
216
|
+
* SemVerRange.matches(range, "1.9.0") // => true
|
|
217
|
+
* SemVerRange.matches(range, "2.0.0") // => false
|
|
218
|
+
* SemVerRange.matches(range, "3.0.0-rc.2") // => true
|
|
219
|
+
* Result.isFailure(SemVerRange.parse("^v1.2.0")) // => true
|
|
220
|
+
* ```
|
|
221
|
+
*
|
|
222
|
+
* @see {@link parseUnsafe} for throwing on invalid input
|
|
223
|
+
* @see {@link format} for the inverse operation
|
|
224
|
+
* @stability unstable
|
|
225
|
+
* @category constructors
|
|
226
|
+
* @since 4.0.6
|
|
227
|
+
*/
|
|
228
|
+
export const parse = (input: string): Result.Result<SemVerRange, SemVerError> =>
|
|
229
|
+
tryParse("SemVer range", input, parseOrThrow)
|
|
230
|
+
|
|
231
|
+
/**
|
|
232
|
+
* Parses an npm-style version range and throws `SemVer.SemVerError` for
|
|
233
|
+
* invalid input.
|
|
234
|
+
*
|
|
235
|
+
* @see {@link parse} for non-throwing parsing
|
|
236
|
+
* @stability unstable
|
|
237
|
+
* @category constructors
|
|
238
|
+
* @since 4.0.6
|
|
239
|
+
*/
|
|
240
|
+
export const parseUnsafe = (input: string): SemVerRange => Result.getOrThrow(parse(input))
|
|
241
|
+
|
|
242
|
+
/**
|
|
243
|
+
* Values accepted by `fromInput`: a range or a range string.
|
|
244
|
+
*
|
|
245
|
+
* @see {@link fromInput} for converting inputs
|
|
246
|
+
* @stability unstable
|
|
247
|
+
* @category models
|
|
248
|
+
* @since 4.0.6
|
|
249
|
+
*/
|
|
250
|
+
export type Input = SemVerRange | string
|
|
251
|
+
|
|
252
|
+
/**
|
|
253
|
+
* Converts a range or range string into a `SemVerRange`.
|
|
254
|
+
*
|
|
255
|
+
* **Details**
|
|
256
|
+
*
|
|
257
|
+
* Ranges are returned unchanged and strings are parsed like {@link parse}.
|
|
258
|
+
* Invalid strings fail with `SemVer.SemVerError`.
|
|
259
|
+
*
|
|
260
|
+
* @see {@link fromInputUnsafe} for throwing on invalid input
|
|
261
|
+
* @stability unstable
|
|
262
|
+
* @category constructors
|
|
263
|
+
* @since 4.0.6
|
|
264
|
+
*/
|
|
265
|
+
export const fromInput = (input: Input): Result.Result<SemVerRange, SemVerError> =>
|
|
266
|
+
isSemVerRange(input) ? Result.succeed(input) : parse(input)
|
|
267
|
+
|
|
268
|
+
/**
|
|
269
|
+
* Converts a range or range string into a `SemVerRange` and throws
|
|
270
|
+
* `SemVer.SemVerError` for invalid input.
|
|
271
|
+
*
|
|
272
|
+
* @see {@link fromInput} for non-throwing conversion
|
|
273
|
+
* @stability unstable
|
|
274
|
+
* @category constructors
|
|
275
|
+
* @since 4.0.6
|
|
276
|
+
*/
|
|
277
|
+
export const fromInputUnsafe = (input: Input): SemVerRange => Result.getOrThrow(fromInput(input))
|
|
278
|
+
|
|
279
|
+
const toPartial = (version: SemVer): PartialVersion => ({
|
|
280
|
+
components: [version.major, version.minor, version.patch],
|
|
281
|
+
prerelease: version.prerelease
|
|
282
|
+
})
|
|
283
|
+
|
|
284
|
+
const comparator = (operator: Operator, version: VersionInput): Comparator => ({
|
|
285
|
+
_tag: "Comparator",
|
|
286
|
+
operator,
|
|
287
|
+
version: toPartial(versionFromInputUnsafe(version))
|
|
288
|
+
})
|
|
289
|
+
|
|
290
|
+
const fromComparator = (operator: Operator, version: VersionInput): SemVerRange =>
|
|
291
|
+
makeRange([[comparator(operator, version)]])
|
|
292
|
+
|
|
293
|
+
/**
|
|
294
|
+
* The range matching every release, written `*`.
|
|
295
|
+
*
|
|
296
|
+
* **Gotchas**
|
|
297
|
+
*
|
|
298
|
+
* Like every range, `*` only matches pre-releases with `includePrerelease`.
|
|
299
|
+
*
|
|
300
|
+
* @stability unstable
|
|
301
|
+
* @category constants
|
|
302
|
+
* @since 4.0.6
|
|
303
|
+
*/
|
|
304
|
+
export const any: SemVerRange = makeRange([[{ _tag: "Comparator", operator: "=", version: wildcard }]])
|
|
305
|
+
|
|
306
|
+
/**
|
|
307
|
+
* Creates a range matching exactly one version, written `1.2.3`.
|
|
308
|
+
*
|
|
309
|
+
* **Details**
|
|
310
|
+
*
|
|
311
|
+
* Build metadata is dropped because ranges cannot express it and it does not
|
|
312
|
+
* affect matching, so `1.2.3+a` and `1.2.3+b` both match. Throws `SemVerError` for an invalid `SemVer.Input`.
|
|
313
|
+
*
|
|
314
|
+
* **Example** (Building ranges from versions)
|
|
315
|
+
*
|
|
316
|
+
* ```ts import.meta.vitest
|
|
317
|
+
* import { SemVer, SemVerRange } from "effect"
|
|
318
|
+
*
|
|
319
|
+
* const version = SemVer.parseUnsafe("1.2.3+build.5")
|
|
320
|
+
*
|
|
321
|
+
* SemVerRange.format(SemVerRange.exact(version)) // => "1.2.3"
|
|
322
|
+
* SemVerRange.format(SemVerRange.greaterThanOrEqualTo(version)) // => ">=1.2.3"
|
|
323
|
+
* SemVerRange.format(SemVerRange.caret("1.2.3")) // => "^1.2.3"
|
|
324
|
+
* SemVerRange.matches(SemVerRange.greaterThan(version), "1.2.4") // => true
|
|
325
|
+
* ```
|
|
326
|
+
*
|
|
327
|
+
* @stability unstable
|
|
328
|
+
* @category constructors
|
|
329
|
+
* @since 4.0.6
|
|
330
|
+
*/
|
|
331
|
+
export const exact = (version: VersionInput): SemVerRange => fromComparator("=", version)
|
|
332
|
+
|
|
333
|
+
/**
|
|
334
|
+
* Creates a range matching versions with higher precedence, written `>1.2.3`.
|
|
335
|
+
*
|
|
336
|
+
* **Details**
|
|
337
|
+
*
|
|
338
|
+
* Build metadata is dropped. Throws `SemVerError` for an invalid `SemVer.Input`.
|
|
339
|
+
*
|
|
340
|
+
* @stability unstable
|
|
341
|
+
* @category constructors
|
|
342
|
+
* @since 4.0.6
|
|
343
|
+
*/
|
|
344
|
+
export const greaterThan = (version: VersionInput): SemVerRange => fromComparator(">", version)
|
|
345
|
+
|
|
346
|
+
/**
|
|
347
|
+
* Creates a range matching versions with at least the given precedence, written `>=1.2.3`.
|
|
348
|
+
*
|
|
349
|
+
* **Details**
|
|
350
|
+
*
|
|
351
|
+
* Build metadata is dropped. Throws `SemVerError` for an invalid `SemVer.Input`.
|
|
352
|
+
*
|
|
353
|
+
* @stability unstable
|
|
354
|
+
* @category constructors
|
|
355
|
+
* @since 4.0.6
|
|
356
|
+
*/
|
|
357
|
+
export const greaterThanOrEqualTo = (version: VersionInput): SemVerRange => fromComparator(">=", version)
|
|
358
|
+
|
|
359
|
+
/**
|
|
360
|
+
* Creates a range matching versions with lower precedence, written `<1.2.3`.
|
|
361
|
+
*
|
|
362
|
+
* **Details**
|
|
363
|
+
*
|
|
364
|
+
* Build metadata is dropped. Throws `SemVerError` for an invalid `SemVer.Input`.
|
|
365
|
+
*
|
|
366
|
+
* @stability unstable
|
|
367
|
+
* @category constructors
|
|
368
|
+
* @since 4.0.6
|
|
369
|
+
*/
|
|
370
|
+
export const lessThan = (version: VersionInput): SemVerRange => fromComparator("<", version)
|
|
371
|
+
|
|
372
|
+
/**
|
|
373
|
+
* Creates a range matching versions with at most the given precedence, written `<=1.2.3`.
|
|
374
|
+
*
|
|
375
|
+
* **Details**
|
|
376
|
+
*
|
|
377
|
+
* Build metadata is dropped. Throws `SemVerError` for an invalid `SemVer.Input`.
|
|
378
|
+
*
|
|
379
|
+
* @stability unstable
|
|
380
|
+
* @category constructors
|
|
381
|
+
* @since 4.0.6
|
|
382
|
+
*/
|
|
383
|
+
export const lessThanOrEqualTo = (version: VersionInput): SemVerRange => fromComparator("<=", version)
|
|
384
|
+
|
|
385
|
+
/**
|
|
386
|
+
* Creates a range matching versions compatible with a version, written `^1.2.3`.
|
|
387
|
+
*
|
|
388
|
+
* **Details**
|
|
389
|
+
*
|
|
390
|
+
* Allows changes that do not modify the left-most non-zero component: `^1.2.3`
|
|
391
|
+
* means `>=1.2.3 <2.0.0-0` and `^0.2.3` means `>=0.2.3 <0.3.0-0`. Build
|
|
392
|
+
* metadata is dropped. Throws `SemVerError` for an invalid `SemVer.Input`.
|
|
393
|
+
*
|
|
394
|
+
* @stability unstable
|
|
395
|
+
* @category constructors
|
|
396
|
+
* @since 4.0.6
|
|
397
|
+
*/
|
|
398
|
+
export const caret = (version: VersionInput): SemVerRange => fromComparator("^", version)
|
|
399
|
+
|
|
400
|
+
/**
|
|
401
|
+
* Creates a range matching patch-level changes of a version, written `~1.2.3`.
|
|
402
|
+
*
|
|
403
|
+
* **Details**
|
|
404
|
+
*
|
|
405
|
+
* `~1.2.3` means `>=1.2.3 <1.3.0-0`. Build metadata is dropped.
|
|
406
|
+
* Throws `SemVerError` for an invalid `SemVer.Input`.
|
|
407
|
+
*
|
|
408
|
+
* @stability unstable
|
|
409
|
+
* @category constructors
|
|
410
|
+
* @since 4.0.6
|
|
411
|
+
*/
|
|
412
|
+
export const tilde = (version: VersionInput): SemVerRange => fromComparator("~", version)
|
|
413
|
+
|
|
414
|
+
/**
|
|
415
|
+
* Creates a range matching versions within inclusive bounds, written
|
|
416
|
+
* `>=1.2.3 <=2.0.0`.
|
|
417
|
+
*
|
|
418
|
+
* **Details**
|
|
419
|
+
*
|
|
420
|
+
* Matches the same versions as `SemVer.between`, subject to the pre-release
|
|
421
|
+
* rule. Build metadata is dropped. Throws `SemVerError` for an invalid `SemVer.Input`.
|
|
422
|
+
*
|
|
423
|
+
* @stability unstable
|
|
424
|
+
* @category constructors
|
|
425
|
+
* @since 4.0.6
|
|
426
|
+
*/
|
|
427
|
+
export const between = (options: { readonly minimum: VersionInput; readonly maximum: VersionInput }): SemVerRange =>
|
|
428
|
+
makeRange([[comparator(">=", options.minimum), comparator("<=", options.maximum)]])
|
|
429
|
+
|
|
430
|
+
const formatPartial = (self: PartialVersion): string => {
|
|
431
|
+
if (self.components.length === 0) return "*"
|
|
432
|
+
const core = self.components.join(".")
|
|
433
|
+
return self.prerelease.length === 0 ? core : `${core}-${self.prerelease.join(".")}`
|
|
434
|
+
}
|
|
435
|
+
|
|
436
|
+
const formatComparator = (self: Comparator): string =>
|
|
437
|
+
self._tag === "Hyphen"
|
|
438
|
+
? `${formatPartial(self.from)} - ${formatPartial(self.to)}`
|
|
439
|
+
: `${self.operator === "=" ? "" : self.operator}${formatPartial(self.version)}`
|
|
440
|
+
|
|
441
|
+
/**
|
|
442
|
+
* Formats a range in canonical form.
|
|
443
|
+
*
|
|
444
|
+
* **Details**
|
|
445
|
+
*
|
|
446
|
+
* Operators and comparators are kept as parsed. Wildcard spellings are
|
|
447
|
+
* normalized by dropping trailing wildcard components (`1.x` and `1.*.*`
|
|
448
|
+
* format as `1`, and `x` as `*`), and an explicit `=` operator is omitted.
|
|
449
|
+
*
|
|
450
|
+
* @see {@link parse} for the inverse operation
|
|
451
|
+
* @stability unstable
|
|
452
|
+
* @category converting
|
|
453
|
+
* @since 4.0.6
|
|
454
|
+
*/
|
|
455
|
+
export const format = (self: SemVerRange): string =>
|
|
456
|
+
(self as SemVerRangeImpl).sets.map((set) => set.map(formatComparator).join(" ")).join(" || ")
|
|
457
|
+
|
|
458
|
+
interface Bound extends Core {
|
|
459
|
+
readonly operator: "=" | "<" | "<=" | ">" | ">="
|
|
460
|
+
}
|
|
461
|
+
|
|
462
|
+
const bound = (
|
|
463
|
+
operator: Bound["operator"],
|
|
464
|
+
[major = 0, minor = 0, patch = 0]: ReadonlyArray<number>,
|
|
465
|
+
prerelease: ReadonlyArray<string | number>
|
|
466
|
+
): Bound => ({ operator, major, minor, patch, prerelease })
|
|
467
|
+
|
|
468
|
+
// The expansions below follow node-semver's `Range` desugaring. `z` is the
|
|
469
|
+
// pre-release a wildcard lower bound carries: `[0]` when pre-releases are
|
|
470
|
+
// included, so `>=1.2` admits `1.2.0-alpha`, and empty otherwise.
|
|
471
|
+
|
|
472
|
+
// Exclusive upper bound at the first pre-release of `core`, node-semver's `<X.Y.Z-0`.
|
|
473
|
+
const below = (core: ReadonlyArray<number>): Bound => bound("<", core, [0])
|
|
474
|
+
|
|
475
|
+
// The lowest version a partial covers.
|
|
476
|
+
const floor = (self: PartialVersion, z: ReadonlyArray<number>): Bound =>
|
|
477
|
+
bound(">=", self.components, self.components.length === 3 ? self.prerelease : z)
|
|
478
|
+
|
|
479
|
+
// The first core above every version the first `precision` components cover.
|
|
480
|
+
const after = (components: ReadonlyArray<number>, precision: number): ReadonlyArray<number> => {
|
|
481
|
+
const next = components.slice(0, precision)
|
|
482
|
+
next[precision - 1]++
|
|
483
|
+
return next
|
|
484
|
+
}
|
|
485
|
+
|
|
486
|
+
const expandCaret = (self: PartialVersion, z: ReadonlyArray<number>): ReadonlyArray<Bound> => {
|
|
487
|
+
const n = self.components.length
|
|
488
|
+
if (n === 0) return []
|
|
489
|
+
// The first non-zero component may not change; `^0.0.x` pins the patch.
|
|
490
|
+
const precision = self.components.findIndex((component) => component !== 0) + 1 || n
|
|
491
|
+
return [floor(self, z), below(after(self.components, precision))]
|
|
492
|
+
}
|
|
493
|
+
|
|
494
|
+
const expandTilde = (self: PartialVersion, z: ReadonlyArray<number>): ReadonlyArray<Bound> => {
|
|
495
|
+
const n = self.components.length
|
|
496
|
+
if (n === 0) return []
|
|
497
|
+
return [floor(self, z), below(after(self.components, Math.min(n, 2)))]
|
|
498
|
+
}
|
|
499
|
+
|
|
500
|
+
const expandXRange = (
|
|
501
|
+
operator: Bound["operator"],
|
|
502
|
+
self: PartialVersion,
|
|
503
|
+
z: ReadonlyArray<number>
|
|
504
|
+
): ReadonlyArray<Bound> => {
|
|
505
|
+
const n = self.components.length
|
|
506
|
+
if (n === 3) return [bound(operator, self.components, self.prerelease)]
|
|
507
|
+
if (n === 0) return operator === "<" || operator === ">" ? [below([0, 0, 0])] : []
|
|
508
|
+
switch (operator) {
|
|
509
|
+
case "=":
|
|
510
|
+
return [floor(self, z), below(after(self.components, n))]
|
|
511
|
+
case ">":
|
|
512
|
+
return [bound(">=", after(self.components, n), z)]
|
|
513
|
+
case ">=":
|
|
514
|
+
return [floor(self, z)]
|
|
515
|
+
case "<=":
|
|
516
|
+
return [below(after(self.components, n))]
|
|
517
|
+
case "<":
|
|
518
|
+
return [below(self.components)]
|
|
519
|
+
}
|
|
520
|
+
}
|
|
521
|
+
|
|
522
|
+
const expand = (self: Comparator, includePrerelease: boolean): ReadonlyArray<Bound> => {
|
|
523
|
+
const z = includePrerelease ? [0] : []
|
|
524
|
+
if (self._tag === "Hyphen") {
|
|
525
|
+
const { from, to } = self
|
|
526
|
+
// Unlike `>=`, a full hyphen lower bound without a pre-release also takes `z`.
|
|
527
|
+
const lower = from.components.length === 0
|
|
528
|
+
? []
|
|
529
|
+
: [bound(">=", from.components, from.prerelease.length > 0 ? from.prerelease : z)]
|
|
530
|
+
return [...lower, ...expandXRange("<=", to, z)]
|
|
531
|
+
}
|
|
532
|
+
switch (self.operator) {
|
|
533
|
+
case "^":
|
|
534
|
+
return expandCaret(self.version, z)
|
|
535
|
+
case "~":
|
|
536
|
+
return expandTilde(self.version, z)
|
|
537
|
+
default:
|
|
538
|
+
return expandXRange(self.operator, self.version, z)
|
|
539
|
+
}
|
|
540
|
+
}
|
|
541
|
+
|
|
542
|
+
const testBound = (self: Bound, version: SemVer): boolean => {
|
|
543
|
+
const result = compareCore(version, self)
|
|
544
|
+
switch (self.operator) {
|
|
545
|
+
case "=":
|
|
546
|
+
return result === 0
|
|
547
|
+
case "<":
|
|
548
|
+
return result < 0
|
|
549
|
+
case "<=":
|
|
550
|
+
return result <= 0
|
|
551
|
+
case ">":
|
|
552
|
+
return result > 0
|
|
553
|
+
case ">=":
|
|
554
|
+
return result >= 0
|
|
555
|
+
}
|
|
556
|
+
}
|
|
557
|
+
|
|
558
|
+
const compile = (self: SemVerRangeImpl, includePrerelease: boolean): (version: SemVer) => boolean => {
|
|
559
|
+
const sets = self.sets.map((set) => set.flatMap((comparator) => expand(comparator, includePrerelease)))
|
|
560
|
+
return (version) =>
|
|
561
|
+
sets.some((bounds) =>
|
|
562
|
+
bounds.every((bound) => testBound(bound, version)) &&
|
|
563
|
+
(includePrerelease || version.prerelease.length === 0 ||
|
|
564
|
+
bounds.some((bound) => bound.prerelease.length > 0 && sameCore(bound, version)))
|
|
565
|
+
)
|
|
566
|
+
}
|
|
567
|
+
|
|
568
|
+
const matcher = (range: SemVerRange, options: MatchOptions | undefined): (version: SemVer) => boolean => {
|
|
569
|
+
const self = range as SemVerRangeImpl
|
|
570
|
+
return options?.includePrerelease === true
|
|
571
|
+
? (self.prereleaseMatcher ??= compile(self, true))
|
|
572
|
+
: (self.matcher ??= compile(self, false))
|
|
573
|
+
}
|
|
574
|
+
|
|
575
|
+
/**
|
|
576
|
+
* Checks whether a range matches a version.
|
|
577
|
+
*
|
|
578
|
+
* **Details**
|
|
579
|
+
*
|
|
580
|
+
* Partial versions, tilde, caret, and hyphen ranges expand to bounds following
|
|
581
|
+
* node-semver. For example, `^1.2.3` means `>=1.2.3 <2.0.0-0`, `~1.2` means
|
|
582
|
+
* `>=1.2.0 <1.3.0-0`, and `<=1.2` means `<1.3.0-0`. Throws `SemVerError` when
|
|
583
|
+
* `version` is an invalid `SemVer.Input`.
|
|
584
|
+
*
|
|
585
|
+
* **Gotchas**
|
|
586
|
+
*
|
|
587
|
+
* A pre-release version only matches a comparator set that contains a
|
|
588
|
+
* comparator with a pre-release on the same major, minor, and patch. So
|
|
589
|
+
* `^1.2.3-beta.1` matches `1.2.3-beta.2` but not `1.3.0-rc.1`, and `*` does
|
|
590
|
+
* not match any pre-release. Set `includePrerelease` to disable this rule.
|
|
591
|
+
*
|
|
592
|
+
* Alternatives separated by `||` always form a union. Unlike node-semver, a `*`
|
|
593
|
+
* alternative does not discard pre-releases admitted by another alternative.
|
|
594
|
+
*
|
|
595
|
+
* **Example** (Matching pre-releases)
|
|
596
|
+
*
|
|
597
|
+
* ```ts import.meta.vitest
|
|
598
|
+
* import { SemVerRange } from "effect"
|
|
599
|
+
*
|
|
600
|
+
* const range = SemVerRange.parseUnsafe("^1.2.3-beta.1")
|
|
601
|
+
*
|
|
602
|
+
* SemVerRange.matches(range, "1.2.3-beta.2") // => true
|
|
603
|
+
* SemVerRange.matches(range, "1.3.0-rc.1") // => false
|
|
604
|
+
* SemVerRange.matches(range, "1.3.0-rc.1", { includePrerelease: true }) // => true
|
|
605
|
+
* ```
|
|
606
|
+
*
|
|
607
|
+
* **Example** (Filtering versions)
|
|
608
|
+
*
|
|
609
|
+
* ```ts import.meta.vitest
|
|
610
|
+
* import { SemVer, SemVerRange } from "effect"
|
|
611
|
+
*
|
|
612
|
+
* const range = SemVerRange.parseUnsafe("~1.2")
|
|
613
|
+
* const versions = ["1.1.0", "1.2.0", "1.2.7", "1.3.0"].map(SemVer.parseUnsafe)
|
|
614
|
+
*
|
|
615
|
+
* versions.filter((version) => SemVerRange.matches(range, version)).map(SemVer.format) // => ["1.2.0", "1.2.7"]
|
|
616
|
+
* ```
|
|
617
|
+
*
|
|
618
|
+
* @see {@link maxSatisfying} for selecting the highest matching version
|
|
619
|
+
* @stability unstable
|
|
620
|
+
* @category predicates
|
|
621
|
+
* @since 4.0.6
|
|
622
|
+
*/
|
|
623
|
+
export const matches: {
|
|
624
|
+
/**
|
|
625
|
+
* Checks whether a range matches a version.
|
|
626
|
+
*
|
|
627
|
+
* **Details**
|
|
628
|
+
*
|
|
629
|
+
* Partial versions, tilde, caret, and hyphen ranges expand to bounds following
|
|
630
|
+
* node-semver. For example, `^1.2.3` means `>=1.2.3 <2.0.0-0`, `~1.2` means
|
|
631
|
+
* `>=1.2.0 <1.3.0-0`, and `<=1.2` means `<1.3.0-0`. Throws `SemVerError` when
|
|
632
|
+
* `version` is an invalid `SemVer.Input`.
|
|
633
|
+
*
|
|
634
|
+
* **Gotchas**
|
|
635
|
+
*
|
|
636
|
+
* A pre-release version only matches a comparator set that contains a
|
|
637
|
+
* comparator with a pre-release on the same major, minor, and patch. So
|
|
638
|
+
* `^1.2.3-beta.1` matches `1.2.3-beta.2` but not `1.3.0-rc.1`, and `*` does
|
|
639
|
+
* not match any pre-release. Set `includePrerelease` to disable this rule.
|
|
640
|
+
*
|
|
641
|
+
* Alternatives separated by `||` always form a union. Unlike node-semver, a `*`
|
|
642
|
+
* alternative does not discard pre-releases admitted by another alternative.
|
|
643
|
+
*
|
|
644
|
+
* **Example** (Matching pre-releases)
|
|
645
|
+
*
|
|
646
|
+
* ```ts import.meta.vitest
|
|
647
|
+
* import { SemVerRange } from "effect"
|
|
648
|
+
*
|
|
649
|
+
* const range = SemVerRange.parseUnsafe("^1.2.3-beta.1")
|
|
650
|
+
*
|
|
651
|
+
* SemVerRange.matches(range, "1.2.3-beta.2") // => true
|
|
652
|
+
* SemVerRange.matches(range, "1.3.0-rc.1") // => false
|
|
653
|
+
* SemVerRange.matches(range, "1.3.0-rc.1", { includePrerelease: true }) // => true
|
|
654
|
+
* ```
|
|
655
|
+
*
|
|
656
|
+
* **Example** (Filtering versions)
|
|
657
|
+
*
|
|
658
|
+
* ```ts import.meta.vitest
|
|
659
|
+
* import { SemVer, SemVerRange } from "effect"
|
|
660
|
+
*
|
|
661
|
+
* const range = SemVerRange.parseUnsafe("~1.2")
|
|
662
|
+
* const versions = ["1.1.0", "1.2.0", "1.2.7", "1.3.0"].map(SemVer.parseUnsafe)
|
|
663
|
+
*
|
|
664
|
+
* versions.filter((version) => SemVerRange.matches(range, version)).map(SemVer.format) // => ["1.2.0", "1.2.7"]
|
|
665
|
+
* ```
|
|
666
|
+
*
|
|
667
|
+
* @see {@link maxSatisfying} for selecting the highest matching version
|
|
668
|
+
* @stability unstable
|
|
669
|
+
* @category predicates
|
|
670
|
+
* @since 4.0.6
|
|
671
|
+
*/
|
|
672
|
+
(version: VersionInput, options?: MatchOptions): (self: SemVerRange) => boolean
|
|
673
|
+
/**
|
|
674
|
+
* Checks whether a range matches a version.
|
|
675
|
+
*
|
|
676
|
+
* **Details**
|
|
677
|
+
*
|
|
678
|
+
* Partial versions, tilde, caret, and hyphen ranges expand to bounds following
|
|
679
|
+
* node-semver. For example, `^1.2.3` means `>=1.2.3 <2.0.0-0`, `~1.2` means
|
|
680
|
+
* `>=1.2.0 <1.3.0-0`, and `<=1.2` means `<1.3.0-0`. Throws `SemVerError` when
|
|
681
|
+
* `version` is an invalid `SemVer.Input`.
|
|
682
|
+
*
|
|
683
|
+
* **Gotchas**
|
|
684
|
+
*
|
|
685
|
+
* A pre-release version only matches a comparator set that contains a
|
|
686
|
+
* comparator with a pre-release on the same major, minor, and patch. So
|
|
687
|
+
* `^1.2.3-beta.1` matches `1.2.3-beta.2` but not `1.3.0-rc.1`, and `*` does
|
|
688
|
+
* not match any pre-release. Set `includePrerelease` to disable this rule.
|
|
689
|
+
*
|
|
690
|
+
* Alternatives separated by `||` always form a union. Unlike node-semver, a `*`
|
|
691
|
+
* alternative does not discard pre-releases admitted by another alternative.
|
|
692
|
+
*
|
|
693
|
+
* **Example** (Matching pre-releases)
|
|
694
|
+
*
|
|
695
|
+
* ```ts import.meta.vitest
|
|
696
|
+
* import { SemVerRange } from "effect"
|
|
697
|
+
*
|
|
698
|
+
* const range = SemVerRange.parseUnsafe("^1.2.3-beta.1")
|
|
699
|
+
*
|
|
700
|
+
* SemVerRange.matches(range, "1.2.3-beta.2") // => true
|
|
701
|
+
* SemVerRange.matches(range, "1.3.0-rc.1") // => false
|
|
702
|
+
* SemVerRange.matches(range, "1.3.0-rc.1", { includePrerelease: true }) // => true
|
|
703
|
+
* ```
|
|
704
|
+
*
|
|
705
|
+
* **Example** (Filtering versions)
|
|
706
|
+
*
|
|
707
|
+
* ```ts import.meta.vitest
|
|
708
|
+
* import { SemVer, SemVerRange } from "effect"
|
|
709
|
+
*
|
|
710
|
+
* const range = SemVerRange.parseUnsafe("~1.2")
|
|
711
|
+
* const versions = ["1.1.0", "1.2.0", "1.2.7", "1.3.0"].map(SemVer.parseUnsafe)
|
|
712
|
+
*
|
|
713
|
+
* versions.filter((version) => SemVerRange.matches(range, version)).map(SemVer.format) // => ["1.2.0", "1.2.7"]
|
|
714
|
+
* ```
|
|
715
|
+
*
|
|
716
|
+
* @see {@link maxSatisfying} for selecting the highest matching version
|
|
717
|
+
* @stability unstable
|
|
718
|
+
* @category predicates
|
|
719
|
+
* @since 4.0.6
|
|
720
|
+
*/
|
|
721
|
+
(self: SemVerRange, version: VersionInput, options?: MatchOptions): boolean
|
|
722
|
+
} = dual(
|
|
723
|
+
isRangeArgs,
|
|
724
|
+
(self: SemVerRange, version: VersionInput, options?: MatchOptions): boolean =>
|
|
725
|
+
matcher(self, options)(versionFromInputUnsafe(version))
|
|
726
|
+
)
|
|
727
|
+
|
|
728
|
+
const select = (
|
|
729
|
+
self: SemVerRange,
|
|
730
|
+
versions: Iterable<VersionInput>,
|
|
731
|
+
options: MatchOptions | undefined,
|
|
732
|
+
better: -1 | 1
|
|
733
|
+
): Option.Option<SemVer> => {
|
|
734
|
+
const test = matcher(self, options)
|
|
735
|
+
let selected: SemVer | undefined
|
|
736
|
+
for (const input of versions) {
|
|
737
|
+
const version = versionFromInputUnsafe(input)
|
|
738
|
+
if (test(version) && (selected === undefined || compareCore(version, selected) === better)) {
|
|
739
|
+
selected = version
|
|
740
|
+
}
|
|
741
|
+
}
|
|
742
|
+
return Option.fromUndefinedOr(selected)
|
|
743
|
+
}
|
|
744
|
+
|
|
745
|
+
/**
|
|
746
|
+
* Returns the version with the highest precedence that a range matches.
|
|
747
|
+
*
|
|
748
|
+
* **Details**
|
|
749
|
+
*
|
|
750
|
+
* Returns `None` when no version matches. When several versions share the
|
|
751
|
+
* highest precedence, the first one is returned. Throws `SemVerError` when a
|
|
752
|
+
* version is an invalid `SemVer.Input`.
|
|
753
|
+
*
|
|
754
|
+
* **Example** (Selecting the newest compatible version)
|
|
755
|
+
*
|
|
756
|
+
* ```ts import.meta.vitest
|
|
757
|
+
* import { Option, SemVer, SemVerRange } from "effect"
|
|
758
|
+
*
|
|
759
|
+
* const range = SemVerRange.parseUnsafe("^1.2.0")
|
|
760
|
+
*
|
|
761
|
+
* SemVerRange.maxSatisfying(range, ["1.2.0", "1.4.1", "2.0.0", "1.5.0-rc.1"]).pipe(Option.map(SemVer.format)) // => Option.some("1.4.1")
|
|
762
|
+
* ```
|
|
763
|
+
*
|
|
764
|
+
* @see {@link minSatisfying} for the lowest matching version
|
|
765
|
+
* @stability unstable
|
|
766
|
+
* @category filtering
|
|
767
|
+
* @since 4.0.6
|
|
768
|
+
*/
|
|
769
|
+
export const maxSatisfying: {
|
|
770
|
+
/**
|
|
771
|
+
* Returns the version with the highest precedence that a range matches.
|
|
772
|
+
*
|
|
773
|
+
* **Details**
|
|
774
|
+
*
|
|
775
|
+
* Returns `None` when no version matches. When several versions share the
|
|
776
|
+
* highest precedence, the first one is returned. Throws `SemVerError` when a
|
|
777
|
+
* version is an invalid `SemVer.Input`.
|
|
778
|
+
*
|
|
779
|
+
* **Example** (Selecting the newest compatible version)
|
|
780
|
+
*
|
|
781
|
+
* ```ts import.meta.vitest
|
|
782
|
+
* import { Option, SemVer, SemVerRange } from "effect"
|
|
783
|
+
*
|
|
784
|
+
* const range = SemVerRange.parseUnsafe("^1.2.0")
|
|
785
|
+
*
|
|
786
|
+
* SemVerRange.maxSatisfying(range, ["1.2.0", "1.4.1", "2.0.0", "1.5.0-rc.1"]).pipe(Option.map(SemVer.format)) // => Option.some("1.4.1")
|
|
787
|
+
* ```
|
|
788
|
+
*
|
|
789
|
+
* @see {@link minSatisfying} for the lowest matching version
|
|
790
|
+
* @stability unstable
|
|
791
|
+
* @category filtering
|
|
792
|
+
* @since 4.0.6
|
|
793
|
+
*/
|
|
794
|
+
(versions: Iterable<VersionInput>, options?: MatchOptions): (self: SemVerRange) => Option.Option<SemVer>
|
|
795
|
+
/**
|
|
796
|
+
* Returns the version with the highest precedence that a range matches.
|
|
797
|
+
*
|
|
798
|
+
* **Details**
|
|
799
|
+
*
|
|
800
|
+
* Returns `None` when no version matches. When several versions share the
|
|
801
|
+
* highest precedence, the first one is returned. Throws `SemVerError` when a
|
|
802
|
+
* version is an invalid `SemVer.Input`.
|
|
803
|
+
*
|
|
804
|
+
* **Example** (Selecting the newest compatible version)
|
|
805
|
+
*
|
|
806
|
+
* ```ts import.meta.vitest
|
|
807
|
+
* import { Option, SemVer, SemVerRange } from "effect"
|
|
808
|
+
*
|
|
809
|
+
* const range = SemVerRange.parseUnsafe("^1.2.0")
|
|
810
|
+
*
|
|
811
|
+
* SemVerRange.maxSatisfying(range, ["1.2.0", "1.4.1", "2.0.0", "1.5.0-rc.1"]).pipe(Option.map(SemVer.format)) // => Option.some("1.4.1")
|
|
812
|
+
* ```
|
|
813
|
+
*
|
|
814
|
+
* @see {@link minSatisfying} for the lowest matching version
|
|
815
|
+
* @stability unstable
|
|
816
|
+
* @category filtering
|
|
817
|
+
* @since 4.0.6
|
|
818
|
+
*/
|
|
819
|
+
(
|
|
820
|
+
self: SemVerRange,
|
|
821
|
+
versions: Iterable<VersionInput>,
|
|
822
|
+
options?: MatchOptions
|
|
823
|
+
): Option.Option<SemVer>
|
|
824
|
+
} = dual(
|
|
825
|
+
isRangeArgs,
|
|
826
|
+
(self: SemVerRange, versions: Iterable<VersionInput>, options?: MatchOptions): Option.Option<SemVer> =>
|
|
827
|
+
select(self, versions, options, 1)
|
|
828
|
+
)
|
|
829
|
+
|
|
830
|
+
/**
|
|
831
|
+
* Returns the version with the lowest precedence that a range matches.
|
|
832
|
+
*
|
|
833
|
+
* **Details**
|
|
834
|
+
*
|
|
835
|
+
* Returns `None` when no version matches. When several versions share the
|
|
836
|
+
* lowest precedence, the first one is returned. Throws `SemVerError` when a
|
|
837
|
+
* version is an invalid `SemVer.Input`.
|
|
838
|
+
*
|
|
839
|
+
* @see {@link maxSatisfying} for the highest matching version
|
|
840
|
+
* @stability unstable
|
|
841
|
+
* @category filtering
|
|
842
|
+
* @since 4.0.6
|
|
843
|
+
*/
|
|
844
|
+
export const minSatisfying: {
|
|
845
|
+
/**
|
|
846
|
+
* Returns the version with the lowest precedence that a range matches.
|
|
847
|
+
*
|
|
848
|
+
* **Details**
|
|
849
|
+
*
|
|
850
|
+
* Returns `None` when no version matches. When several versions share the
|
|
851
|
+
* lowest precedence, the first one is returned. Throws `SemVerError` when a
|
|
852
|
+
* version is an invalid `SemVer.Input`.
|
|
853
|
+
*
|
|
854
|
+
* @see {@link maxSatisfying} for the highest matching version
|
|
855
|
+
* @stability unstable
|
|
856
|
+
* @category filtering
|
|
857
|
+
* @since 4.0.6
|
|
858
|
+
*/
|
|
859
|
+
(versions: Iterable<VersionInput>, options?: MatchOptions): (self: SemVerRange) => Option.Option<SemVer>
|
|
860
|
+
/**
|
|
861
|
+
* Returns the version with the lowest precedence that a range matches.
|
|
862
|
+
*
|
|
863
|
+
* **Details**
|
|
864
|
+
*
|
|
865
|
+
* Returns `None` when no version matches. When several versions share the
|
|
866
|
+
* lowest precedence, the first one is returned. Throws `SemVerError` when a
|
|
867
|
+
* version is an invalid `SemVer.Input`.
|
|
868
|
+
*
|
|
869
|
+
* @see {@link maxSatisfying} for the highest matching version
|
|
870
|
+
* @stability unstable
|
|
871
|
+
* @category filtering
|
|
872
|
+
* @since 4.0.6
|
|
873
|
+
*/
|
|
874
|
+
(
|
|
875
|
+
self: SemVerRange,
|
|
876
|
+
versions: Iterable<VersionInput>,
|
|
877
|
+
options?: MatchOptions
|
|
878
|
+
): Option.Option<SemVer>
|
|
879
|
+
} = dual(
|
|
880
|
+
isRangeArgs,
|
|
881
|
+
(self: SemVerRange, versions: Iterable<VersionInput>, options?: MatchOptions): Option.Option<SemVer> =>
|
|
882
|
+
select(self, versions, options, -1)
|
|
883
|
+
)
|