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
package/src/SchemaAST.ts
CHANGED
|
@@ -89,10 +89,11 @@ import * as Predicate from "./Predicate.ts"
|
|
|
89
89
|
import * as RegEx from "./RegExp.ts"
|
|
90
90
|
import * as Result from "./Result.ts"
|
|
91
91
|
import type * as Schema from "./Schema.ts"
|
|
92
|
-
import * as
|
|
93
|
-
import * as
|
|
94
|
-
import type * as
|
|
95
|
-
import * as
|
|
92
|
+
import * as SchemaGetter from "./SchemaGetter.ts"
|
|
93
|
+
import * as SchemaIssue from "./SchemaIssue.ts"
|
|
94
|
+
import type * as SchemaParser from "./SchemaParser.ts"
|
|
95
|
+
import * as SchemaTransformation from "./SchemaTransformation.ts"
|
|
96
|
+
import type * as FastCheck from "./testing/FastCheck.ts"
|
|
96
97
|
|
|
97
98
|
/**
|
|
98
99
|
* Discriminated union of all AST node types.
|
|
@@ -238,7 +239,7 @@ export const isNever = makeGuard("Never")
|
|
|
238
239
|
*
|
|
239
240
|
* **When to use**
|
|
240
241
|
*
|
|
241
|
-
* Use when
|
|
242
|
+
* Use when you need to inspect a schema AST and handle the `Unknown` node
|
|
242
243
|
* variant specifically.
|
|
243
244
|
*
|
|
244
245
|
* @see {@link isAny} for the guard for the `Any` node, whose parsed result is typed as `any` rather than `unknown`
|
|
@@ -253,7 +254,7 @@ export const isUnknown = makeGuard("Unknown")
|
|
|
253
254
|
*
|
|
254
255
|
* **When to use**
|
|
255
256
|
*
|
|
256
|
-
* Use when
|
|
257
|
+
* Use when you need to inspect a schema AST and handle the `Any` node
|
|
257
258
|
* variant specifically.
|
|
258
259
|
*
|
|
259
260
|
* @see {@link isUnknown} for the guard for the `Unknown` node, whose parsed result is typed as `unknown` rather than `any`
|
|
@@ -268,8 +269,8 @@ export const isAny = makeGuard("Any")
|
|
|
268
269
|
*
|
|
269
270
|
* **When to use**
|
|
270
271
|
*
|
|
271
|
-
* Use to detect schema AST nodes that match any string value while inspecting
|
|
272
|
-
* transforming
|
|
272
|
+
* Use to detect schema AST nodes that match any string value while inspecting
|
|
273
|
+
* or transforming a Schema AST.
|
|
273
274
|
*
|
|
274
275
|
* @see {@link String} for the AST node class narrowed by this guard
|
|
275
276
|
* @see {@link string} for the singleton `String` AST instance
|
|
@@ -368,7 +369,7 @@ export const isUniqueSymbol = makeGuard("UniqueSymbol")
|
|
|
368
369
|
* **When to use**
|
|
369
370
|
*
|
|
370
371
|
* Use to identify the AST node for the TypeScript `object` keyword when
|
|
371
|
-
* inspecting or transforming a
|
|
372
|
+
* inspecting or transforming a Schema AST.
|
|
372
373
|
*
|
|
373
374
|
* @see {@link ObjectKeyword} for the AST node matched by this guard
|
|
374
375
|
* @see {@link objectKeyword} for the singleton `ObjectKeyword` AST instance
|
|
@@ -463,14 +464,14 @@ export const isSuspend = makeGuard("Suspend")
|
|
|
463
464
|
export class Link {
|
|
464
465
|
readonly to: AST
|
|
465
466
|
readonly transformation:
|
|
466
|
-
|
|
|
467
|
-
|
|
|
467
|
+
| SchemaTransformation.Transformation<any, any, any, any>
|
|
468
|
+
| SchemaTransformation.Middleware<any, any, any, any, any, any>
|
|
468
469
|
|
|
469
470
|
constructor(
|
|
470
471
|
to: AST,
|
|
471
472
|
transformation:
|
|
472
|
-
|
|
|
473
|
-
|
|
|
473
|
+
| SchemaTransformation.Transformation<any, any, any, any>
|
|
474
|
+
| SchemaTransformation.Middleware<any, any, any, any, any, any>
|
|
474
475
|
) {
|
|
475
476
|
this.to = to
|
|
476
477
|
this.transformation = transformation
|
|
@@ -693,14 +694,15 @@ export abstract class Base {
|
|
|
693
694
|
*
|
|
694
695
|
* **When to use**
|
|
695
696
|
*
|
|
696
|
-
* Use when
|
|
697
|
-
*
|
|
697
|
+
* Use when you need a custom schema AST node because none of the built-in
|
|
698
|
+
* nodes fit.
|
|
698
699
|
*
|
|
699
700
|
* **Details**
|
|
700
701
|
*
|
|
701
702
|
* - `typeParameters` — inner schemas this declaration is parameterized over
|
|
702
703
|
* (e.g. the element type for a custom collection).
|
|
703
|
-
* - `run` — factory
|
|
704
|
+
* - `run` — factory that receives `typeParameters` and returns a parser that
|
|
705
|
+
* validates or transforms raw input.
|
|
704
706
|
*
|
|
705
707
|
* @see {@link isDeclaration}
|
|
706
708
|
* @category models
|
|
@@ -711,13 +713,13 @@ export class Declaration extends Base {
|
|
|
711
713
|
readonly typeParameters: ReadonlyArray<AST>
|
|
712
714
|
readonly run: (
|
|
713
715
|
typeParameters: ReadonlyArray<AST>
|
|
714
|
-
) => (input: unknown, self: Declaration, options: ParseOptions) => Effect.Effect<any,
|
|
716
|
+
) => (input: unknown, self: Declaration, options: ParseOptions) => Effect.Effect<any, SchemaIssue.Issue, any>
|
|
715
717
|
|
|
716
718
|
constructor(
|
|
717
719
|
typeParameters: ReadonlyArray<AST>,
|
|
718
720
|
run: (
|
|
719
721
|
typeParameters: ReadonlyArray<AST>
|
|
720
|
-
) => (input: unknown, self: Declaration, options: ParseOptions) => Effect.Effect<any,
|
|
722
|
+
) => (input: unknown, self: Declaration, options: ParseOptions) => Effect.Effect<any, SchemaIssue.Issue, any>,
|
|
721
723
|
annotations?: Schema.Annotations.Annotations,
|
|
722
724
|
checks?: Checks,
|
|
723
725
|
encoding?: Encoding,
|
|
@@ -728,7 +730,7 @@ export class Declaration extends Base {
|
|
|
728
730
|
this.run = run
|
|
729
731
|
}
|
|
730
732
|
/** @internal */
|
|
731
|
-
getParser():
|
|
733
|
+
getParser(): SchemaParser.Parser {
|
|
732
734
|
const run = this.run(this.typeParameters)
|
|
733
735
|
return (oinput, options) => {
|
|
734
736
|
if (Option.isNone(oinput)) return Effect.succeedNone
|
|
@@ -820,9 +822,9 @@ export class Undefined extends Base {
|
|
|
820
822
|
|
|
821
823
|
const undefinedToNull = new Link(
|
|
822
824
|
null_,
|
|
823
|
-
new
|
|
824
|
-
|
|
825
|
-
|
|
825
|
+
new SchemaTransformation.Transformation(
|
|
826
|
+
SchemaGetter.transform(() => undefined),
|
|
827
|
+
SchemaGetter.transform(() => null)
|
|
826
828
|
)
|
|
827
829
|
)
|
|
828
830
|
|
|
@@ -1087,9 +1089,9 @@ export class Enum extends Base {
|
|
|
1087
1089
|
return replaceEncoding(this, [
|
|
1088
1090
|
new Link(
|
|
1089
1091
|
new Union(Object.keys(coercions).map((k) => new Literal(k)), "anyOf"),
|
|
1090
|
-
new
|
|
1091
|
-
|
|
1092
|
-
|
|
1092
|
+
new SchemaTransformation.Transformation(
|
|
1093
|
+
SchemaGetter.transform((s) => coercions[s]),
|
|
1094
|
+
SchemaGetter.String()
|
|
1093
1095
|
)
|
|
1094
1096
|
)
|
|
1095
1097
|
])
|
|
@@ -1166,12 +1168,12 @@ export class TemplateLiteral extends Base {
|
|
|
1166
1168
|
this.encodedParts = encodedParts
|
|
1167
1169
|
}
|
|
1168
1170
|
/** @internal */
|
|
1169
|
-
getParser(recur: (ast: AST) =>
|
|
1171
|
+
getParser(recur: (ast: AST) => SchemaParser.Parser): SchemaParser.Parser {
|
|
1170
1172
|
const parser = recur(this.asTemplateLiteralParser())
|
|
1171
1173
|
return (oinput: Option.Option<unknown>, options: ParseOptions) =>
|
|
1172
1174
|
Effect.mapBothEager(parser(oinput, options), {
|
|
1173
1175
|
onSuccess: () => oinput,
|
|
1174
|
-
onFailure: (issue) => new
|
|
1176
|
+
onFailure: (issue) => new SchemaIssue.Composite(this, oinput, [issue])
|
|
1175
1177
|
})
|
|
1176
1178
|
}
|
|
1177
1179
|
/** @internal */
|
|
@@ -1185,17 +1187,17 @@ export class TemplateLiteral extends Base {
|
|
|
1185
1187
|
return decodeTo(
|
|
1186
1188
|
string,
|
|
1187
1189
|
tuple,
|
|
1188
|
-
new
|
|
1189
|
-
|
|
1190
|
+
new SchemaTransformation.Transformation(
|
|
1191
|
+
SchemaGetter.transformOrFail((s: string) => {
|
|
1190
1192
|
const match = regExp.exec(s)
|
|
1191
1193
|
if (match) return Effect.succeed(match.slice(1, this.parts.length + 1))
|
|
1192
1194
|
return Effect.fail(
|
|
1193
|
-
new
|
|
1195
|
+
new SchemaIssue.InvalidValue(Option.some(s), {
|
|
1194
1196
|
message: `Expected a value matching ${regExp.source}, got ${format(s)}`
|
|
1195
1197
|
})
|
|
1196
1198
|
)
|
|
1197
1199
|
}),
|
|
1198
|
-
|
|
1200
|
+
SchemaGetter.transform((parts) => parts.join(""))
|
|
1199
1201
|
)
|
|
1200
1202
|
)
|
|
1201
1203
|
}
|
|
@@ -1315,9 +1317,9 @@ function literalToString(ast: Literal): Literal {
|
|
|
1315
1317
|
return replaceEncoding(ast, [
|
|
1316
1318
|
new Link(
|
|
1317
1319
|
new Literal(literalAsString),
|
|
1318
|
-
new
|
|
1319
|
-
|
|
1320
|
-
|
|
1320
|
+
new SchemaTransformation.Transformation(
|
|
1321
|
+
SchemaGetter.transform(() => ast.literal),
|
|
1322
|
+
SchemaGetter.transform(() => literalAsString)
|
|
1321
1323
|
)
|
|
1322
1324
|
)
|
|
1323
1325
|
])
|
|
@@ -1474,8 +1476,8 @@ export const boolean = new Boolean()
|
|
|
1474
1476
|
*
|
|
1475
1477
|
* **When to use**
|
|
1476
1478
|
*
|
|
1477
|
-
* Use when
|
|
1478
|
-
*
|
|
1479
|
+
* Use when you need the AST node class for schemas that match any JavaScript
|
|
1480
|
+
* symbol value.
|
|
1479
1481
|
*
|
|
1480
1482
|
* **Details**
|
|
1481
1483
|
*
|
|
@@ -1571,6 +1573,11 @@ export const bigInt = new BigInt()
|
|
|
1571
1573
|
/**
|
|
1572
1574
|
* AST node for array-like types — both tuples and arrays.
|
|
1573
1575
|
*
|
|
1576
|
+
* **When to use**
|
|
1577
|
+
*
|
|
1578
|
+
* Use when constructing or inspecting AST nodes for tuple or array-like schemas,
|
|
1579
|
+
* including rest elements.
|
|
1580
|
+
*
|
|
1574
1581
|
* **Details**
|
|
1575
1582
|
*
|
|
1576
1583
|
* - `elements` — positional element types (tuple elements). An element is
|
|
@@ -1638,7 +1645,7 @@ export class Arrays extends Base {
|
|
|
1638
1645
|
}
|
|
1639
1646
|
}
|
|
1640
1647
|
/** @internal */
|
|
1641
|
-
getParser(recur: (ast: AST) =>
|
|
1648
|
+
getParser(recur: (ast: AST) => SchemaParser.Parser): SchemaParser.Parser {
|
|
1642
1649
|
// oxlint-disable-next-line @typescript-eslint/no-this-alias
|
|
1643
1650
|
const ast = this
|
|
1644
1651
|
const elements = ast.elements.map((ast) => ({ ast, parser: recur(ast) }))
|
|
@@ -1648,7 +1655,10 @@ export class Arrays extends Base {
|
|
|
1648
1655
|
const [head, ...tail] = rest
|
|
1649
1656
|
const tailLen = tail.length
|
|
1650
1657
|
|
|
1651
|
-
function getParser(
|
|
1658
|
+
function getParser(
|
|
1659
|
+
tailThreshold: number,
|
|
1660
|
+
index: number
|
|
1661
|
+
): { readonly ast: AST; readonly parser: SchemaParser.Parser } {
|
|
1652
1662
|
if (index < elementLen) {
|
|
1653
1663
|
return elements[index]
|
|
1654
1664
|
} else if (index >= tailThreshold) {
|
|
@@ -1665,7 +1675,7 @@ export class Arrays extends Base {
|
|
|
1665
1675
|
|
|
1666
1676
|
// If the input is not an array, return early with an error
|
|
1667
1677
|
if (!Array.isArray(input)) {
|
|
1668
|
-
return yield* Effect.fail(new
|
|
1678
|
+
return yield* Effect.fail(new SchemaIssue.InvalidType(ast, oinput))
|
|
1669
1679
|
}
|
|
1670
1680
|
|
|
1671
1681
|
const len = input.length
|
|
@@ -1676,7 +1686,7 @@ export class Arrays extends Base {
|
|
|
1676
1686
|
len,
|
|
1677
1687
|
tailThreshold: resolveTailThreshold(len, elementLen, tailLen),
|
|
1678
1688
|
output: new globalThis.Array(len),
|
|
1679
|
-
issues: undefined as Arr.NonEmptyArray<
|
|
1689
|
+
issues: undefined as Arr.NonEmptyArray<SchemaIssue.Issue> | undefined,
|
|
1680
1690
|
options
|
|
1681
1691
|
}
|
|
1682
1692
|
const concurrency = resolveConcurrency(options?.concurrency)
|
|
@@ -1691,17 +1701,17 @@ export class Arrays extends Base {
|
|
|
1691
1701
|
// ---------------------------------------------
|
|
1692
1702
|
if (ast.rest.length === 0 && len > elementLen) {
|
|
1693
1703
|
for (let i = elementLen; i <= len - 1; i++) {
|
|
1694
|
-
const issue = new
|
|
1704
|
+
const issue = new SchemaIssue.Pointer([i], new SchemaIssue.UnexpectedKey(ast, input[i]))
|
|
1695
1705
|
if (options.errors === "all") {
|
|
1696
1706
|
if (state.issues) state.issues.push(issue)
|
|
1697
1707
|
else state.issues = [issue]
|
|
1698
1708
|
} else {
|
|
1699
|
-
return yield* Effect.fail(new
|
|
1709
|
+
return yield* Effect.fail(new SchemaIssue.Composite(ast, oinput, [issue]))
|
|
1700
1710
|
}
|
|
1701
1711
|
}
|
|
1702
1712
|
}
|
|
1703
1713
|
if (state.issues) {
|
|
1704
|
-
return yield* Effect.fail(new
|
|
1714
|
+
return yield* Effect.fail(new SchemaIssue.Composite(ast, oinput, state.issues))
|
|
1705
1715
|
}
|
|
1706
1716
|
return Option.some(state.output)
|
|
1707
1717
|
})
|
|
@@ -1723,11 +1733,14 @@ const parseArray = iterateEager<{
|
|
|
1723
1733
|
readonly ast: AST
|
|
1724
1734
|
readonly oinput: Option.Option<unknown>
|
|
1725
1735
|
readonly len: number
|
|
1726
|
-
readonly getParser: (
|
|
1736
|
+
readonly getParser: (
|
|
1737
|
+
tailThreshold: number,
|
|
1738
|
+
index: number
|
|
1739
|
+
) => { readonly ast: AST; readonly parser: SchemaParser.Parser }
|
|
1727
1740
|
readonly tailThreshold: number
|
|
1728
1741
|
readonly options: ParseOptions
|
|
1729
1742
|
readonly output: Array<unknown>
|
|
1730
|
-
issues: Array<
|
|
1743
|
+
issues: Array<SchemaIssue.Issue> | undefined
|
|
1731
1744
|
}, unknown>()({
|
|
1732
1745
|
onItem(s, item, i) {
|
|
1733
1746
|
const value = i < s.len ? Option.some(item) : Option.none()
|
|
@@ -1741,12 +1754,12 @@ const parseArray = iterateEager<{
|
|
|
1741
1754
|
} else {
|
|
1742
1755
|
const p = s.getParser(s.tailThreshold, i)
|
|
1743
1756
|
if (isOptional(p.ast)) return
|
|
1744
|
-
const issue = new
|
|
1757
|
+
const issue = new SchemaIssue.Pointer([i], new SchemaIssue.MissingKey(p.ast.context?.annotations))
|
|
1745
1758
|
if (s.options.errors === "all") {
|
|
1746
1759
|
if (s.issues) s.issues.push(issue)
|
|
1747
1760
|
else s.issues = [issue]
|
|
1748
1761
|
} else {
|
|
1749
|
-
return Exit.fail(new
|
|
1762
|
+
return Exit.fail(new SchemaIssue.Composite(s.ast, s.oinput, [issue]))
|
|
1750
1763
|
}
|
|
1751
1764
|
}
|
|
1752
1765
|
}
|
|
@@ -1769,22 +1782,22 @@ const wrapPropertyKeyIssue = (
|
|
|
1769
1782
|
s: {
|
|
1770
1783
|
readonly oinput: Option.Option<unknown>
|
|
1771
1784
|
readonly options: ParseOptions
|
|
1772
|
-
issues: Array<
|
|
1785
|
+
issues: Array<SchemaIssue.Issue> | undefined
|
|
1773
1786
|
},
|
|
1774
1787
|
ast: AST,
|
|
1775
1788
|
key: PropertyKey,
|
|
1776
|
-
exit: Exit.Failure<any,
|
|
1789
|
+
exit: Exit.Failure<any, SchemaIssue.Issue>
|
|
1777
1790
|
) => {
|
|
1778
1791
|
const issueResult = Cause.findError(exit.cause)
|
|
1779
1792
|
if (Result.isFailure(issueResult)) {
|
|
1780
1793
|
return exit
|
|
1781
1794
|
}
|
|
1782
|
-
const issue = new
|
|
1795
|
+
const issue = new SchemaIssue.Pointer([key], issueResult.success)
|
|
1783
1796
|
if (s.options.errors === "all") {
|
|
1784
1797
|
if (s.issues) s.issues.push(issue)
|
|
1785
1798
|
else s.issues = [issue]
|
|
1786
1799
|
} else {
|
|
1787
|
-
return Exit.fail(new
|
|
1800
|
+
return Exit.fail(new SchemaIssue.Composite(ast, s.oinput, [issue]))
|
|
1788
1801
|
}
|
|
1789
1802
|
}
|
|
1790
1803
|
|
|
@@ -1883,11 +1896,16 @@ export class KeyValueCombiner {
|
|
|
1883
1896
|
/**
|
|
1884
1897
|
* Represents an index signature entry within an {@link Objects} node.
|
|
1885
1898
|
*
|
|
1899
|
+
* **When to use**
|
|
1900
|
+
*
|
|
1901
|
+
* Use when constructing or inspecting object AST entries for record-like keys
|
|
1902
|
+
* and values.
|
|
1903
|
+
*
|
|
1886
1904
|
* **Details**
|
|
1887
1905
|
*
|
|
1888
1906
|
* - `parameter` — the key type AST (e.g. {@link String} for `string` keys,
|
|
1889
1907
|
* {@link TemplateLiteral} for patterned keys).
|
|
1890
|
-
* - `type` — the value type
|
|
1908
|
+
* - `type` — the value type SchemaAST.
|
|
1891
1909
|
* - `merge` — optional {@link KeyValueCombiner} for handling duplicate keys.
|
|
1892
1910
|
*
|
|
1893
1911
|
* **Gotchas**
|
|
@@ -1922,6 +1940,11 @@ export class IndexSignature {
|
|
|
1922
1940
|
/**
|
|
1923
1941
|
* AST node for object-like schemas, including structs and records.
|
|
1924
1942
|
*
|
|
1943
|
+
* **When to use**
|
|
1944
|
+
*
|
|
1945
|
+
* Use when constructing or inspecting AST nodes for structs or records rather
|
|
1946
|
+
* than array-like schemas.
|
|
1947
|
+
*
|
|
1925
1948
|
* **Details**
|
|
1926
1949
|
*
|
|
1927
1950
|
* - `propertySignatures` — named properties with their types (struct fields).
|
|
@@ -1983,14 +2006,14 @@ export class Objects extends Base {
|
|
|
1983
2006
|
}
|
|
1984
2007
|
}
|
|
1985
2008
|
/** @internal */
|
|
1986
|
-
getParser(recur: (ast: AST) =>
|
|
2009
|
+
getParser(recur: (ast: AST) => SchemaParser.Parser): SchemaParser.Parser {
|
|
1987
2010
|
// oxlint-disable-next-line @typescript-eslint/no-this-alias
|
|
1988
2011
|
const ast = this
|
|
1989
2012
|
const expectedKeys: Array<PropertyKey> = []
|
|
1990
2013
|
const expectedKeysSet = new Set<PropertyKey>()
|
|
1991
2014
|
const properties: Array<{
|
|
1992
2015
|
readonly ps: PropertySignature | IndexSignature
|
|
1993
|
-
readonly parser:
|
|
2016
|
+
readonly parser: SchemaParser.Parser
|
|
1994
2017
|
readonly name: PropertyKey
|
|
1995
2018
|
readonly type: AST
|
|
1996
2019
|
}> = []
|
|
@@ -2018,7 +2041,7 @@ export class Objects extends Base {
|
|
|
2018
2041
|
readonly input: Record<PropertyKey, unknown>
|
|
2019
2042
|
readonly options: ParseOptions
|
|
2020
2043
|
readonly out: Record<PropertyKey, unknown>
|
|
2021
|
-
issues: Array<
|
|
2044
|
+
issues: Array<SchemaIssue.Issue> | undefined
|
|
2022
2045
|
}, [key: PropertyKey, is: IndexSignature]>()({
|
|
2023
2046
|
onItem: Effect.fnUntracedEager(function*(
|
|
2024
2047
|
s,
|
|
@@ -2028,7 +2051,7 @@ export class Objects extends Base {
|
|
|
2028
2051
|
const effKey = parserKey(Option.some(key), s.options)
|
|
2029
2052
|
const exitKey = (effectIsExit(effKey) ? effKey : yield* Effect.exit(effKey)) as Exit.Exit<
|
|
2030
2053
|
Option.Option<PropertyKey>,
|
|
2031
|
-
|
|
2054
|
+
SchemaIssue.Issue
|
|
2032
2055
|
>
|
|
2033
2056
|
if (exitKey._tag === "Failure") {
|
|
2034
2057
|
const eff = wrapPropertyKeyIssue(s, ast, key, exitKey)
|
|
@@ -2055,7 +2078,7 @@ export class Objects extends Base {
|
|
|
2055
2078
|
}
|
|
2056
2079
|
}
|
|
2057
2080
|
}),
|
|
2058
|
-
step: (_s, _, exit: Exit.Exit<void,
|
|
2081
|
+
step: (_s, _, exit: Exit.Exit<void, SchemaIssue.Issue>) => exit._tag === "Failure" ? exit : undefined
|
|
2059
2082
|
}) :
|
|
2060
2083
|
undefined
|
|
2061
2084
|
|
|
@@ -2067,7 +2090,7 @@ export class Objects extends Base {
|
|
|
2067
2090
|
|
|
2068
2091
|
// If the input is not a record, return early with an error
|
|
2069
2092
|
if (!(typeof input === "object" && input !== null && !Array.isArray(input))) {
|
|
2070
|
-
return yield* Effect.fail(new
|
|
2093
|
+
return yield* Effect.fail(new SchemaIssue.InvalidType(ast, oinput))
|
|
2071
2094
|
}
|
|
2072
2095
|
|
|
2073
2096
|
const out: Record<PropertyKey, unknown> = {}
|
|
@@ -2076,7 +2099,7 @@ export class Objects extends Base {
|
|
|
2076
2099
|
oinput,
|
|
2077
2100
|
input,
|
|
2078
2101
|
out,
|
|
2079
|
-
issues: undefined as Arr.NonEmptyArray<
|
|
2102
|
+
issues: undefined as Arr.NonEmptyArray<SchemaIssue.Issue> | undefined,
|
|
2080
2103
|
options
|
|
2081
2104
|
}
|
|
2082
2105
|
const errorsAllOption = options.errors === "all"
|
|
@@ -2094,7 +2117,7 @@ export class Objects extends Base {
|
|
|
2094
2117
|
if (!expectedKeysSet.has(key)) {
|
|
2095
2118
|
// key is unexpected
|
|
2096
2119
|
if (onExcessPropertyError) {
|
|
2097
|
-
const issue = new
|
|
2120
|
+
const issue = new SchemaIssue.Pointer([key], new SchemaIssue.UnexpectedKey(ast, input[key]))
|
|
2098
2121
|
if (errorsAllOption) {
|
|
2099
2122
|
if (state.issues) {
|
|
2100
2123
|
state.issues.push(issue)
|
|
@@ -2103,7 +2126,7 @@ export class Objects extends Base {
|
|
|
2103
2126
|
}
|
|
2104
2127
|
continue
|
|
2105
2128
|
} else {
|
|
2106
|
-
return yield* Effect.fail(new
|
|
2129
|
+
return yield* Effect.fail(new SchemaIssue.Composite(ast, oinput, [issue]))
|
|
2107
2130
|
}
|
|
2108
2131
|
} else {
|
|
2109
2132
|
// preserve key
|
|
@@ -2139,7 +2162,7 @@ export class Objects extends Base {
|
|
|
2139
2162
|
}
|
|
2140
2163
|
|
|
2141
2164
|
if (state.issues) {
|
|
2142
|
-
return yield* Effect.fail(new
|
|
2165
|
+
return yield* Effect.fail(new SchemaIssue.Composite(ast, oinput, state.issues))
|
|
2143
2166
|
}
|
|
2144
2167
|
if (options.propertyOrder === "original") {
|
|
2145
2168
|
// preserve input keys order
|
|
@@ -2194,7 +2217,7 @@ export class Objects extends Base {
|
|
|
2194
2217
|
|
|
2195
2218
|
type ParsedProperty = {
|
|
2196
2219
|
readonly ps: PropertySignature | IndexSignature
|
|
2197
|
-
readonly parser:
|
|
2220
|
+
readonly parser: SchemaParser.Parser
|
|
2198
2221
|
readonly name: PropertyKey
|
|
2199
2222
|
readonly type: AST
|
|
2200
2223
|
}
|
|
@@ -2205,7 +2228,7 @@ const parseProperties = iterateEager<{
|
|
|
2205
2228
|
readonly input: Record<PropertyKey, unknown>
|
|
2206
2229
|
readonly options: ParseOptions
|
|
2207
2230
|
readonly out: Record<PropertyKey, unknown>
|
|
2208
|
-
issues: Array<
|
|
2231
|
+
issues: Array<SchemaIssue.Issue> | undefined
|
|
2209
2232
|
}, ParsedProperty>()({
|
|
2210
2233
|
onItem(
|
|
2211
2234
|
s: {
|
|
@@ -2213,7 +2236,7 @@ const parseProperties = iterateEager<{
|
|
|
2213
2236
|
readonly input: Record<PropertyKey, unknown>
|
|
2214
2237
|
readonly options: ParseOptions
|
|
2215
2238
|
readonly out: Record<PropertyKey, unknown>
|
|
2216
|
-
issues: Array<
|
|
2239
|
+
issues: Array<SchemaIssue.Issue> | undefined
|
|
2217
2240
|
},
|
|
2218
2241
|
p
|
|
2219
2242
|
) {
|
|
@@ -2228,14 +2251,14 @@ const parseProperties = iterateEager<{
|
|
|
2228
2251
|
} else if (exit.value._tag === "Some") {
|
|
2229
2252
|
internalRecord.set(s.out, p.name, exit.value.value)
|
|
2230
2253
|
} else if (!isOptional(p.type)) {
|
|
2231
|
-
const issue = new
|
|
2254
|
+
const issue = new SchemaIssue.Pointer([p.name], new SchemaIssue.MissingKey(p.type.context?.annotations))
|
|
2232
2255
|
if (s.options.errors === "all") {
|
|
2233
2256
|
if (s.issues) s.issues.push(issue)
|
|
2234
2257
|
else s.issues = [issue]
|
|
2235
2258
|
return
|
|
2236
2259
|
} else {
|
|
2237
2260
|
return Exit.fail(
|
|
2238
|
-
new
|
|
2261
|
+
new SchemaIssue.Composite(s.ast, s.oinput, [issue])
|
|
2239
2262
|
)
|
|
2240
2263
|
}
|
|
2241
2264
|
}
|
|
@@ -2545,7 +2568,7 @@ export class Union<A extends AST = AST> extends Base {
|
|
|
2545
2568
|
this.mode = mode
|
|
2546
2569
|
}
|
|
2547
2570
|
/** @internal */
|
|
2548
|
-
getParser(recur: (ast: AST) =>
|
|
2571
|
+
getParser(recur: (ast: AST) => SchemaParser.Parser): SchemaParser.Parser {
|
|
2549
2572
|
// oxlint-disable-next-line @typescript-eslint/no-this-alias
|
|
2550
2573
|
const ast = this
|
|
2551
2574
|
|
|
@@ -2563,16 +2586,20 @@ export class Union<A extends AST = AST> extends Base {
|
|
|
2563
2586
|
input,
|
|
2564
2587
|
out: undefined,
|
|
2565
2588
|
successes: [],
|
|
2566
|
-
issues: undefined as Arr.NonEmptyArray<
|
|
2589
|
+
issues: undefined as Arr.NonEmptyArray<SchemaIssue.Issue> | undefined,
|
|
2567
2590
|
options
|
|
2568
2591
|
}
|
|
2569
2592
|
const concurrency = resolveConcurrency(options?.concurrency)
|
|
2570
2593
|
const eff = parseUnion(state, candidates, concurrency)
|
|
2571
2594
|
if (!eff) {
|
|
2572
|
-
return state.out
|
|
2595
|
+
return state.out
|
|
2596
|
+
? Effect.succeed(state.out)
|
|
2597
|
+
: Effect.fail(new SchemaIssue.AnyOf(ast, input, state.issues ?? []))
|
|
2573
2598
|
}
|
|
2574
2599
|
return Effect.flatMap(eff, (_) => {
|
|
2575
|
-
return state.out
|
|
2600
|
+
return state.out
|
|
2601
|
+
? Effect.succeed(state.out)
|
|
2602
|
+
: Effect.fail(new SchemaIssue.AnyOf(ast, input, state.issues ?? []))
|
|
2576
2603
|
})
|
|
2577
2604
|
}
|
|
2578
2605
|
}
|
|
@@ -2623,14 +2650,14 @@ export class Union<A extends AST = AST> extends Base {
|
|
|
2623
2650
|
}
|
|
2624
2651
|
|
|
2625
2652
|
const parseUnion = iterateEager<{
|
|
2626
|
-
readonly recur: (ast: AST) =>
|
|
2653
|
+
readonly recur: (ast: AST) => SchemaParser.Parser
|
|
2627
2654
|
readonly ast: Union
|
|
2628
2655
|
readonly oinput: Option.Option<unknown>
|
|
2629
2656
|
readonly input: unknown
|
|
2630
2657
|
readonly options: ParseOptions
|
|
2631
2658
|
out: Option.Option<unknown> | undefined
|
|
2632
2659
|
successes: Array<AST>
|
|
2633
|
-
issues: Array<
|
|
2660
|
+
issues: Array<SchemaIssue.Issue> | undefined
|
|
2634
2661
|
}, AST>()({
|
|
2635
2662
|
onItem(s, ast) {
|
|
2636
2663
|
const parser = s.recur(ast)
|
|
@@ -2647,7 +2674,7 @@ const parseUnion = iterateEager<{
|
|
|
2647
2674
|
} else {
|
|
2648
2675
|
if (s.out && s.ast.mode === "oneOf") {
|
|
2649
2676
|
s.successes.push(candidate)
|
|
2650
|
-
return Exit.fail(new
|
|
2677
|
+
return Exit.fail(new SchemaIssue.OneOf(s.ast, s.input, s.successes))
|
|
2651
2678
|
}
|
|
2652
2679
|
s.out = exit.value
|
|
2653
2680
|
s.successes.push(candidate)
|
|
@@ -2666,9 +2693,9 @@ const nonFiniteLiterals = new Union([
|
|
|
2666
2693
|
|
|
2667
2694
|
const numberToJson = new Link(
|
|
2668
2695
|
new Union([number, nonFiniteLiterals], "anyOf"),
|
|
2669
|
-
new
|
|
2670
|
-
|
|
2671
|
-
|
|
2696
|
+
new SchemaTransformation.Transformation(
|
|
2697
|
+
SchemaGetter.Number(),
|
|
2698
|
+
SchemaGetter.transform((n) => globalThis.Number.isFinite(n) ? n : globalThis.String(n))
|
|
2672
2699
|
)
|
|
2673
2700
|
)
|
|
2674
2701
|
|
|
@@ -2740,7 +2767,7 @@ export class Suspend extends Base {
|
|
|
2740
2767
|
this.thunk = memoizeThunk(thunk)
|
|
2741
2768
|
}
|
|
2742
2769
|
/** @internal */
|
|
2743
|
-
getParser(recur: (ast: AST) =>
|
|
2770
|
+
getParser(recur: (ast: AST) => SchemaParser.Parser): SchemaParser.Parser {
|
|
2744
2771
|
return recur(this.thunk())
|
|
2745
2772
|
}
|
|
2746
2773
|
/** @internal */
|
|
@@ -2780,7 +2807,7 @@ export class Suspend extends Base {
|
|
|
2780
2807
|
*/
|
|
2781
2808
|
export class Filter<in E> extends Pipeable.Class {
|
|
2782
2809
|
readonly _tag = "Filter"
|
|
2783
|
-
readonly run: (input: E, self: AST, options: ParseOptions) =>
|
|
2810
|
+
readonly run: (input: E, self: AST, options: ParseOptions) => SchemaIssue.Issue | undefined
|
|
2784
2811
|
readonly annotations: Schema.Annotations.Filter | undefined
|
|
2785
2812
|
/**
|
|
2786
2813
|
* Whether the parsing process should be aborted after this check has failed.
|
|
@@ -2788,7 +2815,7 @@ export class Filter<in E> extends Pipeable.Class {
|
|
|
2788
2815
|
readonly aborted: boolean
|
|
2789
2816
|
|
|
2790
2817
|
constructor(
|
|
2791
|
-
run: (input: E, self: AST, options: ParseOptions) =>
|
|
2818
|
+
run: (input: E, self: AST, options: ParseOptions) => SchemaIssue.Issue | undefined,
|
|
2792
2819
|
annotations: Schema.Annotations.Filter | undefined = undefined,
|
|
2793
2820
|
/**
|
|
2794
2821
|
* Whether the parsing process should be aborted after this check has failed.
|
|
@@ -2870,7 +2897,7 @@ export function makeFilter<T>(
|
|
|
2870
2897
|
aborted: boolean = false
|
|
2871
2898
|
): Filter<T> {
|
|
2872
2899
|
return new Filter(
|
|
2873
|
-
(input, ast, options) =>
|
|
2900
|
+
(input, ast, options) => SchemaIssue.make(input, ast, filter(input, ast, options)),
|
|
2874
2901
|
annotations,
|
|
2875
2902
|
aborted
|
|
2876
2903
|
)
|
|
@@ -2882,7 +2909,7 @@ export function makeFilterByGuard<T extends E, E>(
|
|
|
2882
2909
|
annotations?: Schema.Annotations.Filter
|
|
2883
2910
|
): Filter<any> {
|
|
2884
2911
|
return new Filter(
|
|
2885
|
-
(input: E) => is(input) ? undefined : new
|
|
2912
|
+
(input: E) => is(input) ? undefined : new SchemaIssue.InvalidValue(Option.some(input)),
|
|
2886
2913
|
annotations,
|
|
2887
2914
|
true // after a guard, we always want to abort
|
|
2888
2915
|
)
|
|
@@ -2891,6 +2918,11 @@ export function makeFilterByGuard<T extends E, E>(
|
|
|
2891
2918
|
/**
|
|
2892
2919
|
* Creates a {@link Filter} that validates strings by running `RegExp.test`.
|
|
2893
2920
|
*
|
|
2921
|
+
* **When to use**
|
|
2922
|
+
*
|
|
2923
|
+
* Use when string validation should be represented as a schema `Filter` backed
|
|
2924
|
+
* by a regular expression.
|
|
2925
|
+
*
|
|
2894
2926
|
* **Details**
|
|
2895
2927
|
*
|
|
2896
2928
|
* The filter can be used with `Schema.filter` or attached directly to a
|
|
@@ -3015,7 +3047,7 @@ export function applyToLastLink(f: (ast: AST) => AST) {
|
|
|
3015
3047
|
/** @internal */
|
|
3016
3048
|
export function middlewareDecoding(
|
|
3017
3049
|
ast: AST,
|
|
3018
|
-
middleware:
|
|
3050
|
+
middleware: SchemaTransformation.Middleware<any, any, any, any, any, any>
|
|
3019
3051
|
): AST {
|
|
3020
3052
|
return appendTransformation(ast, middleware, toType(ast))
|
|
3021
3053
|
}
|
|
@@ -3023,7 +3055,7 @@ export function middlewareDecoding(
|
|
|
3023
3055
|
/** @internal */
|
|
3024
3056
|
export function middlewareEncoding(
|
|
3025
3057
|
ast: AST,
|
|
3026
|
-
middleware:
|
|
3058
|
+
middleware: SchemaTransformation.Middleware<any, any, any, any, any, any>
|
|
3027
3059
|
): AST {
|
|
3028
3060
|
return appendTransformation(toEncoded(ast), middleware, ast)
|
|
3029
3061
|
}
|
|
@@ -3031,8 +3063,8 @@ export function middlewareEncoding(
|
|
|
3031
3063
|
function appendTransformation<A extends AST>(
|
|
3032
3064
|
from: AST,
|
|
3033
3065
|
transformation:
|
|
3034
|
-
|
|
|
3035
|
-
|
|
|
3066
|
+
| SchemaTransformation.Transformation<any, any, any, any>
|
|
3067
|
+
| SchemaTransformation.Middleware<any, any, any, any, any, any>,
|
|
3036
3068
|
to: A
|
|
3037
3069
|
): A {
|
|
3038
3070
|
const link = new Link(from, transformation)
|
|
@@ -3120,11 +3152,11 @@ export function mutableKey<A extends AST>(ast: A): A {
|
|
|
3120
3152
|
/** @internal */
|
|
3121
3153
|
export function withConstructorDefault<A extends AST>(
|
|
3122
3154
|
ast: A,
|
|
3123
|
-
defaultValue: Effect.Effect<unknown,
|
|
3155
|
+
defaultValue: Effect.Effect<unknown, SchemaIssue.Issue>
|
|
3124
3156
|
): A {
|
|
3125
|
-
const transformation = new
|
|
3126
|
-
|
|
3127
|
-
|
|
3157
|
+
const transformation = new SchemaTransformation.Transformation(
|
|
3158
|
+
SchemaGetter.withDefault(defaultValue),
|
|
3159
|
+
SchemaGetter.passthrough()
|
|
3128
3160
|
)
|
|
3129
3161
|
const encoding: Encoding = [new Link(unknown, transformation)]
|
|
3130
3162
|
const context = ast.context ?
|
|
@@ -3154,7 +3186,7 @@ export function withConstructorDefault<A extends AST>(
|
|
|
3154
3186
|
export function decodeTo<A extends AST>(
|
|
3155
3187
|
from: AST,
|
|
3156
3188
|
to: A,
|
|
3157
|
-
transformation:
|
|
3189
|
+
transformation: SchemaTransformation.Transformation<any, any, any, any>
|
|
3158
3190
|
): A {
|
|
3159
3191
|
return appendTransformation(from, transformation, to)
|
|
3160
3192
|
}
|
|
@@ -3321,7 +3353,7 @@ function flipEncoding(ast: AST, encoding: Encoding): AST {
|
|
|
3321
3353
|
*
|
|
3322
3354
|
* After flipping, what was decoding becomes encoding and vice versa. This is
|
|
3323
3355
|
* the core operation behind `Schema.encode` — encoding a value is decoding
|
|
3324
|
-
* with a flipped
|
|
3356
|
+
* with a flipped SchemaAST.
|
|
3325
3357
|
*
|
|
3326
3358
|
* - Memoized: same input reference → same output reference.
|
|
3327
3359
|
* - Recursively walks composite nodes.
|
|
@@ -3393,7 +3425,7 @@ function handleTemplateLiteralASTPartParens(part: TemplateLiteralPart, s: string
|
|
|
3393
3425
|
function fromConst<const T>(
|
|
3394
3426
|
ast: AST,
|
|
3395
3427
|
value: T
|
|
3396
|
-
):
|
|
3428
|
+
): SchemaParser.Parser {
|
|
3397
3429
|
const succeed = Effect.succeedSome(value)
|
|
3398
3430
|
return (oinput) => {
|
|
3399
3431
|
if (oinput._tag === "None") {
|
|
@@ -3401,21 +3433,21 @@ function fromConst<const T>(
|
|
|
3401
3433
|
}
|
|
3402
3434
|
return oinput.value === value
|
|
3403
3435
|
? succeed
|
|
3404
|
-
: Effect.fail(new
|
|
3436
|
+
: Effect.fail(new SchemaIssue.InvalidType(ast, oinput))
|
|
3405
3437
|
}
|
|
3406
3438
|
}
|
|
3407
3439
|
|
|
3408
3440
|
function fromRefinement<T>(
|
|
3409
3441
|
ast: AST,
|
|
3410
3442
|
refinement: (input: unknown) => input is T
|
|
3411
|
-
):
|
|
3443
|
+
): SchemaParser.Parser {
|
|
3412
3444
|
return (oinput) => {
|
|
3413
3445
|
if (oinput._tag === "None") {
|
|
3414
3446
|
return Effect.succeedNone
|
|
3415
3447
|
}
|
|
3416
3448
|
return refinement(oinput.value)
|
|
3417
3449
|
? Effect.succeed(oinput)
|
|
3418
|
-
: Effect.fail(new
|
|
3450
|
+
: Effect.fail(new SchemaIssue.InvalidType(ast, oinput))
|
|
3419
3451
|
}
|
|
3420
3452
|
}
|
|
3421
3453
|
|
|
@@ -3489,12 +3521,12 @@ const finiteString = appendChecks(string, [isStringFinite()])
|
|
|
3489
3521
|
|
|
3490
3522
|
const finiteToString = new Link(
|
|
3491
3523
|
finiteString,
|
|
3492
|
-
|
|
3524
|
+
SchemaTransformation.numberFromString
|
|
3493
3525
|
)
|
|
3494
3526
|
|
|
3495
3527
|
const numberToString = new Link(
|
|
3496
3528
|
new Union([finiteString, nonFiniteLiterals], "anyOf"),
|
|
3497
|
-
|
|
3529
|
+
SchemaTransformation.numberFromString
|
|
3498
3530
|
)
|
|
3499
3531
|
|
|
3500
3532
|
/**
|
|
@@ -3526,7 +3558,7 @@ export const bigIntString = appendChecks(string, [isStringBigInt({
|
|
|
3526
3558
|
|
|
3527
3559
|
const bigIntToString = new Link(
|
|
3528
3560
|
bigIntString,
|
|
3529
|
-
|
|
3561
|
+
SchemaTransformation.bigintFromString
|
|
3530
3562
|
)
|
|
3531
3563
|
|
|
3532
3564
|
const REGEXP_PATTERN = "Symbol\\((.*)\\)"
|
|
@@ -3541,15 +3573,15 @@ export const symbolString = appendChecks(string, [isStringSymbol()])
|
|
|
3541
3573
|
*/
|
|
3542
3574
|
const symbolToString = new Link(
|
|
3543
3575
|
symbolString,
|
|
3544
|
-
new
|
|
3545
|
-
|
|
3546
|
-
|
|
3576
|
+
new SchemaTransformation.Transformation(
|
|
3577
|
+
SchemaGetter.transform((description) => globalThis.Symbol.for(isStringSymbolRegExp.exec(description)![1])),
|
|
3578
|
+
SchemaGetter.transformOrFail((sym: symbol) => {
|
|
3547
3579
|
const key = globalThis.Symbol.keyFor(sym)
|
|
3548
3580
|
if (key !== undefined) {
|
|
3549
3581
|
return Effect.succeed(globalThis.String(sym))
|
|
3550
3582
|
}
|
|
3551
3583
|
return Effect.fail(
|
|
3552
|
-
new
|
|
3584
|
+
new SchemaIssue.Forbidden(Option.some(sym), { message: "cannot serialize to string, Symbol is not registered" })
|
|
3553
3585
|
)
|
|
3554
3586
|
})
|
|
3555
3587
|
)
|
|
@@ -3574,7 +3606,7 @@ export function isStringSymbol(annotations?: Schema.Annotations.Filter) {
|
|
|
3574
3606
|
export function collectIssues<T>(
|
|
3575
3607
|
checks: ReadonlyArray<Check<T>>,
|
|
3576
3608
|
value: T,
|
|
3577
|
-
issues: Array<
|
|
3609
|
+
issues: Array<SchemaIssue.Issue>,
|
|
3578
3610
|
ast: AST,
|
|
3579
3611
|
options: ParseOptions
|
|
3580
3612
|
) {
|
|
@@ -3585,7 +3617,7 @@ export function collectIssues<T>(
|
|
|
3585
3617
|
} else {
|
|
3586
3618
|
const issue = check.run(value, ast, options)
|
|
3587
3619
|
if (issue) {
|
|
3588
|
-
issues.push(new
|
|
3620
|
+
issues.push(new SchemaIssue.Filter(value, check, issue))
|
|
3589
3621
|
if (check.aborted || options?.errors !== "all") {
|
|
3590
3622
|
return
|
|
3591
3623
|
}
|
|
@@ -3598,11 +3630,11 @@ export function collectIssues<T>(
|
|
|
3598
3630
|
export function runChecks<T>(
|
|
3599
3631
|
checks: readonly [Check<T>, ...Array<Check<T>>],
|
|
3600
3632
|
s: T
|
|
3601
|
-
): Result.Result<T,
|
|
3602
|
-
const issues: Array<
|
|
3633
|
+
): Result.Result<T, SchemaIssue.Issue> {
|
|
3634
|
+
const issues: Array<SchemaIssue.Issue> = []
|
|
3603
3635
|
collectIssues(checks, s, issues, unknown, { errors: "all" })
|
|
3604
3636
|
if (Arr.isArrayNonEmpty(issues)) {
|
|
3605
|
-
const issue = new
|
|
3637
|
+
const issue = new SchemaIssue.Composite(unknown, Option.some(s), issues)
|
|
3606
3638
|
return Result.fail(issue)
|
|
3607
3639
|
}
|
|
3608
3640
|
return Result.succeed(s)
|
|
@@ -3749,7 +3781,7 @@ export const Json = new Declaration(
|
|
|
3749
3781
|
() => (input, ast) =>
|
|
3750
3782
|
isJson(input) ?
|
|
3751
3783
|
Effect.succeed(input) :
|
|
3752
|
-
Effect.fail(new
|
|
3784
|
+
Effect.fail(new SchemaIssue.InvalidType(ast, Option.some(input))),
|
|
3753
3785
|
{
|
|
3754
3786
|
typeConstructor: {
|
|
3755
3787
|
_tag: "effect/Json"
|
|
@@ -3759,7 +3791,8 @@ export const Json = new Declaration(
|
|
|
3759
3791
|
Type: `Schema.Json`
|
|
3760
3792
|
},
|
|
3761
3793
|
expected: "JSON value",
|
|
3762
|
-
toCodecJson: () => new Link(unknown,
|
|
3794
|
+
toCodecJson: () => new Link(unknown, SchemaTransformation.passthrough()),
|
|
3795
|
+
toArbitrary: () => (fc: typeof FastCheck) => fc.jsonValue()
|
|
3763
3796
|
}
|
|
3764
3797
|
)
|
|
3765
3798
|
|
|
@@ -3777,16 +3810,16 @@ export const MutableJson = annotate(Json, {
|
|
|
3777
3810
|
/** @internal */
|
|
3778
3811
|
export const unknownToNull = new Link(
|
|
3779
3812
|
null_,
|
|
3780
|
-
new
|
|
3781
|
-
|
|
3782
|
-
|
|
3813
|
+
new SchemaTransformation.Transformation(
|
|
3814
|
+
SchemaGetter.passthrough(),
|
|
3815
|
+
SchemaGetter.transform(() => null)
|
|
3783
3816
|
)
|
|
3784
3817
|
)
|
|
3785
3818
|
|
|
3786
3819
|
/** @internal */
|
|
3787
3820
|
export const unknownToJson = new Link(
|
|
3788
3821
|
Json,
|
|
3789
|
-
|
|
3822
|
+
SchemaTransformation.passthrough()
|
|
3790
3823
|
)
|
|
3791
3824
|
|
|
3792
3825
|
/**
|
|
@@ -3823,15 +3856,15 @@ const StringTree = new Declaration(
|
|
|
3823
3856
|
() => (input, ast) =>
|
|
3824
3857
|
isStringTree(input) ?
|
|
3825
3858
|
Effect.succeed(input) :
|
|
3826
|
-
Effect.fail(new
|
|
3859
|
+
Effect.fail(new SchemaIssue.InvalidType(ast, Option.some(input))),
|
|
3827
3860
|
{
|
|
3828
3861
|
expected: "StringTree",
|
|
3829
|
-
toCodecStringTree: () => new Link(unknown,
|
|
3862
|
+
toCodecStringTree: () => new Link(unknown, SchemaTransformation.passthrough())
|
|
3830
3863
|
}
|
|
3831
3864
|
)
|
|
3832
3865
|
|
|
3833
3866
|
/** @internal */
|
|
3834
3867
|
export const unknownToStringTree = new Link(
|
|
3835
3868
|
StringTree,
|
|
3836
|
-
|
|
3869
|
+
SchemaTransformation.passthrough()
|
|
3837
3870
|
)
|