effect 4.0.5 → 4.0.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/ai-docs/package.json +1 -1
- package/ai-docs/src/06_schedule/10_schedules.ts +5 -4
- package/ai-docs/tsconfig.json +3 -1
- package/dist/Arbitrary.d.ts +10 -2
- package/dist/Arbitrary.d.ts.map +1 -1
- package/dist/Arbitrary.js +2 -1
- package/dist/Arbitrary.js.map +1 -1
- package/dist/Array.d.ts +117 -52
- package/dist/Array.d.ts.map +1 -1
- package/dist/Array.js +41 -20
- package/dist/Array.js.map +1 -1
- package/dist/Bytes.d.ts +79 -0
- package/dist/Bytes.d.ts.map +1 -0
- package/dist/Bytes.js +109 -0
- package/dist/Bytes.js.map +1 -0
- package/dist/Channel.d.ts +181 -13
- package/dist/Channel.d.ts.map +1 -1
- package/dist/Channel.js +144 -34
- package/dist/Channel.js.map +1 -1
- package/dist/ChannelSchema.d.ts.map +1 -1
- package/dist/ChannelSchema.js.map +1 -1
- package/dist/Chunk.d.ts +39 -21
- package/dist/Chunk.d.ts.map +1 -1
- package/dist/Chunk.js +26 -17
- package/dist/Chunk.js.map +1 -1
- package/dist/Config.d.ts.map +1 -1
- package/dist/Config.js +8 -3
- package/dist/Config.js.map +1 -1
- package/dist/ConfigProvider.d.ts.map +1 -1
- package/dist/ConfigProvider.js +2 -1
- package/dist/ConfigProvider.js.map +1 -1
- package/dist/Cron.d.ts +2 -2
- package/dist/Cron.d.ts.map +1 -1
- package/dist/Cron.js +6 -3
- package/dist/Cron.js.map +1 -1
- package/dist/Data.d.ts +54 -235
- package/dist/Data.d.ts.map +1 -1
- package/dist/Data.js.map +1 -1
- package/dist/Duration.d.ts.map +1 -1
- package/dist/Duration.js +56 -16
- package/dist/Duration.js.map +1 -1
- package/dist/Effect.d.ts +488 -164
- package/dist/Effect.d.ts.map +1 -1
- package/dist/Effect.js +204 -38
- package/dist/Effect.js.map +1 -1
- package/dist/Equal.d.ts.map +1 -1
- package/dist/Equal.js +8 -1
- package/dist/Equal.js.map +1 -1
- package/dist/Equivalence.d.ts +2 -1
- package/dist/Equivalence.d.ts.map +1 -1
- package/dist/Equivalence.js +12 -8
- package/dist/Equivalence.js.map +1 -1
- package/dist/Exit.d.ts +27 -12
- package/dist/Exit.d.ts.map +1 -1
- package/dist/Exit.js +8 -3
- package/dist/Exit.js.map +1 -1
- package/dist/FiberHandle.d.ts +2 -0
- package/dist/FiberHandle.d.ts.map +1 -1
- package/dist/FiberHandle.js +9 -4
- package/dist/FiberHandle.js.map +1 -1
- package/dist/FiberMap.d.ts +2 -0
- package/dist/FiberMap.d.ts.map +1 -1
- package/dist/FiberMap.js +5 -2
- package/dist/FiberMap.js.map +1 -1
- package/dist/FileSystem.d.ts +5 -0
- package/dist/FileSystem.d.ts.map +1 -1
- package/dist/FileSystem.js +3 -0
- package/dist/FileSystem.js.map +1 -1
- package/dist/Formatter.d.ts.map +1 -1
- package/dist/Formatter.js +27 -13
- package/dist/Formatter.js.map +1 -1
- package/dist/Graph.d.ts.map +1 -1
- package/dist/Graph.js.map +1 -1
- package/dist/Hash.d.ts.map +1 -1
- package/dist/Hash.js +4 -1
- package/dist/Hash.js.map +1 -1
- package/dist/HashSet.d.ts.map +1 -1
- package/dist/HashSet.js.map +1 -1
- package/dist/Iterable.d.ts.map +1 -1
- package/dist/Iterable.js +18 -17
- package/dist/Iterable.js.map +1 -1
- package/dist/JsonPatch.js +4 -0
- package/dist/JsonPatch.js.map +1 -1
- package/dist/JsonSchema.d.ts +9 -3
- package/dist/JsonSchema.d.ts.map +1 -1
- package/dist/JsonSchema.js +32 -43
- package/dist/JsonSchema.js.map +1 -1
- package/dist/Layer.d.ts.map +1 -1
- package/dist/Layer.js +2 -2
- package/dist/Layer.js.map +1 -1
- package/dist/ManagedRuntime.d.ts +19 -1
- package/dist/ManagedRuntime.d.ts.map +1 -1
- package/dist/ManagedRuntime.js +62 -6
- package/dist/ManagedRuntime.js.map +1 -1
- package/dist/Metric.d.ts +135 -3
- package/dist/Metric.d.ts.map +1 -1
- package/dist/Metric.js +197 -25
- package/dist/Metric.js.map +1 -1
- package/dist/MutableHashMap.d.ts.map +1 -1
- package/dist/MutableHashMap.js.map +1 -1
- package/dist/MutableList.d.ts +5 -2
- package/dist/MutableList.d.ts.map +1 -1
- package/dist/MutableList.js +7 -5
- package/dist/MutableList.js.map +1 -1
- package/dist/MutableRef.d.ts.map +1 -1
- package/dist/MutableRef.js +7 -0
- package/dist/MutableRef.js.map +1 -1
- package/dist/Number.js +2 -2
- package/dist/Number.js.map +1 -1
- package/dist/Optic.d.ts.map +1 -1
- package/dist/Optic.js.map +1 -1
- package/dist/PartitionedSemaphore.d.ts +2 -1
- package/dist/PartitionedSemaphore.d.ts.map +1 -1
- package/dist/PartitionedSemaphore.js +22 -12
- package/dist/PartitionedSemaphore.js.map +1 -1
- package/dist/Path.d.ts.map +1 -1
- package/dist/Path.js +8 -1
- package/dist/Path.js.map +1 -1
- package/dist/Pool.d.ts.map +1 -1
- package/dist/Pool.js +77 -27
- package/dist/Pool.js.map +1 -1
- package/dist/PubSub.d.ts.map +1 -1
- package/dist/PubSub.js +17 -13
- package/dist/PubSub.js.map +1 -1
- package/dist/Queue.d.ts +4 -1
- package/dist/Queue.d.ts.map +1 -1
- package/dist/Queue.js +4 -1
- package/dist/Queue.js.map +1 -1
- package/dist/Random.d.ts.map +1 -1
- package/dist/Random.js +1 -1
- package/dist/Random.js.map +1 -1
- package/dist/RcMap.d.ts +12 -7
- package/dist/RcMap.d.ts.map +1 -1
- package/dist/RcMap.js +9 -6
- package/dist/RcMap.js.map +1 -1
- package/dist/Record.d.ts +51 -0
- package/dist/Record.d.ts.map +1 -1
- package/dist/Record.js +17 -0
- package/dist/Record.js.map +1 -1
- package/dist/Ref.d.ts.map +1 -1
- package/dist/Ref.js +8 -0
- package/dist/Ref.js.map +1 -1
- package/dist/References.d.ts +5 -4
- package/dist/References.d.ts.map +1 -1
- package/dist/References.js +5 -4
- package/dist/References.js.map +1 -1
- package/dist/RequestResolver.d.ts +31 -1
- package/dist/RequestResolver.d.ts.map +1 -1
- package/dist/RequestResolver.js +39 -4
- package/dist/RequestResolver.js.map +1 -1
- package/dist/Resource.js +1 -1
- package/dist/Resource.js.map +1 -1
- package/dist/Runtime.d.ts +3 -3
- package/dist/Runtime.d.ts.map +1 -1
- package/dist/Runtime.js +18 -15
- package/dist/Runtime.js.map +1 -1
- package/dist/Schedule.d.ts.map +1 -1
- package/dist/Schedule.js +1 -1
- package/dist/Schedule.js.map +1 -1
- package/dist/Schema.d.ts +408 -340
- package/dist/Schema.d.ts.map +1 -1
- package/dist/Schema.js +370 -47
- package/dist/Schema.js.map +1 -1
- package/dist/SchemaAST.d.ts +9 -7
- package/dist/SchemaAST.d.ts.map +1 -1
- package/dist/SchemaAST.js +38 -25
- package/dist/SchemaAST.js.map +1 -1
- package/dist/SchemaGetter.d.ts +8 -3
- package/dist/SchemaGetter.d.ts.map +1 -1
- package/dist/SchemaGetter.js +15 -5
- package/dist/SchemaGetter.js.map +1 -1
- package/dist/SchemaIssue.d.ts +4 -4
- package/dist/SchemaIssue.d.ts.map +1 -1
- package/dist/SchemaIssue.js +29 -51
- package/dist/SchemaIssue.js.map +1 -1
- package/dist/SchemaParser.d.ts.map +1 -1
- package/dist/SchemaParser.js +48 -22
- package/dist/SchemaParser.js.map +1 -1
- package/dist/SchemaRepresentation.d.ts +75 -11
- package/dist/SchemaRepresentation.d.ts.map +1 -1
- package/dist/SchemaRepresentation.js +41 -13
- package/dist/SchemaRepresentation.js.map +1 -1
- package/dist/SchemaTransformation.d.ts +5 -2
- package/dist/SchemaTransformation.d.ts.map +1 -1
- package/dist/SchemaTransformation.js +10 -3
- package/dist/SchemaTransformation.js.map +1 -1
- package/dist/Scope.d.ts +12 -2
- package/dist/Scope.d.ts.map +1 -1
- package/dist/Scope.js +5 -0
- package/dist/Scope.js.map +1 -1
- package/dist/ScopedCache.d.ts +10 -7
- package/dist/ScopedCache.d.ts.map +1 -1
- package/dist/ScopedCache.js +9 -5
- package/dist/ScopedCache.js.map +1 -1
- package/dist/SemVer.d.ts +1196 -0
- package/dist/SemVer.d.ts.map +1 -0
- package/dist/SemVer.js +756 -0
- package/dist/SemVer.js.map +1 -0
- package/dist/SemVerRange.d.ts +559 -0
- package/dist/SemVerRange.d.ts.map +1 -0
- package/dist/SemVerRange.js +551 -0
- package/dist/SemVerRange.js.map +1 -0
- package/dist/Semaphore.d.ts.map +1 -1
- package/dist/Semaphore.js +54 -35
- package/dist/Semaphore.js.map +1 -1
- package/dist/Sink.d.ts.map +1 -1
- package/dist/Sink.js +13 -4
- package/dist/Sink.js.map +1 -1
- package/dist/Stream.d.ts +235 -8
- package/dist/Stream.d.ts.map +1 -1
- package/dist/Stream.js +167 -70
- package/dist/Stream.js.map +1 -1
- package/dist/String.d.ts +7 -2
- package/dist/String.d.ts.map +1 -1
- package/dist/String.js +11 -6
- package/dist/String.js.map +1 -1
- package/dist/TextDiff.d.ts +399 -0
- package/dist/TextDiff.d.ts.map +1 -0
- package/dist/TextDiff.js +634 -0
- package/dist/TextDiff.js.map +1 -0
- package/dist/Tracer.d.ts +11 -1
- package/dist/Tracer.d.ts.map +1 -1
- package/dist/Tracer.js +6 -1
- package/dist/Tracer.js.map +1 -1
- package/dist/TxHashMap.d.ts.map +1 -1
- package/dist/TxHashMap.js.map +1 -1
- package/dist/TxHashSet.d.ts.map +1 -1
- package/dist/TxHashSet.js.map +1 -1
- package/dist/ai/AiError.d.ts +68 -4
- package/dist/ai/AiError.d.ts.map +1 -1
- package/dist/ai/AiError.js +50 -2
- package/dist/ai/AiError.js.map +1 -1
- package/dist/ai/Chat.d.ts +1 -2
- package/dist/ai/Chat.d.ts.map +1 -1
- package/dist/ai/Chat.js +6 -3
- package/dist/ai/Chat.js.map +1 -1
- package/dist/ai/Decision.d.ts +46 -1
- package/dist/ai/Decision.d.ts.map +1 -1
- package/dist/ai/Decision.js.map +1 -1
- package/dist/ai/DecisionModel.d.ts +129 -11
- package/dist/ai/DecisionModel.d.ts.map +1 -1
- package/dist/ai/DecisionModel.js +182 -94
- package/dist/ai/DecisionModel.js.map +1 -1
- package/dist/ai/EmbeddingModel.d.ts +10 -0
- package/dist/ai/EmbeddingModel.d.ts.map +1 -1
- package/dist/ai/EmbeddingModel.js +21 -7
- package/dist/ai/EmbeddingModel.js.map +1 -1
- package/dist/ai/LanguageModel.d.ts.map +1 -1
- package/dist/ai/LanguageModel.js +9 -0
- package/dist/ai/LanguageModel.js.map +1 -1
- package/dist/ai/McpClient.d.ts +289 -0
- package/dist/ai/McpClient.d.ts.map +1 -0
- package/dist/ai/McpClient.js +819 -0
- package/dist/ai/McpClient.js.map +1 -0
- package/dist/ai/McpClientError.d.ts +254 -0
- package/dist/ai/McpClientError.d.ts.map +1 -0
- package/dist/ai/McpClientError.js +260 -0
- package/dist/ai/McpClientError.js.map +1 -0
- package/dist/ai/McpProtocol.d.ts +2 -2
- package/dist/ai/McpProtocol.d.ts.map +1 -1
- package/dist/ai/McpSchema.d.ts +258 -125
- package/dist/ai/McpSchema.d.ts.map +1 -1
- package/dist/ai/McpSchema.js +94 -24
- package/dist/ai/McpSchema.js.map +1 -1
- package/dist/ai/McpServer.d.ts.map +1 -1
- package/dist/ai/McpServer.js +46 -37
- package/dist/ai/McpServer.js.map +1 -1
- package/dist/ai/Prompt.d.ts +74 -20
- package/dist/ai/Prompt.d.ts.map +1 -1
- package/dist/ai/Prompt.js +61 -1
- package/dist/ai/Prompt.js.map +1 -1
- package/dist/ai/Response.d.ts +160 -3
- package/dist/ai/Response.d.ts.map +1 -1
- package/dist/ai/Response.js +39 -37
- package/dist/ai/Response.js.map +1 -1
- package/dist/ai/Tool.d.ts +36 -4
- package/dist/ai/Tool.d.ts.map +1 -1
- package/dist/ai/Tool.js +5 -2
- package/dist/ai/Tool.js.map +1 -1
- package/dist/ai/Toolkit.d.ts +48 -1
- package/dist/ai/Toolkit.d.ts.map +1 -1
- package/dist/ai/Toolkit.js +73 -13
- package/dist/ai/Toolkit.js.map +1 -1
- package/dist/ai/index.d.ts +10 -0
- package/dist/ai/index.d.ts.map +1 -1
- package/dist/ai/index.js +10 -0
- package/dist/ai/index.js.map +1 -1
- package/dist/ai/internal/mcpCore.js.map +1 -1
- package/dist/ai/internal/mcpProtocol/v2024_11_05.js +1 -1
- package/dist/ai/internal/mcpProtocol/v2024_11_05.js.map +1 -1
- package/dist/ai/internal/mcpProtocol/v2025_03_26.js +1 -1
- package/dist/ai/internal/mcpProtocol/v2025_03_26.js.map +1 -1
- package/dist/ai/internal/mcpProtocol/v2025_06_18.js +2 -2
- package/dist/ai/internal/mcpProtocol/v2025_06_18.js.map +1 -1
- package/dist/ai/internal/mcpProtocol/v2025_11_25.js +2 -2
- package/dist/ai/internal/mcpProtocol/v2025_11_25.js.map +1 -1
- package/dist/ai/internal/mcpProtocol/v2026_07_28.js +4 -7
- package/dist/ai/internal/mcpProtocol/v2026_07_28.js.map +1 -1
- package/dist/ai/internal/mcpProtocol.js +16 -2
- package/dist/ai/internal/mcpProtocol.js.map +1 -1
- package/dist/ai/internal/mcpRuntime.js +3 -4
- package/dist/ai/internal/mcpRuntime.js.map +1 -1
- package/dist/ai/internal/mcpSchema/v2024_11_05.js +19 -13
- package/dist/ai/internal/mcpSchema/v2024_11_05.js.map +1 -1
- package/dist/ai/internal/mcpSchema/v2025_03_26.js +3 -2
- package/dist/ai/internal/mcpSchema/v2025_03_26.js.map +1 -1
- package/dist/ai/internal/mcpSchema/v2025_06_18.js +7 -7
- package/dist/ai/internal/mcpSchema/v2025_06_18.js.map +1 -1
- package/dist/ai/internal/mcpSchema/v2025_11_25.js +8 -8
- package/dist/ai/internal/mcpSchema/v2025_11_25.js.map +1 -1
- package/dist/ai/internal/mcpSchema/v2026_07_28.js +43 -42
- package/dist/ai/internal/mcpSchema/v2026_07_28.js.map +1 -1
- package/dist/cli/Argument.d.ts +15 -0
- package/dist/cli/Argument.d.ts.map +1 -1
- package/dist/cli/Argument.js +5 -0
- package/dist/cli/Argument.js.map +1 -1
- package/dist/cli/CliError.d.ts +120 -2
- package/dist/cli/CliError.d.ts.map +1 -1
- package/dist/cli/CliError.js +106 -5
- package/dist/cli/CliError.js.map +1 -1
- package/dist/cli/CliOutput.d.ts +155 -6
- package/dist/cli/CliOutput.d.ts.map +1 -1
- package/dist/cli/CliOutput.js +62 -6
- package/dist/cli/CliOutput.js.map +1 -1
- package/dist/cli/Command.d.ts +310 -18
- package/dist/cli/Command.d.ts.map +1 -1
- package/dist/cli/Command.js +164 -33
- package/dist/cli/Command.js.map +1 -1
- package/dist/cli/Completions.d.ts +63 -0
- package/dist/cli/Completions.d.ts.map +1 -1
- package/dist/cli/Completions.js +49 -9
- package/dist/cli/Completions.js.map +1 -1
- package/dist/cli/Flag.d.ts +130 -0
- package/dist/cli/Flag.d.ts.map +1 -1
- package/dist/cli/Flag.js +61 -0
- package/dist/cli/Flag.js.map +1 -1
- package/dist/cli/GlobalFlag.d.ts.map +1 -1
- package/dist/cli/GlobalFlag.js +14 -6
- package/dist/cli/GlobalFlag.js.map +1 -1
- package/dist/cli/Param.d.ts +116 -0
- package/dist/cli/Param.d.ts.map +1 -1
- package/dist/cli/Param.js +77 -2
- package/dist/cli/Param.js.map +1 -1
- package/dist/cli/TerminalCapabilities.d.ts +85 -0
- package/dist/cli/TerminalCapabilities.d.ts.map +1 -0
- package/dist/cli/TerminalCapabilities.js +124 -0
- package/dist/cli/TerminalCapabilities.js.map +1 -0
- package/dist/cli/index.d.ts +5 -0
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +5 -0
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/internal/command.d.ts +2 -1
- package/dist/cli/internal/command.d.ts.map +1 -1
- package/dist/cli/internal/command.js +5 -2
- package/dist/cli/internal/command.js.map +1 -1
- package/dist/cli/internal/completions/bash.js +77 -30
- package/dist/cli/internal/completions/bash.js.map +1 -1
- package/dist/cli/internal/completions/descriptor.js +9 -1
- package/dist/cli/internal/completions/descriptor.js.map +1 -1
- package/dist/cli/internal/completions/fish.js +10 -8
- package/dist/cli/internal/completions/fish.js.map +1 -1
- package/dist/cli/internal/completions/powershell.js +18 -9
- package/dist/cli/internal/completions/powershell.js.map +1 -1
- package/dist/cli/internal/completions/zsh.js +8 -5
- package/dist/cli/internal/completions/zsh.js.map +1 -1
- package/dist/cli/internal/formatter.d.ts +2 -0
- package/dist/cli/internal/formatter.d.ts.map +1 -0
- package/dist/cli/internal/formatter.js +15 -0
- package/dist/cli/internal/formatter.js.map +1 -0
- package/dist/cli/internal/lexer.js +24 -10
- package/dist/cli/internal/lexer.js.map +1 -1
- package/dist/cli/internal/parser.js +24 -12
- package/dist/cli/internal/parser.js.map +1 -1
- package/dist/cluster/ClusterCron.d.ts +29 -1
- package/dist/cluster/ClusterCron.d.ts.map +1 -1
- package/dist/cluster/ClusterCron.js +64 -32
- package/dist/cluster/ClusterCron.js.map +1 -1
- package/dist/cluster/ClusterMetrics.d.ts +143 -7
- package/dist/cluster/ClusterMetrics.d.ts.map +1 -1
- package/dist/cluster/ClusterMetrics.js +151 -7
- package/dist/cluster/ClusterMetrics.js.map +1 -1
- package/dist/cluster/ClusterWorkflowEngine.d.ts +1 -1
- package/dist/cluster/ClusterWorkflowEngine.d.ts.map +1 -1
- package/dist/cluster/ClusterWorkflowEngine.js +82 -21
- package/dist/cluster/ClusterWorkflowEngine.js.map +1 -1
- package/dist/cluster/Entity.d.ts +2 -0
- package/dist/cluster/Entity.d.ts.map +1 -1
- package/dist/cluster/Entity.js.map +1 -1
- package/dist/cluster/MessageStorage.d.ts +44 -45
- package/dist/cluster/MessageStorage.d.ts.map +1 -1
- package/dist/cluster/MessageStorage.js +6 -7
- package/dist/cluster/MessageStorage.js.map +1 -1
- package/dist/cluster/Runners.d.ts.map +1 -1
- package/dist/cluster/Runners.js +54 -15
- package/dist/cluster/Runners.js.map +1 -1
- package/dist/cluster/Sharding.d.ts +1 -0
- package/dist/cluster/Sharding.d.ts.map +1 -1
- package/dist/cluster/Sharding.js +155 -52
- package/dist/cluster/Sharding.js.map +1 -1
- package/dist/cluster/ShardingConfig.d.ts +30 -0
- package/dist/cluster/ShardingConfig.d.ts.map +1 -1
- package/dist/cluster/ShardingConfig.js +4 -0
- package/dist/cluster/ShardingConfig.js.map +1 -1
- package/dist/cluster/Snowflake.d.ts.map +1 -1
- package/dist/cluster/Snowflake.js +3 -7
- package/dist/cluster/Snowflake.js.map +1 -1
- package/dist/cluster/SqlMessageStorage.d.ts.map +1 -1
- package/dist/cluster/SqlMessageStorage.js +40 -50
- package/dist/cluster/SqlMessageStorage.js.map +1 -1
- package/dist/cluster/SqlRunnerStorage.d.ts +2 -2
- package/dist/cluster/SqlRunnerStorage.d.ts.map +1 -1
- package/dist/cluster/SqlRunnerStorage.js +97 -43
- package/dist/cluster/SqlRunnerStorage.js.map +1 -1
- package/dist/cluster/internal/entityManager.js +119 -28
- package/dist/cluster/internal/entityManager.js.map +1 -1
- package/dist/devtools/DevTools.d.ts +3 -2
- package/dist/devtools/DevTools.d.ts.map +1 -1
- package/dist/devtools/DevTools.js +3 -2
- package/dist/devtools/DevTools.js.map +1 -1
- package/dist/devtools/DevToolsClient.d.ts +11 -0
- package/dist/devtools/DevToolsClient.d.ts.map +1 -1
- package/dist/devtools/DevToolsClient.js +33 -4
- package/dist/devtools/DevToolsClient.js.map +1 -1
- package/dist/encoding/Base64.js +36 -0
- package/dist/encoding/Base64.js.map +1 -1
- package/dist/encoding/Base64Url.d.ts +29 -0
- package/dist/encoding/Base64Url.d.ts.map +1 -1
- package/dist/encoding/Base64Url.js +29 -0
- package/dist/encoding/Base64Url.js.map +1 -1
- package/dist/encoding/Ini.d.ts.map +1 -1
- package/dist/encoding/Ini.js +3 -0
- package/dist/encoding/Ini.js.map +1 -1
- package/dist/encoding/JsonArray.d.ts +270 -0
- package/dist/encoding/JsonArray.d.ts.map +1 -0
- package/dist/encoding/JsonArray.js +691 -0
- package/dist/encoding/JsonArray.js.map +1 -0
- package/dist/encoding/Ndjson.d.ts +43 -4
- package/dist/encoding/Ndjson.d.ts.map +1 -1
- package/dist/encoding/Ndjson.js +169 -18
- package/dist/encoding/Ndjson.js.map +1 -1
- package/dist/encoding/SchemaBinary.d.ts +9 -1
- package/dist/encoding/SchemaBinary.d.ts.map +1 -1
- package/dist/encoding/SchemaBinary.js +12 -19
- package/dist/encoding/SchemaBinary.js.map +1 -1
- package/dist/encoding/Sse.d.ts.map +1 -1
- package/dist/encoding/Sse.js +3 -3
- package/dist/encoding/Sse.js.map +1 -1
- package/dist/encoding/Tar.d.ts +309 -0
- package/dist/encoding/Tar.d.ts.map +1 -0
- package/dist/encoding/Tar.js +1182 -0
- package/dist/encoding/Tar.js.map +1 -0
- package/dist/encoding/Toml.d.ts.map +1 -1
- package/dist/encoding/Toml.js +24 -19
- package/dist/encoding/Toml.js.map +1 -1
- package/dist/encoding/Xml.d.ts +464 -0
- package/dist/encoding/Xml.d.ts.map +1 -0
- package/dist/encoding/Xml.js +1619 -0
- package/dist/encoding/Xml.js.map +1 -0
- package/dist/encoding/Yaml.d.ts +6 -2
- package/dist/encoding/Yaml.d.ts.map +1 -1
- package/dist/encoding/Yaml.js +97 -34
- package/dist/encoding/Yaml.js.map +1 -1
- package/dist/encoding/Zip.d.ts +413 -0
- package/dist/encoding/Zip.d.ts.map +1 -0
- package/dist/encoding/Zip.js +1255 -0
- package/dist/encoding/Zip.js.map +1 -0
- package/dist/encoding/index.d.ts +20 -0
- package/dist/encoding/index.d.ts.map +1 -1
- package/dist/encoding/index.js +20 -0
- package/dist/encoding/index.js.map +1 -1
- package/dist/eventlog/EventJournal.d.ts +90 -5
- package/dist/eventlog/EventJournal.d.ts.map +1 -1
- package/dist/eventlog/EventJournal.js +488 -228
- package/dist/eventlog/EventJournal.js.map +1 -1
- package/dist/eventlog/EventLog.d.ts +180 -12
- package/dist/eventlog/EventLog.d.ts.map +1 -1
- package/dist/eventlog/EventLog.js +394 -146
- package/dist/eventlog/EventLog.js.map +1 -1
- package/dist/eventlog/EventLogEncryption.d.ts +36 -30
- package/dist/eventlog/EventLogEncryption.d.ts.map +1 -1
- package/dist/eventlog/EventLogEncryption.js +97 -38
- package/dist/eventlog/EventLogEncryption.js.map +1 -1
- package/dist/eventlog/EventLogMessage.d.ts +74 -34
- package/dist/eventlog/EventLogMessage.d.ts.map +1 -1
- package/dist/eventlog/EventLogMessage.js +45 -11
- package/dist/eventlog/EventLogMessage.js.map +1 -1
- package/dist/eventlog/EventLogRemote.d.ts +45 -8
- package/dist/eventlog/EventLogRemote.d.ts.map +1 -1
- package/dist/eventlog/EventLogRemote.js +51 -14
- package/dist/eventlog/EventLogRemote.js.map +1 -1
- package/dist/eventlog/EventLogServer.d.ts +46 -3
- package/dist/eventlog/EventLogServer.d.ts.map +1 -1
- package/dist/eventlog/EventLogServer.js +119 -19
- package/dist/eventlog/EventLogServer.js.map +1 -1
- package/dist/eventlog/EventLogServerEncrypted.d.ts +23 -33
- package/dist/eventlog/EventLogServerEncrypted.d.ts.map +1 -1
- package/dist/eventlog/EventLogServerEncrypted.js +97 -70
- package/dist/eventlog/EventLogServerEncrypted.js.map +1 -1
- package/dist/eventlog/EventLogServerUnencrypted.d.ts +39 -5
- package/dist/eventlog/EventLogServerUnencrypted.d.ts.map +1 -1
- package/dist/eventlog/EventLogServerUnencrypted.js +151 -69
- package/dist/eventlog/EventLogServerUnencrypted.js.map +1 -1
- package/dist/eventlog/EventRow.d.ts +288 -0
- package/dist/eventlog/EventRow.d.ts.map +1 -0
- package/dist/eventlog/EventRow.js +435 -0
- package/dist/eventlog/EventRow.js.map +1 -0
- package/dist/eventlog/SqlEventJournal.d.ts +18 -18
- package/dist/eventlog/SqlEventJournal.d.ts.map +1 -1
- package/dist/eventlog/SqlEventJournal.js +417 -169
- package/dist/eventlog/SqlEventJournal.js.map +1 -1
- package/dist/eventlog/SqlEventLogServerEncrypted.d.ts +10 -18
- package/dist/eventlog/SqlEventLogServerEncrypted.d.ts.map +1 -1
- package/dist/eventlog/SqlEventLogServerEncrypted.js +179 -69
- package/dist/eventlog/SqlEventLogServerEncrypted.js.map +1 -1
- package/dist/eventlog/SqlEventLogServerUnencrypted.d.ts +23 -3
- package/dist/eventlog/SqlEventLogServerUnencrypted.d.ts.map +1 -1
- package/dist/eventlog/SqlEventLogServerUnencrypted.js +102 -51
- package/dist/eventlog/SqlEventLogServerUnencrypted.js.map +1 -1
- package/dist/eventlog/index.d.ts +5 -0
- package/dist/eventlog/index.d.ts.map +1 -1
- package/dist/eventlog/index.js +5 -0
- package/dist/eventlog/index.js.map +1 -1
- package/dist/eventlog/internal/conflicts.d.ts +46 -0
- package/dist/eventlog/internal/conflicts.d.ts.map +1 -0
- package/dist/eventlog/internal/conflicts.js +89 -0
- package/dist/eventlog/internal/conflicts.js.map +1 -0
- package/dist/graphql/GraphQLClientError.d.ts +2 -2
- package/dist/graphql/GraphQLClientError.d.ts.map +1 -1
- package/dist/graphql/GraphQLClientError.js +4 -18
- package/dist/graphql/GraphQLClientError.js.map +1 -1
- package/dist/graphql/GraphQLProtocol.d.ts +12 -9
- package/dist/graphql/GraphQLProtocol.d.ts.map +1 -1
- package/dist/graphql/GraphQLProtocol.js +4 -3
- package/dist/graphql/GraphQLProtocol.js.map +1 -1
- package/dist/graphql/GraphQLResolver.d.ts +2 -0
- package/dist/graphql/GraphQLResolver.d.ts.map +1 -1
- package/dist/graphql/GraphQLResolver.js +74 -32
- package/dist/graphql/GraphQLResolver.js.map +1 -1
- package/dist/http/Cookies.d.ts.map +1 -1
- package/dist/http/Cookies.js +10 -9
- package/dist/http/Cookies.js.map +1 -1
- package/dist/http/FetchHttpClient.d.ts +8 -1
- package/dist/http/FetchHttpClient.d.ts.map +1 -1
- package/dist/http/FetchHttpClient.js +51 -4
- package/dist/http/FetchHttpClient.js.map +1 -1
- package/dist/http/FindMyWay/internal/router.js +10 -0
- package/dist/http/FindMyWay/internal/router.js.map +1 -1
- package/dist/http/Headers.d.ts +227 -0
- package/dist/http/Headers.d.ts.map +1 -1
- package/dist/http/Headers.js +261 -0
- package/dist/http/Headers.js.map +1 -1
- package/dist/http/HttpClient.d.ts +516 -0
- package/dist/http/HttpClient.d.ts.map +1 -1
- package/dist/http/HttpClient.js +286 -23
- package/dist/http/HttpClient.js.map +1 -1
- package/dist/http/HttpClientError.d.ts +8 -1
- package/dist/http/HttpClientError.d.ts.map +1 -1
- package/dist/http/HttpClientError.js +37 -1
- package/dist/http/HttpClientError.js.map +1 -1
- package/dist/http/HttpClientRequest.d.ts +127 -3
- package/dist/http/HttpClientRequest.d.ts.map +1 -1
- package/dist/http/HttpClientRequest.js +45 -3
- package/dist/http/HttpClientRequest.js.map +1 -1
- package/dist/http/HttpClientResponse.d.ts +53 -0
- package/dist/http/HttpClientResponse.d.ts.map +1 -1
- package/dist/http/HttpClientResponse.js +47 -0
- package/dist/http/HttpClientResponse.js.map +1 -1
- package/dist/http/HttpEffect.d.ts +6 -2
- package/dist/http/HttpEffect.d.ts.map +1 -1
- package/dist/http/HttpEffect.js +21 -17
- package/dist/http/HttpEffect.js.map +1 -1
- package/dist/http/HttpIncomingMessage.d.ts +2 -1
- package/dist/http/HttpIncomingMessage.d.ts.map +1 -1
- package/dist/http/HttpIncomingMessage.js +3 -23
- package/dist/http/HttpIncomingMessage.js.map +1 -1
- package/dist/http/HttpMiddleware.d.ts +119 -2
- package/dist/http/HttpMiddleware.d.ts.map +1 -1
- package/dist/http/HttpMiddleware.js +173 -29
- package/dist/http/HttpMiddleware.js.map +1 -1
- package/dist/http/HttpRouter.d.ts.map +1 -1
- package/dist/http/HttpRouter.js +9 -3
- package/dist/http/HttpRouter.js.map +1 -1
- package/dist/http/HttpServerError.d.ts +5 -2
- package/dist/http/HttpServerError.d.ts.map +1 -1
- package/dist/http/HttpServerError.js +7 -5
- package/dist/http/HttpServerError.js.map +1 -1
- package/dist/http/HttpServerRequest.d.ts +30 -5
- package/dist/http/HttpServerRequest.d.ts.map +1 -1
- package/dist/http/HttpServerRequest.js +109 -20
- package/dist/http/HttpServerRequest.js.map +1 -1
- package/dist/http/HttpServerResponse.d.ts +17 -8
- package/dist/http/HttpServerResponse.d.ts.map +1 -1
- package/dist/http/HttpServerResponse.js +37 -21
- package/dist/http/HttpServerResponse.js.map +1 -1
- package/dist/http/HttpStaticServer.d.ts +0 -12
- package/dist/http/HttpStaticServer.d.ts.map +1 -1
- package/dist/http/HttpStaticServer.js +65 -24
- package/dist/http/HttpStaticServer.js.map +1 -1
- package/dist/http/MultipartParser/internal/contentType.d.ts +15 -1
- package/dist/http/MultipartParser/internal/contentType.d.ts.map +1 -1
- package/dist/http/MultipartParser/internal/contentType.js +89 -7
- package/dist/http/MultipartParser/internal/contentType.js.map +1 -1
- package/dist/http/MultipartParser/internal/headers.d.ts.map +1 -1
- package/dist/http/MultipartParser/internal/headers.js +4 -12
- package/dist/http/MultipartParser/internal/headers.js.map +1 -1
- package/dist/http/MultipartParser/internal/multipart.d.ts.map +1 -1
- package/dist/http/MultipartParser/internal/multipart.js +6 -27
- package/dist/http/MultipartParser/internal/multipart.js.map +1 -1
- package/dist/http/Url.d.ts.map +1 -1
- package/dist/http/Url.js +6 -1
- package/dist/http/Url.js.map +1 -1
- package/dist/http/UrlParams.d.ts +3 -1
- package/dist/http/UrlParams.d.ts.map +1 -1
- package/dist/http/UrlParams.js +4 -2
- package/dist/http/UrlParams.js.map +1 -1
- package/dist/http/internal/compression.js +4 -5
- package/dist/http/internal/compression.js.map +1 -1
- package/dist/http/internal/decompression.js +20 -11
- package/dist/http/internal/decompression.js.map +1 -1
- package/dist/http/internal/httpBody.js +8 -1
- package/dist/http/internal/httpBody.js.map +1 -1
- package/dist/http/internal/lazyStream.d.ts +2 -0
- package/dist/http/internal/lazyStream.d.ts.map +1 -0
- package/dist/http/internal/lazyStream.js +18 -0
- package/dist/http/internal/lazyStream.js.map +1 -0
- package/dist/http/internal/requestState.d.ts +2 -0
- package/dist/http/internal/requestState.d.ts.map +1 -0
- package/dist/http/internal/requestState.js +28 -0
- package/dist/http/internal/requestState.js.map +1 -0
- package/dist/http/internal/urlParams.js +25 -0
- package/dist/http/internal/urlParams.js.map +1 -1
- package/dist/http/internal/webResponse.d.ts +2 -0
- package/dist/http/internal/webResponse.d.ts.map +1 -0
- package/dist/http/internal/webResponse.js +12 -0
- package/dist/http/internal/webResponse.js.map +1 -0
- package/dist/http-api/HttpApi.d.ts +3 -6
- package/dist/http-api/HttpApi.d.ts.map +1 -1
- package/dist/http-api/HttpApi.js +4 -7
- package/dist/http-api/HttpApi.js.map +1 -1
- package/dist/http-api/HttpApiBuilder.d.ts.map +1 -1
- package/dist/http-api/HttpApiBuilder.js +142 -23
- package/dist/http-api/HttpApiBuilder.js.map +1 -1
- package/dist/http-api/HttpApiClient.d.ts +99 -4
- package/dist/http-api/HttpApiClient.d.ts.map +1 -1
- package/dist/http-api/HttpApiClient.js +218 -60
- package/dist/http-api/HttpApiClient.js.map +1 -1
- package/dist/http-api/HttpApiEndpoint.d.ts +72 -29
- package/dist/http-api/HttpApiEndpoint.d.ts.map +1 -1
- package/dist/http-api/HttpApiEndpoint.js +140 -14
- package/dist/http-api/HttpApiEndpoint.js.map +1 -1
- package/dist/http-api/HttpApiError.d.ts +58 -0
- package/dist/http-api/HttpApiError.d.ts.map +1 -1
- package/dist/http-api/HttpApiError.js +38 -12
- package/dist/http-api/HttpApiError.js.map +1 -1
- package/dist/http-api/HttpApiScalar.d.ts +2 -1
- package/dist/http-api/HttpApiScalar.d.ts.map +1 -1
- package/dist/http-api/HttpApiScalar.js +6 -3
- package/dist/http-api/HttpApiScalar.js.map +1 -1
- package/dist/http-api/HttpApiSchema.d.ts +242 -13
- package/dist/http-api/HttpApiSchema.d.ts.map +1 -1
- package/dist/http-api/HttpApiSchema.js +149 -5
- package/dist/http-api/HttpApiSchema.js.map +1 -1
- package/dist/http-api/HttpApiSwagger.d.ts +5 -0
- package/dist/http-api/HttpApiSwagger.d.ts.map +1 -1
- package/dist/http-api/HttpApiSwagger.js +14 -4
- package/dist/http-api/HttpApiSwagger.js.map +1 -1
- package/dist/http-api/HttpApiTest.d.ts +13 -2
- package/dist/http-api/HttpApiTest.d.ts.map +1 -1
- package/dist/http-api/HttpApiTest.js +33 -11
- package/dist/http-api/HttpApiTest.js.map +1 -1
- package/dist/http-api/OpenApi.d.ts +17 -3
- package/dist/http-api/OpenApi.d.ts.map +1 -1
- package/dist/http-api/OpenApi.js +81 -47
- package/dist/http-api/OpenApi.js.map +1 -1
- package/dist/http-api/internal/path.js +35 -10
- package/dist/http-api/internal/path.js.map +1 -1
- package/dist/http-api/internal/toCodecHttpProperties.d.ts +2 -0
- package/dist/http-api/internal/toCodecHttpProperties.d.ts.map +1 -0
- package/dist/http-api/internal/toCodecHttpProperties.js +38 -0
- package/dist/http-api/internal/toCodecHttpProperties.js.map +1 -0
- package/dist/index.d.ts +20 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +20 -0
- package/dist/index.js.map +1 -1
- package/dist/internal/arbitrary/runner.d.ts.map +1 -1
- package/dist/internal/arbitrary/runner.js +120 -44
- package/dist/internal/arbitrary/runner.js.map +1 -1
- package/dist/internal/core.js +3 -1
- package/dist/internal/core.js.map +1 -1
- package/dist/internal/dateTime.js +19 -7
- package/dist/internal/dateTime.js.map +1 -1
- package/dist/internal/effect.js +106 -87
- package/dist/internal/effect.js.map +1 -1
- package/dist/internal/equal.js +14 -0
- package/dist/internal/equal.js.map +1 -1
- package/dist/internal/hashMap.js +2 -2
- package/dist/internal/hashMap.js.map +1 -1
- package/dist/internal/hydration.d.ts +2 -0
- package/dist/internal/hydration.d.ts.map +1 -0
- package/dist/internal/hydration.js +15 -0
- package/dist/internal/hydration.js.map +1 -0
- package/dist/internal/inflate.d.ts +2 -0
- package/dist/internal/inflate.d.ts.map +1 -0
- package/dist/internal/inflate.js +680 -0
- package/dist/internal/inflate.js.map +1 -0
- package/dist/internal/jsonSchema.d.ts +2 -0
- package/dist/internal/jsonSchema.d.ts.map +1 -0
- package/dist/internal/jsonSchema.js +28 -0
- package/dist/internal/jsonSchema.js.map +1 -0
- package/dist/internal/matcher.js +1 -1
- package/dist/internal/matcher.js.map +1 -1
- package/dist/internal/record.js +6 -0
- package/dist/internal/record.js.map +1 -1
- package/dist/internal/request.js +20 -7
- package/dist/internal/request.js.map +1 -1
- package/dist/internal/schedule.js +17 -22
- package/dist/internal/schedule.js.map +1 -1
- package/dist/internal/schema/compilerRegistry.js +4 -1
- package/dist/internal/schema/compilerRegistry.js.map +1 -1
- package/dist/internal/schema/content.d.ts +2 -0
- package/dist/internal/schema/content.d.ts.map +1 -0
- package/dist/internal/schema/content.js +13 -0
- package/dist/internal/schema/content.js.map +1 -0
- package/dist/internal/schema/fromJsonSchemaDocument.js +253 -255
- package/dist/internal/schema/fromJsonSchemaDocument.js.map +1 -1
- package/dist/internal/schema/fromRepresentation.js +2 -1
- package/dist/internal/schema/fromRepresentation.js.map +1 -1
- package/dist/internal/schema/interpreter.js +51 -36
- package/dist/internal/schema/interpreter.js.map +1 -1
- package/dist/internal/schema/standardSchema.js +42 -35
- package/dist/internal/schema/standardSchema.js.map +1 -1
- package/dist/internal/schema/toCodeDocument.js +10 -5
- package/dist/internal/schema/toCodeDocument.js.map +1 -1
- package/dist/internal/schema/toCodec.js +99 -17
- package/dist/internal/schema/toCodec.js.map +1 -1
- package/dist/internal/schema/toFormatter.js +5 -5
- package/dist/internal/schema/toFormatter.js.map +1 -1
- package/dist/internal/schema/toJsonSchemaDocument.js +257 -170
- package/dist/internal/schema/toJsonSchemaDocument.js.map +1 -1
- package/dist/internal/schema/toRepresentation.js +107 -129
- package/dist/internal/schema/toRepresentation.js.map +1 -1
- package/dist/internal/sql.d.ts +2 -0
- package/dist/internal/sql.d.ts.map +1 -0
- package/dist/internal/sql.js +13 -0
- package/dist/internal/sql.js.map +1 -0
- package/dist/internal/trie.js +1 -3
- package/dist/internal/trie.js.map +1 -1
- package/dist/internal/uuid.js +7 -3
- package/dist/internal/uuid.js.map +1 -1
- package/dist/internal/version.js +1 -1
- package/dist/net/NetAddress.d.ts.map +1 -1
- package/dist/net/NetAddress.js +2 -8
- package/dist/net/NetAddress.js.map +1 -1
- package/dist/observability/OtlpExporter.d.ts.map +1 -1
- package/dist/observability/OtlpExporter.js +5 -12
- package/dist/observability/OtlpExporter.js.map +1 -1
- package/dist/observability/OtlpMetrics.d.ts.map +1 -1
- package/dist/observability/OtlpMetrics.js +5 -3
- package/dist/observability/OtlpMetrics.js.map +1 -1
- package/dist/observability/OtlpProxy.d.ts +154 -0
- package/dist/observability/OtlpProxy.d.ts.map +1 -0
- package/dist/observability/OtlpProxy.js +235 -0
- package/dist/observability/OtlpProxy.js.map +1 -0
- package/dist/observability/OtlpResource.d.ts +3 -1
- package/dist/observability/OtlpResource.d.ts.map +1 -1
- package/dist/observability/OtlpResource.js +11 -4
- package/dist/observability/OtlpResource.js.map +1 -1
- package/dist/observability/OtlpSerialization.d.ts +5 -0
- package/dist/observability/OtlpSerialization.d.ts.map +1 -1
- package/dist/observability/OtlpSerialization.js +14 -3
- package/dist/observability/OtlpSerialization.js.map +1 -1
- package/dist/observability/OtlpTracer.d.ts.map +1 -1
- package/dist/observability/OtlpTracer.js +4 -0
- package/dist/observability/OtlpTracer.js.map +1 -1
- package/dist/observability/index.d.ts +5 -0
- package/dist/observability/index.d.ts.map +1 -1
- package/dist/observability/index.js +5 -0
- package/dist/observability/index.js.map +1 -1
- package/dist/observability/internal/protobuf.d.ts +0 -9
- package/dist/observability/internal/protobuf.d.ts.map +1 -1
- package/dist/observability/internal/protobuf.js +2 -10
- package/dist/observability/internal/protobuf.js.map +1 -1
- package/dist/persistence/CircuitBreaker.d.ts +897 -0
- package/dist/persistence/CircuitBreaker.d.ts.map +1 -0
- package/dist/persistence/CircuitBreaker.js +1165 -0
- package/dist/persistence/CircuitBreaker.js.map +1 -0
- package/dist/persistence/PersistedCache.d.ts.map +1 -1
- package/dist/persistence/PersistedCache.js +1 -1
- package/dist/persistence/PersistedCache.js.map +1 -1
- package/dist/persistence/PersistedQueue.d.ts +6 -2
- package/dist/persistence/PersistedQueue.d.ts.map +1 -1
- package/dist/persistence/PersistedQueue.js +162 -84
- package/dist/persistence/PersistedQueue.js.map +1 -1
- package/dist/persistence/Persistence.d.ts +28 -0
- package/dist/persistence/Persistence.d.ts.map +1 -1
- package/dist/persistence/Persistence.js +36 -8
- package/dist/persistence/Persistence.js.map +1 -1
- package/dist/persistence/RateLimiter.d.ts.map +1 -1
- package/dist/persistence/RateLimiter.js +8 -12
- package/dist/persistence/RateLimiter.js.map +1 -1
- package/dist/persistence/Redis.d.ts +78 -2
- package/dist/persistence/Redis.d.ts.map +1 -1
- package/dist/persistence/Redis.js +62 -7
- package/dist/persistence/Redis.js.map +1 -1
- package/dist/persistence/UserDirectories.d.ts +129 -0
- package/dist/persistence/UserDirectories.d.ts.map +1 -0
- package/dist/persistence/UserDirectories.js +178 -0
- package/dist/persistence/UserDirectories.js.map +1 -0
- package/dist/persistence/index.d.ts +10 -0
- package/dist/persistence/index.d.ts.map +1 -1
- package/dist/persistence/index.js +10 -0
- package/dist/persistence/index.js.map +1 -1
- package/dist/process/ChildProcess.d.ts +32 -5
- package/dist/process/ChildProcess.d.ts.map +1 -1
- package/dist/process/ChildProcess.js.map +1 -1
- package/dist/process/ChildProcessSpawner.d.ts +30 -0
- package/dist/process/ChildProcessSpawner.d.ts.map +1 -1
- package/dist/process/ChildProcessSpawner.js +5 -2
- package/dist/process/ChildProcessSpawner.js.map +1 -1
- package/dist/reactivity/AsyncResult.d.ts +1 -1
- package/dist/reactivity/AsyncResult.d.ts.map +1 -1
- package/dist/reactivity/AsyncResult.js +1 -1
- package/dist/reactivity/AsyncResult.js.map +1 -1
- package/dist/reactivity/Atom.d.ts +69 -30
- package/dist/reactivity/Atom.d.ts.map +1 -1
- package/dist/reactivity/Atom.js +40 -15
- package/dist/reactivity/Atom.js.map +1 -1
- package/dist/reactivity/AtomHttpApi.d.ts +5 -5
- package/dist/reactivity/AtomHttpApi.d.ts.map +1 -1
- package/dist/reactivity/AtomHttpApi.js +1 -1
- package/dist/reactivity/AtomHttpApi.js.map +1 -1
- package/dist/reactivity/AtomRegistry.d.ts +2 -2
- package/dist/reactivity/AtomRegistry.d.ts.map +1 -1
- package/dist/reactivity/AtomRegistry.js +44 -9
- package/dist/reactivity/AtomRegistry.js.map +1 -1
- package/dist/reactivity/AtomRpc.d.ts +3 -3
- package/dist/reactivity/AtomRpc.d.ts.map +1 -1
- package/dist/reactivity/AtomRpc.js +1 -1
- package/dist/reactivity/AtomRpc.js.map +1 -1
- package/dist/reactivity/Hydration.d.ts.map +1 -1
- package/dist/reactivity/Hydration.js +46 -12
- package/dist/reactivity/Hydration.js.map +1 -1
- package/dist/reactivity/Reactivity.d.ts +71 -7
- package/dist/reactivity/Reactivity.d.ts.map +1 -1
- package/dist/reactivity/Reactivity.js +21 -12
- package/dist/reactivity/Reactivity.js.map +1 -1
- package/dist/rpc/Rpc.d.ts +18 -0
- package/dist/rpc/Rpc.d.ts.map +1 -1
- package/dist/rpc/Rpc.js +20 -0
- package/dist/rpc/Rpc.js.map +1 -1
- package/dist/rpc/RpcClient.d.ts +26 -2
- package/dist/rpc/RpcClient.d.ts.map +1 -1
- package/dist/rpc/RpcClient.js +198 -61
- package/dist/rpc/RpcClient.js.map +1 -1
- package/dist/rpc/RpcSerialization.d.ts +29 -0
- package/dist/rpc/RpcSerialization.d.ts.map +1 -1
- package/dist/rpc/RpcSerialization.js +41 -13
- package/dist/rpc/RpcSerialization.js.map +1 -1
- package/dist/rpc/RpcServer.d.ts.map +1 -1
- package/dist/rpc/RpcServer.js +20 -19
- package/dist/rpc/RpcServer.js.map +1 -1
- package/dist/rpc/RpcTest.d.ts +1 -0
- package/dist/rpc/RpcTest.d.ts.map +1 -1
- package/dist/rpc/RpcTest.js +1 -0
- package/dist/rpc/RpcTest.js.map +1 -1
- package/dist/schema/Model.d.ts +1 -1
- package/dist/schema/VariantSchema.d.ts +22 -3
- package/dist/schema/VariantSchema.d.ts.map +1 -1
- package/dist/schema/VariantSchema.js +32 -18
- package/dist/schema/VariantSchema.js.map +1 -1
- package/dist/socket/Socket.d.ts +23 -1
- package/dist/socket/Socket.d.ts.map +1 -1
- package/dist/socket/Socket.js +36 -3
- package/dist/socket/Socket.js.map +1 -1
- package/dist/sql/Migrator.d.ts +2 -1
- package/dist/sql/Migrator.d.ts.map +1 -1
- package/dist/sql/Migrator.js +21 -6
- package/dist/sql/Migrator.js.map +1 -1
- package/dist/sql/SqlClient.d.ts +148 -5
- package/dist/sql/SqlClient.d.ts.map +1 -1
- package/dist/sql/SqlClient.js +155 -27
- package/dist/sql/SqlClient.js.map +1 -1
- package/dist/sql/SqlResolver.d.ts +13 -0
- package/dist/sql/SqlResolver.d.ts.map +1 -1
- package/dist/sql/SqlResolver.js +27 -4
- package/dist/sql/SqlResolver.js.map +1 -1
- package/dist/sql/Statement.d.ts +10 -1
- package/dist/sql/Statement.d.ts.map +1 -1
- package/dist/sql/Statement.js +45 -7
- package/dist/sql/Statement.js.map +1 -1
- package/dist/testing/TestClock.d.ts.map +1 -1
- package/dist/testing/TestClock.js +4 -2
- package/dist/testing/TestClock.js.map +1 -1
- package/dist/testing/TestSchema.d.ts +7 -1
- package/dist/testing/TestSchema.d.ts.map +1 -1
- package/dist/testing/TestSchema.js +9 -3
- package/dist/testing/TestSchema.js.map +1 -1
- package/dist/workflow/DurableDeferred.d.ts.map +1 -1
- package/dist/workflow/DurableDeferred.js +21 -2
- package/dist/workflow/DurableDeferred.js.map +1 -1
- package/dist/workflow/WorkflowEngine.d.ts.map +1 -1
- package/dist/workflow/WorkflowEngine.js +18 -4
- package/dist/workflow/WorkflowEngine.js.map +1 -1
- package/package.json +13 -3
- package/src/Arbitrary.ts +10 -2
- package/src/Array.ts +128 -55
- package/src/Bytes.ts +111 -0
- package/src/Channel.ts +308 -452
- package/src/ChannelSchema.ts +1 -49
- package/src/Chunk.ts +55 -61
- package/src/Config.ts +12 -86
- package/src/ConfigProvider.ts +2 -1
- package/src/Cron.ts +6 -3
- package/src/Data.ts +60 -265
- package/src/Duration.ts +66 -16
- package/src/Effect.ts +503 -168
- package/src/Equal.ts +8 -1
- package/src/Equivalence.ts +7 -4
- package/src/Exit.ts +27 -12
- package/src/FiberHandle.ts +10 -9
- package/src/FiberMap.ts +13 -66
- package/src/FileSystem.ts +10 -0
- package/src/Formatter.ts +28 -13
- package/src/Graph.ts +171 -1263
- package/src/Hash.ts +4 -1
- package/src/HashSet.ts +0 -60
- package/src/Iterable.ts +15 -14
- package/src/JsonPatch.ts +4 -0
- package/src/JsonSchema.ts +40 -43
- package/src/Layer.ts +2 -2
- package/src/ManagedRuntime.ts +72 -6
- package/src/Metric.ts +252 -510
- package/src/MutableHashMap.ts +4 -473
- package/src/MutableList.ts +7 -5
- package/src/MutableRef.ts +8 -1
- package/src/Number.ts +2 -2
- package/src/Optic.ts +17 -332
- package/src/PartitionedSemaphore.ts +24 -13
- package/src/Path.ts +9 -1
- package/src/Pool.ts +109 -37
- package/src/PubSub.ts +17 -13
- package/src/Queue.ts +5 -37
- package/src/Random.ts +1 -1
- package/src/RcMap.ts +14 -8
- package/src/Record.ts +51 -0
- package/src/Ref.ts +15 -104
- package/src/References.ts +5 -4
- package/src/RequestResolver.ts +46 -87
- package/src/Resource.ts +1 -1
- package/src/Runtime.ts +19 -18
- package/src/Schedule.ts +3 -95
- package/src/Schema.ts +639 -381
- package/src/SchemaAST.ts +40 -29
- package/src/SchemaGetter.ts +22 -5
- package/src/SchemaIssue.ts +44 -53
- package/src/SchemaParser.ts +51 -18
- package/src/SchemaRepresentation.ts +95 -35
- package/src/SchemaTransformation.ts +10 -3
- package/src/Scope.ts +12 -2
- package/src/ScopedCache.ts +17 -142
- package/src/SemVer.ts +1528 -0
- package/src/SemVerRange.ts +883 -0
- package/src/Semaphore.ts +67 -40
- package/src/Sink.ts +21 -4
- package/src/Stream.ts +367 -1027
- package/src/String.ts +11 -8
- package/src/TextDiff.ts +766 -0
- package/src/Tracer.ts +15 -1
- package/src/TxHashMap.ts +1 -103
- package/src/TxHashSet.ts +48 -753
- package/src/ai/AiError.ts +66 -4
- package/src/ai/Chat.ts +10 -5
- package/src/ai/Decision.ts +49 -1
- package/src/ai/DecisionModel.ts +264 -108
- package/src/ai/EmbeddingModel.ts +25 -13
- package/src/ai/LanguageModel.ts +9 -0
- package/src/ai/McpClient.ts +1211 -0
- package/src/ai/McpClientError.ts +329 -0
- package/src/ai/McpProtocol.ts +2 -2
- package/src/ai/McpSchema.ts +153 -35
- package/src/ai/McpServer.ts +231 -233
- package/src/ai/Prompt.ts +114 -35
- package/src/ai/Response.ts +220 -65
- package/src/ai/Tool.ts +50 -6
- package/src/ai/Toolkit.ts +82 -11
- package/src/ai/index.ts +12 -0
- package/src/ai/internal/mcpCore.ts +13 -14
- package/src/ai/internal/mcpProtocol/v2024_11_05.ts +1 -1
- package/src/ai/internal/mcpProtocol/v2025_03_26.ts +1 -1
- package/src/ai/internal/mcpProtocol/v2025_06_18.ts +3 -3
- package/src/ai/internal/mcpProtocol/v2025_11_25.ts +3 -3
- package/src/ai/internal/mcpProtocol/v2026_07_28.ts +12 -14
- package/src/ai/internal/mcpProtocol.ts +22 -2
- package/src/ai/internal/mcpRuntime.ts +3 -4
- package/src/ai/internal/mcpSchema/v2024_11_05.ts +20 -13
- package/src/ai/internal/mcpSchema/v2025_03_26.ts +4 -2
- package/src/ai/internal/mcpSchema/v2025_06_18.ts +7 -7
- package/src/ai/internal/mcpSchema/v2025_11_25.ts +8 -8
- package/src/ai/internal/mcpSchema/v2026_07_28.ts +44 -42
- package/src/cli/Argument.ts +15 -0
- package/src/cli/CliError.ts +136 -4
- package/src/cli/CliOutput.ts +183 -6
- package/src/cli/Command.ts +367 -48
- package/src/cli/Completions.ts +56 -0
- package/src/cli/Flag.ts +132 -0
- package/src/cli/GlobalFlag.ts +5 -6
- package/src/cli/Param.ts +151 -6
- package/src/cli/TerminalCapabilities.ts +159 -0
- package/src/cli/index.ts +6 -0
- package/src/cli/internal/command.ts +8 -3
- package/src/cli/internal/completions/bash.ts +83 -32
- package/src/cli/internal/completions/descriptor.ts +11 -1
- package/src/cli/internal/completions/fish.ts +10 -8
- package/src/cli/internal/completions/powershell.ts +23 -14
- package/src/cli/internal/completions/zsh.ts +8 -5
- package/src/cli/internal/formatter.ts +18 -0
- package/src/cli/internal/lexer.ts +12 -5
- package/src/cli/internal/parser.ts +31 -11
- package/src/cluster/ClusterCron.ts +94 -35
- package/src/cluster/ClusterMetrics.ts +149 -7
- package/src/cluster/ClusterWorkflowEngine.ts +130 -57
- package/src/cluster/Entity.ts +4 -0
- package/src/cluster/MessageStorage.ts +26 -14
- package/src/cluster/Runners.ts +76 -25
- package/src/cluster/Sharding.ts +200 -58
- package/src/cluster/ShardingConfig.ts +20 -0
- package/src/cluster/Snowflake.ts +3 -7
- package/src/cluster/SqlMessageStorage.ts +58 -55
- package/src/cluster/SqlRunnerStorage.ts +120 -51
- package/src/cluster/internal/entityManager.ts +155 -32
- package/src/devtools/DevTools.ts +3 -2
- package/src/devtools/DevToolsClient.ts +29 -10
- package/src/encoding/Base64.ts +38 -0
- package/src/encoding/Base64Url.ts +31 -0
- package/src/encoding/Ini.ts +3 -0
- package/src/encoding/JsonArray.ts +849 -0
- package/src/encoding/Ndjson.ts +211 -20
- package/src/encoding/SchemaBinary.ts +14 -48
- package/src/encoding/Sse.ts +4 -3
- package/src/encoding/Tar.ts +1417 -0
- package/src/encoding/Toml.ts +36 -19
- package/src/encoding/Xml.ts +2037 -0
- package/src/encoding/Yaml.ts +108 -36
- package/src/encoding/Zip.ts +1558 -0
- package/src/encoding/index.ts +24 -0
- package/src/eventlog/EventJournal.ts +611 -227
- package/src/eventlog/EventLog.ts +496 -196
- package/src/eventlog/EventLogEncryption.ts +128 -43
- package/src/eventlog/EventLogMessage.ts +62 -11
- package/src/eventlog/EventLogRemote.ts +77 -21
- package/src/eventlog/EventLogServer.ts +162 -20
- package/src/eventlog/EventLogServerEncrypted.ts +121 -80
- package/src/eventlog/EventLogServerUnencrypted.ts +180 -77
- package/src/eventlog/EventRow.ts +706 -0
- package/src/eventlog/SqlEventJournal.ts +496 -193
- package/src/eventlog/SqlEventLogServerEncrypted.ts +212 -83
- package/src/eventlog/SqlEventLogServerUnencrypted.ts +141 -62
- package/src/eventlog/index.ts +6 -0
- package/src/eventlog/internal/conflicts.ts +119 -0
- package/src/graphql/GraphQLClientError.ts +5 -12
- package/src/graphql/GraphQLProtocol.ts +12 -9
- package/src/graphql/GraphQLResolver.ts +90 -239
- package/src/http/Cookies.ts +10 -11
- package/src/http/FetchHttpClient.ts +56 -6
- package/src/http/FindMyWay/internal/router.ts +11 -0
- package/src/http/Headers.ts +337 -154
- package/src/http/HttpClient.ts +673 -142
- package/src/http/HttpClientError.ts +35 -1
- package/src/http/HttpClientRequest.ts +151 -5
- package/src/http/HttpClientResponse.ts +71 -0
- package/src/http/HttpEffect.ts +25 -33
- package/src/http/HttpIncomingMessage.ts +3 -23
- package/src/http/HttpMiddleware.ts +194 -40
- package/src/http/HttpRouter.ts +10 -3
- package/src/http/HttpServerError.ts +8 -5
- package/src/http/HttpServerRequest.ts +172 -27
- package/src/http/HttpServerResponse.ts +49 -23
- package/src/http/HttpStaticServer.ts +71 -26
- package/src/http/MultipartParser/internal/contentType.ts +109 -8
- package/src/http/MultipartParser/internal/headers.ts +4 -16
- package/src/http/MultipartParser/internal/multipart.ts +10 -32
- package/src/http/Url.ts +6 -1
- package/src/http/UrlParams.ts +6 -1
- package/src/http/internal/compression.ts +4 -5
- package/src/http/internal/decompression.ts +32 -17
- package/src/http/internal/httpBody.ts +10 -2
- package/src/http/internal/lazyStream.ts +25 -0
- package/src/http/internal/requestState.ts +33 -0
- package/src/http/internal/urlParams.ts +29 -0
- package/src/http/internal/webResponse.ts +20 -0
- package/src/http-api/HttpApi.ts +4 -7
- package/src/http-api/HttpApiBuilder.ts +190 -32
- package/src/http-api/HttpApiClient.ts +364 -90
- package/src/http-api/HttpApiEndpoint.ts +248 -46
- package/src/http-api/HttpApiError.ts +55 -0
- package/src/http-api/HttpApiScalar.ts +4 -3
- package/src/http-api/HttpApiSchema.ts +373 -18
- package/src/http-api/HttpApiSwagger.ts +11 -4
- package/src/http-api/HttpApiTest.ts +36 -11
- package/src/http-api/OpenApi.ts +103 -58
- package/src/http-api/internal/path.ts +40 -12
- package/src/http-api/internal/toCodecHttpProperties.ts +56 -0
- package/src/index.ts +24 -0
- package/src/internal/arbitrary/runner.ts +133 -36
- package/src/internal/core.ts +3 -1
- package/src/internal/dateTime.ts +20 -7
- package/src/internal/effect.ts +144 -100
- package/src/internal/equal.ts +17 -0
- package/src/internal/hashMap.ts +2 -2
- package/src/internal/hydration.ts +15 -0
- package/src/internal/inflate.ts +710 -0
- package/src/internal/jsonSchema.ts +27 -0
- package/src/internal/matcher.ts +1 -1
- package/src/internal/record.ts +6 -0
- package/src/internal/request.ts +21 -6
- package/src/internal/schedule.ts +20 -39
- package/src/internal/schema/compilerRegistry.ts +6 -1
- package/src/internal/schema/content.ts +18 -0
- package/src/internal/schema/fromJsonSchemaDocument.ts +458 -351
- package/src/internal/schema/fromRepresentation.ts +2 -1
- package/src/internal/schema/interpreter.ts +58 -45
- package/src/internal/schema/standardSchema.ts +34 -32
- package/src/internal/schema/toCodeDocument.ts +12 -7
- package/src/internal/schema/toCodec.ts +134 -15
- package/src/internal/schema/toFormatter.ts +6 -6
- package/src/internal/schema/toJsonSchemaDocument.ts +246 -194
- package/src/internal/schema/toRepresentation.ts +122 -140
- package/src/internal/sql.ts +14 -0
- package/src/internal/trie.ts +1 -3
- package/src/internal/uuid.ts +15 -10
- package/src/internal/version.ts +1 -1
- package/src/net/NetAddress.ts +2 -9
- package/src/observability/OtlpExporter.ts +5 -12
- package/src/observability/OtlpMetrics.ts +5 -3
- package/src/observability/OtlpProxy.ts +314 -0
- package/src/observability/OtlpResource.ts +16 -6
- package/src/observability/OtlpSerialization.ts +17 -3
- package/src/observability/OtlpTracer.ts +4 -0
- package/src/observability/index.ts +6 -0
- package/src/observability/internal/protobuf.ts +2 -10
- package/src/persistence/CircuitBreaker.ts +1678 -0
- package/src/persistence/PersistedCache.ts +3 -1
- package/src/persistence/PersistedQueue.ts +223 -153
- package/src/persistence/Persistence.ts +64 -30
- package/src/persistence/RateLimiter.ts +18 -21
- package/src/persistence/Redis.ts +129 -8
- package/src/persistence/UserDirectories.ts +273 -0
- package/src/persistence/index.ts +12 -0
- package/src/process/ChildProcess.ts +32 -5
- package/src/process/ChildProcessSpawner.ts +41 -2
- package/src/reactivity/AsyncResult.ts +5 -39
- package/src/reactivity/Atom.ts +134 -166
- package/src/reactivity/AtomHttpApi.ts +10 -16
- package/src/reactivity/AtomRegistry.ts +50 -29
- package/src/reactivity/AtomRpc.ts +6 -22
- package/src/reactivity/Hydration.ts +53 -12
- package/src/reactivity/Reactivity.ts +97 -39
- package/src/rpc/Rpc.ts +21 -0
- package/src/rpc/RpcClient.ts +283 -104
- package/src/rpc/RpcSerialization.ts +53 -14
- package/src/rpc/RpcServer.ts +27 -21
- package/src/rpc/RpcTest.ts +3 -0
- package/src/schema/VariantSchema.ts +86 -22
- package/src/socket/Socket.ts +45 -20
- package/src/sql/Migrator.ts +26 -11
- package/src/sql/SqlClient.ts +273 -29
- package/src/sql/SqlResolver.ts +32 -9
- package/src/sql/Statement.ts +65 -10
- package/src/testing/TestClock.ts +4 -1
- package/src/testing/TestSchema.ts +9 -3
- package/src/workflow/DurableDeferred.ts +23 -6
- package/src/workflow/WorkflowEngine.ts +34 -10
- package/dist/http/internal/preResponseHandler.d.ts +0 -2
- package/dist/http/internal/preResponseHandler.d.ts.map +0 -1
- package/dist/http/internal/preResponseHandler.js +0 -14
- package/dist/http/internal/preResponseHandler.js.map +0 -1
- package/src/http/internal/preResponseHandler.ts +0 -19
|
@@ -30,27 +30,23 @@ function collectJsonSchemaAnnotations(
|
|
|
30
30
|
if (annotations === undefined) return undefined
|
|
31
31
|
|
|
32
32
|
const out: JsonSchema.JsonSchema = {}
|
|
33
|
-
const title
|
|
34
|
-
|
|
35
|
-
|
|
33
|
+
for (const key of ["title", "description", "format", "contentEncoding", "contentMediaType"] as const) {
|
|
34
|
+
const value = annotations[key]
|
|
35
|
+
if (typeof value === "string") out[key] = value
|
|
36
|
+
}
|
|
37
|
+
for (const key of ["readOnly", "writeOnly"] as const) {
|
|
38
|
+
const value = annotations[key]
|
|
39
|
+
if (typeof value === "boolean") out[key] = value
|
|
40
|
+
}
|
|
36
41
|
const expected = annotations.expected
|
|
37
|
-
if (typeof
|
|
38
|
-
|
|
42
|
+
if (out.description === undefined && options?.generateDescriptions === true && typeof expected === "string") {
|
|
43
|
+
out.description = expected
|
|
44
|
+
}
|
|
39
45
|
|
|
40
46
|
const defaultValue = annotations.default
|
|
41
47
|
if (InternalAST.isJson(defaultValue)) out.default = defaultValue
|
|
42
48
|
const examples = annotations.examples
|
|
43
49
|
if (Array.isArray(examples) && InternalAST.isJson(examples)) out.examples = examples
|
|
44
|
-
const readOnly = annotations.readOnly
|
|
45
|
-
if (typeof readOnly === "boolean") out.readOnly = readOnly
|
|
46
|
-
const writeOnly = annotations.writeOnly
|
|
47
|
-
if (typeof writeOnly === "boolean") out.writeOnly = writeOnly
|
|
48
|
-
const format = annotations.format
|
|
49
|
-
if (typeof format === "string") out.format = format
|
|
50
|
-
const contentEncoding = annotations.contentEncoding
|
|
51
|
-
if (typeof contentEncoding === "string") out.contentEncoding = contentEncoding
|
|
52
|
-
const contentMediaType = annotations.contentMediaType
|
|
53
|
-
if (typeof contentMediaType === "string") out.contentMediaType = contentMediaType
|
|
54
50
|
const contentSchema = annotations.contentSchema
|
|
55
51
|
if (InternalAST.isJson(contentSchema)) out.contentSchema = contentSchema
|
|
56
52
|
|
|
@@ -198,7 +194,10 @@ function appendJsonSchema(
|
|
|
198
194
|
// cycle is exact unless it can reach `false`.
|
|
199
195
|
type Exactness = boolean | ReadonlyArray<Exactness>
|
|
200
196
|
|
|
201
|
-
type CompiledJsonSchema =
|
|
197
|
+
type CompiledJsonSchema = {
|
|
198
|
+
schema: JsonSchema.JsonSchema
|
|
199
|
+
dependencies: Array<Exactness>
|
|
200
|
+
}
|
|
202
201
|
|
|
203
202
|
function isExact(exactness: Exactness, seen = new Set<ReadonlyArray<Exactness>>()): boolean {
|
|
204
203
|
if (typeof exactness === "boolean") return exactness
|
|
@@ -222,12 +221,13 @@ function compileJsonSchema(
|
|
|
222
221
|
references: SchemaRepresentation.References,
|
|
223
222
|
options: Schema.ToJsonSchemaOptions | undefined
|
|
224
223
|
): JsonSchema.MultiDocument<"draft-2020-12"> {
|
|
224
|
+
const numberKeyPattern = `^(?:${InternalAST.FINITE_PATTERN}|Infinity|-Infinity|NaN)$`
|
|
225
225
|
const compiledDefinitions = new Map<string, CompiledJsonSchema>()
|
|
226
226
|
const definitionAliases = new Map<string, string>()
|
|
227
227
|
const compiledRepresentations = new WeakMap<SchemaRepresentation.Representation, CompiledJsonSchema>()
|
|
228
228
|
const pendingOneOf = new Map<
|
|
229
229
|
ReadonlyArray<JsonSchema.JsonSchema>,
|
|
230
|
-
|
|
230
|
+
{ branches: ReadonlyArray<Exactness>; schemas: Array<JsonSchema.JsonSchema> }
|
|
231
231
|
>()
|
|
232
232
|
const fallbackDefinitions = new Map<string, Array<string>>()
|
|
233
233
|
const referenceKeys = Object.keys(references)
|
|
@@ -238,7 +238,7 @@ function compileJsonSchema(
|
|
|
238
238
|
representations,
|
|
239
239
|
(representation, index) => recur(representation, rootPaths[index], [])
|
|
240
240
|
)
|
|
241
|
-
for (const
|
|
241
|
+
for (const { branches, schemas } of pendingOneOf.values()) {
|
|
242
242
|
if (!isExact(branches)) {
|
|
243
243
|
for (const schema of schemas) {
|
|
244
244
|
if (Array.isArray(schema.oneOf)) {
|
|
@@ -252,9 +252,9 @@ function compileJsonSchema(
|
|
|
252
252
|
const representation = references[key]
|
|
253
253
|
const fallback = getIdentifierFallback(representation)
|
|
254
254
|
if (fallback === undefined) continue
|
|
255
|
-
const schema = compiledDefinitions.get(key)
|
|
255
|
+
const schema = compiledDefinitions.get(key)!.schema
|
|
256
256
|
const candidates = fallbackDefinitions.get(fallback)
|
|
257
|
-
const match = candidates?.find((candidate) => Equal.equals(compiledDefinitions.get(candidate)
|
|
257
|
+
const match = candidates?.find((candidate) => Equal.equals(compiledDefinitions.get(candidate)!.schema, schema))
|
|
258
258
|
if (match === undefined) {
|
|
259
259
|
if (candidates === undefined) fallbackDefinitions.set(fallback, [key])
|
|
260
260
|
else candidates.push(key)
|
|
@@ -266,16 +266,26 @@ function compileJsonSchema(
|
|
|
266
266
|
const definitions: Record<string, JsonSchema.JsonSchema> = {}
|
|
267
267
|
for (const key of referenceKeys) {
|
|
268
268
|
if (!definitionAliases.has(key)) {
|
|
269
|
-
InternalRecord.assignProperty(definitions, key, finalizeJsonSchema(compiledDefinitions.get(key)
|
|
269
|
+
InternalRecord.assignProperty(definitions, key, finalizeJsonSchema(compiledDefinitions.get(key)!.schema))
|
|
270
270
|
}
|
|
271
271
|
}
|
|
272
272
|
return { dialect: "draft-2020-12", schemas, definitions }
|
|
273
273
|
|
|
274
274
|
function registerPendingOneOf(schema: JsonSchema.JsonSchema): JsonSchema.JsonSchema {
|
|
275
|
-
if (Array.isArray(schema.oneOf)) pendingOneOf.get(schema.oneOf)?.
|
|
275
|
+
if (Array.isArray(schema.oneOf)) pendingOneOf.get(schema.oneOf)?.schemas.push(schema)
|
|
276
276
|
return schema
|
|
277
277
|
}
|
|
278
278
|
|
|
279
|
+
function compileAnnotatedMember(
|
|
280
|
+
member: SchemaRepresentation.Element | SchemaRepresentation.PropertySignature,
|
|
281
|
+
path: Path,
|
|
282
|
+
dependencies: Array<Exactness>
|
|
283
|
+
): JsonSchema.JsonSchema {
|
|
284
|
+
const schema = recur(member.type, [...path, "type"], dependencies)
|
|
285
|
+
const annotations = collectJsonSchemaAnnotations(member.annotations, options)
|
|
286
|
+
return annotations === undefined ? schema : registerPendingOneOf(appendJsonSchema(schema, annotations))
|
|
287
|
+
}
|
|
288
|
+
|
|
279
289
|
function compileDefinition(key: string, path: Path): CompiledJsonSchema {
|
|
280
290
|
if (!Object.hasOwn(references, key)) {
|
|
281
291
|
throw errorWithPath(`Invalid reference ${key}`, [...path, "$ref"])
|
|
@@ -284,9 +294,9 @@ function compileJsonSchema(
|
|
|
284
294
|
if (cached !== undefined) return cached
|
|
285
295
|
|
|
286
296
|
// Register the dependency cell before compiling so recursive references share it.
|
|
287
|
-
const result: CompiledJsonSchema =
|
|
297
|
+
const result: CompiledJsonSchema = { schema: {}, dependencies: [] }
|
|
288
298
|
compiledDefinitions.set(key, result)
|
|
289
|
-
result
|
|
299
|
+
result.schema = recur(references[key], ["references", key], result.dependencies)
|
|
290
300
|
return result
|
|
291
301
|
}
|
|
292
302
|
|
|
@@ -377,28 +387,35 @@ function compileJsonSchema(
|
|
|
377
387
|
dependencies: Array<Exactness>
|
|
378
388
|
): JsonSchema.JsonSchema {
|
|
379
389
|
if (representation._tag === "Reference") {
|
|
380
|
-
dependencies.push(compileDefinition(representation.$ref, path)
|
|
390
|
+
dependencies.push(compileDefinition(representation.$ref, path).dependencies)
|
|
381
391
|
return { $ref: formatDefinitionReference(representation.$ref) }
|
|
382
392
|
}
|
|
383
393
|
const cached = compiledRepresentations.get(representation)
|
|
384
394
|
if (cached !== undefined) {
|
|
385
|
-
dependencies.push(cached
|
|
386
|
-
return cached
|
|
395
|
+
dependencies.push(cached.dependencies)
|
|
396
|
+
return cached.schema
|
|
387
397
|
}
|
|
388
398
|
|
|
389
399
|
const local: Array<Exactness> = []
|
|
390
400
|
dependencies.push(local)
|
|
391
|
-
let output =
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
401
|
+
let output = {
|
|
402
|
+
...on(representation, path, local),
|
|
403
|
+
...collectJsonSchemaAnnotations(representation.annotations, options)
|
|
404
|
+
}
|
|
405
|
+
if (representation._tag === "String" && representation.content !== undefined) {
|
|
406
|
+
const content = representation.content
|
|
407
|
+
output.contentMediaType = content.mediaType
|
|
408
|
+
delete output.contentSchema
|
|
409
|
+
if (content.schema !== undefined) {
|
|
410
|
+
output.contentSchema = recur(content.schema, [...path, "content", "schema"], [])
|
|
411
|
+
}
|
|
395
412
|
}
|
|
396
413
|
for (let index = 0; index < representation.checks.length; index++) {
|
|
397
414
|
const type = typeof output.type === "string" && isJsonSchemaType(output.type) ? output.type : undefined
|
|
398
415
|
const check = compileCheck(representation.checks[index], type, [...path, "checks", index], local)
|
|
399
416
|
if (check !== undefined) output = appendJsonSchema(output, ...check)
|
|
400
417
|
}
|
|
401
|
-
compiledRepresentations.set(representation,
|
|
418
|
+
compiledRepresentations.set(representation, { schema: output, dependencies: local })
|
|
402
419
|
return registerPendingOneOf(output)
|
|
403
420
|
}
|
|
404
421
|
|
|
@@ -450,32 +467,24 @@ function compileJsonSchema(
|
|
|
450
467
|
: { type: typeof literal, enum: [literal] }
|
|
451
468
|
}
|
|
452
469
|
case "Enum": {
|
|
453
|
-
const types = representation.enums.map(([title, literal]
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
)
|
|
459
|
-
}
|
|
460
|
-
return { type: typeof literal, enum: [literal], title }
|
|
461
|
-
})
|
|
470
|
+
const types = representation.enums.map(([title, literal]) => ({
|
|
471
|
+
type: typeof literal,
|
|
472
|
+
enum: [literal],
|
|
473
|
+
title
|
|
474
|
+
}))
|
|
462
475
|
return types.length === 0 ? { not: {} } : { anyOf: types }
|
|
463
476
|
}
|
|
464
|
-
case "TemplateLiteral":
|
|
465
|
-
|
|
477
|
+
case "TemplateLiteral": {
|
|
478
|
+
const { exact, pattern } = getTemplateLiteralPattern(representation.parts)
|
|
479
|
+
if (!exact) dependencies.push(false)
|
|
480
|
+
return { type: "string", pattern }
|
|
481
|
+
}
|
|
466
482
|
case "Arrays": {
|
|
467
|
-
if (representation.rest.length > 1) {
|
|
468
|
-
throw errorWithPath("Invalid schema representation document", [...path, "rest"])
|
|
469
|
-
}
|
|
470
483
|
const out: JsonSchema.JsonSchema = { type: "array" }
|
|
471
484
|
let minItems = representation.elements.length
|
|
472
485
|
const prefixItems = representation.elements.map((element, index) => {
|
|
473
486
|
if (element.isOptional) minItems--
|
|
474
|
-
|
|
475
|
-
const annotations = collectJsonSchemaAnnotations(element.annotations, options)
|
|
476
|
-
return annotations === undefined
|
|
477
|
-
? schema
|
|
478
|
-
: registerPendingOneOf(appendJsonSchema(schema, annotations))
|
|
487
|
+
return compileAnnotatedMember(element, [...path, "elements", index], dependencies)
|
|
479
488
|
})
|
|
480
489
|
if (prefixItems.length > 0) {
|
|
481
490
|
out.prefixItems = prefixItems
|
|
@@ -489,138 +498,151 @@ function compileJsonSchema(
|
|
|
489
498
|
const rest = recur(representation.rest[0], [...path, "rest", 0], dependencies)
|
|
490
499
|
if (Object.keys(rest).length > 0) out.items = rest
|
|
491
500
|
else delete out.items
|
|
501
|
+
} else if (representation.rest.length > 1) {
|
|
502
|
+
delete out.maxItems
|
|
503
|
+
delete out.items
|
|
504
|
+
out.minItems = minItems + representation.rest.length - 1
|
|
505
|
+
dependencies.push(false)
|
|
492
506
|
}
|
|
493
507
|
return out
|
|
494
508
|
}
|
|
495
|
-
case "Objects":
|
|
496
|
-
|
|
497
|
-
return { not: { type: "null" } }
|
|
498
|
-
}
|
|
499
|
-
const out: JsonSchema.JsonSchema = { type: "object" }
|
|
500
|
-
const properties: Record<string, JsonSchema.JsonSchema> = {}
|
|
501
|
-
const required: Array<string> = []
|
|
502
|
-
for (let index = 0; index < representation.propertySignatures.length; index++) {
|
|
503
|
-
const property = representation.propertySignatures[index]
|
|
504
|
-
if (typeof property.name !== "string") {
|
|
505
|
-
throw errorWithPath("Invalid schema representation document", [
|
|
506
|
-
...path,
|
|
507
|
-
"propertySignatures",
|
|
508
|
-
index,
|
|
509
|
-
"name"
|
|
510
|
-
])
|
|
511
|
-
}
|
|
512
|
-
const name = property.name
|
|
513
|
-
const schema = recur(property.type, [...path, "propertySignatures", index, "type"], dependencies)
|
|
514
|
-
const annotations = collectJsonSchemaAnnotations(property.annotations, options)
|
|
515
|
-
InternalRecord.assignProperty(
|
|
516
|
-
properties,
|
|
517
|
-
name,
|
|
518
|
-
annotations === undefined
|
|
519
|
-
? schema
|
|
520
|
-
: registerPendingOneOf(appendJsonSchema(schema, annotations))
|
|
521
|
-
)
|
|
522
|
-
if (!property.isOptional) required.push(name)
|
|
523
|
-
}
|
|
524
|
-
if (representation.propertySignatures.length > 0) out.properties = properties
|
|
525
|
-
if (required.length > 0) out.required = required
|
|
526
|
-
const patternProperties: Record<string, JsonSchema.JsonSchema | false> = {}
|
|
527
|
-
const additionalPropertySchemas: Array<JsonSchema.JsonSchema | false> = []
|
|
528
|
-
const indexValueSchemas: Array<JsonSchema.JsonSchema | false> = []
|
|
529
|
-
let hasUnrepresentableIndexPattern = false
|
|
530
|
-
for (let index = 0; index < representation.indexSignatures.length; index++) {
|
|
531
|
-
const signature = representation.indexSignatures[index]
|
|
532
|
-
let type: JsonSchema.JsonSchema | false = recur(
|
|
533
|
-
signature.type,
|
|
534
|
-
[...path, "indexSignatures", index, "type"],
|
|
535
|
-
dependencies
|
|
536
|
-
)
|
|
537
|
-
if (Equal.equals(type, { not: {} })) type = false
|
|
538
|
-
indexValueSchemas.push(type)
|
|
539
|
-
const patterns = getParameterPatterns(
|
|
540
|
-
signature.parameter,
|
|
541
|
-
[...path, "indexSignatures", index, "parameter"],
|
|
542
|
-
new Set()
|
|
543
|
-
)
|
|
544
|
-
if (patterns === undefined) {
|
|
545
|
-
hasUnrepresentableIndexPattern = true
|
|
546
|
-
dependencies.push(false)
|
|
547
|
-
continue
|
|
548
|
-
}
|
|
549
|
-
if (patterns.length === 0) {
|
|
550
|
-
additionalPropertySchemas.push(type)
|
|
551
|
-
} else {
|
|
552
|
-
for (const pattern of patterns) {
|
|
553
|
-
const previous = patternProperties[pattern]
|
|
554
|
-
InternalRecord.assignProperty(
|
|
555
|
-
patternProperties,
|
|
556
|
-
pattern,
|
|
557
|
-
previous === undefined
|
|
558
|
-
? type
|
|
559
|
-
: previous === false || type === false
|
|
560
|
-
? false
|
|
561
|
-
: registerPendingOneOf(appendJsonSchema(previous, type))
|
|
562
|
-
)
|
|
563
|
-
}
|
|
564
|
-
}
|
|
565
|
-
}
|
|
566
|
-
const hasPatternProperties = Object.keys(patternProperties).length > 0
|
|
567
|
-
if (hasPatternProperties) {
|
|
568
|
-
out.patternProperties = patternProperties
|
|
569
|
-
}
|
|
570
|
-
if (hasUnrepresentableIndexPattern && options?.onExcessProperty === "error") {
|
|
571
|
-
const propertyNames: Array<JsonSchema.JsonSchema> = []
|
|
572
|
-
if (representation.propertySignatures.length > 0) {
|
|
573
|
-
propertyNames.push({ enum: Object.keys(properties) })
|
|
574
|
-
}
|
|
575
|
-
for (let index = 0; index < representation.indexSignatures.length; index++) {
|
|
576
|
-
propertyNames.push(
|
|
577
|
-
recur(
|
|
578
|
-
representation.indexSignatures[index].parameter,
|
|
579
|
-
[...path, "indexSignatures", index, "parameter"],
|
|
580
|
-
dependencies
|
|
581
|
-
)
|
|
582
|
-
)
|
|
583
|
-
}
|
|
584
|
-
out.propertyNames = propertyNames.length === 1 ? propertyNames[0] : { anyOf: propertyNames }
|
|
585
|
-
out.additionalProperties = indexValueSchemas.length === 1
|
|
586
|
-
? indexValueSchemas[0]
|
|
587
|
-
: { anyOf: indexValueSchemas }
|
|
588
|
-
if (additionalPropertySchemas.length > 0) {
|
|
589
|
-
out.allOf = additionalPropertySchemas.map((type) => ({ type: "object", additionalProperties: type }))
|
|
590
|
-
}
|
|
591
|
-
} else if (additionalPropertySchemas.length === 0) {
|
|
592
|
-
out.additionalProperties = hasUnrepresentableIndexPattern || options?.onExcessProperty !== "error"
|
|
593
|
-
} else if (
|
|
594
|
-
additionalPropertySchemas.length === 1 &&
|
|
595
|
-
representation.propertySignatures.length === 0 &&
|
|
596
|
-
!hasPatternProperties
|
|
597
|
-
) {
|
|
598
|
-
out.additionalProperties = additionalPropertySchemas[0]
|
|
599
|
-
} else if (additionalPropertySchemas.length > 0) {
|
|
600
|
-
out.allOf = additionalPropertySchemas.map((type) => ({ type: "object", additionalProperties: type }))
|
|
601
|
-
}
|
|
602
|
-
if (
|
|
603
|
-
typeof out.additionalProperties === "object" &&
|
|
604
|
-
out.additionalProperties !== null &&
|
|
605
|
-
Object.keys(out.additionalProperties).length === 0
|
|
606
|
-
) {
|
|
607
|
-
delete out.additionalProperties
|
|
608
|
-
}
|
|
609
|
-
return out
|
|
610
|
-
}
|
|
509
|
+
case "Objects":
|
|
510
|
+
return compileObjects(representation, path, dependencies)
|
|
611
511
|
case "Union": {
|
|
612
512
|
const branches: Array<Exactness> = []
|
|
613
513
|
const types = representation.types.map((type, index) => recur(type, [...path, "types", index], branches))
|
|
614
514
|
dependencies.push(branches)
|
|
615
515
|
if (types.length === 0) return { not: {} }
|
|
616
|
-
|
|
617
|
-
|
|
516
|
+
if (representation.options?.mode === "oneOf") {
|
|
517
|
+
pendingOneOf.set(types, { branches, schemas: [] })
|
|
518
|
+
return { oneOf: types }
|
|
519
|
+
}
|
|
520
|
+
if (types.length > 1) {
|
|
618
521
|
const compacted = compactEnums(types)
|
|
619
522
|
if (compacted !== undefined) return compacted
|
|
620
523
|
}
|
|
621
|
-
|
|
622
|
-
return {
|
|
524
|
+
// A member that is only an `anyOf` adds no constraints of its own, so its alternatives can be spliced in.
|
|
525
|
+
return {
|
|
526
|
+
anyOf: types.flatMap((type) =>
|
|
527
|
+
Array.isArray(type.anyOf) && Object.keys(type).length === 1 ? type.anyOf : [type]
|
|
528
|
+
)
|
|
529
|
+
}
|
|
530
|
+
}
|
|
531
|
+
}
|
|
532
|
+
}
|
|
533
|
+
|
|
534
|
+
function compileObjects(
|
|
535
|
+
representation: SchemaRepresentation.Objects,
|
|
536
|
+
path: Path,
|
|
537
|
+
dependencies: Array<Exactness>
|
|
538
|
+
): JsonSchema.JsonSchema {
|
|
539
|
+
const { indexSignatures, propertySignatures } = representation
|
|
540
|
+
if (propertySignatures.length === 0 && indexSignatures.length === 0) return { not: { type: "null" } }
|
|
541
|
+
|
|
542
|
+
const out: JsonSchema.JsonSchema = { type: "object" }
|
|
543
|
+
const properties: Record<string, JsonSchema.JsonSchema> = {}
|
|
544
|
+
const required: Array<string> = []
|
|
545
|
+
for (const [index, property] of propertySignatures.entries()) {
|
|
546
|
+
const propertyPath = [...path, "propertySignatures", index]
|
|
547
|
+
if (typeof property.name !== "string") {
|
|
548
|
+
throw errorWithPath("Objects property names must be strings", [...propertyPath, "name"])
|
|
549
|
+
}
|
|
550
|
+
InternalRecord.assignProperty(
|
|
551
|
+
properties,
|
|
552
|
+
property.name,
|
|
553
|
+
compileAnnotatedMember(property, propertyPath, dependencies)
|
|
554
|
+
)
|
|
555
|
+
if (!property.isOptional) required.push(property.name)
|
|
556
|
+
}
|
|
557
|
+
if (propertySignatures.length > 0) out.properties = properties
|
|
558
|
+
if (required.length > 0) out.required = required
|
|
559
|
+
|
|
560
|
+
const indexes = indexSignatures.map((signature, index) => {
|
|
561
|
+
const indexPath = [...path, "indexSignatures", index]
|
|
562
|
+
const schema = recur(signature.type, [...indexPath, "type"], dependencies)
|
|
563
|
+
const type: JsonSchema.JsonSchema | false = Equal.equals(schema, { not: {} }) ? false : schema
|
|
564
|
+
const patterns = getParameterPatterns(signature.parameter, [...indexPath, "parameter"], new Set())
|
|
565
|
+
if (patterns === undefined) dependencies.push(false)
|
|
566
|
+
return { type, patterns }
|
|
567
|
+
})
|
|
568
|
+
const patternProperties: Record<string, JsonSchema.JsonSchema | false> = {}
|
|
569
|
+
for (const { patterns, type } of indexes) {
|
|
570
|
+
for (const pattern of patterns ?? []) {
|
|
571
|
+
const previous = patternProperties[pattern]
|
|
572
|
+
InternalRecord.assignProperty(
|
|
573
|
+
patternProperties,
|
|
574
|
+
pattern,
|
|
575
|
+
previous === undefined
|
|
576
|
+
? type
|
|
577
|
+
: previous === false || type === false
|
|
578
|
+
? false
|
|
579
|
+
: registerPendingOneOf(appendJsonSchema(previous, type))
|
|
580
|
+
)
|
|
581
|
+
}
|
|
582
|
+
}
|
|
583
|
+
const hasPatternProperties = Object.keys(patternProperties).length > 0
|
|
584
|
+
if (hasPatternProperties) out.patternProperties = patternProperties
|
|
585
|
+
|
|
586
|
+
const additionalPropertySchemas = indexes.filter(({ patterns }) => patterns?.length === 0).map(({ type }) => type)
|
|
587
|
+
const hasUnrepresentableIndexPattern = indexes.some(({ patterns }) => patterns === undefined)
|
|
588
|
+
if (hasUnrepresentableIndexPattern && options?.onExcessProperty === "error") {
|
|
589
|
+
const propertyNames: Array<JsonSchema.JsonSchema> = []
|
|
590
|
+
if (propertySignatures.length > 0) propertyNames.push({ enum: Object.keys(properties) })
|
|
591
|
+
for (const [index, signature] of indexSignatures.entries()) {
|
|
592
|
+
propertyNames.push(
|
|
593
|
+
getPropertyNameSchema(
|
|
594
|
+
signature.parameter,
|
|
595
|
+
[...path, "indexSignatures", index, "parameter"],
|
|
596
|
+
dependencies,
|
|
597
|
+
new Set()
|
|
598
|
+
)
|
|
599
|
+
)
|
|
600
|
+
}
|
|
601
|
+
out.propertyNames = propertyNames.length === 1 ? propertyNames[0] : { anyOf: propertyNames }
|
|
602
|
+
const values = indexes.map(({ type }) => type)
|
|
603
|
+
out.additionalProperties = values.length === 1 ? values[0] : { anyOf: values }
|
|
604
|
+
if (additionalPropertySchemas.length > 0) {
|
|
605
|
+
out.allOf = additionalPropertySchemas.map((type) => ({ type: "object", additionalProperties: type }))
|
|
606
|
+
}
|
|
607
|
+
} else if (additionalPropertySchemas.length === 0) {
|
|
608
|
+
out.additionalProperties = hasUnrepresentableIndexPattern || options?.onExcessProperty !== "error"
|
|
609
|
+
} else if (additionalPropertySchemas.length === 1 && propertySignatures.length === 0 && !hasPatternProperties) {
|
|
610
|
+
out.additionalProperties = additionalPropertySchemas[0]
|
|
611
|
+
} else {
|
|
612
|
+
out.allOf = additionalPropertySchemas.map((type) => ({ type: "object", additionalProperties: type }))
|
|
613
|
+
}
|
|
614
|
+
if (
|
|
615
|
+
typeof out.additionalProperties === "object" &&
|
|
616
|
+
out.additionalProperties !== null &&
|
|
617
|
+
Object.keys(out.additionalProperties).length === 0
|
|
618
|
+
) {
|
|
619
|
+
delete out.additionalProperties
|
|
620
|
+
}
|
|
621
|
+
return out
|
|
622
|
+
}
|
|
623
|
+
|
|
624
|
+
function getPropertyNameSchema(
|
|
625
|
+
parameter: SchemaRepresentation.Representation,
|
|
626
|
+
path: Path,
|
|
627
|
+
dependencies: Array<Exactness>,
|
|
628
|
+
seenReferences: ReadonlySet<string>
|
|
629
|
+
): JsonSchema.JsonSchema {
|
|
630
|
+
switch (parameter._tag) {
|
|
631
|
+
case "Number":
|
|
632
|
+
return { type: "string", pattern: numberKeyPattern }
|
|
633
|
+
case "Reference": {
|
|
634
|
+
if (seenReferences.has(parameter.$ref)) return { type: "string" }
|
|
635
|
+
return getPropertyNameSchema(
|
|
636
|
+
references[parameter.$ref],
|
|
637
|
+
["references", parameter.$ref],
|
|
638
|
+
dependencies,
|
|
639
|
+
new Set(seenReferences).add(parameter.$ref)
|
|
640
|
+
)
|
|
623
641
|
}
|
|
642
|
+
case "Union":
|
|
643
|
+
return { anyOf: parameter.types.map((type) => getPropertyNameSchema(type, path, dependencies, seenReferences)) }
|
|
644
|
+
default:
|
|
645
|
+
return recur(parameter, path, dependencies)
|
|
624
646
|
}
|
|
625
647
|
}
|
|
626
648
|
|
|
@@ -631,9 +653,6 @@ function compileJsonSchema(
|
|
|
631
653
|
): ReadonlyArray<string> | undefined {
|
|
632
654
|
switch (parameter._tag) {
|
|
633
655
|
case "Reference": {
|
|
634
|
-
if (!Object.hasOwn(references, parameter.$ref)) {
|
|
635
|
-
throw errorWithPath(`Invalid reference ${parameter.$ref}`, [...path, "$ref"])
|
|
636
|
-
}
|
|
637
656
|
compileDefinition(parameter.$ref, path)
|
|
638
657
|
if (seenReferences.has(parameter.$ref)) return undefined
|
|
639
658
|
const next = new Set(seenReferences).add(parameter.$ref)
|
|
@@ -656,8 +675,11 @@ function compileJsonSchema(
|
|
|
656
675
|
? [schema.pattern]
|
|
657
676
|
: undefined
|
|
658
677
|
}
|
|
659
|
-
case "TemplateLiteral":
|
|
660
|
-
|
|
678
|
+
case "TemplateLiteral": {
|
|
679
|
+
if (parameter.checks.length > 0) return undefined
|
|
680
|
+
const { exact, pattern } = getTemplateLiteralPattern(parameter.parts)
|
|
681
|
+
return exact ? [pattern] : undefined
|
|
682
|
+
}
|
|
661
683
|
case "Union": {
|
|
662
684
|
if (parameter.types.length === 0 || parameter.checks.length > 0 || parameter.options?.mode === "oneOf") {
|
|
663
685
|
return undefined
|
|
@@ -671,8 +693,55 @@ function compileJsonSchema(
|
|
|
671
693
|
}
|
|
672
694
|
return patterns
|
|
673
695
|
}
|
|
696
|
+
case "Number":
|
|
697
|
+
return parameter.checks.length === 0 ? [numberKeyPattern] : undefined
|
|
674
698
|
default:
|
|
675
|
-
throw errorWithPath(
|
|
699
|
+
throw errorWithPath(`Invalid index signature parameter ${parameter._tag}`, path)
|
|
700
|
+
}
|
|
701
|
+
}
|
|
702
|
+
|
|
703
|
+
function getTemplateLiteralPattern(
|
|
704
|
+
parts: ReadonlyArray<SchemaRepresentation.Representation>
|
|
705
|
+
): { pattern: string; exact: boolean } {
|
|
706
|
+
const activeReferences = new Set<string>()
|
|
707
|
+
let exact = true
|
|
708
|
+
const pattern = `^${parts.map(getPartPattern).join("")}$`
|
|
709
|
+
return { pattern, exact }
|
|
710
|
+
|
|
711
|
+
function getPartPattern(part: SchemaRepresentation.Representation): string {
|
|
712
|
+
// A segment check cannot generally be embedded in the enclosing pattern, even when it has a JSON Schema exporter.
|
|
713
|
+
if (part._tag !== "Reference" && part.checks.length > 0) exact = false
|
|
714
|
+
switch (part._tag) {
|
|
715
|
+
case "Reference": {
|
|
716
|
+
if (!Object.hasOwn(references, part.$ref)) {
|
|
717
|
+
throw errorWithPath(`Invalid reference ${part.$ref}`, [])
|
|
718
|
+
}
|
|
719
|
+
if (activeReferences.has(part.$ref)) {
|
|
720
|
+
throw errorWithPath(`Invalid recursive TemplateLiteral part ${part.$ref}`, [])
|
|
721
|
+
}
|
|
722
|
+
activeReferences.add(part.$ref)
|
|
723
|
+
const pattern = getPartPattern(references[part.$ref])
|
|
724
|
+
activeReferences.delete(part.$ref)
|
|
725
|
+
return pattern
|
|
726
|
+
}
|
|
727
|
+
case "Literal":
|
|
728
|
+
return RegEx.escape(globalThis.String(part.literal))
|
|
729
|
+
case "String":
|
|
730
|
+
return InternalAST.STRING_PATTERN
|
|
731
|
+
case "Number":
|
|
732
|
+
return InternalAST.FINITE_PATTERN
|
|
733
|
+
case "BigInt":
|
|
734
|
+
return "-?\\d+"
|
|
735
|
+
case "TemplateLiteral":
|
|
736
|
+
return part.parts.map(getPartPattern).join("")
|
|
737
|
+
case "Union":
|
|
738
|
+
if (part.types.length === 0) return "(?!)"
|
|
739
|
+
// Regex alternatives do not enforce that exactly one branch matches.
|
|
740
|
+
if (part.options?.mode === "oneOf") exact = false
|
|
741
|
+
return `(?:${part.types.map(getPartPattern).join("|")})`
|
|
742
|
+
default:
|
|
743
|
+
throw errorWithPath(`Invalid TemplateLiteral part ${part._tag}`, [])
|
|
744
|
+
}
|
|
676
745
|
}
|
|
677
746
|
}
|
|
678
747
|
}
|
|
@@ -702,23 +771,6 @@ function compactEnums(
|
|
|
702
771
|
return { type: sharedType, enum: values }
|
|
703
772
|
}
|
|
704
773
|
|
|
705
|
-
function getPartPattern(part: SchemaRepresentation.Representation): string {
|
|
706
|
-
switch (part._tag) {
|
|
707
|
-
case "Literal":
|
|
708
|
-
return RegEx.escape(globalThis.String(part.literal))
|
|
709
|
-
case "String":
|
|
710
|
-
return InternalAST.STRING_PATTERN
|
|
711
|
-
case "Number":
|
|
712
|
-
return InternalAST.FINITE_PATTERN
|
|
713
|
-
case "TemplateLiteral":
|
|
714
|
-
return part.parts.map(getPartPattern).join("")
|
|
715
|
-
case "Union":
|
|
716
|
-
return `(?:${part.types.map(getPartPattern).join("|")})`
|
|
717
|
-
default:
|
|
718
|
-
throw errorWithPath("Invalid schema representation document", [])
|
|
719
|
-
}
|
|
720
|
-
}
|
|
721
|
-
|
|
722
774
|
/** @internal */
|
|
723
775
|
export function toJsonSchemaDocument(
|
|
724
776
|
document: SchemaRepresentation.Document,
|