effect 4.0.6 → 4.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/dist/Arbitrary.d.ts +10 -2
- package/dist/Arbitrary.d.ts.map +1 -1
- package/dist/Arbitrary.js +2 -1
- package/dist/Arbitrary.js.map +1 -1
- package/dist/BigDecimal.d.ts.map +1 -1
- package/dist/BigDecimal.js +3 -0
- package/dist/BigDecimal.js.map +1 -1
- package/dist/Channel.d.ts +12 -6
- package/dist/Channel.d.ts.map +1 -1
- package/dist/Channel.js +30 -9
- package/dist/Channel.js.map +1 -1
- package/dist/Config.d.ts +7 -1
- package/dist/Config.d.ts.map +1 -1
- package/dist/Config.js.map +1 -1
- package/dist/Context.d.ts +18 -1
- package/dist/Context.d.ts.map +1 -1
- package/dist/Context.js +27 -8
- package/dist/Context.js.map +1 -1
- package/dist/Cron.d.ts +81 -11
- package/dist/Cron.d.ts.map +1 -1
- package/dist/Cron.js +101 -26
- package/dist/Cron.js.map +1 -1
- package/dist/Data.d.ts +54 -235
- package/dist/Data.d.ts.map +1 -1
- package/dist/Data.js.map +1 -1
- package/dist/Duration.d.ts +78 -0
- package/dist/Duration.d.ts.map +1 -1
- package/dist/Duration.js +123 -0
- package/dist/Duration.js.map +1 -1
- package/dist/Effect.d.ts +165 -8
- package/dist/Effect.d.ts.map +1 -1
- package/dist/Effect.js +12 -2
- package/dist/Effect.js.map +1 -1
- package/dist/Equal.d.ts.map +1 -1
- package/dist/Equal.js +8 -1
- package/dist/Equal.js.map +1 -1
- package/dist/Exit.d.ts +3 -3
- package/dist/Exit.d.ts.map +1 -1
- package/dist/Exit.js.map +1 -1
- package/dist/FileSystem.d.ts +59 -4
- package/dist/FileSystem.d.ts.map +1 -1
- package/dist/FileSystem.js +9 -2
- package/dist/FileSystem.js.map +1 -1
- package/dist/Formatter.d.ts.map +1 -1
- package/dist/Formatter.js +27 -13
- package/dist/Formatter.js.map +1 -1
- package/dist/Glob.d.ts +165 -0
- package/dist/Glob.d.ts.map +1 -0
- package/dist/Glob.js +127 -0
- package/dist/Glob.js.map +1 -0
- package/dist/Hash.d.ts.map +1 -1
- package/dist/Hash.js +4 -1
- package/dist/Hash.js.map +1 -1
- package/dist/JsonPatch.js +4 -0
- package/dist/JsonPatch.js.map +1 -1
- package/dist/JsonSchema.d.ts.map +1 -1
- package/dist/JsonSchema.js +13 -40
- package/dist/JsonSchema.js.map +1 -1
- package/dist/Match.d.ts +86 -0
- package/dist/Match.d.ts.map +1 -1
- package/dist/Match.js +72 -0
- package/dist/Match.js.map +1 -1
- package/dist/Metric.d.ts +3 -3
- package/dist/MutableList.d.ts +5 -2
- package/dist/MutableList.d.ts.map +1 -1
- package/dist/MutableList.js +7 -5
- package/dist/MutableList.js.map +1 -1
- package/dist/MutableRef.d.ts.map +1 -1
- package/dist/MutableRef.js +7 -0
- package/dist/MutableRef.js.map +1 -1
- package/dist/PartitionedSemaphore.d.ts +2 -1
- package/dist/PartitionedSemaphore.d.ts.map +1 -1
- package/dist/PartitionedSemaphore.js +22 -12
- package/dist/PartitionedSemaphore.js.map +1 -1
- package/dist/Pool.d.ts +51 -0
- package/dist/Pool.d.ts.map +1 -1
- package/dist/Pool.js +136 -36
- package/dist/Pool.js.map +1 -1
- package/dist/PubSub.d.ts.map +1 -1
- package/dist/PubSub.js +5 -6
- package/dist/PubSub.js.map +1 -1
- package/dist/Random.d.ts.map +1 -1
- package/dist/Random.js +3 -3
- package/dist/Random.js.map +1 -1
- package/dist/RcMap.d.ts.map +1 -1
- package/dist/RcMap.js +8 -2
- package/dist/RcMap.js.map +1 -1
- package/dist/Ref.d.ts.map +1 -1
- package/dist/Ref.js +8 -0
- package/dist/Ref.js.map +1 -1
- package/dist/Schedule.d.ts +18 -1
- package/dist/Schedule.d.ts.map +1 -1
- package/dist/Schedule.js +8 -3
- package/dist/Schedule.js.map +1 -1
- package/dist/Schema.d.ts +690 -49
- package/dist/Schema.d.ts.map +1 -1
- package/dist/Schema.js +687 -28
- package/dist/Schema.js.map +1 -1
- package/dist/SchemaAST.d.ts +4 -2
- package/dist/SchemaAST.d.ts.map +1 -1
- package/dist/SchemaAST.js +14 -17
- package/dist/SchemaAST.js.map +1 -1
- package/dist/SchemaGetter.d.ts +6 -1
- package/dist/SchemaGetter.d.ts.map +1 -1
- package/dist/SchemaGetter.js +22 -11
- package/dist/SchemaGetter.js.map +1 -1
- package/dist/SchemaParser.d.ts.map +1 -1
- package/dist/SchemaParser.js +48 -22
- package/dist/SchemaParser.js.map +1 -1
- package/dist/SchemaRepresentation.d.ts +33 -10
- package/dist/SchemaRepresentation.d.ts.map +1 -1
- package/dist/SchemaRepresentation.js +39 -13
- package/dist/SchemaRepresentation.js.map +1 -1
- package/dist/SchemaTransformation.d.ts +12 -4
- package/dist/SchemaTransformation.d.ts.map +1 -1
- package/dist/SchemaTransformation.js +15 -5
- package/dist/SchemaTransformation.js.map +1 -1
- package/dist/ScopedCache.d.ts.map +1 -1
- package/dist/ScopedCache.js +5 -7
- package/dist/ScopedCache.js.map +1 -1
- package/dist/Semaphore.d.ts +130 -0
- package/dist/Semaphore.d.ts.map +1 -1
- package/dist/Semaphore.js +94 -35
- package/dist/Semaphore.js.map +1 -1
- package/dist/Sink.d.ts.map +1 -1
- package/dist/Sink.js +7 -2
- package/dist/Sink.js.map +1 -1
- package/dist/Stream.d.ts +13 -4
- package/dist/Stream.d.ts.map +1 -1
- package/dist/Stream.js +31 -10
- package/dist/Stream.js.map +1 -1
- package/dist/String.d.ts +3 -0
- package/dist/String.d.ts.map +1 -1
- package/dist/String.js +3 -0
- package/dist/String.js.map +1 -1
- package/dist/Terminal.d.ts +18 -1
- package/dist/Terminal.d.ts.map +1 -1
- package/dist/Terminal.js +1 -1
- package/dist/Terminal.js.map +1 -1
- package/dist/Tracer.d.ts +11 -1
- package/dist/Tracer.d.ts.map +1 -1
- package/dist/Tracer.js +6 -1
- package/dist/Tracer.js.map +1 -1
- package/dist/ai/AiError.d.ts +43 -116
- package/dist/ai/AiError.d.ts.map +1 -1
- package/dist/ai/AiError.js +53 -72
- package/dist/ai/AiError.js.map +1 -1
- package/dist/ai/Decision.d.ts +196 -15
- package/dist/ai/Decision.d.ts.map +1 -1
- package/dist/ai/Decision.js +130 -0
- package/dist/ai/Decision.js.map +1 -1
- package/dist/ai/DecisionModel.d.ts +54 -13
- package/dist/ai/DecisionModel.d.ts.map +1 -1
- package/dist/ai/DecisionModel.js +123 -12
- package/dist/ai/DecisionModel.js.map +1 -1
- package/dist/ai/LanguageModel.d.ts.map +1 -1
- package/dist/ai/LanguageModel.js +9 -0
- package/dist/ai/LanguageModel.js.map +1 -1
- package/dist/ai/McpSchema.d.ts +110 -110
- package/dist/ai/McpSchema.d.ts.map +1 -1
- package/dist/ai/McpServer.d.ts +630 -29
- package/dist/ai/McpServer.d.ts.map +1 -1
- package/dist/ai/McpServer.js +583 -131
- package/dist/ai/McpServer.js.map +1 -1
- package/dist/ai/McpTest.d.ts +130 -0
- package/dist/ai/McpTest.d.ts.map +1 -0
- package/dist/ai/McpTest.js +237 -0
- package/dist/ai/McpTest.js.map +1 -0
- package/dist/ai/Prompt.d.ts +52 -0
- package/dist/ai/Prompt.d.ts.map +1 -1
- package/dist/ai/Prompt.js +38 -0
- package/dist/ai/Prompt.js.map +1 -1
- package/dist/ai/Response.d.ts +17 -28
- package/dist/ai/Response.d.ts.map +1 -1
- package/dist/ai/Response.js +5 -10
- package/dist/ai/Response.js.map +1 -1
- package/dist/ai/Tool.d.ts +43 -1
- package/dist/ai/Tool.d.ts.map +1 -1
- package/dist/ai/Tool.js +5 -2
- package/dist/ai/Tool.js.map +1 -1
- package/dist/ai/Toolkit.d.ts.map +1 -1
- package/dist/ai/Toolkit.js +8 -1
- package/dist/ai/Toolkit.js.map +1 -1
- package/dist/ai/index.d.ts +5 -0
- package/dist/ai/index.d.ts.map +1 -1
- package/dist/ai/index.js +5 -0
- package/dist/ai/index.js.map +1 -1
- package/dist/ai/internal/mcpCore.js +17 -12
- package/dist/ai/internal/mcpCore.js.map +1 -1
- package/dist/ai/internal/mcpProtocol/v2024_11_05.js +4 -5
- package/dist/ai/internal/mcpProtocol/v2024_11_05.js.map +1 -1
- package/dist/ai/internal/mcpProtocol/v2025_03_26.js +4 -5
- package/dist/ai/internal/mcpProtocol/v2025_03_26.js.map +1 -1
- package/dist/ai/internal/mcpProtocol/v2025_06_18.js +4 -5
- package/dist/ai/internal/mcpProtocol/v2025_06_18.js.map +1 -1
- package/dist/ai/internal/mcpProtocol/v2025_11_25.js +4 -5
- package/dist/ai/internal/mcpProtocol/v2025_11_25.js.map +1 -1
- package/dist/ai/internal/mcpProtocol/v2026_07_28.js +18 -10
- package/dist/ai/internal/mcpProtocol/v2026_07_28.js.map +1 -1
- package/dist/ai/internal/mcpProtocol.js +13 -0
- package/dist/ai/internal/mcpProtocol.js.map +1 -1
- package/dist/ai/internal/mcpRuntime.js +5 -3
- package/dist/ai/internal/mcpRuntime.js.map +1 -1
- package/dist/ai/internal/mcpStatefulRuntime.js +6 -1
- package/dist/ai/internal/mcpStatefulRuntime.js.map +1 -1
- package/dist/cli/Argument.d.ts +21 -0
- package/dist/cli/Argument.d.ts.map +1 -1
- package/dist/cli/Argument.js +7 -0
- package/dist/cli/Argument.js.map +1 -1
- package/dist/cli/CliError.d.ts +78 -0
- package/dist/cli/CliError.d.ts.map +1 -1
- package/dist/cli/CliError.js +65 -3
- package/dist/cli/CliError.js.map +1 -1
- package/dist/cli/CliOutput.d.ts +220 -7
- package/dist/cli/CliOutput.d.ts.map +1 -1
- package/dist/cli/CliOutput.js +156 -43
- package/dist/cli/CliOutput.js.map +1 -1
- package/dist/cli/Command.d.ts +47 -16
- package/dist/cli/Command.d.ts.map +1 -1
- package/dist/cli/Command.js +67 -29
- package/dist/cli/Command.js.map +1 -1
- package/dist/cli/Completions.d.ts +58 -0
- package/dist/cli/Completions.d.ts.map +1 -1
- package/dist/cli/Completions.js +49 -9
- package/dist/cli/Completions.js.map +1 -1
- package/dist/cli/Flag.d.ts +122 -0
- package/dist/cli/Flag.d.ts.map +1 -1
- package/dist/cli/Flag.js +42 -0
- package/dist/cli/Flag.js.map +1 -1
- package/dist/cli/GlobalFlag.d.ts.map +1 -1
- package/dist/cli/GlobalFlag.js +15 -7
- package/dist/cli/GlobalFlag.js.map +1 -1
- package/dist/cli/HelpDoc.d.ts +15 -1
- package/dist/cli/HelpDoc.d.ts.map +1 -1
- package/dist/cli/Param.d.ts +15 -0
- package/dist/cli/Param.d.ts.map +1 -1
- package/dist/cli/Param.js +23 -2
- package/dist/cli/Param.js.map +1 -1
- package/dist/cli/Primitive.d.ts +14 -0
- package/dist/cli/Primitive.d.ts.map +1 -1
- package/dist/cli/Primitive.js +15 -1
- package/dist/cli/Primitive.js.map +1 -1
- package/dist/cli/Prompt.d.ts +1 -0
- package/dist/cli/Prompt.d.ts.map +1 -1
- package/dist/cli/Prompt.js +1 -0
- package/dist/cli/Prompt.js.map +1 -1
- package/dist/cli/TerminalCapabilities.d.ts +3 -2
- package/dist/cli/TerminalCapabilities.d.ts.map +1 -1
- package/dist/cli/TerminalCapabilities.js +3 -1
- package/dist/cli/TerminalCapabilities.js.map +1 -1
- package/dist/cli/internal/completions/bash.js +73 -27
- package/dist/cli/internal/completions/bash.js.map +1 -1
- package/dist/cli/internal/help.d.ts.map +1 -1
- package/dist/cli/internal/help.js +17 -10
- package/dist/cli/internal/help.js.map +1 -1
- package/dist/cluster/ClusterWorkflowEngine.d.ts.map +1 -1
- package/dist/cluster/ClusterWorkflowEngine.js +45 -10
- package/dist/cluster/ClusterWorkflowEngine.js.map +1 -1
- package/dist/cluster/MessageStorage.d.ts +23 -45
- package/dist/cluster/MessageStorage.d.ts.map +1 -1
- package/dist/cluster/MessageStorage.js +6 -7
- package/dist/cluster/MessageStorage.js.map +1 -1
- package/dist/cluster/Sharding.d.ts.map +1 -1
- package/dist/cluster/Sharding.js +151 -49
- package/dist/cluster/Sharding.js.map +1 -1
- package/dist/cluster/ShardingConfig.d.ts +76 -0
- package/dist/cluster/ShardingConfig.d.ts.map +1 -1
- package/dist/cluster/ShardingConfig.js +4 -0
- package/dist/cluster/ShardingConfig.js.map +1 -1
- package/dist/cluster/SingleRunner.d.ts +3 -3
- package/dist/cluster/SingleRunner.d.ts.map +1 -1
- package/dist/cluster/SingleRunner.js +1 -1
- package/dist/cluster/Snowflake.d.ts.map +1 -1
- package/dist/cluster/Snowflake.js +3 -7
- package/dist/cluster/Snowflake.js.map +1 -1
- package/dist/cluster/SqlMessageStorage.d.ts +37 -6
- package/dist/cluster/SqlMessageStorage.d.ts.map +1 -1
- package/dist/cluster/SqlMessageStorage.js +34 -7
- package/dist/cluster/SqlMessageStorage.js.map +1 -1
- package/dist/cluster/SqlRunnerStorage.d.ts.map +1 -1
- package/dist/cluster/SqlRunnerStorage.js +109 -46
- package/dist/cluster/SqlRunnerStorage.js.map +1 -1
- package/dist/cluster/internal/entityManager.js +54 -20
- package/dist/cluster/internal/entityManager.js.map +1 -1
- package/dist/crypto/Aead.d.ts +322 -0
- package/dist/crypto/Aead.d.ts.map +1 -0
- package/dist/crypto/Aead.js +331 -0
- package/dist/crypto/Aead.js.map +1 -0
- package/dist/crypto/Cipher.d.ts +235 -0
- package/dist/crypto/Cipher.d.ts.map +1 -0
- package/dist/crypto/Cipher.js +233 -0
- package/dist/crypto/Cipher.js.map +1 -0
- package/dist/crypto/CryptoError.d.ts +212 -0
- package/dist/crypto/CryptoError.d.ts.map +1 -0
- package/dist/crypto/CryptoError.js +202 -0
- package/dist/crypto/CryptoError.js.map +1 -0
- package/dist/crypto/Digest.d.ts +143 -0
- package/dist/crypto/Digest.d.ts.map +1 -0
- package/dist/crypto/Digest.js +146 -0
- package/dist/crypto/Digest.js.map +1 -0
- package/dist/crypto/Kdf.d.ts +220 -0
- package/dist/crypto/Kdf.d.ts.map +1 -0
- package/dist/crypto/Kdf.js +212 -0
- package/dist/crypto/Kdf.js.map +1 -0
- package/dist/crypto/KeyAgreement.d.ts +323 -0
- package/dist/crypto/KeyAgreement.d.ts.map +1 -0
- package/dist/crypto/KeyAgreement.js +303 -0
- package/dist/crypto/KeyAgreement.js.map +1 -0
- package/dist/crypto/KeyFormat.d.ts +309 -0
- package/dist/crypto/KeyFormat.d.ts.map +1 -0
- package/dist/crypto/KeyFormat.js +556 -0
- package/dist/crypto/KeyFormat.js.map +1 -0
- package/dist/crypto/KeyWrap.d.ts +389 -0
- package/dist/crypto/KeyWrap.d.ts.map +1 -0
- package/dist/crypto/KeyWrap.js +381 -0
- package/dist/crypto/KeyWrap.js.map +1 -0
- package/dist/crypto/Mac.d.ts +277 -0
- package/dist/crypto/Mac.d.ts.map +1 -0
- package/dist/crypto/Mac.js +288 -0
- package/dist/crypto/Mac.js.map +1 -0
- package/dist/crypto/SecureRandom.d.ts +340 -0
- package/dist/crypto/SecureRandom.d.ts.map +1 -0
- package/dist/crypto/SecureRandom.js +257 -0
- package/dist/crypto/SecureRandom.js.map +1 -0
- package/dist/crypto/Signature.d.ts +448 -0
- package/dist/crypto/Signature.d.ts.map +1 -0
- package/dist/crypto/Signature.js +484 -0
- package/dist/crypto/Signature.js.map +1 -0
- package/dist/crypto/WebCrypto.d.ts +61 -0
- package/dist/crypto/WebCrypto.d.ts.map +1 -0
- package/dist/crypto/WebCrypto.js +63 -0
- package/dist/crypto/WebCrypto.js.map +1 -0
- package/dist/crypto/index.d.ts +65 -0
- package/dist/crypto/index.d.ts.map +1 -0
- package/dist/crypto/index.js +66 -0
- package/dist/crypto/index.js.map +1 -0
- package/dist/crypto/internal/asymmetric.d.ts +2 -0
- package/dist/crypto/internal/asymmetric.d.ts.map +1 -0
- package/dist/crypto/internal/asymmetric.js +210 -0
- package/dist/crypto/internal/asymmetric.js.map +1 -0
- package/dist/crypto/internal/chacha.d.ts +46 -0
- package/dist/crypto/internal/chacha.d.ts.map +1 -0
- package/dist/crypto/internal/chacha.js +885 -0
- package/dist/crypto/internal/chacha.js.map +1 -0
- package/dist/crypto/internal/der.d.ts +6 -0
- package/dist/crypto/internal/der.d.ts.map +1 -0
- package/dist/crypto/internal/der.js +86 -0
- package/dist/crypto/internal/der.js.map +1 -0
- package/dist/crypto/internal/digest.d.ts +2 -0
- package/dist/crypto/internal/digest.d.ts.map +1 -0
- package/dist/crypto/internal/digest.js +15 -0
- package/dist/crypto/internal/digest.js.map +1 -0
- package/dist/crypto/internal/key.d.ts +2 -0
- package/dist/crypto/internal/key.d.ts.map +1 -0
- package/dist/crypto/internal/key.js +170 -0
- package/dist/crypto/internal/key.js.map +1 -0
- package/dist/crypto/internal/md5.d.ts +39 -0
- package/dist/crypto/internal/md5.d.ts.map +1 -0
- package/dist/crypto/internal/md5.js +179 -0
- package/dist/crypto/internal/md5.js.map +1 -0
- package/dist/crypto/internal/webCrypto.d.ts +2 -0
- package/dist/crypto/internal/webCrypto.d.ts.map +1 -0
- package/dist/crypto/internal/webCrypto.js +111 -0
- package/dist/crypto/internal/webCrypto.js.map +1 -0
- package/dist/devtools/DevToolsClient.d.ts.map +1 -1
- package/dist/devtools/DevToolsClient.js +2 -0
- package/dist/devtools/DevToolsClient.js.map +1 -1
- package/dist/encoding/Base64.js +36 -0
- package/dist/encoding/Base64.js.map +1 -1
- package/dist/encoding/Base64Url.d.ts.map +1 -1
- package/dist/encoding/Base64Url.js +3 -2
- package/dist/encoding/Base64Url.js.map +1 -1
- package/dist/encoding/Csv.d.ts +608 -0
- package/dist/encoding/Csv.d.ts.map +1 -0
- package/dist/encoding/Csv.js +718 -0
- package/dist/encoding/Csv.js.map +1 -0
- package/dist/encoding/Hex.d.ts +3 -2
- package/dist/encoding/Hex.d.ts.map +1 -1
- package/dist/encoding/Hex.js +3 -2
- package/dist/encoding/Hex.js.map +1 -1
- package/dist/encoding/SchemaBinary.d.ts.map +1 -1
- package/dist/encoding/SchemaBinary.js +42 -4
- package/dist/encoding/SchemaBinary.js.map +1 -1
- package/dist/encoding/Sse.d.ts.map +1 -1
- package/dist/encoding/Sse.js +3 -3
- package/dist/encoding/Sse.js.map +1 -1
- package/dist/encoding/Toml.d.ts +17 -3
- package/dist/encoding/Toml.d.ts.map +1 -1
- package/dist/encoding/Toml.js +124 -31
- package/dist/encoding/Toml.js.map +1 -1
- package/dist/encoding/Yaml.d.ts +8 -1
- package/dist/encoding/Yaml.d.ts.map +1 -1
- package/dist/encoding/Yaml.js +54 -18
- package/dist/encoding/Yaml.js.map +1 -1
- package/dist/encoding/index.d.ts +5 -0
- package/dist/encoding/index.d.ts.map +1 -1
- package/dist/encoding/index.js +5 -0
- package/dist/encoding/index.js.map +1 -1
- package/dist/eventlog/EventJournal.d.ts.map +1 -1
- package/dist/eventlog/EventJournal.js +6 -3
- package/dist/eventlog/EventJournal.js.map +1 -1
- package/dist/eventlog/EventLog.d.ts +119 -4
- package/dist/eventlog/EventLog.d.ts.map +1 -1
- package/dist/eventlog/EventLog.js +200 -12
- package/dist/eventlog/EventLog.js.map +1 -1
- package/dist/eventlog/EventLogEncryption.d.ts +41 -4
- package/dist/eventlog/EventLogEncryption.d.ts.map +1 -1
- package/dist/eventlog/EventLogEncryption.js +83 -64
- package/dist/eventlog/EventLogEncryption.js.map +1 -1
- package/dist/eventlog/EventLogMessage.d.ts +279 -0
- package/dist/eventlog/EventLogMessage.d.ts.map +1 -1
- package/dist/eventlog/EventLogMessage.js +217 -1
- package/dist/eventlog/EventLogMessage.js.map +1 -1
- package/dist/eventlog/EventLogRemote.d.ts +200 -28
- package/dist/eventlog/EventLogRemote.d.ts.map +1 -1
- package/dist/eventlog/EventLogRemote.js +186 -16
- package/dist/eventlog/EventLogRemote.js.map +1 -1
- package/dist/eventlog/EventLogServer.d.ts +3 -0
- package/dist/eventlog/EventLogServer.d.ts.map +1 -1
- package/dist/eventlog/EventLogServer.js +18 -10
- package/dist/eventlog/EventLogServer.js.map +1 -1
- package/dist/eventlog/EventLogServerEncrypted.d.ts +326 -5
- package/dist/eventlog/EventLogServerEncrypted.d.ts.map +1 -1
- package/dist/eventlog/EventLogServerEncrypted.js +769 -14
- package/dist/eventlog/EventLogServerEncrypted.js.map +1 -1
- package/dist/eventlog/EventLogSessionAuth.d.ts +5 -3
- package/dist/eventlog/EventLogSessionAuth.d.ts.map +1 -1
- package/dist/eventlog/EventLogSessionAuth.js +41 -64
- package/dist/eventlog/EventLogSessionAuth.js.map +1 -1
- package/dist/eventlog/EventRow.d.ts +4 -0
- package/dist/eventlog/EventRow.d.ts.map +1 -1
- package/dist/eventlog/EventRow.js +12 -2
- package/dist/eventlog/EventRow.js.map +1 -1
- package/dist/eventlog/SqlEventJournal.d.ts.map +1 -1
- package/dist/eventlog/SqlEventJournal.js +47 -27
- package/dist/eventlog/SqlEventJournal.js.map +1 -1
- package/dist/eventlog/SqlEventLogServerEncrypted.d.ts +21 -5
- package/dist/eventlog/SqlEventLogServerEncrypted.d.ts.map +1 -1
- package/dist/eventlog/SqlEventLogServerEncrypted.js +1048 -113
- package/dist/eventlog/SqlEventLogServerEncrypted.js.map +1 -1
- package/dist/eventlog/SqlEventLogServerUnencrypted.js +2 -2
- package/dist/eventlog/SqlEventLogServerUnencrypted.js.map +1 -1
- package/dist/eventlog/internal/batches.d.ts +12 -0
- package/dist/eventlog/internal/batches.d.ts.map +1 -0
- package/dist/eventlog/internal/batches.js +26 -0
- package/dist/eventlog/internal/batches.js.map +1 -0
- package/dist/eventlog/internal/compaction.d.ts +38 -0
- package/dist/eventlog/internal/compaction.d.ts.map +1 -0
- package/dist/eventlog/internal/compaction.js +33 -0
- package/dist/eventlog/internal/compaction.js.map +1 -0
- package/dist/eventlog/internal/conflicts.d.ts +0 -1
- package/dist/eventlog/internal/conflicts.d.ts.map +1 -1
- package/dist/eventlog/internal/conflicts.js +0 -3
- package/dist/eventlog/internal/conflicts.js.map +1 -1
- package/dist/eventlog/internal/identityRootSecretDerivation.js +66 -67
- package/dist/eventlog/internal/identityRootSecretDerivation.js.map +1 -1
- package/dist/eventlog/internal/remoteCompaction.d.ts +31 -0
- package/dist/eventlog/internal/remoteCompaction.d.ts.map +1 -0
- package/dist/eventlog/internal/remoteCompaction.js +76 -0
- package/dist/eventlog/internal/remoteCompaction.js.map +1 -0
- package/dist/http/Cookies.d.ts +172 -0
- package/dist/http/Cookies.d.ts.map +1 -1
- package/dist/http/Cookies.js +153 -10
- package/dist/http/Cookies.js.map +1 -1
- package/dist/http/FetchHttpClient.d.ts +26 -2
- package/dist/http/FetchHttpClient.d.ts.map +1 -1
- package/dist/http/FetchHttpClient.js +78 -15
- package/dist/http/FetchHttpClient.js.map +1 -1
- package/dist/http/HttpClient.d.ts +502 -8
- package/dist/http/HttpClient.d.ts.map +1 -1
- package/dist/http/HttpClient.js +296 -12
- package/dist/http/HttpClient.js.map +1 -1
- package/dist/http/HttpClientError.d.ts +8 -1
- package/dist/http/HttpClientError.d.ts.map +1 -1
- package/dist/http/HttpClientError.js +37 -1
- package/dist/http/HttpClientError.js.map +1 -1
- package/dist/http/HttpClientRequest.d.ts +9 -5
- package/dist/http/HttpClientRequest.d.ts.map +1 -1
- package/dist/http/HttpClientRequest.js +3 -4
- package/dist/http/HttpClientRequest.js.map +1 -1
- package/dist/http/HttpClientResponse.d.ts.map +1 -1
- package/dist/http/HttpClientResponse.js +3 -2
- package/dist/http/HttpClientResponse.js.map +1 -1
- package/dist/http/HttpMethod.d.ts +7 -1
- package/dist/http/HttpMethod.d.ts.map +1 -1
- package/dist/http/HttpMethod.js +3 -8
- package/dist/http/HttpMethod.js.map +1 -1
- package/dist/http/HttpMiddleware.d.ts +1 -1
- package/dist/http/HttpMiddleware.d.ts.map +1 -1
- package/dist/http/HttpMiddleware.js +14 -16
- package/dist/http/HttpMiddleware.js.map +1 -1
- package/dist/http/HttpRouter.d.ts.map +1 -1
- package/dist/http/HttpRouter.js +2 -1
- package/dist/http/HttpRouter.js.map +1 -1
- package/dist/http/HttpServerError.js +2 -2
- package/dist/http/HttpServerError.js.map +1 -1
- package/dist/http/HttpServerRequest.d.ts +11 -3
- package/dist/http/HttpServerRequest.d.ts.map +1 -1
- package/dist/http/HttpServerRequest.js +77 -25
- package/dist/http/HttpServerRequest.js.map +1 -1
- package/dist/http/HttpServerResponse.d.ts.map +1 -1
- package/dist/http/HttpServerResponse.js +3 -2
- package/dist/http/HttpServerResponse.js.map +1 -1
- package/dist/http/HttpStaticServer.d.ts.map +1 -1
- package/dist/http/HttpStaticServer.js +48 -21
- package/dist/http/HttpStaticServer.js.map +1 -1
- package/dist/http/HttpTraceContext.d.ts +2 -1
- package/dist/http/HttpTraceContext.d.ts.map +1 -1
- package/dist/http/HttpTraceContext.js +7 -5
- package/dist/http/HttpTraceContext.js.map +1 -1
- package/dist/http/MultipartParser/internal/contentType.js +3 -3
- package/dist/http/ProblemDetails.d.ts +96 -0
- package/dist/http/ProblemDetails.d.ts.map +1 -0
- package/dist/http/ProblemDetails.js +98 -0
- package/dist/http/ProblemDetails.js.map +1 -0
- package/dist/http/UrlParams.d.ts +3 -1
- package/dist/http/UrlParams.d.ts.map +1 -1
- package/dist/http/UrlParams.js +4 -2
- package/dist/http/UrlParams.js.map +1 -1
- package/dist/http/index.d.ts +5 -0
- package/dist/http/index.d.ts.map +1 -1
- package/dist/http/index.js +5 -0
- package/dist/http/index.js.map +1 -1
- package/dist/http/internal/compression.js +4 -5
- package/dist/http/internal/compression.js.map +1 -1
- package/dist/http/internal/decompression.js +6 -2
- package/dist/http/internal/decompression.js.map +1 -1
- package/dist/http/internal/httpBody.js +8 -1
- package/dist/http/internal/httpBody.js.map +1 -1
- package/dist/http/internal/urlParams.js +33 -0
- package/dist/http/internal/urlParams.js.map +1 -1
- package/dist/http-api/HttpApi.d.ts +3 -6
- package/dist/http-api/HttpApi.d.ts.map +1 -1
- package/dist/http-api/HttpApi.js +3 -6
- package/dist/http-api/HttpApi.js.map +1 -1
- package/dist/http-api/HttpApiBuilder.d.ts.map +1 -1
- package/dist/http-api/HttpApiBuilder.js +43 -13
- package/dist/http-api/HttpApiBuilder.js.map +1 -1
- package/dist/http-api/HttpApiClient.d.ts +140 -7
- package/dist/http-api/HttpApiClient.d.ts.map +1 -1
- package/dist/http-api/HttpApiClient.js +193 -44
- package/dist/http-api/HttpApiClient.js.map +1 -1
- package/dist/http-api/HttpApiEndpoint.d.ts +24 -7
- package/dist/http-api/HttpApiEndpoint.d.ts.map +1 -1
- package/dist/http-api/HttpApiEndpoint.js +123 -32
- package/dist/http-api/HttpApiEndpoint.js.map +1 -1
- package/dist/http-api/HttpApiError.d.ts +185 -13
- package/dist/http-api/HttpApiError.d.ts.map +1 -1
- package/dist/http-api/HttpApiError.js +128 -0
- package/dist/http-api/HttpApiError.js.map +1 -1
- package/dist/http-api/HttpApiMiddleware.d.ts +64 -17
- package/dist/http-api/HttpApiMiddleware.d.ts.map +1 -1
- package/dist/http-api/HttpApiMiddleware.js +85 -1
- package/dist/http-api/HttpApiMiddleware.js.map +1 -1
- package/dist/http-api/HttpApiSchema.d.ts +142 -33
- package/dist/http-api/HttpApiSchema.d.ts.map +1 -1
- package/dist/http-api/HttpApiSchema.js +123 -59
- package/dist/http-api/HttpApiSchema.js.map +1 -1
- package/dist/http-api/HttpApiTest.d.ts.map +1 -1
- package/dist/http-api/HttpApiTest.js +3 -2
- package/dist/http-api/HttpApiTest.js.map +1 -1
- package/dist/http-api/OpenApi.d.ts.map +1 -1
- package/dist/http-api/OpenApi.js +25 -16
- package/dist/http-api/OpenApi.js.map +1 -1
- package/dist/http-api/internal/toCodecHttpProperties.d.ts +2 -0
- package/dist/http-api/internal/toCodecHttpProperties.d.ts.map +1 -0
- package/dist/http-api/internal/toCodecHttpProperties.js +38 -0
- package/dist/http-api/internal/toCodecHttpProperties.js.map +1 -0
- package/dist/index.d.ts +5 -5
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -5
- package/dist/index.js.map +1 -1
- package/dist/internal/arbitrary/runner.d.ts.map +1 -1
- package/dist/internal/arbitrary/runner.js +120 -44
- package/dist/internal/arbitrary/runner.js.map +1 -1
- package/dist/internal/core.js +2 -0
- package/dist/internal/core.js.map +1 -1
- package/dist/internal/effect.js +46 -27
- package/dist/internal/effect.js.map +1 -1
- package/dist/internal/equal.js +14 -0
- package/dist/internal/equal.js.map +1 -1
- package/dist/internal/glob.d.ts +2 -0
- package/dist/internal/glob.d.ts.map +1 -0
- package/dist/internal/glob.js +630 -0
- package/dist/internal/glob.js.map +1 -0
- package/dist/internal/jsonSchema.d.ts +2 -0
- package/dist/internal/jsonSchema.d.ts.map +1 -0
- package/dist/internal/jsonSchema.js +28 -0
- package/dist/internal/jsonSchema.js.map +1 -0
- package/dist/internal/matcher.js +11 -1
- package/dist/internal/matcher.js.map +1 -1
- package/dist/internal/persistence.js +9 -0
- package/dist/internal/persistence.js.map +1 -1
- package/dist/internal/rcRef.js +4 -1
- package/dist/internal/rcRef.js.map +1 -1
- package/dist/internal/schema/compilerRegistry.js +4 -1
- package/dist/internal/schema/compilerRegistry.js.map +1 -1
- package/dist/internal/schema/content.d.ts +2 -0
- package/dist/internal/schema/content.d.ts.map +1 -0
- package/dist/internal/schema/content.js +13 -0
- package/dist/internal/schema/content.js.map +1 -0
- package/dist/internal/schema/fromJsonSchemaDocument.js +173 -185
- package/dist/internal/schema/fromJsonSchemaDocument.js.map +1 -1
- package/dist/internal/schema/fromRepresentation.js +2 -1
- package/dist/internal/schema/fromRepresentation.js.map +1 -1
- package/dist/internal/schema/standardSchema.js +8 -2
- package/dist/internal/schema/standardSchema.js.map +1 -1
- package/dist/internal/schema/toCodeDocument.js +9 -6
- package/dist/internal/schema/toCodeDocument.js.map +1 -1
- package/dist/internal/schema/toCodec.js +21 -24
- package/dist/internal/schema/toCodec.js.map +1 -1
- package/dist/internal/schema/toJsonSchemaDocument.js +205 -140
- package/dist/internal/schema/toJsonSchemaDocument.js.map +1 -1
- package/dist/internal/schema/toRepresentation.js +107 -129
- package/dist/internal/schema/toRepresentation.js.map +1 -1
- package/dist/internal/sql.d.ts +2 -0
- package/dist/internal/sql.d.ts.map +1 -0
- package/dist/internal/sql.js +13 -0
- package/dist/internal/sql.js.map +1 -0
- package/dist/internal/trie.js +42 -13
- package/dist/internal/trie.js.map +1 -1
- package/dist/internal/ulid.js +41 -0
- package/dist/internal/ulid.js.map +1 -1
- package/dist/internal/uuid.js +52 -8
- package/dist/internal/uuid.js.map +1 -1
- package/dist/internal/version.js +1 -1
- package/dist/observability/Otlp.d.ts +15 -4
- package/dist/observability/Otlp.d.ts.map +1 -1
- package/dist/observability/Otlp.js +10 -0
- package/dist/observability/Otlp.js.map +1 -1
- package/dist/observability/OtlpProxy.d.ts +154 -0
- package/dist/observability/OtlpProxy.d.ts.map +1 -0
- package/dist/observability/OtlpProxy.js +235 -0
- package/dist/observability/OtlpProxy.js.map +1 -0
- package/dist/observability/OtlpResource.d.ts +7 -0
- package/dist/observability/OtlpResource.d.ts.map +1 -1
- package/dist/observability/OtlpResource.js +11 -1
- package/dist/observability/OtlpResource.js.map +1 -1
- package/dist/observability/OtlpTracer.d.ts.map +1 -1
- package/dist/observability/OtlpTracer.js +4 -0
- package/dist/observability/OtlpTracer.js.map +1 -1
- package/dist/observability/index.d.ts +5 -0
- package/dist/observability/index.d.ts.map +1 -1
- package/dist/observability/index.js +5 -0
- package/dist/observability/index.js.map +1 -1
- package/dist/persistence/CircuitBreaker.d.ts +897 -0
- package/dist/persistence/CircuitBreaker.d.ts.map +1 -0
- package/dist/persistence/CircuitBreaker.js +1165 -0
- package/dist/persistence/CircuitBreaker.js.map +1 -0
- package/dist/persistence/KeyValueStore.d.ts +47 -2
- package/dist/persistence/KeyValueStore.d.ts.map +1 -1
- package/dist/persistence/KeyValueStore.js +129 -18
- package/dist/persistence/KeyValueStore.js.map +1 -1
- package/dist/persistence/PersistedQueue.d.ts +9 -0
- package/dist/persistence/PersistedQueue.d.ts.map +1 -1
- package/dist/persistence/PersistedQueue.js +94 -52
- package/dist/persistence/PersistedQueue.js.map +1 -1
- package/dist/persistence/Persistence.d.ts +10 -4
- package/dist/persistence/Persistence.d.ts.map +1 -1
- package/dist/persistence/Persistence.js +18 -11
- package/dist/persistence/Persistence.js.map +1 -1
- package/dist/persistence/Redis.d.ts +78 -2
- package/dist/persistence/Redis.d.ts.map +1 -1
- package/dist/persistence/Redis.js +62 -7
- package/dist/persistence/Redis.js.map +1 -1
- package/dist/persistence/index.d.ts +5 -0
- package/dist/persistence/index.d.ts.map +1 -1
- package/dist/persistence/index.js +5 -0
- package/dist/persistence/index.js.map +1 -1
- package/dist/process/ChildProcess.d.ts +237 -71
- package/dist/process/ChildProcess.d.ts.map +1 -1
- package/dist/process/ChildProcess.js +56 -158
- package/dist/process/ChildProcess.js.map +1 -1
- package/dist/process/ChildProcessSpawner.d.ts +35 -0
- package/dist/process/ChildProcessSpawner.d.ts.map +1 -1
- package/dist/process/ChildProcessSpawner.js +5 -2
- package/dist/process/ChildProcessSpawner.js.map +1 -1
- package/dist/process/CommandLine.d.ts +294 -0
- package/dist/process/CommandLine.d.ts.map +1 -0
- package/dist/process/CommandLine.js +481 -0
- package/dist/process/CommandLine.js.map +1 -0
- package/dist/process/index.d.ts +5 -0
- package/dist/process/index.d.ts.map +1 -1
- package/dist/process/index.js +5 -0
- package/dist/process/index.js.map +1 -1
- package/dist/reactivity/AsyncResult.d.ts +1 -1
- package/dist/reactivity/AsyncResult.d.ts.map +1 -1
- package/dist/reactivity/Atom.d.ts +2 -1
- package/dist/reactivity/Atom.d.ts.map +1 -1
- package/dist/reactivity/Atom.js +3 -4
- package/dist/reactivity/Atom.js.map +1 -1
- package/dist/reactivity/AtomRegistry.js.map +1 -1
- package/dist/rpc/RpcClient.d.ts +16 -1
- package/dist/rpc/RpcClient.d.ts.map +1 -1
- package/dist/rpc/RpcClient.js +59 -24
- package/dist/rpc/RpcClient.js.map +1 -1
- package/dist/rpc/RpcMessage.d.ts +10 -1
- package/dist/rpc/RpcMessage.d.ts.map +1 -1
- package/dist/rpc/RpcMessage.js +1 -0
- package/dist/rpc/RpcMessage.js.map +1 -1
- package/dist/rpc/RpcSerialization.d.ts +14 -0
- package/dist/rpc/RpcSerialization.d.ts.map +1 -1
- package/dist/rpc/RpcSerialization.js +26 -8
- package/dist/rpc/RpcSerialization.js.map +1 -1
- package/dist/rpc/RpcServer.d.ts +31 -0
- package/dist/rpc/RpcServer.d.ts.map +1 -1
- package/dist/rpc/RpcServer.js +139 -56
- package/dist/rpc/RpcServer.js.map +1 -1
- package/dist/rpc/RpcTest.d.ts +1 -0
- package/dist/rpc/RpcTest.d.ts.map +1 -1
- package/dist/rpc/RpcTest.js +1 -0
- package/dist/rpc/RpcTest.js.map +1 -1
- package/dist/schema/Model.d.ts +14 -0
- package/dist/schema/Model.d.ts.map +1 -1
- package/dist/schema/Model.js +18 -3
- package/dist/schema/Model.js.map +1 -1
- package/dist/sql/Migrator.d.ts +2 -20
- package/dist/sql/Migrator.d.ts.map +1 -1
- package/dist/sql/Migrator.js +13 -55
- package/dist/sql/Migrator.js.map +1 -1
- package/dist/sql/MigratorFileSystem.d.ts +21 -0
- package/dist/sql/MigratorFileSystem.d.ts.map +1 -0
- package/dist/sql/MigratorFileSystem.js +57 -0
- package/dist/sql/MigratorFileSystem.js.map +1 -0
- package/dist/sql/SqlClient.d.ts +9 -4
- package/dist/sql/SqlClient.d.ts.map +1 -1
- package/dist/sql/SqlClient.js +13 -10
- package/dist/sql/SqlClient.js.map +1 -1
- package/dist/sql/SqlResolver.d.ts +4 -0
- package/dist/sql/SqlResolver.d.ts.map +1 -1
- package/dist/sql/SqlResolver.js +18 -4
- package/dist/sql/SqlResolver.js.map +1 -1
- package/dist/sql/Statement.d.ts +27 -6
- package/dist/sql/Statement.d.ts.map +1 -1
- package/dist/sql/Statement.js +21 -15
- package/dist/sql/Statement.js.map +1 -1
- package/dist/sql/index.js +1 -1
- package/dist/testing/index.d.ts +0 -5
- package/dist/testing/index.d.ts.map +1 -1
- package/dist/testing/index.js +0 -5
- package/dist/testing/index.js.map +1 -1
- package/dist/workflow/DurableDeferred.d.ts.map +1 -1
- package/dist/workflow/DurableDeferred.js +21 -2
- package/dist/workflow/DurableDeferred.js.map +1 -1
- package/dist/workflow/internal/crypto.js +9 -8
- package/dist/workflow/internal/crypto.js.map +1 -1
- package/package.json +3 -1
- package/src/Arbitrary.ts +10 -2
- package/src/BigDecimal.ts +3 -0
- package/src/Channel.ts +64 -29
- package/src/Config.ts +7 -1
- package/src/Context.ts +34 -10
- package/src/Cron.ts +178 -29
- package/src/Data.ts +60 -265
- package/src/Duration.ts +140 -0
- package/src/Effect.ts +915 -86
- package/src/Equal.ts +8 -1
- package/src/Exit.ts +3 -3
- package/src/FileSystem.ts +65 -4
- package/src/Formatter.ts +28 -13
- package/src/Glob.ts +205 -0
- package/src/Hash.ts +4 -1
- package/src/JsonPatch.ts +4 -0
- package/src/JsonSchema.ts +12 -40
- package/src/Match.ts +127 -0
- package/src/Metric.ts +3 -3
- package/src/MutableList.ts +7 -5
- package/src/MutableRef.ts +8 -1
- package/src/PartitionedSemaphore.ts +24 -13
- package/src/Pool.ts +182 -52
- package/src/PubSub.ts +5 -6
- package/src/Random.ts +3 -3
- package/src/RcMap.ts +5 -1
- package/src/Ref.ts +8 -0
- package/src/Schedule.ts +27 -4
- package/src/Schema.ts +1237 -87
- package/src/SchemaAST.ts +20 -20
- package/src/SchemaGetter.ts +27 -11
- package/src/SchemaParser.ts +51 -18
- package/src/SchemaRepresentation.ts +50 -34
- package/src/SchemaTransformation.ts +17 -5
- package/src/ScopedCache.ts +5 -9
- package/src/Semaphore.ts +208 -40
- package/src/Sink.ts +15 -2
- package/src/Stream.ts +48 -22
- package/src/String.ts +3 -0
- package/src/Terminal.ts +19 -1
- package/src/Tracer.ts +15 -1
- package/src/ai/AiError.ts +56 -80
- package/src/ai/Decision.ts +257 -6
- package/src/ai/DecisionModel.ts +171 -28
- package/src/ai/LanguageModel.ts +9 -0
- package/src/ai/McpServer.ts +1283 -299
- package/src/ai/McpTest.ts +380 -0
- package/src/ai/Prompt.ts +65 -0
- package/src/ai/Response.ts +36 -31
- package/src/ai/Tool.ts +65 -10
- package/src/ai/Toolkit.ts +4 -1
- package/src/ai/index.ts +6 -0
- package/src/ai/internal/mcpCore.ts +78 -44
- package/src/ai/internal/mcpProtocol/v2024_11_05.ts +4 -7
- package/src/ai/internal/mcpProtocol/v2025_03_26.ts +4 -7
- package/src/ai/internal/mcpProtocol/v2025_06_18.ts +4 -7
- package/src/ai/internal/mcpProtocol/v2025_11_25.ts +4 -7
- package/src/ai/internal/mcpProtocol/v2026_07_28.ts +15 -10
- package/src/ai/internal/mcpProtocol.ts +29 -0
- package/src/ai/internal/mcpRuntime.ts +9 -5
- package/src/ai/internal/mcpStatefulRuntime.ts +14 -2
- package/src/cli/Argument.ts +21 -0
- package/src/cli/CliError.ts +90 -3
- package/src/cli/CliOutput.ts +300 -55
- package/src/cli/Command.ts +76 -41
- package/src/cli/Completions.ts +51 -0
- package/src/cli/Flag.ts +122 -0
- package/src/cli/GlobalFlag.ts +6 -7
- package/src/cli/HelpDoc.ts +18 -1
- package/src/cli/Param.ts +35 -6
- package/src/cli/Primitive.ts +16 -1
- package/src/cli/Prompt.ts +1 -0
- package/src/cli/TerminalCapabilities.ts +6 -3
- package/src/cli/internal/completions/bash.ts +79 -29
- package/src/cli/internal/help.ts +21 -9
- package/src/cluster/ClusterWorkflowEngine.ts +46 -16
- package/src/cluster/MessageStorage.ts +19 -14
- package/src/cluster/Sharding.ts +176 -47
- package/src/cluster/ShardingConfig.ts +43 -0
- package/src/cluster/SingleRunner.ts +3 -3
- package/src/cluster/Snowflake.ts +3 -7
- package/src/cluster/SqlMessageStorage.ts +49 -17
- package/src/cluster/SqlRunnerStorage.ts +143 -70
- package/src/cluster/internal/entityManager.ts +75 -22
- package/src/crypto/Aead.ts +517 -0
- package/src/crypto/Cipher.ts +326 -0
- package/src/crypto/CryptoError.ts +242 -0
- package/src/crypto/Digest.ts +167 -0
- package/src/crypto/Kdf.ts +315 -0
- package/src/crypto/KeyAgreement.ts +489 -0
- package/src/crypto/KeyFormat.ts +712 -0
- package/src/crypto/KeyWrap.ts +639 -0
- package/src/crypto/Mac.ts +386 -0
- package/src/crypto/SecureRandom.ts +459 -0
- package/src/crypto/Signature.ts +673 -0
- package/src/crypto/WebCrypto.ts +64 -0
- package/src/crypto/index.ts +78 -0
- package/src/crypto/internal/asymmetric.ts +329 -0
- package/src/crypto/internal/chacha.ts +1088 -0
- package/src/crypto/internal/der.ts +110 -0
- package/src/crypto/internal/digest.ts +16 -0
- package/src/crypto/internal/key.ts +235 -0
- package/src/crypto/internal/md5.ts +170 -0
- package/src/crypto/internal/webCrypto.ts +150 -0
- package/src/devtools/DevToolsClient.ts +2 -0
- package/src/encoding/Base64.ts +38 -0
- package/src/encoding/Base64Url.ts +5 -2
- package/src/encoding/Csv.ts +1298 -0
- package/src/encoding/Hex.ts +3 -2
- package/src/encoding/SchemaBinary.ts +40 -4
- package/src/encoding/Sse.ts +4 -3
- package/src/encoding/Toml.ts +117 -35
- package/src/encoding/Yaml.ts +61 -18
- package/src/encoding/index.ts +6 -0
- package/src/eventlog/EventJournal.ts +4 -3
- package/src/eventlog/EventLog.ts +340 -15
- package/src/eventlog/EventLogEncryption.ts +118 -110
- package/src/eventlog/EventLogMessage.ts +273 -1
- package/src/eventlog/EventLogRemote.ts +367 -23
- package/src/eventlog/EventLogServer.ts +23 -8
- package/src/eventlog/EventLogServerEncrypted.ts +1130 -67
- package/src/eventlog/EventLogSessionAuth.ts +56 -70
- package/src/eventlog/EventRow.ts +12 -3
- package/src/eventlog/SqlEventJournal.ts +68 -45
- package/src/eventlog/SqlEventLogServerEncrypted.ts +1244 -136
- package/src/eventlog/SqlEventLogServerUnencrypted.ts +2 -2
- package/src/eventlog/internal/batches.ts +30 -0
- package/src/eventlog/internal/compaction.ts +64 -0
- package/src/eventlog/internal/conflicts.ts +0 -4
- package/src/eventlog/internal/identityRootSecretDerivation.ts +93 -123
- package/src/eventlog/internal/remoteCompaction.ts +92 -0
- package/src/http/Cookies.ts +291 -12
- package/src/http/FetchHttpClient.ts +88 -16
- package/src/http/HttpClient.ts +636 -29
- package/src/http/HttpClientError.ts +35 -1
- package/src/http/HttpClientRequest.ts +21 -10
- package/src/http/HttpClientResponse.ts +3 -2
- package/src/http/HttpMethod.ts +10 -2
- package/src/http/HttpMiddleware.ts +15 -18
- package/src/http/HttpRouter.ts +2 -1
- package/src/http/HttpServerError.ts +2 -2
- package/src/http/HttpServerRequest.ts +101 -30
- package/src/http/HttpServerResponse.ts +3 -2
- package/src/http/HttpStaticServer.ts +51 -22
- package/src/http/HttpTraceContext.ts +7 -4
- package/src/http/MultipartParser/internal/contentType.ts +3 -3
- package/src/http/ProblemDetails.ts +149 -0
- package/src/http/UrlParams.ts +6 -1
- package/src/http/index.ts +6 -0
- package/src/http/internal/compression.ts +4 -5
- package/src/http/internal/decompression.ts +10 -4
- package/src/http/internal/httpBody.ts +10 -2
- package/src/http/internal/urlParams.ts +37 -0
- package/src/http-api/HttpApi.ts +3 -6
- package/src/http-api/HttpApiBuilder.ts +61 -19
- package/src/http-api/HttpApiClient.ts +284 -72
- package/src/http-api/HttpApiEndpoint.ts +135 -35
- package/src/http-api/HttpApiError.ts +250 -0
- package/src/http-api/HttpApiMiddleware.ts +95 -1
- package/src/http-api/HttpApiSchema.ts +236 -52
- package/src/http-api/HttpApiTest.ts +3 -2
- package/src/http-api/OpenApi.ts +20 -17
- package/src/http-api/internal/toCodecHttpProperties.ts +56 -0
- package/src/index.ts +6 -6
- package/src/internal/arbitrary/runner.ts +133 -36
- package/src/internal/core.ts +2 -0
- package/src/internal/effect.ts +58 -34
- package/src/internal/equal.ts +17 -0
- package/src/internal/glob.ts +736 -0
- package/src/internal/jsonSchema.ts +27 -0
- package/src/internal/matcher.ts +18 -1
- package/src/internal/persistence.ts +11 -0
- package/src/internal/rcRef.ts +4 -1
- package/src/internal/schema/compilerRegistry.ts +6 -1
- package/src/internal/schema/content.ts +18 -0
- package/src/internal/schema/fromJsonSchemaDocument.ts +228 -190
- package/src/internal/schema/fromRepresentation.ts +2 -1
- package/src/internal/schema/standardSchema.ts +2 -2
- package/src/internal/schema/toCodeDocument.ts +11 -7
- package/src/internal/schema/toCodec.ts +26 -22
- package/src/internal/schema/toJsonSchemaDocument.ts +189 -167
- package/src/internal/schema/toRepresentation.ts +122 -140
- package/src/internal/sql.ts +14 -0
- package/src/internal/trie.ts +43 -14
- package/src/internal/ulid.ts +44 -0
- package/src/internal/uuid.ts +57 -16
- package/src/internal/version.ts +1 -1
- package/src/observability/Otlp.ts +21 -4
- package/src/observability/OtlpProxy.ts +314 -0
- package/src/observability/OtlpResource.ts +9 -1
- package/src/observability/OtlpTracer.ts +4 -0
- package/src/observability/index.ts +6 -0
- package/src/persistence/CircuitBreaker.ts +1678 -0
- package/src/persistence/KeyValueStore.ts +219 -22
- package/src/persistence/PersistedQueue.ts +128 -59
- package/src/persistence/Persistence.ts +20 -13
- package/src/persistence/Redis.ts +129 -8
- package/src/persistence/index.ts +6 -0
- package/src/process/ChildProcess.ts +285 -264
- package/src/process/ChildProcessSpawner.ts +46 -2
- package/src/process/CommandLine.ts +630 -0
- package/src/process/index.ts +6 -0
- package/src/reactivity/AsyncResult.ts +1 -1
- package/src/reactivity/Atom.ts +5 -5
- package/src/reactivity/AtomRegistry.ts +1 -1
- package/src/rpc/RpcClient.ts +75 -36
- package/src/rpc/RpcMessage.ts +10 -1
- package/src/rpc/RpcSerialization.ts +35 -9
- package/src/rpc/RpcServer.ts +176 -63
- package/src/rpc/RpcTest.ts +3 -0
- package/src/schema/Model.ts +26 -3
- package/src/sql/Migrator.ts +15 -69
- package/src/sql/MigratorFileSystem.ts +71 -0
- package/src/sql/SqlClient.ts +13 -20
- package/src/sql/SqlResolver.ts +23 -9
- package/src/sql/Statement.ts +38 -9
- package/src/sql/index.ts +1 -1
- package/src/testing/index.ts +0 -6
- package/src/workflow/DurableDeferred.ts +23 -6
- package/src/workflow/internal/crypto.ts +15 -11
- package/dist/Crypto.d.ts +0 -244
- package/dist/Crypto.d.ts.map +0 -1
- package/dist/Crypto.js +0 -139
- package/dist/Crypto.js.map +0 -1
- package/dist/testing/TestCrypto.d.ts +0 -73
- package/dist/testing/TestCrypto.d.ts.map +0 -1
- package/dist/testing/TestCrypto.js +0 -87
- package/dist/testing/TestCrypto.js.map +0 -1
- package/src/Crypto.ts +0 -347
- package/src/testing/TestCrypto.ts +0 -94
package/src/http-api/OpenApi.ts
CHANGED
|
@@ -548,10 +548,13 @@ function makeOpenApi<Id extends string, Groups extends HttpApiGroup.Constraint>(
|
|
|
548
548
|
if (!HttpApiMiddleware.isSecurity(middleware)) {
|
|
549
549
|
return
|
|
550
550
|
}
|
|
551
|
-
|
|
552
|
-
|
|
553
|
-
|
|
551
|
+
const names = Object.keys(middleware.security)
|
|
552
|
+
for (const name of names) {
|
|
553
|
+
processHttpApiSecurity(name, middleware.security[name])
|
|
554
554
|
}
|
|
555
|
+
// Stacked middleware must all pass (AND); schemes within one middleware are alternatives (OR).
|
|
556
|
+
const requirements = op.security.length === 0 ? [{}] : op.security
|
|
557
|
+
op.security = requirements.flatMap((requirement) => names.map((name) => ({ ...requirement, [name]: [] })))
|
|
555
558
|
})
|
|
556
559
|
|
|
557
560
|
function processHttpApiSecurity(
|
|
@@ -585,7 +588,9 @@ function makeOpenApi<Id extends string, Groups extends HttpApiGroup.Constraint>(
|
|
|
585
588
|
for (const schema of HttpApiEndpoint.getPayloadSchemas(endpoint)) {
|
|
586
589
|
if (HttpApiSchema.isStreamSchema(schema)) {
|
|
587
590
|
// Endpoint construction rejects a buffered payload sharing a streaming payload's media type.
|
|
588
|
-
|
|
591
|
+
for (const contentType of schema.contentTypes) {
|
|
592
|
+
schemasByContentType.set(contentType, schema)
|
|
593
|
+
}
|
|
589
594
|
continue
|
|
590
595
|
}
|
|
591
596
|
if (HttpApiSchema.isNoContent(schema.ast)) continue
|
|
@@ -825,6 +830,9 @@ function selectReferences(
|
|
|
825
830
|
|
|
826
831
|
pushChecks(representation.checks)
|
|
827
832
|
switch (representation._tag) {
|
|
833
|
+
case "String":
|
|
834
|
+
if (representation.content?.schema !== undefined) stack.push(representation.content.schema)
|
|
835
|
+
break
|
|
828
836
|
case "Declaration":
|
|
829
837
|
stack.push(...representation.typeParameters)
|
|
830
838
|
break
|
|
@@ -899,6 +907,7 @@ function extractResponseBodies(
|
|
|
899
907
|
map.get(status)!.headers.push(
|
|
900
908
|
Schema.Struct({ connection: Schema.Literal("Upgrade"), upgrade: Schema.Literal(body.protocol) })
|
|
901
909
|
)
|
|
910
|
+
if (body.headers !== undefined) map.get(status)!.headers.push(body.headers)
|
|
902
911
|
} else if (HttpApiSchema.isStreamSchema(body)) {
|
|
903
912
|
addStreamContent(body, status)
|
|
904
913
|
} else if (HttpApiSchema.isNoContent(ast)) {
|
|
@@ -975,20 +984,14 @@ function extractResponseBodies(
|
|
|
975
984
|
stream: HttpApiSchema.StreamSchema,
|
|
976
985
|
status: number
|
|
977
986
|
) {
|
|
978
|
-
|
|
987
|
+
let statusMap = map.get(status)
|
|
979
988
|
if (statusMap === undefined) {
|
|
980
|
-
|
|
981
|
-
|
|
982
|
-
|
|
983
|
-
|
|
984
|
-
|
|
985
|
-
|
|
986
|
-
} else {
|
|
987
|
-
if (statusMap.streamContent === undefined) {
|
|
988
|
-
statusMap.streamContent = new Map([[stream.contentType, stream]])
|
|
989
|
-
} else {
|
|
990
|
-
statusMap.streamContent.set(stream.contentType, stream)
|
|
991
|
-
}
|
|
989
|
+
statusMap = { descriptions: new Set(), content: undefined, headers: [], streamContent: undefined }
|
|
990
|
+
map.set(status, statusMap)
|
|
991
|
+
}
|
|
992
|
+
const streamContent = statusMap.streamContent ??= new Map()
|
|
993
|
+
for (const contentType of stream.contentTypes) {
|
|
994
|
+
streamContent.set(contentType, stream)
|
|
992
995
|
}
|
|
993
996
|
}
|
|
994
997
|
}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { memoize } from "../../Function.ts"
|
|
2
|
+
import * as Option from "../../Option.ts"
|
|
3
|
+
import * as Predicate from "../../Predicate.ts"
|
|
4
|
+
import * as Schema from "../../Schema.ts"
|
|
5
|
+
import * as SchemaAST from "../../SchemaAST.ts"
|
|
6
|
+
import * as SchemaGetter from "../../SchemaGetter.ts"
|
|
7
|
+
import * as SchemaTransformation from "../../SchemaTransformation.ts"
|
|
8
|
+
|
|
9
|
+
/** @internal */
|
|
10
|
+
export function toCodecHttpProperties<S extends Schema.Constraint>(schema: S): Schema.toCodecStringTree<S> {
|
|
11
|
+
const codec = Schema.toCodecStringTree(schema)
|
|
12
|
+
return codec.rebuild(normalizeProperties(codec.ast))
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
const omitUndefined = new SchemaTransformation.Transformation(
|
|
16
|
+
SchemaGetter.passthrough(),
|
|
17
|
+
SchemaGetter.transformOptional(Option.filter(Predicate.isNotUndefined))
|
|
18
|
+
)
|
|
19
|
+
|
|
20
|
+
// Only descend through unions and suspensions, leaving nested values alone.
|
|
21
|
+
const present = memoize((ast: SchemaAST.AST): SchemaAST.AST => {
|
|
22
|
+
if (ast._tag === "Undefined") return new SchemaAST.Never(ast.annotations, undefined, undefined, ast.context)
|
|
23
|
+
if (ast._tag === "Suspend") return ast.recur(present)
|
|
24
|
+
if (ast._tag !== "Union") return ast
|
|
25
|
+
|
|
26
|
+
const members = SchemaAST.mapOrSame(ast.types, present)
|
|
27
|
+
if (members === ast.types) return ast
|
|
28
|
+
const types = members.filter((member) => member._tag !== "Never")
|
|
29
|
+
if (types.length === 1 && ast.checks === undefined && ast.annotations === undefined) {
|
|
30
|
+
return SchemaAST.replaceContext(types[0], ast.context)
|
|
31
|
+
}
|
|
32
|
+
return new SchemaAST.Union(types, ast.options, ast.annotations, ast.checks, undefined, ast.context)
|
|
33
|
+
})
|
|
34
|
+
|
|
35
|
+
const normalizeProperties = SchemaAST.applyToSelfOrLastLinkEncodingIdempotent((ast) => {
|
|
36
|
+
if (ast._tag === "Union" || ast._tag === "Suspend") return ast.recur(normalizeProperties)
|
|
37
|
+
if (ast._tag !== "Objects") return ast
|
|
38
|
+
|
|
39
|
+
const properties = SchemaAST.mapOrSame(ast.propertySignatures, (ps) => {
|
|
40
|
+
const encoded = SchemaAST.toEncoded(ps.type)
|
|
41
|
+
if (!SchemaAST.isOptional(encoded)) return ps
|
|
42
|
+
const wire = present(encoded)
|
|
43
|
+
return wire === encoded
|
|
44
|
+
? ps
|
|
45
|
+
: new SchemaAST.PropertySignature(ps.name, SchemaAST.decodeTo(wire, ps.type, omitUndefined))
|
|
46
|
+
})
|
|
47
|
+
return properties === ast.propertySignatures ? ast : new SchemaAST.Objects(
|
|
48
|
+
properties,
|
|
49
|
+
ast.indexSignatures,
|
|
50
|
+
ast.annotations,
|
|
51
|
+
ast.checks,
|
|
52
|
+
undefined,
|
|
53
|
+
ast.context,
|
|
54
|
+
ast.encodingChecks
|
|
55
|
+
)
|
|
56
|
+
})
|
package/src/index.ts
CHANGED
|
@@ -164,12 +164,6 @@ export * as Context from "./Context.ts"
|
|
|
164
164
|
*/
|
|
165
165
|
export * as Cron from "./Cron.ts"
|
|
166
166
|
|
|
167
|
-
/**
|
|
168
|
-
* @stability unstable
|
|
169
|
-
* @since 4.0.0
|
|
170
|
-
*/
|
|
171
|
-
export * as Crypto from "./Crypto.ts"
|
|
172
|
-
|
|
173
167
|
/**
|
|
174
168
|
* @stability stable
|
|
175
169
|
* @since 2.0.0
|
|
@@ -290,6 +284,12 @@ export * as Formatter from "./Formatter.ts"
|
|
|
290
284
|
*/
|
|
291
285
|
export * as Function from "./Function.ts"
|
|
292
286
|
|
|
287
|
+
/**
|
|
288
|
+
* @stability experimental
|
|
289
|
+
* @since 4.0.0
|
|
290
|
+
*/
|
|
291
|
+
export * as Glob from "./Glob.ts"
|
|
292
|
+
|
|
293
293
|
/**
|
|
294
294
|
* @stability unstable
|
|
295
295
|
* @since 4.0.0
|
|
@@ -3,7 +3,9 @@ import type {
|
|
|
3
3
|
ArrayOptions,
|
|
4
4
|
CheckOptions,
|
|
5
5
|
CheckResult,
|
|
6
|
+
Exhausted,
|
|
6
7
|
GlobalOptions,
|
|
8
|
+
Passed,
|
|
7
9
|
PropertyError,
|
|
8
10
|
PropertyFailure,
|
|
9
11
|
Replay,
|
|
@@ -13,12 +15,16 @@ import type {
|
|
|
13
15
|
SchemaOptions
|
|
14
16
|
} from "../../Arbitrary.ts"
|
|
15
17
|
import * as Effect from "../../Effect.ts"
|
|
18
|
+
import * as Fiber from "../../Fiber.ts"
|
|
16
19
|
import * as Option from "../../Option.ts"
|
|
17
20
|
import { pipeArguments } from "../../Pipeable.ts"
|
|
21
|
+
import * as Queue from "../../Queue.ts"
|
|
18
22
|
import * as Random from "../../Random.ts"
|
|
19
23
|
import type * as Result from "../../Result.ts"
|
|
20
24
|
import * as Scheduler from "../../Scheduler.ts"
|
|
21
25
|
import type * as Schema from "../../Schema.ts"
|
|
26
|
+
import * as Scope from "../../Scope.ts"
|
|
27
|
+
import * as Semaphore from "../../Semaphore.ts"
|
|
22
28
|
import { done } from "../core.ts"
|
|
23
29
|
import * as InternalRecord from "../record.ts"
|
|
24
30
|
import * as Arrays from "./array.ts"
|
|
@@ -582,6 +588,111 @@ const followReplay = Effect.fnUntraced(function*<A, E, R>(
|
|
|
582
588
|
return { _tag: "Replayed", current, failure } as const
|
|
583
589
|
})
|
|
584
590
|
|
|
591
|
+
interface SearchOptions {
|
|
592
|
+
readonly runs: number
|
|
593
|
+
readonly size: number
|
|
594
|
+
readonly maxDiscards: number
|
|
595
|
+
readonly seed: string | number
|
|
596
|
+
readonly maxOpsBeforeYield: number
|
|
597
|
+
}
|
|
598
|
+
|
|
599
|
+
interface SearchCase<A> {
|
|
600
|
+
readonly sample: Model.Sample<A>
|
|
601
|
+
readonly attempt: number
|
|
602
|
+
readonly size: number
|
|
603
|
+
readonly runs: number
|
|
604
|
+
readonly discards: number
|
|
605
|
+
}
|
|
606
|
+
|
|
607
|
+
interface Found<A, E> extends SearchCase<A> {
|
|
608
|
+
readonly _tag: "Found"
|
|
609
|
+
readonly failure: PropertyFailure<E>
|
|
610
|
+
}
|
|
611
|
+
|
|
612
|
+
type SearchResult<A, E> = Passed | Exhausted | Found<A, E>
|
|
613
|
+
|
|
614
|
+
// Only the search advances this cursor. Each generated case advances size, while discards retain it.
|
|
615
|
+
// This gives both search strategies the sequential seed and size schedule, independently of evaluation timing.
|
|
616
|
+
const makeSearch = <A>(self: Arbitrary<A>, options: SearchOptions) => {
|
|
617
|
+
const seed = hashSeed(options.seed)
|
|
618
|
+
let runs = 0
|
|
619
|
+
let discards = 0
|
|
620
|
+
let attemptIndex = 0
|
|
621
|
+
return Effect.gen(function*(): Effect.fn.Return<SearchCase<A> | Exhausted> {
|
|
622
|
+
const size = options.runs === 1 ? options.size : Math.round(runs * options.size / (options.runs - 1))
|
|
623
|
+
while (true) {
|
|
624
|
+
const index = attemptIndex++
|
|
625
|
+
const sample = yield* generateAttempt(self.gen, seed, index, size, true)
|
|
626
|
+
if (sample._tag === "Generated") {
|
|
627
|
+
return { sample, attempt: index, size, runs: ++runs, discards }
|
|
628
|
+
}
|
|
629
|
+
if (++discards > options.maxDiscards) return { _tag: "Exhausted", runs, discards, seed: options.seed }
|
|
630
|
+
if (options.maxOpsBeforeYield <= 1 || discards % options.maxOpsBeforeYield === 0) yield* Effect.yieldNow
|
|
631
|
+
}
|
|
632
|
+
})
|
|
633
|
+
}
|
|
634
|
+
|
|
635
|
+
const searchSequential = Effect.fnUntraced(function*<A, E, R>(
|
|
636
|
+
next: Effect.Effect<SearchCase<A> | Exhausted>,
|
|
637
|
+
property: (value: A) => boolean | Effect.Effect<boolean, E, R>,
|
|
638
|
+
runs: number
|
|
639
|
+
): Effect.fn.Return<SearchResult<A, E>, never, R> {
|
|
640
|
+
while (true) {
|
|
641
|
+
const current = yield* next
|
|
642
|
+
if ("_tag" in current) return current
|
|
643
|
+
const outcome = yield* evaluateProperty(property, current.sample.value)
|
|
644
|
+
if (outcome._tag !== "Passed") return { ...current, _tag: "Found", failure: outcome }
|
|
645
|
+
if (current.runs === runs) return { _tag: "Passed", runs, discards: current.discards }
|
|
646
|
+
}
|
|
647
|
+
})
|
|
648
|
+
|
|
649
|
+
const searchConcurrent = Effect.fnUntraced(function*<A, E, R>(
|
|
650
|
+
next: Effect.Effect<SearchCase<A> | Exhausted>,
|
|
651
|
+
property: (value: A) => boolean | Effect.Effect<boolean, E, R>,
|
|
652
|
+
runs: number,
|
|
653
|
+
concurrency: number
|
|
654
|
+
): Effect.fn.Return<SearchResult<A, E>, never, R> {
|
|
655
|
+
interface Pending extends SearchCase<A> {
|
|
656
|
+
readonly fiber: Fiber.Fiber<typeof passedProperty | PropertyFailure<E>>
|
|
657
|
+
}
|
|
658
|
+
const queue = yield* Queue.make<Pending | Exhausted>()
|
|
659
|
+
const window = yield* Semaphore.make(concurrency)
|
|
660
|
+
const scope = yield* Scope.make("parallel")
|
|
661
|
+
const produce = Effect.gen(function*() {
|
|
662
|
+
for (let index = 0; index < runs; index++) {
|
|
663
|
+
// Hold each permit until its result is consumed, bounding both work and buffered results.
|
|
664
|
+
yield* window.take(1)
|
|
665
|
+
const current = yield* next
|
|
666
|
+
if ("_tag" in current) {
|
|
667
|
+
yield* Queue.offer(queue, current)
|
|
668
|
+
return
|
|
669
|
+
}
|
|
670
|
+
const fiber = yield* Effect.forkIn(Effect.suspend(() => evaluateProperty(property, current.sample.value)), scope)
|
|
671
|
+
yield* Queue.offer(queue, { ...current, fiber })
|
|
672
|
+
}
|
|
673
|
+
}).pipe(
|
|
674
|
+
// Queue failure follows already queued cases, so speculative generation defects cannot overtake them.
|
|
675
|
+
Effect.catchCause((cause) => Queue.failCause(queue, cause)),
|
|
676
|
+
Effect.awaitAllChildren
|
|
677
|
+
)
|
|
678
|
+
return yield* Effect.acquireUseRelease(
|
|
679
|
+
Effect.forkIn(produce, scope),
|
|
680
|
+
() =>
|
|
681
|
+
Effect.gen(function*(): Effect.fn.Return<SearchResult<A, E>, never, R> {
|
|
682
|
+
while (true) {
|
|
683
|
+
const current = yield* Queue.take(queue)
|
|
684
|
+
if ("_tag" in current) return current
|
|
685
|
+
const outcome = yield* Fiber.join(current.fiber)
|
|
686
|
+
if (outcome._tag !== "Passed") return { ...current, _tag: "Found", failure: outcome }
|
|
687
|
+
if (current.runs === runs) return { _tag: "Passed", runs, discards: current.discards }
|
|
688
|
+
yield* window.release(1)
|
|
689
|
+
}
|
|
690
|
+
}),
|
|
691
|
+
// Generator and evaluation finalizers can depend on each other, so interrupt them independently before awaiting.
|
|
692
|
+
(_, exit) => Scope.close(scope, exit)
|
|
693
|
+
)
|
|
694
|
+
})
|
|
695
|
+
|
|
585
696
|
/** @internal */
|
|
586
697
|
export const checkEffect = Effect.fnUntraced(function*<A, E, R>(
|
|
587
698
|
self: Arbitrary<A>,
|
|
@@ -612,6 +723,7 @@ export const checkEffect = Effect.fnUntraced(function*<A, E, R>(
|
|
|
612
723
|
|
|
613
724
|
const defaults = globalOptions.check
|
|
614
725
|
const runsTarget = positive(options?.runs ?? defaults?.runs, 100, "runs")
|
|
726
|
+
const concurrency = positive(options?.concurrency ?? defaults?.concurrency, 1, "concurrency")
|
|
615
727
|
const size = natural(options?.size ?? defaults?.size, 10, "size")
|
|
616
728
|
const maxDiscards = natural(
|
|
617
729
|
options?.maxDiscards ?? defaults?.maxDiscards,
|
|
@@ -622,41 +734,26 @@ export const checkEffect = Effect.fnUntraced(function*<A, E, R>(
|
|
|
622
734
|
const seedOption = options?.seed ?? defaults?.seed
|
|
623
735
|
const maxOpsBeforeYield = yield* Scheduler.MaxOpsBeforeYield
|
|
624
736
|
const seed = yield* resolveMasterSeed(seedOption)
|
|
625
|
-
const
|
|
626
|
-
|
|
627
|
-
|
|
628
|
-
|
|
629
|
-
|
|
630
|
-
|
|
631
|
-
|
|
632
|
-
|
|
633
|
-
|
|
634
|
-
|
|
635
|
-
|
|
636
|
-
|
|
637
|
-
|
|
638
|
-
|
|
639
|
-
|
|
640
|
-
|
|
641
|
-
|
|
642
|
-
|
|
643
|
-
|
|
644
|
-
|
|
645
|
-
|
|
646
|
-
initialInput: attempt.value,
|
|
647
|
-
shrunkInput: minimized.current.value,
|
|
648
|
-
failure: minimized.failure,
|
|
649
|
-
runs: runs + 1,
|
|
650
|
-
discards,
|
|
651
|
-
shrinks: minimized.shrinks,
|
|
652
|
-
replay: makeReplay({
|
|
653
|
-
seed,
|
|
654
|
-
attempt: currentAttempt,
|
|
655
|
-
size: currentSize,
|
|
656
|
-
path: minimized.path,
|
|
657
|
-
failureTag: outcome._tag
|
|
658
|
-
})
|
|
659
|
-
}
|
|
737
|
+
const next = makeSearch(self, { runs: runsTarget, size, maxDiscards, seed, maxOpsBeforeYield })
|
|
738
|
+
const result = yield* concurrency === 1
|
|
739
|
+
? searchSequential(next, property, runsTarget)
|
|
740
|
+
: searchConcurrent(next, property, runsTarget, concurrency)
|
|
741
|
+
if (result._tag !== "Found") return result
|
|
742
|
+
const minimized = yield* shrink(result.sample, result.failure, property, maxShrinks)
|
|
743
|
+
return {
|
|
744
|
+
_tag: "Falsified",
|
|
745
|
+
initialInput: result.sample.value,
|
|
746
|
+
shrunkInput: minimized.current.value,
|
|
747
|
+
failure: minimized.failure,
|
|
748
|
+
runs: result.runs,
|
|
749
|
+
discards: result.discards,
|
|
750
|
+
shrinks: minimized.shrinks,
|
|
751
|
+
replay: makeReplay({
|
|
752
|
+
seed,
|
|
753
|
+
attempt: result.attempt,
|
|
754
|
+
size: result.size,
|
|
755
|
+
path: minimized.path,
|
|
756
|
+
failureTag: result.failure._tag
|
|
757
|
+
})
|
|
660
758
|
}
|
|
661
|
-
return { _tag: "Passed", runs, discards }
|
|
662
759
|
})
|
package/src/internal/core.ts
CHANGED
|
@@ -216,6 +216,8 @@ export abstract class ReasonBase<Tag extends string> implements Cause.Cause.Reas
|
|
|
216
216
|
if (options?.overwrite !== true && newAnnotations.has(key)) return
|
|
217
217
|
newAnnotations.set(key, value)
|
|
218
218
|
})
|
|
219
|
+
// Keep the reason when nothing was added, so interrupts still match by identity.
|
|
220
|
+
if (options?.overwrite !== true && newAnnotations.size === this.annotations.size) return this
|
|
219
221
|
const self = Object.assign(Object.create(Object.getPrototypeOf(this)), this)
|
|
220
222
|
self.annotations = newAnnotations
|
|
221
223
|
return self
|
package/src/internal/effect.ts
CHANGED
|
@@ -97,7 +97,8 @@ import {
|
|
|
97
97
|
TracerEnabled,
|
|
98
98
|
TracerSpanAnnotations,
|
|
99
99
|
TracerSpanLinks,
|
|
100
|
-
TracerTimingEnabled
|
|
100
|
+
TracerTimingEnabled,
|
|
101
|
+
UnhandledLogLevel
|
|
101
102
|
} from "./references.ts"
|
|
102
103
|
import { getStackTraceLimit, setStackTraceLimit } from "./stackTraceLimit.ts"
|
|
103
104
|
import { addSpanStackTrace, makeStackCleaner } from "./tracer.ts"
|
|
@@ -1005,7 +1006,10 @@ export const fail: <E>(error: E) => Effect.Effect<never, E> = exitFail
|
|
|
1005
1006
|
export const sync: <A>(thunk: LazyArg<A>) => Effect.Effect<A> = makePrimitive({
|
|
1006
1007
|
op: "Sync",
|
|
1007
1008
|
[evaluate](fiber): Primitive | Yield {
|
|
1008
|
-
|
|
1009
|
+
// call the thunk without a receiver, so V8 does not name its frame after
|
|
1010
|
+
// the args property, which the stack cleaner cuts at
|
|
1011
|
+
const thunk = this[args]
|
|
1012
|
+
const value = thunk()
|
|
1009
1013
|
const cont = fiber.getCont(contA)
|
|
1010
1014
|
return cont ? cont[contA](value, fiber) : fiber.yieldWith(exitSucceed(value))
|
|
1011
1015
|
}
|
|
@@ -1017,7 +1021,9 @@ export const suspend: <A, E, R>(
|
|
|
1017
1021
|
) => Effect.Effect<A, E, R> = makePrimitive({
|
|
1018
1022
|
op: "Suspend",
|
|
1019
1023
|
[evaluate](_fiber) {
|
|
1020
|
-
|
|
1024
|
+
// see Sync
|
|
1025
|
+
const thunk = this[args]
|
|
1026
|
+
return thunk()
|
|
1021
1027
|
}
|
|
1022
1028
|
})
|
|
1023
1029
|
|
|
@@ -1284,11 +1290,16 @@ export const gen = <
|
|
|
1284
1290
|
return suspend(() => fromIteratorUnsafe(body.call(options.self) as any))
|
|
1285
1291
|
}
|
|
1286
1292
|
|
|
1293
|
+
// With `{ self }` the body is `pipeables[0]`, so take it out and bind it.
|
|
1294
|
+
const fnBody = (bodyOrOptions: Function | { readonly self: any }, pipeables: Array<Function>): Function =>
|
|
1295
|
+
typeof bodyOrOptions === "function" ? bodyOrOptions : pipeables.shift()!.bind(bodyOrOptions.self)
|
|
1296
|
+
|
|
1287
1297
|
/** @internal */
|
|
1288
1298
|
export const fnUntraced: Effect.fn.Untraced = (
|
|
1289
|
-
|
|
1299
|
+
bodyOrOptions: Function | { readonly self: any },
|
|
1290
1300
|
...pipeables: Array<any>
|
|
1291
1301
|
) => {
|
|
1302
|
+
const body = fnBody(bodyOrOptions, pipeables)
|
|
1292
1303
|
const fn = pipeables.length === 0
|
|
1293
1304
|
? function(this: any) {
|
|
1294
1305
|
return suspend(() => fromIteratorUnsafe(body.apply(this, arguments)))
|
|
@@ -1348,11 +1359,20 @@ const makeFn = (
|
|
|
1348
1359
|
addSpan: boolean,
|
|
1349
1360
|
spanOptions: Tracer.SpanOptionsNoTrace | undefined
|
|
1350
1361
|
) => {
|
|
1351
|
-
const body =
|
|
1352
|
-
? bodyOrOptions
|
|
1353
|
-
: (pipeables.shift()!).bind(bodyOrOptions.self)
|
|
1362
|
+
const body = fnBody(bodyOrOptions, pipeables)
|
|
1354
1363
|
const definitionName = `${name} (definition)`
|
|
1355
1364
|
const definitionStack = defError ? fnStackCleaner(() => defError.stack) : constUndefined
|
|
1365
|
+
// Built outside the traced function so the frame cannot capture its `arguments`,
|
|
1366
|
+
// which forked fibers inheriting the frame would otherwise keep alive.
|
|
1367
|
+
const makeCallFrame = (callError: Error | undefined) => (prev: StackFrame | undefined): StackFrame => ({
|
|
1368
|
+
name,
|
|
1369
|
+
stack: callError ? fnStackCleaner(() => callError.stack) : constUndefined,
|
|
1370
|
+
parent: {
|
|
1371
|
+
name: definitionName,
|
|
1372
|
+
stack: definitionStack,
|
|
1373
|
+
parent: prev
|
|
1374
|
+
}
|
|
1375
|
+
})
|
|
1356
1376
|
|
|
1357
1377
|
return defineFunctionLength(body.length, function(this: any, ...args: Array<any>) {
|
|
1358
1378
|
let result = suspend(() => {
|
|
@@ -1377,25 +1397,18 @@ const makeFn = (
|
|
|
1377
1397
|
useSpan(name, spanOptions!, (span) => provideParentSpan(result, span)) :
|
|
1378
1398
|
result,
|
|
1379
1399
|
CurrentStackFrame,
|
|
1380
|
-
(
|
|
1381
|
-
name,
|
|
1382
|
-
stack: callError ? fnStackCleaner(() => callError.stack) : constUndefined,
|
|
1383
|
-
parent: {
|
|
1384
|
-
name: definitionName,
|
|
1385
|
-
stack: definitionStack,
|
|
1386
|
-
parent: prev
|
|
1387
|
-
}
|
|
1388
|
-
})
|
|
1400
|
+
makeCallFrame(callError)
|
|
1389
1401
|
)
|
|
1390
1402
|
})
|
|
1391
1403
|
}
|
|
1392
1404
|
|
|
1393
1405
|
/** @internal */
|
|
1394
1406
|
export const fnUntracedEager: Effect.fn.Untraced = (
|
|
1395
|
-
|
|
1407
|
+
bodyOrOptions: Function | { readonly self: any },
|
|
1396
1408
|
...pipeables: Array<any>
|
|
1397
|
-
) =>
|
|
1398
|
-
|
|
1409
|
+
) => {
|
|
1410
|
+
const body = fnBody(bodyOrOptions, pipeables)
|
|
1411
|
+
return defineFunctionLength(
|
|
1399
1412
|
body.length,
|
|
1400
1413
|
pipeables.length === 0
|
|
1401
1414
|
? function(this: any) {
|
|
@@ -1409,6 +1422,7 @@ export const fnUntracedEager: Effect.fn.Untraced = (
|
|
|
1409
1422
|
return effect
|
|
1410
1423
|
}
|
|
1411
1424
|
)
|
|
1425
|
+
}
|
|
1412
1426
|
|
|
1413
1427
|
const fromIteratorEagerUnsafe = (
|
|
1414
1428
|
evaluate: () => Iterator<Effect.Effect<any, any, any>>
|
|
@@ -2057,17 +2071,17 @@ export const exitFindDefect = Filter.composePassthrough(
|
|
|
2057
2071
|
/** @internal */
|
|
2058
2072
|
export const exitHasInterrupts = <A, E>(
|
|
2059
2073
|
self: Exit.Exit<A, E>
|
|
2060
|
-
):
|
|
2074
|
+
): boolean => self._tag === "Failure" && hasInterrupts(self.cause)
|
|
2061
2075
|
|
|
2062
2076
|
/** @internal */
|
|
2063
2077
|
export const exitHasDies = <A, E>(
|
|
2064
2078
|
self: Exit.Exit<A, E>
|
|
2065
|
-
):
|
|
2079
|
+
): boolean => self._tag === "Failure" && hasDies(self.cause)
|
|
2066
2080
|
|
|
2067
2081
|
/** @internal */
|
|
2068
2082
|
export const exitHasFails = <A, E>(
|
|
2069
2083
|
self: Exit.Exit<A, E>
|
|
2070
|
-
):
|
|
2084
|
+
): boolean => self._tag === "Failure" && hasFails(self.cause)
|
|
2071
2085
|
|
|
2072
2086
|
/** @internal */
|
|
2073
2087
|
export const exitVoid: Exit.Exit<void> = exitSucceed(void 0)
|
|
@@ -3482,19 +3496,29 @@ export const firstSuccessOf = <Eff extends Effect.Effect<any, any, any>>(
|
|
|
3482
3496
|
export const eventually = <A, E, R>(self: Effect.Effect<A, E, R>): Effect.Effect<A, never, R> =>
|
|
3483
3497
|
catch_(self, (_) => flatMap(yieldNow, () => eventually(self)))
|
|
3484
3498
|
|
|
3499
|
+
/** @internal */
|
|
3500
|
+
export const ignoreCauseLogger = (log: true | LogLevel.Severity | "Unhandled") =>
|
|
3501
|
+
log === "Unhandled"
|
|
3502
|
+
? (...message: ReadonlyArray<any>): Effect.Effect<void> =>
|
|
3503
|
+
withFiber((fiber) => {
|
|
3504
|
+
const level = fiber.getRef(UnhandledLogLevel)
|
|
3505
|
+
return level === undefined ? void_ : logWithLevel(level)(...message)
|
|
3506
|
+
})
|
|
3507
|
+
: logWithLevel(log === true ? undefined : log)
|
|
3508
|
+
|
|
3485
3509
|
/** @internal */
|
|
3486
3510
|
export const ignore: <
|
|
3487
3511
|
Arg extends Effect.Effect<any, any, any> | {
|
|
3488
|
-
readonly log?: boolean | LogLevel.Severity | undefined
|
|
3512
|
+
readonly log?: boolean | LogLevel.Severity | "Unhandled" | undefined
|
|
3489
3513
|
readonly message?: string | undefined
|
|
3490
3514
|
} | undefined = {
|
|
3491
|
-
readonly log?: boolean | LogLevel.Severity | undefined
|
|
3515
|
+
readonly log?: boolean | LogLevel.Severity | "Unhandled" | undefined
|
|
3492
3516
|
readonly message?: string | undefined
|
|
3493
3517
|
}
|
|
3494
3518
|
>(
|
|
3495
3519
|
effectOrOptions: Arg,
|
|
3496
3520
|
options?: {
|
|
3497
|
-
readonly log?: boolean | LogLevel.Severity | undefined
|
|
3521
|
+
readonly log?: boolean | LogLevel.Severity | "Unhandled" | undefined
|
|
3498
3522
|
readonly message?: string | undefined
|
|
3499
3523
|
} | undefined
|
|
3500
3524
|
) => [Arg] extends [Effect.Effect<infer _A, infer _E, infer _R>] ? Effect.Effect<void, never, _R>
|
|
@@ -3503,14 +3527,14 @@ export const ignore: <
|
|
|
3503
3527
|
<A, E, R>(
|
|
3504
3528
|
self: Effect.Effect<A, E, R>,
|
|
3505
3529
|
options?: {
|
|
3506
|
-
readonly log?: boolean | LogLevel.Severity | undefined
|
|
3530
|
+
readonly log?: boolean | LogLevel.Severity | "Unhandled" | undefined
|
|
3507
3531
|
readonly message?: string | undefined
|
|
3508
3532
|
} | undefined
|
|
3509
3533
|
): Effect.Effect<void, never, R> => {
|
|
3510
3534
|
if (!options?.log) {
|
|
3511
3535
|
return matchEffect(self, { onFailure: (_) => void_, onSuccess: (_) => void_ })
|
|
3512
3536
|
}
|
|
3513
|
-
const logEffect =
|
|
3537
|
+
const logEffect = ignoreCauseLogger(options.log)
|
|
3514
3538
|
return matchCauseEffect(self, {
|
|
3515
3539
|
onFailure(cause) {
|
|
3516
3540
|
const error = findRecoverableError(cause)
|
|
@@ -3528,16 +3552,16 @@ export const ignore: <
|
|
|
3528
3552
|
/** @internal */
|
|
3529
3553
|
export const ignoreCause: <
|
|
3530
3554
|
Arg extends Effect.Effect<any, any, any> | {
|
|
3531
|
-
readonly log?: boolean | LogLevel.Severity | undefined
|
|
3555
|
+
readonly log?: boolean | LogLevel.Severity | "Unhandled" | undefined
|
|
3532
3556
|
readonly message?: string | undefined
|
|
3533
3557
|
} | undefined = {
|
|
3534
|
-
readonly log?: boolean | LogLevel.Severity | undefined
|
|
3558
|
+
readonly log?: boolean | LogLevel.Severity | "Unhandled" | undefined
|
|
3535
3559
|
readonly message?: string | undefined
|
|
3536
3560
|
}
|
|
3537
3561
|
>(
|
|
3538
3562
|
effectOrOptions: Arg,
|
|
3539
3563
|
options?: {
|
|
3540
|
-
readonly log?: boolean | LogLevel.Severity | undefined
|
|
3564
|
+
readonly log?: boolean | LogLevel.Severity | "Unhandled" | undefined
|
|
3541
3565
|
readonly message?: string | undefined
|
|
3542
3566
|
} | undefined
|
|
3543
3567
|
) => [Arg] extends [Effect.Effect<infer _A, infer _E, infer _R>] ? Effect.Effect<void, never, _R>
|
|
@@ -3546,14 +3570,14 @@ export const ignoreCause: <
|
|
|
3546
3570
|
<A, E, R>(
|
|
3547
3571
|
self: Effect.Effect<A, E, R>,
|
|
3548
3572
|
options?: {
|
|
3549
|
-
readonly log?: boolean | LogLevel.Severity | undefined
|
|
3573
|
+
readonly log?: boolean | LogLevel.Severity | "Unhandled" | undefined
|
|
3550
3574
|
readonly message?: string | undefined
|
|
3551
3575
|
} | undefined
|
|
3552
3576
|
): Effect.Effect<void, never, R> => {
|
|
3553
3577
|
if (!options?.log) {
|
|
3554
3578
|
return matchCauseEffect(self, { onFailure: (_) => void_, onSuccess: (_) => void_ })
|
|
3555
3579
|
}
|
|
3556
|
-
const logEffect =
|
|
3580
|
+
const logEffect = ignoreCauseLogger(options.log)
|
|
3557
3581
|
return matchCauseEffect(self, {
|
|
3558
3582
|
onFailure: (cause) => options.message === undefined ? logEffect(cause) : logEffect(options.message, cause),
|
|
3559
3583
|
onSuccess: (_) => void_
|
|
@@ -6307,7 +6331,7 @@ export const annotateCurrentSpan: {
|
|
|
6307
6331
|
} = (...args: [Record<string, unknown>] | [key: string, value: unknown]) =>
|
|
6308
6332
|
withFiber((fiber) => {
|
|
6309
6333
|
const span = fiber.currentSpanLocal
|
|
6310
|
-
if (span) {
|
|
6334
|
+
if (span && span.status._tag !== "Ended") {
|
|
6311
6335
|
if (args.length === 1) {
|
|
6312
6336
|
for (const [key, value] of Object.entries(args[0])) {
|
|
6313
6337
|
span.attribute(key, value)
|
|
@@ -6950,7 +6974,7 @@ export const tracerLogger = loggerMake<unknown, void>(({ cause, fiber, logLevel,
|
|
|
6950
6974
|
const clock = fiber.getRef(ClockRef)
|
|
6951
6975
|
const annotations = fiber.getRef(CurrentLogAnnotations)
|
|
6952
6976
|
const span = fiber.cache.span
|
|
6953
|
-
if (span === undefined || span._tag === "ExternalSpan") return
|
|
6977
|
+
if (span === undefined || span._tag === "ExternalSpan" || span.status._tag === "Ended") return
|
|
6954
6978
|
const attributes: Record<string, unknown> = {}
|
|
6955
6979
|
for (const [key, value] of Object.entries(annotations)) {
|
|
6956
6980
|
InternalRecord.assignProperty(attributes, key, value)
|
package/src/internal/equal.ts
CHANGED
|
@@ -29,3 +29,20 @@ export const byReferenceInstances = new WeakSet<object>()
|
|
|
29
29
|
|
|
30
30
|
/** @internal */
|
|
31
31
|
export const viewBytes = (view: DataView): Uint8Array => new Uint8Array(view.buffer, view.byteOffset, view.byteLength)
|
|
32
|
+
|
|
33
|
+
/** @internal */
|
|
34
|
+
export const isArrayBufferLike = (u: unknown): u is ArrayBufferLike =>
|
|
35
|
+
u instanceof ArrayBuffer || (typeof SharedArrayBuffer !== "undefined" && u instanceof SharedArrayBuffer)
|
|
36
|
+
|
|
37
|
+
/**
|
|
38
|
+
* Returns `undefined` for detached buffers, which can no longer be read.
|
|
39
|
+
*
|
|
40
|
+
* @internal
|
|
41
|
+
*/
|
|
42
|
+
export const bufferBytes = (buffer: ArrayBufferLike): Uint8Array | undefined => {
|
|
43
|
+
try {
|
|
44
|
+
return new Uint8Array(buffer)
|
|
45
|
+
} catch {
|
|
46
|
+
return undefined
|
|
47
|
+
}
|
|
48
|
+
}
|