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
|
@@ -0,0 +1,212 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Key derivation: HKDF, PBKDF2, and Argon2id.
|
|
3
|
+
*
|
|
4
|
+
* The {@link Kdf} service derives bytes from a secret with an algorithm value
|
|
5
|
+
* such as {@link hkdfSha256}, {@link pbkdf2Sha256}, or `argon2id()`. The
|
|
6
|
+
* output is plain bytes: turn it into a typed key with the target family's raw
|
|
7
|
+
* constructor, such as `Mac.key`.
|
|
8
|
+
*
|
|
9
|
+
* **Gotchas**
|
|
10
|
+
*
|
|
11
|
+
* - The secret is bytes, with no string overload. Encode passwords yourself,
|
|
12
|
+
* and normalize their Unicode form first if users type them on different
|
|
13
|
+
* platforms.
|
|
14
|
+
* - `layerWebCrypto` does not provide Argon2id, because WebCrypto has no
|
|
15
|
+
* Argon2. Deriving with it fails with an `Unsupported` reason, so programs
|
|
16
|
+
* can fall back to PBKDF2. `NodeCrypto.layerKdf` provides Argon2id on
|
|
17
|
+
* Node.js 24.7 or later and Bun 1.4.
|
|
18
|
+
*
|
|
19
|
+
* @stability unstable
|
|
20
|
+
* @since 4.0.0
|
|
21
|
+
*/
|
|
22
|
+
import * as Context from "../Context.js";
|
|
23
|
+
import * as Effect from "../Effect.js";
|
|
24
|
+
import * as Layer from "../Layer.js";
|
|
25
|
+
import * as CryptoError from "./CryptoError.js";
|
|
26
|
+
import * as Digest from "./Digest.js";
|
|
27
|
+
import * as internal from "./internal/webCrypto.js";
|
|
28
|
+
import { WebCrypto } from "./WebCrypto.js";
|
|
29
|
+
/**
|
|
30
|
+
* Builds the HKDF algorithm for a hash.
|
|
31
|
+
*
|
|
32
|
+
* @stability unstable
|
|
33
|
+
* @category algorithms
|
|
34
|
+
* @since 4.0.0
|
|
35
|
+
*/
|
|
36
|
+
export const hkdf = hash => ({
|
|
37
|
+
_tag: "Hkdf",
|
|
38
|
+
name: `hkdf${Digest.nameSuffix(hash)}`,
|
|
39
|
+
hash
|
|
40
|
+
});
|
|
41
|
+
/**
|
|
42
|
+
* Builds a PBKDF2 algorithm for a hash and an iteration count.
|
|
43
|
+
*
|
|
44
|
+
* **Details**
|
|
45
|
+
*
|
|
46
|
+
* Deriving with an iteration count outside 1 to 2^31 - 1 fails with an
|
|
47
|
+
* `InvalidArgument` reason.
|
|
48
|
+
*
|
|
49
|
+
* @stability unstable
|
|
50
|
+
* @category algorithms
|
|
51
|
+
* @since 4.0.0
|
|
52
|
+
*/
|
|
53
|
+
export const pbkdf2 = options => ({
|
|
54
|
+
_tag: "Pbkdf2",
|
|
55
|
+
name: `pbkdf2${Digest.nameSuffix(options.hash)}`,
|
|
56
|
+
hash: options.hash,
|
|
57
|
+
iterations: options.iterations
|
|
58
|
+
});
|
|
59
|
+
/**
|
|
60
|
+
* HKDF with SHA-1.
|
|
61
|
+
*
|
|
62
|
+
* @stability unstable
|
|
63
|
+
* @category algorithms
|
|
64
|
+
* @since 4.0.0
|
|
65
|
+
*/
|
|
66
|
+
export const hkdfSha1 = /*#__PURE__*/hkdf(Digest.sha1);
|
|
67
|
+
/**
|
|
68
|
+
* HKDF with SHA-256.
|
|
69
|
+
*
|
|
70
|
+
* @stability unstable
|
|
71
|
+
* @category algorithms
|
|
72
|
+
* @since 4.0.0
|
|
73
|
+
*/
|
|
74
|
+
export const hkdfSha256 = /*#__PURE__*/hkdf(Digest.sha256);
|
|
75
|
+
/**
|
|
76
|
+
* HKDF with SHA-384.
|
|
77
|
+
*
|
|
78
|
+
* @stability unstable
|
|
79
|
+
* @category algorithms
|
|
80
|
+
* @since 4.0.0
|
|
81
|
+
*/
|
|
82
|
+
export const hkdfSha384 = /*#__PURE__*/hkdf(Digest.sha384);
|
|
83
|
+
/**
|
|
84
|
+
* HKDF with SHA-512.
|
|
85
|
+
*
|
|
86
|
+
* @stability unstable
|
|
87
|
+
* @category algorithms
|
|
88
|
+
* @since 4.0.0
|
|
89
|
+
*/
|
|
90
|
+
export const hkdfSha512 = /*#__PURE__*/hkdf(Digest.sha512);
|
|
91
|
+
/**
|
|
92
|
+
* PBKDF2 with SHA-256 at 600,000 iterations, OWASP's current figure.
|
|
93
|
+
*
|
|
94
|
+
* @stability unstable
|
|
95
|
+
* @category algorithms
|
|
96
|
+
* @since 4.0.0
|
|
97
|
+
*/
|
|
98
|
+
export const pbkdf2Sha256 = /*#__PURE__*/pbkdf2({
|
|
99
|
+
hash: Digest.sha256,
|
|
100
|
+
iterations: 600_000
|
|
101
|
+
});
|
|
102
|
+
/**
|
|
103
|
+
* Builds an Argon2id algorithm, with `memory` in KiB.
|
|
104
|
+
*
|
|
105
|
+
* **Details**
|
|
106
|
+
*
|
|
107
|
+
* Omitted costs default to RFC 9106's second recommended setting: 64 MiB of
|
|
108
|
+
* memory (`65_536`), 3 passes, and 4 lanes.
|
|
109
|
+
*
|
|
110
|
+
* **Gotchas**
|
|
111
|
+
*
|
|
112
|
+
* `Kdf.layerWebCrypto` does not provide Argon2id. Use `NodeCrypto.layerKdf`,
|
|
113
|
+
* or fall back to PBKDF2 on the `Unsupported` reason.
|
|
114
|
+
*
|
|
115
|
+
* @stability unstable
|
|
116
|
+
* @category algorithms
|
|
117
|
+
* @since 4.0.0
|
|
118
|
+
*/
|
|
119
|
+
export const argon2id = options => ({
|
|
120
|
+
_tag: "Argon2id",
|
|
121
|
+
name: "argon2id",
|
|
122
|
+
memory: options?.memory ?? 65_536,
|
|
123
|
+
passes: options?.passes ?? 3,
|
|
124
|
+
parallelism: options?.parallelism ?? 4
|
|
125
|
+
});
|
|
126
|
+
/**
|
|
127
|
+
* Service that derives bytes from a secret.
|
|
128
|
+
*
|
|
129
|
+
* **Example** (Deriving a key with HKDF)
|
|
130
|
+
*
|
|
131
|
+
* ```ts import.meta.vitest
|
|
132
|
+
* import { Effect } from "effect"
|
|
133
|
+
* import { Kdf } from "effect/crypto"
|
|
134
|
+
*
|
|
135
|
+
* const program = Effect.gen(function*() {
|
|
136
|
+
* const kdf = yield* Kdf.Kdf
|
|
137
|
+
* return yield* kdf.derive(Kdf.hkdfSha256, new Uint8Array(32), {
|
|
138
|
+
* salt: new Uint8Array(16),
|
|
139
|
+
* info: new TextEncoder().encode("encryption"),
|
|
140
|
+
* length: 32
|
|
141
|
+
* })
|
|
142
|
+
* })
|
|
143
|
+
*
|
|
144
|
+
* const bytes = await Effect.runPromise(program.pipe(Effect.provide(Kdf.layerWebCrypto)))
|
|
145
|
+
* bytes.length // => 32
|
|
146
|
+
* ```
|
|
147
|
+
*
|
|
148
|
+
* @stability unstable
|
|
149
|
+
* @category services
|
|
150
|
+
* @since 4.0.0
|
|
151
|
+
*/
|
|
152
|
+
export class Kdf extends /*#__PURE__*/Context.Service()("effect/crypto/Kdf") {}
|
|
153
|
+
const invalidArgument = description => internal.fail("Kdf", "derive", new CryptoError.InvalidArgument({
|
|
154
|
+
description
|
|
155
|
+
}));
|
|
156
|
+
const isIntegerIn = (n, min, max) => Number.isSafeInteger(n) && n >= min && n <= max;
|
|
157
|
+
// Checks the arguments before they reach Web Crypto, which takes a 32-bit bit
|
|
158
|
+
// length that some backends wrap instead of rejecting. Node.js aborts the
|
|
159
|
+
// process on PBKDF2 iteration counts above 2^31 - 1.
|
|
160
|
+
const checkArguments = (algorithm, options) => {
|
|
161
|
+
if (algorithm._tag !== "Hkdf" && options.info !== undefined) return invalidArgument("info only applies to HKDF");
|
|
162
|
+
if (algorithm._tag === "Argon2id") return undefined;
|
|
163
|
+
if (algorithm.hash.name === "MD5") return invalidArgument(`${algorithm._tag} needs a SHA hash, not MD5`);
|
|
164
|
+
if (algorithm._tag === "Hkdf") {
|
|
165
|
+
const maxLength = 255 * algorithm.hash.outputLength;
|
|
166
|
+
return isIntegerIn(options.length, 1, maxLength) ? undefined : invalidArgument(`length must be between 1 and ${maxLength} bytes for ${algorithm.name}`);
|
|
167
|
+
}
|
|
168
|
+
if (!isIntegerIn(algorithm.iterations, 1, 0x7fff_ffff)) {
|
|
169
|
+
return invalidArgument("iterations must be between 1 and 2^31 - 1");
|
|
170
|
+
}
|
|
171
|
+
return isIntegerIn(options.length, 1, 0x1fff_ffff) ? undefined : invalidArgument("length must be between 1 and 2^29 - 1 bytes");
|
|
172
|
+
};
|
|
173
|
+
const webCryptoParams = (algorithm, options) => algorithm._tag === "Hkdf" ? {
|
|
174
|
+
name: "HKDF",
|
|
175
|
+
hash: algorithm.hash.name,
|
|
176
|
+
salt: options.salt,
|
|
177
|
+
info: options.info ?? new Uint8Array()
|
|
178
|
+
} : {
|
|
179
|
+
name: "PBKDF2",
|
|
180
|
+
hash: algorithm.hash.name,
|
|
181
|
+
salt: options.salt,
|
|
182
|
+
iterations: algorithm.iterations
|
|
183
|
+
};
|
|
184
|
+
/**
|
|
185
|
+
* Layer that provides `Kdf` on the `WebCrypto` reference.
|
|
186
|
+
*
|
|
187
|
+
* **Details**
|
|
188
|
+
*
|
|
189
|
+
* HKDF and PBKDF2 run on `crypto.subtle`, off the event loop where the runtime
|
|
190
|
+
* supports it. Argon2id fails with an `Unsupported` reason.
|
|
191
|
+
*
|
|
192
|
+
* @stability unstable
|
|
193
|
+
* @category layers
|
|
194
|
+
* @since 4.0.0
|
|
195
|
+
*/
|
|
196
|
+
export const layerWebCrypto = /*#__PURE__*/Layer.effect(Kdf, /*#__PURE__*/WebCrypto.use(crypto => Effect.succeed(Kdf.of({
|
|
197
|
+
derive: (algorithm, secret, options) => Effect.suspend(() => {
|
|
198
|
+
const failure = checkArguments(algorithm, options);
|
|
199
|
+
if (failure !== undefined) return failure;
|
|
200
|
+
if (algorithm._tag === "Argon2id") {
|
|
201
|
+
return internal.fail("Kdf", "derive", new CryptoError.Unsupported({
|
|
202
|
+
description: "Kdf.layerWebCrypto does not provide argon2id"
|
|
203
|
+
}));
|
|
204
|
+
}
|
|
205
|
+
const name = algorithm._tag === "Hkdf" ? "HKDF" : "PBKDF2";
|
|
206
|
+
return internal.run("Kdf", "derive", algorithm.name, crypto, async subtle => {
|
|
207
|
+
const handle = await subtle.importKey("raw", secret, name, false, ["deriveBits"]);
|
|
208
|
+
return new Uint8Array(await subtle.deriveBits(webCryptoParams(algorithm, options), handle, options.length * 8));
|
|
209
|
+
});
|
|
210
|
+
})
|
|
211
|
+
}))));
|
|
212
|
+
//# sourceMappingURL=Kdf.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Kdf.js","names":[],"sources":["../../src/crypto/Kdf.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,323 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Key agreement: X25519, and ECDH on P-256, P-384 and P-521.
|
|
3
|
+
*
|
|
4
|
+
* The {@link KeyAgreement} service generates key pairs, derives a shared
|
|
5
|
+
* secret from a private key and a peer's public key, and computes a private
|
|
6
|
+
* key's public key. The top-level {@link privateKey}, {@link publicKey},
|
|
7
|
+
* {@link privateKeyFromCryptoKey}, {@link publicKeyFromCryptoKey}, and
|
|
8
|
+
* {@link toBytes} functions build and export keys without a service.
|
|
9
|
+
*
|
|
10
|
+
* Keys carry their algorithm in their type, so deriving a secret from keys on
|
|
11
|
+
* different curves is a type error. The shared secret is plain bytes: pass it
|
|
12
|
+
* through `Kdf` before using it as a key.
|
|
13
|
+
*
|
|
14
|
+
* Keys are opaque. They hold either bytes or a `CryptoKey`, display only their
|
|
15
|
+
* algorithm, and compare by reference. The bytes are:
|
|
16
|
+
*
|
|
17
|
+
* - X25519: the 32-byte private key and the 32-byte public key;
|
|
18
|
+
* - ECDH: PKCS#8 for private keys, and the uncompressed SEC1 point for public
|
|
19
|
+
* keys.
|
|
20
|
+
*
|
|
21
|
+
* Only X25519 private keys and X25519 and ECDH public keys have a raw
|
|
22
|
+
* constructor. ECDH private keys come from
|
|
23
|
+
* `KeyAgreement.generateKeyPair`, `CryptoKey`s, or key formats.
|
|
24
|
+
*
|
|
25
|
+
* **Gotchas**
|
|
26
|
+
*
|
|
27
|
+
* - X25519 needs Chrome 133, Firefox 130, or Safari 17. There is no fallback
|
|
28
|
+
* for older browsers.
|
|
29
|
+
* - X25519 private keys are generated from `SecureRandom` bytes, so a seeded
|
|
30
|
+
* `SecureRandom` reproduces them. ECDH key generation uses WebCrypto's own
|
|
31
|
+
* randomness and cannot be seeded.
|
|
32
|
+
*
|
|
33
|
+
* @stability unstable
|
|
34
|
+
* @since 4.0.0
|
|
35
|
+
*/
|
|
36
|
+
import * as Context from "../Context.ts";
|
|
37
|
+
import * as Effect from "../Effect.ts";
|
|
38
|
+
import type { Inspectable } from "../Inspectable.ts";
|
|
39
|
+
import * as Layer from "../Layer.ts";
|
|
40
|
+
import * as CryptoError from "./CryptoError.ts";
|
|
41
|
+
import * as SecureRandom from "./SecureRandom.ts";
|
|
42
|
+
declare const PrivateKeyTypeId: "~effect/crypto/KeyAgreement/PrivateKey";
|
|
43
|
+
declare const PublicKeyTypeId: "~effect/crypto/KeyAgreement/PublicKey";
|
|
44
|
+
/**
|
|
45
|
+
* An elliptic curve for ECDH.
|
|
46
|
+
*
|
|
47
|
+
* @stability unstable
|
|
48
|
+
* @category models
|
|
49
|
+
* @since 4.0.0
|
|
50
|
+
*/
|
|
51
|
+
export type Curve = "P-256" | "P-384" | "P-521";
|
|
52
|
+
/**
|
|
53
|
+
* X25519 (RFC 7748), with 32-byte shared secrets.
|
|
54
|
+
*
|
|
55
|
+
* @stability unstable
|
|
56
|
+
* @category models
|
|
57
|
+
* @since 4.0.0
|
|
58
|
+
*/
|
|
59
|
+
export interface X25519 {
|
|
60
|
+
readonly _tag: "X25519";
|
|
61
|
+
readonly name: "x25519";
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* ECDH on a NIST curve, with shared secrets of the curve's coordinate size.
|
|
65
|
+
*
|
|
66
|
+
* @stability unstable
|
|
67
|
+
* @category models
|
|
68
|
+
* @since 4.0.0
|
|
69
|
+
*/
|
|
70
|
+
export interface Ecdh<C extends Curve = Curve> {
|
|
71
|
+
readonly _tag: "Ecdh";
|
|
72
|
+
readonly name: {
|
|
73
|
+
readonly "P-256": "ecdhP256";
|
|
74
|
+
readonly "P-384": "ecdhP384";
|
|
75
|
+
readonly "P-521": "ecdhP521";
|
|
76
|
+
}[C];
|
|
77
|
+
readonly namedCurve: C;
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* A key agreement algorithm, such as {@link x25519} or {@link ecdhP256}.
|
|
81
|
+
*
|
|
82
|
+
* @stability unstable
|
|
83
|
+
* @category models
|
|
84
|
+
* @since 4.0.0
|
|
85
|
+
*/
|
|
86
|
+
export type Algorithm = X25519 | Ecdh;
|
|
87
|
+
/**
|
|
88
|
+
* X25519 (RFC 7748).
|
|
89
|
+
*
|
|
90
|
+
* @stability unstable
|
|
91
|
+
* @category algorithms
|
|
92
|
+
* @since 4.0.0
|
|
93
|
+
*/
|
|
94
|
+
export declare const x25519: X25519;
|
|
95
|
+
/**
|
|
96
|
+
* ECDH on P-256, with 32-byte shared secrets.
|
|
97
|
+
*
|
|
98
|
+
* @stability unstable
|
|
99
|
+
* @category algorithms
|
|
100
|
+
* @since 4.0.0
|
|
101
|
+
*/
|
|
102
|
+
export declare const ecdhP256: Ecdh<"P-256">;
|
|
103
|
+
/**
|
|
104
|
+
* ECDH on P-384, with 48-byte shared secrets.
|
|
105
|
+
*
|
|
106
|
+
* @stability unstable
|
|
107
|
+
* @category algorithms
|
|
108
|
+
* @since 4.0.0
|
|
109
|
+
*/
|
|
110
|
+
export declare const ecdhP384: Ecdh<"P-384">;
|
|
111
|
+
/**
|
|
112
|
+
* ECDH on P-521, with 66-byte shared secrets.
|
|
113
|
+
*
|
|
114
|
+
* @stability unstable
|
|
115
|
+
* @category algorithms
|
|
116
|
+
* @since 4.0.0
|
|
117
|
+
*/
|
|
118
|
+
export declare const ecdhP521: Ecdh<"P-521">;
|
|
119
|
+
/**
|
|
120
|
+
* An opaque key agreement private key for the algorithm `A`.
|
|
121
|
+
*
|
|
122
|
+
* **Details**
|
|
123
|
+
*
|
|
124
|
+
* The key holds either bytes or a `CryptoKey` from
|
|
125
|
+
* {@link privateKeyFromCryptoKey}. `toString`, `toJSON`, and `inspect` show
|
|
126
|
+
* only the algorithm. Keys compare by reference and do not implement `Equal`.
|
|
127
|
+
*
|
|
128
|
+
* @stability unstable
|
|
129
|
+
* @category models
|
|
130
|
+
* @since 4.0.0
|
|
131
|
+
*/
|
|
132
|
+
export interface PrivateKey<out A extends Algorithm = Algorithm> extends Inspectable {
|
|
133
|
+
readonly [PrivateKeyTypeId]: typeof PrivateKeyTypeId;
|
|
134
|
+
readonly algorithm: A;
|
|
135
|
+
}
|
|
136
|
+
/**
|
|
137
|
+
* An opaque key agreement public key for the algorithm `A`.
|
|
138
|
+
*
|
|
139
|
+
* **Details**
|
|
140
|
+
*
|
|
141
|
+
* The key holds either bytes or a `CryptoKey` from
|
|
142
|
+
* {@link publicKeyFromCryptoKey}. Keys compare by reference and do not
|
|
143
|
+
* implement `Equal`.
|
|
144
|
+
*
|
|
145
|
+
* @stability unstable
|
|
146
|
+
* @category models
|
|
147
|
+
* @since 4.0.0
|
|
148
|
+
*/
|
|
149
|
+
export interface PublicKey<out A extends Algorithm = Algorithm> extends Inspectable {
|
|
150
|
+
readonly [PublicKeyTypeId]: typeof PublicKeyTypeId;
|
|
151
|
+
readonly algorithm: A;
|
|
152
|
+
}
|
|
153
|
+
/**
|
|
154
|
+
* A private key and its public key.
|
|
155
|
+
*
|
|
156
|
+
* @stability unstable
|
|
157
|
+
* @category models
|
|
158
|
+
* @since 4.0.0
|
|
159
|
+
*/
|
|
160
|
+
export interface KeyPair<out A extends Algorithm = Algorithm> {
|
|
161
|
+
readonly privateKey: PrivateKey<A>;
|
|
162
|
+
readonly publicKey: PublicKey<A>;
|
|
163
|
+
}
|
|
164
|
+
/**
|
|
165
|
+
* Checks whether a value is a {@link PrivateKey}.
|
|
166
|
+
*
|
|
167
|
+
* @stability unstable
|
|
168
|
+
* @category guards
|
|
169
|
+
* @since 4.0.0
|
|
170
|
+
*/
|
|
171
|
+
export declare const isPrivateKey: (u: unknown) => u is PrivateKey;
|
|
172
|
+
/**
|
|
173
|
+
* Checks whether a value is a {@link PublicKey}.
|
|
174
|
+
*
|
|
175
|
+
* @stability unstable
|
|
176
|
+
* @category guards
|
|
177
|
+
* @since 4.0.0
|
|
178
|
+
*/
|
|
179
|
+
export declare const isPublicKey: (u: unknown) => u is PublicKey;
|
|
180
|
+
declare const KeyAgreement_base: Context.ServiceClass<KeyAgreement, "effect/crypto/KeyAgreement", {
|
|
181
|
+
/**
|
|
182
|
+
* Generates a key pair. X25519 private keys are 32 bytes from
|
|
183
|
+
* `SecureRandom`. ECDH keys are generated by WebCrypto and exported to
|
|
184
|
+
* PKCS#8 and an uncompressed point.
|
|
185
|
+
*/
|
|
186
|
+
readonly generateKeyPair: <A extends Algorithm>(algorithm: A) => Effect.Effect<KeyPair<A>, CryptoError.CryptoError>;
|
|
187
|
+
/**
|
|
188
|
+
* Computes the secret shared by a private key and a peer's public key on
|
|
189
|
+
* the same curve. A peer key that is not on the curve, or a low-order
|
|
190
|
+
* X25519 key that gives an all-zero secret, fails with an `InvalidKey`
|
|
191
|
+
* reason.
|
|
192
|
+
*/
|
|
193
|
+
readonly deriveSharedSecret: <A extends Algorithm>(privateKey: PrivateKey<A>, publicKey: PublicKey<A>) => Effect.Effect<Uint8Array, CryptoError.CryptoError>;
|
|
194
|
+
/**
|
|
195
|
+
* Computes the public key of a private key. A non-extractable `CryptoKey`
|
|
196
|
+
* fails with a `NotExtractable` reason, since its public members cannot be
|
|
197
|
+
* read.
|
|
198
|
+
*/
|
|
199
|
+
readonly publicKeyOf: <A extends Algorithm>(privateKey: PrivateKey<A>) => Effect.Effect<PublicKey<A>, CryptoError.CryptoError>;
|
|
200
|
+
}>;
|
|
201
|
+
/**
|
|
202
|
+
* Service that generates key pairs, derives shared secrets, and computes
|
|
203
|
+
* public keys.
|
|
204
|
+
*
|
|
205
|
+
* **Example** (Agreeing on a secret with X25519)
|
|
206
|
+
*
|
|
207
|
+
* ```ts import.meta.vitest
|
|
208
|
+
* import { Effect, Layer } from "effect"
|
|
209
|
+
* import { KeyAgreement, SecureRandom } from "effect/crypto"
|
|
210
|
+
*
|
|
211
|
+
* const program = Effect.gen(function*() {
|
|
212
|
+
* const keyAgreement = yield* KeyAgreement.KeyAgreement
|
|
213
|
+
* const alice = yield* keyAgreement.generateKeyPair(KeyAgreement.x25519)
|
|
214
|
+
* const bob = yield* keyAgreement.generateKeyPair(KeyAgreement.x25519)
|
|
215
|
+
* const aliceSecret = yield* keyAgreement.deriveSharedSecret(alice.privateKey, bob.publicKey)
|
|
216
|
+
* const bobSecret = yield* keyAgreement.deriveSharedSecret(bob.privateKey, alice.publicKey)
|
|
217
|
+
* return aliceSecret.every((byte, i) => byte === bobSecret[i])
|
|
218
|
+
* })
|
|
219
|
+
*
|
|
220
|
+
* const layer = KeyAgreement.layerWebCrypto.pipe(Layer.provide(SecureRandom.layerWebCrypto))
|
|
221
|
+
* await Effect.runPromise(program.pipe(Effect.provide(layer))) // => true
|
|
222
|
+
* ```
|
|
223
|
+
*
|
|
224
|
+
* @stability unstable
|
|
225
|
+
* @category services
|
|
226
|
+
* @since 4.0.0
|
|
227
|
+
*/
|
|
228
|
+
export declare class KeyAgreement extends KeyAgreement_base {
|
|
229
|
+
}
|
|
230
|
+
/**
|
|
231
|
+
* Layer that provides `KeyAgreement` on the `WebCrypto` reference.
|
|
232
|
+
*
|
|
233
|
+
* **Details**
|
|
234
|
+
*
|
|
235
|
+
* Every algorithm runs on `crypto.subtle`. The layer imports a byte-backed
|
|
236
|
+
* key on first use and caches the `CryptoKey`. X25519 private keys come from
|
|
237
|
+
* `SecureRandom`, so a seeded `SecureRandom` reproduces them.
|
|
238
|
+
*
|
|
239
|
+
* @stability unstable
|
|
240
|
+
* @category layers
|
|
241
|
+
* @since 4.0.0
|
|
242
|
+
*/
|
|
243
|
+
export declare const layerWebCrypto: Layer.Layer<KeyAgreement, never, SecureRandom.SecureRandom>;
|
|
244
|
+
/**
|
|
245
|
+
* Builds an X25519 private key from its 32 bytes.
|
|
246
|
+
*
|
|
247
|
+
* **Details**
|
|
248
|
+
*
|
|
249
|
+
* The bytes are copied. Another length fails with an `InvalidKey` reason,
|
|
250
|
+
* including the 64-byte `private key‖public key` form libsodium uses: pass
|
|
251
|
+
* its first 32 bytes. ECDH private keys have no raw form, so passing them is
|
|
252
|
+
* a type error.
|
|
253
|
+
*
|
|
254
|
+
* @stability unstable
|
|
255
|
+
* @category constructors
|
|
256
|
+
* @since 4.0.0
|
|
257
|
+
*/
|
|
258
|
+
export declare const privateKey: <A extends X25519>(algorithm: A, bytes: Uint8Array) => Effect.Effect<PrivateKey<A>, CryptoError.CryptoError>;
|
|
259
|
+
/**
|
|
260
|
+
* Builds a public key from its raw form: 32 bytes for X25519, or an
|
|
261
|
+
* uncompressed SEC1 point for ECDH.
|
|
262
|
+
*
|
|
263
|
+
* **Details**
|
|
264
|
+
*
|
|
265
|
+
* The bytes are copied. A wrong length, or a compressed point, fails with an
|
|
266
|
+
* `InvalidKey` reason. Only uncompressed points are taken because Safari and
|
|
267
|
+
* Firefox before 146 reject compressed ones in raw import, though they accept
|
|
268
|
+
* them inside SPKI: decode a compressed point with `KeyFormat.spki`. Whether a
|
|
269
|
+
* point is on the curve is checked when the key is first used.
|
|
270
|
+
*
|
|
271
|
+
* @stability unstable
|
|
272
|
+
* @category constructors
|
|
273
|
+
* @since 4.0.0
|
|
274
|
+
*/
|
|
275
|
+
export declare const publicKey: <A extends Algorithm>(algorithm: A, bytes: Uint8Array) => Effect.Effect<PublicKey<A>, CryptoError.CryptoError>;
|
|
276
|
+
/**
|
|
277
|
+
* Builds a private key from an existing `CryptoKey`, such as a
|
|
278
|
+
* non-extractable one.
|
|
279
|
+
*
|
|
280
|
+
* **Details**
|
|
281
|
+
*
|
|
282
|
+
* The `CryptoKey` must be a private key of the algorithm's WebCrypto name and
|
|
283
|
+
* curve, with the `deriveBits` usage. Otherwise the constructor fails with an
|
|
284
|
+
* `InvalidKey` reason. The key must come from the `Crypto` object of the
|
|
285
|
+
* `WebCrypto` reference.
|
|
286
|
+
*
|
|
287
|
+
* @stability unstable
|
|
288
|
+
* @category constructors
|
|
289
|
+
* @since 4.0.0
|
|
290
|
+
*/
|
|
291
|
+
export declare const privateKeyFromCryptoKey: <A extends Algorithm>(algorithm: A, cryptoKey: CryptoKey) => Effect.Effect<PrivateKey<A>, CryptoError.CryptoError>;
|
|
292
|
+
/**
|
|
293
|
+
* Builds a public key from an existing `CryptoKey`.
|
|
294
|
+
*
|
|
295
|
+
* **Details**
|
|
296
|
+
*
|
|
297
|
+
* The `CryptoKey` must be a public key of the algorithm's WebCrypto name and
|
|
298
|
+
* curve. Public keys need no usages. Otherwise the constructor fails with an
|
|
299
|
+
* `InvalidKey` reason. The key must come from the `Crypto` object of the
|
|
300
|
+
* `WebCrypto` reference.
|
|
301
|
+
*
|
|
302
|
+
* @stability unstable
|
|
303
|
+
* @category constructors
|
|
304
|
+
* @since 4.0.0
|
|
305
|
+
*/
|
|
306
|
+
export declare const publicKeyFromCryptoKey: <A extends Algorithm>(algorithm: A, cryptoKey: CryptoKey) => Effect.Effect<PublicKey<A>, CryptoError.CryptoError>;
|
|
307
|
+
/**
|
|
308
|
+
* Exports a key's stored bytes.
|
|
309
|
+
*
|
|
310
|
+
* **Details**
|
|
311
|
+
*
|
|
312
|
+
* Returns a fresh `Uint8Array`: the raw key for X25519, and PKCS#8 or the
|
|
313
|
+
* uncompressed point for ECDH. A `CryptoKey`-backed key is exported on the
|
|
314
|
+
* `WebCrypto` reference, and fails with a `NotExtractable` reason when the
|
|
315
|
+
* `CryptoKey` is not extractable.
|
|
316
|
+
*
|
|
317
|
+
* @stability unstable
|
|
318
|
+
* @category converting
|
|
319
|
+
* @since 4.0.0
|
|
320
|
+
*/
|
|
321
|
+
export declare const toBytes: (key: PrivateKey | PublicKey) => Effect.Effect<Uint8Array, CryptoError.CryptoError>;
|
|
322
|
+
export {};
|
|
323
|
+
//# sourceMappingURL=KeyAgreement.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"KeyAgreement.d.ts","sourceRoot":"","sources":["../../src/crypto/KeyAgreement.ts"],"names":[],"mappings":"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"}
|