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/src/Schema.ts
CHANGED
|
@@ -79,6 +79,8 @@ import * as SchemaIssue from "./SchemaIssue.ts"
|
|
|
79
79
|
import * as SchemaParser from "./SchemaParser.ts"
|
|
80
80
|
import type * as SchemaRepresentation from "./SchemaRepresentation.ts"
|
|
81
81
|
import * as SchemaTransformation from "./SchemaTransformation.ts"
|
|
82
|
+
import * as SemVer_ from "./SemVer.ts"
|
|
83
|
+
import * as SemVerRange_ from "./SemVerRange.ts"
|
|
82
84
|
import type { StandardJSONSchemaV1, StandardSchemaV1 } from "./StandardSchema.ts"
|
|
83
85
|
import type { Assign, Lambda, Mutable, Simplify } from "./Struct.ts"
|
|
84
86
|
import * as Struct_ from "./Struct.ts"
|
|
@@ -123,8 +125,8 @@ export type ConstructorDefault = "no-default" | "with-default"
|
|
|
123
125
|
*
|
|
124
126
|
* **When to use**
|
|
125
127
|
*
|
|
126
|
-
* Use when passing `disableChecks: true` to skip
|
|
127
|
-
*
|
|
128
|
+
* Use when passing `disableChecks: true` to skip filters and checks while still
|
|
129
|
+
* parsing types and structure. Pass `parseOptions` to control parsing behavior.
|
|
128
130
|
*
|
|
129
131
|
* @see {@link BottomWithoutNew.makeEffect}
|
|
130
132
|
* @see {@link BottomWithoutNew.make}
|
|
@@ -139,7 +141,8 @@ export interface MakeOptions {
|
|
|
139
141
|
*/
|
|
140
142
|
readonly parseOptions?: SchemaAST.ParseOptions | undefined
|
|
141
143
|
/**
|
|
142
|
-
* Whether to
|
|
144
|
+
* Whether to skip filters and checks. Types and structure are still parsed,
|
|
145
|
+
* and constructor defaults still apply.
|
|
143
146
|
*/
|
|
144
147
|
readonly disableChecks?: boolean | undefined
|
|
145
148
|
|
|
@@ -2961,8 +2964,8 @@ export interface Enum<A extends { [x: string]: string | number }>
|
|
|
2961
2964
|
readonly enums: A
|
|
2962
2965
|
}
|
|
2963
2966
|
/**
|
|
2964
|
-
* Creates a schema from a TypeScript enum
|
|
2965
|
-
*
|
|
2967
|
+
* Creates a schema from a TypeScript enum or an object mapping names to string or number values.
|
|
2968
|
+
* Validates that the input is one of those values. Numeric values must be finite.
|
|
2966
2969
|
*
|
|
2967
2970
|
* **Gotchas**
|
|
2968
2971
|
*
|
|
@@ -2986,7 +2989,7 @@ export interface Enum<A extends { [x: string]: string | number }>
|
|
|
2986
2989
|
* @category constructors
|
|
2987
2990
|
* @since 4.0.0
|
|
2988
2991
|
*/
|
|
2989
|
-
export function Enum<A extends { [x: string]: string | number }>(enums: A): Enum<A> {
|
|
2992
|
+
export function Enum<const A extends { [x: string]: string | number }>(enums: A): Enum<A> {
|
|
2990
2993
|
return make(
|
|
2991
2994
|
new SchemaAST.Enum(
|
|
2992
2995
|
Object.keys(enums).filter(
|
|
@@ -5632,8 +5635,8 @@ export interface compose<To extends Constraint, From extends Constraint> extends
|
|
|
5632
5635
|
* **Gotchas**
|
|
5633
5636
|
*
|
|
5634
5637
|
* In a custom transformation, `decode` maps `From["Type"]` to `To["Encoded"]`
|
|
5635
|
-
* and is used on the
|
|
5636
|
-
* `From["Type"]` and is used on the
|
|
5638
|
+
* and is used on the decoding path, while `encode` maps `To["Encoded"]` to
|
|
5639
|
+
* `From["Type"]` and is used on the encoding path.
|
|
5637
5640
|
*
|
|
5638
5641
|
* **Example** (Transforming strings to numbers with a schema transformation)
|
|
5639
5642
|
*
|
|
@@ -6316,12 +6319,6 @@ type Flatten<Schemas> = Schemas extends readonly [infer Head, ...infer Tail]
|
|
|
6316
6319
|
? Head extends Union<infer Inner> ? [...Flatten<Inner>, ...Flatten<Tail>]
|
|
6317
6320
|
: [Head, ...Flatten<Tail>]
|
|
6318
6321
|
: []
|
|
6319
|
-
type DiscriminantKey<T extends PropertyKey> = T extends number ? `${T}` : T
|
|
6320
|
-
type EnsureUniqueDiscriminants<Tags extends ReadonlyArray<PropertyKey>, Seen = never> = Tags extends
|
|
6321
|
-
readonly [infer Head extends PropertyKey, ...infer Tail extends ReadonlyArray<PropertyKey>]
|
|
6322
|
-
? [DiscriminantKey<Head> & Seen] extends [never] ? EnsureUniqueDiscriminants<Tail, Seen | DiscriminantKey<Head>>
|
|
6323
|
-
: never
|
|
6324
|
-
: unknown
|
|
6325
6322
|
type MatchCasesResult<Cases> = {
|
|
6326
6323
|
[K in keyof Cases]-?: NonNullable<Cases[K]> extends (...args: Array<any>) => infer R ? R : never
|
|
6327
6324
|
}[keyof Cases]
|
|
@@ -6406,10 +6403,9 @@ export type toTaggedUnion<
|
|
|
6406
6403
|
*
|
|
6407
6404
|
* **Gotchas**
|
|
6408
6405
|
*
|
|
6409
|
-
*
|
|
6410
|
-
*
|
|
6411
|
-
* `"1"` count as duplicates.
|
|
6412
|
-
* same discriminant property key.
|
|
6406
|
+
* Throws when multiple members use the same discriminant property key,
|
|
6407
|
+
* including members of nested unions. Numeric and string values such as `1`
|
|
6408
|
+
* and `"1"` count as duplicates.
|
|
6413
6409
|
*
|
|
6414
6410
|
* **Example** (Adding tagged-union utilities to an existing union)
|
|
6415
6411
|
*
|
|
@@ -6436,7 +6432,7 @@ export type toTaggedUnion<
|
|
|
6436
6432
|
*/
|
|
6437
6433
|
export function toTaggedUnion<const Tag extends PropertyKey>(tag: Tag) {
|
|
6438
6434
|
return <const Members extends ReadonlyArray<Constraint & { readonly Type: { readonly [K in Tag]: PropertyKey } }>>(
|
|
6439
|
-
self: Union<Members>
|
|
6435
|
+
self: Union<Members>
|
|
6440
6436
|
): toTaggedUnion<Tag, Members> => {
|
|
6441
6437
|
const cases: Record<PropertyKey, unknown> = {}
|
|
6442
6438
|
const discriminants: Array<PropertyKey> = []
|
|
@@ -7137,16 +7133,21 @@ export function isULID(annotations?: Annotations.Filter) {
|
|
|
7137
7133
|
* @since 4.0.0
|
|
7138
7134
|
*/
|
|
7139
7135
|
export function isBase64(annotations?: Annotations.Filter) {
|
|
7140
|
-
const
|
|
7141
|
-
|
|
7142
|
-
|
|
7136
|
+
const pattern = "^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$"
|
|
7137
|
+
// `pattern` overflows the V8 stack on large inputs
|
|
7138
|
+
const regExp = /^[0-9a-zA-Z+/]*={0,2}$/
|
|
7139
|
+
return makeFilter(
|
|
7140
|
+
(s: string) => s.length % 4 === 0 && regExp.test(s),
|
|
7143
7141
|
{
|
|
7144
7142
|
expected: "a base64 encoded string",
|
|
7145
7143
|
representation: {
|
|
7146
7144
|
id: "effect/schema/isBase64",
|
|
7147
7145
|
payload: null
|
|
7148
7146
|
},
|
|
7149
|
-
toJsonSchema: () => ({ pattern
|
|
7147
|
+
toJsonSchema: () => ({ pattern }),
|
|
7148
|
+
arbitraryConstraint: {
|
|
7149
|
+
patterns: [{ source: pattern, flags: "" }]
|
|
7150
|
+
},
|
|
7150
7151
|
toCode: () => ({ runtime: "Schema.isBase64()" }),
|
|
7151
7152
|
...annotations
|
|
7152
7153
|
}
|
|
@@ -7173,16 +7174,21 @@ export function isBase64(annotations?: Annotations.Filter) {
|
|
|
7173
7174
|
* @since 4.0.0
|
|
7174
7175
|
*/
|
|
7175
7176
|
export function isBase64Url(annotations?: Annotations.Filter) {
|
|
7176
|
-
const
|
|
7177
|
-
|
|
7178
|
-
|
|
7177
|
+
const pattern = "^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$"
|
|
7178
|
+
// `pattern` overflows the V8 stack on large inputs
|
|
7179
|
+
const regExp = /^[0-9a-zA-Z-_]*={0,2}$/
|
|
7180
|
+
return makeFilter(
|
|
7181
|
+
(s: string) => regExp.test(s) && (s.endsWith("=") ? s.length % 4 === 0 : s.length % 4 !== 1),
|
|
7179
7182
|
{
|
|
7180
7183
|
expected: "a base64url encoded string",
|
|
7181
7184
|
representation: {
|
|
7182
7185
|
id: "effect/schema/isBase64Url",
|
|
7183
7186
|
payload: null
|
|
7184
7187
|
},
|
|
7185
|
-
toJsonSchema: () => ({ pattern
|
|
7188
|
+
toJsonSchema: () => ({ pattern }),
|
|
7189
|
+
arbitraryConstraint: {
|
|
7190
|
+
patterns: [{ source: pattern, flags: "" }]
|
|
7191
|
+
},
|
|
7186
7192
|
toCode: () => ({ runtime: "Schema.isBase64Url()" }),
|
|
7187
7193
|
...annotations
|
|
7188
7194
|
}
|
|
@@ -9939,7 +9945,9 @@ export interface FormData extends instanceOf<globalThis.FormData> {
|
|
|
9939
9945
|
* @category schemas
|
|
9940
9946
|
* @since 4.0.0
|
|
9941
9947
|
*/
|
|
9942
|
-
|
|
9948
|
+
// Read the global inside the guard: resolving globalThis.FormData at module
|
|
9949
|
+
// scope loads undici on Node.
|
|
9950
|
+
export const FormData: FormData = declare((u): u is globalThis.FormData => u instanceof globalThis.FormData, {
|
|
9943
9951
|
representation: {
|
|
9944
9952
|
id: "effect/schema/FormData",
|
|
9945
9953
|
payload: null
|
|
@@ -11277,7 +11285,7 @@ export function Cause<E extends Constraint, D extends Constraint>(error: E, defe
|
|
|
11277
11285
|
}
|
|
11278
11286
|
return Effect.mapBothEager(SchemaParser.decodeUnknownEffect(failures)(input.reasons, options), {
|
|
11279
11287
|
onSuccess: Cause_.fromReasons,
|
|
11280
|
-
onFailure: (issue) => SchemaIssue.makeCompositeAtKey(ast, "
|
|
11288
|
+
onFailure: (issue) => SchemaIssue.makeCompositeAtKey(ast, "reasons", issue, input, options)
|
|
11281
11289
|
})
|
|
11282
11290
|
}
|
|
11283
11291
|
},
|
|
@@ -11680,6 +11688,65 @@ export const DateTimeUtcFromString: DateTimeUtcFromString = String.annotate({
|
|
|
11680
11688
|
dateTimeUtcFromString
|
|
11681
11689
|
)
|
|
11682
11690
|
)
|
|
11691
|
+
const dateTimeUtcFromHttpDate: SchemaTransformation.Transformation<DateTime.Utc, string> = SchemaTransformation
|
|
11692
|
+
.transformEffect<DateTime.Utc, string>({
|
|
11693
|
+
decode: (s, options) =>
|
|
11694
|
+
Result_.match(Headers_.parseHttpDate(s), {
|
|
11695
|
+
onFailure: () =>
|
|
11696
|
+
Effect.fail(
|
|
11697
|
+
new SchemaIssue.InvalidValue(
|
|
11698
|
+
{ expected: "an HTTP date (RFC 9110 §5.6.7)" },
|
|
11699
|
+
s,
|
|
11700
|
+
options
|
|
11701
|
+
)
|
|
11702
|
+
),
|
|
11703
|
+
onSuccess: Effect.succeed
|
|
11704
|
+
}),
|
|
11705
|
+
encode: (utc) => Effect.succeed(Headers_.formatHttpDate(utc))
|
|
11706
|
+
})
|
|
11707
|
+
/**
|
|
11708
|
+
* Type-level representation of {@link DateTimeUtcFromHttpDate}.
|
|
11709
|
+
*
|
|
11710
|
+
* @stability unstable
|
|
11711
|
+
* @category models
|
|
11712
|
+
* @since 4.0.0
|
|
11713
|
+
*/
|
|
11714
|
+
export interface DateTimeUtcFromHttpDate extends decodeTo<DateTimeUtc, String> {
|
|
11715
|
+
readonly "Rebuild": DateTimeUtcFromHttpDate
|
|
11716
|
+
}
|
|
11717
|
+
/**
|
|
11718
|
+
* Schema for HTTP date header values, such as `Date`, `Last-Modified` and
|
|
11719
|
+
* `Expires`, decoded as `DateTime.Utc`.
|
|
11720
|
+
*
|
|
11721
|
+
* **When to use**
|
|
11722
|
+
*
|
|
11723
|
+
* Use with HTTP API header schemas that carry dates. Decoding accepts the
|
|
11724
|
+
* three formats of RFC 9110 §5.6.7 and reads them as UTC; encoding emits the
|
|
11725
|
+
* preferred IMF-fixdate form (`Sun, 06 Nov 1994 08:49:37 GMT`).
|
|
11726
|
+
*
|
|
11727
|
+
* **Example** (Decoding an HTTP date)
|
|
11728
|
+
*
|
|
11729
|
+
* ```ts
|
|
11730
|
+
* import { DateTime, Schema } from "effect"
|
|
11731
|
+
*
|
|
11732
|
+
* const date = Schema.decodeSync(Schema.DateTimeUtcFromHttpDate)("Sun, 06 Nov 1994 08:49:37 GMT")
|
|
11733
|
+
* const millis = DateTime.toEpochMillis(date) // => 784111777000
|
|
11734
|
+
* ```
|
|
11735
|
+
*
|
|
11736
|
+
* @see {@link DateTimeUtcFromString} for ISO 8601 strings
|
|
11737
|
+
*
|
|
11738
|
+
* @stability unstable
|
|
11739
|
+
* @category schemas
|
|
11740
|
+
* @since 4.0.0
|
|
11741
|
+
*/
|
|
11742
|
+
export const DateTimeUtcFromHttpDate: DateTimeUtcFromHttpDate = String.annotate({
|
|
11743
|
+
expected: "an HTTP date string"
|
|
11744
|
+
}).pipe(
|
|
11745
|
+
decodeTo(
|
|
11746
|
+
DateTimeUtc,
|
|
11747
|
+
dateTimeUtcFromHttpDate
|
|
11748
|
+
)
|
|
11749
|
+
)
|
|
11683
11750
|
/**
|
|
11684
11751
|
* Type-level representation of {@link DateTimeUtcFromMillis}.
|
|
11685
11752
|
*
|
|
@@ -15190,6 +15257,110 @@ export const Headers: Headers = declare(
|
|
|
15190
15257
|
}
|
|
15191
15258
|
)
|
|
15192
15259
|
|
|
15260
|
+
/**
|
|
15261
|
+
* Type-level representation of {@link RetryAfter}.
|
|
15262
|
+
*
|
|
15263
|
+
* @stability unstable
|
|
15264
|
+
* @category models
|
|
15265
|
+
* @since 4.0.0
|
|
15266
|
+
*/
|
|
15267
|
+
export interface RetryAfter extends
|
|
15268
|
+
Union<
|
|
15269
|
+
readonly [
|
|
15270
|
+
Struct<{ readonly _tag: tag<"Duration">; readonly duration: Duration }>,
|
|
15271
|
+
Struct<{ readonly _tag: tag<"DateTime">; readonly dateTime: DateTimeUtc }>
|
|
15272
|
+
]
|
|
15273
|
+
>
|
|
15274
|
+
{
|
|
15275
|
+
readonly "Rebuild": RetryAfter
|
|
15276
|
+
}
|
|
15277
|
+
|
|
15278
|
+
/**
|
|
15279
|
+
* Schema for parsed `Retry-After` header values.
|
|
15280
|
+
*
|
|
15281
|
+
* **Details**
|
|
15282
|
+
*
|
|
15283
|
+
* Matches `Headers.RetryAfter`: either `{ _tag: "Duration", duration }` or
|
|
15284
|
+
* `{ _tag: "DateTime", dateTime }`. The duration must be finite and
|
|
15285
|
+
* non-negative. Use {@link RetryAfterFromString} for the header string form.
|
|
15286
|
+
*
|
|
15287
|
+
* @stability unstable
|
|
15288
|
+
* @category schemas
|
|
15289
|
+
* @since 4.0.0
|
|
15290
|
+
*/
|
|
15291
|
+
export const RetryAfter: RetryAfter = Union([
|
|
15292
|
+
Struct({
|
|
15293
|
+
_tag: tag("Duration"),
|
|
15294
|
+
duration: Duration.check(
|
|
15295
|
+
makeFilter((d) => Duration_.isFinite(d) && !Duration_.isNegative(d), {
|
|
15296
|
+
expected: "a finite, non-negative duration"
|
|
15297
|
+
})
|
|
15298
|
+
)
|
|
15299
|
+
}),
|
|
15300
|
+
Struct({ _tag: tag("DateTime"), dateTime: DateTimeUtc })
|
|
15301
|
+
])
|
|
15302
|
+
|
|
15303
|
+
const retryAfterFromString: SchemaTransformation.Transformation<Headers_.RetryAfter, string> = SchemaTransformation
|
|
15304
|
+
.transformEffect<Headers_.RetryAfter, string>({
|
|
15305
|
+
decode: (s, options) =>
|
|
15306
|
+
Result_.match(Headers_.parseRetryAfter(s), {
|
|
15307
|
+
onFailure: () =>
|
|
15308
|
+
Effect.fail(
|
|
15309
|
+
new SchemaIssue.InvalidValue(
|
|
15310
|
+
{ expected: "whole non-negative seconds or an HTTP date (RFC 9110 §10.2.3)" },
|
|
15311
|
+
s,
|
|
15312
|
+
options
|
|
15313
|
+
)
|
|
15314
|
+
),
|
|
15315
|
+
onSuccess: Effect.succeed
|
|
15316
|
+
}),
|
|
15317
|
+
encode: (self) => Effect.succeed(Headers_.formatRetryAfter(self))
|
|
15318
|
+
})
|
|
15319
|
+
|
|
15320
|
+
/**
|
|
15321
|
+
* Type-level representation of {@link RetryAfterFromString}.
|
|
15322
|
+
*
|
|
15323
|
+
* @stability unstable
|
|
15324
|
+
* @category models
|
|
15325
|
+
* @since 4.0.0
|
|
15326
|
+
*/
|
|
15327
|
+
export interface RetryAfterFromString extends decodeTo<RetryAfter, String> {
|
|
15328
|
+
readonly "Rebuild": RetryAfterFromString
|
|
15329
|
+
}
|
|
15330
|
+
|
|
15331
|
+
/**
|
|
15332
|
+
* Schema for `Retry-After` header values, decoded with
|
|
15333
|
+
* `Headers.parseRetryAfter`.
|
|
15334
|
+
*
|
|
15335
|
+
* **When to use**
|
|
15336
|
+
*
|
|
15337
|
+
* Use with HTTP API header schemas that carry `Retry-After`. Decoding accepts
|
|
15338
|
+
* whole non-negative seconds or an HTTP date and rejects anything else;
|
|
15339
|
+
* encoding emits the delay as whole seconds, rounding a fractional second up,
|
|
15340
|
+
* or the date as an IMF-fixdate.
|
|
15341
|
+
*
|
|
15342
|
+
* **Example** (Decoding a Retry-After header)
|
|
15343
|
+
*
|
|
15344
|
+
* ```ts
|
|
15345
|
+
* import { Schema } from "effect"
|
|
15346
|
+
*
|
|
15347
|
+
* const value = Schema.decodeSync(Schema.RetryAfterFromString)("120")
|
|
15348
|
+
* // => { _tag: "Duration", duration: Duration.seconds(120) }
|
|
15349
|
+
* ```
|
|
15350
|
+
*
|
|
15351
|
+
* @stability unstable
|
|
15352
|
+
* @category schemas
|
|
15353
|
+
* @since 4.0.0
|
|
15354
|
+
*/
|
|
15355
|
+
export const RetryAfterFromString: RetryAfterFromString = String.annotate({
|
|
15356
|
+
expected: "a Retry-After header value"
|
|
15357
|
+
}).pipe(
|
|
15358
|
+
decodeTo(
|
|
15359
|
+
RetryAfter,
|
|
15360
|
+
retryAfterFromString
|
|
15361
|
+
)
|
|
15362
|
+
)
|
|
15363
|
+
|
|
15193
15364
|
/**
|
|
15194
15365
|
* Type-level representation of {@link UrlParams}.
|
|
15195
15366
|
*
|
|
@@ -15743,6 +15914,198 @@ export function Result<A extends Constraint, E extends Constraint>(
|
|
|
15743
15914
|
return make(schema.ast, { success, failure })
|
|
15744
15915
|
}
|
|
15745
15916
|
|
|
15917
|
+
// -----------------------------------------------------------------------------
|
|
15918
|
+
// SemVer schemas
|
|
15919
|
+
// -----------------------------------------------------------------------------
|
|
15920
|
+
|
|
15921
|
+
const semVerStringTransformation = <A>(
|
|
15922
|
+
parse: (input: string) => Result_.Result<A, SemVer_.SemVerError>,
|
|
15923
|
+
format: (value: A) => string
|
|
15924
|
+
): SchemaTransformation.Transformation<A, string> =>
|
|
15925
|
+
SchemaTransformation.transformEffect({
|
|
15926
|
+
decode: (input, options) =>
|
|
15927
|
+
Effect.mapErrorEager(
|
|
15928
|
+
Effect.fromResult(parse(input)),
|
|
15929
|
+
(error) => new SchemaIssue.InvalidValue({ message: error.message }, input, options)
|
|
15930
|
+
),
|
|
15931
|
+
encode: (value) => Effect.succeed(format(value))
|
|
15932
|
+
})
|
|
15933
|
+
// Alphanumeric identifiers contain at least one non-digit.
|
|
15934
|
+
const SemVerCoreArbitrary = Struct({
|
|
15935
|
+
major: Natural,
|
|
15936
|
+
minor: Natural,
|
|
15937
|
+
patch: Natural,
|
|
15938
|
+
prerelease: ArraySchema(Union([Natural, String.check(isPattern(/^[0-9]*[A-Za-z-][0-9A-Za-z-]*$/))]))
|
|
15939
|
+
})
|
|
15940
|
+
const semVerFromString = semVerStringTransformation(SemVer_.parse, SemVer_.format)
|
|
15941
|
+
const SemVerString = String.annotate({ expected: "a string that will be decoded as a SemVer" })
|
|
15942
|
+
/**
|
|
15943
|
+
* Type-level representation of {@link SemVer}.
|
|
15944
|
+
*
|
|
15945
|
+
* @stability unstable
|
|
15946
|
+
* @category models
|
|
15947
|
+
* @since 4.0.6
|
|
15948
|
+
*/
|
|
15949
|
+
export interface SemVer extends declare<SemVer_.SemVer> {
|
|
15950
|
+
readonly "Rebuild": SemVer
|
|
15951
|
+
}
|
|
15952
|
+
/**
|
|
15953
|
+
* Schema for `SemVer` values.
|
|
15954
|
+
*
|
|
15955
|
+
* **Details**
|
|
15956
|
+
*
|
|
15957
|
+
* The JSON and StringTree codecs encode a version as its canonical string,
|
|
15958
|
+
* including build metadata.
|
|
15959
|
+
*
|
|
15960
|
+
* @see {@link SemVerFromString} for parsing version strings
|
|
15961
|
+
* @stability unstable
|
|
15962
|
+
* @category schemas
|
|
15963
|
+
* @since 4.0.6
|
|
15964
|
+
*/
|
|
15965
|
+
export const SemVer: SemVer = declare(
|
|
15966
|
+
SemVer_.isSemVer,
|
|
15967
|
+
{
|
|
15968
|
+
representation: {
|
|
15969
|
+
id: "effect/schema/SemVer",
|
|
15970
|
+
payload: null
|
|
15971
|
+
},
|
|
15972
|
+
toCode: () => ({
|
|
15973
|
+
runtime: `Schema.SemVer`,
|
|
15974
|
+
Type: `SemVer.SemVer`,
|
|
15975
|
+
importDeclarations: [`import * as SemVer from "effect/SemVer"`]
|
|
15976
|
+
}),
|
|
15977
|
+
expected: "SemVer",
|
|
15978
|
+
toCodecArbitrary: () =>
|
|
15979
|
+
linkDecoding<SemVer_.SemVer>()(
|
|
15980
|
+
Struct({
|
|
15981
|
+
...SemVerCoreArbitrary.fields,
|
|
15982
|
+
build: ArraySchema(String.check(isPattern(/^[0-9A-Za-z-]+$/)))
|
|
15983
|
+
}),
|
|
15984
|
+
SchemaGetter.transform(SemVer_.make)
|
|
15985
|
+
),
|
|
15986
|
+
toCodecJson: () =>
|
|
15987
|
+
link<SemVer_.SemVer>()(
|
|
15988
|
+
SemVerString,
|
|
15989
|
+
semVerFromString
|
|
15990
|
+
),
|
|
15991
|
+
toFormatter: () => SemVer_.format
|
|
15992
|
+
}
|
|
15993
|
+
)
|
|
15994
|
+
/**
|
|
15995
|
+
* Type-level representation of {@link SemVerFromString}.
|
|
15996
|
+
*
|
|
15997
|
+
* @stability unstable
|
|
15998
|
+
* @category models
|
|
15999
|
+
* @since 4.0.6
|
|
16000
|
+
*/
|
|
16001
|
+
export interface SemVerFromString extends decodeTo<SemVer, String> {
|
|
16002
|
+
readonly "Rebuild": SemVerFromString
|
|
16003
|
+
}
|
|
16004
|
+
/**
|
|
16005
|
+
* Schema that parses a Semantic Versioning 2.0.0 string into a `SemVer`.
|
|
16006
|
+
*
|
|
16007
|
+
* **Details**
|
|
16008
|
+
*
|
|
16009
|
+
* Decodes with `SemVer.parse`, rejecting a `v` prefix, surrounding whitespace,
|
|
16010
|
+
* partial versions, and leading zeros. Encodes with `SemVer.format`, including
|
|
16011
|
+
* build metadata.
|
|
16012
|
+
*
|
|
16013
|
+
* @see {@link SemVer} for validating values that are already SemVer values
|
|
16014
|
+
* @stability unstable
|
|
16015
|
+
* @category schemas
|
|
16016
|
+
* @since 4.0.6
|
|
16017
|
+
*/
|
|
16018
|
+
export const SemVerFromString: SemVerFromString = SemVerString.pipe(
|
|
16019
|
+
decodeTo(SemVer, semVerFromString)
|
|
16020
|
+
)
|
|
16021
|
+
const semVerRangeFromString = semVerStringTransformation(SemVerRange_.parse, SemVerRange_.format)
|
|
16022
|
+
const SemVerRangeString = String.annotate({ expected: "a string that will be decoded as a SemVer range" })
|
|
16023
|
+
/**
|
|
16024
|
+
* Type-level representation of {@link SemVerRange}.
|
|
16025
|
+
*
|
|
16026
|
+
* @stability unstable
|
|
16027
|
+
* @category models
|
|
16028
|
+
* @since 4.0.6
|
|
16029
|
+
*/
|
|
16030
|
+
export interface SemVerRange extends declare<SemVerRange_.SemVerRange> {
|
|
16031
|
+
readonly "Rebuild": SemVerRange
|
|
16032
|
+
}
|
|
16033
|
+
/**
|
|
16034
|
+
* Schema for `SemVerRange` values.
|
|
16035
|
+
*
|
|
16036
|
+
* **Details**
|
|
16037
|
+
*
|
|
16038
|
+
* The JSON and StringTree codecs encode a range with `SemVerRange.format`.
|
|
16039
|
+
*
|
|
16040
|
+
* @see {@link SemVerRangeFromString} for parsing range strings
|
|
16041
|
+
* @stability unstable
|
|
16042
|
+
* @category schemas
|
|
16043
|
+
* @since 4.0.6
|
|
16044
|
+
*/
|
|
16045
|
+
export const SemVerRange: SemVerRange = declare(
|
|
16046
|
+
SemVerRange_.isSemVerRange,
|
|
16047
|
+
{
|
|
16048
|
+
representation: {
|
|
16049
|
+
id: "effect/schema/SemVerRange",
|
|
16050
|
+
payload: null
|
|
16051
|
+
},
|
|
16052
|
+
toCode: () => ({
|
|
16053
|
+
runtime: `Schema.SemVerRange`,
|
|
16054
|
+
Type: `SemVerRange.SemVerRange`,
|
|
16055
|
+
importDeclarations: [`import * as SemVerRange from "effect/SemVerRange"`]
|
|
16056
|
+
}),
|
|
16057
|
+
expected: "SemVerRange",
|
|
16058
|
+
toCodecArbitrary: () =>
|
|
16059
|
+
linkDecoding<SemVerRange_.SemVerRange>()(
|
|
16060
|
+
ArraySchema(
|
|
16061
|
+
ArraySchema(Struct({
|
|
16062
|
+
operator: Literals(["", "=", "<", "<=", ">", ">=", "~", "^"]),
|
|
16063
|
+
version: SemVerCoreArbitrary
|
|
16064
|
+
})).check(isMinLength(1))
|
|
16065
|
+
),
|
|
16066
|
+
SchemaGetter.transform((sets) =>
|
|
16067
|
+
SemVerRange_.parseUnsafe(
|
|
16068
|
+
sets.map((set) =>
|
|
16069
|
+
set.map(({ operator, version }) => `${operator}${SemVer_.format(SemVer_.make(version))}`).join(" ")
|
|
16070
|
+
).join(" || ")
|
|
16071
|
+
)
|
|
16072
|
+
)
|
|
16073
|
+
),
|
|
16074
|
+
toCodecJson: () =>
|
|
16075
|
+
link<SemVerRange_.SemVerRange>()(
|
|
16076
|
+
SemVerRangeString,
|
|
16077
|
+
semVerRangeFromString
|
|
16078
|
+
),
|
|
16079
|
+
toFormatter: () => SemVerRange_.format
|
|
16080
|
+
}
|
|
16081
|
+
)
|
|
16082
|
+
/**
|
|
16083
|
+
* Type-level representation of {@link SemVerRangeFromString}.
|
|
16084
|
+
*
|
|
16085
|
+
* @stability unstable
|
|
16086
|
+
* @category models
|
|
16087
|
+
* @since 4.0.6
|
|
16088
|
+
*/
|
|
16089
|
+
export interface SemVerRangeFromString extends decodeTo<SemVerRange, String> {
|
|
16090
|
+
readonly "Rebuild": SemVerRangeFromString
|
|
16091
|
+
}
|
|
16092
|
+
/**
|
|
16093
|
+
* Schema that parses an npm-style version range string into a `SemVerRange`.
|
|
16094
|
+
*
|
|
16095
|
+
* **Details**
|
|
16096
|
+
*
|
|
16097
|
+
* Decodes with `SemVerRange.parse` and encodes with `SemVerRange.format`,
|
|
16098
|
+
* preserving parsed operators and normalizing wildcard spellings.
|
|
16099
|
+
*
|
|
16100
|
+
* @see {@link SemVerRange} for validating values that are already ranges
|
|
16101
|
+
* @stability unstable
|
|
16102
|
+
* @category schemas
|
|
16103
|
+
* @since 4.0.6
|
|
16104
|
+
*/
|
|
16105
|
+
export const SemVerRangeFromString: SemVerRangeFromString = SemVerRangeString.pipe(
|
|
16106
|
+
decodeTo(SemVerRange, semVerRangeFromString)
|
|
16107
|
+
)
|
|
16108
|
+
|
|
15746
16109
|
/**
|
|
15747
16110
|
* Type-level representation returned by {@link Class}.
|
|
15748
16111
|
*
|
|
@@ -15958,16 +16321,19 @@ function makeClass<
|
|
|
15958
16321
|
return out
|
|
15959
16322
|
}
|
|
15960
16323
|
|
|
16324
|
+
/**
|
|
16325
|
+
* Constructs a class instance from fields that were already validated against
|
|
16326
|
+
* the class struct, without running the constructor's schema pass.
|
|
16327
|
+
*
|
|
16328
|
+
* @internal
|
|
16329
|
+
*/
|
|
16330
|
+
export function makeClassTrusted<Self>(self: new(input: any, options?: MakeOptions) => Self, fields: object): Self {
|
|
16331
|
+
return new self(fields, { "~payload": { token: payloadToken, value: fields } })
|
|
16332
|
+
}
|
|
16333
|
+
|
|
15961
16334
|
function getClassTransformation(self: new(...args: ReadonlyArray<any>) => any) {
|
|
15962
16335
|
return new SchemaTransformation.Transformation<any, any, never, never>(
|
|
15963
|
-
SchemaGetter.transform((input) =>
|
|
15964
|
-
new self(input, {
|
|
15965
|
-
"~payload": {
|
|
15966
|
-
token: payloadToken,
|
|
15967
|
-
value: input
|
|
15968
|
-
}
|
|
15969
|
-
})
|
|
15970
|
-
),
|
|
16336
|
+
SchemaGetter.transform((input) => makeClassTrusted(self, input)),
|
|
15971
16337
|
SchemaGetter.passthrough()
|
|
15972
16338
|
)
|
|
15973
16339
|
}
|
|
@@ -16051,7 +16417,9 @@ function isStruct(schema: Struct.Fields | Struct<Struct.Fields>): schema is Stru
|
|
|
16051
16417
|
*
|
|
16052
16418
|
* **Gotchas**
|
|
16053
16419
|
*
|
|
16054
|
-
* Passing `disableChecks`
|
|
16420
|
+
* Passing `disableChecks: true` skips filters and checks, not parsing of types
|
|
16421
|
+
* and structure. Wrong types and shapes are still rejected, and constructor
|
|
16422
|
+
* defaults still apply.
|
|
16055
16423
|
*
|
|
16056
16424
|
* **Example** (Defining a basic class)
|
|
16057
16425
|
*
|
|
@@ -16122,7 +16490,9 @@ export const Class: {
|
|
|
16122
16490
|
*
|
|
16123
16491
|
* **Gotchas**
|
|
16124
16492
|
*
|
|
16125
|
-
* Passing `disableChecks`
|
|
16493
|
+
* Passing `disableChecks: true` skips filters and checks, not parsing of types
|
|
16494
|
+
* and structure. Wrong types and shapes are still rejected, and constructor
|
|
16495
|
+
* defaults still apply.
|
|
16126
16496
|
*
|
|
16127
16497
|
* **Example** (Defining a basic class)
|
|
16128
16498
|
*
|
|
@@ -16166,151 +16536,14 @@ export const Class: {
|
|
|
16166
16536
|
* @since 3.10.0
|
|
16167
16537
|
*/
|
|
16168
16538
|
<Self = never, Brand = {}>(identifier: string): {
|
|
16169
|
-
/**
|
|
16170
|
-
* Creates a schema-backed class whose constructor validates input against a
|
|
16171
|
-
* {@link Struct} schema. Construction throws an `Error` with a
|
|
16172
|
-
* `SchemaIssue.Issue` in its `cause` on invalid input.
|
|
16173
|
-
*
|
|
16174
|
-
* **When to use**
|
|
16175
|
-
*
|
|
16176
|
-
* Use when you need a schema-backed data class with validated construction,
|
|
16177
|
-
* schema-derived decoding/encoding, and class-style methods or inheritance.
|
|
16178
|
-
*
|
|
16179
|
-
* **Details**
|
|
16180
|
-
*
|
|
16181
|
-
* Pass the desired class type as the first type parameter. The second optional
|
|
16182
|
-
* type parameter can be used to add nominal brands.
|
|
16183
|
-
*
|
|
16184
|
-
* The `identifier` is the schema's stable runtime name. It is exposed on the
|
|
16185
|
-
* class, stored in the schema AST, and used to label diagnostics and generated
|
|
16186
|
-
* references as well as to format class instances.
|
|
16187
|
-
*
|
|
16188
|
-
* It also derives a runtime marker that recognizes instances across hot module
|
|
16189
|
-
* reloads, where `instanceof` can fail because the constructor has been
|
|
16190
|
-
* replaced. The identifier is explicit because the outer JavaScript class name
|
|
16191
|
-
* is not available while the `extends` expression is evaluated and may change
|
|
16192
|
-
* through renaming or minification.
|
|
16193
|
-
*
|
|
16194
|
-
* **Gotchas**
|
|
16195
|
-
*
|
|
16196
|
-
* Passing `disableChecks` in the options skips constructor validation.
|
|
16197
|
-
*
|
|
16198
|
-
* **Example** (Defining a basic class)
|
|
16199
|
-
*
|
|
16200
|
-
* ```ts import.meta.vitest
|
|
16201
|
-
* import { Schema } from "effect"
|
|
16202
|
-
*
|
|
16203
|
-
* class Person extends Schema.Class<Person>("Person")({
|
|
16204
|
-
* name: Schema.String,
|
|
16205
|
-
* age: Schema.Number
|
|
16206
|
-
* }) {}
|
|
16207
|
-
*
|
|
16208
|
-
* const alice = new Person({ name: "Alice", age: 30 })
|
|
16209
|
-
* alice.name // => "Alice"
|
|
16210
|
-
* String(alice) // => "Person({\"name\":\"Alice\",\"age\":30})"
|
|
16211
|
-
* ```
|
|
16212
|
-
*
|
|
16213
|
-
* **Example** (Extending a class)
|
|
16214
|
-
*
|
|
16215
|
-
* ```ts import.meta.vitest
|
|
16216
|
-
* import { Schema } from "effect"
|
|
16217
|
-
*
|
|
16218
|
-
* class Animal extends Schema.Class<Animal>("Animal")({
|
|
16219
|
-
* name: Schema.String
|
|
16220
|
-
* }) {}
|
|
16221
|
-
*
|
|
16222
|
-
* class Dog extends Animal.extend<Dog>("Dog")({
|
|
16223
|
-
* breed: Schema.String
|
|
16224
|
-
* }) {}
|
|
16225
|
-
*
|
|
16226
|
-
* const dog = new Dog({ name: "Rex", breed: "Labrador" })
|
|
16227
|
-
* dog.name // => "Rex"
|
|
16228
|
-
* dog.breed // => "Labrador"
|
|
16229
|
-
* ```
|
|
16230
|
-
*
|
|
16231
|
-
* @see {@link TaggedClass} for adding a `_tag` literal field to the class schema
|
|
16232
|
-
* @see {@link Error} for defining schema-backed error classes
|
|
16233
|
-
* @see {@link TaggedError} for defining tagged schema-backed error classes
|
|
16234
|
-
*
|
|
16235
|
-
* @stability stable
|
|
16236
|
-
* @category constructors
|
|
16237
|
-
* @since 3.10.0
|
|
16238
|
-
*/
|
|
16239
16539
|
<const Fields extends Struct.Fields>(
|
|
16240
16540
|
fields: Fields,
|
|
16241
16541
|
annotations?: Annotations.Declaration<Self, readonly [Struct<Fields>]>
|
|
16242
16542
|
): [Self] extends [never] ? MissingSelfGeneric<"Schema.Class"> : Class<Self, Struct<Fields>, Brand>
|
|
16243
|
-
|
|
16244
|
-
|
|
16245
|
-
|
|
16246
|
-
|
|
16247
|
-
*
|
|
16248
|
-
* **When to use**
|
|
16249
|
-
*
|
|
16250
|
-
* Use when you need a schema-backed data class with validated construction,
|
|
16251
|
-
* schema-derived decoding/encoding, and class-style methods or inheritance.
|
|
16252
|
-
*
|
|
16253
|
-
* **Details**
|
|
16254
|
-
*
|
|
16255
|
-
* Pass the desired class type as the first type parameter. The second optional
|
|
16256
|
-
* type parameter can be used to add nominal brands.
|
|
16257
|
-
*
|
|
16258
|
-
* The `identifier` is the schema's stable runtime name. It is exposed on the
|
|
16259
|
-
* class, stored in the schema AST, and used to label diagnostics and generated
|
|
16260
|
-
* references as well as to format class instances.
|
|
16261
|
-
*
|
|
16262
|
-
* It also derives a runtime marker that recognizes instances across hot module
|
|
16263
|
-
* reloads, where `instanceof` can fail because the constructor has been
|
|
16264
|
-
* replaced. The identifier is explicit because the outer JavaScript class name
|
|
16265
|
-
* is not available while the `extends` expression is evaluated and may change
|
|
16266
|
-
* through renaming or minification.
|
|
16267
|
-
*
|
|
16268
|
-
* **Gotchas**
|
|
16269
|
-
*
|
|
16270
|
-
* Passing `disableChecks` in the options skips constructor validation.
|
|
16271
|
-
*
|
|
16272
|
-
* **Example** (Defining a basic class)
|
|
16273
|
-
*
|
|
16274
|
-
* ```ts import.meta.vitest
|
|
16275
|
-
* import { Schema } from "effect"
|
|
16276
|
-
*
|
|
16277
|
-
* class Person extends Schema.Class<Person>("Person")({
|
|
16278
|
-
* name: Schema.String,
|
|
16279
|
-
* age: Schema.Number
|
|
16280
|
-
* }) {}
|
|
16281
|
-
*
|
|
16282
|
-
* const alice = new Person({ name: "Alice", age: 30 })
|
|
16283
|
-
* alice.name // => "Alice"
|
|
16284
|
-
* String(alice) // => "Person({\"name\":\"Alice\",\"age\":30})"
|
|
16285
|
-
* ```
|
|
16286
|
-
*
|
|
16287
|
-
* **Example** (Extending a class)
|
|
16288
|
-
*
|
|
16289
|
-
* ```ts import.meta.vitest
|
|
16290
|
-
* import { Schema } from "effect"
|
|
16291
|
-
*
|
|
16292
|
-
* class Animal extends Schema.Class<Animal>("Animal")({
|
|
16293
|
-
* name: Schema.String
|
|
16294
|
-
* }) {}
|
|
16295
|
-
*
|
|
16296
|
-
* class Dog extends Animal.extend<Dog>("Dog")({
|
|
16297
|
-
* breed: Schema.String
|
|
16298
|
-
* }) {}
|
|
16299
|
-
*
|
|
16300
|
-
* const dog = new Dog({ name: "Rex", breed: "Labrador" })
|
|
16301
|
-
* dog.name // => "Rex"
|
|
16302
|
-
* dog.breed // => "Labrador"
|
|
16303
|
-
* ```
|
|
16304
|
-
*
|
|
16305
|
-
* @see {@link TaggedClass} for adding a `_tag` literal field to the class schema
|
|
16306
|
-
* @see {@link Error} for defining schema-backed error classes
|
|
16307
|
-
* @see {@link TaggedError} for defining tagged schema-backed error classes
|
|
16308
|
-
*
|
|
16309
|
-
* @stability stable
|
|
16310
|
-
* @category constructors
|
|
16311
|
-
* @since 3.10.0
|
|
16312
|
-
*/
|
|
16313
|
-
<S extends Struct<Struct.Fields>>(schema: S, annotations?: Annotations.Declaration<Self, readonly [S]>): [Self] extends [never] ? MissingSelfGeneric<"Schema.Class"> : Class<Self, S, Brand>
|
|
16543
|
+
<S extends Struct<Struct.Fields>>(
|
|
16544
|
+
schema: S,
|
|
16545
|
+
annotations?: Annotations.Declaration<Self, readonly [S]>
|
|
16546
|
+
): [Self] extends [never] ? MissingSelfGeneric<"Schema.Class"> : Class<Self, S, Brand>
|
|
16314
16547
|
}
|
|
16315
16548
|
} = <Self, Brand = {}>(identifier: string) =>
|
|
16316
16549
|
(
|
|
@@ -16394,73 +16627,11 @@ export const TaggedClass: {
|
|
|
16394
16627
|
* @since 3.10.0
|
|
16395
16628
|
*/
|
|
16396
16629
|
<Self = never, Brand = {}>(identifier?: string): {
|
|
16397
|
-
/**
|
|
16398
|
-
* Defines a schema-backed class with an automatically populated `_tag` field.
|
|
16399
|
-
*
|
|
16400
|
-
* **When to use**
|
|
16401
|
-
*
|
|
16402
|
-
* Use to define class instances that are validated by a schema and participate
|
|
16403
|
-
* in tagged union matching.
|
|
16404
|
-
*
|
|
16405
|
-
* **Details**
|
|
16406
|
-
*
|
|
16407
|
-
* The optional `identifier` parameter overrides the schema identifier;
|
|
16408
|
-
* it defaults to the `tag` value.
|
|
16409
|
-
*
|
|
16410
|
-
* **Example** (Defining a tagged class)
|
|
16411
|
-
*
|
|
16412
|
-
* ```ts import.meta.vitest
|
|
16413
|
-
* import { Schema } from "effect"
|
|
16414
|
-
*
|
|
16415
|
-
* class Circle extends Schema.TaggedClass<Circle>()("Circle", {
|
|
16416
|
-
* radius: Schema.Number
|
|
16417
|
-
* }) {}
|
|
16418
|
-
*
|
|
16419
|
-
* const c = new Circle({ radius: 5 })
|
|
16420
|
-
* c._tag // => "Circle"
|
|
16421
|
-
* c.radius // => 5
|
|
16422
|
-
* ```
|
|
16423
|
-
*
|
|
16424
|
-
* @stability stable
|
|
16425
|
-
* @category constructors
|
|
16426
|
-
* @since 3.10.0
|
|
16427
|
-
*/
|
|
16428
16630
|
<Tag extends string, const Fields extends Struct.Fields>(
|
|
16429
16631
|
tag: Tag,
|
|
16430
16632
|
fields: Fields,
|
|
16431
16633
|
annotations?: Annotations.Declaration<Self, readonly [TaggedStruct<Tag, Fields>]>
|
|
16432
16634
|
): [Self] extends [never] ? MissingSelfGeneric<"Schema.TaggedClass"> : Class<Self, TaggedStruct<Tag, Fields>, Brand>
|
|
16433
|
-
/**
|
|
16434
|
-
* Defines a schema-backed class with an automatically populated `_tag` field.
|
|
16435
|
-
*
|
|
16436
|
-
* **When to use**
|
|
16437
|
-
*
|
|
16438
|
-
* Use to define class instances that are validated by a schema and participate
|
|
16439
|
-
* in tagged union matching.
|
|
16440
|
-
*
|
|
16441
|
-
* **Details**
|
|
16442
|
-
*
|
|
16443
|
-
* The optional `identifier` parameter overrides the schema identifier;
|
|
16444
|
-
* it defaults to the `tag` value.
|
|
16445
|
-
*
|
|
16446
|
-
* **Example** (Defining a tagged class)
|
|
16447
|
-
*
|
|
16448
|
-
* ```ts import.meta.vitest
|
|
16449
|
-
* import { Schema } from "effect"
|
|
16450
|
-
*
|
|
16451
|
-
* class Circle extends Schema.TaggedClass<Circle>()("Circle", {
|
|
16452
|
-
* radius: Schema.Number
|
|
16453
|
-
* }) {}
|
|
16454
|
-
*
|
|
16455
|
-
* const c = new Circle({ radius: 5 })
|
|
16456
|
-
* c._tag // => "Circle"
|
|
16457
|
-
* c.radius // => 5
|
|
16458
|
-
* ```
|
|
16459
|
-
*
|
|
16460
|
-
* @stability stable
|
|
16461
|
-
* @category constructors
|
|
16462
|
-
* @since 3.10.0
|
|
16463
|
-
*/
|
|
16464
16635
|
<Tag extends string, S extends Struct<Struct.Fields>>(
|
|
16465
16636
|
tag: Tag,
|
|
16466
16637
|
schema: S,
|
|
@@ -16542,64 +16713,15 @@ export const Error: {
|
|
|
16542
16713
|
* @since 4.0.0
|
|
16543
16714
|
*/
|
|
16544
16715
|
<Self = never, Brand = {}>(identifier: string): {
|
|
16545
|
-
/**
|
|
16546
|
-
* Creates a schema-backed error class that can be used as a typed,
|
|
16547
|
-
* yieldable error in Effect programs. Combines {@link Class} validation with
|
|
16548
|
-
* the `YieldableError` interface so instances can be yielded directly inside
|
|
16549
|
-
* `Effect.gen`.
|
|
16550
|
-
*
|
|
16551
|
-
* **Example** (Schema-backed error)
|
|
16552
|
-
*
|
|
16553
|
-
* ```ts import.meta.vitest
|
|
16554
|
-
* import { Effect, Schema } from "effect"
|
|
16555
|
-
*
|
|
16556
|
-
* class NotFound extends Schema.Error<NotFound>("NotFound")({
|
|
16557
|
-
* id: Schema.Number
|
|
16558
|
-
* }) {}
|
|
16559
|
-
*
|
|
16560
|
-
* const program = Effect.gen(function*() {
|
|
16561
|
-
* yield* new NotFound({ id: 1 })
|
|
16562
|
-
* })
|
|
16563
|
-
* const error = await Effect.runPromise(Effect.flip(program))
|
|
16564
|
-
* error.id // => 1
|
|
16565
|
-
* ```
|
|
16566
|
-
*
|
|
16567
|
-
* @stability stable
|
|
16568
|
-
* @category constructors
|
|
16569
|
-
* @since 4.0.0
|
|
16570
|
-
*/
|
|
16571
16716
|
<const Fields extends Struct.Fields>(
|
|
16572
16717
|
fields: Fields,
|
|
16573
16718
|
annotations?: Annotations.Declaration<Self, readonly [Struct<Fields>]>
|
|
16574
16719
|
): [Self] extends [never] ? MissingSelfGeneric<"Schema.Error">
|
|
16575
16720
|
: Class<Self, Struct<Fields>, Cause_.YieldableError & Brand>
|
|
16576
|
-
|
|
16577
|
-
|
|
16578
|
-
|
|
16579
|
-
|
|
16580
|
-
* `Effect.gen`.
|
|
16581
|
-
*
|
|
16582
|
-
* **Example** (Schema-backed error)
|
|
16583
|
-
*
|
|
16584
|
-
* ```ts import.meta.vitest
|
|
16585
|
-
* import { Effect, Schema } from "effect"
|
|
16586
|
-
*
|
|
16587
|
-
* class NotFound extends Schema.Error<NotFound>("NotFound")({
|
|
16588
|
-
* id: Schema.Number
|
|
16589
|
-
* }) {}
|
|
16590
|
-
*
|
|
16591
|
-
* const program = Effect.gen(function*() {
|
|
16592
|
-
* yield* new NotFound({ id: 1 })
|
|
16593
|
-
* })
|
|
16594
|
-
* const error = await Effect.runPromise(Effect.flip(program))
|
|
16595
|
-
* error.id // => 1
|
|
16596
|
-
* ```
|
|
16597
|
-
*
|
|
16598
|
-
* @stability stable
|
|
16599
|
-
* @category constructors
|
|
16600
|
-
* @since 4.0.0
|
|
16601
|
-
*/
|
|
16602
|
-
<S extends Struct<Struct.Fields>>(schema: S, annotations?: Annotations.Declaration<Self, readonly [S]>): [Self] extends [never] ? MissingSelfGeneric<"Schema.Error"> : Class<Self, S, Cause_.YieldableError & Brand>
|
|
16721
|
+
<S extends Struct<Struct.Fields>>(
|
|
16722
|
+
schema: S,
|
|
16723
|
+
annotations?: Annotations.Declaration<Self, readonly [S]>
|
|
16724
|
+
): [Self] extends [never] ? MissingSelfGeneric<"Schema.Error"> : Class<Self, S, Cause_.YieldableError & Brand>
|
|
16603
16725
|
}
|
|
16604
16726
|
} = <Self, Brand = {}>(identifier: string) =>
|
|
16605
16727
|
(
|
|
@@ -16682,72 +16804,12 @@ export const TaggedError: {
|
|
|
16682
16804
|
* @since 3.10.0
|
|
16683
16805
|
*/
|
|
16684
16806
|
<Self = never, Brand = {}>(identifier?: string): {
|
|
16685
|
-
/**
|
|
16686
|
-
* Defines a schema-backed yieldable error class with an automatically populated
|
|
16687
|
-
* `_tag` field.
|
|
16688
|
-
*
|
|
16689
|
-
* **When to use**
|
|
16690
|
-
*
|
|
16691
|
-
* Use to define typed errors that are schema validated, yielded in `Effect.gen`,
|
|
16692
|
-
* and matched as tagged union members.
|
|
16693
|
-
*
|
|
16694
|
-
* **Example** (Defining a tagged error class)
|
|
16695
|
-
*
|
|
16696
|
-
* ```ts import.meta.vitest
|
|
16697
|
-
* import { Effect, Schema } from "effect"
|
|
16698
|
-
*
|
|
16699
|
-
* class NotFound extends Schema.TaggedError<NotFound>()("NotFound", {
|
|
16700
|
-
* id: Schema.Number
|
|
16701
|
-
* }) {}
|
|
16702
|
-
*
|
|
16703
|
-
* const program = Effect.gen(function*() {
|
|
16704
|
-
* yield* new NotFound({ id: 42 })
|
|
16705
|
-
* })
|
|
16706
|
-
* const error = await Effect.runPromise(Effect.flip(program))
|
|
16707
|
-
* error._tag // => "NotFound"
|
|
16708
|
-
* error.id // => 42
|
|
16709
|
-
* ```
|
|
16710
|
-
*
|
|
16711
|
-
* @stability stable
|
|
16712
|
-
* @category constructors
|
|
16713
|
-
* @since 3.10.0
|
|
16714
|
-
*/
|
|
16715
16807
|
<Tag extends string, const Fields extends Struct.Fields>(
|
|
16716
16808
|
tag: Tag,
|
|
16717
16809
|
fields: Fields,
|
|
16718
16810
|
annotations?: Annotations.Declaration<Self, readonly [TaggedStruct<Tag, Fields>]>
|
|
16719
16811
|
): [Self] extends [never] ? MissingSelfGeneric<"Schema.TaggedError">
|
|
16720
16812
|
: Class<Self, TaggedStruct<Tag, Fields>, Cause_.YieldableError & Brand>
|
|
16721
|
-
/**
|
|
16722
|
-
* Defines a schema-backed yieldable error class with an automatically populated
|
|
16723
|
-
* `_tag` field.
|
|
16724
|
-
*
|
|
16725
|
-
* **When to use**
|
|
16726
|
-
*
|
|
16727
|
-
* Use to define typed errors that are schema validated, yielded in `Effect.gen`,
|
|
16728
|
-
* and matched as tagged union members.
|
|
16729
|
-
*
|
|
16730
|
-
* **Example** (Defining a tagged error class)
|
|
16731
|
-
*
|
|
16732
|
-
* ```ts import.meta.vitest
|
|
16733
|
-
* import { Effect, Schema } from "effect"
|
|
16734
|
-
*
|
|
16735
|
-
* class NotFound extends Schema.TaggedError<NotFound>()("NotFound", {
|
|
16736
|
-
* id: Schema.Number
|
|
16737
|
-
* }) {}
|
|
16738
|
-
*
|
|
16739
|
-
* const program = Effect.gen(function*() {
|
|
16740
|
-
* yield* new NotFound({ id: 42 })
|
|
16741
|
-
* })
|
|
16742
|
-
* const error = await Effect.runPromise(Effect.flip(program))
|
|
16743
|
-
* error._tag // => "NotFound"
|
|
16744
|
-
* error.id // => 42
|
|
16745
|
-
* ```
|
|
16746
|
-
*
|
|
16747
|
-
* @stability stable
|
|
16748
|
-
* @category constructors
|
|
16749
|
-
* @since 3.10.0
|
|
16750
|
-
*/
|
|
16751
16813
|
<Tag extends string, S extends Struct<Struct.Fields>>(
|
|
16752
16814
|
tag: Tag,
|
|
16753
16815
|
schema: S,
|
|
@@ -17317,6 +17379,179 @@ export const toCodecArrayFromSingle: {
|
|
|
17317
17379
|
*/
|
|
17318
17380
|
<S extends Constraint>(schema: S): toCodecArrayFromSingle<S>
|
|
17319
17381
|
} = InternalToCodec.toCodecArrayFromSingle
|
|
17382
|
+
/**
|
|
17383
|
+
* Type-level representation returned by {@link toCodecGoJson}.
|
|
17384
|
+
*
|
|
17385
|
+
* @stability unstable
|
|
17386
|
+
* @category converting
|
|
17387
|
+
* @since 4.0.6
|
|
17388
|
+
*/
|
|
17389
|
+
export interface toCodecGoJson<S extends Constraint> extends
|
|
17390
|
+
BottomLazy<
|
|
17391
|
+
S["ast"],
|
|
17392
|
+
toCodecGoJson<S>,
|
|
17393
|
+
S["~type.parameters"],
|
|
17394
|
+
S["~type.mutability"],
|
|
17395
|
+
S["~type.optionality"],
|
|
17396
|
+
S["~type.constructor.default"],
|
|
17397
|
+
S["~encoded.mutability"],
|
|
17398
|
+
S["~encoded.optionality"]
|
|
17399
|
+
>
|
|
17400
|
+
{
|
|
17401
|
+
readonly "Type": S["Type"]
|
|
17402
|
+
readonly "Encoded": Json
|
|
17403
|
+
readonly "DecodingServices": S["DecodingServices"]
|
|
17404
|
+
readonly "EncodingServices": S["EncodingServices"]
|
|
17405
|
+
readonly "~type.make.in": S["~type.make.in"]
|
|
17406
|
+
readonly "~type.make": S["~type.make"]
|
|
17407
|
+
readonly "Iso": S["Iso"]
|
|
17408
|
+
readonly schema: S
|
|
17409
|
+
}
|
|
17410
|
+
/**
|
|
17411
|
+
* Derives a JSON codec, like {@link toCodecJson}, that also accepts the
|
|
17412
|
+
* `null` values Go's `encoding/json` writes for nil pointers, slices, and maps.
|
|
17413
|
+
*
|
|
17414
|
+
* **When to use**
|
|
17415
|
+
*
|
|
17416
|
+
* Use when decoding JSON produced by a Go service (for example the Docker
|
|
17417
|
+
* Engine or Kubernetes APIs), where any field the API document describes as
|
|
17418
|
+
* optional, or any slice or map, may arrive as `null`.
|
|
17419
|
+
*
|
|
17420
|
+
* **Details**
|
|
17421
|
+
*
|
|
17422
|
+
* Decoding applies these rules at every level of the schema:
|
|
17423
|
+
*
|
|
17424
|
+
* - An optional key that is `null` decodes as a missing key.
|
|
17425
|
+
* - A required array (`Schema.Array`) that is `null` decodes as `[]`.
|
|
17426
|
+
* - A required record (`Schema.Record`) that is `null` decodes as `{}`.
|
|
17427
|
+
*
|
|
17428
|
+
* Array and record rules also apply at the top level and to nested collection
|
|
17429
|
+
* values. Tuples, non-empty arrays, and structs are not treated as collections;
|
|
17430
|
+
* collection checks still apply to the empty value.
|
|
17431
|
+
*
|
|
17432
|
+
* Encoding is unchanged from {@link toCodecJson}: the added rules only decode
|
|
17433
|
+
* `null` and do not emit it. A missing key stays missing.
|
|
17434
|
+
*
|
|
17435
|
+
* These rules also accept `encoding/json/v2` output. By default, v2 writes
|
|
17436
|
+
* nil slices and maps as `[]` and `{}`, but it can be configured to emit
|
|
17437
|
+
* `null` instead.
|
|
17438
|
+
*
|
|
17439
|
+
* **Gotchas**
|
|
17440
|
+
*
|
|
17441
|
+
* - Normalization deliberately discards the distinction between nil and empty
|
|
17442
|
+
* Go slices or maps. They are distinguishable in Go, and unmarshalling a
|
|
17443
|
+
* missing key, `null`, or an empty collection can affect existing values
|
|
17444
|
+
* differently. Use {@link toCodecJson} with explicit nullable schemas when
|
|
17445
|
+
* that distinction matters.
|
|
17446
|
+
* - A key whose schema already accepts `null` (for example
|
|
17447
|
+
* `Schema.NullOr(X)`, `Schema.Unknown`, or `Schema.Json`) keeps `null` as a
|
|
17448
|
+
* value.
|
|
17449
|
+
* - A required field that is not an array or a record (a nil pointer to a Go
|
|
17450
|
+
* struct, for example) still fails on `null`. Make it optional if the API
|
|
17451
|
+
* can omit it.
|
|
17452
|
+
* - A nil `[]byte` is written as `null` by `encoding/json` (and as `""` by
|
|
17453
|
+
* version 2), but its schema is a base64 string, not an array. A required
|
|
17454
|
+
* `[]byte` field that is `null` fails; make it optional if the API can send
|
|
17455
|
+
* `null`.
|
|
17456
|
+
* - Only these `null` rules are covered. Field formats such as durations,
|
|
17457
|
+
* base64 bytes, and numbers encoded as strings belong in the field schemas.
|
|
17458
|
+
*
|
|
17459
|
+
* **Example** (Decoding a Go response with nil fields)
|
|
17460
|
+
*
|
|
17461
|
+
* ```ts import.meta.vitest
|
|
17462
|
+
* import { Schema } from "effect"
|
|
17463
|
+
*
|
|
17464
|
+
* const Container = Schema.Struct({
|
|
17465
|
+
* Id: Schema.String,
|
|
17466
|
+
* Names: Schema.Array(Schema.String),
|
|
17467
|
+
* Labels: Schema.Record(Schema.String, Schema.String),
|
|
17468
|
+
* Status: Schema.optionalKey(Schema.String)
|
|
17469
|
+
* })
|
|
17470
|
+
*
|
|
17471
|
+
* const decode = Schema.decodeUnknownSync(Schema.toCodecGoJson(Container))
|
|
17472
|
+
*
|
|
17473
|
+
* decode({ Id: "a", Names: null, Labels: null, Status: null }) // => { Id: "a", Names: [], Labels: {} }
|
|
17474
|
+
* ```
|
|
17475
|
+
*
|
|
17476
|
+
* @see {@link toCodecJson} for the canonical JSON codec
|
|
17477
|
+
* @stability unstable
|
|
17478
|
+
* @category converting
|
|
17479
|
+
* @since 4.0.6
|
|
17480
|
+
*/
|
|
17481
|
+
export const toCodecGoJson: {
|
|
17482
|
+
/**
|
|
17483
|
+
* Derives a JSON codec, like {@link toCodecJson}, that also accepts the
|
|
17484
|
+
* `null` values Go's `encoding/json` writes for nil pointers, slices, and maps.
|
|
17485
|
+
*
|
|
17486
|
+
* **When to use**
|
|
17487
|
+
*
|
|
17488
|
+
* Use when decoding JSON produced by a Go service (for example the Docker
|
|
17489
|
+
* Engine or Kubernetes APIs), where any field the API document describes as
|
|
17490
|
+
* optional, or any slice or map, may arrive as `null`.
|
|
17491
|
+
*
|
|
17492
|
+
* **Details**
|
|
17493
|
+
*
|
|
17494
|
+
* Decoding applies these rules at every level of the schema:
|
|
17495
|
+
*
|
|
17496
|
+
* - An optional key that is `null` decodes as a missing key.
|
|
17497
|
+
* - A required array (`Schema.Array`) that is `null` decodes as `[]`.
|
|
17498
|
+
* - A required record (`Schema.Record`) that is `null` decodes as `{}`.
|
|
17499
|
+
*
|
|
17500
|
+
* Array and record rules also apply at the top level and to nested collection
|
|
17501
|
+
* values. Tuples, non-empty arrays, and structs are not treated as collections;
|
|
17502
|
+
* collection checks still apply to the empty value.
|
|
17503
|
+
*
|
|
17504
|
+
* Encoding is unchanged from {@link toCodecJson}: the added rules only decode
|
|
17505
|
+
* `null` and do not emit it. A missing key stays missing.
|
|
17506
|
+
*
|
|
17507
|
+
* These rules also accept `encoding/json/v2` output. By default, v2 writes
|
|
17508
|
+
* nil slices and maps as `[]` and `{}`, but it can be configured to emit
|
|
17509
|
+
* `null` instead.
|
|
17510
|
+
*
|
|
17511
|
+
* **Gotchas**
|
|
17512
|
+
*
|
|
17513
|
+
* - Normalization deliberately discards the distinction between nil and empty
|
|
17514
|
+
* Go slices or maps. They are distinguishable in Go, and unmarshalling a
|
|
17515
|
+
* missing key, `null`, or an empty collection can affect existing values
|
|
17516
|
+
* differently. Use {@link toCodecJson} with explicit nullable schemas when
|
|
17517
|
+
* that distinction matters.
|
|
17518
|
+
* - A key whose schema already accepts `null` (for example
|
|
17519
|
+
* `Schema.NullOr(X)`, `Schema.Unknown`, or `Schema.Json`) keeps `null` as a
|
|
17520
|
+
* value.
|
|
17521
|
+
* - A required field that is not an array or a record (a nil pointer to a Go
|
|
17522
|
+
* struct, for example) still fails on `null`. Make it optional if the API
|
|
17523
|
+
* can omit it.
|
|
17524
|
+
* - A nil `[]byte` is written as `null` by `encoding/json` (and as `""` by
|
|
17525
|
+
* version 2), but its schema is a base64 string, not an array. A required
|
|
17526
|
+
* `[]byte` field that is `null` fails; make it optional if the API can send
|
|
17527
|
+
* `null`.
|
|
17528
|
+
* - Only these `null` rules are covered. Field formats such as durations,
|
|
17529
|
+
* base64 bytes, and numbers encoded as strings belong in the field schemas.
|
|
17530
|
+
*
|
|
17531
|
+
* **Example** (Decoding a Go response with nil fields)
|
|
17532
|
+
*
|
|
17533
|
+
* ```ts import.meta.vitest
|
|
17534
|
+
* import { Schema } from "effect"
|
|
17535
|
+
*
|
|
17536
|
+
* const Container = Schema.Struct({
|
|
17537
|
+
* Id: Schema.String,
|
|
17538
|
+
* Names: Schema.Array(Schema.String),
|
|
17539
|
+
* Labels: Schema.Record(Schema.String, Schema.String),
|
|
17540
|
+
* Status: Schema.optionalKey(Schema.String)
|
|
17541
|
+
* })
|
|
17542
|
+
*
|
|
17543
|
+
* const decode = Schema.decodeUnknownSync(Schema.toCodecGoJson(Container))
|
|
17544
|
+
*
|
|
17545
|
+
* decode({ Id: "a", Names: null, Labels: null, Status: null }) // => { Id: "a", Names: [], Labels: {} }
|
|
17546
|
+
* ```
|
|
17547
|
+
*
|
|
17548
|
+
* @see {@link toCodecJson} for the canonical JSON codec
|
|
17549
|
+
* @stability unstable
|
|
17550
|
+
* @category converting
|
|
17551
|
+
* @since 4.0.6
|
|
17552
|
+
*/
|
|
17553
|
+
<S extends Constraint>(schema: S): toCodecGoJson<S>
|
|
17554
|
+
} = InternalToCodec.toCodecGoJson
|
|
17320
17555
|
type XmlEncoderOptions = {
|
|
17321
17556
|
/** Root element name for the returned XML string. Default: "root" */
|
|
17322
17557
|
readonly rootName?: string | undefined
|
|
@@ -17934,7 +18169,7 @@ export declare namespace Annotations {
|
|
|
17934
18169
|
readonly "~sentinels"?: ReadonlyArray<SchemaAST.Sentinel> | undefined
|
|
17935
18170
|
}
|
|
17936
18171
|
/**
|
|
17937
|
-
* Annotations for filter
|
|
18172
|
+
* Annotations for filter checks (created via `Schema.makeFilter`). Extends
|
|
17938
18173
|
* {@link Augment} with an optional error message, identifier, and metadata.
|
|
17939
18174
|
* Filters are intentionally non-parametric to keep them covariant.
|
|
17940
18175
|
*
|