effect 4.0.6 → 4.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/dist/Arbitrary.d.ts +10 -2
- package/dist/Arbitrary.d.ts.map +1 -1
- package/dist/Arbitrary.js +2 -1
- package/dist/Arbitrary.js.map +1 -1
- package/dist/BigDecimal.d.ts.map +1 -1
- package/dist/BigDecimal.js +3 -0
- package/dist/BigDecimal.js.map +1 -1
- package/dist/Channel.d.ts +12 -6
- package/dist/Channel.d.ts.map +1 -1
- package/dist/Channel.js +30 -9
- package/dist/Channel.js.map +1 -1
- package/dist/Config.d.ts +7 -1
- package/dist/Config.d.ts.map +1 -1
- package/dist/Config.js.map +1 -1
- package/dist/Context.d.ts +18 -1
- package/dist/Context.d.ts.map +1 -1
- package/dist/Context.js +27 -8
- package/dist/Context.js.map +1 -1
- package/dist/Cron.d.ts +81 -11
- package/dist/Cron.d.ts.map +1 -1
- package/dist/Cron.js +101 -26
- package/dist/Cron.js.map +1 -1
- package/dist/Data.d.ts +54 -235
- package/dist/Data.d.ts.map +1 -1
- package/dist/Data.js.map +1 -1
- package/dist/Duration.d.ts +78 -0
- package/dist/Duration.d.ts.map +1 -1
- package/dist/Duration.js +123 -0
- package/dist/Duration.js.map +1 -1
- package/dist/Effect.d.ts +165 -8
- package/dist/Effect.d.ts.map +1 -1
- package/dist/Effect.js +12 -2
- package/dist/Effect.js.map +1 -1
- package/dist/Equal.d.ts.map +1 -1
- package/dist/Equal.js +8 -1
- package/dist/Equal.js.map +1 -1
- package/dist/Exit.d.ts +3 -3
- package/dist/Exit.d.ts.map +1 -1
- package/dist/Exit.js.map +1 -1
- package/dist/FileSystem.d.ts +59 -4
- package/dist/FileSystem.d.ts.map +1 -1
- package/dist/FileSystem.js +9 -2
- package/dist/FileSystem.js.map +1 -1
- package/dist/Formatter.d.ts.map +1 -1
- package/dist/Formatter.js +27 -13
- package/dist/Formatter.js.map +1 -1
- package/dist/Glob.d.ts +165 -0
- package/dist/Glob.d.ts.map +1 -0
- package/dist/Glob.js +127 -0
- package/dist/Glob.js.map +1 -0
- package/dist/Hash.d.ts.map +1 -1
- package/dist/Hash.js +4 -1
- package/dist/Hash.js.map +1 -1
- package/dist/JsonPatch.js +4 -0
- package/dist/JsonPatch.js.map +1 -1
- package/dist/JsonSchema.d.ts.map +1 -1
- package/dist/JsonSchema.js +13 -40
- package/dist/JsonSchema.js.map +1 -1
- package/dist/Match.d.ts +86 -0
- package/dist/Match.d.ts.map +1 -1
- package/dist/Match.js +72 -0
- package/dist/Match.js.map +1 -1
- package/dist/Metric.d.ts +3 -3
- package/dist/MutableList.d.ts +5 -2
- package/dist/MutableList.d.ts.map +1 -1
- package/dist/MutableList.js +7 -5
- package/dist/MutableList.js.map +1 -1
- package/dist/MutableRef.d.ts.map +1 -1
- package/dist/MutableRef.js +7 -0
- package/dist/MutableRef.js.map +1 -1
- package/dist/PartitionedSemaphore.d.ts +2 -1
- package/dist/PartitionedSemaphore.d.ts.map +1 -1
- package/dist/PartitionedSemaphore.js +22 -12
- package/dist/PartitionedSemaphore.js.map +1 -1
- package/dist/Pool.d.ts +51 -0
- package/dist/Pool.d.ts.map +1 -1
- package/dist/Pool.js +136 -36
- package/dist/Pool.js.map +1 -1
- package/dist/PubSub.d.ts.map +1 -1
- package/dist/PubSub.js +5 -6
- package/dist/PubSub.js.map +1 -1
- package/dist/Random.d.ts.map +1 -1
- package/dist/Random.js +3 -3
- package/dist/Random.js.map +1 -1
- package/dist/RcMap.d.ts.map +1 -1
- package/dist/RcMap.js +8 -2
- package/dist/RcMap.js.map +1 -1
- package/dist/Ref.d.ts.map +1 -1
- package/dist/Ref.js +8 -0
- package/dist/Ref.js.map +1 -1
- package/dist/Schedule.d.ts +18 -1
- package/dist/Schedule.d.ts.map +1 -1
- package/dist/Schedule.js +8 -3
- package/dist/Schedule.js.map +1 -1
- package/dist/Schema.d.ts +690 -49
- package/dist/Schema.d.ts.map +1 -1
- package/dist/Schema.js +687 -28
- package/dist/Schema.js.map +1 -1
- package/dist/SchemaAST.d.ts +4 -2
- package/dist/SchemaAST.d.ts.map +1 -1
- package/dist/SchemaAST.js +14 -17
- package/dist/SchemaAST.js.map +1 -1
- package/dist/SchemaGetter.d.ts +6 -1
- package/dist/SchemaGetter.d.ts.map +1 -1
- package/dist/SchemaGetter.js +22 -11
- package/dist/SchemaGetter.js.map +1 -1
- package/dist/SchemaParser.d.ts.map +1 -1
- package/dist/SchemaParser.js +48 -22
- package/dist/SchemaParser.js.map +1 -1
- package/dist/SchemaRepresentation.d.ts +33 -10
- package/dist/SchemaRepresentation.d.ts.map +1 -1
- package/dist/SchemaRepresentation.js +39 -13
- package/dist/SchemaRepresentation.js.map +1 -1
- package/dist/SchemaTransformation.d.ts +12 -4
- package/dist/SchemaTransformation.d.ts.map +1 -1
- package/dist/SchemaTransformation.js +15 -5
- package/dist/SchemaTransformation.js.map +1 -1
- package/dist/ScopedCache.d.ts.map +1 -1
- package/dist/ScopedCache.js +5 -7
- package/dist/ScopedCache.js.map +1 -1
- package/dist/Semaphore.d.ts +130 -0
- package/dist/Semaphore.d.ts.map +1 -1
- package/dist/Semaphore.js +94 -35
- package/dist/Semaphore.js.map +1 -1
- package/dist/Sink.d.ts.map +1 -1
- package/dist/Sink.js +7 -2
- package/dist/Sink.js.map +1 -1
- package/dist/Stream.d.ts +13 -4
- package/dist/Stream.d.ts.map +1 -1
- package/dist/Stream.js +31 -10
- package/dist/Stream.js.map +1 -1
- package/dist/String.d.ts +3 -0
- package/dist/String.d.ts.map +1 -1
- package/dist/String.js +3 -0
- package/dist/String.js.map +1 -1
- package/dist/Terminal.d.ts +18 -1
- package/dist/Terminal.d.ts.map +1 -1
- package/dist/Terminal.js +1 -1
- package/dist/Terminal.js.map +1 -1
- package/dist/Tracer.d.ts +11 -1
- package/dist/Tracer.d.ts.map +1 -1
- package/dist/Tracer.js +6 -1
- package/dist/Tracer.js.map +1 -1
- package/dist/ai/AiError.d.ts +43 -116
- package/dist/ai/AiError.d.ts.map +1 -1
- package/dist/ai/AiError.js +53 -72
- package/dist/ai/AiError.js.map +1 -1
- package/dist/ai/Decision.d.ts +196 -15
- package/dist/ai/Decision.d.ts.map +1 -1
- package/dist/ai/Decision.js +130 -0
- package/dist/ai/Decision.js.map +1 -1
- package/dist/ai/DecisionModel.d.ts +54 -13
- package/dist/ai/DecisionModel.d.ts.map +1 -1
- package/dist/ai/DecisionModel.js +123 -12
- package/dist/ai/DecisionModel.js.map +1 -1
- package/dist/ai/LanguageModel.d.ts.map +1 -1
- package/dist/ai/LanguageModel.js +9 -0
- package/dist/ai/LanguageModel.js.map +1 -1
- package/dist/ai/McpSchema.d.ts +110 -110
- package/dist/ai/McpSchema.d.ts.map +1 -1
- package/dist/ai/McpServer.d.ts +630 -29
- package/dist/ai/McpServer.d.ts.map +1 -1
- package/dist/ai/McpServer.js +583 -131
- package/dist/ai/McpServer.js.map +1 -1
- package/dist/ai/McpTest.d.ts +130 -0
- package/dist/ai/McpTest.d.ts.map +1 -0
- package/dist/ai/McpTest.js +237 -0
- package/dist/ai/McpTest.js.map +1 -0
- package/dist/ai/Prompt.d.ts +52 -0
- package/dist/ai/Prompt.d.ts.map +1 -1
- package/dist/ai/Prompt.js +38 -0
- package/dist/ai/Prompt.js.map +1 -1
- package/dist/ai/Response.d.ts +17 -28
- package/dist/ai/Response.d.ts.map +1 -1
- package/dist/ai/Response.js +5 -10
- package/dist/ai/Response.js.map +1 -1
- package/dist/ai/Tool.d.ts +43 -1
- package/dist/ai/Tool.d.ts.map +1 -1
- package/dist/ai/Tool.js +5 -2
- package/dist/ai/Tool.js.map +1 -1
- package/dist/ai/Toolkit.d.ts.map +1 -1
- package/dist/ai/Toolkit.js +8 -1
- package/dist/ai/Toolkit.js.map +1 -1
- package/dist/ai/index.d.ts +5 -0
- package/dist/ai/index.d.ts.map +1 -1
- package/dist/ai/index.js +5 -0
- package/dist/ai/index.js.map +1 -1
- package/dist/ai/internal/mcpCore.js +17 -12
- package/dist/ai/internal/mcpCore.js.map +1 -1
- package/dist/ai/internal/mcpProtocol/v2024_11_05.js +4 -5
- package/dist/ai/internal/mcpProtocol/v2024_11_05.js.map +1 -1
- package/dist/ai/internal/mcpProtocol/v2025_03_26.js +4 -5
- package/dist/ai/internal/mcpProtocol/v2025_03_26.js.map +1 -1
- package/dist/ai/internal/mcpProtocol/v2025_06_18.js +4 -5
- package/dist/ai/internal/mcpProtocol/v2025_06_18.js.map +1 -1
- package/dist/ai/internal/mcpProtocol/v2025_11_25.js +4 -5
- package/dist/ai/internal/mcpProtocol/v2025_11_25.js.map +1 -1
- package/dist/ai/internal/mcpProtocol/v2026_07_28.js +18 -10
- package/dist/ai/internal/mcpProtocol/v2026_07_28.js.map +1 -1
- package/dist/ai/internal/mcpProtocol.js +13 -0
- package/dist/ai/internal/mcpProtocol.js.map +1 -1
- package/dist/ai/internal/mcpRuntime.js +5 -3
- package/dist/ai/internal/mcpRuntime.js.map +1 -1
- package/dist/ai/internal/mcpStatefulRuntime.js +6 -1
- package/dist/ai/internal/mcpStatefulRuntime.js.map +1 -1
- package/dist/cli/Argument.d.ts +21 -0
- package/dist/cli/Argument.d.ts.map +1 -1
- package/dist/cli/Argument.js +7 -0
- package/dist/cli/Argument.js.map +1 -1
- package/dist/cli/CliError.d.ts +78 -0
- package/dist/cli/CliError.d.ts.map +1 -1
- package/dist/cli/CliError.js +65 -3
- package/dist/cli/CliError.js.map +1 -1
- package/dist/cli/CliOutput.d.ts +220 -7
- package/dist/cli/CliOutput.d.ts.map +1 -1
- package/dist/cli/CliOutput.js +156 -43
- package/dist/cli/CliOutput.js.map +1 -1
- package/dist/cli/Command.d.ts +47 -16
- package/dist/cli/Command.d.ts.map +1 -1
- package/dist/cli/Command.js +67 -29
- package/dist/cli/Command.js.map +1 -1
- package/dist/cli/Completions.d.ts +58 -0
- package/dist/cli/Completions.d.ts.map +1 -1
- package/dist/cli/Completions.js +49 -9
- package/dist/cli/Completions.js.map +1 -1
- package/dist/cli/Flag.d.ts +122 -0
- package/dist/cli/Flag.d.ts.map +1 -1
- package/dist/cli/Flag.js +42 -0
- package/dist/cli/Flag.js.map +1 -1
- package/dist/cli/GlobalFlag.d.ts.map +1 -1
- package/dist/cli/GlobalFlag.js +15 -7
- package/dist/cli/GlobalFlag.js.map +1 -1
- package/dist/cli/HelpDoc.d.ts +15 -1
- package/dist/cli/HelpDoc.d.ts.map +1 -1
- package/dist/cli/Param.d.ts +15 -0
- package/dist/cli/Param.d.ts.map +1 -1
- package/dist/cli/Param.js +23 -2
- package/dist/cli/Param.js.map +1 -1
- package/dist/cli/Primitive.d.ts +14 -0
- package/dist/cli/Primitive.d.ts.map +1 -1
- package/dist/cli/Primitive.js +15 -1
- package/dist/cli/Primitive.js.map +1 -1
- package/dist/cli/Prompt.d.ts +1 -0
- package/dist/cli/Prompt.d.ts.map +1 -1
- package/dist/cli/Prompt.js +1 -0
- package/dist/cli/Prompt.js.map +1 -1
- package/dist/cli/TerminalCapabilities.d.ts +3 -2
- package/dist/cli/TerminalCapabilities.d.ts.map +1 -1
- package/dist/cli/TerminalCapabilities.js +3 -1
- package/dist/cli/TerminalCapabilities.js.map +1 -1
- package/dist/cli/internal/completions/bash.js +73 -27
- package/dist/cli/internal/completions/bash.js.map +1 -1
- package/dist/cli/internal/help.d.ts.map +1 -1
- package/dist/cli/internal/help.js +17 -10
- package/dist/cli/internal/help.js.map +1 -1
- package/dist/cluster/ClusterWorkflowEngine.d.ts.map +1 -1
- package/dist/cluster/ClusterWorkflowEngine.js +45 -10
- package/dist/cluster/ClusterWorkflowEngine.js.map +1 -1
- package/dist/cluster/MessageStorage.d.ts +23 -45
- package/dist/cluster/MessageStorage.d.ts.map +1 -1
- package/dist/cluster/MessageStorage.js +6 -7
- package/dist/cluster/MessageStorage.js.map +1 -1
- package/dist/cluster/Sharding.d.ts.map +1 -1
- package/dist/cluster/Sharding.js +151 -49
- package/dist/cluster/Sharding.js.map +1 -1
- package/dist/cluster/ShardingConfig.d.ts +76 -0
- package/dist/cluster/ShardingConfig.d.ts.map +1 -1
- package/dist/cluster/ShardingConfig.js +4 -0
- package/dist/cluster/ShardingConfig.js.map +1 -1
- package/dist/cluster/SingleRunner.d.ts +3 -3
- package/dist/cluster/SingleRunner.d.ts.map +1 -1
- package/dist/cluster/SingleRunner.js +1 -1
- package/dist/cluster/Snowflake.d.ts.map +1 -1
- package/dist/cluster/Snowflake.js +3 -7
- package/dist/cluster/Snowflake.js.map +1 -1
- package/dist/cluster/SqlMessageStorage.d.ts +37 -6
- package/dist/cluster/SqlMessageStorage.d.ts.map +1 -1
- package/dist/cluster/SqlMessageStorage.js +34 -7
- package/dist/cluster/SqlMessageStorage.js.map +1 -1
- package/dist/cluster/SqlRunnerStorage.d.ts.map +1 -1
- package/dist/cluster/SqlRunnerStorage.js +109 -46
- package/dist/cluster/SqlRunnerStorage.js.map +1 -1
- package/dist/cluster/internal/entityManager.js +54 -20
- package/dist/cluster/internal/entityManager.js.map +1 -1
- package/dist/crypto/Aead.d.ts +322 -0
- package/dist/crypto/Aead.d.ts.map +1 -0
- package/dist/crypto/Aead.js +331 -0
- package/dist/crypto/Aead.js.map +1 -0
- package/dist/crypto/Cipher.d.ts +235 -0
- package/dist/crypto/Cipher.d.ts.map +1 -0
- package/dist/crypto/Cipher.js +233 -0
- package/dist/crypto/Cipher.js.map +1 -0
- package/dist/crypto/CryptoError.d.ts +212 -0
- package/dist/crypto/CryptoError.d.ts.map +1 -0
- package/dist/crypto/CryptoError.js +202 -0
- package/dist/crypto/CryptoError.js.map +1 -0
- package/dist/crypto/Digest.d.ts +143 -0
- package/dist/crypto/Digest.d.ts.map +1 -0
- package/dist/crypto/Digest.js +146 -0
- package/dist/crypto/Digest.js.map +1 -0
- package/dist/crypto/Kdf.d.ts +220 -0
- package/dist/crypto/Kdf.d.ts.map +1 -0
- package/dist/crypto/Kdf.js +212 -0
- package/dist/crypto/Kdf.js.map +1 -0
- package/dist/crypto/KeyAgreement.d.ts +323 -0
- package/dist/crypto/KeyAgreement.d.ts.map +1 -0
- package/dist/crypto/KeyAgreement.js +303 -0
- package/dist/crypto/KeyAgreement.js.map +1 -0
- package/dist/crypto/KeyFormat.d.ts +309 -0
- package/dist/crypto/KeyFormat.d.ts.map +1 -0
- package/dist/crypto/KeyFormat.js +556 -0
- package/dist/crypto/KeyFormat.js.map +1 -0
- package/dist/crypto/KeyWrap.d.ts +389 -0
- package/dist/crypto/KeyWrap.d.ts.map +1 -0
- package/dist/crypto/KeyWrap.js +381 -0
- package/dist/crypto/KeyWrap.js.map +1 -0
- package/dist/crypto/Mac.d.ts +277 -0
- package/dist/crypto/Mac.d.ts.map +1 -0
- package/dist/crypto/Mac.js +288 -0
- package/dist/crypto/Mac.js.map +1 -0
- package/dist/crypto/SecureRandom.d.ts +340 -0
- package/dist/crypto/SecureRandom.d.ts.map +1 -0
- package/dist/crypto/SecureRandom.js +257 -0
- package/dist/crypto/SecureRandom.js.map +1 -0
- package/dist/crypto/Signature.d.ts +448 -0
- package/dist/crypto/Signature.d.ts.map +1 -0
- package/dist/crypto/Signature.js +484 -0
- package/dist/crypto/Signature.js.map +1 -0
- package/dist/crypto/WebCrypto.d.ts +61 -0
- package/dist/crypto/WebCrypto.d.ts.map +1 -0
- package/dist/crypto/WebCrypto.js +63 -0
- package/dist/crypto/WebCrypto.js.map +1 -0
- package/dist/crypto/index.d.ts +65 -0
- package/dist/crypto/index.d.ts.map +1 -0
- package/dist/crypto/index.js +66 -0
- package/dist/crypto/index.js.map +1 -0
- package/dist/crypto/internal/asymmetric.d.ts +2 -0
- package/dist/crypto/internal/asymmetric.d.ts.map +1 -0
- package/dist/crypto/internal/asymmetric.js +210 -0
- package/dist/crypto/internal/asymmetric.js.map +1 -0
- package/dist/crypto/internal/chacha.d.ts +46 -0
- package/dist/crypto/internal/chacha.d.ts.map +1 -0
- package/dist/crypto/internal/chacha.js +885 -0
- package/dist/crypto/internal/chacha.js.map +1 -0
- package/dist/crypto/internal/der.d.ts +6 -0
- package/dist/crypto/internal/der.d.ts.map +1 -0
- package/dist/crypto/internal/der.js +86 -0
- package/dist/crypto/internal/der.js.map +1 -0
- package/dist/crypto/internal/digest.d.ts +2 -0
- package/dist/crypto/internal/digest.d.ts.map +1 -0
- package/dist/crypto/internal/digest.js +15 -0
- package/dist/crypto/internal/digest.js.map +1 -0
- package/dist/crypto/internal/key.d.ts +2 -0
- package/dist/crypto/internal/key.d.ts.map +1 -0
- package/dist/crypto/internal/key.js +170 -0
- package/dist/crypto/internal/key.js.map +1 -0
- package/dist/crypto/internal/md5.d.ts +39 -0
- package/dist/crypto/internal/md5.d.ts.map +1 -0
- package/dist/crypto/internal/md5.js +179 -0
- package/dist/crypto/internal/md5.js.map +1 -0
- package/dist/crypto/internal/webCrypto.d.ts +2 -0
- package/dist/crypto/internal/webCrypto.d.ts.map +1 -0
- package/dist/crypto/internal/webCrypto.js +111 -0
- package/dist/crypto/internal/webCrypto.js.map +1 -0
- package/dist/devtools/DevToolsClient.d.ts.map +1 -1
- package/dist/devtools/DevToolsClient.js +2 -0
- package/dist/devtools/DevToolsClient.js.map +1 -1
- package/dist/encoding/Base64.js +36 -0
- package/dist/encoding/Base64.js.map +1 -1
- package/dist/encoding/Base64Url.d.ts.map +1 -1
- package/dist/encoding/Base64Url.js +3 -2
- package/dist/encoding/Base64Url.js.map +1 -1
- package/dist/encoding/Csv.d.ts +608 -0
- package/dist/encoding/Csv.d.ts.map +1 -0
- package/dist/encoding/Csv.js +718 -0
- package/dist/encoding/Csv.js.map +1 -0
- package/dist/encoding/Hex.d.ts +3 -2
- package/dist/encoding/Hex.d.ts.map +1 -1
- package/dist/encoding/Hex.js +3 -2
- package/dist/encoding/Hex.js.map +1 -1
- package/dist/encoding/SchemaBinary.d.ts.map +1 -1
- package/dist/encoding/SchemaBinary.js +42 -4
- package/dist/encoding/SchemaBinary.js.map +1 -1
- package/dist/encoding/Sse.d.ts.map +1 -1
- package/dist/encoding/Sse.js +3 -3
- package/dist/encoding/Sse.js.map +1 -1
- package/dist/encoding/Toml.d.ts +17 -3
- package/dist/encoding/Toml.d.ts.map +1 -1
- package/dist/encoding/Toml.js +124 -31
- package/dist/encoding/Toml.js.map +1 -1
- package/dist/encoding/Yaml.d.ts +8 -1
- package/dist/encoding/Yaml.d.ts.map +1 -1
- package/dist/encoding/Yaml.js +54 -18
- package/dist/encoding/Yaml.js.map +1 -1
- package/dist/encoding/index.d.ts +5 -0
- package/dist/encoding/index.d.ts.map +1 -1
- package/dist/encoding/index.js +5 -0
- package/dist/encoding/index.js.map +1 -1
- package/dist/eventlog/EventJournal.d.ts.map +1 -1
- package/dist/eventlog/EventJournal.js +6 -3
- package/dist/eventlog/EventJournal.js.map +1 -1
- package/dist/eventlog/EventLog.d.ts +119 -4
- package/dist/eventlog/EventLog.d.ts.map +1 -1
- package/dist/eventlog/EventLog.js +200 -12
- package/dist/eventlog/EventLog.js.map +1 -1
- package/dist/eventlog/EventLogEncryption.d.ts +41 -4
- package/dist/eventlog/EventLogEncryption.d.ts.map +1 -1
- package/dist/eventlog/EventLogEncryption.js +83 -64
- package/dist/eventlog/EventLogEncryption.js.map +1 -1
- package/dist/eventlog/EventLogMessage.d.ts +279 -0
- package/dist/eventlog/EventLogMessage.d.ts.map +1 -1
- package/dist/eventlog/EventLogMessage.js +217 -1
- package/dist/eventlog/EventLogMessage.js.map +1 -1
- package/dist/eventlog/EventLogRemote.d.ts +200 -28
- package/dist/eventlog/EventLogRemote.d.ts.map +1 -1
- package/dist/eventlog/EventLogRemote.js +186 -16
- package/dist/eventlog/EventLogRemote.js.map +1 -1
- package/dist/eventlog/EventLogServer.d.ts +3 -0
- package/dist/eventlog/EventLogServer.d.ts.map +1 -1
- package/dist/eventlog/EventLogServer.js +18 -10
- package/dist/eventlog/EventLogServer.js.map +1 -1
- package/dist/eventlog/EventLogServerEncrypted.d.ts +326 -5
- package/dist/eventlog/EventLogServerEncrypted.d.ts.map +1 -1
- package/dist/eventlog/EventLogServerEncrypted.js +769 -14
- package/dist/eventlog/EventLogServerEncrypted.js.map +1 -1
- package/dist/eventlog/EventLogSessionAuth.d.ts +5 -3
- package/dist/eventlog/EventLogSessionAuth.d.ts.map +1 -1
- package/dist/eventlog/EventLogSessionAuth.js +41 -64
- package/dist/eventlog/EventLogSessionAuth.js.map +1 -1
- package/dist/eventlog/EventRow.d.ts +4 -0
- package/dist/eventlog/EventRow.d.ts.map +1 -1
- package/dist/eventlog/EventRow.js +12 -2
- package/dist/eventlog/EventRow.js.map +1 -1
- package/dist/eventlog/SqlEventJournal.d.ts.map +1 -1
- package/dist/eventlog/SqlEventJournal.js +47 -27
- package/dist/eventlog/SqlEventJournal.js.map +1 -1
- package/dist/eventlog/SqlEventLogServerEncrypted.d.ts +21 -5
- package/dist/eventlog/SqlEventLogServerEncrypted.d.ts.map +1 -1
- package/dist/eventlog/SqlEventLogServerEncrypted.js +1048 -113
- package/dist/eventlog/SqlEventLogServerEncrypted.js.map +1 -1
- package/dist/eventlog/SqlEventLogServerUnencrypted.js +2 -2
- package/dist/eventlog/SqlEventLogServerUnencrypted.js.map +1 -1
- package/dist/eventlog/internal/batches.d.ts +12 -0
- package/dist/eventlog/internal/batches.d.ts.map +1 -0
- package/dist/eventlog/internal/batches.js +26 -0
- package/dist/eventlog/internal/batches.js.map +1 -0
- package/dist/eventlog/internal/compaction.d.ts +38 -0
- package/dist/eventlog/internal/compaction.d.ts.map +1 -0
- package/dist/eventlog/internal/compaction.js +33 -0
- package/dist/eventlog/internal/compaction.js.map +1 -0
- package/dist/eventlog/internal/conflicts.d.ts +0 -1
- package/dist/eventlog/internal/conflicts.d.ts.map +1 -1
- package/dist/eventlog/internal/conflicts.js +0 -3
- package/dist/eventlog/internal/conflicts.js.map +1 -1
- package/dist/eventlog/internal/identityRootSecretDerivation.js +66 -67
- package/dist/eventlog/internal/identityRootSecretDerivation.js.map +1 -1
- package/dist/eventlog/internal/remoteCompaction.d.ts +31 -0
- package/dist/eventlog/internal/remoteCompaction.d.ts.map +1 -0
- package/dist/eventlog/internal/remoteCompaction.js +76 -0
- package/dist/eventlog/internal/remoteCompaction.js.map +1 -0
- package/dist/http/Cookies.d.ts +172 -0
- package/dist/http/Cookies.d.ts.map +1 -1
- package/dist/http/Cookies.js +153 -10
- package/dist/http/Cookies.js.map +1 -1
- package/dist/http/FetchHttpClient.d.ts +26 -2
- package/dist/http/FetchHttpClient.d.ts.map +1 -1
- package/dist/http/FetchHttpClient.js +78 -15
- package/dist/http/FetchHttpClient.js.map +1 -1
- package/dist/http/HttpClient.d.ts +502 -8
- package/dist/http/HttpClient.d.ts.map +1 -1
- package/dist/http/HttpClient.js +296 -12
- package/dist/http/HttpClient.js.map +1 -1
- package/dist/http/HttpClientError.d.ts +8 -1
- package/dist/http/HttpClientError.d.ts.map +1 -1
- package/dist/http/HttpClientError.js +37 -1
- package/dist/http/HttpClientError.js.map +1 -1
- package/dist/http/HttpClientRequest.d.ts +9 -5
- package/dist/http/HttpClientRequest.d.ts.map +1 -1
- package/dist/http/HttpClientRequest.js +3 -4
- package/dist/http/HttpClientRequest.js.map +1 -1
- package/dist/http/HttpClientResponse.d.ts.map +1 -1
- package/dist/http/HttpClientResponse.js +3 -2
- package/dist/http/HttpClientResponse.js.map +1 -1
- package/dist/http/HttpMethod.d.ts +7 -1
- package/dist/http/HttpMethod.d.ts.map +1 -1
- package/dist/http/HttpMethod.js +3 -8
- package/dist/http/HttpMethod.js.map +1 -1
- package/dist/http/HttpMiddleware.d.ts +1 -1
- package/dist/http/HttpMiddleware.d.ts.map +1 -1
- package/dist/http/HttpMiddleware.js +14 -16
- package/dist/http/HttpMiddleware.js.map +1 -1
- package/dist/http/HttpRouter.d.ts.map +1 -1
- package/dist/http/HttpRouter.js +2 -1
- package/dist/http/HttpRouter.js.map +1 -1
- package/dist/http/HttpServerError.js +2 -2
- package/dist/http/HttpServerError.js.map +1 -1
- package/dist/http/HttpServerRequest.d.ts +11 -3
- package/dist/http/HttpServerRequest.d.ts.map +1 -1
- package/dist/http/HttpServerRequest.js +77 -25
- package/dist/http/HttpServerRequest.js.map +1 -1
- package/dist/http/HttpServerResponse.d.ts.map +1 -1
- package/dist/http/HttpServerResponse.js +3 -2
- package/dist/http/HttpServerResponse.js.map +1 -1
- package/dist/http/HttpStaticServer.d.ts.map +1 -1
- package/dist/http/HttpStaticServer.js +48 -21
- package/dist/http/HttpStaticServer.js.map +1 -1
- package/dist/http/HttpTraceContext.d.ts +2 -1
- package/dist/http/HttpTraceContext.d.ts.map +1 -1
- package/dist/http/HttpTraceContext.js +7 -5
- package/dist/http/HttpTraceContext.js.map +1 -1
- package/dist/http/MultipartParser/internal/contentType.js +3 -3
- package/dist/http/ProblemDetails.d.ts +96 -0
- package/dist/http/ProblemDetails.d.ts.map +1 -0
- package/dist/http/ProblemDetails.js +98 -0
- package/dist/http/ProblemDetails.js.map +1 -0
- package/dist/http/UrlParams.d.ts +3 -1
- package/dist/http/UrlParams.d.ts.map +1 -1
- package/dist/http/UrlParams.js +4 -2
- package/dist/http/UrlParams.js.map +1 -1
- package/dist/http/index.d.ts +5 -0
- package/dist/http/index.d.ts.map +1 -1
- package/dist/http/index.js +5 -0
- package/dist/http/index.js.map +1 -1
- package/dist/http/internal/compression.js +4 -5
- package/dist/http/internal/compression.js.map +1 -1
- package/dist/http/internal/decompression.js +6 -2
- package/dist/http/internal/decompression.js.map +1 -1
- package/dist/http/internal/httpBody.js +8 -1
- package/dist/http/internal/httpBody.js.map +1 -1
- package/dist/http/internal/urlParams.js +33 -0
- package/dist/http/internal/urlParams.js.map +1 -1
- package/dist/http-api/HttpApi.d.ts +3 -6
- package/dist/http-api/HttpApi.d.ts.map +1 -1
- package/dist/http-api/HttpApi.js +3 -6
- package/dist/http-api/HttpApi.js.map +1 -1
- package/dist/http-api/HttpApiBuilder.d.ts.map +1 -1
- package/dist/http-api/HttpApiBuilder.js +43 -13
- package/dist/http-api/HttpApiBuilder.js.map +1 -1
- package/dist/http-api/HttpApiClient.d.ts +140 -7
- package/dist/http-api/HttpApiClient.d.ts.map +1 -1
- package/dist/http-api/HttpApiClient.js +193 -44
- package/dist/http-api/HttpApiClient.js.map +1 -1
- package/dist/http-api/HttpApiEndpoint.d.ts +24 -7
- package/dist/http-api/HttpApiEndpoint.d.ts.map +1 -1
- package/dist/http-api/HttpApiEndpoint.js +123 -32
- package/dist/http-api/HttpApiEndpoint.js.map +1 -1
- package/dist/http-api/HttpApiError.d.ts +185 -13
- package/dist/http-api/HttpApiError.d.ts.map +1 -1
- package/dist/http-api/HttpApiError.js +128 -0
- package/dist/http-api/HttpApiError.js.map +1 -1
- package/dist/http-api/HttpApiMiddleware.d.ts +64 -17
- package/dist/http-api/HttpApiMiddleware.d.ts.map +1 -1
- package/dist/http-api/HttpApiMiddleware.js +85 -1
- package/dist/http-api/HttpApiMiddleware.js.map +1 -1
- package/dist/http-api/HttpApiSchema.d.ts +142 -33
- package/dist/http-api/HttpApiSchema.d.ts.map +1 -1
- package/dist/http-api/HttpApiSchema.js +123 -59
- package/dist/http-api/HttpApiSchema.js.map +1 -1
- package/dist/http-api/HttpApiTest.d.ts.map +1 -1
- package/dist/http-api/HttpApiTest.js +3 -2
- package/dist/http-api/HttpApiTest.js.map +1 -1
- package/dist/http-api/OpenApi.d.ts.map +1 -1
- package/dist/http-api/OpenApi.js +25 -16
- package/dist/http-api/OpenApi.js.map +1 -1
- package/dist/http-api/internal/toCodecHttpProperties.d.ts +2 -0
- package/dist/http-api/internal/toCodecHttpProperties.d.ts.map +1 -0
- package/dist/http-api/internal/toCodecHttpProperties.js +38 -0
- package/dist/http-api/internal/toCodecHttpProperties.js.map +1 -0
- package/dist/index.d.ts +5 -5
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -5
- package/dist/index.js.map +1 -1
- package/dist/internal/arbitrary/runner.d.ts.map +1 -1
- package/dist/internal/arbitrary/runner.js +120 -44
- package/dist/internal/arbitrary/runner.js.map +1 -1
- package/dist/internal/core.js +2 -0
- package/dist/internal/core.js.map +1 -1
- package/dist/internal/effect.js +46 -27
- package/dist/internal/effect.js.map +1 -1
- package/dist/internal/equal.js +14 -0
- package/dist/internal/equal.js.map +1 -1
- package/dist/internal/glob.d.ts +2 -0
- package/dist/internal/glob.d.ts.map +1 -0
- package/dist/internal/glob.js +630 -0
- package/dist/internal/glob.js.map +1 -0
- package/dist/internal/jsonSchema.d.ts +2 -0
- package/dist/internal/jsonSchema.d.ts.map +1 -0
- package/dist/internal/jsonSchema.js +28 -0
- package/dist/internal/jsonSchema.js.map +1 -0
- package/dist/internal/matcher.js +11 -1
- package/dist/internal/matcher.js.map +1 -1
- package/dist/internal/persistence.js +9 -0
- package/dist/internal/persistence.js.map +1 -1
- package/dist/internal/rcRef.js +4 -1
- package/dist/internal/rcRef.js.map +1 -1
- package/dist/internal/schema/compilerRegistry.js +4 -1
- package/dist/internal/schema/compilerRegistry.js.map +1 -1
- package/dist/internal/schema/content.d.ts +2 -0
- package/dist/internal/schema/content.d.ts.map +1 -0
- package/dist/internal/schema/content.js +13 -0
- package/dist/internal/schema/content.js.map +1 -0
- package/dist/internal/schema/fromJsonSchemaDocument.js +173 -185
- package/dist/internal/schema/fromJsonSchemaDocument.js.map +1 -1
- package/dist/internal/schema/fromRepresentation.js +2 -1
- package/dist/internal/schema/fromRepresentation.js.map +1 -1
- package/dist/internal/schema/standardSchema.js +8 -2
- package/dist/internal/schema/standardSchema.js.map +1 -1
- package/dist/internal/schema/toCodeDocument.js +9 -6
- package/dist/internal/schema/toCodeDocument.js.map +1 -1
- package/dist/internal/schema/toCodec.js +21 -24
- package/dist/internal/schema/toCodec.js.map +1 -1
- package/dist/internal/schema/toJsonSchemaDocument.js +205 -140
- package/dist/internal/schema/toJsonSchemaDocument.js.map +1 -1
- package/dist/internal/schema/toRepresentation.js +107 -129
- package/dist/internal/schema/toRepresentation.js.map +1 -1
- package/dist/internal/sql.d.ts +2 -0
- package/dist/internal/sql.d.ts.map +1 -0
- package/dist/internal/sql.js +13 -0
- package/dist/internal/sql.js.map +1 -0
- package/dist/internal/trie.js +42 -13
- package/dist/internal/trie.js.map +1 -1
- package/dist/internal/ulid.js +41 -0
- package/dist/internal/ulid.js.map +1 -1
- package/dist/internal/uuid.js +52 -8
- package/dist/internal/uuid.js.map +1 -1
- package/dist/internal/version.js +1 -1
- package/dist/observability/Otlp.d.ts +15 -4
- package/dist/observability/Otlp.d.ts.map +1 -1
- package/dist/observability/Otlp.js +10 -0
- package/dist/observability/Otlp.js.map +1 -1
- package/dist/observability/OtlpProxy.d.ts +154 -0
- package/dist/observability/OtlpProxy.d.ts.map +1 -0
- package/dist/observability/OtlpProxy.js +235 -0
- package/dist/observability/OtlpProxy.js.map +1 -0
- package/dist/observability/OtlpResource.d.ts +7 -0
- package/dist/observability/OtlpResource.d.ts.map +1 -1
- package/dist/observability/OtlpResource.js +11 -1
- package/dist/observability/OtlpResource.js.map +1 -1
- package/dist/observability/OtlpTracer.d.ts.map +1 -1
- package/dist/observability/OtlpTracer.js +4 -0
- package/dist/observability/OtlpTracer.js.map +1 -1
- package/dist/observability/index.d.ts +5 -0
- package/dist/observability/index.d.ts.map +1 -1
- package/dist/observability/index.js +5 -0
- package/dist/observability/index.js.map +1 -1
- package/dist/persistence/CircuitBreaker.d.ts +897 -0
- package/dist/persistence/CircuitBreaker.d.ts.map +1 -0
- package/dist/persistence/CircuitBreaker.js +1165 -0
- package/dist/persistence/CircuitBreaker.js.map +1 -0
- package/dist/persistence/KeyValueStore.d.ts +47 -2
- package/dist/persistence/KeyValueStore.d.ts.map +1 -1
- package/dist/persistence/KeyValueStore.js +129 -18
- package/dist/persistence/KeyValueStore.js.map +1 -1
- package/dist/persistence/PersistedQueue.d.ts +9 -0
- package/dist/persistence/PersistedQueue.d.ts.map +1 -1
- package/dist/persistence/PersistedQueue.js +94 -52
- package/dist/persistence/PersistedQueue.js.map +1 -1
- package/dist/persistence/Persistence.d.ts +10 -4
- package/dist/persistence/Persistence.d.ts.map +1 -1
- package/dist/persistence/Persistence.js +18 -11
- package/dist/persistence/Persistence.js.map +1 -1
- package/dist/persistence/Redis.d.ts +78 -2
- package/dist/persistence/Redis.d.ts.map +1 -1
- package/dist/persistence/Redis.js +62 -7
- package/dist/persistence/Redis.js.map +1 -1
- package/dist/persistence/index.d.ts +5 -0
- package/dist/persistence/index.d.ts.map +1 -1
- package/dist/persistence/index.js +5 -0
- package/dist/persistence/index.js.map +1 -1
- package/dist/process/ChildProcess.d.ts +237 -71
- package/dist/process/ChildProcess.d.ts.map +1 -1
- package/dist/process/ChildProcess.js +56 -158
- package/dist/process/ChildProcess.js.map +1 -1
- package/dist/process/ChildProcessSpawner.d.ts +35 -0
- package/dist/process/ChildProcessSpawner.d.ts.map +1 -1
- package/dist/process/ChildProcessSpawner.js +5 -2
- package/dist/process/ChildProcessSpawner.js.map +1 -1
- package/dist/process/CommandLine.d.ts +294 -0
- package/dist/process/CommandLine.d.ts.map +1 -0
- package/dist/process/CommandLine.js +481 -0
- package/dist/process/CommandLine.js.map +1 -0
- package/dist/process/index.d.ts +5 -0
- package/dist/process/index.d.ts.map +1 -1
- package/dist/process/index.js +5 -0
- package/dist/process/index.js.map +1 -1
- package/dist/reactivity/AsyncResult.d.ts +1 -1
- package/dist/reactivity/AsyncResult.d.ts.map +1 -1
- package/dist/reactivity/Atom.d.ts +2 -1
- package/dist/reactivity/Atom.d.ts.map +1 -1
- package/dist/reactivity/Atom.js +3 -4
- package/dist/reactivity/Atom.js.map +1 -1
- package/dist/reactivity/AtomRegistry.js.map +1 -1
- package/dist/rpc/RpcClient.d.ts +16 -1
- package/dist/rpc/RpcClient.d.ts.map +1 -1
- package/dist/rpc/RpcClient.js +59 -24
- package/dist/rpc/RpcClient.js.map +1 -1
- package/dist/rpc/RpcMessage.d.ts +10 -1
- package/dist/rpc/RpcMessage.d.ts.map +1 -1
- package/dist/rpc/RpcMessage.js +1 -0
- package/dist/rpc/RpcMessage.js.map +1 -1
- package/dist/rpc/RpcSerialization.d.ts +14 -0
- package/dist/rpc/RpcSerialization.d.ts.map +1 -1
- package/dist/rpc/RpcSerialization.js +26 -8
- package/dist/rpc/RpcSerialization.js.map +1 -1
- package/dist/rpc/RpcServer.d.ts +31 -0
- package/dist/rpc/RpcServer.d.ts.map +1 -1
- package/dist/rpc/RpcServer.js +139 -56
- package/dist/rpc/RpcServer.js.map +1 -1
- package/dist/rpc/RpcTest.d.ts +1 -0
- package/dist/rpc/RpcTest.d.ts.map +1 -1
- package/dist/rpc/RpcTest.js +1 -0
- package/dist/rpc/RpcTest.js.map +1 -1
- package/dist/schema/Model.d.ts +14 -0
- package/dist/schema/Model.d.ts.map +1 -1
- package/dist/schema/Model.js +18 -3
- package/dist/schema/Model.js.map +1 -1
- package/dist/sql/Migrator.d.ts +2 -20
- package/dist/sql/Migrator.d.ts.map +1 -1
- package/dist/sql/Migrator.js +13 -55
- package/dist/sql/Migrator.js.map +1 -1
- package/dist/sql/MigratorFileSystem.d.ts +21 -0
- package/dist/sql/MigratorFileSystem.d.ts.map +1 -0
- package/dist/sql/MigratorFileSystem.js +57 -0
- package/dist/sql/MigratorFileSystem.js.map +1 -0
- package/dist/sql/SqlClient.d.ts +9 -4
- package/dist/sql/SqlClient.d.ts.map +1 -1
- package/dist/sql/SqlClient.js +13 -10
- package/dist/sql/SqlClient.js.map +1 -1
- package/dist/sql/SqlResolver.d.ts +4 -0
- package/dist/sql/SqlResolver.d.ts.map +1 -1
- package/dist/sql/SqlResolver.js +18 -4
- package/dist/sql/SqlResolver.js.map +1 -1
- package/dist/sql/Statement.d.ts +27 -6
- package/dist/sql/Statement.d.ts.map +1 -1
- package/dist/sql/Statement.js +21 -15
- package/dist/sql/Statement.js.map +1 -1
- package/dist/sql/index.js +1 -1
- package/dist/testing/index.d.ts +0 -5
- package/dist/testing/index.d.ts.map +1 -1
- package/dist/testing/index.js +0 -5
- package/dist/testing/index.js.map +1 -1
- package/dist/workflow/DurableDeferred.d.ts.map +1 -1
- package/dist/workflow/DurableDeferred.js +21 -2
- package/dist/workflow/DurableDeferred.js.map +1 -1
- package/dist/workflow/internal/crypto.js +9 -8
- package/dist/workflow/internal/crypto.js.map +1 -1
- package/package.json +3 -1
- package/src/Arbitrary.ts +10 -2
- package/src/BigDecimal.ts +3 -0
- package/src/Channel.ts +64 -29
- package/src/Config.ts +7 -1
- package/src/Context.ts +34 -10
- package/src/Cron.ts +178 -29
- package/src/Data.ts +60 -265
- package/src/Duration.ts +140 -0
- package/src/Effect.ts +915 -86
- package/src/Equal.ts +8 -1
- package/src/Exit.ts +3 -3
- package/src/FileSystem.ts +65 -4
- package/src/Formatter.ts +28 -13
- package/src/Glob.ts +205 -0
- package/src/Hash.ts +4 -1
- package/src/JsonPatch.ts +4 -0
- package/src/JsonSchema.ts +12 -40
- package/src/Match.ts +127 -0
- package/src/Metric.ts +3 -3
- package/src/MutableList.ts +7 -5
- package/src/MutableRef.ts +8 -1
- package/src/PartitionedSemaphore.ts +24 -13
- package/src/Pool.ts +182 -52
- package/src/PubSub.ts +5 -6
- package/src/Random.ts +3 -3
- package/src/RcMap.ts +5 -1
- package/src/Ref.ts +8 -0
- package/src/Schedule.ts +27 -4
- package/src/Schema.ts +1237 -87
- package/src/SchemaAST.ts +20 -20
- package/src/SchemaGetter.ts +27 -11
- package/src/SchemaParser.ts +51 -18
- package/src/SchemaRepresentation.ts +50 -34
- package/src/SchemaTransformation.ts +17 -5
- package/src/ScopedCache.ts +5 -9
- package/src/Semaphore.ts +208 -40
- package/src/Sink.ts +15 -2
- package/src/Stream.ts +48 -22
- package/src/String.ts +3 -0
- package/src/Terminal.ts +19 -1
- package/src/Tracer.ts +15 -1
- package/src/ai/AiError.ts +56 -80
- package/src/ai/Decision.ts +257 -6
- package/src/ai/DecisionModel.ts +171 -28
- package/src/ai/LanguageModel.ts +9 -0
- package/src/ai/McpServer.ts +1283 -299
- package/src/ai/McpTest.ts +380 -0
- package/src/ai/Prompt.ts +65 -0
- package/src/ai/Response.ts +36 -31
- package/src/ai/Tool.ts +65 -10
- package/src/ai/Toolkit.ts +4 -1
- package/src/ai/index.ts +6 -0
- package/src/ai/internal/mcpCore.ts +78 -44
- package/src/ai/internal/mcpProtocol/v2024_11_05.ts +4 -7
- package/src/ai/internal/mcpProtocol/v2025_03_26.ts +4 -7
- package/src/ai/internal/mcpProtocol/v2025_06_18.ts +4 -7
- package/src/ai/internal/mcpProtocol/v2025_11_25.ts +4 -7
- package/src/ai/internal/mcpProtocol/v2026_07_28.ts +15 -10
- package/src/ai/internal/mcpProtocol.ts +29 -0
- package/src/ai/internal/mcpRuntime.ts +9 -5
- package/src/ai/internal/mcpStatefulRuntime.ts +14 -2
- package/src/cli/Argument.ts +21 -0
- package/src/cli/CliError.ts +90 -3
- package/src/cli/CliOutput.ts +300 -55
- package/src/cli/Command.ts +76 -41
- package/src/cli/Completions.ts +51 -0
- package/src/cli/Flag.ts +122 -0
- package/src/cli/GlobalFlag.ts +6 -7
- package/src/cli/HelpDoc.ts +18 -1
- package/src/cli/Param.ts +35 -6
- package/src/cli/Primitive.ts +16 -1
- package/src/cli/Prompt.ts +1 -0
- package/src/cli/TerminalCapabilities.ts +6 -3
- package/src/cli/internal/completions/bash.ts +79 -29
- package/src/cli/internal/help.ts +21 -9
- package/src/cluster/ClusterWorkflowEngine.ts +46 -16
- package/src/cluster/MessageStorage.ts +19 -14
- package/src/cluster/Sharding.ts +176 -47
- package/src/cluster/ShardingConfig.ts +43 -0
- package/src/cluster/SingleRunner.ts +3 -3
- package/src/cluster/Snowflake.ts +3 -7
- package/src/cluster/SqlMessageStorage.ts +49 -17
- package/src/cluster/SqlRunnerStorage.ts +143 -70
- package/src/cluster/internal/entityManager.ts +75 -22
- package/src/crypto/Aead.ts +517 -0
- package/src/crypto/Cipher.ts +326 -0
- package/src/crypto/CryptoError.ts +242 -0
- package/src/crypto/Digest.ts +167 -0
- package/src/crypto/Kdf.ts +315 -0
- package/src/crypto/KeyAgreement.ts +489 -0
- package/src/crypto/KeyFormat.ts +712 -0
- package/src/crypto/KeyWrap.ts +639 -0
- package/src/crypto/Mac.ts +386 -0
- package/src/crypto/SecureRandom.ts +459 -0
- package/src/crypto/Signature.ts +673 -0
- package/src/crypto/WebCrypto.ts +64 -0
- package/src/crypto/index.ts +78 -0
- package/src/crypto/internal/asymmetric.ts +329 -0
- package/src/crypto/internal/chacha.ts +1088 -0
- package/src/crypto/internal/der.ts +110 -0
- package/src/crypto/internal/digest.ts +16 -0
- package/src/crypto/internal/key.ts +235 -0
- package/src/crypto/internal/md5.ts +170 -0
- package/src/crypto/internal/webCrypto.ts +150 -0
- package/src/devtools/DevToolsClient.ts +2 -0
- package/src/encoding/Base64.ts +38 -0
- package/src/encoding/Base64Url.ts +5 -2
- package/src/encoding/Csv.ts +1298 -0
- package/src/encoding/Hex.ts +3 -2
- package/src/encoding/SchemaBinary.ts +40 -4
- package/src/encoding/Sse.ts +4 -3
- package/src/encoding/Toml.ts +117 -35
- package/src/encoding/Yaml.ts +61 -18
- package/src/encoding/index.ts +6 -0
- package/src/eventlog/EventJournal.ts +4 -3
- package/src/eventlog/EventLog.ts +340 -15
- package/src/eventlog/EventLogEncryption.ts +118 -110
- package/src/eventlog/EventLogMessage.ts +273 -1
- package/src/eventlog/EventLogRemote.ts +367 -23
- package/src/eventlog/EventLogServer.ts +23 -8
- package/src/eventlog/EventLogServerEncrypted.ts +1130 -67
- package/src/eventlog/EventLogSessionAuth.ts +56 -70
- package/src/eventlog/EventRow.ts +12 -3
- package/src/eventlog/SqlEventJournal.ts +68 -45
- package/src/eventlog/SqlEventLogServerEncrypted.ts +1244 -136
- package/src/eventlog/SqlEventLogServerUnencrypted.ts +2 -2
- package/src/eventlog/internal/batches.ts +30 -0
- package/src/eventlog/internal/compaction.ts +64 -0
- package/src/eventlog/internal/conflicts.ts +0 -4
- package/src/eventlog/internal/identityRootSecretDerivation.ts +93 -123
- package/src/eventlog/internal/remoteCompaction.ts +92 -0
- package/src/http/Cookies.ts +291 -12
- package/src/http/FetchHttpClient.ts +88 -16
- package/src/http/HttpClient.ts +636 -29
- package/src/http/HttpClientError.ts +35 -1
- package/src/http/HttpClientRequest.ts +21 -10
- package/src/http/HttpClientResponse.ts +3 -2
- package/src/http/HttpMethod.ts +10 -2
- package/src/http/HttpMiddleware.ts +15 -18
- package/src/http/HttpRouter.ts +2 -1
- package/src/http/HttpServerError.ts +2 -2
- package/src/http/HttpServerRequest.ts +101 -30
- package/src/http/HttpServerResponse.ts +3 -2
- package/src/http/HttpStaticServer.ts +51 -22
- package/src/http/HttpTraceContext.ts +7 -4
- package/src/http/MultipartParser/internal/contentType.ts +3 -3
- package/src/http/ProblemDetails.ts +149 -0
- package/src/http/UrlParams.ts +6 -1
- package/src/http/index.ts +6 -0
- package/src/http/internal/compression.ts +4 -5
- package/src/http/internal/decompression.ts +10 -4
- package/src/http/internal/httpBody.ts +10 -2
- package/src/http/internal/urlParams.ts +37 -0
- package/src/http-api/HttpApi.ts +3 -6
- package/src/http-api/HttpApiBuilder.ts +61 -19
- package/src/http-api/HttpApiClient.ts +284 -72
- package/src/http-api/HttpApiEndpoint.ts +135 -35
- package/src/http-api/HttpApiError.ts +250 -0
- package/src/http-api/HttpApiMiddleware.ts +95 -1
- package/src/http-api/HttpApiSchema.ts +236 -52
- package/src/http-api/HttpApiTest.ts +3 -2
- package/src/http-api/OpenApi.ts +20 -17
- package/src/http-api/internal/toCodecHttpProperties.ts +56 -0
- package/src/index.ts +6 -6
- package/src/internal/arbitrary/runner.ts +133 -36
- package/src/internal/core.ts +2 -0
- package/src/internal/effect.ts +58 -34
- package/src/internal/equal.ts +17 -0
- package/src/internal/glob.ts +736 -0
- package/src/internal/jsonSchema.ts +27 -0
- package/src/internal/matcher.ts +18 -1
- package/src/internal/persistence.ts +11 -0
- package/src/internal/rcRef.ts +4 -1
- package/src/internal/schema/compilerRegistry.ts +6 -1
- package/src/internal/schema/content.ts +18 -0
- package/src/internal/schema/fromJsonSchemaDocument.ts +228 -190
- package/src/internal/schema/fromRepresentation.ts +2 -1
- package/src/internal/schema/standardSchema.ts +2 -2
- package/src/internal/schema/toCodeDocument.ts +11 -7
- package/src/internal/schema/toCodec.ts +26 -22
- package/src/internal/schema/toJsonSchemaDocument.ts +189 -167
- package/src/internal/schema/toRepresentation.ts +122 -140
- package/src/internal/sql.ts +14 -0
- package/src/internal/trie.ts +43 -14
- package/src/internal/ulid.ts +44 -0
- package/src/internal/uuid.ts +57 -16
- package/src/internal/version.ts +1 -1
- package/src/observability/Otlp.ts +21 -4
- package/src/observability/OtlpProxy.ts +314 -0
- package/src/observability/OtlpResource.ts +9 -1
- package/src/observability/OtlpTracer.ts +4 -0
- package/src/observability/index.ts +6 -0
- package/src/persistence/CircuitBreaker.ts +1678 -0
- package/src/persistence/KeyValueStore.ts +219 -22
- package/src/persistence/PersistedQueue.ts +128 -59
- package/src/persistence/Persistence.ts +20 -13
- package/src/persistence/Redis.ts +129 -8
- package/src/persistence/index.ts +6 -0
- package/src/process/ChildProcess.ts +285 -264
- package/src/process/ChildProcessSpawner.ts +46 -2
- package/src/process/CommandLine.ts +630 -0
- package/src/process/index.ts +6 -0
- package/src/reactivity/AsyncResult.ts +1 -1
- package/src/reactivity/Atom.ts +5 -5
- package/src/reactivity/AtomRegistry.ts +1 -1
- package/src/rpc/RpcClient.ts +75 -36
- package/src/rpc/RpcMessage.ts +10 -1
- package/src/rpc/RpcSerialization.ts +35 -9
- package/src/rpc/RpcServer.ts +176 -63
- package/src/rpc/RpcTest.ts +3 -0
- package/src/schema/Model.ts +26 -3
- package/src/sql/Migrator.ts +15 -69
- package/src/sql/MigratorFileSystem.ts +71 -0
- package/src/sql/SqlClient.ts +13 -20
- package/src/sql/SqlResolver.ts +23 -9
- package/src/sql/Statement.ts +38 -9
- package/src/sql/index.ts +1 -1
- package/src/testing/index.ts +0 -6
- package/src/workflow/DurableDeferred.ts +23 -6
- package/src/workflow/internal/crypto.ts +15 -11
- package/dist/Crypto.d.ts +0 -244
- package/dist/Crypto.d.ts.map +0 -1
- package/dist/Crypto.js +0 -139
- package/dist/Crypto.js.map +0 -1
- package/dist/testing/TestCrypto.d.ts +0 -73
- package/dist/testing/TestCrypto.d.ts.map +0 -1
- package/dist/testing/TestCrypto.js +0 -87
- package/dist/testing/TestCrypto.js.map +0 -1
- package/src/Crypto.ts +0 -347
- package/src/testing/TestCrypto.ts +0 -94
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Loads SQL migrations by reading a directory.
|
|
3
|
+
*
|
|
4
|
+
* @stability unstable
|
|
5
|
+
* @since 4.0.0
|
|
6
|
+
*/
|
|
7
|
+
import * as Effect from "../Effect.ts"
|
|
8
|
+
import { FileSystem } from "../FileSystem.ts"
|
|
9
|
+
import * as Option from "../Option.ts"
|
|
10
|
+
import { Path } from "../Path.ts"
|
|
11
|
+
import { type Loader, MigrationError, type ResolvedMigration } from "./Migrator.ts"
|
|
12
|
+
|
|
13
|
+
// Kept out of `Migrator.ts` and the `effect/sql` barrel: Metro rejects the
|
|
14
|
+
// non-literal `import()` below in any module it bundles.
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* Creates a migration loader that reads a directory with `FileSystem`, imports
|
|
18
|
+
* files named `<id>_<name>.js`, `<id>_<name>.ts`,
|
|
19
|
+
* `<id>_<name>.mjs`, or `<id>_<name>.mts`, and sorts migrations by id.
|
|
20
|
+
*
|
|
21
|
+
* **Details**
|
|
22
|
+
*
|
|
23
|
+
* Requires a `Path` service appropriate for the migration directory's path
|
|
24
|
+
* syntax. On Windows, prefer a platform-aware implementation such as
|
|
25
|
+
* `NodePath.layer`; the core `Path.layer` uses POSIX semantics and does not
|
|
26
|
+
* preserve Windows drive-letter paths.
|
|
27
|
+
*
|
|
28
|
+
* @stability unstable
|
|
29
|
+
* @category loaders
|
|
30
|
+
* @since 4.0.0
|
|
31
|
+
*/
|
|
32
|
+
export const fromFileSystem: (directory: string) => Loader<FileSystem | Path> = Effect.fnUntraced(function*(directory) {
|
|
33
|
+
const Fs = yield* FileSystem
|
|
34
|
+
const path = yield* Path
|
|
35
|
+
const files = yield* Effect.mapError(
|
|
36
|
+
Fs.readDirectory(directory),
|
|
37
|
+
(cause) =>
|
|
38
|
+
new MigrationError({
|
|
39
|
+
kind: "Failed",
|
|
40
|
+
cause,
|
|
41
|
+
message: "Failed to read migrations directory"
|
|
42
|
+
})
|
|
43
|
+
)
|
|
44
|
+
return files
|
|
45
|
+
.map((file) => Option.fromNullishOr(file.match(/^(?:.*\/)?(\d+)_([^.]+)\.(js|ts|mjs|mts)$/)))
|
|
46
|
+
.flatMap(
|
|
47
|
+
Option.match({
|
|
48
|
+
onNone: () => [],
|
|
49
|
+
onSome: ([basename, id, name]): ReadonlyArray<ResolvedMigration> =>
|
|
50
|
+
[
|
|
51
|
+
[
|
|
52
|
+
Number(id),
|
|
53
|
+
name,
|
|
54
|
+
// `import` needs a file URL: on Windows an absolute path such as
|
|
55
|
+
// `D:\migrations\1_init.ts` is rejected by the ESM loader. `orDie` keeps the
|
|
56
|
+
// failure a defect so `loadMigration` reports it as an import error.
|
|
57
|
+
Effect.flatMap(Effect.orDie(path.toFileUrl(path.join(directory, basename))), (url) =>
|
|
58
|
+
Effect.promise(
|
|
59
|
+
() =>
|
|
60
|
+
import(
|
|
61
|
+
/* @vite-ignore */
|
|
62
|
+
/* webpackIgnore: true */
|
|
63
|
+
url.href
|
|
64
|
+
)
|
|
65
|
+
))
|
|
66
|
+
]
|
|
67
|
+
] as const
|
|
68
|
+
})
|
|
69
|
+
)
|
|
70
|
+
.sort(([a], [b]) => a - b);
|
|
71
|
+
})
|
package/src/sql/SqlClient.ts
CHANGED
|
@@ -15,12 +15,12 @@ import * as Context from "../Context.ts"
|
|
|
15
15
|
import * as Effect from "../Effect.ts"
|
|
16
16
|
import * as Exit from "../Exit.ts"
|
|
17
17
|
import { identity } from "../Function.ts"
|
|
18
|
+
import { CurrentTransactionService } from "../internal/sql.ts"
|
|
18
19
|
import * as Option from "../Option.ts"
|
|
19
20
|
import { hasProperty } from "../Predicate.ts"
|
|
20
21
|
import type * as Queue from "../Queue.ts"
|
|
21
22
|
import { type KeysInput, Reactivity } from "../reactivity/Reactivity.ts"
|
|
22
23
|
import type { ReadonlyRecord } from "../Record.ts"
|
|
23
|
-
import { UnhandledLogLevel } from "../References.ts"
|
|
24
24
|
import * as Scope from "../Scope.ts"
|
|
25
25
|
import * as Semaphore from "../Semaphore.ts"
|
|
26
26
|
import * as Stream from "../Stream.ts"
|
|
@@ -87,8 +87,7 @@ export interface SqlClient extends Constructor {
|
|
|
87
87
|
* enclosing `Reactivity.withBatch`. Only the `Reactivity` service read from
|
|
88
88
|
* the transaction's context defers, and a fiber that outlives the
|
|
89
89
|
* transaction can't defer through it, as with `afterCommit`. Transactions
|
|
90
|
-
* that don't go through `makeWithTransaction
|
|
91
|
-
* `@effect/sql-sqlite-do`, invalidate immediately.
|
|
90
|
+
* that don't go through `makeWithTransaction` invalidate immediately.
|
|
92
91
|
*/
|
|
93
92
|
readonly withTransaction: <R, E, A>(
|
|
94
93
|
self: Effect.Effect<A, E, R>
|
|
@@ -136,8 +135,8 @@ export interface SqlClient extends Constructor {
|
|
|
136
135
|
* long-running work.
|
|
137
136
|
* Registering after the transaction has ended is a defect.
|
|
138
137
|
*
|
|
139
|
-
* Transactions that don't go through `makeWithTransaction
|
|
140
|
-
*
|
|
138
|
+
* Transactions that don't go through `makeWithTransaction` run callbacks
|
|
139
|
+
* immediately.
|
|
141
140
|
*/
|
|
142
141
|
readonly afterCommit: <R>(effect: Effect.Effect<void, never, R>) => Effect.Effect<void, never, R>
|
|
143
142
|
|
|
@@ -430,13 +429,7 @@ export const makeSqliteAcquirers = <C extends Connection.Connection>(options: {
|
|
|
430
429
|
})
|
|
431
430
|
})
|
|
432
431
|
|
|
433
|
-
const lease = Effect.uninterruptibleMask((restore) =>
|
|
434
|
-
Effect.flatMap(Effect.scope, (scope) =>
|
|
435
|
-
restore(semaphore.take(1)).pipe(
|
|
436
|
-
Effect.andThen(Scope.addFinalizer(scope, semaphore.release(1))),
|
|
437
|
-
Effect.andThen(available)
|
|
438
|
-
))
|
|
439
|
-
)
|
|
432
|
+
const lease = Effect.uninterruptibleMask((restore) => Effect.andThen(restore(semaphore.takeScoped(1)), available))
|
|
440
433
|
|
|
441
434
|
return {
|
|
442
435
|
acquirer: lease,
|
|
@@ -488,14 +481,7 @@ interface AfterCommitBuffer {
|
|
|
488
481
|
const afterCommitBuffers = new WeakMap<object, AfterCommitBuffer>()
|
|
489
482
|
|
|
490
483
|
const runAfterCommit = <R>(effect: Effect.Effect<void, never, R>): Effect.Effect<void, never, R> =>
|
|
491
|
-
Effect.
|
|
492
|
-
Effect.withFiber((fiber) => {
|
|
493
|
-
const unhandledLogLevel = fiber.getRef(UnhandledLogLevel)
|
|
494
|
-
if (unhandledLogLevel) {
|
|
495
|
-
return Effect.logWithLevel(unhandledLogLevel)("Unhandled error in SqlClient.afterCommit callback", cause)
|
|
496
|
-
}
|
|
497
|
-
return Effect.void
|
|
498
|
-
}))
|
|
484
|
+
Effect.ignoreCause(effect, { log: "Unhandled", message: "Unhandled error in SqlClient.afterCommit callback" })
|
|
499
485
|
|
|
500
486
|
const makeAfterCommit =
|
|
501
487
|
(transactionService: Context.Key<any, any>) =>
|
|
@@ -525,6 +511,12 @@ const makeAfterCommit =
|
|
|
525
511
|
* failure or interruption. Releases nested savepoints when `releaseSavepoint`
|
|
526
512
|
* is provided.
|
|
527
513
|
*
|
|
514
|
+
* **Details**
|
|
515
|
+
*
|
|
516
|
+
* Transactions started this way are also recognized by `SqlResolver` when the
|
|
517
|
+
* caller's context has no `SqlClient`, so their requests don't share a batch
|
|
518
|
+
* with requests outside the transaction.
|
|
519
|
+
*
|
|
528
520
|
* @stability unstable
|
|
529
521
|
* @category transactions
|
|
530
522
|
* @since 4.0.0
|
|
@@ -612,6 +604,7 @@ export const makeWithTransaction = <I, S>(options: {
|
|
|
612
604
|
restore(effect),
|
|
613
605
|
services.pipe(
|
|
614
606
|
Context.add(options.transactionService, level),
|
|
607
|
+
Context.add(CurrentTransactionService, options.transactionService),
|
|
615
608
|
reactivity ? Context.add(Reactivity, deferInvalidations(reactivity)) : identity,
|
|
616
609
|
Context.add(transactionSemaphore, Semaphore.makeUnsafe(1)),
|
|
617
610
|
Context.add(Tracer.ParentSpan, span)
|
package/src/sql/SqlResolver.ts
CHANGED
|
@@ -8,6 +8,10 @@
|
|
|
8
8
|
* grouped, id-based, and side-effect-only resolver constructors, and keeps
|
|
9
9
|
* batches separated by the active SQL transaction connection.
|
|
10
10
|
*
|
|
11
|
+
* The active transaction is found through the `SqlClient` in each request's
|
|
12
|
+
* context, and otherwise through the innermost transaction started with
|
|
13
|
+
* `SqlClient.makeWithTransaction`.
|
|
14
|
+
*
|
|
11
15
|
* Only the transaction connection separates batches. Other differences in
|
|
12
16
|
* caller services do not: `execute` and result decoding are provided with the
|
|
13
17
|
* first entry's context, while request encoding uses each entry's own context.
|
|
@@ -27,6 +31,7 @@ import * as Effect from "../Effect.ts"
|
|
|
27
31
|
import * as Equal from "../Equal.ts"
|
|
28
32
|
import * as Exit from "../Exit.ts"
|
|
29
33
|
import * as Hash from "../Hash.ts"
|
|
34
|
+
import { CurrentTransactionService } from "../internal/sql.ts"
|
|
30
35
|
import * as MutableHashMap from "../MutableHashMap.ts"
|
|
31
36
|
import * as Option from "../Option.ts"
|
|
32
37
|
import * as Request from "../Request.ts"
|
|
@@ -146,7 +151,7 @@ export const ordered = <Req extends Schema.Constraint, Res extends Schema.Constr
|
|
|
146
151
|
E | ResultLengthMismatch,
|
|
147
152
|
Req["EncodingServices"] | Res["DecodingServices"] | R
|
|
148
153
|
>,
|
|
149
|
-
|
|
154
|
+
object | undefined
|
|
150
155
|
>({
|
|
151
156
|
key: transactionKey,
|
|
152
157
|
resolver: Effect.fnUntraced(function*(entries) {
|
|
@@ -204,7 +209,7 @@ export const grouped = <Req extends Schema.Constraint, Res extends Schema.Constr
|
|
|
204
209
|
E | Schema.SchemaError | Cause.NoSuchElementError,
|
|
205
210
|
Req["EncodingServices"] | Res["DecodingServices"] | R
|
|
206
211
|
>,
|
|
207
|
-
|
|
212
|
+
object | undefined
|
|
208
213
|
>({
|
|
209
214
|
key: transactionKey,
|
|
210
215
|
resolver: Effect.fnUntraced(function*(entries) {
|
|
@@ -274,7 +279,7 @@ export const findById = <Id extends Schema.Constraint, Res extends Schema.Constr
|
|
|
274
279
|
E | Schema.SchemaError | Cause.NoSuchElementError,
|
|
275
280
|
Id["EncodingServices"] | Res["DecodingServices"] | R
|
|
276
281
|
>,
|
|
277
|
-
|
|
282
|
+
object | undefined
|
|
278
283
|
>({
|
|
279
284
|
key: transactionKey,
|
|
280
285
|
resolver: Effect.fnUntraced(function*(entries) {
|
|
@@ -328,7 +333,7 @@ const void_ = <Req extends Schema.Constraint, _, E, R>(
|
|
|
328
333
|
E | Schema.SchemaError,
|
|
329
334
|
Req["EncodingServices"] | R
|
|
330
335
|
>,
|
|
331
|
-
|
|
336
|
+
object | undefined
|
|
332
337
|
>({
|
|
333
338
|
key: transactionKey,
|
|
334
339
|
resolver: Effect.fnUntraced(function*(entries) {
|
|
@@ -429,10 +434,19 @@ const partitionRequestsById = function*<In, A, E, R, InE>(
|
|
|
429
434
|
return [inputs, byIdMap] as const
|
|
430
435
|
}
|
|
431
436
|
|
|
432
|
-
function transactionKey<A>(entry: Request.Entry<A>):
|
|
437
|
+
function transactionKey<A>(entry: Request.Entry<A>): object | undefined {
|
|
438
|
+
// The transaction of the request's `SqlClient`, and the innermost transaction
|
|
439
|
+
// started with `SqlClient.makeWithTransaction` by any client.
|
|
433
440
|
const client = Context.getOrUndefined(entry.context, SqlClient.SqlClient)
|
|
434
|
-
|
|
435
|
-
const
|
|
436
|
-
|
|
437
|
-
|
|
441
|
+
const clientTransaction = client && Context.getOrUndefined(entry.context, client.transactionService)
|
|
442
|
+
const currentService = Context.get(entry.context, CurrentTransactionService)
|
|
443
|
+
const currentTransaction = currentService && Context.getOrUndefined(entry.context, currentService)
|
|
444
|
+
if (clientTransaction === undefined || clientTransaction === currentTransaction) {
|
|
445
|
+
return currentTransaction && Equal.byReferenceUnsafe(currentTransaction)
|
|
446
|
+
}
|
|
447
|
+
if (currentTransaction === undefined) {
|
|
448
|
+
return Equal.byReferenceUnsafe(clientTransaction)
|
|
449
|
+
}
|
|
450
|
+
// Two different transactions are active, so neither identifies the request on its own.
|
|
451
|
+
return [Equal.byReferenceUnsafe(clientTransaction), Equal.byReferenceUnsafe(currentTransaction)]
|
|
438
452
|
}
|
package/src/sql/Statement.ts
CHANGED
|
@@ -11,6 +11,7 @@
|
|
|
11
11
|
* @stability unstable
|
|
12
12
|
* @since 4.0.0
|
|
13
13
|
*/
|
|
14
|
+
import type * as Arr from "../Array.ts"
|
|
14
15
|
import { Clock } from "../Clock.ts"
|
|
15
16
|
import * as Context from "../Context.ts"
|
|
16
17
|
import * as Effect from "../Effect.ts"
|
|
@@ -278,7 +279,7 @@ export const arrayHelper = (value: ReadonlyArray<unknown | Fragment>): ArrayHelp
|
|
|
278
279
|
*/
|
|
279
280
|
export interface RecordInsertHelper {
|
|
280
281
|
readonly _tag: "RecordInsertHelper"
|
|
281
|
-
readonly value:
|
|
282
|
+
readonly value: Arr.NonEmptyReadonlyArray<Record<string, unknown>>
|
|
282
283
|
/**
|
|
283
284
|
* @internal
|
|
284
285
|
*/
|
|
@@ -305,7 +306,7 @@ const RecordInsertHelperProto = {
|
|
|
305
306
|
* @since 4.0.0
|
|
306
307
|
*/
|
|
307
308
|
export const recordInsertHelper = (
|
|
308
|
-
value:
|
|
309
|
+
value: Arr.NonEmptyReadonlyArray<Record<string, unknown>>
|
|
309
310
|
): RecordInsertHelper =>
|
|
310
311
|
Object.assign(Object.create(RecordInsertHelperProto), {
|
|
311
312
|
value,
|
|
@@ -322,7 +323,7 @@ export const recordInsertHelper = (
|
|
|
322
323
|
*/
|
|
323
324
|
export interface RecordUpdateHelper {
|
|
324
325
|
readonly _tag: "RecordUpdateHelper"
|
|
325
|
-
readonly value:
|
|
326
|
+
readonly value: Arr.NonEmptyReadonlyArray<Record<string, unknown>>
|
|
326
327
|
readonly alias: string
|
|
327
328
|
/**
|
|
328
329
|
* @internal
|
|
@@ -345,7 +346,7 @@ const RecordUpdateHelperProto = {
|
|
|
345
346
|
* @since 4.0.0
|
|
346
347
|
*/
|
|
347
348
|
export const recordUpdateHelper = (
|
|
348
|
-
value:
|
|
349
|
+
value: Arr.NonEmptyReadonlyArray<Record<string, unknown>>,
|
|
349
350
|
alias: string
|
|
350
351
|
): RecordUpdateHelper =>
|
|
351
352
|
Object.assign(Object.create(RecordUpdateHelperProto), {
|
|
@@ -502,7 +503,7 @@ export interface Constructor {
|
|
|
502
503
|
|
|
503
504
|
readonly insert: {
|
|
504
505
|
(
|
|
505
|
-
value:
|
|
506
|
+
value: Arr.NonEmptyReadonlyArray<Record<string, unknown>>
|
|
506
507
|
): RecordInsertHelper
|
|
507
508
|
(value: Record<string, unknown>): RecordInsertHelper
|
|
508
509
|
}
|
|
@@ -519,9 +520,12 @@ export interface Constructor {
|
|
|
519
520
|
* **Gotchas**
|
|
520
521
|
*
|
|
521
522
|
* Not supported in sqlite.
|
|
523
|
+
*
|
|
524
|
+
* The alias is escaped as an identifier and is not passed through name
|
|
525
|
+
* transforms.
|
|
522
526
|
*/
|
|
523
527
|
readonly updateValues: (
|
|
524
|
-
value:
|
|
528
|
+
value: Arr.NonEmptyReadonlyArray<Record<string, unknown>>,
|
|
525
529
|
alias: string
|
|
526
530
|
) => RecordUpdateHelper
|
|
527
531
|
|
|
@@ -628,7 +632,7 @@ export const make = (
|
|
|
628
632
|
in: in_,
|
|
629
633
|
insert(value: any) {
|
|
630
634
|
return recordInsertHelper(
|
|
631
|
-
Array.isArray(value) ? value : [value]
|
|
635
|
+
Array.isArray(value) ? value as Arr.NonEmptyArray<Record<string, unknown>> : [value]
|
|
632
636
|
)
|
|
633
637
|
},
|
|
634
638
|
update(value: any, omit: any) {
|
|
@@ -838,6 +842,10 @@ export type CompilerOptions<C extends Custom<any, any, any, any> = any> = {
|
|
|
838
842
|
readonly dialect: Dialect
|
|
839
843
|
readonly placeholder: (index: number, value: unknown) => string
|
|
840
844
|
readonly onIdentifier: (value: string, withoutTransform: boolean) => string
|
|
845
|
+
/**
|
|
846
|
+
* Renders `updateValues`. The `alias` is already escaped with
|
|
847
|
+
* `onIdentifier(alias, true)` and must be inserted as is.
|
|
848
|
+
*/
|
|
841
849
|
readonly onRecordUpdate: (
|
|
842
850
|
placeholders: string,
|
|
843
851
|
alias: string,
|
|
@@ -945,6 +953,19 @@ const CompilerProto = {
|
|
|
945
953
|
}
|
|
946
954
|
|
|
947
955
|
case "ArrayHelper": {
|
|
956
|
+
if (segment.value.length === 0) {
|
|
957
|
+
const inKeyword = emptyInKeyword.exec(sql)
|
|
958
|
+
if (inKeyword === null || isInLineComment(sql, inKeyword.index)) {
|
|
959
|
+
sql += "()"
|
|
960
|
+
} else if (this.dialect === "pg") {
|
|
961
|
+
// an empty subquery is typed as text in postgres, so compare with an
|
|
962
|
+
// empty array, which takes the type of the left operand instead
|
|
963
|
+
sql = sql.slice(0, inKeyword.index) + (inKeyword[1] ? "<> ALL('{}')" : "= ANY('{}')")
|
|
964
|
+
} else {
|
|
965
|
+
sql += "(SELECT NULL WHERE 1=0)"
|
|
966
|
+
}
|
|
967
|
+
break
|
|
968
|
+
}
|
|
948
969
|
sql += `(${placeholders(segment.value)})`
|
|
949
970
|
binds.push.apply(binds, segment.value as any)
|
|
950
971
|
break
|
|
@@ -1088,7 +1109,7 @@ const CompilerProto = {
|
|
|
1088
1109
|
}
|
|
1089
1110
|
const [s, b] = opts.onRecordUpdate(
|
|
1090
1111
|
placeholders,
|
|
1091
|
-
segment.alias,
|
|
1112
|
+
opts.onIdentifier(segment.alias, true),
|
|
1092
1113
|
generateColumns(keys, opts.onIdentifier, withoutTransform),
|
|
1093
1114
|
values,
|
|
1094
1115
|
typeof segment.returningIdentifier === "string"
|
|
@@ -1222,7 +1243,7 @@ export const defaultTransforms = (
|
|
|
1222
1243
|
) => {
|
|
1223
1244
|
const transformValue = (value: any) => {
|
|
1224
1245
|
if (Array.isArray(value)) {
|
|
1225
|
-
if (value.length === 0 || value[0]
|
|
1246
|
+
if (value.length === 0 || value[0]?.constructor !== Object) {
|
|
1226
1247
|
return value
|
|
1227
1248
|
}
|
|
1228
1249
|
return array(value)
|
|
@@ -1248,6 +1269,8 @@ export const defaultTransforms = (
|
|
|
1248
1269
|
const row = rows[i]
|
|
1249
1270
|
if (Array.isArray(row)) {
|
|
1250
1271
|
newRows[i] = transformArrayNested(row) as any
|
|
1272
|
+
} else if (row === null || typeof row !== "object") {
|
|
1273
|
+
newRows[i] = row
|
|
1251
1274
|
} else {
|
|
1252
1275
|
const obj: any = {}
|
|
1253
1276
|
for (const [key, value] of Object.entries(row)) {
|
|
@@ -1267,6 +1290,8 @@ export const defaultTransforms = (
|
|
|
1267
1290
|
const row = rows[i]
|
|
1268
1291
|
if (Array.isArray(row)) {
|
|
1269
1292
|
newRows[i] = transformArray(row) as any
|
|
1293
|
+
} else if (row === null || typeof row !== "object") {
|
|
1294
|
+
newRows[i] = row
|
|
1270
1295
|
} else {
|
|
1271
1296
|
const obj: any = {}
|
|
1272
1297
|
for (const [key, value] of Object.entries(row)) {
|
|
@@ -1686,3 +1711,7 @@ function in_(): Fragment | ArrayHelper {
|
|
|
1686
1711
|
}
|
|
1687
1712
|
|
|
1688
1713
|
const neverFragment = fragment([literal("1=0")])
|
|
1714
|
+
|
|
1715
|
+
const emptyInKeyword = /\b(NOT\s+)?IN\s*$/i
|
|
1716
|
+
|
|
1717
|
+
const isInLineComment = (sql: string, index: number) => sql.lastIndexOf("--", index) > sql.lastIndexOf("\n", index)
|
package/src/sql/index.ts
CHANGED
package/src/testing/index.ts
CHANGED
|
@@ -17,12 +17,6 @@ export * as TestClock from "./TestClock.ts"
|
|
|
17
17
|
*/
|
|
18
18
|
export * as TestConsole from "./TestConsole.ts"
|
|
19
19
|
|
|
20
|
-
/**
|
|
21
|
-
* @stability unstable
|
|
22
|
-
* @since 4.0.0
|
|
23
|
-
*/
|
|
24
|
-
export * as TestCrypto from "./TestCrypto.ts"
|
|
25
|
-
|
|
26
20
|
/**
|
|
27
21
|
* @stability unstable
|
|
28
22
|
* @since 4.0.0
|
|
@@ -347,6 +347,7 @@ const recordHeld = Effect.fnUntraced(function*<A, E, R>(
|
|
|
347
347
|
): Effect.fn.Return<A, E, R | WorkflowEngine | WorkflowInstance> {
|
|
348
348
|
const engine = yield* EngineTag
|
|
349
349
|
const instance = yield* InstanceTag
|
|
350
|
+
let parked: Cause.Cause<unknown> | undefined
|
|
350
351
|
const exit = yield* Workflow.wrapActivityResult(
|
|
351
352
|
Effect.gen(function*() {
|
|
352
353
|
if (checkCache) {
|
|
@@ -374,11 +375,13 @@ const recordHeld = Effect.fnUntraced(function*<A, E, R>(
|
|
|
374
375
|
Effect.forkChild({ startImmediately: true })
|
|
375
376
|
)
|
|
376
377
|
return yield* Effect.onInterrupt(Fiber.await(fiber), () => Fiber.interrupt(fiber)).pipe(
|
|
377
|
-
Effect.map((exit) =>
|
|
378
|
-
local.suspended && Exit.isFailure(exit) && Cause.hasInterruptsOnly(exit.cause)
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
378
|
+
Effect.map((exit) => {
|
|
379
|
+
if (local.suspended && Exit.isFailure(exit) && Cause.hasInterruptsOnly(exit.cause)) {
|
|
380
|
+
parked = exit.cause
|
|
381
|
+
return Option.none()
|
|
382
|
+
}
|
|
383
|
+
return Option.some(exit)
|
|
384
|
+
}),
|
|
382
385
|
// The waits are over once the body has a result. Otherwise every branch
|
|
383
386
|
// parked, or an enclosing race interrupted the body, and the waits move
|
|
384
387
|
// to the enclosing owner, if any, to be released when that race settles.
|
|
@@ -398,11 +401,25 @@ const recordHeld = Effect.fnUntraced(function*<A, E, R>(
|
|
|
398
401
|
Option.isNone
|
|
399
402
|
)
|
|
400
403
|
if (Option.isNone(exit)) {
|
|
401
|
-
return yield*
|
|
404
|
+
return yield* suspendWith(instance, parked!)
|
|
402
405
|
}
|
|
403
406
|
return yield* exit.value
|
|
404
407
|
})
|
|
405
408
|
|
|
409
|
+
/**
|
|
410
|
+
* Suspends like `Workflow.suspend`, keeping the annotations of the interrupts
|
|
411
|
+
* that stopped the branches. A branch can stop on an engine interrupt, such as
|
|
412
|
+
* a runner shutdown abandoning an activity, rather than on a durable wait. The
|
|
413
|
+
* engine must still see that interrupt to replay the run instead of storing it
|
|
414
|
+
* as suspended.
|
|
415
|
+
*/
|
|
416
|
+
const suspendWith = (instance: WorkflowInstance["Service"], cause: Cause.Cause<unknown>): Effect.Effect<never> =>
|
|
417
|
+
Effect.interruptible(Effect.callback<never>(() => {
|
|
418
|
+
instance.suspended = true
|
|
419
|
+
const fiber = Fiber.getCurrent()!
|
|
420
|
+
fiber.interruptUnsafe(fiber.id, Context.omit(Cause.StackTrace)(Cause.annotations(cause)))
|
|
421
|
+
}))
|
|
422
|
+
|
|
406
423
|
/**
|
|
407
424
|
* Runs effects as a durable race, returning a previously persisted result when
|
|
408
425
|
* present or completing a named deferred with the first result.
|
|
@@ -1,17 +1,21 @@
|
|
|
1
|
+
import * as Digest from "../../crypto/Digest.ts"
|
|
2
|
+
import { webCryptoDigest } from "../../crypto/internal/digest.ts"
|
|
3
|
+
import { WebCrypto } from "../../crypto/WebCrypto.ts"
|
|
1
4
|
import * as Effect from "../../Effect.ts"
|
|
5
|
+
import * as Hex from "../../encoding/Hex.ts"
|
|
6
|
+
|
|
7
|
+
const encoder = new TextEncoder()
|
|
2
8
|
|
|
3
9
|
/**
|
|
10
|
+
* Execution ids and idempotency keys are persisted, so they keep the first 16
|
|
11
|
+
* bytes of the SHA-256 digest as 32 hex characters.
|
|
12
|
+
*
|
|
4
13
|
* @internal
|
|
5
14
|
*/
|
|
6
|
-
export const makeHashDigest = (original: string) =>
|
|
7
|
-
|
|
8
|
-
Effect.
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
for (let i = 0; i < 16; i++) {
|
|
13
|
-
hexString += data[i].toString(16).padStart(2, "0")
|
|
14
|
-
}
|
|
15
|
-
return hexString
|
|
16
|
-
}
|
|
15
|
+
export const makeHashDigest = (original: string): Effect.Effect<string> =>
|
|
16
|
+
WebCrypto.use((crypto) =>
|
|
17
|
+
Effect.map(
|
|
18
|
+
webCryptoDigest(crypto, Digest.sha256, encoder.encode(original)),
|
|
19
|
+
(bytes) => Hex.encode(bytes).slice(0, 32)
|
|
20
|
+
)
|
|
17
21
|
)
|