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/dist/Schema.js
CHANGED
|
@@ -17,6 +17,13 @@ import * as BigDecimal_ from "./BigDecimal.js";
|
|
|
17
17
|
import * as ByteSize_ from "./ByteSize.js";
|
|
18
18
|
import * as Cause_ from "./Cause.js";
|
|
19
19
|
import * as Chunk_ from "./Chunk.js";
|
|
20
|
+
import * as Aead_ from "./crypto/Aead.js";
|
|
21
|
+
import * as Cipher_ from "./crypto/Cipher.js";
|
|
22
|
+
import * as KeyAgreement_ from "./crypto/KeyAgreement.js";
|
|
23
|
+
import * as KeyFormat_ from "./crypto/KeyFormat.js";
|
|
24
|
+
import * as KeyWrap_ from "./crypto/KeyWrap.js";
|
|
25
|
+
import * as Mac_ from "./crypto/Mac.js";
|
|
26
|
+
import * as Signature_ from "./crypto/Signature.js";
|
|
20
27
|
import * as Data from "./Data.js";
|
|
21
28
|
import * as DateTime from "./DateTime.js";
|
|
22
29
|
import * as Duration_ from "./Duration.js";
|
|
@@ -2127,11 +2134,18 @@ export function extendTo(fields, derive) {
|
|
|
2127
2134
|
*
|
|
2128
2135
|
* **Gotchas**
|
|
2129
2136
|
*
|
|
2137
|
+
* Dynamic records reject value schemas wrapped with {@link optionalKey} or
|
|
2138
|
+
* {@link optional}. Index signatures already allow keys to be absent; use
|
|
2139
|
+
* {@link UndefinedOr} when existing entries may contain `undefined`. Optional
|
|
2140
|
+
* value schemas remain valid for finite literal keys, which become declared
|
|
2141
|
+
* properties.
|
|
2142
|
+
*
|
|
2130
2143
|
* When decoded or encoded key transformations produce the same property key,
|
|
2131
2144
|
* sequential parsing applies selected own properties in selection order, so
|
|
2132
2145
|
* the later selected property overwrites the earlier value. Dynamic key
|
|
2133
|
-
* selection always examines own properties. Finite literal keys are
|
|
2134
|
-
* fields and may therefore be inherited. Output key order is not
|
|
2146
|
+
* selection always examines own properties. Finite literal and enum keys are
|
|
2147
|
+
* declared fields and may therefore be inherited. Output key order is not
|
|
2148
|
+
* guaranteed.
|
|
2135
2149
|
*
|
|
2136
2150
|
* **Example** (Defining a string-keyed record of numbers)
|
|
2137
2151
|
*
|
|
@@ -3457,9 +3471,8 @@ export function link() {
|
|
|
3457
3471
|
* )
|
|
3458
3472
|
*
|
|
3459
3473
|
* const result = Schema.decodeUnknownResult(schema)({ password: "123456", confirmPassword: "1234567" })
|
|
3460
|
-
*
|
|
3461
|
-
*
|
|
3462
|
-
* }
|
|
3474
|
+
* const message = Result.isFailure(result) ? result.failure.message : ""
|
|
3475
|
+
* message // => "password and confirmPassword must match\n at [\"password\"]"
|
|
3463
3476
|
* ```
|
|
3464
3477
|
*
|
|
3465
3478
|
* **Example** (Reporting multiple failures at once)
|
|
@@ -3479,9 +3492,8 @@ export function link() {
|
|
|
3479
3492
|
* )
|
|
3480
3493
|
*
|
|
3481
3494
|
* const result = Schema.decodeUnknownResult(schema)({ a: 1, b: 0, c: 0 })
|
|
3482
|
-
*
|
|
3483
|
-
*
|
|
3484
|
-
* }
|
|
3495
|
+
* const message = Result.isFailure(result) ? result.failure.message : ""
|
|
3496
|
+
* message // => "b must be greater than 0\n at [\"b\"]\nc must be greater than 0\n at [\"c\"]"
|
|
3485
3497
|
* ```
|
|
3486
3498
|
*
|
|
3487
3499
|
* @stability stable
|
|
@@ -3567,7 +3579,7 @@ export function isPattern(regExp, annotations) {
|
|
|
3567
3579
|
const source = regExp.source;
|
|
3568
3580
|
const flags = regExp.flags;
|
|
3569
3581
|
const canExport = /^[dg]*uy?$/.test(flags);
|
|
3570
|
-
const runtimeRegExp = flags === "" ? `new RegExp(${format(source)})` : `new RegExp(${format(source)}, ${format(flags)})`;
|
|
3582
|
+
const runtimeRegExp = flags === "" ? `new globalThis.RegExp(${format(source)})` : `new globalThis.RegExp(${format(source)}, ${format(flags)})`;
|
|
3571
3583
|
return SchemaAST.isPattern(regExp, {
|
|
3572
3584
|
toJsonSchema: () => canExport ? {
|
|
3573
3585
|
pattern: flags.endsWith("y") ? `^(?:${source})` : source
|
|
@@ -3709,7 +3721,7 @@ export function isUUID(version, annotations) {
|
|
|
3709
3721
|
...annotations
|
|
3710
3722
|
});
|
|
3711
3723
|
}
|
|
3712
|
-
const GUID_REGEXP = /^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})
|
|
3724
|
+
const GUID_REGEXP = /^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$/u;
|
|
3713
3725
|
/**
|
|
3714
3726
|
* Validates that a string has the GUID / UUID textual shape.
|
|
3715
3727
|
*
|
|
@@ -3742,21 +3754,22 @@ export function isGUID(annotations) {
|
|
|
3742
3754
|
id: "effect/schema/isGUID",
|
|
3743
3755
|
payload: null
|
|
3744
3756
|
},
|
|
3745
|
-
toJsonSchema: () => ({
|
|
3746
|
-
pattern: GUID_REGEXP.source
|
|
3747
|
-
}),
|
|
3748
3757
|
toCode: () => ({
|
|
3749
3758
|
runtime: "Schema.isGUID()"
|
|
3750
3759
|
}),
|
|
3751
3760
|
...annotations
|
|
3752
3761
|
});
|
|
3753
3762
|
}
|
|
3763
|
+
const ULID_REGEXP = /^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$/u;
|
|
3754
3764
|
/**
|
|
3755
3765
|
* Validates that a string is a valid ULID (Universally Unique Lexicographically
|
|
3756
3766
|
* Sortable Identifier).
|
|
3757
3767
|
*
|
|
3758
3768
|
* **Details**
|
|
3759
3769
|
*
|
|
3770
|
+
* Accepts uppercase and lowercase characters. The first character must be
|
|
3771
|
+
* between `0` and `7` so the value fits in 128 bits.
|
|
3772
|
+
*
|
|
3760
3773
|
* JSON Schema:
|
|
3761
3774
|
*
|
|
3762
3775
|
* This check corresponds to a `pattern` constraint in JSON Schema that matches
|
|
@@ -3772,21 +3785,60 @@ export function isGUID(annotations) {
|
|
|
3772
3785
|
* @since 4.0.0
|
|
3773
3786
|
*/
|
|
3774
3787
|
export function isULID(annotations) {
|
|
3775
|
-
|
|
3776
|
-
return isPattern(regExp, {
|
|
3788
|
+
return isPattern(ULID_REGEXP, {
|
|
3777
3789
|
representation: {
|
|
3778
3790
|
id: "effect/schema/isULID",
|
|
3779
3791
|
payload: null
|
|
3780
3792
|
},
|
|
3781
|
-
toJsonSchema: () => ({
|
|
3782
|
-
pattern: regExp.source
|
|
3783
|
-
}),
|
|
3784
3793
|
toCode: () => ({
|
|
3785
3794
|
runtime: "Schema.isULID()"
|
|
3786
3795
|
}),
|
|
3787
3796
|
...annotations
|
|
3788
3797
|
});
|
|
3789
3798
|
}
|
|
3799
|
+
// oxlint-disable-next-line no-control-regex
|
|
3800
|
+
const ASCII_REGEXP = /^[\x00-\x7F]*$/u;
|
|
3801
|
+
/**
|
|
3802
|
+
* Validates that a string contains only ASCII characters.
|
|
3803
|
+
*
|
|
3804
|
+
* **When to use**
|
|
3805
|
+
*
|
|
3806
|
+
* Use when a value must stay within the 7-bit ASCII range, for example
|
|
3807
|
+
* identifiers, protocol tokens, or data sent to systems that reject
|
|
3808
|
+
* non-ASCII input.
|
|
3809
|
+
*
|
|
3810
|
+
* **Details**
|
|
3811
|
+
*
|
|
3812
|
+
* This check accepts strings whose characters are all in the range `U+0000`
|
|
3813
|
+
* to `U+007F`, including control characters and the empty string.
|
|
3814
|
+
*
|
|
3815
|
+
* JSON Schema:
|
|
3816
|
+
*
|
|
3817
|
+
* This check corresponds to a `pattern` constraint in JSON Schema that matches
|
|
3818
|
+
* ASCII-only strings.
|
|
3819
|
+
*
|
|
3820
|
+
* Arbitrary:
|
|
3821
|
+
*
|
|
3822
|
+
* During arbitrary generation, this applies a `patterns`
|
|
3823
|
+
* constraint to ensure generated strings match the ASCII pattern.
|
|
3824
|
+
*
|
|
3825
|
+
* @stability unstable
|
|
3826
|
+
* @category validation
|
|
3827
|
+
* @since 4.0.6
|
|
3828
|
+
*/
|
|
3829
|
+
export function isAscii(annotations) {
|
|
3830
|
+
return isPattern(ASCII_REGEXP, {
|
|
3831
|
+
expected: "an ASCII string",
|
|
3832
|
+
representation: {
|
|
3833
|
+
id: "effect/schema/isAscii",
|
|
3834
|
+
payload: null
|
|
3835
|
+
},
|
|
3836
|
+
toCode: () => ({
|
|
3837
|
+
runtime: "Schema.isAscii()"
|
|
3838
|
+
}),
|
|
3839
|
+
...annotations
|
|
3840
|
+
});
|
|
3841
|
+
}
|
|
3790
3842
|
/**
|
|
3791
3843
|
* Validates that a string is valid Base64 encoded data.
|
|
3792
3844
|
*
|
|
@@ -4087,15 +4139,17 @@ const CAPITALIZED_PATTERN = "^(?:[^a-z][\\s\\S]*)?$";
|
|
|
4087
4139
|
* @since 4.0.0
|
|
4088
4140
|
*/
|
|
4089
4141
|
export function isCapitalized(annotations) {
|
|
4090
|
-
|
|
4091
|
-
|
|
4142
|
+
return makeFilter(s => {
|
|
4143
|
+
const [first = ""] = s;
|
|
4144
|
+
return first.toUpperCase() === first;
|
|
4145
|
+
}, {
|
|
4092
4146
|
expected: "a string with the first character in uppercase",
|
|
4093
4147
|
representation: {
|
|
4094
4148
|
id: "effect/schema/isCapitalized",
|
|
4095
4149
|
payload: null
|
|
4096
4150
|
},
|
|
4097
4151
|
toJsonSchema: () => [{
|
|
4098
|
-
pattern:
|
|
4152
|
+
pattern: CAPITALIZED_PATTERN
|
|
4099
4153
|
}, true],
|
|
4100
4154
|
toCode: () => ({
|
|
4101
4155
|
runtime: "Schema.isCapitalized()"
|
|
@@ -4124,15 +4178,17 @@ const UNCAPITALIZED_PATTERN = "^(?:[^A-Z][\\s\\S]*)?$";
|
|
|
4124
4178
|
* @since 4.0.0
|
|
4125
4179
|
*/
|
|
4126
4180
|
export function isUncapitalized(annotations) {
|
|
4127
|
-
|
|
4128
|
-
|
|
4181
|
+
return makeFilter(s => {
|
|
4182
|
+
const [first = ""] = s;
|
|
4183
|
+
return first.toLowerCase() === first;
|
|
4184
|
+
}, {
|
|
4129
4185
|
expected: "a string with the first character in lowercase",
|
|
4130
4186
|
representation: {
|
|
4131
4187
|
id: "effect/schema/isUncapitalized",
|
|
4132
4188
|
payload: null
|
|
4133
4189
|
},
|
|
4134
4190
|
toJsonSchema: () => [{
|
|
4135
|
-
pattern:
|
|
4191
|
+
pattern: UNCAPITALIZED_PATTERN
|
|
4136
4192
|
}, true],
|
|
4137
4193
|
toCode: () => ({
|
|
4138
4194
|
runtime: "Schema.isUncapitalized()"
|
|
@@ -4690,7 +4746,7 @@ function encodeDatePayload(date) {
|
|
|
4690
4746
|
return date.toISOString();
|
|
4691
4747
|
}
|
|
4692
4748
|
function formatDateRuntime(date) {
|
|
4693
|
-
return `new Date(${format(date.getTime())})`;
|
|
4749
|
+
return `new globalThis.Date(${format(date.getTime())})`;
|
|
4694
4750
|
}
|
|
4695
4751
|
/**
|
|
4696
4752
|
* Validates that a Date is greater than the specified value (exclusive).
|
|
@@ -6228,8 +6284,7 @@ export const DateFromString = /*#__PURE__*/DateString.pipe(/*#__PURE__*/decodeTo
|
|
|
6228
6284
|
*/
|
|
6229
6285
|
export const DateFromMillis = /*#__PURE__*/Int.pipe(/*#__PURE__*/decodeTo(Date, SchemaTransformation.dateFromMillis));
|
|
6230
6286
|
const JsonString = /*#__PURE__*/String.annotate({
|
|
6231
|
-
expected: "a string that will be decoded as JSON"
|
|
6232
|
-
contentMediaType: "application/json"
|
|
6287
|
+
expected: "a string that will be decoded as JSON"
|
|
6233
6288
|
});
|
|
6234
6289
|
/**
|
|
6235
6290
|
* Returns a schema that decodes a JSON string and then decodes the parsed value
|
|
@@ -8377,6 +8432,20 @@ const durationFromMillis = /*#__PURE__*/SchemaTransformation.transform({
|
|
|
8377
8432
|
decode: i => Duration_.millis(i),
|
|
8378
8433
|
encode: a => Duration_.toMillis(a)
|
|
8379
8434
|
});
|
|
8435
|
+
const durationFromIsoString = /*#__PURE__*/SchemaTransformation.transformEffect({
|
|
8436
|
+
decode: (s, options) => Option_.match(Duration_.fromIso(s), {
|
|
8437
|
+
onNone: () => Effect.fail(new SchemaIssue.InvalidValue({
|
|
8438
|
+
expected: "an ISO 8601 duration without years or months"
|
|
8439
|
+
}, s, options)),
|
|
8440
|
+
onSome: Effect.succeed
|
|
8441
|
+
}),
|
|
8442
|
+
encode: (a, options) => Option_.match(Duration_.formatIso(a), {
|
|
8443
|
+
onNone: () => Effect.fail(new SchemaIssue.InvalidValue({
|
|
8444
|
+
expected: "a finite Duration"
|
|
8445
|
+
}, a, options)),
|
|
8446
|
+
onSome: Effect.succeed
|
|
8447
|
+
})
|
|
8448
|
+
});
|
|
8380
8449
|
/**
|
|
8381
8450
|
* Schema for `Duration` values.
|
|
8382
8451
|
*
|
|
@@ -8516,6 +8585,30 @@ export const DurationFromNanos = /*#__PURE__*/BigInt.pipe(/*#__PURE__*/decodeTo(
|
|
|
8516
8585
|
* @since 3.10.0
|
|
8517
8586
|
*/
|
|
8518
8587
|
export const DurationFromMillis = /*#__PURE__*/Number.pipe(/*#__PURE__*/decodeTo(Duration, durationFromMillis));
|
|
8588
|
+
/**
|
|
8589
|
+
* Schema that decodes an ISO 8601 duration string into a `Duration`.
|
|
8590
|
+
*
|
|
8591
|
+
* **Details**
|
|
8592
|
+
*
|
|
8593
|
+
* Decoding:
|
|
8594
|
+
* - A string accepted by `Duration.fromIso` is decoded as a `Duration`, such
|
|
8595
|
+
* as `"PT1H30M"`, `"P1W2D"`, or `"-PT0.5S"`. Years and months are rejected
|
|
8596
|
+
* because they have no fixed length.
|
|
8597
|
+
*
|
|
8598
|
+
* Encoding:
|
|
8599
|
+
* - A finite `Duration` is encoded with `Duration.formatIso`, using days,
|
|
8600
|
+
* hours, minutes, and seconds. Encoding fails for `Duration.infinity` and
|
|
8601
|
+
* `Duration.negativeInfinity`.
|
|
8602
|
+
*
|
|
8603
|
+
* @see {@link DurationFromString} for the `"5 seconds"` string format
|
|
8604
|
+
*
|
|
8605
|
+
* @stability stable
|
|
8606
|
+
* @category schemas
|
|
8607
|
+
* @since 4.1.0
|
|
8608
|
+
*/
|
|
8609
|
+
export const DurationFromIsoString = /*#__PURE__*/String.annotate({
|
|
8610
|
+
expected: "an ISO 8601 duration string that will be decoded as a Duration"
|
|
8611
|
+
}).pipe(/*#__PURE__*/decodeTo(Duration, durationFromIsoString));
|
|
8519
8612
|
/**
|
|
8520
8613
|
* Schema for supported DNS record types such as `"A"` or `"SRV"`.
|
|
8521
8614
|
*
|
|
@@ -8745,6 +8838,568 @@ export const DnsTxtRecord = /*#__PURE__*/dnsRecordOfType("TXT", {
|
|
|
8745
8838
|
export const DnsRecord = /*#__PURE__*/Union([DnsARecord, DnsAaaaRecord, DnsCaaRecord, DnsCnameRecord, DnsMxRecord, DnsNaptrRecord, DnsNsRecord, DnsPtrRecord, DnsSoaRecord, DnsSrvRecord, DnsTlsaRecord, DnsTxtRecord]).annotate({
|
|
8746
8839
|
identifier: "DnsRecord"
|
|
8747
8840
|
});
|
|
8841
|
+
const cryptoAlgorithmEquals = (self, that) => self === that || self.name === that.name && self.hash?.name === that.hash?.name && self.saltLength === that.saltLength;
|
|
8842
|
+
const cryptoDigestCode = hash => `Digest.${hash.name.toLowerCase().replace("-", "")}`;
|
|
8843
|
+
const cryptoAlgorithmCode = (family, algorithm) => {
|
|
8844
|
+
if (algorithm.modulusLength === undefined || algorithm.hash === undefined || algorithm._tag === undefined) {
|
|
8845
|
+
const code = `${family}.${algorithm.name}`;
|
|
8846
|
+
return algorithm.hash === undefined ? code : `{ ...${code}, hash: ${cryptoDigestCode(algorithm.hash)} }`;
|
|
8847
|
+
}
|
|
8848
|
+
const factory = algorithm._tag.charAt(0).toLowerCase() + algorithm._tag.slice(1);
|
|
8849
|
+
const saltLength = algorithm.saltLength === undefined ? "" : `, saltLength: ${algorithm.saltLength}`;
|
|
8850
|
+
return `${family}.${factory}({ hash: ${cryptoDigestCode(algorithm.hash)}, modulusLength: ${algorithm.modulusLength}${saltLength} })`;
|
|
8851
|
+
};
|
|
8852
|
+
const cryptoAlgorithmPayload = algorithm => {
|
|
8853
|
+
const payload = {
|
|
8854
|
+
name: algorithm.name
|
|
8855
|
+
};
|
|
8856
|
+
if (algorithm.hash !== undefined) payload.hash = algorithm.hash.name;
|
|
8857
|
+
if (algorithm.modulusLength !== undefined) payload.modulusLength = algorithm.modulusLength;
|
|
8858
|
+
if (algorithm.saltLength !== undefined) payload.saltLength = algorithm.saltLength;
|
|
8859
|
+
return payload;
|
|
8860
|
+
};
|
|
8861
|
+
const declareCryptoKey = (name, family, type, is, algorithm) => {
|
|
8862
|
+
const code = cryptoAlgorithmCode(family, algorithm);
|
|
8863
|
+
const forbidden = SchemaGetter.forbidden(() => `Cannot serialize ${family}.${type} values as JSON, use Schema.${name}FromFormat to read and write keys`);
|
|
8864
|
+
return declare(u => is(u) && cryptoAlgorithmEquals(u.algorithm, algorithm), {
|
|
8865
|
+
expected: `${family}.${type} for ${algorithm.name}`,
|
|
8866
|
+
representation: {
|
|
8867
|
+
id: `effect/crypto/${name}`,
|
|
8868
|
+
payload: cryptoAlgorithmPayload(algorithm)
|
|
8869
|
+
},
|
|
8870
|
+
toCode: () => ({
|
|
8871
|
+
runtime: `Schema.${name}(${code})`,
|
|
8872
|
+
Type: `${family}.${type}`,
|
|
8873
|
+
importDeclarations: [`import * as ${family} from "effect/crypto/${family}"`, ...(code.includes("Digest.") ? [`import * as Digest from "effect/crypto/Digest"`] : [])]
|
|
8874
|
+
}),
|
|
8875
|
+
toCodecJson: () => link()(Unknown, {
|
|
8876
|
+
decode: forbidden,
|
|
8877
|
+
encode: forbidden
|
|
8878
|
+
}),
|
|
8879
|
+
// Keys have no Arbitrary: linking to `Never` makes derivation fail.
|
|
8880
|
+
toCodecArbitrary: () => link()(Never, {
|
|
8881
|
+
decode: forbidden,
|
|
8882
|
+
encode: forbidden
|
|
8883
|
+
}),
|
|
8884
|
+
toFormatter: () => key => globalThis.String(key),
|
|
8885
|
+
toEquivalence: () => (self, that) => self === that
|
|
8886
|
+
});
|
|
8887
|
+
};
|
|
8888
|
+
const cryptoIssue = (error, input, options) => new SchemaIssue.InvalidValue({
|
|
8889
|
+
message: error.message,
|
|
8890
|
+
cause: error
|
|
8891
|
+
}, input, options);
|
|
8892
|
+
const cryptoForbiddenEncode = (name, key, options) => Effect.fail(new SchemaIssue.Forbidden({
|
|
8893
|
+
message: `Schema.${name} only decodes, pass { allowEncode: true } to encode the key`
|
|
8894
|
+
}, key, options));
|
|
8895
|
+
const cryptoKeyFromBytes = (name, to, fromBytes, toBytes) => Uint8Array.pipe(decodeTo(to, SchemaTransformation.transformEffect({
|
|
8896
|
+
decode: (bytes, options) => Effect.mapError(fromBytes(bytes), error => cryptoIssue(error, bytes, options)),
|
|
8897
|
+
encode: (key, options) => toBytes === undefined ? cryptoForbiddenEncode(name, key, options) : Effect.mapError(toBytes(key), error => cryptoIssue(error, key, options))
|
|
8898
|
+
})));
|
|
8899
|
+
const CryptoJsonWebKeyMember = /*#__PURE__*/optionalKey(String);
|
|
8900
|
+
// The JWK members of RFC 7517 and RFC 7518 that `KeyFormat` reads and writes.
|
|
8901
|
+
// Other members are dropped.
|
|
8902
|
+
const CryptoJsonWebKey = /*#__PURE__*/Struct({
|
|
8903
|
+
kty: CryptoJsonWebKeyMember,
|
|
8904
|
+
crv: CryptoJsonWebKeyMember,
|
|
8905
|
+
alg: CryptoJsonWebKeyMember,
|
|
8906
|
+
use: CryptoJsonWebKeyMember,
|
|
8907
|
+
key_ops: /*#__PURE__*/optionalKey(/*#__PURE__*/ArraySchema(String)),
|
|
8908
|
+
ext: /*#__PURE__*/optionalKey(Boolean),
|
|
8909
|
+
k: CryptoJsonWebKeyMember,
|
|
8910
|
+
x: CryptoJsonWebKeyMember,
|
|
8911
|
+
y: CryptoJsonWebKeyMember,
|
|
8912
|
+
d: CryptoJsonWebKeyMember,
|
|
8913
|
+
n: CryptoJsonWebKeyMember,
|
|
8914
|
+
e: CryptoJsonWebKeyMember,
|
|
8915
|
+
p: CryptoJsonWebKeyMember,
|
|
8916
|
+
q: CryptoJsonWebKeyMember,
|
|
8917
|
+
dp: CryptoJsonWebKeyMember,
|
|
8918
|
+
dq: CryptoJsonWebKeyMember,
|
|
8919
|
+
qi: CryptoJsonWebKeyMember,
|
|
8920
|
+
oth: /*#__PURE__*/optionalKey(/*#__PURE__*/ArraySchema(/*#__PURE__*/Struct({
|
|
8921
|
+
r: CryptoJsonWebKeyMember,
|
|
8922
|
+
d: CryptoJsonWebKeyMember,
|
|
8923
|
+
t: CryptoJsonWebKeyMember
|
|
8924
|
+
})))
|
|
8925
|
+
});
|
|
8926
|
+
const cryptoFormatData = format => format._tag === "jwk" ? CryptoJsonWebKey : format.pem ? String : Uint8Array;
|
|
8927
|
+
const cryptoKeyFromFormat = (name, to, format, decode, canEncode) => {
|
|
8928
|
+
// PKCS#1 and SEC1 are read only.
|
|
8929
|
+
const writable = canEncode && format._tag !== "pkcs1" && format._tag !== "sec1";
|
|
8930
|
+
return cryptoFormatData(format).pipe(decodeTo(to, SchemaTransformation.transformEffect({
|
|
8931
|
+
decode: (data, options) =>
|
|
8932
|
+
// Secret JWK decoding is synchronous, but all format schemas are async-only.
|
|
8933
|
+
Effect.flatMap(Effect.promise(() => Promise.resolve()), () => Effect.mapError(decode(data), error => cryptoIssue(error, data, options))),
|
|
8934
|
+
encode: (key, options) => writable ? Effect.mapError(KeyFormat_.encode(format, key), error => cryptoIssue(error, key, options)) : cryptoForbiddenEncode(name, key, options)
|
|
8935
|
+
})));
|
|
8936
|
+
};
|
|
8937
|
+
/**
|
|
8938
|
+
* Schema for live `Mac.Key` values of an algorithm.
|
|
8939
|
+
*
|
|
8940
|
+
* **Details**
|
|
8941
|
+
*
|
|
8942
|
+
* Decoding checks the key's algorithm and returns the key itself. The key has
|
|
8943
|
+
* no JSON form: `toCodecJson` fails with a `Forbidden` issue, so use
|
|
8944
|
+
* {@link MacKeyFromFormat} or {@link MacKeyFromBytes} to read and write keys.
|
|
8945
|
+
* Keys display redacted, compare by reference, and have no `Arbitrary`.
|
|
8946
|
+
*
|
|
8947
|
+
* @stability unstable
|
|
8948
|
+
* @category crypto
|
|
8949
|
+
* @since 4.0.0
|
|
8950
|
+
*/
|
|
8951
|
+
export const MacKey = algorithm => declareCryptoKey("MacKey", "Mac", "Key", Mac_.isKey, algorithm);
|
|
8952
|
+
/**
|
|
8953
|
+
* Schema that decodes raw key bytes into a `Mac.Key`.
|
|
8954
|
+
*
|
|
8955
|
+
* **Details**
|
|
8956
|
+
*
|
|
8957
|
+
* Decoding runs `Mac.key`, which is synchronous, so the schema works with
|
|
8958
|
+
* `Schema.decodeSync`. Under `Config.schema` the bytes are read as base64. A
|
|
8959
|
+
* `CryptoError` becomes an `InvalidValue` issue whose `cause` is the error.
|
|
8960
|
+
* Encoding fails with a `Forbidden` issue unless `allowEncode` is `true`.
|
|
8961
|
+
*
|
|
8962
|
+
* **Example** (Reading an HMAC key from the environment)
|
|
8963
|
+
*
|
|
8964
|
+
* ```ts import.meta.vitest
|
|
8965
|
+
* import { Config, ConfigProvider, Effect, Schema } from "effect"
|
|
8966
|
+
* import { Mac } from "effect/crypto"
|
|
8967
|
+
*
|
|
8968
|
+
* const config = Config.schema(Schema.MacKeyFromBytes(Mac.hmacSha256), "HMAC_KEY")
|
|
8969
|
+
* const provider = ConfigProvider.fromEnv({ env: { HMAC_KEY: "A".repeat(43) + "=" } })
|
|
8970
|
+
* const key = await Effect.runPromise(Effect.provide(config, ConfigProvider.layer(provider)))
|
|
8971
|
+
* key.algorithm.name // => "hmacSha256"
|
|
8972
|
+
* ```
|
|
8973
|
+
*
|
|
8974
|
+
* @stability unstable
|
|
8975
|
+
* @category crypto
|
|
8976
|
+
* @since 4.0.0
|
|
8977
|
+
*/
|
|
8978
|
+
export const MacKeyFromBytes = (algorithm, options) => cryptoKeyFromBytes("MacKeyFromBytes", MacKey(algorithm), bytes => Mac_.key(algorithm, bytes), options?.allowEncode === true ? Mac_.toBytes : undefined);
|
|
8979
|
+
/**
|
|
8980
|
+
* Schema that decodes a `Mac.Key` from a JWK with `KeyFormat.decodeSecret`.
|
|
8981
|
+
*
|
|
8982
|
+
* **Details**
|
|
8983
|
+
*
|
|
8984
|
+
* Decoding returns an Effect, so use the async decoding functions:
|
|
8985
|
+
* `Schema.decodeSync` throws. A `CryptoError` becomes an `InvalidValue` issue
|
|
8986
|
+
* whose `cause` is the error. Encoding fails with a `Forbidden` issue unless
|
|
8987
|
+
* `allowEncode` is `true`.
|
|
8988
|
+
*
|
|
8989
|
+
* @stability unstable
|
|
8990
|
+
* @category crypto
|
|
8991
|
+
* @since 4.0.0
|
|
8992
|
+
*/
|
|
8993
|
+
export const MacKeyFromFormat = (format, algorithm, options) => cryptoKeyFromFormat("MacKeyFromFormat", MacKey(algorithm), format, data => KeyFormat_.decodeSecret(format, algorithm, data), options?.allowEncode === true);
|
|
8994
|
+
/**
|
|
8995
|
+
* Schema for live `Aead.Key` values of an algorithm.
|
|
8996
|
+
*
|
|
8997
|
+
* **Details**
|
|
8998
|
+
*
|
|
8999
|
+
* Decoding checks the key's algorithm and returns the key itself. The key has
|
|
9000
|
+
* no JSON form: `toCodecJson` fails with a `Forbidden` issue, so use
|
|
9001
|
+
* {@link AeadKeyFromFormat} or {@link AeadKeyFromBytes} to read and write
|
|
9002
|
+
* keys. Keys display redacted, compare by reference, and have no `Arbitrary`.
|
|
9003
|
+
*
|
|
9004
|
+
* @stability unstable
|
|
9005
|
+
* @category crypto
|
|
9006
|
+
* @since 4.0.0
|
|
9007
|
+
*/
|
|
9008
|
+
export const AeadKey = algorithm => declareCryptoKey("AeadKey", "Aead", "Key", Aead_.isKey, algorithm);
|
|
9009
|
+
/**
|
|
9010
|
+
* Schema that decodes raw key bytes into an `Aead.Key`.
|
|
9011
|
+
*
|
|
9012
|
+
* **Details**
|
|
9013
|
+
*
|
|
9014
|
+
* Decoding runs `Aead.key`, which is synchronous, so the schema works with
|
|
9015
|
+
* `Schema.decodeSync`. Under `Config.schema` the bytes are read as base64. A
|
|
9016
|
+
* `CryptoError` becomes an `InvalidValue` issue whose `cause` is the error.
|
|
9017
|
+
* Encoding fails with a `Forbidden` issue unless `allowEncode` is `true`.
|
|
9018
|
+
*
|
|
9019
|
+
* @stability unstable
|
|
9020
|
+
* @category crypto
|
|
9021
|
+
* @since 4.0.0
|
|
9022
|
+
*/
|
|
9023
|
+
export const AeadKeyFromBytes = (algorithm, options) => cryptoKeyFromBytes("AeadKeyFromBytes", AeadKey(algorithm), bytes => Aead_.key(algorithm, bytes), options?.allowEncode === true ? Aead_.toBytes : undefined);
|
|
9024
|
+
/**
|
|
9025
|
+
* Schema that decodes an `Aead.Key` from a JWK with `KeyFormat.decodeSecret`.
|
|
9026
|
+
*
|
|
9027
|
+
* **Details**
|
|
9028
|
+
*
|
|
9029
|
+
* Decoding returns an Effect, so use the async decoding functions:
|
|
9030
|
+
* `Schema.decodeSync` throws. A `CryptoError` becomes an `InvalidValue` issue
|
|
9031
|
+
* whose `cause` is the error. Encoding fails with a `Forbidden` issue unless
|
|
9032
|
+
* `allowEncode` is `true`.
|
|
9033
|
+
*
|
|
9034
|
+
* @stability unstable
|
|
9035
|
+
* @category crypto
|
|
9036
|
+
* @since 4.0.0
|
|
9037
|
+
*/
|
|
9038
|
+
export const AeadKeyFromFormat = (format, algorithm, options) => cryptoKeyFromFormat("AeadKeyFromFormat", AeadKey(algorithm), format, data => KeyFormat_.decodeSecret(format, algorithm, data), options?.allowEncode === true);
|
|
9039
|
+
/**
|
|
9040
|
+
* Schema for live `Cipher.Key` values of an algorithm.
|
|
9041
|
+
*
|
|
9042
|
+
* **Details**
|
|
9043
|
+
*
|
|
9044
|
+
* Decoding checks the key's algorithm and returns the key itself. The key has
|
|
9045
|
+
* no JSON form: `toCodecJson` fails with a `Forbidden` issue, so use
|
|
9046
|
+
* {@link CipherKeyFromFormat} or {@link CipherKeyFromBytes} to read and
|
|
9047
|
+
* write keys. Keys display redacted, compare by reference, and have no
|
|
9048
|
+
* `Arbitrary`.
|
|
9049
|
+
*
|
|
9050
|
+
* @stability unstable
|
|
9051
|
+
* @category crypto
|
|
9052
|
+
* @since 4.0.0
|
|
9053
|
+
*/
|
|
9054
|
+
export const CipherKey = algorithm => declareCryptoKey("CipherKey", "Cipher", "Key", Cipher_.isKey, algorithm);
|
|
9055
|
+
/**
|
|
9056
|
+
* Schema that decodes raw key bytes into a `Cipher.Key`.
|
|
9057
|
+
*
|
|
9058
|
+
* **Details**
|
|
9059
|
+
*
|
|
9060
|
+
* Decoding runs `Cipher.key`, which is synchronous, so the schema works with
|
|
9061
|
+
* `Schema.decodeSync`. Under `Config.schema` the bytes are read as base64. A
|
|
9062
|
+
* `CryptoError` becomes an `InvalidValue` issue whose `cause` is the error.
|
|
9063
|
+
* Encoding fails with a `Forbidden` issue unless `allowEncode` is `true`.
|
|
9064
|
+
*
|
|
9065
|
+
* @stability unstable
|
|
9066
|
+
* @category crypto
|
|
9067
|
+
* @since 4.0.0
|
|
9068
|
+
*/
|
|
9069
|
+
export const CipherKeyFromBytes = (algorithm, options) => cryptoKeyFromBytes("CipherKeyFromBytes", CipherKey(algorithm), bytes => Cipher_.key(algorithm, bytes), options?.allowEncode === true ? Cipher_.toBytes : undefined);
|
|
9070
|
+
/**
|
|
9071
|
+
* Schema that decodes a `Cipher.Key` from a JWK with
|
|
9072
|
+
* `KeyFormat.decodeSecret`.
|
|
9073
|
+
*
|
|
9074
|
+
* **Details**
|
|
9075
|
+
*
|
|
9076
|
+
* Decoding returns an Effect, so use the async decoding functions:
|
|
9077
|
+
* `Schema.decodeSync` throws. A `CryptoError` becomes an `InvalidValue` issue
|
|
9078
|
+
* whose `cause` is the error. Encoding fails with a `Forbidden` issue unless
|
|
9079
|
+
* `allowEncode` is `true`.
|
|
9080
|
+
*
|
|
9081
|
+
* @stability unstable
|
|
9082
|
+
* @category crypto
|
|
9083
|
+
* @since 4.0.0
|
|
9084
|
+
*/
|
|
9085
|
+
export const CipherKeyFromFormat = (format, algorithm, options) => cryptoKeyFromFormat("CipherKeyFromFormat", CipherKey(algorithm), format, data => KeyFormat_.decodeSecret(format, algorithm, data), options?.allowEncode === true);
|
|
9086
|
+
/**
|
|
9087
|
+
* Schema for live `Signature.PublicKey` values of an algorithm.
|
|
9088
|
+
*
|
|
9089
|
+
* **Details**
|
|
9090
|
+
*
|
|
9091
|
+
* Decoding checks the key's algorithm and returns the key itself. The key has
|
|
9092
|
+
* no JSON form: `toCodecJson` fails with a `Forbidden` issue, so use
|
|
9093
|
+
* {@link SignaturePublicKeyFromFormat} or {@link SignaturePublicKeyFromBytes}
|
|
9094
|
+
* to read and write keys. Keys compare by reference and have no `Arbitrary`.
|
|
9095
|
+
*
|
|
9096
|
+
* @stability unstable
|
|
9097
|
+
* @category crypto
|
|
9098
|
+
* @since 4.0.0
|
|
9099
|
+
*/
|
|
9100
|
+
export const SignaturePublicKey = algorithm => declareCryptoKey("SignaturePublicKey", "Signature", "PublicKey", Signature_.isPublicKey, algorithm);
|
|
9101
|
+
/**
|
|
9102
|
+
* Schema that decodes a raw public key into a `Signature.PublicKey`: 32 bytes
|
|
9103
|
+
* for Ed25519, or an uncompressed SEC1 point for ECDSA.
|
|
9104
|
+
*
|
|
9105
|
+
* **Details**
|
|
9106
|
+
*
|
|
9107
|
+
* Decoding runs `Signature.publicKey`, which is synchronous, so the schema
|
|
9108
|
+
* works with `Schema.decodeSync`. Under `Config.schema` the bytes are read as
|
|
9109
|
+
* base64. A `CryptoError` becomes an `InvalidValue` issue whose `cause` is
|
|
9110
|
+
* the error. RSA public keys have no raw form, so passing an RSA algorithm is
|
|
9111
|
+
* a type error.
|
|
9112
|
+
*
|
|
9113
|
+
* @stability unstable
|
|
9114
|
+
* @category crypto
|
|
9115
|
+
* @since 4.0.0
|
|
9116
|
+
*/
|
|
9117
|
+
export const SignaturePublicKeyFromBytes = algorithm => cryptoKeyFromBytes("SignaturePublicKeyFromBytes", SignaturePublicKey(algorithm), bytes => Signature_.publicKey(algorithm, bytes), Signature_.toBytes);
|
|
9118
|
+
/**
|
|
9119
|
+
* Schema that decodes a `Signature.PublicKey` with
|
|
9120
|
+
* `KeyFormat.decodePublic` and encodes it with `KeyFormat.encode`.
|
|
9121
|
+
*
|
|
9122
|
+
* **Details**
|
|
9123
|
+
*
|
|
9124
|
+
* The format must hold public keys: `KeyFormat.spki`, `KeyFormat.jwk`, or
|
|
9125
|
+
* `KeyFormat.pem(KeyFormat.spki)`. A format for another role is a type
|
|
9126
|
+
* error. Decoding runs the runtime's key import, so use the async decoding
|
|
9127
|
+
* functions: `Schema.decodeSync` throws. A `CryptoError` becomes an
|
|
9128
|
+
* `InvalidValue` issue whose `cause` is the error.
|
|
9129
|
+
*
|
|
9130
|
+
* @stability unstable
|
|
9131
|
+
* @category crypto
|
|
9132
|
+
* @since 4.0.0
|
|
9133
|
+
*/
|
|
9134
|
+
export const SignaturePublicKeyFromFormat = (format, algorithm) => cryptoKeyFromFormat("SignaturePublicKeyFromFormat", SignaturePublicKey(algorithm), format, data => KeyFormat_.decodePublic(format, algorithm, data), true);
|
|
9135
|
+
/**
|
|
9136
|
+
* Schema for live `Signature.PrivateKey` values of an algorithm.
|
|
9137
|
+
*
|
|
9138
|
+
* **Details**
|
|
9139
|
+
*
|
|
9140
|
+
* Decoding checks the key's algorithm and returns the key itself. The key has
|
|
9141
|
+
* no JSON form: `toCodecJson` fails with a `Forbidden` issue, so use
|
|
9142
|
+
* {@link SignaturePrivateKeyFromFormat} or
|
|
9143
|
+
* {@link SignaturePrivateKeyFromBytes} to read and write keys. Keys display
|
|
9144
|
+
* redacted, compare by reference, and have no `Arbitrary`.
|
|
9145
|
+
*
|
|
9146
|
+
* @stability unstable
|
|
9147
|
+
* @category crypto
|
|
9148
|
+
* @since 4.0.0
|
|
9149
|
+
*/
|
|
9150
|
+
export const SignaturePrivateKey = algorithm => declareCryptoKey("SignaturePrivateKey", "Signature", "PrivateKey", Signature_.isPrivateKey, algorithm);
|
|
9151
|
+
/**
|
|
9152
|
+
* Schema that decodes an Ed25519 seed into a `Signature.PrivateKey`.
|
|
9153
|
+
*
|
|
9154
|
+
* **Details**
|
|
9155
|
+
*
|
|
9156
|
+
* Decoding runs `Signature.privateKey`, which is synchronous, so the schema
|
|
9157
|
+
* works with `Schema.decodeSync`. Under `Config.schema` the bytes are read as
|
|
9158
|
+
* base64. A `CryptoError` becomes an `InvalidValue` issue whose `cause` is
|
|
9159
|
+
* the error. ECDSA and RSA private keys have no raw form, so passing them is
|
|
9160
|
+
* a type error. Encoding fails with a `Forbidden` issue unless `allowEncode`
|
|
9161
|
+
* is `true`.
|
|
9162
|
+
*
|
|
9163
|
+
* @stability unstable
|
|
9164
|
+
* @category crypto
|
|
9165
|
+
* @since 4.0.0
|
|
9166
|
+
*/
|
|
9167
|
+
export const SignaturePrivateKeyFromBytes = (algorithm, options) => cryptoKeyFromBytes("SignaturePrivateKeyFromBytes", SignaturePrivateKey(algorithm), bytes => Signature_.privateKey(algorithm, bytes), options?.allowEncode === true ? Signature_.toBytes : undefined);
|
|
9168
|
+
/**
|
|
9169
|
+
* Schema that decodes a `Signature.PrivateKey` with
|
|
9170
|
+
* `KeyFormat.decodePrivate`.
|
|
9171
|
+
*
|
|
9172
|
+
* **Details**
|
|
9173
|
+
*
|
|
9174
|
+
* The format must hold private keys: `KeyFormat.pkcs8`, `KeyFormat.jwk`,
|
|
9175
|
+
* `KeyFormat.pkcs1`, `KeyFormat.sec1`, or their PEM forms. A format for
|
|
9176
|
+
* another role is a type error. Decoding runs the runtime's key import, so
|
|
9177
|
+
* use the async decoding functions: `Schema.decodeSync` throws. A
|
|
9178
|
+
* `CryptoError` becomes an `InvalidValue` issue whose `cause` is the error.
|
|
9179
|
+
* Encoding fails with a `Forbidden` issue unless `allowEncode` is `true`,
|
|
9180
|
+
* and always for the read-only PKCS#1 and SEC1 formats.
|
|
9181
|
+
*
|
|
9182
|
+
* @stability unstable
|
|
9183
|
+
* @category crypto
|
|
9184
|
+
* @since 4.0.0
|
|
9185
|
+
*/
|
|
9186
|
+
export const SignaturePrivateKeyFromFormat = (format, algorithm, options) => cryptoKeyFromFormat("SignaturePrivateKeyFromFormat", SignaturePrivateKey(algorithm), format, data => KeyFormat_.decodePrivate(format, algorithm, data), options?.allowEncode === true);
|
|
9187
|
+
/**
|
|
9188
|
+
* Schema for live `KeyAgreement.PublicKey` values of an algorithm.
|
|
9189
|
+
*
|
|
9190
|
+
* **Details**
|
|
9191
|
+
*
|
|
9192
|
+
* Decoding checks the key's algorithm and returns the key itself. The key has
|
|
9193
|
+
* no JSON form: `toCodecJson` fails with a `Forbidden` issue, so use
|
|
9194
|
+
* {@link KeyAgreementPublicKeyFromFormat} or
|
|
9195
|
+
* {@link KeyAgreementPublicKeyFromBytes} to read and write keys. Keys compare
|
|
9196
|
+
* by reference and have no `Arbitrary`.
|
|
9197
|
+
*
|
|
9198
|
+
* @stability unstable
|
|
9199
|
+
* @category crypto
|
|
9200
|
+
* @since 4.0.0
|
|
9201
|
+
*/
|
|
9202
|
+
export const KeyAgreementPublicKey = algorithm => declareCryptoKey("KeyAgreementPublicKey", "KeyAgreement", "PublicKey", KeyAgreement_.isPublicKey, algorithm);
|
|
9203
|
+
/**
|
|
9204
|
+
* Schema that decodes a raw public key into a `KeyAgreement.PublicKey`: 32
|
|
9205
|
+
* bytes for X25519, or an uncompressed SEC1 point for ECDH.
|
|
9206
|
+
*
|
|
9207
|
+
* **Details**
|
|
9208
|
+
*
|
|
9209
|
+
* Decoding runs `KeyAgreement.publicKey`, which is synchronous, so the schema
|
|
9210
|
+
* works with `Schema.decodeSync`. Under `Config.schema` the bytes are read as
|
|
9211
|
+
* base64. A `CryptoError` becomes an `InvalidValue` issue whose `cause` is
|
|
9212
|
+
* the error.
|
|
9213
|
+
*
|
|
9214
|
+
* @stability unstable
|
|
9215
|
+
* @category crypto
|
|
9216
|
+
* @since 4.0.0
|
|
9217
|
+
*/
|
|
9218
|
+
export const KeyAgreementPublicKeyFromBytes = algorithm => cryptoKeyFromBytes("KeyAgreementPublicKeyFromBytes", KeyAgreementPublicKey(algorithm), bytes => KeyAgreement_.publicKey(algorithm, bytes), KeyAgreement_.toBytes);
|
|
9219
|
+
/**
|
|
9220
|
+
* Schema that decodes a `KeyAgreement.PublicKey` with
|
|
9221
|
+
* `KeyFormat.decodePublic` and encodes it with `KeyFormat.encode`.
|
|
9222
|
+
*
|
|
9223
|
+
* **Details**
|
|
9224
|
+
*
|
|
9225
|
+
* The format must hold public keys: `KeyFormat.spki`, `KeyFormat.jwk`, or
|
|
9226
|
+
* `KeyFormat.pem(KeyFormat.spki)`. A format for another role is a type
|
|
9227
|
+
* error. Decoding runs the runtime's key import, so use the async decoding
|
|
9228
|
+
* functions: `Schema.decodeSync` throws. A `CryptoError` becomes an
|
|
9229
|
+
* `InvalidValue` issue whose `cause` is the error.
|
|
9230
|
+
*
|
|
9231
|
+
* @stability unstable
|
|
9232
|
+
* @category crypto
|
|
9233
|
+
* @since 4.0.0
|
|
9234
|
+
*/
|
|
9235
|
+
export const KeyAgreementPublicKeyFromFormat = (format, algorithm) => cryptoKeyFromFormat("KeyAgreementPublicKeyFromFormat", KeyAgreementPublicKey(algorithm), format, data => KeyFormat_.decodePublic(format, algorithm, data), true);
|
|
9236
|
+
/**
|
|
9237
|
+
* Schema for live `KeyAgreement.PrivateKey` values of an algorithm.
|
|
9238
|
+
*
|
|
9239
|
+
* **Details**
|
|
9240
|
+
*
|
|
9241
|
+
* Decoding checks the key's algorithm and returns the key itself. The key has
|
|
9242
|
+
* no JSON form: `toCodecJson` fails with a `Forbidden` issue, so use
|
|
9243
|
+
* {@link KeyAgreementPrivateKeyFromFormat} or
|
|
9244
|
+
* {@link KeyAgreementPrivateKeyFromBytes} to read and write keys. Keys
|
|
9245
|
+
* display redacted, compare by reference, and have no `Arbitrary`.
|
|
9246
|
+
*
|
|
9247
|
+
* @stability unstable
|
|
9248
|
+
* @category crypto
|
|
9249
|
+
* @since 4.0.0
|
|
9250
|
+
*/
|
|
9251
|
+
export const KeyAgreementPrivateKey = algorithm => declareCryptoKey("KeyAgreementPrivateKey", "KeyAgreement", "PrivateKey", KeyAgreement_.isPrivateKey, algorithm);
|
|
9252
|
+
/**
|
|
9253
|
+
* Schema that decodes an X25519 private key into a
|
|
9254
|
+
* `KeyAgreement.PrivateKey`.
|
|
9255
|
+
*
|
|
9256
|
+
* **Details**
|
|
9257
|
+
*
|
|
9258
|
+
* Decoding runs `KeyAgreement.privateKey`, which is synchronous, so the
|
|
9259
|
+
* schema works with `Schema.decodeSync`. Under `Config.schema` the bytes are
|
|
9260
|
+
* read as base64. A `CryptoError` becomes an `InvalidValue` issue whose
|
|
9261
|
+
* `cause` is the error. ECDH private keys have no raw form, so passing them
|
|
9262
|
+
* is a type error. Encoding fails with a `Forbidden` issue unless
|
|
9263
|
+
* `allowEncode` is `true`.
|
|
9264
|
+
*
|
|
9265
|
+
* @stability unstable
|
|
9266
|
+
* @category crypto
|
|
9267
|
+
* @since 4.0.0
|
|
9268
|
+
*/
|
|
9269
|
+
export const KeyAgreementPrivateKeyFromBytes = (algorithm, options) => cryptoKeyFromBytes("KeyAgreementPrivateKeyFromBytes", KeyAgreementPrivateKey(algorithm), bytes => KeyAgreement_.privateKey(algorithm, bytes), options?.allowEncode === true ? KeyAgreement_.toBytes : undefined);
|
|
9270
|
+
/**
|
|
9271
|
+
* Schema that decodes a `KeyAgreement.PrivateKey` with
|
|
9272
|
+
* `KeyFormat.decodePrivate`.
|
|
9273
|
+
*
|
|
9274
|
+
* **Details**
|
|
9275
|
+
*
|
|
9276
|
+
* The format must hold private keys: `KeyFormat.pkcs8`, `KeyFormat.jwk`,
|
|
9277
|
+
* `KeyFormat.sec1`, or their PEM forms. A format for another role is a type
|
|
9278
|
+
* error. Decoding runs the runtime's key import, so use the async decoding
|
|
9279
|
+
* functions: `Schema.decodeSync` throws. A `CryptoError` becomes an
|
|
9280
|
+
* `InvalidValue` issue whose `cause` is the error. Encoding fails with a
|
|
9281
|
+
* `Forbidden` issue unless `allowEncode` is `true`, and always for the
|
|
9282
|
+
* read-only PKCS#1 and SEC1 formats.
|
|
9283
|
+
*
|
|
9284
|
+
* @stability unstable
|
|
9285
|
+
* @category crypto
|
|
9286
|
+
* @since 4.0.0
|
|
9287
|
+
*/
|
|
9288
|
+
export const KeyAgreementPrivateKeyFromFormat = (format, algorithm, options) => cryptoKeyFromFormat("KeyAgreementPrivateKeyFromFormat", KeyAgreementPrivateKey(algorithm), format, data => KeyFormat_.decodePrivate(format, algorithm, data), options?.allowEncode === true);
|
|
9289
|
+
/**
|
|
9290
|
+
* Schema for live AES-KW `KeyWrap.Key` values of an algorithm.
|
|
9291
|
+
*
|
|
9292
|
+
* **Details**
|
|
9293
|
+
*
|
|
9294
|
+
* Decoding checks the key's algorithm and returns the key itself. The key has
|
|
9295
|
+
* no JSON form: `toCodecJson` fails with a `Forbidden` issue, so use
|
|
9296
|
+
* {@link KeyWrapKeyFromFormat} or {@link KeyWrapKeyFromBytes} to read and
|
|
9297
|
+
* write keys. Keys display redacted, compare by reference, and have no
|
|
9298
|
+
* `Arbitrary`.
|
|
9299
|
+
*
|
|
9300
|
+
* @stability unstable
|
|
9301
|
+
* @category crypto
|
|
9302
|
+
* @since 4.0.0
|
|
9303
|
+
*/
|
|
9304
|
+
export const KeyWrapKey = algorithm => declareCryptoKey("KeyWrapKey", "KeyWrap", "Key", KeyWrap_.isKey, algorithm);
|
|
9305
|
+
/**
|
|
9306
|
+
* Schema that decodes raw key bytes into an AES-KW `KeyWrap.Key`.
|
|
9307
|
+
*
|
|
9308
|
+
* **Details**
|
|
9309
|
+
*
|
|
9310
|
+
* Decoding runs `KeyWrap.key`, which is synchronous, so the schema works with
|
|
9311
|
+
* `Schema.decodeSync`. Under `Config.schema` the bytes are read as base64. A
|
|
9312
|
+
* `CryptoError` becomes an `InvalidValue` issue whose `cause` is the error.
|
|
9313
|
+
* Encoding fails with a `Forbidden` issue unless `allowEncode` is `true`.
|
|
9314
|
+
*
|
|
9315
|
+
* @stability unstable
|
|
9316
|
+
* @category crypto
|
|
9317
|
+
* @since 4.0.0
|
|
9318
|
+
*/
|
|
9319
|
+
export const KeyWrapKeyFromBytes = (algorithm, options) => cryptoKeyFromBytes("KeyWrapKeyFromBytes", KeyWrapKey(algorithm), bytes => KeyWrap_.key(algorithm, bytes), options?.allowEncode === true ? KeyWrap_.toBytes : undefined);
|
|
9320
|
+
/**
|
|
9321
|
+
* Schema that decodes an AES-KW `KeyWrap.Key` from a JWK with
|
|
9322
|
+
* `KeyFormat.decodeSecret`.
|
|
9323
|
+
*
|
|
9324
|
+
* **Details**
|
|
9325
|
+
*
|
|
9326
|
+
* Decoding returns an Effect, so use the async decoding functions:
|
|
9327
|
+
* `Schema.decodeSync` throws. A `CryptoError` becomes an `InvalidValue` issue
|
|
9328
|
+
* whose `cause` is the error. Encoding fails with a `Forbidden` issue unless
|
|
9329
|
+
* `allowEncode` is `true`.
|
|
9330
|
+
*
|
|
9331
|
+
* @stability unstable
|
|
9332
|
+
* @category crypto
|
|
9333
|
+
* @since 4.0.0
|
|
9334
|
+
*/
|
|
9335
|
+
export const KeyWrapKeyFromFormat = (format, algorithm, options) => cryptoKeyFromFormat("KeyWrapKeyFromFormat", KeyWrapKey(algorithm), format, data => KeyFormat_.decodeSecret(format, algorithm, data), options?.allowEncode === true);
|
|
9336
|
+
/**
|
|
9337
|
+
* Schema for live RSA-OAEP `KeyWrap.PublicKey` values of an algorithm.
|
|
9338
|
+
*
|
|
9339
|
+
* **Details**
|
|
9340
|
+
*
|
|
9341
|
+
* Decoding checks the key's algorithm and returns the key itself. The key has
|
|
9342
|
+
* no JSON form: `toCodecJson` fails with a `Forbidden` issue, so use
|
|
9343
|
+
* {@link KeyWrapPublicKeyFromFormat} to read and write keys. RSA-OAEP keys
|
|
9344
|
+
* have no raw form. Keys compare by reference and have no `Arbitrary`.
|
|
9345
|
+
*
|
|
9346
|
+
* @stability unstable
|
|
9347
|
+
* @category crypto
|
|
9348
|
+
* @since 4.0.0
|
|
9349
|
+
*/
|
|
9350
|
+
export const KeyWrapPublicKey = algorithm => declareCryptoKey("KeyWrapPublicKey", "KeyWrap", "PublicKey", KeyWrap_.isPublicKey, algorithm);
|
|
9351
|
+
/**
|
|
9352
|
+
* Schema that decodes an RSA-OAEP `KeyWrap.PublicKey` with
|
|
9353
|
+
* `KeyFormat.decodePublic` and encodes it with `KeyFormat.encode`.
|
|
9354
|
+
*
|
|
9355
|
+
* **Details**
|
|
9356
|
+
*
|
|
9357
|
+
* The format must hold public keys: `KeyFormat.spki`, `KeyFormat.jwk`, or
|
|
9358
|
+
* `KeyFormat.pem(KeyFormat.spki)`. A format for another role is a type
|
|
9359
|
+
* error. Decoding runs the runtime's key import, so use the async decoding
|
|
9360
|
+
* functions: `Schema.decodeSync` throws. A `CryptoError` becomes an
|
|
9361
|
+
* `InvalidValue` issue whose `cause` is the error.
|
|
9362
|
+
*
|
|
9363
|
+
* @stability unstable
|
|
9364
|
+
* @category crypto
|
|
9365
|
+
* @since 4.0.0
|
|
9366
|
+
*/
|
|
9367
|
+
export const KeyWrapPublicKeyFromFormat = (format, algorithm) => cryptoKeyFromFormat("KeyWrapPublicKeyFromFormat", KeyWrapPublicKey(algorithm), format, data => KeyFormat_.decodePublic(format, algorithm, data), true);
|
|
9368
|
+
/**
|
|
9369
|
+
* Schema for live RSA-OAEP `KeyWrap.PrivateKey` values of an algorithm.
|
|
9370
|
+
*
|
|
9371
|
+
* **Details**
|
|
9372
|
+
*
|
|
9373
|
+
* Decoding checks the key's algorithm and returns the key itself. The key has
|
|
9374
|
+
* no JSON form: `toCodecJson` fails with a `Forbidden` issue, so use
|
|
9375
|
+
* {@link KeyWrapPrivateKeyFromFormat} to read and write keys. RSA-OAEP keys
|
|
9376
|
+
* have no raw form. Keys display redacted, compare by reference, and have no
|
|
9377
|
+
* `Arbitrary`.
|
|
9378
|
+
*
|
|
9379
|
+
* @stability unstable
|
|
9380
|
+
* @category crypto
|
|
9381
|
+
* @since 4.0.0
|
|
9382
|
+
*/
|
|
9383
|
+
export const KeyWrapPrivateKey = algorithm => declareCryptoKey("KeyWrapPrivateKey", "KeyWrap", "PrivateKey", KeyWrap_.isPrivateKey, algorithm);
|
|
9384
|
+
/**
|
|
9385
|
+
* Schema that decodes an RSA-OAEP `KeyWrap.PrivateKey` with
|
|
9386
|
+
* `KeyFormat.decodePrivate`.
|
|
9387
|
+
*
|
|
9388
|
+
* **Details**
|
|
9389
|
+
*
|
|
9390
|
+
* The format must hold private keys: `KeyFormat.pkcs8`, `KeyFormat.jwk`,
|
|
9391
|
+
* `KeyFormat.pkcs1`, or their PEM forms. A format for another role is a type
|
|
9392
|
+
* error. Decoding runs the runtime's key import, so use the async decoding
|
|
9393
|
+
* functions: `Schema.decodeSync` throws. A `CryptoError` becomes an
|
|
9394
|
+
* `InvalidValue` issue whose `cause` is the error. Encoding fails with a
|
|
9395
|
+
* `Forbidden` issue unless `allowEncode` is `true`, and always for the
|
|
9396
|
+
* read-only PKCS#1 format.
|
|
9397
|
+
*
|
|
9398
|
+
* @stability unstable
|
|
9399
|
+
* @category crypto
|
|
9400
|
+
* @since 4.0.0
|
|
9401
|
+
*/
|
|
9402
|
+
export const KeyWrapPrivateKeyFromFormat = (format, algorithm, options) => cryptoKeyFromFormat("KeyWrapPrivateKeyFromFormat", KeyWrapPrivateKey(algorithm), format, data => KeyFormat_.decodePrivate(format, algorithm, data), options?.allowEncode === true);
|
|
8748
9403
|
/**
|
|
8749
9404
|
* Creates a schema for `Exit` values using schemas for the success value, typed
|
|
8750
9405
|
* failure, and unexpected defect channels.
|
|
@@ -9764,7 +10419,7 @@ function makeClass(Inherited, identifier, struct, annotations, proto) {
|
|
|
9764
10419
|
return getClassSchema(this).rebuild(ast);
|
|
9765
10420
|
}
|
|
9766
10421
|
static make(input, options) {
|
|
9767
|
-
return SchemaParser.
|
|
10422
|
+
return SchemaParser.makeClassSync(SchemaAST.toType(getClassSchema(this).ast), input ?? {}, options, fields => makeClassTrusted(this, fields));
|
|
9768
10423
|
}
|
|
9769
10424
|
static makeOption(input, options) {
|
|
9770
10425
|
return SchemaParser.makeOption(getClassSchema(this))(input ?? {}, options);
|
|
@@ -9879,6 +10534,10 @@ function isStruct(schema) {
|
|
|
9879
10534
|
*
|
|
9880
10535
|
* **Gotchas**
|
|
9881
10536
|
*
|
|
10537
|
+
* To subclass a `Schema.Class`, use `Base.extend<Self>(...)`, even when only
|
|
10538
|
+
* adding methods or getters. Pass `{}` for the fields when none are added.
|
|
10539
|
+
* Plain `class Child extends Base` is unsupported.
|
|
10540
|
+
*
|
|
9882
10541
|
* Passing `disableChecks: true` skips filters and checks, not parsing of types
|
|
9883
10542
|
* and structure. Wrong types and shapes are still rejected, and constructor
|
|
9884
10543
|
* defaults still apply.
|