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/BigDecimal.ts
CHANGED
|
@@ -5,6 +5,9 @@
|
|
|
5
5
|
* divide, round, and format decimal values such as money, quantities, and
|
|
6
6
|
* measurements.
|
|
7
7
|
*
|
|
8
|
+
* Parsed scales are limited to ±10,000, and operations that align scales throw
|
|
9
|
+
* a `RangeError` when the scales differ by more than 20,000.
|
|
10
|
+
*
|
|
8
11
|
* @stability stable
|
|
9
12
|
* @since 2.0.0
|
|
10
13
|
*/
|
|
@@ -21,6 +24,9 @@ import { type Pipeable, pipeArguments } from "./Pipeable.ts"
|
|
|
21
24
|
import { hasProperty } from "./Predicate.ts"
|
|
22
25
|
|
|
23
26
|
const DEFAULT_PRECISION = 100
|
|
27
|
+
const MAX_SCALE = 10_000
|
|
28
|
+
// Allows aligning values parsed at opposite bounds
|
|
29
|
+
const MAX_SCALE_ALIGNMENT = 2 * MAX_SCALE
|
|
24
30
|
const FINITE_INT_REGEXP = /^[+-]?\d+$/
|
|
25
31
|
|
|
26
32
|
const TypeId = "~effect/BigDecimal"
|
|
@@ -211,15 +217,27 @@ export const normalize = (self: BigDecimal): BigDecimal => {
|
|
|
211
217
|
self.normalized = zero
|
|
212
218
|
} else {
|
|
213
219
|
const digits = `${self.value}`
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
self.normalized = makeNormalized(BigInt(digits.slice(0, end)), self.scale - (digits.length - end))
|
|
220
|
+
const zeros = trailingZeros(digits)
|
|
221
|
+
self.normalized = makeNormalized(BigInt(digits.slice(0, digits.length - zeros)), self.scale - zeros)
|
|
217
222
|
}
|
|
218
223
|
}
|
|
219
224
|
|
|
220
225
|
return self.normalized
|
|
221
226
|
}
|
|
222
227
|
|
|
228
|
+
const trailingZeros = (digits: string): number => {
|
|
229
|
+
let end = digits.length
|
|
230
|
+
while (digits[end - 1] === "0") end--
|
|
231
|
+
return digits.length - end
|
|
232
|
+
}
|
|
233
|
+
|
|
234
|
+
const powerOfTen = (exponent: number): bigint => {
|
|
235
|
+
if (exponent > MAX_SCALE_ALIGNMENT) {
|
|
236
|
+
throw new RangeError(`Scale alignment must not exceed ${MAX_SCALE_ALIGNMENT} digits, got ${exponent}`)
|
|
237
|
+
}
|
|
238
|
+
return bigint10 ** BigInt(exponent)
|
|
239
|
+
}
|
|
240
|
+
|
|
223
241
|
/**
|
|
224
242
|
* Changes a `BigDecimal` to the specified scale.
|
|
225
243
|
*
|
|
@@ -233,6 +251,10 @@ export const normalize = (self: BigDecimal): BigDecimal => {
|
|
|
233
251
|
* digits beyond the target scale by `bigint` division, which truncates toward
|
|
234
252
|
* zero.
|
|
235
253
|
*
|
|
254
|
+
* **Gotchas**
|
|
255
|
+
*
|
|
256
|
+
* Throws a `RangeError` if the scale changes by more than 20,000.
|
|
257
|
+
*
|
|
236
258
|
* **Example** (Scaling decimal precision)
|
|
237
259
|
*
|
|
238
260
|
* ```ts import.meta.vitest
|
|
@@ -269,6 +291,10 @@ export const scale: {
|
|
|
269
291
|
* digits beyond the target scale by `bigint` division, which truncates toward
|
|
270
292
|
* zero.
|
|
271
293
|
*
|
|
294
|
+
* **Gotchas**
|
|
295
|
+
*
|
|
296
|
+
* Throws a `RangeError` if the scale changes by more than 20,000.
|
|
297
|
+
*
|
|
272
298
|
* **Example** (Scaling decimal precision)
|
|
273
299
|
*
|
|
274
300
|
* ```ts import.meta.vitest
|
|
@@ -305,6 +331,10 @@ export const scale: {
|
|
|
305
331
|
* digits beyond the target scale by `bigint` division, which truncates toward
|
|
306
332
|
* zero.
|
|
307
333
|
*
|
|
334
|
+
* **Gotchas**
|
|
335
|
+
*
|
|
336
|
+
* Throws a `RangeError` if the scale changes by more than 20,000.
|
|
337
|
+
*
|
|
308
338
|
* **Example** (Scaling decimal precision)
|
|
309
339
|
*
|
|
310
340
|
* ```ts import.meta.vitest
|
|
@@ -330,11 +360,11 @@ export const scale: {
|
|
|
330
360
|
(self: BigDecimal, scale: number): BigDecimal
|
|
331
361
|
} = dual(2, (self: BigDecimal, scale: number): BigDecimal => {
|
|
332
362
|
if (scale > self.scale) {
|
|
333
|
-
return make(self.value *
|
|
363
|
+
return make(self.value * powerOfTen(scale - self.scale), scale)
|
|
334
364
|
}
|
|
335
365
|
|
|
336
366
|
if (scale < self.scale) {
|
|
337
|
-
return make(self.value /
|
|
367
|
+
return make(self.value / powerOfTen(self.scale - scale), scale)
|
|
338
368
|
}
|
|
339
369
|
|
|
340
370
|
return self
|
|
@@ -348,6 +378,10 @@ export const scale: {
|
|
|
348
378
|
* Use when you need a decimal addition function for piping or higher-order APIs
|
|
349
379
|
* while preserving decimal precision.
|
|
350
380
|
*
|
|
381
|
+
* **Gotchas**
|
|
382
|
+
*
|
|
383
|
+
* Throws a `RangeError` if the operands' scales differ by more than 20,000.
|
|
384
|
+
*
|
|
351
385
|
* **Example** (Adding decimals)
|
|
352
386
|
*
|
|
353
387
|
* ```ts import.meta.vitest
|
|
@@ -374,6 +408,10 @@ export const sum: {
|
|
|
374
408
|
* Use when you need a decimal addition function for piping or higher-order APIs
|
|
375
409
|
* while preserving decimal precision.
|
|
376
410
|
*
|
|
411
|
+
* **Gotchas**
|
|
412
|
+
*
|
|
413
|
+
* Throws a `RangeError` if the operands' scales differ by more than 20,000.
|
|
414
|
+
*
|
|
377
415
|
* **Example** (Adding decimals)
|
|
378
416
|
*
|
|
379
417
|
* ```ts import.meta.vitest
|
|
@@ -400,6 +438,10 @@ export const sum: {
|
|
|
400
438
|
* Use when you need a decimal addition function for piping or higher-order APIs
|
|
401
439
|
* while preserving decimal precision.
|
|
402
440
|
*
|
|
441
|
+
* **Gotchas**
|
|
442
|
+
*
|
|
443
|
+
* Throws a `RangeError` if the operands' scales differ by more than 20,000.
|
|
444
|
+
*
|
|
403
445
|
* **Example** (Adding decimals)
|
|
404
446
|
*
|
|
405
447
|
* ```ts import.meta.vitest
|
|
@@ -446,6 +488,10 @@ export const sum: {
|
|
|
446
488
|
* Use when you need to aggregate decimal quantities with decimal precision
|
|
447
489
|
* instead of converting through JavaScript numbers.
|
|
448
490
|
*
|
|
491
|
+
* **Gotchas**
|
|
492
|
+
*
|
|
493
|
+
* Throws a `RangeError` if the operands' scales differ by more than 20,000.
|
|
494
|
+
*
|
|
449
495
|
* **Example** (Adding multiple decimals)
|
|
450
496
|
*
|
|
451
497
|
* ```ts import.meta.vitest
|
|
@@ -598,6 +644,10 @@ export const multiplyAll = (collection: Iterable<BigDecimal>): BigDecimal => {
|
|
|
598
644
|
*
|
|
599
645
|
* Use to subtract one `BigDecimal` value from another.
|
|
600
646
|
*
|
|
647
|
+
* **Gotchas**
|
|
648
|
+
*
|
|
649
|
+
* Throws a `RangeError` if the operands' scales differ by more than 20,000.
|
|
650
|
+
*
|
|
601
651
|
* **Example** (Subtracting decimals)
|
|
602
652
|
*
|
|
603
653
|
* ```ts import.meta.vitest
|
|
@@ -621,6 +671,10 @@ export const subtract: {
|
|
|
621
671
|
*
|
|
622
672
|
* Use to subtract one `BigDecimal` value from another.
|
|
623
673
|
*
|
|
674
|
+
* **Gotchas**
|
|
675
|
+
*
|
|
676
|
+
* Throws a `RangeError` if the operands' scales differ by more than 20,000.
|
|
677
|
+
*
|
|
624
678
|
* **Example** (Subtracting decimals)
|
|
625
679
|
*
|
|
626
680
|
* ```ts import.meta.vitest
|
|
@@ -644,6 +698,10 @@ export const subtract: {
|
|
|
644
698
|
*
|
|
645
699
|
* Use to subtract one `BigDecimal` value from another.
|
|
646
700
|
*
|
|
701
|
+
* **Gotchas**
|
|
702
|
+
*
|
|
703
|
+
* Throws a `RangeError` if the operands' scales differ by more than 20,000.
|
|
704
|
+
*
|
|
647
705
|
* **Example** (Subtracting decimals)
|
|
648
706
|
*
|
|
649
707
|
* ```ts import.meta.vitest
|
|
@@ -1818,6 +1876,10 @@ export const negate = (n: BigDecimal): BigDecimal => make(-n.value, n.scale)
|
|
|
1818
1876
|
*
|
|
1819
1877
|
* If the divisor is `0`, the result will be `Option.none()`.
|
|
1820
1878
|
*
|
|
1879
|
+
* **Gotchas**
|
|
1880
|
+
*
|
|
1881
|
+
* Throws a `RangeError` if the operands' scales differ by more than 20,000.
|
|
1882
|
+
*
|
|
1821
1883
|
* **Example** (Computing remainders safely)
|
|
1822
1884
|
*
|
|
1823
1885
|
* ```ts import.meta.vitest
|
|
@@ -1852,6 +1914,10 @@ export const remainder: {
|
|
|
1852
1914
|
*
|
|
1853
1915
|
* If the divisor is `0`, the result will be `Option.none()`.
|
|
1854
1916
|
*
|
|
1917
|
+
* **Gotchas**
|
|
1918
|
+
*
|
|
1919
|
+
* Throws a `RangeError` if the operands' scales differ by more than 20,000.
|
|
1920
|
+
*
|
|
1855
1921
|
* **Example** (Computing remainders safely)
|
|
1856
1922
|
*
|
|
1857
1923
|
* ```ts import.meta.vitest
|
|
@@ -1886,6 +1952,10 @@ export const remainder: {
|
|
|
1886
1952
|
*
|
|
1887
1953
|
* If the divisor is `0`, the result will be `Option.none()`.
|
|
1888
1954
|
*
|
|
1955
|
+
* **Gotchas**
|
|
1956
|
+
*
|
|
1957
|
+
* Throws a `RangeError` if the operands' scales differ by more than 20,000.
|
|
1958
|
+
*
|
|
1889
1959
|
* **Example** (Computing remainders safely)
|
|
1890
1960
|
*
|
|
1891
1961
|
* ```ts import.meta.vitest
|
|
@@ -1927,7 +1997,8 @@ export const remainder: {
|
|
|
1927
1997
|
*
|
|
1928
1998
|
* **Gotchas**
|
|
1929
1999
|
*
|
|
1930
|
-
* Throws a `RangeError` if the divisor is `0
|
|
2000
|
+
* Throws a `RangeError` if the divisor is `0` or the operands' scales differ by
|
|
2001
|
+
* more than 20,000.
|
|
1931
2002
|
*
|
|
1932
2003
|
* **Example** (Computing remainders unsafely)
|
|
1933
2004
|
*
|
|
@@ -1958,7 +2029,8 @@ export const remainderUnsafe: {
|
|
|
1958
2029
|
*
|
|
1959
2030
|
* **Gotchas**
|
|
1960
2031
|
*
|
|
1961
|
-
* Throws a `RangeError` if the divisor is `0
|
|
2032
|
+
* Throws a `RangeError` if the divisor is `0` or the operands' scales differ by
|
|
2033
|
+
* more than 20,000.
|
|
1962
2034
|
*
|
|
1963
2035
|
* **Example** (Computing remainders unsafely)
|
|
1964
2036
|
*
|
|
@@ -1989,7 +2061,8 @@ export const remainderUnsafe: {
|
|
|
1989
2061
|
*
|
|
1990
2062
|
* **Gotchas**
|
|
1991
2063
|
*
|
|
1992
|
-
* Throws a `RangeError` if the divisor is `0
|
|
2064
|
+
* Throws a `RangeError` if the divisor is `0` or the operands' scales differ by
|
|
2065
|
+
* more than 20,000.
|
|
1993
2066
|
*
|
|
1994
2067
|
* **Example** (Computing remainders unsafely)
|
|
1995
2068
|
*
|
|
@@ -2245,8 +2318,9 @@ export const fromNumber = (n: number): Option.Option<BigDecimal> => {
|
|
|
2245
2318
|
* **Details**
|
|
2246
2319
|
*
|
|
2247
2320
|
* Returns `Option.some` for valid decimal or exponent notation and
|
|
2248
|
-
* `Option.none` when the
|
|
2249
|
-
*
|
|
2321
|
+
* `Option.none` otherwise, including when the scale, before or after removing
|
|
2322
|
+
* trailing zeros, is outside ±10,000 (for example, more than 10,000 fractional
|
|
2323
|
+
* digits). The empty string parses as zero.
|
|
2250
2324
|
*
|
|
2251
2325
|
* **Example** (Parsing decimal strings safely)
|
|
2252
2326
|
*
|
|
@@ -2290,6 +2364,9 @@ export const fromString = (s: string): Option.Option<BigDecimal> => {
|
|
|
2290
2364
|
if (dot !== -1) {
|
|
2291
2365
|
const lead = base.slice(0, dot)
|
|
2292
2366
|
const trail = base.slice(dot + 1)
|
|
2367
|
+
if (!/^\d*$/.test(trail)) {
|
|
2368
|
+
return Option.none()
|
|
2369
|
+
}
|
|
2293
2370
|
digits = `${lead}${trail}`
|
|
2294
2371
|
offset = trail.length
|
|
2295
2372
|
} else {
|
|
@@ -2302,11 +2379,14 @@ export const fromString = (s: string): Option.Option<BigDecimal> => {
|
|
|
2302
2379
|
}
|
|
2303
2380
|
|
|
2304
2381
|
const scale = offset - exp
|
|
2305
|
-
|
|
2382
|
+
const value = BigInt(digits)
|
|
2383
|
+
// Keeps `format` output parseable
|
|
2384
|
+
const normalizedScale = value === bigint0 ? scale : scale - trailingZeros(digits)
|
|
2385
|
+
if (scale > MAX_SCALE || normalizedScale < -MAX_SCALE) {
|
|
2306
2386
|
return Option.none()
|
|
2307
2387
|
}
|
|
2308
2388
|
|
|
2309
|
-
return Option.some(make(
|
|
2389
|
+
return Option.some(make(value, scale))
|
|
2310
2390
|
}
|
|
2311
2391
|
|
|
2312
2392
|
/**
|
|
@@ -2319,8 +2399,9 @@ export const fromString = (s: string): Option.Option<BigDecimal> => {
|
|
|
2319
2399
|
*
|
|
2320
2400
|
* **Details**
|
|
2321
2401
|
*
|
|
2322
|
-
* Accepts the same syntax as `fromString`. Use `fromString`
|
|
2323
|
-
* should be represented as `Option.none` instead of
|
|
2402
|
+
* Accepts the same syntax and scale limits as `fromString`. Use `fromString`
|
|
2403
|
+
* when invalid input should be represented as `Option.none` instead of
|
|
2404
|
+
* throwing.
|
|
2324
2405
|
*
|
|
2325
2406
|
* **Example** (Parsing decimal strings unsafely)
|
|
2326
2407
|
*
|
|
@@ -2593,6 +2674,15 @@ export type RoundingMode =
|
|
|
2593
2674
|
*
|
|
2594
2675
|
* Use to round a decimal at a requested scale with an explicit rounding mode.
|
|
2595
2676
|
*
|
|
2677
|
+
* **Details**
|
|
2678
|
+
*
|
|
2679
|
+
* Values already at or below the target scale are returned unchanged.
|
|
2680
|
+
*
|
|
2681
|
+
* **Gotchas**
|
|
2682
|
+
*
|
|
2683
|
+
* Throws a `RangeError` if the value's scale exceeds the target scale by more
|
|
2684
|
+
* than 20,000.
|
|
2685
|
+
*
|
|
2596
2686
|
* **Example** (Rounding decimals)
|
|
2597
2687
|
*
|
|
2598
2688
|
* ```ts import.meta.vitest
|
|
@@ -2621,6 +2711,15 @@ export const round: {
|
|
|
2621
2711
|
*
|
|
2622
2712
|
* Use to round a decimal at a requested scale with an explicit rounding mode.
|
|
2623
2713
|
*
|
|
2714
|
+
* **Details**
|
|
2715
|
+
*
|
|
2716
|
+
* Values already at or below the target scale are returned unchanged.
|
|
2717
|
+
*
|
|
2718
|
+
* **Gotchas**
|
|
2719
|
+
*
|
|
2720
|
+
* Throws a `RangeError` if the value's scale exceeds the target scale by more
|
|
2721
|
+
* than 20,000.
|
|
2722
|
+
*
|
|
2624
2723
|
* **Example** (Rounding decimals)
|
|
2625
2724
|
*
|
|
2626
2725
|
* ```ts import.meta.vitest
|
|
@@ -2649,6 +2748,15 @@ export const round: {
|
|
|
2649
2748
|
*
|
|
2650
2749
|
* Use to round a decimal at a requested scale with an explicit rounding mode.
|
|
2651
2750
|
*
|
|
2751
|
+
* **Details**
|
|
2752
|
+
*
|
|
2753
|
+
* Values already at or below the target scale are returned unchanged.
|
|
2754
|
+
*
|
|
2755
|
+
* **Gotchas**
|
|
2756
|
+
*
|
|
2757
|
+
* Throws a `RangeError` if the value's scale exceeds the target scale by more
|
|
2758
|
+
* than 20,000.
|
|
2759
|
+
*
|
|
2652
2760
|
* **Example** (Rounding decimals)
|
|
2653
2761
|
*
|
|
2654
2762
|
* ```ts import.meta.vitest
|
|
@@ -2674,6 +2782,10 @@ export const round: {
|
|
|
2674
2782
|
const mode = options?.mode ?? "half-from-zero"
|
|
2675
2783
|
const scale = options?.scale ?? 0
|
|
2676
2784
|
|
|
2785
|
+
if (self.scale <= scale) {
|
|
2786
|
+
return self
|
|
2787
|
+
}
|
|
2788
|
+
|
|
2677
2789
|
switch (mode) {
|
|
2678
2790
|
case "ceil":
|
|
2679
2791
|
return ceil(self, scale)
|
|
@@ -2726,6 +2838,11 @@ export const round: {
|
|
|
2726
2838
|
* Use when you need to discard fractional digits beyond a scale rather than
|
|
2727
2839
|
* round half up, half down, or toward an infinity.
|
|
2728
2840
|
*
|
|
2841
|
+
* **Gotchas**
|
|
2842
|
+
*
|
|
2843
|
+
* Throws a `RangeError` if the value's scale exceeds the target scale by more
|
|
2844
|
+
* than 20,000.
|
|
2845
|
+
*
|
|
2729
2846
|
* **Example** (Truncating decimals)
|
|
2730
2847
|
*
|
|
2731
2848
|
* ```ts import.meta.vitest
|
|
@@ -2753,6 +2870,11 @@ export const truncate: {
|
|
|
2753
2870
|
* Use when you need to discard fractional digits beyond a scale rather than
|
|
2754
2871
|
* round half up, half down, or toward an infinity.
|
|
2755
2872
|
*
|
|
2873
|
+
* **Gotchas**
|
|
2874
|
+
*
|
|
2875
|
+
* Throws a `RangeError` if the value's scale exceeds the target scale by more
|
|
2876
|
+
* than 20,000.
|
|
2877
|
+
*
|
|
2756
2878
|
* **Example** (Truncating decimals)
|
|
2757
2879
|
*
|
|
2758
2880
|
* ```ts import.meta.vitest
|
|
@@ -2780,6 +2902,11 @@ export const truncate: {
|
|
|
2780
2902
|
* Use when you need to discard fractional digits beyond a scale rather than
|
|
2781
2903
|
* round half up, half down, or toward an infinity.
|
|
2782
2904
|
*
|
|
2905
|
+
* **Gotchas**
|
|
2906
|
+
*
|
|
2907
|
+
* Throws a `RangeError` if the value's scale exceeds the target scale by more
|
|
2908
|
+
* than 20,000.
|
|
2909
|
+
*
|
|
2783
2910
|
* **Example** (Truncating decimals)
|
|
2784
2911
|
*
|
|
2785
2912
|
* ```ts import.meta.vitest
|
|
@@ -2804,7 +2931,7 @@ export const truncate: {
|
|
|
2804
2931
|
}
|
|
2805
2932
|
|
|
2806
2933
|
// BigInt division truncates towards zero
|
|
2807
|
-
return make(self.value / (
|
|
2934
|
+
return make(self.value / powerOfTen(self.scale - scale), scale)
|
|
2808
2935
|
})
|
|
2809
2936
|
|
|
2810
2937
|
/**
|
|
@@ -2820,6 +2947,11 @@ export const truncate: {
|
|
|
2820
2947
|
* decimal point, and negative scales round positions to the left of the decimal
|
|
2821
2948
|
* point.
|
|
2822
2949
|
*
|
|
2950
|
+
* **Gotchas**
|
|
2951
|
+
*
|
|
2952
|
+
* Throws a `RangeError` if the value's scale exceeds the target scale by more
|
|
2953
|
+
* than 20,000.
|
|
2954
|
+
*
|
|
2823
2955
|
* @see {@link floor} for rounding toward negative infinity
|
|
2824
2956
|
* @see {@link truncate} for rounding toward zero
|
|
2825
2957
|
* @see {@link round} for configurable rounding modes
|
|
@@ -2851,6 +2983,11 @@ export const ceil: {
|
|
|
2851
2983
|
* decimal point, and negative scales round positions to the left of the decimal
|
|
2852
2984
|
* point.
|
|
2853
2985
|
*
|
|
2986
|
+
* **Gotchas**
|
|
2987
|
+
*
|
|
2988
|
+
* Throws a `RangeError` if the value's scale exceeds the target scale by more
|
|
2989
|
+
* than 20,000.
|
|
2990
|
+
*
|
|
2854
2991
|
* @see {@link floor} for rounding toward negative infinity
|
|
2855
2992
|
* @see {@link truncate} for rounding toward zero
|
|
2856
2993
|
* @see {@link round} for configurable rounding modes
|
|
@@ -2882,6 +3019,11 @@ export const ceil: {
|
|
|
2882
3019
|
* decimal point, and negative scales round positions to the left of the decimal
|
|
2883
3020
|
* point.
|
|
2884
3021
|
*
|
|
3022
|
+
* **Gotchas**
|
|
3023
|
+
*
|
|
3024
|
+
* Throws a `RangeError` if the value's scale exceeds the target scale by more
|
|
3025
|
+
* than 20,000.
|
|
3026
|
+
*
|
|
2885
3027
|
* @see {@link floor} for rounding toward negative infinity
|
|
2886
3028
|
* @see {@link truncate} for rounding toward zero
|
|
2887
3029
|
* @see {@link round} for configurable rounding modes
|
|
@@ -2939,7 +3081,7 @@ export const digitAt: {
|
|
|
2939
3081
|
return bigint0
|
|
2940
3082
|
}
|
|
2941
3083
|
|
|
2942
|
-
const scaled = self.value / (
|
|
3084
|
+
const scaled = self.value / powerOfTen(self.scale - scale)
|
|
2943
3085
|
return scaled % bigint10
|
|
2944
3086
|
})
|
|
2945
3087
|
|
|
@@ -2950,6 +3092,11 @@ export const digitAt: {
|
|
|
2950
3092
|
*
|
|
2951
3093
|
* Use to round a decimal toward negative infinity at a requested scale.
|
|
2952
3094
|
*
|
|
3095
|
+
* **Gotchas**
|
|
3096
|
+
*
|
|
3097
|
+
* Throws a `RangeError` if the value's scale exceeds the target scale by more
|
|
3098
|
+
* than 20,000.
|
|
3099
|
+
*
|
|
2953
3100
|
* **Example** (Rounding decimals down)
|
|
2954
3101
|
*
|
|
2955
3102
|
* ```ts import.meta.vitest
|
|
@@ -2975,6 +3122,11 @@ export const floor: {
|
|
|
2975
3122
|
*
|
|
2976
3123
|
* Use to round a decimal toward negative infinity at a requested scale.
|
|
2977
3124
|
*
|
|
3125
|
+
* **Gotchas**
|
|
3126
|
+
*
|
|
3127
|
+
* Throws a `RangeError` if the value's scale exceeds the target scale by more
|
|
3128
|
+
* than 20,000.
|
|
3129
|
+
*
|
|
2978
3130
|
* **Example** (Rounding decimals down)
|
|
2979
3131
|
*
|
|
2980
3132
|
* ```ts import.meta.vitest
|
|
@@ -3000,6 +3152,11 @@ export const floor: {
|
|
|
3000
3152
|
*
|
|
3001
3153
|
* Use to round a decimal toward negative infinity at a requested scale.
|
|
3002
3154
|
*
|
|
3155
|
+
* **Gotchas**
|
|
3156
|
+
*
|
|
3157
|
+
* Throws a `RangeError` if the value's scale exceeds the target scale by more
|
|
3158
|
+
* than 20,000.
|
|
3159
|
+
*
|
|
3003
3160
|
* **Example** (Rounding decimals down)
|
|
3004
3161
|
*
|
|
3005
3162
|
* ```ts import.meta.vitest
|
package/src/Channel.ts
CHANGED
|
@@ -22,7 +22,7 @@ import type * as Filter from "./Filter.ts"
|
|
|
22
22
|
import type { LazyArg } from "./Function.ts"
|
|
23
23
|
import { constant, constTrue, constVoid, dual, identity as identity_ } from "./Function.ts"
|
|
24
24
|
import * as Count from "./internal/count.ts"
|
|
25
|
-
import { ClockRef, endSpan, findRecoverableError } from "./internal/effect.ts"
|
|
25
|
+
import { ClockRef, endSpan, findRecoverableError, ignoreCauseLogger } from "./internal/effect.ts"
|
|
26
26
|
import { addSpanStackTrace } from "./internal/tracer.ts"
|
|
27
27
|
import * as Iterable from "./Iterable.ts"
|
|
28
28
|
import * as Latch from "./Latch.ts"
|
|
@@ -8095,6 +8095,9 @@ export const orDie = <
|
|
|
8095
8095
|
* **Details**
|
|
8096
8096
|
*
|
|
8097
8097
|
* Use the `log` option to emit the full {@link Cause} when the channel fails.
|
|
8098
|
+
* Set `log: "Unhandled"` to read `References.UnhandledLogLevel` when the
|
|
8099
|
+
* failure occurs; `undefined` disables logging. Minimum log level filtering
|
|
8100
|
+
* still applies.
|
|
8098
8101
|
*
|
|
8099
8102
|
* **Gotchas**
|
|
8100
8103
|
*
|
|
@@ -8109,14 +8112,14 @@ export const orDie = <
|
|
|
8109
8112
|
*/
|
|
8110
8113
|
export const ignore: <
|
|
8111
8114
|
Arg extends Channel<any, any, any, any, any, any, any> | {
|
|
8112
|
-
readonly log?: boolean | Severity | undefined
|
|
8115
|
+
readonly log?: boolean | Severity | "Unhandled" | undefined
|
|
8113
8116
|
} | undefined = {
|
|
8114
|
-
readonly log?: boolean | Severity | undefined
|
|
8117
|
+
readonly log?: boolean | Severity | "Unhandled" | undefined
|
|
8115
8118
|
}
|
|
8116
8119
|
>(
|
|
8117
8120
|
selfOrOptions: Arg,
|
|
8118
8121
|
options?: {
|
|
8119
|
-
readonly log?: boolean | Severity | undefined
|
|
8122
|
+
readonly log?: boolean | Severity | "Unhandled" | undefined
|
|
8120
8123
|
} | undefined
|
|
8121
8124
|
) => [Arg] extends
|
|
8122
8125
|
[Channel<infer OutElem, infer _OutErr, infer OutDone, infer InElem, infer InErr, infer InDone, infer Env>]
|
|
@@ -8128,13 +8131,13 @@ export const ignore: <
|
|
|
8128
8131
|
<OutElem, OutErr, OutDone, InElem, InErr, InDone, Env>(
|
|
8129
8132
|
self: Channel<OutElem, OutErr, OutDone, InElem, InErr, InDone, Env>,
|
|
8130
8133
|
options?: {
|
|
8131
|
-
readonly log?: boolean | Severity | undefined
|
|
8134
|
+
readonly log?: boolean | Severity | "Unhandled" | undefined
|
|
8132
8135
|
} | undefined
|
|
8133
8136
|
): Channel<OutElem, never, OutDone | void, InElem, InErr, InDone, Env> => {
|
|
8134
8137
|
if (!options?.log) {
|
|
8135
8138
|
return catch_(self, () => empty)
|
|
8136
8139
|
}
|
|
8137
|
-
const logEffect =
|
|
8140
|
+
const logEffect = ignoreCauseLogger(options.log)
|
|
8138
8141
|
return catch_(
|
|
8139
8142
|
tapCause(self, (cause) => Cause.hasFails(cause) ? logEffect(cause) : Effect.void),
|
|
8140
8143
|
() => empty
|
|
@@ -8165,6 +8168,9 @@ const ignoreCause_ = <
|
|
|
8165
8168
|
* **Details**
|
|
8166
8169
|
*
|
|
8167
8170
|
* Use the `log` option to emit the full {@link Cause} when the channel fails.
|
|
8171
|
+
* Set `log: "Unhandled"` to read `References.UnhandledLogLevel` when the
|
|
8172
|
+
* failure occurs; `undefined` disables logging. Minimum log level filtering
|
|
8173
|
+
* still applies.
|
|
8168
8174
|
*
|
|
8169
8175
|
* @stability stable
|
|
8170
8176
|
* @category error handling
|
|
@@ -8172,14 +8178,14 @@ const ignoreCause_ = <
|
|
|
8172
8178
|
*/
|
|
8173
8179
|
export const ignoreCause: <
|
|
8174
8180
|
Arg extends Channel<any, any, any, any, any, any, any> | {
|
|
8175
|
-
readonly log?: boolean | Severity | undefined
|
|
8181
|
+
readonly log?: boolean | Severity | "Unhandled" | undefined
|
|
8176
8182
|
} | undefined = {
|
|
8177
|
-
readonly log?: boolean | Severity | undefined
|
|
8183
|
+
readonly log?: boolean | Severity | "Unhandled" | undefined
|
|
8178
8184
|
}
|
|
8179
8185
|
>(
|
|
8180
8186
|
selfOrOptions: Arg,
|
|
8181
8187
|
options?: {
|
|
8182
|
-
readonly log?: boolean | Severity | undefined
|
|
8188
|
+
readonly log?: boolean | Severity | "Unhandled" | undefined
|
|
8183
8189
|
} | undefined
|
|
8184
8190
|
) => [Arg] extends
|
|
8185
8191
|
[Channel<infer OutElem, infer _OutErr, infer OutDone, infer InElem, infer InErr, infer InDone, infer Env>]
|
|
@@ -8190,10 +8196,10 @@ export const ignoreCause: <
|
|
|
8190
8196
|
(args) => isChannel(args[0]),
|
|
8191
8197
|
<OutElem, OutErr, OutDone, InElem, InErr, InDone, Env>(
|
|
8192
8198
|
self: Channel<OutElem, OutErr, OutDone, InElem, InErr, InDone, Env>,
|
|
8193
|
-
options?: { readonly log?: boolean | Severity | undefined } | undefined
|
|
8199
|
+
options?: { readonly log?: boolean | Severity | "Unhandled" | undefined } | undefined
|
|
8194
8200
|
): Channel<OutElem, never, OutDone | void, InElem, InErr, InDone, Env> => {
|
|
8195
8201
|
if (!options?.log) return ignoreCause_(self)
|
|
8196
|
-
const logEffect =
|
|
8202
|
+
const logEffect = ignoreCauseLogger(options.log)
|
|
8197
8203
|
return ignoreCause_(tapCause(self, (cause) => logEffect(cause)))
|
|
8198
8204
|
}
|
|
8199
8205
|
)
|
package/src/Config.ts
CHANGED
|
@@ -1280,6 +1280,8 @@ interface ArrayOptions {
|
|
|
1280
1280
|
interface RecordOptions {
|
|
1281
1281
|
readonly separator?: string | undefined
|
|
1282
1282
|
readonly keyValueSeparator?: string | undefined
|
|
1283
|
+
readonly trim?: boolean | undefined
|
|
1284
|
+
readonly keepEmptyValues?: boolean | undefined
|
|
1283
1285
|
}
|
|
1284
1286
|
|
|
1285
1287
|
const isPath = (u: unknown): u is string | Path => Predicate.isString(u) || globalThis.Array.isArray(u)
|
|
@@ -1588,7 +1590,11 @@ export function Array<V extends Schema.ConstraintCodec<unknown, unknown>>(
|
|
|
1588
1590
|
*
|
|
1589
1591
|
* Pass a string or `ConfigProvider.Path` as the third argument to set the lookup
|
|
1590
1592
|
* path. When no path is needed, pass the options object directly. The `separator`
|
|
1591
|
-
* defaults to `","` and `keyValueSeparator` defaults to `"="`.
|
|
1593
|
+
* defaults to `","` and `keyValueSeparator` defaults to `"="`. For string input,
|
|
1594
|
+
* set `trim: true` to trim keys and values before entries with an empty key are
|
|
1595
|
+
* skipped, and `keepEmptyValues: true` to keep entries with an empty value as
|
|
1596
|
+
* `""` instead of skipping them. Entries without a `keyValueSeparator` are
|
|
1597
|
+
* always skipped.
|
|
1592
1598
|
*
|
|
1593
1599
|
* **Example** (Reading a comma-separated record)
|
|
1594
1600
|
*
|
package/src/Context.ts
CHANGED
|
@@ -642,6 +642,7 @@ interface ContextImpl<in Services> extends Context<Services> {
|
|
|
642
642
|
overlay: Overlay | undefined
|
|
643
643
|
depth: number
|
|
644
644
|
_flat: ReadonlyMap<string, any> | undefined
|
|
645
|
+
maxDepth: number
|
|
645
646
|
}
|
|
646
647
|
|
|
647
648
|
interface Overlay {
|
|
@@ -650,7 +651,6 @@ interface Overlay {
|
|
|
650
651
|
readonly parent: Overlay | undefined
|
|
651
652
|
}
|
|
652
653
|
|
|
653
|
-
const MaxDepth = 8
|
|
654
654
|
// Keep small bases cheap to read; larger bases are worth copying only after
|
|
655
655
|
// enough fall-throughs to amortize the copy.
|
|
656
656
|
const FlattenAfterBaseHits = 8
|
|
@@ -659,7 +659,8 @@ const makeImpl = <Services>(
|
|
|
659
659
|
cacheRoot: ContextImpl<any> | undefined,
|
|
660
660
|
base: ReadonlyMap<string, any>,
|
|
661
661
|
overlay: Overlay | undefined,
|
|
662
|
-
depth: number
|
|
662
|
+
depth: number,
|
|
663
|
+
maxDepth: number
|
|
663
664
|
): ContextImpl<Services> => {
|
|
664
665
|
const self: ContextImpl<Services> = Object.create(Proto)
|
|
665
666
|
self.cacheRoot = cacheRoot ?? self
|
|
@@ -668,6 +669,7 @@ const makeImpl = <Services>(
|
|
|
668
669
|
self.depth = depth
|
|
669
670
|
self._flat = undefined
|
|
670
671
|
self.baseHits = 0
|
|
672
|
+
self.maxDepth = maxDepth
|
|
671
673
|
return self
|
|
672
674
|
}
|
|
673
675
|
|
|
@@ -688,7 +690,7 @@ const flatten = (self: ContextImpl<any>): ReadonlyMap<string, any> => {
|
|
|
688
690
|
const withFlat = <B>(self: Context<any>, f: (map: Map<string, any>) => void): Context<B> => {
|
|
689
691
|
const map = new Map(self.mapUnsafe)
|
|
690
692
|
f(map)
|
|
691
|
-
return
|
|
693
|
+
return makeImpl(undefined, map, undefined, 0, (self as ContextImpl<any>).maxDepth)
|
|
692
694
|
}
|
|
693
695
|
|
|
694
696
|
// A private symbol so user code cannot forge a value that reads as absent
|
|
@@ -720,8 +722,23 @@ const lookup = (self: Context<any>, key: string): unknown => {
|
|
|
720
722
|
* Use when constructing a low-level `Context` from a trusted map whose lifecycle
|
|
721
723
|
* you control.
|
|
722
724
|
*
|
|
725
|
+
* **Details**
|
|
726
|
+
*
|
|
727
|
+
* `options.maxDepth` sets how many `add` calls are kept as overlays before the
|
|
728
|
+
* context is rebased into a flat map (default `8`). Lower values make lookups
|
|
729
|
+
* cheaper, higher values make additions to a large base cheaper. Invalid
|
|
730
|
+
* values fall back to the default.
|
|
731
|
+
*
|
|
732
|
+
* Contexts derived with `add`, `pick`, `omit`, and `merge` keep the setting
|
|
733
|
+
* (`merge` from its first non-empty argument). `make`, `empty`, and `mergeAll`
|
|
734
|
+
* use the default. Layers are combined with `mergeAll`, so apply it to the
|
|
735
|
+
* final context rather than inside a layer.
|
|
736
|
+
*
|
|
723
737
|
* **Gotchas**
|
|
724
738
|
*
|
|
739
|
+
* Excessively large `maxDepth` values can cause stack overflow when overlays
|
|
740
|
+
* are materialized or rebased. Choose a modest value.
|
|
741
|
+
*
|
|
725
742
|
* The provided map is retained without copying and must not be mutated after
|
|
726
743
|
* construction. Prefer `empty`, `make`, `add`, or `merge` for normal Context
|
|
727
744
|
* construction.
|
|
@@ -744,12 +761,18 @@ const lookup = (self: Context<any>, key: string): unknown => {
|
|
|
744
761
|
* @category constructors
|
|
745
762
|
* @since 4.0.0
|
|
746
763
|
*/
|
|
747
|
-
export const makeUnsafe = <Services = never>(
|
|
748
|
-
|
|
764
|
+
export const makeUnsafe = <Services = never>(
|
|
765
|
+
mapUnsafe: ReadonlyMap<string, any>,
|
|
766
|
+
options?: { readonly maxDepth?: number }
|
|
767
|
+
): Context<Services> => {
|
|
768
|
+
const maxDepth = options?.maxDepth
|
|
769
|
+
// NaN or Infinity would never trigger a rebase, so fall back to the default
|
|
770
|
+
return makeImpl(undefined, mapUnsafe, undefined, 0, Number.isInteger(maxDepth) && maxDepth! >= 0 ? maxDepth! : 8)
|
|
771
|
+
}
|
|
749
772
|
|
|
750
773
|
const Proto: Omit<
|
|
751
774
|
ContextImpl<never>,
|
|
752
|
-
"cacheRoot" | "base" | "overlay" | "depth" | "_flat" | "baseHits"
|
|
775
|
+
"cacheRoot" | "base" | "overlay" | "depth" | "_flat" | "baseHits" | "maxDepth"
|
|
753
776
|
> = {
|
|
754
777
|
get mapUnsafe() {
|
|
755
778
|
return flatten(this as any as ContextImpl<any>)
|
|
@@ -1032,19 +1055,20 @@ export const addUnsafe = <Services, I, S>(
|
|
|
1032
1055
|
): Context<Services | I> => {
|
|
1033
1056
|
const impl = self as ContextImpl<Services>
|
|
1034
1057
|
const cacheRoot = cacheKeys.has(key) ? undefined : impl.cacheRoot
|
|
1035
|
-
if (impl.depth >=
|
|
1058
|
+
if (impl.depth >= impl.maxDepth) {
|
|
1036
1059
|
// Avoid mapUnsafe: it would flatten the parent before copying.
|
|
1037
1060
|
const map = new Map(impl._flat ?? impl.base)
|
|
1038
1061
|
if (!impl._flat) applyOverlays(map, impl.overlay)
|
|
1039
1062
|
map.set(key, service)
|
|
1040
|
-
return makeImpl(cacheRoot, map, undefined, 0)
|
|
1063
|
+
return makeImpl(cacheRoot, map, undefined, 0, impl.maxDepth)
|
|
1041
1064
|
}
|
|
1042
1065
|
|
|
1043
1066
|
return makeImpl(
|
|
1044
1067
|
cacheRoot,
|
|
1045
1068
|
impl.base,
|
|
1046
1069
|
{ key, value: service, parent: impl.overlay },
|
|
1047
|
-
impl.depth + 1
|
|
1070
|
+
impl.depth + 1,
|
|
1071
|
+
impl.maxDepth
|
|
1048
1072
|
)
|
|
1049
1073
|
}
|
|
1050
1074
|
|
|
@@ -1993,7 +2017,7 @@ export const pick = <S extends ReadonlyArray<Key<any, any>>>(
|
|
|
1993
2017
|
const value = lookup(self, key)
|
|
1994
2018
|
if (value !== notFound) map.set(key, value)
|
|
1995
2019
|
}
|
|
1996
|
-
return
|
|
2020
|
+
return makeImpl(undefined, map, undefined, 0, (self as ContextImpl<any>).maxDepth)
|
|
1997
2021
|
}
|
|
1998
2022
|
const keep = new Set(services.map((key) => key.key))
|
|
1999
2023
|
return withFlat(self, (map) =>
|