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/rpc/RpcClient.ts
CHANGED
|
@@ -107,6 +107,14 @@ export declare namespace RpcClient {
|
|
|
107
107
|
{
|
|
108
108
|
readonly headers?: Headers.Input | undefined
|
|
109
109
|
readonly context?: Context.Context<never> | undefined
|
|
110
|
+
/**
|
|
111
|
+
* Completes once the server acknowledges the call as its handler starts,
|
|
112
|
+
* after the middleware has run, instead of waiting for the result. The
|
|
113
|
+
* handler's result and error are not returned, but transport errors,
|
|
114
|
+
* middleware errors and failures before the handler starts still fail the
|
|
115
|
+
* call. Over HTTP and workers the call completes after the handler has
|
|
116
|
+
* finished.
|
|
117
|
+
*/
|
|
110
118
|
readonly discard?: Discard | undefined
|
|
111
119
|
}
|
|
112
120
|
) => Current extends Rpc.Rpc<
|
|
@@ -174,6 +182,14 @@ export declare namespace RpcClient {
|
|
|
174
182
|
{
|
|
175
183
|
readonly headers?: Headers.Input | undefined
|
|
176
184
|
readonly context?: Context.Context<never> | undefined
|
|
185
|
+
/**
|
|
186
|
+
* Completes once the server acknowledges the call as its handler starts,
|
|
187
|
+
* after the middleware has run, instead of waiting for the result. The
|
|
188
|
+
* handler's result and error are not returned, but transport errors,
|
|
189
|
+
* middleware errors and failures before the handler starts still fail the
|
|
190
|
+
* call. Over HTTP and workers the call completes after the handler has
|
|
191
|
+
* finished.
|
|
192
|
+
*/
|
|
177
193
|
readonly discard?: Discard | undefined
|
|
178
194
|
}
|
|
179
195
|
) => Rpcs extends Rpc.Rpc<
|
|
@@ -242,7 +258,6 @@ export const makeNoSerialization: <Rpcs extends Rpc.Any, E, const Flatten extend
|
|
|
242
258
|
options: {
|
|
243
259
|
readonly message: FromClient<Rpcs>
|
|
244
260
|
readonly context: Context.Context<never>
|
|
245
|
-
readonly discard: boolean
|
|
246
261
|
}
|
|
247
262
|
) => Effect.Effect<void, E>
|
|
248
263
|
readonly supportsAck?: boolean | undefined
|
|
@@ -266,7 +281,6 @@ export const makeNoSerialization: <Rpcs extends Rpc.Any, E, const Flatten extend
|
|
|
266
281
|
options: {
|
|
267
282
|
readonly message: FromClient<Rpcs>
|
|
268
283
|
readonly context: Context.Context<never>
|
|
269
|
-
readonly discard: boolean
|
|
270
284
|
}
|
|
271
285
|
) => Effect.Effect<void, E>
|
|
272
286
|
readonly supportsAck?: boolean | undefined
|
|
@@ -384,12 +398,7 @@ export const makeNoSerialization: <Rpcs extends Rpc.Any, E, const Flatten extend
|
|
|
384
398
|
}
|
|
385
399
|
const id = generateRequestId()
|
|
386
400
|
const send = middleware(
|
|
387
|
-
(message) =>
|
|
388
|
-
options.onFromClient({
|
|
389
|
-
message,
|
|
390
|
-
context,
|
|
391
|
-
discard
|
|
392
|
-
}),
|
|
401
|
+
(message) => options.onFromClient({ message, context }),
|
|
393
402
|
{
|
|
394
403
|
_tag: "Request",
|
|
395
404
|
id,
|
|
@@ -402,20 +411,28 @@ export const makeNoSerialization: <Rpcs extends Rpc.Any, E, const Flatten extend
|
|
|
402
411
|
sampled: span.sampled
|
|
403
412
|
} :
|
|
404
413
|
{}),
|
|
405
|
-
headers: Headers.merge(parentFiber.getRef(CurrentHeaders), headers)
|
|
414
|
+
headers: Headers.merge(parentFiber.getRef(CurrentHeaders), headers),
|
|
415
|
+
...(discard ? { discard: true as const } : {})
|
|
406
416
|
}
|
|
407
417
|
)
|
|
408
|
-
if (discard) {
|
|
409
|
-
return send
|
|
410
|
-
}
|
|
411
418
|
let fiber: Fiber.Fiber<any, any>
|
|
412
419
|
return Effect.onInterrupt(
|
|
413
420
|
Effect.callback<any, any>((resume) => {
|
|
421
|
+
// the acknowledgement of a discarded call, held until its send has finished
|
|
422
|
+
let ack: Exit.Exit<any, any> | undefined
|
|
414
423
|
const entry: ClientEntry = {
|
|
415
424
|
_tag: "Effect",
|
|
416
425
|
rpc,
|
|
417
426
|
context,
|
|
418
427
|
resume(exit) {
|
|
428
|
+
if (discard) {
|
|
429
|
+
// Interrupting the send could cancel the call, as an HTTP
|
|
430
|
+
// handler is scoped to its request, so the call completes
|
|
431
|
+
// once the send has finished too.
|
|
432
|
+
ack = exit._tag === "Success" ? Exit.void : exit
|
|
433
|
+
if (fiber?.pollUnsafe()) resume(ack)
|
|
434
|
+
return
|
|
435
|
+
}
|
|
419
436
|
resume(exit)
|
|
420
437
|
if (fiber && !fiber.pollUnsafe()) {
|
|
421
438
|
parentFiber.currentDispatcher.scheduleTask(() => {
|
|
@@ -433,6 +450,8 @@ export const makeNoSerialization: <Rpcs extends Rpc.Any, E, const Flatten extend
|
|
|
433
450
|
if (exit._tag === "Failure") {
|
|
434
451
|
entries.delete(id)
|
|
435
452
|
return resume(exit)
|
|
453
|
+
} else if (ack) {
|
|
454
|
+
return resume(ack)
|
|
436
455
|
}
|
|
437
456
|
})
|
|
438
457
|
}),
|
|
@@ -495,12 +514,7 @@ export const makeNoSerialization: <Rpcs extends Rpc.Any, E, const Flatten extend
|
|
|
495
514
|
})
|
|
496
515
|
|
|
497
516
|
yield* middleware(
|
|
498
|
-
(message) =>
|
|
499
|
-
options.onFromClient({
|
|
500
|
-
message,
|
|
501
|
-
context,
|
|
502
|
-
discard: false
|
|
503
|
-
}),
|
|
517
|
+
(message) => options.onFromClient({ message, context }),
|
|
504
518
|
{
|
|
505
519
|
_tag: "Request",
|
|
506
520
|
id,
|
|
@@ -572,8 +586,7 @@ export const makeNoSerialization: <Rpcs extends Rpc.Any, E, const Flatten extend
|
|
|
572
586
|
const parentFiber = Fiber.getCurrent()!
|
|
573
587
|
const fiber = options.onFromClient({
|
|
574
588
|
message: { _tag: "Interrupt", requestId, interruptors },
|
|
575
|
-
context
|
|
576
|
-
discard: false
|
|
589
|
+
context
|
|
577
590
|
}).pipe(
|
|
578
591
|
Effect.timeout(1000),
|
|
579
592
|
Effect.runForkWith(parentFiber.context)
|
|
@@ -594,8 +607,7 @@ export const makeNoSerialization: <Rpcs extends Rpc.Any, E, const Flatten extend
|
|
|
594
607
|
? Effect.flatMap(() =>
|
|
595
608
|
options.onFromClient({
|
|
596
609
|
message: { _tag: "Ack", requestId: message.requestId },
|
|
597
|
-
context: entry.context
|
|
598
|
-
discard: false
|
|
610
|
+
context: entry.context
|
|
599
611
|
})
|
|
600
612
|
)
|
|
601
613
|
: identity,
|
|
@@ -687,11 +699,12 @@ export const make: <Rpcs extends Rpc.Any, const Flatten extends boolean = false>
|
|
|
687
699
|
readonly rpc: Rpc.AnyWithProps
|
|
688
700
|
readonly context: Context.Context<never>
|
|
689
701
|
readonly schemas: RpcSchemas
|
|
702
|
+
readonly discard: boolean
|
|
690
703
|
}
|
|
691
704
|
const entries = new Map<RequestId, ClientEntry>()
|
|
692
|
-
//
|
|
693
|
-
// it shuts down are not handed to a transport that is being torn down.
|
|
694
|
-
|
|
705
|
+
// Completed before the protocol stops running this client, so requests made
|
|
706
|
+
// while it shuts down are not handed to a transport that is being torn down.
|
|
707
|
+
const closing = Deferred.makeUnsafe<void>()
|
|
695
708
|
|
|
696
709
|
const interruptRequest = (requestId: RequestId): Effect.Effect<void, RpcClientError> => {
|
|
697
710
|
if (!entries.has(requestId)) return Effect.void
|
|
@@ -713,7 +726,8 @@ export const make: <Rpcs extends Rpc.Any, const Flatten extends boolean = false>
|
|
|
713
726
|
const entry: ClientEntry = {
|
|
714
727
|
rpc,
|
|
715
728
|
context: collector ? Context.add(fiber.context, Transferable.Collector, collector) : fiber.context,
|
|
716
|
-
schemas: rpcSchemas(rpc)
|
|
729
|
+
schemas: rpcSchemas(rpc),
|
|
730
|
+
discard: message.discard === true
|
|
717
731
|
}
|
|
718
732
|
entries.set(message.id, entry)
|
|
719
733
|
|
|
@@ -723,7 +737,7 @@ export const make: <Rpcs extends Rpc.Any, const Flatten extends boolean = false>
|
|
|
723
737
|
Effect.flatMap((payload) => {
|
|
724
738
|
// Checked after encoding, which can suspend while the client
|
|
725
739
|
// starts shutting down.
|
|
726
|
-
if (
|
|
740
|
+
if (Deferred.isDoneUnsafe(closing)) {
|
|
727
741
|
entries.delete(message.id)
|
|
728
742
|
return Effect.interrupt
|
|
729
743
|
}
|
|
@@ -775,7 +789,14 @@ export const make: <Rpcs extends Rpc.Any, const Flatten extends boolean = false>
|
|
|
775
789
|
).pipe(
|
|
776
790
|
Effect.onError((cause) =>
|
|
777
791
|
write({ _tag: "Exit", clientId: 0, requestId, exit: Exit.failCause(cause) }).pipe(
|
|
778
|
-
Effect.andThen(
|
|
792
|
+
Effect.andThen(
|
|
793
|
+
Cause.hasInterrupts(cause) ? Effect.void : Effect.raceFirst(
|
|
794
|
+
Effect.ignore(interruptRequest(requestId)),
|
|
795
|
+
// Best-effort once the client closes: a disconnected transport
|
|
796
|
+
// can wait for a reconnect that never comes.
|
|
797
|
+
Deferred.await(closing)
|
|
798
|
+
)
|
|
799
|
+
)
|
|
779
800
|
)
|
|
780
801
|
),
|
|
781
802
|
// a decode failure only ends its own request; interruption still propagates
|
|
@@ -788,7 +809,13 @@ export const make: <Rpcs extends Rpc.Any, const Flatten extends boolean = false>
|
|
|
788
809
|
const entry = entries.get(requestId)
|
|
789
810
|
if (!entry) return Effect.void
|
|
790
811
|
entries.delete(requestId)
|
|
791
|
-
|
|
812
|
+
// the success of a discarded call is its acknowledgement, which has no
|
|
813
|
+
// value, and an older server may send the handler result instead
|
|
814
|
+
if (entry.discard && message.exit._tag === "Success") {
|
|
815
|
+
return write({ _tag: "Exit", clientId: 0, requestId, exit: Exit.void as any })
|
|
816
|
+
}
|
|
817
|
+
const decodeExit = entry.discard ? entry.schemas.decodeDiscardExit : entry.schemas.decodeExit
|
|
818
|
+
return decodeExit(message.exit).pipe(
|
|
792
819
|
Effect.provideContext(entry.context),
|
|
793
820
|
Effect.orDie,
|
|
794
821
|
Effect.matchCauseEffect({
|
|
@@ -821,11 +848,7 @@ export const make: <Rpcs extends Rpc.Any, const Flatten extends boolean = false>
|
|
|
821
848
|
Effect.forkScoped
|
|
822
849
|
)
|
|
823
850
|
// Finalizers run in reverse order, so this runs before `run` is interrupted.
|
|
824
|
-
yield* Effect.addFinalizer(() =>
|
|
825
|
-
Effect.sync(() => {
|
|
826
|
-
isClosing = true
|
|
827
|
-
})
|
|
828
|
-
)
|
|
851
|
+
yield* Effect.addFinalizer(() => Deferred.succeed(closing, void 0))
|
|
829
852
|
|
|
830
853
|
return client
|
|
831
854
|
})
|
|
@@ -836,6 +859,7 @@ interface RpcSchemas {
|
|
|
836
859
|
>
|
|
837
860
|
readonly encodePayload: (payload: any) => Effect.Effect<any, Schema.SchemaError, unknown>
|
|
838
861
|
readonly decodeExit: (encoded: unknown) => Effect.Effect<Exit.Exit<any, any>, Schema.SchemaError, unknown>
|
|
862
|
+
readonly decodeDiscardExit: (encoded: unknown) => Effect.Effect<Exit.Exit<any, any>, Schema.SchemaError, unknown>
|
|
839
863
|
}
|
|
840
864
|
// Codecs are compiled per client, because two protocols can fill the message
|
|
841
865
|
// holes with different codecs.
|
|
@@ -848,6 +872,8 @@ const makeRpcSchemas = (codecFor: RpcSerialization.CodecFor) => {
|
|
|
848
872
|
}
|
|
849
873
|
const streamSchemas = RpcSchema.getStreamSchemas(rpc.successSchema)
|
|
850
874
|
const parseOptions = Context.get(rpc.annotations, Rpc.ParseOptions)
|
|
875
|
+
const exitSchema = Rpc.exitSchema(rpc as any)
|
|
876
|
+
let decodeDiscardExit: RpcSchemas["decodeDiscardExit"] | undefined
|
|
851
877
|
entry = {
|
|
852
878
|
decodeChunk: Option.map(
|
|
853
879
|
streamSchemas,
|
|
@@ -855,7 +881,13 @@ const makeRpcSchemas = (codecFor: RpcSerialization.CodecFor) => {
|
|
|
855
881
|
Schema.decodeUnknownEffect(codecFor(Schema.NonEmptyArray(streamSchemas.success)), parseOptions)
|
|
856
882
|
),
|
|
857
883
|
encodePayload: Schema.encodeEffect(codecFor(rpc.payloadSchema), parseOptions),
|
|
858
|
-
decodeExit: Schema.decodeUnknownEffect(codecFor(
|
|
884
|
+
decodeExit: Schema.decodeUnknownEffect(codecFor(exitSchema), parseOptions),
|
|
885
|
+
// the server encodes the Exits of a discarded call with a void success
|
|
886
|
+
decodeDiscardExit: (encoded) =>
|
|
887
|
+
(decodeDiscardExit ??= Schema.decodeUnknownEffect(
|
|
888
|
+
codecFor(Schema.Exit(Schema.Void, exitSchema.error, exitSchema.defect)),
|
|
889
|
+
parseOptions
|
|
890
|
+
))(encoded)
|
|
859
891
|
}
|
|
860
892
|
cache.set(rpc, entry)
|
|
861
893
|
return entry
|
|
@@ -1632,7 +1664,14 @@ export const makeProtocolWorker = (
|
|
|
1632
1664
|
Effect.flatMap((worker) => {
|
|
1633
1665
|
const latch = Latch.makeUnsafe(false)
|
|
1634
1666
|
entries.set(request.id, { clientId, worker, latch })
|
|
1635
|
-
|
|
1667
|
+
// the pool counts a worker as busy until the Exit arrives, so a
|
|
1668
|
+
// discarded call is sent without its marker to get the handler Exit
|
|
1669
|
+
let message = request
|
|
1670
|
+
if (request.discard === true) {
|
|
1671
|
+
const { discard: _, ...rest } = request
|
|
1672
|
+
message = rest
|
|
1673
|
+
}
|
|
1674
|
+
return Effect.flatMap(worker.send(message, transferables), () => latch.await)
|
|
1636
1675
|
}),
|
|
1637
1676
|
Effect.scoped,
|
|
1638
1677
|
Effect.orDie
|
package/src/rpc/RpcMessage.ts
CHANGED
|
@@ -62,7 +62,12 @@ export const RequestId = (id: string | number): RequestId => id as RequestId
|
|
|
62
62
|
* **Details**
|
|
63
63
|
*
|
|
64
64
|
* Requests flow in both directions: servers use them for server-originated
|
|
65
|
-
* requests and, with `isNotification` set, for
|
|
65
|
+
* requests and, with `isNotification` set, for requests that get no reply,
|
|
66
|
+
* such as server notifications and inbound JSON-RPC notifications.
|
|
67
|
+
*
|
|
68
|
+
* A client call made with `discard` sets `discard` instead. It keeps its id,
|
|
69
|
+
* and the server acknowledges it with a successful `Exit` once the handler
|
|
70
|
+
* starts, then sends nothing more for it.
|
|
66
71
|
*
|
|
67
72
|
* @stability unstable
|
|
68
73
|
* @category models
|
|
@@ -75,6 +80,7 @@ export interface RequestEncoded {
|
|
|
75
80
|
readonly payload: unknown
|
|
76
81
|
readonly headers: ReadonlyArray<[string, string]>
|
|
77
82
|
readonly isNotification?: true
|
|
83
|
+
readonly discard?: true
|
|
78
84
|
readonly traceId?: string
|
|
79
85
|
readonly spanId?: string
|
|
80
86
|
readonly sampled?: boolean
|
|
@@ -94,6 +100,8 @@ export interface Request<A extends Rpc.Any> {
|
|
|
94
100
|
readonly tag: Rpc.Tag<A>
|
|
95
101
|
readonly payload: Rpc.Payload<A>
|
|
96
102
|
readonly headers: Headers
|
|
103
|
+
readonly isNotification?: true
|
|
104
|
+
readonly discard?: true
|
|
97
105
|
readonly traceId?: string
|
|
98
106
|
readonly spanId?: string
|
|
99
107
|
readonly sampled?: boolean
|
|
@@ -453,6 +461,7 @@ const RequestEncodedSchema = Schema.Struct({
|
|
|
453
461
|
payload: Schema.Uint8Array,
|
|
454
462
|
headers: Schema.Array(Schema.Tuple([Schema.String, Schema.String])),
|
|
455
463
|
isNotification: Schema.optional(Schema.Literal(true)),
|
|
464
|
+
discard: Schema.optional(Schema.Literal(true)),
|
|
456
465
|
traceId: Schema.optional(Schema.String),
|
|
457
466
|
spanId: Schema.optional(Schema.String),
|
|
458
467
|
sampled: Schema.optional(Schema.Boolean)
|
|
@@ -230,18 +230,25 @@ export const ndjson: RpcSerialization["Service"] = makeNdjson()
|
|
|
230
230
|
* Creates a JSON-RPC 2.0 serialization for RPC protocol messages without
|
|
231
231
|
* additional message framing.
|
|
232
232
|
*
|
|
233
|
+
* **Details**
|
|
234
|
+
*
|
|
235
|
+
* Set `controlMessages` to `false` for plain JSON-RPC peers, so
|
|
236
|
+
* `@effect/rpc/*` methods are not decoded as RPC control messages.
|
|
237
|
+
*
|
|
233
238
|
* @stability unstable
|
|
234
239
|
* @category serialization
|
|
235
240
|
* @since 4.0.0
|
|
236
241
|
*/
|
|
237
242
|
export const jsonRpc = (options?: {
|
|
238
243
|
readonly contentType?: string | undefined
|
|
244
|
+
readonly controlMessages?: boolean | undefined
|
|
239
245
|
}): RpcSerialization["Service"] =>
|
|
240
246
|
RpcSerialization.of({
|
|
241
247
|
contentType: options?.contentType ?? "application/json",
|
|
242
248
|
includesFraming: false,
|
|
243
249
|
codecFor: codecForJson,
|
|
244
250
|
makeUnsafe: () => {
|
|
251
|
+
const controlMessages = options?.controlMessages ?? true
|
|
245
252
|
const batches = new Map<string | number, {
|
|
246
253
|
readonly size: number
|
|
247
254
|
readonly responses: Map<string | number, RpcMessage.FromServerEncoded>
|
|
@@ -251,7 +258,7 @@ export const jsonRpc = (options?: {
|
|
|
251
258
|
const decoded: unknown = JSON.parse(
|
|
252
259
|
typeof bytes === "string" ? bytes : decodeText(bytes)
|
|
253
260
|
)
|
|
254
|
-
return decodeJsonRpcRaw(decoded, batches)
|
|
261
|
+
return decodeJsonRpcRaw(decoded, batches, controlMessages)
|
|
255
262
|
},
|
|
256
263
|
encode: (response) => {
|
|
257
264
|
const encoded = encodeJsonRpcResponse(response as any, batches)
|
|
@@ -265,6 +272,11 @@ export const jsonRpc = (options?: {
|
|
|
265
272
|
* Creates a newline-delimited JSON-RPC 2.0 serialization for RPC protocol
|
|
266
273
|
* messages.
|
|
267
274
|
*
|
|
275
|
+
* **Details**
|
|
276
|
+
*
|
|
277
|
+
* Set `controlMessages` to `false` for plain JSON-RPC peers, so
|
|
278
|
+
* `@effect/rpc/*` methods are not decoded as RPC control messages.
|
|
279
|
+
*
|
|
268
280
|
* @stability unstable
|
|
269
281
|
* @category serialization
|
|
270
282
|
* @since 4.0.0
|
|
@@ -272,6 +284,7 @@ export const jsonRpc = (options?: {
|
|
|
272
284
|
export const ndJsonRpc = (options?: {
|
|
273
285
|
readonly contentType?: string | undefined
|
|
274
286
|
readonly maxBufferSize?: number | "unbounded" | undefined
|
|
287
|
+
readonly controlMessages?: boolean | undefined
|
|
275
288
|
}): RpcSerialization["Service"] =>
|
|
276
289
|
RpcSerialization.of({
|
|
277
290
|
contentType: options?.contentType ?? "application/json-rpc",
|
|
@@ -279,6 +292,7 @@ export const ndJsonRpc = (options?: {
|
|
|
279
292
|
codecFor: codecForJson,
|
|
280
293
|
makeUnsafe: () => {
|
|
281
294
|
const parser = makeNdjson({ maxBufferSize: options?.maxBufferSize }).makeUnsafe()
|
|
295
|
+
const controlMessages = options?.controlMessages ?? true
|
|
282
296
|
const batches = new Map<string, {
|
|
283
297
|
readonly size: number
|
|
284
298
|
readonly responses: Map<string, RpcMessage.FromServerEncoded>
|
|
@@ -289,7 +303,7 @@ export const ndJsonRpc = (options?: {
|
|
|
289
303
|
if (frames.length === 0) return []
|
|
290
304
|
const messages: Array<RpcMessage.FromClientEncoded | RpcMessage.FromServerEncoded> = []
|
|
291
305
|
for (let i = 0; i < frames.length; i++) {
|
|
292
|
-
messages.push(...decodeJsonRpcRaw(frames[i], batches))
|
|
306
|
+
messages.push(...decodeJsonRpcRaw(frames[i], batches, controlMessages))
|
|
293
307
|
}
|
|
294
308
|
return messages
|
|
295
309
|
},
|
|
@@ -306,7 +320,8 @@ function decodeJsonRpcRaw(
|
|
|
306
320
|
batches: Map<string | number, {
|
|
307
321
|
readonly size: number
|
|
308
322
|
readonly responses: Map<string | number, RpcMessage.FromServerEncoded>
|
|
309
|
-
}
|
|
323
|
+
}>,
|
|
324
|
+
controlMessages: boolean
|
|
310
325
|
) {
|
|
311
326
|
if (Array.isArray(decoded)) {
|
|
312
327
|
const batch = {
|
|
@@ -317,7 +332,7 @@ function decodeJsonRpcRaw(
|
|
|
317
332
|
for (let i = 0; i < decoded.length; i++) {
|
|
318
333
|
const item = decoded[i]
|
|
319
334
|
if (!Predicate.isObject(item)) continue
|
|
320
|
-
const message = decodeJsonRpcMessage(item as unknown as JsonRpcMessage)
|
|
335
|
+
const message = decodeJsonRpcMessage(item as unknown as JsonRpcMessage, controlMessages)
|
|
321
336
|
messages.push(message)
|
|
322
337
|
if (message._tag === "Request" && !message.isNotification) {
|
|
323
338
|
batch.size++
|
|
@@ -326,14 +341,20 @@ function decodeJsonRpcRaw(
|
|
|
326
341
|
}
|
|
327
342
|
return messages
|
|
328
343
|
}
|
|
329
|
-
return Predicate.isObject(decoded)
|
|
344
|
+
return Predicate.isObject(decoded)
|
|
345
|
+
? [decodeJsonRpcMessage(decoded as unknown as JsonRpcMessage, controlMessages)]
|
|
346
|
+
: []
|
|
330
347
|
}
|
|
331
348
|
|
|
332
|
-
function decodeJsonRpcMessage(
|
|
349
|
+
function decodeJsonRpcMessage(
|
|
350
|
+
decoded: JsonRpcMessage,
|
|
351
|
+
controlMessages: boolean
|
|
352
|
+
): RpcMessage.FromClientEncoded | RpcMessage.FromServerEncoded {
|
|
333
353
|
if (Object.hasOwn(decoded, "method")) {
|
|
334
354
|
const request = decoded as JsonRpcRequest
|
|
335
355
|
if (
|
|
336
|
-
Predicate.isNullish(request.id) && Predicate.isString(request.method) &&
|
|
356
|
+
controlMessages && Predicate.isNullish(request.id) && Predicate.isString(request.method) &&
|
|
357
|
+
request.method.startsWith("@effect/rpc/")
|
|
337
358
|
) {
|
|
338
359
|
const tag = request.method.slice("@effect/rpc/".length) as
|
|
339
360
|
| RpcMessage.FromServerEncoded["_tag"]
|
|
@@ -353,6 +374,7 @@ function decodeJsonRpcMessage(decoded: JsonRpcMessage): RpcMessage.FromClientEnc
|
|
|
353
374
|
payload: request.params ?? null,
|
|
354
375
|
headers: request.headers ?? [],
|
|
355
376
|
...(Predicate.hasProperty(request, "id") ? {} : { isNotification: true as const }),
|
|
377
|
+
...(request.discard === true ? { discard: true as const } : {}),
|
|
356
378
|
...(request.spanId ?
|
|
357
379
|
{
|
|
358
380
|
traceId: request.traceId,
|
|
@@ -403,13 +425,13 @@ function encodeJsonRpcRaw(
|
|
|
403
425
|
readonly responses: Map<string | number, RpcMessage.FromServerEncoded>
|
|
404
426
|
}>
|
|
405
427
|
) {
|
|
406
|
-
if (
|
|
428
|
+
if (response._tag !== "Exit") {
|
|
407
429
|
return encodeJsonRpcMessage(response)
|
|
408
430
|
}
|
|
409
431
|
const batch = batches.get(response.requestId)
|
|
410
432
|
if (batch) {
|
|
411
433
|
batches.delete(response.requestId)
|
|
412
|
-
batch.responses.set(response.requestId, response
|
|
434
|
+
batch.responses.set(response.requestId, response)
|
|
413
435
|
if (batch.size === batch.responses.size) {
|
|
414
436
|
return Array.from(batch.responses.values(), encodeJsonRpcMessage)
|
|
415
437
|
}
|
|
@@ -469,6 +491,7 @@ function encodeJsonRpcMessage(response: RpcMessage.FromServerEncoded | RpcMessag
|
|
|
469
491
|
// a JSON-RPC notification is a request without an id
|
|
470
492
|
...(response.isNotification ? {} : { id: response.id }),
|
|
471
493
|
...(response.headers?.length > 0 ? { headers: response.headers } : {}),
|
|
494
|
+
...(response.discard ? { discard: true } : {}),
|
|
472
495
|
traceId: response.traceId,
|
|
473
496
|
spanId: response.spanId,
|
|
474
497
|
sampled: response.sampled
|
|
@@ -539,6 +562,7 @@ interface JsonRpcRequest {
|
|
|
539
562
|
readonly method: string
|
|
540
563
|
readonly params?: unknown
|
|
541
564
|
readonly headers?: ReadonlyArray<[string, string]>
|
|
565
|
+
readonly discard?: true
|
|
542
566
|
readonly traceId?: string
|
|
543
567
|
readonly spanId?: string
|
|
544
568
|
readonly sampled?: boolean
|
|
@@ -644,6 +668,7 @@ export const layerNdjsonWith = (options?: StreamOptions): Layer.Layer<RpcSeriali
|
|
|
644
668
|
*/
|
|
645
669
|
export const layerJsonRpc = (options?: {
|
|
646
670
|
readonly contentType?: string | undefined
|
|
671
|
+
readonly controlMessages?: boolean | undefined
|
|
647
672
|
}): Layer.Layer<RpcSerialization> => Layer.succeed(RpcSerialization)(jsonRpc(options))
|
|
648
673
|
|
|
649
674
|
/**
|
|
@@ -657,6 +682,7 @@ export const layerJsonRpc = (options?: {
|
|
|
657
682
|
export const layerNdJsonRpc = (options?: {
|
|
658
683
|
readonly contentType?: string | undefined
|
|
659
684
|
readonly maxBufferSize?: number | "unbounded" | undefined
|
|
685
|
+
readonly controlMessages?: boolean | undefined
|
|
660
686
|
}): Layer.Layer<RpcSerialization> => Layer.succeed(RpcSerialization)(ndJsonRpc(options))
|
|
661
687
|
|
|
662
688
|
/**
|