effect 4.0.6 → 4.1.0
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/README.md +1 -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/BigDecimal.d.ts.map +1 -1
- package/dist/BigDecimal.js +3 -0
- package/dist/BigDecimal.js.map +1 -1
- package/dist/Channel.d.ts +12 -6
- package/dist/Channel.d.ts.map +1 -1
- package/dist/Channel.js +30 -9
- package/dist/Channel.js.map +1 -1
- package/dist/Config.d.ts +7 -1
- package/dist/Config.d.ts.map +1 -1
- package/dist/Config.js.map +1 -1
- package/dist/Context.d.ts +18 -1
- package/dist/Context.d.ts.map +1 -1
- package/dist/Context.js +27 -8
- package/dist/Context.js.map +1 -1
- package/dist/Cron.d.ts +81 -11
- package/dist/Cron.d.ts.map +1 -1
- package/dist/Cron.js +101 -26
- 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 +78 -0
- package/dist/Duration.d.ts.map +1 -1
- package/dist/Duration.js +123 -0
- package/dist/Duration.js.map +1 -1
- package/dist/Effect.d.ts +165 -8
- package/dist/Effect.d.ts.map +1 -1
- package/dist/Effect.js +12 -2
- 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/Exit.d.ts +3 -3
- package/dist/Exit.d.ts.map +1 -1
- package/dist/Exit.js.map +1 -1
- package/dist/FileSystem.d.ts +59 -4
- package/dist/FileSystem.d.ts.map +1 -1
- package/dist/FileSystem.js +9 -2
- 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/Glob.d.ts +165 -0
- package/dist/Glob.d.ts.map +1 -0
- package/dist/Glob.js +127 -0
- package/dist/Glob.js.map +1 -0
- package/dist/Hash.d.ts.map +1 -1
- package/dist/Hash.js +4 -1
- package/dist/Hash.js.map +1 -1
- package/dist/JsonPatch.js +4 -0
- package/dist/JsonPatch.js.map +1 -1
- package/dist/JsonSchema.d.ts.map +1 -1
- package/dist/JsonSchema.js +13 -40
- package/dist/JsonSchema.js.map +1 -1
- package/dist/Match.d.ts +86 -0
- package/dist/Match.d.ts.map +1 -1
- package/dist/Match.js +72 -0
- package/dist/Match.js.map +1 -1
- package/dist/Metric.d.ts +3 -3
- 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/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/Pool.d.ts +51 -0
- package/dist/Pool.d.ts.map +1 -1
- package/dist/Pool.js +136 -36
- package/dist/Pool.js.map +1 -1
- package/dist/PubSub.d.ts.map +1 -1
- package/dist/PubSub.js +5 -6
- package/dist/PubSub.js.map +1 -1
- package/dist/Random.d.ts.map +1 -1
- package/dist/Random.js +3 -3
- package/dist/Random.js.map +1 -1
- package/dist/RcMap.d.ts.map +1 -1
- package/dist/RcMap.js +8 -2
- package/dist/RcMap.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/Schedule.d.ts +18 -1
- package/dist/Schedule.d.ts.map +1 -1
- package/dist/Schedule.js +8 -3
- package/dist/Schedule.js.map +1 -1
- package/dist/Schema.d.ts +690 -49
- package/dist/Schema.d.ts.map +1 -1
- package/dist/Schema.js +687 -28
- package/dist/Schema.js.map +1 -1
- package/dist/SchemaAST.d.ts +4 -2
- package/dist/SchemaAST.d.ts.map +1 -1
- package/dist/SchemaAST.js +14 -17
- package/dist/SchemaAST.js.map +1 -1
- package/dist/SchemaGetter.d.ts +6 -1
- package/dist/SchemaGetter.d.ts.map +1 -1
- package/dist/SchemaGetter.js +22 -11
- package/dist/SchemaGetter.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 +33 -10
- package/dist/SchemaRepresentation.d.ts.map +1 -1
- package/dist/SchemaRepresentation.js +39 -13
- package/dist/SchemaRepresentation.js.map +1 -1
- package/dist/SchemaTransformation.d.ts +12 -4
- package/dist/SchemaTransformation.d.ts.map +1 -1
- package/dist/SchemaTransformation.js +15 -5
- package/dist/SchemaTransformation.js.map +1 -1
- package/dist/ScopedCache.d.ts.map +1 -1
- package/dist/ScopedCache.js +5 -7
- package/dist/ScopedCache.js.map +1 -1
- package/dist/Semaphore.d.ts +130 -0
- package/dist/Semaphore.d.ts.map +1 -1
- package/dist/Semaphore.js +94 -35
- package/dist/Semaphore.js.map +1 -1
- package/dist/Sink.d.ts.map +1 -1
- package/dist/Sink.js +7 -2
- package/dist/Sink.js.map +1 -1
- package/dist/Stream.d.ts +13 -4
- package/dist/Stream.d.ts.map +1 -1
- package/dist/Stream.js +31 -10
- package/dist/Stream.js.map +1 -1
- package/dist/String.d.ts +3 -0
- package/dist/String.d.ts.map +1 -1
- package/dist/String.js +3 -0
- package/dist/String.js.map +1 -1
- package/dist/Terminal.d.ts +18 -1
- package/dist/Terminal.d.ts.map +1 -1
- package/dist/Terminal.js +1 -1
- package/dist/Terminal.js.map +1 -1
- 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/ai/AiError.d.ts +43 -116
- package/dist/ai/AiError.d.ts.map +1 -1
- package/dist/ai/AiError.js +53 -72
- package/dist/ai/AiError.js.map +1 -1
- package/dist/ai/Decision.d.ts +196 -15
- package/dist/ai/Decision.d.ts.map +1 -1
- package/dist/ai/Decision.js +130 -0
- package/dist/ai/Decision.js.map +1 -1
- package/dist/ai/DecisionModel.d.ts +54 -13
- package/dist/ai/DecisionModel.d.ts.map +1 -1
- package/dist/ai/DecisionModel.js +123 -12
- package/dist/ai/DecisionModel.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/McpSchema.d.ts +110 -110
- package/dist/ai/McpSchema.d.ts.map +1 -1
- package/dist/ai/McpServer.d.ts +630 -29
- package/dist/ai/McpServer.d.ts.map +1 -1
- package/dist/ai/McpServer.js +583 -131
- package/dist/ai/McpServer.js.map +1 -1
- package/dist/ai/McpTest.d.ts +130 -0
- package/dist/ai/McpTest.d.ts.map +1 -0
- package/dist/ai/McpTest.js +237 -0
- package/dist/ai/McpTest.js.map +1 -0
- package/dist/ai/Prompt.d.ts +52 -0
- package/dist/ai/Prompt.d.ts.map +1 -1
- package/dist/ai/Prompt.js +38 -0
- package/dist/ai/Prompt.js.map +1 -1
- package/dist/ai/Response.d.ts +17 -28
- package/dist/ai/Response.d.ts.map +1 -1
- package/dist/ai/Response.js +5 -10
- package/dist/ai/Response.js.map +1 -1
- package/dist/ai/Tool.d.ts +43 -1
- 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.map +1 -1
- package/dist/ai/Toolkit.js +8 -1
- package/dist/ai/Toolkit.js.map +1 -1
- package/dist/ai/index.d.ts +5 -0
- package/dist/ai/index.d.ts.map +1 -1
- package/dist/ai/index.js +5 -0
- package/dist/ai/index.js.map +1 -1
- package/dist/ai/internal/mcpCore.js +17 -12
- package/dist/ai/internal/mcpCore.js.map +1 -1
- package/dist/ai/internal/mcpProtocol/v2024_11_05.js +4 -5
- package/dist/ai/internal/mcpProtocol/v2024_11_05.js.map +1 -1
- package/dist/ai/internal/mcpProtocol/v2025_03_26.js +4 -5
- package/dist/ai/internal/mcpProtocol/v2025_03_26.js.map +1 -1
- package/dist/ai/internal/mcpProtocol/v2025_06_18.js +4 -5
- package/dist/ai/internal/mcpProtocol/v2025_06_18.js.map +1 -1
- package/dist/ai/internal/mcpProtocol/v2025_11_25.js +4 -5
- package/dist/ai/internal/mcpProtocol/v2025_11_25.js.map +1 -1
- package/dist/ai/internal/mcpProtocol/v2026_07_28.js +18 -10
- package/dist/ai/internal/mcpProtocol/v2026_07_28.js.map +1 -1
- package/dist/ai/internal/mcpProtocol.js +13 -0
- package/dist/ai/internal/mcpProtocol.js.map +1 -1
- package/dist/ai/internal/mcpRuntime.js +5 -3
- package/dist/ai/internal/mcpRuntime.js.map +1 -1
- package/dist/ai/internal/mcpStatefulRuntime.js +6 -1
- package/dist/ai/internal/mcpStatefulRuntime.js.map +1 -1
- package/dist/cli/Argument.d.ts +21 -0
- package/dist/cli/Argument.d.ts.map +1 -1
- package/dist/cli/Argument.js +7 -0
- package/dist/cli/Argument.js.map +1 -1
- package/dist/cli/CliError.d.ts +78 -0
- package/dist/cli/CliError.d.ts.map +1 -1
- package/dist/cli/CliError.js +65 -3
- package/dist/cli/CliError.js.map +1 -1
- package/dist/cli/CliOutput.d.ts +220 -7
- package/dist/cli/CliOutput.d.ts.map +1 -1
- package/dist/cli/CliOutput.js +156 -43
- package/dist/cli/CliOutput.js.map +1 -1
- package/dist/cli/Command.d.ts +47 -16
- package/dist/cli/Command.d.ts.map +1 -1
- package/dist/cli/Command.js +67 -29
- package/dist/cli/Command.js.map +1 -1
- package/dist/cli/Completions.d.ts +58 -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 +122 -0
- package/dist/cli/Flag.d.ts.map +1 -1
- package/dist/cli/Flag.js +42 -0
- package/dist/cli/Flag.js.map +1 -1
- package/dist/cli/GlobalFlag.d.ts.map +1 -1
- package/dist/cli/GlobalFlag.js +15 -7
- package/dist/cli/GlobalFlag.js.map +1 -1
- package/dist/cli/HelpDoc.d.ts +15 -1
- package/dist/cli/HelpDoc.d.ts.map +1 -1
- package/dist/cli/Param.d.ts +15 -0
- package/dist/cli/Param.d.ts.map +1 -1
- package/dist/cli/Param.js +23 -2
- package/dist/cli/Param.js.map +1 -1
- package/dist/cli/Primitive.d.ts +14 -0
- package/dist/cli/Primitive.d.ts.map +1 -1
- package/dist/cli/Primitive.js +15 -1
- package/dist/cli/Primitive.js.map +1 -1
- package/dist/cli/Prompt.d.ts +1 -0
- package/dist/cli/Prompt.d.ts.map +1 -1
- package/dist/cli/Prompt.js +1 -0
- package/dist/cli/Prompt.js.map +1 -1
- package/dist/cli/TerminalCapabilities.d.ts +3 -2
- package/dist/cli/TerminalCapabilities.d.ts.map +1 -1
- package/dist/cli/TerminalCapabilities.js +3 -1
- package/dist/cli/TerminalCapabilities.js.map +1 -1
- package/dist/cli/internal/completions/bash.js +73 -27
- package/dist/cli/internal/completions/bash.js.map +1 -1
- package/dist/cli/internal/help.d.ts.map +1 -1
- package/dist/cli/internal/help.js +17 -10
- package/dist/cli/internal/help.js.map +1 -1
- package/dist/cluster/ClusterWorkflowEngine.d.ts.map +1 -1
- package/dist/cluster/ClusterWorkflowEngine.js +45 -10
- package/dist/cluster/ClusterWorkflowEngine.js.map +1 -1
- package/dist/cluster/MessageStorage.d.ts +23 -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/Sharding.d.ts.map +1 -1
- package/dist/cluster/Sharding.js +151 -49
- package/dist/cluster/Sharding.js.map +1 -1
- package/dist/cluster/ShardingConfig.d.ts +76 -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/SingleRunner.d.ts +3 -3
- package/dist/cluster/SingleRunner.d.ts.map +1 -1
- package/dist/cluster/SingleRunner.js +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 +37 -6
- package/dist/cluster/SqlMessageStorage.d.ts.map +1 -1
- package/dist/cluster/SqlMessageStorage.js +34 -7
- package/dist/cluster/SqlMessageStorage.js.map +1 -1
- package/dist/cluster/SqlRunnerStorage.d.ts.map +1 -1
- package/dist/cluster/SqlRunnerStorage.js +109 -46
- package/dist/cluster/SqlRunnerStorage.js.map +1 -1
- package/dist/cluster/internal/entityManager.js +54 -20
- package/dist/cluster/internal/entityManager.js.map +1 -1
- package/dist/crypto/Aead.d.ts +322 -0
- package/dist/crypto/Aead.d.ts.map +1 -0
- package/dist/crypto/Aead.js +331 -0
- package/dist/crypto/Aead.js.map +1 -0
- package/dist/crypto/Cipher.d.ts +235 -0
- package/dist/crypto/Cipher.d.ts.map +1 -0
- package/dist/crypto/Cipher.js +233 -0
- package/dist/crypto/Cipher.js.map +1 -0
- package/dist/crypto/CryptoError.d.ts +212 -0
- package/dist/crypto/CryptoError.d.ts.map +1 -0
- package/dist/crypto/CryptoError.js +202 -0
- package/dist/crypto/CryptoError.js.map +1 -0
- package/dist/crypto/Digest.d.ts +143 -0
- package/dist/crypto/Digest.d.ts.map +1 -0
- package/dist/crypto/Digest.js +146 -0
- package/dist/crypto/Digest.js.map +1 -0
- package/dist/crypto/Kdf.d.ts +220 -0
- package/dist/crypto/Kdf.d.ts.map +1 -0
- package/dist/crypto/Kdf.js +212 -0
- package/dist/crypto/Kdf.js.map +1 -0
- package/dist/crypto/KeyAgreement.d.ts +323 -0
- package/dist/crypto/KeyAgreement.d.ts.map +1 -0
- package/dist/crypto/KeyAgreement.js +303 -0
- package/dist/crypto/KeyAgreement.js.map +1 -0
- package/dist/crypto/KeyFormat.d.ts +309 -0
- package/dist/crypto/KeyFormat.d.ts.map +1 -0
- package/dist/crypto/KeyFormat.js +556 -0
- package/dist/crypto/KeyFormat.js.map +1 -0
- package/dist/crypto/KeyWrap.d.ts +389 -0
- package/dist/crypto/KeyWrap.d.ts.map +1 -0
- package/dist/crypto/KeyWrap.js +381 -0
- package/dist/crypto/KeyWrap.js.map +1 -0
- package/dist/crypto/Mac.d.ts +277 -0
- package/dist/crypto/Mac.d.ts.map +1 -0
- package/dist/crypto/Mac.js +288 -0
- package/dist/crypto/Mac.js.map +1 -0
- package/dist/crypto/SecureRandom.d.ts +340 -0
- package/dist/crypto/SecureRandom.d.ts.map +1 -0
- package/dist/crypto/SecureRandom.js +257 -0
- package/dist/crypto/SecureRandom.js.map +1 -0
- package/dist/crypto/Signature.d.ts +448 -0
- package/dist/crypto/Signature.d.ts.map +1 -0
- package/dist/crypto/Signature.js +484 -0
- package/dist/crypto/Signature.js.map +1 -0
- package/dist/crypto/WebCrypto.d.ts +61 -0
- package/dist/crypto/WebCrypto.d.ts.map +1 -0
- package/dist/crypto/WebCrypto.js +63 -0
- package/dist/crypto/WebCrypto.js.map +1 -0
- package/dist/crypto/index.d.ts +65 -0
- package/dist/crypto/index.d.ts.map +1 -0
- package/dist/crypto/index.js +66 -0
- package/dist/crypto/index.js.map +1 -0
- package/dist/crypto/internal/asymmetric.d.ts +2 -0
- package/dist/crypto/internal/asymmetric.d.ts.map +1 -0
- package/dist/crypto/internal/asymmetric.js +210 -0
- package/dist/crypto/internal/asymmetric.js.map +1 -0
- package/dist/crypto/internal/chacha.d.ts +46 -0
- package/dist/crypto/internal/chacha.d.ts.map +1 -0
- package/dist/crypto/internal/chacha.js +885 -0
- package/dist/crypto/internal/chacha.js.map +1 -0
- package/dist/crypto/internal/der.d.ts +6 -0
- package/dist/crypto/internal/der.d.ts.map +1 -0
- package/dist/crypto/internal/der.js +86 -0
- package/dist/crypto/internal/der.js.map +1 -0
- package/dist/crypto/internal/digest.d.ts +2 -0
- package/dist/crypto/internal/digest.d.ts.map +1 -0
- package/dist/crypto/internal/digest.js +15 -0
- package/dist/crypto/internal/digest.js.map +1 -0
- package/dist/crypto/internal/key.d.ts +2 -0
- package/dist/crypto/internal/key.d.ts.map +1 -0
- package/dist/crypto/internal/key.js +170 -0
- package/dist/crypto/internal/key.js.map +1 -0
- package/dist/crypto/internal/md5.d.ts +39 -0
- package/dist/crypto/internal/md5.d.ts.map +1 -0
- package/dist/crypto/internal/md5.js +179 -0
- package/dist/crypto/internal/md5.js.map +1 -0
- package/dist/crypto/internal/webCrypto.d.ts +2 -0
- package/dist/crypto/internal/webCrypto.d.ts.map +1 -0
- package/dist/crypto/internal/webCrypto.js +111 -0
- package/dist/crypto/internal/webCrypto.js.map +1 -0
- package/dist/devtools/DevToolsClient.d.ts.map +1 -1
- package/dist/devtools/DevToolsClient.js +2 -0
- 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.map +1 -1
- package/dist/encoding/Base64Url.js +3 -2
- package/dist/encoding/Base64Url.js.map +1 -1
- package/dist/encoding/Csv.d.ts +608 -0
- package/dist/encoding/Csv.d.ts.map +1 -0
- package/dist/encoding/Csv.js +718 -0
- package/dist/encoding/Csv.js.map +1 -0
- package/dist/encoding/Hex.d.ts +3 -2
- package/dist/encoding/Hex.d.ts.map +1 -1
- package/dist/encoding/Hex.js +3 -2
- package/dist/encoding/Hex.js.map +1 -1
- package/dist/encoding/SchemaBinary.d.ts.map +1 -1
- package/dist/encoding/SchemaBinary.js +42 -4
- 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/Toml.d.ts +17 -3
- package/dist/encoding/Toml.d.ts.map +1 -1
- package/dist/encoding/Toml.js +124 -31
- package/dist/encoding/Toml.js.map +1 -1
- package/dist/encoding/Yaml.d.ts +8 -1
- package/dist/encoding/Yaml.d.ts.map +1 -1
- package/dist/encoding/Yaml.js +54 -18
- package/dist/encoding/Yaml.js.map +1 -1
- package/dist/encoding/index.d.ts +5 -0
- package/dist/encoding/index.d.ts.map +1 -1
- package/dist/encoding/index.js +5 -0
- package/dist/encoding/index.js.map +1 -1
- package/dist/eventlog/EventJournal.d.ts.map +1 -1
- package/dist/eventlog/EventJournal.js +6 -3
- package/dist/eventlog/EventJournal.js.map +1 -1
- package/dist/eventlog/EventLog.d.ts +119 -4
- package/dist/eventlog/EventLog.d.ts.map +1 -1
- package/dist/eventlog/EventLog.js +200 -12
- package/dist/eventlog/EventLog.js.map +1 -1
- package/dist/eventlog/EventLogEncryption.d.ts +41 -4
- package/dist/eventlog/EventLogEncryption.d.ts.map +1 -1
- package/dist/eventlog/EventLogEncryption.js +83 -64
- package/dist/eventlog/EventLogEncryption.js.map +1 -1
- package/dist/eventlog/EventLogMessage.d.ts +279 -0
- package/dist/eventlog/EventLogMessage.d.ts.map +1 -1
- package/dist/eventlog/EventLogMessage.js +217 -1
- package/dist/eventlog/EventLogMessage.js.map +1 -1
- package/dist/eventlog/EventLogRemote.d.ts +200 -28
- package/dist/eventlog/EventLogRemote.d.ts.map +1 -1
- package/dist/eventlog/EventLogRemote.js +186 -16
- package/dist/eventlog/EventLogRemote.js.map +1 -1
- package/dist/eventlog/EventLogServer.d.ts +3 -0
- package/dist/eventlog/EventLogServer.d.ts.map +1 -1
- package/dist/eventlog/EventLogServer.js +18 -10
- package/dist/eventlog/EventLogServer.js.map +1 -1
- package/dist/eventlog/EventLogServerEncrypted.d.ts +326 -5
- package/dist/eventlog/EventLogServerEncrypted.d.ts.map +1 -1
- package/dist/eventlog/EventLogServerEncrypted.js +769 -14
- package/dist/eventlog/EventLogServerEncrypted.js.map +1 -1
- package/dist/eventlog/EventLogSessionAuth.d.ts +5 -3
- package/dist/eventlog/EventLogSessionAuth.d.ts.map +1 -1
- package/dist/eventlog/EventLogSessionAuth.js +41 -64
- package/dist/eventlog/EventLogSessionAuth.js.map +1 -1
- package/dist/eventlog/EventRow.d.ts +4 -0
- package/dist/eventlog/EventRow.d.ts.map +1 -1
- package/dist/eventlog/EventRow.js +12 -2
- package/dist/eventlog/EventRow.js.map +1 -1
- package/dist/eventlog/SqlEventJournal.d.ts.map +1 -1
- package/dist/eventlog/SqlEventJournal.js +47 -27
- package/dist/eventlog/SqlEventJournal.js.map +1 -1
- package/dist/eventlog/SqlEventLogServerEncrypted.d.ts +21 -5
- package/dist/eventlog/SqlEventLogServerEncrypted.d.ts.map +1 -1
- package/dist/eventlog/SqlEventLogServerEncrypted.js +1048 -113
- package/dist/eventlog/SqlEventLogServerEncrypted.js.map +1 -1
- package/dist/eventlog/SqlEventLogServerUnencrypted.js +2 -2
- package/dist/eventlog/SqlEventLogServerUnencrypted.js.map +1 -1
- package/dist/eventlog/internal/batches.d.ts +12 -0
- package/dist/eventlog/internal/batches.d.ts.map +1 -0
- package/dist/eventlog/internal/batches.js +26 -0
- package/dist/eventlog/internal/batches.js.map +1 -0
- package/dist/eventlog/internal/compaction.d.ts +38 -0
- package/dist/eventlog/internal/compaction.d.ts.map +1 -0
- package/dist/eventlog/internal/compaction.js +33 -0
- package/dist/eventlog/internal/compaction.js.map +1 -0
- package/dist/eventlog/internal/conflicts.d.ts +0 -1
- package/dist/eventlog/internal/conflicts.d.ts.map +1 -1
- package/dist/eventlog/internal/conflicts.js +0 -3
- package/dist/eventlog/internal/conflicts.js.map +1 -1
- package/dist/eventlog/internal/identityRootSecretDerivation.js +66 -67
- package/dist/eventlog/internal/identityRootSecretDerivation.js.map +1 -1
- package/dist/eventlog/internal/remoteCompaction.d.ts +31 -0
- package/dist/eventlog/internal/remoteCompaction.d.ts.map +1 -0
- package/dist/eventlog/internal/remoteCompaction.js +76 -0
- package/dist/eventlog/internal/remoteCompaction.js.map +1 -0
- package/dist/http/Cookies.d.ts +172 -0
- package/dist/http/Cookies.d.ts.map +1 -1
- package/dist/http/Cookies.js +153 -10
- package/dist/http/Cookies.js.map +1 -1
- package/dist/http/FetchHttpClient.d.ts +26 -2
- package/dist/http/FetchHttpClient.d.ts.map +1 -1
- package/dist/http/FetchHttpClient.js +78 -15
- package/dist/http/FetchHttpClient.js.map +1 -1
- package/dist/http/HttpClient.d.ts +502 -8
- package/dist/http/HttpClient.d.ts.map +1 -1
- package/dist/http/HttpClient.js +296 -12
- 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 +9 -5
- package/dist/http/HttpClientRequest.d.ts.map +1 -1
- package/dist/http/HttpClientRequest.js +3 -4
- package/dist/http/HttpClientRequest.js.map +1 -1
- package/dist/http/HttpClientResponse.d.ts.map +1 -1
- package/dist/http/HttpClientResponse.js +3 -2
- package/dist/http/HttpClientResponse.js.map +1 -1
- package/dist/http/HttpMethod.d.ts +7 -1
- package/dist/http/HttpMethod.d.ts.map +1 -1
- package/dist/http/HttpMethod.js +3 -8
- package/dist/http/HttpMethod.js.map +1 -1
- package/dist/http/HttpMiddleware.d.ts +1 -1
- package/dist/http/HttpMiddleware.d.ts.map +1 -1
- package/dist/http/HttpMiddleware.js +14 -16
- package/dist/http/HttpMiddleware.js.map +1 -1
- package/dist/http/HttpRouter.d.ts.map +1 -1
- package/dist/http/HttpRouter.js +2 -1
- package/dist/http/HttpRouter.js.map +1 -1
- package/dist/http/HttpServerError.js +2 -2
- package/dist/http/HttpServerError.js.map +1 -1
- package/dist/http/HttpServerRequest.d.ts +11 -3
- package/dist/http/HttpServerRequest.d.ts.map +1 -1
- package/dist/http/HttpServerRequest.js +77 -25
- package/dist/http/HttpServerRequest.js.map +1 -1
- package/dist/http/HttpServerResponse.d.ts.map +1 -1
- package/dist/http/HttpServerResponse.js +3 -2
- package/dist/http/HttpServerResponse.js.map +1 -1
- package/dist/http/HttpStaticServer.d.ts.map +1 -1
- package/dist/http/HttpStaticServer.js +48 -21
- package/dist/http/HttpStaticServer.js.map +1 -1
- package/dist/http/HttpTraceContext.d.ts +2 -1
- package/dist/http/HttpTraceContext.d.ts.map +1 -1
- package/dist/http/HttpTraceContext.js +7 -5
- package/dist/http/HttpTraceContext.js.map +1 -1
- package/dist/http/MultipartParser/internal/contentType.js +3 -3
- package/dist/http/ProblemDetails.d.ts +96 -0
- package/dist/http/ProblemDetails.d.ts.map +1 -0
- package/dist/http/ProblemDetails.js +98 -0
- package/dist/http/ProblemDetails.js.map +1 -0
- 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/index.d.ts +5 -0
- package/dist/http/index.d.ts.map +1 -1
- package/dist/http/index.js +5 -0
- package/dist/http/index.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 +6 -2
- 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/urlParams.js +33 -0
- package/dist/http/internal/urlParams.js.map +1 -1
- 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 +3 -6
- 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 +43 -13
- package/dist/http-api/HttpApiBuilder.js.map +1 -1
- package/dist/http-api/HttpApiClient.d.ts +140 -7
- package/dist/http-api/HttpApiClient.d.ts.map +1 -1
- package/dist/http-api/HttpApiClient.js +193 -44
- package/dist/http-api/HttpApiClient.js.map +1 -1
- package/dist/http-api/HttpApiEndpoint.d.ts +24 -7
- package/dist/http-api/HttpApiEndpoint.d.ts.map +1 -1
- package/dist/http-api/HttpApiEndpoint.js +123 -32
- package/dist/http-api/HttpApiEndpoint.js.map +1 -1
- package/dist/http-api/HttpApiError.d.ts +185 -13
- package/dist/http-api/HttpApiError.d.ts.map +1 -1
- package/dist/http-api/HttpApiError.js +128 -0
- package/dist/http-api/HttpApiError.js.map +1 -1
- package/dist/http-api/HttpApiMiddleware.d.ts +64 -17
- package/dist/http-api/HttpApiMiddleware.d.ts.map +1 -1
- package/dist/http-api/HttpApiMiddleware.js +85 -1
- package/dist/http-api/HttpApiMiddleware.js.map +1 -1
- package/dist/http-api/HttpApiSchema.d.ts +142 -33
- package/dist/http-api/HttpApiSchema.d.ts.map +1 -1
- package/dist/http-api/HttpApiSchema.js +123 -59
- package/dist/http-api/HttpApiSchema.js.map +1 -1
- package/dist/http-api/HttpApiTest.d.ts.map +1 -1
- package/dist/http-api/HttpApiTest.js +3 -2
- package/dist/http-api/HttpApiTest.js.map +1 -1
- package/dist/http-api/OpenApi.d.ts.map +1 -1
- package/dist/http-api/OpenApi.js +25 -16
- package/dist/http-api/OpenApi.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 +5 -5
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -5
- 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 +2 -0
- package/dist/internal/core.js.map +1 -1
- package/dist/internal/effect.js +46 -27
- 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/glob.d.ts +2 -0
- package/dist/internal/glob.d.ts.map +1 -0
- package/dist/internal/glob.js +630 -0
- package/dist/internal/glob.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 +11 -1
- package/dist/internal/matcher.js.map +1 -1
- package/dist/internal/persistence.js +9 -0
- package/dist/internal/persistence.js.map +1 -1
- package/dist/internal/rcRef.js +4 -1
- package/dist/internal/rcRef.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 +173 -185
- 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/standardSchema.js +8 -2
- package/dist/internal/schema/standardSchema.js.map +1 -1
- package/dist/internal/schema/toCodeDocument.js +9 -6
- package/dist/internal/schema/toCodeDocument.js.map +1 -1
- package/dist/internal/schema/toCodec.js +21 -24
- package/dist/internal/schema/toCodec.js.map +1 -1
- package/dist/internal/schema/toJsonSchemaDocument.js +205 -140
- 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 +42 -13
- package/dist/internal/trie.js.map +1 -1
- package/dist/internal/ulid.js +41 -0
- package/dist/internal/ulid.js.map +1 -1
- package/dist/internal/uuid.js +52 -8
- package/dist/internal/uuid.js.map +1 -1
- package/dist/internal/version.js +1 -1
- package/dist/observability/Otlp.d.ts +15 -4
- package/dist/observability/Otlp.d.ts.map +1 -1
- package/dist/observability/Otlp.js +10 -0
- package/dist/observability/Otlp.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 +7 -0
- package/dist/observability/OtlpResource.d.ts.map +1 -1
- package/dist/observability/OtlpResource.js +11 -1
- package/dist/observability/OtlpResource.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/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/KeyValueStore.d.ts +47 -2
- package/dist/persistence/KeyValueStore.d.ts.map +1 -1
- package/dist/persistence/KeyValueStore.js +129 -18
- package/dist/persistence/KeyValueStore.js.map +1 -1
- package/dist/persistence/PersistedQueue.d.ts +9 -0
- package/dist/persistence/PersistedQueue.d.ts.map +1 -1
- package/dist/persistence/PersistedQueue.js +94 -52
- package/dist/persistence/PersistedQueue.js.map +1 -1
- package/dist/persistence/Persistence.d.ts +10 -4
- package/dist/persistence/Persistence.d.ts.map +1 -1
- package/dist/persistence/Persistence.js +18 -11
- package/dist/persistence/Persistence.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/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 +237 -71
- package/dist/process/ChildProcess.d.ts.map +1 -1
- package/dist/process/ChildProcess.js +56 -158
- package/dist/process/ChildProcess.js.map +1 -1
- package/dist/process/ChildProcessSpawner.d.ts +35 -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/process/CommandLine.d.ts +294 -0
- package/dist/process/CommandLine.d.ts.map +1 -0
- package/dist/process/CommandLine.js +481 -0
- package/dist/process/CommandLine.js.map +1 -0
- package/dist/process/index.d.ts +5 -0
- package/dist/process/index.d.ts.map +1 -1
- package/dist/process/index.js +5 -0
- package/dist/process/index.js.map +1 -1
- package/dist/reactivity/AsyncResult.d.ts +1 -1
- package/dist/reactivity/AsyncResult.d.ts.map +1 -1
- package/dist/reactivity/Atom.d.ts +2 -1
- package/dist/reactivity/Atom.d.ts.map +1 -1
- package/dist/reactivity/Atom.js +3 -4
- package/dist/reactivity/Atom.js.map +1 -1
- package/dist/reactivity/AtomRegistry.js.map +1 -1
- package/dist/rpc/RpcClient.d.ts +16 -1
- package/dist/rpc/RpcClient.d.ts.map +1 -1
- package/dist/rpc/RpcClient.js +59 -24
- package/dist/rpc/RpcClient.js.map +1 -1
- package/dist/rpc/RpcMessage.d.ts +10 -1
- package/dist/rpc/RpcMessage.d.ts.map +1 -1
- package/dist/rpc/RpcMessage.js +1 -0
- package/dist/rpc/RpcMessage.js.map +1 -1
- package/dist/rpc/RpcSerialization.d.ts +14 -0
- package/dist/rpc/RpcSerialization.d.ts.map +1 -1
- package/dist/rpc/RpcSerialization.js +26 -8
- package/dist/rpc/RpcSerialization.js.map +1 -1
- package/dist/rpc/RpcServer.d.ts +31 -0
- package/dist/rpc/RpcServer.d.ts.map +1 -1
- package/dist/rpc/RpcServer.js +139 -56
- 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 +14 -0
- package/dist/schema/Model.d.ts.map +1 -1
- package/dist/schema/Model.js +18 -3
- package/dist/schema/Model.js.map +1 -1
- package/dist/sql/Migrator.d.ts +2 -20
- package/dist/sql/Migrator.d.ts.map +1 -1
- package/dist/sql/Migrator.js +13 -55
- package/dist/sql/Migrator.js.map +1 -1
- package/dist/sql/MigratorFileSystem.d.ts +21 -0
- package/dist/sql/MigratorFileSystem.d.ts.map +1 -0
- package/dist/sql/MigratorFileSystem.js +57 -0
- package/dist/sql/MigratorFileSystem.js.map +1 -0
- package/dist/sql/SqlClient.d.ts +9 -4
- package/dist/sql/SqlClient.d.ts.map +1 -1
- package/dist/sql/SqlClient.js +13 -10
- package/dist/sql/SqlClient.js.map +1 -1
- package/dist/sql/SqlResolver.d.ts +4 -0
- package/dist/sql/SqlResolver.d.ts.map +1 -1
- package/dist/sql/SqlResolver.js +18 -4
- package/dist/sql/SqlResolver.js.map +1 -1
- package/dist/sql/Statement.d.ts +27 -6
- package/dist/sql/Statement.d.ts.map +1 -1
- package/dist/sql/Statement.js +21 -15
- package/dist/sql/Statement.js.map +1 -1
- package/dist/sql/index.js +1 -1
- package/dist/testing/index.d.ts +0 -5
- package/dist/testing/index.d.ts.map +1 -1
- package/dist/testing/index.js +0 -5
- package/dist/testing/index.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/internal/crypto.js +9 -8
- package/dist/workflow/internal/crypto.js.map +1 -1
- package/package.json +3 -1
- package/src/Arbitrary.ts +10 -2
- package/src/BigDecimal.ts +3 -0
- package/src/Channel.ts +64 -29
- package/src/Config.ts +7 -1
- package/src/Context.ts +34 -10
- package/src/Cron.ts +178 -29
- package/src/Data.ts +60 -265
- package/src/Duration.ts +140 -0
- package/src/Effect.ts +915 -86
- package/src/Equal.ts +8 -1
- package/src/Exit.ts +3 -3
- package/src/FileSystem.ts +65 -4
- package/src/Formatter.ts +28 -13
- package/src/Glob.ts +205 -0
- package/src/Hash.ts +4 -1
- package/src/JsonPatch.ts +4 -0
- package/src/JsonSchema.ts +12 -40
- package/src/Match.ts +127 -0
- package/src/Metric.ts +3 -3
- package/src/MutableList.ts +7 -5
- package/src/MutableRef.ts +8 -1
- package/src/PartitionedSemaphore.ts +24 -13
- package/src/Pool.ts +182 -52
- package/src/PubSub.ts +5 -6
- package/src/Random.ts +3 -3
- package/src/RcMap.ts +5 -1
- package/src/Ref.ts +8 -0
- package/src/Schedule.ts +27 -4
- package/src/Schema.ts +1237 -87
- package/src/SchemaAST.ts +20 -20
- package/src/SchemaGetter.ts +27 -11
- package/src/SchemaParser.ts +51 -18
- package/src/SchemaRepresentation.ts +50 -34
- package/src/SchemaTransformation.ts +17 -5
- package/src/ScopedCache.ts +5 -9
- package/src/Semaphore.ts +208 -40
- package/src/Sink.ts +15 -2
- package/src/Stream.ts +48 -22
- package/src/String.ts +3 -0
- package/src/Terminal.ts +19 -1
- package/src/Tracer.ts +15 -1
- package/src/ai/AiError.ts +56 -80
- package/src/ai/Decision.ts +257 -6
- package/src/ai/DecisionModel.ts +171 -28
- package/src/ai/LanguageModel.ts +9 -0
- package/src/ai/McpServer.ts +1283 -299
- package/src/ai/McpTest.ts +380 -0
- package/src/ai/Prompt.ts +65 -0
- package/src/ai/Response.ts +36 -31
- package/src/ai/Tool.ts +65 -10
- package/src/ai/Toolkit.ts +4 -1
- package/src/ai/index.ts +6 -0
- package/src/ai/internal/mcpCore.ts +78 -44
- package/src/ai/internal/mcpProtocol/v2024_11_05.ts +4 -7
- package/src/ai/internal/mcpProtocol/v2025_03_26.ts +4 -7
- package/src/ai/internal/mcpProtocol/v2025_06_18.ts +4 -7
- package/src/ai/internal/mcpProtocol/v2025_11_25.ts +4 -7
- package/src/ai/internal/mcpProtocol/v2026_07_28.ts +15 -10
- package/src/ai/internal/mcpProtocol.ts +29 -0
- package/src/ai/internal/mcpRuntime.ts +9 -5
- package/src/ai/internal/mcpStatefulRuntime.ts +14 -2
- package/src/cli/Argument.ts +21 -0
- package/src/cli/CliError.ts +90 -3
- package/src/cli/CliOutput.ts +300 -55
- package/src/cli/Command.ts +76 -41
- package/src/cli/Completions.ts +51 -0
- package/src/cli/Flag.ts +122 -0
- package/src/cli/GlobalFlag.ts +6 -7
- package/src/cli/HelpDoc.ts +18 -1
- package/src/cli/Param.ts +35 -6
- package/src/cli/Primitive.ts +16 -1
- package/src/cli/Prompt.ts +1 -0
- package/src/cli/TerminalCapabilities.ts +6 -3
- package/src/cli/internal/completions/bash.ts +79 -29
- package/src/cli/internal/help.ts +21 -9
- package/src/cluster/ClusterWorkflowEngine.ts +46 -16
- package/src/cluster/MessageStorage.ts +19 -14
- package/src/cluster/Sharding.ts +176 -47
- package/src/cluster/ShardingConfig.ts +43 -0
- package/src/cluster/SingleRunner.ts +3 -3
- package/src/cluster/Snowflake.ts +3 -7
- package/src/cluster/SqlMessageStorage.ts +49 -17
- package/src/cluster/SqlRunnerStorage.ts +143 -70
- package/src/cluster/internal/entityManager.ts +75 -22
- package/src/crypto/Aead.ts +517 -0
- package/src/crypto/Cipher.ts +326 -0
- package/src/crypto/CryptoError.ts +242 -0
- package/src/crypto/Digest.ts +167 -0
- package/src/crypto/Kdf.ts +315 -0
- package/src/crypto/KeyAgreement.ts +489 -0
- package/src/crypto/KeyFormat.ts +712 -0
- package/src/crypto/KeyWrap.ts +639 -0
- package/src/crypto/Mac.ts +386 -0
- package/src/crypto/SecureRandom.ts +459 -0
- package/src/crypto/Signature.ts +673 -0
- package/src/crypto/WebCrypto.ts +64 -0
- package/src/crypto/index.ts +78 -0
- package/src/crypto/internal/asymmetric.ts +329 -0
- package/src/crypto/internal/chacha.ts +1088 -0
- package/src/crypto/internal/der.ts +110 -0
- package/src/crypto/internal/digest.ts +16 -0
- package/src/crypto/internal/key.ts +235 -0
- package/src/crypto/internal/md5.ts +170 -0
- package/src/crypto/internal/webCrypto.ts +150 -0
- package/src/devtools/DevToolsClient.ts +2 -0
- package/src/encoding/Base64.ts +38 -0
- package/src/encoding/Base64Url.ts +5 -2
- package/src/encoding/Csv.ts +1298 -0
- package/src/encoding/Hex.ts +3 -2
- package/src/encoding/SchemaBinary.ts +40 -4
- package/src/encoding/Sse.ts +4 -3
- package/src/encoding/Toml.ts +117 -35
- package/src/encoding/Yaml.ts +61 -18
- package/src/encoding/index.ts +6 -0
- package/src/eventlog/EventJournal.ts +4 -3
- package/src/eventlog/EventLog.ts +340 -15
- package/src/eventlog/EventLogEncryption.ts +118 -110
- package/src/eventlog/EventLogMessage.ts +273 -1
- package/src/eventlog/EventLogRemote.ts +367 -23
- package/src/eventlog/EventLogServer.ts +23 -8
- package/src/eventlog/EventLogServerEncrypted.ts +1130 -67
- package/src/eventlog/EventLogSessionAuth.ts +56 -70
- package/src/eventlog/EventRow.ts +12 -3
- package/src/eventlog/SqlEventJournal.ts +68 -45
- package/src/eventlog/SqlEventLogServerEncrypted.ts +1244 -136
- package/src/eventlog/SqlEventLogServerUnencrypted.ts +2 -2
- package/src/eventlog/internal/batches.ts +30 -0
- package/src/eventlog/internal/compaction.ts +64 -0
- package/src/eventlog/internal/conflicts.ts +0 -4
- package/src/eventlog/internal/identityRootSecretDerivation.ts +93 -123
- package/src/eventlog/internal/remoteCompaction.ts +92 -0
- package/src/http/Cookies.ts +291 -12
- package/src/http/FetchHttpClient.ts +88 -16
- package/src/http/HttpClient.ts +636 -29
- package/src/http/HttpClientError.ts +35 -1
- package/src/http/HttpClientRequest.ts +21 -10
- package/src/http/HttpClientResponse.ts +3 -2
- package/src/http/HttpMethod.ts +10 -2
- package/src/http/HttpMiddleware.ts +15 -18
- package/src/http/HttpRouter.ts +2 -1
- package/src/http/HttpServerError.ts +2 -2
- package/src/http/HttpServerRequest.ts +101 -30
- package/src/http/HttpServerResponse.ts +3 -2
- package/src/http/HttpStaticServer.ts +51 -22
- package/src/http/HttpTraceContext.ts +7 -4
- package/src/http/MultipartParser/internal/contentType.ts +3 -3
- package/src/http/ProblemDetails.ts +149 -0
- package/src/http/UrlParams.ts +6 -1
- package/src/http/index.ts +6 -0
- package/src/http/internal/compression.ts +4 -5
- package/src/http/internal/decompression.ts +10 -4
- package/src/http/internal/httpBody.ts +10 -2
- package/src/http/internal/urlParams.ts +37 -0
- package/src/http-api/HttpApi.ts +3 -6
- package/src/http-api/HttpApiBuilder.ts +61 -19
- package/src/http-api/HttpApiClient.ts +284 -72
- package/src/http-api/HttpApiEndpoint.ts +135 -35
- package/src/http-api/HttpApiError.ts +250 -0
- package/src/http-api/HttpApiMiddleware.ts +95 -1
- package/src/http-api/HttpApiSchema.ts +236 -52
- package/src/http-api/HttpApiTest.ts +3 -2
- package/src/http-api/OpenApi.ts +20 -17
- package/src/http-api/internal/toCodecHttpProperties.ts +56 -0
- package/src/index.ts +6 -6
- package/src/internal/arbitrary/runner.ts +133 -36
- package/src/internal/core.ts +2 -0
- package/src/internal/effect.ts +58 -34
- package/src/internal/equal.ts +17 -0
- package/src/internal/glob.ts +736 -0
- package/src/internal/jsonSchema.ts +27 -0
- package/src/internal/matcher.ts +18 -1
- package/src/internal/persistence.ts +11 -0
- package/src/internal/rcRef.ts +4 -1
- package/src/internal/schema/compilerRegistry.ts +6 -1
- package/src/internal/schema/content.ts +18 -0
- package/src/internal/schema/fromJsonSchemaDocument.ts +228 -190
- package/src/internal/schema/fromRepresentation.ts +2 -1
- package/src/internal/schema/standardSchema.ts +2 -2
- package/src/internal/schema/toCodeDocument.ts +11 -7
- package/src/internal/schema/toCodec.ts +26 -22
- package/src/internal/schema/toJsonSchemaDocument.ts +189 -167
- package/src/internal/schema/toRepresentation.ts +122 -140
- package/src/internal/sql.ts +14 -0
- package/src/internal/trie.ts +43 -14
- package/src/internal/ulid.ts +44 -0
- package/src/internal/uuid.ts +57 -16
- package/src/internal/version.ts +1 -1
- package/src/observability/Otlp.ts +21 -4
- package/src/observability/OtlpProxy.ts +314 -0
- package/src/observability/OtlpResource.ts +9 -1
- package/src/observability/OtlpTracer.ts +4 -0
- package/src/observability/index.ts +6 -0
- package/src/persistence/CircuitBreaker.ts +1678 -0
- package/src/persistence/KeyValueStore.ts +219 -22
- package/src/persistence/PersistedQueue.ts +128 -59
- package/src/persistence/Persistence.ts +20 -13
- package/src/persistence/Redis.ts +129 -8
- package/src/persistence/index.ts +6 -0
- package/src/process/ChildProcess.ts +285 -264
- package/src/process/ChildProcessSpawner.ts +46 -2
- package/src/process/CommandLine.ts +630 -0
- package/src/process/index.ts +6 -0
- package/src/reactivity/AsyncResult.ts +1 -1
- package/src/reactivity/Atom.ts +5 -5
- package/src/reactivity/AtomRegistry.ts +1 -1
- package/src/rpc/RpcClient.ts +75 -36
- package/src/rpc/RpcMessage.ts +10 -1
- package/src/rpc/RpcSerialization.ts +35 -9
- package/src/rpc/RpcServer.ts +176 -63
- package/src/rpc/RpcTest.ts +3 -0
- package/src/schema/Model.ts +26 -3
- package/src/sql/Migrator.ts +15 -69
- package/src/sql/MigratorFileSystem.ts +71 -0
- package/src/sql/SqlClient.ts +13 -20
- package/src/sql/SqlResolver.ts +23 -9
- package/src/sql/Statement.ts +38 -9
- package/src/sql/index.ts +1 -1
- package/src/testing/index.ts +0 -6
- package/src/workflow/DurableDeferred.ts +23 -6
- package/src/workflow/internal/crypto.ts +15 -11
- package/dist/Crypto.d.ts +0 -244
- package/dist/Crypto.d.ts.map +0 -1
- package/dist/Crypto.js +0 -139
- package/dist/Crypto.js.map +0 -1
- package/dist/testing/TestCrypto.d.ts +0 -73
- package/dist/testing/TestCrypto.d.ts.map +0 -1
- package/dist/testing/TestCrypto.js +0 -87
- package/dist/testing/TestCrypto.js.map +0 -1
- package/src/Crypto.ts +0 -347
- package/src/testing/TestCrypto.ts +0 -94
package/src/Semaphore.ts
CHANGED
|
@@ -13,10 +13,11 @@
|
|
|
13
13
|
*/
|
|
14
14
|
import type * as Effect from "./Effect.ts"
|
|
15
15
|
import type { Fiber } from "./Fiber.ts"
|
|
16
|
-
import { dual } from "./Function.ts"
|
|
16
|
+
import { dual, identity } from "./Function.ts"
|
|
17
17
|
import * as core from "./internal/core.ts"
|
|
18
18
|
import * as internal from "./internal/effect.ts"
|
|
19
19
|
import type * as Option from "./Option.ts"
|
|
20
|
+
import type * as Scope from "./Scope.ts"
|
|
20
21
|
|
|
21
22
|
/**
|
|
22
23
|
* A counting semaphore that coordinates concurrent access with permits.
|
|
@@ -134,6 +135,24 @@ export interface Semaphore {
|
|
|
134
135
|
*/
|
|
135
136
|
take(this: Semaphore, permits: number): Effect.Effect<number>
|
|
136
137
|
|
|
138
|
+
/**
|
|
139
|
+
* Acquires the specified number of permits for the lifetime of the current
|
|
140
|
+
* scope, suspending the task if they are not yet available.
|
|
141
|
+
*
|
|
142
|
+
* **When to use**
|
|
143
|
+
*
|
|
144
|
+
* Use to hold permits until a scope closes, such as while a scoped resource
|
|
145
|
+
* is leased.
|
|
146
|
+
*
|
|
147
|
+
* **Details**
|
|
148
|
+
*
|
|
149
|
+
* Waiting can be interrupted unless the caller is uninterruptible. The
|
|
150
|
+
* permits are taken and their release is added to the scope in one
|
|
151
|
+
* uninterruptible step, so acquired permits are always returned when the
|
|
152
|
+
* scope closes.
|
|
153
|
+
*/
|
|
154
|
+
takeScoped(this: Semaphore, permits: number): Effect.Effect<void, never, Scope.Scope>
|
|
155
|
+
|
|
137
156
|
/**
|
|
138
157
|
* Acquires the specified number of permits only if they are immediately
|
|
139
158
|
* available.
|
|
@@ -214,26 +233,58 @@ export interface Semaphore {
|
|
|
214
233
|
*/
|
|
215
234
|
export const makeUnsafe = (permits: number): Semaphore => new SemaphoreImpl(permits)
|
|
216
235
|
|
|
217
|
-
|
|
236
|
+
interface Waiter {
|
|
237
|
+
readonly permits: number
|
|
238
|
+
resume: ((effect: Effect.Effect<void>) => void) | undefined
|
|
239
|
+
}
|
|
240
|
+
|
|
241
|
+
// The first queued request that fits in the free permits. Larger requests
|
|
242
|
+
// ahead of it keep their place but are overtaken, as documented on `take`.
|
|
243
|
+
const firstAvailableWaiter = (self: SemaphoreImpl): Waiter | undefined => {
|
|
244
|
+
for (const waiter of self.waiters) {
|
|
245
|
+
if (waiter.permits <= self.free) return waiter
|
|
246
|
+
}
|
|
247
|
+
}
|
|
248
|
+
|
|
249
|
+
const takePermits = <A, E, R>(
|
|
218
250
|
self: SemaphoreImpl,
|
|
219
251
|
n: number,
|
|
220
|
-
|
|
252
|
+
onAcquire: () => Effect.Effect<A, E, R>,
|
|
253
|
+
restore: <AX, EX, RX>(effect: Effect.Effect<AX, EX, RX>) => Effect.Effect<AX, EX, RX> = identity
|
|
221
254
|
): Effect.Effect<A, E, R> =>
|
|
222
|
-
|
|
223
|
-
if (self.free >= n
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
255
|
+
core.withFiber((fiber) => {
|
|
256
|
+
if (self.free >= n && firstAvailableWaiter(self) === undefined) {
|
|
257
|
+
self.taken += n
|
|
258
|
+
return onAcquire()
|
|
259
|
+
}
|
|
260
|
+
// A wake does not reserve permits: the waiter keeps its queue entry until
|
|
261
|
+
// it acquires or is interrupted, and re-checks eligibility when it runs.
|
|
262
|
+
const waiter: Waiter = { permits: n, resume: undefined }
|
|
263
|
+
const remove = () => {
|
|
264
|
+
if (self.waiters.delete(waiter)) self.releaseUnsafe(fiber, 0)
|
|
265
|
+
return undefined
|
|
228
266
|
}
|
|
229
|
-
self.waiters.add(
|
|
230
|
-
|
|
231
|
-
|
|
267
|
+
self.waiters.add(waiter)
|
|
268
|
+
internal.onExitUnsafe(fiber, remove)
|
|
269
|
+
const wait = restore(internal.callback<void>((resume) => {
|
|
270
|
+
// The fiber may have yielded since the last check, missing a wake.
|
|
271
|
+
if (firstAvailableWaiter(self) === waiter) {
|
|
272
|
+
resume(internal.void)
|
|
273
|
+
} else {
|
|
274
|
+
waiter.resume = resume
|
|
275
|
+
}
|
|
276
|
+
}))
|
|
277
|
+
const loop: Effect.Effect<A, E, R> = internal.flatMap(wait, () => {
|
|
278
|
+
if (firstAvailableWaiter(self) !== waiter) return loop
|
|
279
|
+
self.taken += n
|
|
280
|
+
remove()
|
|
281
|
+
return onAcquire()
|
|
232
282
|
})
|
|
283
|
+
return loop
|
|
233
284
|
})
|
|
234
285
|
|
|
235
286
|
class SemaphoreImpl implements Semaphore {
|
|
236
|
-
public waiters = new Set<
|
|
287
|
+
public waiters = new Set<Waiter>()
|
|
237
288
|
public taken = 0
|
|
238
289
|
public permits: number
|
|
239
290
|
|
|
@@ -246,14 +297,16 @@ class SemaphoreImpl implements Semaphore {
|
|
|
246
297
|
}
|
|
247
298
|
|
|
248
299
|
take(n: number): Effect.Effect<number> {
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
300
|
+
return takePermits(this, n, () => internal.succeed(n))
|
|
301
|
+
}
|
|
302
|
+
|
|
303
|
+
takeScoped(n: number): Effect.Effect<void, never, Scope.Scope> {
|
|
304
|
+
return internal.uninterruptibleMask((restore) =>
|
|
305
|
+
internal.flatMap(
|
|
306
|
+
internal.scope,
|
|
307
|
+
(scope) => takePermits(this, n, () => internal.scopeAddFinalizer(scope, this.release(n)), restore)
|
|
308
|
+
)
|
|
309
|
+
)
|
|
257
310
|
}
|
|
258
311
|
|
|
259
312
|
takeIfAvailable(n: number): Effect.Effect<boolean> {
|
|
@@ -268,9 +321,17 @@ class SemaphoreImpl implements Semaphore {
|
|
|
268
321
|
this.taken -= n
|
|
269
322
|
if (this.waiters.size > 0) {
|
|
270
323
|
fiber.currentDispatcher.scheduleTask(() => {
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
324
|
+
// Wake every queued request that fits in the free permits. Waiters
|
|
325
|
+
// that were already woken still count against the budget, since they
|
|
326
|
+
// keep their place until they acquire. Resumed fibers run inline and
|
|
327
|
+
// can add or remove waiters, so iterate over a snapshot.
|
|
328
|
+
let remaining = this.free
|
|
329
|
+
for (const waiter of Array.from(this.waiters)) {
|
|
330
|
+
if (!this.waiters.has(waiter) || waiter.permits > remaining) continue
|
|
331
|
+
remaining -= waiter.permits
|
|
332
|
+
const resume = waiter.resume
|
|
333
|
+
waiter.resume = undefined
|
|
334
|
+
resume?.(internal.void)
|
|
274
335
|
}
|
|
275
336
|
}, 0)
|
|
276
337
|
}
|
|
@@ -296,24 +357,18 @@ class SemaphoreImpl implements Semaphore {
|
|
|
296
357
|
|
|
297
358
|
withPermits(n: number) {
|
|
298
359
|
return <A, E, R>(self: Effect.Effect<A, E, R>) =>
|
|
299
|
-
internal.uninterruptibleMask((restore) =>
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
this.taken += n
|
|
306
|
-
return internal.onExitPrimitive(
|
|
307
|
-
restore(self),
|
|
308
|
-
() => {
|
|
360
|
+
internal.uninterruptibleMask((restore) =>
|
|
361
|
+
takePermits(
|
|
362
|
+
this,
|
|
363
|
+
n,
|
|
364
|
+
() =>
|
|
365
|
+
internal.onExitPrimitive(restore(self), () => {
|
|
309
366
|
this.releaseUnsafe(internal.getCurrentFiber()!, n)
|
|
310
367
|
return undefined
|
|
311
|
-
},
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
return acquire
|
|
316
|
-
})
|
|
368
|
+
}, true),
|
|
369
|
+
restore
|
|
370
|
+
)
|
|
371
|
+
)
|
|
317
372
|
}
|
|
318
373
|
|
|
319
374
|
readonly withPermit = this.withPermits(1)
|
|
@@ -720,6 +775,119 @@ export const take: {
|
|
|
720
775
|
(self: Semaphore, permits: number): Effect.Effect<number>
|
|
721
776
|
} = dual(2, (self: Semaphore, permits: number) => self.take(permits))
|
|
722
777
|
|
|
778
|
+
/**
|
|
779
|
+
* Acquires the specified number of permits until the current scope closes.
|
|
780
|
+
*
|
|
781
|
+
* **When to use**
|
|
782
|
+
*
|
|
783
|
+
* Use when permits should be held for the lifetime of a scope, such as while a
|
|
784
|
+
* scoped resource is leased.
|
|
785
|
+
*
|
|
786
|
+
* **Details**
|
|
787
|
+
*
|
|
788
|
+
* The effect waits until enough permits are available. The wait can be
|
|
789
|
+
* interrupted unless the caller is uninterruptible. The permits are taken and
|
|
790
|
+
* their release is added to the scope in one uninterruptible step, so acquired
|
|
791
|
+
* permits are always returned when the scope closes.
|
|
792
|
+
*
|
|
793
|
+
* **Example** (Holding a permit for a scope)
|
|
794
|
+
*
|
|
795
|
+
* ```ts import.meta.vitest
|
|
796
|
+
* import { Effect, Semaphore } from "effect"
|
|
797
|
+
*
|
|
798
|
+
* const program = Effect.gen(function*() {
|
|
799
|
+
* const semaphore = yield* Semaphore.make(1)
|
|
800
|
+
* yield* Effect.scoped(Semaphore.takeScoped(semaphore, 1))
|
|
801
|
+
* return yield* Semaphore.takeIfAvailable(semaphore, 1)
|
|
802
|
+
* })
|
|
803
|
+
*
|
|
804
|
+
* Effect.runSync(program) // => true
|
|
805
|
+
* ```
|
|
806
|
+
*
|
|
807
|
+
* @see {@link take} for acquiring permits that are released manually
|
|
808
|
+
* @see {@link withPermits} for holding permits while one effect runs
|
|
809
|
+
*
|
|
810
|
+
* @stability stable
|
|
811
|
+
* @category combinators
|
|
812
|
+
* @since 4.0.7
|
|
813
|
+
*/
|
|
814
|
+
export const takeScoped: {
|
|
815
|
+
/**
|
|
816
|
+
* Acquires the specified number of permits until the current scope closes.
|
|
817
|
+
*
|
|
818
|
+
* **When to use**
|
|
819
|
+
*
|
|
820
|
+
* Use when permits should be held for the lifetime of a scope, such as while a
|
|
821
|
+
* scoped resource is leased.
|
|
822
|
+
*
|
|
823
|
+
* **Details**
|
|
824
|
+
*
|
|
825
|
+
* The effect waits until enough permits are available. The wait can be
|
|
826
|
+
* interrupted unless the caller is uninterruptible. The permits are taken and
|
|
827
|
+
* their release is added to the scope in one uninterruptible step, so acquired
|
|
828
|
+
* permits are always returned when the scope closes.
|
|
829
|
+
*
|
|
830
|
+
* **Example** (Holding a permit for a scope)
|
|
831
|
+
*
|
|
832
|
+
* ```ts import.meta.vitest
|
|
833
|
+
* import { Effect, Semaphore } from "effect"
|
|
834
|
+
*
|
|
835
|
+
* const program = Effect.gen(function*() {
|
|
836
|
+
* const semaphore = yield* Semaphore.make(1)
|
|
837
|
+
* yield* Effect.scoped(Semaphore.takeScoped(semaphore, 1))
|
|
838
|
+
* return yield* Semaphore.takeIfAvailable(semaphore, 1)
|
|
839
|
+
* })
|
|
840
|
+
*
|
|
841
|
+
* Effect.runSync(program) // => true
|
|
842
|
+
* ```
|
|
843
|
+
*
|
|
844
|
+
* @see {@link take} for acquiring permits that are released manually
|
|
845
|
+
* @see {@link withPermits} for holding permits while one effect runs
|
|
846
|
+
*
|
|
847
|
+
* @stability stable
|
|
848
|
+
* @category combinators
|
|
849
|
+
* @since 4.0.7
|
|
850
|
+
*/
|
|
851
|
+
(permits: number): (self: Semaphore) => Effect.Effect<void, never, Scope.Scope>
|
|
852
|
+
/**
|
|
853
|
+
* Acquires the specified number of permits until the current scope closes.
|
|
854
|
+
*
|
|
855
|
+
* **When to use**
|
|
856
|
+
*
|
|
857
|
+
* Use when permits should be held for the lifetime of a scope, such as while a
|
|
858
|
+
* scoped resource is leased.
|
|
859
|
+
*
|
|
860
|
+
* **Details**
|
|
861
|
+
*
|
|
862
|
+
* The effect waits until enough permits are available. The wait can be
|
|
863
|
+
* interrupted unless the caller is uninterruptible. The permits are taken and
|
|
864
|
+
* their release is added to the scope in one uninterruptible step, so acquired
|
|
865
|
+
* permits are always returned when the scope closes.
|
|
866
|
+
*
|
|
867
|
+
* **Example** (Holding a permit for a scope)
|
|
868
|
+
*
|
|
869
|
+
* ```ts import.meta.vitest
|
|
870
|
+
* import { Effect, Semaphore } from "effect"
|
|
871
|
+
*
|
|
872
|
+
* const program = Effect.gen(function*() {
|
|
873
|
+
* const semaphore = yield* Semaphore.make(1)
|
|
874
|
+
* yield* Effect.scoped(Semaphore.takeScoped(semaphore, 1))
|
|
875
|
+
* return yield* Semaphore.takeIfAvailable(semaphore, 1)
|
|
876
|
+
* })
|
|
877
|
+
*
|
|
878
|
+
* Effect.runSync(program) // => true
|
|
879
|
+
* ```
|
|
880
|
+
*
|
|
881
|
+
* @see {@link take} for acquiring permits that are released manually
|
|
882
|
+
* @see {@link withPermits} for holding permits while one effect runs
|
|
883
|
+
*
|
|
884
|
+
* @stability stable
|
|
885
|
+
* @category combinators
|
|
886
|
+
* @since 4.0.7
|
|
887
|
+
*/
|
|
888
|
+
(self: Semaphore, permits: number): Effect.Effect<void, never, Scope.Scope>
|
|
889
|
+
} = dual(2, (self: Semaphore, permits: number) => self.takeScoped(permits))
|
|
890
|
+
|
|
723
891
|
/**
|
|
724
892
|
* Acquires the specified number of permits only if they are immediately
|
|
725
893
|
* available.
|
package/src/Sink.ts
CHANGED
|
@@ -2687,7 +2687,12 @@ export const catchCause: {
|
|
|
2687
2687
|
): Sink<A | A2, In, L, E2, R | R2> =>
|
|
2688
2688
|
transformEffect(
|
|
2689
2689
|
self,
|
|
2690
|
-
Effect.catchCause((cause) =>
|
|
2690
|
+
Effect.catchCause((cause) =>
|
|
2691
|
+
// Upstream failures are not sink errors, so they bypass the handler.
|
|
2692
|
+
Channel.hasUpstreamFailure(cause)
|
|
2693
|
+
? Effect.failCause(cause as Cause.Cause<never>)
|
|
2694
|
+
: Effect.map(f(cause), (a2) => [a2 as A | A2] as const)
|
|
2695
|
+
)
|
|
2691
2696
|
))
|
|
2692
2697
|
|
|
2693
2698
|
const catch_: {
|
|
@@ -2774,7 +2779,15 @@ export const onExit: {
|
|
|
2774
2779
|
): Sink<A, In, L, E | E2, R | R2> =>
|
|
2775
2780
|
transformEffect(
|
|
2776
2781
|
self,
|
|
2777
|
-
Effect.onExit((exit) =>
|
|
2782
|
+
Effect.onExit((exit) =>
|
|
2783
|
+
// Upstream failures stop the sink like an interruption; they are not
|
|
2784
|
+
// sink errors.
|
|
2785
|
+
f(
|
|
2786
|
+
Exit.isFailure(exit) && Channel.hasUpstreamFailure(exit.cause)
|
|
2787
|
+
? Exit.interrupt()
|
|
2788
|
+
: Exit.map(exit, ([a]) => a)
|
|
2789
|
+
)
|
|
2790
|
+
)
|
|
2778
2791
|
))
|
|
2779
2792
|
|
|
2780
2793
|
/**
|
package/src/Stream.ts
CHANGED
|
@@ -7295,17 +7295,12 @@ export const peel: {
|
|
|
7295
7295
|
): Effect.fn.Return<[A2, Stream<A, E, never>], E | E2, Scope.Scope | R | R2> {
|
|
7296
7296
|
let cause: Cause.Cause<E | Cause.Done<void>> | undefined = undefined
|
|
7297
7297
|
const originalPull = yield* Channel.toPull(self.channel)
|
|
7298
|
-
const pull
|
|
7299
|
-
Arr.NonEmptyReadonlyArray<A>,
|
|
7300
|
-
E
|
|
7301
|
-
> = Effect.catchCause(originalPull, (cause_) => {
|
|
7298
|
+
const pull = Effect.catchCause(originalPull, (cause_) => {
|
|
7302
7299
|
cause = cause_
|
|
7303
7300
|
return Effect.failCause(cause_)
|
|
7304
7301
|
})
|
|
7305
7302
|
|
|
7306
|
-
const [result, leftover] = yield* Effect.scopedWith((scope) =>
|
|
7307
|
-
sink.transform(pull as Pull.Pull<Arr.NonEmptyReadonlyArray<A>>, scope)
|
|
7308
|
-
)
|
|
7303
|
+
const [result, leftover] = yield* Effect.scopedWith((scope) => runSink(sink, pull, scope))
|
|
7309
7304
|
let stream: Stream<A, E> = cause ? empty : fromPull(Effect.succeed(originalPull))
|
|
7310
7305
|
if (leftover) {
|
|
7311
7306
|
stream = concat(fromArray(leftover), stream)
|
|
@@ -10252,6 +10247,9 @@ export const orDie = <A, E, R>(self: Stream<A, E, R>): Stream<A, never, R> => fr
|
|
|
10252
10247
|
*
|
|
10253
10248
|
* The `log` option controls whether the failure is logged before the stream
|
|
10254
10249
|
* terminates.
|
|
10250
|
+
* Set `log: "Unhandled"` to read `References.UnhandledLogLevel` when the
|
|
10251
|
+
* failure occurs; `undefined` disables logging. Minimum log level filtering
|
|
10252
|
+
* still applies.
|
|
10255
10253
|
*
|
|
10256
10254
|
* **Gotchas**
|
|
10257
10255
|
*
|
|
@@ -10300,12 +10298,12 @@ export const orDie = <A, E, R>(self: Stream<A, E, R>): Stream<A, never, R> => fr
|
|
|
10300
10298
|
*/
|
|
10301
10299
|
export const ignore: <
|
|
10302
10300
|
Arg extends Stream<any, any, any> | {
|
|
10303
|
-
readonly log?: boolean | Severity | undefined
|
|
10301
|
+
readonly log?: boolean | Severity | "Unhandled" | undefined
|
|
10304
10302
|
} | undefined
|
|
10305
10303
|
>(
|
|
10306
10304
|
selfOrOptions: Arg,
|
|
10307
10305
|
options?: {
|
|
10308
|
-
readonly log?: boolean | Severity | undefined
|
|
10306
|
+
readonly log?: boolean | Severity | "Unhandled" | undefined
|
|
10309
10307
|
} | undefined
|
|
10310
10308
|
) => [Arg] extends [Stream<infer A, infer _E, infer R>] ? Stream<A, never, R>
|
|
10311
10309
|
: <A, E, R>(self: Stream<A, E, R>) => Stream<A, never, R> = dual(
|
|
@@ -10313,7 +10311,7 @@ export const ignore: <
|
|
|
10313
10311
|
<A, E, R>(
|
|
10314
10312
|
self: Stream<A, E, R>,
|
|
10315
10313
|
options?: {
|
|
10316
|
-
readonly log?: boolean | Severity | undefined
|
|
10314
|
+
readonly log?: boolean | Severity | "Unhandled" | undefined
|
|
10317
10315
|
} | undefined
|
|
10318
10316
|
): Stream<A, never, R> => fromChannel(Channel.ignore(self.channel, options))
|
|
10319
10317
|
)
|
|
@@ -10326,6 +10324,12 @@ export const ignore: <
|
|
|
10326
10324
|
* Use when you need to silently suppress a stream's entire failure cause,
|
|
10327
10325
|
* including both typed errors and defects, rather than propagate it downstream.
|
|
10328
10326
|
*
|
|
10327
|
+
* **Details**
|
|
10328
|
+
*
|
|
10329
|
+
* Set `log: "Unhandled"` to read `References.UnhandledLogLevel` when the
|
|
10330
|
+
* failure occurs; `undefined` disables logging. Minimum log level filtering
|
|
10331
|
+
* still applies.
|
|
10332
|
+
*
|
|
10329
10333
|
* **Example** (Ignoring stream failure causes)
|
|
10330
10334
|
*
|
|
10331
10335
|
* ```ts import.meta.vitest
|
|
@@ -10350,19 +10354,19 @@ export const ignore: <
|
|
|
10350
10354
|
*/
|
|
10351
10355
|
export const ignoreCause: <
|
|
10352
10356
|
Arg extends Stream<any, any, any> | {
|
|
10353
|
-
readonly log?: boolean | Severity | undefined
|
|
10357
|
+
readonly log?: boolean | Severity | "Unhandled" | undefined
|
|
10354
10358
|
} | undefined
|
|
10355
10359
|
>(
|
|
10356
10360
|
streamOrOptions: Arg,
|
|
10357
10361
|
options?: {
|
|
10358
|
-
readonly log?: boolean | Severity | undefined
|
|
10362
|
+
readonly log?: boolean | Severity | "Unhandled" | undefined
|
|
10359
10363
|
} | undefined
|
|
10360
10364
|
) => [Arg] extends [Stream<infer A, infer _E, infer R>] ? Stream<A, never, R>
|
|
10361
10365
|
: <A, E, R>(self: Stream<A, E, R>) => Stream<A, never, R> = dual(
|
|
10362
10366
|
(args) => isStream(args[0]),
|
|
10363
10367
|
<A, E, R>(
|
|
10364
10368
|
self: Stream<A, E, R>,
|
|
10365
|
-
options?: { readonly log?: boolean | Severity | undefined } | undefined
|
|
10369
|
+
options?: { readonly log?: boolean | Severity | "Unhandled" | undefined } | undefined
|
|
10366
10370
|
): Stream<A, never, R> => fromChannel(Channel.ignoreCause(self.channel, options))
|
|
10367
10371
|
)
|
|
10368
10372
|
|
|
@@ -11098,7 +11102,7 @@ export const takeRight: {
|
|
|
11098
11102
|
const count = Count.normalize(n)
|
|
11099
11103
|
if (count === 0) return empty
|
|
11100
11104
|
return mapAccumArray(self, MutableList.make<A>, (list, arr) => {
|
|
11101
|
-
MutableList.
|
|
11105
|
+
MutableList.appendAllUnsafe(list, arr)
|
|
11102
11106
|
if (list.length > count) {
|
|
11103
11107
|
MutableList.takeNVoid(list, list.length - count)
|
|
11104
11108
|
}
|
|
@@ -12528,10 +12532,10 @@ export const rechunk: {
|
|
|
12528
12532
|
let chunk = Arr.empty<A>() as Arr.NonEmptyArray<A>
|
|
12529
12533
|
let index = 0
|
|
12530
12534
|
let current: Arr.NonEmptyReadonlyArray<A> | undefined
|
|
12531
|
-
let
|
|
12535
|
+
let cause: Cause.Cause<E | Cause.Done> | undefined
|
|
12532
12536
|
|
|
12533
12537
|
return Effect.suspend(function loop(): Pull.Pull<Arr.NonEmptyReadonlyArray<A>, E, void, R> {
|
|
12534
|
-
if (
|
|
12538
|
+
if (cause) return Effect.failCause(cause)
|
|
12535
12539
|
else if (current === undefined) {
|
|
12536
12540
|
return Effect.flatMap(pull, (arr) => {
|
|
12537
12541
|
if (chunk.length === 0 && arr.length === target) {
|
|
@@ -12558,10 +12562,10 @@ export const rechunk: {
|
|
|
12558
12562
|
current = undefined
|
|
12559
12563
|
return loop()
|
|
12560
12564
|
}).pipe(
|
|
12561
|
-
|
|
12562
|
-
if (chunk.length === 0) return
|
|
12565
|
+
Effect.catchCause((cause_) => {
|
|
12566
|
+
if (chunk.length === 0) return Effect.failCause(cause_)
|
|
12563
12567
|
const result = chunk
|
|
12564
|
-
|
|
12568
|
+
cause = cause_
|
|
12565
12569
|
chunk = [] as any
|
|
12566
12570
|
return Effect.succeed(result)
|
|
12567
12571
|
})
|
|
@@ -15122,7 +15126,12 @@ const groupByImpl = <A, E, R, K, V, E2, R2>(
|
|
|
15122
15126
|
body: constant(Effect.flatMap(pull, (arr) => f(arr, queues, queueMap))),
|
|
15123
15127
|
step: constVoid
|
|
15124
15128
|
}).pipe(
|
|
15125
|
-
Effect.catchCause((cause) =>
|
|
15129
|
+
Effect.catchCause((cause) => {
|
|
15130
|
+
for (const [, queue] of queueMap) {
|
|
15131
|
+
Queue.endUnsafe(queue)
|
|
15132
|
+
}
|
|
15133
|
+
return Queue.failCause(out, cause)
|
|
15134
|
+
}),
|
|
15126
15135
|
Effect.forkIn(scope)
|
|
15127
15136
|
)
|
|
15128
15137
|
|
|
@@ -15659,7 +15668,7 @@ export const aggregateWithin: {
|
|
|
15659
15668
|
return buffer.state.exit as Exit.Exit<never, Cause.Done<void> | E>
|
|
15660
15669
|
}
|
|
15661
15670
|
hasInput.closeUnsafe()
|
|
15662
|
-
const pull = emit(Effect.suspend(() => sink
|
|
15671
|
+
const pull = emit(Effect.suspend(() => runSink(sink, sinkUpstream, scope)))
|
|
15663
15672
|
return buffer.state._tag === "Open" ? Effect.raceFirst(pull, stepToBuffer) : pull
|
|
15664
15673
|
})
|
|
15665
15674
|
}))))
|
|
@@ -19327,11 +19336,28 @@ export const run: {
|
|
|
19327
19336
|
): Effect.Effect<A2, E | E2, R | R2> =>
|
|
19328
19337
|
Effect.scopedWith((scope) =>
|
|
19329
19338
|
Channel.toPullScoped(self.channel, scope).pipe(
|
|
19330
|
-
Effect.flatMap((upstream) => sink
|
|
19339
|
+
Effect.flatMap((upstream) => runSink(sink, upstream, scope)),
|
|
19331
19340
|
Effect.map(([a]) => a)
|
|
19332
19341
|
)
|
|
19333
19342
|
))
|
|
19334
19343
|
|
|
19344
|
+
/**
|
|
19345
|
+
* Runs `sink` against `upstream`. Upstream failures bypass the sink's error
|
|
19346
|
+
* handlers and are restored once the sink has exited.
|
|
19347
|
+
*/
|
|
19348
|
+
const runSink = <A, E, R, A2, L, E2, R2>(
|
|
19349
|
+
sink: Sink.Sink<A2, A, L, E2, R2>,
|
|
19350
|
+
upstream: Pull.Pull<Arr.NonEmptyReadonlyArray<A>, E, void, R>,
|
|
19351
|
+
scope: Scope.Scope
|
|
19352
|
+
): Effect.Effect<Sink.End<A2, L>, E | E2, R | R2> =>
|
|
19353
|
+
Channel.restoreUpstreamFailure<Sink.End<A2, L>, E | E2, R2>(
|
|
19354
|
+
// The upstream pull runs in this fiber, which already provides `R`.
|
|
19355
|
+
sink.transform(
|
|
19356
|
+
Channel.upstreamFailureToDefect(upstream) as Pull.Pull<Arr.NonEmptyReadonlyArray<A>, never, void>,
|
|
19357
|
+
scope
|
|
19358
|
+
)
|
|
19359
|
+
)
|
|
19360
|
+
|
|
19335
19361
|
/**
|
|
19336
19362
|
* Runs the stream and collects all elements into an array.
|
|
19337
19363
|
*
|
package/src/String.ts
CHANGED
|
@@ -1860,6 +1860,9 @@ export const constantCase: (self: string) => string = noCase({
|
|
|
1860
1860
|
* Unlike {@link constantCase}, digit-letter boundaries are not split. For
|
|
1861
1861
|
* example, `"api-v2 xml"` becomes `"API_V2_XML"`.
|
|
1862
1862
|
*
|
|
1863
|
+
* `configCase` is not idempotent: `"field2value"` becomes `"FIELD2VALUE"`, and
|
|
1864
|
+
* applying it again gives `"FIELD2_VALUE"`.
|
|
1865
|
+
*
|
|
1863
1866
|
* @see {@link constantCase} for standard uppercase underscore-separated output
|
|
1864
1867
|
* @stability stable
|
|
1865
1868
|
* @category transforming
|
package/src/Terminal.ts
CHANGED
|
@@ -42,6 +42,12 @@ export interface Terminal {
|
|
|
42
42
|
*/
|
|
43
43
|
|
|
44
44
|
readonly rows: Effect.Effect<number>
|
|
45
|
+
/**
|
|
46
|
+
* Subscribes to terminal size changes. The queue starts with the current
|
|
47
|
+
* dimensions, receives each resize until the scope closes, and keeps only the
|
|
48
|
+
* latest size.
|
|
49
|
+
*/
|
|
50
|
+
readonly size: Effect.Effect<Queue.Dequeue<Size, Cause.Done>, never, Scope.Scope>
|
|
45
51
|
/**
|
|
46
52
|
* Reads input events from the default standard input.
|
|
47
53
|
*/
|
|
@@ -56,6 +62,18 @@ export interface Terminal {
|
|
|
56
62
|
readonly display: (text: string) => Effect.Effect<void, PlatformError>
|
|
57
63
|
}
|
|
58
64
|
|
|
65
|
+
/**
|
|
66
|
+
* Terminal dimensions measured in character cells.
|
|
67
|
+
*
|
|
68
|
+
* @stability unstable
|
|
69
|
+
* @category models
|
|
70
|
+
* @since 4.0.0
|
|
71
|
+
*/
|
|
72
|
+
export interface Size {
|
|
73
|
+
readonly columns: number
|
|
74
|
+
readonly rows: number
|
|
75
|
+
}
|
|
76
|
+
|
|
59
77
|
/**
|
|
60
78
|
* Keyboard key metadata for terminal input, including the key name and
|
|
61
79
|
* modifier state.
|
|
@@ -183,7 +201,7 @@ export const Terminal: Context.Service<Terminal, Terminal> = Context.Service("ef
|
|
|
183
201
|
*
|
|
184
202
|
* **Details**
|
|
185
203
|
*
|
|
186
|
-
* The implementation object supplies `columns`, `rows`, `readInput`,
|
|
204
|
+
* The implementation object supplies `columns`, `rows`, `size`, `readInput`,
|
|
187
205
|
* `readLine`, and `display`; `make` attaches the `Terminal` service marker so
|
|
188
206
|
* the result can be provided through the `Terminal` context service.
|
|
189
207
|
*
|
package/src/Tracer.ts
CHANGED
|
@@ -326,6 +326,15 @@ export type SpanKind = "internal" | "server" | "client" | "producer" | "consumer
|
|
|
326
326
|
* annotations, attributes, links, sampling and kind information, lifecycle
|
|
327
327
|
* status, and methods to end the span or add attributes, events, and links.
|
|
328
328
|
*
|
|
329
|
+
* **Details**
|
|
330
|
+
*
|
|
331
|
+
* Once a span has `Ended` status, implementations should ignore further calls
|
|
332
|
+
* to `end`, `attribute`, `event`, and `addLinks`, following the OpenTelemetry
|
|
333
|
+
* tracing specification. An ended span can still be read and used as a parent.
|
|
334
|
+
* The built-in span implementations follow this rule, and Effect does not
|
|
335
|
+
* record logs or `annotateCurrentSpan` attributes on an ended span, such as
|
|
336
|
+
* when a fiber outlives the span it was forked in.
|
|
337
|
+
*
|
|
329
338
|
* **Example** (Working with spans)
|
|
330
339
|
*
|
|
331
340
|
* ```ts import.meta.vitest
|
|
@@ -684,7 +693,8 @@ export const nativeTracer: Tracer = make({
|
|
|
684
693
|
* identifiers, the attribute map, and the event list are created lazily on
|
|
685
694
|
* first access, so spans that are never inspected allocate as little as
|
|
686
695
|
* possible. Attributes, events, links, and status are mutated through `Span`
|
|
687
|
-
* methods.
|
|
696
|
+
* methods. Once the span has ended, those methods do nothing, so a second `end`
|
|
697
|
+
* keeps the original end time and exit.
|
|
688
698
|
*
|
|
689
699
|
* @see {@link Span} for the interface implemented by native spans
|
|
690
700
|
*
|
|
@@ -748,6 +758,7 @@ export class NativeSpan implements Span {
|
|
|
748
758
|
}
|
|
749
759
|
|
|
750
760
|
end(endTime: bigint, exit: Exit.Exit<unknown, unknown>): void {
|
|
761
|
+
if (this.status._tag === "Ended") return
|
|
751
762
|
this.status = {
|
|
752
763
|
_tag: "Ended",
|
|
753
764
|
endTime,
|
|
@@ -757,14 +768,17 @@ export class NativeSpan implements Span {
|
|
|
757
768
|
}
|
|
758
769
|
|
|
759
770
|
attribute(key: string, value: unknown): void {
|
|
771
|
+
if (this.status._tag === "Ended") return
|
|
760
772
|
this.attributes.set(key, value)
|
|
761
773
|
}
|
|
762
774
|
|
|
763
775
|
event(name: string, startTime: bigint, attributes?: Record<string, unknown>): void {
|
|
776
|
+
if (this.status._tag === "Ended") return
|
|
764
777
|
this.events.push([name, startTime, attributes ?? {}])
|
|
765
778
|
}
|
|
766
779
|
|
|
767
780
|
addLinks(links: ReadonlyArray<SpanLink>): void {
|
|
781
|
+
if (this.status._tag === "Ended") return
|
|
768
782
|
// oxlint-disable-next-line no-restricted-syntax
|
|
769
783
|
this.links.push(...links)
|
|
770
784
|
}
|