effect 4.0.7 → 4.1.1
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 +31 -1
- package/THIRD_PARTY_NOTICES.md +62 -0
- package/dist/BigDecimal.d.ts +139 -7
- package/dist/BigDecimal.d.ts.map +1 -1
- package/dist/BigDecimal.js +86 -14
- 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 +9 -3
- 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/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 +164 -7
- package/dist/Effect.d.ts.map +1 -1
- package/dist/Effect.js +11 -1
- package/dist/Effect.js.map +1 -1
- package/dist/Equal.d.ts +2 -2
- package/dist/Equal.d.ts.map +1 -1
- package/dist/Equal.js +3 -3
- package/dist/Equal.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/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 +3 -2
- package/dist/Hash.d.ts.map +1 -1
- package/dist/Hash.js +5 -4
- package/dist/Hash.js.map +1 -1
- package/dist/Iterable.d.ts.map +1 -1
- package/dist/Iterable.js +11 -8
- package/dist/Iterable.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/Path.d.ts.map +1 -1
- package/dist/Path.js +5 -1
- package/dist/Path.js.map +1 -1
- package/dist/Pool.d.ts +51 -0
- package/dist/Pool.d.ts.map +1 -1
- package/dist/Pool.js +61 -10
- package/dist/Pool.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/Schedule.d.ts +18 -1
- package/dist/Schedule.d.ts.map +1 -1
- package/dist/Schedule.js +7 -2
- package/dist/Schedule.js.map +1 -1
- package/dist/Schema.d.ts +668 -42
- package/dist/Schema.d.ts.map +1 -1
- package/dist/Schema.js +652 -1
- package/dist/Schema.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/SchemaRepresentation.d.ts +18 -2
- package/dist/SchemaRepresentation.d.ts.map +1 -1
- package/dist/SchemaRepresentation.js +20 -2
- package/dist/SchemaRepresentation.js.map +1 -1
- package/dist/SchemaTransformation.d.ts +10 -5
- package/dist/SchemaTransformation.d.ts.map +1 -1
- package/dist/SchemaTransformation.js +8 -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 +40 -0
- package/dist/Semaphore.js.map +1 -1
- package/dist/Stream.d.ts +13 -4
- package/dist/Stream.d.ts.map +1 -1
- package/dist/Stream.js +9 -0
- package/dist/Stream.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/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/McpClient.d.ts +171 -19
- package/dist/ai/McpClient.d.ts.map +1 -1
- package/dist/ai/McpClient.js +277 -66
- package/dist/ai/McpClient.js.map +1 -1
- package/dist/ai/McpSchema.d.ts +108 -0
- package/dist/ai/McpSchema.d.ts.map +1 -1
- package/dist/ai/McpSchema.js +99 -0
- package/dist/ai/McpSchema.js.map +1 -1
- package/dist/ai/McpServer.d.ts +744 -29
- package/dist/ai/McpServer.d.ts.map +1 -1
- package/dist/ai/McpServer.js +763 -136
- 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.map +1 -1
- package/dist/ai/Prompt.js +20 -11
- package/dist/ai/Prompt.js.map +1 -1
- package/dist/ai/Response.d.ts +1 -25
- package/dist/ai/Response.d.ts.map +1 -1
- package/dist/ai/Response.js +1 -10
- package/dist/ai/Response.js.map +1 -1
- package/dist/ai/Tool.d.ts +19 -1
- package/dist/ai/Tool.d.ts.map +1 -1
- package/dist/ai/Tool.js +5 -7
- package/dist/ai/Tool.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 +89 -15
- package/dist/ai/internal/mcpCore.js.map +1 -1
- package/dist/ai/internal/mcpProtocol/v2024_11_05.js +7 -6
- package/dist/ai/internal/mcpProtocol/v2024_11_05.js.map +1 -1
- package/dist/ai/internal/mcpProtocol/v2025_03_26.js +7 -6
- package/dist/ai/internal/mcpProtocol/v2025_03_26.js.map +1 -1
- package/dist/ai/internal/mcpProtocol/v2025_06_18.js +7 -6
- package/dist/ai/internal/mcpProtocol/v2025_06_18.js.map +1 -1
- package/dist/ai/internal/mcpProtocol/v2025_11_25.js +7 -6
- package/dist/ai/internal/mcpProtocol/v2025_11_25.js.map +1 -1
- package/dist/ai/internal/mcpProtocol/v2026_07_28.js +60 -17
- package/dist/ai/internal/mcpProtocol/v2026_07_28.js.map +1 -1
- package/dist/ai/internal/mcpProtocol.js +25 -0
- package/dist/ai/internal/mcpProtocol.js.map +1 -1
- package/dist/ai/internal/mcpRuntime.js +8 -6
- package/dist/ai/internal/mcpRuntime.js.map +1 -1
- package/dist/ai/internal/mcpSkills.d.ts +2 -0
- package/dist/ai/internal/mcpSkills.d.ts.map +1 -0
- package/dist/ai/internal/mcpSkills.js +428 -0
- package/dist/ai/internal/mcpSkills.js.map +1 -0
- package/dist/ai/internal/mcpStatefulRuntime.js +6 -1
- package/dist/ai/internal/mcpStatefulRuntime.js.map +1 -1
- package/dist/cli/Argument.d.ts +6 -0
- package/dist/cli/Argument.d.ts.map +1 -1
- package/dist/cli/Argument.js +2 -0
- package/dist/cli/Argument.js.map +1 -1
- package/dist/cli/CliOutput.d.ts +65 -1
- package/dist/cli/CliOutput.d.ts.map +1 -1
- package/dist/cli/CliOutput.js +94 -37
- package/dist/cli/CliOutput.js.map +1 -1
- package/dist/cli/Command.d.ts +23 -0
- package/dist/cli/Command.d.ts.map +1 -1
- package/dist/cli/Command.js +8 -0
- package/dist/cli/Command.js.map +1 -1
- package/dist/cli/Flag.d.ts +107 -0
- package/dist/cli/Flag.d.ts.map +1 -1
- package/dist/cli/Flag.js +37 -0
- package/dist/cli/Flag.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 +6 -0
- package/dist/cli/Param.d.ts.map +1 -1
- package/dist/cli/Param.js +2 -0
- 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/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 +15 -5
- package/dist/cluster/ClusterWorkflowEngine.js.map +1 -1
- package/dist/cluster/Reply.d.ts +1 -1
- package/dist/cluster/Reply.d.ts.map +1 -1
- package/dist/cluster/Reply.js.map +1 -1
- package/dist/cluster/Sharding.d.ts.map +1 -1
- package/dist/cluster/Sharding.js +93 -28
- package/dist/cluster/Sharding.js.map +1 -1
- package/dist/cluster/ShardingConfig.d.ts +72 -6
- 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/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 +23 -8
- package/dist/cluster/SqlRunnerStorage.js.map +1 -1
- package/dist/cluster/internal/entityManager.js +15 -7
- package/dist/cluster/internal/entityManager.js.map +1 -1
- package/dist/crypto/Aead.d.ts +323 -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 +236 -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 +324 -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 +341 -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 +390 -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 +278 -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 +449 -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 +80 -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 +171 -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/encoding/Base64Url.d.ts.map +1 -1
- package/dist/encoding/Base64Url.js +29 -5
- 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/Ndjson.d.ts +5 -4
- package/dist/encoding/Ndjson.d.ts.map +1 -1
- package/dist/encoding/Ndjson.js +6 -5
- package/dist/encoding/Ndjson.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 +3 -1
- package/dist/encoding/Sse.d.ts.map +1 -1
- package/dist/encoding/Sse.js +5 -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 +104 -16
- 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 +126 -4
- package/dist/eventlog/EventLog.d.ts.map +1 -1
- package/dist/eventlog/EventLog.js +207 -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 +10 -1
- package/dist/eventlog/EventLogServer.d.ts.map +1 -1
- package/dist/eventlog/EventLogServer.js +45 -22
- package/dist/eventlog/EventLogServer.js.map +1 -1
- package/dist/eventlog/EventLogServerEncrypted.d.ts +336 -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/EventLogServerUnencrypted.d.ts +17 -0
- package/dist/eventlog/EventLogServerUnencrypted.d.ts.map +1 -1
- package/dist/eventlog/EventLogServerUnencrypted.js +14 -2
- package/dist/eventlog/EventLogServerUnencrypted.js.map +1 -1
- package/dist/eventlog/EventLogSessionAuth.d.ts +26 -3
- package/dist/eventlog/EventLogSessionAuth.d.ts.map +1 -1
- package/dist/eventlog/EventLogSessionAuth.js +63 -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.js +2 -2
- 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/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/graphql/GraphQLClient.d.ts +3 -1
- package/dist/graphql/GraphQLClient.d.ts.map +1 -1
- package/dist/graphql/GraphQLClient.js.map +1 -1
- package/dist/graphql/GraphQLClientError.d.ts +14 -9
- package/dist/graphql/GraphQLClientError.d.ts.map +1 -1
- package/dist/graphql/GraphQLClientError.js +14 -21
- package/dist/graphql/GraphQLClientError.js.map +1 -1
- package/dist/graphql/GraphQLProtocol.d.ts +12 -3
- package/dist/graphql/GraphQLProtocol.d.ts.map +1 -1
- package/dist/graphql/GraphQLProtocol.js +4 -1
- package/dist/graphql/GraphQLProtocol.js.map +1 -1
- package/dist/http/Cookies.d.ts +172 -0
- package/dist/http/Cookies.d.ts.map +1 -1
- package/dist/http/Cookies.js +143 -1
- 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 +268 -15
- package/dist/http/HttpClient.d.ts.map +1 -1
- package/dist/http/HttpClient.js +140 -7
- package/dist/http/HttpClient.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 +2 -3
- 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/HttpServerRequest.d.ts +5 -2
- package/dist/http/HttpServerRequest.d.ts.map +1 -1
- package/dist/http/HttpServerRequest.js +44 -39
- 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/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/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/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/decompression.js +3 -2
- package/dist/http/internal/decompression.js.map +1 -1
- package/dist/http/internal/mimeTypes.d.ts +4 -1
- package/dist/http/internal/mimeTypes.d.ts.map +1 -1
- package/dist/http/internal/mimeTypes.js +4 -1
- package/dist/http/internal/mimeTypes.js.map +1 -1
- package/dist/http/internal/urlParams.js +8 -0
- package/dist/http/internal/urlParams.js.map +1 -1
- package/dist/http-api/HttpApiBuilder.js +19 -5
- package/dist/http-api/HttpApiBuilder.js.map +1 -1
- package/dist/http-api/HttpApiClient.d.ts +63 -0
- package/dist/http-api/HttpApiClient.d.ts.map +1 -1
- package/dist/http-api/HttpApiClient.js +51 -0
- package/dist/http-api/HttpApiClient.js.map +1 -1
- package/dist/http-api/HttpApiEndpoint.d.ts.map +1 -1
- package/dist/http-api/HttpApiEndpoint.js +14 -5
- 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 +76 -14
- package/dist/http-api/HttpApiSchema.d.ts.map +1 -1
- package/dist/http-api/HttpApiSchema.js +54 -1
- package/dist/http-api/HttpApiSchema.js.map +1 -1
- 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/dateTime.js +49 -24
- package/dist/internal/dateTime.js.map +1 -1
- package/dist/internal/effect.js +35 -14
- package/dist/internal/effect.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 +808 -0
- package/dist/internal/glob.js.map +1 -0
- package/dist/internal/graphql.js +21 -7
- package/dist/internal/graphql.js.map +1 -1
- package/dist/internal/graphqlHeaders.d.ts +7 -0
- package/dist/internal/graphqlHeaders.d.ts.map +1 -1
- package/dist/internal/graphqlHeaders.js +11 -0
- package/dist/internal/graphqlHeaders.js.map +1 -1
- package/dist/internal/matcher.js +10 -0
- 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/request.js +29 -42
- package/dist/internal/request.js.map +1 -1
- package/dist/internal/schema/fromJsonSchemaDocument.js +7 -8
- package/dist/internal/schema/fromJsonSchemaDocument.js.map +1 -1
- package/dist/internal/schema/toCodeDocument.js +6 -3
- package/dist/internal/schema/toCodeDocument.js.map +1 -1
- 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/jose/JoseError.d.ts +285 -0
- package/dist/jose/JoseError.d.ts.map +1 -0
- package/dist/jose/JoseError.js +269 -0
- package/dist/jose/JoseError.js.map +1 -0
- package/dist/jose/Jwe.d.ts +128 -0
- package/dist/jose/Jwe.d.ts.map +1 -0
- package/dist/jose/Jwe.js +134 -0
- package/dist/jose/Jwe.js.map +1 -0
- package/dist/jose/Jwk.d.ts +597 -0
- package/dist/jose/Jwk.d.ts.map +1 -0
- package/dist/jose/Jwk.js +503 -0
- package/dist/jose/Jwk.js.map +1 -0
- package/dist/jose/Jwks.d.ts +236 -0
- package/dist/jose/Jwks.d.ts.map +1 -0
- package/dist/jose/Jwks.js +306 -0
- package/dist/jose/Jwks.js.map +1 -0
- package/dist/jose/Jws.d.ts +177 -0
- package/dist/jose/Jws.d.ts.map +1 -0
- package/dist/jose/Jws.js +183 -0
- package/dist/jose/Jws.js.map +1 -0
- package/dist/jose/Jwt.d.ts +270 -0
- package/dist/jose/Jwt.d.ts.map +1 -0
- package/dist/jose/Jwt.js +293 -0
- package/dist/jose/Jwt.js.map +1 -0
- package/dist/jose/index.d.ts +51 -0
- package/dist/jose/index.d.ts.map +1 -0
- package/dist/jose/index.js +52 -0
- package/dist/jose/index.js.map +1 -0
- package/dist/jose/internal/compact.d.ts +2 -0
- package/dist/jose/internal/compact.d.ts.map +1 -0
- package/dist/jose/internal/compact.js +179 -0
- package/dist/jose/internal/compact.js.map +1 -0
- package/dist/net/Host.d.ts.map +1 -1
- package/dist/net/Host.js +5 -10
- package/dist/net/Host.js.map +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/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/OtlpSerialization.d.ts +1 -1
- package/dist/observability/OtlpSerialization.d.ts.map +1 -1
- package/dist/observability/OtlpSerialization.js +10 -4
- package/dist/observability/OtlpSerialization.js.map +1 -1
- package/dist/observability/internal/otlpProtobuf.js +3 -3
- package/dist/observability/internal/otlpProtobuf.js.map +1 -1
- package/dist/observability/internal/protobuf.js +6 -0
- package/dist/observability/internal/protobuf.js.map +1 -1
- package/dist/persistence/CircuitBreaker.d.ts +98 -38
- package/dist/persistence/CircuitBreaker.d.ts.map +1 -1
- package/dist/persistence/CircuitBreaker.js +67 -29
- package/dist/persistence/CircuitBreaker.js.map +1 -1
- 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/RateLimiter.d.ts +8 -0
- package/dist/persistence/RateLimiter.d.ts.map +1 -1
- package/dist/persistence/RateLimiter.js +63 -12
- package/dist/persistence/RateLimiter.js.map +1 -1
- package/dist/persistence/index.d.ts +1 -1
- package/dist/persistence/index.js +1 -1
- package/dist/process/ChildProcess.d.ts +207 -67
- 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 +5 -0
- package/dist/process/ChildProcessSpawner.d.ts.map +1 -1
- 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/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 +17 -7
- package/dist/reactivity/AtomRegistry.js.map +1 -1
- package/dist/rpc/Rpc.d.ts +1 -1
- package/dist/rpc/Rpc.d.ts.map +1 -1
- package/dist/rpc/Rpc.js.map +1 -1
- package/dist/rpc/RpcClient.d.ts +28 -1
- package/dist/rpc/RpcClient.d.ts.map +1 -1
- package/dist/rpc/RpcClient.js +78 -27
- package/dist/rpc/RpcClient.js.map +1 -1
- package/dist/rpc/RpcMessage.d.ts +13 -3
- 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.map +1 -1
- package/dist/rpc/RpcSerialization.js +6 -0
- 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 -66
- package/dist/rpc/RpcServer.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 +9 -20
- package/dist/sql/Migrator.d.ts.map +1 -1
- package/dist/sql/Migrator.js +20 -53
- 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 +38 -3
- package/dist/sql/SqlClient.d.ts.map +1 -1
- package/dist/sql/SqlClient.js +9 -12
- package/dist/sql/SqlClient.js.map +1 -1
- package/dist/sql/Statement.d.ts +61 -9
- package/dist/sql/Statement.d.ts.map +1 -1
- package/dist/sql/Statement.js +24 -33
- 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/Workflow.d.ts +4 -0
- package/dist/workflow/Workflow.d.ts.map +1 -1
- package/dist/workflow/Workflow.js.map +1 -1
- package/dist/workflow/WorkflowEngine.d.ts.map +1 -1
- package/dist/workflow/WorkflowEngine.js +5 -0
- package/dist/workflow/WorkflowEngine.js.map +1 -1
- package/dist/workflow/internal/crypto.js +9 -8
- package/dist/workflow/internal/crypto.js.map +1 -1
- package/package.json +7 -1
- package/src/BigDecimal.ts +173 -16
- package/src/Channel.ts +17 -11
- package/src/Config.ts +7 -1
- package/src/Context.ts +34 -10
- package/src/Cron.ts +178 -29
- package/src/Duration.ts +140 -0
- package/src/Effect.ts +914 -85
- package/src/Equal.ts +3 -3
- package/src/FileSystem.ts +65 -4
- package/src/Glob.ts +205 -0
- package/src/Hash.ts +5 -4
- package/src/Iterable.ts +8 -5
- package/src/Match.ts +127 -0
- package/src/Path.ts +6 -1
- package/src/Pool.ts +75 -16
- package/src/Random.ts +3 -3
- package/src/RcMap.ts +5 -1
- package/src/Schedule.ts +26 -3
- package/src/Schema.ts +1191 -63
- package/src/SchemaGetter.ts +27 -11
- package/src/SchemaRepresentation.ts +23 -2
- package/src/SchemaTransformation.ts +10 -5
- package/src/ScopedCache.ts +5 -9
- package/src/Semaphore.ts +141 -0
- package/src/Stream.ts +15 -6
- package/src/Terminal.ts +19 -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/McpClient.ts +488 -91
- package/src/ai/McpSchema.ts +119 -0
- package/src/ai/McpServer.ts +1525 -319
- package/src/ai/McpTest.ts +380 -0
- package/src/ai/Prompt.ts +16 -11
- package/src/ai/Response.ts +2 -22
- package/src/ai/Tool.ts +32 -18
- package/src/ai/index.ts +6 -0
- package/src/ai/internal/mcpCore.ts +243 -56
- package/src/ai/internal/mcpProtocol/v2024_11_05.ts +7 -8
- package/src/ai/internal/mcpProtocol/v2025_03_26.ts +7 -8
- package/src/ai/internal/mcpProtocol/v2025_06_18.ts +7 -8
- package/src/ai/internal/mcpProtocol/v2025_11_25.ts +7 -8
- package/src/ai/internal/mcpProtocol/v2026_07_28.ts +56 -17
- package/src/ai/internal/mcpProtocol.ts +44 -0
- package/src/ai/internal/mcpRuntime.ts +15 -8
- package/src/ai/internal/mcpSkills.ts +480 -0
- package/src/ai/internal/mcpStatefulRuntime.ts +14 -2
- package/src/cli/Argument.ts +6 -0
- package/src/cli/CliOutput.ts +117 -49
- package/src/cli/Command.ts +23 -0
- package/src/cli/Flag.ts +107 -0
- package/src/cli/HelpDoc.ts +18 -1
- package/src/cli/Param.ts +6 -0
- package/src/cli/Primitive.ts +16 -1
- package/src/cli/Prompt.ts +1 -0
- package/src/cli/internal/help.ts +21 -9
- package/src/cluster/ClusterWorkflowEngine.ts +22 -8
- package/src/cluster/Reply.ts +1 -1
- package/src/cluster/Sharding.ts +96 -26
- package/src/cluster/ShardingConfig.ts +41 -3
- package/src/cluster/SingleRunner.ts +3 -3
- package/src/cluster/SqlMessageStorage.ts +49 -17
- package/src/cluster/SqlRunnerStorage.ts +37 -27
- package/src/cluster/internal/entityManager.ts +24 -10
- 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 +741 -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 +84 -0
- package/src/crypto/index.ts +78 -0
- package/src/crypto/internal/asymmetric.ts +330 -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 +242 -0
- package/src/crypto/internal/md5.ts +170 -0
- package/src/crypto/internal/webCrypto.ts +150 -0
- package/src/encoding/Base64Url.ts +32 -5
- package/src/encoding/Csv.ts +1298 -0
- package/src/encoding/Hex.ts +3 -2
- package/src/encoding/Ndjson.ts +6 -5
- package/src/encoding/SchemaBinary.ts +40 -4
- package/src/encoding/Sse.ts +5 -3
- package/src/encoding/Toml.ts +85 -20
- 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 +347 -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 +54 -20
- package/src/eventlog/EventLogServerEncrypted.ts +1135 -67
- package/src/eventlog/EventLogServerUnencrypted.ts +19 -2
- package/src/eventlog/EventLogSessionAuth.ts +82 -70
- package/src/eventlog/EventRow.ts +12 -3
- package/src/eventlog/SqlEventJournal.ts +2 -2
- 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/identityRootSecretDerivation.ts +93 -123
- package/src/eventlog/internal/remoteCompaction.ts +92 -0
- package/src/graphql/GraphQLClient.ts +3 -1
- package/src/graphql/GraphQLClientError.ts +15 -22
- package/src/graphql/GraphQLProtocol.ts +12 -3
- package/src/http/Cookies.ts +281 -1
- package/src/http/FetchHttpClient.ts +88 -16
- package/src/http/HttpClient.ts +299 -33
- package/src/http/HttpClientRequest.ts +12 -9
- package/src/http/HttpClientResponse.ts +3 -2
- package/src/http/HttpMethod.ts +10 -2
- package/src/http/HttpServerRequest.ts +76 -53
- package/src/http/HttpServerResponse.ts +3 -2
- package/src/http/HttpTraceContext.ts +7 -4
- package/src/http/ProblemDetails.ts +149 -0
- package/src/http/index.ts +6 -0
- package/src/http/internal/decompression.ts +4 -4
- package/src/http/internal/mimeTypes.ts +4 -1
- package/src/http/internal/urlParams.ts +8 -0
- package/src/http-api/HttpApiBuilder.ts +24 -12
- package/src/http-api/HttpApiClient.ts +67 -1
- package/src/http-api/HttpApiEndpoint.ts +14 -5
- package/src/http-api/HttpApiError.ts +250 -0
- package/src/http-api/HttpApiMiddleware.ts +95 -1
- package/src/http-api/HttpApiSchema.ts +106 -15
- package/src/index.ts +6 -6
- package/src/internal/dateTime.ts +54 -24
- package/src/internal/effect.ts +40 -18
- package/src/internal/glob.ts +952 -0
- package/src/internal/graphql.ts +27 -9
- package/src/internal/graphqlHeaders.ts +13 -0
- package/src/internal/matcher.ts +17 -0
- package/src/internal/persistence.ts +11 -0
- package/src/internal/rcRef.ts +4 -1
- package/src/internal/request.ts +51 -58
- package/src/internal/schema/fromJsonSchemaDocument.ts +11 -10
- package/src/internal/schema/toCodeDocument.ts +7 -3
- 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/jose/JoseError.ts +329 -0
- package/src/jose/Jwe.ts +196 -0
- package/src/jose/Jwk.ts +777 -0
- package/src/jose/Jwks.ts +418 -0
- package/src/jose/Jws.ts +312 -0
- package/src/jose/Jwt.ts +493 -0
- package/src/jose/index.ts +58 -0
- package/src/jose/internal/compact.ts +195 -0
- package/src/net/Host.ts +5 -10
- package/src/observability/Otlp.ts +21 -4
- package/src/observability/OtlpResource.ts +9 -1
- package/src/observability/OtlpSerialization.ts +13 -5
- package/src/observability/internal/otlpProtobuf.ts +6 -6
- package/src/observability/internal/protobuf.ts +10 -0
- package/src/persistence/CircuitBreaker.ts +113 -48
- package/src/persistence/KeyValueStore.ts +219 -22
- package/src/persistence/PersistedQueue.ts +128 -59
- package/src/persistence/Persistence.ts +20 -13
- package/src/persistence/RateLimiter.ts +84 -15
- package/src/persistence/index.ts +1 -1
- package/src/process/ChildProcess.ts +255 -260
- package/src/process/ChildProcessSpawner.ts +5 -0
- package/src/process/CommandLine.ts +630 -0
- package/src/process/index.ts +6 -0
- package/src/reactivity/Atom.ts +5 -5
- package/src/reactivity/AtomRegistry.ts +20 -9
- package/src/rpc/Rpc.ts +3 -1
- package/src/rpc/RpcClient.ts +94 -38
- package/src/rpc/RpcMessage.ts +13 -3
- package/src/rpc/RpcSerialization.ts +3 -0
- package/src/rpc/RpcServer.ts +176 -78
- package/src/schema/Model.ts +26 -3
- package/src/sql/Migrator.ts +38 -80
- package/src/sql/MigratorFileSystem.ts +71 -0
- package/src/sql/SqlClient.ts +45 -24
- package/src/sql/Statement.ts +60 -29
- package/src/sql/index.ts +1 -1
- package/src/testing/index.ts +0 -6
- package/src/workflow/Workflow.ts +4 -0
- package/src/workflow/WorkflowEngine.ts +5 -0
- 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/SchemaGetter.ts
CHANGED
|
@@ -1535,7 +1535,10 @@ export function stringifyJson(options?: StringifyJsonOptions): Getter<string, un
|
|
|
1535
1535
|
* The getter is pure and never fails. It splits the string by `separator`
|
|
1536
1536
|
* (default `,`) and then each pair at the first `keyValueSeparator` (default `=`),
|
|
1537
1537
|
* preserving the rest of the value. An empty `keyValueSeparator` uses the first
|
|
1538
|
-
* two characters as the key and value. Pairs
|
|
1538
|
+
* two characters as the key and value. Pairs without a `keyValueSeparator` or
|
|
1539
|
+
* with an empty key are skipped. Pairs with an empty value are skipped unless
|
|
1540
|
+
* `keepEmptyValues` is `true`, in which case the value is `""`. When `trim` is
|
|
1541
|
+
* `true`, keys and values are trimmed before these checks.
|
|
1539
1542
|
*
|
|
1540
1543
|
* **Example** (Parsing a key-value string)
|
|
1541
1544
|
*
|
|
@@ -1557,23 +1560,32 @@ export function stringifyJson(options?: StringifyJsonOptions): Getter<string, un
|
|
|
1557
1560
|
export function splitKeyValue<E extends string>(options?: {
|
|
1558
1561
|
readonly separator?: string | undefined
|
|
1559
1562
|
readonly keyValueSeparator?: string | undefined
|
|
1563
|
+
readonly trim?: boolean | undefined
|
|
1564
|
+
readonly keepEmptyValues?: boolean | undefined
|
|
1560
1565
|
}): Getter<Record<string, string>, E> {
|
|
1561
1566
|
const separator = options?.separator ?? ","
|
|
1562
1567
|
const keyValueSeparator = options?.keyValueSeparator ?? "="
|
|
1568
|
+
const trim = options?.trim ?? false
|
|
1569
|
+
const keepEmptyValues = options?.keepEmptyValues ?? false
|
|
1563
1570
|
return transform((input) =>
|
|
1564
1571
|
input.split(separator).reduce((acc, pair) => {
|
|
1572
|
+
let key: string
|
|
1573
|
+
let value: string
|
|
1565
1574
|
if (keyValueSeparator === "") {
|
|
1566
|
-
|
|
1567
|
-
|
|
1568
|
-
|
|
1575
|
+
key = pair.slice(0, 1)
|
|
1576
|
+
value = pair.slice(1, 2)
|
|
1577
|
+
} else {
|
|
1578
|
+
const index = pair.indexOf(keyValueSeparator)
|
|
1579
|
+
if (index === -1) return acc
|
|
1580
|
+
key = pair.slice(0, index)
|
|
1581
|
+
value = pair.slice(index + keyValueSeparator.length)
|
|
1569
1582
|
}
|
|
1570
|
-
|
|
1571
|
-
|
|
1572
|
-
|
|
1573
|
-
const value = pair.slice(index + keyValueSeparator.length)
|
|
1574
|
-
if (value) {
|
|
1575
|
-
InternalRecord.assignProperty(acc, key, value)
|
|
1583
|
+
if (trim) {
|
|
1584
|
+
key = key.trim()
|
|
1585
|
+
value = value.trim()
|
|
1576
1586
|
}
|
|
1587
|
+
if (key === "" || (value === "" && !keepEmptyValues)) return acc
|
|
1588
|
+
InternalRecord.assignProperty(acc, key, value)
|
|
1577
1589
|
return acc
|
|
1578
1590
|
}, {} as Record<string, string>)
|
|
1579
1591
|
)
|
|
@@ -2271,7 +2283,11 @@ function bracketPathToTokens(bracketPath: string): Array<string | number> {
|
|
|
2271
2283
|
return [""]
|
|
2272
2284
|
}
|
|
2273
2285
|
|
|
2274
|
-
|
|
2286
|
+
// Consume unmatched bracket runs too, avoiding repeated scans for a closing bracket.
|
|
2287
|
+
const replaced = bracketPath.replace(
|
|
2288
|
+
/\[([^\]\r\n\u2028\u2029]*)(\])?/g,
|
|
2289
|
+
(match, content, closing) => closing ? `.${content}` : match
|
|
2290
|
+
)
|
|
2275
2291
|
const parts = replaced.split(".")
|
|
2276
2292
|
// if bracket path started with "[...]" we get ".foo" => ["", "foo"]; drop the synthetic first ""
|
|
2277
2293
|
const start = replaced.startsWith(".") ? 1 : 0
|
|
@@ -928,6 +928,25 @@ export const isULIDReviver: FilterReviver<null> = makeReviverFilter(
|
|
|
928
928
|
({ annotations }) => Schema.isULID(annotations)
|
|
929
929
|
)
|
|
930
930
|
|
|
931
|
+
/**
|
|
932
|
+
* Reviver for persisted `isAscii` checks.
|
|
933
|
+
*
|
|
934
|
+
* **When to use**
|
|
935
|
+
*
|
|
936
|
+
* Use when reconstructing documents that may contain checks created by {@link Schema.isAscii}.
|
|
937
|
+
*
|
|
938
|
+
* @see {@link Schema.isAscii} for creating the corresponding check
|
|
939
|
+
*
|
|
940
|
+
* @stability unstable
|
|
941
|
+
* @category validation
|
|
942
|
+
* @since 4.0.6
|
|
943
|
+
*/
|
|
944
|
+
export const isAsciiReviver: FilterReviver<null> = makeReviverFilter(
|
|
945
|
+
"effect/schema/isAscii",
|
|
946
|
+
Schema.Null,
|
|
947
|
+
({ annotations }) => Schema.isAscii(annotations)
|
|
948
|
+
)
|
|
949
|
+
|
|
931
950
|
/**
|
|
932
951
|
* Reviver for persisted `isBase64` checks.
|
|
933
952
|
*
|
|
@@ -3183,7 +3202,8 @@ export function fromRepresentations(
|
|
|
3183
3202
|
* - Objects and arrays used as `const` values or `enum` members are rejected. Only strings, numbers, booleans, and null
|
|
3184
3203
|
* are supported.
|
|
3185
3204
|
* - Intersections of overlapping unions are limited to disjoint root-type partitions and finite primitive `anyOf`
|
|
3186
|
-
* literal sets. Other union intersections, including cases that would
|
|
3205
|
+
* literal sets, which may also be duplicated across branches. Other union intersections, including cases that would
|
|
3206
|
+
* duplicate any other nested choice, are rejected.
|
|
3187
3207
|
* - Unknown extension keywords are ignored and their semantics are not enforced.
|
|
3188
3208
|
* - Only local references to top-level definitions in the form `#/$defs/<escaped-token>` are supported, optionally
|
|
3189
3209
|
* followed by a pointer below the definition. A pointer target becomes a definition keyed by its escaped tokens, such
|
|
@@ -3232,7 +3252,8 @@ export function fromJsonSchemaDocument(
|
|
|
3232
3252
|
* - Objects and arrays used as `const` values or `enum` members are rejected. Only strings, numbers, booleans, and null
|
|
3233
3253
|
* are supported.
|
|
3234
3254
|
* - Intersections of overlapping unions are limited to disjoint root-type partitions and finite primitive `anyOf`
|
|
3235
|
-
* literal sets. Other union intersections, including cases that would
|
|
3255
|
+
* literal sets, which may also be duplicated across branches. Other union intersections, including cases that would
|
|
3256
|
+
* duplicate any other nested choice, are rejected.
|
|
3236
3257
|
* - Only local references to top-level definitions in the form `#/$defs/<escaped-token>` are supported, optionally
|
|
3237
3258
|
* followed by a pointer below the definition. A pointer target becomes a definition keyed by its escaped tokens, such
|
|
3238
3259
|
* as `Name/properties/field`, and is rejected if a top-level definition already uses that key. Root references and
|
|
@@ -812,9 +812,12 @@ export function uncapitalize(): Transformation<string, string> {
|
|
|
812
812
|
* **Details**
|
|
813
813
|
*
|
|
814
814
|
* Decoding splits the string by `separator` (default `","`) into pairs, then
|
|
815
|
-
* splits each pair by `keyValueSeparator` (default `"="`).
|
|
816
|
-
*
|
|
817
|
-
*
|
|
815
|
+
* splits each pair by `keyValueSeparator` (default `"="`). Set `trim` to trim
|
|
816
|
+
* keys and values, and `keepEmptyValues` to keep pairs with an empty value as
|
|
817
|
+
* `""` instead of skipping them (see {@link SchemaGetter.splitKeyValue}).
|
|
818
|
+
* Encoding joins the record back into a string using the same separators. The
|
|
819
|
+
* transformation is round-trippable when keys and values do not contain the
|
|
820
|
+
* separators and, with `trim`, have no surrounding whitespace.
|
|
818
821
|
*
|
|
819
822
|
* **Example** (Parsing key-value pairs)
|
|
820
823
|
*
|
|
@@ -840,6 +843,8 @@ export function uncapitalize(): Transformation<string, string> {
|
|
|
840
843
|
export function splitKeyValue(options?: {
|
|
841
844
|
readonly separator?: string | undefined
|
|
842
845
|
readonly keyValueSeparator?: string | undefined
|
|
846
|
+
readonly trim?: boolean | undefined
|
|
847
|
+
readonly keepEmptyValues?: boolean | undefined
|
|
843
848
|
}): Transformation<Record<string, string>, string> {
|
|
844
849
|
return new Transformation(
|
|
845
850
|
SchemaGetter.splitKeyValue(options),
|
|
@@ -1702,8 +1707,8 @@ export const urlFromString: Transformation<URL, string> = transformEffect<URL, s
|
|
|
1702
1707
|
* **Details**
|
|
1703
1708
|
*
|
|
1704
1709
|
* Decoding calls `BigDecimal.fromString(s)` and fails with `InvalidValue` if
|
|
1705
|
-
* the string is not a valid `BigDecimal` representation
|
|
1706
|
-
* `BigDecimal.format(bd)`.
|
|
1710
|
+
* the string is not a valid `BigDecimal` representation or its scale is
|
|
1711
|
+
* outside ±10,000. Encoding returns `BigDecimal.format(bd)`.
|
|
1707
1712
|
*
|
|
1708
1713
|
* @stability stable
|
|
1709
1714
|
* @category transforming
|
package/src/ScopedCache.ts
CHANGED
|
@@ -29,7 +29,6 @@ import * as MutableHashMap from "./MutableHashMap.ts"
|
|
|
29
29
|
import * as Option from "./Option.ts"
|
|
30
30
|
import type { Pipeable } from "./Pipeable.ts"
|
|
31
31
|
import * as Predicate from "./Predicate.ts"
|
|
32
|
-
import { UnhandledLogLevel } from "./References.ts"
|
|
33
32
|
import * as Scope from "./Scope.ts"
|
|
34
33
|
|
|
35
34
|
const TypeId = "~effect/ScopedCache"
|
|
@@ -411,12 +410,9 @@ const hasExpired = <A, E>(entry: Entry<A, E>, fiber: Fiber.Fiber<unknown, unknow
|
|
|
411
410
|
|
|
412
411
|
// Expiry and capacity eviction report cleanup failures without failing unrelated readers.
|
|
413
412
|
const closeEvicted = <A, E>(entry: Entry<A, E>): Effect.Effect<void> =>
|
|
414
|
-
effect.
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
core.withFiber((fiber) => {
|
|
418
|
-
const level = fiber.getRef(UnhandledLogLevel)
|
|
419
|
-
return level ? effect.logWithLevel(level)("Unhandled error in ScopedCache finalizer", cause) : effect.void
|
|
413
|
+
effect.ignoreCause(Scope.close(entry.scope, effect.exitVoid), {
|
|
414
|
+
log: "Unhandled",
|
|
415
|
+
message: "Unhandled error in ScopedCache finalizer"
|
|
420
416
|
})
|
|
421
417
|
|
|
422
418
|
const checkCapacity = <K, A, E>(
|
|
@@ -1184,7 +1180,7 @@ export const keys = <Key, A, E, R>(self: ScopedCache<Key, A, E, R>): Effect.Effe
|
|
|
1184
1180
|
keys.push(key)
|
|
1185
1181
|
} else {
|
|
1186
1182
|
MutableHashMap.remove(state.map, key)
|
|
1187
|
-
fibers.push(effect.forkUnsafe(fiber,
|
|
1183
|
+
fibers.push(effect.forkUnsafe(fiber, closeEvicted(entry), true, true))
|
|
1188
1184
|
}
|
|
1189
1185
|
}
|
|
1190
1186
|
return fibers.length === 0 ? effect.succeed(keys) : effect.as(effect.fiberAwaitAll(fibers), keys)
|
|
@@ -1249,7 +1245,7 @@ export const entries = <Key, A, E, R>(self: ScopedCache<Key, A, E, R>): Effect.E
|
|
|
1249
1245
|
}
|
|
1250
1246
|
} else {
|
|
1251
1247
|
MutableHashMap.remove(state.map, key)
|
|
1252
|
-
fibers.push(effect.forkUnsafe(fiber,
|
|
1248
|
+
fibers.push(effect.forkUnsafe(fiber, closeEvicted(entry), true, true))
|
|
1253
1249
|
}
|
|
1254
1250
|
}
|
|
1255
1251
|
return fibers.length === 0
|
package/src/Semaphore.ts
CHANGED
|
@@ -17,6 +17,7 @@ import { dual, identity } from "./Function.ts"
|
|
|
17
17
|
import * as core from "./internal/core.ts"
|
|
18
18
|
import * as internal from "./internal/effect.ts"
|
|
19
19
|
import type * as Option from "./Option.ts"
|
|
20
|
+
import type * as Scope from "./Scope.ts"
|
|
20
21
|
|
|
21
22
|
/**
|
|
22
23
|
* A counting semaphore that coordinates concurrent access with permits.
|
|
@@ -134,6 +135,24 @@ export interface Semaphore {
|
|
|
134
135
|
*/
|
|
135
136
|
take(this: Semaphore, permits: number): Effect.Effect<number>
|
|
136
137
|
|
|
138
|
+
/**
|
|
139
|
+
* Acquires the specified number of permits for the lifetime of the current
|
|
140
|
+
* scope, suspending the task if they are not yet available.
|
|
141
|
+
*
|
|
142
|
+
* **When to use**
|
|
143
|
+
*
|
|
144
|
+
* Use to hold permits until a scope closes, such as while a scoped resource
|
|
145
|
+
* is leased.
|
|
146
|
+
*
|
|
147
|
+
* **Details**
|
|
148
|
+
*
|
|
149
|
+
* Waiting can be interrupted unless the caller is uninterruptible. The
|
|
150
|
+
* permits are taken and their release is added to the scope in one
|
|
151
|
+
* uninterruptible step, so acquired permits are always returned when the
|
|
152
|
+
* scope closes.
|
|
153
|
+
*/
|
|
154
|
+
takeScoped(this: Semaphore, permits: number): Effect.Effect<void, never, Scope.Scope>
|
|
155
|
+
|
|
137
156
|
/**
|
|
138
157
|
* Acquires the specified number of permits only if they are immediately
|
|
139
158
|
* available.
|
|
@@ -281,6 +300,15 @@ class SemaphoreImpl implements Semaphore {
|
|
|
281
300
|
return takePermits(this, n, () => internal.succeed(n))
|
|
282
301
|
}
|
|
283
302
|
|
|
303
|
+
takeScoped(n: number): Effect.Effect<void, never, Scope.Scope> {
|
|
304
|
+
return internal.uninterruptibleMask((restore) =>
|
|
305
|
+
internal.flatMap(
|
|
306
|
+
internal.scope,
|
|
307
|
+
(scope) => takePermits(this, n, () => internal.scopeAddFinalizer(scope, this.release(n)), restore)
|
|
308
|
+
)
|
|
309
|
+
)
|
|
310
|
+
}
|
|
311
|
+
|
|
284
312
|
takeIfAvailable(n: number): Effect.Effect<boolean> {
|
|
285
313
|
return internal.suspend(() => {
|
|
286
314
|
if (this.free < n) return internal.succeed(false)
|
|
@@ -747,6 +775,119 @@ export const take: {
|
|
|
747
775
|
(self: Semaphore, permits: number): Effect.Effect<number>
|
|
748
776
|
} = dual(2, (self: Semaphore, permits: number) => self.take(permits))
|
|
749
777
|
|
|
778
|
+
/**
|
|
779
|
+
* Acquires the specified number of permits until the current scope closes.
|
|
780
|
+
*
|
|
781
|
+
* **When to use**
|
|
782
|
+
*
|
|
783
|
+
* Use when permits should be held for the lifetime of a scope, such as while a
|
|
784
|
+
* scoped resource is leased.
|
|
785
|
+
*
|
|
786
|
+
* **Details**
|
|
787
|
+
*
|
|
788
|
+
* The effect waits until enough permits are available. The wait can be
|
|
789
|
+
* interrupted unless the caller is uninterruptible. The permits are taken and
|
|
790
|
+
* their release is added to the scope in one uninterruptible step, so acquired
|
|
791
|
+
* permits are always returned when the scope closes.
|
|
792
|
+
*
|
|
793
|
+
* **Example** (Holding a permit for a scope)
|
|
794
|
+
*
|
|
795
|
+
* ```ts import.meta.vitest
|
|
796
|
+
* import { Effect, Semaphore } from "effect"
|
|
797
|
+
*
|
|
798
|
+
* const program = Effect.gen(function*() {
|
|
799
|
+
* const semaphore = yield* Semaphore.make(1)
|
|
800
|
+
* yield* Effect.scoped(Semaphore.takeScoped(semaphore, 1))
|
|
801
|
+
* return yield* Semaphore.takeIfAvailable(semaphore, 1)
|
|
802
|
+
* })
|
|
803
|
+
*
|
|
804
|
+
* Effect.runSync(program) // => true
|
|
805
|
+
* ```
|
|
806
|
+
*
|
|
807
|
+
* @see {@link take} for acquiring permits that are released manually
|
|
808
|
+
* @see {@link withPermits} for holding permits while one effect runs
|
|
809
|
+
*
|
|
810
|
+
* @stability stable
|
|
811
|
+
* @category combinators
|
|
812
|
+
* @since 4.0.7
|
|
813
|
+
*/
|
|
814
|
+
export const takeScoped: {
|
|
815
|
+
/**
|
|
816
|
+
* Acquires the specified number of permits until the current scope closes.
|
|
817
|
+
*
|
|
818
|
+
* **When to use**
|
|
819
|
+
*
|
|
820
|
+
* Use when permits should be held for the lifetime of a scope, such as while a
|
|
821
|
+
* scoped resource is leased.
|
|
822
|
+
*
|
|
823
|
+
* **Details**
|
|
824
|
+
*
|
|
825
|
+
* The effect waits until enough permits are available. The wait can be
|
|
826
|
+
* interrupted unless the caller is uninterruptible. The permits are taken and
|
|
827
|
+
* their release is added to the scope in one uninterruptible step, so acquired
|
|
828
|
+
* permits are always returned when the scope closes.
|
|
829
|
+
*
|
|
830
|
+
* **Example** (Holding a permit for a scope)
|
|
831
|
+
*
|
|
832
|
+
* ```ts import.meta.vitest
|
|
833
|
+
* import { Effect, Semaphore } from "effect"
|
|
834
|
+
*
|
|
835
|
+
* const program = Effect.gen(function*() {
|
|
836
|
+
* const semaphore = yield* Semaphore.make(1)
|
|
837
|
+
* yield* Effect.scoped(Semaphore.takeScoped(semaphore, 1))
|
|
838
|
+
* return yield* Semaphore.takeIfAvailable(semaphore, 1)
|
|
839
|
+
* })
|
|
840
|
+
*
|
|
841
|
+
* Effect.runSync(program) // => true
|
|
842
|
+
* ```
|
|
843
|
+
*
|
|
844
|
+
* @see {@link take} for acquiring permits that are released manually
|
|
845
|
+
* @see {@link withPermits} for holding permits while one effect runs
|
|
846
|
+
*
|
|
847
|
+
* @stability stable
|
|
848
|
+
* @category combinators
|
|
849
|
+
* @since 4.0.7
|
|
850
|
+
*/
|
|
851
|
+
(permits: number): (self: Semaphore) => Effect.Effect<void, never, Scope.Scope>
|
|
852
|
+
/**
|
|
853
|
+
* Acquires the specified number of permits until the current scope closes.
|
|
854
|
+
*
|
|
855
|
+
* **When to use**
|
|
856
|
+
*
|
|
857
|
+
* Use when permits should be held for the lifetime of a scope, such as while a
|
|
858
|
+
* scoped resource is leased.
|
|
859
|
+
*
|
|
860
|
+
* **Details**
|
|
861
|
+
*
|
|
862
|
+
* The effect waits until enough permits are available. The wait can be
|
|
863
|
+
* interrupted unless the caller is uninterruptible. The permits are taken and
|
|
864
|
+
* their release is added to the scope in one uninterruptible step, so acquired
|
|
865
|
+
* permits are always returned when the scope closes.
|
|
866
|
+
*
|
|
867
|
+
* **Example** (Holding a permit for a scope)
|
|
868
|
+
*
|
|
869
|
+
* ```ts import.meta.vitest
|
|
870
|
+
* import { Effect, Semaphore } from "effect"
|
|
871
|
+
*
|
|
872
|
+
* const program = Effect.gen(function*() {
|
|
873
|
+
* const semaphore = yield* Semaphore.make(1)
|
|
874
|
+
* yield* Effect.scoped(Semaphore.takeScoped(semaphore, 1))
|
|
875
|
+
* return yield* Semaphore.takeIfAvailable(semaphore, 1)
|
|
876
|
+
* })
|
|
877
|
+
*
|
|
878
|
+
* Effect.runSync(program) // => true
|
|
879
|
+
* ```
|
|
880
|
+
*
|
|
881
|
+
* @see {@link take} for acquiring permits that are released manually
|
|
882
|
+
* @see {@link withPermits} for holding permits while one effect runs
|
|
883
|
+
*
|
|
884
|
+
* @stability stable
|
|
885
|
+
* @category combinators
|
|
886
|
+
* @since 4.0.7
|
|
887
|
+
*/
|
|
888
|
+
(self: Semaphore, permits: number): Effect.Effect<void, never, Scope.Scope>
|
|
889
|
+
} = dual(2, (self: Semaphore, permits: number) => self.takeScoped(permits))
|
|
890
|
+
|
|
750
891
|
/**
|
|
751
892
|
* Acquires the specified number of permits only if they are immediately
|
|
752
893
|
* available.
|
package/src/Stream.ts
CHANGED
|
@@ -10247,6 +10247,9 @@ export const orDie = <A, E, R>(self: Stream<A, E, R>): Stream<A, never, R> => fr
|
|
|
10247
10247
|
*
|
|
10248
10248
|
* The `log` option controls whether the failure is logged before the stream
|
|
10249
10249
|
* terminates.
|
|
10250
|
+
* Set `log: "Unhandled"` to read `References.UnhandledLogLevel` when the
|
|
10251
|
+
* failure occurs; `undefined` disables logging. Minimum log level filtering
|
|
10252
|
+
* still applies.
|
|
10250
10253
|
*
|
|
10251
10254
|
* **Gotchas**
|
|
10252
10255
|
*
|
|
@@ -10295,12 +10298,12 @@ export const orDie = <A, E, R>(self: Stream<A, E, R>): Stream<A, never, R> => fr
|
|
|
10295
10298
|
*/
|
|
10296
10299
|
export const ignore: <
|
|
10297
10300
|
Arg extends Stream<any, any, any> | {
|
|
10298
|
-
readonly log?: boolean | Severity | undefined
|
|
10301
|
+
readonly log?: boolean | Severity | "Unhandled" | undefined
|
|
10299
10302
|
} | undefined
|
|
10300
10303
|
>(
|
|
10301
10304
|
selfOrOptions: Arg,
|
|
10302
10305
|
options?: {
|
|
10303
|
-
readonly log?: boolean | Severity | undefined
|
|
10306
|
+
readonly log?: boolean | Severity | "Unhandled" | undefined
|
|
10304
10307
|
} | undefined
|
|
10305
10308
|
) => [Arg] extends [Stream<infer A, infer _E, infer R>] ? Stream<A, never, R>
|
|
10306
10309
|
: <A, E, R>(self: Stream<A, E, R>) => Stream<A, never, R> = dual(
|
|
@@ -10308,7 +10311,7 @@ export const ignore: <
|
|
|
10308
10311
|
<A, E, R>(
|
|
10309
10312
|
self: Stream<A, E, R>,
|
|
10310
10313
|
options?: {
|
|
10311
|
-
readonly log?: boolean | Severity | undefined
|
|
10314
|
+
readonly log?: boolean | Severity | "Unhandled" | undefined
|
|
10312
10315
|
} | undefined
|
|
10313
10316
|
): Stream<A, never, R> => fromChannel(Channel.ignore(self.channel, options))
|
|
10314
10317
|
)
|
|
@@ -10321,6 +10324,12 @@ export const ignore: <
|
|
|
10321
10324
|
* Use when you need to silently suppress a stream's entire failure cause,
|
|
10322
10325
|
* including both typed errors and defects, rather than propagate it downstream.
|
|
10323
10326
|
*
|
|
10327
|
+
* **Details**
|
|
10328
|
+
*
|
|
10329
|
+
* Set `log: "Unhandled"` to read `References.UnhandledLogLevel` when the
|
|
10330
|
+
* failure occurs; `undefined` disables logging. Minimum log level filtering
|
|
10331
|
+
* still applies.
|
|
10332
|
+
*
|
|
10324
10333
|
* **Example** (Ignoring stream failure causes)
|
|
10325
10334
|
*
|
|
10326
10335
|
* ```ts import.meta.vitest
|
|
@@ -10345,19 +10354,19 @@ export const ignore: <
|
|
|
10345
10354
|
*/
|
|
10346
10355
|
export const ignoreCause: <
|
|
10347
10356
|
Arg extends Stream<any, any, any> | {
|
|
10348
|
-
readonly log?: boolean | Severity | undefined
|
|
10357
|
+
readonly log?: boolean | Severity | "Unhandled" | undefined
|
|
10349
10358
|
} | undefined
|
|
10350
10359
|
>(
|
|
10351
10360
|
streamOrOptions: Arg,
|
|
10352
10361
|
options?: {
|
|
10353
|
-
readonly log?: boolean | Severity | undefined
|
|
10362
|
+
readonly log?: boolean | Severity | "Unhandled" | undefined
|
|
10354
10363
|
} | undefined
|
|
10355
10364
|
) => [Arg] extends [Stream<infer A, infer _E, infer R>] ? Stream<A, never, R>
|
|
10356
10365
|
: <A, E, R>(self: Stream<A, E, R>) => Stream<A, never, R> = dual(
|
|
10357
10366
|
(args) => isStream(args[0]),
|
|
10358
10367
|
<A, E, R>(
|
|
10359
10368
|
self: Stream<A, E, R>,
|
|
10360
|
-
options?: { readonly log?: boolean | Severity | undefined } | undefined
|
|
10369
|
+
options?: { readonly log?: boolean | Severity | "Unhandled" | undefined } | undefined
|
|
10361
10370
|
): Stream<A, never, R> => fromChannel(Channel.ignoreCause(self.channel, options))
|
|
10362
10371
|
)
|
|
10363
10372
|
|
package/src/Terminal.ts
CHANGED
|
@@ -42,6 +42,12 @@ export interface Terminal {
|
|
|
42
42
|
*/
|
|
43
43
|
|
|
44
44
|
readonly rows: Effect.Effect<number>
|
|
45
|
+
/**
|
|
46
|
+
* Subscribes to terminal size changes. The queue starts with the current
|
|
47
|
+
* dimensions, receives each resize until the scope closes, and keeps only the
|
|
48
|
+
* latest size.
|
|
49
|
+
*/
|
|
50
|
+
readonly size: Effect.Effect<Queue.Dequeue<Size, Cause.Done>, never, Scope.Scope>
|
|
45
51
|
/**
|
|
46
52
|
* Reads input events from the default standard input.
|
|
47
53
|
*/
|
|
@@ -56,6 +62,18 @@ export interface Terminal {
|
|
|
56
62
|
readonly display: (text: string) => Effect.Effect<void, PlatformError>
|
|
57
63
|
}
|
|
58
64
|
|
|
65
|
+
/**
|
|
66
|
+
* Terminal dimensions measured in character cells.
|
|
67
|
+
*
|
|
68
|
+
* @stability unstable
|
|
69
|
+
* @category models
|
|
70
|
+
* @since 4.0.0
|
|
71
|
+
*/
|
|
72
|
+
export interface Size {
|
|
73
|
+
readonly columns: number
|
|
74
|
+
readonly rows: number
|
|
75
|
+
}
|
|
76
|
+
|
|
59
77
|
/**
|
|
60
78
|
* Keyboard key metadata for terminal input, including the key name and
|
|
61
79
|
* modifier state.
|
|
@@ -183,7 +201,7 @@ export const Terminal: Context.Service<Terminal, Terminal> = Context.Service("ef
|
|
|
183
201
|
*
|
|
184
202
|
* **Details**
|
|
185
203
|
*
|
|
186
|
-
* The implementation object supplies `columns`, `rows`, `readInput`,
|
|
204
|
+
* The implementation object supplies `columns`, `rows`, `size`, `readInput`,
|
|
187
205
|
* `readLine`, and `display`; `make` attaches the `Terminal` service marker so
|
|
188
206
|
* the result can be provided through the `Terminal` context service.
|
|
189
207
|
*
|
package/src/ai/AiError.ts
CHANGED
|
@@ -15,51 +15,9 @@
|
|
|
15
15
|
import * as Duration from "../Duration.ts"
|
|
16
16
|
import * as Effect from "../Effect.ts"
|
|
17
17
|
import type * as HttpClientError from "../http/HttpClientError.ts"
|
|
18
|
-
import * as InternalRecord from "../internal/record.ts"
|
|
19
|
-
import * as Option from "../Option.ts"
|
|
20
18
|
import * as Predicate from "../Predicate.ts"
|
|
21
|
-
import { redact } from "../Redactable.ts"
|
|
22
|
-
import * as Redacted from "../Redacted.ts"
|
|
23
19
|
import * as Schema from "../Schema.ts"
|
|
24
20
|
|
|
25
|
-
/**
|
|
26
|
-
* Schema for HTTP requests to an AI provider.
|
|
27
|
-
*
|
|
28
|
-
* **Example** (Describing an HTTP request)
|
|
29
|
-
*
|
|
30
|
-
* ```ts import.meta.vitest
|
|
31
|
-
* import type { AiError } from "effect/ai"
|
|
32
|
-
*
|
|
33
|
-
* const requestDetails: typeof AiError.HttpRequestDetails.Type = {
|
|
34
|
-
* method: "POST",
|
|
35
|
-
* url: "https://api.openai.com/v1/responses",
|
|
36
|
-
* urlParams: [],
|
|
37
|
-
* hash: undefined,
|
|
38
|
-
* headers: { "Content-Type": "application/json" }
|
|
39
|
-
* }
|
|
40
|
-
* const result = [requestDetails.method, requestDetails.urlParams] // => ["POST", []]
|
|
41
|
-
* ```
|
|
42
|
-
*
|
|
43
|
-
* @stability unstable
|
|
44
|
-
* @category schemas
|
|
45
|
-
* @since 4.0.0
|
|
46
|
-
*/
|
|
47
|
-
export const HttpRequestDetails = Schema.Struct({
|
|
48
|
-
method: Schema.Literals(["GET", "POST", "PATCH", "PUT", "DELETE", "HEAD", "OPTIONS", "TRACE", "QUERY"]),
|
|
49
|
-
url: Schema.String,
|
|
50
|
-
urlParams: Schema.Array(
|
|
51
|
-
Schema.Tuple([Schema.String, Schema.Union([Schema.String, Schema.Redacted(Schema.String)])])
|
|
52
|
-
),
|
|
53
|
-
hash: Schema.optional(Schema.String),
|
|
54
|
-
headers: Schema.Record(
|
|
55
|
-
Schema.String,
|
|
56
|
-
Schema.Union([
|
|
57
|
-
Schema.String,
|
|
58
|
-
Schema.Redacted(Schema.String)
|
|
59
|
-
])
|
|
60
|
-
)
|
|
61
|
-
}).annotate({ identifier: "HttpRequestDetails" })
|
|
62
|
-
|
|
63
21
|
/**
|
|
64
22
|
* Schema for HTTP responses from an AI provider.
|
|
65
23
|
*
|
|
@@ -101,16 +59,6 @@ const providerMetadataWithDefaults = <Metadata extends ProviderMetadata>() =>
|
|
|
101
59
|
Schema.withDecodingDefault(Effect.succeed({}))
|
|
102
60
|
)
|
|
103
61
|
|
|
104
|
-
const redactHeaders = (headers: Record<string, string>): Record<string, string> => {
|
|
105
|
-
const redacted = redact(headers) as Record<string, string | Redacted.Redacted>
|
|
106
|
-
const result: Record<string, string> = {}
|
|
107
|
-
for (const key in redacted) {
|
|
108
|
-
const value = redacted[key]
|
|
109
|
-
InternalRecord.assignProperty(result, key, Redacted.isRedacted(value) ? value.toString() : value)
|
|
110
|
-
}
|
|
111
|
-
return result
|
|
112
|
-
}
|
|
113
|
-
|
|
114
62
|
// =============================================================================
|
|
115
63
|
// Http Request Error
|
|
116
64
|
// =============================================================================
|
|
@@ -124,6 +72,10 @@ const redactHeaders = (headers: Record<string, string>): Record<string, string>
|
|
|
124
72
|
* such as network connectivity problems, request encoding issues, or invalid
|
|
125
73
|
* URLs.
|
|
126
74
|
*
|
|
75
|
+
* When created with `NetworkError.fromHttpClientError`, `cause` holds the
|
|
76
|
+
* `HttpClientError` the request failed with. It is stored unchanged, so it
|
|
77
|
+
* carries the runtime's original error text without redaction.
|
|
78
|
+
*
|
|
127
79
|
* **Example** (Creating a network error)
|
|
128
80
|
*
|
|
129
81
|
* ```ts import.meta.vitest
|
|
@@ -131,13 +83,8 @@ const redactHeaders = (headers: Record<string, string>): Record<string, string>
|
|
|
131
83
|
*
|
|
132
84
|
* const error = new AiError.NetworkError({
|
|
133
85
|
* reason: "TransportError",
|
|
134
|
-
*
|
|
135
|
-
*
|
|
136
|
-
* url: "https://api.openai.com/v1/completions",
|
|
137
|
-
* urlParams: [],
|
|
138
|
-
* hash: undefined,
|
|
139
|
-
* headers: { "Content-Type": "application/json" }
|
|
140
|
-
* },
|
|
86
|
+
* method: "POST",
|
|
87
|
+
* url: "https://api.openai.com/v1/completions",
|
|
141
88
|
* description: "Connection timeout after 30 seconds"
|
|
142
89
|
* })
|
|
143
90
|
*
|
|
@@ -153,8 +100,10 @@ export class NetworkError extends Schema.Error<NetworkError>(
|
|
|
153
100
|
)({
|
|
154
101
|
_tag: Schema.tag("NetworkError"),
|
|
155
102
|
reason: Schema.Literals(["TransportError", "EncodeError", "InvalidUrlError"]),
|
|
156
|
-
|
|
157
|
-
|
|
103
|
+
method: Schema.String,
|
|
104
|
+
url: Schema.String,
|
|
105
|
+
description: Schema.optional(Schema.String),
|
|
106
|
+
cause: Schema.optional(Schema.Defect())
|
|
158
107
|
}) {
|
|
159
108
|
/**
|
|
160
109
|
* Marks `NetworkError` as a semantic AI error reason for runtime guards.
|
|
@@ -199,18 +148,52 @@ export class NetworkError extends Schema.Error<NetworkError>(
|
|
|
199
148
|
return new NetworkError({
|
|
200
149
|
description: error.description,
|
|
201
150
|
reason: error._tag,
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
151
|
+
method: error.request.method,
|
|
152
|
+
url: error.request.url
|
|
153
|
+
})
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
/**
|
|
157
|
+
* Creates a NetworkError from a platform HttpClientError whose reason is a
|
|
158
|
+
* request error, keeping the HttpClientError as `cause`.
|
|
159
|
+
*
|
|
160
|
+
* **Example** (Creating a network error from an HTTP client error)
|
|
161
|
+
*
|
|
162
|
+
* ```ts import.meta.vitest
|
|
163
|
+
* import { AiError } from "effect/ai"
|
|
164
|
+
* import { HttpClientError, HttpClientRequest } from "effect/http"
|
|
165
|
+
*
|
|
166
|
+
* const platformError = new HttpClientError.HttpClientError({
|
|
167
|
+
* reason: new HttpClientError.TransportError({
|
|
168
|
+
* request: HttpClientRequest.get("https://example.com/models"),
|
|
169
|
+
* description: "Connection refused"
|
|
170
|
+
* })
|
|
171
|
+
* })
|
|
172
|
+
*
|
|
173
|
+
* const aiError = AiError.NetworkError.fromHttpClientError(
|
|
174
|
+
* platformError as HttpClientError.HttpClientError & { readonly reason: HttpClientError.RequestError }
|
|
175
|
+
* )
|
|
176
|
+
* aiError.reason // => "TransportError"
|
|
177
|
+
* aiError.cause === platformError // => true
|
|
178
|
+
* ```
|
|
179
|
+
*
|
|
180
|
+
* @stability unstable
|
|
181
|
+
* @since 4.1.0
|
|
182
|
+
*/
|
|
183
|
+
static fromHttpClientError(
|
|
184
|
+
error: HttpClientError.HttpClientError & { readonly reason: HttpClientError.RequestError }
|
|
185
|
+
): NetworkError {
|
|
186
|
+
return new NetworkError({
|
|
187
|
+
description: error.reason.description,
|
|
188
|
+
reason: error.reason._tag,
|
|
189
|
+
method: error.reason.request.method,
|
|
190
|
+
url: error.reason.request.url,
|
|
191
|
+
cause: error
|
|
209
192
|
})
|
|
210
193
|
}
|
|
211
194
|
|
|
212
195
|
override get message(): string {
|
|
213
|
-
const methodAndUrl = `${this.
|
|
196
|
+
const methodAndUrl = `${this.method} ${this.url}`
|
|
214
197
|
|
|
215
198
|
let baseMessage = this.description
|
|
216
199
|
? `${this.reason}: ${this.description}`
|
|
@@ -418,15 +401,9 @@ export const UsageInfo = Schema.Struct({
|
|
|
418
401
|
*
|
|
419
402
|
* **When to use**
|
|
420
403
|
*
|
|
421
|
-
* Use to attach
|
|
422
|
-
*
|
|
423
|
-
*
|
|
424
|
-
* **Details**
|
|
425
|
-
*
|
|
426
|
-
* Includes the required request details plus optional response details and raw
|
|
427
|
-
* response body.
|
|
404
|
+
* Use to attach optional response details and optional body text to AI
|
|
405
|
+
* provider errors.
|
|
428
406
|
*
|
|
429
|
-
* @see {@link HttpRequestDetails} for captured request details
|
|
430
407
|
* @see {@link HttpResponseDetails} for captured response details
|
|
431
408
|
*
|
|
432
409
|
* @stability unstable
|
|
@@ -434,7 +411,6 @@ export const UsageInfo = Schema.Struct({
|
|
|
434
411
|
* @since 4.0.0
|
|
435
412
|
*/
|
|
436
413
|
export const HttpContext = Schema.Struct({
|
|
437
|
-
request: HttpRequestDetails,
|
|
438
414
|
response: Schema.optional(HttpResponseDetails),
|
|
439
415
|
body: Schema.optional(Schema.String)
|
|
440
416
|
}).annotate({ identifier: "HttpContext" })
|
|
@@ -849,8 +825,8 @@ export class InternalProviderError extends Schema.Error<InternalProviderError>(
|
|
|
849
825
|
* **Details**
|
|
850
826
|
*
|
|
851
827
|
* Invalid response errors are not retryable because retrying does not resolve an
|
|
852
|
-
* incompatible provider response format. Optional HTTP context can retain
|
|
853
|
-
*
|
|
828
|
+
* incompatible provider response format. Optional HTTP context can retain response
|
|
829
|
+
* details for diagnosis.
|
|
854
830
|
*
|
|
855
831
|
* @see {@link InvalidOutputError} for retryable model-generated output failures
|
|
856
832
|
* @stability unstable
|