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/Config.ts
CHANGED
|
@@ -17,6 +17,7 @@ import * as LogLevel_ from "./LogLevel.ts"
|
|
|
17
17
|
import * as Option from "./Option.ts"
|
|
18
18
|
import * as Predicate from "./Predicate.ts"
|
|
19
19
|
import * as Rec from "./Record.ts"
|
|
20
|
+
import * as Result from "./Result.ts"
|
|
20
21
|
import * as Schema from "./Schema.ts"
|
|
21
22
|
import * as SchemaAST from "./SchemaAST.ts"
|
|
22
23
|
import * as SchemaGetter from "./SchemaGetter.ts"
|
|
@@ -36,11 +37,11 @@ const TypeId = "~effect/Config"
|
|
|
36
37
|
*
|
|
37
38
|
* **Example** (Checking Config values)
|
|
38
39
|
*
|
|
39
|
-
* ```ts
|
|
40
|
+
* ```ts import.meta.vitest
|
|
40
41
|
* import { Config } from "effect"
|
|
41
42
|
*
|
|
42
|
-
*
|
|
43
|
-
*
|
|
43
|
+
* Config.isConfig(Config.string("HOST")) // => true
|
|
44
|
+
* Config.isConfig("not a config") // => false
|
|
44
45
|
* ```
|
|
45
46
|
*
|
|
46
47
|
* @category guards
|
|
@@ -63,7 +64,7 @@ export const isConfig = (u: unknown): u is Config<unknown> => Predicate.hasPrope
|
|
|
63
64
|
* (wrong type, out of range, missing key, etc.).
|
|
64
65
|
*
|
|
65
66
|
* @see {@link orElse} – recover from a ConfigError
|
|
66
|
-
* @see {@link withDefault} – provide a fallback
|
|
67
|
+
* @see {@link withDefault} – provide a fallback when relevant input is absent
|
|
67
68
|
*
|
|
68
69
|
* @category errors
|
|
69
70
|
* @since 4.0.0
|
|
@@ -94,9 +95,7 @@ export class ConfigError {
|
|
|
94
95
|
* **Details**
|
|
95
96
|
*
|
|
96
97
|
* Key members:
|
|
97
|
-
* - `parse(provider
|
|
98
|
-
* The optional path prefix is the logical scope accumulated from outer
|
|
99
|
-
* `Config.nested` calls.
|
|
98
|
+
* - `parse(provider)` – runs the config against a specific provider.
|
|
100
99
|
* - Yieldable – can be yielded inside `Effect.gen`, which automatically
|
|
101
100
|
* resolves the current `ConfigProvider` from the context.
|
|
102
101
|
* - Pipeable – supports `.pipe(Config.map(...))` etc.
|
|
@@ -108,10 +107,39 @@ export class ConfigError {
|
|
|
108
107
|
*/
|
|
109
108
|
export interface Config<out T> extends Effect.Effect<T, ConfigError> {
|
|
110
109
|
readonly [TypeId]: typeof TypeId
|
|
111
|
-
readonly parse: (
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
110
|
+
readonly parse: (provider: ConfigProvider.ConfigProvider) => Effect.Effect<T, ConfigError>
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
// Config composition needs to distinguish an absent recipe from a hard failure
|
|
114
|
+
// before the public Effect error channel is finalized. `hasInput` records
|
|
115
|
+
// provider evidence separately from the value, because successful values such
|
|
116
|
+
// as `undefined` and values supplied by defaults are not evidence of input.
|
|
117
|
+
// Hard failures carry the same evidence so recovery cannot erase it.
|
|
118
|
+
interface Resolved<out T> {
|
|
119
|
+
readonly _tag: "Resolved"
|
|
120
|
+
readonly value: T
|
|
121
|
+
readonly hasInput: boolean
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
interface Absent {
|
|
125
|
+
readonly _tag: "Absent"
|
|
126
|
+
readonly error: ConfigError
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
type Resolution<T> = Resolved<T> | Absent
|
|
130
|
+
|
|
131
|
+
interface EvaluationFailure {
|
|
132
|
+
readonly error: ConfigError
|
|
133
|
+
readonly hasInput: boolean
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
type Evaluator<T> = (
|
|
137
|
+
provider: ConfigProvider.ConfigProvider,
|
|
138
|
+
pathPrefix: Path
|
|
139
|
+
) => Effect.Effect<Resolution<T>, EvaluationFailure>
|
|
140
|
+
|
|
141
|
+
interface ConfigImpl<out T> extends Config<T> {
|
|
142
|
+
readonly evaluator: Evaluator<T>
|
|
115
143
|
}
|
|
116
144
|
|
|
117
145
|
const Proto = {
|
|
@@ -130,13 +158,69 @@ const Proto = {
|
|
|
130
158
|
}
|
|
131
159
|
|
|
132
160
|
function make<T>(
|
|
133
|
-
|
|
161
|
+
evaluator: Evaluator<T>
|
|
134
162
|
): Config<T> {
|
|
135
163
|
const self = Object.create(Proto)
|
|
136
|
-
self.
|
|
164
|
+
self.evaluator = evaluator
|
|
165
|
+
self.parse = (provider: ConfigProvider.ConfigProvider) =>
|
|
166
|
+
evaluator(provider, []).pipe(
|
|
167
|
+
Effect.mapErrorEager((failure) => failure.error),
|
|
168
|
+
Effect.flatMapEager((resolution) =>
|
|
169
|
+
resolution._tag === "Resolved" ? Effect.succeed(resolution.value) : Effect.fail(resolution.error)
|
|
170
|
+
)
|
|
171
|
+
)
|
|
137
172
|
return self
|
|
138
173
|
}
|
|
139
174
|
|
|
175
|
+
const evaluateAt = <T>(
|
|
176
|
+
self: Config<T>,
|
|
177
|
+
provider: ConfigProvider.ConfigProvider,
|
|
178
|
+
pathPrefix: Path
|
|
179
|
+
): Effect.Effect<Resolution<T>, EvaluationFailure> => (self as ConfigImpl<T>).evaluator(provider, pathPrefix)
|
|
180
|
+
|
|
181
|
+
const resolved = <T>(value: T, hasInput: boolean): Resolution<T> => ({
|
|
182
|
+
_tag: "Resolved",
|
|
183
|
+
value,
|
|
184
|
+
hasInput
|
|
185
|
+
})
|
|
186
|
+
|
|
187
|
+
const absent = (error: ConfigError): Absent => ({
|
|
188
|
+
_tag: "Absent",
|
|
189
|
+
error
|
|
190
|
+
})
|
|
191
|
+
|
|
192
|
+
const evaluationFailure = (error: ConfigError, hasInput: boolean): EvaluationFailure => ({
|
|
193
|
+
error,
|
|
194
|
+
hasInput
|
|
195
|
+
})
|
|
196
|
+
|
|
197
|
+
const catchSourceError = <A, E, R>(
|
|
198
|
+
self: Effect.Effect<A, E, R>,
|
|
199
|
+
hasInput: boolean
|
|
200
|
+
): Effect.Effect<A, E | EvaluationFailure, R> =>
|
|
201
|
+
self.pipe(
|
|
202
|
+
Effect.catchDefect((defect) =>
|
|
203
|
+
defect instanceof ConfigProvider.SourceError
|
|
204
|
+
? Effect.fail(evaluationFailure(new ConfigError(defect), hasInput))
|
|
205
|
+
: Effect.die(defect)
|
|
206
|
+
)
|
|
207
|
+
)
|
|
208
|
+
|
|
209
|
+
const preserveInputEvidence = <T>(
|
|
210
|
+
self: Effect.Effect<Resolution<T>, EvaluationFailure>,
|
|
211
|
+
hasInput: boolean
|
|
212
|
+
): Effect.Effect<Resolution<T>, EvaluationFailure> => {
|
|
213
|
+
if (!hasInput) return self
|
|
214
|
+
return self.pipe(
|
|
215
|
+
Effect.mapErrorEager((failure) => evaluationFailure(failure.error, true)),
|
|
216
|
+
Effect.flatMapEager((resolution) =>
|
|
217
|
+
resolution._tag === "Resolved"
|
|
218
|
+
? Effect.succeed(resolved(resolution.value, true))
|
|
219
|
+
: Effect.fail(evaluationFailure(resolution.error, true))
|
|
220
|
+
)
|
|
221
|
+
)
|
|
222
|
+
}
|
|
223
|
+
|
|
140
224
|
/**
|
|
141
225
|
* Transforms the parsed value of a config with a pure function.
|
|
142
226
|
*
|
|
@@ -147,7 +231,7 @@ function make<T>(
|
|
|
147
231
|
*
|
|
148
232
|
* **Example** (Uppercasing a string config)
|
|
149
233
|
*
|
|
150
|
-
* ```ts
|
|
234
|
+
* ```ts import.meta.vitest
|
|
151
235
|
* import { Config, ConfigProvider, Effect } from "effect"
|
|
152
236
|
*
|
|
153
237
|
* const upper = Config.string("name").pipe(
|
|
@@ -155,7 +239,7 @@ function make<T>(
|
|
|
155
239
|
* )
|
|
156
240
|
*
|
|
157
241
|
* const provider = ConfigProvider.fromUnknown({ name: "alice" })
|
|
158
|
-
*
|
|
242
|
+
* Effect.runSync(upper.parse(provider)) // => "ALICE"
|
|
159
243
|
* ```
|
|
160
244
|
*
|
|
161
245
|
* @see {@link mapOrFail} – when the transformation can fail
|
|
@@ -174,7 +258,7 @@ export const map: {
|
|
|
174
258
|
*
|
|
175
259
|
* **Example** (Uppercasing a string config)
|
|
176
260
|
*
|
|
177
|
-
* ```ts
|
|
261
|
+
* ```ts import.meta.vitest
|
|
178
262
|
* import { Config, ConfigProvider, Effect } from "effect"
|
|
179
263
|
*
|
|
180
264
|
* const upper = Config.string("name").pipe(
|
|
@@ -182,7 +266,7 @@ export const map: {
|
|
|
182
266
|
* )
|
|
183
267
|
*
|
|
184
268
|
* const provider = ConfigProvider.fromUnknown({ name: "alice" })
|
|
185
|
-
*
|
|
269
|
+
* Effect.runSync(upper.parse(provider)) // => "ALICE"
|
|
186
270
|
* ```
|
|
187
271
|
*
|
|
188
272
|
* @see {@link mapOrFail} – when the transformation can fail
|
|
@@ -201,7 +285,7 @@ export const map: {
|
|
|
201
285
|
*
|
|
202
286
|
* **Example** (Uppercasing a string config)
|
|
203
287
|
*
|
|
204
|
-
* ```ts
|
|
288
|
+
* ```ts import.meta.vitest
|
|
205
289
|
* import { Config, ConfigProvider, Effect } from "effect"
|
|
206
290
|
*
|
|
207
291
|
* const upper = Config.string("name").pipe(
|
|
@@ -209,7 +293,7 @@ export const map: {
|
|
|
209
293
|
* )
|
|
210
294
|
*
|
|
211
295
|
* const provider = ConfigProvider.fromUnknown({ name: "alice" })
|
|
212
|
-
*
|
|
296
|
+
* Effect.runSync(upper.parse(provider)) // => "ALICE"
|
|
213
297
|
* ```
|
|
214
298
|
*
|
|
215
299
|
* @see {@link mapOrFail} – when the transformation can fail
|
|
@@ -219,7 +303,12 @@ export const map: {
|
|
|
219
303
|
*/
|
|
220
304
|
<A, B>(self: Config<A>, f: (a: A) => B): Config<B>
|
|
221
305
|
} = dual(2, <A, B>(self: Config<A>, f: (a: A) => B): Config<B> => {
|
|
222
|
-
return make((provider, pathPrefix) =>
|
|
306
|
+
return make((provider, pathPrefix) =>
|
|
307
|
+
Effect.map(evaluateAt(self, provider, pathPrefix), (resolution) =>
|
|
308
|
+
resolution._tag === "Resolved"
|
|
309
|
+
? resolved(f(resolution.value), resolution.hasInput)
|
|
310
|
+
: resolution)
|
|
311
|
+
)
|
|
223
312
|
})
|
|
224
313
|
|
|
225
314
|
/**
|
|
@@ -232,12 +321,14 @@ export const map: {
|
|
|
232
321
|
*
|
|
233
322
|
* **Example** (Wrapping a value in an effectful transformation)
|
|
234
323
|
*
|
|
235
|
-
* ```ts
|
|
236
|
-
* import { Config, Effect } from "effect"
|
|
324
|
+
* ```ts import.meta.vitest
|
|
325
|
+
* import { Config, ConfigProvider, Effect } from "effect"
|
|
237
326
|
*
|
|
238
327
|
* const trimmed = Config.string("name").pipe(
|
|
239
328
|
* Config.mapOrFail((s) => Effect.succeed(s.trim()))
|
|
240
329
|
* )
|
|
330
|
+
* const provider = ConfigProvider.fromUnknown({ name: " Alice " })
|
|
331
|
+
* Effect.runSync(trimmed.parse(provider)) // => "Alice"
|
|
241
332
|
* ```
|
|
242
333
|
*
|
|
243
334
|
* @see {@link map} – when the transformation cannot fail
|
|
@@ -256,12 +347,14 @@ export const mapOrFail: {
|
|
|
256
347
|
*
|
|
257
348
|
* **Example** (Wrapping a value in an effectful transformation)
|
|
258
349
|
*
|
|
259
|
-
* ```ts
|
|
260
|
-
* import { Config, Effect } from "effect"
|
|
350
|
+
* ```ts import.meta.vitest
|
|
351
|
+
* import { Config, ConfigProvider, Effect } from "effect"
|
|
261
352
|
*
|
|
262
353
|
* const trimmed = Config.string("name").pipe(
|
|
263
354
|
* Config.mapOrFail((s) => Effect.succeed(s.trim()))
|
|
264
355
|
* )
|
|
356
|
+
* const provider = ConfigProvider.fromUnknown({ name: " Alice " })
|
|
357
|
+
* Effect.runSync(trimmed.parse(provider)) // => "Alice"
|
|
265
358
|
* ```
|
|
266
359
|
*
|
|
267
360
|
* @see {@link map} – when the transformation cannot fail
|
|
@@ -280,12 +373,14 @@ export const mapOrFail: {
|
|
|
280
373
|
*
|
|
281
374
|
* **Example** (Wrapping a value in an effectful transformation)
|
|
282
375
|
*
|
|
283
|
-
* ```ts
|
|
284
|
-
* import { Config, Effect } from "effect"
|
|
376
|
+
* ```ts import.meta.vitest
|
|
377
|
+
* import { Config, ConfigProvider, Effect } from "effect"
|
|
285
378
|
*
|
|
286
379
|
* const trimmed = Config.string("name").pipe(
|
|
287
380
|
* Config.mapOrFail((s) => Effect.succeed(s.trim()))
|
|
288
381
|
* )
|
|
382
|
+
* const provider = ConfigProvider.fromUnknown({ name: " Alice " })
|
|
383
|
+
* Effect.runSync(trimmed.parse(provider)) // => "Alice"
|
|
289
384
|
* ```
|
|
290
385
|
*
|
|
291
386
|
* @see {@link map} – when the transformation cannot fail
|
|
@@ -295,7 +390,15 @@ export const mapOrFail: {
|
|
|
295
390
|
*/
|
|
296
391
|
<A, B>(self: Config<A>, f: (a: A) => Effect.Effect<B, ConfigError>): Config<B>
|
|
297
392
|
} = dual(2, <A, B>(self: Config<A>, f: (a: A) => Effect.Effect<B, ConfigError>): Config<B> => {
|
|
298
|
-
return make((provider, pathPrefix) =>
|
|
393
|
+
return make((provider, pathPrefix) =>
|
|
394
|
+
Effect.flatMap(evaluateAt(self, provider, pathPrefix), (resolution) =>
|
|
395
|
+
resolution._tag === "Resolved"
|
|
396
|
+
? f(resolution.value).pipe(
|
|
397
|
+
Effect.mapEager((value) => resolved(value, resolution.hasInput)),
|
|
398
|
+
Effect.mapErrorEager((error) => evaluationFailure(error, resolution.hasInput))
|
|
399
|
+
)
|
|
400
|
+
: Effect.succeed(resolution))
|
|
401
|
+
)
|
|
299
402
|
})
|
|
300
403
|
|
|
301
404
|
/**
|
|
@@ -308,21 +411,30 @@ export const mapOrFail: {
|
|
|
308
411
|
*
|
|
309
412
|
* **Details**
|
|
310
413
|
*
|
|
311
|
-
* Unlike {@link withDefault}, this
|
|
312
|
-
*
|
|
414
|
+
* Unlike {@link withDefault}, this handles both semantic absence and **all**
|
|
415
|
+
* `ConfigError`s. The fallback function receives the error and returns a new
|
|
313
416
|
* `Config`.
|
|
314
417
|
*
|
|
418
|
+
* **Gotchas**
|
|
419
|
+
*
|
|
420
|
+
* Recovery preserves whether the primary config read provider input. When the
|
|
421
|
+
* recovered config is composed with {@link all}, invalid input in the primary
|
|
422
|
+
* branch still makes the enclosing group partially supplied, so an outer
|
|
423
|
+
* {@link withDefault} or {@link option} does not replace the whole group.
|
|
424
|
+
*
|
|
315
425
|
* **Example** (Falling back to a literal)
|
|
316
426
|
*
|
|
317
|
-
* ```ts
|
|
318
|
-
* import { Config } from "effect"
|
|
427
|
+
* ```ts import.meta.vitest
|
|
428
|
+
* import { Config, ConfigProvider, Effect } from "effect"
|
|
319
429
|
*
|
|
320
430
|
* const hostConfig = Config.string("HOST").pipe(
|
|
321
431
|
* Config.orElse(() => Config.succeed("localhost"))
|
|
322
432
|
* )
|
|
433
|
+
* const provider = ConfigProvider.fromUnknown({})
|
|
434
|
+
* Effect.runSync(hostConfig.parse(provider)) // => "localhost"
|
|
323
435
|
* ```
|
|
324
436
|
*
|
|
325
|
-
* @see {@link withDefault} – fallback only on
|
|
437
|
+
* @see {@link withDefault} – fallback only on semantic absence
|
|
326
438
|
*
|
|
327
439
|
* @category combinators
|
|
328
440
|
* @since 2.0.0
|
|
@@ -338,21 +450,30 @@ export const orElse: {
|
|
|
338
450
|
*
|
|
339
451
|
* **Details**
|
|
340
452
|
*
|
|
341
|
-
* Unlike {@link withDefault}, this
|
|
342
|
-
*
|
|
453
|
+
* Unlike {@link withDefault}, this handles both semantic absence and **all**
|
|
454
|
+
* `ConfigError`s. The fallback function receives the error and returns a new
|
|
343
455
|
* `Config`.
|
|
344
456
|
*
|
|
457
|
+
* **Gotchas**
|
|
458
|
+
*
|
|
459
|
+
* Recovery preserves whether the primary config read provider input. When the
|
|
460
|
+
* recovered config is composed with {@link all}, invalid input in the primary
|
|
461
|
+
* branch still makes the enclosing group partially supplied, so an outer
|
|
462
|
+
* {@link withDefault} or {@link option} does not replace the whole group.
|
|
463
|
+
*
|
|
345
464
|
* **Example** (Falling back to a literal)
|
|
346
465
|
*
|
|
347
|
-
* ```ts
|
|
348
|
-
* import { Config } from "effect"
|
|
466
|
+
* ```ts import.meta.vitest
|
|
467
|
+
* import { Config, ConfigProvider, Effect } from "effect"
|
|
349
468
|
*
|
|
350
469
|
* const hostConfig = Config.string("HOST").pipe(
|
|
351
470
|
* Config.orElse(() => Config.succeed("localhost"))
|
|
352
471
|
* )
|
|
472
|
+
* const provider = ConfigProvider.fromUnknown({})
|
|
473
|
+
* Effect.runSync(hostConfig.parse(provider)) // => "localhost"
|
|
353
474
|
* ```
|
|
354
475
|
*
|
|
355
|
-
* @see {@link withDefault} – fallback only on
|
|
476
|
+
* @see {@link withDefault} – fallback only on semantic absence
|
|
356
477
|
*
|
|
357
478
|
* @category combinators
|
|
358
479
|
* @since 2.0.0
|
|
@@ -368,30 +489,87 @@ export const orElse: {
|
|
|
368
489
|
*
|
|
369
490
|
* **Details**
|
|
370
491
|
*
|
|
371
|
-
* Unlike {@link withDefault}, this
|
|
372
|
-
*
|
|
492
|
+
* Unlike {@link withDefault}, this handles both semantic absence and **all**
|
|
493
|
+
* `ConfigError`s. The fallback function receives the error and returns a new
|
|
373
494
|
* `Config`.
|
|
374
495
|
*
|
|
496
|
+
* **Gotchas**
|
|
497
|
+
*
|
|
498
|
+
* Recovery preserves whether the primary config read provider input. When the
|
|
499
|
+
* recovered config is composed with {@link all}, invalid input in the primary
|
|
500
|
+
* branch still makes the enclosing group partially supplied, so an outer
|
|
501
|
+
* {@link withDefault} or {@link option} does not replace the whole group.
|
|
502
|
+
*
|
|
375
503
|
* **Example** (Falling back to a literal)
|
|
376
504
|
*
|
|
377
|
-
* ```ts
|
|
378
|
-
* import { Config } from "effect"
|
|
505
|
+
* ```ts import.meta.vitest
|
|
506
|
+
* import { Config, ConfigProvider, Effect } from "effect"
|
|
379
507
|
*
|
|
380
508
|
* const hostConfig = Config.string("HOST").pipe(
|
|
381
509
|
* Config.orElse(() => Config.succeed("localhost"))
|
|
382
510
|
* )
|
|
511
|
+
* const provider = ConfigProvider.fromUnknown({})
|
|
512
|
+
* Effect.runSync(hostConfig.parse(provider)) // => "localhost"
|
|
383
513
|
* ```
|
|
384
514
|
*
|
|
385
|
-
* @see {@link withDefault} – fallback only on
|
|
515
|
+
* @see {@link withDefault} – fallback only on semantic absence
|
|
386
516
|
*
|
|
387
517
|
* @category combinators
|
|
388
518
|
* @since 2.0.0
|
|
389
519
|
*/
|
|
390
520
|
<A, A2>(self: Config<A>, that: (error: ConfigError) => Config<A2>): Config<A | A2>
|
|
391
521
|
} = dual(2, <A, A2>(self: Config<A>, that: (error: ConfigError) => Config<A2>): Config<A | A2> => {
|
|
392
|
-
return make
|
|
393
|
-
|
|
394
|
-
|
|
522
|
+
return make</**
|
|
523
|
+
* Provides a fallback config when parsing fails with a `ConfigError`.
|
|
524
|
+
*
|
|
525
|
+
* **When to use**
|
|
526
|
+
*
|
|
527
|
+
* Use when you need to try an alternative config source after the primary one
|
|
528
|
+
* fails.
|
|
529
|
+
*
|
|
530
|
+
* **Details**
|
|
531
|
+
*
|
|
532
|
+
* Unlike {@link withDefault}, this handles both semantic absence and **all**
|
|
533
|
+
* `ConfigError`s. The fallback function receives the error and returns a new
|
|
534
|
+
* `Config`.
|
|
535
|
+
*
|
|
536
|
+
* **Gotchas**
|
|
537
|
+
*
|
|
538
|
+
* Recovery preserves whether the primary config read provider input. When the
|
|
539
|
+
* recovered config is composed with {@link all}, invalid input in the primary
|
|
540
|
+
* branch still makes the enclosing group partially supplied, so an outer
|
|
541
|
+
* {@link withDefault} or {@link option} does not replace the whole group.
|
|
542
|
+
*
|
|
543
|
+
* **Example** (Falling back to a literal)
|
|
544
|
+
*
|
|
545
|
+
* ```ts import.meta.vitest
|
|
546
|
+
* import { Config, ConfigProvider, Effect } from "effect"
|
|
547
|
+
*
|
|
548
|
+
* const hostConfig = Config.string("HOST").pipe(
|
|
549
|
+
* Config.orElse(() => Config.succeed("localhost"))
|
|
550
|
+
* )
|
|
551
|
+
* const provider = ConfigProvider.fromUnknown({})
|
|
552
|
+
* Effect.runSync(hostConfig.parse(provider)) // => "localhost"
|
|
553
|
+
* ```
|
|
554
|
+
*
|
|
555
|
+
* @see {@link withDefault} – fallback only on semantic absence
|
|
556
|
+
*
|
|
557
|
+
* @category combinators
|
|
558
|
+
* @since 2.0.0
|
|
559
|
+
*/
|
|
560
|
+
A | A2>((provider, pathPrefix) =>
|
|
561
|
+
Effect.matchEffect(evaluateAt(self, provider, pathPrefix), {
|
|
562
|
+
onFailure: (failure) =>
|
|
563
|
+
preserveInputEvidence(
|
|
564
|
+
evaluateAt(that(failure.error), provider, pathPrefix),
|
|
565
|
+
failure.hasInput
|
|
566
|
+
),
|
|
567
|
+
onSuccess: (resolution): Effect.Effect<Resolution<A | A2>, EvaluationFailure> =>
|
|
568
|
+
resolution._tag === "Absent"
|
|
569
|
+
? evaluateAt(that(resolution.error), provider, pathPrefix)
|
|
570
|
+
: Effect.succeed(resolution)
|
|
571
|
+
})
|
|
572
|
+
);
|
|
395
573
|
})
|
|
396
574
|
|
|
397
575
|
/**
|
|
@@ -406,9 +584,19 @@ export const orElse: {
|
|
|
406
584
|
* Accepts a tuple (preserves positions), an iterable, or a record of configs.
|
|
407
585
|
* Returns a config whose parsed value mirrors the input shape.
|
|
408
586
|
*
|
|
587
|
+
* A combined config is absent when at least one child cannot resolve and none
|
|
588
|
+
* of the other children read provider input. This lets {@link withDefault} and
|
|
589
|
+
* {@link option} handle a wholly absent group. Once any child reads input, a
|
|
590
|
+
* missing sibling makes the group incomplete and parsing fails. Values supplied
|
|
591
|
+
* by child defaults do not count as provider input.
|
|
592
|
+
*
|
|
593
|
+
* Unlike a `Schema.Struct` passed to {@link schema}, `all` only considers input
|
|
594
|
+
* read by its children. An explicitly present but empty parent container does
|
|
595
|
+
* not by itself make the group present.
|
|
596
|
+
*
|
|
409
597
|
* **Example** (Combining configs as a struct)
|
|
410
598
|
*
|
|
411
|
-
* ```ts
|
|
599
|
+
* ```ts import.meta.vitest
|
|
412
600
|
* import { Config, ConfigProvider, Effect } from "effect"
|
|
413
601
|
*
|
|
414
602
|
* const dbConfig = Config.all({
|
|
@@ -417,8 +605,7 @@ export const orElse: {
|
|
|
417
605
|
* })
|
|
418
606
|
*
|
|
419
607
|
* const provider = ConfigProvider.fromUnknown({ host: "localhost", port: 5432 })
|
|
420
|
-
*
|
|
421
|
-
* // { host: "localhost", port: 5432 }
|
|
608
|
+
* Effect.runSync(dbConfig.parse(provider)) // => { host: "localhost", port: 5432 }
|
|
422
609
|
* ```
|
|
423
610
|
*
|
|
424
611
|
* @category combinators
|
|
@@ -443,46 +630,85 @@ export function all<const Arg extends Iterable<Config<any>> | Record<string, Con
|
|
|
443
630
|
: arg
|
|
444
631
|
if (Array.isArray(configs)) {
|
|
445
632
|
return make((provider, pathPrefix) =>
|
|
446
|
-
Effect.
|
|
633
|
+
Effect.flatMapEager(
|
|
634
|
+
Effect.all(configs.map((config) => Effect.result(evaluateAt(config, provider, pathPrefix)))),
|
|
635
|
+
resolveArray
|
|
636
|
+
)
|
|
447
637
|
) as any
|
|
448
638
|
} else {
|
|
449
639
|
return make((provider, pathPrefix) =>
|
|
450
|
-
Effect.
|
|
640
|
+
Effect.flatMapEager(
|
|
641
|
+
Effect.all(Rec.map(configs, (config) => Effect.result(evaluateAt(config, provider, pathPrefix)))),
|
|
642
|
+
resolveRecord
|
|
643
|
+
)
|
|
451
644
|
) as any
|
|
452
645
|
}
|
|
453
646
|
}
|
|
454
647
|
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
return issue.issues.every(isMissingDataOnly)
|
|
476
|
-
case "AnyOf":
|
|
477
|
-
if (issue.issues.length === 0) {
|
|
478
|
-
return issue.actual === undefined
|
|
479
|
-
}
|
|
480
|
-
return issue.issues.every(isMissingDataOnly)
|
|
648
|
+
const resolveArray = (
|
|
649
|
+
results: ReadonlyArray<Result.Result<Resolution<any>, EvaluationFailure>>
|
|
650
|
+
): Effect.Effect<Resolution<Array<any>>, EvaluationFailure> => {
|
|
651
|
+
const values: Array<any> = []
|
|
652
|
+
let firstFailure: EvaluationFailure | undefined
|
|
653
|
+
let firstAbsent: Absent | undefined
|
|
654
|
+
let hasInput = false
|
|
655
|
+
for (const result of results) {
|
|
656
|
+
if (Result.isFailure(result)) {
|
|
657
|
+
firstFailure ??= result.failure
|
|
658
|
+
hasInput = hasInput || result.failure.hasInput
|
|
659
|
+
continue
|
|
660
|
+
}
|
|
661
|
+
const resolution = result.success
|
|
662
|
+
if (resolution._tag === "Absent") {
|
|
663
|
+
firstAbsent ??= resolution
|
|
664
|
+
} else {
|
|
665
|
+
values.push(resolution.value)
|
|
666
|
+
hasInput = hasInput || resolution.hasInput
|
|
667
|
+
}
|
|
481
668
|
}
|
|
669
|
+
if (firstFailure !== undefined) {
|
|
670
|
+
return Effect.fail(evaluationFailure(firstFailure.error, hasInput))
|
|
671
|
+
}
|
|
672
|
+
if (firstAbsent !== undefined) {
|
|
673
|
+
return hasInput ? Effect.fail(evaluationFailure(firstAbsent.error, true)) : Effect.succeed(firstAbsent)
|
|
674
|
+
}
|
|
675
|
+
return Effect.succeed(resolved(values, hasInput))
|
|
676
|
+
}
|
|
677
|
+
|
|
678
|
+
const resolveRecord = (
|
|
679
|
+
results: Record<string, Result.Result<Resolution<any>, EvaluationFailure>>
|
|
680
|
+
): Effect.Effect<Resolution<Record<string, any>>, EvaluationFailure> => {
|
|
681
|
+
const values: Record<string, any> = {}
|
|
682
|
+
let firstFailure: EvaluationFailure | undefined
|
|
683
|
+
let firstAbsent: Absent | undefined
|
|
684
|
+
let hasInput = false
|
|
685
|
+
for (const key in results) {
|
|
686
|
+
const result = results[key]
|
|
687
|
+
if (Result.isFailure(result)) {
|
|
688
|
+
firstFailure ??= result.failure
|
|
689
|
+
hasInput = hasInput || result.failure.hasInput
|
|
690
|
+
continue
|
|
691
|
+
}
|
|
692
|
+
const resolution = result.success
|
|
693
|
+
if (resolution._tag === "Absent") {
|
|
694
|
+
firstAbsent ??= resolution
|
|
695
|
+
} else {
|
|
696
|
+
InternalRecord.assignProperty(values, key, resolution.value)
|
|
697
|
+
hasInput = hasInput || resolution.hasInput
|
|
698
|
+
}
|
|
699
|
+
}
|
|
700
|
+
if (firstFailure !== undefined) {
|
|
701
|
+
return Effect.fail(evaluationFailure(firstFailure.error, hasInput))
|
|
702
|
+
}
|
|
703
|
+
if (firstAbsent !== undefined) {
|
|
704
|
+
return hasInput ? Effect.fail(evaluationFailure(firstAbsent.error, true)) : Effect.succeed(firstAbsent)
|
|
705
|
+
}
|
|
706
|
+
return Effect.succeed(resolved(values, hasInput))
|
|
482
707
|
}
|
|
483
708
|
|
|
484
709
|
/**
|
|
485
|
-
* Provides a fallback value when the config
|
|
710
|
+
* Provides a fallback value when the config cannot resolve because none of its
|
|
711
|
+
* relevant input is present.
|
|
486
712
|
*
|
|
487
713
|
* **When to use**
|
|
488
714
|
*
|
|
@@ -490,30 +716,33 @@ function isMissingDataOnly(issue: SchemaIssue.Issue): boolean {
|
|
|
490
716
|
*
|
|
491
717
|
* **Gotchas**
|
|
492
718
|
*
|
|
493
|
-
*
|
|
494
|
-
*
|
|
495
|
-
*
|
|
719
|
+
* Validation errors and partially supplied groups still propagate. A schema
|
|
720
|
+
* that successfully decodes absent input also keeps its decoded value instead
|
|
721
|
+
* of using the default. Schema configs first represent a missing or
|
|
722
|
+
* incompatible provider shape as `undefined`; the default is used only when
|
|
723
|
+
* the schema rejects that value and no relevant input was found.
|
|
496
724
|
*
|
|
497
725
|
* **Example** (Defaulting a missing port)
|
|
498
726
|
*
|
|
499
|
-
* ```ts
|
|
727
|
+
* ```ts import.meta.vitest
|
|
500
728
|
* import { Config, ConfigProvider, Effect } from "effect"
|
|
501
729
|
*
|
|
502
730
|
* const port = Config.number("port").pipe(Config.withDefault(3000))
|
|
503
731
|
*
|
|
504
732
|
* const provider = ConfigProvider.fromUnknown({})
|
|
505
|
-
*
|
|
733
|
+
* Effect.runSync(port.parse(provider)) // => 3000
|
|
506
734
|
* ```
|
|
507
735
|
*
|
|
508
736
|
* @see {@link option} – returns `Option` instead of a default value
|
|
509
|
-
* @see {@link orElse} – catches all errors, not just
|
|
737
|
+
* @see {@link orElse} – catches all errors, not just absent input
|
|
510
738
|
*
|
|
511
739
|
* @category combinators
|
|
512
740
|
* @since 2.0.0
|
|
513
741
|
*/
|
|
514
742
|
export const withDefault: {
|
|
515
743
|
/**
|
|
516
|
-
* Provides a fallback value when the config
|
|
744
|
+
* Provides a fallback value when the config cannot resolve because none of its
|
|
745
|
+
* relevant input is present.
|
|
517
746
|
*
|
|
518
747
|
* **When to use**
|
|
519
748
|
*
|
|
@@ -521,30 +750,33 @@ export const withDefault: {
|
|
|
521
750
|
*
|
|
522
751
|
* **Gotchas**
|
|
523
752
|
*
|
|
524
|
-
*
|
|
525
|
-
*
|
|
526
|
-
*
|
|
753
|
+
* Validation errors and partially supplied groups still propagate. A schema
|
|
754
|
+
* that successfully decodes absent input also keeps its decoded value instead
|
|
755
|
+
* of using the default. Schema configs first represent a missing or
|
|
756
|
+
* incompatible provider shape as `undefined`; the default is used only when
|
|
757
|
+
* the schema rejects that value and no relevant input was found.
|
|
527
758
|
*
|
|
528
759
|
* **Example** (Defaulting a missing port)
|
|
529
760
|
*
|
|
530
|
-
* ```ts
|
|
761
|
+
* ```ts import.meta.vitest
|
|
531
762
|
* import { Config, ConfigProvider, Effect } from "effect"
|
|
532
763
|
*
|
|
533
764
|
* const port = Config.number("port").pipe(Config.withDefault(3000))
|
|
534
765
|
*
|
|
535
766
|
* const provider = ConfigProvider.fromUnknown({})
|
|
536
|
-
*
|
|
767
|
+
* Effect.runSync(port.parse(provider)) // => 3000
|
|
537
768
|
* ```
|
|
538
769
|
*
|
|
539
770
|
* @see {@link option} – returns `Option` instead of a default value
|
|
540
|
-
* @see {@link orElse} – catches all errors, not just
|
|
771
|
+
* @see {@link orElse} – catches all errors, not just absent input
|
|
541
772
|
*
|
|
542
773
|
* @category combinators
|
|
543
774
|
* @since 2.0.0
|
|
544
775
|
*/
|
|
545
776
|
<const A2>(defaultValue: A2): <A>(self: Config<A>) => Config<A2 | A>
|
|
546
777
|
/**
|
|
547
|
-
* Provides a fallback value when the config
|
|
778
|
+
* Provides a fallback value when the config cannot resolve because none of its
|
|
779
|
+
* relevant input is present.
|
|
548
780
|
*
|
|
549
781
|
* **When to use**
|
|
550
782
|
*
|
|
@@ -552,43 +784,75 @@ export const withDefault: {
|
|
|
552
784
|
*
|
|
553
785
|
* **Gotchas**
|
|
554
786
|
*
|
|
555
|
-
*
|
|
556
|
-
*
|
|
557
|
-
*
|
|
787
|
+
* Validation errors and partially supplied groups still propagate. A schema
|
|
788
|
+
* that successfully decodes absent input also keeps its decoded value instead
|
|
789
|
+
* of using the default. Schema configs first represent a missing or
|
|
790
|
+
* incompatible provider shape as `undefined`; the default is used only when
|
|
791
|
+
* the schema rejects that value and no relevant input was found.
|
|
558
792
|
*
|
|
559
793
|
* **Example** (Defaulting a missing port)
|
|
560
794
|
*
|
|
561
|
-
* ```ts
|
|
795
|
+
* ```ts import.meta.vitest
|
|
562
796
|
* import { Config, ConfigProvider, Effect } from "effect"
|
|
563
797
|
*
|
|
564
798
|
* const port = Config.number("port").pipe(Config.withDefault(3000))
|
|
565
799
|
*
|
|
566
800
|
* const provider = ConfigProvider.fromUnknown({})
|
|
567
|
-
*
|
|
801
|
+
* Effect.runSync(port.parse(provider)) // => 3000
|
|
568
802
|
* ```
|
|
569
803
|
*
|
|
570
804
|
* @see {@link option} – returns `Option` instead of a default value
|
|
571
|
-
* @see {@link orElse} – catches all errors, not just
|
|
805
|
+
* @see {@link orElse} – catches all errors, not just absent input
|
|
572
806
|
*
|
|
573
807
|
* @category combinators
|
|
574
808
|
* @since 2.0.0
|
|
575
809
|
*/
|
|
576
810
|
<A, const A2>(self: Config<A>, defaultValue: A2): Config<A | A2>
|
|
577
811
|
} = dual(2, <A, const A2>(self: Config<A>, defaultValue: A2): Config<A | A2> => {
|
|
578
|
-
return
|
|
579
|
-
|
|
580
|
-
|
|
581
|
-
|
|
582
|
-
|
|
583
|
-
|
|
584
|
-
|
|
585
|
-
|
|
586
|
-
|
|
812
|
+
return make</**
|
|
813
|
+
* Provides a fallback value when the config cannot resolve because none of its
|
|
814
|
+
* relevant input is present.
|
|
815
|
+
*
|
|
816
|
+
* **When to use**
|
|
817
|
+
*
|
|
818
|
+
* Use when you need to make a config key optional with a sensible default.
|
|
819
|
+
*
|
|
820
|
+
* **Gotchas**
|
|
821
|
+
*
|
|
822
|
+
* Validation errors and partially supplied groups still propagate. A schema
|
|
823
|
+
* that successfully decodes absent input also keeps its decoded value instead
|
|
824
|
+
* of using the default. Schema configs first represent a missing or
|
|
825
|
+
* incompatible provider shape as `undefined`; the default is used only when
|
|
826
|
+
* the schema rejects that value and no relevant input was found.
|
|
827
|
+
*
|
|
828
|
+
* **Example** (Defaulting a missing port)
|
|
829
|
+
*
|
|
830
|
+
* ```ts import.meta.vitest
|
|
831
|
+
* import { Config, ConfigProvider, Effect } from "effect"
|
|
832
|
+
*
|
|
833
|
+
* const port = Config.number("port").pipe(Config.withDefault(3000))
|
|
834
|
+
*
|
|
835
|
+
* const provider = ConfigProvider.fromUnknown({})
|
|
836
|
+
* Effect.runSync(port.parse(provider)) // => 3000
|
|
837
|
+
* ```
|
|
838
|
+
*
|
|
839
|
+
* @see {@link option} – returns `Option` instead of a default value
|
|
840
|
+
* @see {@link orElse} – catches all errors, not just absent input
|
|
841
|
+
*
|
|
842
|
+
* @category combinators
|
|
843
|
+
* @since 2.0.0
|
|
844
|
+
*/
|
|
845
|
+
A | A2>((provider, pathPrefix) =>
|
|
846
|
+
Effect.mapEager(
|
|
847
|
+
evaluateAt(self, provider, pathPrefix),
|
|
848
|
+
(resolution) => resolution._tag === "Absent" ? resolved(defaultValue, false) : resolution
|
|
849
|
+
)
|
|
850
|
+
);
|
|
587
851
|
})
|
|
588
852
|
|
|
589
853
|
/**
|
|
590
|
-
* Makes a config optional: returns `Some(value)` on success and `None` when
|
|
591
|
-
*
|
|
854
|
+
* Makes a config optional: returns `Some(value)` on success and `None` when the
|
|
855
|
+
* config cannot resolve because none of its relevant input is present.
|
|
592
856
|
*
|
|
593
857
|
* **When to use**
|
|
594
858
|
*
|
|
@@ -596,18 +860,21 @@ export const withDefault: {
|
|
|
596
860
|
*
|
|
597
861
|
* **Gotchas**
|
|
598
862
|
*
|
|
599
|
-
*
|
|
600
|
-
*
|
|
863
|
+
* Validation errors and partially supplied groups still propagate. Successful
|
|
864
|
+
* values are always wrapped in `Some`, including `undefined` when the schema
|
|
865
|
+
* explicitly accepts it. Schema configs first represent a missing or
|
|
866
|
+
* incompatible provider shape as `undefined`; `None` is returned only when the
|
|
867
|
+
* schema rejects that value and no relevant input was found.
|
|
601
868
|
*
|
|
602
869
|
* **Example** (Reading optional config)
|
|
603
870
|
*
|
|
604
|
-
* ```ts
|
|
605
|
-
* import { Config, ConfigProvider, Effect } from "effect"
|
|
871
|
+
* ```ts import.meta.vitest
|
|
872
|
+
* import { Config, ConfigProvider, Effect, Option } from "effect"
|
|
606
873
|
*
|
|
607
874
|
* const maybePort = Config.option(Config.number("port"))
|
|
608
875
|
*
|
|
609
876
|
* const provider = ConfigProvider.fromUnknown({})
|
|
610
|
-
*
|
|
877
|
+
* Effect.runSync(maybePort.parse(provider)) // => Option.none()
|
|
611
878
|
* ```
|
|
612
879
|
*
|
|
613
880
|
* @see {@link withDefault} – provide a concrete fallback value instead
|
|
@@ -649,7 +916,7 @@ export type Success<T> = [T] extends [Config<infer A>] ? A : never
|
|
|
649
916
|
*
|
|
650
917
|
* @see {@link unwrap} – construct a `Config` from a `Wrap<T>`
|
|
651
918
|
*
|
|
652
|
-
* @category
|
|
919
|
+
* @category utility types
|
|
653
920
|
* @since 2.0.0
|
|
654
921
|
*/
|
|
655
922
|
export type Wrap<A> = [NonNullable<A>] extends [infer T] ? [IsPlainObject<T>] extends [true] ?
|
|
@@ -677,8 +944,8 @@ type IsPlainObject<A> = [A] extends [Record<string, any>]
|
|
|
677
944
|
*
|
|
678
945
|
* **Example** (Unwrapping a record of configs)
|
|
679
946
|
*
|
|
680
|
-
* ```ts
|
|
681
|
-
* import { Config } from "effect"
|
|
947
|
+
* ```ts import.meta.vitest
|
|
948
|
+
* import { Config, ConfigProvider, Effect } from "effect"
|
|
682
949
|
*
|
|
683
950
|
* interface Options {
|
|
684
951
|
* key: string
|
|
@@ -686,128 +953,158 @@ type IsPlainObject<A> = [A] extends [Record<string, any>]
|
|
|
686
953
|
*
|
|
687
954
|
* const makeConfig = (config: Config.Wrap<Options>): Config.Config<Options> =>
|
|
688
955
|
* Config.unwrap(config)
|
|
956
|
+
*
|
|
957
|
+
* const config = makeConfig({ key: Config.string("key") })
|
|
958
|
+
* const provider = ConfigProvider.fromUnknown({ key: "value" })
|
|
959
|
+
* Effect.runSync(config.parse(provider)) // => { key: "value" }
|
|
689
960
|
* ```
|
|
690
961
|
*
|
|
691
962
|
* @see {@link Wrap} – the utility type accepted by this function
|
|
692
963
|
*
|
|
693
|
-
* @category
|
|
964
|
+
* @category converting
|
|
694
965
|
* @since 2.0.0
|
|
695
966
|
*/
|
|
696
967
|
export const unwrap = <T>(wrapped: Wrap<T>): Config<T> => {
|
|
697
968
|
if (isConfig(wrapped)) return wrapped
|
|
698
|
-
return
|
|
699
|
-
const entries = Object.entries(wrapped)
|
|
700
|
-
const configs = entries.map(([key, config]) =>
|
|
701
|
-
unwrap(config as any).parse(provider, pathPrefix).pipe(Effect.map((value) => [key, value] as const))
|
|
702
|
-
)
|
|
703
|
-
return Effect.all(configs).pipe(Effect.map(Object.fromEntries))
|
|
704
|
-
})
|
|
969
|
+
return all(Rec.map(wrapped as Record<string, Wrap<any>>, (config) => unwrap(config))) as Config<T>
|
|
705
970
|
}
|
|
706
971
|
|
|
707
972
|
// -----------------------------------------------------------------------------
|
|
708
973
|
// schema
|
|
709
974
|
// -----------------------------------------------------------------------------
|
|
710
975
|
|
|
711
|
-
|
|
976
|
+
interface ConfigCursor {
|
|
977
|
+
readonly provider: ConfigProvider.ConfigProvider
|
|
978
|
+
readonly path: Path
|
|
979
|
+
readonly node: ConfigProvider.Node | undefined
|
|
980
|
+
readonly toString: () => string
|
|
981
|
+
}
|
|
982
|
+
|
|
983
|
+
const cursorToString = (): string => "<configuration>"
|
|
984
|
+
|
|
985
|
+
const loadCursor: (
|
|
712
986
|
provider: ConfigProvider.ConfigProvider,
|
|
713
987
|
path: Path
|
|
714
|
-
) => Effect.Effect<
|
|
715
|
-
provider
|
|
716
|
-
|
|
717
|
-
) {
|
|
718
|
-
|
|
719
|
-
|
|
720
|
-
|
|
721
|
-
|
|
722
|
-
|
|
723
|
-
|
|
724
|
-
|
|
725
|
-
|
|
726
|
-
|
|
727
|
-
|
|
728
|
-
|
|
729
|
-
|
|
730
|
-
|
|
731
|
-
|
|
732
|
-
|
|
733
|
-
|
|
734
|
-
|
|
735
|
-
|
|
736
|
-
|
|
737
|
-
|
|
738
|
-
|
|
739
|
-
|
|
988
|
+
) => Effect.Effect<ConfigCursor> = (provider, path) =>
|
|
989
|
+
provider.load(path).pipe(
|
|
990
|
+
Effect.orDie,
|
|
991
|
+
Effect.mapEager((node) => ({ provider, path, node, toString: cursorToString }))
|
|
992
|
+
)
|
|
993
|
+
|
|
994
|
+
const loadChildCursor = (cursor: ConfigCursor, segment: string | number): Effect.Effect<ConfigCursor> =>
|
|
995
|
+
loadCursor(cursor.provider, [...cursor.path, segment])
|
|
996
|
+
|
|
997
|
+
const getScalar = (node: ConfigProvider.Node | undefined): string | undefined => node?.value
|
|
998
|
+
|
|
999
|
+
const decodeFromCursor = (
|
|
1000
|
+
ast: SchemaAST.AST,
|
|
1001
|
+
decode: (cursor: ConfigCursor) => Effect.Effect<unknown, SchemaIssue.Issue>
|
|
1002
|
+
): SchemaAST.AST =>
|
|
1003
|
+
SchemaAST.decodeTo(
|
|
1004
|
+
SchemaAST.unknown,
|
|
1005
|
+
ast,
|
|
1006
|
+
new SchemaTransformation.Transformation(
|
|
1007
|
+
SchemaGetter.transformOrFail((input: unknown) => decode(input as ConfigCursor)),
|
|
1008
|
+
SchemaGetter.passthrough()
|
|
1009
|
+
)
|
|
1010
|
+
)
|
|
1011
|
+
|
|
1012
|
+
const isScalarInput = (ast: SchemaAST.AST): boolean => {
|
|
1013
|
+
switch (ast._tag) {
|
|
1014
|
+
case "Union":
|
|
1015
|
+
return ast.types.every(isScalarInput)
|
|
1016
|
+
case "Objects":
|
|
1017
|
+
case "Arrays":
|
|
1018
|
+
case "Suspend":
|
|
1019
|
+
return false
|
|
1020
|
+
default:
|
|
1021
|
+
return true
|
|
740
1022
|
}
|
|
741
|
-
}
|
|
1023
|
+
}
|
|
742
1024
|
|
|
743
|
-
const
|
|
1025
|
+
const hasProviderInput = (
|
|
744
1026
|
ast: SchemaAST.AST,
|
|
745
|
-
|
|
746
|
-
|
|
747
|
-
|
|
748
|
-
|
|
1027
|
+
node: ConfigProvider.Node | undefined
|
|
1028
|
+
): boolean => {
|
|
1029
|
+
switch (ast._tag) {
|
|
1030
|
+
case "Objects":
|
|
1031
|
+
return node?._tag === "Record"
|
|
1032
|
+
case "Arrays":
|
|
1033
|
+
return node?._tag === "Array"
|
|
1034
|
+
case "Union":
|
|
1035
|
+
return ast.types.some((ast) => hasProviderInput(ast, node))
|
|
1036
|
+
case "Suspend":
|
|
1037
|
+
return hasProviderInput(ast.thunk(), node)
|
|
1038
|
+
default:
|
|
1039
|
+
return getScalar(node) !== undefined
|
|
1040
|
+
}
|
|
1041
|
+
}
|
|
1042
|
+
|
|
1043
|
+
const toConfigCursorAST = (root: SchemaAST.AST): SchemaAST.AST => {
|
|
1044
|
+
const seen = new WeakSet<SchemaAST.AST>()
|
|
1045
|
+
const recur = SchemaAST.applyToSelfOrLastLinkEncoding((ast) => {
|
|
1046
|
+
seen.add(ast)
|
|
749
1047
|
switch (ast._tag) {
|
|
750
1048
|
case "Objects": {
|
|
751
|
-
const
|
|
752
|
-
|
|
753
|
-
|
|
754
|
-
|
|
755
|
-
const name = ps.name
|
|
756
|
-
if (typeof name === "string") {
|
|
757
|
-
const value = yield* recur(ps.type, provider, [...path, name])
|
|
758
|
-
if (value !== undefined) InternalRecord.assignProperty(out, name, value)
|
|
1049
|
+
const matchesIndex = ast.indexSignatures.map((is) => SchemaParser._is(is.parameter))
|
|
1050
|
+
const materialize = Effect.fnUntraced(function*(cursor: ConfigCursor) {
|
|
1051
|
+
if (cursor.node?._tag !== "Record") {
|
|
1052
|
+
return undefined
|
|
759
1053
|
}
|
|
760
|
-
|
|
761
|
-
|
|
762
|
-
|
|
763
|
-
|
|
764
|
-
|
|
765
|
-
|
|
766
|
-
|
|
767
|
-
|
|
768
|
-
if (value !== undefined) InternalRecord.assignProperty(out, key, value)
|
|
769
|
-
}
|
|
770
|
-
}
|
|
1054
|
+
const node = cursor.node
|
|
1055
|
+
const keys = new Set<string>()
|
|
1056
|
+
for (const property of ast.propertySignatures) {
|
|
1057
|
+
if (typeof property.name === "string") keys.add(property.name)
|
|
1058
|
+
}
|
|
1059
|
+
if (matchesIndex.length > 0) {
|
|
1060
|
+
for (const key of node.keys) {
|
|
1061
|
+
if (matchesIndex.some((matches) => matches(key))) keys.add(key)
|
|
771
1062
|
}
|
|
772
1063
|
}
|
|
773
|
-
|
|
774
|
-
|
|
1064
|
+
const out: Record<string, ConfigCursor> = {}
|
|
1065
|
+
for (const key of keys) {
|
|
1066
|
+
const child = yield* loadChildCursor(cursor, key)
|
|
1067
|
+
if (child.node !== undefined) InternalRecord.assignProperty(out, key, child)
|
|
1068
|
+
}
|
|
1069
|
+
return out
|
|
1070
|
+
})
|
|
1071
|
+
return decodeFromCursor(ast.recur(recur, (ast) => ast), materialize)
|
|
775
1072
|
}
|
|
776
1073
|
case "Arrays": {
|
|
777
|
-
const
|
|
778
|
-
|
|
779
|
-
|
|
780
|
-
if (stat && stat._tag === "Array" && stat.value !== undefined) {
|
|
781
|
-
return stat.value === "" ? [] : stat.value.split(",")
|
|
782
|
-
}
|
|
783
|
-
const out: Array<Schema.StringTree> = []
|
|
784
|
-
const length = stat && stat._tag === "Array" ? stat.length : ast.elements.length
|
|
785
|
-
for (let i = 0; i < length; i++) {
|
|
786
|
-
const element = ast.elements[i] ?? ast.rest[0]
|
|
787
|
-
if (element !== undefined) {
|
|
788
|
-
out.push(yield* recur(element, provider, [...path, i]))
|
|
1074
|
+
const materialize = Effect.fnUntraced(function*(cursor: ConfigCursor) {
|
|
1075
|
+
if (cursor.node?._tag !== "Array") {
|
|
1076
|
+
return undefined
|
|
789
1077
|
}
|
|
790
|
-
|
|
791
|
-
|
|
1078
|
+
const out: Array<ConfigCursor> = []
|
|
1079
|
+
for (let i = 0; i < cursor.node.length; i++) {
|
|
1080
|
+
out.push(yield* loadChildCursor(cursor, i))
|
|
1081
|
+
}
|
|
1082
|
+
return out
|
|
1083
|
+
})
|
|
1084
|
+
return decodeFromCursor(ast.recur(recur), materialize)
|
|
792
1085
|
}
|
|
793
1086
|
case "Union":
|
|
794
|
-
|
|
795
|
-
|
|
796
|
-
|
|
797
|
-
return
|
|
798
|
-
|
|
799
|
-
|
|
800
|
-
|
|
801
|
-
|
|
802
|
-
|
|
803
|
-
if (
|
|
804
|
-
|
|
805
|
-
// Container without a co-located value cannot satisfy a scalar request.
|
|
806
|
-
return undefined
|
|
1087
|
+
for (const member of ast.types) {
|
|
1088
|
+
recur(member)
|
|
1089
|
+
}
|
|
1090
|
+
return isScalarInput(ast)
|
|
1091
|
+
? decodeFromCursor(ast, (cursor) => Effect.succeed(getScalar(cursor.node)))
|
|
1092
|
+
: ast.recur(recur)
|
|
1093
|
+
case "Suspend": {
|
|
1094
|
+
const target = ast.thunk()
|
|
1095
|
+
// Force new branches so opaque encodings fail when the Config is constructed.
|
|
1096
|
+
if (!seen.has(target)) recur(target)
|
|
1097
|
+
return ast.recur(recur)
|
|
807
1098
|
}
|
|
1099
|
+
case "Declaration":
|
|
1100
|
+
case "Any":
|
|
1101
|
+
throw new globalThis.Error("Config.schema does not support opaque StringTree encodings", { cause: ast })
|
|
1102
|
+
default:
|
|
1103
|
+
return decodeFromCursor(ast, (cursor) => Effect.succeed(getScalar(cursor.node)))
|
|
808
1104
|
}
|
|
809
|
-
}
|
|
810
|
-
)
|
|
1105
|
+
})
|
|
1106
|
+
return recur(root)
|
|
1107
|
+
}
|
|
811
1108
|
|
|
812
1109
|
/**
|
|
813
1110
|
* Creates a `Config<T>` from a `Schema.Codec`.
|
|
@@ -826,12 +1123,47 @@ const recur: (
|
|
|
826
1123
|
* Convenience constructors such as `string`, `number`, and `boolean` delegate
|
|
827
1124
|
* to this API.
|
|
828
1125
|
*
|
|
829
|
-
* The codec is
|
|
830
|
-
*
|
|
1126
|
+
* The codec is converted to its canonical `StringTree` form. Its encoded shape
|
|
1127
|
+
* determines how provider data is loaded: scalar schemas read a co-located
|
|
1128
|
+
* scalar value, object schemas read declared properties and matching record
|
|
1129
|
+
* keys, and array schemas read indexed children. A mixed-shape union loads each
|
|
1130
|
+
* member according to that member's shape before applying the union's mode and
|
|
1131
|
+
* checks.
|
|
1132
|
+
*
|
|
1133
|
+
* At the config's lookup path, a missing node or a node that cannot provide the
|
|
1134
|
+
* representation required by the schema is decoded as `undefined`. Missing
|
|
1135
|
+
* object properties remain omitted so the schema's property semantics still
|
|
1136
|
+
* apply. Decoding success always wins, even when no provider input was found.
|
|
1137
|
+
* For example,
|
|
1138
|
+
* `Schema.UndefinedOr(Schema.String)` decodes to `undefined` and is not replaced
|
|
1139
|
+
* by {@link withDefault}. If decoding fails and no relevant representation was
|
|
1140
|
+
* found, the config is absent. Invalid data in a relevant representation is a
|
|
1141
|
+
* validation failure. Provider `SourceError`s are always failures.
|
|
1142
|
+
*
|
|
1143
|
+
* **Gotchas**
|
|
1144
|
+
*
|
|
1145
|
+
* Plain `Schema.Array` and `Schema.Record` schemas use structural provider
|
|
1146
|
+
* input. Use {@link Array} or {@link Record} when a flat separated string must
|
|
1147
|
+
* also be accepted.
|
|
1148
|
+
*
|
|
1149
|
+
* `Schema.Struct` and {@link all} describe different lookup models. An
|
|
1150
|
+
* explicitly present empty object is relevant input for a struct and required
|
|
1151
|
+
* fields are validated. The same empty parent container does not make an
|
|
1152
|
+
* `all` group present when all of its child configs are absent.
|
|
1153
|
+
*
|
|
1154
|
+
* The canonical `StringTree` encoding must expose a concrete scalar, object,
|
|
1155
|
+
* array, or union shape. Opaque encodings such as `Schema.Any`,
|
|
1156
|
+
* `Schema.Unknown`, `Schema.ObjectKeyword`, `Schema.Json`, and
|
|
1157
|
+
* `Schema.MutableJson` are rejected synchronously when this config is
|
|
1158
|
+
* constructed, including when they are nested in another schema. Suspended
|
|
1159
|
+
* recursive schemas remain supported when their eventual shape is concrete.
|
|
1160
|
+
* Declarations such as `Schema.URL` also remain supported when their canonical
|
|
1161
|
+
* encoding has a concrete shape. To read arbitrary JSON from one scalar value,
|
|
1162
|
+
* use `Schema.fromJsonString(Schema.Json)`.
|
|
831
1163
|
*
|
|
832
1164
|
* **Example** (Reading a structured config)
|
|
833
1165
|
*
|
|
834
|
-
* ```ts
|
|
1166
|
+
* ```ts import.meta.vitest
|
|
835
1167
|
* import { Config, ConfigProvider, Effect, Schema } from "effect"
|
|
836
1168
|
*
|
|
837
1169
|
* const DbConfig = Config.schema(
|
|
@@ -846,8 +1178,7 @@ const recur: (
|
|
|
846
1178
|
* db: { host: "localhost", port: 5432 }
|
|
847
1179
|
* })
|
|
848
1180
|
*
|
|
849
|
-
*
|
|
850
|
-
* // { host: "localhost", port: 5432 }
|
|
1181
|
+
* Effect.runSync(DbConfig.parse(provider)) // => { host: "localhost", port: 5432 }
|
|
851
1182
|
* ```
|
|
852
1183
|
*
|
|
853
1184
|
* @see {@link string} / {@link number} / {@link boolean} – shortcuts for
|
|
@@ -858,20 +1189,31 @@ const recur: (
|
|
|
858
1189
|
*/
|
|
859
1190
|
export function schema<T>(codec: Schema.ConstraintCodec<T, unknown>, path?: string | ConfigProvider.Path): Config<T> {
|
|
860
1191
|
const codecStringTree = Schema.toCodecStringTree(codec)
|
|
861
|
-
const
|
|
862
|
-
const
|
|
1192
|
+
const encodedAst = SchemaAST.toEncoded(codecStringTree.ast)
|
|
1193
|
+
const decodeCursor = SchemaParser.decodeUnknownEffect(
|
|
1194
|
+
Schema.make<Schema.Codec<T, ConfigCursor>>(toConfigCursorAST(codecStringTree.ast))
|
|
1195
|
+
)
|
|
863
1196
|
const localPath = typeof path === "string" ? [path] : path ?? []
|
|
864
1197
|
return make((provider, pathPrefix) => {
|
|
865
1198
|
const fullPath = [...pathPrefix, ...localPath]
|
|
866
|
-
return
|
|
867
|
-
Effect.flatMapEager((
|
|
868
|
-
|
|
869
|
-
|
|
870
|
-
|
|
871
|
-
|
|
1199
|
+
return catchSourceError(loadCursor(provider, fullPath), false).pipe(
|
|
1200
|
+
Effect.flatMapEager((cursor) => {
|
|
1201
|
+
const hasInput = hasProviderInput(encodedAst, cursor.node)
|
|
1202
|
+
return catchSourceError(
|
|
1203
|
+
decodeCursor(cursor).pipe(
|
|
1204
|
+
Effect.mapEager((value) => resolved(value, hasInput)),
|
|
1205
|
+
Effect.catchEager((issue) => {
|
|
1206
|
+
const error = new ConfigError(
|
|
1207
|
+
new Schema.SchemaError(fullPath.length > 0 ? new SchemaIssue.Pointer(fullPath, issue) : issue)
|
|
1208
|
+
)
|
|
1209
|
+
return hasInput
|
|
1210
|
+
? Effect.fail(evaluationFailure(error, true))
|
|
1211
|
+
: Effect.succeed(absent(error))
|
|
1212
|
+
})
|
|
1213
|
+
),
|
|
1214
|
+
hasInput
|
|
872
1215
|
)
|
|
873
|
-
)
|
|
874
|
-
Effect.mapErrorEager((cause) => new ConfigError(cause))
|
|
1216
|
+
})
|
|
875
1217
|
)
|
|
876
1218
|
})
|
|
877
1219
|
}
|
|
@@ -962,7 +1304,7 @@ export const LogLevel = Schema.Literals(LogLevel_.values)
|
|
|
962
1304
|
*
|
|
963
1305
|
* **Example** (Parsing a comma-separated record)
|
|
964
1306
|
*
|
|
965
|
-
* ```ts
|
|
1307
|
+
* ```ts import.meta.vitest
|
|
966
1308
|
* import { Config, ConfigProvider, Effect, Schema } from "effect"
|
|
967
1309
|
*
|
|
968
1310
|
* const schema = Config.Record(Schema.String, Schema.String)
|
|
@@ -975,14 +1317,14 @@ export const LogLevel = Schema.Literals(LogLevel_.values)
|
|
|
975
1317
|
* }
|
|
976
1318
|
* })
|
|
977
1319
|
*
|
|
978
|
-
*
|
|
979
|
-
* //
|
|
980
|
-
*
|
|
981
|
-
*
|
|
982
|
-
* // 'custom.attribute': 'value'
|
|
983
|
-
* // }
|
|
1320
|
+
* const result = Effect.runSync(config.parse(provider))
|
|
1321
|
+
* result["service.name"] // => "my-service"
|
|
1322
|
+
* result["service.version"] // => "1.0.0"
|
|
1323
|
+
* result["custom.attribute"] // => "value"
|
|
984
1324
|
* ```
|
|
985
1325
|
*
|
|
1326
|
+
* @see {@link Array} for separated or structural array input
|
|
1327
|
+
*
|
|
986
1328
|
* @category schemas
|
|
987
1329
|
* @since 4.0.0
|
|
988
1330
|
*/
|
|
@@ -991,35 +1333,31 @@ export const Record = <K extends Schema.Record.Key, V extends Schema.Constraint>
|
|
|
991
1333
|
readonly keyValueSeparator?: string | undefined
|
|
992
1334
|
}) => {
|
|
993
1335
|
const record = Schema.Record(key, value)
|
|
1336
|
+
const split = SchemaTransformation.splitKeyValue(options)
|
|
994
1337
|
const recordString = Schema.String.pipe(
|
|
995
|
-
Schema.decodeTo(
|
|
996
|
-
|
|
997
|
-
|
|
998
|
-
|
|
999
|
-
|
|
1338
|
+
Schema.decodeTo(Schema.toCodecStringTree(record), {
|
|
1339
|
+
decode: split.decode,
|
|
1340
|
+
encode: SchemaGetter.passthrough<Record<string, string>, Schema.StringTree>({ strict: false }).compose(
|
|
1341
|
+
split.encode
|
|
1342
|
+
)
|
|
1343
|
+
})
|
|
1000
1344
|
)
|
|
1001
1345
|
|
|
1002
1346
|
return Schema.Union([record, recordString])
|
|
1003
1347
|
}
|
|
1004
1348
|
|
|
1005
|
-
/**
|
|
1006
|
-
* @category schemas
|
|
1007
|
-
* @since 4.0.0
|
|
1008
|
-
*/
|
|
1009
1349
|
const ArrayConfig = <V extends Schema.Constraint>(value: V, options?: {
|
|
1010
1350
|
readonly separator?: string | undefined
|
|
1011
1351
|
}) => {
|
|
1012
1352
|
const array = Schema.Array(value)
|
|
1013
1353
|
const separator = options?.separator ?? ","
|
|
1014
1354
|
const arrayString = Schema.String.pipe(
|
|
1015
|
-
Schema.decodeTo(
|
|
1016
|
-
|
|
1017
|
-
{
|
|
1018
|
-
|
|
1019
|
-
|
|
1020
|
-
|
|
1021
|
-
),
|
|
1022
|
-
Schema.decodeTo(array)
|
|
1355
|
+
Schema.decodeTo(Schema.toCodecStringTree(array), {
|
|
1356
|
+
decode: SchemaGetter.split(options),
|
|
1357
|
+
encode: SchemaGetter.passthrough<ReadonlyArray<string>, Schema.StringTree>({ strict: false }).compose(
|
|
1358
|
+
SchemaGetter.transform((input) => input.join(separator))
|
|
1359
|
+
)
|
|
1360
|
+
})
|
|
1023
1361
|
)
|
|
1024
1362
|
|
|
1025
1363
|
return Schema.Union([arrayString, array])
|
|
@@ -1039,6 +1377,8 @@ export {
|
|
|
1039
1377
|
* Accepts either a JSON-like array from the provider or a flat string like
|
|
1040
1378
|
* `"a,b,c"`. The `separator` defaults to `","` and can be customized.
|
|
1041
1379
|
*
|
|
1380
|
+
* @see {@link Record} for separated or structural record input
|
|
1381
|
+
*
|
|
1042
1382
|
* @category schemas
|
|
1043
1383
|
* @since 4.0.0
|
|
1044
1384
|
*/
|
|
@@ -1061,7 +1401,7 @@ export {
|
|
|
1061
1401
|
* @since 2.0.0
|
|
1062
1402
|
*/
|
|
1063
1403
|
export function fail(err: SourceError | Schema.SchemaError) {
|
|
1064
|
-
return make(() => Effect.fail(new ConfigError(err)))
|
|
1404
|
+
return make(() => Effect.fail(evaluationFailure(new ConfigError(err), false)))
|
|
1065
1405
|
}
|
|
1066
1406
|
|
|
1067
1407
|
/**
|
|
@@ -1075,19 +1415,21 @@ export function fail(err: SourceError | Schema.SchemaError) {
|
|
|
1075
1415
|
*
|
|
1076
1416
|
* **Example** (Returning a constant fallback)
|
|
1077
1417
|
*
|
|
1078
|
-
* ```ts
|
|
1079
|
-
* import { Config } from "effect"
|
|
1418
|
+
* ```ts import.meta.vitest
|
|
1419
|
+
* import { Config, ConfigProvider, Effect } from "effect"
|
|
1080
1420
|
*
|
|
1081
1421
|
* const host = Config.string("HOST").pipe(
|
|
1082
1422
|
* Config.orElse(() => Config.succeed("localhost"))
|
|
1083
1423
|
* )
|
|
1424
|
+
* const provider = ConfigProvider.fromUnknown({})
|
|
1425
|
+
* Effect.runSync(host.parse(provider)) // => "localhost"
|
|
1084
1426
|
* ```
|
|
1085
1427
|
*
|
|
1086
1428
|
* @category constructors
|
|
1087
1429
|
* @since 2.0.0
|
|
1088
1430
|
*/
|
|
1089
1431
|
export function succeed<T>(value: T) {
|
|
1090
|
-
return make(() => Effect.succeed(value))
|
|
1432
|
+
return make(() => Effect.succeed(resolved(value, false)))
|
|
1091
1433
|
}
|
|
1092
1434
|
|
|
1093
1435
|
/**
|
|
@@ -1103,13 +1445,13 @@ export function succeed<T>(value: T) {
|
|
|
1103
1445
|
*
|
|
1104
1446
|
* **Example** (Reading a string config)
|
|
1105
1447
|
*
|
|
1106
|
-
* ```ts
|
|
1448
|
+
* ```ts import.meta.vitest
|
|
1107
1449
|
* import { Config, ConfigProvider, Effect } from "effect"
|
|
1108
1450
|
*
|
|
1109
1451
|
* const host = Config.string("HOST")
|
|
1110
1452
|
*
|
|
1111
1453
|
* const provider = ConfigProvider.fromUnknown({ HOST: "localhost" })
|
|
1112
|
-
*
|
|
1454
|
+
* Effect.runSync(host.parse(provider)) // => "localhost"
|
|
1113
1455
|
* ```
|
|
1114
1456
|
*
|
|
1115
1457
|
* @see {@link nonEmptyString} – rejects empty strings
|
|
@@ -1220,10 +1562,12 @@ export function int(name?: string) {
|
|
|
1220
1562
|
*
|
|
1221
1563
|
* **Example** (Restricting to a literal)
|
|
1222
1564
|
*
|
|
1223
|
-
* ```ts
|
|
1224
|
-
* import { Config } from "effect"
|
|
1565
|
+
* ```ts import.meta.vitest
|
|
1566
|
+
* import { Config, ConfigProvider, Effect } from "effect"
|
|
1225
1567
|
*
|
|
1226
1568
|
* const env = Config.literal("production", "ENV")
|
|
1569
|
+
* const provider = ConfigProvider.fromUnknown({ ENV: "production" })
|
|
1570
|
+
* Effect.runSync(env.parse(provider)) // => "production"
|
|
1227
1571
|
* ```
|
|
1228
1572
|
*
|
|
1229
1573
|
* @see {@link literals} – accepts multiple literal values
|
|
@@ -1247,10 +1591,12 @@ export function literal<L extends SchemaAST.LiteralValue>(literal: L, name?: str
|
|
|
1247
1591
|
*
|
|
1248
1592
|
* **Example** (Restricting to a set of literals)
|
|
1249
1593
|
*
|
|
1250
|
-
* ```ts
|
|
1251
|
-
* import { Config } from "effect"
|
|
1594
|
+
* ```ts import.meta.vitest
|
|
1595
|
+
* import { Config, ConfigProvider, Effect } from "effect"
|
|
1252
1596
|
*
|
|
1253
1597
|
* const env = Config.literals(["development", "production"], "ENV")
|
|
1598
|
+
* const provider = ConfigProvider.fromUnknown({ ENV: "development" })
|
|
1599
|
+
* Effect.runSync(env.parse(provider)) // => "development"
|
|
1254
1600
|
* ```
|
|
1255
1601
|
*
|
|
1256
1602
|
* @see {@link literal} for accepting one specific literal value
|
|
@@ -1279,13 +1625,10 @@ export function literals<const L extends ReadonlyArray<SchemaAST.LiteralValue>>(
|
|
|
1279
1625
|
*
|
|
1280
1626
|
* **Example** (Reading a boolean flag)
|
|
1281
1627
|
*
|
|
1282
|
-
* ```ts
|
|
1628
|
+
* ```ts import.meta.vitest
|
|
1283
1629
|
* import { Config, ConfigProvider, Effect } from "effect"
|
|
1284
1630
|
*
|
|
1285
|
-
* const program =
|
|
1286
|
-
* const flag = yield* Config.boolean("FEATURE_FLAG")
|
|
1287
|
-
* console.log(flag)
|
|
1288
|
-
* })
|
|
1631
|
+
* const program = Config.boolean("FEATURE_FLAG")
|
|
1289
1632
|
*
|
|
1290
1633
|
* const provider = ConfigProvider.fromEnv({
|
|
1291
1634
|
* env: {
|
|
@@ -1295,8 +1638,7 @@ export function literals<const L extends ReadonlyArray<SchemaAST.LiteralValue>>(
|
|
|
1295
1638
|
*
|
|
1296
1639
|
* Effect.runSync(
|
|
1297
1640
|
* program.pipe(Effect.provideService(ConfigProvider.ConfigProvider, provider))
|
|
1298
|
-
* )
|
|
1299
|
-
* // Output: true
|
|
1641
|
+
* ) // => true
|
|
1300
1642
|
* ```
|
|
1301
1643
|
*
|
|
1302
1644
|
* @see {@link Boolean} for the underlying boolean codec
|
|
@@ -1325,13 +1667,10 @@ export function boolean(name?: string) {
|
|
|
1325
1667
|
*
|
|
1326
1668
|
* **Example** (Reading a duration)
|
|
1327
1669
|
*
|
|
1328
|
-
* ```ts
|
|
1329
|
-
* import { Config, ConfigProvider, Effect } from "effect"
|
|
1670
|
+
* ```ts import.meta.vitest
|
|
1671
|
+
* import { Config, ConfigProvider, Duration, Effect } from "effect"
|
|
1330
1672
|
*
|
|
1331
|
-
* const program = Effect.
|
|
1332
|
-
* const duration = yield* Config.duration("DURATION")
|
|
1333
|
-
* console.log(duration)
|
|
1334
|
-
* })
|
|
1673
|
+
* const program = Config.duration("DURATION").pipe(Effect.map(Duration.toMillis))
|
|
1335
1674
|
*
|
|
1336
1675
|
* const provider = ConfigProvider.fromEnv({
|
|
1337
1676
|
* env: {
|
|
@@ -1341,8 +1680,7 @@ export function boolean(name?: string) {
|
|
|
1341
1680
|
*
|
|
1342
1681
|
* Effect.runSync(
|
|
1343
1682
|
* program.pipe(Effect.provideService(ConfigProvider.ConfigProvider, provider))
|
|
1344
|
-
* )
|
|
1345
|
-
* // Output: Duration { _tag: "millis", value: 10000 }
|
|
1683
|
+
* ) // => 10000
|
|
1346
1684
|
* ```
|
|
1347
1685
|
*
|
|
1348
1686
|
* @see {@link schema} for decoding configuration values with a custom codec
|
|
@@ -1367,13 +1705,10 @@ export function duration(name?: string) {
|
|
|
1367
1705
|
*
|
|
1368
1706
|
* **Example** (Reading a port)
|
|
1369
1707
|
*
|
|
1370
|
-
* ```ts
|
|
1708
|
+
* ```ts import.meta.vitest
|
|
1371
1709
|
* import { Config, ConfigProvider, Effect } from "effect"
|
|
1372
1710
|
*
|
|
1373
|
-
* const program =
|
|
1374
|
-
* const port = yield* Config.port("PORT")
|
|
1375
|
-
* console.log(port)
|
|
1376
|
-
* })
|
|
1711
|
+
* const program = Config.port("PORT")
|
|
1377
1712
|
*
|
|
1378
1713
|
* const provider = ConfigProvider.fromEnv({
|
|
1379
1714
|
* env: {
|
|
@@ -1383,8 +1718,7 @@ export function duration(name?: string) {
|
|
|
1383
1718
|
*
|
|
1384
1719
|
* Effect.runSync(
|
|
1385
1720
|
* program.pipe(Effect.provideService(ConfigProvider.ConfigProvider, provider))
|
|
1386
|
-
* )
|
|
1387
|
-
* // Output: 8080
|
|
1721
|
+
* ) // => 8080
|
|
1388
1722
|
* ```
|
|
1389
1723
|
*
|
|
1390
1724
|
* @see {@link int} for integer config values outside the port range
|
|
@@ -1413,13 +1747,10 @@ export function port(name?: string) {
|
|
|
1413
1747
|
*
|
|
1414
1748
|
* **Example** (Reading a log level)
|
|
1415
1749
|
*
|
|
1416
|
-
* ```ts
|
|
1750
|
+
* ```ts import.meta.vitest
|
|
1417
1751
|
* import { Config, ConfigProvider, Effect } from "effect"
|
|
1418
1752
|
*
|
|
1419
|
-
* const program =
|
|
1420
|
-
* const logLevel = yield* Config.logLevel("LOG_LEVEL")
|
|
1421
|
-
* console.log(logLevel)
|
|
1422
|
-
* })
|
|
1753
|
+
* const program = Config.logLevel("LOG_LEVEL")
|
|
1423
1754
|
*
|
|
1424
1755
|
* const provider = ConfigProvider.fromEnv({
|
|
1425
1756
|
* env: {
|
|
@@ -1429,8 +1760,7 @@ export function port(name?: string) {
|
|
|
1429
1760
|
*
|
|
1430
1761
|
* Effect.runSync(
|
|
1431
1762
|
* program.pipe(Effect.provideService(ConfigProvider.ConfigProvider, provider))
|
|
1432
|
-
* )
|
|
1433
|
-
* // Output: "Info"
|
|
1763
|
+
* ) // => "Info"
|
|
1434
1764
|
* ```
|
|
1435
1765
|
*
|
|
1436
1766
|
* @see {@link LogLevel} for the underlying log-level codec
|
|
@@ -1457,13 +1787,10 @@ export function logLevel(name?: string) {
|
|
|
1457
1787
|
*
|
|
1458
1788
|
* **Example** (Reading a secret)
|
|
1459
1789
|
*
|
|
1460
|
-
* ```ts
|
|
1790
|
+
* ```ts import.meta.vitest
|
|
1461
1791
|
* import { Config, ConfigProvider, Effect } from "effect"
|
|
1462
1792
|
*
|
|
1463
|
-
* const program = Effect.
|
|
1464
|
-
* const apiKey = yield* Config.redacted("API_KEY")
|
|
1465
|
-
* console.log(apiKey)
|
|
1466
|
-
* })
|
|
1793
|
+
* const program = Config.redacted("API_KEY").pipe(Effect.map(String))
|
|
1467
1794
|
*
|
|
1468
1795
|
* const provider = ConfigProvider.fromEnv({
|
|
1469
1796
|
* env: {
|
|
@@ -1473,8 +1800,7 @@ export function logLevel(name?: string) {
|
|
|
1473
1800
|
*
|
|
1474
1801
|
* Effect.runSync(
|
|
1475
1802
|
* program.pipe(Effect.provideService(ConfigProvider.ConfigProvider, provider))
|
|
1476
|
-
* )
|
|
1477
|
-
* // Output: <redacted>
|
|
1803
|
+
* ) // => "<redacted>"
|
|
1478
1804
|
* ```
|
|
1479
1805
|
*
|
|
1480
1806
|
* @see {@link string} for non-secret string settings
|
|
@@ -1503,13 +1829,10 @@ export function redacted(name?: string) {
|
|
|
1503
1829
|
*
|
|
1504
1830
|
* **Example** (Reading a URL)
|
|
1505
1831
|
*
|
|
1506
|
-
* ```ts
|
|
1832
|
+
* ```ts import.meta.vitest
|
|
1507
1833
|
* import { Config, ConfigProvider, Effect } from "effect"
|
|
1508
1834
|
*
|
|
1509
|
-
* const program = Effect.
|
|
1510
|
-
* const url = yield* Config.url("URL")
|
|
1511
|
-
* console.log(url)
|
|
1512
|
-
* })
|
|
1835
|
+
* const program = Config.url("URL").pipe(Effect.map((url) => url.href))
|
|
1513
1836
|
*
|
|
1514
1837
|
* const provider = ConfigProvider.fromEnv({
|
|
1515
1838
|
* env: {
|
|
@@ -1519,22 +1842,7 @@ export function redacted(name?: string) {
|
|
|
1519
1842
|
*
|
|
1520
1843
|
* Effect.runSync(
|
|
1521
1844
|
* program.pipe(Effect.provideService(ConfigProvider.ConfigProvider, provider))
|
|
1522
|
-
* )
|
|
1523
|
-
* // Output:
|
|
1524
|
-
* // URL {
|
|
1525
|
-
* // href: 'https://example.com/',
|
|
1526
|
-
* // origin: 'https://example.com',
|
|
1527
|
-
* // protocol: 'https:',
|
|
1528
|
-
* // username: '',
|
|
1529
|
-
* // password: '',
|
|
1530
|
-
* // host: 'example.com',
|
|
1531
|
-
* // hostname: 'example.com',
|
|
1532
|
-
* // port: '',
|
|
1533
|
-
* // pathname: '/',
|
|
1534
|
-
* // search: '',
|
|
1535
|
-
* // searchParams: URLSearchParams {},
|
|
1536
|
-
* // hash: ''
|
|
1537
|
-
* // }
|
|
1845
|
+
* ) // => "https://example.com/"
|
|
1538
1846
|
* ```
|
|
1539
1847
|
*
|
|
1540
1848
|
* @see {@link schema} for decoding configuration values with a custom codec
|
|
@@ -1563,14 +1871,13 @@ export function url(name?: string) {
|
|
|
1563
1871
|
*
|
|
1564
1872
|
* **Example** (Reading a date)
|
|
1565
1873
|
*
|
|
1566
|
-
* ```ts
|
|
1874
|
+
* ```ts import.meta.vitest
|
|
1567
1875
|
* import { Config, ConfigProvider, Effect } from "effect"
|
|
1568
1876
|
*
|
|
1569
1877
|
* const createdAt = Config.date("CREATED_AT")
|
|
1570
1878
|
*
|
|
1571
1879
|
* const provider = ConfigProvider.fromUnknown({ CREATED_AT: "2024-01-15" })
|
|
1572
|
-
*
|
|
1573
|
-
* // Date("2024-01-15T00:00:00.000Z")
|
|
1880
|
+
* Effect.runSync(createdAt.parse(provider)).toISOString() // => "2024-01-15T00:00:00.000Z"
|
|
1574
1881
|
* ```
|
|
1575
1882
|
*
|
|
1576
1883
|
* @category constructors
|
|
@@ -1598,7 +1905,7 @@ export function date(name?: string) {
|
|
|
1598
1905
|
*
|
|
1599
1906
|
* **Example** (Nesting a struct config under `"database"`)
|
|
1600
1907
|
*
|
|
1601
|
-
* ```ts
|
|
1908
|
+
* ```ts import.meta.vitest
|
|
1602
1909
|
* import { Config, ConfigProvider, Effect } from "effect"
|
|
1603
1910
|
*
|
|
1604
1911
|
* const dbConfig = Config.all({
|
|
@@ -1609,13 +1916,12 @@ export function date(name?: string) {
|
|
|
1609
1916
|
* const provider = ConfigProvider.fromUnknown({
|
|
1610
1917
|
* database: { host: "localhost", port: "5432" }
|
|
1611
1918
|
* })
|
|
1612
|
-
*
|
|
1613
|
-
* // { host: "localhost", port: 5432 }
|
|
1919
|
+
* Effect.runSync(dbConfig.parse(provider)) // => { host: "localhost", port: 5432 }
|
|
1614
1920
|
* ```
|
|
1615
1921
|
*
|
|
1616
1922
|
* **Example** (Reading env vars with a nested prefix)
|
|
1617
1923
|
*
|
|
1618
|
-
* ```ts
|
|
1924
|
+
* ```ts import.meta.vitest
|
|
1619
1925
|
* import { Config, ConfigProvider, Effect } from "effect"
|
|
1620
1926
|
*
|
|
1621
1927
|
* const host = Config.string("host").pipe(Config.nested("database"))
|
|
@@ -1623,7 +1929,7 @@ export function date(name?: string) {
|
|
|
1623
1929
|
* const provider = ConfigProvider.fromEnv({
|
|
1624
1930
|
* env: { database_host: "localhost" }
|
|
1625
1931
|
* })
|
|
1626
|
-
*
|
|
1932
|
+
* Effect.runSync(host.parse(provider)) // => "localhost"
|
|
1627
1933
|
* ```
|
|
1628
1934
|
*
|
|
1629
1935
|
* @see {@link all} – combine multiple configs into a struct
|
|
@@ -1651,7 +1957,7 @@ export const nested: {
|
|
|
1651
1957
|
*
|
|
1652
1958
|
* **Example** (Nesting a struct config under `"database"`)
|
|
1653
1959
|
*
|
|
1654
|
-
* ```ts
|
|
1960
|
+
* ```ts import.meta.vitest
|
|
1655
1961
|
* import { Config, ConfigProvider, Effect } from "effect"
|
|
1656
1962
|
*
|
|
1657
1963
|
* const dbConfig = Config.all({
|
|
@@ -1662,13 +1968,12 @@ export const nested: {
|
|
|
1662
1968
|
* const provider = ConfigProvider.fromUnknown({
|
|
1663
1969
|
* database: { host: "localhost", port: "5432" }
|
|
1664
1970
|
* })
|
|
1665
|
-
*
|
|
1666
|
-
* // { host: "localhost", port: 5432 }
|
|
1971
|
+
* Effect.runSync(dbConfig.parse(provider)) // => { host: "localhost", port: 5432 }
|
|
1667
1972
|
* ```
|
|
1668
1973
|
*
|
|
1669
1974
|
* **Example** (Reading env vars with a nested prefix)
|
|
1670
1975
|
*
|
|
1671
|
-
* ```ts
|
|
1976
|
+
* ```ts import.meta.vitest
|
|
1672
1977
|
* import { Config, ConfigProvider, Effect } from "effect"
|
|
1673
1978
|
*
|
|
1674
1979
|
* const host = Config.string("host").pipe(Config.nested("database"))
|
|
@@ -1676,7 +1981,7 @@ export const nested: {
|
|
|
1676
1981
|
* const provider = ConfigProvider.fromEnv({
|
|
1677
1982
|
* env: { database_host: "localhost" }
|
|
1678
1983
|
* })
|
|
1679
|
-
*
|
|
1984
|
+
* Effect.runSync(host.parse(provider)) // => "localhost"
|
|
1680
1985
|
* ```
|
|
1681
1986
|
*
|
|
1682
1987
|
* @see {@link all} – combine multiple configs into a struct
|
|
@@ -1704,7 +2009,7 @@ export const nested: {
|
|
|
1704
2009
|
*
|
|
1705
2010
|
* **Example** (Nesting a struct config under `"database"`)
|
|
1706
2011
|
*
|
|
1707
|
-
* ```ts
|
|
2012
|
+
* ```ts import.meta.vitest
|
|
1708
2013
|
* import { Config, ConfigProvider, Effect } from "effect"
|
|
1709
2014
|
*
|
|
1710
2015
|
* const dbConfig = Config.all({
|
|
@@ -1715,13 +2020,12 @@ export const nested: {
|
|
|
1715
2020
|
* const provider = ConfigProvider.fromUnknown({
|
|
1716
2021
|
* database: { host: "localhost", port: "5432" }
|
|
1717
2022
|
* })
|
|
1718
|
-
*
|
|
1719
|
-
* // { host: "localhost", port: 5432 }
|
|
2023
|
+
* Effect.runSync(dbConfig.parse(provider)) // => { host: "localhost", port: 5432 }
|
|
1720
2024
|
* ```
|
|
1721
2025
|
*
|
|
1722
2026
|
* **Example** (Reading env vars with a nested prefix)
|
|
1723
2027
|
*
|
|
1724
|
-
* ```ts
|
|
2028
|
+
* ```ts import.meta.vitest
|
|
1725
2029
|
* import { Config, ConfigProvider, Effect } from "effect"
|
|
1726
2030
|
*
|
|
1727
2031
|
* const host = Config.string("host").pipe(Config.nested("database"))
|
|
@@ -1729,7 +2033,7 @@ export const nested: {
|
|
|
1729
2033
|
* const provider = ConfigProvider.fromEnv({
|
|
1730
2034
|
* env: { database_host: "localhost" }
|
|
1731
2035
|
* })
|
|
1732
|
-
*
|
|
2036
|
+
* Effect.runSync(host.parse(provider)) // => "localhost"
|
|
1733
2037
|
* ```
|
|
1734
2038
|
*
|
|
1735
2039
|
* @see {@link all} – combine multiple configs into a struct
|
|
@@ -1742,5 +2046,5 @@ export const nested: {
|
|
|
1742
2046
|
} = dual(
|
|
1743
2047
|
2,
|
|
1744
2048
|
<A>(self: Config<A>, name: string): Config<A> =>
|
|
1745
|
-
make((provider, pathPrefix) => self
|
|
2049
|
+
make((provider, pathPrefix) => evaluateAt(self, provider, [...pathPrefix, name]))
|
|
1746
2050
|
)
|