effect 4.0.5 → 4.0.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/ai-docs/package.json +1 -1
- package/ai-docs/src/06_schedule/10_schedules.ts +5 -4
- package/ai-docs/tsconfig.json +3 -1
- package/dist/Array.d.ts +117 -52
- package/dist/Array.d.ts.map +1 -1
- package/dist/Array.js +41 -20
- package/dist/Array.js.map +1 -1
- package/dist/Bytes.d.ts +79 -0
- package/dist/Bytes.d.ts.map +1 -0
- package/dist/Bytes.js +109 -0
- package/dist/Bytes.js.map +1 -0
- package/dist/Channel.d.ts +181 -13
- package/dist/Channel.d.ts.map +1 -1
- package/dist/Channel.js +125 -30
- package/dist/Channel.js.map +1 -1
- package/dist/ChannelSchema.d.ts.map +1 -1
- package/dist/ChannelSchema.js.map +1 -1
- package/dist/Chunk.d.ts +39 -21
- package/dist/Chunk.d.ts.map +1 -1
- package/dist/Chunk.js +26 -17
- package/dist/Chunk.js.map +1 -1
- package/dist/Config.d.ts.map +1 -1
- package/dist/Config.js +8 -3
- package/dist/Config.js.map +1 -1
- package/dist/ConfigProvider.d.ts.map +1 -1
- package/dist/ConfigProvider.js +2 -1
- package/dist/ConfigProvider.js.map +1 -1
- package/dist/Cron.d.ts +2 -2
- package/dist/Cron.d.ts.map +1 -1
- package/dist/Cron.js +6 -3
- package/dist/Cron.js.map +1 -1
- package/dist/Duration.d.ts.map +1 -1
- package/dist/Duration.js +56 -16
- package/dist/Duration.js.map +1 -1
- package/dist/Effect.d.ts +487 -163
- package/dist/Effect.d.ts.map +1 -1
- package/dist/Effect.js +203 -37
- package/dist/Effect.js.map +1 -1
- package/dist/Equivalence.d.ts +2 -1
- package/dist/Equivalence.d.ts.map +1 -1
- package/dist/Equivalence.js +12 -8
- package/dist/Equivalence.js.map +1 -1
- package/dist/Exit.d.ts +24 -9
- package/dist/Exit.d.ts.map +1 -1
- package/dist/Exit.js +8 -3
- package/dist/Exit.js.map +1 -1
- package/dist/FiberHandle.d.ts +2 -0
- package/dist/FiberHandle.d.ts.map +1 -1
- package/dist/FiberHandle.js +9 -4
- package/dist/FiberHandle.js.map +1 -1
- package/dist/FiberMap.d.ts +2 -0
- package/dist/FiberMap.d.ts.map +1 -1
- package/dist/FiberMap.js +5 -2
- package/dist/FiberMap.js.map +1 -1
- package/dist/FileSystem.d.ts +5 -0
- package/dist/FileSystem.d.ts.map +1 -1
- package/dist/FileSystem.js +3 -0
- package/dist/FileSystem.js.map +1 -1
- package/dist/Graph.d.ts.map +1 -1
- package/dist/Graph.js.map +1 -1
- package/dist/HashSet.d.ts.map +1 -1
- package/dist/HashSet.js.map +1 -1
- package/dist/Iterable.d.ts.map +1 -1
- package/dist/Iterable.js +18 -17
- package/dist/Iterable.js.map +1 -1
- package/dist/JsonSchema.d.ts +9 -3
- package/dist/JsonSchema.d.ts.map +1 -1
- package/dist/JsonSchema.js +19 -3
- package/dist/JsonSchema.js.map +1 -1
- package/dist/Layer.d.ts.map +1 -1
- package/dist/Layer.js +2 -2
- package/dist/Layer.js.map +1 -1
- package/dist/ManagedRuntime.d.ts +19 -1
- package/dist/ManagedRuntime.d.ts.map +1 -1
- package/dist/ManagedRuntime.js +62 -6
- package/dist/ManagedRuntime.js.map +1 -1
- package/dist/Metric.d.ts +132 -0
- package/dist/Metric.d.ts.map +1 -1
- package/dist/Metric.js +197 -25
- package/dist/Metric.js.map +1 -1
- package/dist/MutableHashMap.d.ts.map +1 -1
- package/dist/MutableHashMap.js.map +1 -1
- package/dist/Number.js +2 -2
- package/dist/Number.js.map +1 -1
- package/dist/Optic.d.ts.map +1 -1
- package/dist/Optic.js.map +1 -1
- package/dist/Path.d.ts.map +1 -1
- package/dist/Path.js +8 -1
- package/dist/Path.js.map +1 -1
- package/dist/PubSub.d.ts.map +1 -1
- package/dist/PubSub.js +12 -7
- package/dist/PubSub.js.map +1 -1
- package/dist/Queue.d.ts +4 -1
- package/dist/Queue.d.ts.map +1 -1
- package/dist/Queue.js +4 -1
- package/dist/Queue.js.map +1 -1
- package/dist/Random.d.ts.map +1 -1
- package/dist/Random.js +1 -1
- package/dist/Random.js.map +1 -1
- package/dist/RcMap.d.ts +12 -7
- package/dist/RcMap.d.ts.map +1 -1
- package/dist/RcMap.js +9 -6
- package/dist/RcMap.js.map +1 -1
- package/dist/Record.d.ts +51 -0
- package/dist/Record.d.ts.map +1 -1
- package/dist/Record.js +17 -0
- package/dist/Record.js.map +1 -1
- package/dist/Ref.d.ts.map +1 -1
- package/dist/Ref.js.map +1 -1
- package/dist/References.d.ts +5 -4
- package/dist/References.d.ts.map +1 -1
- package/dist/References.js +5 -4
- package/dist/References.js.map +1 -1
- package/dist/RequestResolver.d.ts +31 -1
- package/dist/RequestResolver.d.ts.map +1 -1
- package/dist/RequestResolver.js +39 -4
- package/dist/RequestResolver.js.map +1 -1
- package/dist/Resource.js +1 -1
- package/dist/Resource.js.map +1 -1
- package/dist/Runtime.d.ts +3 -3
- package/dist/Runtime.d.ts.map +1 -1
- package/dist/Runtime.js +18 -15
- package/dist/Runtime.js.map +1 -1
- package/dist/Schedule.d.ts.map +1 -1
- package/dist/Schedule.js.map +1 -1
- package/dist/Schema.d.ts +384 -332
- package/dist/Schema.d.ts.map +1 -1
- package/dist/Schema.js +333 -19
- package/dist/Schema.js.map +1 -1
- package/dist/SchemaAST.d.ts +5 -5
- package/dist/SchemaAST.d.ts.map +1 -1
- package/dist/SchemaAST.js +24 -8
- package/dist/SchemaAST.js.map +1 -1
- package/dist/SchemaGetter.d.ts +8 -3
- package/dist/SchemaGetter.d.ts.map +1 -1
- package/dist/SchemaGetter.js +15 -5
- package/dist/SchemaGetter.js.map +1 -1
- package/dist/SchemaIssue.d.ts +4 -4
- package/dist/SchemaIssue.d.ts.map +1 -1
- package/dist/SchemaIssue.js +29 -51
- package/dist/SchemaIssue.js.map +1 -1
- package/dist/SchemaRepresentation.d.ts +56 -1
- package/dist/SchemaRepresentation.d.ts.map +1 -1
- package/dist/SchemaRepresentation.js +18 -0
- package/dist/SchemaRepresentation.js.map +1 -1
- package/dist/SchemaTransformation.d.ts +1 -1
- package/dist/SchemaTransformation.js +1 -1
- package/dist/Scope.d.ts +12 -2
- package/dist/Scope.d.ts.map +1 -1
- package/dist/Scope.js +5 -0
- package/dist/Scope.js.map +1 -1
- package/dist/ScopedCache.d.ts +10 -7
- package/dist/ScopedCache.d.ts.map +1 -1
- package/dist/ScopedCache.js +9 -5
- package/dist/ScopedCache.js.map +1 -1
- package/dist/SemVer.d.ts +1196 -0
- package/dist/SemVer.d.ts.map +1 -0
- package/dist/SemVer.js +756 -0
- package/dist/SemVer.js.map +1 -0
- package/dist/SemVerRange.d.ts +559 -0
- package/dist/SemVerRange.d.ts.map +1 -0
- package/dist/SemVerRange.js +551 -0
- package/dist/SemVerRange.js.map +1 -0
- package/dist/Sink.d.ts.map +1 -1
- package/dist/Sink.js +6 -2
- package/dist/Sink.js.map +1 -1
- package/dist/Stream.d.ts +235 -8
- package/dist/Stream.d.ts.map +1 -1
- package/dist/Stream.js +145 -60
- package/dist/Stream.js.map +1 -1
- package/dist/String.d.ts +4 -2
- package/dist/String.d.ts.map +1 -1
- package/dist/String.js +8 -6
- package/dist/String.js.map +1 -1
- package/dist/TextDiff.d.ts +399 -0
- package/dist/TextDiff.d.ts.map +1 -0
- package/dist/TextDiff.js +634 -0
- package/dist/TextDiff.js.map +1 -0
- package/dist/TxHashMap.d.ts.map +1 -1
- package/dist/TxHashMap.js.map +1 -1
- package/dist/TxHashSet.d.ts.map +1 -1
- package/dist/TxHashSet.js.map +1 -1
- package/dist/ai/AiError.d.ts +68 -4
- package/dist/ai/AiError.d.ts.map +1 -1
- package/dist/ai/AiError.js +50 -2
- package/dist/ai/AiError.js.map +1 -1
- package/dist/ai/Chat.d.ts +1 -2
- package/dist/ai/Chat.d.ts.map +1 -1
- package/dist/ai/Chat.js +6 -3
- package/dist/ai/Chat.js.map +1 -1
- package/dist/ai/Decision.d.ts +46 -1
- package/dist/ai/Decision.d.ts.map +1 -1
- package/dist/ai/Decision.js.map +1 -1
- package/dist/ai/DecisionModel.d.ts +129 -11
- package/dist/ai/DecisionModel.d.ts.map +1 -1
- package/dist/ai/DecisionModel.js +182 -94
- package/dist/ai/DecisionModel.js.map +1 -1
- package/dist/ai/EmbeddingModel.d.ts +10 -0
- package/dist/ai/EmbeddingModel.d.ts.map +1 -1
- package/dist/ai/EmbeddingModel.js +21 -7
- package/dist/ai/EmbeddingModel.js.map +1 -1
- package/dist/ai/McpClient.d.ts +289 -0
- package/dist/ai/McpClient.d.ts.map +1 -0
- package/dist/ai/McpClient.js +819 -0
- package/dist/ai/McpClient.js.map +1 -0
- package/dist/ai/McpClientError.d.ts +254 -0
- package/dist/ai/McpClientError.d.ts.map +1 -0
- package/dist/ai/McpClientError.js +260 -0
- package/dist/ai/McpClientError.js.map +1 -0
- package/dist/ai/McpProtocol.d.ts +2 -2
- package/dist/ai/McpProtocol.d.ts.map +1 -1
- package/dist/ai/McpSchema.d.ts +368 -235
- package/dist/ai/McpSchema.d.ts.map +1 -1
- package/dist/ai/McpSchema.js +94 -24
- package/dist/ai/McpSchema.js.map +1 -1
- package/dist/ai/McpServer.d.ts.map +1 -1
- package/dist/ai/McpServer.js +25 -22
- package/dist/ai/McpServer.js.map +1 -1
- package/dist/ai/Prompt.d.ts +22 -20
- package/dist/ai/Prompt.d.ts.map +1 -1
- package/dist/ai/Prompt.js +23 -1
- package/dist/ai/Prompt.js.map +1 -1
- package/dist/ai/Response.d.ts +147 -3
- package/dist/ai/Response.d.ts.map +1 -1
- package/dist/ai/Response.js +35 -37
- package/dist/ai/Response.js.map +1 -1
- package/dist/ai/Tool.d.ts +12 -4
- package/dist/ai/Tool.d.ts.map +1 -1
- package/dist/ai/Tool.js.map +1 -1
- package/dist/ai/Toolkit.d.ts +48 -1
- package/dist/ai/Toolkit.d.ts.map +1 -1
- package/dist/ai/Toolkit.js +65 -12
- package/dist/ai/Toolkit.js.map +1 -1
- package/dist/ai/index.d.ts +10 -0
- package/dist/ai/index.d.ts.map +1 -1
- package/dist/ai/index.js +10 -0
- package/dist/ai/index.js.map +1 -1
- package/dist/ai/internal/mcpCore.js.map +1 -1
- package/dist/ai/internal/mcpProtocol/v2024_11_05.js +1 -1
- package/dist/ai/internal/mcpProtocol/v2024_11_05.js.map +1 -1
- package/dist/ai/internal/mcpProtocol/v2025_03_26.js +1 -1
- package/dist/ai/internal/mcpProtocol/v2025_03_26.js.map +1 -1
- package/dist/ai/internal/mcpProtocol/v2025_06_18.js +2 -2
- package/dist/ai/internal/mcpProtocol/v2025_06_18.js.map +1 -1
- package/dist/ai/internal/mcpProtocol/v2025_11_25.js +2 -2
- package/dist/ai/internal/mcpProtocol/v2025_11_25.js.map +1 -1
- package/dist/ai/internal/mcpProtocol/v2026_07_28.js +4 -7
- package/dist/ai/internal/mcpProtocol/v2026_07_28.js.map +1 -1
- package/dist/ai/internal/mcpProtocol.js +16 -2
- package/dist/ai/internal/mcpProtocol.js.map +1 -1
- package/dist/ai/internal/mcpRuntime.js +3 -4
- package/dist/ai/internal/mcpRuntime.js.map +1 -1
- package/dist/ai/internal/mcpSchema/v2024_11_05.js +19 -13
- package/dist/ai/internal/mcpSchema/v2024_11_05.js.map +1 -1
- package/dist/ai/internal/mcpSchema/v2025_03_26.js +3 -2
- package/dist/ai/internal/mcpSchema/v2025_03_26.js.map +1 -1
- package/dist/ai/internal/mcpSchema/v2025_06_18.js +7 -7
- package/dist/ai/internal/mcpSchema/v2025_06_18.js.map +1 -1
- package/dist/ai/internal/mcpSchema/v2025_11_25.js +8 -8
- package/dist/ai/internal/mcpSchema/v2025_11_25.js.map +1 -1
- package/dist/ai/internal/mcpSchema/v2026_07_28.js +43 -42
- package/dist/ai/internal/mcpSchema/v2026_07_28.js.map +1 -1
- package/dist/cli/CliError.d.ts +42 -2
- package/dist/cli/CliError.d.ts.map +1 -1
- package/dist/cli/CliError.js +44 -5
- package/dist/cli/CliError.js.map +1 -1
- package/dist/cli/Command.d.ts +286 -2
- package/dist/cli/Command.d.ts.map +1 -1
- package/dist/cli/Command.js +107 -6
- package/dist/cli/Command.js.map +1 -1
- package/dist/cli/Completions.d.ts +5 -0
- package/dist/cli/Completions.d.ts.map +1 -1
- package/dist/cli/Completions.js.map +1 -1
- package/dist/cli/Flag.d.ts +115 -0
- package/dist/cli/Flag.d.ts.map +1 -1
- package/dist/cli/Flag.js +56 -0
- package/dist/cli/Flag.js.map +1 -1
- package/dist/cli/GlobalFlag.d.ts.map +1 -1
- package/dist/cli/GlobalFlag.js +3 -3
- package/dist/cli/GlobalFlag.js.map +1 -1
- package/dist/cli/Param.d.ts +107 -0
- package/dist/cli/Param.d.ts.map +1 -1
- package/dist/cli/Param.js +56 -0
- package/dist/cli/Param.js.map +1 -1
- package/dist/cli/TerminalCapabilities.d.ts +84 -0
- package/dist/cli/TerminalCapabilities.d.ts.map +1 -0
- package/dist/cli/TerminalCapabilities.js +122 -0
- package/dist/cli/TerminalCapabilities.js.map +1 -0
- package/dist/cli/index.d.ts +5 -0
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +5 -0
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/internal/command.d.ts +2 -1
- package/dist/cli/internal/command.d.ts.map +1 -1
- package/dist/cli/internal/command.js +5 -2
- package/dist/cli/internal/command.js.map +1 -1
- package/dist/cli/internal/completions/bash.js +4 -3
- package/dist/cli/internal/completions/bash.js.map +1 -1
- package/dist/cli/internal/completions/descriptor.js +9 -1
- package/dist/cli/internal/completions/descriptor.js.map +1 -1
- package/dist/cli/internal/completions/fish.js +10 -8
- package/dist/cli/internal/completions/fish.js.map +1 -1
- package/dist/cli/internal/completions/powershell.js +18 -9
- package/dist/cli/internal/completions/powershell.js.map +1 -1
- package/dist/cli/internal/completions/zsh.js +8 -5
- package/dist/cli/internal/completions/zsh.js.map +1 -1
- package/dist/cli/internal/formatter.d.ts +2 -0
- package/dist/cli/internal/formatter.d.ts.map +1 -0
- package/dist/cli/internal/formatter.js +15 -0
- package/dist/cli/internal/formatter.js.map +1 -0
- package/dist/cli/internal/lexer.js +24 -10
- package/dist/cli/internal/lexer.js.map +1 -1
- package/dist/cli/internal/parser.js +24 -12
- package/dist/cli/internal/parser.js.map +1 -1
- package/dist/cluster/ClusterCron.d.ts +29 -1
- package/dist/cluster/ClusterCron.d.ts.map +1 -1
- package/dist/cluster/ClusterCron.js +64 -32
- package/dist/cluster/ClusterCron.js.map +1 -1
- package/dist/cluster/ClusterMetrics.d.ts +143 -7
- package/dist/cluster/ClusterMetrics.d.ts.map +1 -1
- package/dist/cluster/ClusterMetrics.js +151 -7
- package/dist/cluster/ClusterMetrics.js.map +1 -1
- package/dist/cluster/ClusterWorkflowEngine.d.ts +1 -1
- package/dist/cluster/ClusterWorkflowEngine.d.ts.map +1 -1
- package/dist/cluster/ClusterWorkflowEngine.js +37 -11
- package/dist/cluster/ClusterWorkflowEngine.js.map +1 -1
- package/dist/cluster/Entity.d.ts +2 -0
- package/dist/cluster/Entity.d.ts.map +1 -1
- package/dist/cluster/Entity.js.map +1 -1
- package/dist/cluster/MessageStorage.d.ts +21 -0
- package/dist/cluster/MessageStorage.d.ts.map +1 -1
- package/dist/cluster/MessageStorage.js.map +1 -1
- package/dist/cluster/Runners.d.ts.map +1 -1
- package/dist/cluster/Runners.js +54 -15
- package/dist/cluster/Runners.js.map +1 -1
- package/dist/cluster/Sharding.d.ts +1 -0
- package/dist/cluster/Sharding.d.ts.map +1 -1
- package/dist/cluster/Sharding.js +95 -32
- package/dist/cluster/Sharding.js.map +1 -1
- package/dist/cluster/ShardingConfig.d.ts +20 -0
- package/dist/cluster/ShardingConfig.d.ts.map +1 -1
- package/dist/cluster/ShardingConfig.js +4 -0
- package/dist/cluster/ShardingConfig.js.map +1 -1
- package/dist/cluster/SqlMessageStorage.d.ts.map +1 -1
- package/dist/cluster/SqlMessageStorage.js +40 -50
- package/dist/cluster/SqlMessageStorage.js.map +1 -1
- package/dist/cluster/SqlRunnerStorage.d.ts +2 -2
- package/dist/cluster/SqlRunnerStorage.d.ts.map +1 -1
- package/dist/cluster/SqlRunnerStorage.js +10 -4
- package/dist/cluster/SqlRunnerStorage.js.map +1 -1
- package/dist/cluster/internal/entityManager.js +65 -8
- package/dist/cluster/internal/entityManager.js.map +1 -1
- package/dist/devtools/DevTools.d.ts +3 -2
- package/dist/devtools/DevTools.d.ts.map +1 -1
- package/dist/devtools/DevTools.js +3 -2
- package/dist/devtools/DevTools.js.map +1 -1
- package/dist/devtools/DevToolsClient.d.ts +11 -0
- package/dist/devtools/DevToolsClient.d.ts.map +1 -1
- package/dist/devtools/DevToolsClient.js +31 -4
- package/dist/devtools/DevToolsClient.js.map +1 -1
- package/dist/encoding/Base64Url.d.ts +29 -0
- package/dist/encoding/Base64Url.d.ts.map +1 -1
- package/dist/encoding/Base64Url.js +29 -0
- package/dist/encoding/Base64Url.js.map +1 -1
- package/dist/encoding/Ini.d.ts.map +1 -1
- package/dist/encoding/Ini.js +3 -0
- package/dist/encoding/Ini.js.map +1 -1
- package/dist/encoding/JsonArray.d.ts +270 -0
- package/dist/encoding/JsonArray.d.ts.map +1 -0
- package/dist/encoding/JsonArray.js +691 -0
- package/dist/encoding/JsonArray.js.map +1 -0
- package/dist/encoding/Ndjson.d.ts +43 -4
- package/dist/encoding/Ndjson.d.ts.map +1 -1
- package/dist/encoding/Ndjson.js +169 -18
- package/dist/encoding/Ndjson.js.map +1 -1
- package/dist/encoding/SchemaBinary.d.ts +9 -1
- package/dist/encoding/SchemaBinary.d.ts.map +1 -1
- package/dist/encoding/SchemaBinary.js +12 -19
- package/dist/encoding/SchemaBinary.js.map +1 -1
- package/dist/encoding/Tar.d.ts +309 -0
- package/dist/encoding/Tar.d.ts.map +1 -0
- package/dist/encoding/Tar.js +1182 -0
- package/dist/encoding/Tar.js.map +1 -0
- package/dist/encoding/Toml.js +3 -3
- package/dist/encoding/Toml.js.map +1 -1
- package/dist/encoding/Xml.d.ts +464 -0
- package/dist/encoding/Xml.d.ts.map +1 -0
- package/dist/encoding/Xml.js +1619 -0
- package/dist/encoding/Xml.js.map +1 -0
- package/dist/encoding/Yaml.d.ts +6 -2
- package/dist/encoding/Yaml.d.ts.map +1 -1
- package/dist/encoding/Yaml.js +97 -34
- package/dist/encoding/Yaml.js.map +1 -1
- package/dist/encoding/Zip.d.ts +413 -0
- package/dist/encoding/Zip.d.ts.map +1 -0
- package/dist/encoding/Zip.js +1255 -0
- package/dist/encoding/Zip.js.map +1 -0
- package/dist/encoding/index.d.ts +20 -0
- package/dist/encoding/index.d.ts.map +1 -1
- package/dist/encoding/index.js +20 -0
- package/dist/encoding/index.js.map +1 -1
- package/dist/eventlog/EventJournal.d.ts +90 -5
- package/dist/eventlog/EventJournal.d.ts.map +1 -1
- package/dist/eventlog/EventJournal.js +488 -228
- package/dist/eventlog/EventJournal.js.map +1 -1
- package/dist/eventlog/EventLog.d.ts +180 -12
- package/dist/eventlog/EventLog.d.ts.map +1 -1
- package/dist/eventlog/EventLog.js +394 -146
- package/dist/eventlog/EventLog.js.map +1 -1
- package/dist/eventlog/EventLogEncryption.d.ts +36 -30
- package/dist/eventlog/EventLogEncryption.d.ts.map +1 -1
- package/dist/eventlog/EventLogEncryption.js +97 -38
- package/dist/eventlog/EventLogEncryption.js.map +1 -1
- package/dist/eventlog/EventLogMessage.d.ts +74 -34
- package/dist/eventlog/EventLogMessage.d.ts.map +1 -1
- package/dist/eventlog/EventLogMessage.js +45 -11
- package/dist/eventlog/EventLogMessage.js.map +1 -1
- package/dist/eventlog/EventLogRemote.d.ts +45 -8
- package/dist/eventlog/EventLogRemote.d.ts.map +1 -1
- package/dist/eventlog/EventLogRemote.js +51 -14
- package/dist/eventlog/EventLogRemote.js.map +1 -1
- package/dist/eventlog/EventLogServer.d.ts +46 -3
- package/dist/eventlog/EventLogServer.d.ts.map +1 -1
- package/dist/eventlog/EventLogServer.js +119 -19
- package/dist/eventlog/EventLogServer.js.map +1 -1
- package/dist/eventlog/EventLogServerEncrypted.d.ts +23 -33
- package/dist/eventlog/EventLogServerEncrypted.d.ts.map +1 -1
- package/dist/eventlog/EventLogServerEncrypted.js +97 -70
- package/dist/eventlog/EventLogServerEncrypted.js.map +1 -1
- package/dist/eventlog/EventLogServerUnencrypted.d.ts +39 -5
- package/dist/eventlog/EventLogServerUnencrypted.d.ts.map +1 -1
- package/dist/eventlog/EventLogServerUnencrypted.js +151 -69
- package/dist/eventlog/EventLogServerUnencrypted.js.map +1 -1
- package/dist/eventlog/EventRow.d.ts +288 -0
- package/dist/eventlog/EventRow.d.ts.map +1 -0
- package/dist/eventlog/EventRow.js +435 -0
- package/dist/eventlog/EventRow.js.map +1 -0
- package/dist/eventlog/SqlEventJournal.d.ts +18 -18
- package/dist/eventlog/SqlEventJournal.d.ts.map +1 -1
- package/dist/eventlog/SqlEventJournal.js +387 -159
- package/dist/eventlog/SqlEventJournal.js.map +1 -1
- package/dist/eventlog/SqlEventLogServerEncrypted.d.ts +10 -18
- package/dist/eventlog/SqlEventLogServerEncrypted.d.ts.map +1 -1
- package/dist/eventlog/SqlEventLogServerEncrypted.js +179 -69
- package/dist/eventlog/SqlEventLogServerEncrypted.js.map +1 -1
- package/dist/eventlog/SqlEventLogServerUnencrypted.d.ts +23 -3
- package/dist/eventlog/SqlEventLogServerUnencrypted.d.ts.map +1 -1
- package/dist/eventlog/SqlEventLogServerUnencrypted.js +102 -51
- package/dist/eventlog/SqlEventLogServerUnencrypted.js.map +1 -1
- package/dist/eventlog/index.d.ts +5 -0
- package/dist/eventlog/index.d.ts.map +1 -1
- package/dist/eventlog/index.js +5 -0
- package/dist/eventlog/index.js.map +1 -1
- package/dist/eventlog/internal/conflicts.d.ts +47 -0
- package/dist/eventlog/internal/conflicts.d.ts.map +1 -0
- package/dist/eventlog/internal/conflicts.js +92 -0
- package/dist/eventlog/internal/conflicts.js.map +1 -0
- package/dist/graphql/GraphQLClientError.d.ts +2 -2
- package/dist/graphql/GraphQLClientError.d.ts.map +1 -1
- package/dist/graphql/GraphQLClientError.js +4 -18
- package/dist/graphql/GraphQLClientError.js.map +1 -1
- package/dist/graphql/GraphQLProtocol.d.ts +12 -9
- package/dist/graphql/GraphQLProtocol.d.ts.map +1 -1
- package/dist/graphql/GraphQLProtocol.js +4 -3
- package/dist/graphql/GraphQLProtocol.js.map +1 -1
- package/dist/graphql/GraphQLResolver.d.ts +2 -0
- package/dist/graphql/GraphQLResolver.d.ts.map +1 -1
- package/dist/graphql/GraphQLResolver.js +74 -32
- package/dist/graphql/GraphQLResolver.js.map +1 -1
- package/dist/http/FetchHttpClient.d.ts +8 -1
- package/dist/http/FetchHttpClient.d.ts.map +1 -1
- package/dist/http/FetchHttpClient.js +51 -4
- package/dist/http/FetchHttpClient.js.map +1 -1
- package/dist/http/FindMyWay/internal/router.js +10 -0
- package/dist/http/FindMyWay/internal/router.js.map +1 -1
- package/dist/http/Headers.d.ts +227 -0
- package/dist/http/Headers.d.ts.map +1 -1
- package/dist/http/Headers.js +261 -0
- package/dist/http/Headers.js.map +1 -1
- package/dist/http/HttpClient.d.ts +93 -0
- package/dist/http/HttpClient.d.ts.map +1 -1
- package/dist/http/HttpClient.js +55 -16
- package/dist/http/HttpClient.js.map +1 -1
- package/dist/http/HttpClientRequest.d.ts +127 -3
- package/dist/http/HttpClientRequest.d.ts.map +1 -1
- package/dist/http/HttpClientRequest.js +44 -2
- package/dist/http/HttpClientRequest.js.map +1 -1
- package/dist/http/HttpClientResponse.d.ts +53 -0
- package/dist/http/HttpClientResponse.d.ts.map +1 -1
- package/dist/http/HttpClientResponse.js +47 -0
- package/dist/http/HttpClientResponse.js.map +1 -1
- package/dist/http/HttpEffect.d.ts +6 -2
- package/dist/http/HttpEffect.d.ts.map +1 -1
- package/dist/http/HttpEffect.js +21 -17
- package/dist/http/HttpEffect.js.map +1 -1
- package/dist/http/HttpIncomingMessage.d.ts +2 -1
- package/dist/http/HttpIncomingMessage.d.ts.map +1 -1
- package/dist/http/HttpIncomingMessage.js +3 -23
- package/dist/http/HttpIncomingMessage.js.map +1 -1
- package/dist/http/HttpMiddleware.d.ts +119 -2
- package/dist/http/HttpMiddleware.d.ts.map +1 -1
- package/dist/http/HttpMiddleware.js +159 -13
- package/dist/http/HttpMiddleware.js.map +1 -1
- package/dist/http/HttpRouter.d.ts.map +1 -1
- package/dist/http/HttpRouter.js +7 -2
- package/dist/http/HttpRouter.js.map +1 -1
- package/dist/http/HttpServerError.d.ts +5 -2
- package/dist/http/HttpServerError.d.ts.map +1 -1
- package/dist/http/HttpServerError.js +5 -3
- package/dist/http/HttpServerError.js.map +1 -1
- package/dist/http/HttpServerRequest.d.ts +25 -5
- package/dist/http/HttpServerRequest.d.ts.map +1 -1
- package/dist/http/HttpServerRequest.js +36 -10
- package/dist/http/HttpServerRequest.js.map +1 -1
- package/dist/http/HttpServerResponse.d.ts +17 -8
- package/dist/http/HttpServerResponse.d.ts.map +1 -1
- package/dist/http/HttpServerResponse.js +37 -21
- package/dist/http/HttpServerResponse.js.map +1 -1
- package/dist/http/HttpStaticServer.d.ts +0 -12
- package/dist/http/HttpStaticServer.d.ts.map +1 -1
- package/dist/http/HttpStaticServer.js +21 -7
- package/dist/http/HttpStaticServer.js.map +1 -1
- package/dist/http/MultipartParser/internal/contentType.d.ts +15 -1
- package/dist/http/MultipartParser/internal/contentType.d.ts.map +1 -1
- package/dist/http/MultipartParser/internal/contentType.js +87 -5
- package/dist/http/MultipartParser/internal/contentType.js.map +1 -1
- package/dist/http/MultipartParser/internal/headers.d.ts.map +1 -1
- package/dist/http/MultipartParser/internal/headers.js +4 -12
- package/dist/http/MultipartParser/internal/headers.js.map +1 -1
- package/dist/http/MultipartParser/internal/multipart.d.ts.map +1 -1
- package/dist/http/MultipartParser/internal/multipart.js +6 -27
- package/dist/http/MultipartParser/internal/multipart.js.map +1 -1
- package/dist/http/Url.d.ts.map +1 -1
- package/dist/http/Url.js +6 -1
- package/dist/http/Url.js.map +1 -1
- package/dist/http/internal/decompression.js +17 -11
- package/dist/http/internal/decompression.js.map +1 -1
- package/dist/http/internal/lazyStream.d.ts +2 -0
- package/dist/http/internal/lazyStream.d.ts.map +1 -0
- package/dist/http/internal/lazyStream.js +18 -0
- package/dist/http/internal/lazyStream.js.map +1 -0
- package/dist/http/internal/requestState.d.ts +2 -0
- package/dist/http/internal/requestState.d.ts.map +1 -0
- package/dist/http/internal/requestState.js +28 -0
- package/dist/http/internal/requestState.js.map +1 -0
- package/dist/http/internal/webResponse.d.ts +2 -0
- package/dist/http/internal/webResponse.d.ts.map +1 -0
- package/dist/http/internal/webResponse.js +12 -0
- package/dist/http/internal/webResponse.js.map +1 -0
- package/dist/http-api/HttpApi.js +1 -1
- package/dist/http-api/HttpApi.js.map +1 -1
- package/dist/http-api/HttpApiBuilder.d.ts.map +1 -1
- package/dist/http-api/HttpApiBuilder.js +121 -18
- package/dist/http-api/HttpApiBuilder.js.map +1 -1
- package/dist/http-api/HttpApiClient.d.ts +29 -4
- package/dist/http-api/HttpApiClient.d.ts.map +1 -1
- package/dist/http-api/HttpApiClient.js +83 -23
- package/dist/http-api/HttpApiClient.js.map +1 -1
- package/dist/http-api/HttpApiEndpoint.d.ts +55 -29
- package/dist/http-api/HttpApiEndpoint.d.ts.map +1 -1
- package/dist/http-api/HttpApiEndpoint.js +49 -5
- package/dist/http-api/HttpApiEndpoint.js.map +1 -1
- package/dist/http-api/HttpApiError.d.ts +58 -0
- package/dist/http-api/HttpApiError.d.ts.map +1 -1
- package/dist/http-api/HttpApiError.js +38 -12
- package/dist/http-api/HttpApiError.js.map +1 -1
- package/dist/http-api/HttpApiScalar.d.ts +2 -1
- package/dist/http-api/HttpApiScalar.d.ts.map +1 -1
- package/dist/http-api/HttpApiScalar.js +6 -3
- package/dist/http-api/HttpApiScalar.js.map +1 -1
- package/dist/http-api/HttpApiSchema.d.ts +191 -9
- package/dist/http-api/HttpApiSchema.d.ts.map +1 -1
- package/dist/http-api/HttpApiSchema.js +137 -4
- package/dist/http-api/HttpApiSchema.js.map +1 -1
- package/dist/http-api/HttpApiSwagger.d.ts +5 -0
- package/dist/http-api/HttpApiSwagger.d.ts.map +1 -1
- package/dist/http-api/HttpApiSwagger.js +14 -4
- package/dist/http-api/HttpApiSwagger.js.map +1 -1
- package/dist/http-api/HttpApiTest.d.ts +13 -2
- package/dist/http-api/HttpApiTest.d.ts.map +1 -1
- package/dist/http-api/HttpApiTest.js +30 -9
- package/dist/http-api/HttpApiTest.js.map +1 -1
- package/dist/http-api/OpenApi.d.ts +17 -3
- package/dist/http-api/OpenApi.d.ts.map +1 -1
- package/dist/http-api/OpenApi.js +57 -32
- package/dist/http-api/OpenApi.js.map +1 -1
- package/dist/http-api/internal/path.js +35 -10
- package/dist/http-api/internal/path.js.map +1 -1
- package/dist/index.d.ts +20 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +20 -0
- package/dist/index.js.map +1 -1
- package/dist/internal/core.js +1 -1
- package/dist/internal/core.js.map +1 -1
- package/dist/internal/dateTime.js +19 -7
- package/dist/internal/dateTime.js.map +1 -1
- package/dist/internal/effect.js +85 -74
- package/dist/internal/effect.js.map +1 -1
- package/dist/internal/hashMap.js +2 -2
- package/dist/internal/hashMap.js.map +1 -1
- package/dist/internal/hydration.d.ts +2 -0
- package/dist/internal/hydration.d.ts.map +1 -0
- package/dist/internal/hydration.js +15 -0
- package/dist/internal/hydration.js.map +1 -0
- package/dist/internal/inflate.d.ts +2 -0
- package/dist/internal/inflate.d.ts.map +1 -0
- package/dist/internal/inflate.js +680 -0
- package/dist/internal/inflate.js.map +1 -0
- package/dist/internal/record.js +6 -0
- package/dist/internal/record.js.map +1 -1
- package/dist/internal/request.js +20 -7
- package/dist/internal/request.js.map +1 -1
- package/dist/internal/schedule.js +17 -22
- package/dist/internal/schedule.js.map +1 -1
- package/dist/internal/schema/fromJsonSchemaDocument.js +136 -126
- package/dist/internal/schema/fromJsonSchemaDocument.js.map +1 -1
- package/dist/internal/schema/interpreter.js +51 -36
- package/dist/internal/schema/interpreter.js.map +1 -1
- package/dist/internal/schema/standardSchema.js +34 -33
- package/dist/internal/schema/standardSchema.js.map +1 -1
- package/dist/internal/schema/toCodeDocument.js +7 -2
- package/dist/internal/schema/toCodeDocument.js.map +1 -1
- package/dist/internal/schema/toCodec.js +86 -1
- package/dist/internal/schema/toCodec.js.map +1 -1
- package/dist/internal/schema/toFormatter.js +5 -5
- package/dist/internal/schema/toFormatter.js.map +1 -1
- package/dist/internal/schema/toJsonSchemaDocument.js +60 -38
- package/dist/internal/schema/toJsonSchemaDocument.js.map +1 -1
- package/dist/internal/trie.js +1 -3
- package/dist/internal/trie.js.map +1 -1
- package/dist/internal/uuid.js +7 -3
- package/dist/internal/uuid.js.map +1 -1
- package/dist/internal/version.js +1 -1
- package/dist/net/NetAddress.d.ts.map +1 -1
- package/dist/net/NetAddress.js +2 -8
- package/dist/net/NetAddress.js.map +1 -1
- package/dist/observability/OtlpExporter.d.ts.map +1 -1
- package/dist/observability/OtlpExporter.js +5 -12
- package/dist/observability/OtlpExporter.js.map +1 -1
- package/dist/observability/OtlpMetrics.d.ts.map +1 -1
- package/dist/observability/OtlpMetrics.js +5 -3
- package/dist/observability/OtlpMetrics.js.map +1 -1
- package/dist/observability/OtlpResource.d.ts +3 -1
- package/dist/observability/OtlpResource.d.ts.map +1 -1
- package/dist/observability/OtlpResource.js +11 -4
- package/dist/observability/OtlpResource.js.map +1 -1
- package/dist/observability/OtlpSerialization.d.ts +5 -0
- package/dist/observability/OtlpSerialization.d.ts.map +1 -1
- package/dist/observability/OtlpSerialization.js +14 -3
- package/dist/observability/OtlpSerialization.js.map +1 -1
- package/dist/observability/internal/protobuf.d.ts +0 -9
- package/dist/observability/internal/protobuf.d.ts.map +1 -1
- package/dist/observability/internal/protobuf.js +2 -10
- package/dist/observability/internal/protobuf.js.map +1 -1
- package/dist/persistence/PersistedCache.d.ts.map +1 -1
- package/dist/persistence/PersistedCache.js +1 -1
- package/dist/persistence/PersistedCache.js.map +1 -1
- package/dist/persistence/PersistedQueue.d.ts +6 -2
- package/dist/persistence/PersistedQueue.d.ts.map +1 -1
- package/dist/persistence/PersistedQueue.js +162 -84
- package/dist/persistence/PersistedQueue.js.map +1 -1
- package/dist/persistence/Persistence.d.ts +28 -0
- package/dist/persistence/Persistence.d.ts.map +1 -1
- package/dist/persistence/Persistence.js +36 -8
- package/dist/persistence/Persistence.js.map +1 -1
- package/dist/persistence/RateLimiter.d.ts.map +1 -1
- package/dist/persistence/RateLimiter.js +8 -12
- package/dist/persistence/RateLimiter.js.map +1 -1
- package/dist/persistence/UserDirectories.d.ts +129 -0
- package/dist/persistence/UserDirectories.d.ts.map +1 -0
- package/dist/persistence/UserDirectories.js +178 -0
- package/dist/persistence/UserDirectories.js.map +1 -0
- package/dist/persistence/index.d.ts +5 -0
- package/dist/persistence/index.d.ts.map +1 -1
- package/dist/persistence/index.js +5 -0
- package/dist/persistence/index.js.map +1 -1
- package/dist/process/ChildProcess.d.ts +2 -1
- package/dist/process/ChildProcess.d.ts.map +1 -1
- package/dist/process/ChildProcess.js.map +1 -1
- package/dist/reactivity/AsyncResult.d.ts.map +1 -1
- package/dist/reactivity/AsyncResult.js +1 -1
- package/dist/reactivity/AsyncResult.js.map +1 -1
- package/dist/reactivity/Atom.d.ts +69 -30
- package/dist/reactivity/Atom.d.ts.map +1 -1
- package/dist/reactivity/Atom.js +40 -15
- package/dist/reactivity/Atom.js.map +1 -1
- package/dist/reactivity/AtomHttpApi.d.ts +5 -5
- package/dist/reactivity/AtomHttpApi.d.ts.map +1 -1
- package/dist/reactivity/AtomHttpApi.js +1 -1
- package/dist/reactivity/AtomHttpApi.js.map +1 -1
- package/dist/reactivity/AtomRegistry.d.ts +2 -2
- package/dist/reactivity/AtomRegistry.d.ts.map +1 -1
- package/dist/reactivity/AtomRegistry.js +44 -9
- package/dist/reactivity/AtomRegistry.js.map +1 -1
- package/dist/reactivity/AtomRpc.d.ts +3 -3
- package/dist/reactivity/AtomRpc.d.ts.map +1 -1
- package/dist/reactivity/AtomRpc.js +1 -1
- package/dist/reactivity/AtomRpc.js.map +1 -1
- package/dist/reactivity/Hydration.d.ts.map +1 -1
- package/dist/reactivity/Hydration.js +46 -12
- package/dist/reactivity/Hydration.js.map +1 -1
- package/dist/reactivity/Reactivity.d.ts +71 -7
- package/dist/reactivity/Reactivity.d.ts.map +1 -1
- package/dist/reactivity/Reactivity.js +21 -12
- package/dist/reactivity/Reactivity.js.map +1 -1
- package/dist/rpc/Rpc.d.ts +18 -0
- package/dist/rpc/Rpc.d.ts.map +1 -1
- package/dist/rpc/Rpc.js +20 -0
- package/dist/rpc/Rpc.js.map +1 -1
- package/dist/rpc/RpcClient.d.ts +26 -2
- package/dist/rpc/RpcClient.d.ts.map +1 -1
- package/dist/rpc/RpcClient.js +196 -60
- package/dist/rpc/RpcClient.js.map +1 -1
- package/dist/rpc/RpcSerialization.d.ts +15 -0
- package/dist/rpc/RpcSerialization.d.ts.map +1 -1
- package/dist/rpc/RpcSerialization.js +21 -5
- package/dist/rpc/RpcSerialization.js.map +1 -1
- package/dist/rpc/RpcServer.d.ts.map +1 -1
- package/dist/rpc/RpcServer.js +9 -18
- package/dist/rpc/RpcServer.js.map +1 -1
- package/dist/schema/Model.d.ts +1 -1
- package/dist/schema/VariantSchema.d.ts +22 -3
- package/dist/schema/VariantSchema.d.ts.map +1 -1
- package/dist/schema/VariantSchema.js +32 -18
- package/dist/schema/VariantSchema.js.map +1 -1
- package/dist/socket/Socket.d.ts +23 -1
- package/dist/socket/Socket.d.ts.map +1 -1
- package/dist/socket/Socket.js +36 -3
- package/dist/socket/Socket.js.map +1 -1
- package/dist/sql/Migrator.d.ts.map +1 -1
- package/dist/sql/Migrator.js +15 -3
- package/dist/sql/Migrator.js.map +1 -1
- package/dist/sql/SqlClient.d.ts +143 -5
- package/dist/sql/SqlClient.d.ts.map +1 -1
- package/dist/sql/SqlClient.js +148 -27
- package/dist/sql/SqlClient.js.map +1 -1
- package/dist/sql/SqlResolver.d.ts +9 -0
- package/dist/sql/SqlResolver.d.ts.map +1 -1
- package/dist/sql/SqlResolver.js +9 -0
- package/dist/sql/SqlResolver.js.map +1 -1
- package/dist/sql/Statement.d.ts +3 -1
- package/dist/sql/Statement.d.ts.map +1 -1
- package/dist/sql/Statement.js +24 -5
- package/dist/sql/Statement.js.map +1 -1
- package/dist/testing/TestClock.d.ts.map +1 -1
- package/dist/testing/TestClock.js +4 -2
- package/dist/testing/TestClock.js.map +1 -1
- package/dist/testing/TestSchema.d.ts +7 -1
- package/dist/testing/TestSchema.d.ts.map +1 -1
- package/dist/testing/TestSchema.js +9 -3
- package/dist/testing/TestSchema.js.map +1 -1
- package/dist/workflow/WorkflowEngine.d.ts.map +1 -1
- package/dist/workflow/WorkflowEngine.js +18 -4
- package/dist/workflow/WorkflowEngine.js.map +1 -1
- package/package.json +13 -3
- package/src/Array.ts +128 -55
- package/src/Bytes.ts +111 -0
- package/src/Channel.ts +263 -436
- package/src/ChannelSchema.ts +1 -49
- package/src/Chunk.ts +55 -61
- package/src/Config.ts +12 -86
- package/src/ConfigProvider.ts +2 -1
- package/src/Cron.ts +6 -3
- package/src/Duration.ts +66 -16
- package/src/Effect.ts +502 -167
- package/src/Equivalence.ts +7 -4
- package/src/Exit.ts +24 -9
- package/src/FiberHandle.ts +10 -9
- package/src/FiberMap.ts +13 -66
- package/src/FileSystem.ts +10 -0
- package/src/Graph.ts +171 -1263
- package/src/HashSet.ts +0 -60
- package/src/Iterable.ts +15 -14
- package/src/JsonSchema.ts +28 -3
- package/src/Layer.ts +2 -2
- package/src/ManagedRuntime.ts +72 -6
- package/src/Metric.ts +249 -507
- package/src/MutableHashMap.ts +4 -473
- package/src/Number.ts +2 -2
- package/src/Optic.ts +17 -332
- package/src/Path.ts +9 -1
- package/src/PubSub.ts +12 -7
- package/src/Queue.ts +5 -37
- package/src/Random.ts +1 -1
- package/src/RcMap.ts +14 -8
- package/src/Record.ts +51 -0
- package/src/Ref.ts +7 -104
- package/src/References.ts +5 -4
- package/src/RequestResolver.ts +46 -87
- package/src/Resource.ts +1 -1
- package/src/Runtime.ts +19 -18
- package/src/Schedule.ts +2 -94
- package/src/Schema.ts +591 -356
- package/src/SchemaAST.ts +20 -9
- package/src/SchemaGetter.ts +22 -5
- package/src/SchemaIssue.ts +44 -53
- package/src/SchemaRepresentation.ts +64 -1
- package/src/SchemaTransformation.ts +1 -1
- package/src/Scope.ts +12 -2
- package/src/ScopedCache.ts +17 -142
- package/src/SemVer.ts +1528 -0
- package/src/SemVerRange.ts +883 -0
- package/src/Sink.ts +6 -2
- package/src/Stream.ts +334 -1011
- package/src/String.ts +8 -8
- package/src/TextDiff.ts +766 -0
- package/src/TxHashMap.ts +1 -103
- package/src/TxHashSet.ts +48 -753
- package/src/ai/AiError.ts +66 -4
- package/src/ai/Chat.ts +10 -5
- package/src/ai/Decision.ts +49 -1
- package/src/ai/DecisionModel.ts +264 -108
- package/src/ai/EmbeddingModel.ts +25 -13
- package/src/ai/McpClient.ts +1211 -0
- package/src/ai/McpClientError.ts +329 -0
- package/src/ai/McpProtocol.ts +2 -2
- package/src/ai/McpSchema.ts +153 -35
- package/src/ai/McpServer.ts +217 -220
- package/src/ai/Prompt.ts +49 -35
- package/src/ai/Response.ts +195 -65
- package/src/ai/Tool.ts +12 -4
- package/src/ai/Toolkit.ts +78 -10
- package/src/ai/index.ts +12 -0
- package/src/ai/internal/mcpCore.ts +13 -14
- package/src/ai/internal/mcpProtocol/v2024_11_05.ts +1 -1
- package/src/ai/internal/mcpProtocol/v2025_03_26.ts +1 -1
- package/src/ai/internal/mcpProtocol/v2025_06_18.ts +3 -3
- package/src/ai/internal/mcpProtocol/v2025_11_25.ts +3 -3
- package/src/ai/internal/mcpProtocol/v2026_07_28.ts +12 -14
- package/src/ai/internal/mcpProtocol.ts +22 -2
- package/src/ai/internal/mcpRuntime.ts +3 -4
- package/src/ai/internal/mcpSchema/v2024_11_05.ts +20 -13
- package/src/ai/internal/mcpSchema/v2025_03_26.ts +4 -2
- package/src/ai/internal/mcpSchema/v2025_06_18.ts +7 -7
- package/src/ai/internal/mcpSchema/v2025_11_25.ts +8 -8
- package/src/ai/internal/mcpSchema/v2026_07_28.ts +44 -42
- package/src/cli/CliError.ts +49 -4
- package/src/cli/Command.ts +316 -9
- package/src/cli/Completions.ts +5 -0
- package/src/cli/Flag.ts +117 -0
- package/src/cli/GlobalFlag.ts +3 -3
- package/src/cli/Param.ts +122 -0
- package/src/cli/TerminalCapabilities.ts +156 -0
- package/src/cli/index.ts +6 -0
- package/src/cli/internal/command.ts +8 -3
- package/src/cli/internal/completions/bash.ts +4 -3
- package/src/cli/internal/completions/descriptor.ts +11 -1
- package/src/cli/internal/completions/fish.ts +10 -8
- package/src/cli/internal/completions/powershell.ts +23 -14
- package/src/cli/internal/completions/zsh.ts +8 -5
- package/src/cli/internal/formatter.ts +18 -0
- package/src/cli/internal/lexer.ts +12 -5
- package/src/cli/internal/parser.ts +31 -11
- package/src/cluster/ClusterCron.ts +94 -35
- package/src/cluster/ClusterMetrics.ts +149 -7
- package/src/cluster/ClusterWorkflowEngine.ts +84 -41
- package/src/cluster/Entity.ts +4 -0
- package/src/cluster/MessageStorage.ts +7 -0
- package/src/cluster/Runners.ts +76 -25
- package/src/cluster/Sharding.ts +118 -38
- package/src/cluster/ShardingConfig.ts +15 -0
- package/src/cluster/SqlMessageStorage.ts +58 -55
- package/src/cluster/SqlRunnerStorage.ts +10 -4
- package/src/cluster/internal/entityManager.ts +80 -10
- package/src/devtools/DevTools.ts +3 -2
- package/src/devtools/DevToolsClient.ts +27 -10
- package/src/encoding/Base64Url.ts +31 -0
- package/src/encoding/Ini.ts +3 -0
- package/src/encoding/JsonArray.ts +849 -0
- package/src/encoding/Ndjson.ts +211 -20
- package/src/encoding/SchemaBinary.ts +14 -48
- package/src/encoding/Tar.ts +1417 -0
- package/src/encoding/Toml.ts +3 -3
- package/src/encoding/Xml.ts +2037 -0
- package/src/encoding/Yaml.ts +108 -36
- package/src/encoding/Zip.ts +1558 -0
- package/src/encoding/index.ts +24 -0
- package/src/eventlog/EventJournal.ts +611 -227
- package/src/eventlog/EventLog.ts +496 -196
- package/src/eventlog/EventLogEncryption.ts +128 -43
- package/src/eventlog/EventLogMessage.ts +62 -11
- package/src/eventlog/EventLogRemote.ts +77 -21
- package/src/eventlog/EventLogServer.ts +162 -20
- package/src/eventlog/EventLogServerEncrypted.ts +121 -80
- package/src/eventlog/EventLogServerUnencrypted.ts +180 -77
- package/src/eventlog/EventRow.ts +706 -0
- package/src/eventlog/SqlEventJournal.ts +453 -173
- package/src/eventlog/SqlEventLogServerEncrypted.ts +212 -83
- package/src/eventlog/SqlEventLogServerUnencrypted.ts +141 -62
- package/src/eventlog/index.ts +6 -0
- package/src/eventlog/internal/conflicts.ts +123 -0
- package/src/graphql/GraphQLClientError.ts +5 -12
- package/src/graphql/GraphQLProtocol.ts +12 -9
- package/src/graphql/GraphQLResolver.ts +90 -239
- package/src/http/FetchHttpClient.ts +56 -6
- package/src/http/FindMyWay/internal/router.ts +11 -0
- package/src/http/Headers.ts +337 -154
- package/src/http/HttpClient.ts +126 -135
- package/src/http/HttpClientRequest.ts +142 -4
- package/src/http/HttpClientResponse.ts +71 -0
- package/src/http/HttpEffect.ts +25 -33
- package/src/http/HttpIncomingMessage.ts +3 -23
- package/src/http/HttpMiddleware.ts +180 -23
- package/src/http/HttpRouter.ts +8 -2
- package/src/http/HttpServerError.ts +6 -3
- package/src/http/HttpServerRequest.ts +71 -12
- package/src/http/HttpServerResponse.ts +49 -23
- package/src/http/HttpStaticServer.ts +25 -9
- package/src/http/MultipartParser/internal/contentType.ts +107 -6
- package/src/http/MultipartParser/internal/headers.ts +4 -16
- package/src/http/MultipartParser/internal/multipart.ts +10 -32
- package/src/http/Url.ts +6 -1
- package/src/http/internal/decompression.ts +26 -17
- package/src/http/internal/lazyStream.ts +25 -0
- package/src/http/internal/requestState.ts +33 -0
- package/src/http/internal/webResponse.ts +20 -0
- package/src/http-api/HttpApi.ts +1 -1
- package/src/http-api/HttpApiBuilder.ts +151 -23
- package/src/http-api/HttpApiClient.ts +158 -30
- package/src/http-api/HttpApiEndpoint.ts +144 -33
- package/src/http-api/HttpApiError.ts +55 -0
- package/src/http-api/HttpApiScalar.ts +4 -3
- package/src/http-api/HttpApiSchema.ts +275 -13
- package/src/http-api/HttpApiSwagger.ts +11 -4
- package/src/http-api/HttpApiTest.ts +33 -9
- package/src/http-api/OpenApi.ts +84 -42
- package/src/http-api/internal/path.ts +40 -12
- package/src/index.ts +24 -0
- package/src/internal/core.ts +1 -1
- package/src/internal/dateTime.ts +20 -7
- package/src/internal/effect.ts +120 -84
- package/src/internal/hashMap.ts +2 -2
- package/src/internal/hydration.ts +15 -0
- package/src/internal/inflate.ts +710 -0
- package/src/internal/record.ts +6 -0
- package/src/internal/request.ts +21 -6
- package/src/internal/schedule.ts +20 -39
- package/src/internal/schema/fromJsonSchemaDocument.ts +262 -193
- package/src/internal/schema/interpreter.ts +58 -45
- package/src/internal/schema/standardSchema.ts +32 -30
- package/src/internal/schema/toCodeDocument.ts +8 -3
- package/src/internal/schema/toCodec.ts +116 -1
- package/src/internal/schema/toFormatter.ts +6 -6
- package/src/internal/schema/toJsonSchemaDocument.ts +69 -39
- package/src/internal/trie.ts +1 -3
- package/src/internal/uuid.ts +15 -10
- package/src/internal/version.ts +1 -1
- package/src/net/NetAddress.ts +2 -9
- package/src/observability/OtlpExporter.ts +5 -12
- package/src/observability/OtlpMetrics.ts +5 -3
- package/src/observability/OtlpResource.ts +16 -6
- package/src/observability/OtlpSerialization.ts +17 -3
- package/src/observability/internal/protobuf.ts +2 -10
- package/src/persistence/PersistedCache.ts +3 -1
- package/src/persistence/PersistedQueue.ts +223 -153
- package/src/persistence/Persistence.ts +64 -30
- package/src/persistence/RateLimiter.ts +18 -21
- package/src/persistence/UserDirectories.ts +273 -0
- package/src/persistence/index.ts +6 -0
- package/src/process/ChildProcess.ts +2 -1
- package/src/reactivity/AsyncResult.ts +4 -38
- package/src/reactivity/Atom.ts +134 -166
- package/src/reactivity/AtomHttpApi.ts +10 -16
- package/src/reactivity/AtomRegistry.ts +50 -29
- package/src/reactivity/AtomRpc.ts +6 -22
- package/src/reactivity/Hydration.ts +53 -12
- package/src/reactivity/Reactivity.ts +97 -39
- package/src/rpc/Rpc.ts +21 -0
- package/src/rpc/RpcClient.ts +279 -103
- package/src/rpc/RpcSerialization.ts +21 -5
- package/src/rpc/RpcServer.ts +11 -20
- package/src/schema/VariantSchema.ts +86 -22
- package/src/socket/Socket.ts +45 -20
- package/src/sql/Migrator.ts +19 -9
- package/src/sql/SqlClient.ts +266 -29
- package/src/sql/SqlResolver.ts +9 -0
- package/src/sql/Statement.ts +35 -8
- package/src/testing/TestClock.ts +4 -1
- package/src/testing/TestSchema.ts +9 -3
- package/src/workflow/WorkflowEngine.ts +34 -10
- package/dist/http/internal/preResponseHandler.d.ts +0 -2
- package/dist/http/internal/preResponseHandler.d.ts.map +0 -1
- package/dist/http/internal/preResponseHandler.js +0 -14
- package/dist/http/internal/preResponseHandler.js.map +0 -1
- package/src/http/internal/preResponseHandler.ts +0 -19
package/dist/SemVer.js
ADDED
|
@@ -0,0 +1,756 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Immutable [Semantic Versioning 2.0.0](https://semver.org/spec/v2.0.0.html)
|
|
3
|
+
* values with strict parsing, canonical formatting, spec precedence ordering,
|
|
4
|
+
* and version bumps.
|
|
5
|
+
*
|
|
6
|
+
* A `SemVer` has numeric major, minor, and patch components, optional
|
|
7
|
+
* pre-release identifiers, and optional build metadata. Structural equality
|
|
8
|
+
* and hashing include build metadata, while `Order` follows spec precedence
|
|
9
|
+
* and ignores it. Version ranges live in `SemVerRange`.
|
|
10
|
+
*
|
|
11
|
+
* @stability unstable
|
|
12
|
+
* @since 4.0.6
|
|
13
|
+
*/
|
|
14
|
+
import * as Data from "./Data.js";
|
|
15
|
+
import * as Equal from "./Equal.js";
|
|
16
|
+
import * as Equ from "./Equivalence.js";
|
|
17
|
+
import { dual } from "./Function.js";
|
|
18
|
+
import * as Hash from "./Hash.js";
|
|
19
|
+
import { NodeInspectSymbol } from "./Inspectable.js";
|
|
20
|
+
import * as Option from "./Option.js";
|
|
21
|
+
import * as order from "./Order.js";
|
|
22
|
+
import { pipeArguments } from "./Pipeable.js";
|
|
23
|
+
import { hasProperty } from "./Predicate.js";
|
|
24
|
+
import * as Result from "./Result.js";
|
|
25
|
+
const TypeId = "~effect/SemVer";
|
|
26
|
+
const SemVerErrorTypeId = "~effect/SemVer/SemVerError";
|
|
27
|
+
/**
|
|
28
|
+
* Error raised for invalid version strings, ranges, or components.
|
|
29
|
+
*
|
|
30
|
+
* @see {@link isSemVerError} for narrowing unknown values
|
|
31
|
+
* @stability unstable
|
|
32
|
+
* @category errors
|
|
33
|
+
* @since 4.0.6
|
|
34
|
+
*/
|
|
35
|
+
export class SemVerError extends /*#__PURE__*/Data.TaggedError("SemVerError") {
|
|
36
|
+
[SemVerErrorTypeId] = SemVerErrorTypeId;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Checks whether a value is a `SemVerError`.
|
|
40
|
+
*
|
|
41
|
+
* @stability unstable
|
|
42
|
+
* @category guards
|
|
43
|
+
* @since 4.0.6
|
|
44
|
+
*/
|
|
45
|
+
export const isSemVerError = u => hasProperty(u, SemVerErrorTypeId);
|
|
46
|
+
/** @internal */
|
|
47
|
+
export const invalid = message => {
|
|
48
|
+
throw new SemVerError({
|
|
49
|
+
message
|
|
50
|
+
});
|
|
51
|
+
};
|
|
52
|
+
const attempt = evaluate => Result.try({
|
|
53
|
+
try: evaluate,
|
|
54
|
+
catch: error => {
|
|
55
|
+
if (!isSemVerError(error)) throw error;
|
|
56
|
+
return error;
|
|
57
|
+
}
|
|
58
|
+
});
|
|
59
|
+
/** @internal */
|
|
60
|
+
export const tryParse = (label, input, parse) => Result.mapError(attempt(() => parse(input)), error => new SemVerError({
|
|
61
|
+
message: `Invalid ${label} ${JSON.stringify(input)}: ${error.message}`,
|
|
62
|
+
input
|
|
63
|
+
}));
|
|
64
|
+
const numericPattern = /^(?:0|[1-9]\d*)$/;
|
|
65
|
+
const digitsPattern = /^\d+$/;
|
|
66
|
+
const identifierPattern = /^[0-9A-Za-z-]+$/;
|
|
67
|
+
const checkComponent = (value, label) => {
|
|
68
|
+
if (!Number.isSafeInteger(value) || value < 0) {
|
|
69
|
+
return invalid(`${label} must be a non-negative safe integer, received ${value}`);
|
|
70
|
+
}
|
|
71
|
+
return value;
|
|
72
|
+
};
|
|
73
|
+
/** @internal */
|
|
74
|
+
export const parseComponent = (value, label) => {
|
|
75
|
+
if (!numericPattern.test(value)) {
|
|
76
|
+
return invalid(`${label} must be a non-negative integer without leading zeros, received ${JSON.stringify(value)}`);
|
|
77
|
+
}
|
|
78
|
+
return checkComponent(Number(value), label);
|
|
79
|
+
};
|
|
80
|
+
/** @internal */
|
|
81
|
+
export const prereleaseIdentifier = identifier => {
|
|
82
|
+
if (typeof identifier === "number") return checkComponent(identifier, "numeric pre-release identifier");
|
|
83
|
+
if (!identifierPattern.test(identifier)) {
|
|
84
|
+
return invalid(`pre-release identifier must be non-empty [0-9A-Za-z-], received ${JSON.stringify(identifier)}`);
|
|
85
|
+
}
|
|
86
|
+
return digitsPattern.test(identifier) ? parseComponent(identifier, "numeric pre-release identifier") : identifier;
|
|
87
|
+
};
|
|
88
|
+
const buildIdentifier = identifier => {
|
|
89
|
+
if (!identifierPattern.test(identifier)) {
|
|
90
|
+
return invalid(`build identifier must be non-empty [0-9A-Za-z-], received ${JSON.stringify(identifier)}`);
|
|
91
|
+
}
|
|
92
|
+
return identifier;
|
|
93
|
+
};
|
|
94
|
+
const comparePrerelease = (self, that) => {
|
|
95
|
+
if (self.length === 0) return that.length === 0 ? 0 : 1;
|
|
96
|
+
if (that.length === 0) return -1;
|
|
97
|
+
const length = Math.min(self.length, that.length);
|
|
98
|
+
for (let i = 0; i < length; i++) {
|
|
99
|
+
const a = self[i];
|
|
100
|
+
const b = that[i];
|
|
101
|
+
if (a === b) continue;
|
|
102
|
+
if (typeof a === "number") return typeof b === "number" ? order.Number(a, b) : -1;
|
|
103
|
+
if (typeof b === "number") return 1;
|
|
104
|
+
return order.String(a, b);
|
|
105
|
+
}
|
|
106
|
+
return order.Number(self.length, that.length);
|
|
107
|
+
};
|
|
108
|
+
/** @internal */
|
|
109
|
+
export const sameCore = (self, that) => self.major === that.major && self.minor === that.minor && self.patch === that.patch;
|
|
110
|
+
/** @internal */
|
|
111
|
+
export const compareCore = (self, that) => order.Number(self.major, that.major) || order.Number(self.minor, that.minor) || order.Number(self.patch, that.patch) || comparePrerelease(self.prerelease, that.prerelease);
|
|
112
|
+
const SemVerProto = {
|
|
113
|
+
[TypeId]: TypeId,
|
|
114
|
+
[Equal.symbol](that) {
|
|
115
|
+
return isSemVer(that) && Equivalence(this, that);
|
|
116
|
+
},
|
|
117
|
+
[Hash.symbol]() {
|
|
118
|
+
return Hash.string(format(this));
|
|
119
|
+
},
|
|
120
|
+
toString() {
|
|
121
|
+
return `SemVer(${format(this)})`;
|
|
122
|
+
},
|
|
123
|
+
toJSON() {
|
|
124
|
+
return {
|
|
125
|
+
_id: "SemVer",
|
|
126
|
+
value: format(this)
|
|
127
|
+
};
|
|
128
|
+
},
|
|
129
|
+
[NodeInspectSymbol]() {
|
|
130
|
+
return this.toJSON();
|
|
131
|
+
},
|
|
132
|
+
pipe() {
|
|
133
|
+
return pipeArguments(this, arguments);
|
|
134
|
+
}
|
|
135
|
+
};
|
|
136
|
+
const unchecked = (major, minor, patch, prerelease, build) => {
|
|
137
|
+
const self = Object.create(SemVerProto);
|
|
138
|
+
self.major = major;
|
|
139
|
+
self.minor = minor;
|
|
140
|
+
self.patch = patch;
|
|
141
|
+
self.prerelease = prerelease;
|
|
142
|
+
self.build = build;
|
|
143
|
+
return self;
|
|
144
|
+
};
|
|
145
|
+
const increment = (value, label) => {
|
|
146
|
+
if (value >= Number.MAX_SAFE_INTEGER) return invalid(`${label} cannot be incremented past Number.MAX_SAFE_INTEGER`);
|
|
147
|
+
return value + 1;
|
|
148
|
+
};
|
|
149
|
+
/**
|
|
150
|
+
* Checks whether a value is a `SemVer`.
|
|
151
|
+
*
|
|
152
|
+
* @stability unstable
|
|
153
|
+
* @category guards
|
|
154
|
+
* @since 4.0.6
|
|
155
|
+
*/
|
|
156
|
+
export const isSemVer = u => hasProperty(u, TypeId);
|
|
157
|
+
/**
|
|
158
|
+
* Creates a version from its components and throws `SemVerError` for invalid
|
|
159
|
+
* components.
|
|
160
|
+
*
|
|
161
|
+
* **Details**
|
|
162
|
+
*
|
|
163
|
+
* Components must be non-negative safe integers. Identifiers must be non-empty
|
|
164
|
+
* and contain only ASCII alphanumerics and hyphens. Digit-only pre-release
|
|
165
|
+
* strings are normalized to numbers and must not have leading zeros.
|
|
166
|
+
*
|
|
167
|
+
* A `SemVer` spreads into exactly these components, so `make({ ...version,
|
|
168
|
+
* patch: version.patch + 1 })` derives a validated version from an existing
|
|
169
|
+
* one.
|
|
170
|
+
*
|
|
171
|
+
* **Example** (Creating a pre-release version)
|
|
172
|
+
*
|
|
173
|
+
* ```ts import.meta.vitest
|
|
174
|
+
* import { SemVer } from "effect"
|
|
175
|
+
*
|
|
176
|
+
* SemVer.format(SemVer.make({ major: 1, minor: 0, patch: 0, prerelease: ["beta", "2"] })) // => "1.0.0-beta.2"
|
|
177
|
+
* ```
|
|
178
|
+
*
|
|
179
|
+
* @see {@link parse} for decoding version strings
|
|
180
|
+
* @stability unstable
|
|
181
|
+
* @category constructors
|
|
182
|
+
* @since 4.0.6
|
|
183
|
+
*/
|
|
184
|
+
export const make = components => unchecked(checkComponent(components.major, "major"), checkComponent(components.minor, "minor"), checkComponent(components.patch, "patch"), components.prerelease?.map(prereleaseIdentifier) ?? [], components.build?.map(buildIdentifier) ?? []);
|
|
185
|
+
const parseOrThrow = input => {
|
|
186
|
+
let rest = input;
|
|
187
|
+
let build = [];
|
|
188
|
+
const plus = rest.indexOf("+");
|
|
189
|
+
if (plus !== -1) {
|
|
190
|
+
build = rest.slice(plus + 1).split(".").map(buildIdentifier);
|
|
191
|
+
rest = rest.slice(0, plus);
|
|
192
|
+
}
|
|
193
|
+
let prerelease = [];
|
|
194
|
+
const dash = rest.indexOf("-");
|
|
195
|
+
if (dash !== -1) {
|
|
196
|
+
prerelease = rest.slice(dash + 1).split(".").map(prereleaseIdentifier);
|
|
197
|
+
rest = rest.slice(0, dash);
|
|
198
|
+
}
|
|
199
|
+
const core = rest.split(".");
|
|
200
|
+
if (core.length !== 3) return invalid("expected MAJOR.MINOR.PATCH");
|
|
201
|
+
return unchecked(parseComponent(core[0], "major"), parseComponent(core[1], "minor"), parseComponent(core[2], "patch"), prerelease, build);
|
|
202
|
+
};
|
|
203
|
+
/**
|
|
204
|
+
* Parses a strict Semantic Versioning 2.0.0 string.
|
|
205
|
+
*
|
|
206
|
+
* **Details**
|
|
207
|
+
*
|
|
208
|
+
* The input must match the spec grammar exactly. Leading zeros in numeric
|
|
209
|
+
* components or pre-release identifiers, empty identifiers, and numbers above
|
|
210
|
+
* `Number.MAX_SAFE_INTEGER` are rejected.
|
|
211
|
+
*
|
|
212
|
+
* **Gotchas**
|
|
213
|
+
*
|
|
214
|
+
* A `v` prefix, surrounding whitespace, and partial versions such as `1.2` are
|
|
215
|
+
* rejected because they are not semantic versions.
|
|
216
|
+
*
|
|
217
|
+
* **Example** (Parsing version strings)
|
|
218
|
+
*
|
|
219
|
+
* ```ts import.meta.vitest
|
|
220
|
+
* import { Result, SemVer } from "effect"
|
|
221
|
+
*
|
|
222
|
+
* Result.isSuccess(SemVer.parse("1.2.3-alpha.1+001")) // => true
|
|
223
|
+
* Result.isFailure(SemVer.parse("v1.2.3")) // => true
|
|
224
|
+
* ```
|
|
225
|
+
*
|
|
226
|
+
* @see {@link parseUnsafe} for throwing on invalid input
|
|
227
|
+
* @see {@link format} for the inverse operation
|
|
228
|
+
* @stability unstable
|
|
229
|
+
* @category constructors
|
|
230
|
+
* @since 4.0.6
|
|
231
|
+
*/
|
|
232
|
+
export const parse = input => tryParse("SemVer", input, parseOrThrow);
|
|
233
|
+
/**
|
|
234
|
+
* Parses a strict Semantic Versioning 2.0.0 string and throws `SemVerError`
|
|
235
|
+
* for invalid input.
|
|
236
|
+
*
|
|
237
|
+
* @see {@link parse} for non-throwing parsing
|
|
238
|
+
* @stability unstable
|
|
239
|
+
* @category constructors
|
|
240
|
+
* @since 4.0.6
|
|
241
|
+
*/
|
|
242
|
+
export const parseUnsafe = input => Result.getOrThrow(parse(input));
|
|
243
|
+
/**
|
|
244
|
+
* Converts a version, version string, or version components into a `SemVer`.
|
|
245
|
+
*
|
|
246
|
+
* **Details**
|
|
247
|
+
*
|
|
248
|
+
* Versions are returned unchanged, strings are parsed like {@link parse}, and
|
|
249
|
+
* components are validated like {@link make}. Invalid input fails with
|
|
250
|
+
* `SemVerError`.
|
|
251
|
+
*
|
|
252
|
+
* **Example** (Accepting flexible version input)
|
|
253
|
+
*
|
|
254
|
+
* ```ts import.meta.vitest
|
|
255
|
+
* import { Result, SemVer } from "effect"
|
|
256
|
+
*
|
|
257
|
+
* Result.map(SemVer.fromInput("1.2.3-rc.1"), SemVer.format) // => Result.succeed("1.2.3-rc.1")
|
|
258
|
+
* Result.map(SemVer.fromInput({ major: 1, minor: 2, patch: 3 }), SemVer.format) // => Result.succeed("1.2.3")
|
|
259
|
+
* Result.isFailure(SemVer.fromInput({ major: -1, minor: 0, patch: 0 })) // => true
|
|
260
|
+
* ```
|
|
261
|
+
*
|
|
262
|
+
* @see {@link fromInputUnsafe} for throwing on invalid input
|
|
263
|
+
* @stability unstable
|
|
264
|
+
* @category constructors
|
|
265
|
+
* @since 4.0.6
|
|
266
|
+
*/
|
|
267
|
+
export const fromInput = input => {
|
|
268
|
+
if (isSemVer(input)) return Result.succeed(input);
|
|
269
|
+
if (typeof input === "string") return parse(input);
|
|
270
|
+
return attempt(() => make(input));
|
|
271
|
+
};
|
|
272
|
+
/**
|
|
273
|
+
* Converts a version, version string, or version components into a `SemVer`
|
|
274
|
+
* and throws `SemVerError` for invalid input.
|
|
275
|
+
*
|
|
276
|
+
* @see {@link fromInput} for non-throwing conversion
|
|
277
|
+
* @stability unstable
|
|
278
|
+
* @category constructors
|
|
279
|
+
* @since 4.0.6
|
|
280
|
+
*/
|
|
281
|
+
export const fromInputUnsafe = input => Result.getOrThrow(fromInput(input));
|
|
282
|
+
/**
|
|
283
|
+
* Formats a version as its canonical string, including pre-release identifiers
|
|
284
|
+
* and build metadata.
|
|
285
|
+
*
|
|
286
|
+
* @see {@link parse} for the inverse operation
|
|
287
|
+
* @stability unstable
|
|
288
|
+
* @category converting
|
|
289
|
+
* @since 4.0.6
|
|
290
|
+
*/
|
|
291
|
+
export const format = self => {
|
|
292
|
+
let out = `${self.major}.${self.minor}.${self.patch}`;
|
|
293
|
+
if (self.prerelease.length > 0) out += `-${self.prerelease.join(".")}`;
|
|
294
|
+
if (self.build.length > 0) out += `+${self.build.join(".")}`;
|
|
295
|
+
return out;
|
|
296
|
+
};
|
|
297
|
+
/**
|
|
298
|
+
* Checks whether a version has pre-release identifiers.
|
|
299
|
+
*
|
|
300
|
+
* @stability unstable
|
|
301
|
+
* @category predicates
|
|
302
|
+
* @since 4.0.6
|
|
303
|
+
*/
|
|
304
|
+
export const isPrerelease = self => self.prerelease.length > 0;
|
|
305
|
+
/**
|
|
306
|
+
* Checks whether a version has build metadata.
|
|
307
|
+
*
|
|
308
|
+
* **Details**
|
|
309
|
+
*
|
|
310
|
+
* Build metadata does not affect precedence, but it is part of structural
|
|
311
|
+
* equality.
|
|
312
|
+
*
|
|
313
|
+
* @stability unstable
|
|
314
|
+
* @category predicates
|
|
315
|
+
* @since 4.0.6
|
|
316
|
+
*/
|
|
317
|
+
export const hasBuild = self => self.build.length > 0;
|
|
318
|
+
/**
|
|
319
|
+
* Checks whether a version is in initial development, meaning its major
|
|
320
|
+
* version is `0`.
|
|
321
|
+
*
|
|
322
|
+
* **Details**
|
|
323
|
+
*
|
|
324
|
+
* The SemVer spec treats `0.y.z` as initial development where anything may
|
|
325
|
+
* change at any time and the public API should not be considered stable.
|
|
326
|
+
*
|
|
327
|
+
* @stability unstable
|
|
328
|
+
* @category predicates
|
|
329
|
+
* @since 4.0.6
|
|
330
|
+
*/
|
|
331
|
+
export const isInitialDevelopment = self => self.major === 0;
|
|
332
|
+
/**
|
|
333
|
+
* Orders versions by Semantic Versioning precedence.
|
|
334
|
+
*
|
|
335
|
+
* **Details**
|
|
336
|
+
*
|
|
337
|
+
* Major, minor, and patch are compared numerically. A pre-release has lower
|
|
338
|
+
* precedence than its release. Pre-release identifiers are compared left to
|
|
339
|
+
* right: numeric identifiers compare numerically and sort before alphanumeric
|
|
340
|
+
* identifiers, which compare in ASCII order. A longer list of otherwise equal
|
|
341
|
+
* identifiers has higher precedence.
|
|
342
|
+
*
|
|
343
|
+
* **Gotchas**
|
|
344
|
+
*
|
|
345
|
+
* Build metadata is ignored, so versions that differ only in build metadata
|
|
346
|
+
* compare as `0` even though they are not `Equal`.
|
|
347
|
+
*
|
|
348
|
+
* **Example** (Sorting by precedence)
|
|
349
|
+
*
|
|
350
|
+
* ```ts import.meta.vitest
|
|
351
|
+
* import { Array, SemVer } from "effect"
|
|
352
|
+
*
|
|
353
|
+
* const versions = ["1.0.0", "1.0.0-rc.1", "1.0.0-beta.11", "1.0.0-beta.2", "1.0.0-alpha"].map(SemVer.parseUnsafe)
|
|
354
|
+
*
|
|
355
|
+
* Array.sort(versions, SemVer.Order).map(SemVer.format) // => ["1.0.0-alpha", "1.0.0-beta.2", "1.0.0-beta.11", "1.0.0-rc.1", "1.0.0"]
|
|
356
|
+
* ```
|
|
357
|
+
*
|
|
358
|
+
* @see {@link Equivalence} for structural equality including build metadata
|
|
359
|
+
* @stability unstable
|
|
360
|
+
* @category instances
|
|
361
|
+
* @since 4.0.6
|
|
362
|
+
*/
|
|
363
|
+
export const Order = /*#__PURE__*/order.make(compareCore);
|
|
364
|
+
const identifiersEqual = /*#__PURE__*/Equ.Array(/*#__PURE__*/Equ.strictEqual());
|
|
365
|
+
/**
|
|
366
|
+
* Provides structural equivalence for versions, including build metadata.
|
|
367
|
+
*
|
|
368
|
+
* @see {@link Order} for precedence that ignores build metadata
|
|
369
|
+
* @stability unstable
|
|
370
|
+
* @category instances
|
|
371
|
+
* @since 4.0.6
|
|
372
|
+
*/
|
|
373
|
+
export const Equivalence = /*#__PURE__*/Equ.make((self, that) => self.major === that.major && self.minor === that.minor && self.patch === that.patch && identifiersEqual(self.prerelease, that.prerelease) && identifiersEqual(self.build, that.build));
|
|
374
|
+
/**
|
|
375
|
+
* Checks whether two versions are structurally equal, including build
|
|
376
|
+
* metadata.
|
|
377
|
+
*
|
|
378
|
+
* @stability unstable
|
|
379
|
+
* @category predicates
|
|
380
|
+
* @since 4.0.6
|
|
381
|
+
*/
|
|
382
|
+
export const equals = /*#__PURE__*/dual(2, Equivalence);
|
|
383
|
+
/**
|
|
384
|
+
* Checks whether the first version has lower precedence than the second.
|
|
385
|
+
*
|
|
386
|
+
* @stability unstable
|
|
387
|
+
* @category predicates
|
|
388
|
+
* @since 4.0.6
|
|
389
|
+
*/
|
|
390
|
+
export const isLessThan = /*#__PURE__*/order.isLessThan(Order);
|
|
391
|
+
/**
|
|
392
|
+
* Checks whether the first version has lower or equal precedence than the
|
|
393
|
+
* second.
|
|
394
|
+
*
|
|
395
|
+
* @stability unstable
|
|
396
|
+
* @category predicates
|
|
397
|
+
* @since 4.0.6
|
|
398
|
+
*/
|
|
399
|
+
export const isLessThanOrEqualTo = /*#__PURE__*/order.isLessThanOrEqualTo(Order);
|
|
400
|
+
/**
|
|
401
|
+
* Checks whether the first version has higher precedence than the second.
|
|
402
|
+
*
|
|
403
|
+
* @stability unstable
|
|
404
|
+
* @category predicates
|
|
405
|
+
* @since 4.0.6
|
|
406
|
+
*/
|
|
407
|
+
export const isGreaterThan = /*#__PURE__*/order.isGreaterThan(Order);
|
|
408
|
+
/**
|
|
409
|
+
* Checks whether the first version has higher or equal precedence than the
|
|
410
|
+
* second.
|
|
411
|
+
*
|
|
412
|
+
* @stability unstable
|
|
413
|
+
* @category predicates
|
|
414
|
+
* @since 4.0.6
|
|
415
|
+
*/
|
|
416
|
+
export const isGreaterThanOrEqualTo = /*#__PURE__*/order.isGreaterThanOrEqualTo(Order);
|
|
417
|
+
/**
|
|
418
|
+
* Checks whether a version's precedence is within an inclusive range.
|
|
419
|
+
*
|
|
420
|
+
* @stability unstable
|
|
421
|
+
* @category predicates
|
|
422
|
+
* @since 4.0.6
|
|
423
|
+
*/
|
|
424
|
+
export const between = /*#__PURE__*/order.isBetween(Order);
|
|
425
|
+
/**
|
|
426
|
+
* Returns the version with lower precedence, preferring the first on ties.
|
|
427
|
+
*
|
|
428
|
+
* @stability unstable
|
|
429
|
+
* @category ordering
|
|
430
|
+
* @since 4.0.6
|
|
431
|
+
*/
|
|
432
|
+
export const min = /*#__PURE__*/order.min(Order);
|
|
433
|
+
/**
|
|
434
|
+
* Returns the version with higher precedence, preferring the first on ties.
|
|
435
|
+
*
|
|
436
|
+
* @stability unstable
|
|
437
|
+
* @category ordering
|
|
438
|
+
* @since 4.0.6
|
|
439
|
+
*/
|
|
440
|
+
export const max = /*#__PURE__*/order.max(Order);
|
|
441
|
+
/**
|
|
442
|
+
* Constrains a version's precedence to an inclusive range.
|
|
443
|
+
*
|
|
444
|
+
* @stability unstable
|
|
445
|
+
* @category ordering
|
|
446
|
+
* @since 4.0.6
|
|
447
|
+
*/
|
|
448
|
+
export const clamp = /*#__PURE__*/order.clamp(Order);
|
|
449
|
+
/**
|
|
450
|
+
* Replaces the pre-release identifiers of a version and throws `SemVerError`
|
|
451
|
+
* for invalid identifiers.
|
|
452
|
+
*
|
|
453
|
+
* **Details**
|
|
454
|
+
*
|
|
455
|
+
* Digit-only strings are normalized to numbers. An empty array removes the
|
|
456
|
+
* pre-release. Build metadata is preserved.
|
|
457
|
+
*
|
|
458
|
+
* @stability unstable
|
|
459
|
+
* @category transforming
|
|
460
|
+
* @since 4.0.6
|
|
461
|
+
*/
|
|
462
|
+
export const withPrerelease = /*#__PURE__*/dual(2, (self, prerelease) => unchecked(self.major, self.minor, self.patch, prerelease.map(prereleaseIdentifier), self.build));
|
|
463
|
+
/**
|
|
464
|
+
* Replaces the build metadata of a version and throws `SemVerError` for
|
|
465
|
+
* invalid identifiers.
|
|
466
|
+
*
|
|
467
|
+
* **Details**
|
|
468
|
+
*
|
|
469
|
+
* An empty array removes the build metadata. Pre-release identifiers are
|
|
470
|
+
* preserved.
|
|
471
|
+
*
|
|
472
|
+
* @stability unstable
|
|
473
|
+
* @category transforming
|
|
474
|
+
* @since 4.0.6
|
|
475
|
+
*/
|
|
476
|
+
export const withBuild = /*#__PURE__*/dual(2, (self, build) => unchecked(self.major, self.minor, self.patch, self.prerelease, build.map(buildIdentifier)));
|
|
477
|
+
/**
|
|
478
|
+
* Removes pre-release identifiers and build metadata from a version.
|
|
479
|
+
*
|
|
480
|
+
* **Example** (Finalizing a release candidate)
|
|
481
|
+
*
|
|
482
|
+
* ```ts import.meta.vitest
|
|
483
|
+
* import { SemVer } from "effect"
|
|
484
|
+
*
|
|
485
|
+
* SemVer.format(SemVer.release(SemVer.parseUnsafe("2.0.0-rc.3+sha.5114f85"))) // => "2.0.0"
|
|
486
|
+
* ```
|
|
487
|
+
*
|
|
488
|
+
* @stability unstable
|
|
489
|
+
* @category transforming
|
|
490
|
+
* @since 4.0.6
|
|
491
|
+
*/
|
|
492
|
+
export const release = self => self.prerelease.length === 0 && self.build.length === 0 ? self : unchecked(self.major, self.minor, self.patch, [], []);
|
|
493
|
+
/**
|
|
494
|
+
* Returns the next major release.
|
|
495
|
+
*
|
|
496
|
+
* **Details**
|
|
497
|
+
*
|
|
498
|
+
* Returns the smallest major release with higher precedence, so a pre-release
|
|
499
|
+
* of a major version, such as `2.0.0-rc.1`, becomes `2.0.0`. Pre-release
|
|
500
|
+
* identifiers and build metadata are removed.
|
|
501
|
+
*
|
|
502
|
+
* **Example** (Bumping major versions)
|
|
503
|
+
*
|
|
504
|
+
* ```ts import.meta.vitest
|
|
505
|
+
* import { SemVer } from "effect"
|
|
506
|
+
*
|
|
507
|
+
* SemVer.format(SemVer.bumpMajor(SemVer.parseUnsafe("1.2.3"))) // => "2.0.0"
|
|
508
|
+
* SemVer.format(SemVer.bumpMajor(SemVer.parseUnsafe("2.0.0-rc.1"))) // => "2.0.0"
|
|
509
|
+
* SemVer.format(SemVer.bumpMajor(SemVer.parseUnsafe("2.1.0-rc.1"))) // => "3.0.0"
|
|
510
|
+
* ```
|
|
511
|
+
*
|
|
512
|
+
* @stability unstable
|
|
513
|
+
* @category transforming
|
|
514
|
+
* @since 4.0.6
|
|
515
|
+
*/
|
|
516
|
+
export const bumpMajor = self => unchecked(self.minor === 0 && self.patch === 0 && self.prerelease.length > 0 ? self.major : increment(self.major, "major"), 0, 0, [], []);
|
|
517
|
+
/**
|
|
518
|
+
* Returns the next minor release.
|
|
519
|
+
*
|
|
520
|
+
* **Details**
|
|
521
|
+
*
|
|
522
|
+
* Returns the smallest minor release with higher precedence, so a pre-release
|
|
523
|
+
* of a minor version, such as `1.3.0-rc.1`, becomes `1.3.0`. Pre-release
|
|
524
|
+
* identifiers and build metadata are removed.
|
|
525
|
+
*
|
|
526
|
+
* @stability unstable
|
|
527
|
+
* @category transforming
|
|
528
|
+
* @since 4.0.6
|
|
529
|
+
*/
|
|
530
|
+
export const bumpMinor = self => unchecked(self.major, self.patch === 0 && self.prerelease.length > 0 ? self.minor : increment(self.minor, "minor"), 0, [], []);
|
|
531
|
+
/**
|
|
532
|
+
* Returns the next patch release.
|
|
533
|
+
*
|
|
534
|
+
* **Details**
|
|
535
|
+
*
|
|
536
|
+
* Returns the smallest patch release with higher precedence, so a pre-release
|
|
537
|
+
* such as `1.2.3-rc.1` becomes `1.2.3`. Pre-release identifiers and build
|
|
538
|
+
* metadata are removed.
|
|
539
|
+
*
|
|
540
|
+
* @stability unstable
|
|
541
|
+
* @category transforming
|
|
542
|
+
* @since 4.0.6
|
|
543
|
+
*/
|
|
544
|
+
export const bumpPatch = self => unchecked(self.major, self.minor, self.prerelease.length > 0 ? self.patch : increment(self.patch, "patch"), [], []);
|
|
545
|
+
const startPrerelease = identifier => identifier === undefined ? [0] : [prereleaseIdentifier(identifier), 0];
|
|
546
|
+
const isSemVerArgs = args => isSemVer(args[0]);
|
|
547
|
+
/**
|
|
548
|
+
* Returns the first pre-release of the next major version.
|
|
549
|
+
*
|
|
550
|
+
* **Details**
|
|
551
|
+
*
|
|
552
|
+
* Increments major, resets minor and patch, and starts the pre-release at
|
|
553
|
+
* `[identifier, 0]`, or `[0]` without an identifier. Build metadata is removed.
|
|
554
|
+
*
|
|
555
|
+
* @stability unstable
|
|
556
|
+
* @category transforming
|
|
557
|
+
* @since 4.0.6
|
|
558
|
+
*/
|
|
559
|
+
export const bumpPremajor = /*#__PURE__*/dual(isSemVerArgs, (self, identifier) => unchecked(increment(self.major, "major"), 0, 0, startPrerelease(identifier), []));
|
|
560
|
+
/**
|
|
561
|
+
* Returns the first pre-release of the next minor version.
|
|
562
|
+
*
|
|
563
|
+
* **Details**
|
|
564
|
+
*
|
|
565
|
+
* Increments minor, resets patch, and starts the pre-release at
|
|
566
|
+
* `[identifier, 0]`, or `[0]` without an identifier. Build metadata is removed.
|
|
567
|
+
*
|
|
568
|
+
* @stability unstable
|
|
569
|
+
* @category transforming
|
|
570
|
+
* @since 4.0.6
|
|
571
|
+
*/
|
|
572
|
+
export const bumpPreminor = /*#__PURE__*/dual(isSemVerArgs, (self, identifier) => unchecked(self.major, increment(self.minor, "minor"), 0, startPrerelease(identifier), []));
|
|
573
|
+
/**
|
|
574
|
+
* Returns the first pre-release of the next patch version.
|
|
575
|
+
*
|
|
576
|
+
* **Details**
|
|
577
|
+
*
|
|
578
|
+
* Increments patch and starts the pre-release at `[identifier, 0]`, or `[0]`
|
|
579
|
+
* without an identifier. Build metadata is removed.
|
|
580
|
+
*
|
|
581
|
+
* @stability unstable
|
|
582
|
+
* @category transforming
|
|
583
|
+
* @since 4.0.6
|
|
584
|
+
*/
|
|
585
|
+
export const bumpPrepatch = /*#__PURE__*/dual(isSemVerArgs, (self, identifier) => unchecked(self.major, self.minor, increment(self.patch, "patch"), startPrerelease(identifier), []));
|
|
586
|
+
const nextPrerelease = prerelease => {
|
|
587
|
+
for (let i = prerelease.length - 1; i >= 0; i--) {
|
|
588
|
+
const identifier = prerelease[i];
|
|
589
|
+
if (typeof identifier === "number") {
|
|
590
|
+
const next = prerelease.slice();
|
|
591
|
+
next[i] = increment(identifier, "pre-release identifier");
|
|
592
|
+
return next;
|
|
593
|
+
}
|
|
594
|
+
}
|
|
595
|
+
return [...prerelease, 0];
|
|
596
|
+
};
|
|
597
|
+
/**
|
|
598
|
+
* Returns the next pre-release.
|
|
599
|
+
*
|
|
600
|
+
* **Details**
|
|
601
|
+
*
|
|
602
|
+
* - A release starts the pre-release of the next patch, like
|
|
603
|
+
* {@link bumpPrepatch}.
|
|
604
|
+
* - An identifier that differs from the first pre-release identifier restarts
|
|
605
|
+
* the pre-release at `[identifier, 0]`.
|
|
606
|
+
* - Otherwise the right-most numeric identifier is incremented, or `0` is
|
|
607
|
+
* appended when there is none.
|
|
608
|
+
*
|
|
609
|
+
* Build metadata is removed.
|
|
610
|
+
*
|
|
611
|
+
* **Gotchas**
|
|
612
|
+
*
|
|
613
|
+
* Switching to an identifier that sorts lower, such as from `beta` to `alpha`,
|
|
614
|
+
* returns a version with lower precedence.
|
|
615
|
+
*
|
|
616
|
+
* **Example** (Advancing pre-releases)
|
|
617
|
+
*
|
|
618
|
+
* ```ts import.meta.vitest
|
|
619
|
+
* import { SemVer } from "effect"
|
|
620
|
+
*
|
|
621
|
+
* SemVer.format(SemVer.bumpPrerelease(SemVer.parseUnsafe("1.2.3"), "alpha")) // => "1.2.4-alpha.0"
|
|
622
|
+
* SemVer.format(SemVer.bumpPrerelease(SemVer.parseUnsafe("1.2.4-alpha.0"))) // => "1.2.4-alpha.1"
|
|
623
|
+
* SemVer.format(SemVer.bumpPrerelease(SemVer.parseUnsafe("1.2.4-alpha.1"), "beta")) // => "1.2.4-beta.0"
|
|
624
|
+
* ```
|
|
625
|
+
*
|
|
626
|
+
* @stability unstable
|
|
627
|
+
* @category transforming
|
|
628
|
+
* @since 4.0.6
|
|
629
|
+
*/
|
|
630
|
+
export const bumpPrerelease = /*#__PURE__*/dual(isSemVerArgs, (self, identifier) => {
|
|
631
|
+
if (self.prerelease.length === 0) {
|
|
632
|
+
return unchecked(self.major, self.minor, increment(self.patch, "patch"), startPrerelease(identifier), []);
|
|
633
|
+
}
|
|
634
|
+
if (identifier !== undefined) {
|
|
635
|
+
const normalized = prereleaseIdentifier(identifier);
|
|
636
|
+
if (self.prerelease[0] !== normalized) {
|
|
637
|
+
return unchecked(self.major, self.minor, self.patch, [normalized, 0], []);
|
|
638
|
+
}
|
|
639
|
+
}
|
|
640
|
+
return unchecked(self.major, self.minor, self.patch, nextPrerelease(self.prerelease), []);
|
|
641
|
+
});
|
|
642
|
+
/**
|
|
643
|
+
* Bumps a version by release type.
|
|
644
|
+
*
|
|
645
|
+
* **When to use**
|
|
646
|
+
*
|
|
647
|
+
* Use when the release type is data, such as a CLI argument, configuration, or
|
|
648
|
+
* the result of {@link difference}.
|
|
649
|
+
*
|
|
650
|
+
* **Details**
|
|
651
|
+
*
|
|
652
|
+
* Dispatches to {@link bumpMajor}, {@link bumpMinor}, {@link bumpPatch},
|
|
653
|
+
* {@link bumpPremajor}, {@link bumpPreminor}, {@link bumpPrepatch}, or
|
|
654
|
+
* {@link bumpPrerelease}, with the same semantics.
|
|
655
|
+
*
|
|
656
|
+
* **Gotchas**
|
|
657
|
+
*
|
|
658
|
+
* The pre-release `identifier` is ignored for `"major"`, `"minor"`, and
|
|
659
|
+
* `"patch"`.
|
|
660
|
+
*
|
|
661
|
+
* **Example** (Bumping by a release type from input)
|
|
662
|
+
*
|
|
663
|
+
* ```ts import.meta.vitest
|
|
664
|
+
* import { SemVer } from "effect"
|
|
665
|
+
*
|
|
666
|
+
* const version = SemVer.parseUnsafe("1.2.3")
|
|
667
|
+
*
|
|
668
|
+
* SemVer.format(SemVer.bump(version, "minor")) // => "1.3.0"
|
|
669
|
+
* SemVer.format(SemVer.bump(version, "premajor", "rc")) // => "2.0.0-rc.0"
|
|
670
|
+
* ```
|
|
671
|
+
*
|
|
672
|
+
* **Example** (Defining custom bump rules)
|
|
673
|
+
*
|
|
674
|
+
* ```ts import.meta.vitest
|
|
675
|
+
* import { SemVer } from "effect"
|
|
676
|
+
*
|
|
677
|
+
* // Always increment patch, even for pre-releases, and keep build metadata
|
|
678
|
+
* const customBump = (version: SemVer.SemVer, releaseType: SemVer.ReleaseType): SemVer.SemVer =>
|
|
679
|
+
* releaseType === "patch"
|
|
680
|
+
* ? SemVer.make({ ...version, patch: version.patch + 1, prerelease: [] })
|
|
681
|
+
* : SemVer.withBuild(SemVer.bump(version, releaseType), version.build)
|
|
682
|
+
*
|
|
683
|
+
* SemVer.format(customBump(SemVer.parseUnsafe("1.2.3-rc.1+b"), "patch")) // => "1.2.4+b"
|
|
684
|
+
* SemVer.format(customBump(SemVer.parseUnsafe("1.2.3-rc.1+b"), "minor")) // => "1.3.0+b"
|
|
685
|
+
* ```
|
|
686
|
+
*
|
|
687
|
+
* @stability unstable
|
|
688
|
+
* @category transforming
|
|
689
|
+
* @since 4.0.6
|
|
690
|
+
*/
|
|
691
|
+
export const bump = /*#__PURE__*/dual(isSemVerArgs, (self, releaseType, identifier) => {
|
|
692
|
+
switch (releaseType) {
|
|
693
|
+
case "major":
|
|
694
|
+
return bumpMajor(self);
|
|
695
|
+
case "minor":
|
|
696
|
+
return bumpMinor(self);
|
|
697
|
+
case "patch":
|
|
698
|
+
return bumpPatch(self);
|
|
699
|
+
case "premajor":
|
|
700
|
+
return bumpPremajor(self, identifier);
|
|
701
|
+
case "preminor":
|
|
702
|
+
return bumpPreminor(self, identifier);
|
|
703
|
+
case "prepatch":
|
|
704
|
+
return bumpPrepatch(self, identifier);
|
|
705
|
+
case "prerelease":
|
|
706
|
+
return bumpPrerelease(self, identifier);
|
|
707
|
+
}
|
|
708
|
+
});
|
|
709
|
+
/**
|
|
710
|
+
* Classifies the change between two versions by release type.
|
|
711
|
+
*
|
|
712
|
+
* **Details**
|
|
713
|
+
*
|
|
714
|
+
* Follows node-semver's `diff`, so the result names the bump that produces the
|
|
715
|
+
* higher version from the lower one. Moving to a pre-release adds the `pre`
|
|
716
|
+
* prefix, and finalizing a pre-release reports the level it was released at:
|
|
717
|
+
* `1.0.0-1` to `1.0.0` is `"major"`, `1.1.0-1` to `1.1.0` is `"minor"`, and
|
|
718
|
+
* `1.2.3-1` to `1.2.3` is `"patch"`. The result does not depend on argument
|
|
719
|
+
* order.
|
|
720
|
+
*
|
|
721
|
+
* **Gotchas**
|
|
722
|
+
*
|
|
723
|
+
* Returns `None` for versions with the same precedence, including versions
|
|
724
|
+
* that differ only in build metadata.
|
|
725
|
+
*
|
|
726
|
+
* **Example** (Classifying upgrades)
|
|
727
|
+
*
|
|
728
|
+
* ```ts import.meta.vitest
|
|
729
|
+
* import { Option, SemVer } from "effect"
|
|
730
|
+
*
|
|
731
|
+
* SemVer.difference(SemVer.parseUnsafe("1.2.3"), SemVer.parseUnsafe("1.3.0")) // => Option.some("minor")
|
|
732
|
+
* SemVer.difference(SemVer.parseUnsafe("1.2.3"), SemVer.parseUnsafe("2.0.0-rc.1")) // => Option.some("premajor")
|
|
733
|
+
* SemVer.difference(SemVer.parseUnsafe("2.0.0-rc.1"), SemVer.parseUnsafe("2.0.0")) // => Option.some("major")
|
|
734
|
+
* SemVer.difference(SemVer.parseUnsafe("1.2.3+a"), SemVer.parseUnsafe("1.2.3+b")) // => Option.none()
|
|
735
|
+
* ```
|
|
736
|
+
*
|
|
737
|
+
* @see {@link bump} for applying a release type to a version
|
|
738
|
+
* @stability unstable
|
|
739
|
+
* @category comparisons
|
|
740
|
+
* @since 4.0.6
|
|
741
|
+
*/
|
|
742
|
+
export const difference = /*#__PURE__*/dual(2, (self, that) => {
|
|
743
|
+
const comparison = Order(self, that);
|
|
744
|
+
if (comparison === 0) return Option.none();
|
|
745
|
+
const [low, high] = comparison < 0 ? [self, that] : [that, self];
|
|
746
|
+
const highIsPrerelease = high.prerelease.length > 0;
|
|
747
|
+
if (low.prerelease.length > 0 && !highIsPrerelease) {
|
|
748
|
+
if (low.minor === 0 && low.patch === 0) return Option.some("major");
|
|
749
|
+
if (sameCore(low, high)) return Option.some(low.patch === 0 ? "minor" : "patch");
|
|
750
|
+
}
|
|
751
|
+
if (self.major !== that.major) return Option.some(highIsPrerelease ? "premajor" : "major");
|
|
752
|
+
if (self.minor !== that.minor) return Option.some(highIsPrerelease ? "preminor" : "minor");
|
|
753
|
+
if (self.patch !== that.patch) return Option.some(highIsPrerelease ? "prepatch" : "patch");
|
|
754
|
+
return Option.some("prerelease");
|
|
755
|
+
});
|
|
756
|
+
//# sourceMappingURL=SemVer.js.map
|