effect 4.0.0-beta.102 → 4.0.0-beta.104
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 +971 -1037
- package/dist/Array.d.ts.map +1 -1
- package/dist/Array.js +381 -407
- package/dist/Array.js.map +1 -1
- package/dist/BigDecimal.d.ts +433 -756
- package/dist/BigDecimal.d.ts.map +1 -1
- package/dist/BigDecimal.js +200 -325
- package/dist/BigDecimal.js.map +1 -1
- package/dist/BigInt.d.ts +207 -267
- package/dist/BigInt.d.ts.map +1 -1
- package/dist/BigInt.js +107 -135
- package/dist/BigInt.js.map +1 -1
- package/dist/Boolean.d.ts +146 -188
- package/dist/Boolean.d.ts.map +1 -1
- package/dist/Boolean.js +64 -84
- package/dist/Boolean.js.map +1 -1
- package/dist/Brand.js.map +1 -1
- package/dist/Cache.d.ts +405 -254
- package/dist/Cache.d.ts.map +1 -1
- package/dist/Cache.js +167 -102
- package/dist/Cache.js.map +1 -1
- package/dist/Cause.d.ts +167 -277
- package/dist/Cause.d.ts.map +1 -1
- package/dist/Cause.js +122 -176
- package/dist/Cause.js.map +1 -1
- package/dist/Channel.d.ts +730 -769
- package/dist/Channel.d.ts.map +1 -1
- package/dist/Channel.js +514 -440
- package/dist/Channel.js.map +1 -1
- package/dist/ChannelSchema.d.ts +1 -1
- package/dist/ChannelSchema.d.ts.map +1 -1
- package/dist/ChannelSchema.js.map +1 -1
- package/dist/Chunk.d.ts +834 -1173
- package/dist/Chunk.d.ts.map +1 -1
- package/dist/Chunk.js +326 -439
- package/dist/Chunk.js.map +1 -1
- package/dist/Clock.d.ts +180 -49
- package/dist/Clock.d.ts.map +1 -1
- package/dist/Clock.js +96 -31
- package/dist/Clock.js.map +1 -1
- package/dist/Combiner.d.ts +20 -33
- package/dist/Combiner.d.ts.map +1 -1
- package/dist/Combiner.js +18 -30
- package/dist/Combiner.js.map +1 -1
- package/dist/Config.d.ts +225 -173
- package/dist/Config.d.ts.map +1 -1
- package/dist/Config.js +357 -265
- package/dist/Config.js.map +1 -1
- package/dist/ConfigProvider.d.ts +194 -68
- package/dist/ConfigProvider.d.ts.map +1 -1
- package/dist/ConfigProvider.js +117 -81
- package/dist/ConfigProvider.js.map +1 -1
- package/dist/Console.d.ts +233 -33
- package/dist/Console.d.ts.map +1 -1
- package/dist/Console.js +232 -32
- package/dist/Console.js.map +1 -1
- package/dist/Context.d.ts +153 -276
- package/dist/Context.d.ts.map +1 -1
- package/dist/Context.js +171 -214
- package/dist/Context.js.map +1 -1
- package/dist/Cron.d.ts +68 -77
- package/dist/Cron.d.ts.map +1 -1
- package/dist/Cron.js +57 -66
- package/dist/Cron.js.map +1 -1
- package/dist/Crypto.d.ts +13 -15
- package/dist/Crypto.d.ts.map +1 -1
- package/dist/Crypto.js +22 -15
- package/dist/Crypto.js.map +1 -1
- package/dist/Data.d.ts +60 -80
- package/dist/Data.d.ts.map +1 -1
- package/dist/Data.js +16 -23
- package/dist/Data.js.map +1 -1
- package/dist/DateTime.d.ts +562 -660
- package/dist/DateTime.d.ts.map +1 -1
- package/dist/DateTime.js +307 -362
- package/dist/DateTime.js.map +1 -1
- package/dist/Deferred.d.ts +253 -256
- package/dist/Deferred.d.ts.map +1 -1
- package/dist/Deferred.js +104 -96
- package/dist/Deferred.js.map +1 -1
- package/dist/Duration.d.ts +216 -308
- package/dist/Duration.d.ts.map +1 -1
- package/dist/Duration.js +144 -187
- package/dist/Duration.js.map +1 -1
- package/dist/Effect.d.ts +2993 -3281
- package/dist/Effect.d.ts.map +1 -1
- package/dist/Effect.js +1360 -1546
- package/dist/Effect.js.map +1 -1
- package/dist/Effectable.js.map +1 -1
- package/dist/Encoding.d.ts +22 -40
- package/dist/Encoding.d.ts.map +1 -1
- package/dist/Encoding.js +22 -40
- package/dist/Encoding.js.map +1 -1
- package/dist/Equal.d.ts +33 -37
- package/dist/Equal.d.ts.map +1 -1
- package/dist/Equal.js +39 -23
- package/dist/Equal.js.map +1 -1
- package/dist/Equivalence.d.ts +103 -105
- package/dist/Equivalence.d.ts.map +1 -1
- package/dist/Equivalence.js +77 -79
- package/dist/Equivalence.js.map +1 -1
- package/dist/ErrorReporter.d.ts +51 -27
- package/dist/ErrorReporter.d.ts.map +1 -1
- package/dist/ErrorReporter.js +50 -26
- package/dist/ErrorReporter.js.map +1 -1
- package/dist/ExecutionPlan.d.ts +86 -55
- package/dist/ExecutionPlan.d.ts.map +1 -1
- package/dist/ExecutionPlan.js +8 -29
- package/dist/ExecutionPlan.js.map +1 -1
- package/dist/Exit.d.ts +116 -192
- package/dist/Exit.d.ts.map +1 -1
- package/dist/Exit.js +82 -130
- package/dist/Exit.js.map +1 -1
- package/dist/Fiber.d.ts +82 -146
- package/dist/Fiber.d.ts.map +1 -1
- package/dist/Fiber.js +48 -87
- package/dist/Fiber.js.map +1 -1
- package/dist/FiberHandle.d.ts +152 -105
- package/dist/FiberHandle.d.ts.map +1 -1
- package/dist/FiberHandle.js +106 -73
- package/dist/FiberHandle.js.map +1 -1
- package/dist/FiberMap.d.ts +213 -168
- package/dist/FiberMap.d.ts.map +1 -1
- package/dist/FiberMap.js +114 -89
- package/dist/FiberMap.js.map +1 -1
- package/dist/FiberSet.d.ts +123 -81
- package/dist/FiberSet.d.ts.map +1 -1
- package/dist/FiberSet.js +86 -60
- package/dist/FiberSet.js.map +1 -1
- package/dist/FileSystem.d.ts +154 -265
- package/dist/FileSystem.d.ts.map +1 -1
- package/dist/FileSystem.js +42 -147
- package/dist/FileSystem.js.map +1 -1
- package/dist/Filter.d.ts +61 -33
- package/dist/Filter.d.ts.map +1 -1
- package/dist/Filter.js +26 -15
- package/dist/Filter.js.map +1 -1
- package/dist/Formatter.d.ts +25 -33
- package/dist/Formatter.d.ts.map +1 -1
- package/dist/Formatter.js +48 -49
- package/dist/Formatter.js.map +1 -1
- package/dist/Function.d.ts +80 -148
- package/dist/Function.d.ts.map +1 -1
- package/dist/Function.js +45 -62
- package/dist/Function.js.map +1 -1
- package/dist/Graph.d.ts +360 -714
- package/dist/Graph.d.ts.map +1 -1
- package/dist/Graph.js +168 -297
- package/dist/Graph.js.map +1 -1
- package/dist/HKT.d.ts +12 -6
- package/dist/HKT.d.ts.map +1 -1
- package/dist/Hash.d.ts +47 -83
- package/dist/Hash.d.ts.map +1 -1
- package/dist/Hash.js +46 -68
- package/dist/Hash.js.map +1 -1
- package/dist/HashMap.d.ts +319 -411
- package/dist/HashMap.d.ts.map +1 -1
- package/dist/HashMap.js +122 -166
- package/dist/HashMap.js.map +1 -1
- package/dist/HashRing.d.ts.map +1 -1
- package/dist/HashRing.js +1 -0
- package/dist/HashRing.js.map +1 -1
- package/dist/HashSet.d.ts +177 -284
- package/dist/HashSet.d.ts.map +1 -1
- package/dist/HashSet.js +68 -109
- package/dist/HashSet.js.map +1 -1
- package/dist/Inspectable.d.ts +12 -12
- package/dist/Inspectable.js +8 -8
- package/dist/Inspectable.js.map +1 -1
- package/dist/Iterable.d.ts +620 -786
- package/dist/Iterable.d.ts.map +1 -1
- package/dist/Iterable.js +239 -316
- package/dist/Iterable.js.map +1 -1
- package/dist/JsonPatch.d.ts +11 -13
- package/dist/JsonPatch.d.ts.map +1 -1
- package/dist/JsonPatch.js +44 -102
- package/dist/JsonPatch.js.map +1 -1
- package/dist/JsonPointer.d.ts +8 -8
- package/dist/JsonPointer.js +8 -8
- package/dist/JsonPointer.js.map +1 -1
- package/dist/JsonSchema.d.ts +98 -44
- package/dist/JsonSchema.d.ts.map +1 -1
- package/dist/JsonSchema.js +297 -234
- package/dist/JsonSchema.js.map +1 -1
- package/dist/Latch.d.ts +23 -35
- package/dist/Latch.d.ts.map +1 -1
- package/dist/Latch.js +16 -28
- package/dist/Latch.js.map +1 -1
- package/dist/Layer.d.ts +359 -260
- package/dist/Layer.d.ts.map +1 -1
- package/dist/Layer.js +202 -180
- package/dist/Layer.js.map +1 -1
- package/dist/LayerMap.d.ts +42 -29
- package/dist/LayerMap.d.ts.map +1 -1
- package/dist/LayerMap.js +31 -21
- package/dist/LayerMap.js.map +1 -1
- package/dist/LayerRef.d.ts +6 -2
- package/dist/LayerRef.d.ts.map +1 -1
- package/dist/LayerRef.js +6 -2
- package/dist/LayerRef.js.map +1 -1
- package/dist/LogLevel.d.ts +114 -214
- package/dist/LogLevel.d.ts.map +1 -1
- package/dist/LogLevel.js +41 -76
- package/dist/LogLevel.js.map +1 -1
- package/dist/Logger.d.ts +218 -467
- package/dist/Logger.d.ts.map +1 -1
- package/dist/Logger.js +204 -450
- package/dist/Logger.js.map +1 -1
- package/dist/ManagedRuntime.d.ts +7 -5
- package/dist/ManagedRuntime.d.ts.map +1 -1
- package/dist/ManagedRuntime.js +7 -5
- package/dist/ManagedRuntime.js.map +1 -1
- package/dist/Match.d.ts +217 -252
- package/dist/Match.d.ts.map +1 -1
- package/dist/Match.js +150 -183
- package/dist/Match.js.map +1 -1
- package/dist/Metric.d.ts +442 -993
- package/dist/Metric.d.ts.map +1 -1
- package/dist/Metric.js +198 -642
- package/dist/Metric.js.map +1 -1
- package/dist/MutableHashMap.d.ts +144 -173
- package/dist/MutableHashMap.d.ts.map +1 -1
- package/dist/MutableHashMap.js +68 -79
- package/dist/MutableHashMap.js.map +1 -1
- package/dist/MutableHashSet.d.ts +84 -89
- package/dist/MutableHashSet.d.ts.map +1 -1
- package/dist/MutableHashSet.js +44 -47
- package/dist/MutableHashSet.js.map +1 -1
- package/dist/MutableList.d.ts +71 -370
- package/dist/MutableList.d.ts.map +1 -1
- package/dist/MutableList.js +59 -284
- package/dist/MutableList.js.map +1 -1
- package/dist/MutableRef.d.ts +420 -243
- package/dist/MutableRef.d.ts.map +1 -1
- package/dist/MutableRef.js +209 -120
- package/dist/MutableRef.js.map +1 -1
- package/dist/Newtype.d.ts +21 -14
- package/dist/Newtype.d.ts.map +1 -1
- package/dist/Newtype.js +15 -13
- package/dist/Newtype.js.map +1 -1
- package/dist/NonEmptyIterable.d.ts +7 -137
- package/dist/NonEmptyIterable.d.ts.map +1 -1
- package/dist/NonEmptyIterable.js +5 -93
- package/dist/NonEmptyIterable.js.map +1 -1
- package/dist/Number.d.ts +196 -233
- package/dist/Number.d.ts.map +1 -1
- package/dist/Number.js +90 -109
- package/dist/Number.js.map +1 -1
- package/dist/Optic.d.ts +97 -189
- package/dist/Optic.d.ts.map +1 -1
- package/dist/Optic.js +187 -290
- package/dist/Optic.js.map +1 -1
- package/dist/Option.d.ts +447 -812
- package/dist/Option.d.ts.map +1 -1
- package/dist/Option.js +211 -392
- package/dist/Option.js.map +1 -1
- package/dist/Order.d.ts +109 -109
- package/dist/Order.js +91 -91
- package/dist/Order.js.map +1 -1
- package/dist/Ordering.d.ts +20 -23
- package/dist/Ordering.d.ts.map +1 -1
- package/dist/Ordering.js +8 -9
- package/dist/Ordering.js.map +1 -1
- package/dist/PartitionedSemaphore.js.map +1 -1
- package/dist/Path.d.ts +38 -41
- package/dist/Path.d.ts.map +1 -1
- package/dist/Path.js +3 -4
- package/dist/Path.js.map +1 -1
- package/dist/Pipeable.d.ts +6 -5
- package/dist/Pipeable.d.ts.map +1 -1
- package/dist/Pipeable.js +2 -2
- package/dist/Pipeable.js.map +1 -1
- package/dist/PlatformError.d.ts +4 -4
- package/dist/PlatformError.js +3 -3
- package/dist/PlatformError.js.map +1 -1
- package/dist/Pool.d.ts +4 -2
- package/dist/Pool.d.ts.map +1 -1
- package/dist/Pool.js +4 -2
- package/dist/Pool.js.map +1 -1
- package/dist/Predicate.d.ts +200 -181
- package/dist/Predicate.d.ts.map +1 -1
- package/dist/Predicate.js +100 -108
- package/dist/Predicate.js.map +1 -1
- package/dist/PrimaryKey.d.ts +7 -7
- package/dist/PrimaryKey.js +5 -5
- package/dist/PrimaryKey.js.map +1 -1
- package/dist/PubSub.d.ts +425 -494
- package/dist/PubSub.d.ts.map +1 -1
- package/dist/PubSub.js +373 -362
- package/dist/PubSub.js.map +1 -1
- package/dist/Pull.d.ts +24 -18
- package/dist/Pull.d.ts.map +1 -1
- package/dist/Pull.js +11 -9
- package/dist/Pull.js.map +1 -1
- package/dist/Queue.d.ts +200 -159
- package/dist/Queue.d.ts.map +1 -1
- package/dist/Queue.js +162 -132
- package/dist/Queue.js.map +1 -1
- package/dist/Random.d.ts +49 -74
- package/dist/Random.d.ts.map +1 -1
- package/dist/Random.js +35 -54
- package/dist/Random.js.map +1 -1
- package/dist/RcMap.d.ts +121 -63
- package/dist/RcMap.d.ts.map +1 -1
- package/dist/RcMap.js +42 -21
- package/dist/RcMap.js.map +1 -1
- package/dist/RcRef.d.ts +24 -13
- package/dist/RcRef.d.ts.map +1 -1
- package/dist/RcRef.js +15 -9
- package/dist/RcRef.js.map +1 -1
- package/dist/Record.d.ts +291 -488
- package/dist/Record.d.ts.map +1 -1
- package/dist/Record.js +111 -202
- package/dist/Record.js.map +1 -1
- package/dist/Redactable.d.ts +6 -2
- package/dist/Redactable.d.ts.map +1 -1
- package/dist/Redactable.js +7 -2
- package/dist/Redactable.js.map +1 -1
- package/dist/Redacted.d.ts +25 -25
- package/dist/Redacted.d.ts.map +1 -1
- package/dist/Redacted.js +19 -20
- package/dist/Redacted.js.map +1 -1
- package/dist/Reducer.d.ts +8 -15
- package/dist/Reducer.d.ts.map +1 -1
- package/dist/Reducer.js +6 -12
- package/dist/Reducer.js.map +1 -1
- package/dist/Ref.d.ts +95 -165
- package/dist/Ref.d.ts.map +1 -1
- package/dist/Ref.js +75 -122
- package/dist/Ref.js.map +1 -1
- package/dist/References.d.ts +102 -168
- package/dist/References.d.ts.map +1 -1
- package/dist/References.js +102 -168
- package/dist/References.js.map +1 -1
- package/dist/RegExp.d.ts +10 -14
- package/dist/RegExp.d.ts.map +1 -1
- package/dist/RegExp.js +10 -14
- package/dist/RegExp.js.map +1 -1
- package/dist/Request.d.ts +31 -21
- package/dist/Request.d.ts.map +1 -1
- package/dist/Request.js +16 -13
- package/dist/Request.js.map +1 -1
- package/dist/RequestResolver.d.ts +201 -90
- package/dist/RequestResolver.d.ts.map +1 -1
- package/dist/RequestResolver.js +87 -41
- package/dist/RequestResolver.js.map +1 -1
- package/dist/Resource.js.map +1 -1
- package/dist/Result.d.ts +302 -470
- package/dist/Result.d.ts.map +1 -1
- package/dist/Result.js +133 -217
- package/dist/Result.js.map +1 -1
- package/dist/Runtime.d.ts +50 -75
- package/dist/Runtime.d.ts.map +1 -1
- package/dist/Runtime.js +39 -60
- package/dist/Runtime.js.map +1 -1
- package/dist/Schedule.d.ts +292 -1638
- package/dist/Schedule.d.ts.map +1 -1
- package/dist/Schedule.js +164 -805
- package/dist/Schedule.js.map +1 -1
- package/dist/Scheduler.d.ts +5 -5
- package/dist/Scheduler.d.ts.map +1 -1
- package/dist/Scheduler.js +18 -6
- package/dist/Scheduler.js.map +1 -1
- package/dist/Schema.d.ts +676 -674
- package/dist/Schema.d.ts.map +1 -1
- package/dist/Schema.js +513 -544
- package/dist/Schema.js.map +1 -1
- package/dist/SchemaAST.d.ts +30 -53
- package/dist/SchemaAST.d.ts.map +1 -1
- package/dist/SchemaAST.js +404 -301
- package/dist/SchemaAST.js.map +1 -1
- package/dist/SchemaError.d.ts +7 -6
- package/dist/SchemaError.d.ts.map +1 -1
- package/dist/SchemaError.js +7 -6
- package/dist/SchemaError.js.map +1 -1
- package/dist/SchemaGetter.d.ts +217 -174
- package/dist/SchemaGetter.d.ts.map +1 -1
- package/dist/SchemaGetter.js +218 -185
- package/dist/SchemaGetter.js.map +1 -1
- package/dist/SchemaIssue.d.ts +62 -190
- package/dist/SchemaIssue.d.ts.map +1 -1
- package/dist/SchemaIssue.js +73 -265
- package/dist/SchemaIssue.js.map +1 -1
- package/dist/SchemaParser.d.ts +2 -2
- package/dist/SchemaParser.d.ts.map +1 -1
- package/dist/SchemaParser.js +137 -107
- package/dist/SchemaParser.js.map +1 -1
- package/dist/SchemaRepresentation.d.ts +22 -36
- package/dist/SchemaRepresentation.d.ts.map +1 -1
- package/dist/SchemaRepresentation.js +20 -26
- package/dist/SchemaRepresentation.js.map +1 -1
- package/dist/SchemaTransformation.d.ts +114 -74
- package/dist/SchemaTransformation.d.ts.map +1 -1
- package/dist/SchemaTransformation.js +120 -85
- package/dist/SchemaTransformation.js.map +1 -1
- package/dist/Scope.d.ts +123 -151
- package/dist/Scope.d.ts.map +1 -1
- package/dist/Scope.js +72 -92
- package/dist/Scope.js.map +1 -1
- package/dist/ScopedCache.js +1 -1
- package/dist/ScopedCache.js.map +1 -1
- package/dist/ScopedRef.d.ts +3 -3
- package/dist/ScopedRef.js +2 -2
- package/dist/ScopedRef.js.map +1 -1
- package/dist/Semaphore.d.ts +96 -10
- package/dist/Semaphore.d.ts.map +1 -1
- package/dist/Semaphore.js +78 -39
- package/dist/Semaphore.js.map +1 -1
- package/dist/Sink.d.ts +118 -108
- package/dist/Sink.d.ts.map +1 -1
- package/dist/Sink.js +107 -100
- package/dist/Sink.js.map +1 -1
- package/dist/Stdio.d.ts +1 -1
- package/dist/Stdio.js.map +1 -1
- package/dist/Stream.d.ts +2442 -2953
- package/dist/Stream.d.ts.map +1 -1
- package/dist/Stream.js +1105 -1383
- package/dist/Stream.js.map +1 -1
- package/dist/String.d.ts +262 -308
- package/dist/String.d.ts.map +1 -1
- package/dist/String.js +184 -215
- package/dist/String.js.map +1 -1
- package/dist/Struct.d.ts +109 -114
- package/dist/Struct.d.ts.map +1 -1
- package/dist/Struct.js +41 -50
- package/dist/Struct.js.map +1 -1
- package/dist/SubscriptionRef.d.ts +282 -250
- package/dist/SubscriptionRef.d.ts.map +1 -1
- package/dist/SubscriptionRef.js +104 -92
- package/dist/SubscriptionRef.js.map +1 -1
- package/dist/Symbol.d.ts +3 -3
- package/dist/Symbol.js +3 -3
- package/dist/Symbol.js.map +1 -1
- package/dist/SynchronizedRef.js +1 -1
- package/dist/SynchronizedRef.js.map +1 -1
- package/dist/Take.js.map +1 -1
- package/dist/Terminal.d.ts +2 -2
- package/dist/Terminal.js +2 -2
- package/dist/Terminal.js.map +1 -1
- package/dist/Tracer.d.ts +100 -54
- package/dist/Tracer.d.ts.map +1 -1
- package/dist/Tracer.js +41 -24
- package/dist/Tracer.js.map +1 -1
- package/dist/Trie.d.ts +287 -679
- package/dist/Trie.d.ts.map +1 -1
- package/dist/Trie.js +109 -251
- package/dist/Trie.js.map +1 -1
- package/dist/Tuple.d.ts +98 -131
- package/dist/Tuple.d.ts.map +1 -1
- package/dist/Tuple.js +42 -57
- package/dist/Tuple.js.map +1 -1
- package/dist/TxChunk.d.ts +201 -121
- package/dist/TxChunk.d.ts.map +1 -1
- package/dist/TxChunk.js +85 -56
- package/dist/TxChunk.js.map +1 -1
- package/dist/TxDeferred.d.ts +62 -46
- package/dist/TxDeferred.d.ts.map +1 -1
- package/dist/TxDeferred.js +30 -22
- package/dist/TxDeferred.js.map +1 -1
- package/dist/TxHashMap.d.ts +631 -779
- package/dist/TxHashMap.d.ts.map +1 -1
- package/dist/TxHashMap.js +268 -330
- package/dist/TxHashMap.js.map +1 -1
- package/dist/TxHashSet.d.ts +297 -236
- package/dist/TxHashSet.d.ts.map +1 -1
- package/dist/TxHashSet.js +130 -100
- package/dist/TxHashSet.js.map +1 -1
- package/dist/TxPriorityQueue.d.ts +126 -95
- package/dist/TxPriorityQueue.d.ts.map +1 -1
- package/dist/TxPriorityQueue.js +74 -56
- package/dist/TxPriorityQueue.js.map +1 -1
- package/dist/TxPubSub.d.ts +101 -88
- package/dist/TxPubSub.d.ts.map +1 -1
- package/dist/TxPubSub.js +87 -66
- package/dist/TxPubSub.js.map +1 -1
- package/dist/TxQueue.d.ts +200 -180
- package/dist/TxQueue.d.ts.map +1 -1
- package/dist/TxQueue.js +160 -136
- package/dist/TxQueue.js.map +1 -1
- package/dist/TxReentrantLock.d.ts +89 -114
- package/dist/TxReentrantLock.d.ts.map +1 -1
- package/dist/TxReentrantLock.js +75 -53
- package/dist/TxReentrantLock.js.map +1 -1
- package/dist/TxRef.d.ts +51 -32
- package/dist/TxRef.d.ts.map +1 -1
- package/dist/TxRef.js +23 -15
- package/dist/TxRef.js.map +1 -1
- package/dist/TxSemaphore.d.ts +129 -95
- package/dist/TxSemaphore.d.ts.map +1 -1
- package/dist/TxSemaphore.js +85 -70
- package/dist/TxSemaphore.js.map +1 -1
- package/dist/TxSubscriptionRef.d.ts +97 -70
- package/dist/TxSubscriptionRef.d.ts.map +1 -1
- package/dist/TxSubscriptionRef.js +44 -34
- package/dist/TxSubscriptionRef.js.map +1 -1
- package/dist/Types.d.ts +126 -67
- package/dist/Types.d.ts.map +1 -1
- package/dist/UndefinedOr.js.map +1 -1
- package/dist/Unify.d.ts +45 -65
- package/dist/Unify.d.ts.map +1 -1
- package/dist/Unify.js +6 -9
- package/dist/Unify.js.map +1 -1
- package/dist/Utils.d.ts +23 -16
- package/dist/Utils.d.ts.map +1 -1
- package/dist/Utils.js +3 -7
- package/dist/Utils.js.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/internal/array.js.map +1 -1
- package/dist/internal/core.js +1 -1
- package/dist/internal/core.js.map +1 -1
- package/dist/internal/dateTime.js +5 -1
- package/dist/internal/dateTime.js.map +1 -1
- package/dist/internal/doNotation.js.map +1 -1
- package/dist/internal/effect.js +77 -40
- package/dist/internal/effect.js.map +1 -1
- package/dist/internal/equal.js.map +1 -1
- package/dist/internal/errors.js.map +1 -1
- package/dist/internal/executionPlan.js +51 -3
- package/dist/internal/executionPlan.js.map +1 -1
- package/dist/internal/hashMap.js +12 -8
- package/dist/internal/hashMap.js.map +1 -1
- package/dist/internal/hashSet.js.map +1 -1
- package/dist/internal/layer.js.map +1 -1
- package/dist/internal/matcher.js +1 -1
- package/dist/internal/matcher.js.map +1 -1
- package/dist/internal/metric.js.map +1 -1
- package/dist/internal/option.js.map +1 -1
- package/dist/internal/persistence.d.ts +2 -0
- package/dist/internal/persistence.d.ts.map +1 -0
- package/dist/internal/persistence.js +3 -0
- package/dist/internal/persistence.js.map +1 -0
- package/dist/internal/random.js.map +1 -1
- package/dist/internal/rcRef.js.map +1 -1
- package/dist/internal/record.js.map +1 -1
- package/dist/internal/redacted.js.map +1 -1
- package/dist/internal/references.js +3 -0
- package/dist/internal/references.js.map +1 -1
- package/dist/internal/request.js.map +1 -1
- package/dist/internal/result.js.map +1 -1
- package/dist/internal/schedule.js.map +1 -1
- package/dist/internal/schema/annotations.js +2 -0
- package/dist/internal/schema/annotations.js.map +1 -1
- package/dist/internal/schema/cause.js.map +1 -1
- package/dist/internal/schema/fromJsonSchemaDocument.js +13 -11
- package/dist/internal/schema/fromJsonSchemaDocument.js.map +1 -1
- package/dist/internal/schema/fromRepresentation.js +8 -15
- package/dist/internal/schema/fromRepresentation.js.map +1 -1
- package/dist/internal/schema/parser.d.ts +14 -0
- package/dist/internal/schema/parser.d.ts.map +1 -0
- package/dist/internal/schema/parser.js +13 -0
- package/dist/internal/schema/parser.js.map +1 -0
- package/dist/internal/schema/schema.js.map +1 -1
- package/dist/internal/schema/toArbitrary.js +1 -1
- package/dist/internal/schema/toArbitrary.js.map +1 -1
- package/dist/internal/schema/toCodeDocument.js.map +1 -1
- package/dist/internal/schema/toEquivalence.js.map +1 -1
- package/dist/internal/schema/toJsonSchemaDocument.js +48 -6
- package/dist/internal/schema/toJsonSchemaDocument.js.map +1 -1
- package/dist/internal/schema/toRepresentation.js +87 -107
- package/dist/internal/schema/toRepresentation.js.map +1 -1
- package/dist/internal/stackTraceLimit.js.map +1 -1
- package/dist/internal/stream.js.map +1 -1
- package/dist/internal/tracer.js.map +1 -1
- package/dist/internal/trie.js +24 -10
- package/dist/internal/trie.js.map +1 -1
- package/dist/testing/FastCheck.d.ts +8 -7
- package/dist/testing/FastCheck.d.ts.map +1 -1
- package/dist/testing/FastCheck.js +8 -7
- package/dist/testing/FastCheck.js.map +1 -1
- package/dist/testing/TestClock.d.ts +57 -28
- package/dist/testing/TestClock.d.ts.map +1 -1
- package/dist/testing/TestClock.js +61 -19
- package/dist/testing/TestClock.js.map +1 -1
- package/dist/testing/TestConsole.d.ts +32 -31
- package/dist/testing/TestConsole.d.ts.map +1 -1
- package/dist/testing/TestConsole.js +24 -22
- package/dist/testing/TestConsole.js.map +1 -1
- package/dist/testing/TestSchema.d.ts +30 -30
- package/dist/testing/TestSchema.d.ts.map +1 -1
- package/dist/testing/TestSchema.js +25 -25
- package/dist/testing/TestSchema.js.map +1 -1
- package/dist/testing/index.js.map +1 -1
- package/dist/unstable/ai/AiError.d.ts +95 -118
- package/dist/unstable/ai/AiError.d.ts.map +1 -1
- package/dist/unstable/ai/AiError.js +113 -136
- package/dist/unstable/ai/AiError.js.map +1 -1
- package/dist/unstable/ai/AnthropicStructuredOutput.d.ts +1 -1
- package/dist/unstable/ai/AnthropicStructuredOutput.js +1 -1
- package/dist/unstable/ai/AnthropicStructuredOutput.js.map +1 -1
- package/dist/unstable/ai/Chat.d.ts +132 -97
- package/dist/unstable/ai/Chat.d.ts.map +1 -1
- package/dist/unstable/ai/Chat.js +56 -52
- package/dist/unstable/ai/Chat.js.map +1 -1
- package/dist/unstable/ai/EmbeddingModel.js.map +1 -1
- package/dist/unstable/ai/IdGenerator.d.ts +32 -28
- package/dist/unstable/ai/IdGenerator.d.ts.map +1 -1
- package/dist/unstable/ai/IdGenerator.js +26 -21
- package/dist/unstable/ai/IdGenerator.js.map +1 -1
- package/dist/unstable/ai/LanguageModel.d.ts +107 -67
- package/dist/unstable/ai/LanguageModel.d.ts.map +1 -1
- package/dist/unstable/ai/LanguageModel.js +108 -66
- package/dist/unstable/ai/LanguageModel.js.map +1 -1
- package/dist/unstable/ai/McpProtocol.d.ts +30 -0
- package/dist/unstable/ai/McpProtocol.d.ts.map +1 -0
- package/dist/unstable/ai/McpProtocol.js +20 -0
- package/dist/unstable/ai/McpProtocol.js.map +1 -0
- package/dist/unstable/ai/McpSchema.d.ts +251 -185
- package/dist/unstable/ai/McpSchema.d.ts.map +1 -1
- package/dist/unstable/ai/McpSchema.js +66 -58
- package/dist/unstable/ai/McpSchema.js.map +1 -1
- package/dist/unstable/ai/McpServer.d.ts +68 -59
- package/dist/unstable/ai/McpServer.d.ts.map +1 -1
- package/dist/unstable/ai/McpServer.js +695 -242
- package/dist/unstable/ai/McpServer.js.map +1 -1
- package/dist/unstable/ai/Model.d.ts +8 -19
- package/dist/unstable/ai/Model.d.ts.map +1 -1
- package/dist/unstable/ai/Model.js +9 -20
- package/dist/unstable/ai/Model.js.map +1 -1
- package/dist/unstable/ai/OpenAiStructuredOutput.d.ts +1 -1
- package/dist/unstable/ai/OpenAiStructuredOutput.js +1 -1
- package/dist/unstable/ai/OpenAiStructuredOutput.js.map +1 -1
- package/dist/unstable/ai/Prompt.d.ts +127 -41
- package/dist/unstable/ai/Prompt.d.ts.map +1 -1
- package/dist/unstable/ai/Prompt.js +59 -20
- package/dist/unstable/ai/Prompt.js.map +1 -1
- package/dist/unstable/ai/Response.d.ts +28 -14
- package/dist/unstable/ai/Response.d.ts.map +1 -1
- package/dist/unstable/ai/Response.js +9 -4
- package/dist/unstable/ai/Response.js.map +1 -1
- package/dist/unstable/ai/ResponseIdTracker.js.map +1 -1
- package/dist/unstable/ai/Telemetry.d.ts +46 -13
- package/dist/unstable/ai/Telemetry.d.ts.map +1 -1
- package/dist/unstable/ai/Telemetry.js +18 -7
- package/dist/unstable/ai/Telemetry.js.map +1 -1
- package/dist/unstable/ai/Tokenizer.d.ts +14 -3
- package/dist/unstable/ai/Tokenizer.d.ts.map +1 -1
- package/dist/unstable/ai/Tokenizer.js +10 -2
- package/dist/unstable/ai/Tokenizer.js.map +1 -1
- package/dist/unstable/ai/Tool.d.ts +59 -44
- package/dist/unstable/ai/Tool.d.ts.map +1 -1
- package/dist/unstable/ai/Tool.js +48 -39
- package/dist/unstable/ai/Tool.js.map +1 -1
- package/dist/unstable/ai/Toolkit.d.ts +26 -8
- package/dist/unstable/ai/Toolkit.d.ts.map +1 -1
- package/dist/unstable/ai/Toolkit.js +18 -4
- package/dist/unstable/ai/Toolkit.js.map +1 -1
- package/dist/unstable/ai/index.d.ts +4 -0
- package/dist/unstable/ai/index.d.ts.map +1 -1
- package/dist/unstable/ai/index.js +4 -0
- package/dist/unstable/ai/index.js.map +1 -1
- package/dist/unstable/ai/internal/codec-transformer.js.map +1 -1
- package/dist/unstable/ai/internal/mcpProtocol.d.ts +21 -0
- package/dist/unstable/ai/internal/mcpProtocol.d.ts.map +1 -0
- package/dist/unstable/ai/internal/mcpProtocol.js +22 -0
- package/dist/unstable/ai/internal/mcpProtocol.js.map +1 -0
- package/dist/unstable/ai/internal/mcpProtocolRegistry.d.ts +2 -0
- package/dist/unstable/ai/internal/mcpProtocolRegistry.d.ts.map +1 -0
- package/dist/unstable/ai/internal/mcpProtocolRegistry.js +32 -0
- package/dist/unstable/ai/internal/mcpProtocolRegistry.js.map +1 -0
- package/dist/unstable/ai/internal/structured-output.js +14 -15
- package/dist/unstable/ai/internal/structured-output.js.map +1 -1
- package/dist/unstable/cli/Argument.d.ts +273 -69
- package/dist/unstable/cli/Argument.d.ts.map +1 -1
- package/dist/unstable/cli/Argument.js +111 -33
- package/dist/unstable/cli/Argument.js.map +1 -1
- package/dist/unstable/cli/CliConfig.js.map +1 -1
- package/dist/unstable/cli/CliError.d.ts +70 -77
- package/dist/unstable/cli/CliError.d.ts.map +1 -1
- package/dist/unstable/cli/CliError.js +66 -70
- package/dist/unstable/cli/CliError.js.map +1 -1
- package/dist/unstable/cli/CliOutput.d.ts +35 -54
- package/dist/unstable/cli/CliOutput.d.ts.map +1 -1
- package/dist/unstable/cli/CliOutput.js +26 -42
- package/dist/unstable/cli/CliOutput.js.map +1 -1
- package/dist/unstable/cli/Command.d.ts +713 -115
- package/dist/unstable/cli/Command.d.ts.map +1 -1
- package/dist/unstable/cli/Command.js +245 -47
- package/dist/unstable/cli/Command.js.map +1 -1
- package/dist/unstable/cli/Completions.js.map +1 -1
- package/dist/unstable/cli/Flag.d.ts +418 -138
- package/dist/unstable/cli/Flag.d.ts.map +1 -1
- package/dist/unstable/cli/Flag.js +197 -71
- package/dist/unstable/cli/Flag.js.map +1 -1
- package/dist/unstable/cli/GlobalFlag.d.ts +1 -1
- package/dist/unstable/cli/GlobalFlag.js.map +1 -1
- package/dist/unstable/cli/HelpDoc.d.ts +12 -4
- package/dist/unstable/cli/HelpDoc.d.ts.map +1 -1
- package/dist/unstable/cli/Param.d.ts +299 -83
- package/dist/unstable/cli/Param.d.ts.map +1 -1
- package/dist/unstable/cli/Param.js +143 -57
- package/dist/unstable/cli/Param.js.map +1 -1
- package/dist/unstable/cli/Primitive.d.ts +370 -149
- package/dist/unstable/cli/Primitive.d.ts.map +1 -1
- package/dist/unstable/cli/Primitive.js +375 -160
- package/dist/unstable/cli/Primitive.js.map +1 -1
- package/dist/unstable/cli/Prompt.d.ts +23 -14
- package/dist/unstable/cli/Prompt.d.ts.map +1 -1
- package/dist/unstable/cli/Prompt.js +54 -31
- package/dist/unstable/cli/Prompt.js.map +1 -1
- package/dist/unstable/cli/index.js.map +1 -1
- package/dist/unstable/cli/internal/ansi.js +2 -2
- package/dist/unstable/cli/internal/ansi.js.map +1 -1
- package/dist/unstable/cli/internal/auto-suggest.js.map +1 -1
- package/dist/unstable/cli/internal/command.d.ts +2 -2
- package/dist/unstable/cli/internal/command.d.ts.map +1 -1
- package/dist/unstable/cli/internal/command.js +10 -9
- package/dist/unstable/cli/internal/command.js.map +1 -1
- package/dist/unstable/cli/internal/completions/bash.js +69 -9
- package/dist/unstable/cli/internal/completions/bash.js.map +1 -1
- package/dist/unstable/cli/internal/completions/descriptor.js +24 -18
- package/dist/unstable/cli/internal/completions/descriptor.js.map +1 -1
- package/dist/unstable/cli/internal/completions/fish.js +5 -5
- package/dist/unstable/cli/internal/completions/fish.js.map +1 -1
- package/dist/unstable/cli/internal/completions/zsh.js.map +1 -1
- package/dist/unstable/cli/internal/config.js.map +1 -1
- package/dist/unstable/cli/internal/help.d.ts.map +1 -1
- package/dist/unstable/cli/internal/help.js +4 -2
- package/dist/unstable/cli/internal/help.js.map +1 -1
- package/dist/unstable/cli/internal/lexer.js +17 -7
- package/dist/unstable/cli/internal/lexer.js.map +1 -1
- package/dist/unstable/cli/internal/parser.js +5 -5
- package/dist/unstable/cli/internal/parser.js.map +1 -1
- package/dist/unstable/cli/internal/wizard.js +2 -2
- package/dist/unstable/cli/internal/wizard.js.map +1 -1
- package/dist/unstable/cluster/ClusterCron.js.map +1 -1
- package/dist/unstable/cluster/ClusterError.js +7 -7
- package/dist/unstable/cluster/ClusterError.js.map +1 -1
- package/dist/unstable/cluster/ClusterMetrics.js.map +1 -1
- package/dist/unstable/cluster/ClusterSchema.d.ts +8 -8
- package/dist/unstable/cluster/ClusterSchema.js +8 -8
- package/dist/unstable/cluster/ClusterSchema.js.map +1 -1
- package/dist/unstable/cluster/ClusterWorkflowEngine.d.ts.map +1 -1
- package/dist/unstable/cluster/ClusterWorkflowEngine.js +6 -2
- package/dist/unstable/cluster/ClusterWorkflowEngine.js.map +1 -1
- package/dist/unstable/cluster/DeliverAt.js.map +1 -1
- package/dist/unstable/cluster/Entity.d.ts +10 -10
- package/dist/unstable/cluster/Entity.d.ts.map +1 -1
- package/dist/unstable/cluster/Entity.js +8 -8
- package/dist/unstable/cluster/Entity.js.map +1 -1
- package/dist/unstable/cluster/EntityAddress.js.map +1 -1
- package/dist/unstable/cluster/EntityId.js.map +1 -1
- package/dist/unstable/cluster/EntityProxy.d.ts +4 -2
- package/dist/unstable/cluster/EntityProxy.d.ts.map +1 -1
- package/dist/unstable/cluster/EntityProxy.js +4 -2
- package/dist/unstable/cluster/EntityProxy.js.map +1 -1
- package/dist/unstable/cluster/EntityProxyServer.js.map +1 -1
- package/dist/unstable/cluster/EntityResource.d.ts +2 -2
- package/dist/unstable/cluster/EntityResource.js +2 -2
- package/dist/unstable/cluster/EntityResource.js.map +1 -1
- package/dist/unstable/cluster/EntityType.js.map +1 -1
- package/dist/unstable/cluster/Envelope.d.ts +3 -3
- package/dist/unstable/cluster/Envelope.js +3 -3
- package/dist/unstable/cluster/Envelope.js.map +1 -1
- package/dist/unstable/cluster/HttpRunner.d.ts +2 -2
- package/dist/unstable/cluster/HttpRunner.d.ts.map +1 -1
- package/dist/unstable/cluster/HttpRunner.js +6 -4
- package/dist/unstable/cluster/HttpRunner.js.map +1 -1
- package/dist/unstable/cluster/K8sHttpClient.js.map +1 -1
- package/dist/unstable/cluster/MachineId.js.map +1 -1
- package/dist/unstable/cluster/Message.d.ts +9 -9
- package/dist/unstable/cluster/Message.js +6 -6
- package/dist/unstable/cluster/Message.js.map +1 -1
- package/dist/unstable/cluster/MessageStorage.d.ts +15 -15
- package/dist/unstable/cluster/MessageStorage.d.ts.map +1 -1
- package/dist/unstable/cluster/MessageStorage.js +13 -6
- package/dist/unstable/cluster/MessageStorage.js.map +1 -1
- package/dist/unstable/cluster/Reply.d.ts +8 -0
- package/dist/unstable/cluster/Reply.d.ts.map +1 -1
- package/dist/unstable/cluster/Reply.js +16 -4
- package/dist/unstable/cluster/Reply.js.map +1 -1
- package/dist/unstable/cluster/Runner.js.map +1 -1
- package/dist/unstable/cluster/RunnerAddress.js.map +1 -1
- package/dist/unstable/cluster/RunnerHealth.d.ts +1 -1
- package/dist/unstable/cluster/RunnerHealth.js +1 -1
- package/dist/unstable/cluster/RunnerHealth.js.map +1 -1
- package/dist/unstable/cluster/RunnerServer.d.ts +2 -1
- package/dist/unstable/cluster/RunnerServer.d.ts.map +1 -1
- package/dist/unstable/cluster/RunnerServer.js +18 -16
- package/dist/unstable/cluster/RunnerServer.js.map +1 -1
- package/dist/unstable/cluster/RunnerStorage.d.ts +3 -4
- package/dist/unstable/cluster/RunnerStorage.d.ts.map +1 -1
- package/dist/unstable/cluster/RunnerStorage.js +8 -7
- package/dist/unstable/cluster/RunnerStorage.js.map +1 -1
- package/dist/unstable/cluster/Runners.d.ts +6 -6
- package/dist/unstable/cluster/Runners.d.ts.map +1 -1
- package/dist/unstable/cluster/Runners.js +19 -10
- package/dist/unstable/cluster/Runners.js.map +1 -1
- package/dist/unstable/cluster/ShardId.js.map +1 -1
- package/dist/unstable/cluster/Sharding.d.ts.map +1 -1
- package/dist/unstable/cluster/Sharding.js +25 -6
- package/dist/unstable/cluster/Sharding.js.map +1 -1
- package/dist/unstable/cluster/ShardingConfig.d.ts +3 -3
- package/dist/unstable/cluster/ShardingConfig.js +3 -3
- package/dist/unstable/cluster/ShardingConfig.js.map +1 -1
- package/dist/unstable/cluster/ShardingRegistrationEvent.js.map +1 -1
- package/dist/unstable/cluster/SingleRunner.js.map +1 -1
- package/dist/unstable/cluster/Singleton.js.map +1 -1
- package/dist/unstable/cluster/SingletonAddress.d.ts +1 -1
- package/dist/unstable/cluster/SingletonAddress.js +1 -1
- package/dist/unstable/cluster/SingletonAddress.js.map +1 -1
- package/dist/unstable/cluster/Snowflake.d.ts +8 -8
- package/dist/unstable/cluster/Snowflake.js +8 -8
- package/dist/unstable/cluster/Snowflake.js.map +1 -1
- package/dist/unstable/cluster/SocketRunner.js.map +1 -1
- package/dist/unstable/cluster/SqlMessageStorage.js +1 -1
- package/dist/unstable/cluster/SqlMessageStorage.js.map +1 -1
- package/dist/unstable/cluster/SqlRunnerStorage.d.ts.map +1 -1
- package/dist/unstable/cluster/SqlRunnerStorage.js +20 -5
- package/dist/unstable/cluster/SqlRunnerStorage.js.map +1 -1
- package/dist/unstable/cluster/TestRunner.js.map +1 -1
- package/dist/unstable/cluster/index.js.map +1 -1
- package/dist/unstable/cluster/internal/entityManager.js +6 -6
- package/dist/unstable/cluster/internal/entityManager.js.map +1 -1
- package/dist/unstable/cluster/internal/entityReaper.js.map +1 -1
- package/dist/unstable/cluster/internal/hash.js.map +1 -1
- package/dist/unstable/cluster/internal/interruptors.js.map +1 -1
- package/dist/unstable/cluster/internal/resourceMap.js +2 -2
- package/dist/unstable/cluster/internal/resourceMap.js.map +1 -1
- package/dist/unstable/cluster/internal/resourceRef.js +17 -0
- package/dist/unstable/cluster/internal/resourceRef.js.map +1 -1
- package/dist/unstable/cluster/internal/shardLock.js.map +1 -1
- package/dist/unstable/devtools/DevTools.js.map +1 -1
- package/dist/unstable/devtools/DevToolsClient.d.ts.map +1 -1
- package/dist/unstable/devtools/DevToolsClient.js +7 -2
- package/dist/unstable/devtools/DevToolsClient.js.map +1 -1
- package/dist/unstable/devtools/DevToolsSchema.js.map +1 -1
- package/dist/unstable/devtools/DevToolsServer.js.map +1 -1
- package/dist/unstable/devtools/index.js.map +1 -1
- package/dist/unstable/encoding/Ini.d.ts +20 -0
- package/dist/unstable/encoding/Ini.d.ts.map +1 -0
- package/dist/unstable/encoding/Ini.js +153 -0
- package/dist/unstable/encoding/Ini.js.map +1 -0
- package/dist/unstable/encoding/Msgpack.d.ts +2 -1
- package/dist/unstable/encoding/Msgpack.d.ts.map +1 -1
- package/dist/unstable/encoding/Msgpack.js +27 -15
- package/dist/unstable/encoding/Msgpack.js.map +1 -1
- package/dist/unstable/encoding/Ndjson.d.ts.map +1 -1
- package/dist/unstable/encoding/Ndjson.js +7 -1
- package/dist/unstable/encoding/Ndjson.js.map +1 -1
- package/dist/unstable/encoding/Sse.d.ts +72 -8
- package/dist/unstable/encoding/Sse.d.ts.map +1 -1
- package/dist/unstable/encoding/Sse.js +72 -31
- package/dist/unstable/encoding/Sse.js.map +1 -1
- package/dist/unstable/encoding/Toml.d.ts +19 -0
- package/dist/unstable/encoding/Toml.d.ts.map +1 -0
- package/dist/unstable/encoding/Toml.js +434 -0
- package/dist/unstable/encoding/Toml.js.map +1 -0
- package/dist/unstable/encoding/Yaml.d.ts +19 -0
- package/dist/unstable/encoding/Yaml.d.ts.map +1 -0
- package/dist/unstable/encoding/Yaml.js +461 -0
- package/dist/unstable/encoding/Yaml.js.map +1 -0
- package/dist/unstable/encoding/index.d.ts +12 -0
- package/dist/unstable/encoding/index.d.ts.map +1 -1
- package/dist/unstable/encoding/index.js +12 -0
- package/dist/unstable/encoding/index.js.map +1 -1
- package/dist/unstable/eventlog/Event.d.ts +20 -20
- package/dist/unstable/eventlog/Event.js.map +1 -1
- package/dist/unstable/eventlog/EventGroup.d.ts +4 -4
- package/dist/unstable/eventlog/EventGroup.js.map +1 -1
- package/dist/unstable/eventlog/EventJournal.d.ts +16 -16
- package/dist/unstable/eventlog/EventJournal.d.ts.map +1 -1
- package/dist/unstable/eventlog/EventJournal.js +26 -18
- 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/EventLog.js.map +1 -1
- package/dist/unstable/eventlog/EventLogEncryption.d.ts +1 -1
- package/dist/unstable/eventlog/EventLogEncryption.js +1 -1
- package/dist/unstable/eventlog/EventLogEncryption.js.map +1 -1
- package/dist/unstable/eventlog/EventLogMessage.d.ts +2 -2
- package/dist/unstable/eventlog/EventLogMessage.js +2 -2
- package/dist/unstable/eventlog/EventLogMessage.js.map +1 -1
- package/dist/unstable/eventlog/EventLogRemote.d.ts +15 -15
- package/dist/unstable/eventlog/EventLogRemote.js +1 -1
- package/dist/unstable/eventlog/EventLogRemote.js.map +1 -1
- package/dist/unstable/eventlog/EventLogServer.d.ts +11 -2
- package/dist/unstable/eventlog/EventLogServer.d.ts.map +1 -1
- package/dist/unstable/eventlog/EventLogServer.js +45 -21
- package/dist/unstable/eventlog/EventLogServer.js.map +1 -1
- package/dist/unstable/eventlog/EventLogServerEncrypted.d.ts +4 -4
- package/dist/unstable/eventlog/EventLogServerEncrypted.d.ts.map +1 -1
- package/dist/unstable/eventlog/EventLogServerEncrypted.js +13 -5
- package/dist/unstable/eventlog/EventLogServerEncrypted.js.map +1 -1
- package/dist/unstable/eventlog/EventLogServerUnencrypted.d.ts +5 -5
- package/dist/unstable/eventlog/EventLogServerUnencrypted.d.ts.map +1 -1
- package/dist/unstable/eventlog/EventLogServerUnencrypted.js +15 -7
- package/dist/unstable/eventlog/EventLogServerUnencrypted.js.map +1 -1
- package/dist/unstable/eventlog/EventLogSessionAuth.d.ts +1 -1
- package/dist/unstable/eventlog/EventLogSessionAuth.js +1 -1
- package/dist/unstable/eventlog/EventLogSessionAuth.js.map +1 -1
- package/dist/unstable/eventlog/SqlEventJournal.d.ts.map +1 -1
- package/dist/unstable/eventlog/SqlEventJournal.js +1 -4
- package/dist/unstable/eventlog/SqlEventJournal.js.map +1 -1
- package/dist/unstable/eventlog/SqlEventLogServerEncrypted.js.map +1 -1
- package/dist/unstable/eventlog/SqlEventLogServerUnencrypted.js.map +1 -1
- package/dist/unstable/eventlog/index.js.map +1 -1
- package/dist/unstable/eventlog/internal/identityRootSecretDerivation.js.map +1 -1
- package/dist/unstable/http/Cookies.d.ts +2 -2
- package/dist/unstable/http/Cookies.d.ts.map +1 -1
- package/dist/unstable/http/Cookies.js +30 -18
- package/dist/unstable/http/Cookies.js.map +1 -1
- package/dist/unstable/http/Etag.d.ts +1 -1
- package/dist/unstable/http/Etag.js +1 -1
- package/dist/unstable/http/Etag.js.map +1 -1
- package/dist/unstable/http/FetchHttpClient.d.ts.map +1 -1
- package/dist/unstable/http/FetchHttpClient.js.map +1 -1
- package/dist/unstable/http/FindMyWay/internal/queryString.d.ts +11 -0
- package/dist/unstable/http/FindMyWay/internal/queryString.d.ts.map +1 -0
- package/dist/unstable/http/FindMyWay/internal/queryString.js +259 -0
- package/dist/unstable/http/FindMyWay/internal/queryString.js.map +1 -0
- package/dist/unstable/http/FindMyWay/internal/router.d.ts +2 -0
- package/dist/unstable/http/FindMyWay/internal/router.d.ts.map +1 -0
- package/dist/unstable/http/FindMyWay/internal/router.js +665 -0
- package/dist/unstable/http/FindMyWay/internal/router.js.map +1 -0
- package/dist/unstable/http/FindMyWay.d.ts +33 -8
- package/dist/unstable/http/FindMyWay.d.ts.map +1 -1
- package/dist/unstable/http/FindMyWay.js +4 -7
- package/dist/unstable/http/FindMyWay.js.map +1 -1
- package/dist/unstable/http/Headers.d.ts +2 -2
- package/dist/unstable/http/Headers.js +2 -2
- package/dist/unstable/http/Headers.js.map +1 -1
- package/dist/unstable/http/HttpBody.d.ts +5 -3
- package/dist/unstable/http/HttpBody.d.ts.map +1 -1
- package/dist/unstable/http/HttpBody.js +11 -5
- package/dist/unstable/http/HttpBody.js.map +1 -1
- package/dist/unstable/http/HttpClient.d.ts +51 -44
- package/dist/unstable/http/HttpClient.d.ts.map +1 -1
- package/dist/unstable/http/HttpClient.js +46 -17
- package/dist/unstable/http/HttpClient.js.map +1 -1
- package/dist/unstable/http/HttpClientError.js +1 -1
- package/dist/unstable/http/HttpClientError.js.map +1 -1
- package/dist/unstable/http/HttpClientRequest.d.ts.map +1 -1
- package/dist/unstable/http/HttpClientRequest.js +2 -12
- package/dist/unstable/http/HttpClientRequest.js.map +1 -1
- package/dist/unstable/http/HttpClientResponse.d.ts +4 -4
- package/dist/unstable/http/HttpClientResponse.js +3 -18
- package/dist/unstable/http/HttpClientResponse.js.map +1 -1
- package/dist/unstable/http/HttpEffect.d.ts +6 -6
- package/dist/unstable/http/HttpEffect.js +3 -3
- package/dist/unstable/http/HttpEffect.js.map +1 -1
- package/dist/unstable/http/HttpIncomingMessage.js.map +1 -1
- package/dist/unstable/http/HttpMethod.d.ts +6 -9
- package/dist/unstable/http/HttpMethod.d.ts.map +1 -1
- package/dist/unstable/http/HttpMethod.js +6 -9
- package/dist/unstable/http/HttpMethod.js.map +1 -1
- package/dist/unstable/http/HttpMiddleware.d.ts +75 -9
- package/dist/unstable/http/HttpMiddleware.d.ts.map +1 -1
- package/dist/unstable/http/HttpMiddleware.js +164 -39
- package/dist/unstable/http/HttpMiddleware.js.map +1 -1
- package/dist/unstable/http/HttpPlatform.d.ts +76 -0
- package/dist/unstable/http/HttpPlatform.d.ts.map +1 -1
- package/dist/unstable/http/HttpPlatform.js +53 -3
- package/dist/unstable/http/HttpPlatform.js.map +1 -1
- package/dist/unstable/http/HttpRouter.d.ts +88 -89
- package/dist/unstable/http/HttpRouter.d.ts.map +1 -1
- package/dist/unstable/http/HttpRouter.js +78 -79
- package/dist/unstable/http/HttpRouter.js.map +1 -1
- package/dist/unstable/http/HttpServer.d.ts +13 -13
- package/dist/unstable/http/HttpServer.js +6 -6
- package/dist/unstable/http/HttpServer.js.map +1 -1
- package/dist/unstable/http/HttpServerError.d.ts +2 -2
- package/dist/unstable/http/HttpServerError.js +2 -2
- package/dist/unstable/http/HttpServerError.js.map +1 -1
- package/dist/unstable/http/HttpServerRequest.d.ts +4 -4
- package/dist/unstable/http/HttpServerRequest.d.ts.map +1 -1
- package/dist/unstable/http/HttpServerRequest.js +11 -10
- package/dist/unstable/http/HttpServerRequest.js.map +1 -1
- package/dist/unstable/http/HttpServerRespondable.js.map +1 -1
- package/dist/unstable/http/HttpServerResponse.d.ts +22 -0
- package/dist/unstable/http/HttpServerResponse.d.ts.map +1 -1
- package/dist/unstable/http/HttpServerResponse.js +17 -5
- package/dist/unstable/http/HttpServerResponse.js.map +1 -1
- package/dist/unstable/http/HttpStaticServer.d.ts +35 -7
- package/dist/unstable/http/HttpStaticServer.d.ts.map +1 -1
- package/dist/unstable/http/HttpStaticServer.js +35 -7
- package/dist/unstable/http/HttpStaticServer.js.map +1 -1
- package/dist/unstable/http/HttpTraceContext.js.map +1 -1
- package/dist/unstable/http/Multipart.d.ts +7 -7
- package/dist/unstable/http/Multipart.d.ts.map +1 -1
- package/dist/unstable/http/Multipart.js +14 -7
- package/dist/unstable/http/Multipart.js.map +1 -1
- package/dist/unstable/http/MultipartParser/HeadersParser.d.ts +53 -0
- package/dist/unstable/http/MultipartParser/HeadersParser.d.ts.map +1 -0
- package/dist/unstable/http/MultipartParser/HeadersParser.js +14 -0
- package/dist/unstable/http/MultipartParser/HeadersParser.js.map +1 -0
- package/dist/unstable/http/MultipartParser/Search.d.ts +11 -0
- package/dist/unstable/http/MultipartParser/Search.d.ts.map +1 -0
- package/dist/unstable/http/MultipartParser/Search.js +14 -0
- package/dist/unstable/http/MultipartParser/Search.js.map +1 -0
- package/dist/unstable/http/MultipartParser/internal/contentType.d.ts +5 -0
- package/dist/unstable/http/MultipartParser/internal/contentType.d.ts.map +1 -0
- package/dist/unstable/http/MultipartParser/internal/contentType.js +82 -0
- package/dist/unstable/http/MultipartParser/internal/contentType.js.map +1 -0
- package/dist/unstable/http/MultipartParser/internal/headers.d.ts +3 -0
- package/dist/unstable/http/MultipartParser/internal/headers.d.ts.map +1 -0
- package/dist/unstable/http/MultipartParser/internal/headers.js +194 -0
- package/dist/unstable/http/MultipartParser/internal/headers.js.map +1 -0
- package/dist/unstable/http/MultipartParser/internal/multipart.d.ts +8 -0
- package/dist/unstable/http/MultipartParser/internal/multipart.d.ts.map +1 -0
- package/dist/unstable/http/MultipartParser/internal/multipart.js +226 -0
- package/dist/unstable/http/MultipartParser/internal/multipart.js.map +1 -0
- package/dist/unstable/http/MultipartParser/internal/search.d.ts +5 -0
- package/dist/unstable/http/MultipartParser/internal/search.d.ts.map +1 -0
- package/dist/unstable/http/MultipartParser/internal/search.js +120 -0
- package/dist/unstable/http/MultipartParser/internal/search.js.map +1 -0
- package/dist/unstable/http/MultipartParser.d.ts +98 -0
- package/dist/unstable/http/MultipartParser.d.ts.map +1 -0
- package/dist/unstable/http/MultipartParser.js +23 -0
- package/dist/unstable/http/MultipartParser.js.map +1 -0
- package/dist/unstable/http/Template.d.ts.map +1 -1
- package/dist/unstable/http/Template.js +2 -2
- package/dist/unstable/http/Template.js.map +1 -1
- package/dist/unstable/http/Url.d.ts +33 -63
- package/dist/unstable/http/Url.d.ts.map +1 -1
- package/dist/unstable/http/Url.js +14 -28
- package/dist/unstable/http/Url.js.map +1 -1
- package/dist/unstable/http/UrlParams.d.ts +10 -18
- package/dist/unstable/http/UrlParams.d.ts.map +1 -1
- package/dist/unstable/http/UrlParams.js +9 -17
- package/dist/unstable/http/UrlParams.js.map +1 -1
- package/dist/unstable/http/index.d.ts +1 -1
- package/dist/unstable/http/index.d.ts.map +1 -1
- package/dist/unstable/http/index.js +1 -1
- package/dist/unstable/http/index.js.map +1 -1
- package/dist/unstable/http/internal/compression.d.ts +2 -0
- package/dist/unstable/http/internal/compression.d.ts.map +1 -0
- package/dist/unstable/http/internal/compression.js +155 -0
- package/dist/unstable/http/internal/compression.js.map +1 -0
- package/dist/unstable/http/internal/httpBody.d.ts +2 -0
- package/dist/unstable/http/internal/httpBody.d.ts.map +1 -0
- package/dist/unstable/http/internal/httpBody.js +10 -0
- package/dist/unstable/http/internal/httpBody.js.map +1 -0
- package/dist/unstable/http/internal/preResponseHandler.js.map +1 -1
- package/dist/unstable/httpapi/HttpApi.d.ts.map +1 -1
- package/dist/unstable/httpapi/HttpApi.js +5 -5
- package/dist/unstable/httpapi/HttpApi.js.map +1 -1
- package/dist/unstable/httpapi/HttpApiBuilder.d.ts +1 -1
- package/dist/unstable/httpapi/HttpApiBuilder.d.ts.map +1 -1
- package/dist/unstable/httpapi/HttpApiBuilder.js +78 -26
- package/dist/unstable/httpapi/HttpApiBuilder.js.map +1 -1
- package/dist/unstable/httpapi/HttpApiClient.d.ts +4 -5
- package/dist/unstable/httpapi/HttpApiClient.d.ts.map +1 -1
- package/dist/unstable/httpapi/HttpApiClient.js +76 -38
- package/dist/unstable/httpapi/HttpApiClient.js.map +1 -1
- package/dist/unstable/httpapi/HttpApiEndpoint.d.ts +48 -46
- package/dist/unstable/httpapi/HttpApiEndpoint.d.ts.map +1 -1
- package/dist/unstable/httpapi/HttpApiEndpoint.js +73 -16
- package/dist/unstable/httpapi/HttpApiEndpoint.js.map +1 -1
- package/dist/unstable/httpapi/HttpApiError.d.ts +18 -18
- package/dist/unstable/httpapi/HttpApiError.d.ts.map +1 -1
- package/dist/unstable/httpapi/HttpApiError.js +30 -30
- package/dist/unstable/httpapi/HttpApiError.js.map +1 -1
- package/dist/unstable/httpapi/HttpApiGroup.d.ts +15 -15
- package/dist/unstable/httpapi/HttpApiGroup.js.map +1 -1
- package/dist/unstable/httpapi/HttpApiMiddleware.d.ts +71 -24
- package/dist/unstable/httpapi/HttpApiMiddleware.d.ts.map +1 -1
- package/dist/unstable/httpapi/HttpApiMiddleware.js +57 -10
- package/dist/unstable/httpapi/HttpApiMiddleware.js.map +1 -1
- package/dist/unstable/httpapi/HttpApiScalar.d.ts +0 -12
- package/dist/unstable/httpapi/HttpApiScalar.d.ts.map +1 -1
- package/dist/unstable/httpapi/HttpApiScalar.js.map +1 -1
- package/dist/unstable/httpapi/HttpApiSchema.d.ts +225 -6
- package/dist/unstable/httpapi/HttpApiSchema.d.ts.map +1 -1
- package/dist/unstable/httpapi/HttpApiSchema.js +174 -4
- package/dist/unstable/httpapi/HttpApiSchema.js.map +1 -1
- package/dist/unstable/httpapi/HttpApiSecurity.js.map +1 -1
- package/dist/unstable/httpapi/HttpApiSwagger.js.map +1 -1
- package/dist/unstable/httpapi/HttpApiTest.js.map +1 -1
- package/dist/unstable/httpapi/OpenApi.d.ts +21 -13
- package/dist/unstable/httpapi/OpenApi.d.ts.map +1 -1
- package/dist/unstable/httpapi/OpenApi.js +58 -31
- package/dist/unstable/httpapi/OpenApi.js.map +1 -1
- package/dist/unstable/httpapi/index.js.map +1 -1
- package/dist/unstable/httpapi/internal/html.js.map +1 -1
- package/dist/unstable/httpapi/internal/httpApiScalar.js.map +1 -1
- package/dist/unstable/httpapi/internal/httpApiSwagger.js.map +1 -1
- package/dist/unstable/httpapi/internal/mediaType.js.map +1 -1
- package/dist/unstable/observability/Otlp.js.map +1 -1
- package/dist/unstable/observability/OtlpExporter.d.ts +13 -15
- package/dist/unstable/observability/OtlpExporter.d.ts.map +1 -1
- package/dist/unstable/observability/OtlpExporter.js +19 -5
- package/dist/unstable/observability/OtlpExporter.js.map +1 -1
- package/dist/unstable/observability/OtlpLogger.d.ts.map +1 -1
- package/dist/unstable/observability/OtlpLogger.js +2 -2
- package/dist/unstable/observability/OtlpLogger.js.map +1 -1
- package/dist/unstable/observability/OtlpMetrics.d.ts +6 -3
- package/dist/unstable/observability/OtlpMetrics.d.ts.map +1 -1
- package/dist/unstable/observability/OtlpMetrics.js +28 -15
- package/dist/unstable/observability/OtlpMetrics.js.map +1 -1
- package/dist/unstable/observability/OtlpResource.d.ts +16 -7
- package/dist/unstable/observability/OtlpResource.d.ts.map +1 -1
- package/dist/unstable/observability/OtlpResource.js +21 -12
- package/dist/unstable/observability/OtlpResource.js.map +1 -1
- package/dist/unstable/observability/OtlpSerialization.js.map +1 -1
- package/dist/unstable/observability/OtlpTracer.js +1 -1
- package/dist/unstable/observability/OtlpTracer.js.map +1 -1
- package/dist/unstable/observability/PrometheusMetrics.d.ts +13 -4
- package/dist/unstable/observability/PrometheusMetrics.d.ts.map +1 -1
- package/dist/unstable/observability/PrometheusMetrics.js +10 -3
- package/dist/unstable/observability/PrometheusMetrics.js.map +1 -1
- package/dist/unstable/observability/index.js.map +1 -1
- package/dist/unstable/observability/internal/otlpEnv.js +1 -1
- package/dist/unstable/observability/internal/otlpEnv.js.map +1 -1
- package/dist/unstable/observability/internal/otlpProtobuf.js.map +1 -1
- package/dist/unstable/observability/internal/protobuf.js +3 -0
- package/dist/unstable/observability/internal/protobuf.js.map +1 -1
- package/dist/unstable/persistence/KeyValueStore.d.ts +8 -3
- package/dist/unstable/persistence/KeyValueStore.d.ts.map +1 -1
- package/dist/unstable/persistence/KeyValueStore.js +22 -13
- package/dist/unstable/persistence/KeyValueStore.js.map +1 -1
- package/dist/unstable/persistence/Persistable.d.ts +8 -8
- package/dist/unstable/persistence/Persistable.js.map +1 -1
- package/dist/unstable/persistence/PersistedCache.js.map +1 -1
- package/dist/unstable/persistence/PersistedQueue.d.ts +6 -6
- package/dist/unstable/persistence/PersistedQueue.d.ts.map +1 -1
- package/dist/unstable/persistence/PersistedQueue.js +15 -15
- package/dist/unstable/persistence/PersistedQueue.js.map +1 -1
- package/dist/unstable/persistence/Persistence.d.ts +3 -3
- package/dist/unstable/persistence/Persistence.d.ts.map +1 -1
- package/dist/unstable/persistence/Persistence.js +108 -22
- package/dist/unstable/persistence/Persistence.js.map +1 -1
- package/dist/unstable/persistence/RateLimiter.d.ts +45 -24
- package/dist/unstable/persistence/RateLimiter.d.ts.map +1 -1
- package/dist/unstable/persistence/RateLimiter.js +29 -45
- package/dist/unstable/persistence/RateLimiter.js.map +1 -1
- package/dist/unstable/persistence/Redis.d.ts +2 -2
- package/dist/unstable/persistence/Redis.js +2 -2
- package/dist/unstable/persistence/Redis.js.map +1 -1
- package/dist/unstable/persistence/index.js.map +1 -1
- package/dist/unstable/process/ChildProcess.d.ts +64 -21
- package/dist/unstable/process/ChildProcess.d.ts.map +1 -1
- package/dist/unstable/process/ChildProcess.js +14 -5
- package/dist/unstable/process/ChildProcess.js.map +1 -1
- package/dist/unstable/process/ChildProcessSpawner.d.ts +21 -10
- package/dist/unstable/process/ChildProcessSpawner.d.ts.map +1 -1
- package/dist/unstable/process/ChildProcessSpawner.js +1 -1
- package/dist/unstable/process/ChildProcessSpawner.js.map +1 -1
- package/dist/unstable/process/index.js.map +1 -1
- package/dist/unstable/reactivity/AsyncResult.d.ts +8 -8
- package/dist/unstable/reactivity/AsyncResult.d.ts.map +1 -1
- package/dist/unstable/reactivity/AsyncResult.js +10 -10
- package/dist/unstable/reactivity/AsyncResult.js.map +1 -1
- package/dist/unstable/reactivity/Atom.d.ts +25 -22
- package/dist/unstable/reactivity/Atom.d.ts.map +1 -1
- package/dist/unstable/reactivity/Atom.js +14 -13
- package/dist/unstable/reactivity/Atom.js.map +1 -1
- package/dist/unstable/reactivity/AtomHttpApi.d.ts +1 -1
- package/dist/unstable/reactivity/AtomHttpApi.d.ts.map +1 -1
- package/dist/unstable/reactivity/AtomHttpApi.js +4 -1
- package/dist/unstable/reactivity/AtomHttpApi.js.map +1 -1
- package/dist/unstable/reactivity/AtomRef.js.map +1 -1
- package/dist/unstable/reactivity/AtomRegistry.js +24 -3
- package/dist/unstable/reactivity/AtomRegistry.js.map +1 -1
- package/dist/unstable/reactivity/AtomRpc.d.ts +1 -1
- package/dist/unstable/reactivity/AtomRpc.d.ts.map +1 -1
- package/dist/unstable/reactivity/AtomRpc.js +4 -1
- package/dist/unstable/reactivity/AtomRpc.js.map +1 -1
- package/dist/unstable/reactivity/Hydration.d.ts +1 -1
- package/dist/unstable/reactivity/Hydration.js +1 -1
- package/dist/unstable/reactivity/Hydration.js.map +1 -1
- package/dist/unstable/reactivity/Reactivity.js.map +1 -1
- package/dist/unstable/reactivity/index.js.map +1 -1
- package/dist/unstable/rpc/Rpc.d.ts +35 -33
- package/dist/unstable/rpc/Rpc.d.ts.map +1 -1
- package/dist/unstable/rpc/Rpc.js +4 -2
- package/dist/unstable/rpc/Rpc.js.map +1 -1
- package/dist/unstable/rpc/RpcClient.d.ts +26 -12
- package/dist/unstable/rpc/RpcClient.d.ts.map +1 -1
- package/dist/unstable/rpc/RpcClient.js +30 -20
- package/dist/unstable/rpc/RpcClient.js.map +1 -1
- package/dist/unstable/rpc/RpcClientError.js +2 -2
- package/dist/unstable/rpc/RpcClientError.js.map +1 -1
- package/dist/unstable/rpc/RpcGroup.d.ts +8 -8
- package/dist/unstable/rpc/RpcGroup.js +1 -1
- package/dist/unstable/rpc/RpcGroup.js.map +1 -1
- package/dist/unstable/rpc/RpcMessage.d.ts +31 -30
- package/dist/unstable/rpc/RpcMessage.d.ts.map +1 -1
- package/dist/unstable/rpc/RpcMessage.js +6 -6
- package/dist/unstable/rpc/RpcMessage.js.map +1 -1
- package/dist/unstable/rpc/RpcMiddleware.d.ts +10 -10
- package/dist/unstable/rpc/RpcMiddleware.js +1 -1
- package/dist/unstable/rpc/RpcMiddleware.js.map +1 -1
- package/dist/unstable/rpc/RpcSchema.d.ts +4 -4
- package/dist/unstable/rpc/RpcSchema.js +3 -3
- package/dist/unstable/rpc/RpcSchema.js.map +1 -1
- package/dist/unstable/rpc/RpcSerialization.d.ts +58 -7
- package/dist/unstable/rpc/RpcSerialization.d.ts.map +1 -1
- package/dist/unstable/rpc/RpcSerialization.js +177 -96
- package/dist/unstable/rpc/RpcSerialization.js.map +1 -1
- package/dist/unstable/rpc/RpcServer.d.ts +13 -13
- package/dist/unstable/rpc/RpcServer.js +17 -13
- package/dist/unstable/rpc/RpcServer.js.map +1 -1
- package/dist/unstable/rpc/RpcTest.js.map +1 -1
- package/dist/unstable/rpc/RpcWorker.d.ts +5 -5
- package/dist/unstable/rpc/RpcWorker.js +4 -4
- package/dist/unstable/rpc/RpcWorker.js.map +1 -1
- package/dist/unstable/rpc/Utils.js.map +1 -1
- package/dist/unstable/rpc/index.js.map +1 -1
- package/dist/unstable/schema/Model.d.ts +53 -51
- package/dist/unstable/schema/Model.d.ts.map +1 -1
- package/dist/unstable/schema/Model.js +35 -33
- package/dist/unstable/schema/Model.js.map +1 -1
- package/dist/unstable/schema/VariantSchema.d.ts +10 -10
- package/dist/unstable/schema/VariantSchema.d.ts.map +1 -1
- package/dist/unstable/schema/VariantSchema.js +19 -11
- package/dist/unstable/schema/VariantSchema.js.map +1 -1
- package/dist/unstable/schema/index.js.map +1 -1
- package/dist/unstable/socket/Socket.d.ts +11 -3
- package/dist/unstable/socket/Socket.d.ts.map +1 -1
- package/dist/unstable/socket/Socket.js +37 -16
- package/dist/unstable/socket/Socket.js.map +1 -1
- package/dist/unstable/socket/SocketServer.js.map +1 -1
- package/dist/unstable/socket/index.js.map +1 -1
- package/dist/unstable/sql/Migrator.js.map +1 -1
- package/dist/unstable/sql/SqlClient.d.ts +1 -1
- package/dist/unstable/sql/SqlClient.d.ts.map +1 -1
- package/dist/unstable/sql/SqlClient.js +8 -4
- package/dist/unstable/sql/SqlClient.js.map +1 -1
- package/dist/unstable/sql/SqlConnection.js.map +1 -1
- package/dist/unstable/sql/SqlError.js +13 -13
- package/dist/unstable/sql/SqlError.js.map +1 -1
- package/dist/unstable/sql/SqlModel.d.ts +2 -2
- package/dist/unstable/sql/SqlModel.js +2 -2
- package/dist/unstable/sql/SqlModel.js.map +1 -1
- package/dist/unstable/sql/SqlResolver.d.ts +5 -5
- package/dist/unstable/sql/SqlResolver.js +10 -8
- package/dist/unstable/sql/SqlResolver.js.map +1 -1
- package/dist/unstable/sql/SqlSchema.js.map +1 -1
- package/dist/unstable/sql/SqlStream.js.map +1 -1
- package/dist/unstable/sql/Statement.d.ts +6 -6
- package/dist/unstable/sql/Statement.d.ts.map +1 -1
- package/dist/unstable/sql/Statement.js +23 -21
- package/dist/unstable/sql/Statement.js.map +1 -1
- package/dist/unstable/sql/index.js.map +1 -1
- package/dist/unstable/workers/Transferable.d.ts +1 -1
- package/dist/unstable/workers/Transferable.js +1 -1
- package/dist/unstable/workers/Transferable.js.map +1 -1
- package/dist/unstable/workers/Worker.d.ts +2 -2
- package/dist/unstable/workers/Worker.js +2 -2
- package/dist/unstable/workers/Worker.js.map +1 -1
- package/dist/unstable/workers/WorkerError.d.ts +7 -7
- package/dist/unstable/workers/WorkerError.js +11 -11
- package/dist/unstable/workers/WorkerError.js.map +1 -1
- package/dist/unstable/workers/WorkerRunner.d.ts +1 -1
- package/dist/unstable/workers/WorkerRunner.js +1 -1
- package/dist/unstable/workers/WorkerRunner.js.map +1 -1
- package/dist/unstable/workers/index.js.map +1 -1
- package/dist/unstable/workflow/Activity.d.ts +2 -2
- package/dist/unstable/workflow/Activity.js +2 -2
- package/dist/unstable/workflow/Activity.js.map +1 -1
- package/dist/unstable/workflow/DurableClock.d.ts +1 -1
- package/dist/unstable/workflow/DurableClock.js +1 -1
- package/dist/unstable/workflow/DurableClock.js.map +1 -1
- package/dist/unstable/workflow/DurableDeferred.d.ts +10 -10
- package/dist/unstable/workflow/DurableDeferred.js +5 -5
- package/dist/unstable/workflow/DurableDeferred.js.map +1 -1
- package/dist/unstable/workflow/DurableQueue.d.ts +22 -20
- package/dist/unstable/workflow/DurableQueue.d.ts.map +1 -1
- package/dist/unstable/workflow/DurableQueue.js +22 -20
- package/dist/unstable/workflow/DurableQueue.js.map +1 -1
- package/dist/unstable/workflow/Workflow.d.ts +21 -21
- package/dist/unstable/workflow/Workflow.d.ts.map +1 -1
- package/dist/unstable/workflow/Workflow.js +13 -14
- package/dist/unstable/workflow/Workflow.js.map +1 -1
- package/dist/unstable/workflow/WorkflowEngine.d.ts +2 -2
- package/dist/unstable/workflow/WorkflowEngine.d.ts.map +1 -1
- package/dist/unstable/workflow/WorkflowEngine.js +3 -3
- package/dist/unstable/workflow/WorkflowEngine.js.map +1 -1
- package/dist/unstable/workflow/WorkflowProxy.d.ts +4 -2
- package/dist/unstable/workflow/WorkflowProxy.d.ts.map +1 -1
- package/dist/unstable/workflow/WorkflowProxy.js +4 -2
- package/dist/unstable/workflow/WorkflowProxy.js.map +1 -1
- package/dist/unstable/workflow/WorkflowProxyServer.js.map +1 -1
- package/dist/unstable/workflow/index.js.map +1 -1
- package/dist/unstable/workflow/internal/crypto.js.map +1 -1
- package/package.json +6 -13
- package/src/Array.ts +982 -1045
- package/src/BigDecimal.ts +433 -756
- package/src/BigInt.ts +213 -269
- package/src/Boolean.ts +146 -188
- package/src/Cache.ts +410 -256
- package/src/Cause.ts +167 -277
- package/src/Channel.ts +892 -817
- package/src/ChannelSchema.ts +1 -1
- package/src/Chunk.ts +841 -1181
- package/src/Clock.ts +181 -49
- package/src/Combiner.ts +20 -33
- package/src/Config.ts +636 -332
- package/src/ConfigProvider.ts +218 -121
- package/src/Console.ts +289 -39
- package/src/Context.ts +322 -381
- package/src/Cron.ts +68 -77
- package/src/Crypto.ts +30 -23
- package/src/Data.ts +60 -80
- package/src/DateTime.ts +564 -660
- package/src/Deferred.ts +253 -256
- package/src/Duration.ts +232 -310
- package/src/Effect.ts +3034 -3296
- package/src/Encoding.ts +22 -40
- package/src/Equal.ts +59 -41
- package/src/Equivalence.ts +103 -105
- package/src/ErrorReporter.ts +51 -27
- package/src/ExecutionPlan.ts +91 -56
- package/src/Exit.ts +116 -192
- package/src/Fiber.ts +81 -148
- package/src/FiberHandle.ts +152 -105
- package/src/FiberMap.ts +225 -174
- package/src/FiberSet.ts +125 -83
- package/src/FileSystem.ts +156 -264
- package/src/Filter.ts +61 -33
- package/src/Formatter.ts +54 -56
- package/src/Function.ts +82 -151
- package/src/Graph.ts +416 -770
- package/src/HKT.ts +12 -6
- package/src/Hash.ts +52 -83
- package/src/HashMap.ts +319 -411
- package/src/HashRing.ts +1 -0
- package/src/HashSet.ts +177 -284
- package/src/Inspectable.ts +12 -12
- package/src/Iterable.ts +631 -796
- package/src/JsonPatch.ts +58 -112
- package/src/JsonPointer.ts +8 -8
- package/src/JsonSchema.ts +402 -244
- package/src/Latch.ts +23 -35
- package/src/Layer.ts +366 -265
- package/src/LayerMap.ts +49 -29
- package/src/LayerRef.ts +6 -2
- package/src/LogLevel.ts +114 -214
- package/src/Logger.ts +344 -697
- package/src/ManagedRuntime.ts +7 -5
- package/src/Match.ts +217 -252
- package/src/Metric.ts +516 -1089
- package/src/MutableHashMap.ts +218 -255
- package/src/MutableHashSet.ts +84 -89
- package/src/MutableList.ts +73 -370
- package/src/MutableRef.ts +420 -243
- package/src/Newtype.ts +21 -14
- package/src/NonEmptyIterable.ts +7 -137
- package/src/Number.ts +196 -233
- package/src/Optic.ts +243 -383
- package/src/Option.ts +447 -812
- package/src/Order.ts +109 -109
- package/src/Ordering.ts +20 -23
- package/src/Path.ts +38 -41
- package/src/Pipeable.ts +6 -5
- package/src/PlatformError.ts +4 -4
- package/src/Pool.ts +4 -2
- package/src/Predicate.ts +200 -181
- package/src/PrimaryKey.ts +7 -7
- package/src/PubSub.ts +526 -552
- package/src/Pull.ts +24 -18
- package/src/Queue.ts +200 -159
- package/src/Random.ts +49 -74
- package/src/RcMap.ts +121 -63
- package/src/RcRef.ts +24 -13
- package/src/Record.ts +291 -488
- package/src/Redactable.ts +10 -3
- package/src/Redacted.ts +25 -25
- package/src/Reducer.ts +8 -15
- package/src/Ref.ts +221 -361
- package/src/References.ts +102 -168
- package/src/RegExp.ts +10 -14
- package/src/Request.ts +31 -21
- package/src/RequestResolver.ts +202 -91
- package/src/Result.ts +312 -484
- package/src/Runtime.ts +50 -75
- package/src/Schedule.ts +311 -1737
- package/src/Scheduler.ts +20 -7
- package/src/Schema.ts +766 -786
- package/src/SchemaAST.ts +522 -382
- package/src/SchemaError.ts +7 -6
- package/src/SchemaGetter.ts +242 -190
- package/src/SchemaIssue.ts +89 -275
- package/src/SchemaParser.ts +217 -124
- package/src/SchemaRepresentation.ts +22 -40
- package/src/SchemaTransformation.ts +129 -88
- package/src/Scope.ts +123 -151
- package/src/ScopedCache.ts +1 -1
- package/src/ScopedRef.ts +4 -4
- package/src/Semaphore.ts +152 -51
- package/src/Sink.ts +129 -114
- package/src/Stdio.ts +1 -1
- package/src/Stream.ts +2679 -3133
- package/src/String.ts +275 -312
- package/src/Struct.ts +109 -114
- package/src/SubscriptionRef.ts +284 -252
- package/src/Symbol.ts +3 -3
- package/src/SynchronizedRef.ts +1 -1
- package/src/Terminal.ts +3 -3
- package/src/Tracer.ts +102 -55
- package/src/Trie.ts +287 -679
- package/src/Tuple.ts +99 -131
- package/src/TxChunk.ts +201 -121
- package/src/TxDeferred.ts +62 -46
- package/src/TxHashMap.ts +645 -799
- package/src/TxHashSet.ts +443 -356
- package/src/TxPriorityQueue.ts +130 -98
- package/src/TxPubSub.ts +107 -80
- package/src/TxQueue.ts +214 -183
- package/src/TxReentrantLock.ts +136 -101
- package/src/TxRef.ts +51 -32
- package/src/TxSemaphore.ts +129 -95
- package/src/TxSubscriptionRef.ts +97 -70
- package/src/Types.ts +126 -67
- package/src/Unify.ts +45 -65
- package/src/Utils.ts +23 -16
- package/src/internal/core.ts +2 -2
- package/src/internal/dateTime.ts +7 -1
- package/src/internal/effect.ts +93 -48
- package/src/internal/executionPlan.ts +105 -10
- package/src/internal/hashMap.ts +20 -14
- package/src/internal/matcher.ts +2 -2
- package/src/internal/persistence.ts +2 -0
- package/src/internal/references.ts +3 -2
- package/src/internal/schedule.ts +4 -4
- package/src/internal/schema/annotations.ts +3 -0
- package/src/internal/schema/fromJsonSchemaDocument.ts +15 -13
- package/src/internal/schema/fromRepresentation.ts +10 -16
- package/src/internal/schema/parser.ts +22 -0
- package/src/internal/schema/toArbitrary.ts +3 -1
- package/src/internal/schema/toJsonSchemaDocument.ts +60 -6
- package/src/internal/schema/toRepresentation.ts +104 -119
- package/src/internal/trie.ts +21 -12
- package/src/testing/FastCheck.ts +8 -7
- package/src/testing/TestClock.ts +85 -31
- package/src/testing/TestConsole.ts +32 -31
- package/src/testing/TestSchema.ts +30 -30
- package/src/unstable/ai/AiError.ts +114 -137
- package/src/unstable/ai/AnthropicStructuredOutput.ts +1 -1
- package/src/unstable/ai/Chat.ts +133 -98
- package/src/unstable/ai/IdGenerator.ts +32 -28
- package/src/unstable/ai/LanguageModel.ts +111 -69
- package/src/unstable/ai/McpProtocol.ts +48 -0
- package/src/unstable/ai/McpSchema.ts +77 -66
- package/src/unstable/ai/McpServer.ts +931 -305
- package/src/unstable/ai/Model.ts +9 -20
- package/src/unstable/ai/OpenAiStructuredOutput.ts +1 -1
- package/src/unstable/ai/Prompt.ts +166 -49
- package/src/unstable/ai/Response.ts +28 -14
- package/src/unstable/ai/Telemetry.ts +46 -13
- package/src/unstable/ai/Tokenizer.ts +14 -3
- package/src/unstable/ai/Tool.ts +59 -44
- package/src/unstable/ai/Toolkit.ts +26 -8
- package/src/unstable/ai/index.ts +5 -0
- package/src/unstable/ai/internal/mcpProtocol.ts +85 -0
- package/src/unstable/ai/internal/mcpProtocolRegistry.ts +70 -0
- package/src/unstable/ai/internal/structured-output.ts +13 -18
- package/src/unstable/cli/Argument.ts +273 -69
- package/src/unstable/cli/CliError.ts +79 -86
- package/src/unstable/cli/CliOutput.ts +44 -58
- package/src/unstable/cli/Command.ts +716 -116
- package/src/unstable/cli/Flag.ts +418 -138
- package/src/unstable/cli/GlobalFlag.ts +1 -1
- package/src/unstable/cli/HelpDoc.ts +12 -4
- package/src/unstable/cli/Param.ts +333 -97
- package/src/unstable/cli/Primitive.ts +381 -154
- package/src/unstable/cli/Prompt.ts +64 -34
- package/src/unstable/cli/internal/ansi.ts +2 -2
- package/src/unstable/cli/internal/command.ts +15 -10
- package/src/unstable/cli/internal/completions/bash.ts +59 -9
- package/src/unstable/cli/internal/completions/descriptor.ts +14 -20
- package/src/unstable/cli/internal/completions/fish.ts +5 -7
- package/src/unstable/cli/internal/help.ts +4 -2
- package/src/unstable/cli/internal/lexer.ts +8 -2
- package/src/unstable/cli/internal/parser.ts +5 -5
- package/src/unstable/cli/internal/wizard.ts +2 -2
- package/src/unstable/cluster/ClusterError.ts +7 -7
- package/src/unstable/cluster/ClusterSchema.ts +8 -8
- package/src/unstable/cluster/ClusterWorkflowEngine.ts +9 -2
- package/src/unstable/cluster/Entity.ts +15 -16
- package/src/unstable/cluster/EntityProxy.ts +4 -2
- package/src/unstable/cluster/EntityResource.ts +2 -2
- package/src/unstable/cluster/Envelope.ts +3 -3
- package/src/unstable/cluster/HttpRunner.ts +6 -4
- package/src/unstable/cluster/Message.ts +9 -9
- package/src/unstable/cluster/MessageStorage.ts +24 -20
- package/src/unstable/cluster/Reply.ts +25 -6
- package/src/unstable/cluster/RunnerHealth.ts +1 -1
- package/src/unstable/cluster/RunnerServer.ts +35 -8
- package/src/unstable/cluster/RunnerStorage.ts +11 -9
- package/src/unstable/cluster/Runners.ts +23 -12
- package/src/unstable/cluster/Sharding.ts +42 -15
- package/src/unstable/cluster/ShardingConfig.ts +3 -3
- package/src/unstable/cluster/SingletonAddress.ts +1 -1
- package/src/unstable/cluster/Snowflake.ts +8 -8
- package/src/unstable/cluster/SqlMessageStorage.ts +1 -1
- package/src/unstable/cluster/SqlRunnerStorage.ts +21 -5
- package/src/unstable/cluster/internal/entityManager.ts +12 -16
- package/src/unstable/cluster/internal/resourceMap.ts +5 -2
- package/src/unstable/cluster/internal/resourceRef.ts +27 -5
- package/src/unstable/devtools/DevToolsClient.ts +3 -2
- package/src/unstable/encoding/Ini.ts +174 -0
- package/src/unstable/encoding/Msgpack.ts +53 -36
- package/src/unstable/encoding/Ndjson.ts +9 -1
- package/src/unstable/encoding/Sse.ts +109 -37
- package/src/unstable/encoding/Toml.ts +504 -0
- package/src/unstable/encoding/Yaml.ts +541 -0
- package/src/unstable/encoding/index.ts +15 -0
- package/src/unstable/eventlog/Event.ts +20 -20
- package/src/unstable/eventlog/EventGroup.ts +4 -4
- package/src/unstable/eventlog/EventJournal.ts +29 -21
- package/src/unstable/eventlog/EventLog.ts +3 -3
- package/src/unstable/eventlog/EventLogEncryption.ts +1 -1
- package/src/unstable/eventlog/EventLogMessage.ts +3 -3
- package/src/unstable/eventlog/EventLogRemote.ts +1 -1
- package/src/unstable/eventlog/EventLogServer.ts +41 -7
- package/src/unstable/eventlog/EventLogServerEncrypted.ts +13 -5
- package/src/unstable/eventlog/EventLogServerUnencrypted.ts +15 -7
- package/src/unstable/eventlog/EventLogSessionAuth.ts +1 -1
- package/src/unstable/eventlog/SqlEventJournal.ts +6 -4
- package/src/unstable/http/Cookies.ts +35 -21
- package/src/unstable/http/Etag.ts +1 -1
- package/src/unstable/http/FetchHttpClient.ts +3 -1
- package/src/unstable/http/FindMyWay/internal/queryString.ts +420 -0
- package/src/unstable/http/FindMyWay/internal/router.ts +950 -0
- package/src/unstable/http/FindMyWay.ts +65 -6
- package/src/unstable/http/Headers.ts +2 -2
- package/src/unstable/http/HttpBody.ts +20 -5
- package/src/unstable/http/HttpClient.ts +83 -55
- package/src/unstable/http/HttpClientError.ts +1 -1
- package/src/unstable/http/HttpClientRequest.ts +2 -12
- package/src/unstable/http/HttpClientResponse.ts +5 -21
- package/src/unstable/http/HttpEffect.ts +8 -8
- package/src/unstable/http/HttpMethod.ts +6 -9
- package/src/unstable/http/HttpMiddleware.ts +202 -39
- package/src/unstable/http/HttpPlatform.ts +129 -6
- package/src/unstable/http/HttpRouter.ts +102 -98
- package/src/unstable/http/HttpServer.ts +13 -13
- package/src/unstable/http/HttpServerError.ts +2 -2
- package/src/unstable/http/HttpServerRequest.ts +18 -10
- package/src/unstable/http/HttpServerResponse.ts +38 -6
- package/src/unstable/http/HttpStaticServer.ts +35 -7
- package/src/unstable/http/Multipart.ts +15 -8
- package/src/unstable/http/MultipartParser/HeadersParser.ts +68 -0
- package/src/unstable/http/MultipartParser/Search.ts +17 -0
- package/src/unstable/http/MultipartParser/internal/contentType.ts +103 -0
- package/src/unstable/http/MultipartParser/internal/headers.ts +615 -0
- package/src/unstable/http/MultipartParser/internal/multipart.ts +262 -0
- package/src/unstable/http/MultipartParser/internal/search.ts +167 -0
- package/src/unstable/http/MultipartParser.ts +115 -0
- package/src/unstable/http/Template.ts +6 -5
- package/src/unstable/http/Url.ts +33 -63
- package/src/unstable/http/UrlParams.ts +10 -18
- package/src/unstable/http/index.ts +1 -1
- package/src/unstable/http/internal/compression.ts +196 -0
- package/src/unstable/http/internal/httpBody.ts +15 -0
- package/src/unstable/httpapi/HttpApi.ts +6 -7
- package/src/unstable/httpapi/HttpApiBuilder.ts +129 -30
- package/src/unstable/httpapi/HttpApiClient.ts +117 -54
- package/src/unstable/httpapi/HttpApiEndpoint.ts +159 -71
- package/src/unstable/httpapi/HttpApiError.ts +46 -52
- package/src/unstable/httpapi/HttpApiGroup.ts +15 -15
- package/src/unstable/httpapi/HttpApiMiddleware.ts +71 -24
- package/src/unstable/httpapi/HttpApiScalar.ts +0 -12
- package/src/unstable/httpapi/HttpApiSchema.ts +359 -6
- package/src/unstable/httpapi/OpenApi.ts +83 -33
- package/src/unstable/observability/OtlpExporter.ts +35 -21
- package/src/unstable/observability/OtlpLogger.ts +3 -1
- package/src/unstable/observability/OtlpMetrics.ts +36 -19
- package/src/unstable/observability/OtlpResource.ts +26 -17
- package/src/unstable/observability/OtlpTracer.ts +1 -1
- package/src/unstable/observability/PrometheusMetrics.ts +13 -4
- package/src/unstable/observability/internal/otlpEnv.ts +1 -1
- package/src/unstable/observability/internal/protobuf.ts +3 -0
- package/src/unstable/persistence/KeyValueStore.ts +72 -49
- package/src/unstable/persistence/Persistable.ts +8 -8
- package/src/unstable/persistence/PersistedQueue.ts +18 -15
- package/src/unstable/persistence/Persistence.ts +153 -26
- package/src/unstable/persistence/RateLimiter.ts +77 -43
- package/src/unstable/persistence/Redis.ts +3 -3
- package/src/unstable/process/ChildProcess.ts +64 -21
- package/src/unstable/process/ChildProcessSpawner.ts +21 -10
- package/src/unstable/reactivity/AsyncResult.ts +12 -13
- package/src/unstable/reactivity/Atom.ts +28 -25
- package/src/unstable/reactivity/AtomHttpApi.ts +5 -4
- package/src/unstable/reactivity/AtomRegistry.ts +24 -3
- package/src/unstable/reactivity/AtomRpc.ts +5 -4
- package/src/unstable/reactivity/Hydration.ts +1 -1
- package/src/unstable/rpc/Rpc.ts +35 -33
- package/src/unstable/rpc/RpcClient.ts +54 -27
- package/src/unstable/rpc/RpcClientError.ts +2 -2
- package/src/unstable/rpc/RpcGroup.ts +8 -8
- package/src/unstable/rpc/RpcMessage.ts +31 -30
- package/src/unstable/rpc/RpcMiddleware.ts +10 -10
- package/src/unstable/rpc/RpcSchema.ts +4 -4
- package/src/unstable/rpc/RpcSerialization.ts +167 -68
- package/src/unstable/rpc/RpcServer.ts +18 -15
- package/src/unstable/rpc/RpcWorker.ts +5 -5
- package/src/unstable/schema/Model.ts +52 -50
- package/src/unstable/schema/VariantSchema.ts +41 -23
- package/src/unstable/socket/Socket.ts +41 -18
- package/src/unstable/sql/SqlClient.ts +64 -56
- package/src/unstable/sql/SqlError.ts +13 -13
- package/src/unstable/sql/SqlModel.ts +2 -2
- package/src/unstable/sql/SqlResolver.ts +13 -11
- package/src/unstable/sql/Statement.ts +37 -31
- package/src/unstable/workers/Transferable.ts +1 -1
- package/src/unstable/workers/Worker.ts +2 -2
- package/src/unstable/workers/WorkerError.ts +12 -12
- package/src/unstable/workers/WorkerRunner.ts +1 -1
- package/src/unstable/workflow/Activity.ts +2 -2
- package/src/unstable/workflow/DurableClock.ts +1 -1
- package/src/unstable/workflow/DurableDeferred.ts +10 -10
- package/src/unstable/workflow/DurableQueue.ts +22 -20
- package/src/unstable/workflow/Workflow.ts +23 -23
- package/src/unstable/workflow/WorkflowEngine.ts +9 -4
- package/src/unstable/workflow/WorkflowProxy.ts +4 -2
- package/dist/internal/version.d.ts +0 -3
- package/dist/internal/version.d.ts.map +0 -1
- package/dist/internal/version.js +0 -2
- package/dist/internal/version.js.map +0 -1
- package/dist/unstable/http/Multipasta/HeadersParser.d.ts +0 -14
- package/dist/unstable/http/Multipasta/HeadersParser.d.ts.map +0 -1
- package/dist/unstable/http/Multipasta/HeadersParser.js +0 -14
- package/dist/unstable/http/Multipasta/HeadersParser.js.map +0 -1
- package/dist/unstable/http/Multipasta/Node.d.ts +0 -14
- package/dist/unstable/http/Multipasta/Node.d.ts.map +0 -1
- package/dist/unstable/http/Multipasta/Node.js +0 -14
- package/dist/unstable/http/Multipasta/Node.js.map +0 -1
- package/dist/unstable/http/Multipasta/Search.d.ts +0 -14
- package/dist/unstable/http/Multipasta/Search.d.ts.map +0 -1
- package/dist/unstable/http/Multipasta/Search.js +0 -14
- package/dist/unstable/http/Multipasta/Search.js.map +0 -1
- package/dist/unstable/http/Multipasta/Web.d.ts +0 -14
- package/dist/unstable/http/Multipasta/Web.d.ts.map +0 -1
- package/dist/unstable/http/Multipasta/Web.js +0 -14
- package/dist/unstable/http/Multipasta/Web.js.map +0 -1
- package/dist/unstable/http/Multipasta.d.ts +0 -15
- package/dist/unstable/http/Multipasta.d.ts.map +0 -1
- package/dist/unstable/http/Multipasta.js +0 -15
- package/dist/unstable/http/Multipasta.js.map +0 -1
- package/src/internal/version.ts +0 -2
- package/src/unstable/http/Multipasta/HeadersParser.ts +0 -14
- package/src/unstable/http/Multipasta/Node.ts +0 -14
- package/src/unstable/http/Multipasta/Search.ts +0 -14
- package/src/unstable/http/Multipasta/Web.ts +0 -14
- package/src/unstable/http/Multipasta.ts +0 -15
package/src/SchemaAST.ts
CHANGED
|
@@ -13,16 +13,15 @@
|
|
|
13
13
|
|
|
14
14
|
import * as Arr from "./Array.ts"
|
|
15
15
|
import * as Cause from "./Cause.ts"
|
|
16
|
-
import type * as Combiner from "./Combiner.ts"
|
|
17
16
|
import * as Effect from "./Effect.ts"
|
|
18
17
|
import * as Exit from "./Exit.ts"
|
|
19
18
|
import { format, formatPropertyKey } from "./Formatter.ts"
|
|
20
|
-
import { memoize } from "./Function.ts"
|
|
19
|
+
import { identity, memoize } from "./Function.ts"
|
|
21
20
|
import { effectIsExit, iterateEager } from "./internal/effect.ts"
|
|
22
21
|
import * as InternalRecord from "./internal/record.ts"
|
|
23
22
|
import * as InternalAnnotations from "./internal/schema/annotations.ts"
|
|
24
23
|
import * as InternalSchemaCause from "./internal/schema/cause.ts"
|
|
25
|
-
import * as
|
|
24
|
+
import * as InternalParser from "./internal/schema/parser.ts"
|
|
26
25
|
import * as Pipeable from "./Pipeable.ts"
|
|
27
26
|
import * as Predicate from "./Predicate.ts"
|
|
28
27
|
import * as Result from "./Result.ts"
|
|
@@ -533,7 +532,7 @@ export const defaultParseOptions: ParseOptions = {}
|
|
|
533
532
|
*
|
|
534
533
|
* - `isOptional` — the property key may be absent from the input.
|
|
535
534
|
* - `isMutable` — the property is `readonly` when `false`.
|
|
536
|
-
* - `
|
|
535
|
+
* - `constructorDefault` — a {@link Link} applied during construction to
|
|
537
536
|
* supply missing values.
|
|
538
537
|
* - `annotations` — key-level annotations (e.g. description of the key
|
|
539
538
|
* itself).
|
|
@@ -547,19 +546,19 @@ export class Context {
|
|
|
547
546
|
readonly isOptional: boolean
|
|
548
547
|
readonly isMutable: boolean
|
|
549
548
|
/** Used for constructor default values (e.g. `withConstructorDefault` API) */
|
|
550
|
-
readonly
|
|
549
|
+
readonly constructorDefault: Link | undefined
|
|
551
550
|
readonly annotations: Schema.Annotations.Key<unknown> | undefined
|
|
552
551
|
|
|
553
552
|
constructor(
|
|
554
553
|
isOptional: boolean,
|
|
555
554
|
isMutable: boolean,
|
|
556
555
|
/** Used for constructor default values (e.g. `withConstructorDefault` API) */
|
|
557
|
-
|
|
556
|
+
constructorDefault: Link | undefined = undefined,
|
|
558
557
|
annotations: Schema.Annotations.Key<unknown> | undefined = undefined
|
|
559
558
|
) {
|
|
560
559
|
this.isOptional = isOptional
|
|
561
560
|
this.isMutable = isMutable
|
|
562
|
-
this.
|
|
561
|
+
this.constructorDefault = constructorDefault
|
|
563
562
|
this.annotations = annotations
|
|
564
563
|
}
|
|
565
564
|
}
|
|
@@ -672,10 +671,10 @@ export class Declaration extends Base {
|
|
|
672
671
|
}
|
|
673
672
|
/** @internal */
|
|
674
673
|
getParser(): SchemaParser.Parser {
|
|
675
|
-
|
|
676
|
-
return (
|
|
677
|
-
if (
|
|
678
|
-
return
|
|
674
|
+
let run: ReturnType<typeof this.run>
|
|
675
|
+
return (input, options) => {
|
|
676
|
+
if (input === InternalParser.missing) return InternalParser.missingExit
|
|
677
|
+
return (run ??= this.run(this.typeParameters))(input, this, options)
|
|
679
678
|
}
|
|
680
679
|
}
|
|
681
680
|
private _rebuild(recur: (ast: AST) => AST, checks: Checks | undefined, encodingChecks: Checks | undefined) {
|
|
@@ -816,7 +815,8 @@ export class Void extends Base {
|
|
|
816
815
|
readonly _tag = "Void"
|
|
817
816
|
/** @internal */
|
|
818
817
|
getParser() {
|
|
819
|
-
|
|
818
|
+
const succeed = InternalParser.succeed(undefined)
|
|
819
|
+
return (input: unknown) => input === InternalParser.missing ? InternalParser.missingExit : succeed
|
|
820
820
|
}
|
|
821
821
|
/** @internal */
|
|
822
822
|
toCodecJson(): AST {
|
|
@@ -1080,9 +1080,9 @@ function isTemplateLiteralPart(ast: AST): ast is TemplateLiteralPart {
|
|
|
1080
1080
|
return true
|
|
1081
1081
|
case "Literal":
|
|
1082
1082
|
case "TemplateLiteral":
|
|
1083
|
-
return ast.checks
|
|
1083
|
+
return !ast.checks
|
|
1084
1084
|
case "Union":
|
|
1085
|
-
return ast.checks
|
|
1085
|
+
return !ast.checks && ast.types.every(isTemplateLiteralPart)
|
|
1086
1086
|
default:
|
|
1087
1087
|
return false
|
|
1088
1088
|
}
|
|
@@ -1106,6 +1106,10 @@ export class TemplateLiteral extends Base {
|
|
|
1106
1106
|
readonly parts: ReadonlyArray<AST>
|
|
1107
1107
|
/** @internal */
|
|
1108
1108
|
readonly encodedParts: ReadonlyArray<TemplateLiteralPart>
|
|
1109
|
+
/** @internal */
|
|
1110
|
+
readonly literals: ReadonlyArray<string | undefined>
|
|
1111
|
+
/** @internal */
|
|
1112
|
+
readonly suffixLengths: ReadonlyArray<number>
|
|
1109
1113
|
|
|
1110
1114
|
constructor(
|
|
1111
1115
|
parts: ReadonlyArray<AST>,
|
|
@@ -1116,25 +1120,40 @@ export class TemplateLiteral extends Base {
|
|
|
1116
1120
|
) {
|
|
1117
1121
|
super(annotations, checks, encoding, context)
|
|
1118
1122
|
const encodedParts: Array<TemplateLiteralPart> = []
|
|
1123
|
+
const literals: Array<string | undefined> = []
|
|
1119
1124
|
for (const part of parts) {
|
|
1120
1125
|
const encoded = toEncoded(part)
|
|
1121
1126
|
if (isTemplateLiteralPart(encoded)) {
|
|
1122
1127
|
encodedParts.push(encoded)
|
|
1128
|
+
literals.push(encoded._tag === "Literal" ? globalThis.String(encoded.literal) : undefined)
|
|
1123
1129
|
} else {
|
|
1124
1130
|
throw new Error(`Invalid TemplateLiteral part ${encoded._tag}`)
|
|
1125
1131
|
}
|
|
1126
1132
|
}
|
|
1133
|
+
const suffixLengths = new Array<number>(encodedParts.length + 1)
|
|
1134
|
+
suffixLengths[encodedParts.length] = 0
|
|
1135
|
+
for (let i = encodedParts.length - 1; i >= 0; i--) {
|
|
1136
|
+
suffixLengths[i] = suffixLengths[i + 1] + (literals[i]?.length ?? 0)
|
|
1137
|
+
}
|
|
1127
1138
|
this.parts = parts
|
|
1128
1139
|
this.encodedParts = encodedParts
|
|
1140
|
+
this.literals = literals
|
|
1141
|
+
this.suffixLengths = suffixLengths
|
|
1129
1142
|
}
|
|
1130
1143
|
/** @internal */
|
|
1131
|
-
getParser(
|
|
1132
|
-
const parser =
|
|
1133
|
-
return (
|
|
1134
|
-
|
|
1135
|
-
|
|
1136
|
-
|
|
1144
|
+
getParser(compile: SchemaParser.Compiler): SchemaParser.Parser {
|
|
1145
|
+
const parser = compile(this.asTemplateLiteralParser())
|
|
1146
|
+
return (input, options) => {
|
|
1147
|
+
if (input === InternalParser.missing) return InternalParser.missingExit
|
|
1148
|
+
const result = parser(input, options)
|
|
1149
|
+
if ((result as Exit.Exit<unknown, unknown>)._tag === "Success") {
|
|
1150
|
+
return InternalParser.sameExit
|
|
1151
|
+
}
|
|
1152
|
+
return Effect.mapBothEager(result, {
|
|
1153
|
+
onSuccess: () => input,
|
|
1154
|
+
onFailure: (issue) => new SchemaIssue.Composite(this, [issue])
|
|
1137
1155
|
})
|
|
1156
|
+
}
|
|
1138
1157
|
}
|
|
1139
1158
|
/** @internal */
|
|
1140
1159
|
getExpected(): string {
|
|
@@ -1142,7 +1161,7 @@ export class TemplateLiteral extends Base {
|
|
|
1142
1161
|
}
|
|
1143
1162
|
/** @internal */
|
|
1144
1163
|
matchPart(s: string, options: ParseOptions): string | undefined {
|
|
1145
|
-
return segmentTemplateLiteralParts(this
|
|
1164
|
+
return segmentTemplateLiteralParts(this, s, options) === undefined ? undefined : s
|
|
1146
1165
|
}
|
|
1147
1166
|
/** @internal */
|
|
1148
1167
|
asTemplateLiteralParser(): Arrays {
|
|
@@ -1152,11 +1171,11 @@ export class TemplateLiteral extends Base {
|
|
|
1152
1171
|
tuple,
|
|
1153
1172
|
new SchemaTransformation.Transformation(
|
|
1154
1173
|
SchemaGetter.transformOrFail((s: string, options) => {
|
|
1155
|
-
const segments = segmentTemplateLiteralParts(this
|
|
1156
|
-
if (segments
|
|
1174
|
+
const segments = segmentTemplateLiteralParts(this, s, options)
|
|
1175
|
+
if (segments) return Effect.succeed(segments)
|
|
1157
1176
|
return Effect.fail(
|
|
1158
|
-
new SchemaIssue.InvalidValue(
|
|
1159
|
-
message:
|
|
1177
|
+
new SchemaIssue.InvalidValue({
|
|
1178
|
+
message: "Expected a string matching template literal parts"
|
|
1160
1179
|
})
|
|
1161
1180
|
)
|
|
1162
1181
|
}),
|
|
@@ -1228,11 +1247,11 @@ export type LiteralValue = string | number | boolean | bigint
|
|
|
1228
1247
|
*
|
|
1229
1248
|
* **Example** (Creating a literal AST)
|
|
1230
1249
|
*
|
|
1231
|
-
* ```ts
|
|
1250
|
+
* ```ts import.meta.vitest
|
|
1232
1251
|
* import { SchemaAST } from "effect"
|
|
1233
1252
|
*
|
|
1234
1253
|
* const ast = new SchemaAST.Literal("active")
|
|
1235
|
-
*
|
|
1254
|
+
* ast.literal // => "active"
|
|
1236
1255
|
* ```
|
|
1237
1256
|
*
|
|
1238
1257
|
* @see {@link LiteralValue}
|
|
@@ -1309,7 +1328,8 @@ export class String extends Base {
|
|
|
1309
1328
|
}
|
|
1310
1329
|
/** @internal */
|
|
1311
1330
|
matchPart(s: string, options: ParseOptions): string | undefined {
|
|
1312
|
-
|
|
1331
|
+
const checks = this.checks
|
|
1332
|
+
return checks && !options.disableChecks && collectIssues(checks, s, undefined, this, options) ? undefined : s
|
|
1313
1333
|
}
|
|
1314
1334
|
/** @internal */
|
|
1315
1335
|
getExpected(): string {
|
|
@@ -1366,9 +1386,10 @@ export class Number extends Base {
|
|
|
1366
1386
|
return this._match(isStringFiniteRegExp, s, options)
|
|
1367
1387
|
}
|
|
1368
1388
|
private _match(regexp: RegExp, s: string, options: ParseOptions): number | undefined {
|
|
1369
|
-
|
|
1370
|
-
|
|
1371
|
-
|
|
1389
|
+
if (!regexp.test(s)) return undefined
|
|
1390
|
+
const value = globalThis.Number(s)
|
|
1391
|
+
if (options.disableChecks || !this.checks) return value
|
|
1392
|
+
return collectIssues(this.checks, value, undefined, this, options) ? undefined : value
|
|
1372
1393
|
}
|
|
1373
1394
|
/** @internal */
|
|
1374
1395
|
toCodecJson(): AST {
|
|
@@ -1401,7 +1422,7 @@ function hasCheck(checks: ReadonlyArray<Check<unknown>>, id: string): boolean {
|
|
|
1401
1422
|
}
|
|
1402
1423
|
|
|
1403
1424
|
function numberToJson(checks: Checks | undefined): Link {
|
|
1404
|
-
const encodedFinite = checks
|
|
1425
|
+
const encodedFinite = !checks
|
|
1405
1426
|
? finite
|
|
1406
1427
|
: appendChecks(finite, checks)
|
|
1407
1428
|
|
|
@@ -1493,7 +1514,8 @@ export class Symbol extends Base {
|
|
|
1493
1514
|
}
|
|
1494
1515
|
/** @internal */
|
|
1495
1516
|
matchKey(s: symbol, options: ParseOptions): symbol | undefined {
|
|
1496
|
-
|
|
1517
|
+
if (options.disableChecks || !this.checks) return s
|
|
1518
|
+
return collectIssues(this.checks, s, undefined, this, options) ? undefined : s
|
|
1497
1519
|
}
|
|
1498
1520
|
/** @internal */
|
|
1499
1521
|
toCodecStringTree(): AST {
|
|
@@ -1546,9 +1568,10 @@ export class BigInt extends Base {
|
|
|
1546
1568
|
}
|
|
1547
1569
|
/** @internal */
|
|
1548
1570
|
matchPart(s: string, options: ParseOptions): bigint | undefined {
|
|
1549
|
-
|
|
1550
|
-
|
|
1551
|
-
|
|
1571
|
+
if (!isStringBigIntRegExp.test(s)) return undefined
|
|
1572
|
+
const value = globalThis.BigInt(s)
|
|
1573
|
+
if (options.disableChecks || !this.checks) return value
|
|
1574
|
+
return collectIssues(this.checks, value, undefined, this, options) ? undefined : value
|
|
1552
1575
|
}
|
|
1553
1576
|
/** @internal */
|
|
1554
1577
|
toCodecStringTree(): AST {
|
|
@@ -1602,15 +1625,14 @@ export const bigInt = new BigInt()
|
|
|
1602
1625
|
*
|
|
1603
1626
|
* **Example** (Inspecting a tuple AST)
|
|
1604
1627
|
*
|
|
1605
|
-
* ```ts
|
|
1628
|
+
* ```ts import.meta.vitest
|
|
1606
1629
|
* import { Schema, SchemaAST } from "effect"
|
|
1607
1630
|
*
|
|
1608
1631
|
* const schema = Schema.Tuple([Schema.String, Schema.Number])
|
|
1609
1632
|
* const ast = schema.ast
|
|
1610
1633
|
*
|
|
1611
1634
|
* if (SchemaAST.isArrays(ast)) {
|
|
1612
|
-
*
|
|
1613
|
-
* console.log(ast.rest.length) // 0
|
|
1635
|
+
* [ast.elements.length, ast.rest.length] // => [2, 0]
|
|
1614
1636
|
* }
|
|
1615
1637
|
* ```
|
|
1616
1638
|
*
|
|
@@ -1642,58 +1664,71 @@ export class Arrays extends Base {
|
|
|
1642
1664
|
this.rest = rest
|
|
1643
1665
|
this.encodingChecks = encodingChecks
|
|
1644
1666
|
|
|
1645
|
-
|
|
1646
|
-
|
|
1647
|
-
|
|
1667
|
+
let hasOptional = false
|
|
1668
|
+
for (let i = 0; i < elements.length; i++) {
|
|
1669
|
+
if (isOptional(elements[i])) {
|
|
1670
|
+
hasOptional = true
|
|
1671
|
+
} else if (hasOptional) {
|
|
1672
|
+
throw new Error("A required element cannot follow an optional element. ts(1257)")
|
|
1673
|
+
}
|
|
1674
|
+
}
|
|
1675
|
+
if (hasOptional && rest.length > 1) {
|
|
1648
1676
|
throw new Error("A required element cannot follow an optional element. ts(1257)")
|
|
1649
1677
|
}
|
|
1650
1678
|
|
|
1651
1679
|
// An optional element cannot follow a rest element.ts(1266)
|
|
1652
|
-
|
|
1653
|
-
|
|
1680
|
+
for (let i = 1; i < rest.length; i++) {
|
|
1681
|
+
if (isOptional(rest[i])) {
|
|
1682
|
+
throw new Error("An optional element cannot follow a rest element. ts(1266)")
|
|
1683
|
+
}
|
|
1654
1684
|
}
|
|
1655
1685
|
}
|
|
1656
1686
|
/** @internal */
|
|
1657
|
-
getParser(
|
|
1687
|
+
getParser(
|
|
1688
|
+
compile: SchemaParser.Compiler,
|
|
1689
|
+
compileConstructorDefault: SchemaParser.Compiler = compile
|
|
1690
|
+
): SchemaParser.Parser {
|
|
1658
1691
|
// oxlint-disable-next-line @typescript-eslint/no-this-alias
|
|
1659
1692
|
const ast = this
|
|
1660
|
-
|
|
1661
|
-
|
|
1662
|
-
|
|
1663
|
-
|
|
1664
|
-
const
|
|
1665
|
-
const tailLen = tail.length
|
|
1693
|
+
type ElementParser = { readonly ast: AST; readonly parser: SchemaParser.Parser }
|
|
1694
|
+
let elements: Array<ElementParser> | undefined
|
|
1695
|
+
let rest: Array<ElementParser> | undefined
|
|
1696
|
+
const elementLen = ast.elements.length
|
|
1697
|
+
const tailLen = Math.max(0, ast.rest.length - 1)
|
|
1666
1698
|
|
|
1667
1699
|
function getParser(
|
|
1668
1700
|
tailThreshold: number,
|
|
1669
1701
|
index: number
|
|
1670
1702
|
): { readonly ast: AST; readonly parser: SchemaParser.Parser } {
|
|
1671
1703
|
if (index < elementLen) {
|
|
1672
|
-
return elements[index]
|
|
1704
|
+
return elements![index]
|
|
1673
1705
|
} else if (index >= tailThreshold) {
|
|
1674
|
-
return
|
|
1706
|
+
return rest![index - tailThreshold + 1]
|
|
1675
1707
|
}
|
|
1676
|
-
return
|
|
1708
|
+
return rest![0]
|
|
1677
1709
|
}
|
|
1678
1710
|
|
|
1679
|
-
return Effect.fnUntracedEager(function*(
|
|
1680
|
-
if (
|
|
1681
|
-
return
|
|
1711
|
+
return Effect.fnUntracedEager(function*(input, options) {
|
|
1712
|
+
if (input === InternalParser.missing) {
|
|
1713
|
+
return InternalParser.missing
|
|
1682
1714
|
}
|
|
1683
|
-
const input = oinput.value
|
|
1684
1715
|
|
|
1685
1716
|
// If the input is not an array, return early with an error
|
|
1686
1717
|
if (!Array.isArray(input)) {
|
|
1687
|
-
return yield* Effect.fail(new SchemaIssue.InvalidType(ast
|
|
1718
|
+
return yield* Effect.fail(new SchemaIssue.InvalidType(ast))
|
|
1719
|
+
}
|
|
1720
|
+
if (!elements) {
|
|
1721
|
+
elements = ast.elements.map((ast) => ({ ast, parser: compileConstructorDefault(ast) }))
|
|
1722
|
+
rest = ast.rest.map((ast) => ({ ast, parser: compileConstructorDefault(ast) }))
|
|
1688
1723
|
}
|
|
1689
1724
|
|
|
1690
1725
|
const len = input.length
|
|
1691
1726
|
const state = {
|
|
1692
1727
|
ast,
|
|
1693
1728
|
getParser,
|
|
1694
|
-
|
|
1729
|
+
input,
|
|
1695
1730
|
len,
|
|
1696
|
-
tailThreshold:
|
|
1731
|
+
tailThreshold: Math.max(elementLen, len - tailLen),
|
|
1697
1732
|
output: new globalThis.Array(len),
|
|
1698
1733
|
issues: undefined as Arr.NonEmptyArray<SchemaIssue.Issue> | undefined,
|
|
1699
1734
|
options
|
|
@@ -1710,19 +1745,23 @@ export class Arrays extends Base {
|
|
|
1710
1745
|
// ---------------------------------------------
|
|
1711
1746
|
if (ast.rest.length === 0 && len > elementLen) {
|
|
1712
1747
|
for (let i = elementLen; i <= len - 1; i++) {
|
|
1713
|
-
const issue = new SchemaIssue.Pointer([i], new SchemaIssue.UnexpectedKey(ast
|
|
1748
|
+
const issue = new SchemaIssue.Pointer([i], new SchemaIssue.UnexpectedKey(ast))
|
|
1714
1749
|
if (options.errors === "all") {
|
|
1715
1750
|
if (state.issues) state.issues.push(issue)
|
|
1716
1751
|
else state.issues = [issue]
|
|
1717
1752
|
} else {
|
|
1718
|
-
return yield* Effect.fail(
|
|
1753
|
+
return yield* Effect.fail(
|
|
1754
|
+
new SchemaIssue.Composite(ast, [issue])
|
|
1755
|
+
)
|
|
1719
1756
|
}
|
|
1720
1757
|
}
|
|
1721
1758
|
}
|
|
1722
1759
|
if (state.issues) {
|
|
1723
|
-
return yield* Effect.fail(
|
|
1760
|
+
return yield* Effect.fail(
|
|
1761
|
+
new SchemaIssue.Composite(ast, state.issues)
|
|
1762
|
+
)
|
|
1724
1763
|
}
|
|
1725
|
-
return
|
|
1764
|
+
return state.output
|
|
1726
1765
|
})
|
|
1727
1766
|
}
|
|
1728
1767
|
private _rebuild(recur: (ast: AST) => AST, checks: Checks | undefined, encodingChecks: Checks | undefined) {
|
|
@@ -1757,7 +1796,7 @@ export class Arrays extends Base {
|
|
|
1757
1796
|
}
|
|
1758
1797
|
const parseArray = iterateEager<{
|
|
1759
1798
|
readonly ast: AST
|
|
1760
|
-
readonly
|
|
1799
|
+
readonly input: unknown
|
|
1761
1800
|
readonly len: number
|
|
1762
1801
|
readonly getParser: (
|
|
1763
1802
|
tailThreshold: number,
|
|
@@ -1769,14 +1808,18 @@ const parseArray = iterateEager<{
|
|
|
1769
1808
|
issues: Array<SchemaIssue.Issue> | undefined
|
|
1770
1809
|
}, unknown>()({
|
|
1771
1810
|
onItem(s, item, i) {
|
|
1772
|
-
const value = i < s.len ?
|
|
1811
|
+
const value = i < s.len ? item : InternalParser.missing
|
|
1773
1812
|
return s.getParser(s.tailThreshold, i).parser(value, s.options)
|
|
1774
1813
|
},
|
|
1775
|
-
step(s,
|
|
1814
|
+
step(s, item, exit, i) {
|
|
1776
1815
|
if (exit._tag === "Failure") {
|
|
1777
1816
|
return wrapPropertyKeyIssue(s, s.ast, i, exit)
|
|
1778
|
-
}
|
|
1779
|
-
|
|
1817
|
+
}
|
|
1818
|
+
const value = exit === InternalParser.sameExit
|
|
1819
|
+
? item
|
|
1820
|
+
: (exit as InternalParser.Success<unknown, SchemaIssue.Issue>)[InternalParser.args]
|
|
1821
|
+
if (value !== InternalParser.missing) {
|
|
1822
|
+
s.output[i] = value
|
|
1780
1823
|
} else {
|
|
1781
1824
|
const p = s.getParser(s.tailThreshold, i)
|
|
1782
1825
|
if (isOptional(p.ast)) return
|
|
@@ -1785,20 +1828,14 @@ const parseArray = iterateEager<{
|
|
|
1785
1828
|
if (s.issues) s.issues.push(issue)
|
|
1786
1829
|
else s.issues = [issue]
|
|
1787
1830
|
} else {
|
|
1788
|
-
return Exit.fail(
|
|
1831
|
+
return Exit.fail(
|
|
1832
|
+
new SchemaIssue.Composite(s.ast, [issue])
|
|
1833
|
+
)
|
|
1789
1834
|
}
|
|
1790
1835
|
}
|
|
1791
1836
|
}
|
|
1792
1837
|
})
|
|
1793
1838
|
|
|
1794
|
-
function resolveTailThreshold(
|
|
1795
|
-
inputLen: number,
|
|
1796
|
-
elementLen: number,
|
|
1797
|
-
tailLen: number
|
|
1798
|
-
) {
|
|
1799
|
-
return Math.max(elementLen, inputLen - tailLen)
|
|
1800
|
-
}
|
|
1801
|
-
|
|
1802
1839
|
const resolveConcurrency = (value: number | "unbounded" | undefined) => {
|
|
1803
1840
|
value = value === "unbounded" ? Infinity : value ?? 1
|
|
1804
1841
|
return value > 1 ? { concurrency: value } : undefined
|
|
@@ -1806,7 +1843,7 @@ const resolveConcurrency = (value: number | "unbounded" | undefined) => {
|
|
|
1806
1843
|
|
|
1807
1844
|
const wrapPropertyKeyIssue = (
|
|
1808
1845
|
s: {
|
|
1809
|
-
readonly
|
|
1846
|
+
readonly input: unknown
|
|
1810
1847
|
readonly options: ParseOptions
|
|
1811
1848
|
issues: Array<SchemaIssue.Issue> | undefined
|
|
1812
1849
|
},
|
|
@@ -1822,7 +1859,11 @@ const wrapPropertyKeyIssue = (
|
|
|
1822
1859
|
return Exit.failCause(
|
|
1823
1860
|
Cause.map(
|
|
1824
1861
|
exit.cause,
|
|
1825
|
-
(issue) =>
|
|
1862
|
+
(issue) =>
|
|
1863
|
+
new SchemaIssue.Composite(
|
|
1864
|
+
ast,
|
|
1865
|
+
[new SchemaIssue.Pointer([key], issue)]
|
|
1866
|
+
)
|
|
1826
1867
|
)
|
|
1827
1868
|
)
|
|
1828
1869
|
}
|
|
@@ -1831,7 +1872,9 @@ const wrapPropertyKeyIssue = (
|
|
|
1831
1872
|
if (s.issues) s.issues.push(pointer)
|
|
1832
1873
|
else s.issues = [pointer]
|
|
1833
1874
|
} else {
|
|
1834
|
-
return Exit.fail(
|
|
1875
|
+
return Exit.fail(
|
|
1876
|
+
new SchemaIssue.Composite(ast, [pointer])
|
|
1877
|
+
)
|
|
1835
1878
|
}
|
|
1836
1879
|
}
|
|
1837
1880
|
|
|
@@ -1899,37 +1942,6 @@ export class PropertySignature {
|
|
|
1899
1942
|
}
|
|
1900
1943
|
}
|
|
1901
1944
|
|
|
1902
|
-
/**
|
|
1903
|
-
* Represents a bidirectional merge strategy for index signature key-value pairs.
|
|
1904
|
-
*
|
|
1905
|
-
* **Details**
|
|
1906
|
-
*
|
|
1907
|
-
* Used by {@link IndexSignature} when the same key appears multiple times
|
|
1908
|
-
* (e.g. from `Schema.extend` or overlapping records). Provides separate
|
|
1909
|
-
* `decode` and `encode` combiners that determine how duplicate entries are
|
|
1910
|
-
* merged.
|
|
1911
|
-
*
|
|
1912
|
-
* @see {@link IndexSignature}
|
|
1913
|
-
* @category models
|
|
1914
|
-
* @since 4.0.0
|
|
1915
|
-
*/
|
|
1916
|
-
export class KeyValueCombiner {
|
|
1917
|
-
readonly decode: Combiner.Combiner<readonly [key: PropertyKey, value: any]> | undefined
|
|
1918
|
-
readonly encode: Combiner.Combiner<readonly [key: PropertyKey, value: any]> | undefined
|
|
1919
|
-
|
|
1920
|
-
constructor(
|
|
1921
|
-
decode: Combiner.Combiner<readonly [key: PropertyKey, value: any]> | undefined,
|
|
1922
|
-
encode: Combiner.Combiner<readonly [key: PropertyKey, value: any]> | undefined
|
|
1923
|
-
) {
|
|
1924
|
-
this.decode = decode
|
|
1925
|
-
this.encode = encode
|
|
1926
|
-
}
|
|
1927
|
-
/** @internal */
|
|
1928
|
-
flip(): KeyValueCombiner {
|
|
1929
|
-
return new KeyValueCombiner(this.encode, this.decode)
|
|
1930
|
-
}
|
|
1931
|
-
}
|
|
1932
|
-
|
|
1933
1945
|
type IndexSignatureParameter =
|
|
1934
1946
|
| String
|
|
1935
1947
|
| Number
|
|
@@ -1968,7 +1980,6 @@ function isIndexSignatureParameter(ast: AST): ast is IndexSignatureParameter {
|
|
|
1968
1980
|
* - `parameter` — the key type AST (e.g. {@link String} for `string` keys,
|
|
1969
1981
|
* {@link TemplateLiteral} for patterned keys).
|
|
1970
1982
|
* - `type` — the value type SchemaAST.
|
|
1971
|
-
* - `merge` — optional {@link KeyValueCombiner} for handling duplicate keys.
|
|
1972
1983
|
*
|
|
1973
1984
|
* **Gotchas**
|
|
1974
1985
|
*
|
|
@@ -1983,19 +1994,16 @@ function isIndexSignatureParameter(ast: AST): ast is IndexSignatureParameter {
|
|
|
1983
1994
|
export class IndexSignature {
|
|
1984
1995
|
readonly parameter: IndexSignatureParameter
|
|
1985
1996
|
readonly type: AST
|
|
1986
|
-
readonly merge: KeyValueCombiner | undefined
|
|
1987
1997
|
|
|
1988
1998
|
constructor(
|
|
1989
1999
|
parameter: AST,
|
|
1990
|
-
type: AST
|
|
1991
|
-
merge: KeyValueCombiner | undefined
|
|
2000
|
+
type: AST
|
|
1992
2001
|
) {
|
|
1993
2002
|
if (!isIndexSignatureParameter(parameter)) {
|
|
1994
2003
|
throw new Error(`Invalid index signature parameter ${parameter._tag}`)
|
|
1995
2004
|
}
|
|
1996
2005
|
this.parameter = parameter
|
|
1997
2006
|
this.type = type
|
|
1998
|
-
this.merge = merge
|
|
1999
2007
|
if (isOptional(type) && !containsUndefined(type)) {
|
|
2000
2008
|
throw new Error("Cannot use `Schema.optionalKey` with index signatures, use `Schema.optional` instead.")
|
|
2001
2009
|
}
|
|
@@ -2026,17 +2034,14 @@ export class IndexSignature {
|
|
|
2026
2034
|
*
|
|
2027
2035
|
* **Example** (Inspecting a struct AST)
|
|
2028
2036
|
*
|
|
2029
|
-
* ```ts
|
|
2037
|
+
* ```ts import.meta.vitest
|
|
2030
2038
|
* import { Schema, SchemaAST } from "effect"
|
|
2031
2039
|
*
|
|
2032
2040
|
* const schema = Schema.Struct({ name: Schema.String })
|
|
2033
2041
|
* const ast = schema.ast
|
|
2034
2042
|
*
|
|
2035
2043
|
* if (SchemaAST.isObjects(ast)) {
|
|
2036
|
-
*
|
|
2037
|
-
* console.log(ps.name, ps.type._tag)
|
|
2038
|
-
* }
|
|
2039
|
-
* // "name" "String"
|
|
2044
|
+
* ast.propertySignatures.map((ps) => [ps.name, ps.type._tag]) // => [["name", "String"]]
|
|
2040
2045
|
* }
|
|
2041
2046
|
* ```
|
|
2042
2047
|
*
|
|
@@ -2074,101 +2079,126 @@ export class Objects extends Base {
|
|
|
2074
2079
|
}
|
|
2075
2080
|
}
|
|
2076
2081
|
/** @internal */
|
|
2077
|
-
getParser(
|
|
2082
|
+
getParser(
|
|
2083
|
+
compile: SchemaParser.Compiler,
|
|
2084
|
+
compileConstructorDefault: SchemaParser.Compiler = compile
|
|
2085
|
+
): SchemaParser.Parser {
|
|
2078
2086
|
// oxlint-disable-next-line @typescript-eslint/no-this-alias
|
|
2079
2087
|
const ast = this
|
|
2080
2088
|
const expectedKeys: Array<PropertyKey> = []
|
|
2081
|
-
const expectedKeysSet = new Set<PropertyKey>()
|
|
2082
|
-
const properties: Array<{
|
|
2083
|
-
readonly ps: PropertySignature | IndexSignature
|
|
2084
|
-
readonly parser: SchemaParser.Parser
|
|
2085
|
-
readonly name: PropertyKey
|
|
2086
|
-
readonly type: AST
|
|
2087
|
-
}> = []
|
|
2088
2089
|
for (const ps of ast.propertySignatures) {
|
|
2089
2090
|
expectedKeys.push(ps.name)
|
|
2090
|
-
expectedKeysSet.add(ps.name)
|
|
2091
|
-
properties.push({
|
|
2092
|
-
ps,
|
|
2093
|
-
parser: recur(ps.type),
|
|
2094
|
-
name: ps.name,
|
|
2095
|
-
type: ps.type
|
|
2096
|
-
})
|
|
2097
2091
|
}
|
|
2092
|
+
const hasProperties = expectedKeys.length
|
|
2098
2093
|
const indexCount = ast.indexSignatures.length
|
|
2094
|
+
let expectedKeysSet = hasProperties && indexCount ? new Set(expectedKeys) : undefined
|
|
2099
2095
|
// ---------------------------------------------
|
|
2100
2096
|
// handle empty struct
|
|
2101
2097
|
// ---------------------------------------------
|
|
2102
|
-
if (
|
|
2098
|
+
if (!hasProperties && !indexCount) {
|
|
2103
2099
|
return fromRefinement(ast, Predicate.isNotNullish)
|
|
2104
2100
|
}
|
|
2105
2101
|
|
|
2106
|
-
|
|
2107
|
-
|
|
2108
|
-
|
|
2109
|
-
readonly
|
|
2110
|
-
readonly
|
|
2111
|
-
readonly
|
|
2112
|
-
|
|
2113
|
-
|
|
2114
|
-
|
|
2115
|
-
|
|
2116
|
-
|
|
2117
|
-
|
|
2118
|
-
|
|
2119
|
-
|
|
2120
|
-
|
|
2121
|
-
|
|
2122
|
-
|
|
2123
|
-
|
|
2124
|
-
|
|
2125
|
-
|
|
2126
|
-
|
|
2127
|
-
|
|
2128
|
-
|
|
2129
|
-
|
|
2130
|
-
|
|
2131
|
-
|
|
2132
|
-
|
|
2133
|
-
|
|
2134
|
-
|
|
2135
|
-
|
|
2136
|
-
|
|
2137
|
-
|
|
2138
|
-
|
|
2139
|
-
|
|
2140
|
-
|
|
2141
|
-
|
|
2142
|
-
|
|
2143
|
-
|
|
2144
|
-
|
|
2145
|
-
|
|
2146
|
-
|
|
2147
|
-
|
|
2148
|
-
|
|
2149
|
-
|
|
2150
|
-
|
|
2151
|
-
|
|
2102
|
+
let properties: Array<ParsedProperty> | undefined
|
|
2103
|
+
let indexes:
|
|
2104
|
+
| Array<{
|
|
2105
|
+
readonly is: IndexSignature
|
|
2106
|
+
readonly parserKey: SchemaParser.Parser
|
|
2107
|
+
readonly parserValue: SchemaParser.Parser
|
|
2108
|
+
}>
|
|
2109
|
+
| undefined
|
|
2110
|
+
type Index = NonNullable<typeof indexes>[number]
|
|
2111
|
+
const finishIndex = (
|
|
2112
|
+
s: ObjectParserState,
|
|
2113
|
+
key: PropertyKey,
|
|
2114
|
+
k2: PropertyKey | typeof InternalParser.missing,
|
|
2115
|
+
inputValue: unknown,
|
|
2116
|
+
exitValue: Exit.Exit<unknown, SchemaIssue.Issue>
|
|
2117
|
+
): Effect.Effect<void, SchemaIssue.Issue, any> => {
|
|
2118
|
+
if (exitValue._tag === "Failure") {
|
|
2119
|
+
return wrapPropertyKeyIssue(s, ast, key, exitValue) ?? Exit.void
|
|
2120
|
+
}
|
|
2121
|
+
const value = exitValue === InternalParser.sameExit
|
|
2122
|
+
? inputValue
|
|
2123
|
+
: (exitValue as InternalParser.Success<unknown, SchemaIssue.Issue>)[InternalParser.args]
|
|
2124
|
+
if (k2 !== InternalParser.missing && value !== InternalParser.missing) {
|
|
2125
|
+
if (hasProperties && (expectedKeysSet!.has(key) || expectedKeysSet!.has(k2))) return Exit.void
|
|
2126
|
+
InternalRecord.assignProperty(s.out, k2, value)
|
|
2127
|
+
}
|
|
2128
|
+
return Exit.void
|
|
2129
|
+
}
|
|
2130
|
+
const parseIndex = (
|
|
2131
|
+
s: ObjectParserState,
|
|
2132
|
+
key: PropertyKey,
|
|
2133
|
+
index: Index,
|
|
2134
|
+
exitKey?: Exit.Exit<unknown, SchemaIssue.Issue>
|
|
2135
|
+
): Effect.Effect<void, SchemaIssue.Issue, any> => {
|
|
2136
|
+
if (!exitKey) {
|
|
2137
|
+
const eff = index.parserKey(key, s.options)
|
|
2138
|
+
if (!effectIsExit(eff)) {
|
|
2139
|
+
return Effect.flatMap(Effect.exit(eff), (exit) => parseIndex(s, key, index, exit))
|
|
2140
|
+
}
|
|
2141
|
+
exitKey = eff
|
|
2142
|
+
}
|
|
2143
|
+
if (exitKey._tag === "Failure") {
|
|
2144
|
+
return wrapPropertyKeyIssue(s, ast, key, exitKey) ?? Exit.void
|
|
2145
|
+
}
|
|
2146
|
+
const k2 = exitKey === InternalParser.sameExit
|
|
2147
|
+
? key
|
|
2148
|
+
: (exitKey as InternalParser.Success<PropertyKey, SchemaIssue.Issue>)[InternalParser.args]
|
|
2149
|
+
const inputValue = s.input[key]
|
|
2150
|
+
const result = index.parserValue(inputValue, s.options)
|
|
2151
|
+
return effectIsExit(result)
|
|
2152
|
+
? finishIndex(s, key, k2, inputValue, result)
|
|
2153
|
+
: Effect.flatMap(Effect.exit(result), (exit) => finishIndex(s, key, k2, inputValue, exit))
|
|
2154
|
+
}
|
|
2155
|
+
const parseStringIndex = (
|
|
2156
|
+
s: ObjectParserState,
|
|
2157
|
+
key: PropertyKey,
|
|
2158
|
+
index: Index
|
|
2159
|
+
): Effect.Effect<void, SchemaIssue.Issue, any> => {
|
|
2160
|
+
const inputValue = s.input[key]
|
|
2161
|
+
const result = index.parserValue(inputValue, s.options)
|
|
2162
|
+
return effectIsExit(result)
|
|
2163
|
+
? finishIndex(s, key, key, inputValue, result)
|
|
2164
|
+
: Effect.flatMap(Effect.exit(result), (exit) => finishIndex(s, key, key, inputValue, exit))
|
|
2165
|
+
}
|
|
2166
|
+
const parseIndexes = indexCount ?
|
|
2167
|
+
iterateEager<ObjectParserState, [key: PropertyKey, index: Index]>()({
|
|
2168
|
+
onItem: (s, [key, index]) => parseIndex(s, key, index),
|
|
2152
2169
|
step: (_s, _, exit: Exit.Exit<void, SchemaIssue.Issue>) => exit._tag === "Failure" ? exit : undefined
|
|
2153
2170
|
}) :
|
|
2154
2171
|
undefined
|
|
2155
2172
|
|
|
2156
|
-
return Effect.fnUntracedEager(function*(
|
|
2157
|
-
if (
|
|
2158
|
-
return
|
|
2173
|
+
return Effect.fnUntracedEager(function*(input, options) {
|
|
2174
|
+
if (input === InternalParser.missing) {
|
|
2175
|
+
return InternalParser.missing
|
|
2159
2176
|
}
|
|
2160
|
-
const input = oinput.value as Record<PropertyKey, unknown>
|
|
2161
2177
|
|
|
2162
2178
|
// If the input is not a record, return early with an error
|
|
2163
2179
|
if (!(typeof input === "object" && input !== null && !Array.isArray(input))) {
|
|
2164
|
-
return yield* Effect.fail(new SchemaIssue.InvalidType(ast
|
|
2180
|
+
return yield* Effect.fail(new SchemaIssue.InvalidType(ast))
|
|
2181
|
+
}
|
|
2182
|
+
if (!properties) {
|
|
2183
|
+
properties = ast.propertySignatures.map((ps) => ({
|
|
2184
|
+
parser: compileConstructorDefault(ps.type),
|
|
2185
|
+
name: ps.name,
|
|
2186
|
+
type: ps.type
|
|
2187
|
+
}))
|
|
2188
|
+
indexes = indexCount
|
|
2189
|
+
? ast.indexSignatures.map((is) => ({
|
|
2190
|
+
is,
|
|
2191
|
+
parserKey: compile(parameterFromPropertyKey(is.parameter)),
|
|
2192
|
+
parserValue: compileConstructorDefault(is.type)
|
|
2193
|
+
}))
|
|
2194
|
+
: undefined
|
|
2165
2195
|
}
|
|
2166
2196
|
|
|
2197
|
+
const record = input as Record<PropertyKey, unknown>
|
|
2167
2198
|
const out: Record<PropertyKey, unknown> = {}
|
|
2168
2199
|
const state = {
|
|
2169
2200
|
ast,
|
|
2170
|
-
|
|
2171
|
-
input,
|
|
2201
|
+
input: record,
|
|
2172
2202
|
out,
|
|
2173
2203
|
issues: undefined as Arr.NonEmptyArray<SchemaIssue.Issue> | undefined,
|
|
2174
2204
|
options
|
|
@@ -2181,14 +2211,15 @@ export class Objects extends Base {
|
|
|
2181
2211
|
// handle excess properties
|
|
2182
2212
|
// ---------------------------------------------
|
|
2183
2213
|
let inputKeys: Array<PropertyKey> | undefined
|
|
2184
|
-
if (
|
|
2185
|
-
|
|
2214
|
+
if (!indexCount && (onExcessPropertyError || onExcessPropertyPreserve)) {
|
|
2215
|
+
expectedKeysSet ??= new Set(expectedKeys)
|
|
2216
|
+
inputKeys = Reflect.ownKeys(record)
|
|
2186
2217
|
for (let i = 0; i < inputKeys.length; i++) {
|
|
2187
2218
|
const key = inputKeys[i]
|
|
2188
2219
|
if (!expectedKeysSet.has(key)) {
|
|
2189
2220
|
// key is unexpected
|
|
2190
2221
|
if (onExcessPropertyError) {
|
|
2191
|
-
const issue = new SchemaIssue.Pointer([key], new SchemaIssue.UnexpectedKey(ast
|
|
2222
|
+
const issue = new SchemaIssue.Pointer([key], new SchemaIssue.UnexpectedKey(ast))
|
|
2192
2223
|
if (errorsAllOption) {
|
|
2193
2224
|
if (state.issues) {
|
|
2194
2225
|
state.issues.push(issue)
|
|
@@ -2197,11 +2228,13 @@ export class Objects extends Base {
|
|
|
2197
2228
|
}
|
|
2198
2229
|
continue
|
|
2199
2230
|
} else {
|
|
2200
|
-
return yield* Effect.fail(
|
|
2231
|
+
return yield* Effect.fail(
|
|
2232
|
+
new SchemaIssue.Composite(ast, [issue])
|
|
2233
|
+
)
|
|
2201
2234
|
}
|
|
2202
2235
|
} else {
|
|
2203
2236
|
// preserve key
|
|
2204
|
-
InternalRecord.assignProperty(out, key,
|
|
2237
|
+
InternalRecord.assignProperty(out, key, record[key])
|
|
2205
2238
|
}
|
|
2206
2239
|
}
|
|
2207
2240
|
}
|
|
@@ -2212,20 +2245,34 @@ export class Objects extends Base {
|
|
|
2212
2245
|
// ---------------------------------------------
|
|
2213
2246
|
// handle property signatures
|
|
2214
2247
|
// ---------------------------------------------
|
|
2215
|
-
|
|
2216
|
-
|
|
2248
|
+
if (hasProperties) {
|
|
2249
|
+
const eff = parseProperties(state, properties!, concurrency)
|
|
2250
|
+
if (eff) yield* eff
|
|
2251
|
+
}
|
|
2217
2252
|
|
|
2218
2253
|
// ---------------------------------------------
|
|
2219
2254
|
// handle index signatures
|
|
2220
2255
|
// ---------------------------------------------
|
|
2221
|
-
if (
|
|
2222
|
-
const keyPairs = Arr.empty<[PropertyKey, IndexSignature]>()
|
|
2256
|
+
if (indexCount && !concurrency) {
|
|
2223
2257
|
for (let i = 0; i < indexCount; i++) {
|
|
2224
|
-
const
|
|
2225
|
-
const
|
|
2258
|
+
const index = indexes![i]
|
|
2259
|
+
const parse = index.is.parameter === string ? parseStringIndex : parseIndex
|
|
2260
|
+
const keys = index.is.parameter === string
|
|
2261
|
+
? Object.keys(record)
|
|
2262
|
+
: getIndexSignatureKeys(record, index.is.parameter, options)
|
|
2226
2263
|
for (let j = 0; j < keys.length; j++) {
|
|
2227
|
-
const
|
|
2228
|
-
|
|
2264
|
+
const eff = parse(state, keys[j], index)
|
|
2265
|
+
if (!effectIsExit(eff)) yield* eff
|
|
2266
|
+
else if (eff._tag === "Failure") return yield* eff as Exit.Exit<never, SchemaIssue.Issue>
|
|
2267
|
+
}
|
|
2268
|
+
}
|
|
2269
|
+
} else if (parseIndexes) {
|
|
2270
|
+
const keyPairs = Arr.empty<[PropertyKey, Index]>()
|
|
2271
|
+
for (let i = 0; i < indexCount; i++) {
|
|
2272
|
+
const index = indexes![i]
|
|
2273
|
+
const keys = getIndexSignatureKeys(record, index.is.parameter, options)
|
|
2274
|
+
for (let j = 0; j < keys.length; j++) {
|
|
2275
|
+
keyPairs.push([keys[j], index])
|
|
2229
2276
|
}
|
|
2230
2277
|
}
|
|
2231
2278
|
const eff = parseIndexes(state, keyPairs, concurrency)
|
|
@@ -2233,26 +2280,27 @@ export class Objects extends Base {
|
|
|
2233
2280
|
}
|
|
2234
2281
|
|
|
2235
2282
|
if (state.issues) {
|
|
2236
|
-
return yield* Effect.fail(
|
|
2283
|
+
return yield* Effect.fail(
|
|
2284
|
+
new SchemaIssue.Composite(ast, state.issues)
|
|
2285
|
+
)
|
|
2237
2286
|
}
|
|
2238
2287
|
if (options.propertyOrder === "original") {
|
|
2239
2288
|
// preserve input keys order
|
|
2240
|
-
const keys = (inputKeys ?? Reflect.ownKeys(
|
|
2289
|
+
const keys = (inputKeys ?? Reflect.ownKeys(record)).concat(expectedKeys)
|
|
2241
2290
|
const preserved: Record<PropertyKey, unknown> = {}
|
|
2242
2291
|
for (const key of keys) {
|
|
2243
2292
|
if (Object.hasOwn(out, key)) {
|
|
2244
2293
|
InternalRecord.assignProperty(preserved, key, out[key])
|
|
2245
2294
|
}
|
|
2246
2295
|
}
|
|
2247
|
-
return
|
|
2296
|
+
return preserved
|
|
2248
2297
|
}
|
|
2249
|
-
return
|
|
2298
|
+
return out
|
|
2250
2299
|
})
|
|
2251
2300
|
}
|
|
2252
2301
|
private _rebuild(
|
|
2253
2302
|
recur: (ast: AST) => AST,
|
|
2254
2303
|
recurParameter: (ast: AST) => AST,
|
|
2255
|
-
flipMerge: boolean,
|
|
2256
2304
|
checks: Checks | undefined,
|
|
2257
2305
|
encodingChecks: Checks | undefined
|
|
2258
2306
|
): Objects {
|
|
@@ -2264,10 +2312,9 @@ export class Objects extends Base {
|
|
|
2264
2312
|
const indexes = mapOrSame(this.indexSignatures, (is) => {
|
|
2265
2313
|
const p = recurParameter(is.parameter)
|
|
2266
2314
|
const t = recur(is.type)
|
|
2267
|
-
|
|
2268
|
-
return p === is.parameter && t === is.type && merge === is.merge
|
|
2315
|
+
return p === is.parameter && t === is.type
|
|
2269
2316
|
? is
|
|
2270
|
-
: new IndexSignature(p, t
|
|
2317
|
+
: new IndexSignature(p, t)
|
|
2271
2318
|
})
|
|
2272
2319
|
|
|
2273
2320
|
return props === this.propertySignatures && indexes === this.indexSignatures && checks === this.checks &&
|
|
@@ -2285,11 +2332,11 @@ export class Objects extends Base {
|
|
|
2285
2332
|
}
|
|
2286
2333
|
/** @internal */
|
|
2287
2334
|
flip(recur: (ast: AST) => AST): AST {
|
|
2288
|
-
return this._rebuild(recur, recur,
|
|
2335
|
+
return this._rebuild(recur, recur, this.encodingChecks, this.checks)
|
|
2289
2336
|
}
|
|
2290
2337
|
/** @internal */
|
|
2291
2338
|
recur(recur: (ast: AST) => AST, recurParameter: (ast: AST) => AST = recur): AST {
|
|
2292
|
-
return this._rebuild(recur, recurParameter,
|
|
2339
|
+
return this._rebuild(recur, recurParameter, this.checks, this.encodingChecks)
|
|
2293
2340
|
}
|
|
2294
2341
|
/** @internal */
|
|
2295
2342
|
getExpected(): string {
|
|
@@ -2298,42 +2345,41 @@ export class Objects extends Base {
|
|
|
2298
2345
|
}
|
|
2299
2346
|
}
|
|
2300
2347
|
|
|
2348
|
+
type ObjectParserState = {
|
|
2349
|
+
readonly ast: Objects
|
|
2350
|
+
readonly input: Record<PropertyKey, unknown>
|
|
2351
|
+
readonly options: ParseOptions
|
|
2352
|
+
readonly out: Record<PropertyKey, unknown>
|
|
2353
|
+
issues: Array<SchemaIssue.Issue> | undefined
|
|
2354
|
+
}
|
|
2355
|
+
|
|
2301
2356
|
type ParsedProperty = {
|
|
2302
|
-
readonly ps: PropertySignature | IndexSignature
|
|
2303
2357
|
readonly parser: SchemaParser.Parser
|
|
2304
2358
|
readonly name: PropertyKey
|
|
2305
2359
|
readonly type: AST
|
|
2306
2360
|
}
|
|
2307
2361
|
|
|
2308
|
-
const parseProperties = iterateEager<{
|
|
2309
|
-
|
|
2310
|
-
|
|
2311
|
-
|
|
2312
|
-
|
|
2313
|
-
|
|
2314
|
-
|
|
2315
|
-
}, ParsedProperty>()({
|
|
2316
|
-
onItem(
|
|
2317
|
-
s: {
|
|
2318
|
-
readonly oinput: Option.Option<unknown>
|
|
2319
|
-
readonly input: Record<PropertyKey, unknown>
|
|
2320
|
-
readonly options: ParseOptions
|
|
2321
|
-
readonly out: Record<PropertyKey, unknown>
|
|
2322
|
-
issues: Array<SchemaIssue.Issue> | undefined
|
|
2323
|
-
},
|
|
2324
|
-
p
|
|
2325
|
-
) {
|
|
2326
|
-
const value: Option.Option<unknown> = Object.hasOwn(s.input, p.name)
|
|
2327
|
-
? Option.some(s.input[p.name])
|
|
2328
|
-
: Option.none()
|
|
2362
|
+
const parseProperties = iterateEager<ObjectParserState, ParsedProperty>()({
|
|
2363
|
+
onItem(s, p) {
|
|
2364
|
+
if (!Object.hasOwn(s.input, p.name)) {
|
|
2365
|
+
return p.parser(InternalParser.missing, s.options)
|
|
2366
|
+
}
|
|
2367
|
+
const value = s.input[p.name]
|
|
2368
|
+
InternalRecord.assignProperty(s.out, p.name, value)
|
|
2329
2369
|
return p.parser(value, s.options)
|
|
2330
2370
|
},
|
|
2331
2371
|
step(s, p, exit) {
|
|
2332
2372
|
if (exit._tag === "Failure") {
|
|
2333
2373
|
return wrapPropertyKeyIssue(s, s.ast, p.name, exit)
|
|
2334
|
-
}
|
|
2335
|
-
|
|
2336
|
-
|
|
2374
|
+
}
|
|
2375
|
+
if (exit === InternalParser.sameExit) return
|
|
2376
|
+
const value = (exit as InternalParser.Success<unknown, SchemaIssue.Issue>)[InternalParser.args]
|
|
2377
|
+
if (value !== InternalParser.missing) {
|
|
2378
|
+
InternalRecord.assignProperty(s.out, p.name, value)
|
|
2379
|
+
return
|
|
2380
|
+
}
|
|
2381
|
+
delete s.out[p.name]
|
|
2382
|
+
if (!isOptional(p.type)) {
|
|
2337
2383
|
const issue = new SchemaIssue.Pointer([p.name], new SchemaIssue.MissingKey(p.type.context?.annotations))
|
|
2338
2384
|
if (s.options.errors === "all") {
|
|
2339
2385
|
if (s.issues) s.issues.push(issue)
|
|
@@ -2341,7 +2387,7 @@ const parseProperties = iterateEager<{
|
|
|
2341
2387
|
return
|
|
2342
2388
|
} else {
|
|
2343
2389
|
return Exit.fail(
|
|
2344
|
-
new SchemaIssue.Composite(s.ast,
|
|
2390
|
+
new SchemaIssue.Composite(s.ast, [issue])
|
|
2345
2391
|
)
|
|
2346
2392
|
}
|
|
2347
2393
|
}
|
|
@@ -2434,6 +2480,21 @@ export type Sentinel = {
|
|
|
2434
2480
|
readonly literal: LiteralValue | symbol
|
|
2435
2481
|
}
|
|
2436
2482
|
|
|
2483
|
+
const toCandidate = memoize((ast: AST): AST => {
|
|
2484
|
+
while (true) {
|
|
2485
|
+
if (isSuspend(ast)) return unknown
|
|
2486
|
+
const encoding = ast.encoding
|
|
2487
|
+
if (!encoding) {
|
|
2488
|
+
// Index signature parameters do not participate in union selection.
|
|
2489
|
+
return (ast as any).recur?.(toCandidate, identity) ?? ast
|
|
2490
|
+
}
|
|
2491
|
+
if (
|
|
2492
|
+
encoding.some((link) => link.transformation._tag === "Middleware" && link.transformation.decode !== identity)
|
|
2493
|
+
) return unknown
|
|
2494
|
+
ast = encoding[encoding.length - 1].to
|
|
2495
|
+
}
|
|
2496
|
+
})
|
|
2497
|
+
|
|
2437
2498
|
function getCandidateTypes(ast: AST): ReadonlyArray<Type> {
|
|
2438
2499
|
switch (ast._tag) {
|
|
2439
2500
|
case "Null":
|
|
@@ -2505,63 +2566,100 @@ export function collectSentinels(ast: AST): Array<Sentinel> {
|
|
|
2505
2566
|
return []
|
|
2506
2567
|
})
|
|
2507
2568
|
case "Arrays":
|
|
2508
|
-
return ast.elements.flatMap((e, i) => {
|
|
2509
|
-
|
|
2510
|
-
|
|
2511
|
-
|
|
2569
|
+
return ast.elements.flatMap((e, i): Array<Sentinel> => {
|
|
2570
|
+
if (!isOptional(e)) {
|
|
2571
|
+
if (isLiteral(e)) {
|
|
2572
|
+
return [{ key: i, literal: e.literal }]
|
|
2573
|
+
}
|
|
2574
|
+
if (isUniqueSymbol(e)) {
|
|
2575
|
+
return [{ key: i, literal: e.symbol }]
|
|
2576
|
+
}
|
|
2577
|
+
}
|
|
2578
|
+
return []
|
|
2512
2579
|
})
|
|
2513
2580
|
case "Suspend":
|
|
2514
2581
|
return collectSentinels(ast.thunk())
|
|
2515
2582
|
}
|
|
2516
2583
|
}
|
|
2517
2584
|
|
|
2518
|
-
type CandidateIndex =
|
|
2519
|
-
|
|
2520
|
-
|
|
2521
|
-
|
|
2522
|
-
}
|
|
2585
|
+
type CandidateIndex =
|
|
2586
|
+
| ((input: any, isConstructor: boolean) => ReadonlyArray<AST>)
|
|
2587
|
+
| {
|
|
2588
|
+
bySentinel?: Map<PropertyKey, Map<LiteralValue | symbol, Array<number>>>
|
|
2589
|
+
otherwise?: { [K in Type]?: Array<number> }
|
|
2590
|
+
}
|
|
2523
2591
|
|
|
2524
2592
|
const candidateIndexCache = new WeakMap<ReadonlyArray<AST>, CandidateIndex>()
|
|
2593
|
+
const emptyCandidates: ReadonlyArray<never> = Object.freeze([])
|
|
2525
2594
|
|
|
2526
2595
|
function getIndex(types: ReadonlyArray<AST>): CandidateIndex {
|
|
2527
2596
|
let idx = candidateIndexCache.get(types)
|
|
2528
2597
|
if (idx) return idx
|
|
2529
2598
|
|
|
2530
2599
|
idx = {}
|
|
2600
|
+
let literalCandidates: Map<LiteralValue | symbol, Array<AST>> | null | undefined
|
|
2531
2601
|
for (let i = 0; i < types.length; i++) {
|
|
2532
2602
|
const a = types[i]
|
|
2533
|
-
const encoded =
|
|
2603
|
+
const encoded = toCandidate(a)
|
|
2534
2604
|
if (isNever(encoded)) continue
|
|
2535
2605
|
|
|
2536
|
-
|
|
2537
|
-
|
|
2606
|
+
if (literalCandidates !== null) {
|
|
2607
|
+
if (isLiteral(encoded) || isUniqueSymbol(encoded)) {
|
|
2608
|
+
literalCandidates ??= new Map()
|
|
2609
|
+
const literal = isLiteral(encoded) ? encoded.literal : encoded.symbol
|
|
2610
|
+
let arr = literalCandidates.get(literal)
|
|
2611
|
+
if (!arr) literalCandidates.set(literal, arr = [])
|
|
2612
|
+
arr.push(a)
|
|
2613
|
+
} else {
|
|
2614
|
+
literalCandidates = null
|
|
2615
|
+
}
|
|
2616
|
+
}
|
|
2538
2617
|
|
|
2539
|
-
|
|
2540
|
-
idx.byType ??= {}
|
|
2541
|
-
for (const t of candidateTypes) (idx.byType[t] ??= []).push(i)
|
|
2618
|
+
const sentinels = collectSentinels(encoded)
|
|
2542
2619
|
|
|
2543
|
-
if (sentinels.length
|
|
2620
|
+
if (sentinels.length) { // discriminated variants
|
|
2544
2621
|
idx.bySentinel ??= new Map()
|
|
2545
2622
|
for (const { key, literal } of sentinels) {
|
|
2546
2623
|
let m = idx.bySentinel.get(key)
|
|
2547
2624
|
if (!m) idx.bySentinel.set(key, m = new Map())
|
|
2548
2625
|
let arr = m.get(literal)
|
|
2549
2626
|
if (!arr) m.set(literal, arr = [])
|
|
2550
|
-
arr.push(i)
|
|
2627
|
+
if (arr[arr.length - 1] !== i) arr.push(i)
|
|
2551
2628
|
}
|
|
2552
2629
|
} else { // non-discriminated
|
|
2553
2630
|
idx.otherwise ??= {}
|
|
2631
|
+
const candidateTypes = getCandidateTypes(encoded)
|
|
2554
2632
|
for (const t of candidateTypes) (idx.otherwise[t] ??= []).push(i)
|
|
2555
2633
|
}
|
|
2556
2634
|
}
|
|
2557
2635
|
|
|
2636
|
+
if (literalCandidates) {
|
|
2637
|
+
literalCandidates.forEach(Object.freeze)
|
|
2638
|
+
idx = (input) => literalCandidates.get(input) ?? emptyCandidates
|
|
2639
|
+
} else if (idx.bySentinel?.size === 1 && !idx.otherwise) {
|
|
2640
|
+
for (const [key, byValue] of idx.bySentinel) {
|
|
2641
|
+
const candidates = byValue as unknown as Map<LiteralValue | symbol, ReadonlyArray<AST>>
|
|
2642
|
+
for (const [literal, indexes] of byValue) {
|
|
2643
|
+
candidates.set(literal, Object.freeze(indexes.map((index) => types[index])))
|
|
2644
|
+
}
|
|
2645
|
+
idx = (input, isConstructor) => {
|
|
2646
|
+
if (Predicate.isObjectKeyword(input)) {
|
|
2647
|
+
const value = Object.hasOwn(input, key) ? (input as any)[key] : undefined
|
|
2648
|
+
if (value !== undefined) return candidates.get(value) ?? emptyCandidates
|
|
2649
|
+
if (isConstructor) return types
|
|
2650
|
+
}
|
|
2651
|
+
return emptyCandidates
|
|
2652
|
+
}
|
|
2653
|
+
}
|
|
2654
|
+
}
|
|
2655
|
+
|
|
2558
2656
|
candidateIndexCache.set(types, idx)
|
|
2559
2657
|
return idx
|
|
2560
2658
|
}
|
|
2561
2659
|
|
|
2562
2660
|
function filterLiterals(input: any) {
|
|
2563
2661
|
return (ast: AST) => {
|
|
2564
|
-
const encoded =
|
|
2662
|
+
const encoded = toCandidate(ast)
|
|
2565
2663
|
return encoded._tag === "Literal" ?
|
|
2566
2664
|
encoded.literal === input
|
|
2567
2665
|
: encoded._tag === "UniqueSymbol" ?
|
|
@@ -2576,30 +2674,41 @@ function filterLiterals(input: any) {
|
|
|
2576
2674
|
*
|
|
2577
2675
|
* @internal
|
|
2578
2676
|
*/
|
|
2579
|
-
export function getCandidates(
|
|
2677
|
+
export function getCandidates(
|
|
2678
|
+
input: any,
|
|
2679
|
+
types: ReadonlyArray<AST>,
|
|
2680
|
+
isConstructor = false
|
|
2681
|
+
): ReadonlyArray<AST> {
|
|
2580
2682
|
const idx = getIndex(types)
|
|
2683
|
+
if (typeof idx === "function") return idx(input, isConstructor)
|
|
2684
|
+
|
|
2581
2685
|
const runtimeType: Type = input === null ? "null" : Array.isArray(input) ? "array" : typeof input
|
|
2582
2686
|
|
|
2583
2687
|
// 1. Try sentinel-based dispatch (most selective)
|
|
2584
2688
|
if (idx.bySentinel) {
|
|
2585
|
-
const base = idx.otherwise?.[runtimeType] ??
|
|
2586
|
-
if (
|
|
2689
|
+
const base = idx.otherwise?.[runtimeType] ?? emptyCandidates
|
|
2690
|
+
if (Predicate.isObjectKeyword(input)) {
|
|
2587
2691
|
const selected = new Set(base)
|
|
2588
2692
|
for (const [k, m] of idx.bySentinel) {
|
|
2589
|
-
|
|
2590
|
-
|
|
2693
|
+
const value = Object.hasOwn(input, k) ? (input as any)[k] : undefined
|
|
2694
|
+
if (value !== undefined) {
|
|
2695
|
+
const match = m.get(value)
|
|
2591
2696
|
if (match) {
|
|
2592
2697
|
for (const candidate of match) selected.add(candidate)
|
|
2593
2698
|
}
|
|
2699
|
+
} else if (isConstructor) {
|
|
2700
|
+
for (const indexes of m.values()) {
|
|
2701
|
+
for (const candidate of indexes) selected.add(candidate)
|
|
2702
|
+
}
|
|
2594
2703
|
}
|
|
2595
2704
|
}
|
|
2596
|
-
return Array.from(selected).sort((a, b) => a - b).map((i) => types[i])
|
|
2705
|
+
return Array.from(selected).sort((a, b) => a - b).map((i) => types[i])
|
|
2597
2706
|
}
|
|
2598
2707
|
return base.map((i) => types[i])
|
|
2599
2708
|
}
|
|
2600
2709
|
|
|
2601
2710
|
// 2. Fallback: runtime-type dispatch only
|
|
2602
|
-
return (idx.
|
|
2711
|
+
return (idx.otherwise?.[runtimeType] ?? emptyCandidates).map((i) => types[i]).filter(filterLiterals(input))
|
|
2603
2712
|
}
|
|
2604
2713
|
|
|
2605
2714
|
/**
|
|
@@ -2617,15 +2726,14 @@ export function getCandidates(input: any, types: ReadonlyArray<AST>): ReadonlyAr
|
|
|
2617
2726
|
*
|
|
2618
2727
|
* **Example** (Inspecting a union AST)
|
|
2619
2728
|
*
|
|
2620
|
-
* ```ts
|
|
2729
|
+
* ```ts import.meta.vitest
|
|
2621
2730
|
* import { Schema, SchemaAST } from "effect"
|
|
2622
2731
|
*
|
|
2623
2732
|
* const schema = Schema.Union([Schema.String, Schema.Number])
|
|
2624
2733
|
* const ast = schema.ast
|
|
2625
2734
|
*
|
|
2626
2735
|
* if (SchemaAST.isUnion(ast)) {
|
|
2627
|
-
*
|
|
2628
|
-
* console.log(ast.mode) // "anyOf"
|
|
2736
|
+
* [ast.types.length, ast.mode] // => [2, "anyOf"]
|
|
2629
2737
|
* }
|
|
2630
2738
|
* ```
|
|
2631
2739
|
*
|
|
@@ -2654,38 +2762,45 @@ export class Union<A extends AST = AST> extends Base {
|
|
|
2654
2762
|
this.encodingChecks = encodingChecks
|
|
2655
2763
|
}
|
|
2656
2764
|
/** @internal */
|
|
2657
|
-
getParser(
|
|
2765
|
+
getParser(
|
|
2766
|
+
compile: SchemaParser.Compiler,
|
|
2767
|
+
compileConstructorDefault?: SchemaParser.Compiler
|
|
2768
|
+
): SchemaParser.Parser {
|
|
2658
2769
|
// oxlint-disable-next-line @typescript-eslint/no-this-alias
|
|
2659
2770
|
const ast = this
|
|
2660
2771
|
|
|
2661
|
-
return (
|
|
2662
|
-
if (
|
|
2663
|
-
return
|
|
2772
|
+
return (input, options) => {
|
|
2773
|
+
if (input === InternalParser.missing) {
|
|
2774
|
+
return InternalParser.missingExit
|
|
2775
|
+
}
|
|
2776
|
+
const candidates = getCandidates(input, ast.types, compileConstructorDefault !== undefined)
|
|
2777
|
+
|
|
2778
|
+
if (candidates.length === 1) {
|
|
2779
|
+
const result = compile(candidates[0])(input, options)
|
|
2780
|
+
if ((result as Exit.Exit<unknown, SchemaIssue.Issue>)._tag === "Success") return result
|
|
2781
|
+
return effectIsExit(result)
|
|
2782
|
+
? failSingleUnionCandidate(ast, (result as Exit.Failure<unknown, SchemaIssue.Issue>).cause)
|
|
2783
|
+
: Effect.catchCause(result, (cause) => failSingleUnionCandidate(ast, cause))
|
|
2664
2784
|
}
|
|
2665
|
-
const input = oinput.value
|
|
2666
|
-
const candidates = getCandidates(input, ast.types)
|
|
2667
2785
|
|
|
2668
2786
|
const state = {
|
|
2669
2787
|
ast,
|
|
2670
|
-
|
|
2671
|
-
oinput,
|
|
2788
|
+
compile,
|
|
2672
2789
|
input,
|
|
2673
2790
|
out: undefined,
|
|
2674
|
-
successes: [],
|
|
2791
|
+
successes: ast.mode === "oneOf" ? [] : undefined,
|
|
2675
2792
|
issues: undefined as Arr.NonEmptyArray<SchemaIssue.Issue> | undefined,
|
|
2676
2793
|
options
|
|
2677
2794
|
}
|
|
2678
2795
|
const concurrency = resolveConcurrency(options?.concurrency)
|
|
2679
2796
|
const eff = parseUnion(state, candidates, concurrency ? { ...concurrency, orderedStep: true } : undefined)
|
|
2680
2797
|
if (!eff) {
|
|
2681
|
-
return state.out
|
|
2682
|
-
? Effect.succeed(state.out)
|
|
2683
|
-
: Effect.fail(new SchemaIssue.AnyOf(ast, input, state.issues ?? []))
|
|
2798
|
+
return state.out ?? Effect.fail(new SchemaIssue.AnyOf(ast, state.issues ?? []))
|
|
2684
2799
|
}
|
|
2685
|
-
return Effect.
|
|
2686
|
-
return state.out
|
|
2687
|
-
? Effect.succeed(
|
|
2688
|
-
: Effect.fail(new SchemaIssue.AnyOf(ast,
|
|
2800
|
+
return Effect.flatMapEager(eff, (_) => {
|
|
2801
|
+
return state.out === InternalParser.sameExit
|
|
2802
|
+
? Effect.succeed(input)
|
|
2803
|
+
: state.out ?? Effect.fail(new SchemaIssue.AnyOf(ast, state.issues ?? []))
|
|
2689
2804
|
})
|
|
2690
2805
|
}
|
|
2691
2806
|
}
|
|
@@ -2750,19 +2865,28 @@ export class Union<A extends AST = AST> extends Base {
|
|
|
2750
2865
|
}
|
|
2751
2866
|
}
|
|
2752
2867
|
|
|
2868
|
+
function failSingleUnionCandidate(
|
|
2869
|
+
ast: Union,
|
|
2870
|
+
cause: Cause.Cause<SchemaIssue.Issue>
|
|
2871
|
+
) {
|
|
2872
|
+
const issue = InternalSchemaCause.getSchemaIssue(cause)
|
|
2873
|
+
return issue
|
|
2874
|
+
? Exit.fail(new SchemaIssue.AnyOf(ast, [issue]))
|
|
2875
|
+
: Exit.failCause(cause)
|
|
2876
|
+
}
|
|
2877
|
+
|
|
2753
2878
|
const parseUnion = iterateEager<{
|
|
2754
|
-
readonly
|
|
2879
|
+
readonly compile: (ast: AST) => SchemaParser.Parser
|
|
2755
2880
|
readonly ast: Union
|
|
2756
|
-
readonly oinput: Option.Option<unknown>
|
|
2757
2881
|
readonly input: unknown
|
|
2758
2882
|
readonly options: ParseOptions
|
|
2759
|
-
out:
|
|
2760
|
-
successes: Array<AST>
|
|
2883
|
+
out: Exit.Success<unknown, SchemaIssue.Issue> | undefined
|
|
2884
|
+
readonly successes: Array<AST> | undefined
|
|
2761
2885
|
issues: Array<SchemaIssue.Issue> | undefined
|
|
2762
2886
|
}, AST>()({
|
|
2763
2887
|
onItem(s, ast) {
|
|
2764
|
-
const parser = s.
|
|
2765
|
-
return parser(s.
|
|
2888
|
+
const parser = s.compile(ast)
|
|
2889
|
+
return parser(s.input, s.options)
|
|
2766
2890
|
},
|
|
2767
2891
|
step(s, candidate, exit) {
|
|
2768
2892
|
if (exit._tag === "Failure") {
|
|
@@ -2773,13 +2897,14 @@ const parseUnion = iterateEager<{
|
|
|
2773
2897
|
if (s.issues) s.issues.push(issue)
|
|
2774
2898
|
else s.issues = [issue]
|
|
2775
2899
|
} else {
|
|
2776
|
-
if (s.out && s.
|
|
2900
|
+
if (s.out && s.successes) {
|
|
2777
2901
|
s.successes.push(candidate)
|
|
2778
|
-
return Exit.fail(new SchemaIssue.OneOf(s.ast, s.
|
|
2902
|
+
return Exit.fail(new SchemaIssue.OneOf(s.ast, s.successes))
|
|
2779
2903
|
}
|
|
2780
|
-
s.out = exit
|
|
2781
|
-
s.successes
|
|
2782
|
-
|
|
2904
|
+
s.out = exit
|
|
2905
|
+
if (s.successes) {
|
|
2906
|
+
s.successes.push(candidate)
|
|
2907
|
+
} else {
|
|
2783
2908
|
return Exit.void
|
|
2784
2909
|
}
|
|
2785
2910
|
}
|
|
@@ -2825,7 +2950,7 @@ export function memoizeThunk<A>(f: () => A): () => A {
|
|
|
2825
2950
|
*
|
|
2826
2951
|
* **Example** (Defining recursive schema ASTs)
|
|
2827
2952
|
*
|
|
2828
|
-
* ```ts
|
|
2953
|
+
* ```ts import.meta.vitest
|
|
2829
2954
|
* import { Schema, SchemaAST } from "effect"
|
|
2830
2955
|
*
|
|
2831
2956
|
* interface Category {
|
|
@@ -2838,7 +2963,7 @@ export function memoizeThunk<A>(f: () => A): () => A {
|
|
|
2838
2963
|
* children: Schema.Array(Schema.suspend((): Schema.Codec<Category> => Category))
|
|
2839
2964
|
* })
|
|
2840
2965
|
*
|
|
2841
|
-
* //
|
|
2966
|
+
* SchemaAST.isObjects(Category.ast) // => true
|
|
2842
2967
|
* ```
|
|
2843
2968
|
*
|
|
2844
2969
|
* @see {@link isSuspend}
|
|
@@ -2856,15 +2981,16 @@ export class Suspend extends Base {
|
|
|
2856
2981
|
encoding?: Encoding,
|
|
2857
2982
|
context?: Context
|
|
2858
2983
|
) {
|
|
2859
|
-
if (checks
|
|
2984
|
+
if (checks) {
|
|
2860
2985
|
throw new Error("Cannot add checks to Suspend")
|
|
2861
2986
|
}
|
|
2862
2987
|
super(annotations, undefined, encoding, context)
|
|
2863
2988
|
this.thunk = memoizeThunk(thunk)
|
|
2864
2989
|
}
|
|
2865
2990
|
/** @internal */
|
|
2866
|
-
getParser(
|
|
2867
|
-
|
|
2991
|
+
getParser(compile: SchemaParser.Compiler): SchemaParser.Parser {
|
|
2992
|
+
let parser: SchemaParser.Parser
|
|
2993
|
+
return (input, options) => (parser ??= compile(this.thunk()))(input, options)
|
|
2868
2994
|
}
|
|
2869
2995
|
/** @internal */
|
|
2870
2996
|
recur(recur: (ast: AST) => AST) {
|
|
@@ -2999,7 +3125,7 @@ export function makeFilter<T>(
|
|
|
2999
3125
|
aborted: boolean = false
|
|
3000
3126
|
): Filter<T> {
|
|
3001
3127
|
return new Filter(
|
|
3002
|
-
(input, ast, options) => SchemaIssue.
|
|
3128
|
+
(input, ast, options) => SchemaIssue.normalizeFilterOutput(ast, filter(input, ast, options)),
|
|
3003
3129
|
annotations,
|
|
3004
3130
|
aborted
|
|
3005
3131
|
)
|
|
@@ -3011,7 +3137,7 @@ export function makeFilterByGuard<T extends E, E>(
|
|
|
3011
3137
|
annotations?: Schema.Annotations.Filter
|
|
3012
3138
|
): Filter<any> {
|
|
3013
3139
|
return new Filter(
|
|
3014
|
-
(input: E) => is(input) ? undefined : new SchemaIssue.InvalidValue(
|
|
3140
|
+
(input: E) => is(input) ? undefined : new SchemaIssue.InvalidValue(),
|
|
3015
3141
|
annotations,
|
|
3016
3142
|
true // after a guard, we always want to abort
|
|
3017
3143
|
)
|
|
@@ -3054,21 +3180,25 @@ export const finite = appendChecks(number, [isFinite()])
|
|
|
3054
3180
|
* **Details**
|
|
3055
3181
|
*
|
|
3056
3182
|
* The filter can be used with `Schema.filter` or attached directly to a
|
|
3057
|
-
* `String` AST node through checks. The regular expression
|
|
3058
|
-
*
|
|
3183
|
+
* `String` AST node through checks. The regular expression is cloned and its
|
|
3184
|
+
* `lastIndex` is reset before each test, so global and sticky expressions are
|
|
3185
|
+
* deterministic and the provided regular expression is not mutated. The
|
|
3186
|
+
* regular expression source is stored in annotations for serialization and
|
|
3187
|
+
* arbitrary generation.
|
|
3059
3188
|
*
|
|
3060
3189
|
* **Gotchas**
|
|
3061
3190
|
*
|
|
3062
|
-
*
|
|
3063
|
-
*
|
|
3064
|
-
* `y` flag.
|
|
3191
|
+
* When deriving an arbitrary, only `regExp.source` is used. Regular expression
|
|
3192
|
+
* flags are ignored because fast-check does not support them.
|
|
3065
3193
|
*
|
|
3066
3194
|
* **Example** (Validating an email pattern)
|
|
3067
3195
|
*
|
|
3068
|
-
* ```ts
|
|
3196
|
+
* ```ts import.meta.vitest
|
|
3069
3197
|
* import { SchemaAST } from "effect"
|
|
3070
3198
|
*
|
|
3071
3199
|
* const emailFilter = SchemaAST.isPattern(/^[^@]+@[^@]+$/)
|
|
3200
|
+
* emailFilter.run("alice@example.com", SchemaAST.string, {}) // => undefined
|
|
3201
|
+
* emailFilter.run("invalid", SchemaAST.string, {})?._tag // => "InvalidValue"
|
|
3072
3202
|
* ```
|
|
3073
3203
|
*
|
|
3074
3204
|
* @see {@link Filter}
|
|
@@ -3077,8 +3207,12 @@ export const finite = appendChecks(number, [isFinite()])
|
|
|
3077
3207
|
*/
|
|
3078
3208
|
export function isPattern(regExp: globalThis.RegExp, annotations?: Schema.Annotations.Filter) {
|
|
3079
3209
|
const source = regExp.source
|
|
3210
|
+
const pattern = new globalThis.RegExp(source, regExp.flags)
|
|
3080
3211
|
return makeFilter(
|
|
3081
|
-
(s: string) =>
|
|
3212
|
+
(s: string) => {
|
|
3213
|
+
pattern.lastIndex = 0
|
|
3214
|
+
return pattern.test(s)
|
|
3215
|
+
},
|
|
3082
3216
|
{
|
|
3083
3217
|
expected: `a string matching the RegExp ${source}`,
|
|
3084
3218
|
representation: {
|
|
@@ -3145,7 +3279,7 @@ export function annotate<A extends AST>(ast: A, annotations: Schema.Annotations.
|
|
|
3145
3279
|
|
|
3146
3280
|
/** @internal */
|
|
3147
3281
|
export function replaceChecks<A extends AST>(ast: A, checks: Checks | undefined): A {
|
|
3148
|
-
if (ast._tag === "Suspend" && checks
|
|
3282
|
+
if (ast._tag === "Suspend" && checks) {
|
|
3149
3283
|
throw new Error("Cannot add checks to Suspend")
|
|
3150
3284
|
}
|
|
3151
3285
|
if (ast.checks === checks) {
|
|
@@ -3252,7 +3386,7 @@ export function annotateKey<A extends AST>(ast: A, annotations: Schema.Annotatio
|
|
|
3252
3386
|
new Context(
|
|
3253
3387
|
ast.context.isOptional,
|
|
3254
3388
|
ast.context.isMutable,
|
|
3255
|
-
ast.context.
|
|
3389
|
+
ast.context.constructorDefault,
|
|
3256
3390
|
{ ...ast.context.annotations, ...annotations }
|
|
3257
3391
|
) :
|
|
3258
3392
|
new Context(false, false, undefined, annotations)
|
|
@@ -3278,7 +3412,7 @@ const optionalKeyLastLink = applyToLastLink(optionalKey)
|
|
|
3278
3412
|
export function optionalKey<A extends AST>(ast: A): A {
|
|
3279
3413
|
const context = ast.context ?
|
|
3280
3414
|
ast.context.isOptional === false ?
|
|
3281
|
-
new Context(true, ast.context.isMutable, ast.context.
|
|
3415
|
+
new Context(true, ast.context.isMutable, ast.context.constructorDefault, ast.context.annotations) :
|
|
3282
3416
|
ast.context :
|
|
3283
3417
|
new Context(true, false)
|
|
3284
3418
|
return optionalKeyLastLink(replaceContext(ast, context))
|
|
@@ -3290,7 +3424,7 @@ const mutableKeyLastLink = applyToLastLink(mutableKey)
|
|
|
3290
3424
|
export function mutableKey<A extends AST>(ast: A): A {
|
|
3291
3425
|
const context = ast.context ?
|
|
3292
3426
|
ast.context.isMutable === false ?
|
|
3293
|
-
new Context(ast.context.isOptional, true, ast.context.
|
|
3427
|
+
new Context(ast.context.isOptional, true, ast.context.constructorDefault, ast.context.annotations) :
|
|
3294
3428
|
ast.context :
|
|
3295
3429
|
new Context(false, true)
|
|
3296
3430
|
return mutableKeyLastLink(replaceContext(ast, context))
|
|
@@ -3305,10 +3439,10 @@ export function withConstructorDefault<A extends AST>(
|
|
|
3305
3439
|
SchemaGetter.withDefault(defaultValue),
|
|
3306
3440
|
SchemaGetter.passthrough()
|
|
3307
3441
|
)
|
|
3308
|
-
const
|
|
3442
|
+
const constructorDefault = new Link(unknown, transformation)
|
|
3309
3443
|
const context = ast.context ?
|
|
3310
|
-
new Context(ast.context.isOptional, ast.context.isMutable,
|
|
3311
|
-
new Context(false, false,
|
|
3444
|
+
new Context(ast.context.isOptional, ast.context.isMutable, constructorDefault, ast.context.annotations) :
|
|
3445
|
+
new Context(false, false, constructorDefault)
|
|
3312
3446
|
return replaceContext(ast, context)
|
|
3313
3447
|
}
|
|
3314
3448
|
|
|
@@ -3370,11 +3504,11 @@ function parseParameter(ast: AST): {
|
|
|
3370
3504
|
}
|
|
3371
3505
|
|
|
3372
3506
|
/** @internal */
|
|
3373
|
-
export function record(key: AST, value: AST
|
|
3507
|
+
export function record(key: AST, value: AST): Objects {
|
|
3374
3508
|
const { literals, parameters: indexSignatures } = parseParameter(key)
|
|
3375
3509
|
return new Objects(
|
|
3376
3510
|
literals.map((literal) => new PropertySignature(literal, value)),
|
|
3377
|
-
indexSignatures.map((parameter) => new IndexSignature(parameter, value
|
|
3511
|
+
indexSignatures.map((parameter) => new IndexSignature(parameter, value))
|
|
3378
3512
|
)
|
|
3379
3513
|
}
|
|
3380
3514
|
|
|
@@ -3430,12 +3564,12 @@ function extractStructuralChecks(checks: Checks): Checks | undefined {
|
|
|
3430
3564
|
*
|
|
3431
3565
|
* **Example** (Getting the type AST)
|
|
3432
3566
|
*
|
|
3433
|
-
* ```ts
|
|
3567
|
+
* ```ts import.meta.vitest
|
|
3434
3568
|
* import { Schema, SchemaAST } from "effect"
|
|
3435
3569
|
*
|
|
3436
3570
|
* const schema = Schema.NumberFromString
|
|
3437
3571
|
* const typeAst = SchemaAST.toType(schema.ast)
|
|
3438
|
-
*
|
|
3572
|
+
* typeAst._tag // => "Number"
|
|
3439
3573
|
* ```
|
|
3440
3574
|
*
|
|
3441
3575
|
* @see {@link toEncoded}
|
|
@@ -3477,12 +3611,12 @@ export const toType = memoize(<A extends AST>(ast: A): A => {
|
|
|
3477
3611
|
*
|
|
3478
3612
|
* **Example** (Getting the encoded AST)
|
|
3479
3613
|
*
|
|
3480
|
-
* ```ts
|
|
3614
|
+
* ```ts import.meta.vitest
|
|
3481
3615
|
* import { Schema, SchemaAST } from "effect"
|
|
3482
3616
|
*
|
|
3483
3617
|
* const schema = Schema.NumberFromString
|
|
3484
3618
|
* const encodedAst = SchemaAST.toEncoded(schema.ast)
|
|
3485
|
-
*
|
|
3619
|
+
* encodedAst._tag // => "String"
|
|
3486
3620
|
* ```
|
|
3487
3621
|
*
|
|
3488
3622
|
* @see {@link toType}
|
|
@@ -3553,63 +3687,50 @@ function fromConst<const T>(
|
|
|
3553
3687
|
ast: AST,
|
|
3554
3688
|
value: T
|
|
3555
3689
|
): SchemaParser.Parser {
|
|
3556
|
-
const succeed =
|
|
3557
|
-
return (
|
|
3558
|
-
if (
|
|
3559
|
-
|
|
3560
|
-
}
|
|
3561
|
-
return oinput.value === value
|
|
3690
|
+
const succeed = InternalParser.succeed(value)
|
|
3691
|
+
return (input) => {
|
|
3692
|
+
if (input === InternalParser.missing) return InternalParser.missingExit
|
|
3693
|
+
return input === value
|
|
3562
3694
|
? succeed
|
|
3563
|
-
: Effect.fail(
|
|
3695
|
+
: Effect.fail(
|
|
3696
|
+
new SchemaIssue.InvalidType(ast)
|
|
3697
|
+
)
|
|
3564
3698
|
}
|
|
3565
3699
|
}
|
|
3566
3700
|
|
|
3567
|
-
function fromAnyToConst<const T>(value: T): SchemaParser.Parser {
|
|
3568
|
-
const succeed = Effect.succeedSome(value)
|
|
3569
|
-
return (oinput) => oinput._tag === "None" ? Effect.succeedNone : succeed
|
|
3570
|
-
}
|
|
3571
|
-
|
|
3572
3701
|
function fromRefinement<T>(
|
|
3573
3702
|
ast: AST,
|
|
3574
3703
|
refinement: (input: unknown) => input is T
|
|
3575
3704
|
): SchemaParser.Parser {
|
|
3576
|
-
return (
|
|
3577
|
-
if (
|
|
3578
|
-
|
|
3579
|
-
|
|
3580
|
-
|
|
3581
|
-
|
|
3582
|
-
|
|
3705
|
+
return (input) => {
|
|
3706
|
+
if (input === InternalParser.missing) return InternalParser.missingExit
|
|
3707
|
+
return refinement(input)
|
|
3708
|
+
? InternalParser.sameExit
|
|
3709
|
+
: Effect.fail(
|
|
3710
|
+
new SchemaIssue.InvalidType(ast)
|
|
3711
|
+
)
|
|
3583
3712
|
}
|
|
3584
3713
|
}
|
|
3585
3714
|
|
|
3586
|
-
function applyTemplateLiteralPartChecks<A>(ast: AST, value: A, options: ParseOptions): A | undefined {
|
|
3587
|
-
if (options?.disableChecks || ast.checks === undefined) return value
|
|
3588
|
-
const issues: Array<SchemaIssue.Issue> = []
|
|
3589
|
-
collectIssues(ast.checks, value, issues, ast, options)
|
|
3590
|
-
return issues.length === 0 ? value : undefined
|
|
3591
|
-
}
|
|
3592
|
-
|
|
3593
3715
|
function segmentTemplateLiteralParts(
|
|
3594
|
-
|
|
3716
|
+
ast: TemplateLiteral,
|
|
3595
3717
|
input: string,
|
|
3596
3718
|
options: ParseOptions
|
|
3597
3719
|
): Array<string> | undefined {
|
|
3598
|
-
const
|
|
3599
|
-
|
|
3600
|
-
|
|
3601
|
-
|
|
3602
|
-
|
|
3603
|
-
|
|
3604
|
-
minimumLengths[i] = minimumLengths[i + 1] + (literals[i]?.length ?? 0)
|
|
3720
|
+
const parts = ast.encodedParts
|
|
3721
|
+
const literals = ast.literals
|
|
3722
|
+
const inputLength = input.length
|
|
3723
|
+
for (let i = 0; i < literals.length; i++) {
|
|
3724
|
+
const literal = literals[i]
|
|
3725
|
+
if (literal && !input.includes(literal)) return undefined
|
|
3605
3726
|
}
|
|
3606
|
-
if (
|
|
3727
|
+
if (ast.suffixLengths[0] > inputLength) return undefined
|
|
3607
3728
|
|
|
3608
3729
|
const out = new Array<string>(parts.length)
|
|
3609
|
-
|
|
3730
|
+
let failures: Set<number> | undefined
|
|
3610
3731
|
function go(i: number, pos: number): boolean {
|
|
3611
|
-
if (i === parts.length) return pos ===
|
|
3612
|
-
if (failures
|
|
3732
|
+
if (i === parts.length) return pos === inputLength
|
|
3733
|
+
if (failures?.has(i * (inputLength + 1) + pos)) return false
|
|
3613
3734
|
const part = parts[i]
|
|
3614
3735
|
if (i === parts.length - 1) {
|
|
3615
3736
|
const s = input.slice(pos)
|
|
@@ -3624,7 +3745,7 @@ function segmentTemplateLiteralParts(
|
|
|
3624
3745
|
return true
|
|
3625
3746
|
}
|
|
3626
3747
|
} else {
|
|
3627
|
-
const maximumEnd =
|
|
3748
|
+
const maximumEnd = inputLength - ast.suffixLengths[i + 1]
|
|
3628
3749
|
// Splits preceding a literal only need to consider occurrences of that literal.
|
|
3629
3750
|
const anchor = literals[i + 1]
|
|
3630
3751
|
let end = anchor === undefined ? maximumEnd : input.lastIndexOf(anchor, maximumEnd)
|
|
@@ -3638,7 +3759,8 @@ function segmentTemplateLiteralParts(
|
|
|
3638
3759
|
end = anchor === undefined ? end - 1 : input.lastIndexOf(anchor, end - 1)
|
|
3639
3760
|
}
|
|
3640
3761
|
}
|
|
3641
|
-
failures
|
|
3762
|
+
failures ??= new Set()
|
|
3763
|
+
failures.add(i * (inputLength + 1) + pos)
|
|
3642
3764
|
return false
|
|
3643
3765
|
}
|
|
3644
3766
|
return go(0, 0) ? out : undefined
|
|
@@ -3780,7 +3902,7 @@ const symbolToString = new Link(
|
|
|
3780
3902
|
return Effect.succeed(globalThis.String(sym))
|
|
3781
3903
|
}
|
|
3782
3904
|
return Effect.fail(
|
|
3783
|
-
new SchemaIssue.Forbidden(
|
|
3905
|
+
new SchemaIssue.Forbidden({ message: "cannot serialize to string, Symbol is not registered" })
|
|
3784
3906
|
)
|
|
3785
3907
|
})
|
|
3786
3908
|
)
|
|
@@ -3806,24 +3928,33 @@ export function isStringSymbol(annotations?: Schema.Annotations.Filter) {
|
|
|
3806
3928
|
export function collectIssues<T>(
|
|
3807
3929
|
checks: ReadonlyArray<Check<T>>,
|
|
3808
3930
|
value: T,
|
|
3809
|
-
issues:
|
|
3931
|
+
issues: Arr.NonEmptyArray<SchemaIssue.Issue> | undefined,
|
|
3810
3932
|
ast: AST,
|
|
3811
3933
|
options: ParseOptions
|
|
3812
|
-
) {
|
|
3934
|
+
): Arr.NonEmptyArray<SchemaIssue.Issue> | undefined {
|
|
3813
3935
|
for (let i = 0; i < checks.length; i++) {
|
|
3814
3936
|
const check = checks[i]
|
|
3815
3937
|
if (check._tag === "FilterGroup") {
|
|
3816
|
-
collectIssues(check.checks, value, issues, ast, options)
|
|
3938
|
+
issues = collectIssues(check.checks, value, issues, ast, options)
|
|
3939
|
+
if (
|
|
3940
|
+
issues &&
|
|
3941
|
+
(options.errors !== "all" || (issues[issues.length - 1] as SchemaIssue.Filter).filter.aborted)
|
|
3942
|
+
) {
|
|
3943
|
+
return issues
|
|
3944
|
+
}
|
|
3817
3945
|
} else {
|
|
3818
3946
|
const issue = check.run(value, ast, options)
|
|
3819
3947
|
if (issue) {
|
|
3820
|
-
|
|
3821
|
-
if (
|
|
3822
|
-
|
|
3948
|
+
const filter = new SchemaIssue.Filter(check, issue)
|
|
3949
|
+
if (issues) issues.push(filter)
|
|
3950
|
+
else issues = [filter]
|
|
3951
|
+
if (options.errors !== "all" || check.aborted) {
|
|
3952
|
+
return issues
|
|
3823
3953
|
}
|
|
3824
3954
|
}
|
|
3825
3955
|
}
|
|
3826
3956
|
}
|
|
3957
|
+
return issues
|
|
3827
3958
|
}
|
|
3828
3959
|
|
|
3829
3960
|
/** @internal */
|
|
@@ -3831,17 +3962,26 @@ export function runChecks<T>(
|
|
|
3831
3962
|
checks: readonly [Check<T>, ...Array<Check<T>>],
|
|
3832
3963
|
s: T
|
|
3833
3964
|
): Result.Result<T, SchemaIssue.Issue> {
|
|
3834
|
-
const issues:
|
|
3835
|
-
|
|
3836
|
-
|
|
3837
|
-
const issue = new SchemaIssue.Composite(unknown, Option.some(s), issues)
|
|
3965
|
+
const issues = collectIssues(checks, s, undefined, unknown, { errors: "all" })
|
|
3966
|
+
if (issues) {
|
|
3967
|
+
const issue = new SchemaIssue.Composite(unknown, issues)
|
|
3838
3968
|
return Result.fail(issue)
|
|
3839
3969
|
}
|
|
3840
3970
|
return Result.succeed(s)
|
|
3841
3971
|
}
|
|
3842
3972
|
|
|
3843
3973
|
/** @internal */
|
|
3844
|
-
export
|
|
3974
|
+
export interface ConstructorDescriptor {
|
|
3975
|
+
readonly isConstructed: Predicate.Predicate<unknown>
|
|
3976
|
+
readonly link: Link
|
|
3977
|
+
}
|
|
3978
|
+
|
|
3979
|
+
/** @internal */
|
|
3980
|
+
export function getConstructorDescriptor(ast: AST): ConstructorDescriptor | undefined {
|
|
3981
|
+
if (!isDeclaration(ast)) return undefined
|
|
3982
|
+
const getDescriptor = ast.annotations?.[InternalAnnotations.CONSTRUCTOR_ANNOTATION_KEY]
|
|
3983
|
+
return Predicate.isFunction(getDescriptor) ? getDescriptor(ast.typeParameters) : undefined
|
|
3984
|
+
}
|
|
3845
3985
|
|
|
3846
3986
|
/**
|
|
3847
3987
|
* Returns all annotations from the AST node.
|
|
@@ -3854,12 +3994,12 @@ export const ClassTypeId = "~effect/Schema/Class"
|
|
|
3854
3994
|
*
|
|
3855
3995
|
* **Example** (Reading annotations)
|
|
3856
3996
|
*
|
|
3857
|
-
* ```ts
|
|
3997
|
+
* ```ts import.meta.vitest
|
|
3858
3998
|
* import { Schema, SchemaAST } from "effect"
|
|
3859
3999
|
*
|
|
3860
4000
|
* const schema = Schema.String.annotate({ title: "Name" })
|
|
3861
4001
|
* const annotations = SchemaAST.resolve(schema.ast)
|
|
3862
|
-
*
|
|
4002
|
+
* annotations?.title // => "Name"
|
|
3863
4003
|
* ```
|
|
3864
4004
|
*
|
|
3865
4005
|
* @see {@link resolveAt}
|
|
@@ -4016,8 +4156,8 @@ export const Json = new Declaration(
|
|
|
4016
4156
|
[],
|
|
4017
4157
|
() => (input, ast) =>
|
|
4018
4158
|
isJson(input) ?
|
|
4019
|
-
|
|
4020
|
-
Effect.fail(new SchemaIssue.InvalidType(ast
|
|
4159
|
+
InternalParser.sameExit :
|
|
4160
|
+
Effect.fail(new SchemaIssue.InvalidType(ast)),
|
|
4021
4161
|
{
|
|
4022
4162
|
representation: {
|
|
4023
4163
|
id: "effect/schema/Json",
|
|
@@ -4048,7 +4188,7 @@ export const unknownToJson = new Link(
|
|
|
4048
4188
|
export const objectKeywordToJson = new Link(
|
|
4049
4189
|
new Union([
|
|
4050
4190
|
new Arrays(false, [], [Json]),
|
|
4051
|
-
new Objects([], [new IndexSignature(string, Json
|
|
4191
|
+
new Objects([], [new IndexSignature(string, Json)])
|
|
4052
4192
|
], "anyOf"),
|
|
4053
4193
|
SchemaTransformation.passthrough()
|
|
4054
4194
|
)
|
|
@@ -4068,8 +4208,8 @@ const StringTree = new Declaration(
|
|
|
4068
4208
|
[],
|
|
4069
4209
|
() => (input, ast) =>
|
|
4070
4210
|
isStringTree(input) ?
|
|
4071
|
-
|
|
4072
|
-
Effect.fail(new SchemaIssue.InvalidType(ast
|
|
4211
|
+
InternalParser.sameExit :
|
|
4212
|
+
Effect.fail(new SchemaIssue.InvalidType(ast)),
|
|
4073
4213
|
{ expected: "StringTree", toCodecStringTree: () => undefined }
|
|
4074
4214
|
)
|
|
4075
4215
|
|