effect 4.0.4 → 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/src/52_graphql/10_basics.ts +19 -13
- package/ai-docs/src/52_graphql/30_batching.ts +6 -4
- package/ai-docs/src/52_graphql/40_aliased-batching.ts +6 -4
- package/ai-docs/tsconfig.json +3 -1
- package/dist/Array.d.ts +207 -58
- package/dist/Array.d.ts.map +1 -1
- package/dist/Array.js +45 -22
- 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 +187 -14
- package/dist/Channel.d.ts.map +1 -1
- package/dist/Channel.js +142 -33
- 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 +34 -32
- 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 +58 -21
- package/dist/Duration.js.map +1 -1
- package/dist/Effect.d.ts +548 -182
- package/dist/Effect.d.ts.map +1 -1
- package/dist/Effect.js +261 -76
- 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 +28 -9
- 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/Match.d.ts +20 -6
- package/dist/Match.d.ts.map +1 -1
- package/dist/Match.js +2 -2
- package/dist/Match.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 +37 -5
- package/dist/Path.d.ts.map +1 -1
- package/dist/Path.js +44 -6
- 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 +383 -326
- package/dist/Schema.d.ts.map +1 -1
- package/dist/Schema.js +338 -17
- 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 +16 -2
- package/dist/String.d.ts.map +1 -1
- package/dist/String.js +25 -10
- 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/TxRef.d.ts.map +1 -1
- package/dist/TxRef.js +3 -2
- package/dist/TxRef.js.map +1 -1
- package/dist/ai/AiError.d.ts +78 -14
- package/dist/ai/AiError.d.ts.map +1 -1
- package/dist/ai/AiError.js +51 -3
- 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 +116 -20
- package/dist/ai/Decision.d.ts.map +1 -1
- package/dist/ai/Decision.js +37 -3
- 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 +183 -95
- 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 +47 -35
- 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 +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 +6 -52
- package/dist/ai/McpServer.d.ts.map +1 -1
- package/dist/ai/McpServer.js +27 -50
- 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 +148 -4
- 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 +10 -0
- package/dist/cli/Completions.d.ts.map +1 -1
- package/dist/cli/Completions.js.map +1 -1
- package/dist/cli/Flag.d.ts +215 -0
- package/dist/cli/Flag.d.ts.map +1 -1
- package/dist/cli/Flag.js +89 -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 +194 -0
- package/dist/cli/Param.d.ts.map +1 -1
- package/dist/cli/Param.js +86 -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 +7 -3
- package/dist/cli/internal/command.js.map +1 -1
- package/dist/cli/internal/completions/bash.js +7 -5
- package/dist/cli/internal/completions/bash.js.map +1 -1
- package/dist/cli/internal/completions/descriptor.js +16 -1
- package/dist/cli/internal/completions/descriptor.js.map +1 -1
- package/dist/cli/internal/completions/fish.js +12 -10
- package/dist/cli/internal/completions/fish.js.map +1 -1
- package/dist/cli/internal/completions/powershell.js +20 -10
- package/dist/cli/internal/completions/powershell.js.map +1 -1
- package/dist/cli/internal/completions/zsh.js +15 -8
- 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 +35 -15
- package/dist/cli/internal/parser.js.map +1 -1
- package/dist/cli/internal/wizard.d.ts.map +1 -1
- package/dist/cli/internal/wizard.js +2 -1
- package/dist/cli/internal/wizard.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 +2 -1
- package/dist/cluster/ClusterWorkflowEngine.d.ts.map +1 -1
- package/dist/cluster/ClusterWorkflowEngine.js +98 -18
- 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 +20 -12
- package/dist/cluster/MessageStorage.js.map +1 -1
- package/dist/cluster/Runners.d.ts.map +1 -1
- package/dist/cluster/Runners.js +96 -37
- 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 +66 -9
- 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/Sse.js +1 -1
- 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.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/GraphQLClient.d.ts.map +1 -1
- package/dist/graphql/GraphQLClient.js +12 -5
- package/dist/graphql/GraphQLClient.js.map +1 -1
- 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 +252 -11
- package/dist/graphql/GraphQLProtocol.d.ts.map +1 -1
- package/dist/graphql/GraphQLProtocol.js +99 -8
- package/dist/graphql/GraphQLProtocol.js.map +1 -1
- package/dist/graphql/GraphQLResolver.d.ts +3 -1
- package/dist/graphql/GraphQLResolver.d.ts.map +1 -1
- package/dist/graphql/GraphQLResolver.js +91 -19
- package/dist/graphql/GraphQLResolver.js.map +1 -1
- package/dist/http/FetchHttpClient.d.ts +13 -3
- package/dist/http/FetchHttpClient.d.ts.map +1 -1
- package/dist/http/FetchHttpClient.js +56 -6
- package/dist/http/FetchHttpClient.js.map +1 -1
- package/dist/http/FindMyWay/internal/router.js +12 -1
- package/dist/http/FindMyWay/internal/router.js.map +1 -1
- package/dist/http/Headers.d.ts +230 -3
- package/dist/http/Headers.d.ts.map +1 -1
- package/dist/http/Headers.js +267 -5
- package/dist/http/Headers.js.map +1 -1
- package/dist/http/HttpClient.d.ts +105 -0
- package/dist/http/HttpClient.d.ts.map +1 -1
- package/dist/http/HttpClient.js +69 -17
- package/dist/http/HttpClient.js.map +1 -1
- package/dist/http/HttpClientError.d.ts.map +1 -1
- package/dist/http/HttpClientError.js +8 -6
- package/dist/http/HttpClientError.js.map +1 -1
- package/dist/http/HttpClientRequest.d.ts +274 -7
- package/dist/http/HttpClientRequest.d.ts.map +1 -1
- package/dist/http/HttpClientRequest.js +91 -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 +179 -2
- package/dist/http/HttpMiddleware.d.ts.map +1 -1
- package/dist/http/HttpMiddleware.js +226 -18
- package/dist/http/HttpMiddleware.js.map +1 -1
- package/dist/http/HttpRouter.d.ts.map +1 -1
- package/dist/http/HttpRouter.js +58 -14
- 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 +11 -7
- 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 +38 -12
- 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 +25 -17
- package/dist/http/HttpStaticServer.js.map +1 -1
- package/dist/http/HttpTraceContext.js +1 -1
- package/dist/http/HttpTraceContext.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 +8 -2
- package/dist/http/Url.js.map +1 -1
- package/dist/http/UrlParams.d.ts +112 -8
- package/dist/http/UrlParams.d.ts.map +1 -1
- package/dist/http/UrlParams.js +141 -14
- package/dist/http/UrlParams.js.map +1 -1
- package/dist/http/internal/compression.d.ts +1 -1
- package/dist/http/internal/compression.d.ts.map +1 -1
- package/dist/http/internal/compression.js +2 -10
- package/dist/http/internal/compression.js.map +1 -1
- package/dist/http/internal/compressionBody.d.ts +2 -0
- package/dist/http/internal/compressionBody.d.ts.map +1 -0
- package/dist/http/internal/compressionBody.js +36 -0
- package/dist/http/internal/compressionBody.js.map +1 -0
- package/dist/http/internal/decompression.d.ts +2 -0
- package/dist/http/internal/decompression.d.ts.map +1 -0
- package/dist/http/internal/decompression.js +168 -0
- package/dist/http/internal/decompression.js.map +1 -0
- 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/tracing.js +14 -4
- package/dist/http/internal/tracing.js.map +1 -1
- package/dist/http/internal/urlParams.d.ts +2 -0
- package/dist/http/internal/urlParams.d.ts.map +1 -0
- package/dist/http/internal/urlParams.js +4 -0
- package/dist/http/internal/urlParams.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 +85 -24
- 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 +18 -2
- 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 +89 -76
- package/dist/internal/effect.js.map +1 -1
- package/dist/internal/graphql.js +12 -2
- package/dist/internal/graphql.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/Otlp.d.ts +15 -0
- package/dist/observability/Otlp.d.ts.map +1 -1
- package/dist/observability/Otlp.js +3 -0
- package/dist/observability/Otlp.js.map +1 -1
- package/dist/observability/OtlpExporter.d.ts +8 -0
- package/dist/observability/OtlpExporter.d.ts.map +1 -1
- package/dist/observability/OtlpExporter.js +15 -13
- package/dist/observability/OtlpExporter.js.map +1 -1
- package/dist/observability/OtlpLogger.d.ts +17 -0
- package/dist/observability/OtlpLogger.d.ts.map +1 -1
- package/dist/observability/OtlpLogger.js +14 -1
- package/dist/observability/OtlpLogger.js.map +1 -1
- package/dist/observability/OtlpMetrics.d.ts +17 -0
- package/dist/observability/OtlpMetrics.d.ts.map +1 -1
- package/dist/observability/OtlpMetrics.js +18 -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/OtlpTracer.d.ts +17 -0
- package/dist/observability/OtlpTracer.d.ts.map +1 -1
- package/dist/observability/OtlpTracer.js +15 -2
- package/dist/observability/OtlpTracer.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 +6 -0
- package/dist/reactivity/AsyncResult.d.ts.map +1 -1
- package/dist/reactivity/AsyncResult.js +28 -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 +47 -10
- 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 +202 -61
- 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 +151 -12
- package/dist/sql/SqlClient.d.ts.map +1 -1
- package/dist/sql/SqlClient.js +156 -34
- 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 +16 -3
- package/dist/testing/TestClock.d.ts.map +1 -1
- package/dist/testing/TestClock.js +115 -23
- 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/Activity.js +1 -0
- package/dist/workflow/Activity.js.map +1 -1
- package/dist/workflow/Workflow.d.ts +22 -0
- package/dist/workflow/Workflow.d.ts.map +1 -1
- package/dist/workflow/Workflow.js +15 -3
- package/dist/workflow/Workflow.js.map +1 -1
- package/dist/workflow/WorkflowEngine.d.ts +20 -1
- package/dist/workflow/WorkflowEngine.d.ts.map +1 -1
- package/dist/workflow/WorkflowEngine.js +52 -24
- package/dist/workflow/WorkflowEngine.js.map +1 -1
- package/package.json +13 -3
- package/src/Array.ts +223 -61
- package/src/Bytes.ts +111 -0
- package/src/Channel.ts +287 -439
- package/src/ChannelSchema.ts +1 -49
- package/src/Chunk.ts +55 -61
- package/src/Config.ts +12 -86
- package/src/ConfigProvider.ts +41 -44
- package/src/Cron.ts +6 -3
- package/src/Duration.ts +70 -21
- package/src/Effect.ts +642 -220
- 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 +33 -9
- 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/Match.ts +65 -12
- 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 +61 -8
- 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 +596 -348
- 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 +25 -12
- package/src/TextDiff.ts +766 -0
- package/src/TxHashMap.ts +1 -103
- package/src/TxHashSet.ts +48 -753
- package/src/TxRef.ts +4 -2
- package/src/ai/AiError.ts +69 -5
- package/src/ai/Chat.ts +10 -5
- package/src/ai/Decision.ts +119 -22
- package/src/ai/DecisionModel.ts +265 -109
- package/src/ai/EmbeddingModel.ts +25 -13
- package/src/ai/LanguageModel.ts +57 -51
- 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 +232 -275
- 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 +10 -0
- package/src/cli/Flag.ts +218 -0
- package/src/cli/GlobalFlag.ts +3 -3
- package/src/cli/Param.ts +218 -0
- package/src/cli/TerminalCapabilities.ts +156 -0
- package/src/cli/index.ts +6 -0
- package/src/cli/internal/command.ts +10 -4
- package/src/cli/internal/completions/bash.ts +7 -5
- package/src/cli/internal/completions/descriptor.ts +20 -1
- package/src/cli/internal/completions/fish.ts +12 -10
- package/src/cli/internal/completions/powershell.ts +25 -13
- package/src/cli/internal/completions/zsh.ts +15 -8
- package/src/cli/internal/formatter.ts +18 -0
- package/src/cli/internal/lexer.ts +12 -5
- package/src/cli/internal/parser.ts +43 -14
- package/src/cli/internal/wizard.ts +2 -1
- package/src/cluster/ClusterCron.ts +94 -35
- package/src/cluster/ClusterMetrics.ts +149 -7
- package/src/cluster/ClusterWorkflowEngine.ts +164 -53
- package/src/cluster/Entity.ts +4 -0
- package/src/cluster/MessageStorage.ts +21 -3
- package/src/cluster/Runners.ts +145 -72
- 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 +81 -11
- 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/Sse.ts +1 -1
- 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/GraphQLClient.ts +17 -5
- package/src/graphql/GraphQLClientError.ts +5 -12
- package/src/graphql/GraphQLProtocol.ts +277 -20
- package/src/graphql/GraphQLResolver.ts +109 -230
- package/src/http/FetchHttpClient.ts +61 -8
- package/src/http/FindMyWay/internal/router.ts +13 -1
- package/src/http/Headers.ts +343 -163
- package/src/http/HttpClient.ts +144 -136
- package/src/http/HttpClientError.ts +10 -6
- package/src/http/HttpClientRequest.ts +315 -11
- 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 +265 -28
- package/src/http/HttpRouter.ts +67 -14
- package/src/http/HttpServerError.ts +14 -7
- package/src/http/HttpServerRequest.ts +73 -14
- package/src/http/HttpServerResponse.ts +49 -23
- package/src/http/HttpStaticServer.ts +29 -19
- package/src/http/HttpTraceContext.ts +1 -1
- 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 +8 -2
- package/src/http/UrlParams.ts +225 -26
- package/src/http/internal/compression.ts +3 -17
- package/src/http/internal/compressionBody.ts +56 -0
- package/src/http/internal/decompression.ts +235 -0
- package/src/http/internal/lazyStream.ts +25 -0
- package/src/http/internal/requestState.ts +33 -0
- package/src/http/internal/tracing.ts +21 -4
- package/src/http/internal/urlParams.ts +5 -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 +160 -31
- 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 +22 -2
- package/src/internal/dateTime.ts +20 -7
- package/src/internal/effect.ts +125 -88
- package/src/internal/graphql.ts +30 -7
- 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/Otlp.ts +18 -0
- package/src/observability/OtlpExporter.ts +19 -15
- package/src/observability/OtlpLogger.ts +31 -2
- package/src/observability/OtlpMetrics.ts +35 -4
- package/src/observability/OtlpResource.ts +16 -6
- package/src/observability/OtlpSerialization.ts +17 -3
- package/src/observability/OtlpTracer.ts +32 -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 +35 -38
- package/src/reactivity/Atom.ts +134 -166
- package/src/reactivity/AtomHttpApi.ts +10 -16
- package/src/reactivity/AtomRegistry.ts +53 -30
- 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 +285 -104
- 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 +275 -36
- package/src/sql/SqlResolver.ts +9 -0
- package/src/sql/Statement.ts +35 -8
- package/src/testing/TestClock.ts +147 -29
- package/src/testing/TestSchema.ts +9 -3
- package/src/workflow/Activity.ts +1 -0
- package/src/workflow/Workflow.ts +31 -5
- package/src/workflow/WorkflowEngine.ts +93 -31
- 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
|
@@ -6,36 +6,96 @@ import * as InternalAST from "../../SchemaAST.ts"
|
|
|
6
6
|
import type * as SchemaRepresentation from "../../SchemaRepresentation.ts"
|
|
7
7
|
import { errorWithPath } from "../errors.ts"
|
|
8
8
|
import * as InternalRecord from "../record.ts"
|
|
9
|
+
import * as InternalAnnotations from "./annotations.ts"
|
|
9
10
|
import { fromRepresentation, fromRepresentations } from "./fromRepresentation.ts"
|
|
10
11
|
|
|
11
12
|
type Path = ReadonlyArray<string | number>
|
|
12
13
|
type Representation = SchemaRepresentation.Representation
|
|
13
|
-
type Check =
|
|
14
|
+
type Check = Filter | FilterGroup
|
|
14
15
|
|
|
15
|
-
interface
|
|
16
|
-
readonly
|
|
16
|
+
interface Filter extends SchemaRepresentation.Filter {
|
|
17
|
+
readonly representation: SchemaRepresentation.CheckRepresentationAnnotation<ImportedJsonSchemaRepresentation>
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
interface FilterGroup {
|
|
21
|
+
readonly _tag: "FilterGroup"
|
|
22
|
+
readonly checks: readonly [Check, ...Array<Check>]
|
|
23
|
+
readonly annotations?: Schema.Annotations.Annotations | undefined
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
interface ImportedAnnotations {
|
|
27
|
+
// Standard annotations may describe a value or a group of checks. Custom
|
|
28
|
+
// annotations always describe the value, even when its checks simplify away.
|
|
17
29
|
readonly annotations?: Schema.Annotations.Annotations | undefined
|
|
30
|
+
readonly customAnnotations?: Schema.Annotations.Annotations | undefined
|
|
18
31
|
}
|
|
19
32
|
|
|
20
|
-
|
|
21
|
-
readonly
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
33
|
+
interface Checked extends ImportedAnnotations {
|
|
34
|
+
readonly checks: ReadonlyArray<Check>
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
interface ImportedKeyword<Tag extends string> extends Checked {
|
|
38
|
+
readonly _tag: Tag
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
interface ImportedLiteral extends ImportedKeyword<"Literal"> {
|
|
42
|
+
readonly literal: string | number | boolean
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
interface ImportedElement {
|
|
46
|
+
readonly type: ImportedJsonSchemaRepresentation
|
|
47
|
+
readonly isOptional: boolean
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
interface ImportedArrays extends ImportedKeyword<"Arrays"> {
|
|
51
|
+
readonly elements: ReadonlyArray<ImportedElement>
|
|
52
|
+
readonly rest: ReadonlyArray<ImportedJsonSchemaRepresentation>
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
interface ImportedProperty extends ImportedElement {
|
|
56
|
+
readonly name: string
|
|
57
|
+
readonly isMutable: false
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
interface ImportedIndexSignature {
|
|
61
|
+
readonly parameter: ImportedJsonSchemaRepresentation
|
|
62
|
+
readonly type: ImportedJsonSchemaRepresentation
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
interface ImportedReference extends SchemaRepresentation.Reference, ImportedAnnotations {
|
|
66
|
+
readonly path: Path
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
interface ImportedObjects extends ImportedKeyword<"Objects"> {
|
|
70
|
+
readonly propertySignatures: ReadonlyArray<ImportedProperty>
|
|
71
|
+
readonly indexSignatures: ReadonlyArray<ImportedIndexSignature>
|
|
72
|
+
readonly scopes: ReadonlyArray<ImportedObjectScope>
|
|
73
|
+
readonly path: Path
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
interface ImportedUnion extends ImportedKeyword<"Union"> {
|
|
77
|
+
readonly types: ReadonlyArray<ImportedJsonSchemaRepresentation>
|
|
78
|
+
readonly options?: SchemaRepresentation.Union["options"]
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
// Import nodes keep source metadata and scopes until normalization is complete.
|
|
82
|
+
// Only finalize produces the public Effect representation.
|
|
83
|
+
type ImportedJsonSchemaRepresentation =
|
|
84
|
+
| ImportedKeyword<"Never">
|
|
85
|
+
| ImportedKeyword<"Unknown">
|
|
86
|
+
| ImportedKeyword<"Null">
|
|
87
|
+
| ImportedKeyword<"String">
|
|
88
|
+
| ImportedKeyword<"Number">
|
|
89
|
+
| ImportedKeyword<"Boolean">
|
|
90
|
+
| ImportedLiteral
|
|
91
|
+
| ImportedArrays
|
|
92
|
+
| ImportedObjects
|
|
93
|
+
| ImportedUnion
|
|
94
|
+
| ImportedReference
|
|
35
95
|
|
|
36
96
|
interface ImportedObjectPattern {
|
|
37
97
|
readonly source: string
|
|
38
|
-
readonly parameter:
|
|
98
|
+
readonly parameter: ImportedKeyword<"String">
|
|
39
99
|
readonly type: ImportedJsonSchemaRepresentation
|
|
40
100
|
}
|
|
41
101
|
|
|
@@ -93,6 +153,47 @@ const jsonSchemaTypeSpecificKeys = [
|
|
|
93
153
|
"maxItems",
|
|
94
154
|
"uniqueItems"
|
|
95
155
|
]
|
|
156
|
+
|
|
157
|
+
const jsonSchemaAnnotationExcludedKeys = new Set([
|
|
158
|
+
...jsonSchemaTypeSpecificKeys,
|
|
159
|
+
...InternalAnnotations.jsonSchemaAnnotationKeys,
|
|
160
|
+
...InternalAnnotations.annotationExcludedKeys,
|
|
161
|
+
"$schema",
|
|
162
|
+
"$id",
|
|
163
|
+
"$ref",
|
|
164
|
+
"$defs",
|
|
165
|
+
"$anchor",
|
|
166
|
+
"$dynamicRef",
|
|
167
|
+
"$dynamicAnchor",
|
|
168
|
+
"$vocabulary",
|
|
169
|
+
"$comment",
|
|
170
|
+
"type",
|
|
171
|
+
"const",
|
|
172
|
+
"enum",
|
|
173
|
+
"allOf",
|
|
174
|
+
"anyOf",
|
|
175
|
+
"oneOf",
|
|
176
|
+
"not",
|
|
177
|
+
"if",
|
|
178
|
+
"then",
|
|
179
|
+
"else",
|
|
180
|
+
"contains",
|
|
181
|
+
"minContains",
|
|
182
|
+
"maxContains",
|
|
183
|
+
"dependentRequired",
|
|
184
|
+
"dependentSchemas",
|
|
185
|
+
"unevaluatedItems",
|
|
186
|
+
"unevaluatedProperties",
|
|
187
|
+
"definitions",
|
|
188
|
+
"dependencies",
|
|
189
|
+
"additionalItems",
|
|
190
|
+
"identifier",
|
|
191
|
+
"expected",
|
|
192
|
+
"message",
|
|
193
|
+
"messageMissingKey",
|
|
194
|
+
"messageUnexpectedKey"
|
|
195
|
+
])
|
|
196
|
+
|
|
96
197
|
function isImportedJsonSchemaType(input: unknown): input is JsonSchema.Type {
|
|
97
198
|
return input === "integer" || typeof input === "string" && jsonSchemaValueTypes.some((type) => type === input)
|
|
98
199
|
}
|
|
@@ -104,7 +205,7 @@ function hasTypeSpecificKeywords(schema: JsonSchema.JsonSchema): boolean {
|
|
|
104
205
|
function jsonSchemaFilter(
|
|
105
206
|
id: string,
|
|
106
207
|
payload: Schema.Json,
|
|
107
|
-
schemas?: ReadonlyArray<
|
|
208
|
+
schemas?: ReadonlyArray<ImportedJsonSchemaRepresentation>
|
|
108
209
|
): Check {
|
|
109
210
|
return {
|
|
110
211
|
_tag: "Filter",
|
|
@@ -129,8 +230,9 @@ function addNumberCheck(
|
|
|
129
230
|
}
|
|
130
231
|
|
|
131
232
|
function jsonSchemaAnnotations(
|
|
132
|
-
schema: JsonSchema.JsonSchema
|
|
133
|
-
|
|
233
|
+
schema: JsonSchema.JsonSchema,
|
|
234
|
+
options: SchemaRepresentation.FromJsonSchemaOptions | undefined
|
|
235
|
+
): ImportedAnnotations {
|
|
134
236
|
const annotations: Record<string, Schema.Json> = {}
|
|
135
237
|
if (typeof schema.title === "string") annotations.title = schema.title
|
|
136
238
|
if (typeof schema.description === "string") annotations.description = schema.description
|
|
@@ -142,7 +244,19 @@ function jsonSchemaAnnotations(
|
|
|
142
244
|
if (typeof schema.contentEncoding === "string") annotations.contentEncoding = schema.contentEncoding
|
|
143
245
|
if (typeof schema.contentMediaType === "string") annotations.contentMediaType = schema.contentMediaType
|
|
144
246
|
if (InternalAST.isJson(schema.contentSchema)) annotations.contentSchema = schema.contentSchema
|
|
145
|
-
|
|
247
|
+
let customAnnotations: Schema.Annotations.Annotations | undefined
|
|
248
|
+
if (options?.includeAnnotationKey !== undefined) {
|
|
249
|
+
for (const key of Object.keys(schema)) {
|
|
250
|
+
if (
|
|
251
|
+
key.startsWith("~") ||
|
|
252
|
+
jsonSchemaAnnotationExcludedKeys.has(key) ||
|
|
253
|
+
!options.includeAnnotationKey(key)
|
|
254
|
+
) continue
|
|
255
|
+
const value = schema[key]
|
|
256
|
+
if (InternalAST.isJson(value)) InternalRecord.assignProperty(customAnnotations ??= {}, key, value)
|
|
257
|
+
}
|
|
258
|
+
}
|
|
259
|
+
return { annotations: Object.keys(annotations).length === 0 ? undefined : annotations, customAnnotations }
|
|
146
260
|
}
|
|
147
261
|
|
|
148
262
|
function jsonDeclaration(
|
|
@@ -169,28 +283,24 @@ function translateJsonSchemaMultiDocument(
|
|
|
169
283
|
singleRoot = false
|
|
170
284
|
): SchemaRepresentation.MultiDocument {
|
|
171
285
|
const definitionCache = new Map<string, ImportedJsonSchemaRepresentation | null>()
|
|
172
|
-
const reachableDefinitions = new Map<string, Path>()
|
|
173
|
-
const objectScopesByProperties = new WeakMap<
|
|
174
|
-
SchemaRepresentation.Objects["propertySignatures"],
|
|
175
|
-
readonly [ReadonlyArray<ImportedObjectScope>, Path]
|
|
176
|
-
>()
|
|
177
|
-
const annotatedReferences: Array<{
|
|
178
|
-
readonly reference: SchemaRepresentation.Reference
|
|
179
|
-
readonly path: Path
|
|
180
|
-
}> = []
|
|
181
286
|
const resolvingChoices = new Set<string>()
|
|
182
|
-
const finalReferences = new
|
|
287
|
+
const finalReferences = new Map<string, ImportedReference>()
|
|
183
288
|
let inNestedResource = false
|
|
184
289
|
|
|
185
|
-
function finalize(
|
|
290
|
+
function finalize(input: ImportedJsonSchemaRepresentation): Representation {
|
|
291
|
+
const annotations = mergeAnnotations(input.annotations, input.customAnnotations)
|
|
292
|
+
if (input._tag === "Reference") {
|
|
293
|
+
if (!finalReferences.has(input.$ref)) finalReferences.set(input.$ref, input)
|
|
294
|
+
const reference: SchemaRepresentation.Reference = { _tag: "Reference", $ref: input.$ref }
|
|
295
|
+
if (annotations === undefined) return reference
|
|
296
|
+
resolveReference(input, input.path)
|
|
297
|
+
return { _tag: "Suspend", thunk: reference, checks: [], annotations }
|
|
298
|
+
}
|
|
299
|
+
const { customAnnotations, ...node } = input
|
|
300
|
+
const representation = { ...node, annotations, checks: node.checks.map(finalizeCheck) }
|
|
186
301
|
switch (representation._tag) {
|
|
187
302
|
case "Unknown":
|
|
188
|
-
return jsonDeclaration(
|
|
189
|
-
case "Reference":
|
|
190
|
-
finalReferences.add(representation.$ref)
|
|
191
|
-
return representation
|
|
192
|
-
case "Suspend":
|
|
193
|
-
return { ...representation, thunk: finalize(representation.thunk) }
|
|
303
|
+
return jsonDeclaration(annotations)
|
|
194
304
|
case "Arrays":
|
|
195
305
|
return {
|
|
196
306
|
...representation,
|
|
@@ -200,10 +310,10 @@ function translateJsonSchemaMultiDocument(
|
|
|
200
310
|
})),
|
|
201
311
|
rest: representation.rest.map(finalize)
|
|
202
312
|
}
|
|
203
|
-
case "Objects":
|
|
313
|
+
case "Objects": {
|
|
204
314
|
// Intersections may reduce open patterns to fixed properties, so reject only
|
|
205
315
|
// if an open pattern remains in the final representation.
|
|
206
|
-
const
|
|
316
|
+
const { scopes, path, ...object } = representation
|
|
207
317
|
if (
|
|
208
318
|
representation.indexSignatures[0]?.parameter === string &&
|
|
209
319
|
scopes.some((scope) => scope.patterns.length > 0)
|
|
@@ -214,7 +324,7 @@ function translateJsonSchemaMultiDocument(
|
|
|
214
324
|
)
|
|
215
325
|
}
|
|
216
326
|
return {
|
|
217
|
-
...
|
|
327
|
+
...object,
|
|
218
328
|
propertySignatures: representation.propertySignatures.map((property) => ({
|
|
219
329
|
...property,
|
|
220
330
|
type: finalize(property.type)
|
|
@@ -222,9 +332,9 @@ function translateJsonSchemaMultiDocument(
|
|
|
222
332
|
indexSignatures: representation.indexSignatures.map((indexSignature) => ({
|
|
223
333
|
parameter: finalize(indexSignature.parameter),
|
|
224
334
|
type: finalize(indexSignature.type)
|
|
225
|
-
}))
|
|
226
|
-
checks: representation.checks.map(finalizeCheck)
|
|
335
|
+
}))
|
|
227
336
|
}
|
|
337
|
+
}
|
|
228
338
|
case "Union":
|
|
229
339
|
return { ...representation, types: representation.types.map(finalize) }
|
|
230
340
|
default:
|
|
@@ -232,10 +342,16 @@ function translateJsonSchemaMultiDocument(
|
|
|
232
342
|
}
|
|
233
343
|
}
|
|
234
344
|
|
|
235
|
-
function finalizeCheck(check: Check): Check {
|
|
345
|
+
function finalizeCheck(check: Check): SchemaRepresentation.Check {
|
|
346
|
+
if (check._tag === "FilterGroup") {
|
|
347
|
+
return {
|
|
348
|
+
...check,
|
|
349
|
+
checks: check.checks.map(finalizeCheck) as [SchemaRepresentation.Check, ...Array<SchemaRepresentation.Check>]
|
|
350
|
+
}
|
|
351
|
+
}
|
|
236
352
|
const representation = check.representation
|
|
237
|
-
const schemas = representation
|
|
238
|
-
if (
|
|
353
|
+
const schemas = representation.schemas
|
|
354
|
+
if (schemas === undefined) {
|
|
239
355
|
return check
|
|
240
356
|
}
|
|
241
357
|
return {
|
|
@@ -249,15 +365,13 @@ function translateJsonSchemaMultiDocument(
|
|
|
249
365
|
|
|
250
366
|
function annotate(
|
|
251
367
|
representation: ImportedJsonSchemaRepresentation,
|
|
252
|
-
|
|
368
|
+
source: ImportedAnnotations
|
|
253
369
|
): ImportedJsonSchemaRepresentation {
|
|
254
|
-
if (annotations === undefined) return representation
|
|
255
|
-
if (representation._tag === "Reference") {
|
|
256
|
-
return { _tag: "Suspend", annotations, checks: [], thunk: representation }
|
|
257
|
-
}
|
|
370
|
+
if (source.annotations === undefined && source.customAnnotations === undefined) return representation
|
|
258
371
|
return {
|
|
259
372
|
...representation,
|
|
260
|
-
annotations:
|
|
373
|
+
annotations: mergeAnnotations(representation.annotations, source.annotations),
|
|
374
|
+
customAnnotations: mergeAnnotations(representation.customAnnotations, source.customAnnotations)
|
|
261
375
|
}
|
|
262
376
|
}
|
|
263
377
|
|
|
@@ -284,7 +398,7 @@ function translateJsonSchemaMultiDocument(
|
|
|
284
398
|
}
|
|
285
399
|
|
|
286
400
|
function resolveReference(
|
|
287
|
-
reference:
|
|
401
|
+
reference: ImportedReference,
|
|
288
402
|
path: Path,
|
|
289
403
|
recursiveReferenceError?: string,
|
|
290
404
|
seen: Set<string> = new Set()
|
|
@@ -298,12 +412,9 @@ function translateJsonSchemaMultiDocument(
|
|
|
298
412
|
seen.add(reference.$ref)
|
|
299
413
|
const representation = translateDefinition(reference.$ref, path, recursiveReferenceError)
|
|
300
414
|
if (representation._tag === "Reference") {
|
|
301
|
-
return resolveReference(representation, path, recursiveReferenceError, seen)
|
|
302
|
-
}
|
|
303
|
-
if (representation._tag === "Suspend" && representation.thunk._tag === "Reference") {
|
|
304
415
|
return annotate(
|
|
305
|
-
resolveReference(representation
|
|
306
|
-
representation
|
|
416
|
+
resolveReference(representation, path, recursiveReferenceError, seen),
|
|
417
|
+
representation
|
|
307
418
|
)
|
|
308
419
|
}
|
|
309
420
|
return representation
|
|
@@ -320,34 +431,25 @@ function translateJsonSchemaMultiDocument(
|
|
|
320
431
|
|
|
321
432
|
function annotateIntersection(
|
|
322
433
|
representation: ImportedJsonSchemaRepresentation,
|
|
323
|
-
left:
|
|
324
|
-
right:
|
|
434
|
+
left: ImportedAnnotations,
|
|
435
|
+
right: ImportedAnnotations
|
|
325
436
|
): ImportedJsonSchemaRepresentation {
|
|
326
|
-
return annotate(
|
|
327
|
-
representation,
|
|
328
|
-
mergeAnnotations(
|
|
329
|
-
left._tag === "Reference" ? undefined : left.annotations,
|
|
330
|
-
right._tag === "Reference" ? undefined : right.annotations
|
|
331
|
-
)
|
|
332
|
-
)
|
|
437
|
+
return annotate(annotate(representation, left), right)
|
|
333
438
|
}
|
|
334
439
|
|
|
335
440
|
function intersectChecks(
|
|
336
441
|
left: Checked,
|
|
337
442
|
right: Checked,
|
|
338
443
|
deduplicate: ReadonlyArray<string> = []
|
|
339
|
-
):
|
|
444
|
+
): Checked {
|
|
340
445
|
let checks = right.checks
|
|
341
446
|
for (const id of deduplicate) {
|
|
342
447
|
if (left.checks.some((check) => check._tag === "Filter" && check.representation?.id === id)) {
|
|
343
448
|
checks = checks.filter((check) => check._tag !== "Filter" || check.representation?.id !== id)
|
|
344
449
|
}
|
|
345
450
|
}
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
return [left.checks, annotations]
|
|
349
|
-
}
|
|
350
|
-
if (right.annotations !== undefined) {
|
|
451
|
+
const annotations = checks.length === 0 ? mergeAnnotations(left.annotations, right.annotations) : left.annotations
|
|
452
|
+
if (checks.length > 0 && right.annotations !== undefined) {
|
|
351
453
|
checks = checks.length === 1 && checks[0].annotations === undefined
|
|
352
454
|
? [{ ...checks[0], annotations: right.annotations }]
|
|
353
455
|
: [{
|
|
@@ -356,14 +458,18 @@ function translateJsonSchemaMultiDocument(
|
|
|
356
458
|
annotations: right.annotations
|
|
357
459
|
}]
|
|
358
460
|
}
|
|
359
|
-
return
|
|
461
|
+
return {
|
|
462
|
+
checks: [...left.checks, ...checks],
|
|
463
|
+
annotations,
|
|
464
|
+
customAnnotations: mergeAnnotations(left.customAnnotations, right.customAnnotations)
|
|
465
|
+
}
|
|
360
466
|
}
|
|
361
467
|
|
|
362
468
|
function satisfiesPrimitiveCheck(check: Check, value: string | number): boolean | undefined {
|
|
363
469
|
if (check._tag === "FilterGroup") {
|
|
364
470
|
return check.checks.every((check) => satisfiesPrimitiveCheck(check, value))
|
|
365
471
|
}
|
|
366
|
-
const representation = check.representation
|
|
472
|
+
const representation = check.representation
|
|
367
473
|
const payload = representation.payload as Record<string, any>
|
|
368
474
|
switch (representation.id) {
|
|
369
475
|
case "effect/schema/isMinLength":
|
|
@@ -392,10 +498,8 @@ function translateJsonSchemaMultiDocument(
|
|
|
392
498
|
}
|
|
393
499
|
|
|
394
500
|
function satisfiesLiteral(
|
|
395
|
-
representation:
|
|
396
|
-
|
|
397
|
-
| SchemaRepresentation.Number,
|
|
398
|
-
literal: SchemaRepresentation.Literal
|
|
501
|
+
representation: ImportedKeyword<"String"> | ImportedKeyword<"Number">,
|
|
502
|
+
literal: ImportedLiteral
|
|
399
503
|
): boolean {
|
|
400
504
|
const value = literal.literal
|
|
401
505
|
if (representation._tag === "String" ? typeof value !== "string" : typeof value !== "number") {
|
|
@@ -405,11 +509,8 @@ function translateJsonSchemaMultiDocument(
|
|
|
405
509
|
}
|
|
406
510
|
|
|
407
511
|
function intersectPrimitiveWithLiteral(
|
|
408
|
-
primitive:
|
|
409
|
-
|
|
410
|
-
| SchemaRepresentation.Number
|
|
411
|
-
| SchemaRepresentation.Boolean,
|
|
412
|
-
literal: SchemaRepresentation.Literal
|
|
512
|
+
primitive: ImportedKeyword<"String"> | ImportedKeyword<"Number"> | ImportedKeyword<"Boolean">,
|
|
513
|
+
literal: ImportedLiteral
|
|
413
514
|
): ImportedJsonSchemaRepresentation {
|
|
414
515
|
const satisfies = primitive._tag === "Boolean"
|
|
415
516
|
? typeof literal.literal === "boolean"
|
|
@@ -418,11 +519,11 @@ function translateJsonSchemaMultiDocument(
|
|
|
418
519
|
}
|
|
419
520
|
|
|
420
521
|
function intersectArrays(
|
|
421
|
-
left:
|
|
422
|
-
right:
|
|
522
|
+
left: ImportedArrays,
|
|
523
|
+
right: ImportedArrays,
|
|
423
524
|
path: Path
|
|
424
|
-
): Pick<
|
|
425
|
-
const elements: Array<
|
|
525
|
+
): Pick<ImportedArrays, "elements" | "rest"> | undefined {
|
|
526
|
+
const elements: Array<ImportedElement> = []
|
|
426
527
|
const length = Math.max(left.elements.length, right.elements.length)
|
|
427
528
|
for (let index = 0; index < length; index++) {
|
|
428
529
|
const leftElement = left.elements[index]
|
|
@@ -434,8 +535,8 @@ function translateJsonSchemaMultiDocument(
|
|
|
434
535
|
return isOptional ? { elements, rest: [] } : undefined
|
|
435
536
|
}
|
|
436
537
|
const type = intersect(
|
|
437
|
-
leftType
|
|
438
|
-
rightType
|
|
538
|
+
leftType,
|
|
539
|
+
rightType,
|
|
439
540
|
[...path, "elements", index, "type"]
|
|
440
541
|
)
|
|
441
542
|
if (type._tag === "Never") {
|
|
@@ -453,8 +554,8 @@ function translateJsonSchemaMultiDocument(
|
|
|
453
554
|
return { elements, rest: [] }
|
|
454
555
|
}
|
|
455
556
|
const rest = intersect(
|
|
456
|
-
leftRest
|
|
457
|
-
rightRest
|
|
557
|
+
leftRest,
|
|
558
|
+
rightRest,
|
|
458
559
|
[...path, "rest", 0]
|
|
459
560
|
)
|
|
460
561
|
return { elements, rest: rest._tag === "Never" ? [] : [rest] }
|
|
@@ -473,8 +574,7 @@ function translateJsonSchemaMultiDocument(
|
|
|
473
574
|
|
|
474
575
|
function lowerObject(
|
|
475
576
|
scopes: ReadonlyArray<ImportedObjectScope>,
|
|
476
|
-
|
|
477
|
-
annotations: Schema.Annotations.Annotations | undefined,
|
|
577
|
+
checked: Checked,
|
|
478
578
|
path: Path
|
|
479
579
|
): ImportedJsonSchemaRepresentation {
|
|
480
580
|
const names = new Set<string>()
|
|
@@ -499,7 +599,7 @@ function translateJsonSchemaMultiDocument(
|
|
|
499
599
|
)
|
|
500
600
|
}
|
|
501
601
|
|
|
502
|
-
const properties: Array<
|
|
602
|
+
const properties: Array<ImportedProperty> = []
|
|
503
603
|
for (const name of names) {
|
|
504
604
|
let isOptional = true
|
|
505
605
|
const types: Array<ImportedJsonSchemaRepresentation> = []
|
|
@@ -523,7 +623,7 @@ function translateJsonSchemaMultiDocument(
|
|
|
523
623
|
properties.push({ name, type, isOptional, isMutable: false })
|
|
524
624
|
}
|
|
525
625
|
|
|
526
|
-
const indexSignatures: ReadonlyArray<
|
|
626
|
+
const indexSignatures: ReadonlyArray<ImportedIndexSignature> = closedPattern !== undefined
|
|
527
627
|
? [{ parameter: closedPattern.parameter, type: closedPattern.type }]
|
|
528
628
|
: !hasFiniteKeyDomain
|
|
529
629
|
? [{
|
|
@@ -536,15 +636,14 @@ function translateJsonSchemaMultiDocument(
|
|
|
536
636
|
: properties.length === 0
|
|
537
637
|
? [{ parameter: string, type: never }]
|
|
538
638
|
: []
|
|
539
|
-
|
|
639
|
+
return {
|
|
540
640
|
_tag: "Objects",
|
|
541
641
|
propertySignatures: properties,
|
|
542
642
|
indexSignatures,
|
|
543
|
-
|
|
544
|
-
|
|
643
|
+
scopes,
|
|
644
|
+
path,
|
|
645
|
+
...checked
|
|
545
646
|
}
|
|
546
|
-
objectScopesByProperties.set(properties, [scopes, path])
|
|
547
|
-
return representation
|
|
548
647
|
}
|
|
549
648
|
|
|
550
649
|
const jsonRootTags = ["Null", "String", "Number", "Boolean", "Objects", "Arrays"] as const
|
|
@@ -568,12 +667,10 @@ function translateJsonSchemaMultiDocument(
|
|
|
568
667
|
default:
|
|
569
668
|
return 0
|
|
570
669
|
}
|
|
571
|
-
case "Suspend":
|
|
572
|
-
return rootMask(representation.thunk as ImportedJsonSchemaRepresentation)
|
|
573
670
|
case "Union": {
|
|
574
671
|
let out = 0
|
|
575
672
|
for (const type of representation.types) {
|
|
576
|
-
out |= rootMask(type
|
|
673
|
+
out |= rootMask(type)
|
|
577
674
|
}
|
|
578
675
|
return out
|
|
579
676
|
}
|
|
@@ -589,30 +686,23 @@ function translateJsonSchemaMultiDocument(
|
|
|
589
686
|
const cached = definitionCache.get(key)
|
|
590
687
|
if (cached === null || resolvingChoices.has(key)) return true
|
|
591
688
|
resolvingChoices.add(key)
|
|
592
|
-
const out = hasChoices(cached ?? translateDefinition(key,
|
|
689
|
+
const out = hasChoices(cached ?? translateDefinition(key, representation.path))
|
|
593
690
|
resolvingChoices.delete(key)
|
|
594
691
|
return out
|
|
595
692
|
}
|
|
596
|
-
case "Suspend":
|
|
597
|
-
return hasChoices(representation.thunk as ImportedJsonSchemaRepresentation)
|
|
598
693
|
case "Union":
|
|
599
694
|
return representation.types.length > 1 ||
|
|
600
|
-
representation.types.some(
|
|
695
|
+
representation.types.some(hasChoices)
|
|
601
696
|
case "Arrays":
|
|
602
|
-
return representation.elements.some((element) =>
|
|
603
|
-
hasChoices
|
|
604
|
-
) || representation.rest.some((type) => hasChoices(type as ImportedJsonSchemaRepresentation))
|
|
697
|
+
return representation.elements.some((element) => hasChoices(element.type)) ||
|
|
698
|
+
representation.rest.some(hasChoices)
|
|
605
699
|
case "Objects":
|
|
606
|
-
return representation.propertySignatures.some((property) =>
|
|
607
|
-
hasChoices(property.type as ImportedJsonSchemaRepresentation)
|
|
608
|
-
) ||
|
|
700
|
+
return representation.propertySignatures.some((property) => hasChoices(property.type)) ||
|
|
609
701
|
representation.indexSignatures.some((indexSignature) =>
|
|
610
|
-
hasChoices(indexSignature.parameter
|
|
611
|
-
hasChoices(indexSignature.type
|
|
612
|
-
) ||
|
|
613
|
-
objectScopesByProperties.get(representation.propertySignatures)![0].some((scope) =>
|
|
614
|
-
scope.patterns.some((pattern) => hasChoices(pattern.type))
|
|
702
|
+
hasChoices(indexSignature.parameter) ||
|
|
703
|
+
hasChoices(indexSignature.type)
|
|
615
704
|
) ||
|
|
705
|
+
representation.scopes.some((scope) => scope.patterns.some((pattern) => hasChoices(pattern.type))) ||
|
|
616
706
|
representation.checks.some(checkHasChoices)
|
|
617
707
|
default:
|
|
618
708
|
return false
|
|
@@ -622,15 +712,15 @@ function translateJsonSchemaMultiDocument(
|
|
|
622
712
|
function checkHasChoices(check: Check): boolean {
|
|
623
713
|
return check._tag === "FilterGroup"
|
|
624
714
|
? check.checks.some(checkHasChoices)
|
|
625
|
-
: check.representation
|
|
715
|
+
: check.representation.schemas?.some(hasChoices) === true
|
|
626
716
|
}
|
|
627
717
|
|
|
628
718
|
function makeUnion(
|
|
629
|
-
source:
|
|
719
|
+
source: ImportedUnion,
|
|
630
720
|
types: ReadonlyArray<ImportedJsonSchemaRepresentation>
|
|
631
721
|
): ImportedJsonSchemaRepresentation {
|
|
632
722
|
if (types.length === 0) return never
|
|
633
|
-
if (types.length === 1 && source.checks.length === 0) return annotate(types[0], source
|
|
723
|
+
if (types.length === 1 && source.checks.length === 0) return annotate(types[0], source)
|
|
634
724
|
return { ...source, types }
|
|
635
725
|
}
|
|
636
726
|
|
|
@@ -639,40 +729,39 @@ function translateJsonSchemaMultiDocument(
|
|
|
639
729
|
): string | number | boolean | null | undefined {
|
|
640
730
|
if (representation._tag === "Null") return null
|
|
641
731
|
if (representation._tag !== "Literal") return undefined
|
|
642
|
-
|
|
643
|
-
return typeof literal === "string" || typeof literal === "number" || typeof literal === "boolean"
|
|
644
|
-
? literal
|
|
645
|
-
: undefined
|
|
732
|
+
return representation.literal
|
|
646
733
|
}
|
|
647
734
|
|
|
648
735
|
function intersectLiteralUnions(
|
|
649
|
-
left:
|
|
650
|
-
right:
|
|
736
|
+
left: ImportedUnion,
|
|
737
|
+
right: ImportedUnion,
|
|
651
738
|
path: Path
|
|
652
739
|
): ImportedJsonSchemaRepresentation | undefined {
|
|
653
740
|
if ((left.options?.mode ?? "anyOf") !== "anyOf" || (right.options?.mode ?? "anyOf") !== "anyOf") {
|
|
654
741
|
return undefined
|
|
655
742
|
}
|
|
656
743
|
const rightByValue = new Map<string | number | boolean | null, ImportedJsonSchemaRepresentation>()
|
|
657
|
-
for (const
|
|
658
|
-
const representation = type as ImportedJsonSchemaRepresentation
|
|
744
|
+
for (const representation of right.types) {
|
|
659
745
|
const value = literalValue(representation)
|
|
660
746
|
if (value === undefined) return undefined
|
|
661
|
-
rightByValue.
|
|
747
|
+
const previous = rightByValue.get(value)
|
|
748
|
+
rightByValue.set(value, {
|
|
749
|
+
...representation,
|
|
750
|
+
customAnnotations: mergeAnnotations(previous?.customAnnotations, representation.customAnnotations)
|
|
751
|
+
})
|
|
662
752
|
}
|
|
663
753
|
const types: Array<ImportedJsonSchemaRepresentation> = []
|
|
664
|
-
for (const
|
|
665
|
-
const representation = type as ImportedJsonSchemaRepresentation
|
|
754
|
+
for (const representation of left.types) {
|
|
666
755
|
const value = literalValue(representation)
|
|
667
756
|
if (value === undefined) return undefined
|
|
668
757
|
const match = rightByValue.get(value)
|
|
669
|
-
if (match !== undefined) types.push(intersect(representation, annotate(match, right
|
|
758
|
+
if (match !== undefined) types.push(intersect(representation, annotate(match, right), path))
|
|
670
759
|
}
|
|
671
760
|
return makeUnion(left, types)
|
|
672
761
|
}
|
|
673
762
|
|
|
674
763
|
function intersectUnionWithType(
|
|
675
|
-
union:
|
|
764
|
+
union: ImportedUnion,
|
|
676
765
|
type: ImportedJsonSchemaRepresentation,
|
|
677
766
|
path: Path,
|
|
678
767
|
unionOnLeft: boolean
|
|
@@ -681,14 +770,14 @@ function translateJsonSchemaMultiDocument(
|
|
|
681
770
|
const members = union.types
|
|
682
771
|
.map((member, index) => ({
|
|
683
772
|
index,
|
|
684
|
-
type: member
|
|
773
|
+
type: member
|
|
685
774
|
}))
|
|
686
775
|
.filter((member) => (rootMask(member.type) & mask) !== 0)
|
|
687
776
|
if (members.length > 1 && hasChoices(type)) {
|
|
688
777
|
return unsupportedIntersection(path)
|
|
689
778
|
}
|
|
690
779
|
if (members.length === 1 && union.checks.length === 0) {
|
|
691
|
-
const member = annotate(members[0].type, union
|
|
780
|
+
const member = annotate(members[0].type, union)
|
|
692
781
|
return unionOnLeft
|
|
693
782
|
? intersect(member, type, [...path, "types", members[0].index])
|
|
694
783
|
: intersect(type, member, [...path, "types", members[0].index])
|
|
@@ -705,10 +794,10 @@ function translateJsonSchemaMultiDocument(
|
|
|
705
794
|
)
|
|
706
795
|
}
|
|
707
796
|
|
|
708
|
-
function isTypePartition(union:
|
|
797
|
+
function isTypePartition(union: ImportedUnion): boolean {
|
|
709
798
|
let mask = 0
|
|
710
799
|
for (const type of union.types) {
|
|
711
|
-
const memberMask = rootMask(type
|
|
800
|
+
const memberMask = rootMask(type)
|
|
712
801
|
if ((mask & memberMask) !== 0) return false
|
|
713
802
|
mask |= memberMask
|
|
714
803
|
}
|
|
@@ -723,13 +812,13 @@ function translateJsonSchemaMultiDocument(
|
|
|
723
812
|
}
|
|
724
813
|
|
|
725
814
|
function intersectPartition(
|
|
726
|
-
partition:
|
|
727
|
-
other:
|
|
815
|
+
partition: ImportedUnion,
|
|
816
|
+
other: ImportedUnion,
|
|
728
817
|
path: Path,
|
|
729
818
|
partitionOnLeft: boolean
|
|
730
819
|
): ImportedJsonSchemaRepresentation {
|
|
731
|
-
const partitionTypes = partition.types
|
|
732
|
-
const otherTypes = other.types
|
|
820
|
+
const partitionTypes = partition.types
|
|
821
|
+
const otherTypes = other.types
|
|
733
822
|
for (const type of otherTypes) {
|
|
734
823
|
const mask = rootMask(type)
|
|
735
824
|
if (partitionTypes.filter((member) => (rootMask(member) & mask) !== 0).length > 1 && hasChoices(type)) {
|
|
@@ -746,8 +835,8 @@ function translateJsonSchemaMultiDocument(
|
|
|
746
835
|
}
|
|
747
836
|
|
|
748
837
|
function intersectUnions(
|
|
749
|
-
left:
|
|
750
|
-
right:
|
|
838
|
+
left: ImportedUnion,
|
|
839
|
+
right: ImportedUnion,
|
|
751
840
|
path: Path
|
|
752
841
|
): ImportedJsonSchemaRepresentation {
|
|
753
842
|
const literals = intersectLiteralUnions(left, right, path)
|
|
@@ -766,19 +855,19 @@ function translateJsonSchemaMultiDocument(
|
|
|
766
855
|
if (right._tag === "Never") return right
|
|
767
856
|
if (left._tag === "Unknown") return annotateIntersection(right, left, right)
|
|
768
857
|
if (right._tag === "Unknown") return annotateIntersection(left, left, right)
|
|
769
|
-
if (left._tag === "Reference")
|
|
770
|
-
|
|
771
|
-
|
|
772
|
-
|
|
773
|
-
|
|
774
|
-
|
|
775
|
-
)
|
|
858
|
+
if (left._tag === "Reference") {
|
|
859
|
+
// Resolve an unannotated reference first. An annotated empty definition
|
|
860
|
+
// could otherwise leave the other reference unresolved during union partitioning.
|
|
861
|
+
if (
|
|
862
|
+
(left.annotations !== undefined || left.customAnnotations !== undefined) &&
|
|
863
|
+
right._tag === "Reference" && right.annotations === undefined && right.customAnnotations === undefined
|
|
864
|
+
) {
|
|
865
|
+
return intersect(left, resolveReference(right, path), path)
|
|
866
|
+
}
|
|
867
|
+
return annotate(intersect(resolveReference(left, path), right, path), left)
|
|
776
868
|
}
|
|
777
|
-
if (right._tag === "
|
|
778
|
-
return annotate(
|
|
779
|
-
intersect(left, right.thunk as ImportedJsonSchemaRepresentation, path),
|
|
780
|
-
right.annotations
|
|
781
|
-
)
|
|
869
|
+
if (right._tag === "Reference") {
|
|
870
|
+
return annotate(intersect(left, resolveReference(right, path), path), right)
|
|
782
871
|
}
|
|
783
872
|
if (left._tag === "Union" && right._tag === "Union") return intersectUnions(left, right, path)
|
|
784
873
|
if (left._tag === "Union") return intersectUnionWithType(left, right, path, true)
|
|
@@ -794,18 +883,16 @@ function translateJsonSchemaMultiDocument(
|
|
|
794
883
|
return intersectPrimitiveWithLiteral(left, right)
|
|
795
884
|
}
|
|
796
885
|
if (right._tag !== "String") return never
|
|
797
|
-
|
|
798
|
-
return annotate({ _tag: "String", checks: stringChecks }, stringAnnotations)
|
|
886
|
+
return { _tag: "String", ...intersectChecks(left, right) }
|
|
799
887
|
case "Number":
|
|
800
888
|
if (right._tag === "Literal") {
|
|
801
889
|
return intersectPrimitiveWithLiteral(left, right)
|
|
802
890
|
}
|
|
803
891
|
if (right._tag !== "Number") return never
|
|
804
|
-
|
|
805
|
-
"
|
|
806
|
-
"effect/schema/isInt"
|
|
807
|
-
|
|
808
|
-
return annotate({ _tag: "Number", checks: numberChecks }, numberAnnotations)
|
|
892
|
+
return {
|
|
893
|
+
_tag: "Number",
|
|
894
|
+
...intersectChecks(left, right, ["effect/schema/isFinite", "effect/schema/isInt"])
|
|
895
|
+
}
|
|
809
896
|
case "Boolean":
|
|
810
897
|
if (right._tag === "Literal") {
|
|
811
898
|
return intersectPrimitiveWithLiteral(left, right)
|
|
@@ -844,22 +931,12 @@ function translateJsonSchemaMultiDocument(
|
|
|
844
931
|
if (right._tag !== "Arrays") return never
|
|
845
932
|
const arrays = intersectArrays(left, right, path)
|
|
846
933
|
if (arrays === undefined) return never
|
|
847
|
-
|
|
848
|
-
return annotate({ _tag: "Arrays", ...arrays, checks }, annotations)
|
|
934
|
+
return { _tag: "Arrays", ...arrays, ...intersectChecks(left, right, ["effect/schema/isUnique"]) }
|
|
849
935
|
}
|
|
850
936
|
case "Objects": {
|
|
851
937
|
if (right._tag !== "Objects") return never
|
|
852
|
-
const
|
|
853
|
-
|
|
854
|
-
...objectScopesByProperties.get(left.propertySignatures)![0],
|
|
855
|
-
...objectScopesByProperties.get(right.propertySignatures)![0]
|
|
856
|
-
]
|
|
857
|
-
return lowerObject(
|
|
858
|
-
scopes,
|
|
859
|
-
checks,
|
|
860
|
-
annotations,
|
|
861
|
-
path
|
|
862
|
-
)
|
|
938
|
+
const scopes = [...left.scopes, ...right.scopes]
|
|
939
|
+
return lowerObject(scopes, intersectChecks(left, right), path)
|
|
863
940
|
}
|
|
864
941
|
}
|
|
865
942
|
}
|
|
@@ -882,7 +959,7 @@ function translateJsonSchemaMultiDocument(
|
|
|
882
959
|
if (
|
|
883
960
|
isObject(schema.not) &&
|
|
884
961
|
Object.keys(schema.not).length === 0
|
|
885
|
-
) return annotate(never, jsonSchemaAnnotations(schema))
|
|
962
|
+
) return annotate(never, jsonSchemaAnnotations(schema, options))
|
|
886
963
|
const wasInNestedResource = inNestedResource
|
|
887
964
|
inNestedResource ||= !isRoot && typeof schema.$id === "string"
|
|
888
965
|
for (const keyword of Object.keys(schema)) {
|
|
@@ -939,8 +1016,7 @@ function translateJsonSchemaMultiDocument(
|
|
|
939
1016
|
[...path, "$ref"]
|
|
940
1017
|
)
|
|
941
1018
|
}
|
|
942
|
-
|
|
943
|
-
const reference: SchemaRepresentation.Reference = { _tag: "Reference", $ref }
|
|
1019
|
+
const reference: ImportedReference = { _tag: "Reference", $ref, path }
|
|
944
1020
|
representation = representation._tag === "Unknown"
|
|
945
1021
|
? reference
|
|
946
1022
|
: representation._tag === "Never"
|
|
@@ -955,11 +1031,7 @@ function translateJsonSchemaMultiDocument(
|
|
|
955
1031
|
path
|
|
956
1032
|
)
|
|
957
1033
|
}
|
|
958
|
-
|
|
959
|
-
if (annotations !== undefined && representation._tag === "Reference") {
|
|
960
|
-
annotatedReferences.push({ reference: representation, path })
|
|
961
|
-
}
|
|
962
|
-
representation = annotate(representation, annotations)
|
|
1034
|
+
representation = annotate(representation, jsonSchemaAnnotations(schema, options))
|
|
963
1035
|
|
|
964
1036
|
if (Array.isArray(schema.allOf)) {
|
|
965
1037
|
for (let index = 0; index < schema.allOf.length; index++) {
|
|
@@ -1051,7 +1123,7 @@ function translateJsonSchemaMultiDocument(
|
|
|
1051
1123
|
}
|
|
1052
1124
|
case "object": {
|
|
1053
1125
|
const scope = collectObjectScope(schema, path)
|
|
1054
|
-
return lowerObject([scope], collectObjectChecks(schema, path)
|
|
1126
|
+
return lowerObject([scope], { checks: collectObjectChecks(schema, path) }, path)
|
|
1055
1127
|
}
|
|
1056
1128
|
default:
|
|
1057
1129
|
return unknown
|
|
@@ -1192,11 +1264,8 @@ function translateJsonSchemaMultiDocument(
|
|
|
1192
1264
|
finalize(translateSchema(schema, singleRoot ? ["schema"] : ["schemas", index], true))
|
|
1193
1265
|
) as [Representation, ...Array<Representation>]
|
|
1194
1266
|
// Definitions expanded away by intersections do not need a standalone output schema.
|
|
1195
|
-
for (const key of finalReferences) {
|
|
1196
|
-
InternalRecord.assignProperty(references, key, finalize(translateDefinition(key,
|
|
1197
|
-
}
|
|
1198
|
-
for (const { reference, path } of annotatedReferences) {
|
|
1199
|
-
resolveReference(reference, path)
|
|
1267
|
+
for (const [key, reference] of finalReferences) {
|
|
1268
|
+
InternalRecord.assignProperty(references, key, finalize(translateDefinition(key, reference.path)))
|
|
1200
1269
|
}
|
|
1201
1270
|
return { representations, references }
|
|
1202
1271
|
}
|