effect 4.0.0-beta.73 → 4.0.0-beta.75
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 +745 -627
- package/dist/Array.d.ts.map +1 -1
- package/dist/Array.js +277 -217
- 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 +10 -10
- package/dist/Boolean.js +6 -6
- 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 +282 -72
- package/dist/Channel.d.ts.map +1 -1
- package/dist/Channel.js +108 -28
- 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 +86 -33
- package/dist/Chunk.d.ts.map +1 -1
- package/dist/Chunk.js +48 -13
- 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 +63 -75
- package/dist/Context.d.ts.map +1 -1
- package/dist/Context.js +29 -33
- package/dist/Context.js.map +1 -1
- package/dist/Cron.d.ts +6 -6
- package/dist/Cron.js +6 -6
- 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 +61 -52
- package/dist/Deferred.d.ts.map +1 -1
- package/dist/Deferred.js +21 -18
- package/dist/Deferred.js.map +1 -1
- package/dist/Duration.d.ts +50 -37
- package/dist/Duration.d.ts.map +1 -1
- package/dist/Duration.js +24 -13
- package/dist/Duration.js.map +1 -1
- package/dist/Effect.d.ts +574 -474
- package/dist/Effect.d.ts.map +1 -1
- package/dist/Effect.js +273 -213
- 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 +28 -41
- package/dist/Equal.d.ts.map +1 -1
- package/dist/Equal.js +12 -19
- package/dist/Equal.js.map +1 -1
- package/dist/Equivalence.d.ts +72 -100
- package/dist/Equivalence.d.ts.map +1 -1
- package/dist/Equivalence.js +54 -74
- package/dist/Equivalence.js.map +1 -1
- package/dist/ErrorReporter.d.ts +1 -1
- package/dist/ErrorReporter.js +1 -1
- package/dist/ExecutionPlan.d.ts +2 -2
- package/dist/ExecutionPlan.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/FileSystem.d.ts +6 -6
- package/dist/FileSystem.js +2 -2
- 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 +20 -21
- package/dist/Function.d.ts.map +1 -1
- package/dist/Function.js +14 -15
- package/dist/Function.js.map +1 -1
- package/dist/Graph.d.ts +13 -13
- package/dist/Graph.js +7 -7
- package/dist/HKT.d.ts +3 -3
- 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 +18 -3
- 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/HashSet.d.ts +1 -1
- package/dist/Iterable.d.ts +39 -27
- package/dist/Iterable.d.ts.map +1 -1
- package/dist/Iterable.js +21 -11
- 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 +108 -130
- package/dist/Layer.d.ts.map +1 -1
- package/dist/Layer.js +43 -51
- package/dist/Layer.js.map +1 -1
- package/dist/Logger.d.ts +16 -19
- package/dist/Logger.d.ts.map +1 -1
- package/dist/Logger.js +15 -18
- package/dist/Logger.js.map +1 -1
- package/dist/ManagedRuntime.d.ts +2 -2
- package/dist/Match.d.ts +22 -22
- package/dist/Match.js +18 -18
- package/dist/Metric.d.ts +105 -125
- package/dist/Metric.d.ts.map +1 -1
- package/dist/Metric.js +54 -64
- 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 +232 -204
- package/dist/Option.d.ts.map +1 -1
- package/dist/Option.js +113 -96
- package/dist/Option.js.map +1 -1
- package/dist/Order.d.ts +119 -180
- package/dist/Order.d.ts.map +1 -1
- package/dist/Order.js +93 -145
- 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 +3 -3
- package/dist/Path.js +3 -3
- package/dist/Pipeable.d.ts +3 -3
- package/dist/Pipeable.js +3 -3
- 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 +279 -268
- 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 +33 -23
- package/dist/PubSub.d.ts.map +1 -1
- package/dist/PubSub.js +21 -11
- 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 +70 -31
- package/dist/Queue.d.ts.map +1 -1
- package/dist/Queue.js +66 -27
- 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/Record.d.ts +15 -15
- package/dist/Record.js +5 -5
- package/dist/Redactable.d.ts +2 -2
- package/dist/Redactable.js +2 -2
- package/dist/Redacted.d.ts +5 -5
- package/dist/Redacted.js +4 -4
- 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 +23 -22
- package/dist/Ref.d.ts.map +1 -1
- package/dist/Ref.js +21 -20
- package/dist/Ref.js.map +1 -1
- package/dist/References.d.ts +4 -4
- package/dist/References.js +4 -4
- package/dist/RegExp.d.ts +1 -1
- package/dist/RegExp.js +1 -1
- package/dist/Request.d.ts +22 -22
- package/dist/Request.js +6 -6
- package/dist/RequestResolver.d.ts +6 -6
- package/dist/RequestResolver.js +2 -2
- package/dist/Resource.d.ts +3 -3
- package/dist/Resource.js +3 -3
- package/dist/Result.d.ts +95 -51
- package/dist/Result.d.ts.map +1 -1
- package/dist/Result.js +53 -30
- 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 +151 -89
- package/dist/Schedule.d.ts.map +1 -1
- package/dist/Schedule.js +59 -47
- 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 +620 -830
- package/dist/Schema.d.ts.map +1 -1
- package/dist/Schema.js +543 -452
- package/dist/Schema.js.map +1 -1
- package/dist/SchemaAST.d.ts +43 -22
- package/dist/SchemaAST.d.ts.map +1 -1
- package/dist/SchemaAST.js +80 -59
- package/dist/SchemaAST.js.map +1 -1
- package/dist/SchemaGetter.d.ts +139 -119
- package/dist/SchemaGetter.d.ts.map +1 -1
- package/dist/SchemaGetter.js +133 -113
- 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 +75 -156
- package/dist/SchemaParser.d.ts.map +1 -1
- package/dist/SchemaParser.js +75 -148
- package/dist/SchemaParser.js.map +1 -1
- package/dist/SchemaRepresentation.d.ts +30 -21
- package/dist/SchemaRepresentation.d.ts.map +1 -1
- package/dist/SchemaRepresentation.js +26 -22
- 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 +183 -159
- 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 +16 -1
- package/dist/Scope.d.ts.map +1 -1
- package/dist/Scope.js +16 -1
- 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 +18 -18
- package/dist/Sink.d.ts.map +1 -1
- package/dist/Sink.js +12 -12
- 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 +376 -99
- package/dist/Stream.d.ts.map +1 -1
- package/dist/Stream.js +158 -43
- package/dist/Stream.js.map +1 -1
- package/dist/String.d.ts +11 -14
- package/dist/String.d.ts.map +1 -1
- package/dist/String.js +5 -6
- package/dist/String.js.map +1 -1
- package/dist/Struct.d.ts +23 -21
- package/dist/Struct.d.ts.map +1 -1
- package/dist/Struct.js +14 -12
- 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 +145 -120
- package/dist/SynchronizedRef.d.ts.map +1 -1
- package/dist/SynchronizedRef.js +51 -42
- package/dist/SynchronizedRef.js.map +1 -1
- package/dist/Terminal.d.ts +1 -1
- package/dist/Terminal.js +1 -1
- package/dist/Tracer.d.ts +9 -9
- package/dist/Tracer.js +6 -6
- 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 +39 -33
- package/dist/Tuple.d.ts.map +1 -1
- package/dist/Tuple.js +23 -19
- package/dist/Tuple.js.map +1 -1
- package/dist/TxHashMap.d.ts +3 -3
- package/dist/TxHashSet.d.ts +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 +9 -9
- package/dist/Unify.js +1 -1
- 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 +14 -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/TestClock.d.ts +5 -5
- package/dist/testing/TestClock.js +4 -4
- package/dist/testing/TestConsole.d.ts +3 -3
- package/dist/testing/TestConsole.js +3 -3
- 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 +6 -7
- package/dist/unstable/ai/Chat.d.ts.map +1 -1
- package/dist/unstable/ai/Chat.js +6 -7
- package/dist/unstable/ai/Chat.js.map +1 -1
- package/dist/unstable/ai/EmbeddingModel.d.ts +5 -5
- package/dist/unstable/ai/EmbeddingModel.js +4 -4
- package/dist/unstable/ai/IdGenerator.d.ts +4 -5
- package/dist/unstable/ai/IdGenerator.d.ts.map +1 -1
- package/dist/unstable/ai/IdGenerator.js +3 -4
- package/dist/unstable/ai/IdGenerator.js.map +1 -1
- package/dist/unstable/ai/LanguageModel.d.ts +7 -6
- package/dist/unstable/ai/LanguageModel.d.ts.map +1 -1
- package/dist/unstable/ai/LanguageModel.js +6 -5
- 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 +19 -17
- 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 +17 -17
- package/dist/unstable/ai/Prompt.js +4 -4
- 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 +26 -11
- package/dist/unstable/ai/Telemetry.d.ts.map +1 -1
- package/dist/unstable/ai/Telemetry.js +9 -4
- package/dist/unstable/ai/Telemetry.js.map +1 -1
- package/dist/unstable/ai/Tokenizer.d.ts +1 -1
- package/dist/unstable/ai/Tokenizer.js +1 -1
- package/dist/unstable/ai/Tool.d.ts +13 -12
- package/dist/unstable/ai/Tool.d.ts.map +1 -1
- package/dist/unstable/ai/Tool.js +14 -13
- 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/Command.d.ts +37 -16
- package/dist/unstable/cli/Command.d.ts.map +1 -1
- package/dist/unstable/cli/Command.js +16 -9
- 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 +4 -4
- 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 +6 -5
- package/dist/unstable/cli/Primitive.d.ts.map +1 -1
- package/dist/unstable/cli/Primitive.js +4 -3
- package/dist/unstable/cli/Primitive.js.map +1 -1
- package/dist/unstable/cli/Prompt.d.ts +11 -11
- package/dist/unstable/cli/internal/parser.js +145 -10
- package/dist/unstable/cli/internal/parser.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/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/Entity.d.ts +1 -1
- package/dist/unstable/cluster/Entity.js +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/HttpRunner.d.ts +2 -2
- package/dist/unstable/cluster/HttpRunner.js +2 -2
- package/dist/unstable/cluster/K8sHttpClient.d.ts +1 -1
- package/dist/unstable/cluster/K8sHttpClient.js +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 +12 -12
- 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 +4 -4
- package/dist/unstable/cluster/Runners.js +4 -4
- package/dist/unstable/cluster/ShardId.js +3 -3
- package/dist/unstable/cluster/ShardId.js.map +1 -1
- package/dist/unstable/cluster/Sharding.d.ts +4 -4
- package/dist/unstable/cluster/Sharding.js +4 -4
- package/dist/unstable/cluster/ShardingConfig.d.ts +4 -4
- package/dist/unstable/cluster/ShardingConfig.js +4 -4
- package/dist/unstable/cluster/SingletonAddress.d.ts +1 -1
- package/dist/unstable/cluster/SingletonAddress.js +1 -1
- package/dist/unstable/cluster/Snowflake.d.ts +6 -6
- package/dist/unstable/cluster/Snowflake.js +8 -8
- 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/DevToolsClient.d.ts +1 -1
- package/dist/unstable/devtools/DevToolsClient.js +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 +4 -4
- package/dist/unstable/eventlog/EventLog.js +4 -4
- package/dist/unstable/eventlog/EventLogEncryption.d.ts +1 -1
- package/dist/unstable/eventlog/EventLogEncryption.js +1 -1
- package/dist/unstable/eventlog/EventLogRemote.d.ts +1 -1
- package/dist/unstable/eventlog/EventLogRemote.js +1 -1
- 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 +8 -10
- package/dist/unstable/eventlog/EventLogServerUnencrypted.d.ts.map +1 -1
- package/dist/unstable/eventlog/EventLogServerUnencrypted.js +8 -10
- 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.d.ts +1 -1
- package/dist/unstable/http/Cookies.js +4 -4
- package/dist/unstable/http/Cookies.js.map +1 -1
- package/dist/unstable/http/Etag.d.ts +3 -4
- package/dist/unstable/http/Etag.d.ts.map +1 -1
- package/dist/unstable/http/Etag.js +3 -4
- package/dist/unstable/http/Etag.js.map +1 -1
- package/dist/unstable/http/FetchHttpClient.d.ts +2 -2
- package/dist/unstable/http/FetchHttpClient.js +2 -2
- 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 +3 -3
- package/dist/unstable/http/HttpClient.js +3 -3
- package/dist/unstable/http/HttpClientRequest.d.ts +32 -5
- 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/HttpMiddleware.d.ts +1 -1
- package/dist/unstable/http/HttpMiddleware.js +1 -1
- package/dist/unstable/http/HttpPlatform.d.ts +1 -1
- package/dist/unstable/http/HttpPlatform.js +1 -1
- package/dist/unstable/http/HttpRouter.d.ts +5 -5
- package/dist/unstable/http/HttpRouter.js +5 -5
- package/dist/unstable/http/HttpServerResponse.d.ts +28 -23
- 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/Url.d.ts +33 -33
- package/dist/unstable/http/Url.js +11 -11
- 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 +4 -3
- package/dist/unstable/httpapi/HttpApi.d.ts.map +1 -1
- package/dist/unstable/httpapi/HttpApi.js +4 -3
- 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/HttpApiError.d.ts +13 -13
- package/dist/unstable/httpapi/HttpApiError.js +13 -13
- package/dist/unstable/httpapi/HttpApiMiddleware.d.ts +3 -3
- package/dist/unstable/httpapi/HttpApiMiddleware.js +3 -3
- 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 +8 -6
- package/dist/unstable/observability/PrometheusMetrics.d.ts.map +1 -1
- package/dist/unstable/observability/PrometheusMetrics.js +6 -4
- package/dist/unstable/observability/PrometheusMetrics.js.map +1 -1
- package/dist/unstable/persistence/KeyValueStore.d.ts +3 -3
- package/dist/unstable/persistence/KeyValueStore.js +1 -1
- package/dist/unstable/persistence/Persistable.d.ts +2 -2
- package/dist/unstable/persistence/Persistable.js +2 -2
- package/dist/unstable/persistence/PersistedQueue.d.ts +8 -8
- package/dist/unstable/persistence/PersistedQueue.js +8 -8
- package/dist/unstable/persistence/RateLimiter.d.ts +1 -1
- package/dist/unstable/persistence/RateLimiter.js +1 -1
- package/dist/unstable/process/ChildProcess.d.ts +5 -5
- package/dist/unstable/process/ChildProcess.js +2 -2
- package/dist/unstable/reactivity/AsyncResult.d.ts +4 -4
- package/dist/unstable/reactivity/AsyncResult.js +1 -1
- package/dist/unstable/reactivity/Atom.d.ts +4 -4
- package/dist/unstable/reactivity/Atom.js +4 -4
- package/dist/unstable/reactivity/AtomRegistry.d.ts +1 -1
- package/dist/unstable/reactivity/AtomRegistry.js +1 -1
- package/dist/unstable/reactivity/Reactivity.d.ts +1 -1
- package/dist/unstable/reactivity/Reactivity.js +1 -1
- package/dist/unstable/rpc/Rpc.d.ts +5 -5
- package/dist/unstable/rpc/Rpc.js +1 -1
- package/dist/unstable/rpc/RpcMiddleware.d.ts +1 -1
- package/dist/unstable/rpc/RpcMiddleware.js +1 -1
- package/dist/unstable/rpc/RpcSchema.d.ts +5 -5
- package/dist/unstable/rpc/RpcSchema.d.ts.map +1 -1
- package/dist/unstable/rpc/RpcSchema.js +2 -2
- package/dist/unstable/rpc/RpcSerialization.d.ts +2 -2
- package/dist/unstable/rpc/RpcSerialization.js +2 -2
- package/dist/unstable/schema/Model.d.ts +2 -2
- package/dist/unstable/schema/Model.js +6 -6
- 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.d.ts +3 -3
- package/dist/unstable/socket/Socket.js +3 -3
- package/dist/unstable/socket/SocketServer.d.ts +1 -1
- package/dist/unstable/socket/SocketServer.js +1 -1
- package/dist/unstable/sql/Migrator.d.ts +1 -1
- package/dist/unstable/sql/SqlClient.d.ts +3 -3
- package/dist/unstable/sql/SqlClient.js +2 -2
- package/dist/unstable/sql/SqlConnection.d.ts +1 -1
- package/dist/unstable/sql/SqlConnection.js +1 -1
- package/dist/unstable/sql/SqlSchema.d.ts +4 -4
- package/dist/unstable/sql/SqlSchema.js +4 -4
- package/dist/unstable/sql/Statement.d.ts +2 -2
- package/dist/unstable/sql/Statement.js +2 -2
- package/dist/unstable/workers/Transferable.d.ts +3 -3
- package/dist/unstable/workers/Transferable.d.ts.map +1 -1
- package/dist/unstable/workers/Transferable.js +6 -6
- package/dist/unstable/workers/Transferable.js.map +1 -1
- package/dist/unstable/workers/Worker.d.ts +1 -1
- package/dist/unstable/workers/Worker.js +1 -1
- package/dist/unstable/workflow/Activity.d.ts +1 -1
- package/dist/unstable/workflow/Activity.js +1 -1
- package/dist/unstable/workflow/DurableDeferred.d.ts +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 +94 -72
- 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 +745 -627
- package/src/BigDecimal.ts +37 -30
- package/src/BigInt.ts +34 -40
- package/src/Boolean.ts +10 -10
- package/src/Brand.ts +16 -14
- package/src/Cause.ts +21 -23
- package/src/Channel.ts +316 -76
- package/src/ChannelSchema.ts +11 -11
- package/src/Chunk.ts +87 -34
- 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 +64 -76
- package/src/Cron.ts +6 -6
- package/src/Crypto.ts +4 -4
- package/src/Data.ts +21 -15
- package/src/DateTime.ts +35 -16
- package/src/Deferred.ts +61 -52
- package/src/Duration.ts +50 -37
- package/src/Effect.ts +574 -474
- package/src/Encoding.ts +5 -0
- package/src/Equal.ts +28 -41
- package/src/Equivalence.ts +72 -100
- package/src/ErrorReporter.ts +1 -1
- package/src/ExecutionPlan.ts +2 -2
- 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/FileSystem.ts +6 -6
- package/src/Filter.ts +4 -4
- package/src/Formatter.ts +14 -19
- package/src/Function.ts +20 -21
- package/src/Graph.ts +13 -13
- package/src/HKT.ts +3 -3
- package/src/Hash.ts +2 -1
- package/src/HashMap.ts +18 -3
- package/src/HashRing.ts +9 -9
- package/src/HashSet.ts +1 -1
- package/src/Iterable.ts +39 -27
- 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 +108 -130
- package/src/Logger.ts +22 -25
- package/src/ManagedRuntime.ts +2 -2
- package/src/Match.ts +22 -22
- package/src/Metric.ts +129 -157
- 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 +232 -204
- package/src/Order.ts +119 -180
- package/src/PartitionedSemaphore.ts +14 -14
- package/src/Path.ts +3 -3
- package/src/Pipeable.ts +3 -3
- package/src/PlatformError.ts +4 -4
- package/src/Pool.ts +7 -11
- package/src/Predicate.ts +279 -268
- package/src/PubSub.ts +33 -23
- package/src/Pull.ts +4 -4
- package/src/Queue.ts +70 -31
- package/src/RcRef.ts +0 -4
- package/src/Record.ts +15 -15
- package/src/Redactable.ts +2 -2
- package/src/Redacted.ts +5 -5
- package/src/Reducer.ts +2 -3
- package/src/Ref.ts +61 -58
- package/src/References.ts +4 -4
- package/src/RegExp.ts +1 -1
- package/src/Request.ts +22 -22
- package/src/RequestResolver.ts +8 -8
- package/src/Resource.ts +3 -3
- package/src/Result.ts +105 -51
- package/src/Runtime.ts +11 -8
- package/src/Schedule.ts +157 -90
- package/src/Scheduler.ts +6 -4
- package/src/Schema.ts +1020 -1108
- package/src/SchemaAST.ts +149 -118
- package/src/SchemaGetter.ts +155 -134
- package/src/SchemaIssue.ts +39 -41
- package/src/SchemaParser.ts +176 -232
- package/src/SchemaRepresentation.ts +38 -28
- package/src/SchemaTransformation.ts +233 -207
- package/src/SchemaUtils.ts +2 -2
- package/src/Scope.ts +16 -1
- package/src/ScopedCache.ts +1 -1
- package/src/ScopedRef.ts +14 -18
- package/src/Semaphore.ts +9 -9
- package/src/Sink.ts +18 -18
- package/src/Stdio.ts +4 -5
- package/src/Stream.ts +411 -114
- package/src/String.ts +11 -14
- package/src/Struct.ts +23 -21
- package/src/SubscriptionRef.ts +24 -19
- package/src/SynchronizedRef.ts +145 -120
- package/src/Terminal.ts +1 -1
- package/src/Tracer.ts +9 -9
- package/src/Trie.ts +15 -0
- package/src/Tuple.ts +39 -33
- package/src/TxHashMap.ts +3 -3
- package/src/TxHashSet.ts +1 -1
- 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 +9 -9
- 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 +23 -23
- package/src/internal/schema/schema.ts +17 -17
- package/src/testing/TestClock.ts +5 -5
- package/src/testing/TestConsole.ts +3 -3
- 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 +6 -7
- package/src/unstable/ai/EmbeddingModel.ts +5 -5
- package/src/unstable/ai/IdGenerator.ts +4 -5
- package/src/unstable/ai/LanguageModel.ts +9 -8
- package/src/unstable/ai/McpSchema.ts +19 -17
- package/src/unstable/ai/McpServer.ts +14 -7
- package/src/unstable/ai/OpenAiStructuredOutput.ts +72 -61
- package/src/unstable/ai/Prompt.ts +20 -20
- package/src/unstable/ai/ResponseIdTracker.ts +3 -2
- package/src/unstable/ai/Telemetry.ts +26 -11
- package/src/unstable/ai/Tokenizer.ts +1 -1
- package/src/unstable/ai/Tool.ts +17 -16
- package/src/unstable/ai/Toolkit.ts +2 -2
- package/src/unstable/cli/Command.ts +42 -17
- 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 +24 -19
- package/src/unstable/cli/Primitive.ts +6 -5
- package/src/unstable/cli/Prompt.ts +11 -11
- package/src/unstable/cli/internal/parser.ts +204 -10
- package/src/unstable/cluster/ClusterCron.ts +1 -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/Entity.ts +1 -1
- package/src/unstable/cluster/EntityResource.ts +10 -0
- package/src/unstable/cluster/Envelope.ts +3 -3
- package/src/unstable/cluster/HttpRunner.ts +2 -2
- package/src/unstable/cluster/K8sHttpClient.ts +1 -1
- package/src/unstable/cluster/Reply.ts +14 -12
- package/src/unstable/cluster/RunnerHealth.ts +2 -1
- package/src/unstable/cluster/RunnerServer.ts +2 -2
- package/src/unstable/cluster/Runners.ts +4 -4
- package/src/unstable/cluster/ShardId.ts +3 -3
- package/src/unstable/cluster/Sharding.ts +4 -4
- package/src/unstable/cluster/ShardingConfig.ts +4 -4
- package/src/unstable/cluster/SingletonAddress.ts +1 -1
- package/src/unstable/cluster/Snowflake.ts +8 -8
- package/src/unstable/cluster/internal/entityManager.ts +2 -2
- package/src/unstable/devtools/DevToolsClient.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 +4 -4
- package/src/unstable/eventlog/EventLogEncryption.ts +1 -1
- package/src/unstable/eventlog/EventLogRemote.ts +1 -1
- package/src/unstable/eventlog/EventLogServerEncrypted.ts +2 -3
- package/src/unstable/eventlog/EventLogServerUnencrypted.ts +8 -10
- package/src/unstable/eventlog/EventLogSessionAuth.ts +4 -4
- package/src/unstable/http/Cookies.ts +5 -5
- package/src/unstable/http/Etag.ts +3 -4
- package/src/unstable/http/FetchHttpClient.ts +2 -2
- package/src/unstable/http/Headers.ts +2 -2
- package/src/unstable/http/HttpBody.ts +2 -2
- package/src/unstable/http/HttpClient.ts +3 -3
- package/src/unstable/http/HttpClientRequest.ts +32 -5
- package/src/unstable/http/HttpMiddleware.ts +1 -1
- package/src/unstable/http/HttpPlatform.ts +1 -1
- package/src/unstable/http/HttpRouter.ts +5 -5
- package/src/unstable/http/HttpServerResponse.ts +28 -23
- package/src/unstable/http/Multipart.ts +3 -3
- package/src/unstable/http/Url.ts +33 -33
- package/src/unstable/http/UrlParams.ts +36 -6
- package/src/unstable/httpapi/HttpApi.ts +6 -5
- package/src/unstable/httpapi/HttpApiBuilder.ts +14 -13
- package/src/unstable/httpapi/HttpApiClient.ts +16 -16
- package/src/unstable/httpapi/HttpApiError.ts +13 -13
- package/src/unstable/httpapi/HttpApiMiddleware.ts +3 -3
- 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 +8 -6
- package/src/unstable/persistence/KeyValueStore.ts +3 -3
- package/src/unstable/persistence/Persistable.ts +2 -2
- package/src/unstable/persistence/PersistedQueue.ts +8 -8
- package/src/unstable/persistence/RateLimiter.ts +1 -1
- package/src/unstable/process/ChildProcess.ts +5 -5
- package/src/unstable/reactivity/AsyncResult.ts +4 -4
- package/src/unstable/reactivity/Atom.ts +4 -4
- package/src/unstable/reactivity/AtomRegistry.ts +1 -1
- package/src/unstable/reactivity/Reactivity.ts +1 -1
- package/src/unstable/rpc/Rpc.ts +5 -5
- package/src/unstable/rpc/RpcMiddleware.ts +1 -1
- package/src/unstable/rpc/RpcSchema.ts +5 -5
- package/src/unstable/rpc/RpcSerialization.ts +2 -2
- package/src/unstable/schema/Model.ts +7 -7
- package/src/unstable/schema/VariantSchema.ts +2 -2
- package/src/unstable/socket/Socket.ts +3 -3
- package/src/unstable/socket/SocketServer.ts +1 -1
- package/src/unstable/sql/Migrator.ts +1 -1
- package/src/unstable/sql/SqlClient.ts +3 -3
- package/src/unstable/sql/SqlConnection.ts +1 -1
- package/src/unstable/sql/SqlSchema.ts +4 -4
- package/src/unstable/sql/Statement.ts +2 -2
- package/src/unstable/workers/Transferable.ts +7 -7
- package/src/unstable/workers/Worker.ts +1 -1
- 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 +159 -114
- 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,10 @@ 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
96
|
|
|
97
97
|
/**
|
|
98
98
|
* Discriminated union of all AST node types.
|
|
@@ -238,7 +238,7 @@ export const isNever = makeGuard("Never")
|
|
|
238
238
|
*
|
|
239
239
|
* **When to use**
|
|
240
240
|
*
|
|
241
|
-
* Use when
|
|
241
|
+
* Use when you need to inspect a schema AST and handle the `Unknown` node
|
|
242
242
|
* variant specifically.
|
|
243
243
|
*
|
|
244
244
|
* @see {@link isAny} for the guard for the `Any` node, whose parsed result is typed as `any` rather than `unknown`
|
|
@@ -253,7 +253,7 @@ export const isUnknown = makeGuard("Unknown")
|
|
|
253
253
|
*
|
|
254
254
|
* **When to use**
|
|
255
255
|
*
|
|
256
|
-
* Use when
|
|
256
|
+
* Use when you need to inspect a schema AST and handle the `Any` node
|
|
257
257
|
* variant specifically.
|
|
258
258
|
*
|
|
259
259
|
* @see {@link isUnknown} for the guard for the `Unknown` node, whose parsed result is typed as `unknown` rather than `any`
|
|
@@ -268,8 +268,8 @@ export const isAny = makeGuard("Any")
|
|
|
268
268
|
*
|
|
269
269
|
* **When to use**
|
|
270
270
|
*
|
|
271
|
-
* Use to detect schema AST nodes that match any string value while inspecting
|
|
272
|
-
* transforming
|
|
271
|
+
* Use to detect schema AST nodes that match any string value while inspecting
|
|
272
|
+
* or transforming a Schema AST.
|
|
273
273
|
*
|
|
274
274
|
* @see {@link String} for the AST node class narrowed by this guard
|
|
275
275
|
* @see {@link string} for the singleton `String` AST instance
|
|
@@ -368,7 +368,7 @@ export const isUniqueSymbol = makeGuard("UniqueSymbol")
|
|
|
368
368
|
* **When to use**
|
|
369
369
|
*
|
|
370
370
|
* Use to identify the AST node for the TypeScript `object` keyword when
|
|
371
|
-
* inspecting or transforming a
|
|
371
|
+
* inspecting or transforming a Schema AST.
|
|
372
372
|
*
|
|
373
373
|
* @see {@link ObjectKeyword} for the AST node matched by this guard
|
|
374
374
|
* @see {@link objectKeyword} for the singleton `ObjectKeyword` AST instance
|
|
@@ -463,14 +463,14 @@ export const isSuspend = makeGuard("Suspend")
|
|
|
463
463
|
export class Link {
|
|
464
464
|
readonly to: AST
|
|
465
465
|
readonly transformation:
|
|
466
|
-
|
|
|
467
|
-
|
|
|
466
|
+
| SchemaTransformation.Transformation<any, any, any, any>
|
|
467
|
+
| SchemaTransformation.Middleware<any, any, any, any, any, any>
|
|
468
468
|
|
|
469
469
|
constructor(
|
|
470
470
|
to: AST,
|
|
471
471
|
transformation:
|
|
472
|
-
|
|
|
473
|
-
|
|
|
472
|
+
| SchemaTransformation.Transformation<any, any, any, any>
|
|
473
|
+
| SchemaTransformation.Middleware<any, any, any, any, any, any>
|
|
474
474
|
) {
|
|
475
475
|
this.to = to
|
|
476
476
|
this.transformation = transformation
|
|
@@ -513,7 +513,7 @@ export type Encoding = readonly [Link, ...Array<Link>]
|
|
|
513
513
|
* - `concurrency` — maximum number of async parse effects to run concurrently;
|
|
514
514
|
* defaults to `1`, or use `"unbounded"`.
|
|
515
515
|
*
|
|
516
|
-
* @category
|
|
516
|
+
* @category options
|
|
517
517
|
* @since 3.10.0
|
|
518
518
|
*/
|
|
519
519
|
export interface ParseOptions {
|
|
@@ -693,14 +693,15 @@ export abstract class Base {
|
|
|
693
693
|
*
|
|
694
694
|
* **When to use**
|
|
695
695
|
*
|
|
696
|
-
* Use when
|
|
697
|
-
*
|
|
696
|
+
* Use when you need a custom schema AST node because none of the built-in
|
|
697
|
+
* nodes fit.
|
|
698
698
|
*
|
|
699
699
|
* **Details**
|
|
700
700
|
*
|
|
701
701
|
* - `typeParameters` — inner schemas this declaration is parameterized over
|
|
702
702
|
* (e.g. the element type for a custom collection).
|
|
703
|
-
* - `run` — factory
|
|
703
|
+
* - `run` — factory that receives `typeParameters` and returns a parser that
|
|
704
|
+
* validates or transforms raw input.
|
|
704
705
|
*
|
|
705
706
|
* @see {@link isDeclaration}
|
|
706
707
|
* @category models
|
|
@@ -711,13 +712,13 @@ export class Declaration extends Base {
|
|
|
711
712
|
readonly typeParameters: ReadonlyArray<AST>
|
|
712
713
|
readonly run: (
|
|
713
714
|
typeParameters: ReadonlyArray<AST>
|
|
714
|
-
) => (input: unknown, self: Declaration, options: ParseOptions) => Effect.Effect<any,
|
|
715
|
+
) => (input: unknown, self: Declaration, options: ParseOptions) => Effect.Effect<any, SchemaIssue.Issue, any>
|
|
715
716
|
|
|
716
717
|
constructor(
|
|
717
718
|
typeParameters: ReadonlyArray<AST>,
|
|
718
719
|
run: (
|
|
719
720
|
typeParameters: ReadonlyArray<AST>
|
|
720
|
-
) => (input: unknown, self: Declaration, options: ParseOptions) => Effect.Effect<any,
|
|
721
|
+
) => (input: unknown, self: Declaration, options: ParseOptions) => Effect.Effect<any, SchemaIssue.Issue, any>,
|
|
721
722
|
annotations?: Schema.Annotations.Annotations,
|
|
722
723
|
checks?: Checks,
|
|
723
724
|
encoding?: Encoding,
|
|
@@ -728,7 +729,7 @@ export class Declaration extends Base {
|
|
|
728
729
|
this.run = run
|
|
729
730
|
}
|
|
730
731
|
/** @internal */
|
|
731
|
-
getParser():
|
|
732
|
+
getParser(): SchemaParser.Parser {
|
|
732
733
|
const run = this.run(this.typeParameters)
|
|
733
734
|
return (oinput, options) => {
|
|
734
735
|
if (Option.isNone(oinput)) return Effect.succeedNone
|
|
@@ -820,9 +821,9 @@ export class Undefined extends Base {
|
|
|
820
821
|
|
|
821
822
|
const undefinedToNull = new Link(
|
|
822
823
|
null_,
|
|
823
|
-
new
|
|
824
|
-
|
|
825
|
-
|
|
824
|
+
new SchemaTransformation.Transformation(
|
|
825
|
+
SchemaGetter.transform(() => undefined),
|
|
826
|
+
SchemaGetter.transform(() => null)
|
|
826
827
|
)
|
|
827
828
|
)
|
|
828
829
|
|
|
@@ -1087,9 +1088,9 @@ export class Enum extends Base {
|
|
|
1087
1088
|
return replaceEncoding(this, [
|
|
1088
1089
|
new Link(
|
|
1089
1090
|
new Union(Object.keys(coercions).map((k) => new Literal(k)), "anyOf"),
|
|
1090
|
-
new
|
|
1091
|
-
|
|
1092
|
-
|
|
1091
|
+
new SchemaTransformation.Transformation(
|
|
1092
|
+
SchemaGetter.transform((s) => coercions[s]),
|
|
1093
|
+
SchemaGetter.String()
|
|
1093
1094
|
)
|
|
1094
1095
|
)
|
|
1095
1096
|
])
|
|
@@ -1166,12 +1167,12 @@ export class TemplateLiteral extends Base {
|
|
|
1166
1167
|
this.encodedParts = encodedParts
|
|
1167
1168
|
}
|
|
1168
1169
|
/** @internal */
|
|
1169
|
-
getParser(recur: (ast: AST) =>
|
|
1170
|
+
getParser(recur: (ast: AST) => SchemaParser.Parser): SchemaParser.Parser {
|
|
1170
1171
|
const parser = recur(this.asTemplateLiteralParser())
|
|
1171
1172
|
return (oinput: Option.Option<unknown>, options: ParseOptions) =>
|
|
1172
1173
|
Effect.mapBothEager(parser(oinput, options), {
|
|
1173
1174
|
onSuccess: () => oinput,
|
|
1174
|
-
onFailure: (issue) => new
|
|
1175
|
+
onFailure: (issue) => new SchemaIssue.Composite(this, oinput, [issue])
|
|
1175
1176
|
})
|
|
1176
1177
|
}
|
|
1177
1178
|
/** @internal */
|
|
@@ -1185,17 +1186,17 @@ export class TemplateLiteral extends Base {
|
|
|
1185
1186
|
return decodeTo(
|
|
1186
1187
|
string,
|
|
1187
1188
|
tuple,
|
|
1188
|
-
new
|
|
1189
|
-
|
|
1189
|
+
new SchemaTransformation.Transformation(
|
|
1190
|
+
SchemaGetter.transformOrFail((s: string) => {
|
|
1190
1191
|
const match = regExp.exec(s)
|
|
1191
1192
|
if (match) return Effect.succeed(match.slice(1, this.parts.length + 1))
|
|
1192
1193
|
return Effect.fail(
|
|
1193
|
-
new
|
|
1194
|
+
new SchemaIssue.InvalidValue(Option.some(s), {
|
|
1194
1195
|
message: `Expected a value matching ${regExp.source}, got ${format(s)}`
|
|
1195
1196
|
})
|
|
1196
1197
|
)
|
|
1197
1198
|
}),
|
|
1198
|
-
|
|
1199
|
+
SchemaGetter.transform((parts) => parts.join(""))
|
|
1199
1200
|
)
|
|
1200
1201
|
)
|
|
1201
1202
|
}
|
|
@@ -1315,9 +1316,9 @@ function literalToString(ast: Literal): Literal {
|
|
|
1315
1316
|
return replaceEncoding(ast, [
|
|
1316
1317
|
new Link(
|
|
1317
1318
|
new Literal(literalAsString),
|
|
1318
|
-
new
|
|
1319
|
-
|
|
1320
|
-
|
|
1319
|
+
new SchemaTransformation.Transformation(
|
|
1320
|
+
SchemaGetter.transform(() => ast.literal),
|
|
1321
|
+
SchemaGetter.transform(() => literalAsString)
|
|
1321
1322
|
)
|
|
1322
1323
|
)
|
|
1323
1324
|
])
|
|
@@ -1474,8 +1475,8 @@ export const boolean = new Boolean()
|
|
|
1474
1475
|
*
|
|
1475
1476
|
* **When to use**
|
|
1476
1477
|
*
|
|
1477
|
-
* Use when
|
|
1478
|
-
*
|
|
1478
|
+
* Use when you need the AST node class for schemas that match any JavaScript
|
|
1479
|
+
* symbol value.
|
|
1479
1480
|
*
|
|
1480
1481
|
* **Details**
|
|
1481
1482
|
*
|
|
@@ -1571,6 +1572,11 @@ export const bigInt = new BigInt()
|
|
|
1571
1572
|
/**
|
|
1572
1573
|
* AST node for array-like types — both tuples and arrays.
|
|
1573
1574
|
*
|
|
1575
|
+
* **When to use**
|
|
1576
|
+
*
|
|
1577
|
+
* Use when constructing or inspecting AST nodes for tuple or array-like schemas,
|
|
1578
|
+
* including rest elements.
|
|
1579
|
+
*
|
|
1574
1580
|
* **Details**
|
|
1575
1581
|
*
|
|
1576
1582
|
* - `elements` — positional element types (tuple elements). An element is
|
|
@@ -1638,7 +1644,7 @@ export class Arrays extends Base {
|
|
|
1638
1644
|
}
|
|
1639
1645
|
}
|
|
1640
1646
|
/** @internal */
|
|
1641
|
-
getParser(recur: (ast: AST) =>
|
|
1647
|
+
getParser(recur: (ast: AST) => SchemaParser.Parser): SchemaParser.Parser {
|
|
1642
1648
|
// oxlint-disable-next-line @typescript-eslint/no-this-alias
|
|
1643
1649
|
const ast = this
|
|
1644
1650
|
const elements = ast.elements.map((ast) => ({ ast, parser: recur(ast) }))
|
|
@@ -1648,7 +1654,10 @@ export class Arrays extends Base {
|
|
|
1648
1654
|
const [head, ...tail] = rest
|
|
1649
1655
|
const tailLen = tail.length
|
|
1650
1656
|
|
|
1651
|
-
function getParser(
|
|
1657
|
+
function getParser(
|
|
1658
|
+
tailThreshold: number,
|
|
1659
|
+
index: number
|
|
1660
|
+
): { readonly ast: AST; readonly parser: SchemaParser.Parser } {
|
|
1652
1661
|
if (index < elementLen) {
|
|
1653
1662
|
return elements[index]
|
|
1654
1663
|
} else if (index >= tailThreshold) {
|
|
@@ -1665,7 +1674,7 @@ export class Arrays extends Base {
|
|
|
1665
1674
|
|
|
1666
1675
|
// If the input is not an array, return early with an error
|
|
1667
1676
|
if (!Array.isArray(input)) {
|
|
1668
|
-
return yield* Effect.fail(new
|
|
1677
|
+
return yield* Effect.fail(new SchemaIssue.InvalidType(ast, oinput))
|
|
1669
1678
|
}
|
|
1670
1679
|
|
|
1671
1680
|
const len = input.length
|
|
@@ -1676,7 +1685,7 @@ export class Arrays extends Base {
|
|
|
1676
1685
|
len,
|
|
1677
1686
|
tailThreshold: resolveTailThreshold(len, elementLen, tailLen),
|
|
1678
1687
|
output: new globalThis.Array(len),
|
|
1679
|
-
issues: undefined as Arr.NonEmptyArray<
|
|
1688
|
+
issues: undefined as Arr.NonEmptyArray<SchemaIssue.Issue> | undefined,
|
|
1680
1689
|
options
|
|
1681
1690
|
}
|
|
1682
1691
|
const concurrency = resolveConcurrency(options?.concurrency)
|
|
@@ -1691,17 +1700,17 @@ export class Arrays extends Base {
|
|
|
1691
1700
|
// ---------------------------------------------
|
|
1692
1701
|
if (ast.rest.length === 0 && len > elementLen) {
|
|
1693
1702
|
for (let i = elementLen; i <= len - 1; i++) {
|
|
1694
|
-
const issue = new
|
|
1703
|
+
const issue = new SchemaIssue.Pointer([i], new SchemaIssue.UnexpectedKey(ast, input[i]))
|
|
1695
1704
|
if (options.errors === "all") {
|
|
1696
1705
|
if (state.issues) state.issues.push(issue)
|
|
1697
1706
|
else state.issues = [issue]
|
|
1698
1707
|
} else {
|
|
1699
|
-
return yield* Effect.fail(new
|
|
1708
|
+
return yield* Effect.fail(new SchemaIssue.Composite(ast, oinput, [issue]))
|
|
1700
1709
|
}
|
|
1701
1710
|
}
|
|
1702
1711
|
}
|
|
1703
1712
|
if (state.issues) {
|
|
1704
|
-
return yield* Effect.fail(new
|
|
1713
|
+
return yield* Effect.fail(new SchemaIssue.Composite(ast, oinput, state.issues))
|
|
1705
1714
|
}
|
|
1706
1715
|
return Option.some(state.output)
|
|
1707
1716
|
})
|
|
@@ -1723,11 +1732,14 @@ const parseArray = iterateEager<{
|
|
|
1723
1732
|
readonly ast: AST
|
|
1724
1733
|
readonly oinput: Option.Option<unknown>
|
|
1725
1734
|
readonly len: number
|
|
1726
|
-
readonly getParser: (
|
|
1735
|
+
readonly getParser: (
|
|
1736
|
+
tailThreshold: number,
|
|
1737
|
+
index: number
|
|
1738
|
+
) => { readonly ast: AST; readonly parser: SchemaParser.Parser }
|
|
1727
1739
|
readonly tailThreshold: number
|
|
1728
1740
|
readonly options: ParseOptions
|
|
1729
1741
|
readonly output: Array<unknown>
|
|
1730
|
-
issues: Array<
|
|
1742
|
+
issues: Array<SchemaIssue.Issue> | undefined
|
|
1731
1743
|
}, unknown>()({
|
|
1732
1744
|
onItem(s, item, i) {
|
|
1733
1745
|
const value = i < s.len ? Option.some(item) : Option.none()
|
|
@@ -1741,12 +1753,12 @@ const parseArray = iterateEager<{
|
|
|
1741
1753
|
} else {
|
|
1742
1754
|
const p = s.getParser(s.tailThreshold, i)
|
|
1743
1755
|
if (isOptional(p.ast)) return
|
|
1744
|
-
const issue = new
|
|
1756
|
+
const issue = new SchemaIssue.Pointer([i], new SchemaIssue.MissingKey(p.ast.context?.annotations))
|
|
1745
1757
|
if (s.options.errors === "all") {
|
|
1746
1758
|
if (s.issues) s.issues.push(issue)
|
|
1747
1759
|
else s.issues = [issue]
|
|
1748
1760
|
} else {
|
|
1749
|
-
return Exit.fail(new
|
|
1761
|
+
return Exit.fail(new SchemaIssue.Composite(s.ast, s.oinput, [issue]))
|
|
1750
1762
|
}
|
|
1751
1763
|
}
|
|
1752
1764
|
}
|
|
@@ -1769,22 +1781,22 @@ const wrapPropertyKeyIssue = (
|
|
|
1769
1781
|
s: {
|
|
1770
1782
|
readonly oinput: Option.Option<unknown>
|
|
1771
1783
|
readonly options: ParseOptions
|
|
1772
|
-
issues: Array<
|
|
1784
|
+
issues: Array<SchemaIssue.Issue> | undefined
|
|
1773
1785
|
},
|
|
1774
1786
|
ast: AST,
|
|
1775
1787
|
key: PropertyKey,
|
|
1776
|
-
exit: Exit.Failure<any,
|
|
1788
|
+
exit: Exit.Failure<any, SchemaIssue.Issue>
|
|
1777
1789
|
) => {
|
|
1778
1790
|
const issueResult = Cause.findError(exit.cause)
|
|
1779
1791
|
if (Result.isFailure(issueResult)) {
|
|
1780
1792
|
return exit
|
|
1781
1793
|
}
|
|
1782
|
-
const issue = new
|
|
1794
|
+
const issue = new SchemaIssue.Pointer([key], issueResult.success)
|
|
1783
1795
|
if (s.options.errors === "all") {
|
|
1784
1796
|
if (s.issues) s.issues.push(issue)
|
|
1785
1797
|
else s.issues = [issue]
|
|
1786
1798
|
} else {
|
|
1787
|
-
return Exit.fail(new
|
|
1799
|
+
return Exit.fail(new SchemaIssue.Composite(ast, s.oinput, [issue]))
|
|
1788
1800
|
}
|
|
1789
1801
|
}
|
|
1790
1802
|
|
|
@@ -1883,11 +1895,16 @@ export class KeyValueCombiner {
|
|
|
1883
1895
|
/**
|
|
1884
1896
|
* Represents an index signature entry within an {@link Objects} node.
|
|
1885
1897
|
*
|
|
1898
|
+
* **When to use**
|
|
1899
|
+
*
|
|
1900
|
+
* Use when constructing or inspecting object AST entries for record-like keys
|
|
1901
|
+
* and values.
|
|
1902
|
+
*
|
|
1886
1903
|
* **Details**
|
|
1887
1904
|
*
|
|
1888
1905
|
* - `parameter` — the key type AST (e.g. {@link String} for `string` keys,
|
|
1889
1906
|
* {@link TemplateLiteral} for patterned keys).
|
|
1890
|
-
* - `type` — the value type
|
|
1907
|
+
* - `type` — the value type SchemaAST.
|
|
1891
1908
|
* - `merge` — optional {@link KeyValueCombiner} for handling duplicate keys.
|
|
1892
1909
|
*
|
|
1893
1910
|
* **Gotchas**
|
|
@@ -1922,6 +1939,11 @@ export class IndexSignature {
|
|
|
1922
1939
|
/**
|
|
1923
1940
|
* AST node for object-like schemas, including structs and records.
|
|
1924
1941
|
*
|
|
1942
|
+
* **When to use**
|
|
1943
|
+
*
|
|
1944
|
+
* Use when constructing or inspecting AST nodes for structs or records rather
|
|
1945
|
+
* than array-like schemas.
|
|
1946
|
+
*
|
|
1925
1947
|
* **Details**
|
|
1926
1948
|
*
|
|
1927
1949
|
* - `propertySignatures` — named properties with their types (struct fields).
|
|
@@ -1983,14 +2005,14 @@ export class Objects extends Base {
|
|
|
1983
2005
|
}
|
|
1984
2006
|
}
|
|
1985
2007
|
/** @internal */
|
|
1986
|
-
getParser(recur: (ast: AST) =>
|
|
2008
|
+
getParser(recur: (ast: AST) => SchemaParser.Parser): SchemaParser.Parser {
|
|
1987
2009
|
// oxlint-disable-next-line @typescript-eslint/no-this-alias
|
|
1988
2010
|
const ast = this
|
|
1989
2011
|
const expectedKeys: Array<PropertyKey> = []
|
|
1990
2012
|
const expectedKeysSet = new Set<PropertyKey>()
|
|
1991
2013
|
const properties: Array<{
|
|
1992
2014
|
readonly ps: PropertySignature | IndexSignature
|
|
1993
|
-
readonly parser:
|
|
2015
|
+
readonly parser: SchemaParser.Parser
|
|
1994
2016
|
readonly name: PropertyKey
|
|
1995
2017
|
readonly type: AST
|
|
1996
2018
|
}> = []
|
|
@@ -2018,7 +2040,7 @@ export class Objects extends Base {
|
|
|
2018
2040
|
readonly input: Record<PropertyKey, unknown>
|
|
2019
2041
|
readonly options: ParseOptions
|
|
2020
2042
|
readonly out: Record<PropertyKey, unknown>
|
|
2021
|
-
issues: Array<
|
|
2043
|
+
issues: Array<SchemaIssue.Issue> | undefined
|
|
2022
2044
|
}, [key: PropertyKey, is: IndexSignature]>()({
|
|
2023
2045
|
onItem: Effect.fnUntracedEager(function*(
|
|
2024
2046
|
s,
|
|
@@ -2028,7 +2050,7 @@ export class Objects extends Base {
|
|
|
2028
2050
|
const effKey = parserKey(Option.some(key), s.options)
|
|
2029
2051
|
const exitKey = (effectIsExit(effKey) ? effKey : yield* Effect.exit(effKey)) as Exit.Exit<
|
|
2030
2052
|
Option.Option<PropertyKey>,
|
|
2031
|
-
|
|
2053
|
+
SchemaIssue.Issue
|
|
2032
2054
|
>
|
|
2033
2055
|
if (exitKey._tag === "Failure") {
|
|
2034
2056
|
const eff = wrapPropertyKeyIssue(s, ast, key, exitKey)
|
|
@@ -2055,7 +2077,7 @@ export class Objects extends Base {
|
|
|
2055
2077
|
}
|
|
2056
2078
|
}
|
|
2057
2079
|
}),
|
|
2058
|
-
step: (_s, _, exit: Exit.Exit<void,
|
|
2080
|
+
step: (_s, _, exit: Exit.Exit<void, SchemaIssue.Issue>) => exit._tag === "Failure" ? exit : undefined
|
|
2059
2081
|
}) :
|
|
2060
2082
|
undefined
|
|
2061
2083
|
|
|
@@ -2067,7 +2089,7 @@ export class Objects extends Base {
|
|
|
2067
2089
|
|
|
2068
2090
|
// If the input is not a record, return early with an error
|
|
2069
2091
|
if (!(typeof input === "object" && input !== null && !Array.isArray(input))) {
|
|
2070
|
-
return yield* Effect.fail(new
|
|
2092
|
+
return yield* Effect.fail(new SchemaIssue.InvalidType(ast, oinput))
|
|
2071
2093
|
}
|
|
2072
2094
|
|
|
2073
2095
|
const out: Record<PropertyKey, unknown> = {}
|
|
@@ -2076,7 +2098,7 @@ export class Objects extends Base {
|
|
|
2076
2098
|
oinput,
|
|
2077
2099
|
input,
|
|
2078
2100
|
out,
|
|
2079
|
-
issues: undefined as Arr.NonEmptyArray<
|
|
2101
|
+
issues: undefined as Arr.NonEmptyArray<SchemaIssue.Issue> | undefined,
|
|
2080
2102
|
options
|
|
2081
2103
|
}
|
|
2082
2104
|
const errorsAllOption = options.errors === "all"
|
|
@@ -2094,7 +2116,7 @@ export class Objects extends Base {
|
|
|
2094
2116
|
if (!expectedKeysSet.has(key)) {
|
|
2095
2117
|
// key is unexpected
|
|
2096
2118
|
if (onExcessPropertyError) {
|
|
2097
|
-
const issue = new
|
|
2119
|
+
const issue = new SchemaIssue.Pointer([key], new SchemaIssue.UnexpectedKey(ast, input[key]))
|
|
2098
2120
|
if (errorsAllOption) {
|
|
2099
2121
|
if (state.issues) {
|
|
2100
2122
|
state.issues.push(issue)
|
|
@@ -2103,7 +2125,7 @@ export class Objects extends Base {
|
|
|
2103
2125
|
}
|
|
2104
2126
|
continue
|
|
2105
2127
|
} else {
|
|
2106
|
-
return yield* Effect.fail(new
|
|
2128
|
+
return yield* Effect.fail(new SchemaIssue.Composite(ast, oinput, [issue]))
|
|
2107
2129
|
}
|
|
2108
2130
|
} else {
|
|
2109
2131
|
// preserve key
|
|
@@ -2139,7 +2161,7 @@ export class Objects extends Base {
|
|
|
2139
2161
|
}
|
|
2140
2162
|
|
|
2141
2163
|
if (state.issues) {
|
|
2142
|
-
return yield* Effect.fail(new
|
|
2164
|
+
return yield* Effect.fail(new SchemaIssue.Composite(ast, oinput, state.issues))
|
|
2143
2165
|
}
|
|
2144
2166
|
if (options.propertyOrder === "original") {
|
|
2145
2167
|
// preserve input keys order
|
|
@@ -2194,7 +2216,7 @@ export class Objects extends Base {
|
|
|
2194
2216
|
|
|
2195
2217
|
type ParsedProperty = {
|
|
2196
2218
|
readonly ps: PropertySignature | IndexSignature
|
|
2197
|
-
readonly parser:
|
|
2219
|
+
readonly parser: SchemaParser.Parser
|
|
2198
2220
|
readonly name: PropertyKey
|
|
2199
2221
|
readonly type: AST
|
|
2200
2222
|
}
|
|
@@ -2205,7 +2227,7 @@ const parseProperties = iterateEager<{
|
|
|
2205
2227
|
readonly input: Record<PropertyKey, unknown>
|
|
2206
2228
|
readonly options: ParseOptions
|
|
2207
2229
|
readonly out: Record<PropertyKey, unknown>
|
|
2208
|
-
issues: Array<
|
|
2230
|
+
issues: Array<SchemaIssue.Issue> | undefined
|
|
2209
2231
|
}, ParsedProperty>()({
|
|
2210
2232
|
onItem(
|
|
2211
2233
|
s: {
|
|
@@ -2213,7 +2235,7 @@ const parseProperties = iterateEager<{
|
|
|
2213
2235
|
readonly input: Record<PropertyKey, unknown>
|
|
2214
2236
|
readonly options: ParseOptions
|
|
2215
2237
|
readonly out: Record<PropertyKey, unknown>
|
|
2216
|
-
issues: Array<
|
|
2238
|
+
issues: Array<SchemaIssue.Issue> | undefined
|
|
2217
2239
|
},
|
|
2218
2240
|
p
|
|
2219
2241
|
) {
|
|
@@ -2228,14 +2250,14 @@ const parseProperties = iterateEager<{
|
|
|
2228
2250
|
} else if (exit.value._tag === "Some") {
|
|
2229
2251
|
internalRecord.set(s.out, p.name, exit.value.value)
|
|
2230
2252
|
} else if (!isOptional(p.type)) {
|
|
2231
|
-
const issue = new
|
|
2253
|
+
const issue = new SchemaIssue.Pointer([p.name], new SchemaIssue.MissingKey(p.type.context?.annotations))
|
|
2232
2254
|
if (s.options.errors === "all") {
|
|
2233
2255
|
if (s.issues) s.issues.push(issue)
|
|
2234
2256
|
else s.issues = [issue]
|
|
2235
2257
|
return
|
|
2236
2258
|
} else {
|
|
2237
2259
|
return Exit.fail(
|
|
2238
|
-
new
|
|
2260
|
+
new SchemaIssue.Composite(s.ast, s.oinput, [issue])
|
|
2239
2261
|
)
|
|
2240
2262
|
}
|
|
2241
2263
|
}
|
|
@@ -2545,7 +2567,7 @@ export class Union<A extends AST = AST> extends Base {
|
|
|
2545
2567
|
this.mode = mode
|
|
2546
2568
|
}
|
|
2547
2569
|
/** @internal */
|
|
2548
|
-
getParser(recur: (ast: AST) =>
|
|
2570
|
+
getParser(recur: (ast: AST) => SchemaParser.Parser): SchemaParser.Parser {
|
|
2549
2571
|
// oxlint-disable-next-line @typescript-eslint/no-this-alias
|
|
2550
2572
|
const ast = this
|
|
2551
2573
|
|
|
@@ -2563,16 +2585,20 @@ export class Union<A extends AST = AST> extends Base {
|
|
|
2563
2585
|
input,
|
|
2564
2586
|
out: undefined,
|
|
2565
2587
|
successes: [],
|
|
2566
|
-
issues: undefined as Arr.NonEmptyArray<
|
|
2588
|
+
issues: undefined as Arr.NonEmptyArray<SchemaIssue.Issue> | undefined,
|
|
2567
2589
|
options
|
|
2568
2590
|
}
|
|
2569
2591
|
const concurrency = resolveConcurrency(options?.concurrency)
|
|
2570
2592
|
const eff = parseUnion(state, candidates, concurrency)
|
|
2571
2593
|
if (!eff) {
|
|
2572
|
-
return state.out
|
|
2594
|
+
return state.out
|
|
2595
|
+
? Effect.succeed(state.out)
|
|
2596
|
+
: Effect.fail(new SchemaIssue.AnyOf(ast, input, state.issues ?? []))
|
|
2573
2597
|
}
|
|
2574
2598
|
return Effect.flatMap(eff, (_) => {
|
|
2575
|
-
return state.out
|
|
2599
|
+
return state.out
|
|
2600
|
+
? Effect.succeed(state.out)
|
|
2601
|
+
: Effect.fail(new SchemaIssue.AnyOf(ast, input, state.issues ?? []))
|
|
2576
2602
|
})
|
|
2577
2603
|
}
|
|
2578
2604
|
}
|
|
@@ -2623,14 +2649,14 @@ export class Union<A extends AST = AST> extends Base {
|
|
|
2623
2649
|
}
|
|
2624
2650
|
|
|
2625
2651
|
const parseUnion = iterateEager<{
|
|
2626
|
-
readonly recur: (ast: AST) =>
|
|
2652
|
+
readonly recur: (ast: AST) => SchemaParser.Parser
|
|
2627
2653
|
readonly ast: Union
|
|
2628
2654
|
readonly oinput: Option.Option<unknown>
|
|
2629
2655
|
readonly input: unknown
|
|
2630
2656
|
readonly options: ParseOptions
|
|
2631
2657
|
out: Option.Option<unknown> | undefined
|
|
2632
2658
|
successes: Array<AST>
|
|
2633
|
-
issues: Array<
|
|
2659
|
+
issues: Array<SchemaIssue.Issue> | undefined
|
|
2634
2660
|
}, AST>()({
|
|
2635
2661
|
onItem(s, ast) {
|
|
2636
2662
|
const parser = s.recur(ast)
|
|
@@ -2647,7 +2673,7 @@ const parseUnion = iterateEager<{
|
|
|
2647
2673
|
} else {
|
|
2648
2674
|
if (s.out && s.ast.mode === "oneOf") {
|
|
2649
2675
|
s.successes.push(candidate)
|
|
2650
|
-
return Exit.fail(new
|
|
2676
|
+
return Exit.fail(new SchemaIssue.OneOf(s.ast, s.input, s.successes))
|
|
2651
2677
|
}
|
|
2652
2678
|
s.out = exit.value
|
|
2653
2679
|
s.successes.push(candidate)
|
|
@@ -2666,9 +2692,9 @@ const nonFiniteLiterals = new Union([
|
|
|
2666
2692
|
|
|
2667
2693
|
const numberToJson = new Link(
|
|
2668
2694
|
new Union([number, nonFiniteLiterals], "anyOf"),
|
|
2669
|
-
new
|
|
2670
|
-
|
|
2671
|
-
|
|
2695
|
+
new SchemaTransformation.Transformation(
|
|
2696
|
+
SchemaGetter.Number(),
|
|
2697
|
+
SchemaGetter.transform((n) => globalThis.Number.isFinite(n) ? n : globalThis.String(n))
|
|
2672
2698
|
)
|
|
2673
2699
|
)
|
|
2674
2700
|
|
|
@@ -2740,7 +2766,7 @@ export class Suspend extends Base {
|
|
|
2740
2766
|
this.thunk = memoizeThunk(thunk)
|
|
2741
2767
|
}
|
|
2742
2768
|
/** @internal */
|
|
2743
|
-
getParser(recur: (ast: AST) =>
|
|
2769
|
+
getParser(recur: (ast: AST) => SchemaParser.Parser): SchemaParser.Parser {
|
|
2744
2770
|
return recur(this.thunk())
|
|
2745
2771
|
}
|
|
2746
2772
|
/** @internal */
|
|
@@ -2780,7 +2806,7 @@ export class Suspend extends Base {
|
|
|
2780
2806
|
*/
|
|
2781
2807
|
export class Filter<in E> extends Pipeable.Class {
|
|
2782
2808
|
readonly _tag = "Filter"
|
|
2783
|
-
readonly run: (input: E, self: AST, options: ParseOptions) =>
|
|
2809
|
+
readonly run: (input: E, self: AST, options: ParseOptions) => SchemaIssue.Issue | undefined
|
|
2784
2810
|
readonly annotations: Schema.Annotations.Filter | undefined
|
|
2785
2811
|
/**
|
|
2786
2812
|
* Whether the parsing process should be aborted after this check has failed.
|
|
@@ -2788,7 +2814,7 @@ export class Filter<in E> extends Pipeable.Class {
|
|
|
2788
2814
|
readonly aborted: boolean
|
|
2789
2815
|
|
|
2790
2816
|
constructor(
|
|
2791
|
-
run: (input: E, self: AST, options: ParseOptions) =>
|
|
2817
|
+
run: (input: E, self: AST, options: ParseOptions) => SchemaIssue.Issue | undefined,
|
|
2792
2818
|
annotations: Schema.Annotations.Filter | undefined = undefined,
|
|
2793
2819
|
/**
|
|
2794
2820
|
* Whether the parsing process should be aborted after this check has failed.
|
|
@@ -2870,7 +2896,7 @@ export function makeFilter<T>(
|
|
|
2870
2896
|
aborted: boolean = false
|
|
2871
2897
|
): Filter<T> {
|
|
2872
2898
|
return new Filter(
|
|
2873
|
-
(input, ast, options) =>
|
|
2899
|
+
(input, ast, options) => SchemaIssue.make(input, ast, filter(input, ast, options)),
|
|
2874
2900
|
annotations,
|
|
2875
2901
|
aborted
|
|
2876
2902
|
)
|
|
@@ -2882,7 +2908,7 @@ export function makeFilterByGuard<T extends E, E>(
|
|
|
2882
2908
|
annotations?: Schema.Annotations.Filter
|
|
2883
2909
|
): Filter<any> {
|
|
2884
2910
|
return new Filter(
|
|
2885
|
-
(input: E) => is(input) ? undefined : new
|
|
2911
|
+
(input: E) => is(input) ? undefined : new SchemaIssue.InvalidValue(Option.some(input)),
|
|
2886
2912
|
annotations,
|
|
2887
2913
|
true // after a guard, we always want to abort
|
|
2888
2914
|
)
|
|
@@ -2891,6 +2917,11 @@ export function makeFilterByGuard<T extends E, E>(
|
|
|
2891
2917
|
/**
|
|
2892
2918
|
* Creates a {@link Filter} that validates strings by running `RegExp.test`.
|
|
2893
2919
|
*
|
|
2920
|
+
* **When to use**
|
|
2921
|
+
*
|
|
2922
|
+
* Use when string validation should be represented as a schema `Filter` backed
|
|
2923
|
+
* by a regular expression.
|
|
2924
|
+
*
|
|
2894
2925
|
* **Details**
|
|
2895
2926
|
*
|
|
2896
2927
|
* The filter can be used with `Schema.filter` or attached directly to a
|
|
@@ -3015,7 +3046,7 @@ export function applyToLastLink(f: (ast: AST) => AST) {
|
|
|
3015
3046
|
/** @internal */
|
|
3016
3047
|
export function middlewareDecoding(
|
|
3017
3048
|
ast: AST,
|
|
3018
|
-
middleware:
|
|
3049
|
+
middleware: SchemaTransformation.Middleware<any, any, any, any, any, any>
|
|
3019
3050
|
): AST {
|
|
3020
3051
|
return appendTransformation(ast, middleware, toType(ast))
|
|
3021
3052
|
}
|
|
@@ -3023,7 +3054,7 @@ export function middlewareDecoding(
|
|
|
3023
3054
|
/** @internal */
|
|
3024
3055
|
export function middlewareEncoding(
|
|
3025
3056
|
ast: AST,
|
|
3026
|
-
middleware:
|
|
3057
|
+
middleware: SchemaTransformation.Middleware<any, any, any, any, any, any>
|
|
3027
3058
|
): AST {
|
|
3028
3059
|
return appendTransformation(toEncoded(ast), middleware, ast)
|
|
3029
3060
|
}
|
|
@@ -3031,8 +3062,8 @@ export function middlewareEncoding(
|
|
|
3031
3062
|
function appendTransformation<A extends AST>(
|
|
3032
3063
|
from: AST,
|
|
3033
3064
|
transformation:
|
|
3034
|
-
|
|
|
3035
|
-
|
|
|
3065
|
+
| SchemaTransformation.Transformation<any, any, any, any>
|
|
3066
|
+
| SchemaTransformation.Middleware<any, any, any, any, any, any>,
|
|
3036
3067
|
to: A
|
|
3037
3068
|
): A {
|
|
3038
3069
|
const link = new Link(from, transformation)
|
|
@@ -3120,11 +3151,11 @@ export function mutableKey<A extends AST>(ast: A): A {
|
|
|
3120
3151
|
/** @internal */
|
|
3121
3152
|
export function withConstructorDefault<A extends AST>(
|
|
3122
3153
|
ast: A,
|
|
3123
|
-
defaultValue: Effect.Effect<unknown,
|
|
3154
|
+
defaultValue: Effect.Effect<unknown, SchemaIssue.Issue>
|
|
3124
3155
|
): A {
|
|
3125
|
-
const transformation = new
|
|
3126
|
-
|
|
3127
|
-
|
|
3156
|
+
const transformation = new SchemaTransformation.Transformation(
|
|
3157
|
+
SchemaGetter.withDefault(defaultValue),
|
|
3158
|
+
SchemaGetter.passthrough()
|
|
3128
3159
|
)
|
|
3129
3160
|
const encoding: Encoding = [new Link(unknown, transformation)]
|
|
3130
3161
|
const context = ast.context ?
|
|
@@ -3154,7 +3185,7 @@ export function withConstructorDefault<A extends AST>(
|
|
|
3154
3185
|
export function decodeTo<A extends AST>(
|
|
3155
3186
|
from: AST,
|
|
3156
3187
|
to: A,
|
|
3157
|
-
transformation:
|
|
3188
|
+
transformation: SchemaTransformation.Transformation<any, any, any, any>
|
|
3158
3189
|
): A {
|
|
3159
3190
|
return appendTransformation(from, transformation, to)
|
|
3160
3191
|
}
|
|
@@ -3321,7 +3352,7 @@ function flipEncoding(ast: AST, encoding: Encoding): AST {
|
|
|
3321
3352
|
*
|
|
3322
3353
|
* After flipping, what was decoding becomes encoding and vice versa. This is
|
|
3323
3354
|
* the core operation behind `Schema.encode` — encoding a value is decoding
|
|
3324
|
-
* with a flipped
|
|
3355
|
+
* with a flipped SchemaAST.
|
|
3325
3356
|
*
|
|
3326
3357
|
* - Memoized: same input reference → same output reference.
|
|
3327
3358
|
* - Recursively walks composite nodes.
|
|
@@ -3393,7 +3424,7 @@ function handleTemplateLiteralASTPartParens(part: TemplateLiteralPart, s: string
|
|
|
3393
3424
|
function fromConst<const T>(
|
|
3394
3425
|
ast: AST,
|
|
3395
3426
|
value: T
|
|
3396
|
-
):
|
|
3427
|
+
): SchemaParser.Parser {
|
|
3397
3428
|
const succeed = Effect.succeedSome(value)
|
|
3398
3429
|
return (oinput) => {
|
|
3399
3430
|
if (oinput._tag === "None") {
|
|
@@ -3401,21 +3432,21 @@ function fromConst<const T>(
|
|
|
3401
3432
|
}
|
|
3402
3433
|
return oinput.value === value
|
|
3403
3434
|
? succeed
|
|
3404
|
-
: Effect.fail(new
|
|
3435
|
+
: Effect.fail(new SchemaIssue.InvalidType(ast, oinput))
|
|
3405
3436
|
}
|
|
3406
3437
|
}
|
|
3407
3438
|
|
|
3408
3439
|
function fromRefinement<T>(
|
|
3409
3440
|
ast: AST,
|
|
3410
3441
|
refinement: (input: unknown) => input is T
|
|
3411
|
-
):
|
|
3442
|
+
): SchemaParser.Parser {
|
|
3412
3443
|
return (oinput) => {
|
|
3413
3444
|
if (oinput._tag === "None") {
|
|
3414
3445
|
return Effect.succeedNone
|
|
3415
3446
|
}
|
|
3416
3447
|
return refinement(oinput.value)
|
|
3417
3448
|
? Effect.succeed(oinput)
|
|
3418
|
-
: Effect.fail(new
|
|
3449
|
+
: Effect.fail(new SchemaIssue.InvalidType(ast, oinput))
|
|
3419
3450
|
}
|
|
3420
3451
|
}
|
|
3421
3452
|
|
|
@@ -3489,12 +3520,12 @@ const finiteString = appendChecks(string, [isStringFinite()])
|
|
|
3489
3520
|
|
|
3490
3521
|
const finiteToString = new Link(
|
|
3491
3522
|
finiteString,
|
|
3492
|
-
|
|
3523
|
+
SchemaTransformation.numberFromString
|
|
3493
3524
|
)
|
|
3494
3525
|
|
|
3495
3526
|
const numberToString = new Link(
|
|
3496
3527
|
new Union([finiteString, nonFiniteLiterals], "anyOf"),
|
|
3497
|
-
|
|
3528
|
+
SchemaTransformation.numberFromString
|
|
3498
3529
|
)
|
|
3499
3530
|
|
|
3500
3531
|
/**
|
|
@@ -3526,7 +3557,7 @@ export const bigIntString = appendChecks(string, [isStringBigInt({
|
|
|
3526
3557
|
|
|
3527
3558
|
const bigIntToString = new Link(
|
|
3528
3559
|
bigIntString,
|
|
3529
|
-
|
|
3560
|
+
SchemaTransformation.bigintFromString
|
|
3530
3561
|
)
|
|
3531
3562
|
|
|
3532
3563
|
const REGEXP_PATTERN = "Symbol\\((.*)\\)"
|
|
@@ -3541,15 +3572,15 @@ export const symbolString = appendChecks(string, [isStringSymbol()])
|
|
|
3541
3572
|
*/
|
|
3542
3573
|
const symbolToString = new Link(
|
|
3543
3574
|
symbolString,
|
|
3544
|
-
new
|
|
3545
|
-
|
|
3546
|
-
|
|
3575
|
+
new SchemaTransformation.Transformation(
|
|
3576
|
+
SchemaGetter.transform((description) => globalThis.Symbol.for(isStringSymbolRegExp.exec(description)![1])),
|
|
3577
|
+
SchemaGetter.transformOrFail((sym: symbol) => {
|
|
3547
3578
|
const key = globalThis.Symbol.keyFor(sym)
|
|
3548
3579
|
if (key !== undefined) {
|
|
3549
3580
|
return Effect.succeed(globalThis.String(sym))
|
|
3550
3581
|
}
|
|
3551
3582
|
return Effect.fail(
|
|
3552
|
-
new
|
|
3583
|
+
new SchemaIssue.Forbidden(Option.some(sym), { message: "cannot serialize to string, Symbol is not registered" })
|
|
3553
3584
|
)
|
|
3554
3585
|
})
|
|
3555
3586
|
)
|
|
@@ -3574,7 +3605,7 @@ export function isStringSymbol(annotations?: Schema.Annotations.Filter) {
|
|
|
3574
3605
|
export function collectIssues<T>(
|
|
3575
3606
|
checks: ReadonlyArray<Check<T>>,
|
|
3576
3607
|
value: T,
|
|
3577
|
-
issues: Array<
|
|
3608
|
+
issues: Array<SchemaIssue.Issue>,
|
|
3578
3609
|
ast: AST,
|
|
3579
3610
|
options: ParseOptions
|
|
3580
3611
|
) {
|
|
@@ -3585,7 +3616,7 @@ export function collectIssues<T>(
|
|
|
3585
3616
|
} else {
|
|
3586
3617
|
const issue = check.run(value, ast, options)
|
|
3587
3618
|
if (issue) {
|
|
3588
|
-
issues.push(new
|
|
3619
|
+
issues.push(new SchemaIssue.Filter(value, check, issue))
|
|
3589
3620
|
if (check.aborted || options?.errors !== "all") {
|
|
3590
3621
|
return
|
|
3591
3622
|
}
|
|
@@ -3598,11 +3629,11 @@ export function collectIssues<T>(
|
|
|
3598
3629
|
export function runChecks<T>(
|
|
3599
3630
|
checks: readonly [Check<T>, ...Array<Check<T>>],
|
|
3600
3631
|
s: T
|
|
3601
|
-
): Result.Result<T,
|
|
3602
|
-
const issues: Array<
|
|
3632
|
+
): Result.Result<T, SchemaIssue.Issue> {
|
|
3633
|
+
const issues: Array<SchemaIssue.Issue> = []
|
|
3603
3634
|
collectIssues(checks, s, issues, unknown, { errors: "all" })
|
|
3604
3635
|
if (Arr.isArrayNonEmpty(issues)) {
|
|
3605
|
-
const issue = new
|
|
3636
|
+
const issue = new SchemaIssue.Composite(unknown, Option.some(s), issues)
|
|
3606
3637
|
return Result.fail(issue)
|
|
3607
3638
|
}
|
|
3608
3639
|
return Result.succeed(s)
|
|
@@ -3749,7 +3780,7 @@ export const Json = new Declaration(
|
|
|
3749
3780
|
() => (input, ast) =>
|
|
3750
3781
|
isJson(input) ?
|
|
3751
3782
|
Effect.succeed(input) :
|
|
3752
|
-
Effect.fail(new
|
|
3783
|
+
Effect.fail(new SchemaIssue.InvalidType(ast, Option.some(input))),
|
|
3753
3784
|
{
|
|
3754
3785
|
typeConstructor: {
|
|
3755
3786
|
_tag: "effect/Json"
|
|
@@ -3759,7 +3790,7 @@ export const Json = new Declaration(
|
|
|
3759
3790
|
Type: `Schema.Json`
|
|
3760
3791
|
},
|
|
3761
3792
|
expected: "JSON value",
|
|
3762
|
-
toCodecJson: () => new Link(unknown,
|
|
3793
|
+
toCodecJson: () => new Link(unknown, SchemaTransformation.passthrough())
|
|
3763
3794
|
}
|
|
3764
3795
|
)
|
|
3765
3796
|
|
|
@@ -3777,16 +3808,16 @@ export const MutableJson = annotate(Json, {
|
|
|
3777
3808
|
/** @internal */
|
|
3778
3809
|
export const unknownToNull = new Link(
|
|
3779
3810
|
null_,
|
|
3780
|
-
new
|
|
3781
|
-
|
|
3782
|
-
|
|
3811
|
+
new SchemaTransformation.Transformation(
|
|
3812
|
+
SchemaGetter.passthrough(),
|
|
3813
|
+
SchemaGetter.transform(() => null)
|
|
3783
3814
|
)
|
|
3784
3815
|
)
|
|
3785
3816
|
|
|
3786
3817
|
/** @internal */
|
|
3787
3818
|
export const unknownToJson = new Link(
|
|
3788
3819
|
Json,
|
|
3789
|
-
|
|
3820
|
+
SchemaTransformation.passthrough()
|
|
3790
3821
|
)
|
|
3791
3822
|
|
|
3792
3823
|
/**
|
|
@@ -3823,15 +3854,15 @@ const StringTree = new Declaration(
|
|
|
3823
3854
|
() => (input, ast) =>
|
|
3824
3855
|
isStringTree(input) ?
|
|
3825
3856
|
Effect.succeed(input) :
|
|
3826
|
-
Effect.fail(new
|
|
3857
|
+
Effect.fail(new SchemaIssue.InvalidType(ast, Option.some(input))),
|
|
3827
3858
|
{
|
|
3828
3859
|
expected: "StringTree",
|
|
3829
|
-
toCodecStringTree: () => new Link(unknown,
|
|
3860
|
+
toCodecStringTree: () => new Link(unknown, SchemaTransformation.passthrough())
|
|
3830
3861
|
}
|
|
3831
3862
|
)
|
|
3832
3863
|
|
|
3833
3864
|
/** @internal */
|
|
3834
3865
|
export const unknownToStringTree = new Link(
|
|
3835
3866
|
StringTree,
|
|
3836
|
-
|
|
3867
|
+
SchemaTransformation.passthrough()
|
|
3837
3868
|
)
|