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/Equal.ts
CHANGED
|
@@ -398,8 +398,8 @@ export function makeCompareSet<A>(equivalence: Equivalence<A>) {
|
|
|
398
398
|
* **Details**
|
|
399
399
|
*
|
|
400
400
|
* - Pure function, no side effects.
|
|
401
|
-
* - Returns `true` if and only if `u` has a
|
|
402
|
-
*
|
|
401
|
+
* - Returns `true` if and only if `u` has a function keyed by {@link symbol}.
|
|
402
|
+
* Data that merely carries the key, such as parsed JSON, is not `Equal`.
|
|
403
403
|
* - Acts as a TypeScript type guard, narrowing the input to {@link Equal}.
|
|
404
404
|
*
|
|
405
405
|
* **Example** (Checking Equal values)
|
|
@@ -428,7 +428,7 @@ export function makeCompareSet<A>(equivalence: Equivalence<A>) {
|
|
|
428
428
|
* @category guards
|
|
429
429
|
* @since 2.0.0
|
|
430
430
|
*/
|
|
431
|
-
export const isEqual = (u: unknown): u is Equal => hasProperty(u, symbol)
|
|
431
|
+
export const isEqual = (u: unknown): u is Equal => hasProperty(u, symbol) && typeof u[symbol] === "function"
|
|
432
432
|
|
|
433
433
|
/**
|
|
434
434
|
* Wraps {@link equals} as an `Equivalence<A>`.
|
package/src/FileSystem.ts
CHANGED
|
@@ -17,6 +17,7 @@ import * as Cause from "./Cause.ts"
|
|
|
17
17
|
import * as Context from "./Context.ts"
|
|
18
18
|
import * as Effect from "./Effect.ts"
|
|
19
19
|
import { pipe } from "./Function.ts"
|
|
20
|
+
import * as Glob from "./internal/glob.ts"
|
|
20
21
|
import * as Layer from "./Layer.ts"
|
|
21
22
|
import * as Option from "./Option.ts"
|
|
22
23
|
import { badArgument, type PlatformError, systemError } from "./PlatformError.ts"
|
|
@@ -130,13 +131,36 @@ export interface FileSystem {
|
|
|
130
131
|
gid: number
|
|
131
132
|
) => Effect.Effect<void, PlatformError>
|
|
132
133
|
/**
|
|
133
|
-
*
|
|
134
|
+
* Finds paths under `root` that match a glob pattern.
|
|
135
|
+
*
|
|
136
|
+
* **Details**
|
|
137
|
+
*
|
|
138
|
+
* Patterns follow `Glob.make`: wildcards skip names that start with `.`
|
|
139
|
+
* unless the pattern segment starts with `.` or `dot` is `true`, and
|
|
140
|
+
* `dir/**` includes `dir` itself. Results are `/`-separated paths relative
|
|
141
|
+
* to `root` (or absolute for an absolute pattern), visited depth-first with
|
|
142
|
+
* each directory's entries sorted by name. `**` does not traverse symbolic
|
|
143
|
+
* links to directories, but a link named by another segment is followed.
|
|
144
|
+
* Paths that match an `exclude` pattern are dropped, and excluded
|
|
145
|
+
* directories are not read. Entries whose type cannot be determined, such
|
|
146
|
+
* as broken links, are treated as files.
|
|
147
|
+
*
|
|
148
|
+
* Read failures at the root or a leading literal directory propagate. Missing
|
|
149
|
+
* paths return an empty result; unreadable wildcard-reached directories are
|
|
150
|
+
* skipped.
|
|
151
|
+
*
|
|
152
|
+
* **Gotchas**
|
|
153
|
+
*
|
|
154
|
+
* Wildcard matching is case-sensitive. Leading literal segments use `stat`,
|
|
155
|
+
* so their case sensitivity follows the file system and results retain the
|
|
156
|
+
* pattern's spelling.
|
|
134
157
|
*/
|
|
135
158
|
readonly glob: (
|
|
136
159
|
pattern: string,
|
|
137
160
|
options?: {
|
|
138
161
|
readonly root?: string | undefined
|
|
139
162
|
readonly exclude?: ReadonlyArray<string> | undefined
|
|
163
|
+
readonly dot?: boolean | undefined
|
|
140
164
|
}
|
|
141
165
|
) => Effect.Effect<Array<string>, PlatformError>
|
|
142
166
|
/**
|
|
@@ -254,6 +278,22 @@ export interface FileSystem {
|
|
|
254
278
|
readonly recursive?: boolean | undefined
|
|
255
279
|
}
|
|
256
280
|
) => Effect.Effect<Array<string>, PlatformError>
|
|
281
|
+
/**
|
|
282
|
+
* Lists a directory with the type of each entry.
|
|
283
|
+
*
|
|
284
|
+
* **Details**
|
|
285
|
+
*
|
|
286
|
+
* Returns the same bare names as `readDirectory(path)`, excluding `.` and
|
|
287
|
+
* `..`, in no particular order. Types describe entries, not symlink targets.
|
|
288
|
+
* `"Unknown"` is allowed when the listing cannot determine the type, and
|
|
289
|
+
* `glob` then falls back to `stat`.
|
|
290
|
+
*
|
|
291
|
+
* **Gotchas**
|
|
292
|
+
*
|
|
293
|
+
* Wrappers that change `readDirectory`, such as by prefixing paths, must
|
|
294
|
+
* apply the same change here for `glob` to list the correct directory.
|
|
295
|
+
*/
|
|
296
|
+
readonly readDirectoryEntries: (path: string) => Effect.Effect<ReadonlyArray<DirectoryEntry>, PlatformError>
|
|
257
297
|
/**
|
|
258
298
|
* Read the contents of a file.
|
|
259
299
|
*/
|
|
@@ -485,6 +525,21 @@ export type OpenFlag =
|
|
|
485
525
|
*/
|
|
486
526
|
export const FileSystem: Context.Service<FileSystem, FileSystem> = Context.Service("effect/FileSystem")
|
|
487
527
|
|
|
528
|
+
/**
|
|
529
|
+
* A directory entry with its type, independent of any symlink target.
|
|
530
|
+
* `"Unknown"` means the listing could not determine the type.
|
|
531
|
+
*
|
|
532
|
+
* @see {@link FileSystem} `readDirectoryEntries`, which returns these entries
|
|
533
|
+
*
|
|
534
|
+
* @stability unstable
|
|
535
|
+
* @category models
|
|
536
|
+
* @since 4.0.0
|
|
537
|
+
*/
|
|
538
|
+
export interface DirectoryEntry {
|
|
539
|
+
readonly name: string
|
|
540
|
+
readonly type: File.Type
|
|
541
|
+
}
|
|
542
|
+
|
|
488
543
|
/**
|
|
489
544
|
* Creates a FileSystem implementation from a partial implementation.
|
|
490
545
|
*
|
|
@@ -497,8 +552,10 @@ export const FileSystem: Context.Service<FileSystem, FileSystem> = Context.Servi
|
|
|
497
552
|
* **Details**
|
|
498
553
|
*
|
|
499
554
|
* This function takes a partial FileSystem implementation and automatically provides
|
|
500
|
-
* default implementations for `exists`, `readFileString`, `stream`, `sink`,
|
|
501
|
-
* `writeFileString` methods based on the provided core methods.
|
|
555
|
+
* default implementations for `exists`, `glob`, `readFileString`, `stream`, `sink`,
|
|
556
|
+
* and `writeFileString` methods based on the provided core methods. `glob` walks
|
|
557
|
+
* the tree with `readDirectoryEntries`, using `stat` and `readLink` for entries
|
|
558
|
+
* whose type is `"Unknown"`.
|
|
502
559
|
*
|
|
503
560
|
* @see {@link makeNoop} for a testing stub that accepts method overrides without requiring a complete implementation
|
|
504
561
|
* @see {@link layerNoop} for providing a no-op `FileSystem` as a `Layer` in tests
|
|
@@ -508,11 +565,12 @@ export const FileSystem: Context.Service<FileSystem, FileSystem> = Context.Servi
|
|
|
508
565
|
* @since 4.0.0
|
|
509
566
|
*/
|
|
510
567
|
export const make = (
|
|
511
|
-
impl: Omit<FileSystem, typeof TypeId | "exists" | "readFileString" | "stream" | "sink" | "writeFileString">
|
|
568
|
+
impl: Omit<FileSystem, typeof TypeId | "exists" | "glob" | "readFileString" | "stream" | "sink" | "writeFileString">
|
|
512
569
|
): FileSystem =>
|
|
513
570
|
FileSystem.of({
|
|
514
571
|
...impl,
|
|
515
572
|
[TypeId]: TypeId,
|
|
573
|
+
glob: Glob.make(impl),
|
|
516
574
|
exists: (path) =>
|
|
517
575
|
pipe(
|
|
518
576
|
impl.access(path),
|
|
@@ -702,6 +760,9 @@ export const makeNoop = (fileSystem: Partial<FileSystem>): FileSystem =>
|
|
|
702
760
|
readDirectory(path) {
|
|
703
761
|
return Effect.fail(notFound("readDirectory", path))
|
|
704
762
|
},
|
|
763
|
+
readDirectoryEntries(path) {
|
|
764
|
+
return Effect.fail(notFound("readDirectoryEntries", path))
|
|
765
|
+
},
|
|
705
766
|
readFile(path) {
|
|
706
767
|
return Effect.fail(notFound("readFile", path))
|
|
707
768
|
},
|
package/src/Glob.ts
ADDED
|
@@ -0,0 +1,205 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Matches `/`-separated paths without accessing the file system, using the
|
|
3
|
+
* same pattern syntax as `FileSystem.glob`.
|
|
4
|
+
*
|
|
5
|
+
* @stability experimental
|
|
6
|
+
* @since 4.0.0
|
|
7
|
+
*/
|
|
8
|
+
import { format } from "./Formatter.ts"
|
|
9
|
+
import { dual } from "./Function.ts"
|
|
10
|
+
import { type Inspectable, NodeInspectSymbol } from "./Inspectable.ts"
|
|
11
|
+
import * as internal from "./internal/glob.ts"
|
|
12
|
+
import { type Pipeable, pipeArguments } from "./Pipeable.ts"
|
|
13
|
+
|
|
14
|
+
const TypeId = "~effect/Glob"
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* A compiled glob pattern.
|
|
18
|
+
*
|
|
19
|
+
* **Details**
|
|
20
|
+
*
|
|
21
|
+
* `pattern` is the source text and `dot` records whether wildcards match names
|
|
22
|
+
* that start with `.`. Match paths against it with {@link match}.
|
|
23
|
+
*
|
|
24
|
+
* @see {@link make} for compiling a pattern
|
|
25
|
+
*
|
|
26
|
+
* @stability experimental
|
|
27
|
+
* @category models
|
|
28
|
+
* @since 4.0.0
|
|
29
|
+
*/
|
|
30
|
+
export interface Glob extends Pipeable, Inspectable {
|
|
31
|
+
readonly [TypeId]: typeof TypeId
|
|
32
|
+
readonly pattern: string
|
|
33
|
+
readonly dot: boolean
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
interface GlobImpl extends Glob {
|
|
37
|
+
readonly compiled: internal.Compiled
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
const GlobProto = {
|
|
41
|
+
[TypeId]: TypeId,
|
|
42
|
+
toJSON(this: Glob) {
|
|
43
|
+
return { _id: "Glob", pattern: this.pattern, dot: this.dot }
|
|
44
|
+
},
|
|
45
|
+
toString(this: Glob) {
|
|
46
|
+
return `Glob(${format(this.toJSON())})`
|
|
47
|
+
},
|
|
48
|
+
[NodeInspectSymbol](this: Glob) {
|
|
49
|
+
return this.toJSON()
|
|
50
|
+
},
|
|
51
|
+
pipe() {
|
|
52
|
+
return pipeArguments(this, arguments)
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
/**
|
|
57
|
+
* Compiles a glob pattern into a reusable `Glob`.
|
|
58
|
+
*
|
|
59
|
+
* **Details**
|
|
60
|
+
*
|
|
61
|
+
* Patterns use `/` as the separator. `*` matches any run of characters within
|
|
62
|
+
* one path segment, `?` matches one character, and `[...]` matches one
|
|
63
|
+
* character from a set, with `!` or `^` negating it and POSIX classes such as
|
|
64
|
+
* `[[:digit:]]` allowed. `{a,b}` expands to each alternative and may nest. A
|
|
65
|
+
* segment that is exactly `**` matches zero or more whole segments. A trailing
|
|
66
|
+
* `/` matches only directories, and `\` makes the next character literal.
|
|
67
|
+
*
|
|
68
|
+
* **Gotchas**
|
|
69
|
+
*
|
|
70
|
+
* Wildcards and `**` skip names that start with `.` unless the pattern segment
|
|
71
|
+
* itself starts with `.` or `dot` is `true`; they never match `.` or `..`.
|
|
72
|
+
* `x/.` is the same as `x/`, and a `.` or `..` segment after `**` makes the
|
|
73
|
+
* pattern match nothing, as does the empty pattern. UNC patterns and paths
|
|
74
|
+
* such as `//server/share` are not supported and never match. Braces and
|
|
75
|
+
* commas inside `[...]` are class members. Extended glob syntax and leading
|
|
76
|
+
* `!` negation are not interpreted, but ordinary wildcards still apply within
|
|
77
|
+
* them (for example, `?(a)` matches `x(a)`). Malformed syntax, such as an
|
|
78
|
+
* unclosed `[`, matches literally. Braces also stay literal if expansion would
|
|
79
|
+
* exceed 10,000 alternatives.
|
|
80
|
+
*
|
|
81
|
+
* **Example** (Matching source files)
|
|
82
|
+
*
|
|
83
|
+
* ```ts import.meta.vitest
|
|
84
|
+
* import { Glob } from "effect"
|
|
85
|
+
*
|
|
86
|
+
* const sources = Glob.make("src/**\/*.{ts,tsx}")
|
|
87
|
+
*
|
|
88
|
+
* Glob.match(sources, "src/index.ts") // => true
|
|
89
|
+
* Glob.match(sources, "src/ui/Button.tsx") // => true
|
|
90
|
+
* Glob.match(sources, "src/.cache/index.ts") // => false
|
|
91
|
+
* Glob.match(sources, "test/index.ts") // => false
|
|
92
|
+
* ```
|
|
93
|
+
*
|
|
94
|
+
* @stability experimental
|
|
95
|
+
* @category constructors
|
|
96
|
+
* @since 4.0.0
|
|
97
|
+
*/
|
|
98
|
+
export const make = (pattern: string, options?: {
|
|
99
|
+
/** Whether wildcards and `**` match names that start with `.`. */
|
|
100
|
+
readonly dot?: boolean | undefined
|
|
101
|
+
}): Glob => {
|
|
102
|
+
const dot = options?.dot ?? false
|
|
103
|
+
const self = Object.create(GlobProto)
|
|
104
|
+
self.pattern = pattern
|
|
105
|
+
self.dot = dot
|
|
106
|
+
self.compiled = internal.compile([pattern], dot)
|
|
107
|
+
return self
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
/**
|
|
111
|
+
* Tests whether a `/`-separated path matches a `Glob`.
|
|
112
|
+
*
|
|
113
|
+
* **Details**
|
|
114
|
+
*
|
|
115
|
+
* Empty segments and `./` segments in the path are ignored. A trailing `/`
|
|
116
|
+
* marks the path as a directory, which a pattern ending in `/` requires.
|
|
117
|
+
*
|
|
118
|
+
* **Example** (Filtering paths)
|
|
119
|
+
*
|
|
120
|
+
* ```ts import.meta.vitest
|
|
121
|
+
* import { Glob, pipe } from "effect"
|
|
122
|
+
*
|
|
123
|
+
* const tests = Glob.make("**\/*.test.ts")
|
|
124
|
+
* const paths = ["src/a.ts", "src/a.test.ts", "test/b.test.ts"]
|
|
125
|
+
*
|
|
126
|
+
* paths.filter((path) => Glob.match(tests, path)) // => ["src/a.test.ts", "test/b.test.ts"]
|
|
127
|
+
* pipe(tests, Glob.match("./src/a.test.ts")) // => true
|
|
128
|
+
* ```
|
|
129
|
+
*
|
|
130
|
+
* @stability experimental
|
|
131
|
+
* @category predicates
|
|
132
|
+
* @since 4.0.0
|
|
133
|
+
*/
|
|
134
|
+
export const match: {
|
|
135
|
+
/**
|
|
136
|
+
* Tests whether a `/`-separated path matches a `Glob`.
|
|
137
|
+
*
|
|
138
|
+
* **Details**
|
|
139
|
+
*
|
|
140
|
+
* Empty segments and `./` segments in the path are ignored. A trailing `/`
|
|
141
|
+
* marks the path as a directory, which a pattern ending in `/` requires.
|
|
142
|
+
*
|
|
143
|
+
* **Example** (Filtering paths)
|
|
144
|
+
*
|
|
145
|
+
* ```ts import.meta.vitest
|
|
146
|
+
* import { Glob, pipe } from "effect"
|
|
147
|
+
*
|
|
148
|
+
* const tests = Glob.make("**\/*.test.ts")
|
|
149
|
+
* const paths = ["src/a.ts", "src/a.test.ts", "test/b.test.ts"]
|
|
150
|
+
*
|
|
151
|
+
* paths.filter((path) => Glob.match(tests, path)) // => ["src/a.test.ts", "test/b.test.ts"]
|
|
152
|
+
* pipe(tests, Glob.match("./src/a.test.ts")) // => true
|
|
153
|
+
* ```
|
|
154
|
+
*
|
|
155
|
+
* @stability experimental
|
|
156
|
+
* @category predicates
|
|
157
|
+
* @since 4.0.0
|
|
158
|
+
*/
|
|
159
|
+
(path: string): (self: Glob) => boolean
|
|
160
|
+
/**
|
|
161
|
+
* Tests whether a `/`-separated path matches a `Glob`.
|
|
162
|
+
*
|
|
163
|
+
* **Details**
|
|
164
|
+
*
|
|
165
|
+
* Empty segments and `./` segments in the path are ignored. A trailing `/`
|
|
166
|
+
* marks the path as a directory, which a pattern ending in `/` requires.
|
|
167
|
+
*
|
|
168
|
+
* **Example** (Filtering paths)
|
|
169
|
+
*
|
|
170
|
+
* ```ts import.meta.vitest
|
|
171
|
+
* import { Glob, pipe } from "effect"
|
|
172
|
+
*
|
|
173
|
+
* const tests = Glob.make("**\/*.test.ts")
|
|
174
|
+
* const paths = ["src/a.ts", "src/a.test.ts", "test/b.test.ts"]
|
|
175
|
+
*
|
|
176
|
+
* paths.filter((path) => Glob.match(tests, path)) // => ["src/a.test.ts", "test/b.test.ts"]
|
|
177
|
+
* pipe(tests, Glob.match("./src/a.test.ts")) // => true
|
|
178
|
+
* ```
|
|
179
|
+
*
|
|
180
|
+
* @stability experimental
|
|
181
|
+
* @category predicates
|
|
182
|
+
* @since 4.0.0
|
|
183
|
+
*/
|
|
184
|
+
(self: Glob, path: string): boolean
|
|
185
|
+
} = dual(2, (self: Glob, path: string): boolean => internal.match((self as GlobImpl).compiled, path))
|
|
186
|
+
|
|
187
|
+
/**
|
|
188
|
+
* Escapes glob syntax so a string matches only itself.
|
|
189
|
+
*
|
|
190
|
+
* **Example** (Matching a literal file name)
|
|
191
|
+
*
|
|
192
|
+
* ```ts import.meta.vitest
|
|
193
|
+
* import { Glob } from "effect"
|
|
194
|
+
*
|
|
195
|
+
* const name = "report[1].txt"
|
|
196
|
+
*
|
|
197
|
+
* Glob.match(Glob.make(name), name) // => false
|
|
198
|
+
* Glob.match(Glob.make(Glob.escape(name)), name) // => true
|
|
199
|
+
* ```
|
|
200
|
+
*
|
|
201
|
+
* @stability experimental
|
|
202
|
+
* @category utils
|
|
203
|
+
* @since 4.0.0
|
|
204
|
+
*/
|
|
205
|
+
export const escape = (input: string): string => input.replace(/[\\*?[\]{}]/g, "\\$&")
|
package/src/Hash.ts
CHANGED
|
@@ -140,7 +140,7 @@ export const hash: <A>(self: A) => number = <A>(self: A) => {
|
|
|
140
140
|
const seen = backEdges
|
|
141
141
|
let h: number
|
|
142
142
|
try {
|
|
143
|
-
if (
|
|
143
|
+
if (isHash(self)) {
|
|
144
144
|
h = (self as Hash)[symbol]()
|
|
145
145
|
} else if (typeof self === "function") {
|
|
146
146
|
h = random(self)
|
|
@@ -351,8 +351,9 @@ export const optimize = (n: number): number => (n & 0xbfffffff) | ((n >>> 1) & 0
|
|
|
351
351
|
*
|
|
352
352
|
* **Details**
|
|
353
353
|
*
|
|
354
|
-
* This function determines whether a given value has the Hash
|
|
355
|
-
* indicating that it can provide its own hash value implementation.
|
|
354
|
+
* This function determines whether a given value has a function under the Hash
|
|
355
|
+
* symbol, indicating that it can provide its own hash value implementation.
|
|
356
|
+
* Data that merely carries the key, such as parsed JSON, is hashed as data.
|
|
356
357
|
*
|
|
357
358
|
* **Example** (Checking for Hash support)
|
|
358
359
|
*
|
|
@@ -374,7 +375,7 @@ export const optimize = (n: number): number => (n & 0xbfffffff) | ((n >>> 1) & 0
|
|
|
374
375
|
* @category guards
|
|
375
376
|
* @since 2.0.0
|
|
376
377
|
*/
|
|
377
|
-
export const isHash = (u: unknown): u is Hash => hasProperty(u, symbol)
|
|
378
|
+
export const isHash = (u: unknown): u is Hash => hasProperty(u, symbol) && typeof u[symbol] === "function"
|
|
378
379
|
|
|
379
380
|
const float64 = new DataView(new ArrayBuffer(8))
|
|
380
381
|
|
package/src/Iterable.ts
CHANGED
|
@@ -1223,15 +1223,18 @@ export const takeWhile: {
|
|
|
1223
1223
|
<A>(self: Iterable<A>, predicate: (a: A, i: number) => boolean): Iterable<A>
|
|
1224
1224
|
} = dual(2, <A>(self: Iterable<A>, predicate: (a: A, i: number) => boolean): Iterable<A> => ({
|
|
1225
1225
|
[Symbol.iterator]() {
|
|
1226
|
-
|
|
1226
|
+
let iterator: Iterator<A> | undefined = self[Symbol.iterator]()
|
|
1227
1227
|
let i = 0
|
|
1228
1228
|
return {
|
|
1229
1229
|
next() {
|
|
1230
|
-
|
|
1231
|
-
|
|
1232
|
-
|
|
1230
|
+
if (iterator !== undefined) {
|
|
1231
|
+
const result = iterator.next()
|
|
1232
|
+
if (!result.done && predicate(result.value, i++)) {
|
|
1233
|
+
return result
|
|
1234
|
+
}
|
|
1235
|
+
iterator = undefined
|
|
1233
1236
|
}
|
|
1234
|
-
return
|
|
1237
|
+
return { done: true, value: undefined }
|
|
1235
1238
|
}
|
|
1236
1239
|
}
|
|
1237
1240
|
}
|
package/src/Match.ts
CHANGED
|
@@ -37,6 +37,31 @@ type ValueTagHandlers<I> = {
|
|
|
37
37
|
readonly [Tag in Types.Tags<"_tag", I> & string]: (_: Extract<I, { readonly _tag: Tag }>) => any
|
|
38
38
|
}
|
|
39
39
|
|
|
40
|
+
// Members of `R` that a literal record can dispatch on: finite string / number
|
|
41
|
+
// literals whose runtime key no other string / number member can produce.
|
|
42
|
+
// Widened `string` / `number` and template literals add no keys, and a literal
|
|
43
|
+
// is dropped when another member spells the same key (`1` with `"1"` or
|
|
44
|
+
// `string`, `"1"` or `"NaN"` with `number`).
|
|
45
|
+
type LiteralKeys<R, All = Extract<R, string | number>> = R extends string | number
|
|
46
|
+
? {} extends Record<R, unknown> ? never
|
|
47
|
+
: R extends number ? `${R}` extends All ? never : R
|
|
48
|
+
: R extends `${infer N extends number}` ? N extends All ? never : R
|
|
49
|
+
: R extends "NaN" | "Infinity" | "-Infinity" ? number extends All ? never : R
|
|
50
|
+
: R
|
|
51
|
+
: never
|
|
52
|
+
|
|
53
|
+
type LiteralHandlers<R, Ret> = [Exclude<R, LiteralKeys<R>>] extends [never] ? {
|
|
54
|
+
readonly [K in LiteralKeys<R>]: (_: K) => Ret
|
|
55
|
+
}
|
|
56
|
+
: never
|
|
57
|
+
|
|
58
|
+
type PartialLiteralHandlers<R, Ret> = {
|
|
59
|
+
readonly [K in LiteralKeys<R>]?: ((_: K) => Ret) | undefined
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
// Only keys with a defined handler remove a literal from the remaining input.
|
|
63
|
+
type HandledLiterals<P> = { readonly [K in keyof P]-?: undefined extends P[K] ? never : K }[keyof P]
|
|
64
|
+
|
|
40
65
|
/**
|
|
41
66
|
* Marker used by `Matcher` to distinguish matchers created with `Match.value`.
|
|
42
67
|
*
|
|
@@ -1391,6 +1416,108 @@ export const tagsExhaustive: <
|
|
|
1391
1416
|
) => [Pr] extends [never] ? (u: I) => Unify<A | ReturnType<P[keyof P]>> : Unify<A | ReturnType<P[keyof P]>> =
|
|
1392
1417
|
internal.tagsExhaustive
|
|
1393
1418
|
|
|
1419
|
+
/**
|
|
1420
|
+
* Matches string and number literal values, mapping each literal to a
|
|
1421
|
+
* corresponding handler.
|
|
1422
|
+
*
|
|
1423
|
+
* **Details**
|
|
1424
|
+
*
|
|
1425
|
+
* Each handler receives the matched literal. Handled literals are removed from
|
|
1426
|
+
* the remaining input, while unhandled literals and any other members (such as
|
|
1427
|
+
* `null`, objects, or widened `string` / `number` types) are left for later
|
|
1428
|
+
* cases. Keys must be finite string or number literals of the remaining input;
|
|
1429
|
+
* unions containing both a number and its string spelling, such as
|
|
1430
|
+
* `1 | "1"`, are rejected because both share the same runtime key.
|
|
1431
|
+
*
|
|
1432
|
+
* **Example** (Mapping literal handlers)
|
|
1433
|
+
*
|
|
1434
|
+
* ```ts import.meta.vitest
|
|
1435
|
+
* import { Match } from "effect"
|
|
1436
|
+
*
|
|
1437
|
+
* type Status = "draft" | "review" | "published"
|
|
1438
|
+
*
|
|
1439
|
+
* const isEditable = Match.type<Status>().pipe(
|
|
1440
|
+
* Match.literals({ draft: () => true, review: () => true }),
|
|
1441
|
+
* Match.orElse(() => false)
|
|
1442
|
+
* )
|
|
1443
|
+
*
|
|
1444
|
+
* isEditable("review") // => true
|
|
1445
|
+
* isEditable("published") // => false
|
|
1446
|
+
* ```
|
|
1447
|
+
*
|
|
1448
|
+
* @see {@link literalsExhaustive} for handling every literal and finalizing the matcher
|
|
1449
|
+
*
|
|
1450
|
+
* @stability unstable
|
|
1451
|
+
* @category defining patterns
|
|
1452
|
+
* @since 4.1.0
|
|
1453
|
+
*/
|
|
1454
|
+
export const literals: <
|
|
1455
|
+
R,
|
|
1456
|
+
Ret,
|
|
1457
|
+
P extends
|
|
1458
|
+
& PartialLiteralHandlers<R, Ret>
|
|
1459
|
+
& { readonly [K in Exclude<keyof P, LiteralKeys<R>>]: never }
|
|
1460
|
+
>(
|
|
1461
|
+
fields: Contextual<P, PartialLiteralHandlers<R, Ret>>
|
|
1462
|
+
) => <I, F, A, Pr>(
|
|
1463
|
+
self: Matcher<I, F, R, A, Pr, Ret>
|
|
1464
|
+
) => Matcher<
|
|
1465
|
+
I,
|
|
1466
|
+
Types.AddWithout<F, Extract<R, HandledLiterals<P>>>,
|
|
1467
|
+
Types.ApplyFilters<I, Types.AddWithout<F, Extract<R, HandledLiterals<P>>>>,
|
|
1468
|
+
A | ReturnType<P[keyof P] & {}>,
|
|
1469
|
+
Pr,
|
|
1470
|
+
Ret
|
|
1471
|
+
> = internal.literals
|
|
1472
|
+
|
|
1473
|
+
/**
|
|
1474
|
+
* Matches string and number literal values and requires handling of all
|
|
1475
|
+
* remaining cases.
|
|
1476
|
+
*
|
|
1477
|
+
* **Details**
|
|
1478
|
+
*
|
|
1479
|
+
* This is the exhaustive variant of {@link literals}. Every remaining member
|
|
1480
|
+
* must be a finite string or number literal with a corresponding handler, so a
|
|
1481
|
+
* missing literal, a widened `string` / `number` type, or any other unhandled
|
|
1482
|
+
* member is reported by TypeScript.
|
|
1483
|
+
*
|
|
1484
|
+
* **Example** (Handling all literal cases)
|
|
1485
|
+
*
|
|
1486
|
+
* ```ts import.meta.vitest
|
|
1487
|
+
* import { Match } from "effect"
|
|
1488
|
+
*
|
|
1489
|
+
* type Status = "draft" | "review" | "published"
|
|
1490
|
+
*
|
|
1491
|
+
* const label = Match.type<Status>().pipe(
|
|
1492
|
+
* Match.literalsExhaustive({
|
|
1493
|
+
* draft: () => "Draft",
|
|
1494
|
+
* review: () => "In review",
|
|
1495
|
+
* published: () => "Live"
|
|
1496
|
+
* })
|
|
1497
|
+
* )
|
|
1498
|
+
*
|
|
1499
|
+
* label("review") // => "In review"
|
|
1500
|
+
* ```
|
|
1501
|
+
*
|
|
1502
|
+
* @see {@link literals} for defining literal handlers without finalizing the matcher
|
|
1503
|
+
*
|
|
1504
|
+
* @stability unstable
|
|
1505
|
+
* @category defining patterns
|
|
1506
|
+
* @since 4.1.0
|
|
1507
|
+
*/
|
|
1508
|
+
export const literalsExhaustive: <
|
|
1509
|
+
R,
|
|
1510
|
+
Ret,
|
|
1511
|
+
P extends
|
|
1512
|
+
& LiteralHandlers<R, Ret>
|
|
1513
|
+
& { readonly [K in Exclude<keyof P, LiteralKeys<R>>]: never }
|
|
1514
|
+
>(
|
|
1515
|
+
fields: Contextual<P, LiteralHandlers<R, Ret>>
|
|
1516
|
+
) => <I, F, A, Pr>(
|
|
1517
|
+
self: Matcher<I, F, R, A, Pr, Ret>
|
|
1518
|
+
) => [Pr] extends [never] ? (u: I) => Unify<A | ReturnType<P[keyof P]>> : Unify<A | ReturnType<P[keyof P]>> =
|
|
1519
|
+
internal.literalsExhaustive
|
|
1520
|
+
|
|
1394
1521
|
/**
|
|
1395
1522
|
* Creates a pattern that excludes a specific value while allowing all others.
|
|
1396
1523
|
*
|
package/src/Path.ts
CHANGED
|
@@ -385,9 +385,14 @@ function normalizeStringPosix(path: string, allowAboveRoot: boolean) {
|
|
|
385
385
|
return res
|
|
386
386
|
}
|
|
387
387
|
|
|
388
|
+
function formatExt(ext: string | undefined) {
|
|
389
|
+
if (!ext) return ""
|
|
390
|
+
return ext.startsWith(".") ? ext : `.${ext}`
|
|
391
|
+
}
|
|
392
|
+
|
|
388
393
|
function _format(sep: string, pathObject: Partial<Path.Parsed>) {
|
|
389
394
|
const dir = pathObject.dir || pathObject.root
|
|
390
|
-
const base = pathObject.base || (pathObject.name || "") + (pathObject.ext
|
|
395
|
+
const base = pathObject.base || (pathObject.name || "") + formatExt(pathObject.ext)
|
|
391
396
|
if (!dir) {
|
|
392
397
|
return base
|
|
393
398
|
}
|