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
|
@@ -301,6 +301,24 @@ export const layerBackingMemory: Layer.Layer<BackingPersistence> = Layer.sync(Ba
|
|
|
301
301
|
* Each table is created if needed and stores JSON-encoded values with optional
|
|
302
302
|
* expiration timestamps.
|
|
303
303
|
*
|
|
304
|
+
* **Gotchas**
|
|
305
|
+
*
|
|
306
|
+
* Store ids are used directly in `effect_persistence_${storeId}` table names,
|
|
307
|
+
* without encoding or collision detection. Choose ids whose full table names
|
|
308
|
+
* are distinct under the database's identifier rules:
|
|
309
|
+
*
|
|
310
|
+
* - Do not use dots: they are interpreted as schema separators.
|
|
311
|
+
* - Do not rely on case alone to distinguish stores: SQLite treats ASCII-case
|
|
312
|
+
* variants such as `Users` and `users` as the same table.
|
|
313
|
+
* - Stay within the database's identifier length limit, including the prefix.
|
|
314
|
+
* PostgreSQL normally truncates identifiers to 63 bytes, leaving 44 bytes
|
|
315
|
+
* for the store id. Ids sharing those first 44 bytes can alias the same table.
|
|
316
|
+
*
|
|
317
|
+
* Aliased stores share entries: writes can overwrite another store's values,
|
|
318
|
+
* and clearing one clears the other. For arbitrary store ids, prefer
|
|
319
|
+
* `layerBackingSql`, which stores ids as row values rather than table names.
|
|
320
|
+
*
|
|
321
|
+
* @see layerBackingSql
|
|
304
322
|
* @stability unstable
|
|
305
323
|
* @category layers
|
|
306
324
|
* @since 4.0.0
|
|
@@ -397,9 +415,11 @@ export const layerBackingSqlMultiTable: Layer.Layer<
|
|
|
397
415
|
|
|
398
416
|
return identity<BackingPersistenceStore>({
|
|
399
417
|
get: (key) =>
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
418
|
+
Effect.suspend(() =>
|
|
419
|
+
sql<
|
|
420
|
+
{ value: string }
|
|
421
|
+
>`SELECT value FROM ${table} WHERE id = ${key} AND (expires IS NULL OR expires > ${clock.currentTimeMillisUnsafe()})`
|
|
422
|
+
)
|
|
403
423
|
.pipe(
|
|
404
424
|
Effect.mapError((cause) =>
|
|
405
425
|
new PersistenceError({
|
|
@@ -424,9 +444,11 @@ export const layerBackingSqlMultiTable: Layer.Layer<
|
|
|
424
444
|
})
|
|
425
445
|
),
|
|
426
446
|
getMany: (keys) =>
|
|
427
|
-
|
|
428
|
-
sql
|
|
429
|
-
|
|
447
|
+
Effect.suspend(() =>
|
|
448
|
+
sql<{ id: string; value: string }>`SELECT id, value FROM ${table} WHERE ${
|
|
449
|
+
sql.in("id", keys)
|
|
450
|
+
} AND (expires IS NULL OR expires > ${clock.currentTimeMillisUnsafe()})`.unprepared
|
|
451
|
+
).pipe(
|
|
430
452
|
Effect.mapError((cause) =>
|
|
431
453
|
new PersistenceError({
|
|
432
454
|
message: `Failed to getMany from backing store`,
|
|
@@ -585,35 +607,33 @@ export const layerBackingSql: Layer.Layer<
|
|
|
585
607
|
pg: () =>
|
|
586
608
|
sql`CREATE INDEX IF NOT EXISTS effect_persistence_expires_idx ON ${table} (expires) WHERE expires IS NOT NULL`
|
|
587
609
|
.pipe(Effect.orDie, Effect.asVoid),
|
|
588
|
-
mysql: ()
|
|
589
|
-
|
|
590
|
-
const indexExists = sql<{ readonly count: number }>`
|
|
610
|
+
mysql: Effect.fnUntraced(function*() {
|
|
611
|
+
const indexExists = sql<{ readonly count: number }>`
|
|
591
612
|
SELECT COUNT(*) AS count FROM information_schema.statistics
|
|
592
613
|
WHERE table_schema = DATABASE()
|
|
593
614
|
AND table_name = 'effect_persistence'
|
|
594
615
|
AND index_name = 'effect_persistence_expires_idx'
|
|
595
616
|
`.pipe(
|
|
596
|
-
|
|
597
|
-
|
|
617
|
+
Effect.map((rows) => Number(rows[0].count) > 0)
|
|
618
|
+
)
|
|
598
619
|
|
|
599
|
-
|
|
600
|
-
|
|
601
|
-
|
|
602
|
-
|
|
603
|
-
mssql: ()
|
|
604
|
-
|
|
605
|
-
const indexExists = sql<{ readonly count: number }>`
|
|
620
|
+
yield* sql`CREATE INDEX effect_persistence_expires_idx ON ${table} (expires)`.pipe(
|
|
621
|
+
Effect.catch((error) => Effect.flatMap(indexExists, (exists) => exists ? Effect.void : Effect.fail(error)))
|
|
622
|
+
)
|
|
623
|
+
}, (_) => Effect.orDie(_)),
|
|
624
|
+
mssql: Effect.fnUntraced(function*() {
|
|
625
|
+
const indexExists = sql<{ readonly count: number }>`
|
|
606
626
|
SELECT COUNT(*) AS count FROM sys.indexes
|
|
607
627
|
WHERE name = N'effect_persistence_expires_idx'
|
|
608
628
|
AND object_id = OBJECT_ID(N'effect_persistence')
|
|
609
629
|
`.pipe(
|
|
610
|
-
|
|
611
|
-
|
|
630
|
+
Effect.map((rows) => Number(rows[0].count) > 0)
|
|
631
|
+
)
|
|
612
632
|
|
|
613
|
-
|
|
614
|
-
|
|
615
|
-
|
|
616
|
-
|
|
633
|
+
yield* sql`CREATE INDEX effect_persistence_expires_idx ON ${table} (expires) WHERE expires IS NOT NULL`.pipe(
|
|
634
|
+
Effect.catch((error) => Effect.flatMap(indexExists, (exists) => exists ? Effect.void : Effect.fail(error)))
|
|
635
|
+
)
|
|
636
|
+
}, (_) => Effect.orDie(_)),
|
|
617
637
|
// sqlite
|
|
618
638
|
orElse: () =>
|
|
619
639
|
sql`CREATE INDEX IF NOT EXISTS effect_persistence_expires_idx ON ${table} (expires) WHERE expires IS NOT NULL`
|
|
@@ -738,9 +758,11 @@ export const layerBackingSql: Layer.Layer<
|
|
|
738
758
|
|
|
739
759
|
return identity<BackingPersistenceStore>({
|
|
740
760
|
get: (key) =>
|
|
741
|
-
|
|
742
|
-
|
|
743
|
-
|
|
761
|
+
Effect.suspend(() =>
|
|
762
|
+
sql<
|
|
763
|
+
{ value: string }
|
|
764
|
+
>`SELECT value FROM ${table} WHERE store_id = ${storeId} AND id = ${key} AND (expires IS NULL OR expires > ${clock.currentTimeMillisUnsafe()})`
|
|
765
|
+
)
|
|
744
766
|
.pipe(
|
|
745
767
|
Effect.mapError((cause) =>
|
|
746
768
|
new PersistenceError({
|
|
@@ -765,9 +787,11 @@ export const layerBackingSql: Layer.Layer<
|
|
|
765
787
|
})
|
|
766
788
|
),
|
|
767
789
|
getMany: (keys) =>
|
|
768
|
-
|
|
769
|
-
sql
|
|
770
|
-
|
|
790
|
+
Effect.suspend(() =>
|
|
791
|
+
sql<{ id: string; value: string }>`SELECT id, value FROM ${table} WHERE store_id = ${storeId} AND ${
|
|
792
|
+
sql.in("id", keys)
|
|
793
|
+
} AND (expires IS NULL OR expires > ${clock.currentTimeMillisUnsafe()})`.unprepared
|
|
794
|
+
).pipe(
|
|
771
795
|
Effect.mapError((cause) =>
|
|
772
796
|
new PersistenceError({
|
|
773
797
|
message: `Failed to getMany from backing store`,
|
|
@@ -1172,6 +1196,16 @@ export const layerRedis: Layer.Layer<Persistence, never, Redis.Redis> = layer.pi
|
|
|
1172
1196
|
/**
|
|
1173
1197
|
* Provides `Persistence` backed by SQL with one table per store id.
|
|
1174
1198
|
*
|
|
1199
|
+
* **Gotchas**
|
|
1200
|
+
*
|
|
1201
|
+
* Store ids become `effect_persistence_${storeId}` table names and must obey
|
|
1202
|
+
* the database's identifier rules. Avoid dots, case-only distinctions, and
|
|
1203
|
+
* names exceeding the database's identifier length limit (including the
|
|
1204
|
+
* prefix). Colliding names share data, including writes and clears.
|
|
1205
|
+
* Prefer `layerSql` for arbitrary store ids.
|
|
1206
|
+
*
|
|
1207
|
+
* @see layerBackingSqlMultiTable for database-specific store-id restrictions
|
|
1208
|
+
* @see layerSql
|
|
1175
1209
|
* @stability unstable
|
|
1176
1210
|
* @category layers
|
|
1177
1211
|
* @since 4.0.0
|
|
@@ -109,24 +109,17 @@ export const make: Effect.Effect<
|
|
|
109
109
|
const refillRate = Duration.divideUnsafe(window, options.limit)
|
|
110
110
|
const refillRateMillis = Duration.toMillis(refillRate)
|
|
111
111
|
|
|
112
|
-
if (tokens > options.limit) {
|
|
113
|
-
return
|
|
114
|
-
|
|
115
|
-
new
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
remaining: 0
|
|
121
|
-
})
|
|
112
|
+
if (onExceeded === "fail" && tokens > options.limit) {
|
|
113
|
+
return Effect.fail(
|
|
114
|
+
new RateLimiterError({
|
|
115
|
+
reason: new RateLimitExceeded({
|
|
116
|
+
key: options.key,
|
|
117
|
+
retryAfter: window,
|
|
118
|
+
limit: options.limit,
|
|
119
|
+
remaining: 0
|
|
122
120
|
})
|
|
123
|
-
)
|
|
124
|
-
: Effect.succeed<ConsumeResult>({
|
|
125
|
-
delay: window,
|
|
126
|
-
limit: options.limit,
|
|
127
|
-
remaining: 0,
|
|
128
|
-
resetAfter: window
|
|
129
121
|
})
|
|
122
|
+
)
|
|
130
123
|
}
|
|
131
124
|
|
|
132
125
|
if (algorithm === "fixed-window") {
|
|
@@ -959,7 +952,10 @@ export const makeStoreRedis = Effect.fnUntraced(function*(
|
|
|
959
952
|
const key = `${prefix}${options.key}`
|
|
960
953
|
const refillMillis = Duration.toMillis(options.refillRate)
|
|
961
954
|
return Effect.mapError(
|
|
962
|
-
|
|
955
|
+
Effect.map(
|
|
956
|
+
fixedWindow(key, options.tokens, refillMillis, options.limit),
|
|
957
|
+
([currentTokens, nextPttl]) => [Number(currentTokens), nextPttl] as const
|
|
958
|
+
),
|
|
963
959
|
(cause) =>
|
|
964
960
|
new RateLimiterError({
|
|
965
961
|
reason: new RateLimitStoreError({
|
|
@@ -1063,21 +1059,22 @@ local current = tonumber(redis.call("GET", key))
|
|
|
1063
1059
|
if not current then
|
|
1064
1060
|
local nextpttl = math.max(1, math.ceil(refillms * tokens))
|
|
1065
1061
|
redis.call("SET", key, tokens, "PX", nextpttl)
|
|
1066
|
-
return { tokens, nextpttl }
|
|
1062
|
+
return { string.format("%.17g", tokens), nextpttl }
|
|
1067
1063
|
end
|
|
1068
1064
|
|
|
1069
1065
|
local currentpttl = tonumber(redis.call("PTTL", key) or "0")
|
|
1070
1066
|
local next = current + tokens
|
|
1071
1067
|
if limit and next > limit then
|
|
1072
|
-
return { next, currentpttl }
|
|
1068
|
+
return { string.format("%.17g", next), currentpttl }
|
|
1073
1069
|
end
|
|
1074
1070
|
|
|
1075
1071
|
local nextpttl = math.max(1, math.ceil(currentpttl + (refillms * tokens)))
|
|
1076
1072
|
redis.call("SET", key, next, "PX", nextpttl)
|
|
1077
|
-
|
|
1073
|
+
-- Use 17 significant digits to round-trip fractional token counts.
|
|
1074
|
+
return { string.format("%.17g", next), nextpttl }
|
|
1078
1075
|
`
|
|
1079
1076
|
}
|
|
1080
|
-
).withReturnType<readonly [currentTokens:
|
|
1077
|
+
).withReturnType<readonly [currentTokens: string, nextPttl: number]>()
|
|
1081
1078
|
|
|
1082
1079
|
const tokenBucketScript = Redis.script(
|
|
1083
1080
|
(
|
|
@@ -0,0 +1,273 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Well-known directories for an application's persisted data.
|
|
3
|
+
*
|
|
4
|
+
* `UserDirectories` resolves where an application should keep its
|
|
5
|
+
* configuration, data, cache and state, following the conventions of the host
|
|
6
|
+
* platform. The resolved directories are what `KeyValueStore.layerFileSystem`
|
|
7
|
+
* expects.
|
|
8
|
+
*
|
|
9
|
+
* **Example** (Backing a key-value store with the config directory)
|
|
10
|
+
*
|
|
11
|
+
* ```ts import.meta.vitest
|
|
12
|
+
* import { Effect, Layer } from "effect"
|
|
13
|
+
* import { KeyValueStore, UserDirectories } from "effect/persistence"
|
|
14
|
+
*
|
|
15
|
+
* const StoreLive = Layer.unwrap(
|
|
16
|
+
* Effect.gen(function*() {
|
|
17
|
+
* const dirs = yield* UserDirectories.UserDirectories
|
|
18
|
+
* return KeyValueStore.layerFileSystem(yield* dirs.config("myapp"))
|
|
19
|
+
* })
|
|
20
|
+
* ).pipe(Layer.provide(UserDirectories.layer))
|
|
21
|
+
* ```
|
|
22
|
+
*
|
|
23
|
+
* @stability unstable
|
|
24
|
+
* @since 4.0.0
|
|
25
|
+
*/
|
|
26
|
+
import * as Config from "../Config.ts"
|
|
27
|
+
import * as Context from "../Context.ts"
|
|
28
|
+
import * as Effect from "../Effect.ts"
|
|
29
|
+
import * as Layer from "../Layer.ts"
|
|
30
|
+
import * as PlatformError from "../PlatformError.ts"
|
|
31
|
+
|
|
32
|
+
/**
|
|
33
|
+
* Identifies a `UserDirectories` service.
|
|
34
|
+
*
|
|
35
|
+
* @stability unstable
|
|
36
|
+
* @category type ids
|
|
37
|
+
* @since 4.0.0
|
|
38
|
+
*/
|
|
39
|
+
export const TypeId: TypeId = "~effect/persistence/UserDirectories"
|
|
40
|
+
|
|
41
|
+
/**
|
|
42
|
+
* Type of the `UserDirectories` type id.
|
|
43
|
+
*
|
|
44
|
+
* @stability unstable
|
|
45
|
+
* @category type ids
|
|
46
|
+
* @since 4.0.0
|
|
47
|
+
*/
|
|
48
|
+
export type TypeId = "~effect/persistence/UserDirectories"
|
|
49
|
+
|
|
50
|
+
/**
|
|
51
|
+
* Resolves the directories where an application keeps its files.
|
|
52
|
+
*
|
|
53
|
+
* **Details**
|
|
54
|
+
*
|
|
55
|
+
* An absolute `XDG_CONFIG_HOME`, `XDG_DATA_HOME`, `XDG_CACHE_HOME` or
|
|
56
|
+
* `XDG_STATE_HOME` is used on every platform, with the application name
|
|
57
|
+
* appended. A relative one is ignored. Otherwise the native location is used:
|
|
58
|
+
*
|
|
59
|
+
* | kind | Windows | macOS | other |
|
|
60
|
+
* | ------ | -------------------------------------- | ------------------------------ | ---------------- |
|
|
61
|
+
* | config | `%APPDATA%` | `~/Library/Application Support` | `~/.config` |
|
|
62
|
+
* | data | `%APPDATA%` | `~/Library/Application Support` | `~/.local/share` |
|
|
63
|
+
* | cache | `%LOCALAPPDATA%`, then `\Cache` suffix | `~/Library/Caches` | `~/.cache` |
|
|
64
|
+
* | state | `%LOCALAPPDATA%` | `~/Library/Application Support` | `~/.local/state` |
|
|
65
|
+
*
|
|
66
|
+
* `APPDATA` and `LOCALAPPDATA` are used when absolute and otherwise replaced
|
|
67
|
+
* by `%USERPROFILE%\AppData\Roaming` and `%USERPROFILE%\AppData\Local`.
|
|
68
|
+
*
|
|
69
|
+
* **Gotchas**
|
|
70
|
+
*
|
|
71
|
+
* `config` and `data` resolve to the same directory on Windows and macOS, and
|
|
72
|
+
* `state` joins them on macOS. That is the native convention. Keep each kind
|
|
73
|
+
* in its own subdirectory when the same application uses more than one, since
|
|
74
|
+
* `KeyValueStore.layerFileSystem` clears a directory recursively.
|
|
75
|
+
*
|
|
76
|
+
* @stability unstable
|
|
77
|
+
* @category models
|
|
78
|
+
* @since 4.0.0
|
|
79
|
+
*/
|
|
80
|
+
export interface UserDirectories {
|
|
81
|
+
readonly [TypeId]: TypeId
|
|
82
|
+
/**
|
|
83
|
+
* The current user's home directory.
|
|
84
|
+
*/
|
|
85
|
+
readonly home: Effect.Effect<string, PlatformError.PlatformError>
|
|
86
|
+
/**
|
|
87
|
+
* Where `appName` keeps its settings.
|
|
88
|
+
*/
|
|
89
|
+
readonly config: (appName: string) => Effect.Effect<string, PlatformError.PlatformError>
|
|
90
|
+
/**
|
|
91
|
+
* Where `appName` keeps data it cannot regenerate.
|
|
92
|
+
*/
|
|
93
|
+
readonly data: (appName: string) => Effect.Effect<string, PlatformError.PlatformError>
|
|
94
|
+
/**
|
|
95
|
+
* Where `appName` keeps data it can regenerate.
|
|
96
|
+
*/
|
|
97
|
+
readonly cache: (appName: string) => Effect.Effect<string, PlatformError.PlatformError>
|
|
98
|
+
/**
|
|
99
|
+
* Where `appName` keeps logs, history and other state that is not user data.
|
|
100
|
+
*/
|
|
101
|
+
readonly state: (appName: string) => Effect.Effect<string, PlatformError.PlatformError>
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
/**
|
|
105
|
+
* Service tag for the user directory resolver.
|
|
106
|
+
*
|
|
107
|
+
* @stability unstable
|
|
108
|
+
* @category services
|
|
109
|
+
* @since 4.0.0
|
|
110
|
+
*/
|
|
111
|
+
export const UserDirectories: Context.Service<UserDirectories, UserDirectories> = Context.Service<UserDirectories>(
|
|
112
|
+
TypeId
|
|
113
|
+
)
|
|
114
|
+
|
|
115
|
+
type Kind = "config" | "data" | "cache" | "state"
|
|
116
|
+
|
|
117
|
+
type Environment = {
|
|
118
|
+
readonly home: string | undefined
|
|
119
|
+
readonly xdg: string | undefined
|
|
120
|
+
readonly appData: string | undefined
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
const isAbsolute = (platform: string, path: string): boolean =>
|
|
124
|
+
platform === "win32" ? /^([a-zA-Z]:)?[\\/]/.test(path) : path.startsWith("/")
|
|
125
|
+
|
|
126
|
+
const join = (platform: string, base: string, ...segments: ReadonlyArray<string>): string =>
|
|
127
|
+
platform === "win32"
|
|
128
|
+
? [base.replace(/[\\/]+$/, ""), ...segments].join("\\")
|
|
129
|
+
: [base.replace(/\/+$/, ""), ...segments].join("/")
|
|
130
|
+
|
|
131
|
+
const xdgVariable: Record<Kind, string> = {
|
|
132
|
+
config: "XDG_CONFIG_HOME",
|
|
133
|
+
data: "XDG_DATA_HOME",
|
|
134
|
+
cache: "XDG_CACHE_HOME",
|
|
135
|
+
state: "XDG_STATE_HOME"
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
const windowsBase = (kind: Kind, env: Environment): string | undefined => {
|
|
139
|
+
if (env.appData !== undefined && isAbsolute("win32", env.appData)) {
|
|
140
|
+
return env.appData
|
|
141
|
+
}
|
|
142
|
+
if (env.home === undefined) {
|
|
143
|
+
return undefined
|
|
144
|
+
}
|
|
145
|
+
return join("win32", env.home, "AppData", kind === "config" || kind === "data" ? "Roaming" : "Local")
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
const posixBase = (platform: string, kind: Kind, home: string): string => {
|
|
149
|
+
if (platform === "darwin") {
|
|
150
|
+
return join(platform, home, "Library", kind === "cache" ? "Caches" : "Application Support")
|
|
151
|
+
}
|
|
152
|
+
switch (kind) {
|
|
153
|
+
case "config":
|
|
154
|
+
return join(platform, home, ".config")
|
|
155
|
+
case "data":
|
|
156
|
+
return join(platform, home, ".local", "share")
|
|
157
|
+
case "cache":
|
|
158
|
+
return join(platform, home, ".cache")
|
|
159
|
+
case "state":
|
|
160
|
+
return join(platform, home, ".local", "state")
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
|
|
164
|
+
const resolve = (platform: string, kind: Kind, appName: string, env: Environment): string | undefined => {
|
|
165
|
+
if (env.xdg !== undefined && isAbsolute(platform, env.xdg)) {
|
|
166
|
+
return join(platform, env.xdg, appName)
|
|
167
|
+
}
|
|
168
|
+
if (platform === "win32") {
|
|
169
|
+
const base = windowsBase(kind, env)
|
|
170
|
+
if (base === undefined) {
|
|
171
|
+
return undefined
|
|
172
|
+
}
|
|
173
|
+
return kind === "cache" ? join(platform, base, appName, "Cache") : join(platform, base, appName)
|
|
174
|
+
}
|
|
175
|
+
if (env.home === undefined) {
|
|
176
|
+
return undefined
|
|
177
|
+
}
|
|
178
|
+
return join(platform, posixBase(platform, kind, env.home), appName)
|
|
179
|
+
}
|
|
180
|
+
|
|
181
|
+
/**
|
|
182
|
+
* Creates a resolver that reads the environment from the current
|
|
183
|
+
* `ConfigProvider` on every call, using the conventions of `platform`, which
|
|
184
|
+
* defaults to the host platform.
|
|
185
|
+
*
|
|
186
|
+
* **Example** (Resolving for another platform)
|
|
187
|
+
*
|
|
188
|
+
* ```ts import.meta.vitest
|
|
189
|
+
* import { ConfigProvider, Effect } from "effect"
|
|
190
|
+
* import { UserDirectories } from "effect/persistence"
|
|
191
|
+
*
|
|
192
|
+
* const dirs = UserDirectories.make({ platform: "darwin" })
|
|
193
|
+
*
|
|
194
|
+
* const program = dirs.cache("myapp").pipe(
|
|
195
|
+
* Effect.provideService(
|
|
196
|
+
* ConfigProvider.ConfigProvider,
|
|
197
|
+
* ConfigProvider.fromEnv({ env: { HOME: "/Users/ada" } })
|
|
198
|
+
* )
|
|
199
|
+
* )
|
|
200
|
+
*
|
|
201
|
+
* await Effect.runPromise(program) // => "/Users/ada/Library/Caches/myapp"
|
|
202
|
+
* ```
|
|
203
|
+
*
|
|
204
|
+
* @stability unstable
|
|
205
|
+
* @category constructors
|
|
206
|
+
* @since 4.0.0
|
|
207
|
+
*/
|
|
208
|
+
export const make = (options?: {
|
|
209
|
+
readonly platform?: string | undefined
|
|
210
|
+
}): UserDirectories => {
|
|
211
|
+
const platform = options?.platform ?? (globalThis as any).process?.platform ?? "linux"
|
|
212
|
+
const homeVariable = platform === "win32" ? "USERPROFILE" : "HOME"
|
|
213
|
+
const optionalString = (name: string) => Config.String(name).pipe(Config.withDefault(undefined))
|
|
214
|
+
const read = <A>(method: string, config: Config.Config<A>): Effect.Effect<A, PlatformError.PlatformError> =>
|
|
215
|
+
Effect.mapError(config, (cause) =>
|
|
216
|
+
PlatformError.systemError({
|
|
217
|
+
_tag: "Unknown",
|
|
218
|
+
module: "UserDirectories",
|
|
219
|
+
method,
|
|
220
|
+
description: "Failed to read the environment",
|
|
221
|
+
cause
|
|
222
|
+
}))
|
|
223
|
+
const notFound = (method: string) =>
|
|
224
|
+
PlatformError.systemError({
|
|
225
|
+
_tag: "NotFound",
|
|
226
|
+
module: "UserDirectories",
|
|
227
|
+
method,
|
|
228
|
+
description: `${homeVariable} is not set`
|
|
229
|
+
})
|
|
230
|
+
const directory = (kind: Kind) => {
|
|
231
|
+
const environment = Config.all({
|
|
232
|
+
home: optionalString(homeVariable),
|
|
233
|
+
xdg: optionalString(xdgVariable[kind]),
|
|
234
|
+
appData: optionalString(kind === "config" || kind === "data" ? "APPDATA" : "LOCALAPPDATA")
|
|
235
|
+
})
|
|
236
|
+
return (appName: string) =>
|
|
237
|
+
Effect.flatMap(read(kind, environment), (env) => {
|
|
238
|
+
const resolved = resolve(platform, kind, appName, env)
|
|
239
|
+
return resolved === undefined ? Effect.fail(notFound(kind)) : Effect.succeed(resolved)
|
|
240
|
+
})
|
|
241
|
+
}
|
|
242
|
+
return {
|
|
243
|
+
[TypeId]: TypeId,
|
|
244
|
+
home: Effect.flatMap(
|
|
245
|
+
read("home", optionalString(homeVariable)),
|
|
246
|
+
(home) => home === undefined ? Effect.fail(notFound("home")) : Effect.succeed(home)
|
|
247
|
+
),
|
|
248
|
+
config: directory("config"),
|
|
249
|
+
data: directory("data"),
|
|
250
|
+
cache: directory("cache"),
|
|
251
|
+
state: directory("state")
|
|
252
|
+
}
|
|
253
|
+
}
|
|
254
|
+
|
|
255
|
+
/**
|
|
256
|
+
* Layer that resolves directories for the host platform.
|
|
257
|
+
*
|
|
258
|
+
* @stability unstable
|
|
259
|
+
* @category layers
|
|
260
|
+
* @since 4.0.0
|
|
261
|
+
*/
|
|
262
|
+
export const layer: Layer.Layer<UserDirectories> = Layer.sync(UserDirectories, () => make())
|
|
263
|
+
|
|
264
|
+
/**
|
|
265
|
+
* Layer that resolves directories for the given platform, such as `"win32"`,
|
|
266
|
+
* `"darwin"` or `"linux"`.
|
|
267
|
+
*
|
|
268
|
+
* @stability unstable
|
|
269
|
+
* @category layers
|
|
270
|
+
* @since 4.0.0
|
|
271
|
+
*/
|
|
272
|
+
export const layerPlatform = (platform: string): Layer.Layer<UserDirectories> =>
|
|
273
|
+
Layer.sync(UserDirectories, () => make({ platform }))
|
package/src/persistence/index.ts
CHANGED
|
@@ -259,7 +259,8 @@ export interface KillOptions {
|
|
|
259
259
|
/**
|
|
260
260
|
* The duration of time to wait after the child process has been terminated
|
|
261
261
|
* before forcefully killing the child process by sending it the `"SIGKILL"`
|
|
262
|
-
* signal. Defaults to `undefined`, so `"SIGKILL"` is never sent
|
|
262
|
+
* signal. Defaults to `undefined`, so `"SIGKILL"` is never sent and termination
|
|
263
|
+
* waits for the process to exit with no time limit.
|
|
263
264
|
*
|
|
264
265
|
* **Details**
|
|
265
266
|
*
|
|
@@ -127,8 +127,8 @@ const ResultProto = {
|
|
|
127
127
|
pipe() {
|
|
128
128
|
return pipeArguments(this, arguments)
|
|
129
129
|
},
|
|
130
|
-
[Equal.symbol](this: AsyncResult<any, any>, that:
|
|
131
|
-
if (this._tag !== that._tag || this.waiting !== that.waiting) {
|
|
130
|
+
[Equal.symbol](this: AsyncResult<any, any>, that: Equal.Equal): boolean {
|
|
131
|
+
if (!isAsyncResult(that) || this._tag !== that._tag || this.waiting !== that.waiting) {
|
|
132
132
|
return false
|
|
133
133
|
}
|
|
134
134
|
switch (this._tag) {
|
|
@@ -676,47 +676,13 @@ export const flatMap: {
|
|
|
676
676
|
case "Initial":
|
|
677
677
|
return self as any as AsyncResult<B, E>
|
|
678
678
|
case "Failure":
|
|
679
|
-
return failure
|
|
680
|
-
* Maps the success value of an `AsyncResult` and flattens the result.
|
|
681
|
-
*
|
|
682
|
-
* **When to use**
|
|
683
|
-
*
|
|
684
|
-
* Use to sequence computations that may return another `AsyncResult` while
|
|
685
|
-
* preserving initial and failure states.
|
|
686
|
-
*
|
|
687
|
-
* **Details**
|
|
688
|
-
*
|
|
689
|
-
* Initial results are left unchanged. Failures preserve their cause and remap
|
|
690
|
-
* the stored previous success when the mapping function returns a success.
|
|
691
|
-
*
|
|
692
|
-
* @stability unstable
|
|
693
|
-
* @category combinators
|
|
694
|
-
* @since 4.0.0
|
|
695
|
-
*/
|
|
696
|
-
B, /**
|
|
697
|
-
* Maps the success value of an `AsyncResult` and flattens the result.
|
|
698
|
-
*
|
|
699
|
-
* **When to use**
|
|
700
|
-
*
|
|
701
|
-
* Use to sequence computations that may return another `AsyncResult` while
|
|
702
|
-
* preserving initial and failure states.
|
|
703
|
-
*
|
|
704
|
-
* **Details**
|
|
705
|
-
*
|
|
706
|
-
* Initial results are left unchanged. Failures preserve their cause and remap
|
|
707
|
-
* the stored previous success when the mapping function returns a success.
|
|
708
|
-
*
|
|
709
|
-
* @stability unstable
|
|
710
|
-
* @category combinators
|
|
711
|
-
* @since 4.0.0
|
|
712
|
-
*/
|
|
713
|
-
E | E2>(self.cause, {
|
|
679
|
+
return failure<B, E | E2>(self.cause, {
|
|
714
680
|
previousSuccess: Option.flatMap(self.previousSuccess, (s) => {
|
|
715
681
|
const next = f(s.value, s)
|
|
716
682
|
return isSuccess(next) ? Option.some(next) : Option.none()
|
|
717
683
|
}),
|
|
718
684
|
waiting: self.waiting
|
|
719
|
-
})
|
|
685
|
+
})
|
|
720
686
|
case "Success":
|
|
721
687
|
return f(self.value, self)
|
|
722
688
|
}
|
|
@@ -901,6 +867,12 @@ export const matchWithWaiting: {
|
|
|
901
867
|
/**
|
|
902
868
|
* Combines an iterable or record of `AsyncResult` and plain values into one `AsyncResult`, returning the first non-success result or a success of the collected values marked waiting when any input success is waiting.
|
|
903
869
|
*
|
|
870
|
+
* **Details**
|
|
871
|
+
*
|
|
872
|
+
* If the first non-success result is a failure, its previous success is
|
|
873
|
+
* rebuilt in the combined shape from each input's current or previous value.
|
|
874
|
+
* It is omitted if any input has no value.
|
|
875
|
+
*
|
|
904
876
|
* @stability unstable
|
|
905
877
|
* @category combinators
|
|
906
878
|
* @since 4.0.0
|
|
@@ -932,6 +904,11 @@ export const all = <const Arg extends Iterable<any> | Record<string, any>>(
|
|
|
932
904
|
if (!isAsyncResult(result)) {
|
|
933
905
|
InternalRecord.assignProperty(successes, key, result)
|
|
934
906
|
continue
|
|
907
|
+
} else if (isFailure(result)) {
|
|
908
|
+
return failure(result.cause, {
|
|
909
|
+
previousSuccess: combinedPreviousSuccess(entries, isIter),
|
|
910
|
+
waiting: result.waiting
|
|
911
|
+
}) as any
|
|
935
912
|
} else if (!isSuccess(result)) {
|
|
936
913
|
return result as any
|
|
937
914
|
}
|
|
@@ -943,6 +920,26 @@ export const all = <const Arg extends Iterable<any> | Record<string, any>>(
|
|
|
943
920
|
return success(successes, { waiting }) as any
|
|
944
921
|
}
|
|
945
922
|
|
|
923
|
+
const combinedPreviousSuccess = (
|
|
924
|
+
entries: ReadonlyArray<readonly [PropertyKey, unknown]>,
|
|
925
|
+
isIter: boolean
|
|
926
|
+
): Option.Option<Success<unknown, never>> => {
|
|
927
|
+
const values: any = isIter ? [] : {}
|
|
928
|
+
for (let i = 0; i < entries.length; i++) {
|
|
929
|
+
const [key, entry] = entries[i]
|
|
930
|
+
if (!isAsyncResult(entry)) {
|
|
931
|
+
InternalRecord.assignProperty(values, key, entry)
|
|
932
|
+
continue
|
|
933
|
+
}
|
|
934
|
+
const entryValue = value(entry)
|
|
935
|
+
if (Option.isNone(entryValue)) {
|
|
936
|
+
return Option.none()
|
|
937
|
+
}
|
|
938
|
+
InternalRecord.assignProperty(values, key, entryValue.value)
|
|
939
|
+
}
|
|
940
|
+
return Option.some(success(values))
|
|
941
|
+
}
|
|
942
|
+
|
|
946
943
|
/**
|
|
947
944
|
* Creates a typed builder for rendering an `AsyncResult` by handling waiting, initial, success, error, defect, interrupt, and failure cases.
|
|
948
945
|
*
|