effect 4.0.5 → 4.0.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/ai-docs/package.json +1 -1
- package/ai-docs/src/06_schedule/10_schedules.ts +5 -4
- package/ai-docs/tsconfig.json +3 -1
- package/dist/Arbitrary.d.ts +10 -2
- package/dist/Arbitrary.d.ts.map +1 -1
- package/dist/Arbitrary.js +2 -1
- package/dist/Arbitrary.js.map +1 -1
- package/dist/Array.d.ts +117 -52
- package/dist/Array.d.ts.map +1 -1
- package/dist/Array.js +41 -20
- package/dist/Array.js.map +1 -1
- package/dist/Bytes.d.ts +79 -0
- package/dist/Bytes.d.ts.map +1 -0
- package/dist/Bytes.js +109 -0
- package/dist/Bytes.js.map +1 -0
- package/dist/Channel.d.ts +181 -13
- package/dist/Channel.d.ts.map +1 -1
- package/dist/Channel.js +144 -34
- package/dist/Channel.js.map +1 -1
- package/dist/ChannelSchema.d.ts.map +1 -1
- package/dist/ChannelSchema.js.map +1 -1
- package/dist/Chunk.d.ts +39 -21
- package/dist/Chunk.d.ts.map +1 -1
- package/dist/Chunk.js +26 -17
- package/dist/Chunk.js.map +1 -1
- package/dist/Config.d.ts.map +1 -1
- package/dist/Config.js +8 -3
- package/dist/Config.js.map +1 -1
- package/dist/ConfigProvider.d.ts.map +1 -1
- package/dist/ConfigProvider.js +2 -1
- package/dist/ConfigProvider.js.map +1 -1
- package/dist/Cron.d.ts +2 -2
- package/dist/Cron.d.ts.map +1 -1
- package/dist/Cron.js +6 -3
- package/dist/Cron.js.map +1 -1
- package/dist/Data.d.ts +54 -235
- package/dist/Data.d.ts.map +1 -1
- package/dist/Data.js.map +1 -1
- package/dist/Duration.d.ts.map +1 -1
- package/dist/Duration.js +56 -16
- package/dist/Duration.js.map +1 -1
- package/dist/Effect.d.ts +488 -164
- package/dist/Effect.d.ts.map +1 -1
- package/dist/Effect.js +204 -38
- package/dist/Effect.js.map +1 -1
- package/dist/Equal.d.ts.map +1 -1
- package/dist/Equal.js +8 -1
- package/dist/Equal.js.map +1 -1
- package/dist/Equivalence.d.ts +2 -1
- package/dist/Equivalence.d.ts.map +1 -1
- package/dist/Equivalence.js +12 -8
- package/dist/Equivalence.js.map +1 -1
- package/dist/Exit.d.ts +27 -12
- package/dist/Exit.d.ts.map +1 -1
- package/dist/Exit.js +8 -3
- package/dist/Exit.js.map +1 -1
- package/dist/FiberHandle.d.ts +2 -0
- package/dist/FiberHandle.d.ts.map +1 -1
- package/dist/FiberHandle.js +9 -4
- package/dist/FiberHandle.js.map +1 -1
- package/dist/FiberMap.d.ts +2 -0
- package/dist/FiberMap.d.ts.map +1 -1
- package/dist/FiberMap.js +5 -2
- package/dist/FiberMap.js.map +1 -1
- package/dist/FileSystem.d.ts +5 -0
- package/dist/FileSystem.d.ts.map +1 -1
- package/dist/FileSystem.js +3 -0
- package/dist/FileSystem.js.map +1 -1
- package/dist/Formatter.d.ts.map +1 -1
- package/dist/Formatter.js +27 -13
- package/dist/Formatter.js.map +1 -1
- package/dist/Graph.d.ts.map +1 -1
- package/dist/Graph.js.map +1 -1
- package/dist/Hash.d.ts.map +1 -1
- package/dist/Hash.js +4 -1
- package/dist/Hash.js.map +1 -1
- package/dist/HashSet.d.ts.map +1 -1
- package/dist/HashSet.js.map +1 -1
- package/dist/Iterable.d.ts.map +1 -1
- package/dist/Iterable.js +18 -17
- package/dist/Iterable.js.map +1 -1
- package/dist/JsonPatch.js +4 -0
- package/dist/JsonPatch.js.map +1 -1
- package/dist/JsonSchema.d.ts +9 -3
- package/dist/JsonSchema.d.ts.map +1 -1
- package/dist/JsonSchema.js +32 -43
- package/dist/JsonSchema.js.map +1 -1
- package/dist/Layer.d.ts.map +1 -1
- package/dist/Layer.js +2 -2
- package/dist/Layer.js.map +1 -1
- package/dist/ManagedRuntime.d.ts +19 -1
- package/dist/ManagedRuntime.d.ts.map +1 -1
- package/dist/ManagedRuntime.js +62 -6
- package/dist/ManagedRuntime.js.map +1 -1
- package/dist/Metric.d.ts +135 -3
- package/dist/Metric.d.ts.map +1 -1
- package/dist/Metric.js +197 -25
- package/dist/Metric.js.map +1 -1
- package/dist/MutableHashMap.d.ts.map +1 -1
- package/dist/MutableHashMap.js.map +1 -1
- package/dist/MutableList.d.ts +5 -2
- package/dist/MutableList.d.ts.map +1 -1
- package/dist/MutableList.js +7 -5
- package/dist/MutableList.js.map +1 -1
- package/dist/MutableRef.d.ts.map +1 -1
- package/dist/MutableRef.js +7 -0
- package/dist/MutableRef.js.map +1 -1
- package/dist/Number.js +2 -2
- package/dist/Number.js.map +1 -1
- package/dist/Optic.d.ts.map +1 -1
- package/dist/Optic.js.map +1 -1
- package/dist/PartitionedSemaphore.d.ts +2 -1
- package/dist/PartitionedSemaphore.d.ts.map +1 -1
- package/dist/PartitionedSemaphore.js +22 -12
- package/dist/PartitionedSemaphore.js.map +1 -1
- package/dist/Path.d.ts.map +1 -1
- package/dist/Path.js +8 -1
- package/dist/Path.js.map +1 -1
- package/dist/Pool.d.ts.map +1 -1
- package/dist/Pool.js +77 -27
- package/dist/Pool.js.map +1 -1
- package/dist/PubSub.d.ts.map +1 -1
- package/dist/PubSub.js +17 -13
- package/dist/PubSub.js.map +1 -1
- package/dist/Queue.d.ts +4 -1
- package/dist/Queue.d.ts.map +1 -1
- package/dist/Queue.js +4 -1
- package/dist/Queue.js.map +1 -1
- package/dist/Random.d.ts.map +1 -1
- package/dist/Random.js +1 -1
- package/dist/Random.js.map +1 -1
- package/dist/RcMap.d.ts +12 -7
- package/dist/RcMap.d.ts.map +1 -1
- package/dist/RcMap.js +9 -6
- package/dist/RcMap.js.map +1 -1
- package/dist/Record.d.ts +51 -0
- package/dist/Record.d.ts.map +1 -1
- package/dist/Record.js +17 -0
- package/dist/Record.js.map +1 -1
- package/dist/Ref.d.ts.map +1 -1
- package/dist/Ref.js +8 -0
- package/dist/Ref.js.map +1 -1
- package/dist/References.d.ts +5 -4
- package/dist/References.d.ts.map +1 -1
- package/dist/References.js +5 -4
- package/dist/References.js.map +1 -1
- package/dist/RequestResolver.d.ts +31 -1
- package/dist/RequestResolver.d.ts.map +1 -1
- package/dist/RequestResolver.js +39 -4
- package/dist/RequestResolver.js.map +1 -1
- package/dist/Resource.js +1 -1
- package/dist/Resource.js.map +1 -1
- package/dist/Runtime.d.ts +3 -3
- package/dist/Runtime.d.ts.map +1 -1
- package/dist/Runtime.js +18 -15
- package/dist/Runtime.js.map +1 -1
- package/dist/Schedule.d.ts.map +1 -1
- package/dist/Schedule.js +1 -1
- package/dist/Schedule.js.map +1 -1
- package/dist/Schema.d.ts +408 -340
- package/dist/Schema.d.ts.map +1 -1
- package/dist/Schema.js +370 -47
- package/dist/Schema.js.map +1 -1
- package/dist/SchemaAST.d.ts +9 -7
- package/dist/SchemaAST.d.ts.map +1 -1
- package/dist/SchemaAST.js +38 -25
- package/dist/SchemaAST.js.map +1 -1
- package/dist/SchemaGetter.d.ts +8 -3
- package/dist/SchemaGetter.d.ts.map +1 -1
- package/dist/SchemaGetter.js +15 -5
- package/dist/SchemaGetter.js.map +1 -1
- package/dist/SchemaIssue.d.ts +4 -4
- package/dist/SchemaIssue.d.ts.map +1 -1
- package/dist/SchemaIssue.js +29 -51
- package/dist/SchemaIssue.js.map +1 -1
- package/dist/SchemaParser.d.ts.map +1 -1
- package/dist/SchemaParser.js +48 -22
- package/dist/SchemaParser.js.map +1 -1
- package/dist/SchemaRepresentation.d.ts +75 -11
- package/dist/SchemaRepresentation.d.ts.map +1 -1
- package/dist/SchemaRepresentation.js +41 -13
- package/dist/SchemaRepresentation.js.map +1 -1
- package/dist/SchemaTransformation.d.ts +5 -2
- package/dist/SchemaTransformation.d.ts.map +1 -1
- package/dist/SchemaTransformation.js +10 -3
- package/dist/SchemaTransformation.js.map +1 -1
- package/dist/Scope.d.ts +12 -2
- package/dist/Scope.d.ts.map +1 -1
- package/dist/Scope.js +5 -0
- package/dist/Scope.js.map +1 -1
- package/dist/ScopedCache.d.ts +10 -7
- package/dist/ScopedCache.d.ts.map +1 -1
- package/dist/ScopedCache.js +9 -5
- package/dist/ScopedCache.js.map +1 -1
- package/dist/SemVer.d.ts +1196 -0
- package/dist/SemVer.d.ts.map +1 -0
- package/dist/SemVer.js +756 -0
- package/dist/SemVer.js.map +1 -0
- package/dist/SemVerRange.d.ts +559 -0
- package/dist/SemVerRange.d.ts.map +1 -0
- package/dist/SemVerRange.js +551 -0
- package/dist/SemVerRange.js.map +1 -0
- package/dist/Semaphore.d.ts.map +1 -1
- package/dist/Semaphore.js +54 -35
- package/dist/Semaphore.js.map +1 -1
- package/dist/Sink.d.ts.map +1 -1
- package/dist/Sink.js +13 -4
- package/dist/Sink.js.map +1 -1
- package/dist/Stream.d.ts +235 -8
- package/dist/Stream.d.ts.map +1 -1
- package/dist/Stream.js +167 -70
- package/dist/Stream.js.map +1 -1
- package/dist/String.d.ts +7 -2
- package/dist/String.d.ts.map +1 -1
- package/dist/String.js +11 -6
- package/dist/String.js.map +1 -1
- package/dist/TextDiff.d.ts +399 -0
- package/dist/TextDiff.d.ts.map +1 -0
- package/dist/TextDiff.js +634 -0
- package/dist/TextDiff.js.map +1 -0
- package/dist/Tracer.d.ts +11 -1
- package/dist/Tracer.d.ts.map +1 -1
- package/dist/Tracer.js +6 -1
- package/dist/Tracer.js.map +1 -1
- package/dist/TxHashMap.d.ts.map +1 -1
- package/dist/TxHashMap.js.map +1 -1
- package/dist/TxHashSet.d.ts.map +1 -1
- package/dist/TxHashSet.js.map +1 -1
- package/dist/ai/AiError.d.ts +68 -4
- package/dist/ai/AiError.d.ts.map +1 -1
- package/dist/ai/AiError.js +50 -2
- package/dist/ai/AiError.js.map +1 -1
- package/dist/ai/Chat.d.ts +1 -2
- package/dist/ai/Chat.d.ts.map +1 -1
- package/dist/ai/Chat.js +6 -3
- package/dist/ai/Chat.js.map +1 -1
- package/dist/ai/Decision.d.ts +46 -1
- package/dist/ai/Decision.d.ts.map +1 -1
- package/dist/ai/Decision.js.map +1 -1
- package/dist/ai/DecisionModel.d.ts +129 -11
- package/dist/ai/DecisionModel.d.ts.map +1 -1
- package/dist/ai/DecisionModel.js +182 -94
- package/dist/ai/DecisionModel.js.map +1 -1
- package/dist/ai/EmbeddingModel.d.ts +10 -0
- package/dist/ai/EmbeddingModel.d.ts.map +1 -1
- package/dist/ai/EmbeddingModel.js +21 -7
- package/dist/ai/EmbeddingModel.js.map +1 -1
- package/dist/ai/LanguageModel.d.ts.map +1 -1
- package/dist/ai/LanguageModel.js +9 -0
- package/dist/ai/LanguageModel.js.map +1 -1
- package/dist/ai/McpClient.d.ts +289 -0
- package/dist/ai/McpClient.d.ts.map +1 -0
- package/dist/ai/McpClient.js +819 -0
- package/dist/ai/McpClient.js.map +1 -0
- package/dist/ai/McpClientError.d.ts +254 -0
- package/dist/ai/McpClientError.d.ts.map +1 -0
- package/dist/ai/McpClientError.js +260 -0
- package/dist/ai/McpClientError.js.map +1 -0
- package/dist/ai/McpProtocol.d.ts +2 -2
- package/dist/ai/McpProtocol.d.ts.map +1 -1
- package/dist/ai/McpSchema.d.ts +258 -125
- package/dist/ai/McpSchema.d.ts.map +1 -1
- package/dist/ai/McpSchema.js +94 -24
- package/dist/ai/McpSchema.js.map +1 -1
- package/dist/ai/McpServer.d.ts.map +1 -1
- package/dist/ai/McpServer.js +46 -37
- package/dist/ai/McpServer.js.map +1 -1
- package/dist/ai/Prompt.d.ts +74 -20
- package/dist/ai/Prompt.d.ts.map +1 -1
- package/dist/ai/Prompt.js +61 -1
- package/dist/ai/Prompt.js.map +1 -1
- package/dist/ai/Response.d.ts +160 -3
- package/dist/ai/Response.d.ts.map +1 -1
- package/dist/ai/Response.js +39 -37
- package/dist/ai/Response.js.map +1 -1
- package/dist/ai/Tool.d.ts +36 -4
- package/dist/ai/Tool.d.ts.map +1 -1
- package/dist/ai/Tool.js +5 -2
- package/dist/ai/Tool.js.map +1 -1
- package/dist/ai/Toolkit.d.ts +48 -1
- package/dist/ai/Toolkit.d.ts.map +1 -1
- package/dist/ai/Toolkit.js +73 -13
- package/dist/ai/Toolkit.js.map +1 -1
- package/dist/ai/index.d.ts +10 -0
- package/dist/ai/index.d.ts.map +1 -1
- package/dist/ai/index.js +10 -0
- package/dist/ai/index.js.map +1 -1
- package/dist/ai/internal/mcpCore.js.map +1 -1
- package/dist/ai/internal/mcpProtocol/v2024_11_05.js +1 -1
- package/dist/ai/internal/mcpProtocol/v2024_11_05.js.map +1 -1
- package/dist/ai/internal/mcpProtocol/v2025_03_26.js +1 -1
- package/dist/ai/internal/mcpProtocol/v2025_03_26.js.map +1 -1
- package/dist/ai/internal/mcpProtocol/v2025_06_18.js +2 -2
- package/dist/ai/internal/mcpProtocol/v2025_06_18.js.map +1 -1
- package/dist/ai/internal/mcpProtocol/v2025_11_25.js +2 -2
- package/dist/ai/internal/mcpProtocol/v2025_11_25.js.map +1 -1
- package/dist/ai/internal/mcpProtocol/v2026_07_28.js +4 -7
- package/dist/ai/internal/mcpProtocol/v2026_07_28.js.map +1 -1
- package/dist/ai/internal/mcpProtocol.js +16 -2
- package/dist/ai/internal/mcpProtocol.js.map +1 -1
- package/dist/ai/internal/mcpRuntime.js +3 -4
- package/dist/ai/internal/mcpRuntime.js.map +1 -1
- package/dist/ai/internal/mcpSchema/v2024_11_05.js +19 -13
- package/dist/ai/internal/mcpSchema/v2024_11_05.js.map +1 -1
- package/dist/ai/internal/mcpSchema/v2025_03_26.js +3 -2
- package/dist/ai/internal/mcpSchema/v2025_03_26.js.map +1 -1
- package/dist/ai/internal/mcpSchema/v2025_06_18.js +7 -7
- package/dist/ai/internal/mcpSchema/v2025_06_18.js.map +1 -1
- package/dist/ai/internal/mcpSchema/v2025_11_25.js +8 -8
- package/dist/ai/internal/mcpSchema/v2025_11_25.js.map +1 -1
- package/dist/ai/internal/mcpSchema/v2026_07_28.js +43 -42
- package/dist/ai/internal/mcpSchema/v2026_07_28.js.map +1 -1
- package/dist/cli/Argument.d.ts +15 -0
- package/dist/cli/Argument.d.ts.map +1 -1
- package/dist/cli/Argument.js +5 -0
- package/dist/cli/Argument.js.map +1 -1
- package/dist/cli/CliError.d.ts +120 -2
- package/dist/cli/CliError.d.ts.map +1 -1
- package/dist/cli/CliError.js +106 -5
- package/dist/cli/CliError.js.map +1 -1
- package/dist/cli/CliOutput.d.ts +155 -6
- package/dist/cli/CliOutput.d.ts.map +1 -1
- package/dist/cli/CliOutput.js +62 -6
- package/dist/cli/CliOutput.js.map +1 -1
- package/dist/cli/Command.d.ts +310 -18
- package/dist/cli/Command.d.ts.map +1 -1
- package/dist/cli/Command.js +164 -33
- package/dist/cli/Command.js.map +1 -1
- package/dist/cli/Completions.d.ts +63 -0
- package/dist/cli/Completions.d.ts.map +1 -1
- package/dist/cli/Completions.js +49 -9
- package/dist/cli/Completions.js.map +1 -1
- package/dist/cli/Flag.d.ts +130 -0
- package/dist/cli/Flag.d.ts.map +1 -1
- package/dist/cli/Flag.js +61 -0
- package/dist/cli/Flag.js.map +1 -1
- package/dist/cli/GlobalFlag.d.ts.map +1 -1
- package/dist/cli/GlobalFlag.js +14 -6
- package/dist/cli/GlobalFlag.js.map +1 -1
- package/dist/cli/Param.d.ts +116 -0
- package/dist/cli/Param.d.ts.map +1 -1
- package/dist/cli/Param.js +77 -2
- package/dist/cli/Param.js.map +1 -1
- package/dist/cli/TerminalCapabilities.d.ts +85 -0
- package/dist/cli/TerminalCapabilities.d.ts.map +1 -0
- package/dist/cli/TerminalCapabilities.js +124 -0
- package/dist/cli/TerminalCapabilities.js.map +1 -0
- package/dist/cli/index.d.ts +5 -0
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +5 -0
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/internal/command.d.ts +2 -1
- package/dist/cli/internal/command.d.ts.map +1 -1
- package/dist/cli/internal/command.js +5 -2
- package/dist/cli/internal/command.js.map +1 -1
- package/dist/cli/internal/completions/bash.js +77 -30
- package/dist/cli/internal/completions/bash.js.map +1 -1
- package/dist/cli/internal/completions/descriptor.js +9 -1
- package/dist/cli/internal/completions/descriptor.js.map +1 -1
- package/dist/cli/internal/completions/fish.js +10 -8
- package/dist/cli/internal/completions/fish.js.map +1 -1
- package/dist/cli/internal/completions/powershell.js +18 -9
- package/dist/cli/internal/completions/powershell.js.map +1 -1
- package/dist/cli/internal/completions/zsh.js +8 -5
- package/dist/cli/internal/completions/zsh.js.map +1 -1
- package/dist/cli/internal/formatter.d.ts +2 -0
- package/dist/cli/internal/formatter.d.ts.map +1 -0
- package/dist/cli/internal/formatter.js +15 -0
- package/dist/cli/internal/formatter.js.map +1 -0
- package/dist/cli/internal/lexer.js +24 -10
- package/dist/cli/internal/lexer.js.map +1 -1
- package/dist/cli/internal/parser.js +24 -12
- package/dist/cli/internal/parser.js.map +1 -1
- package/dist/cluster/ClusterCron.d.ts +29 -1
- package/dist/cluster/ClusterCron.d.ts.map +1 -1
- package/dist/cluster/ClusterCron.js +64 -32
- package/dist/cluster/ClusterCron.js.map +1 -1
- package/dist/cluster/ClusterMetrics.d.ts +143 -7
- package/dist/cluster/ClusterMetrics.d.ts.map +1 -1
- package/dist/cluster/ClusterMetrics.js +151 -7
- package/dist/cluster/ClusterMetrics.js.map +1 -1
- package/dist/cluster/ClusterWorkflowEngine.d.ts +1 -1
- package/dist/cluster/ClusterWorkflowEngine.d.ts.map +1 -1
- package/dist/cluster/ClusterWorkflowEngine.js +82 -21
- package/dist/cluster/ClusterWorkflowEngine.js.map +1 -1
- package/dist/cluster/Entity.d.ts +2 -0
- package/dist/cluster/Entity.d.ts.map +1 -1
- package/dist/cluster/Entity.js.map +1 -1
- package/dist/cluster/MessageStorage.d.ts +44 -45
- package/dist/cluster/MessageStorage.d.ts.map +1 -1
- package/dist/cluster/MessageStorage.js +6 -7
- package/dist/cluster/MessageStorage.js.map +1 -1
- package/dist/cluster/Runners.d.ts.map +1 -1
- package/dist/cluster/Runners.js +54 -15
- package/dist/cluster/Runners.js.map +1 -1
- package/dist/cluster/Sharding.d.ts +1 -0
- package/dist/cluster/Sharding.d.ts.map +1 -1
- package/dist/cluster/Sharding.js +155 -52
- package/dist/cluster/Sharding.js.map +1 -1
- package/dist/cluster/ShardingConfig.d.ts +30 -0
- package/dist/cluster/ShardingConfig.d.ts.map +1 -1
- package/dist/cluster/ShardingConfig.js +4 -0
- package/dist/cluster/ShardingConfig.js.map +1 -1
- package/dist/cluster/Snowflake.d.ts.map +1 -1
- package/dist/cluster/Snowflake.js +3 -7
- package/dist/cluster/Snowflake.js.map +1 -1
- package/dist/cluster/SqlMessageStorage.d.ts.map +1 -1
- package/dist/cluster/SqlMessageStorage.js +40 -50
- package/dist/cluster/SqlMessageStorage.js.map +1 -1
- package/dist/cluster/SqlRunnerStorage.d.ts +2 -2
- package/dist/cluster/SqlRunnerStorage.d.ts.map +1 -1
- package/dist/cluster/SqlRunnerStorage.js +97 -43
- package/dist/cluster/SqlRunnerStorage.js.map +1 -1
- package/dist/cluster/internal/entityManager.js +119 -28
- package/dist/cluster/internal/entityManager.js.map +1 -1
- package/dist/devtools/DevTools.d.ts +3 -2
- package/dist/devtools/DevTools.d.ts.map +1 -1
- package/dist/devtools/DevTools.js +3 -2
- package/dist/devtools/DevTools.js.map +1 -1
- package/dist/devtools/DevToolsClient.d.ts +11 -0
- package/dist/devtools/DevToolsClient.d.ts.map +1 -1
- package/dist/devtools/DevToolsClient.js +33 -4
- package/dist/devtools/DevToolsClient.js.map +1 -1
- package/dist/encoding/Base64.js +36 -0
- package/dist/encoding/Base64.js.map +1 -1
- package/dist/encoding/Base64Url.d.ts +29 -0
- package/dist/encoding/Base64Url.d.ts.map +1 -1
- package/dist/encoding/Base64Url.js +29 -0
- package/dist/encoding/Base64Url.js.map +1 -1
- package/dist/encoding/Ini.d.ts.map +1 -1
- package/dist/encoding/Ini.js +3 -0
- package/dist/encoding/Ini.js.map +1 -1
- package/dist/encoding/JsonArray.d.ts +270 -0
- package/dist/encoding/JsonArray.d.ts.map +1 -0
- package/dist/encoding/JsonArray.js +691 -0
- package/dist/encoding/JsonArray.js.map +1 -0
- package/dist/encoding/Ndjson.d.ts +43 -4
- package/dist/encoding/Ndjson.d.ts.map +1 -1
- package/dist/encoding/Ndjson.js +169 -18
- package/dist/encoding/Ndjson.js.map +1 -1
- package/dist/encoding/SchemaBinary.d.ts +9 -1
- package/dist/encoding/SchemaBinary.d.ts.map +1 -1
- package/dist/encoding/SchemaBinary.js +12 -19
- package/dist/encoding/SchemaBinary.js.map +1 -1
- package/dist/encoding/Sse.d.ts.map +1 -1
- package/dist/encoding/Sse.js +3 -3
- package/dist/encoding/Sse.js.map +1 -1
- package/dist/encoding/Tar.d.ts +309 -0
- package/dist/encoding/Tar.d.ts.map +1 -0
- package/dist/encoding/Tar.js +1182 -0
- package/dist/encoding/Tar.js.map +1 -0
- package/dist/encoding/Toml.d.ts.map +1 -1
- package/dist/encoding/Toml.js +24 -19
- package/dist/encoding/Toml.js.map +1 -1
- package/dist/encoding/Xml.d.ts +464 -0
- package/dist/encoding/Xml.d.ts.map +1 -0
- package/dist/encoding/Xml.js +1619 -0
- package/dist/encoding/Xml.js.map +1 -0
- package/dist/encoding/Yaml.d.ts +6 -2
- package/dist/encoding/Yaml.d.ts.map +1 -1
- package/dist/encoding/Yaml.js +97 -34
- package/dist/encoding/Yaml.js.map +1 -1
- package/dist/encoding/Zip.d.ts +413 -0
- package/dist/encoding/Zip.d.ts.map +1 -0
- package/dist/encoding/Zip.js +1255 -0
- package/dist/encoding/Zip.js.map +1 -0
- package/dist/encoding/index.d.ts +20 -0
- package/dist/encoding/index.d.ts.map +1 -1
- package/dist/encoding/index.js +20 -0
- package/dist/encoding/index.js.map +1 -1
- package/dist/eventlog/EventJournal.d.ts +90 -5
- package/dist/eventlog/EventJournal.d.ts.map +1 -1
- package/dist/eventlog/EventJournal.js +488 -228
- package/dist/eventlog/EventJournal.js.map +1 -1
- package/dist/eventlog/EventLog.d.ts +180 -12
- package/dist/eventlog/EventLog.d.ts.map +1 -1
- package/dist/eventlog/EventLog.js +394 -146
- package/dist/eventlog/EventLog.js.map +1 -1
- package/dist/eventlog/EventLogEncryption.d.ts +36 -30
- package/dist/eventlog/EventLogEncryption.d.ts.map +1 -1
- package/dist/eventlog/EventLogEncryption.js +97 -38
- package/dist/eventlog/EventLogEncryption.js.map +1 -1
- package/dist/eventlog/EventLogMessage.d.ts +74 -34
- package/dist/eventlog/EventLogMessage.d.ts.map +1 -1
- package/dist/eventlog/EventLogMessage.js +45 -11
- package/dist/eventlog/EventLogMessage.js.map +1 -1
- package/dist/eventlog/EventLogRemote.d.ts +45 -8
- package/dist/eventlog/EventLogRemote.d.ts.map +1 -1
- package/dist/eventlog/EventLogRemote.js +51 -14
- package/dist/eventlog/EventLogRemote.js.map +1 -1
- package/dist/eventlog/EventLogServer.d.ts +46 -3
- package/dist/eventlog/EventLogServer.d.ts.map +1 -1
- package/dist/eventlog/EventLogServer.js +119 -19
- package/dist/eventlog/EventLogServer.js.map +1 -1
- package/dist/eventlog/EventLogServerEncrypted.d.ts +23 -33
- package/dist/eventlog/EventLogServerEncrypted.d.ts.map +1 -1
- package/dist/eventlog/EventLogServerEncrypted.js +97 -70
- package/dist/eventlog/EventLogServerEncrypted.js.map +1 -1
- package/dist/eventlog/EventLogServerUnencrypted.d.ts +39 -5
- package/dist/eventlog/EventLogServerUnencrypted.d.ts.map +1 -1
- package/dist/eventlog/EventLogServerUnencrypted.js +151 -69
- package/dist/eventlog/EventLogServerUnencrypted.js.map +1 -1
- package/dist/eventlog/EventRow.d.ts +288 -0
- package/dist/eventlog/EventRow.d.ts.map +1 -0
- package/dist/eventlog/EventRow.js +435 -0
- package/dist/eventlog/EventRow.js.map +1 -0
- package/dist/eventlog/SqlEventJournal.d.ts +18 -18
- package/dist/eventlog/SqlEventJournal.d.ts.map +1 -1
- package/dist/eventlog/SqlEventJournal.js +417 -169
- package/dist/eventlog/SqlEventJournal.js.map +1 -1
- package/dist/eventlog/SqlEventLogServerEncrypted.d.ts +10 -18
- package/dist/eventlog/SqlEventLogServerEncrypted.d.ts.map +1 -1
- package/dist/eventlog/SqlEventLogServerEncrypted.js +179 -69
- package/dist/eventlog/SqlEventLogServerEncrypted.js.map +1 -1
- package/dist/eventlog/SqlEventLogServerUnencrypted.d.ts +23 -3
- package/dist/eventlog/SqlEventLogServerUnencrypted.d.ts.map +1 -1
- package/dist/eventlog/SqlEventLogServerUnencrypted.js +102 -51
- package/dist/eventlog/SqlEventLogServerUnencrypted.js.map +1 -1
- package/dist/eventlog/index.d.ts +5 -0
- package/dist/eventlog/index.d.ts.map +1 -1
- package/dist/eventlog/index.js +5 -0
- package/dist/eventlog/index.js.map +1 -1
- package/dist/eventlog/internal/conflicts.d.ts +46 -0
- package/dist/eventlog/internal/conflicts.d.ts.map +1 -0
- package/dist/eventlog/internal/conflicts.js +89 -0
- package/dist/eventlog/internal/conflicts.js.map +1 -0
- package/dist/graphql/GraphQLClientError.d.ts +2 -2
- package/dist/graphql/GraphQLClientError.d.ts.map +1 -1
- package/dist/graphql/GraphQLClientError.js +4 -18
- package/dist/graphql/GraphQLClientError.js.map +1 -1
- package/dist/graphql/GraphQLProtocol.d.ts +12 -9
- package/dist/graphql/GraphQLProtocol.d.ts.map +1 -1
- package/dist/graphql/GraphQLProtocol.js +4 -3
- package/dist/graphql/GraphQLProtocol.js.map +1 -1
- package/dist/graphql/GraphQLResolver.d.ts +2 -0
- package/dist/graphql/GraphQLResolver.d.ts.map +1 -1
- package/dist/graphql/GraphQLResolver.js +74 -32
- package/dist/graphql/GraphQLResolver.js.map +1 -1
- package/dist/http/Cookies.d.ts.map +1 -1
- package/dist/http/Cookies.js +10 -9
- package/dist/http/Cookies.js.map +1 -1
- package/dist/http/FetchHttpClient.d.ts +8 -1
- package/dist/http/FetchHttpClient.d.ts.map +1 -1
- package/dist/http/FetchHttpClient.js +51 -4
- package/dist/http/FetchHttpClient.js.map +1 -1
- package/dist/http/FindMyWay/internal/router.js +10 -0
- package/dist/http/FindMyWay/internal/router.js.map +1 -1
- package/dist/http/Headers.d.ts +227 -0
- package/dist/http/Headers.d.ts.map +1 -1
- package/dist/http/Headers.js +261 -0
- package/dist/http/Headers.js.map +1 -1
- package/dist/http/HttpClient.d.ts +516 -0
- package/dist/http/HttpClient.d.ts.map +1 -1
- package/dist/http/HttpClient.js +286 -23
- package/dist/http/HttpClient.js.map +1 -1
- package/dist/http/HttpClientError.d.ts +8 -1
- package/dist/http/HttpClientError.d.ts.map +1 -1
- package/dist/http/HttpClientError.js +37 -1
- package/dist/http/HttpClientError.js.map +1 -1
- package/dist/http/HttpClientRequest.d.ts +127 -3
- package/dist/http/HttpClientRequest.d.ts.map +1 -1
- package/dist/http/HttpClientRequest.js +45 -3
- package/dist/http/HttpClientRequest.js.map +1 -1
- package/dist/http/HttpClientResponse.d.ts +53 -0
- package/dist/http/HttpClientResponse.d.ts.map +1 -1
- package/dist/http/HttpClientResponse.js +47 -0
- package/dist/http/HttpClientResponse.js.map +1 -1
- package/dist/http/HttpEffect.d.ts +6 -2
- package/dist/http/HttpEffect.d.ts.map +1 -1
- package/dist/http/HttpEffect.js +21 -17
- package/dist/http/HttpEffect.js.map +1 -1
- package/dist/http/HttpIncomingMessage.d.ts +2 -1
- package/dist/http/HttpIncomingMessage.d.ts.map +1 -1
- package/dist/http/HttpIncomingMessage.js +3 -23
- package/dist/http/HttpIncomingMessage.js.map +1 -1
- package/dist/http/HttpMiddleware.d.ts +119 -2
- package/dist/http/HttpMiddleware.d.ts.map +1 -1
- package/dist/http/HttpMiddleware.js +173 -29
- package/dist/http/HttpMiddleware.js.map +1 -1
- package/dist/http/HttpRouter.d.ts.map +1 -1
- package/dist/http/HttpRouter.js +9 -3
- package/dist/http/HttpRouter.js.map +1 -1
- package/dist/http/HttpServerError.d.ts +5 -2
- package/dist/http/HttpServerError.d.ts.map +1 -1
- package/dist/http/HttpServerError.js +7 -5
- package/dist/http/HttpServerError.js.map +1 -1
- package/dist/http/HttpServerRequest.d.ts +30 -5
- package/dist/http/HttpServerRequest.d.ts.map +1 -1
- package/dist/http/HttpServerRequest.js +109 -20
- package/dist/http/HttpServerRequest.js.map +1 -1
- package/dist/http/HttpServerResponse.d.ts +17 -8
- package/dist/http/HttpServerResponse.d.ts.map +1 -1
- package/dist/http/HttpServerResponse.js +37 -21
- package/dist/http/HttpServerResponse.js.map +1 -1
- package/dist/http/HttpStaticServer.d.ts +0 -12
- package/dist/http/HttpStaticServer.d.ts.map +1 -1
- package/dist/http/HttpStaticServer.js +65 -24
- package/dist/http/HttpStaticServer.js.map +1 -1
- package/dist/http/MultipartParser/internal/contentType.d.ts +15 -1
- package/dist/http/MultipartParser/internal/contentType.d.ts.map +1 -1
- package/dist/http/MultipartParser/internal/contentType.js +89 -7
- package/dist/http/MultipartParser/internal/contentType.js.map +1 -1
- package/dist/http/MultipartParser/internal/headers.d.ts.map +1 -1
- package/dist/http/MultipartParser/internal/headers.js +4 -12
- package/dist/http/MultipartParser/internal/headers.js.map +1 -1
- package/dist/http/MultipartParser/internal/multipart.d.ts.map +1 -1
- package/dist/http/MultipartParser/internal/multipart.js +6 -27
- package/dist/http/MultipartParser/internal/multipart.js.map +1 -1
- package/dist/http/Url.d.ts.map +1 -1
- package/dist/http/Url.js +6 -1
- package/dist/http/Url.js.map +1 -1
- package/dist/http/UrlParams.d.ts +3 -1
- package/dist/http/UrlParams.d.ts.map +1 -1
- package/dist/http/UrlParams.js +4 -2
- package/dist/http/UrlParams.js.map +1 -1
- package/dist/http/internal/compression.js +4 -5
- package/dist/http/internal/compression.js.map +1 -1
- package/dist/http/internal/decompression.js +20 -11
- package/dist/http/internal/decompression.js.map +1 -1
- package/dist/http/internal/httpBody.js +8 -1
- package/dist/http/internal/httpBody.js.map +1 -1
- package/dist/http/internal/lazyStream.d.ts +2 -0
- package/dist/http/internal/lazyStream.d.ts.map +1 -0
- package/dist/http/internal/lazyStream.js +18 -0
- package/dist/http/internal/lazyStream.js.map +1 -0
- package/dist/http/internal/requestState.d.ts +2 -0
- package/dist/http/internal/requestState.d.ts.map +1 -0
- package/dist/http/internal/requestState.js +28 -0
- package/dist/http/internal/requestState.js.map +1 -0
- package/dist/http/internal/urlParams.js +25 -0
- package/dist/http/internal/urlParams.js.map +1 -1
- package/dist/http/internal/webResponse.d.ts +2 -0
- package/dist/http/internal/webResponse.d.ts.map +1 -0
- package/dist/http/internal/webResponse.js +12 -0
- package/dist/http/internal/webResponse.js.map +1 -0
- package/dist/http-api/HttpApi.d.ts +3 -6
- package/dist/http-api/HttpApi.d.ts.map +1 -1
- package/dist/http-api/HttpApi.js +4 -7
- package/dist/http-api/HttpApi.js.map +1 -1
- package/dist/http-api/HttpApiBuilder.d.ts.map +1 -1
- package/dist/http-api/HttpApiBuilder.js +142 -23
- package/dist/http-api/HttpApiBuilder.js.map +1 -1
- package/dist/http-api/HttpApiClient.d.ts +99 -4
- package/dist/http-api/HttpApiClient.d.ts.map +1 -1
- package/dist/http-api/HttpApiClient.js +218 -60
- package/dist/http-api/HttpApiClient.js.map +1 -1
- package/dist/http-api/HttpApiEndpoint.d.ts +72 -29
- package/dist/http-api/HttpApiEndpoint.d.ts.map +1 -1
- package/dist/http-api/HttpApiEndpoint.js +140 -14
- package/dist/http-api/HttpApiEndpoint.js.map +1 -1
- package/dist/http-api/HttpApiError.d.ts +58 -0
- package/dist/http-api/HttpApiError.d.ts.map +1 -1
- package/dist/http-api/HttpApiError.js +38 -12
- package/dist/http-api/HttpApiError.js.map +1 -1
- package/dist/http-api/HttpApiScalar.d.ts +2 -1
- package/dist/http-api/HttpApiScalar.d.ts.map +1 -1
- package/dist/http-api/HttpApiScalar.js +6 -3
- package/dist/http-api/HttpApiScalar.js.map +1 -1
- package/dist/http-api/HttpApiSchema.d.ts +242 -13
- package/dist/http-api/HttpApiSchema.d.ts.map +1 -1
- package/dist/http-api/HttpApiSchema.js +149 -5
- package/dist/http-api/HttpApiSchema.js.map +1 -1
- package/dist/http-api/HttpApiSwagger.d.ts +5 -0
- package/dist/http-api/HttpApiSwagger.d.ts.map +1 -1
- package/dist/http-api/HttpApiSwagger.js +14 -4
- package/dist/http-api/HttpApiSwagger.js.map +1 -1
- package/dist/http-api/HttpApiTest.d.ts +13 -2
- package/dist/http-api/HttpApiTest.d.ts.map +1 -1
- package/dist/http-api/HttpApiTest.js +33 -11
- package/dist/http-api/HttpApiTest.js.map +1 -1
- package/dist/http-api/OpenApi.d.ts +17 -3
- package/dist/http-api/OpenApi.d.ts.map +1 -1
- package/dist/http-api/OpenApi.js +81 -47
- package/dist/http-api/OpenApi.js.map +1 -1
- package/dist/http-api/internal/path.js +35 -10
- package/dist/http-api/internal/path.js.map +1 -1
- package/dist/http-api/internal/toCodecHttpProperties.d.ts +2 -0
- package/dist/http-api/internal/toCodecHttpProperties.d.ts.map +1 -0
- package/dist/http-api/internal/toCodecHttpProperties.js +38 -0
- package/dist/http-api/internal/toCodecHttpProperties.js.map +1 -0
- package/dist/index.d.ts +20 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +20 -0
- package/dist/index.js.map +1 -1
- package/dist/internal/arbitrary/runner.d.ts.map +1 -1
- package/dist/internal/arbitrary/runner.js +120 -44
- package/dist/internal/arbitrary/runner.js.map +1 -1
- package/dist/internal/core.js +3 -1
- package/dist/internal/core.js.map +1 -1
- package/dist/internal/dateTime.js +19 -7
- package/dist/internal/dateTime.js.map +1 -1
- package/dist/internal/effect.js +106 -87
- package/dist/internal/effect.js.map +1 -1
- package/dist/internal/equal.js +14 -0
- package/dist/internal/equal.js.map +1 -1
- package/dist/internal/hashMap.js +2 -2
- package/dist/internal/hashMap.js.map +1 -1
- package/dist/internal/hydration.d.ts +2 -0
- package/dist/internal/hydration.d.ts.map +1 -0
- package/dist/internal/hydration.js +15 -0
- package/dist/internal/hydration.js.map +1 -0
- package/dist/internal/inflate.d.ts +2 -0
- package/dist/internal/inflate.d.ts.map +1 -0
- package/dist/internal/inflate.js +680 -0
- package/dist/internal/inflate.js.map +1 -0
- package/dist/internal/jsonSchema.d.ts +2 -0
- package/dist/internal/jsonSchema.d.ts.map +1 -0
- package/dist/internal/jsonSchema.js +28 -0
- package/dist/internal/jsonSchema.js.map +1 -0
- package/dist/internal/matcher.js +1 -1
- package/dist/internal/matcher.js.map +1 -1
- package/dist/internal/record.js +6 -0
- package/dist/internal/record.js.map +1 -1
- package/dist/internal/request.js +20 -7
- package/dist/internal/request.js.map +1 -1
- package/dist/internal/schedule.js +17 -22
- package/dist/internal/schedule.js.map +1 -1
- package/dist/internal/schema/compilerRegistry.js +4 -1
- package/dist/internal/schema/compilerRegistry.js.map +1 -1
- package/dist/internal/schema/content.d.ts +2 -0
- package/dist/internal/schema/content.d.ts.map +1 -0
- package/dist/internal/schema/content.js +13 -0
- package/dist/internal/schema/content.js.map +1 -0
- package/dist/internal/schema/fromJsonSchemaDocument.js +253 -255
- package/dist/internal/schema/fromJsonSchemaDocument.js.map +1 -1
- package/dist/internal/schema/fromRepresentation.js +2 -1
- package/dist/internal/schema/fromRepresentation.js.map +1 -1
- package/dist/internal/schema/interpreter.js +51 -36
- package/dist/internal/schema/interpreter.js.map +1 -1
- package/dist/internal/schema/standardSchema.js +42 -35
- package/dist/internal/schema/standardSchema.js.map +1 -1
- package/dist/internal/schema/toCodeDocument.js +10 -5
- package/dist/internal/schema/toCodeDocument.js.map +1 -1
- package/dist/internal/schema/toCodec.js +99 -17
- package/dist/internal/schema/toCodec.js.map +1 -1
- package/dist/internal/schema/toFormatter.js +5 -5
- package/dist/internal/schema/toFormatter.js.map +1 -1
- package/dist/internal/schema/toJsonSchemaDocument.js +257 -170
- package/dist/internal/schema/toJsonSchemaDocument.js.map +1 -1
- package/dist/internal/schema/toRepresentation.js +107 -129
- package/dist/internal/schema/toRepresentation.js.map +1 -1
- package/dist/internal/sql.d.ts +2 -0
- package/dist/internal/sql.d.ts.map +1 -0
- package/dist/internal/sql.js +13 -0
- package/dist/internal/sql.js.map +1 -0
- package/dist/internal/trie.js +1 -3
- package/dist/internal/trie.js.map +1 -1
- package/dist/internal/uuid.js +7 -3
- package/dist/internal/uuid.js.map +1 -1
- package/dist/internal/version.js +1 -1
- package/dist/net/NetAddress.d.ts.map +1 -1
- package/dist/net/NetAddress.js +2 -8
- package/dist/net/NetAddress.js.map +1 -1
- package/dist/observability/OtlpExporter.d.ts.map +1 -1
- package/dist/observability/OtlpExporter.js +5 -12
- package/dist/observability/OtlpExporter.js.map +1 -1
- package/dist/observability/OtlpMetrics.d.ts.map +1 -1
- package/dist/observability/OtlpMetrics.js +5 -3
- package/dist/observability/OtlpMetrics.js.map +1 -1
- package/dist/observability/OtlpProxy.d.ts +154 -0
- package/dist/observability/OtlpProxy.d.ts.map +1 -0
- package/dist/observability/OtlpProxy.js +235 -0
- package/dist/observability/OtlpProxy.js.map +1 -0
- package/dist/observability/OtlpResource.d.ts +3 -1
- package/dist/observability/OtlpResource.d.ts.map +1 -1
- package/dist/observability/OtlpResource.js +11 -4
- package/dist/observability/OtlpResource.js.map +1 -1
- package/dist/observability/OtlpSerialization.d.ts +5 -0
- package/dist/observability/OtlpSerialization.d.ts.map +1 -1
- package/dist/observability/OtlpSerialization.js +14 -3
- package/dist/observability/OtlpSerialization.js.map +1 -1
- package/dist/observability/OtlpTracer.d.ts.map +1 -1
- package/dist/observability/OtlpTracer.js +4 -0
- package/dist/observability/OtlpTracer.js.map +1 -1
- package/dist/observability/index.d.ts +5 -0
- package/dist/observability/index.d.ts.map +1 -1
- package/dist/observability/index.js +5 -0
- package/dist/observability/index.js.map +1 -1
- package/dist/observability/internal/protobuf.d.ts +0 -9
- package/dist/observability/internal/protobuf.d.ts.map +1 -1
- package/dist/observability/internal/protobuf.js +2 -10
- package/dist/observability/internal/protobuf.js.map +1 -1
- package/dist/persistence/CircuitBreaker.d.ts +897 -0
- package/dist/persistence/CircuitBreaker.d.ts.map +1 -0
- package/dist/persistence/CircuitBreaker.js +1165 -0
- package/dist/persistence/CircuitBreaker.js.map +1 -0
- package/dist/persistence/PersistedCache.d.ts.map +1 -1
- package/dist/persistence/PersistedCache.js +1 -1
- package/dist/persistence/PersistedCache.js.map +1 -1
- package/dist/persistence/PersistedQueue.d.ts +6 -2
- package/dist/persistence/PersistedQueue.d.ts.map +1 -1
- package/dist/persistence/PersistedQueue.js +162 -84
- package/dist/persistence/PersistedQueue.js.map +1 -1
- package/dist/persistence/Persistence.d.ts +28 -0
- package/dist/persistence/Persistence.d.ts.map +1 -1
- package/dist/persistence/Persistence.js +36 -8
- package/dist/persistence/Persistence.js.map +1 -1
- package/dist/persistence/RateLimiter.d.ts.map +1 -1
- package/dist/persistence/RateLimiter.js +8 -12
- package/dist/persistence/RateLimiter.js.map +1 -1
- package/dist/persistence/Redis.d.ts +78 -2
- package/dist/persistence/Redis.d.ts.map +1 -1
- package/dist/persistence/Redis.js +62 -7
- package/dist/persistence/Redis.js.map +1 -1
- package/dist/persistence/UserDirectories.d.ts +129 -0
- package/dist/persistence/UserDirectories.d.ts.map +1 -0
- package/dist/persistence/UserDirectories.js +178 -0
- package/dist/persistence/UserDirectories.js.map +1 -0
- package/dist/persistence/index.d.ts +10 -0
- package/dist/persistence/index.d.ts.map +1 -1
- package/dist/persistence/index.js +10 -0
- package/dist/persistence/index.js.map +1 -1
- package/dist/process/ChildProcess.d.ts +32 -5
- package/dist/process/ChildProcess.d.ts.map +1 -1
- package/dist/process/ChildProcess.js.map +1 -1
- package/dist/process/ChildProcessSpawner.d.ts +30 -0
- package/dist/process/ChildProcessSpawner.d.ts.map +1 -1
- package/dist/process/ChildProcessSpawner.js +5 -2
- package/dist/process/ChildProcessSpawner.js.map +1 -1
- package/dist/reactivity/AsyncResult.d.ts +1 -1
- package/dist/reactivity/AsyncResult.d.ts.map +1 -1
- package/dist/reactivity/AsyncResult.js +1 -1
- package/dist/reactivity/AsyncResult.js.map +1 -1
- package/dist/reactivity/Atom.d.ts +69 -30
- package/dist/reactivity/Atom.d.ts.map +1 -1
- package/dist/reactivity/Atom.js +40 -15
- package/dist/reactivity/Atom.js.map +1 -1
- package/dist/reactivity/AtomHttpApi.d.ts +5 -5
- package/dist/reactivity/AtomHttpApi.d.ts.map +1 -1
- package/dist/reactivity/AtomHttpApi.js +1 -1
- package/dist/reactivity/AtomHttpApi.js.map +1 -1
- package/dist/reactivity/AtomRegistry.d.ts +2 -2
- package/dist/reactivity/AtomRegistry.d.ts.map +1 -1
- package/dist/reactivity/AtomRegistry.js +44 -9
- package/dist/reactivity/AtomRegistry.js.map +1 -1
- package/dist/reactivity/AtomRpc.d.ts +3 -3
- package/dist/reactivity/AtomRpc.d.ts.map +1 -1
- package/dist/reactivity/AtomRpc.js +1 -1
- package/dist/reactivity/AtomRpc.js.map +1 -1
- package/dist/reactivity/Hydration.d.ts.map +1 -1
- package/dist/reactivity/Hydration.js +46 -12
- package/dist/reactivity/Hydration.js.map +1 -1
- package/dist/reactivity/Reactivity.d.ts +71 -7
- package/dist/reactivity/Reactivity.d.ts.map +1 -1
- package/dist/reactivity/Reactivity.js +21 -12
- package/dist/reactivity/Reactivity.js.map +1 -1
- package/dist/rpc/Rpc.d.ts +18 -0
- package/dist/rpc/Rpc.d.ts.map +1 -1
- package/dist/rpc/Rpc.js +20 -0
- package/dist/rpc/Rpc.js.map +1 -1
- package/dist/rpc/RpcClient.d.ts +26 -2
- package/dist/rpc/RpcClient.d.ts.map +1 -1
- package/dist/rpc/RpcClient.js +198 -61
- package/dist/rpc/RpcClient.js.map +1 -1
- package/dist/rpc/RpcSerialization.d.ts +29 -0
- package/dist/rpc/RpcSerialization.d.ts.map +1 -1
- package/dist/rpc/RpcSerialization.js +41 -13
- package/dist/rpc/RpcSerialization.js.map +1 -1
- package/dist/rpc/RpcServer.d.ts.map +1 -1
- package/dist/rpc/RpcServer.js +20 -19
- package/dist/rpc/RpcServer.js.map +1 -1
- package/dist/rpc/RpcTest.d.ts +1 -0
- package/dist/rpc/RpcTest.d.ts.map +1 -1
- package/dist/rpc/RpcTest.js +1 -0
- package/dist/rpc/RpcTest.js.map +1 -1
- package/dist/schema/Model.d.ts +1 -1
- package/dist/schema/VariantSchema.d.ts +22 -3
- package/dist/schema/VariantSchema.d.ts.map +1 -1
- package/dist/schema/VariantSchema.js +32 -18
- package/dist/schema/VariantSchema.js.map +1 -1
- package/dist/socket/Socket.d.ts +23 -1
- package/dist/socket/Socket.d.ts.map +1 -1
- package/dist/socket/Socket.js +36 -3
- package/dist/socket/Socket.js.map +1 -1
- package/dist/sql/Migrator.d.ts +2 -1
- package/dist/sql/Migrator.d.ts.map +1 -1
- package/dist/sql/Migrator.js +21 -6
- package/dist/sql/Migrator.js.map +1 -1
- package/dist/sql/SqlClient.d.ts +148 -5
- package/dist/sql/SqlClient.d.ts.map +1 -1
- package/dist/sql/SqlClient.js +155 -27
- package/dist/sql/SqlClient.js.map +1 -1
- package/dist/sql/SqlResolver.d.ts +13 -0
- package/dist/sql/SqlResolver.d.ts.map +1 -1
- package/dist/sql/SqlResolver.js +27 -4
- package/dist/sql/SqlResolver.js.map +1 -1
- package/dist/sql/Statement.d.ts +10 -1
- package/dist/sql/Statement.d.ts.map +1 -1
- package/dist/sql/Statement.js +45 -7
- package/dist/sql/Statement.js.map +1 -1
- package/dist/testing/TestClock.d.ts.map +1 -1
- package/dist/testing/TestClock.js +4 -2
- package/dist/testing/TestClock.js.map +1 -1
- package/dist/testing/TestSchema.d.ts +7 -1
- package/dist/testing/TestSchema.d.ts.map +1 -1
- package/dist/testing/TestSchema.js +9 -3
- package/dist/testing/TestSchema.js.map +1 -1
- package/dist/workflow/DurableDeferred.d.ts.map +1 -1
- package/dist/workflow/DurableDeferred.js +21 -2
- package/dist/workflow/DurableDeferred.js.map +1 -1
- package/dist/workflow/WorkflowEngine.d.ts.map +1 -1
- package/dist/workflow/WorkflowEngine.js +18 -4
- package/dist/workflow/WorkflowEngine.js.map +1 -1
- package/package.json +13 -3
- package/src/Arbitrary.ts +10 -2
- package/src/Array.ts +128 -55
- package/src/Bytes.ts +111 -0
- package/src/Channel.ts +308 -452
- package/src/ChannelSchema.ts +1 -49
- package/src/Chunk.ts +55 -61
- package/src/Config.ts +12 -86
- package/src/ConfigProvider.ts +2 -1
- package/src/Cron.ts +6 -3
- package/src/Data.ts +60 -265
- package/src/Duration.ts +66 -16
- package/src/Effect.ts +503 -168
- package/src/Equal.ts +8 -1
- package/src/Equivalence.ts +7 -4
- package/src/Exit.ts +27 -12
- package/src/FiberHandle.ts +10 -9
- package/src/FiberMap.ts +13 -66
- package/src/FileSystem.ts +10 -0
- package/src/Formatter.ts +28 -13
- package/src/Graph.ts +171 -1263
- package/src/Hash.ts +4 -1
- package/src/HashSet.ts +0 -60
- package/src/Iterable.ts +15 -14
- package/src/JsonPatch.ts +4 -0
- package/src/JsonSchema.ts +40 -43
- package/src/Layer.ts +2 -2
- package/src/ManagedRuntime.ts +72 -6
- package/src/Metric.ts +252 -510
- package/src/MutableHashMap.ts +4 -473
- package/src/MutableList.ts +7 -5
- package/src/MutableRef.ts +8 -1
- package/src/Number.ts +2 -2
- package/src/Optic.ts +17 -332
- package/src/PartitionedSemaphore.ts +24 -13
- package/src/Path.ts +9 -1
- package/src/Pool.ts +109 -37
- package/src/PubSub.ts +17 -13
- package/src/Queue.ts +5 -37
- package/src/Random.ts +1 -1
- package/src/RcMap.ts +14 -8
- package/src/Record.ts +51 -0
- package/src/Ref.ts +15 -104
- package/src/References.ts +5 -4
- package/src/RequestResolver.ts +46 -87
- package/src/Resource.ts +1 -1
- package/src/Runtime.ts +19 -18
- package/src/Schedule.ts +3 -95
- package/src/Schema.ts +639 -381
- package/src/SchemaAST.ts +40 -29
- package/src/SchemaGetter.ts +22 -5
- package/src/SchemaIssue.ts +44 -53
- package/src/SchemaParser.ts +51 -18
- package/src/SchemaRepresentation.ts +95 -35
- package/src/SchemaTransformation.ts +10 -3
- package/src/Scope.ts +12 -2
- package/src/ScopedCache.ts +17 -142
- package/src/SemVer.ts +1528 -0
- package/src/SemVerRange.ts +883 -0
- package/src/Semaphore.ts +67 -40
- package/src/Sink.ts +21 -4
- package/src/Stream.ts +367 -1027
- package/src/String.ts +11 -8
- package/src/TextDiff.ts +766 -0
- package/src/Tracer.ts +15 -1
- package/src/TxHashMap.ts +1 -103
- package/src/TxHashSet.ts +48 -753
- package/src/ai/AiError.ts +66 -4
- package/src/ai/Chat.ts +10 -5
- package/src/ai/Decision.ts +49 -1
- package/src/ai/DecisionModel.ts +264 -108
- package/src/ai/EmbeddingModel.ts +25 -13
- package/src/ai/LanguageModel.ts +9 -0
- package/src/ai/McpClient.ts +1211 -0
- package/src/ai/McpClientError.ts +329 -0
- package/src/ai/McpProtocol.ts +2 -2
- package/src/ai/McpSchema.ts +153 -35
- package/src/ai/McpServer.ts +231 -233
- package/src/ai/Prompt.ts +114 -35
- package/src/ai/Response.ts +220 -65
- package/src/ai/Tool.ts +50 -6
- package/src/ai/Toolkit.ts +82 -11
- package/src/ai/index.ts +12 -0
- package/src/ai/internal/mcpCore.ts +13 -14
- package/src/ai/internal/mcpProtocol/v2024_11_05.ts +1 -1
- package/src/ai/internal/mcpProtocol/v2025_03_26.ts +1 -1
- package/src/ai/internal/mcpProtocol/v2025_06_18.ts +3 -3
- package/src/ai/internal/mcpProtocol/v2025_11_25.ts +3 -3
- package/src/ai/internal/mcpProtocol/v2026_07_28.ts +12 -14
- package/src/ai/internal/mcpProtocol.ts +22 -2
- package/src/ai/internal/mcpRuntime.ts +3 -4
- package/src/ai/internal/mcpSchema/v2024_11_05.ts +20 -13
- package/src/ai/internal/mcpSchema/v2025_03_26.ts +4 -2
- package/src/ai/internal/mcpSchema/v2025_06_18.ts +7 -7
- package/src/ai/internal/mcpSchema/v2025_11_25.ts +8 -8
- package/src/ai/internal/mcpSchema/v2026_07_28.ts +44 -42
- package/src/cli/Argument.ts +15 -0
- package/src/cli/CliError.ts +136 -4
- package/src/cli/CliOutput.ts +183 -6
- package/src/cli/Command.ts +367 -48
- package/src/cli/Completions.ts +56 -0
- package/src/cli/Flag.ts +132 -0
- package/src/cli/GlobalFlag.ts +5 -6
- package/src/cli/Param.ts +151 -6
- package/src/cli/TerminalCapabilities.ts +159 -0
- package/src/cli/index.ts +6 -0
- package/src/cli/internal/command.ts +8 -3
- package/src/cli/internal/completions/bash.ts +83 -32
- package/src/cli/internal/completions/descriptor.ts +11 -1
- package/src/cli/internal/completions/fish.ts +10 -8
- package/src/cli/internal/completions/powershell.ts +23 -14
- package/src/cli/internal/completions/zsh.ts +8 -5
- package/src/cli/internal/formatter.ts +18 -0
- package/src/cli/internal/lexer.ts +12 -5
- package/src/cli/internal/parser.ts +31 -11
- package/src/cluster/ClusterCron.ts +94 -35
- package/src/cluster/ClusterMetrics.ts +149 -7
- package/src/cluster/ClusterWorkflowEngine.ts +130 -57
- package/src/cluster/Entity.ts +4 -0
- package/src/cluster/MessageStorage.ts +26 -14
- package/src/cluster/Runners.ts +76 -25
- package/src/cluster/Sharding.ts +200 -58
- package/src/cluster/ShardingConfig.ts +20 -0
- package/src/cluster/Snowflake.ts +3 -7
- package/src/cluster/SqlMessageStorage.ts +58 -55
- package/src/cluster/SqlRunnerStorage.ts +120 -51
- package/src/cluster/internal/entityManager.ts +155 -32
- package/src/devtools/DevTools.ts +3 -2
- package/src/devtools/DevToolsClient.ts +29 -10
- package/src/encoding/Base64.ts +38 -0
- package/src/encoding/Base64Url.ts +31 -0
- package/src/encoding/Ini.ts +3 -0
- package/src/encoding/JsonArray.ts +849 -0
- package/src/encoding/Ndjson.ts +211 -20
- package/src/encoding/SchemaBinary.ts +14 -48
- package/src/encoding/Sse.ts +4 -3
- package/src/encoding/Tar.ts +1417 -0
- package/src/encoding/Toml.ts +36 -19
- package/src/encoding/Xml.ts +2037 -0
- package/src/encoding/Yaml.ts +108 -36
- package/src/encoding/Zip.ts +1558 -0
- package/src/encoding/index.ts +24 -0
- package/src/eventlog/EventJournal.ts +611 -227
- package/src/eventlog/EventLog.ts +496 -196
- package/src/eventlog/EventLogEncryption.ts +128 -43
- package/src/eventlog/EventLogMessage.ts +62 -11
- package/src/eventlog/EventLogRemote.ts +77 -21
- package/src/eventlog/EventLogServer.ts +162 -20
- package/src/eventlog/EventLogServerEncrypted.ts +121 -80
- package/src/eventlog/EventLogServerUnencrypted.ts +180 -77
- package/src/eventlog/EventRow.ts +706 -0
- package/src/eventlog/SqlEventJournal.ts +496 -193
- package/src/eventlog/SqlEventLogServerEncrypted.ts +212 -83
- package/src/eventlog/SqlEventLogServerUnencrypted.ts +141 -62
- package/src/eventlog/index.ts +6 -0
- package/src/eventlog/internal/conflicts.ts +119 -0
- package/src/graphql/GraphQLClientError.ts +5 -12
- package/src/graphql/GraphQLProtocol.ts +12 -9
- package/src/graphql/GraphQLResolver.ts +90 -239
- package/src/http/Cookies.ts +10 -11
- package/src/http/FetchHttpClient.ts +56 -6
- package/src/http/FindMyWay/internal/router.ts +11 -0
- package/src/http/Headers.ts +337 -154
- package/src/http/HttpClient.ts +673 -142
- package/src/http/HttpClientError.ts +35 -1
- package/src/http/HttpClientRequest.ts +151 -5
- package/src/http/HttpClientResponse.ts +71 -0
- package/src/http/HttpEffect.ts +25 -33
- package/src/http/HttpIncomingMessage.ts +3 -23
- package/src/http/HttpMiddleware.ts +194 -40
- package/src/http/HttpRouter.ts +10 -3
- package/src/http/HttpServerError.ts +8 -5
- package/src/http/HttpServerRequest.ts +172 -27
- package/src/http/HttpServerResponse.ts +49 -23
- package/src/http/HttpStaticServer.ts +71 -26
- package/src/http/MultipartParser/internal/contentType.ts +109 -8
- package/src/http/MultipartParser/internal/headers.ts +4 -16
- package/src/http/MultipartParser/internal/multipart.ts +10 -32
- package/src/http/Url.ts +6 -1
- package/src/http/UrlParams.ts +6 -1
- package/src/http/internal/compression.ts +4 -5
- package/src/http/internal/decompression.ts +32 -17
- package/src/http/internal/httpBody.ts +10 -2
- package/src/http/internal/lazyStream.ts +25 -0
- package/src/http/internal/requestState.ts +33 -0
- package/src/http/internal/urlParams.ts +29 -0
- package/src/http/internal/webResponse.ts +20 -0
- package/src/http-api/HttpApi.ts +4 -7
- package/src/http-api/HttpApiBuilder.ts +190 -32
- package/src/http-api/HttpApiClient.ts +364 -90
- package/src/http-api/HttpApiEndpoint.ts +248 -46
- package/src/http-api/HttpApiError.ts +55 -0
- package/src/http-api/HttpApiScalar.ts +4 -3
- package/src/http-api/HttpApiSchema.ts +373 -18
- package/src/http-api/HttpApiSwagger.ts +11 -4
- package/src/http-api/HttpApiTest.ts +36 -11
- package/src/http-api/OpenApi.ts +103 -58
- package/src/http-api/internal/path.ts +40 -12
- package/src/http-api/internal/toCodecHttpProperties.ts +56 -0
- package/src/index.ts +24 -0
- package/src/internal/arbitrary/runner.ts +133 -36
- package/src/internal/core.ts +3 -1
- package/src/internal/dateTime.ts +20 -7
- package/src/internal/effect.ts +144 -100
- package/src/internal/equal.ts +17 -0
- package/src/internal/hashMap.ts +2 -2
- package/src/internal/hydration.ts +15 -0
- package/src/internal/inflate.ts +710 -0
- package/src/internal/jsonSchema.ts +27 -0
- package/src/internal/matcher.ts +1 -1
- package/src/internal/record.ts +6 -0
- package/src/internal/request.ts +21 -6
- package/src/internal/schedule.ts +20 -39
- package/src/internal/schema/compilerRegistry.ts +6 -1
- package/src/internal/schema/content.ts +18 -0
- package/src/internal/schema/fromJsonSchemaDocument.ts +458 -351
- package/src/internal/schema/fromRepresentation.ts +2 -1
- package/src/internal/schema/interpreter.ts +58 -45
- package/src/internal/schema/standardSchema.ts +34 -32
- package/src/internal/schema/toCodeDocument.ts +12 -7
- package/src/internal/schema/toCodec.ts +134 -15
- package/src/internal/schema/toFormatter.ts +6 -6
- package/src/internal/schema/toJsonSchemaDocument.ts +246 -194
- package/src/internal/schema/toRepresentation.ts +122 -140
- package/src/internal/sql.ts +14 -0
- package/src/internal/trie.ts +1 -3
- package/src/internal/uuid.ts +15 -10
- package/src/internal/version.ts +1 -1
- package/src/net/NetAddress.ts +2 -9
- package/src/observability/OtlpExporter.ts +5 -12
- package/src/observability/OtlpMetrics.ts +5 -3
- package/src/observability/OtlpProxy.ts +314 -0
- package/src/observability/OtlpResource.ts +16 -6
- package/src/observability/OtlpSerialization.ts +17 -3
- package/src/observability/OtlpTracer.ts +4 -0
- package/src/observability/index.ts +6 -0
- package/src/observability/internal/protobuf.ts +2 -10
- package/src/persistence/CircuitBreaker.ts +1678 -0
- package/src/persistence/PersistedCache.ts +3 -1
- package/src/persistence/PersistedQueue.ts +223 -153
- package/src/persistence/Persistence.ts +64 -30
- package/src/persistence/RateLimiter.ts +18 -21
- package/src/persistence/Redis.ts +129 -8
- package/src/persistence/UserDirectories.ts +273 -0
- package/src/persistence/index.ts +12 -0
- package/src/process/ChildProcess.ts +32 -5
- package/src/process/ChildProcessSpawner.ts +41 -2
- package/src/reactivity/AsyncResult.ts +5 -39
- package/src/reactivity/Atom.ts +134 -166
- package/src/reactivity/AtomHttpApi.ts +10 -16
- package/src/reactivity/AtomRegistry.ts +50 -29
- package/src/reactivity/AtomRpc.ts +6 -22
- package/src/reactivity/Hydration.ts +53 -12
- package/src/reactivity/Reactivity.ts +97 -39
- package/src/rpc/Rpc.ts +21 -0
- package/src/rpc/RpcClient.ts +283 -104
- package/src/rpc/RpcSerialization.ts +53 -14
- package/src/rpc/RpcServer.ts +27 -21
- package/src/rpc/RpcTest.ts +3 -0
- package/src/schema/VariantSchema.ts +86 -22
- package/src/socket/Socket.ts +45 -20
- package/src/sql/Migrator.ts +26 -11
- package/src/sql/SqlClient.ts +273 -29
- package/src/sql/SqlResolver.ts +32 -9
- package/src/sql/Statement.ts +65 -10
- package/src/testing/TestClock.ts +4 -1
- package/src/testing/TestSchema.ts +9 -3
- package/src/workflow/DurableDeferred.ts +23 -6
- package/src/workflow/WorkflowEngine.ts +34 -10
- package/dist/http/internal/preResponseHandler.d.ts +0 -2
- package/dist/http/internal/preResponseHandler.d.ts.map +0 -1
- package/dist/http/internal/preResponseHandler.js +0 -14
- package/dist/http/internal/preResponseHandler.js.map +0 -1
- package/src/http/internal/preResponseHandler.ts +0 -19
package/src/Pool.ts
CHANGED
|
@@ -463,7 +463,7 @@ export const get = <A, E>(self: Pool<A, E>): Effect.Effect<A, E, Scope.Scope> =>
|
|
|
463
463
|
core.withFiber((fiber) => {
|
|
464
464
|
const state = self.state
|
|
465
465
|
if (state.isShuttingDown) return internal.interrupt
|
|
466
|
-
if (state.availableHead?.exit._tag === "Success") {
|
|
466
|
+
if (state.waiters.size === 0 && state.availableHead?.exit._tag === "Success") {
|
|
467
467
|
state.usage++
|
|
468
468
|
if (self.config.isFixed || targetSize(self) <= activeSize(self)) {
|
|
469
469
|
return leaseItem(self, state.availableHead, fiber)
|
|
@@ -570,7 +570,7 @@ export const use: {
|
|
|
570
570
|
core.withFiber((fiber) => {
|
|
571
571
|
const state = self.state
|
|
572
572
|
if (state.isShuttingDown) return internal.interrupt
|
|
573
|
-
if (state.availableHead?.exit._tag === "Success") {
|
|
573
|
+
if (state.waiters.size === 0 && state.availableHead?.exit._tag === "Success") {
|
|
574
574
|
state.usage++
|
|
575
575
|
if (self.config.isFixed || targetSize(self) <= activeSize(self)) {
|
|
576
576
|
return useItem(self, state.availableHead, f, fiber)
|
|
@@ -611,12 +611,18 @@ const getSlowWith = <A, E, X, R>(
|
|
|
611
611
|
internal.uninterruptibleMask((restore) => {
|
|
612
612
|
const state = self.state
|
|
613
613
|
state.usage++
|
|
614
|
+
const waiter = makeWaiter<A, E>()
|
|
614
615
|
const wait: Effect.Effect<X, any, R> = internal.flatMap(
|
|
615
616
|
internal.onError(
|
|
616
|
-
restore(waitForItem(self)),
|
|
617
|
+
restore(waitForItem(self, waiter)),
|
|
617
618
|
() =>
|
|
618
|
-
|
|
619
|
+
core.withFiber((fiber) => {
|
|
619
620
|
state.usage--
|
|
621
|
+
// Only a woken waiter is still registered here: one cancelled while
|
|
622
|
+
// asleep already left. It passes its wake on, so the capacity it was
|
|
623
|
+
// woken for is not stranded.
|
|
624
|
+
if (state.waiters.delete(waiter)) wakeWaiters(self, fiber, 1)
|
|
625
|
+
return internal.void
|
|
620
626
|
})
|
|
621
627
|
),
|
|
622
628
|
() => loop
|
|
@@ -626,6 +632,12 @@ const getSlowWith = <A, E, X, R>(
|
|
|
626
632
|
state.usage--
|
|
627
633
|
return internal.interrupt
|
|
628
634
|
}
|
|
635
|
+
// A borrower that has not waited yet queues behind the borrowers already
|
|
636
|
+
// waiting. Waiters keep their place until they take an item, so this
|
|
637
|
+
// also holds while a woken waiter has yet to run.
|
|
638
|
+
if (state.waiters.size > 0 && !state.waiters.has(waiter)) {
|
|
639
|
+
return wait
|
|
640
|
+
}
|
|
629
641
|
// Replace failed slots only when the pool cannot grow.
|
|
630
642
|
const item = firstHealthyAvailable(self) ??
|
|
631
643
|
(targetSize(self) <= activeSize(self) ? state.availableHead : undefined)
|
|
@@ -636,6 +648,7 @@ const getSlowWith = <A, E, X, R>(
|
|
|
636
648
|
removeFailedItem(self, item)
|
|
637
649
|
return loop
|
|
638
650
|
}
|
|
651
|
+
state.waiters.delete(waiter)
|
|
639
652
|
return lease(self, item, fiber, restore)
|
|
640
653
|
})
|
|
641
654
|
const loop: Effect.Effect<X, any, R> = internal.suspend(() => {
|
|
@@ -718,19 +731,49 @@ const firstHealthyAvailable = <A, E>(self: Pool<A, E>): PoolItem<A, E> | undefin
|
|
|
718
731
|
return item
|
|
719
732
|
}
|
|
720
733
|
|
|
721
|
-
|
|
734
|
+
/**
|
|
735
|
+
* A borrower's entry in `State.waiters`. It stays registered from the first
|
|
736
|
+
* wait until the borrower takes an item or leaves, so the borrower keeps its
|
|
737
|
+
* place in the queue across wakes.
|
|
738
|
+
*
|
|
739
|
+
* `resume` is set while the borrower is asleep. A registered waiter without
|
|
740
|
+
* one has been woken and has yet to take an item, wait again or leave.
|
|
741
|
+
*/
|
|
742
|
+
interface Waiter<A, E> {
|
|
743
|
+
(failure?: Exit.Failure<A, E>): void
|
|
744
|
+
resume: ((effect: Effect.Effect<void, E>) => void) | undefined
|
|
745
|
+
}
|
|
746
|
+
|
|
747
|
+
const makeWaiter = <A, E>(): Waiter<A, E> => {
|
|
748
|
+
const waiter = ((failure?: Exit.Failure<A, E>) => {
|
|
749
|
+
const resume = waiter.resume
|
|
750
|
+
if (resume === undefined) return
|
|
751
|
+
waiter.resume = undefined
|
|
752
|
+
resume(failure ?? internal.void)
|
|
753
|
+
}) as Waiter<A, E>
|
|
754
|
+
waiter.resume = undefined
|
|
755
|
+
return waiter
|
|
756
|
+
}
|
|
757
|
+
|
|
758
|
+
const waitForItem = <A, E>(self: Pool<A, E>, waiter: Waiter<A, E>): Effect.Effect<void, E> =>
|
|
722
759
|
internal.callback((resume) => {
|
|
723
760
|
const state = self.state
|
|
724
|
-
if (
|
|
761
|
+
if (
|
|
762
|
+
state.isShuttingDown ||
|
|
763
|
+
(state.waiters.size === 0 && firstHealthyAvailable(self) !== undefined)
|
|
764
|
+
) {
|
|
725
765
|
return resume(internal.void)
|
|
726
766
|
}
|
|
727
|
-
|
|
728
|
-
|
|
729
|
-
|
|
730
|
-
}
|
|
731
|
-
state.waiters.add(observer)
|
|
767
|
+
waiter.resume = resume
|
|
768
|
+
// Re-adding a registered waiter keeps its position.
|
|
769
|
+
state.waiters.add(waiter)
|
|
732
770
|
return internal.sync(() => {
|
|
733
|
-
|
|
771
|
+
// Cancelled while asleep: leave at once, so no wake or failure is spent
|
|
772
|
+
// on it. Cancelled after a wake: stay until the wake is passed on.
|
|
773
|
+
if (waiter.resume !== undefined) {
|
|
774
|
+
waiter.resume = undefined
|
|
775
|
+
state.waiters.delete(waiter)
|
|
776
|
+
}
|
|
734
777
|
})
|
|
735
778
|
})
|
|
736
779
|
|
|
@@ -738,23 +781,36 @@ const wakeWaiters = <A, E>(self: Pool<A, E>, fiber: Fiber.Fiber<unknown, unknown
|
|
|
738
781
|
const waiters = self.state.waiters
|
|
739
782
|
if (waiters.size === 0) return
|
|
740
783
|
fiber.currentDispatcher.scheduleTask(() => {
|
|
784
|
+
// Walk the live set, so a waiter that leaves during the walk does not use
|
|
785
|
+
// up a wake. Skip waiters already woken, and stop once nothing is left to
|
|
786
|
+
// take.
|
|
741
787
|
let remaining = count
|
|
742
|
-
const toWake: Array<(failure?: Exit.Failure<A, E>) => void> = []
|
|
743
788
|
for (const notify of waiters) {
|
|
744
|
-
if (remaining
|
|
745
|
-
|
|
746
|
-
|
|
747
|
-
|
|
748
|
-
toWake[i]()
|
|
789
|
+
if (remaining <= 0 || self.state.availableHead === undefined) break
|
|
790
|
+
if ((notify as Waiter<A, E>).resume === undefined) continue
|
|
791
|
+
remaining--
|
|
792
|
+
notify()
|
|
749
793
|
}
|
|
750
794
|
}, 0)
|
|
751
795
|
}
|
|
752
796
|
|
|
753
|
-
const
|
|
754
|
-
|
|
755
|
-
|
|
756
|
-
|
|
757
|
-
|
|
797
|
+
const firstSleepingWaiter = <A, E>(self: Pool<A, E>) => {
|
|
798
|
+
for (const notify of self.state.waiters) {
|
|
799
|
+
if ((notify as Waiter<A, E>).resume !== undefined) return notify
|
|
800
|
+
}
|
|
801
|
+
return undefined
|
|
802
|
+
}
|
|
803
|
+
|
|
804
|
+
// Wakes every waiter so it can retry after a failed acquisition. A waiter that
|
|
805
|
+
// could not start a resize while another was running depends on this. Waking
|
|
806
|
+
// a waiter that is already awake is a no-op.
|
|
807
|
+
const wakeAll = <A, E>(self: Pool<A, E>, fiber: Fiber.Fiber<unknown, unknown>) => {
|
|
808
|
+
const waiters = self.state.waiters
|
|
809
|
+
if (waiters.size === 0) return
|
|
810
|
+
fiber.currentDispatcher.scheduleTask(() => {
|
|
811
|
+
for (const notify of Array.from(waiters)) notify()
|
|
812
|
+
}, 0)
|
|
813
|
+
}
|
|
758
814
|
|
|
759
815
|
// Reservations prevent reuse without extending the lifetime of borrowed items.
|
|
760
816
|
const reservations = new WeakMap<PoolItem<unknown, unknown>, number>()
|
|
@@ -1005,22 +1061,38 @@ const resizeLoop = <A, E>(self: Pool<A, E>): Effect.Effect<void> =>
|
|
|
1005
1061
|
return Effect.void
|
|
1006
1062
|
}
|
|
1007
1063
|
const toAcquire = target - active
|
|
1008
|
-
|
|
1009
|
-
|
|
1010
|
-
|
|
1011
|
-
|
|
1012
|
-
|
|
1013
|
-
|
|
1064
|
+
// Wake waiters as each item arrives. Waiting for the whole batch would
|
|
1065
|
+
// leave acquired items idle behind a slow acquisition, with every borrower
|
|
1066
|
+
// queued behind the waiters.
|
|
1067
|
+
const acquireOne = Effect.tap(
|
|
1068
|
+
self.config.strategy === strategyNoop
|
|
1069
|
+
? allocate(self)
|
|
1070
|
+
: Effect.flatMap(
|
|
1071
|
+
self.config.strategy.reclaim(self),
|
|
1072
|
+
(item) =>
|
|
1073
|
+
item
|
|
1074
|
+
? Effect.sync(() => {
|
|
1075
|
+
// A reclaimed item rejoins circulation like a released one.
|
|
1076
|
+
if (self.state.items.has(item) && !self.state.invalidated.has(item)) addAvailableFront(self, item)
|
|
1077
|
+
return item
|
|
1078
|
+
})
|
|
1079
|
+
: allocate(self)
|
|
1080
|
+
),
|
|
1081
|
+
(item) =>
|
|
1082
|
+
core.withFiber((fiber) => {
|
|
1083
|
+
// A failed acquisition wakes everyone so they can retry it. A new
|
|
1084
|
+
// item can only serve as many waiters as it has slots.
|
|
1085
|
+
if (item.exit._tag === "Failure") wakeAll(self, fiber)
|
|
1086
|
+
else wakeWaiters(self, fiber, self.config.concurrency)
|
|
1087
|
+
return internal.void
|
|
1088
|
+
})
|
|
1089
|
+
)
|
|
1014
1090
|
if (toAcquire === 1) {
|
|
1015
|
-
const acquired = Effect.tap(acquireOne, wakeAll(self))
|
|
1016
1091
|
return self.config.isFixed
|
|
1017
|
-
? Effect.asVoid(
|
|
1018
|
-
: Effect.flatMap(
|
|
1092
|
+
? Effect.asVoid(acquireOne)
|
|
1093
|
+
: Effect.flatMap(acquireOne, (item) => item.exit._tag === "Failure" ? Effect.void : resizeLoop(self))
|
|
1019
1094
|
}
|
|
1020
|
-
const acquired =
|
|
1021
|
-
Effect.replicateEffect(toAcquire, { concurrency: toAcquire }),
|
|
1022
|
-
Effect.tap(wakeAll(self))
|
|
1023
|
-
)
|
|
1095
|
+
const acquired = Effect.replicateEffect(acquireOne, toAcquire, { concurrency: toAcquire })
|
|
1024
1096
|
return self.config.isFixed
|
|
1025
1097
|
? Effect.asVoid(acquired)
|
|
1026
1098
|
: Effect.flatMap(
|
|
@@ -1059,7 +1131,7 @@ const allocate = <A, E>(self: Pool<A, E>): Effect.Effect<PoolItem<A, E>> =>
|
|
|
1059
1131
|
return self.config.strategy === strategyNoop ? Effect.succeed(item) : Effect.as(onAcquire, item)
|
|
1060
1132
|
}
|
|
1061
1133
|
// Deliver a waiting borrower its own failure; otherwise retain the slot.
|
|
1062
|
-
const waiter = firstHealthyAvailable(self) === undefined ? self
|
|
1134
|
+
const waiter = firstHealthyAvailable(self) === undefined ? firstSleepingWaiter(self) : undefined
|
|
1063
1135
|
if (waiter !== undefined) {
|
|
1064
1136
|
waiter(exit)
|
|
1065
1137
|
} else {
|
package/src/PubSub.ts
CHANGED
|
@@ -1915,16 +1915,16 @@ export const takeUpTo: {
|
|
|
1915
1915
|
} = dual(2, <A>(self: Subscription<A>, max: number): Effect.Effect<Array<A>> =>
|
|
1916
1916
|
Effect.suspend(() => {
|
|
1917
1917
|
if (self.shutdownFlag.current) return Effect.interrupt
|
|
1918
|
-
|
|
1918
|
+
let limit = Count.normalize(max)
|
|
1919
1919
|
let replay: Array<A> | undefined = undefined
|
|
1920
|
-
if (self.replayWindow.remaining >=
|
|
1921
|
-
return Effect.succeed(self.replayWindow.takeN(
|
|
1920
|
+
if (self.replayWindow.remaining >= limit) {
|
|
1921
|
+
return Effect.succeed(self.replayWindow.takeN(limit))
|
|
1922
1922
|
} else if (self.replayWindow.remaining > 0) {
|
|
1923
1923
|
replay = self.replayWindow.takeAll()
|
|
1924
|
-
|
|
1924
|
+
limit = limit - replay.length
|
|
1925
1925
|
}
|
|
1926
1926
|
const as = self.pollers.length === 0
|
|
1927
|
-
? self.subscription.pollUpTo(
|
|
1927
|
+
? self.subscription.pollUpTo(limit)
|
|
1928
1928
|
: []
|
|
1929
1929
|
self.strategy.onPubSubEmptySpaceUnsafe(self.pubsub, self.subscribers)
|
|
1930
1930
|
return replay ? Effect.succeed(replay.concat(as)) : Effect.succeed(as)
|
|
@@ -2051,7 +2051,9 @@ const takeRemainderLoop = <A>(
|
|
|
2051
2051
|
return Effect.succeed(acc)
|
|
2052
2052
|
}
|
|
2053
2053
|
return Effect.flatMap(takeUpTo(self, max), (bs) => {
|
|
2054
|
-
|
|
2054
|
+
for (let i = 0; i < bs.length; i++) {
|
|
2055
|
+
acc.push(bs[i])
|
|
2056
|
+
}
|
|
2055
2057
|
const remaining = min - bs.length
|
|
2056
2058
|
if (remaining === 1) {
|
|
2057
2059
|
return Effect.map(take(self), (b) => {
|
|
@@ -3127,14 +3129,13 @@ export class BackPressureStrategy<in out A> implements PubSub.Strategy<A> {
|
|
|
3127
3129
|
if (publisher === MutableList.Empty) {
|
|
3128
3130
|
keepPolling = false
|
|
3129
3131
|
} else {
|
|
3130
|
-
const [value, deferred] = publisher
|
|
3132
|
+
const [value, deferred, last] = publisher
|
|
3131
3133
|
const published = pubsub.publish(value)
|
|
3132
|
-
if (published
|
|
3133
|
-
Deferred.doneUnsafe(deferred, Exit.succeed(true))
|
|
3134
|
-
} else if (!published) {
|
|
3135
|
-
MutableList.prepend(this.publishers, publisher)
|
|
3136
|
-
}
|
|
3134
|
+
if (!published) MutableList.prepend(this.publishers, publisher)
|
|
3137
3135
|
this.completeSubscribersUnsafe(pubsub, subscribers)
|
|
3136
|
+
// Resuming the publisher can synchronously end the PubSub, so notify
|
|
3137
|
+
// waiting subscribers first.
|
|
3138
|
+
if (published && last) Deferred.doneUnsafe(deferred, Exit.succeed(true))
|
|
3138
3139
|
}
|
|
3139
3140
|
}
|
|
3140
3141
|
}
|
|
@@ -3449,7 +3450,10 @@ class ReplayBuffer<A> {
|
|
|
3449
3450
|
}
|
|
3450
3451
|
this.tail = this.tail.next
|
|
3451
3452
|
if (this.size === this.capacity) {
|
|
3452
|
-
|
|
3453
|
+
const dropped = this.head
|
|
3454
|
+
this.head = dropped.next!
|
|
3455
|
+
dropped.next = null
|
|
3456
|
+
dropped.value = AbsentValue
|
|
3453
3457
|
} else {
|
|
3454
3458
|
this.size += 1
|
|
3455
3459
|
}
|
package/src/Queue.ts
CHANGED
|
@@ -761,7 +761,10 @@ export const offer: {
|
|
|
761
761
|
)
|
|
762
762
|
|
|
763
763
|
/**
|
|
764
|
-
* Adds a message to the queue synchronously. Returns `false`
|
|
764
|
+
* Adds a message to the queue synchronously. Returns `false` without adding the
|
|
765
|
+
* message if the queue is closing or done, or if it is full with a non-sliding
|
|
766
|
+
* strategy (`"suspend"` or `"dropping"`). A queue with non-positive capacity can
|
|
767
|
+
* still accept a message when a taker is waiting.
|
|
765
768
|
*
|
|
766
769
|
* **When to use**
|
|
767
770
|
*
|
|
@@ -929,42 +932,7 @@ export const offerAll: {
|
|
|
929
932
|
} = dual(2, <A, E>(self: Enqueue<A, E>, messages: Iterable<A>): Effect<Array<A>> =>
|
|
930
933
|
// Admitting what fits and registering the rest are one step, so no take can
|
|
931
934
|
// free capacity between them
|
|
932
|
-
internalEffect.callback
|
|
933
|
-
* Adds multiple messages to the queue. Returns the remaining messages that
|
|
934
|
-
* were not added.
|
|
935
|
-
*
|
|
936
|
-
* **When to use**
|
|
937
|
-
*
|
|
938
|
-
* Use when producers can submit a batch at once and need to know which messages
|
|
939
|
-
* did not fit under the queue's capacity strategy.
|
|
940
|
-
*
|
|
941
|
-
* **Details**
|
|
942
|
-
*
|
|
943
|
-
* For bounded queues, this operation may suspend if the queue doesn't have
|
|
944
|
-
* enough capacity. The operation returns an array of messages that couldn't
|
|
945
|
-
* be added (empty array means all messages were successfully added).
|
|
946
|
-
*
|
|
947
|
-
* **Example** (Offering multiple values)
|
|
948
|
-
*
|
|
949
|
-
* ```ts import.meta.vitest
|
|
950
|
-
* import { Effect, Queue } from "effect"
|
|
951
|
-
*
|
|
952
|
-
* const program = Effect.gen(function*() {
|
|
953
|
-
* const queue = yield* Queue.dropping<number>(3)
|
|
954
|
-
*
|
|
955
|
-
* // Try to add more messages than capacity without suspending
|
|
956
|
-
* const remaining1 = yield* Queue.offerAll(queue, [1, 2, 3, 4, 5])
|
|
957
|
-
* return remaining1
|
|
958
|
-
* })
|
|
959
|
-
*
|
|
960
|
-
* await Effect.runPromise(program) // => [4, 5]
|
|
961
|
-
* ```
|
|
962
|
-
*
|
|
963
|
-
* @stability stable
|
|
964
|
-
* @category offering
|
|
965
|
-
* @since 2.0.0
|
|
966
|
-
*/
|
|
967
|
-
Array<A>>((resume) => {
|
|
935
|
+
internalEffect.callback<Array<A>>((resume) => {
|
|
968
936
|
const remaining = offerAllUnsafe(self, messages)
|
|
969
937
|
if (remaining.length === 0 || self.strategy === "dropping") {
|
|
970
938
|
return resume(core.exitSucceed(remaining))
|
package/src/Random.ts
CHANGED
|
@@ -392,7 +392,7 @@ export const withSeed: {
|
|
|
392
392
|
} = dual(2, <A, E, R>(
|
|
393
393
|
self: Effect.Effect<A, E, R>,
|
|
394
394
|
seed: string | number
|
|
395
|
-
) => Effect.provideService(self, Random, ISAAC_CSPRNG(seed)))
|
|
395
|
+
) => Effect.suspend(() => Effect.provideService(self, Random, ISAAC_CSPRNG(seed))))
|
|
396
396
|
|
|
397
397
|
/*///////////////////////////////////////////////////////////////////////////////////////////////////
|
|
398
398
|
This is a derivative work copyright (c) 2025 Effectful Technologies Inc, under MIT license.
|
package/src/RcMap.ts
CHANGED
|
@@ -4,10 +4,12 @@
|
|
|
4
4
|
* An `RcMap` runs a lookup effect the first time a key is requested, shares the
|
|
5
5
|
* in-progress or acquired resource with other callers for the same key, and
|
|
6
6
|
* tracks each caller through its current `Scope`. When the last scope for a key
|
|
7
|
-
* closes, the resource
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
7
|
+
* closes, the resource is released immediately or kept alive until its idle
|
|
8
|
+
* time-to-live expires. Entries can also be explicitly invalidated. Capacity
|
|
9
|
+
* limits do not evict entries: idle entries count toward capacity, and a new
|
|
10
|
+
* key fails with `ExceededCapacityError` when the map is full. It is meant for
|
|
11
|
+
* resource lifecycles such as clients, sessions, and connections, not as a
|
|
12
|
+
* general mutable cache.
|
|
11
13
|
*
|
|
12
14
|
* @stability stable
|
|
13
15
|
* @since 3.5.0
|
|
@@ -204,7 +206,8 @@ const makeUnsafe = <K, A, E>(options: {
|
|
|
204
206
|
*
|
|
205
207
|
* Complex keys can extend `Equal` and `Hash` to allow lookups by value.
|
|
206
208
|
*
|
|
207
|
-
* - `capacity`: The maximum number of
|
|
209
|
+
* - `capacity`: The maximum number of entries, including idle entries. A new key
|
|
210
|
+
* fails with `ExceededCapacityError` when full; existing entries are not evicted.
|
|
208
211
|
* - `idleTimeToLive`: When the reference count reaches zero, the resource will be released after this duration.
|
|
209
212
|
*
|
|
210
213
|
* **Example** (Creating a reference-counted map)
|
|
@@ -257,7 +260,8 @@ export const make: {
|
|
|
257
260
|
*
|
|
258
261
|
* Complex keys can extend `Equal` and `Hash` to allow lookups by value.
|
|
259
262
|
*
|
|
260
|
-
* - `capacity`: The maximum number of
|
|
263
|
+
* - `capacity`: The maximum number of entries, including idle entries. A new key
|
|
264
|
+
* fails with `ExceededCapacityError` when full; existing entries are not evicted.
|
|
261
265
|
* - `idleTimeToLive`: When the reference count reaches zero, the resource will be released after this duration.
|
|
262
266
|
*
|
|
263
267
|
* **Example** (Creating a reference-counted map)
|
|
@@ -316,7 +320,8 @@ export const make: {
|
|
|
316
320
|
*
|
|
317
321
|
* Complex keys can extend `Equal` and `Hash` to allow lookups by value.
|
|
318
322
|
*
|
|
319
|
-
* - `capacity`: The maximum number of
|
|
323
|
+
* - `capacity`: The maximum number of entries, including idle entries. A new key
|
|
324
|
+
* fails with `ExceededCapacityError` when full; existing entries are not evicted.
|
|
320
325
|
* - `idleTimeToLive`: When the reference count reaches zero, the resource will be released after this duration.
|
|
321
326
|
*
|
|
322
327
|
* **Example** (Creating a reference-counted map)
|
|
@@ -393,7 +398,8 @@ export const make: {
|
|
|
393
398
|
Effect.sync(() => {
|
|
394
399
|
MutableHashMap.clear(map)
|
|
395
400
|
})
|
|
396
|
-
)
|
|
401
|
+
),
|
|
402
|
+
Effect.flatMap(Exit.asVoidAll)
|
|
397
403
|
)
|
|
398
404
|
}),
|
|
399
405
|
self
|
package/src/Record.ts
CHANGED
|
@@ -1784,6 +1784,11 @@ export const isSubrecord: {
|
|
|
1784
1784
|
/**
|
|
1785
1785
|
* Reduces a record to a single value by combining its entries with a specified function.
|
|
1786
1786
|
*
|
|
1787
|
+
* **Details**
|
|
1788
|
+
*
|
|
1789
|
+
* The reducer function receives the accumulator, the current value, and the
|
|
1790
|
+
* key of the current entry.
|
|
1791
|
+
*
|
|
1787
1792
|
* **Example** (Reducing record values)
|
|
1788
1793
|
*
|
|
1789
1794
|
* ```ts import.meta.vitest
|
|
@@ -1792,6 +1797,18 @@ export const isSubrecord: {
|
|
|
1792
1797
|
* Record.reduce({ a: 1, b: 2, c: 3 }, 0, (acc, value) => acc + value) // => 6
|
|
1793
1798
|
* ```
|
|
1794
1799
|
*
|
|
1800
|
+
* **Example** (Using the key in the reducer)
|
|
1801
|
+
*
|
|
1802
|
+
* ```ts import.meta.vitest
|
|
1803
|
+
* import { Record } from "effect"
|
|
1804
|
+
*
|
|
1805
|
+
* Record.reduce(
|
|
1806
|
+
* { a: 1, b: 2, c: 3 },
|
|
1807
|
+
* "",
|
|
1808
|
+
* (acc, value, key) => (acc === "" ? `${key}${value}` : `${acc}-${key}${value}`)
|
|
1809
|
+
* ) // => "a1-b2-c3"
|
|
1810
|
+
* ```
|
|
1811
|
+
*
|
|
1795
1812
|
* @stability stable
|
|
1796
1813
|
* @category folding
|
|
1797
1814
|
* @since 2.0.0
|
|
@@ -1800,6 +1817,11 @@ export const reduce: {
|
|
|
1800
1817
|
/**
|
|
1801
1818
|
* Reduces a record to a single value by combining its entries with a specified function.
|
|
1802
1819
|
*
|
|
1820
|
+
* **Details**
|
|
1821
|
+
*
|
|
1822
|
+
* The reducer function receives the accumulator, the current value, and the
|
|
1823
|
+
* key of the current entry.
|
|
1824
|
+
*
|
|
1803
1825
|
* **Example** (Reducing record values)
|
|
1804
1826
|
*
|
|
1805
1827
|
* ```ts import.meta.vitest
|
|
@@ -1808,6 +1830,18 @@ export const reduce: {
|
|
|
1808
1830
|
* Record.reduce({ a: 1, b: 2, c: 3 }, 0, (acc, value) => acc + value) // => 6
|
|
1809
1831
|
* ```
|
|
1810
1832
|
*
|
|
1833
|
+
* **Example** (Using the key in the reducer)
|
|
1834
|
+
*
|
|
1835
|
+
* ```ts import.meta.vitest
|
|
1836
|
+
* import { Record } from "effect"
|
|
1837
|
+
*
|
|
1838
|
+
* Record.reduce(
|
|
1839
|
+
* { a: 1, b: 2, c: 3 },
|
|
1840
|
+
* "",
|
|
1841
|
+
* (acc, value, key) => (acc === "" ? `${key}${value}` : `${acc}-${key}${value}`)
|
|
1842
|
+
* ) // => "a1-b2-c3"
|
|
1843
|
+
* ```
|
|
1844
|
+
*
|
|
1811
1845
|
* @stability stable
|
|
1812
1846
|
* @category folding
|
|
1813
1847
|
* @since 2.0.0
|
|
@@ -1816,6 +1850,11 @@ export const reduce: {
|
|
|
1816
1850
|
/**
|
|
1817
1851
|
* Reduces a record to a single value by combining its entries with a specified function.
|
|
1818
1852
|
*
|
|
1853
|
+
* **Details**
|
|
1854
|
+
*
|
|
1855
|
+
* The reducer function receives the accumulator, the current value, and the
|
|
1856
|
+
* key of the current entry.
|
|
1857
|
+
*
|
|
1819
1858
|
* **Example** (Reducing record values)
|
|
1820
1859
|
*
|
|
1821
1860
|
* ```ts import.meta.vitest
|
|
@@ -1824,6 +1863,18 @@ export const reduce: {
|
|
|
1824
1863
|
* Record.reduce({ a: 1, b: 2, c: 3 }, 0, (acc, value) => acc + value) // => 6
|
|
1825
1864
|
* ```
|
|
1826
1865
|
*
|
|
1866
|
+
* **Example** (Using the key in the reducer)
|
|
1867
|
+
*
|
|
1868
|
+
* ```ts import.meta.vitest
|
|
1869
|
+
* import { Record } from "effect"
|
|
1870
|
+
*
|
|
1871
|
+
* Record.reduce(
|
|
1872
|
+
* { a: 1, b: 2, c: 3 },
|
|
1873
|
+
* "",
|
|
1874
|
+
* (acc, value, key) => (acc === "" ? `${key}${value}` : `${acc}-${key}${value}`)
|
|
1875
|
+
* ) // => "a1-b2-c3"
|
|
1876
|
+
* ```
|
|
1877
|
+
*
|
|
1827
1878
|
* @stability stable
|
|
1828
1879
|
* @category folding
|
|
1829
1880
|
* @since 2.0.0
|
package/src/Ref.ts
CHANGED
|
@@ -12,7 +12,9 @@
|
|
|
12
12
|
* @since 2.0.0
|
|
13
13
|
*/
|
|
14
14
|
import * as Effect from "./Effect.ts"
|
|
15
|
+
import * as Equal from "./Equal.ts"
|
|
15
16
|
import { dual, identity } from "./Function.ts"
|
|
17
|
+
import * as Hash from "./Hash.ts"
|
|
16
18
|
import { PipeInspectableProto } from "./internal/core.ts"
|
|
17
19
|
import * as MutableRef from "./MutableRef.ts"
|
|
18
20
|
import type * as Option from "./Option.ts"
|
|
@@ -110,6 +112,12 @@ const RefProto = {
|
|
|
110
112
|
_A: identity
|
|
111
113
|
},
|
|
112
114
|
...PipeInspectableProto,
|
|
115
|
+
[Equal.symbol](that: unknown): boolean {
|
|
116
|
+
return this === that
|
|
117
|
+
},
|
|
118
|
+
[Hash.symbol](): number {
|
|
119
|
+
return Hash.random(this)
|
|
120
|
+
},
|
|
113
121
|
toJSON(this: Ref<any>) {
|
|
114
122
|
return {
|
|
115
123
|
_id: "Ref",
|
|
@@ -1081,110 +1089,13 @@ export const modifySome: {
|
|
|
1081
1089
|
*/
|
|
1082
1090
|
<A, B>(self: Ref<A>, pf: (a: A) => readonly [B, Option.Option<A>]): Effect.Effect<B>
|
|
1083
1091
|
} = dual<
|
|
1084
|
-
|
|
1085
|
-
|
|
1086
|
-
|
|
1087
|
-
|
|
1088
|
-
|
|
1089
|
-
|
|
1090
|
-
|
|
1091
|
-
* **Details**
|
|
1092
|
-
*
|
|
1093
|
-
* The callback receives the current value and returns `[result, nextValue]`,
|
|
1094
|
-
* where `nextValue` is an `Option`. If `nextValue` is `Option.some(value)`,
|
|
1095
|
-
* the `Ref` is updated to `value`; if it is `Option.none()`, the `Ref` is left
|
|
1096
|
-
* unchanged. The returned effect always succeeds with `result`.
|
|
1097
|
-
*
|
|
1098
|
-
* **Example** (Conditionally modifying a value)
|
|
1099
|
-
*
|
|
1100
|
-
* ```ts import.meta.vitest
|
|
1101
|
-
* import { Effect, Option, Ref } from "effect"
|
|
1102
|
-
*
|
|
1103
|
-
* const program = Effect.gen(function*() {
|
|
1104
|
-
* const counter = yield* Ref.make(5)
|
|
1105
|
-
*
|
|
1106
|
-
* const result1 = yield* Ref.modifySome(
|
|
1107
|
-
* counter,
|
|
1108
|
-
* (n) =>
|
|
1109
|
-
* n > 3
|
|
1110
|
-
* ? [`incremented ${n}`, Option.some(n + 10)]
|
|
1111
|
-
* : ["no change", Option.none()]
|
|
1112
|
-
* )
|
|
1113
|
-
* const current1 = yield* Ref.get(counter)
|
|
1114
|
-
* const result2 = yield* Ref.modifySome(
|
|
1115
|
-
* counter,
|
|
1116
|
-
* (n) =>
|
|
1117
|
-
* n < 10
|
|
1118
|
-
* ? [`decremented ${n}`, Option.some(n - 5)]
|
|
1119
|
-
* : ["no change", Option.none()]
|
|
1120
|
-
* )
|
|
1121
|
-
* const current2 = yield* Ref.get(counter)
|
|
1122
|
-
* return [result1, current1, result2, current2]
|
|
1123
|
-
* })
|
|
1124
|
-
*
|
|
1125
|
-
* await Effect.runPromise(program) // => ["incremented 5", 15, "no change", 15]
|
|
1126
|
-
* ```
|
|
1127
|
-
*
|
|
1128
|
-
* @see {@link modify} for always storing a new value
|
|
1129
|
-
* @see {@link updateSome} for optional updates without a separate return value
|
|
1130
|
-
*
|
|
1131
|
-
* @stability stable
|
|
1132
|
-
* @category mutations
|
|
1133
|
-
* @since 2.0.0
|
|
1134
|
-
*/
|
|
1135
|
-
<B, A>(pf: (a: A) => readonly [B, Option.Option<A>]) => (self: Ref<A>) => Effect.Effect<B>,
|
|
1136
|
-
/**
|
|
1137
|
-
* Computes a result atomically and optionally updates the value of the `Ref`.
|
|
1138
|
-
*
|
|
1139
|
-
* **When to use**
|
|
1140
|
-
*
|
|
1141
|
-
* Use to compute a return value while optionally updating a plain `Ref`.
|
|
1142
|
-
*
|
|
1143
|
-
* **Details**
|
|
1144
|
-
*
|
|
1145
|
-
* The callback receives the current value and returns `[result, nextValue]`,
|
|
1146
|
-
* where `nextValue` is an `Option`. If `nextValue` is `Option.some(value)`,
|
|
1147
|
-
* the `Ref` is updated to `value`; if it is `Option.none()`, the `Ref` is left
|
|
1148
|
-
* unchanged. The returned effect always succeeds with `result`.
|
|
1149
|
-
*
|
|
1150
|
-
* **Example** (Conditionally modifying a value)
|
|
1151
|
-
*
|
|
1152
|
-
* ```ts import.meta.vitest
|
|
1153
|
-
* import { Effect, Option, Ref } from "effect"
|
|
1154
|
-
*
|
|
1155
|
-
* const program = Effect.gen(function*() {
|
|
1156
|
-
* const counter = yield* Ref.make(5)
|
|
1157
|
-
*
|
|
1158
|
-
* const result1 = yield* Ref.modifySome(
|
|
1159
|
-
* counter,
|
|
1160
|
-
* (n) =>
|
|
1161
|
-
* n > 3
|
|
1162
|
-
* ? [`incremented ${n}`, Option.some(n + 10)]
|
|
1163
|
-
* : ["no change", Option.none()]
|
|
1164
|
-
* )
|
|
1165
|
-
* const current1 = yield* Ref.get(counter)
|
|
1166
|
-
* const result2 = yield* Ref.modifySome(
|
|
1167
|
-
* counter,
|
|
1168
|
-
* (n) =>
|
|
1169
|
-
* n < 10
|
|
1170
|
-
* ? [`decremented ${n}`, Option.some(n - 5)]
|
|
1171
|
-
* : ["no change", Option.none()]
|
|
1172
|
-
* )
|
|
1173
|
-
* const current2 = yield* Ref.get(counter)
|
|
1174
|
-
* return [result1, current1, result2, current2]
|
|
1175
|
-
* })
|
|
1176
|
-
*
|
|
1177
|
-
* await Effect.runPromise(program) // => ["incremented 5", 15, "no change", 15]
|
|
1178
|
-
* ```
|
|
1179
|
-
*
|
|
1180
|
-
* @see {@link modify} for always storing a new value
|
|
1181
|
-
* @see {@link updateSome} for optional updates without a separate return value
|
|
1182
|
-
*
|
|
1183
|
-
* @stability stable
|
|
1184
|
-
* @category mutations
|
|
1185
|
-
* @since 2.0.0
|
|
1186
|
-
*/
|
|
1187
|
-
<A, B>(self: Ref<A>, pf: (a: A) => readonly [B, Option.Option<A>]) => Effect.Effect<B>
|
|
1092
|
+
<B, A>(
|
|
1093
|
+
pf: (a: A) => readonly [B, Option.Option<A>]
|
|
1094
|
+
) => (self: Ref<A>) => Effect.Effect<B>,
|
|
1095
|
+
<A, B>(
|
|
1096
|
+
self: Ref<A>,
|
|
1097
|
+
pf: (a: A) => readonly [B, Option.Option<A>]
|
|
1098
|
+
) => Effect.Effect<B>
|
|
1188
1099
|
>(2, (self, pf) =>
|
|
1189
1100
|
modify(self, (value) => {
|
|
1190
1101
|
const [b, option] = pf(value)
|
package/src/References.ts
CHANGED
|
@@ -563,12 +563,13 @@ export const TracerSpanLinks: Context.Reference<ReadonlyArray<SpanLink>> = refer
|
|
|
563
563
|
export const TracerTimingEnabled: Context.Reference<boolean> = references.TracerTimingEnabled
|
|
564
564
|
|
|
565
565
|
/**
|
|
566
|
-
* Context reference for the log severity used
|
|
567
|
-
*
|
|
566
|
+
* Context reference for the log severity used to report errors that have no
|
|
567
|
+
* caller to receive them, such as pool finalizer failures or defects in
|
|
568
|
+
* background callbacks.
|
|
568
569
|
*
|
|
569
570
|
* **When to use**
|
|
570
571
|
*
|
|
571
|
-
* Use to choose whether and at which severity
|
|
572
|
+
* Use to choose whether and at which severity these unhandled errors are
|
|
572
573
|
* reported.
|
|
573
574
|
*
|
|
574
575
|
* **Details**
|
|
@@ -577,7 +578,7 @@ export const TracerTimingEnabled: Context.Reference<boolean> = references.Tracer
|
|
|
577
578
|
*
|
|
578
579
|
* **Gotchas**
|
|
579
580
|
*
|
|
580
|
-
* Providing `undefined` suppresses
|
|
581
|
+
* Providing `undefined` suppresses these reports; it does not fall back to
|
|
581
582
|
* `CurrentLogLevel`.
|
|
582
583
|
*
|
|
583
584
|
* @see {@link CurrentLogLevel} for the default severity used by ordinary `Effect.log` calls
|