effect 4.0.0-beta.74 → 4.0.0-beta.76
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/dist/Array.d.ts +729 -611
- package/dist/Array.d.ts.map +1 -1
- package/dist/Array.js +273 -213
- package/dist/Array.js.map +1 -1
- package/dist/BigDecimal.d.ts +37 -30
- package/dist/BigDecimal.d.ts.map +1 -1
- package/dist/BigDecimal.js +19 -16
- package/dist/BigDecimal.js.map +1 -1
- package/dist/BigInt.d.ts +34 -40
- package/dist/BigInt.d.ts.map +1 -1
- package/dist/BigInt.js +16 -16
- package/dist/BigInt.js.map +1 -1
- package/dist/Boolean.d.ts +8 -8
- package/dist/Boolean.js +4 -4
- package/dist/Brand.d.ts +13 -11
- package/dist/Brand.d.ts.map +1 -1
- package/dist/Brand.js +10 -8
- package/dist/Brand.js.map +1 -1
- package/dist/Cause.d.ts +21 -23
- package/dist/Cause.d.ts.map +1 -1
- package/dist/Cause.js +21 -23
- package/dist/Cause.js.map +1 -1
- package/dist/Channel.d.ts +219 -9
- package/dist/Channel.d.ts.map +1 -1
- package/dist/Channel.js +83 -3
- package/dist/Channel.js.map +1 -1
- package/dist/ChannelSchema.d.ts +11 -11
- package/dist/ChannelSchema.js +5 -5
- package/dist/Chunk.d.ts +69 -16
- package/dist/Chunk.d.ts.map +1 -1
- package/dist/Chunk.js +43 -8
- package/dist/Chunk.js.map +1 -1
- package/dist/Clock.d.ts +3 -3
- package/dist/Clock.js +3 -3
- package/dist/Combiner.d.ts +9 -13
- package/dist/Combiner.d.ts.map +1 -1
- package/dist/Combiner.js +9 -13
- package/dist/Combiner.js.map +1 -1
- package/dist/Config.d.ts +49 -56
- package/dist/Config.d.ts.map +1 -1
- package/dist/Config.js +40 -43
- package/dist/Config.js.map +1 -1
- package/dist/ConfigProvider.d.ts +34 -44
- package/dist/ConfigProvider.d.ts.map +1 -1
- package/dist/ConfigProvider.js +24 -32
- package/dist/ConfigProvider.js.map +1 -1
- package/dist/Console.d.ts +2 -2
- package/dist/Console.js +2 -2
- package/dist/Context.d.ts +60 -72
- package/dist/Context.d.ts.map +1 -1
- package/dist/Context.js +28 -32
- package/dist/Context.js.map +1 -1
- package/dist/Cron.d.ts +2 -2
- package/dist/Cron.js +2 -2
- package/dist/Crypto.d.ts +4 -4
- package/dist/Crypto.js +4 -4
- package/dist/Data.d.ts +21 -15
- package/dist/Data.d.ts.map +1 -1
- package/dist/Data.js +7 -7
- package/dist/Data.js.map +1 -1
- package/dist/DateTime.d.ts +35 -16
- package/dist/DateTime.d.ts.map +1 -1
- package/dist/DateTime.js +35 -8
- package/dist/DateTime.js.map +1 -1
- package/dist/Deferred.d.ts +24 -15
- package/dist/Deferred.d.ts.map +1 -1
- package/dist/Deferred.js +8 -5
- package/dist/Deferred.js.map +1 -1
- package/dist/Duration.d.ts +44 -31
- package/dist/Duration.d.ts.map +1 -1
- package/dist/Duration.js +22 -11
- package/dist/Duration.js.map +1 -1
- package/dist/Effect.d.ts +516 -416
- package/dist/Effect.d.ts.map +1 -1
- package/dist/Effect.js +234 -174
- package/dist/Effect.js.map +1 -1
- package/dist/Encoding.d.ts +5 -0
- package/dist/Encoding.d.ts.map +1 -1
- package/dist/Encoding.js +5 -0
- package/dist/Encoding.js.map +1 -1
- package/dist/Equal.d.ts +26 -39
- package/dist/Equal.d.ts.map +1 -1
- package/dist/Equal.js +10 -17
- package/dist/Equal.js.map +1 -1
- package/dist/Equivalence.d.ts +71 -99
- package/dist/Equivalence.d.ts.map +1 -1
- package/dist/Equivalence.js +53 -73
- package/dist/Equivalence.js.map +1 -1
- package/dist/ErrorReporter.d.ts +1 -1
- package/dist/ErrorReporter.js +1 -1
- package/dist/Exit.d.ts +79 -96
- package/dist/Exit.d.ts.map +1 -1
- package/dist/Exit.js +57 -64
- package/dist/Exit.js.map +1 -1
- package/dist/Fiber.d.ts +8 -6
- package/dist/Fiber.d.ts.map +1 -1
- package/dist/Fiber.js +8 -6
- package/dist/Fiber.js.map +1 -1
- package/dist/FiberHandle.d.ts +25 -0
- package/dist/FiberHandle.d.ts.map +1 -1
- package/dist/FiberHandle.js +15 -0
- package/dist/FiberHandle.js.map +1 -1
- package/dist/FiberMap.d.ts +35 -0
- package/dist/FiberMap.d.ts.map +1 -1
- package/dist/FiberMap.js +15 -0
- package/dist/FiberMap.js.map +1 -1
- package/dist/FiberSet.d.ts +20 -0
- package/dist/FiberSet.d.ts.map +1 -1
- package/dist/FiberSet.js +10 -0
- package/dist/FiberSet.js.map +1 -1
- package/dist/Filter.d.ts +4 -4
- package/dist/Filter.js +4 -4
- package/dist/Formatter.d.ts +14 -19
- package/dist/Formatter.d.ts.map +1 -1
- package/dist/Formatter.js +14 -19
- package/dist/Formatter.js.map +1 -1
- package/dist/Function.d.ts +15 -16
- package/dist/Function.d.ts.map +1 -1
- package/dist/Function.js +9 -10
- package/dist/Function.js.map +1 -1
- package/dist/Graph.d.ts +2 -2
- package/dist/Graph.js +2 -2
- package/dist/HKT.d.ts +2 -2
- package/dist/Hash.d.ts +2 -1
- package/dist/Hash.d.ts.map +1 -1
- package/dist/Hash.js +2 -1
- package/dist/Hash.js.map +1 -1
- package/dist/HashMap.d.ts +15 -0
- package/dist/HashMap.d.ts.map +1 -1
- package/dist/HashMap.js +5 -0
- package/dist/HashMap.js.map +1 -1
- package/dist/HashRing.d.ts +9 -9
- package/dist/HashRing.js +3 -3
- package/dist/Iterable.d.ts +24 -12
- package/dist/Iterable.d.ts.map +1 -1
- package/dist/Iterable.js +16 -6
- package/dist/Iterable.js.map +1 -1
- package/dist/JsonPatch.d.ts +2 -3
- package/dist/JsonPatch.d.ts.map +1 -1
- package/dist/JsonPatch.js +2 -3
- package/dist/JsonPatch.js.map +1 -1
- package/dist/JsonPointer.d.ts +2 -6
- package/dist/JsonPointer.d.ts.map +1 -1
- package/dist/JsonPointer.js +2 -6
- package/dist/JsonPointer.js.map +1 -1
- package/dist/JsonSchema.d.ts +17 -13
- package/dist/JsonSchema.d.ts.map +1 -1
- package/dist/JsonSchema.js +17 -13
- package/dist/JsonSchema.js.map +1 -1
- package/dist/Latch.d.ts +4 -3
- package/dist/Latch.d.ts.map +1 -1
- package/dist/Latch.js +4 -3
- package/dist/Latch.js.map +1 -1
- package/dist/Layer.d.ts +92 -114
- package/dist/Layer.d.ts.map +1 -1
- package/dist/Layer.js +38 -46
- package/dist/Layer.js.map +1 -1
- package/dist/Logger.d.ts +11 -14
- package/dist/Logger.d.ts.map +1 -1
- package/dist/Logger.js +11 -14
- package/dist/Logger.js.map +1 -1
- package/dist/Match.d.ts +2 -2
- package/dist/Match.js +2 -2
- package/dist/Metric.d.ts +89 -109
- package/dist/Metric.d.ts.map +1 -1
- package/dist/Metric.js +51 -61
- package/dist/Metric.js.map +1 -1
- package/dist/MutableHashMap.d.ts +21 -12
- package/dist/MutableHashMap.d.ts.map +1 -1
- package/dist/MutableHashMap.js +7 -4
- package/dist/MutableHashMap.js.map +1 -1
- package/dist/MutableList.d.ts +15 -0
- package/dist/MutableList.d.ts.map +1 -1
- package/dist/MutableList.js +15 -0
- package/dist/MutableList.js.map +1 -1
- package/dist/MutableRef.d.ts +56 -42
- package/dist/MutableRef.d.ts.map +1 -1
- package/dist/MutableRef.js +28 -22
- package/dist/MutableRef.js.map +1 -1
- package/dist/Newtype.d.ts +10 -7
- package/dist/Newtype.d.ts.map +1 -1
- package/dist/Newtype.js +10 -7
- package/dist/Newtype.js.map +1 -1
- package/dist/Number.d.ts +23 -11
- package/dist/Number.d.ts.map +1 -1
- package/dist/Number.js +9 -5
- package/dist/Number.js.map +1 -1
- package/dist/Optic.d.ts +16 -16
- package/dist/Optic.d.ts.map +1 -1
- package/dist/Optic.js +10 -9
- package/dist/Optic.js.map +1 -1
- package/dist/Option.d.ts +196 -168
- package/dist/Option.d.ts.map +1 -1
- package/dist/Option.js +96 -79
- package/dist/Option.js.map +1 -1
- package/dist/Order.d.ts +118 -179
- package/dist/Order.d.ts.map +1 -1
- package/dist/Order.js +92 -144
- package/dist/Order.js.map +1 -1
- package/dist/PartitionedSemaphore.d.ts +14 -14
- package/dist/PartitionedSemaphore.js +6 -6
- package/dist/Path.d.ts +2 -2
- package/dist/Path.js +2 -2
- package/dist/Pipeable.d.ts +2 -2
- package/dist/Pipeable.js +2 -2
- package/dist/PlatformError.d.ts +4 -4
- package/dist/PlatformError.js +4 -4
- package/dist/Pool.d.ts +7 -11
- package/dist/Pool.d.ts.map +1 -1
- package/dist/Pool.js +3 -5
- package/dist/Pool.js.map +1 -1
- package/dist/Predicate.d.ts +274 -263
- package/dist/Predicate.d.ts.map +1 -1
- package/dist/Predicate.js +128 -123
- package/dist/Predicate.js.map +1 -1
- package/dist/PubSub.d.ts +24 -14
- package/dist/PubSub.d.ts.map +1 -1
- package/dist/PubSub.js +16 -6
- package/dist/PubSub.js.map +1 -1
- package/dist/Pull.d.ts +4 -4
- package/dist/Pull.js +4 -4
- package/dist/Queue.d.ts +46 -7
- package/dist/Queue.d.ts.map +1 -1
- package/dist/Queue.js +46 -7
- package/dist/Queue.js.map +1 -1
- package/dist/RcRef.d.ts +0 -4
- package/dist/RcRef.d.ts.map +1 -1
- package/dist/RcRef.js.map +1 -1
- package/dist/Redactable.d.ts +2 -2
- package/dist/Redactable.js +2 -2
- package/dist/Redacted.d.ts +3 -3
- package/dist/Redacted.js +3 -3
- package/dist/Reducer.d.ts +2 -3
- package/dist/Reducer.d.ts.map +1 -1
- package/dist/Reducer.js +2 -3
- package/dist/Reducer.js.map +1 -1
- package/dist/Ref.d.ts +17 -16
- package/dist/Ref.d.ts.map +1 -1
- package/dist/Ref.js +15 -14
- package/dist/Ref.js.map +1 -1
- package/dist/References.d.ts +4 -4
- package/dist/References.js +4 -4
- package/dist/Request.d.ts +18 -18
- package/dist/Request.js +6 -6
- package/dist/Resource.d.ts +2 -2
- package/dist/Resource.js +2 -2
- package/dist/Result.d.ts +77 -33
- package/dist/Result.d.ts.map +1 -1
- package/dist/Result.js +42 -19
- package/dist/Result.js.map +1 -1
- package/dist/Runtime.d.ts +11 -8
- package/dist/Runtime.d.ts.map +1 -1
- package/dist/Runtime.js +11 -8
- package/dist/Runtime.js.map +1 -1
- package/dist/Schedule.d.ts +107 -45
- package/dist/Schedule.d.ts.map +1 -1
- package/dist/Schedule.js +41 -29
- package/dist/Schedule.js.map +1 -1
- package/dist/Scheduler.d.ts +6 -4
- package/dist/Scheduler.d.ts.map +1 -1
- package/dist/Scheduler.js +6 -4
- package/dist/Scheduler.js.map +1 -1
- package/dist/Schema.d.ts +545 -411
- package/dist/Schema.d.ts.map +1 -1
- package/dist/Schema.js +662 -500
- package/dist/Schema.js.map +1 -1
- package/dist/SchemaAST.d.ts +42 -21
- package/dist/SchemaAST.d.ts.map +1 -1
- package/dist/SchemaAST.js +81 -59
- package/dist/SchemaAST.js.map +1 -1
- package/dist/SchemaGetter.d.ts +126 -106
- package/dist/SchemaGetter.d.ts.map +1 -1
- package/dist/SchemaGetter.js +121 -101
- package/dist/SchemaGetter.js.map +1 -1
- package/dist/SchemaIssue.d.ts +37 -39
- package/dist/SchemaIssue.d.ts.map +1 -1
- package/dist/SchemaIssue.js +16 -17
- package/dist/SchemaIssue.js.map +1 -1
- package/dist/SchemaParser.d.ts +72 -153
- package/dist/SchemaParser.d.ts.map +1 -1
- package/dist/SchemaParser.js +72 -145
- package/dist/SchemaParser.js.map +1 -1
- package/dist/SchemaRepresentation.d.ts +40 -22
- package/dist/SchemaRepresentation.d.ts.map +1 -1
- package/dist/SchemaRepresentation.js +38 -27
- package/dist/SchemaRepresentation.js.map +1 -1
- package/dist/SchemaTransformation.d.ts +169 -145
- package/dist/SchemaTransformation.d.ts.map +1 -1
- package/dist/SchemaTransformation.js +240 -177
- package/dist/SchemaTransformation.js.map +1 -1
- package/dist/SchemaUtils.js +2 -2
- package/dist/SchemaUtils.js.map +1 -1
- package/dist/Scope.d.ts +15 -0
- package/dist/Scope.d.ts.map +1 -1
- package/dist/Scope.js +15 -0
- package/dist/Scope.js.map +1 -1
- package/dist/ScopedCache.d.ts +1 -1
- package/dist/ScopedCache.js +1 -1
- package/dist/ScopedRef.d.ts +14 -18
- package/dist/ScopedRef.d.ts.map +1 -1
- package/dist/ScopedRef.js +6 -8
- package/dist/ScopedRef.js.map +1 -1
- package/dist/Semaphore.d.ts +9 -9
- package/dist/Semaphore.js +3 -3
- package/dist/Sink.d.ts +13 -13
- package/dist/Sink.d.ts.map +1 -1
- package/dist/Sink.js +9 -9
- package/dist/Sink.js.map +1 -1
- package/dist/Stdio.d.ts +4 -5
- package/dist/Stdio.d.ts.map +1 -1
- package/dist/Stdio.js +4 -5
- package/dist/Stdio.js.map +1 -1
- package/dist/Stream.d.ts +321 -44
- package/dist/Stream.d.ts.map +1 -1
- package/dist/Stream.js +137 -22
- package/dist/Stream.js.map +1 -1
- package/dist/String.d.ts +6 -9
- package/dist/String.d.ts.map +1 -1
- package/dist/String.js +2 -3
- package/dist/String.js.map +1 -1
- package/dist/Struct.d.ts +15 -13
- package/dist/Struct.d.ts.map +1 -1
- package/dist/Struct.js +11 -9
- package/dist/Struct.js.map +1 -1
- package/dist/SubscriptionRef.d.ts +24 -19
- package/dist/SubscriptionRef.d.ts.map +1 -1
- package/dist/SubscriptionRef.js +12 -7
- package/dist/SubscriptionRef.js.map +1 -1
- package/dist/SynchronizedRef.d.ts +88 -63
- package/dist/SynchronizedRef.d.ts.map +1 -1
- package/dist/SynchronizedRef.js +32 -23
- package/dist/SynchronizedRef.js.map +1 -1
- package/dist/Tracer.d.ts +4 -4
- package/dist/Tracer.js +4 -4
- package/dist/Trie.d.ts +15 -0
- package/dist/Trie.d.ts.map +1 -1
- package/dist/Trie.js +5 -0
- package/dist/Trie.js.map +1 -1
- package/dist/Tuple.d.ts +25 -19
- package/dist/Tuple.d.ts.map +1 -1
- package/dist/Tuple.js +17 -13
- package/dist/Tuple.js.map +1 -1
- package/dist/TxReentrantLock.d.ts +6 -3
- package/dist/TxReentrantLock.d.ts.map +1 -1
- package/dist/TxReentrantLock.js +2 -1
- package/dist/TxReentrantLock.js.map +1 -1
- package/dist/TxRef.d.ts +16 -16
- package/dist/TxRef.js +8 -8
- package/dist/TxSubscriptionRef.d.ts +43 -27
- package/dist/TxSubscriptionRef.d.ts.map +1 -1
- package/dist/TxSubscriptionRef.js +19 -13
- package/dist/TxSubscriptionRef.js.map +1 -1
- package/dist/Types.d.ts +12 -38
- package/dist/Types.d.ts.map +1 -1
- package/dist/Types.js +0 -2
- package/dist/UndefinedOr.d.ts +15 -14
- package/dist/UndefinedOr.d.ts.map +1 -1
- package/dist/UndefinedOr.js +11 -10
- package/dist/UndefinedOr.js.map +1 -1
- package/dist/Unify.d.ts +2 -2
- package/dist/internal/schema/annotations.js.map +1 -1
- package/dist/internal/schema/arbitrary.js +9 -9
- package/dist/internal/schema/arbitrary.js.map +1 -1
- package/dist/internal/schema/equivalence.js +9 -9
- package/dist/internal/schema/equivalence.js.map +1 -1
- package/dist/internal/schema/representation.js +15 -14
- package/dist/internal/schema/representation.js.map +1 -1
- package/dist/internal/schema/schema.js +11 -11
- package/dist/internal/schema/schema.js.map +1 -1
- package/dist/testing/TestSchema.d.ts +10 -10
- package/dist/testing/TestSchema.d.ts.map +1 -1
- package/dist/testing/TestSchema.js +9 -9
- package/dist/testing/TestSchema.js.map +1 -1
- package/dist/unstable/ai/AiError.d.ts +4 -2
- package/dist/unstable/ai/AiError.d.ts.map +1 -1
- package/dist/unstable/ai/AiError.js +4 -2
- package/dist/unstable/ai/AiError.js.map +1 -1
- package/dist/unstable/ai/AnthropicStructuredOutput.d.ts +17 -20
- package/dist/unstable/ai/AnthropicStructuredOutput.d.ts.map +1 -1
- package/dist/unstable/ai/AnthropicStructuredOutput.js +36 -39
- package/dist/unstable/ai/AnthropicStructuredOutput.js.map +1 -1
- package/dist/unstable/ai/Chat.d.ts +4 -5
- package/dist/unstable/ai/Chat.d.ts.map +1 -1
- package/dist/unstable/ai/Chat.js +4 -5
- package/dist/unstable/ai/Chat.js.map +1 -1
- package/dist/unstable/ai/EmbeddingModel.d.ts +4 -4
- package/dist/unstable/ai/EmbeddingModel.js +4 -4
- package/dist/unstable/ai/IdGenerator.d.ts +2 -3
- package/dist/unstable/ai/IdGenerator.d.ts.map +1 -1
- package/dist/unstable/ai/IdGenerator.js +2 -3
- package/dist/unstable/ai/IdGenerator.js.map +1 -1
- package/dist/unstable/ai/LanguageModel.d.ts +3 -2
- package/dist/unstable/ai/LanguageModel.d.ts.map +1 -1
- package/dist/unstable/ai/LanguageModel.js +5 -4
- package/dist/unstable/ai/LanguageModel.js.map +1 -1
- package/dist/unstable/ai/McpSchema.d.ts +14 -12
- package/dist/unstable/ai/McpSchema.d.ts.map +1 -1
- package/dist/unstable/ai/McpSchema.js +20 -18
- package/dist/unstable/ai/McpSchema.js.map +1 -1
- package/dist/unstable/ai/McpServer.d.ts +11 -4
- package/dist/unstable/ai/McpServer.d.ts.map +1 -1
- package/dist/unstable/ai/McpServer.js +8 -5
- package/dist/unstable/ai/McpServer.js.map +1 -1
- package/dist/unstable/ai/OpenAiStructuredOutput.d.ts +20 -18
- package/dist/unstable/ai/OpenAiStructuredOutput.d.ts.map +1 -1
- package/dist/unstable/ai/OpenAiStructuredOutput.js +45 -43
- package/dist/unstable/ai/OpenAiStructuredOutput.js.map +1 -1
- package/dist/unstable/ai/Prompt.d.ts +2 -2
- package/dist/unstable/ai/Prompt.js +3 -3
- package/dist/unstable/ai/Prompt.js.map +1 -1
- package/dist/unstable/ai/ResponseIdTracker.d.ts +3 -2
- package/dist/unstable/ai/ResponseIdTracker.d.ts.map +1 -1
- package/dist/unstable/ai/ResponseIdTracker.js +3 -2
- package/dist/unstable/ai/ResponseIdTracker.js.map +1 -1
- package/dist/unstable/ai/Telemetry.d.ts +21 -6
- package/dist/unstable/ai/Telemetry.d.ts.map +1 -1
- package/dist/unstable/ai/Telemetry.js +7 -2
- package/dist/unstable/ai/Telemetry.js.map +1 -1
- package/dist/unstable/ai/Tool.d.ts +7 -6
- package/dist/unstable/ai/Tool.d.ts.map +1 -1
- package/dist/unstable/ai/Tool.js +8 -7
- package/dist/unstable/ai/Tool.js.map +1 -1
- package/dist/unstable/ai/Toolkit.d.ts +2 -2
- package/dist/unstable/ai/Toolkit.js +2 -2
- package/dist/unstable/cli/CliError.js +1 -1
- package/dist/unstable/cli/CliError.js.map +1 -1
- package/dist/unstable/cli/Command.d.ts +37 -16
- package/dist/unstable/cli/Command.d.ts.map +1 -1
- package/dist/unstable/cli/Command.js +15 -8
- package/dist/unstable/cli/Command.js.map +1 -1
- package/dist/unstable/cli/Completions.d.ts +1 -1
- package/dist/unstable/cli/Completions.js +1 -1
- package/dist/unstable/cli/Flag.d.ts +7 -6
- package/dist/unstable/cli/Flag.d.ts.map +1 -1
- package/dist/unstable/cli/Flag.js +7 -6
- package/dist/unstable/cli/Flag.js.map +1 -1
- package/dist/unstable/cli/GlobalFlag.d.ts +6 -1
- package/dist/unstable/cli/GlobalFlag.d.ts.map +1 -1
- package/dist/unstable/cli/GlobalFlag.js +7 -2
- package/dist/unstable/cli/GlobalFlag.js.map +1 -1
- package/dist/unstable/cli/Param.d.ts +3 -3
- package/dist/unstable/cli/Param.d.ts.map +1 -1
- package/dist/unstable/cli/Param.js +13 -10
- package/dist/unstable/cli/Param.js.map +1 -1
- package/dist/unstable/cli/Primitive.d.ts +3 -2
- package/dist/unstable/cli/Primitive.d.ts.map +1 -1
- package/dist/unstable/cli/Primitive.js +3 -2
- package/dist/unstable/cli/Primitive.js.map +1 -1
- package/dist/unstable/cluster/ClusterCron.d.ts +1 -2
- package/dist/unstable/cluster/ClusterCron.d.ts.map +1 -1
- package/dist/unstable/cluster/ClusterCron.js.map +1 -1
- package/dist/unstable/cluster/ClusterError.js +2 -2
- package/dist/unstable/cluster/ClusterError.js.map +1 -1
- package/dist/unstable/cluster/ClusterMetrics.d.ts +5 -0
- package/dist/unstable/cluster/ClusterMetrics.d.ts.map +1 -1
- package/dist/unstable/cluster/ClusterMetrics.js +5 -0
- package/dist/unstable/cluster/ClusterMetrics.js.map +1 -1
- package/dist/unstable/cluster/ClusterSchema.d.ts +3 -3
- package/dist/unstable/cluster/ClusterSchema.js +3 -3
- package/dist/unstable/cluster/ClusterWorkflowEngine.js +15 -15
- package/dist/unstable/cluster/ClusterWorkflowEngine.js.map +1 -1
- package/dist/unstable/cluster/EntityResource.d.ts +10 -0
- package/dist/unstable/cluster/EntityResource.d.ts.map +1 -1
- package/dist/unstable/cluster/EntityResource.js +10 -0
- package/dist/unstable/cluster/EntityResource.js.map +1 -1
- package/dist/unstable/cluster/Envelope.d.ts +2 -2
- package/dist/unstable/cluster/Envelope.d.ts.map +1 -1
- package/dist/unstable/cluster/Envelope.js +2 -2
- package/dist/unstable/cluster/Envelope.js.map +1 -1
- package/dist/unstable/cluster/Reply.d.ts +2 -2
- package/dist/unstable/cluster/Reply.d.ts.map +1 -1
- package/dist/unstable/cluster/Reply.js +13 -13
- package/dist/unstable/cluster/Reply.js.map +1 -1
- package/dist/unstable/cluster/RunnerHealth.d.ts +2 -1
- package/dist/unstable/cluster/RunnerHealth.d.ts.map +1 -1
- package/dist/unstable/cluster/RunnerHealth.js +2 -1
- package/dist/unstable/cluster/RunnerHealth.js.map +1 -1
- package/dist/unstable/cluster/RunnerServer.d.ts +2 -2
- package/dist/unstable/cluster/RunnerServer.js +2 -2
- package/dist/unstable/cluster/Runners.d.ts +3 -3
- package/dist/unstable/cluster/Runners.js +3 -3
- package/dist/unstable/cluster/ShardId.js +3 -3
- package/dist/unstable/cluster/ShardId.js.map +1 -1
- package/dist/unstable/cluster/Sharding.d.ts +3 -3
- package/dist/unstable/cluster/Sharding.js +3 -3
- package/dist/unstable/cluster/ShardingConfig.d.ts +4 -4
- package/dist/unstable/cluster/ShardingConfig.js +4 -4
- package/dist/unstable/cluster/Snowflake.d.ts +1 -1
- package/dist/unstable/cluster/Snowflake.js +3 -3
- package/dist/unstable/cluster/Snowflake.js.map +1 -1
- package/dist/unstable/cluster/internal/entityManager.js +2 -2
- package/dist/unstable/cluster/internal/entityManager.js.map +1 -1
- package/dist/unstable/devtools/DevToolsSchema.js +5 -1
- package/dist/unstable/devtools/DevToolsSchema.js.map +1 -1
- package/dist/unstable/encoding/Msgpack.d.ts +2 -2
- package/dist/unstable/encoding/Msgpack.d.ts.map +1 -1
- package/dist/unstable/encoding/Msgpack.js +5 -5
- package/dist/unstable/encoding/Msgpack.js.map +1 -1
- package/dist/unstable/encoding/Ndjson.d.ts +5 -0
- package/dist/unstable/encoding/Ndjson.d.ts.map +1 -1
- package/dist/unstable/encoding/Ndjson.js +5 -0
- package/dist/unstable/encoding/Ndjson.js.map +1 -1
- package/dist/unstable/encoding/Sse.d.ts +2 -2
- package/dist/unstable/encoding/Sse.d.ts.map +1 -1
- package/dist/unstable/encoding/Sse.js +2 -2
- package/dist/unstable/encoding/Sse.js.map +1 -1
- package/dist/unstable/eventlog/EventGroup.d.ts +2 -1
- package/dist/unstable/eventlog/EventGroup.d.ts.map +1 -1
- package/dist/unstable/eventlog/EventGroup.js +2 -1
- package/dist/unstable/eventlog/EventGroup.js.map +1 -1
- package/dist/unstable/eventlog/EventJournal.d.ts +10 -0
- package/dist/unstable/eventlog/EventJournal.d.ts.map +1 -1
- package/dist/unstable/eventlog/EventJournal.js +10 -0
- package/dist/unstable/eventlog/EventJournal.js.map +1 -1
- package/dist/unstable/eventlog/EventLog.d.ts +3 -3
- package/dist/unstable/eventlog/EventLog.js +3 -3
- package/dist/unstable/eventlog/EventLogServerEncrypted.d.ts +2 -3
- package/dist/unstable/eventlog/EventLogServerEncrypted.d.ts.map +1 -1
- package/dist/unstable/eventlog/EventLogServerEncrypted.js +2 -3
- package/dist/unstable/eventlog/EventLogServerEncrypted.js.map +1 -1
- package/dist/unstable/eventlog/EventLogServerUnencrypted.d.ts +5 -7
- package/dist/unstable/eventlog/EventLogServerUnencrypted.d.ts.map +1 -1
- package/dist/unstable/eventlog/EventLogServerUnencrypted.js +5 -7
- package/dist/unstable/eventlog/EventLogServerUnencrypted.js.map +1 -1
- package/dist/unstable/eventlog/EventLogSessionAuth.d.ts +4 -4
- package/dist/unstable/eventlog/EventLogSessionAuth.js +4 -4
- package/dist/unstable/http/Cookies.js +4 -4
- package/dist/unstable/http/Cookies.js.map +1 -1
- package/dist/unstable/http/Etag.d.ts +2 -3
- package/dist/unstable/http/Etag.d.ts.map +1 -1
- package/dist/unstable/http/Etag.js +2 -3
- package/dist/unstable/http/Etag.js.map +1 -1
- package/dist/unstable/http/Headers.js +2 -2
- package/dist/unstable/http/Headers.js.map +1 -1
- package/dist/unstable/http/HttpBody.js +2 -2
- package/dist/unstable/http/HttpBody.js.map +1 -1
- package/dist/unstable/http/HttpClient.d.ts +2 -2
- package/dist/unstable/http/HttpClient.js +2 -2
- package/dist/unstable/http/HttpClientError.js +1 -1
- package/dist/unstable/http/HttpClientError.js.map +1 -1
- package/dist/unstable/http/HttpClientRequest.d.ts +30 -3
- package/dist/unstable/http/HttpClientRequest.d.ts.map +1 -1
- package/dist/unstable/http/HttpClientRequest.js +10 -1
- package/dist/unstable/http/HttpClientRequest.js.map +1 -1
- package/dist/unstable/http/HttpRouter.d.ts +1 -1
- package/dist/unstable/http/HttpRouter.js +1 -1
- package/dist/unstable/http/HttpServerResponse.d.ts +25 -20
- package/dist/unstable/http/HttpServerResponse.d.ts.map +1 -1
- package/dist/unstable/http/HttpServerResponse.js +13 -8
- package/dist/unstable/http/HttpServerResponse.js.map +1 -1
- package/dist/unstable/http/Multipart.js +3 -3
- package/dist/unstable/http/Multipart.js.map +1 -1
- package/dist/unstable/http/UrlParams.d.ts +30 -0
- package/dist/unstable/http/UrlParams.d.ts.map +1 -1
- package/dist/unstable/http/UrlParams.js +16 -6
- package/dist/unstable/http/UrlParams.js.map +1 -1
- package/dist/unstable/httpapi/HttpApi.d.ts +3 -2
- package/dist/unstable/httpapi/HttpApi.d.ts.map +1 -1
- package/dist/unstable/httpapi/HttpApi.js +3 -2
- package/dist/unstable/httpapi/HttpApi.js.map +1 -1
- package/dist/unstable/httpapi/HttpApiBuilder.d.ts.map +1 -1
- package/dist/unstable/httpapi/HttpApiBuilder.js +10 -8
- package/dist/unstable/httpapi/HttpApiBuilder.js.map +1 -1
- package/dist/unstable/httpapi/HttpApiClient.js +15 -15
- package/dist/unstable/httpapi/HttpApiClient.js.map +1 -1
- package/dist/unstable/httpapi/HttpApiMiddleware.d.ts +3 -3
- package/dist/unstable/httpapi/HttpApiMiddleware.js +3 -3
- package/dist/unstable/httpapi/HttpApiScalar.d.ts +2 -0
- package/dist/unstable/httpapi/HttpApiScalar.d.ts.map +1 -1
- package/dist/unstable/httpapi/HttpApiScalar.js +12 -6
- package/dist/unstable/httpapi/HttpApiScalar.js.map +1 -1
- package/dist/unstable/httpapi/HttpApiSchema.d.ts +2 -2
- package/dist/unstable/httpapi/HttpApiSchema.d.ts.map +1 -1
- package/dist/unstable/httpapi/HttpApiSchema.js +9 -9
- package/dist/unstable/httpapi/HttpApiSchema.js.map +1 -1
- package/dist/unstable/httpapi/OpenApi.js +11 -11
- package/dist/unstable/httpapi/OpenApi.js.map +1 -1
- package/dist/unstable/observability/OtlpResource.d.ts +5 -0
- package/dist/unstable/observability/OtlpResource.d.ts.map +1 -1
- package/dist/unstable/observability/OtlpResource.js +5 -0
- package/dist/unstable/observability/OtlpResource.js.map +1 -1
- package/dist/unstable/observability/PrometheusMetrics.d.ts +4 -2
- package/dist/unstable/observability/PrometheusMetrics.d.ts.map +1 -1
- package/dist/unstable/observability/PrometheusMetrics.js +4 -2
- package/dist/unstable/observability/PrometheusMetrics.js.map +1 -1
- package/dist/unstable/persistence/Persistable.js +1 -1
- package/dist/unstable/persistence/Persistable.js.map +1 -1
- package/dist/unstable/persistence/PersistedQueue.js +1 -1
- package/dist/unstable/persistence/PersistedQueue.js.map +1 -1
- package/dist/unstable/persistence/Persistence.js +1 -1
- package/dist/unstable/persistence/Persistence.js.map +1 -1
- package/dist/unstable/persistence/RateLimiter.js +1 -1
- package/dist/unstable/persistence/RateLimiter.js.map +1 -1
- package/dist/unstable/persistence/Redis.js +1 -1
- package/dist/unstable/persistence/Redis.js.map +1 -1
- package/dist/unstable/reactivity/AsyncResult.js +1 -1
- package/dist/unstable/reactivity/AsyncResult.js.map +1 -1
- package/dist/unstable/reactivity/Atom.d.ts +3 -3
- package/dist/unstable/reactivity/Atom.js +3 -3
- package/dist/unstable/rpc/Rpc.d.ts +1 -1
- package/dist/unstable/rpc/Rpc.js +2 -2
- package/dist/unstable/rpc/Rpc.js.map +1 -1
- package/dist/unstable/rpc/RpcClient.js +1 -1
- package/dist/unstable/rpc/RpcClient.js.map +1 -1
- package/dist/unstable/rpc/RpcClientError.js +1 -1
- package/dist/unstable/rpc/RpcClientError.js.map +1 -1
- package/dist/unstable/rpc/RpcMessage.d.ts +2 -2
- package/dist/unstable/rpc/RpcMessage.js +3 -3
- package/dist/unstable/rpc/RpcMessage.js.map +1 -1
- package/dist/unstable/rpc/RpcSchema.d.ts +2 -2
- package/dist/unstable/rpc/RpcSchema.d.ts.map +1 -1
- package/dist/unstable/rpc/RpcSerialization.d.ts +2 -2
- package/dist/unstable/rpc/RpcSerialization.js +2 -2
- package/dist/unstable/schema/Model.js +5 -5
- package/dist/unstable/schema/Model.js.map +1 -1
- package/dist/unstable/schema/VariantSchema.d.ts +2 -2
- package/dist/unstable/schema/VariantSchema.d.ts.map +1 -1
- package/dist/unstable/socket/Socket.js +3 -3
- package/dist/unstable/socket/Socket.js.map +1 -1
- package/dist/unstable/sql/SqlError.js +1 -1
- package/dist/unstable/sql/SqlError.js.map +1 -1
- package/dist/unstable/sql/SqlSchema.d.ts +4 -4
- package/dist/unstable/sql/SqlSchema.js +4 -4
- package/dist/unstable/workers/Transferable.d.ts +2 -2
- package/dist/unstable/workers/Transferable.d.ts.map +1 -1
- package/dist/unstable/workers/Transferable.js +5 -5
- package/dist/unstable/workers/Transferable.js.map +1 -1
- package/dist/unstable/workers/WorkerError.js +4 -4
- package/dist/unstable/workers/WorkerError.js.map +1 -1
- package/dist/unstable/workflow/Activity.js +1 -1
- package/dist/unstable/workflow/Activity.js.map +1 -1
- package/dist/unstable/workflow/DurableDeferred.js +8 -8
- package/dist/unstable/workflow/DurableDeferred.js.map +1 -1
- package/dist/unstable/workflow/DurableQueue.d.ts +1 -2
- package/dist/unstable/workflow/DurableQueue.d.ts.map +1 -1
- package/dist/unstable/workflow/DurableQueue.js +1 -2
- package/dist/unstable/workflow/DurableQueue.js.map +1 -1
- package/dist/unstable/workflow/Workflow.d.ts +35 -15
- package/dist/unstable/workflow/Workflow.d.ts.map +1 -1
- package/dist/unstable/workflow/Workflow.js +96 -74
- package/dist/unstable/workflow/Workflow.js.map +1 -1
- package/dist/unstable/workflow/WorkflowEngine.d.ts +10 -2
- package/dist/unstable/workflow/WorkflowEngine.d.ts.map +1 -1
- package/dist/unstable/workflow/WorkflowEngine.js +16 -8
- package/dist/unstable/workflow/WorkflowEngine.js.map +1 -1
- package/dist/unstable/workflow/WorkflowProxy.d.ts +2 -4
- package/dist/unstable/workflow/WorkflowProxy.d.ts.map +1 -1
- package/dist/unstable/workflow/WorkflowProxy.js +9 -11
- package/dist/unstable/workflow/WorkflowProxy.js.map +1 -1
- package/dist/unstable/workflow/WorkflowProxyServer.js +7 -7
- package/dist/unstable/workflow/WorkflowProxyServer.js.map +1 -1
- package/package.json +1 -1
- package/src/Array.ts +729 -611
- package/src/BigDecimal.ts +37 -30
- package/src/BigInt.ts +34 -40
- package/src/Boolean.ts +8 -8
- package/src/Brand.ts +16 -14
- package/src/Cause.ts +21 -23
- package/src/Channel.ts +249 -9
- package/src/ChannelSchema.ts +11 -11
- package/src/Chunk.ts +69 -16
- package/src/Clock.ts +3 -3
- package/src/Combiner.ts +9 -13
- package/src/Config.ts +60 -67
- package/src/ConfigProvider.ts +34 -44
- package/src/Console.ts +2 -2
- package/src/Context.ts +60 -72
- package/src/Cron.ts +2 -2
- package/src/Crypto.ts +4 -4
- package/src/Data.ts +21 -15
- package/src/DateTime.ts +35 -16
- package/src/Deferred.ts +24 -15
- package/src/Duration.ts +44 -31
- package/src/Effect.ts +516 -416
- package/src/Encoding.ts +5 -0
- package/src/Equal.ts +26 -39
- package/src/Equivalence.ts +71 -99
- package/src/ErrorReporter.ts +1 -1
- package/src/Exit.ts +79 -96
- package/src/Fiber.ts +8 -6
- package/src/FiberHandle.ts +25 -0
- package/src/FiberMap.ts +35 -0
- package/src/FiberSet.ts +20 -0
- package/src/Filter.ts +4 -4
- package/src/Formatter.ts +14 -19
- package/src/Function.ts +15 -16
- package/src/Graph.ts +2 -2
- package/src/HKT.ts +2 -2
- package/src/Hash.ts +2 -1
- package/src/HashMap.ts +15 -0
- package/src/HashRing.ts +9 -9
- package/src/Iterable.ts +24 -12
- package/src/JsonPatch.ts +2 -3
- package/src/JsonPointer.ts +2 -6
- package/src/JsonSchema.ts +17 -13
- package/src/Latch.ts +4 -3
- package/src/Layer.ts +92 -114
- package/src/Logger.ts +15 -18
- package/src/Match.ts +2 -2
- package/src/Metric.ts +109 -137
- package/src/MutableHashMap.ts +35 -20
- package/src/MutableList.ts +15 -0
- package/src/MutableRef.ts +56 -42
- package/src/Newtype.ts +10 -7
- package/src/Number.ts +23 -11
- package/src/Optic.ts +25 -22
- package/src/Option.ts +196 -168
- package/src/Order.ts +118 -179
- package/src/PartitionedSemaphore.ts +14 -14
- package/src/Path.ts +2 -2
- package/src/Pipeable.ts +2 -2
- package/src/PlatformError.ts +4 -4
- package/src/Pool.ts +7 -11
- package/src/Predicate.ts +274 -263
- package/src/PubSub.ts +24 -14
- package/src/Pull.ts +4 -4
- package/src/Queue.ts +46 -7
- package/src/RcRef.ts +0 -4
- package/src/Redactable.ts +2 -2
- package/src/Redacted.ts +3 -3
- package/src/Reducer.ts +2 -3
- package/src/Ref.ts +43 -40
- package/src/References.ts +4 -4
- package/src/Request.ts +18 -18
- package/src/Resource.ts +2 -2
- package/src/Result.ts +87 -33
- package/src/Runtime.ts +11 -8
- package/src/Schedule.ts +112 -45
- package/src/Scheduler.ts +6 -4
- package/src/Schema.ts +1015 -759
- package/src/SchemaAST.ts +150 -117
- package/src/SchemaGetter.ts +142 -121
- package/src/SchemaIssue.ts +39 -41
- package/src/SchemaParser.ts +173 -229
- package/src/SchemaRepresentation.ts +50 -32
- package/src/SchemaTransformation.ts +308 -232
- package/src/SchemaUtils.ts +2 -2
- package/src/Scope.ts +15 -0
- package/src/ScopedCache.ts +1 -1
- package/src/ScopedRef.ts +14 -18
- package/src/Semaphore.ts +9 -9
- package/src/Sink.ts +13 -13
- package/src/Stdio.ts +4 -5
- package/src/Stream.ts +354 -57
- package/src/String.ts +6 -9
- package/src/Struct.ts +15 -13
- package/src/SubscriptionRef.ts +24 -19
- package/src/SynchronizedRef.ts +88 -63
- package/src/Tracer.ts +4 -4
- package/src/Trie.ts +15 -0
- package/src/Tuple.ts +25 -19
- package/src/TxReentrantLock.ts +6 -3
- package/src/TxRef.ts +16 -16
- package/src/TxSubscriptionRef.ts +43 -27
- package/src/Types.ts +12 -39
- package/src/UndefinedOr.ts +15 -14
- package/src/Unify.ts +2 -2
- package/src/internal/schema/annotations.ts +4 -4
- package/src/internal/schema/arbitrary.ts +16 -16
- package/src/internal/schema/equivalence.ts +11 -11
- package/src/internal/schema/representation.ts +24 -23
- package/src/internal/schema/schema.ts +17 -17
- package/src/testing/TestSchema.ts +20 -20
- package/src/unstable/ai/AiError.ts +4 -2
- package/src/unstable/ai/AnthropicStructuredOutput.ts +59 -56
- package/src/unstable/ai/Chat.ts +4 -5
- package/src/unstable/ai/EmbeddingModel.ts +4 -4
- package/src/unstable/ai/IdGenerator.ts +2 -3
- package/src/unstable/ai/LanguageModel.ts +5 -4
- package/src/unstable/ai/McpSchema.ts +20 -18
- package/src/unstable/ai/McpServer.ts +14 -7
- package/src/unstable/ai/OpenAiStructuredOutput.ts +72 -61
- package/src/unstable/ai/Prompt.ts +5 -5
- package/src/unstable/ai/ResponseIdTracker.ts +3 -2
- package/src/unstable/ai/Telemetry.ts +21 -6
- package/src/unstable/ai/Tool.ts +11 -10
- package/src/unstable/ai/Toolkit.ts +2 -2
- package/src/unstable/cli/CliError.ts +1 -1
- package/src/unstable/cli/Command.ts +37 -16
- package/src/unstable/cli/Completions.ts +1 -1
- package/src/unstable/cli/Flag.ts +7 -6
- package/src/unstable/cli/GlobalFlag.ts +7 -1
- package/src/unstable/cli/Param.ts +23 -18
- package/src/unstable/cli/Primitive.ts +3 -2
- package/src/unstable/cluster/ClusterCron.ts +1 -2
- package/src/unstable/cluster/ClusterError.ts +2 -2
- package/src/unstable/cluster/ClusterMetrics.ts +5 -0
- package/src/unstable/cluster/ClusterSchema.ts +3 -3
- package/src/unstable/cluster/ClusterWorkflowEngine.ts +15 -15
- package/src/unstable/cluster/EntityResource.ts +10 -0
- package/src/unstable/cluster/Envelope.ts +3 -3
- package/src/unstable/cluster/Reply.ts +15 -13
- package/src/unstable/cluster/RunnerHealth.ts +2 -1
- package/src/unstable/cluster/RunnerServer.ts +2 -2
- package/src/unstable/cluster/Runners.ts +3 -3
- package/src/unstable/cluster/ShardId.ts +3 -3
- package/src/unstable/cluster/Sharding.ts +3 -3
- package/src/unstable/cluster/ShardingConfig.ts +4 -4
- package/src/unstable/cluster/Snowflake.ts +3 -3
- package/src/unstable/cluster/internal/entityManager.ts +2 -2
- package/src/unstable/devtools/DevToolsSchema.ts +1 -1
- package/src/unstable/encoding/Msgpack.ts +6 -6
- package/src/unstable/encoding/Ndjson.ts +5 -0
- package/src/unstable/encoding/Sse.ts +2 -2
- package/src/unstable/eventlog/EventGroup.ts +2 -1
- package/src/unstable/eventlog/EventJournal.ts +10 -0
- package/src/unstable/eventlog/EventLog.ts +3 -3
- package/src/unstable/eventlog/EventLogServerEncrypted.ts +2 -3
- package/src/unstable/eventlog/EventLogServerUnencrypted.ts +5 -7
- package/src/unstable/eventlog/EventLogSessionAuth.ts +4 -4
- package/src/unstable/http/Cookies.ts +4 -4
- package/src/unstable/http/Etag.ts +2 -3
- package/src/unstable/http/Headers.ts +2 -2
- package/src/unstable/http/HttpBody.ts +2 -2
- package/src/unstable/http/HttpClient.ts +2 -2
- package/src/unstable/http/HttpClientError.ts +1 -1
- package/src/unstable/http/HttpClientRequest.ts +30 -3
- package/src/unstable/http/HttpRouter.ts +1 -1
- package/src/unstable/http/HttpServerResponse.ts +25 -20
- package/src/unstable/http/Multipart.ts +3 -3
- package/src/unstable/http/UrlParams.ts +36 -6
- package/src/unstable/httpapi/HttpApi.ts +5 -4
- package/src/unstable/httpapi/HttpApiBuilder.ts +14 -13
- package/src/unstable/httpapi/HttpApiClient.ts +16 -16
- package/src/unstable/httpapi/HttpApiMiddleware.ts +3 -3
- package/src/unstable/httpapi/HttpApiScalar.ts +14 -7
- package/src/unstable/httpapi/HttpApiSchema.ts +15 -15
- package/src/unstable/httpapi/OpenApi.ts +18 -18
- package/src/unstable/observability/OtlpResource.ts +5 -0
- package/src/unstable/observability/PrometheusMetrics.ts +4 -2
- package/src/unstable/persistence/Persistable.ts +1 -1
- package/src/unstable/persistence/PersistedQueue.ts +1 -1
- package/src/unstable/persistence/Persistence.ts +1 -1
- package/src/unstable/persistence/RateLimiter.ts +1 -1
- package/src/unstable/persistence/Redis.ts +1 -1
- package/src/unstable/reactivity/AsyncResult.ts +1 -1
- package/src/unstable/reactivity/Atom.ts +3 -3
- package/src/unstable/rpc/Rpc.ts +3 -3
- package/src/unstable/rpc/RpcClient.ts +1 -1
- package/src/unstable/rpc/RpcClientError.ts +1 -1
- package/src/unstable/rpc/RpcMessage.ts +3 -3
- package/src/unstable/rpc/RpcSchema.ts +2 -2
- package/src/unstable/rpc/RpcSerialization.ts +2 -2
- package/src/unstable/schema/Model.ts +5 -5
- package/src/unstable/schema/VariantSchema.ts +2 -2
- package/src/unstable/socket/Socket.ts +3 -3
- package/src/unstable/sql/SqlError.ts +1 -1
- package/src/unstable/sql/SqlSchema.ts +4 -4
- package/src/unstable/workers/Transferable.ts +6 -6
- package/src/unstable/workers/WorkerError.ts +4 -4
- package/src/unstable/workflow/Activity.ts +1 -1
- package/src/unstable/workflow/DurableDeferred.ts +8 -8
- package/src/unstable/workflow/DurableQueue.ts +1 -2
- package/src/unstable/workflow/Workflow.ts +161 -116
- package/src/unstable/workflow/WorkflowEngine.ts +16 -8
- package/src/unstable/workflow/WorkflowProxy.ts +9 -11
- package/src/unstable/workflow/WorkflowProxyServer.ts +7 -7
|
@@ -89,12 +89,13 @@ import * as BigDecimal from "./BigDecimal.ts"
|
|
|
89
89
|
import * as DateTime from "./DateTime.ts"
|
|
90
90
|
import * as Duration from "./Duration.ts"
|
|
91
91
|
import * as Effect from "./Effect.ts"
|
|
92
|
-
import { formatDate } from "./Formatter.ts"
|
|
92
|
+
import { format, formatDate, formatJson } from "./Formatter.ts"
|
|
93
93
|
import * as Option from "./Option.ts"
|
|
94
94
|
import * as Predicate from "./Predicate.ts"
|
|
95
|
-
import type
|
|
96
|
-
import * as
|
|
97
|
-
import * as
|
|
95
|
+
import type { ErrorOptions, Json } from "./Schema.ts"
|
|
96
|
+
import type * as SchemaAST from "./SchemaAST.ts"
|
|
97
|
+
import * as SchemaGetter from "./SchemaGetter.ts"
|
|
98
|
+
import * as SchemaIssue from "./SchemaIssue.ts"
|
|
98
99
|
|
|
99
100
|
/**
|
|
100
101
|
* Middleware that wraps the entire parsing `Effect` pipeline for both
|
|
@@ -102,9 +103,9 @@ import * as Issue from "./SchemaIssue.ts"
|
|
|
102
103
|
*
|
|
103
104
|
* **When to use**
|
|
104
105
|
*
|
|
105
|
-
* Use when you need to catch or recover from parsing
|
|
106
|
-
*
|
|
107
|
-
*
|
|
106
|
+
* Use when you need a schema middleware to catch or recover from parsing
|
|
107
|
+
* errors (e.g. `Schema.catchDecoding`), run side effects around the parsing
|
|
108
|
+
* pipeline, or access the full `Effect` rather than a single decoded value.
|
|
108
109
|
*
|
|
109
110
|
* **Details**
|
|
110
111
|
*
|
|
@@ -141,23 +142,23 @@ import * as Issue from "./SchemaIssue.ts"
|
|
|
141
142
|
export class Middleware<in out T, in out E, RDE, RDT, RET, REE> {
|
|
142
143
|
readonly _tag = "Middleware"
|
|
143
144
|
readonly decode: (
|
|
144
|
-
effect: Effect.Effect<Option.Option<E>,
|
|
145
|
-
options:
|
|
146
|
-
) => Effect.Effect<Option.Option<T>,
|
|
145
|
+
effect: Effect.Effect<Option.Option<E>, SchemaIssue.Issue, RDE>,
|
|
146
|
+
options: SchemaAST.ParseOptions
|
|
147
|
+
) => Effect.Effect<Option.Option<T>, SchemaIssue.Issue, RDT>
|
|
147
148
|
readonly encode: (
|
|
148
|
-
effect: Effect.Effect<Option.Option<T>,
|
|
149
|
-
options:
|
|
150
|
-
) => Effect.Effect<Option.Option<E>,
|
|
149
|
+
effect: Effect.Effect<Option.Option<T>, SchemaIssue.Issue, RET>,
|
|
150
|
+
options: SchemaAST.ParseOptions
|
|
151
|
+
) => Effect.Effect<Option.Option<E>, SchemaIssue.Issue, REE>
|
|
151
152
|
|
|
152
153
|
constructor(
|
|
153
154
|
decode: (
|
|
154
|
-
effect: Effect.Effect<Option.Option<E>,
|
|
155
|
-
options:
|
|
156
|
-
) => Effect.Effect<Option.Option<T>,
|
|
155
|
+
effect: Effect.Effect<Option.Option<E>, SchemaIssue.Issue, RDE>,
|
|
156
|
+
options: SchemaAST.ParseOptions
|
|
157
|
+
) => Effect.Effect<Option.Option<T>, SchemaIssue.Issue, RDT>,
|
|
157
158
|
encode: (
|
|
158
|
-
effect: Effect.Effect<Option.Option<T>,
|
|
159
|
-
options:
|
|
160
|
-
) => Effect.Effect<Option.Option<E>,
|
|
159
|
+
effect: Effect.Effect<Option.Option<T>, SchemaIssue.Issue, RET>,
|
|
160
|
+
options: SchemaAST.ParseOptions
|
|
161
|
+
) => Effect.Effect<Option.Option<E>, SchemaIssue.Issue, REE>
|
|
161
162
|
) {
|
|
162
163
|
this.decode = decode
|
|
163
164
|
this.encode = encode
|
|
@@ -175,7 +176,8 @@ const TypeId = "~effect/SchemaTransformation/Transformation"
|
|
|
175
176
|
*
|
|
176
177
|
* **When to use**
|
|
177
178
|
*
|
|
178
|
-
* Use when you need
|
|
179
|
+
* Use when you need a schema transformation that defines how a schema converts
|
|
180
|
+
* between two representations.
|
|
179
181
|
* - You want to compose multiple transformations into a pipeline.
|
|
180
182
|
* - You want to flip a transformation to swap decode/encode.
|
|
181
183
|
*
|
|
@@ -213,12 +215,12 @@ const TypeId = "~effect/SchemaTransformation/Transformation"
|
|
|
213
215
|
export class Transformation<in out T, in out E, RD = never, RE = never> {
|
|
214
216
|
readonly [TypeId] = TypeId
|
|
215
217
|
readonly _tag = "Transformation"
|
|
216
|
-
readonly decode:
|
|
217
|
-
readonly encode:
|
|
218
|
+
readonly decode: SchemaGetter.Getter<T, E, RD>
|
|
219
|
+
readonly encode: SchemaGetter.Getter<E, T, RE>
|
|
218
220
|
|
|
219
221
|
constructor(
|
|
220
|
-
decode:
|
|
221
|
-
encode:
|
|
222
|
+
decode: SchemaGetter.Getter<T, E, RD>,
|
|
223
|
+
encode: SchemaGetter.Getter<E, T, RE>
|
|
222
224
|
) {
|
|
223
225
|
this.decode = decode
|
|
224
226
|
this.encode = encode
|
|
@@ -239,7 +241,8 @@ export class Transformation<in out T, in out E, RD = never, RE = never> {
|
|
|
239
241
|
*
|
|
240
242
|
* **When to use**
|
|
241
243
|
*
|
|
242
|
-
* Use to check whether a value is already a
|
|
244
|
+
* Use to check whether a value is already a schema transformation before
|
|
245
|
+
* wrapping it.
|
|
243
246
|
*
|
|
244
247
|
* **Details**
|
|
245
248
|
*
|
|
@@ -274,7 +277,8 @@ export function isTransformation(u: unknown): u is Transformation<any, any, unkn
|
|
|
274
277
|
*
|
|
275
278
|
* **When to use**
|
|
276
279
|
*
|
|
277
|
-
* Use when you already have
|
|
280
|
+
* Use when you already have schema getter instances and want to pair them into
|
|
281
|
+
* a schema transformation.
|
|
278
282
|
* - You want idempotent wrapping (won't double-wrap).
|
|
279
283
|
*
|
|
280
284
|
* **Details**
|
|
@@ -300,8 +304,8 @@ export function isTransformation(u: unknown): u is Transformation<any, any, unkn
|
|
|
300
304
|
* @since 3.10.0
|
|
301
305
|
*/
|
|
302
306
|
export const make = <T, E, RD = never, RE = never>(options: {
|
|
303
|
-
readonly decode:
|
|
304
|
-
readonly encode:
|
|
307
|
+
readonly decode: SchemaGetter.Getter<T, E, RD>
|
|
308
|
+
readonly encode: SchemaGetter.Getter<E, T, RE>
|
|
305
309
|
}): Transformation<T, E, RD, RE> => {
|
|
306
310
|
if (isTransformation(options)) {
|
|
307
311
|
return options as any
|
|
@@ -315,8 +319,8 @@ export const make = <T, E, RD = never, RE = never>(options: {
|
|
|
315
319
|
*
|
|
316
320
|
* **When to use**
|
|
317
321
|
*
|
|
318
|
-
* Use when
|
|
319
|
-
*
|
|
322
|
+
* Use when you need a schema transformation that may fail or require Effect
|
|
323
|
+
* services.
|
|
320
324
|
*
|
|
321
325
|
* **Details**
|
|
322
326
|
*
|
|
@@ -353,12 +357,12 @@ export const make = <T, E, RD = never, RE = never>(options: {
|
|
|
353
357
|
* @since 3.10.0
|
|
354
358
|
*/
|
|
355
359
|
export function transformOrFail<T, E, RD = never, RE = never>(options: {
|
|
356
|
-
readonly decode: (e: E, options:
|
|
357
|
-
readonly encode: (t: T, options:
|
|
360
|
+
readonly decode: (e: E, options: SchemaAST.ParseOptions) => Effect.Effect<T, SchemaIssue.Issue, RD>
|
|
361
|
+
readonly encode: (t: T, options: SchemaAST.ParseOptions) => Effect.Effect<E, SchemaIssue.Issue, RE>
|
|
358
362
|
}): Transformation<T, E, RD, RE> {
|
|
359
363
|
return new Transformation(
|
|
360
|
-
|
|
361
|
-
|
|
364
|
+
SchemaGetter.transformOrFail(options.decode),
|
|
365
|
+
SchemaGetter.transformOrFail(options.encode)
|
|
362
366
|
)
|
|
363
367
|
}
|
|
364
368
|
|
|
@@ -368,8 +372,8 @@ export function transformOrFail<T, E, RD = never, RE = never>(options: {
|
|
|
368
372
|
*
|
|
369
373
|
* **When to use**
|
|
370
374
|
*
|
|
371
|
-
* Use when
|
|
372
|
-
*
|
|
375
|
+
* Use when you need an infallible schema transformation that does not require
|
|
376
|
+
* Effect services.
|
|
373
377
|
*
|
|
374
378
|
* **Details**
|
|
375
379
|
*
|
|
@@ -405,8 +409,8 @@ export function transform<T, E>(options: {
|
|
|
405
409
|
readonly encode: (input: T) => E
|
|
406
410
|
}): Transformation<T, E> {
|
|
407
411
|
return new Transformation(
|
|
408
|
-
|
|
409
|
-
|
|
412
|
+
SchemaGetter.transform(options.decode),
|
|
413
|
+
SchemaGetter.transform(options.encode)
|
|
410
414
|
)
|
|
411
415
|
}
|
|
412
416
|
|
|
@@ -416,7 +420,8 @@ export function transform<T, E>(options: {
|
|
|
416
420
|
*
|
|
417
421
|
* **When to use**
|
|
418
422
|
*
|
|
419
|
-
* Use when you need to produce or consume `Option.None`
|
|
423
|
+
* Use when you need a schema transformation to produce or consume `Option.None`
|
|
424
|
+
* for absent keys.
|
|
420
425
|
* - You are working with optional struct fields.
|
|
421
426
|
*
|
|
422
427
|
* **Details**
|
|
@@ -456,8 +461,8 @@ export function transformOptional<T, E>(options: {
|
|
|
456
461
|
readonly encode: (input: Option.Option<T>) => Option.Option<E>
|
|
457
462
|
}): Transformation<T, E> {
|
|
458
463
|
return new Transformation(
|
|
459
|
-
|
|
460
|
-
|
|
464
|
+
SchemaGetter.transformOptional(options.decode),
|
|
465
|
+
SchemaGetter.transformOptional(options.encode)
|
|
461
466
|
)
|
|
462
467
|
}
|
|
463
468
|
|
|
@@ -467,13 +472,14 @@ export function transformOptional<T, E>(options: {
|
|
|
467
472
|
*
|
|
468
473
|
* **When to use**
|
|
469
474
|
*
|
|
470
|
-
* Use to normalize user input by
|
|
475
|
+
* Use when you need a schema transformation to normalize user input by
|
|
476
|
+
* stripping leading/trailing whitespace.
|
|
471
477
|
*
|
|
472
478
|
* **Details**
|
|
473
479
|
*
|
|
474
|
-
*
|
|
475
|
-
*
|
|
476
|
-
*
|
|
480
|
+
* Decoding applies `String.prototype.trim()`. Encoding is passthrough and
|
|
481
|
+
* returns the string unchanged. This is not round-trippable if the original had
|
|
482
|
+
* whitespace.
|
|
477
483
|
*
|
|
478
484
|
* **Example** (Trimming on decode)
|
|
479
485
|
*
|
|
@@ -494,8 +500,8 @@ export function transformOptional<T, E>(options: {
|
|
|
494
500
|
*/
|
|
495
501
|
export function trim(): Transformation<string, string> {
|
|
496
502
|
return new Transformation(
|
|
497
|
-
|
|
498
|
-
|
|
503
|
+
SchemaGetter.trim(),
|
|
504
|
+
SchemaGetter.passthrough()
|
|
499
505
|
)
|
|
500
506
|
}
|
|
501
507
|
|
|
@@ -505,13 +511,14 @@ export function trim(): Transformation<string, string> {
|
|
|
505
511
|
*
|
|
506
512
|
* **When to use**
|
|
507
513
|
*
|
|
508
|
-
* Use to convert API field names between
|
|
514
|
+
* Use when you need a schema transformation to convert API field names between
|
|
515
|
+
* snake_case and camelCase conventions.
|
|
509
516
|
*
|
|
510
517
|
* **Details**
|
|
511
518
|
*
|
|
512
|
-
*
|
|
513
|
-
*
|
|
514
|
-
*
|
|
519
|
+
* Decoding converts values such as `"my_field_name"` to `"myFieldName"`.
|
|
520
|
+
* Encoding converts values such as `"myFieldName"` back to `"my_field_name"`.
|
|
521
|
+
* The transformation is round-trippable for standard snake_case and camelCase.
|
|
515
522
|
*
|
|
516
523
|
* **Example** (Snake to camel conversion)
|
|
517
524
|
*
|
|
@@ -531,8 +538,8 @@ export function trim(): Transformation<string, string> {
|
|
|
531
538
|
*/
|
|
532
539
|
export function snakeToCamel(): Transformation<string, string> {
|
|
533
540
|
return new Transformation(
|
|
534
|
-
|
|
535
|
-
|
|
541
|
+
SchemaGetter.snakeToCamel(),
|
|
542
|
+
SchemaGetter.camelToSnake()
|
|
536
543
|
)
|
|
537
544
|
}
|
|
538
545
|
|
|
@@ -542,13 +549,13 @@ export function snakeToCamel(): Transformation<string, string> {
|
|
|
542
549
|
*
|
|
543
550
|
* **When to use**
|
|
544
551
|
*
|
|
545
|
-
* Use to normalize strings to lowercase
|
|
552
|
+
* Use when you need a schema transformation to normalize strings to lowercase
|
|
553
|
+
* (e.g. email addresses).
|
|
546
554
|
*
|
|
547
555
|
* **Details**
|
|
548
556
|
*
|
|
549
|
-
*
|
|
550
|
-
* -
|
|
551
|
-
* - Not round-trippable if the original had uppercase characters.
|
|
557
|
+
* Decoding applies `String.prototype.toLowerCase()`. Encoding is passthrough.
|
|
558
|
+
* This is not round-trippable if the original had uppercase characters.
|
|
552
559
|
*
|
|
553
560
|
* **Example** (Lowercasing on decode)
|
|
554
561
|
*
|
|
@@ -568,8 +575,8 @@ export function snakeToCamel(): Transformation<string, string> {
|
|
|
568
575
|
*/
|
|
569
576
|
export function toLowerCase(): Transformation<string, string> {
|
|
570
577
|
return new Transformation(
|
|
571
|
-
|
|
572
|
-
|
|
578
|
+
SchemaGetter.toLowerCase(),
|
|
579
|
+
SchemaGetter.passthrough()
|
|
573
580
|
)
|
|
574
581
|
}
|
|
575
582
|
|
|
@@ -579,13 +586,13 @@ export function toLowerCase(): Transformation<string, string> {
|
|
|
579
586
|
*
|
|
580
587
|
* **When to use**
|
|
581
588
|
*
|
|
582
|
-
* Use to normalize strings to uppercase
|
|
589
|
+
* Use when you need a schema transformation to normalize strings to uppercase
|
|
590
|
+
* (e.g. country codes).
|
|
583
591
|
*
|
|
584
592
|
* **Details**
|
|
585
593
|
*
|
|
586
|
-
*
|
|
587
|
-
* -
|
|
588
|
-
* - Not round-trippable if the original had lowercase characters.
|
|
594
|
+
* Decoding applies `String.prototype.toUpperCase()`. Encoding is passthrough.
|
|
595
|
+
* This is not round-trippable if the original had lowercase characters.
|
|
589
596
|
*
|
|
590
597
|
* **Example** (Uppercasing on decode)
|
|
591
598
|
*
|
|
@@ -605,8 +612,8 @@ export function toLowerCase(): Transformation<string, string> {
|
|
|
605
612
|
*/
|
|
606
613
|
export function toUpperCase(): Transformation<string, string> {
|
|
607
614
|
return new Transformation(
|
|
608
|
-
|
|
609
|
-
|
|
615
|
+
SchemaGetter.toUpperCase(),
|
|
616
|
+
SchemaGetter.passthrough()
|
|
610
617
|
)
|
|
611
618
|
}
|
|
612
619
|
|
|
@@ -616,12 +623,13 @@ export function toUpperCase(): Transformation<string, string> {
|
|
|
616
623
|
*
|
|
617
624
|
* **When to use**
|
|
618
625
|
*
|
|
619
|
-
* Use to normalize display names or
|
|
626
|
+
* Use when you need a schema transformation to normalize display names or
|
|
627
|
+
* titles.
|
|
620
628
|
*
|
|
621
629
|
* **Details**
|
|
622
630
|
*
|
|
623
|
-
*
|
|
624
|
-
*
|
|
631
|
+
* Decoding uppercases the first character and leaves the rest unchanged.
|
|
632
|
+
* Encoding is passthrough.
|
|
625
633
|
*
|
|
626
634
|
* **Example** (Capitalizing on decode)
|
|
627
635
|
*
|
|
@@ -641,8 +649,8 @@ export function toUpperCase(): Transformation<string, string> {
|
|
|
641
649
|
*/
|
|
642
650
|
export function capitalize(): Transformation<string, string> {
|
|
643
651
|
return new Transformation(
|
|
644
|
-
|
|
645
|
-
|
|
652
|
+
SchemaGetter.capitalize(),
|
|
653
|
+
SchemaGetter.passthrough()
|
|
646
654
|
)
|
|
647
655
|
}
|
|
648
656
|
|
|
@@ -652,12 +660,13 @@ export function capitalize(): Transformation<string, string> {
|
|
|
652
660
|
*
|
|
653
661
|
* **When to use**
|
|
654
662
|
*
|
|
655
|
-
* Use to normalize identifiers or field
|
|
663
|
+
* Use when you need a schema transformation to normalize identifiers or field
|
|
664
|
+
* names.
|
|
656
665
|
*
|
|
657
666
|
* **Details**
|
|
658
667
|
*
|
|
659
|
-
*
|
|
660
|
-
*
|
|
668
|
+
* Decoding lowercases the first character and leaves the rest unchanged.
|
|
669
|
+
* Encoding is passthrough.
|
|
661
670
|
*
|
|
662
671
|
* **Example** (Uncapitalizing on decode)
|
|
663
672
|
*
|
|
@@ -677,8 +686,8 @@ export function capitalize(): Transformation<string, string> {
|
|
|
677
686
|
*/
|
|
678
687
|
export function uncapitalize(): Transformation<string, string> {
|
|
679
688
|
return new Transformation(
|
|
680
|
-
|
|
681
|
-
|
|
689
|
+
SchemaGetter.uncapitalize(),
|
|
690
|
+
SchemaGetter.passthrough()
|
|
682
691
|
)
|
|
683
692
|
}
|
|
684
693
|
|
|
@@ -688,14 +697,15 @@ export function uncapitalize(): Transformation<string, string> {
|
|
|
688
697
|
*
|
|
689
698
|
* **When to use**
|
|
690
699
|
*
|
|
691
|
-
* Use to parse query-string-like or
|
|
700
|
+
* Use when you need a schema transformation to parse query-string-like or
|
|
701
|
+
* config-file-like strings into records.
|
|
692
702
|
*
|
|
693
703
|
* **Details**
|
|
694
704
|
*
|
|
695
|
-
*
|
|
696
|
-
*
|
|
697
|
-
*
|
|
698
|
-
* -
|
|
705
|
+
* Decoding splits the string by `separator` (default `","`) into pairs, then
|
|
706
|
+
* splits each pair by `keyValueSeparator` (default `"="`). Encoding joins the
|
|
707
|
+
* record back into a string using the same separators. The transformation is
|
|
708
|
+
* round-trippable when keys and values do not contain the separators.
|
|
699
709
|
*
|
|
700
710
|
* **Example** (Parsing key-value pairs)
|
|
701
711
|
*
|
|
@@ -722,14 +732,14 @@ export function splitKeyValue(options?: {
|
|
|
722
732
|
readonly keyValueSeparator?: string | undefined
|
|
723
733
|
}): Transformation<Record<string, string>, string> {
|
|
724
734
|
return new Transformation(
|
|
725
|
-
|
|
726
|
-
|
|
735
|
+
SchemaGetter.splitKeyValue(options),
|
|
736
|
+
SchemaGetter.joinKeyValue(options)
|
|
727
737
|
)
|
|
728
738
|
}
|
|
729
739
|
|
|
730
740
|
const passthrough_ = new Transformation(
|
|
731
|
-
|
|
732
|
-
|
|
741
|
+
SchemaGetter.passthrough<any>(),
|
|
742
|
+
SchemaGetter.passthrough<any>()
|
|
733
743
|
)
|
|
734
744
|
|
|
735
745
|
/**
|
|
@@ -738,9 +748,8 @@ const passthrough_ = new Transformation(
|
|
|
738
748
|
*
|
|
739
749
|
* **When to use**
|
|
740
750
|
*
|
|
741
|
-
* Use when
|
|
742
|
-
*
|
|
743
|
-
* no actual conversion is needed.
|
|
751
|
+
* Use when you need a schema transformation to connect two schemas that share
|
|
752
|
+
* the same type with no actual conversion.
|
|
744
753
|
*
|
|
745
754
|
* **Details**
|
|
746
755
|
*
|
|
@@ -778,7 +787,7 @@ export function passthrough<T>(): Transformation<T, T> {
|
|
|
778
787
|
*
|
|
779
788
|
* **When to use**
|
|
780
789
|
*
|
|
781
|
-
* Use when
|
|
790
|
+
* Use when you need a no-op schema transformation whose decoded side is
|
|
782
791
|
* narrower than the encoded side.
|
|
783
792
|
*
|
|
784
793
|
* **Details**
|
|
@@ -811,7 +820,8 @@ export function passthroughSupertype<T>(): Transformation<T, T> {
|
|
|
811
820
|
*
|
|
812
821
|
* **When to use**
|
|
813
822
|
*
|
|
814
|
-
* Use when
|
|
823
|
+
* Use when you need a no-op schema transformation whose encoded side is more
|
|
824
|
+
* specific than its decoded side.
|
|
815
825
|
*
|
|
816
826
|
* **Details**
|
|
817
827
|
*
|
|
@@ -843,14 +853,15 @@ export function passthroughSubtype<T>(): Transformation<T, T> {
|
|
|
843
853
|
*
|
|
844
854
|
* **When to use**
|
|
845
855
|
*
|
|
846
|
-
* Use to parse numeric strings from APIs,
|
|
856
|
+
* Use when you need a schema transformation to parse numeric strings from APIs,
|
|
857
|
+
* form data, or URL parameters.
|
|
847
858
|
*
|
|
848
859
|
* **Details**
|
|
849
860
|
*
|
|
850
|
-
*
|
|
851
|
-
*
|
|
852
|
-
*
|
|
853
|
-
*
|
|
861
|
+
* Decoding coerces the string to a number like `Number(s)`. Encoding coerces
|
|
862
|
+
* the number to a string like `String(n)`. This does not validate that the
|
|
863
|
+
* result is finite; combine with `Schema.Finite` or `Schema.Int` for stricter
|
|
864
|
+
* checks.
|
|
854
865
|
*
|
|
855
866
|
* **Example** (Number from string)
|
|
856
867
|
*
|
|
@@ -869,8 +880,8 @@ export function passthroughSubtype<T>(): Transformation<T, T> {
|
|
|
869
880
|
* @since 4.0.0
|
|
870
881
|
*/
|
|
871
882
|
export const numberFromString = new Transformation(
|
|
872
|
-
|
|
873
|
-
|
|
883
|
+
SchemaGetter.Number(),
|
|
884
|
+
SchemaGetter.String()
|
|
874
885
|
)
|
|
875
886
|
|
|
876
887
|
/**
|
|
@@ -879,13 +890,14 @@ export const numberFromString = new Transformation(
|
|
|
879
890
|
*
|
|
880
891
|
* **When to use**
|
|
881
892
|
*
|
|
882
|
-
* Use to parse large integer strings
|
|
893
|
+
* Use when you need a schema transformation to parse large integer strings
|
|
894
|
+
* (e.g. database IDs, blockchain values).
|
|
883
895
|
*
|
|
884
896
|
* **Details**
|
|
885
897
|
*
|
|
886
|
-
*
|
|
887
|
-
*
|
|
888
|
-
*
|
|
898
|
+
* Decoding coerces the string to a bigint like `BigInt(s)`. Encoding coerces
|
|
899
|
+
* the bigint to a string like `String(n)`. Decoding fails if the string is not
|
|
900
|
+
* a valid bigint representation.
|
|
889
901
|
*
|
|
890
902
|
* **Example** (BigInt from string)
|
|
891
903
|
*
|
|
@@ -904,8 +916,8 @@ export const numberFromString = new Transformation(
|
|
|
904
916
|
* @since 4.0.0
|
|
905
917
|
*/
|
|
906
918
|
export const bigintFromString = new Transformation(
|
|
907
|
-
|
|
908
|
-
|
|
919
|
+
SchemaGetter.BigInt(),
|
|
920
|
+
SchemaGetter.String()
|
|
909
921
|
)
|
|
910
922
|
|
|
911
923
|
/**
|
|
@@ -913,13 +925,14 @@ export const bigintFromString = new Transformation(
|
|
|
913
925
|
*
|
|
914
926
|
* **When to use**
|
|
915
927
|
*
|
|
916
|
-
* Use to parse ISO 8601 date strings from
|
|
928
|
+
* Use when you need a schema transformation to parse ISO 8601 date strings from
|
|
929
|
+
* APIs or user input.
|
|
917
930
|
*
|
|
918
931
|
* **Details**
|
|
919
932
|
*
|
|
920
|
-
*
|
|
921
|
-
*
|
|
922
|
-
*
|
|
933
|
+
* Decoding creates a `Date` from the string like `new Date(s)`. Encoding
|
|
934
|
+
* converts the `Date` to an ISO string like `date.toISOString()`, returning
|
|
935
|
+
* `"Invalid Date"` for invalid dates.
|
|
923
936
|
*
|
|
924
937
|
* **Example** (Date from string)
|
|
925
938
|
*
|
|
@@ -938,8 +951,8 @@ export const bigintFromString = new Transformation(
|
|
|
938
951
|
* @since 4.0.0
|
|
939
952
|
*/
|
|
940
953
|
export const dateFromString: Transformation<globalThis.Date, string> = new Transformation(
|
|
941
|
-
|
|
942
|
-
|
|
954
|
+
SchemaGetter.Date(),
|
|
955
|
+
SchemaGetter.transform(formatDate)
|
|
943
956
|
)
|
|
944
957
|
|
|
945
958
|
/**
|
|
@@ -948,14 +961,15 @@ export const dateFromString: Transformation<globalThis.Date, string> = new Trans
|
|
|
948
961
|
*
|
|
949
962
|
* **When to use**
|
|
950
963
|
*
|
|
951
|
-
* Use to parse human-readable duration
|
|
964
|
+
* Use when you need a schema transformation to parse human-readable duration
|
|
965
|
+
* strings from APIs, config, or user input.
|
|
952
966
|
*
|
|
953
967
|
* **Details**
|
|
954
968
|
*
|
|
955
|
-
*
|
|
956
|
-
*
|
|
957
|
-
*
|
|
958
|
-
*
|
|
969
|
+
* Decoding accepts any string that `Duration.fromInput` can parse, including
|
|
970
|
+
* `"Infinity"` and `"-Infinity"`. Encoding returns `String(duration)`,
|
|
971
|
+
* producing strings such as `"2000 millis"` or `"10 nanos"` that round-trip
|
|
972
|
+
* through the parser.
|
|
959
973
|
*
|
|
960
974
|
* **Example** (Duration from string)
|
|
961
975
|
*
|
|
@@ -979,7 +993,8 @@ export const durationFromString: Transformation<Duration.Duration, string> = tra
|
|
|
979
993
|
>({
|
|
980
994
|
decode: (s) =>
|
|
981
995
|
Option.match(Duration.fromInput(s as Duration.Input), {
|
|
982
|
-
onNone: () =>
|
|
996
|
+
onNone: () =>
|
|
997
|
+
Effect.fail(new SchemaIssue.InvalidValue(Option.some(s), { message: `Invalid Duration string: ${s}` })),
|
|
983
998
|
onSome: Effect.succeed
|
|
984
999
|
}),
|
|
985
1000
|
encode: (duration) => Effect.succeed(globalThis.String(duration))
|
|
@@ -991,13 +1006,14 @@ export const durationFromString: Transformation<Duration.Duration, string> = tra
|
|
|
991
1006
|
*
|
|
992
1007
|
* **When to use**
|
|
993
1008
|
*
|
|
994
|
-
* Use when
|
|
1009
|
+
* Use when you need a schema transformation for nanosecond-precision timestamps
|
|
1010
|
+
* or intervals.
|
|
995
1011
|
*
|
|
996
1012
|
* **Details**
|
|
997
1013
|
*
|
|
998
|
-
*
|
|
999
|
-
*
|
|
1000
|
-
*
|
|
1014
|
+
* Decoding always succeeds and creates a `Duration` from nanoseconds. Encoding
|
|
1015
|
+
* fails with `InvalidValue` if the `Duration` cannot be represented as a
|
|
1016
|
+
* `bigint`, such as `Duration.infinity`.
|
|
1001
1017
|
*
|
|
1002
1018
|
* **Example** (Duration from nanoseconds)
|
|
1003
1019
|
*
|
|
@@ -1020,7 +1036,7 @@ export const durationFromNanos: Transformation<Duration.Duration, bigint> = tran
|
|
|
1020
1036
|
Option.match(Duration.toNanos(a), {
|
|
1021
1037
|
onNone: () =>
|
|
1022
1038
|
Effect.fail(
|
|
1023
|
-
new
|
|
1039
|
+
new SchemaIssue.InvalidValue(Option.some(a), { message: `Unable to encode ${a} into a bigint` })
|
|
1024
1040
|
),
|
|
1025
1041
|
onSome: (nanos) => Effect.succeed(nanos)
|
|
1026
1042
|
})
|
|
@@ -1032,8 +1048,8 @@ export const durationFromNanos: Transformation<Duration.Duration, bigint> = tran
|
|
|
1032
1048
|
*
|
|
1033
1049
|
* **When to use**
|
|
1034
1050
|
*
|
|
1035
|
-
* Use when you
|
|
1036
|
-
* stored as millisecond counts.
|
|
1051
|
+
* Use when you need a schema transformation to decode timeouts, delays, elapsed
|
|
1052
|
+
* intervals, or other duration values stored as millisecond counts.
|
|
1037
1053
|
*
|
|
1038
1054
|
* **Details**
|
|
1039
1055
|
*
|
|
@@ -1060,35 +1076,84 @@ export const durationFromMillis: Transformation<Duration.Duration, number> = tra
|
|
|
1060
1076
|
encode: (a) => Duration.toMillis(a)
|
|
1061
1077
|
})
|
|
1062
1078
|
|
|
1063
|
-
|
|
1064
|
-
export const errorFromErrorJsonEncoded = (options?: {
|
|
1065
|
-
readonly includeStack?: boolean | undefined
|
|
1066
|
-
}): Transformation<Error, {
|
|
1079
|
+
type JsonError = {
|
|
1067
1080
|
message: string
|
|
1068
1081
|
name?: string
|
|
1069
1082
|
stack?: string
|
|
1070
|
-
|
|
1071
|
-
|
|
1072
|
-
|
|
1073
|
-
|
|
1074
|
-
|
|
1075
|
-
|
|
1076
|
-
|
|
1077
|
-
|
|
1078
|
-
|
|
1079
|
-
|
|
1080
|
-
|
|
1081
|
-
|
|
1082
|
-
|
|
1083
|
-
|
|
1084
|
-
|
|
1085
|
-
|
|
1086
|
-
|
|
1087
|
-
|
|
1088
|
-
|
|
1083
|
+
cause?: Json
|
|
1084
|
+
}
|
|
1085
|
+
|
|
1086
|
+
const isJsonError = (input: unknown): input is JsonError =>
|
|
1087
|
+
Predicate.isObject(input) && typeof input["message"] === "string"
|
|
1088
|
+
|
|
1089
|
+
const decodeJsonError = (input: JsonError): Error => {
|
|
1090
|
+
const hasCause = Object.hasOwn(input, "cause")
|
|
1091
|
+
const err = hasCause
|
|
1092
|
+
? new Error(input.message, { cause: decodeDefect(input.cause as Json) })
|
|
1093
|
+
: new Error(input.message)
|
|
1094
|
+
if (typeof input.name === "string" && input.name !== "Error") err.name = input.name
|
|
1095
|
+
if (typeof input.stack === "string") err.stack = input.stack
|
|
1096
|
+
return err
|
|
1097
|
+
}
|
|
1098
|
+
|
|
1099
|
+
const encodeUnknownAsJson = (input: unknown): Json => {
|
|
1100
|
+
try {
|
|
1101
|
+
const json = formatJson(input)
|
|
1102
|
+
return json === undefined ? format(input) : JSON.parse(json)
|
|
1103
|
+
} catch {
|
|
1104
|
+
return format(input)
|
|
1105
|
+
}
|
|
1106
|
+
}
|
|
1107
|
+
|
|
1108
|
+
const encodeJsonError = (
|
|
1109
|
+
input: Error,
|
|
1110
|
+
options: ErrorOptions | undefined,
|
|
1111
|
+
encodeDefect: (input: unknown) => Json
|
|
1112
|
+
): JsonError => {
|
|
1113
|
+
const encoded: JsonError = {
|
|
1114
|
+
name: input.name,
|
|
1115
|
+
message: input.message
|
|
1116
|
+
}
|
|
1117
|
+
if (options?.includeStack && typeof input.stack === "string") {
|
|
1118
|
+
encoded.stack = input.stack
|
|
1119
|
+
}
|
|
1120
|
+
if (!options?.excludeCause && input.cause !== undefined) {
|
|
1121
|
+
encoded.cause = encodeDefect(input.cause)
|
|
1122
|
+
}
|
|
1123
|
+
return encoded
|
|
1124
|
+
}
|
|
1125
|
+
|
|
1126
|
+
const makeEncodeDefect = (options?: ErrorOptions): (input: unknown) => Json => {
|
|
1127
|
+
const seen = new WeakSet<object>()
|
|
1128
|
+
const encode = (input: unknown): Json => {
|
|
1129
|
+
if (Predicate.isError(input)) {
|
|
1130
|
+
if (seen.has(input)) {
|
|
1131
|
+
return "[Circular]"
|
|
1089
1132
|
}
|
|
1090
|
-
|
|
1133
|
+
seen.add(input)
|
|
1134
|
+
const encoded = encodeJsonError(input, options, encode)
|
|
1135
|
+
seen.delete(input)
|
|
1136
|
+
return encoded
|
|
1091
1137
|
}
|
|
1138
|
+
return encodeUnknownAsJson(input)
|
|
1139
|
+
}
|
|
1140
|
+
return encode
|
|
1141
|
+
}
|
|
1142
|
+
|
|
1143
|
+
const decodeDefect = (input: Json): unknown => isJsonError(input) ? decodeJsonError(input) : input
|
|
1144
|
+
|
|
1145
|
+
/** @internal */
|
|
1146
|
+
export const errorFromJsonError = (options?: ErrorOptions): Transformation<Error, JsonError> =>
|
|
1147
|
+
transform({
|
|
1148
|
+
decode: decodeJsonError,
|
|
1149
|
+
encode: (input) => makeEncodeDefect(options)(input) as JsonError
|
|
1150
|
+
})
|
|
1151
|
+
|
|
1152
|
+
/** @internal */
|
|
1153
|
+
export const defectFromJson = (options?: ErrorOptions) =>
|
|
1154
|
+
transform({
|
|
1155
|
+
decode: decodeDefect,
|
|
1156
|
+
encode: makeEncodeDefect(options)
|
|
1092
1157
|
})
|
|
1093
1158
|
|
|
1094
1159
|
/**
|
|
@@ -1097,13 +1162,14 @@ export const errorFromErrorJsonEncoded = (options?: {
|
|
|
1097
1162
|
*
|
|
1098
1163
|
* **When to use**
|
|
1099
1164
|
*
|
|
1100
|
-
* Use to convert nullable API fields to
|
|
1165
|
+
* Use when you need a schema transformation to convert nullable API fields to
|
|
1166
|
+
* `Option`.
|
|
1101
1167
|
*
|
|
1102
1168
|
* **Details**
|
|
1103
1169
|
*
|
|
1104
|
-
*
|
|
1105
|
-
*
|
|
1106
|
-
*
|
|
1170
|
+
* Decoding maps `null` to `Option.none()` and non-null values to
|
|
1171
|
+
* `Option.some(value)`. Encoding maps `Option.none()` to `null` and
|
|
1172
|
+
* `Option.some(value)` to `value`. The transformation is pure and synchronous.
|
|
1107
1173
|
*
|
|
1108
1174
|
* **Example** (Option from nullable)
|
|
1109
1175
|
*
|
|
@@ -1136,13 +1202,14 @@ export function optionFromNullOr<T>(): Transformation<Option.Option<T>, T | null
|
|
|
1136
1202
|
*
|
|
1137
1203
|
* **When to use**
|
|
1138
1204
|
*
|
|
1139
|
-
* Use to convert
|
|
1205
|
+
* Use when you need a schema transformation to convert API fields that use
|
|
1206
|
+
* `undefined` for absence to `Option`.
|
|
1140
1207
|
*
|
|
1141
1208
|
* **Details**
|
|
1142
1209
|
*
|
|
1143
|
-
*
|
|
1144
|
-
*
|
|
1145
|
-
*
|
|
1210
|
+
* Decoding maps `undefined` to `Option.none()` and non-undefined values to
|
|
1211
|
+
* `Option.some(value)`. Encoding maps `Option.none()` to `undefined` and
|
|
1212
|
+
* `Option.some(value)` to `value`. The transformation is pure and synchronous.
|
|
1146
1213
|
*
|
|
1147
1214
|
* **Example** (Option from undefined-or)
|
|
1148
1215
|
*
|
|
@@ -1177,15 +1244,15 @@ export function optionFromUndefinedOr<T>(): Transformation<Option.Option<T>, T |
|
|
|
1177
1244
|
*
|
|
1178
1245
|
* **When to use**
|
|
1179
1246
|
*
|
|
1180
|
-
* Use to convert nullish API fields to
|
|
1181
|
-
*
|
|
1247
|
+
* Use when you need a schema transformation to convert nullish API fields to
|
|
1248
|
+
* `Option` when both `null` and `undefined` represent absence.
|
|
1182
1249
|
*
|
|
1183
1250
|
* **Details**
|
|
1184
1251
|
*
|
|
1185
|
-
*
|
|
1186
|
-
*
|
|
1187
|
-
*
|
|
1188
|
-
*
|
|
1252
|
+
* Decoding maps `null` and `undefined` to `Option.none()` and all other values
|
|
1253
|
+
* to `Option.some(value)`. Encoding maps `Option.none()` to `null` or
|
|
1254
|
+
* `undefined` according to `options.onNoneEncoding`, and maps
|
|
1255
|
+
* `Option.some(value)` to `value`. The transformation is pure and synchronous.
|
|
1189
1256
|
*
|
|
1190
1257
|
* **Example** (Option from nullish, encoding None as null)
|
|
1191
1258
|
*
|
|
@@ -1223,14 +1290,15 @@ export function optionFromNullishOr<T>(
|
|
|
1223
1290
|
*
|
|
1224
1291
|
* **When to use**
|
|
1225
1292
|
*
|
|
1226
|
-
* Use to convert optional struct keys
|
|
1227
|
-
*
|
|
1293
|
+
* Use when you need a schema transformation to convert optional struct keys
|
|
1294
|
+
* (declared with `Schema.optionalKey`) to `Option` values.
|
|
1228
1295
|
*
|
|
1229
1296
|
* **Details**
|
|
1230
1297
|
*
|
|
1231
|
-
*
|
|
1232
|
-
*
|
|
1233
|
-
*
|
|
1298
|
+
* Decoding maps an absent key (`None`) to `Some(None)` and a present key
|
|
1299
|
+
* (`Some(v)`) to `Some(Some(v))`. Encoding maps `Some(None)` to `None` to omit
|
|
1300
|
+
* the key, and maps `Some(Some(v))` to `Some(v)`. This uses
|
|
1301
|
+
* `transformOptional` under the hood.
|
|
1234
1302
|
*
|
|
1235
1303
|
* **Example** (Optional key to Option)
|
|
1236
1304
|
*
|
|
@@ -1267,13 +1335,15 @@ export function optionFromOptionalKey<T>(): Transformation<Option.Option<T>, T>
|
|
|
1267
1335
|
*
|
|
1268
1336
|
* **When to use**
|
|
1269
1337
|
*
|
|
1270
|
-
* Use to convert optional (possibly
|
|
1338
|
+
* Use when you need a schema transformation to convert optional (possibly
|
|
1339
|
+
* `undefined`) values to `Option`.
|
|
1271
1340
|
*
|
|
1272
1341
|
* **Details**
|
|
1273
1342
|
*
|
|
1274
|
-
*
|
|
1275
|
-
*
|
|
1276
|
-
*
|
|
1343
|
+
* Decoding maps an absent or `undefined` value to `Some(None)` and a present
|
|
1344
|
+
* value to `Some(Some(v))`. Encoding maps `Some(None)` to `None` to omit the
|
|
1345
|
+
* value, and maps `Some(Some(v))` to `Some(v)`. This uses
|
|
1346
|
+
* `transformOptional` under the hood and filters out `undefined` on decode.
|
|
1277
1347
|
*
|
|
1278
1348
|
* **Example** (Optional value to Option)
|
|
1279
1349
|
*
|
|
@@ -1310,13 +1380,13 @@ export function optionFromOptional<T>(): Transformation<Option.Option<T>, T | un
|
|
|
1310
1380
|
*
|
|
1311
1381
|
* **When to use**
|
|
1312
1382
|
*
|
|
1313
|
-
* Use to parse URL strings from user
|
|
1383
|
+
* Use when you need a schema transformation to parse URL strings from user
|
|
1384
|
+
* input or API responses.
|
|
1314
1385
|
*
|
|
1315
1386
|
* **Details**
|
|
1316
1387
|
*
|
|
1317
|
-
*
|
|
1318
|
-
*
|
|
1319
|
-
* - Encode: returns `url.href`.
|
|
1388
|
+
* Decoding calls `new URL(s)` and fails with `InvalidValue` if the string is
|
|
1389
|
+
* not a valid URL. Encoding returns `url.href`.
|
|
1320
1390
|
*
|
|
1321
1391
|
* **Example** (URL from string)
|
|
1322
1392
|
*
|
|
@@ -1338,7 +1408,7 @@ export const urlFromString: Transformation<URL, string> = transformOrFail<URL, s
|
|
|
1338
1408
|
decode: (s) =>
|
|
1339
1409
|
Effect.try({
|
|
1340
1410
|
try: () => new URL(s),
|
|
1341
|
-
catch: () => new
|
|
1411
|
+
catch: () => new SchemaIssue.InvalidValue(Option.some(s), { message: `Invalid URL string: ${s}` })
|
|
1342
1412
|
}),
|
|
1343
1413
|
encode: (url) => Effect.succeed(url.href)
|
|
1344
1414
|
})
|
|
@@ -1349,13 +1419,14 @@ export const urlFromString: Transformation<URL, string> = transformOrFail<URL, s
|
|
|
1349
1419
|
*
|
|
1350
1420
|
* **When to use**
|
|
1351
1421
|
*
|
|
1352
|
-
* Use to parse decimal number strings
|
|
1422
|
+
* Use when you need a schema transformation to parse decimal number strings
|
|
1423
|
+
* from APIs or user input.
|
|
1353
1424
|
*
|
|
1354
1425
|
* **Details**
|
|
1355
1426
|
*
|
|
1356
|
-
*
|
|
1357
|
-
*
|
|
1358
|
-
*
|
|
1427
|
+
* Decoding calls `BigDecimal.fromString(s)` and fails with `InvalidValue` if
|
|
1428
|
+
* the string is not a valid `BigDecimal` representation. Encoding returns
|
|
1429
|
+
* `BigDecimal.format(bd)`.
|
|
1359
1430
|
*
|
|
1360
1431
|
* @category transforming
|
|
1361
1432
|
* @since 4.0.0
|
|
@@ -1367,7 +1438,7 @@ export const bigDecimalFromString: Transformation<BigDecimal.BigDecimal, string>
|
|
|
1367
1438
|
decode: (s) => {
|
|
1368
1439
|
const result = BigDecimal.fromString(s)
|
|
1369
1440
|
return Option.isNone(result)
|
|
1370
|
-
? Effect.fail(new
|
|
1441
|
+
? Effect.fail(new SchemaIssue.InvalidValue(Option.some(s), { message: `Invalid BigDecimal string: ${s}` }))
|
|
1371
1442
|
: Effect.succeed(result.value)
|
|
1372
1443
|
},
|
|
1373
1444
|
encode: (bd) => Effect.succeed(BigDecimal.format(bd))
|
|
@@ -1379,13 +1450,13 @@ export const bigDecimalFromString: Transformation<BigDecimal.BigDecimal, string>
|
|
|
1379
1450
|
*
|
|
1380
1451
|
* **When to use**
|
|
1381
1452
|
*
|
|
1382
|
-
* Use when
|
|
1383
|
-
*
|
|
1453
|
+
* Use when you need a schema transformation for binary data transmitted as
|
|
1454
|
+
* Base64 strings (e.g. file uploads, API payloads).
|
|
1384
1455
|
*
|
|
1385
1456
|
* **Details**
|
|
1386
1457
|
*
|
|
1387
|
-
*
|
|
1388
|
-
*
|
|
1458
|
+
* Decoding parses the Base64 string into bytes. Encoding writes the byte array
|
|
1459
|
+
* as a Base64 string.
|
|
1389
1460
|
*
|
|
1390
1461
|
* **Example** (Uint8Array from Base64)
|
|
1391
1462
|
*
|
|
@@ -1404,8 +1475,8 @@ export const bigDecimalFromString: Transformation<BigDecimal.BigDecimal, string>
|
|
|
1404
1475
|
* @since 4.0.0
|
|
1405
1476
|
*/
|
|
1406
1477
|
export const uint8ArrayFromBase64String: Transformation<Uint8Array<ArrayBufferLike>, string> = new Transformation(
|
|
1407
|
-
|
|
1408
|
-
|
|
1478
|
+
SchemaGetter.decodeBase64(),
|
|
1479
|
+
SchemaGetter.encodeBase64()
|
|
1409
1480
|
)
|
|
1410
1481
|
|
|
1411
1482
|
/**
|
|
@@ -1414,12 +1485,13 @@ export const uint8ArrayFromBase64String: Transformation<Uint8Array<ArrayBufferLi
|
|
|
1414
1485
|
*
|
|
1415
1486
|
* **When to use**
|
|
1416
1487
|
*
|
|
1417
|
-
* Use when
|
|
1488
|
+
* Use when you need a schema transformation for text data transmitted as Base64
|
|
1489
|
+
* strings.
|
|
1418
1490
|
*
|
|
1419
1491
|
* **Details**
|
|
1420
1492
|
*
|
|
1421
|
-
*
|
|
1422
|
-
*
|
|
1493
|
+
* Decoding parses the Base64 string into a UTF-8 string. Encoding writes the
|
|
1494
|
+
* string as a Base64 string.
|
|
1423
1495
|
*
|
|
1424
1496
|
* **Example** (String from Base64)
|
|
1425
1497
|
*
|
|
@@ -1438,8 +1510,8 @@ export const uint8ArrayFromBase64String: Transformation<Uint8Array<ArrayBufferLi
|
|
|
1438
1510
|
* @since 4.0.0
|
|
1439
1511
|
*/
|
|
1440
1512
|
export const stringFromBase64String: Transformation<string, string> = new Transformation(
|
|
1441
|
-
|
|
1442
|
-
|
|
1513
|
+
SchemaGetter.decodeBase64String(),
|
|
1514
|
+
SchemaGetter.encodeBase64()
|
|
1443
1515
|
)
|
|
1444
1516
|
|
|
1445
1517
|
/**
|
|
@@ -1447,12 +1519,13 @@ export const stringFromBase64String: Transformation<string, string> = new Transf
|
|
|
1447
1519
|
*
|
|
1448
1520
|
* **When to use**
|
|
1449
1521
|
*
|
|
1450
|
-
* Use when
|
|
1522
|
+
* Use when you need a schema transformation for text data transmitted as Base64
|
|
1523
|
+
* URL-safe strings.
|
|
1451
1524
|
*
|
|
1452
1525
|
* **Details**
|
|
1453
1526
|
*
|
|
1454
|
-
*
|
|
1455
|
-
*
|
|
1527
|
+
* Decoding parses the Base64 URL string into a UTF-8 string. Encoding writes
|
|
1528
|
+
* the string as a Base64 URL string.
|
|
1456
1529
|
*
|
|
1457
1530
|
* **Example** (String from Base64Url)
|
|
1458
1531
|
*
|
|
@@ -1471,8 +1544,8 @@ export const stringFromBase64String: Transformation<string, string> = new Transf
|
|
|
1471
1544
|
* @since 4.0.0
|
|
1472
1545
|
*/
|
|
1473
1546
|
export const stringFromBase64UrlString: Transformation<string, string> = new Transformation(
|
|
1474
|
-
|
|
1475
|
-
|
|
1547
|
+
SchemaGetter.decodeBase64UrlString(),
|
|
1548
|
+
SchemaGetter.encodeBase64Url()
|
|
1476
1549
|
)
|
|
1477
1550
|
|
|
1478
1551
|
/**
|
|
@@ -1480,12 +1553,13 @@ export const stringFromBase64UrlString: Transformation<string, string> = new Tra
|
|
|
1480
1553
|
*
|
|
1481
1554
|
* **When to use**
|
|
1482
1555
|
*
|
|
1483
|
-
* Use when
|
|
1556
|
+
* Use when you need a schema transformation for text data transmitted as
|
|
1557
|
+
* hexadecimal strings.
|
|
1484
1558
|
*
|
|
1485
1559
|
* **Details**
|
|
1486
1560
|
*
|
|
1487
|
-
*
|
|
1488
|
-
*
|
|
1561
|
+
* Decoding parses the hex string into a UTF-8 string. Encoding writes the
|
|
1562
|
+
* string as a hex string.
|
|
1489
1563
|
*
|
|
1490
1564
|
* **Example** (String from Hex)
|
|
1491
1565
|
*
|
|
@@ -1504,8 +1578,8 @@ export const stringFromBase64UrlString: Transformation<string, string> = new Tra
|
|
|
1504
1578
|
* @since 4.0.0
|
|
1505
1579
|
*/
|
|
1506
1580
|
export const stringFromHexString: Transformation<string, string> = new Transformation(
|
|
1507
|
-
|
|
1508
|
-
|
|
1581
|
+
SchemaGetter.decodeHexString(),
|
|
1582
|
+
SchemaGetter.encodeHex()
|
|
1509
1583
|
)
|
|
1510
1584
|
|
|
1511
1585
|
/**
|
|
@@ -1514,14 +1588,14 @@ export const stringFromHexString: Transformation<string, string> = new Transform
|
|
|
1514
1588
|
*
|
|
1515
1589
|
* **When to use**
|
|
1516
1590
|
*
|
|
1517
|
-
* Use when
|
|
1518
|
-
*
|
|
1591
|
+
* Use when you need a schema transformation to store structured data in URL
|
|
1592
|
+
* query parameters or fragments, such as composing with `Schema.parseJson` to
|
|
1593
|
+
* round-trip JSON through a URL.
|
|
1519
1594
|
*
|
|
1520
1595
|
* **Details**
|
|
1521
1596
|
*
|
|
1522
|
-
*
|
|
1523
|
-
*
|
|
1524
|
-
* - Encode: calls `encodeURIComponent`.
|
|
1597
|
+
* Decoding calls `decodeURIComponent` and fails if the input contains malformed
|
|
1598
|
+
* percent-encoding sequences. Encoding calls `encodeURIComponent`.
|
|
1525
1599
|
*
|
|
1526
1600
|
* **Example** (URI component schema)
|
|
1527
1601
|
*
|
|
@@ -1540,8 +1614,8 @@ export const stringFromHexString: Transformation<string, string> = new Transform
|
|
|
1540
1614
|
* @since 4.0.0
|
|
1541
1615
|
*/
|
|
1542
1616
|
export const stringFromUriComponent: Transformation<string, string> = new Transformation(
|
|
1543
|
-
|
|
1544
|
-
|
|
1617
|
+
SchemaGetter.decodeUriComponent(),
|
|
1618
|
+
SchemaGetter.encodeUriComponent()
|
|
1545
1619
|
)
|
|
1546
1620
|
|
|
1547
1621
|
/**
|
|
@@ -1550,8 +1624,9 @@ export const stringFromUriComponent: Transformation<string, string> = new Transf
|
|
|
1550
1624
|
*
|
|
1551
1625
|
* **When to use**
|
|
1552
1626
|
*
|
|
1553
|
-
* Use when you
|
|
1554
|
-
* with another schema that
|
|
1627
|
+
* Use when you need a schema transformation to decode JSON stored or
|
|
1628
|
+
* transmitted as a string, usually before composing with another schema that
|
|
1629
|
+
* validates the parsed structure.
|
|
1555
1630
|
*
|
|
1556
1631
|
* **Details**
|
|
1557
1632
|
*
|
|
@@ -1575,8 +1650,8 @@ export const stringFromUriComponent: Transformation<string, string> = new Transf
|
|
|
1575
1650
|
* @since 4.0.0
|
|
1576
1651
|
*/
|
|
1577
1652
|
export const fromJsonString = new Transformation<unknown, string>(
|
|
1578
|
-
|
|
1579
|
-
|
|
1653
|
+
SchemaGetter.parseJson(),
|
|
1654
|
+
SchemaGetter.stringifyJson()
|
|
1580
1655
|
)
|
|
1581
1656
|
|
|
1582
1657
|
/**
|
|
@@ -1585,8 +1660,8 @@ export const fromJsonString = new Transformation<unknown, string>(
|
|
|
1585
1660
|
*
|
|
1586
1661
|
* **When to use**
|
|
1587
1662
|
*
|
|
1588
|
-
* Use when you
|
|
1589
|
-
* `items[0]
|
|
1663
|
+
* Use when you need a schema transformation for form or multipart payloads
|
|
1664
|
+
* whose keys, such as `user[name]` or `items[0]`, should become nested data.
|
|
1590
1665
|
*
|
|
1591
1666
|
* **Details**
|
|
1592
1667
|
*
|
|
@@ -1611,8 +1686,8 @@ export const fromJsonString = new Transformation<unknown, string>(
|
|
|
1611
1686
|
* @since 4.0.0
|
|
1612
1687
|
*/
|
|
1613
1688
|
export const fromFormData = new Transformation<unknown, FormData>(
|
|
1614
|
-
|
|
1615
|
-
|
|
1689
|
+
SchemaGetter.decodeFormData(),
|
|
1690
|
+
SchemaGetter.encodeFormData()
|
|
1616
1691
|
)
|
|
1617
1692
|
|
|
1618
1693
|
/**
|
|
@@ -1621,8 +1696,8 @@ export const fromFormData = new Transformation<unknown, FormData>(
|
|
|
1621
1696
|
*
|
|
1622
1697
|
* **When to use**
|
|
1623
1698
|
*
|
|
1624
|
-
* Use when you
|
|
1625
|
-
* should become nested data.
|
|
1699
|
+
* Use when you need a schema transformation for query strings whose keys, such
|
|
1700
|
+
* as `filter[name]` or `items[0]`, should become nested data.
|
|
1626
1701
|
*
|
|
1627
1702
|
* **Details**
|
|
1628
1703
|
*
|
|
@@ -1647,8 +1722,8 @@ export const fromFormData = new Transformation<unknown, FormData>(
|
|
|
1647
1722
|
* @since 4.0.0
|
|
1648
1723
|
*/
|
|
1649
1724
|
export const fromURLSearchParams = new Transformation<unknown, URLSearchParams>(
|
|
1650
|
-
|
|
1651
|
-
|
|
1725
|
+
SchemaGetter.decodeURLSearchParams(),
|
|
1726
|
+
SchemaGetter.encodeURLSearchParams()
|
|
1652
1727
|
)
|
|
1653
1728
|
|
|
1654
1729
|
/**
|
|
@@ -1657,8 +1732,8 @@ export const fromURLSearchParams = new Transformation<unknown, URLSearchParams>(
|
|
|
1657
1732
|
*
|
|
1658
1733
|
* **When to use**
|
|
1659
1734
|
*
|
|
1660
|
-
* Use to represent fixed-offset time
|
|
1661
|
-
*
|
|
1735
|
+
* Use when you need a schema transformation to represent fixed-offset time
|
|
1736
|
+
* zones with numeric millisecond offsets.
|
|
1662
1737
|
*
|
|
1663
1738
|
* **Details**
|
|
1664
1739
|
*
|
|
@@ -1685,8 +1760,8 @@ export const timeZoneOffsetFromNumber: Transformation<DateTime.TimeZone.Offset,
|
|
|
1685
1760
|
*
|
|
1686
1761
|
* **When to use**
|
|
1687
1762
|
*
|
|
1688
|
-
* Use when a schema transformation
|
|
1689
|
-
* strings and produce `DateTime.TimeZone.Named` values.
|
|
1763
|
+
* Use when you need a schema transformation to accept only IANA time-zone
|
|
1764
|
+
* identifier strings and produce `DateTime.TimeZone.Named` values.
|
|
1690
1765
|
*
|
|
1691
1766
|
* **Details**
|
|
1692
1767
|
*
|
|
@@ -1704,7 +1779,8 @@ export const timeZoneNamedFromString: Transformation<DateTime.TimeZone.Named, st
|
|
|
1704
1779
|
>({
|
|
1705
1780
|
decode: (s) => {
|
|
1706
1781
|
return Option.match(DateTime.zoneMakeNamed(s), {
|
|
1707
|
-
onNone: () =>
|
|
1782
|
+
onNone: () =>
|
|
1783
|
+
Effect.fail(new SchemaIssue.InvalidValue(Option.some(s), { message: `Invalid IANA time zone: ${s}` })),
|
|
1708
1784
|
onSome: Effect.succeed
|
|
1709
1785
|
})
|
|
1710
1786
|
},
|
|
@@ -1717,8 +1793,8 @@ export const timeZoneNamedFromString: Transformation<DateTime.TimeZone.Named, st
|
|
|
1717
1793
|
*
|
|
1718
1794
|
* **When to use**
|
|
1719
1795
|
*
|
|
1720
|
-
* Use when schema
|
|
1721
|
-
* an offset string and produce a general `DateTime.TimeZone`.
|
|
1796
|
+
* Use when you need a schema transformation to accept either an IANA time-zone
|
|
1797
|
+
* identifier or an offset string and produce a general `DateTime.TimeZone`.
|
|
1722
1798
|
*
|
|
1723
1799
|
* **Details**
|
|
1724
1800
|
*
|
|
@@ -1738,7 +1814,7 @@ export const timeZoneFromString: Transformation<DateTime.TimeZone, string> = tra
|
|
|
1738
1814
|
>({
|
|
1739
1815
|
decode: (s) => {
|
|
1740
1816
|
return Option.match(DateTime.zoneFromString(s), {
|
|
1741
|
-
onNone: () => Effect.fail(new
|
|
1817
|
+
onNone: () => Effect.fail(new SchemaIssue.InvalidValue(Option.some(s), { message: `Invalid time zone: ${s}` })),
|
|
1742
1818
|
onSome: Effect.succeed
|
|
1743
1819
|
})
|
|
1744
1820
|
},
|
|
@@ -1751,8 +1827,8 @@ export const timeZoneFromString: Transformation<DateTime.TimeZone, string> = tra
|
|
|
1751
1827
|
*
|
|
1752
1828
|
* **When to use**
|
|
1753
1829
|
*
|
|
1754
|
-
* Use to decode date-time strings
|
|
1755
|
-
* `DateTime.Utc` and encode back as a UTC ISO string.
|
|
1830
|
+
* Use when you need a schema transformation to decode date-time strings to a
|
|
1831
|
+
* normalized `DateTime.Utc` and encode back as a UTC ISO string.
|
|
1756
1832
|
*
|
|
1757
1833
|
* **Details**
|
|
1758
1834
|
*
|
|
@@ -1773,7 +1849,7 @@ export const dateTimeUtcFromString: Transformation<DateTime.Utc, string> = trans
|
|
|
1773
1849
|
decode: (s) => {
|
|
1774
1850
|
return Option.match(DateTime.make(s), {
|
|
1775
1851
|
onNone: () =>
|
|
1776
|
-
Effect.fail(new
|
|
1852
|
+
Effect.fail(new SchemaIssue.InvalidValue(Option.some(s), { message: `Invalid UTC DateTime string: ${s}` })),
|
|
1777
1853
|
onSome: (result) => Effect.succeed(DateTime.toUtc(result))
|
|
1778
1854
|
})
|
|
1779
1855
|
},
|
|
@@ -1786,8 +1862,8 @@ export const dateTimeUtcFromString: Transformation<DateTime.Utc, string> = trans
|
|
|
1786
1862
|
*
|
|
1787
1863
|
* **When to use**
|
|
1788
1864
|
*
|
|
1789
|
-
* Use
|
|
1790
|
-
* decode to `DateTime.Zoned` and encode with `DateTime.formatIsoZoned`.
|
|
1865
|
+
* Use when you need a schema transformation for ISO zoned date-time strings
|
|
1866
|
+
* that decode to `DateTime.Zoned` and encode with `DateTime.formatIsoZoned`.
|
|
1791
1867
|
*
|
|
1792
1868
|
* **Details**
|
|
1793
1869
|
*
|
|
@@ -1807,7 +1883,7 @@ export const dateTimeZonedFromString: Transformation<DateTime.Zoned, string> = t
|
|
|
1807
1883
|
decode: (s) => {
|
|
1808
1884
|
return Option.match(DateTime.makeZonedFromString(s), {
|
|
1809
1885
|
onNone: () =>
|
|
1810
|
-
Effect.fail(new
|
|
1886
|
+
Effect.fail(new SchemaIssue.InvalidValue(Option.some(s), { message: `Invalid Zoned DateTime string: ${s}` })),
|
|
1811
1887
|
onSome: Effect.succeed
|
|
1812
1888
|
})
|
|
1813
1889
|
},
|