effect 4.0.0-beta.102 → 4.0.0-beta.103
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 +166 -101
- 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 +729 -768
- 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 +336 -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 +115 -80
- 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 +151 -274
- 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 +9 -10
- 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 +132 -186
- package/dist/Duration.js.map +1 -1
- package/dist/Effect.d.ts +2841 -3247
- package/dist/Effect.d.ts.map +1 -1
- package/dist/Effect.js +1322 -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 +29 -21
- 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 +13 -55
- package/dist/ExecutionPlan.d.ts.map +1 -1
- package/dist/ExecutionPlan.js +7 -28
- 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 +85 -59
- package/dist/FiberSet.js.map +1 -1
- package/dist/FileSystem.d.ts +153 -264
- 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 +76 -145
- package/dist/Function.d.ts.map +1 -1
- package/dist/Function.js +40 -57
- 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 +228 -306
- 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 +195 -175
- 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 +290 -1636
- package/dist/Schedule.d.ts.map +1 -1
- package/dist/Schedule.js +162 -803
- 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 +644 -642
- package/dist/Schema.d.ts.map +1 -1
- package/dist/Schema.js +491 -527
- package/dist/Schema.js.map +1 -1
- package/dist/SchemaAST.d.ts +27 -50
- package/dist/SchemaAST.d.ts.map +1 -1
- package/dist/SchemaAST.js +366 -279
- 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 +123 -75
- 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.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 +117 -107
- 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 +2415 -2949
- package/dist/Stream.d.ts.map +1 -1
- package/dist/Stream.js +1078 -1381
- 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.map +1 -1
- package/dist/Take.js.map +1 -1
- package/dist/Terminal.d.ts +2 -2
- package/dist/Terminal.js +1 -1
- 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 +92 -127
- 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 +97 -66
- package/dist/TxReentrantLock.d.ts.map +1 -1
- package/dist/TxReentrantLock.js +67 -45
- 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 +4 -0
- 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.map +1 -1
- 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.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.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.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 +13 -9
- 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 +50 -18
- 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 +29 -29
- 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 +94 -117
- 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 +55 -51
- 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 +104 -64
- 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 +141 -75
- package/dist/unstable/ai/McpSchema.d.ts.map +1 -1
- package/dist/unstable/ai/McpSchema.js +58 -50
- 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 +694 -241
- 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 +112 -38
- package/dist/unstable/ai/Prompt.d.ts.map +1 -1
- package/dist/unstable/ai/Prompt.js +53 -17
- 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 +69 -76
- package/dist/unstable/cli/CliError.d.ts.map +1 -1
- package/dist/unstable/cli/CliError.js +57 -61
- 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 +705 -107
- package/dist/unstable/cli/Command.d.ts.map +1 -1
- package/dist/unstable/cli/Command.js +238 -42
- 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 +292 -78
- package/dist/unstable/cli/Param.d.ts.map +1 -1
- package/dist/unstable/cli/Param.js +128 -46
- 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 +344 -136
- 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 +23 -14
- 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.map +1 -1
- package/dist/unstable/cli/internal/auto-suggest.js.map +1 -1
- package/dist/unstable/cli/internal/command.js.map +1 -1
- package/dist/unstable/cli/internal/completions/bash.js.map +1 -1
- package/dist/unstable/cli/internal/completions/descriptor.js.map +1 -1
- 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.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 +2 -2
- package/dist/unstable/cli/internal/parser.js.map +1 -1
- 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.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 +5 -1
- 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.js +5 -5
- package/dist/unstable/cluster/MessageStorage.js.map +1 -1
- package/dist/unstable/cluster/Reply.d.ts.map +1 -1
- package/dist/unstable/cluster/Reply.js +4 -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 +16 -16
- package/dist/unstable/cluster/RunnerServer.js.map +1 -1
- package/dist/unstable/cluster/RunnerStorage.d.ts +2 -2
- package/dist/unstable/cluster/RunnerStorage.js +1 -1
- 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 +3 -2
- 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 +5 -5
- 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.map +1 -1
- 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.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/Msgpack.d.ts.map +1 -1
- package/dist/unstable/encoding/Msgpack.js +6 -8
- package/dist/unstable/encoding/Msgpack.js.map +1 -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 +58 -8
- package/dist/unstable/encoding/Sse.js.map +1 -1
- 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 +15 -15
- package/dist/unstable/eventlog/EventJournal.js +13 -13
- 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 +1 -1
- 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 +14 -6
- 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.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/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.map +1 -1
- package/dist/unstable/http/HttpClientRequest.d.ts.map +1 -1
- package/dist/unstable/http/HttpClientRequest.js +2 -0
- package/dist/unstable/http/HttpClientRequest.js.map +1 -1
- package/dist/unstable/http/HttpClientResponse.d.ts +4 -4
- package/dist/unstable/http/HttpClientResponse.js +2 -2
- 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 +32 -0
- 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.js +4 -4
- 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 +10 -0
- 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 +6 -6
- package/dist/unstable/http/Multipart.js +5 -5
- package/dist/unstable/http/Multipart.js.map +1 -1
- 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.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/preResponseHandler.js.map +1 -1
- 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 +10 -11
- 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 +11 -13
- package/dist/unstable/httpapi/HttpApiClient.js.map +1 -1
- package/dist/unstable/httpapi/HttpApiEndpoint.d.ts +42 -42
- package/dist/unstable/httpapi/HttpApiEndpoint.js.map +1 -1
- package/dist/unstable/httpapi/HttpApiError.d.ts +13 -13
- package/dist/unstable/httpapi/HttpApiError.js +13 -13
- package/dist/unstable/httpapi/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 +6 -6
- package/dist/unstable/httpapi/HttpApiSchema.js +4 -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 +13 -13
- package/dist/unstable/httpapi/OpenApi.js +13 -13
- 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 +12 -14
- package/dist/unstable/observability/OtlpExporter.d.ts.map +1 -1
- package/dist/unstable/observability/OtlpExporter.js +17 -4
- package/dist/unstable/observability/OtlpExporter.js.map +1 -1
- package/dist/unstable/observability/OtlpLogger.js.map +1 -1
- package/dist/unstable/observability/OtlpMetrics.d.ts +4 -1
- package/dist/unstable/observability/OtlpMetrics.d.ts.map +1 -1
- 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.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.js +6 -6
- 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 +91 -15
- package/dist/unstable/persistence/Persistence.js.map +1 -1
- package/dist/unstable/persistence/RateLimiter.d.ts +26 -15
- package/dist/unstable/persistence/RateLimiter.d.ts.map +1 -1
- package/dist/unstable/persistence/RateLimiter.js +24 -13
- package/dist/unstable/persistence/RateLimiter.js.map +1 -1
- package/dist/unstable/persistence/Redis.d.ts +2 -2
- package/dist/unstable/persistence/Redis.js +1 -1
- 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 +12 -12
- package/dist/unstable/rpc/RpcClient.d.ts.map +1 -1
- package/dist/unstable/rpc/RpcClient.js +12 -11
- package/dist/unstable/rpc/RpcClient.js.map +1 -1
- 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 +175 -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 +52 -50
- 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 +5 -5
- package/dist/unstable/schema/VariantSchema.js +2 -2
- 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 +9 -4
- 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 +2 -2
- package/dist/unstable/sql/SqlClient.js.map +1 -1
- package/dist/unstable/sql/SqlConnection.js.map +1 -1
- 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 +2 -2
- 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.js +15 -15
- 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 +6 -6
- 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 +1 -1
- 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 +5 -6
- 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 +409 -255
- package/src/Cause.ts +167 -277
- package/src/Channel.ts +891 -816
- 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 +615 -332
- package/src/ConfigProvider.ts +214 -120
- package/src/Console.ts +289 -39
- package/src/Context.ts +319 -378
- package/src/Cron.ts +68 -77
- package/src/Crypto.ts +13 -15
- package/src/Data.ts +60 -80
- package/src/DateTime.ts +564 -660
- package/src/Deferred.ts +253 -256
- package/src/Duration.ts +216 -308
- package/src/Effect.ts +2893 -3279
- package/src/Encoding.ts +22 -40
- package/src/Equal.ts +49 -39
- package/src/Equivalence.ts +103 -105
- package/src/ErrorReporter.ts +51 -27
- package/src/ExecutionPlan.ts +13 -55
- 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 +124 -82
- package/src/FileSystem.ts +155 -263
- package/src/Filter.ts +61 -33
- package/src/Formatter.ts +54 -56
- package/src/Function.ts +76 -145
- 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 +620 -786
- 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 +359 -260
- 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 +308 -1734
- package/src/Scheduler.ts +20 -7
- package/src/Schema.ts +716 -745
- package/src/SchemaAST.ts +466 -358
- package/src/SchemaError.ts +7 -6
- package/src/SchemaGetter.ts +242 -190
- package/src/SchemaIssue.ts +89 -275
- package/src/SchemaParser.ts +180 -93
- package/src/SchemaRepresentation.ts +22 -40
- package/src/SchemaTransformation.ts +129 -88
- package/src/Scope.ts +123 -151
- package/src/ScopedRef.ts +4 -4
- package/src/Semaphore.ts +152 -51
- package/src/Sink.ts +128 -113
- package/src/Stdio.ts +1 -1
- package/src/Stream.ts +2602 -3123
- 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/Terminal.ts +2 -2
- package/src/Tracer.ts +102 -55
- package/src/Trie.ts +287 -679
- package/src/Tuple.ts +92 -127
- 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 +97 -66
- 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 +6 -0
- package/src/internal/effect.ts +93 -48
- package/src/internal/persistence.ts +2 -0
- package/src/internal/references.ts +3 -2
- 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/toJsonSchemaDocument.ts +60 -6
- package/src/internal/schema/toRepresentation.ts +104 -119
- package/src/internal/trie.ts +10 -11
- package/src/testing/FastCheck.ts +8 -7
- package/src/testing/TestClock.ts +72 -30
- package/src/testing/TestConsole.ts +32 -31
- package/src/testing/TestSchema.ts +29 -29
- package/src/unstable/ai/AiError.ts +95 -118
- package/src/unstable/ai/AnthropicStructuredOutput.ts +1 -1
- package/src/unstable/ai/Chat.ts +132 -97
- package/src/unstable/ai/IdGenerator.ts +32 -28
- package/src/unstable/ai/LanguageModel.ts +107 -67
- package/src/unstable/ai/McpProtocol.ts +48 -0
- package/src/unstable/ai/McpSchema.ts +60 -50
- package/src/unstable/ai/McpServer.ts +930 -304
- package/src/unstable/ai/Model.ts +9 -20
- package/src/unstable/ai/OpenAiStructuredOutput.ts +1 -1
- package/src/unstable/ai/Prompt.ts +145 -43
- 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 +69 -76
- package/src/unstable/cli/CliOutput.ts +44 -58
- package/src/unstable/cli/Command.ts +705 -107
- 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 +292 -78
- package/src/unstable/cli/Primitive.ts +370 -149
- package/src/unstable/cli/Prompt.ts +28 -14
- package/src/unstable/cli/internal/lexer.ts +8 -2
- package/src/unstable/cli/internal/parser.ts +2 -2
- package/src/unstable/cluster/ClusterSchema.ts +8 -8
- package/src/unstable/cluster/ClusterWorkflowEngine.ts +5 -1
- 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 +15 -15
- package/src/unstable/cluster/Reply.ts +4 -6
- package/src/unstable/cluster/RunnerHealth.ts +1 -1
- package/src/unstable/cluster/RunnerServer.ts +41 -8
- package/src/unstable/cluster/RunnerStorage.ts +2 -2
- package/src/unstable/cluster/Runners.ts +23 -12
- package/src/unstable/cluster/Sharding.ts +7 -8
- 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 +11 -15
- package/src/unstable/encoding/Msgpack.ts +6 -8
- package/src/unstable/encoding/Sse.ts +98 -16
- package/src/unstable/eventlog/Event.ts +20 -20
- package/src/unstable/eventlog/EventGroup.ts +4 -4
- package/src/unstable/eventlog/EventJournal.ts +15 -15
- package/src/unstable/eventlog/EventLog.ts +3 -3
- package/src/unstable/eventlog/EventLogEncryption.ts +1 -1
- package/src/unstable/eventlog/EventLogMessage.ts +2 -2
- 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 +14 -6
- package/src/unstable/eventlog/EventLogSessionAuth.ts +1 -1
- 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/Headers.ts +2 -2
- package/src/unstable/http/HttpBody.ts +20 -5
- package/src/unstable/http/HttpClient.ts +83 -55
- package/src/unstable/http/HttpClientRequest.ts +2 -0
- package/src/unstable/http/HttpClientResponse.ts +4 -4
- 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 +95 -0
- 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 +4 -4
- package/src/unstable/http/HttpServerResponse.ts +30 -0
- package/src/unstable/http/HttpStaticServer.ts +35 -7
- package/src/unstable/http/Multipart.ts +6 -6
- package/src/unstable/http/Url.ts +33 -63
- package/src/unstable/http/UrlParams.ts +10 -18
- package/src/unstable/http/internal/compression.ts +196 -0
- package/src/unstable/httpapi/HttpApiBuilder.ts +10 -9
- package/src/unstable/httpapi/HttpApiClient.ts +14 -14
- package/src/unstable/httpapi/HttpApiEndpoint.ts +42 -42
- package/src/unstable/httpapi/HttpApiError.ts +13 -13
- 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 +6 -6
- package/src/unstable/httpapi/OpenApi.ts +13 -13
- package/src/unstable/observability/OtlpExporter.ts +31 -19
- package/src/unstable/observability/OtlpMetrics.ts +4 -1
- package/src/unstable/observability/OtlpResource.ts +26 -17
- 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 +6 -6
- package/src/unstable/persistence/Persistence.ts +126 -19
- package/src/unstable/persistence/RateLimiter.ts +26 -15
- package/src/unstable/persistence/Redis.ts +2 -2
- 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 +16 -15
- 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 +5 -5
- package/src/unstable/socket/Socket.ts +17 -4
- package/src/unstable/sql/SqlClient.ts +5 -6
- package/src/unstable/sql/SqlModel.ts +2 -2
- package/src/unstable/sql/SqlResolver.ts +5 -5
- package/src/unstable/sql/Statement.ts +24 -23
- package/src/unstable/workers/Transferable.ts +1 -1
- package/src/unstable/workers/Worker.ts +2 -2
- package/src/unstable/workers/WorkerError.ts +7 -7
- 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 +1 -1
- 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/src/internal/version.ts +0 -2
package/dist/Layer.js
CHANGED
|
@@ -21,7 +21,7 @@ const memoMapReuse = (entry, scope) => {
|
|
|
21
21
|
*
|
|
22
22
|
* **Example** (Checking whether a value is a layer)
|
|
23
23
|
*
|
|
24
|
-
* ```ts
|
|
24
|
+
* ```ts import.meta.vitest
|
|
25
25
|
* import { Context, Effect, Layer } from "effect"
|
|
26
26
|
*
|
|
27
27
|
* class Database extends Context.Service<Database, {
|
|
@@ -33,11 +33,11 @@ const memoMapReuse = (entry, scope) => {
|
|
|
33
33
|
* })
|
|
34
34
|
* const notALayer = { someProperty: "value" }
|
|
35
35
|
*
|
|
36
|
-
*
|
|
37
|
-
*
|
|
36
|
+
* Layer.isLayer(dbLayer) // => true
|
|
37
|
+
* Layer.isLayer(notALayer) // => false
|
|
38
38
|
* ```
|
|
39
39
|
*
|
|
40
|
-
* @category
|
|
40
|
+
* @category guards
|
|
41
41
|
* @since 2.0.0
|
|
42
42
|
*/
|
|
43
43
|
export const isLayer = u => hasProperty(u, TypeId);
|
|
@@ -67,7 +67,7 @@ const fromBuildUnsafe = build => {
|
|
|
67
67
|
*
|
|
68
68
|
* **Example** (Constructing a layer from a build function)
|
|
69
69
|
*
|
|
70
|
-
* ```ts
|
|
70
|
+
* ```ts import.meta.vitest
|
|
71
71
|
* import { Context, Effect, Layer } from "effect"
|
|
72
72
|
*
|
|
73
73
|
* class Database extends Context.Service<Database, {
|
|
@@ -81,6 +81,9 @@ const fromBuildUnsafe = build => {
|
|
|
81
81
|
* })
|
|
82
82
|
* )
|
|
83
83
|
* )
|
|
84
|
+
*
|
|
85
|
+
* const program = Database.use((database) => database.query("SELECT 1"))
|
|
86
|
+
* Effect.runSync(Effect.provide(program, databaseLayer)) // => "result"
|
|
84
87
|
* ```
|
|
85
88
|
*
|
|
86
89
|
* @category constructors
|
|
@@ -101,7 +104,7 @@ export const fromBuild = build => fromBuildUnsafe((memoMap, scope) => {
|
|
|
101
104
|
*
|
|
102
105
|
* **Example** (Memoizing layer construction)
|
|
103
106
|
*
|
|
104
|
-
* ```ts
|
|
107
|
+
* ```ts import.meta.vitest
|
|
105
108
|
* import { Context, Effect, Layer } from "effect"
|
|
106
109
|
*
|
|
107
110
|
* class Database extends Context.Service<Database, {
|
|
@@ -115,6 +118,9 @@ export const fromBuild = build => fromBuildUnsafe((memoMap, scope) => {
|
|
|
115
118
|
* })
|
|
116
119
|
* )
|
|
117
120
|
* )
|
|
121
|
+
*
|
|
122
|
+
* const program = Database.use((database) => database.query("SELECT 1"))
|
|
123
|
+
* Effect.runSync(Effect.provide(program, databaseLayer)) // => "result"
|
|
118
124
|
* ```
|
|
119
125
|
*
|
|
120
126
|
* @category constructors
|
|
@@ -174,7 +180,7 @@ class MemoMapImpl {
|
|
|
174
180
|
*
|
|
175
181
|
* **Example** (Creating a memo map unsafely)
|
|
176
182
|
*
|
|
177
|
-
* ```ts
|
|
183
|
+
* ```ts import.meta.vitest
|
|
178
184
|
* import { Context, Effect, Layer } from "effect"
|
|
179
185
|
*
|
|
180
186
|
* class Database extends Context.Service<Database, {
|
|
@@ -193,9 +199,12 @@ class MemoMapImpl {
|
|
|
193
199
|
*
|
|
194
200
|
* return Context.get(context, Database)
|
|
195
201
|
* })
|
|
202
|
+
*
|
|
203
|
+
* const database = Effect.runSync(Effect.scoped(program))
|
|
204
|
+
* Effect.runSync(database.query("SELECT 1")) // => "result"
|
|
196
205
|
* ```
|
|
197
206
|
*
|
|
198
|
-
* @category
|
|
207
|
+
* @category constructors
|
|
199
208
|
* @since 4.0.0
|
|
200
209
|
*/
|
|
201
210
|
export const makeMemoMapUnsafe = () => new MemoMapImpl();
|
|
@@ -213,7 +222,7 @@ export const makeMemoMapUnsafe = () => new MemoMapImpl();
|
|
|
213
222
|
* @see {@link forkMemoMap} for allocating the child memo map inside `Effect`
|
|
214
223
|
* @see {@link makeMemoMapUnsafe} for creating a root memo map without a parent
|
|
215
224
|
*
|
|
216
|
-
* @category
|
|
225
|
+
* @category constructors
|
|
217
226
|
* @since 4.0.0
|
|
218
227
|
*/
|
|
219
228
|
export const forkMemoMapUnsafe = parent => new MemoMapImpl(parent);
|
|
@@ -222,7 +231,7 @@ export const forkMemoMapUnsafe = parent => new MemoMapImpl(parent);
|
|
|
222
231
|
*
|
|
223
232
|
* **Example** (Creating a memo map in an effect)
|
|
224
233
|
*
|
|
225
|
-
* ```ts
|
|
234
|
+
* ```ts import.meta.vitest
|
|
226
235
|
* import { Context, Effect, Layer } from "effect"
|
|
227
236
|
*
|
|
228
237
|
* class Database extends Context.Service<Database, {
|
|
@@ -241,9 +250,12 @@ export const forkMemoMapUnsafe = parent => new MemoMapImpl(parent);
|
|
|
241
250
|
*
|
|
242
251
|
* return Context.get(context, Database)
|
|
243
252
|
* })
|
|
253
|
+
*
|
|
254
|
+
* const database = Effect.runSync(Effect.scoped(program))
|
|
255
|
+
* Effect.runSync(database.query("SELECT 1")) // => "result"
|
|
244
256
|
* ```
|
|
245
257
|
*
|
|
246
|
-
* @category
|
|
258
|
+
* @category constructors
|
|
247
259
|
* @since 2.0.0
|
|
248
260
|
*/
|
|
249
261
|
export const makeMemoMap = /*#__PURE__*/internalEffect.sync(makeMemoMapUnsafe);
|
|
@@ -261,7 +273,7 @@ export const makeMemoMap = /*#__PURE__*/internalEffect.sync(makeMemoMapUnsafe);
|
|
|
261
273
|
* @see {@link forkMemoMapUnsafe} for the synchronous constructor variant
|
|
262
274
|
* @see {@link buildWithMemoMap} for building layers with an explicit memo map
|
|
263
275
|
*
|
|
264
|
-
* @category
|
|
276
|
+
* @category constructors
|
|
265
277
|
* @since 4.0.0
|
|
266
278
|
*/
|
|
267
279
|
export const forkMemoMap = parent => internalEffect.sync(() => forkMemoMapUnsafe(parent));
|
|
@@ -280,7 +292,7 @@ export const forkMemoMap = parent => internalEffect.sync(() => forkMemoMapUnsafe
|
|
|
280
292
|
*
|
|
281
293
|
* @see {@link MemoMap} the memoization map type wrapped by this service
|
|
282
294
|
*
|
|
283
|
-
* @category
|
|
295
|
+
* @category services
|
|
284
296
|
* @since 3.13.0
|
|
285
297
|
*/
|
|
286
298
|
export class CurrentMemoMap extends /*#__PURE__*/Context.Service()("effect/Layer/CurrentMemoMap") {
|
|
@@ -295,7 +307,7 @@ export class CurrentMemoMap extends /*#__PURE__*/Context.Service()("effect/Layer
|
|
|
295
307
|
*
|
|
296
308
|
* **Example** (Building layers with an explicit memo map)
|
|
297
309
|
*
|
|
298
|
-
* ```ts
|
|
310
|
+
* ```ts import.meta.vitest
|
|
299
311
|
* import { Context, Effect, Layer } from "effect"
|
|
300
312
|
*
|
|
301
313
|
* class Database extends Context.Service<Database, {
|
|
@@ -306,6 +318,8 @@ export class CurrentMemoMap extends /*#__PURE__*/Context.Service()("effect/Layer
|
|
|
306
318
|
* readonly log: (msg: string) => Effect.Effect<void>
|
|
307
319
|
* }>()("Logger") {}
|
|
308
320
|
*
|
|
321
|
+
* const logs: Array<string> = []
|
|
322
|
+
*
|
|
309
323
|
* // Build layers with explicit memoization control
|
|
310
324
|
* const program = Effect.gen(function*() {
|
|
311
325
|
* const memoMap = yield* Layer.makeMemoMap
|
|
@@ -319,7 +333,7 @@ export class CurrentMemoMap extends /*#__PURE__*/Context.Service()("effect/Layer
|
|
|
319
333
|
*
|
|
320
334
|
* // Build logger layer with same memoization (reuses memo if same layer)
|
|
321
335
|
* const loggerLayer = Layer.succeed(Logger, {
|
|
322
|
-
* log: Effect.fn("Logger.log")((msg: string) => Effect.sync(() =>
|
|
336
|
+
* log: Effect.fn("Logger.log")((msg: string) => Effect.sync(() => logs.push(msg)))
|
|
323
337
|
* })
|
|
324
338
|
* const loggerContext = yield* Layer.buildWithMemoMap(
|
|
325
339
|
* loggerLayer,
|
|
@@ -332,9 +346,13 @@ export class CurrentMemoMap extends /*#__PURE__*/Context.Service()("effect/Layer
|
|
|
332
346
|
* logger: Context.get(loggerContext, Logger)
|
|
333
347
|
* }
|
|
334
348
|
* })
|
|
349
|
+
*
|
|
350
|
+
* const services = Effect.runSync(Effect.scoped(program))
|
|
351
|
+
* Effect.runSync(services.logger.log("ready"))
|
|
352
|
+
* logs // => ["ready"]
|
|
335
353
|
* ```
|
|
336
354
|
*
|
|
337
|
-
* @category
|
|
355
|
+
* @category destructors
|
|
338
356
|
* @since 2.0.0
|
|
339
357
|
*/
|
|
340
358
|
export const buildWithMemoMap = /*#__PURE__*/dual(3, (self, memoMap, scope) => internalEffect.provideService(internalEffect.map(self.build(memoMap, scope), Context.add(CurrentMemoMap, memoMap)), CurrentMemoMap, memoMap));
|
|
@@ -343,7 +361,7 @@ export const buildWithMemoMap = /*#__PURE__*/dual(3, (self, memoMap, scope) => i
|
|
|
343
361
|
*
|
|
344
362
|
* **Example** (Building a layer into a context)
|
|
345
363
|
*
|
|
346
|
-
* ```ts
|
|
364
|
+
* ```ts import.meta.vitest
|
|
347
365
|
* import { Context, Effect, Layer } from "effect"
|
|
348
366
|
*
|
|
349
367
|
* class Database extends Context.Service<Database, {
|
|
@@ -364,6 +382,8 @@ export const buildWithMemoMap = /*#__PURE__*/dual(3, (self, memoMap, scope) => i
|
|
|
364
382
|
*
|
|
365
383
|
* return yield* database.query("SELECT * FROM users")
|
|
366
384
|
* })
|
|
385
|
+
*
|
|
386
|
+
* Effect.runSync(Effect.scoped(program)) // => "result"
|
|
367
387
|
* ```
|
|
368
388
|
*
|
|
369
389
|
* @category destructors
|
|
@@ -385,22 +405,24 @@ export const build = self => core.withFiber(fiber => buildWithMemoMap(self, Curr
|
|
|
385
405
|
*
|
|
386
406
|
* **Example** (Building a layer with an explicit scope)
|
|
387
407
|
*
|
|
388
|
-
* ```ts
|
|
408
|
+
* ```ts import.meta.vitest
|
|
389
409
|
* import { Context, Effect, Layer, Scope } from "effect"
|
|
390
410
|
*
|
|
391
411
|
* class Database extends Context.Service<Database, {
|
|
392
412
|
* readonly query: (sql: string) => Effect.Effect<string>
|
|
393
413
|
* }>()("Database") {}
|
|
394
414
|
*
|
|
415
|
+
* const logs: Array<string> = []
|
|
416
|
+
*
|
|
395
417
|
* // Build a layer with explicit scope control
|
|
396
418
|
* const program = Effect.gen(function*() {
|
|
397
419
|
* const scope = yield* Effect.scope
|
|
398
420
|
*
|
|
399
421
|
* const dbLayer = Layer.effect(Database, Effect.gen(function*() {
|
|
400
|
-
*
|
|
422
|
+
* logs.push("Initializing database...")
|
|
401
423
|
* yield* Scope.addFinalizer(
|
|
402
424
|
* scope,
|
|
403
|
-
* Effect.sync(() =>
|
|
425
|
+
* Effect.sync(() => logs.push("Database closed"))
|
|
404
426
|
* )
|
|
405
427
|
* return { query: Effect.fn("Database.query")((sql: string) => Effect.succeed(`Result: ${sql}`)) }
|
|
406
428
|
* }))
|
|
@@ -412,6 +434,9 @@ export const build = self => core.withFiber(fiber => buildWithMemoMap(self, Curr
|
|
|
412
434
|
* return yield* database.query("SELECT * FROM users")
|
|
413
435
|
* // Database will be closed when scope is closed
|
|
414
436
|
* })
|
|
437
|
+
*
|
|
438
|
+
* Effect.runSync(Effect.scoped(program)) // => "Result: SELECT * FROM users"
|
|
439
|
+
* logs // => ["Initializing database...", "Database closed"]
|
|
415
440
|
* ```
|
|
416
441
|
*
|
|
417
442
|
* @category destructors
|
|
@@ -429,7 +454,7 @@ export const buildWithScope = /*#__PURE__*/dual(2, (self, scope) => core.withFib
|
|
|
429
454
|
*
|
|
430
455
|
* **Example** (Creating a layer from a service implementation)
|
|
431
456
|
*
|
|
432
|
-
* ```ts
|
|
457
|
+
* ```ts import.meta.vitest
|
|
433
458
|
* import { Context, Effect, Layer } from "effect"
|
|
434
459
|
*
|
|
435
460
|
* class Database extends Context.Service<Database, {
|
|
@@ -439,6 +464,8 @@ export const buildWithScope = /*#__PURE__*/dual(2, (self, scope) => core.withFib
|
|
|
439
464
|
* const DatabaseLive = Layer.succeed(Database, {
|
|
440
465
|
* query: Effect.fn("Database.query")((sql: string) => Effect.succeed(`Query result: ${sql}`))
|
|
441
466
|
* })
|
|
467
|
+
* const program = Database.use((database) => database.query("SELECT 1"))
|
|
468
|
+
* Effect.runSync(Effect.provide(program, DatabaseLive)) // => "Query result: SELECT 1"
|
|
442
469
|
* ```
|
|
443
470
|
*
|
|
444
471
|
* @see {@link sync} for constructing layers from lazy values
|
|
@@ -468,7 +495,7 @@ export const succeed = function () {
|
|
|
468
495
|
*
|
|
469
496
|
* **Example** (Providing multiple services from a context)
|
|
470
497
|
*
|
|
471
|
-
* ```ts
|
|
498
|
+
* ```ts import.meta.vitest
|
|
472
499
|
* import { Context, Effect, Layer } from "effect"
|
|
473
500
|
*
|
|
474
501
|
* class Database extends Context.Service<Database, {
|
|
@@ -479,15 +506,19 @@ export const succeed = function () {
|
|
|
479
506
|
* readonly log: (msg: string) => Effect.Effect<void>
|
|
480
507
|
* }>()("Logger") {}
|
|
481
508
|
*
|
|
509
|
+
* const logs: Array<string> = []
|
|
482
510
|
* const context = Context.make(Database, {
|
|
483
511
|
* query: Effect.fn("Database.query")((sql: string) => Effect.succeed("result"))
|
|
484
512
|
* }).pipe(
|
|
485
513
|
* Context.add(Logger, {
|
|
486
|
-
* log: (msg: string) => Effect.sync(() =>
|
|
514
|
+
* log: (msg: string) => Effect.sync(() => logs.push(msg))
|
|
487
515
|
* })
|
|
488
516
|
* )
|
|
489
517
|
*
|
|
490
518
|
* const layer = Layer.succeedContext(context)
|
|
519
|
+
* const program = Logger.use((logger) => logger.log("ready"))
|
|
520
|
+
* Effect.runSync(Effect.provide(program, layer))
|
|
521
|
+
* logs // => ["ready"]
|
|
491
522
|
* ```
|
|
492
523
|
*
|
|
493
524
|
* @see {@link succeed} for providing a single service from a value
|
|
@@ -506,14 +537,12 @@ export const succeedContext = context => fromBuildUnsafe(constant(internalEffect
|
|
|
506
537
|
*
|
|
507
538
|
* **Example** (Disabling optional lifecycle work)
|
|
508
539
|
*
|
|
509
|
-
* ```ts
|
|
510
|
-
* import {
|
|
540
|
+
* ```ts import.meta.vitest
|
|
541
|
+
* import { Context, Effect, Layer, Option } from "effect"
|
|
511
542
|
*
|
|
512
|
-
*
|
|
513
|
-
*
|
|
514
|
-
*
|
|
515
|
-
* ? Layer.effectDiscard(Console.log("application starting"))
|
|
516
|
-
* : Layer.empty
|
|
543
|
+
* const Service = Context.Service<string>("Service")
|
|
544
|
+
* const context = Effect.runSync(Effect.scoped(Layer.build(Layer.empty)))
|
|
545
|
+
* Context.getOption(context, Service) // => Option.none()
|
|
517
546
|
* ```
|
|
518
547
|
*
|
|
519
548
|
* @see {@link effectDiscard} for running an effect while providing no services
|
|
@@ -537,7 +566,7 @@ export const empty = /*#__PURE__*/succeedContext(/*#__PURE__*/Context.empty());
|
|
|
537
566
|
*
|
|
538
567
|
* **Example** (Lazily providing a service)
|
|
539
568
|
*
|
|
540
|
-
* ```ts
|
|
569
|
+
* ```ts import.meta.vitest
|
|
541
570
|
* import { Context, Effect, Layer } from "effect"
|
|
542
571
|
*
|
|
543
572
|
* class Database extends Context.Service<Database, {
|
|
@@ -547,6 +576,8 @@ export const empty = /*#__PURE__*/succeedContext(/*#__PURE__*/Context.empty());
|
|
|
547
576
|
* const layer = Layer.sync(Database, () => ({
|
|
548
577
|
* query: (sql: string) => Effect.succeed(`Query: ${sql}`)
|
|
549
578
|
* }))
|
|
579
|
+
* const program = Database.use((database) => database.query("SELECT 1"))
|
|
580
|
+
* Effect.runSync(Effect.provide(program, layer)) // => "Query: SELECT 1"
|
|
550
581
|
* ```
|
|
551
582
|
*
|
|
552
583
|
* @see {@link succeed} for constructing layers from static values
|
|
@@ -575,7 +606,7 @@ export const sync = function () {
|
|
|
575
606
|
*
|
|
576
607
|
* **Example** (Lazily providing a context)
|
|
577
608
|
*
|
|
578
|
-
* ```ts
|
|
609
|
+
* ```ts import.meta.vitest
|
|
579
610
|
* import { Context, Effect, Layer } from "effect"
|
|
580
611
|
*
|
|
581
612
|
* class Database extends Context.Service<Database, {
|
|
@@ -587,6 +618,8 @@ export const sync = function () {
|
|
|
587
618
|
* query: (sql: string) => Effect.succeed(`Query: ${sql}`)
|
|
588
619
|
* })
|
|
589
620
|
* )
|
|
621
|
+
* const program = Database.use((database) => database.query("SELECT 1"))
|
|
622
|
+
* Effect.runSync(Effect.provide(program, layer)) // => "Query: SELECT 1"
|
|
590
623
|
* ```
|
|
591
624
|
*
|
|
592
625
|
* @see {@link sync} for lazily providing a single service
|
|
@@ -612,7 +645,7 @@ export const syncContext = evaluate => fromBuildMemo(constant(internalEffect.syn
|
|
|
612
645
|
*
|
|
613
646
|
* **Example** (Creating a layer from an effect)
|
|
614
647
|
*
|
|
615
|
-
* ```ts
|
|
648
|
+
* ```ts import.meta.vitest
|
|
616
649
|
* import { Context, Effect, Layer } from "effect"
|
|
617
650
|
*
|
|
618
651
|
* class Database extends Context.Service<Database, {
|
|
@@ -624,6 +657,8 @@ export const syncContext = evaluate => fromBuildMemo(constant(internalEffect.syn
|
|
|
624
657
|
* query: (sql: string) => Effect.succeed(`Query: ${sql}`)
|
|
625
658
|
* }))
|
|
626
659
|
* )
|
|
660
|
+
* const program = Database.use((database) => database.query("SELECT 1"))
|
|
661
|
+
* Effect.runSync(Effect.provide(program, layer)) // => "Query: SELECT 1"
|
|
627
662
|
* ```
|
|
628
663
|
*
|
|
629
664
|
* @see {@link effectContext} for effectfully providing multiple services
|
|
@@ -655,7 +690,7 @@ const effectImpl = (service, effect) => effectContext(internalEffect.map(effect,
|
|
|
655
690
|
*
|
|
656
691
|
* **Example** (Creating a layer from an effectful context)
|
|
657
692
|
*
|
|
658
|
-
* ```ts
|
|
693
|
+
* ```ts import.meta.vitest
|
|
659
694
|
* import { Context, Effect, Layer } from "effect"
|
|
660
695
|
*
|
|
661
696
|
* class Database extends Context.Service<
|
|
@@ -668,6 +703,8 @@ const effectImpl = (service, effect) => effectContext(internalEffect.map(effect,
|
|
|
668
703
|
* query: (sql: string) => Effect.succeed(`Query: ${sql}`)
|
|
669
704
|
* }))
|
|
670
705
|
* )
|
|
706
|
+
* const program = Database.use((database) => database.query("SELECT 1"))
|
|
707
|
+
* Effect.runSync(Effect.provide(program, layer)) // => "Query: SELECT 1"
|
|
671
708
|
* ```
|
|
672
709
|
*
|
|
673
710
|
* @see {@link effect} for effectfully providing a single service
|
|
@@ -687,14 +724,17 @@ export const effectContext = effect => fromBuildMemo((_, scope) => Scope.provide
|
|
|
687
724
|
*
|
|
688
725
|
* **Example** (Running an effect during layer construction)
|
|
689
726
|
*
|
|
690
|
-
* ```ts
|
|
727
|
+
* ```ts import.meta.vitest
|
|
691
728
|
* import { Effect, Layer } from "effect"
|
|
692
729
|
*
|
|
730
|
+
* const logs: Array<string> = []
|
|
693
731
|
* const initLayer = Layer.effectDiscard(
|
|
694
732
|
* Effect.sync(() => {
|
|
695
|
-
*
|
|
733
|
+
* logs.push("Initializing application...")
|
|
696
734
|
* })
|
|
697
735
|
* )
|
|
736
|
+
* Effect.runSync(Effect.scoped(Layer.build(initLayer)))
|
|
737
|
+
* logs // => ["Initializing application..."]
|
|
698
738
|
* ```
|
|
699
739
|
*
|
|
700
740
|
* @see {@link empty} for a no-op layer that performs no construction work
|
|
@@ -713,8 +753,8 @@ export const effectDiscard = effect => effectContext(internalEffect.as(effect, C
|
|
|
713
753
|
*
|
|
714
754
|
* **Example** (Choosing a layer lazily)
|
|
715
755
|
*
|
|
716
|
-
* ```ts
|
|
717
|
-
* import { Context, Layer } from "effect"
|
|
756
|
+
* ```ts import.meta.vitest
|
|
757
|
+
* import { Context, Effect, Layer } from "effect"
|
|
718
758
|
*
|
|
719
759
|
* class Config extends Context.Service<Config, string>()("Config") {}
|
|
720
760
|
*
|
|
@@ -725,6 +765,7 @@ export const effectDiscard = effect => effectContext(internalEffect.as(effect, C
|
|
|
725
765
|
* ? Layer.succeed(Config, "https://api.example.com")
|
|
726
766
|
* : Layer.succeed(Config, "http://localhost:3000")
|
|
727
767
|
* )
|
|
768
|
+
* Effect.runSync(Effect.provide(Config, layer)) // => "https://api.example.com"
|
|
728
769
|
* ```
|
|
729
770
|
*
|
|
730
771
|
* @category constructors
|
|
@@ -746,7 +787,7 @@ export const suspend = evaluate => fromBuildMemo((memoMap, scope) => internalEff
|
|
|
746
787
|
*
|
|
747
788
|
* **Example** (Unwrapping an effectful layer)
|
|
748
789
|
*
|
|
749
|
-
* ```ts
|
|
790
|
+
* ```ts import.meta.vitest
|
|
750
791
|
* import { Context, Effect, Layer } from "effect"
|
|
751
792
|
*
|
|
752
793
|
* class Database extends Context.Service<Database, {
|
|
@@ -758,6 +799,8 @@ export const suspend = evaluate => fromBuildMemo((memoMap, scope) => internalEff
|
|
|
758
799
|
* )
|
|
759
800
|
*
|
|
760
801
|
* const unwrappedLayer = Layer.unwrap(layerEffect)
|
|
802
|
+
* const program = Database.use((database) => database.query("SELECT 1"))
|
|
803
|
+
* Effect.runSync(Effect.provide(program, unwrappedLayer)) // => "result"
|
|
761
804
|
* ```
|
|
762
805
|
*
|
|
763
806
|
* @category converting
|
|
@@ -791,7 +834,7 @@ const mergeAllEffect = (layers, memoMap, scope) => {
|
|
|
791
834
|
*
|
|
792
835
|
* **Example** (Merging independent layers)
|
|
793
836
|
*
|
|
794
|
-
* ```ts
|
|
837
|
+
* ```ts import.meta.vitest
|
|
795
838
|
* import { Context, Effect, Layer } from "effect"
|
|
796
839
|
*
|
|
797
840
|
* class Database extends Context.Service<Database, {
|
|
@@ -805,11 +848,15 @@ const mergeAllEffect = (layers, memoMap, scope) => {
|
|
|
805
848
|
* const dbLayer = Layer.succeed(Database, {
|
|
806
849
|
* query: Effect.fn("Database.query")((sql: string) => Effect.succeed("result"))
|
|
807
850
|
* })
|
|
851
|
+
* const logs: Array<string> = []
|
|
808
852
|
* const loggerLayer = Layer.succeed(Logger, {
|
|
809
|
-
* log: Effect.fn("Logger.log")((msg: string) => Effect.sync(() =>
|
|
853
|
+
* log: Effect.fn("Logger.log")((msg: string) => Effect.sync(() => logs.push(msg)))
|
|
810
854
|
* })
|
|
811
855
|
*
|
|
812
856
|
* const mergedLayer = Layer.mergeAll(dbLayer, loggerLayer)
|
|
857
|
+
* const program = Logger.use((logger) => logger.log("ready"))
|
|
858
|
+
* Effect.runSync(Effect.provide(program, mergedLayer))
|
|
859
|
+
* logs // => ["ready"]
|
|
813
860
|
* ```
|
|
814
861
|
*
|
|
815
862
|
* @see {@link merge} for merging one layer with another layer or array
|
|
@@ -835,7 +882,7 @@ export const mergeAll = (...layers) => fromBuild((memoMap, scope) => mergeAllEff
|
|
|
835
882
|
*
|
|
836
883
|
* **Example** (Merging two layers)
|
|
837
884
|
*
|
|
838
|
-
* ```ts
|
|
885
|
+
* ```ts import.meta.vitest
|
|
839
886
|
* import { Context, Effect, Layer } from "effect"
|
|
840
887
|
*
|
|
841
888
|
* class Database extends Context.Service<Database, {
|
|
@@ -850,10 +897,12 @@ export const mergeAll = (...layers) => fromBuild((memoMap, scope) => mergeAllEff
|
|
|
850
897
|
* query: Effect.fn("Database.query")((sql: string) => Effect.succeed("result"))
|
|
851
898
|
* })
|
|
852
899
|
* const loggerLayer = Layer.succeed(Logger, {
|
|
853
|
-
* log: Effect.fn("Logger.log")((
|
|
900
|
+
* log: Effect.fn("Logger.log")((_msg: string) => Effect.void)
|
|
854
901
|
* })
|
|
855
902
|
*
|
|
856
903
|
* const mergedLayer = Layer.merge(dbLayer, loggerLayer)
|
|
904
|
+
* const program = Database.use((database) => database.query("SELECT 1"))
|
|
905
|
+
* Effect.runSync(Effect.provide(program, mergedLayer)) // => "result"
|
|
857
906
|
* ```
|
|
858
907
|
*
|
|
859
908
|
* @see {@link mergeAll} for merging several layers at once
|
|
@@ -878,7 +927,7 @@ const provideWith = (self, that, f) => fromBuild((memoMap, scope) => internalEff
|
|
|
878
927
|
*
|
|
879
928
|
* **Example** (Providing layer dependencies)
|
|
880
929
|
*
|
|
881
|
-
* ```ts
|
|
930
|
+
* ```ts import.meta.vitest
|
|
882
931
|
* import { Context, Effect, Layer } from "effect"
|
|
883
932
|
*
|
|
884
933
|
* class Database extends Context.Service<Database, {
|
|
@@ -901,8 +950,9 @@ const provideWith = (self, that, f) => fromBuild((memoMap, scope) => internalEff
|
|
|
901
950
|
* query: Effect.fn("Database.query")((sql: string) => Effect.succeed(`DB: ${sql}`))
|
|
902
951
|
* })
|
|
903
952
|
*
|
|
953
|
+
* const logs: Array<string> = []
|
|
904
954
|
* const loggerLayer = Layer.succeed(Logger, {
|
|
905
|
-
* log: Effect.fn("Logger.log")((msg: string) => Effect.sync(() =>
|
|
955
|
+
* log: Effect.fn("Logger.log")((msg: string) => Effect.sync(() => logs.push(`[LOG] ${msg}`)))
|
|
906
956
|
* })
|
|
907
957
|
*
|
|
908
958
|
* // UserService depends on Database and Logger
|
|
@@ -933,6 +983,8 @@ const provideWith = (self, that, f) => fromBuild((memoMap, scope) => internalEff
|
|
|
933
983
|
* }).pipe(
|
|
934
984
|
* Effect.provide(userServiceWithDependencies)
|
|
935
985
|
* )
|
|
986
|
+
* Effect.runSync(program) // => { id: "123", name: "DB: SELECT * FROM users WHERE id = 123" }
|
|
987
|
+
* logs // => ["[LOG] Looking up user 123"]
|
|
936
988
|
* ```
|
|
937
989
|
*
|
|
938
990
|
* @see {@link provideMerge} for retaining the dependency services
|
|
@@ -956,7 +1008,7 @@ export const provide = /*#__PURE__*/dual(2, (self, that) => provideWith(self, th
|
|
|
956
1008
|
*
|
|
957
1009
|
* **Example** (Providing dependencies while retaining services)
|
|
958
1010
|
*
|
|
959
|
-
* ```ts
|
|
1011
|
+
* ```ts import.meta.vitest
|
|
960
1012
|
* import { Context, Effect, Layer } from "effect"
|
|
961
1013
|
*
|
|
962
1014
|
* class Database extends Context.Service<Database, {
|
|
@@ -979,8 +1031,9 @@ export const provide = /*#__PURE__*/dual(2, (self, that) => provideWith(self, th
|
|
|
979
1031
|
* query: Effect.fn("Database.query")((sql: string) => Effect.succeed(`DB: ${sql}`))
|
|
980
1032
|
* })
|
|
981
1033
|
*
|
|
1034
|
+
* const logs: Array<string> = []
|
|
982
1035
|
* const loggerLayer = Layer.succeed(Logger, {
|
|
983
|
-
* log: Effect.fn("Logger.log")((msg: string) => Effect.sync(() =>
|
|
1036
|
+
* log: Effect.fn("Logger.log")((msg: string) => Effect.sync(() => logs.push(`[LOG] ${msg}`)))
|
|
984
1037
|
* })
|
|
985
1038
|
*
|
|
986
1039
|
* // UserService depends on Database and Logger
|
|
@@ -1017,6 +1070,8 @@ export const provide = /*#__PURE__*/dual(2, (self, that) => provideWith(self, th
|
|
|
1017
1070
|
* }).pipe(
|
|
1018
1071
|
* Effect.provide(allServicesLayer)
|
|
1019
1072
|
* )
|
|
1073
|
+
* Effect.runSync(program) // => { id: "123", name: "DB: SELECT * FROM users WHERE id = 123" }
|
|
1074
|
+
* logs // => ["[LOG] Looking up user 123", "[LOG] Found user: DB: SELECT * FROM users WHERE id = 123"]
|
|
1020
1075
|
* ```
|
|
1021
1076
|
*
|
|
1022
1077
|
* @see {@link provide} for keeping dependency services private
|
|
@@ -1030,7 +1085,7 @@ export const provideMerge = /*#__PURE__*/dual(2, (self, that) => provideWith(sel
|
|
|
1030
1085
|
*
|
|
1031
1086
|
* **Example** (Creating services from layer output)
|
|
1032
1087
|
*
|
|
1033
|
-
* ```ts
|
|
1088
|
+
* ```ts import.meta.vitest
|
|
1034
1089
|
* import { Context, Effect, Layer } from "effect"
|
|
1035
1090
|
*
|
|
1036
1091
|
* class Config extends Context.Service<Config, {
|
|
@@ -1046,6 +1101,8 @@ export const provideMerge = /*#__PURE__*/dual(2, (self, that) => provideWith(sel
|
|
|
1046
1101
|
* readonly log: (msg: string) => Effect.Effect<void>
|
|
1047
1102
|
* }>()("Logger") {}
|
|
1048
1103
|
*
|
|
1104
|
+
* const logs: Array<string> = []
|
|
1105
|
+
*
|
|
1049
1106
|
* // Base config layer
|
|
1050
1107
|
* const configLayer = Layer.succeed(Config, {
|
|
1051
1108
|
* dbUrl: "postgres://localhost:5432/mydb",
|
|
@@ -1069,8 +1126,8 @@ export const provideMerge = /*#__PURE__*/dual(2, (self, that) => provideWith(sel
|
|
|
1069
1126
|
* const loggerLayer = Layer.succeed(Logger, {
|
|
1070
1127
|
* log: Effect.fn("Logger.log")((msg: string) =>
|
|
1071
1128
|
* config.logLevel === "debug"
|
|
1072
|
-
* ? Effect.sync(() =>
|
|
1073
|
-
* : Effect.sync(() =>
|
|
1129
|
+
* ? Effect.sync(() => logs.push(`[DEBUG] ${msg}`))
|
|
1130
|
+
* : Effect.sync(() => logs.push(msg))
|
|
1074
1131
|
* )
|
|
1075
1132
|
* })
|
|
1076
1133
|
*
|
|
@@ -1091,6 +1148,8 @@ export const provideMerge = /*#__PURE__*/dual(2, (self, that) => provideWith(sel
|
|
|
1091
1148
|
* }).pipe(
|
|
1092
1149
|
* Effect.provide(dynamicServiceLayer)
|
|
1093
1150
|
* )
|
|
1151
|
+
* Effect.runSync(program) // => "Querying postgres://localhost:5432/mydb: SELECT * FROM users"
|
|
1152
|
+
* logs // => ["[DEBUG] Starting database query"]
|
|
1094
1153
|
* ```
|
|
1095
1154
|
*
|
|
1096
1155
|
* @category sequencing
|
|
@@ -1172,8 +1231,8 @@ export const tapCause = /*#__PURE__*/dual(2, (self, f) => fromBuild((memoMap, sc
|
|
|
1172
1231
|
*
|
|
1173
1232
|
* **Example** (Converting layer failures to defects)
|
|
1174
1233
|
*
|
|
1175
|
-
* ```ts
|
|
1176
|
-
* import { Context, Data, Effect, Layer } from "effect"
|
|
1234
|
+
* ```ts import.meta.vitest
|
|
1235
|
+
* import { Context, Data, Effect, Exit, Layer } from "effect"
|
|
1177
1236
|
*
|
|
1178
1237
|
* class DatabaseError extends Data.TaggedError("DatabaseError")<{
|
|
1179
1238
|
* message: string
|
|
@@ -1184,10 +1243,11 @@ export const tapCause = /*#__PURE__*/dual(2, (self, f) => fromBuild((memoMap, sc
|
|
|
1184
1243
|
* }>()("Database") {}
|
|
1185
1244
|
*
|
|
1186
1245
|
* // Layer that can fail during construction
|
|
1187
|
-
* const
|
|
1188
|
-
*
|
|
1189
|
-
*
|
|
1190
|
-
*
|
|
1246
|
+
* const error = new DatabaseError({ message: "Connection failed" })
|
|
1247
|
+
* const flakyDatabaseLayer = Layer.effect(
|
|
1248
|
+
* Database,
|
|
1249
|
+
* Effect.fail(error)
|
|
1250
|
+
* )
|
|
1191
1251
|
*
|
|
1192
1252
|
* // Convert failures to fiber death - removes error from type
|
|
1193
1253
|
* const reliableDatabaseLayer = flakyDatabaseLayer.pipe(Layer.orDie)
|
|
@@ -1200,8 +1260,7 @@ export const tapCause = /*#__PURE__*/dual(2, (self, f) => fromBuild((memoMap, sc
|
|
|
1200
1260
|
* Effect.provide(reliableDatabaseLayer)
|
|
1201
1261
|
* )
|
|
1202
1262
|
*
|
|
1203
|
-
*
|
|
1204
|
-
* // converted into a fiber defect instead of remaining a typed error.
|
|
1263
|
+
* Effect.runSync(Effect.exit(program)) // => Exit.die(error)
|
|
1205
1264
|
* ```
|
|
1206
1265
|
*
|
|
1207
1266
|
* @category error handling
|
|
@@ -1234,7 +1293,7 @@ catch_ as catch };
|
|
|
1234
1293
|
*
|
|
1235
1294
|
* **Example** (Recovering from tagged layer errors)
|
|
1236
1295
|
*
|
|
1237
|
-
* ```ts
|
|
1296
|
+
* ```ts import.meta.vitest
|
|
1238
1297
|
* import { Context, Data, Effect, Layer } from "effect"
|
|
1239
1298
|
*
|
|
1240
1299
|
* class ConfigError extends Data.TaggedError("ConfigError") {}
|
|
@@ -1250,6 +1309,8 @@ catch_ as catch };
|
|
|
1250
1309
|
* const recovered = configLayer.pipe(
|
|
1251
1310
|
* Layer.catchTag("ConfigError", () => fallbackLayer)
|
|
1252
1311
|
* )
|
|
1312
|
+
* const program = Config.useSync((config) => config.apiUrl)
|
|
1313
|
+
* Effect.runSync(Effect.provide(program, recovered)) // => "http://localhost"
|
|
1253
1314
|
* ```
|
|
1254
1315
|
*
|
|
1255
1316
|
* @see {@link catchCause} for recovering with access to the full cause
|
|
@@ -1275,7 +1336,7 @@ export const catchTag = /*#__PURE__*/dual(3, (self, k, f) => fromBuildUnsafe((me
|
|
|
1275
1336
|
*
|
|
1276
1337
|
* **Example** (Recovering from layer failures by cause)
|
|
1277
1338
|
*
|
|
1278
|
-
* ```ts
|
|
1339
|
+
* ```ts import.meta.vitest
|
|
1279
1340
|
* import { Context, Data, Effect, Layer } from "effect"
|
|
1280
1341
|
*
|
|
1281
1342
|
* class DatabaseError extends Data.TaggedError("DatabaseError")<{
|
|
@@ -1300,14 +1361,12 @@ export const catchTag = /*#__PURE__*/dual(3, (self, k, f) => fromBuildUnsafe((me
|
|
|
1300
1361
|
*
|
|
1301
1362
|
* const program = Effect.gen(function*() {
|
|
1302
1363
|
* const database = yield* Database
|
|
1303
|
-
*
|
|
1304
|
-
* console.log(result)
|
|
1364
|
+
* return yield* database.query("SELECT * FROM users")
|
|
1305
1365
|
* }).pipe(
|
|
1306
1366
|
* Effect.provide(databaseWithFallback)
|
|
1307
1367
|
* )
|
|
1308
1368
|
*
|
|
1309
|
-
* Effect.runPromise(program)
|
|
1310
|
-
* // Memory: SELECT * FROM users
|
|
1369
|
+
* await Effect.runPromise(program) // => "Memory: SELECT * FROM users"
|
|
1311
1370
|
* ```
|
|
1312
1371
|
*
|
|
1313
1372
|
* @see {@link catchTag} for recovering from specific tagged errors
|
|
@@ -1350,7 +1409,7 @@ export const updateService = /*#__PURE__*/dual(3, (layer, service, f) => provide
|
|
|
1350
1409
|
*
|
|
1351
1410
|
* **Example** (Creating non-shared layer instances)
|
|
1352
1411
|
*
|
|
1353
|
-
* ```ts
|
|
1412
|
+
* ```ts import.meta.vitest
|
|
1354
1413
|
* import { Context, Effect, Layer, Ref } from "effect"
|
|
1355
1414
|
*
|
|
1356
1415
|
* class Counter extends Context.Service<Counter, {
|
|
@@ -1375,10 +1434,10 @@ export const updateService = /*#__PURE__*/dual(3, (layer, service, f) => provide
|
|
|
1375
1434
|
* return { counterId: counter.id }
|
|
1376
1435
|
* }))
|
|
1377
1436
|
*
|
|
1378
|
-
* const
|
|
1437
|
+
* const compareIds = Effect.gen(function*() {
|
|
1379
1438
|
* const left = yield* Left
|
|
1380
1439
|
* const right = yield* Right
|
|
1381
|
-
*
|
|
1440
|
+
* return left.counterId === right.counterId
|
|
1382
1441
|
* })
|
|
1383
1442
|
*
|
|
1384
1443
|
* const program = Effect.gen(function*() {
|
|
@@ -1386,7 +1445,6 @@ export const updateService = /*#__PURE__*/dual(3, (layer, service, f) => provide
|
|
|
1386
1445
|
*
|
|
1387
1446
|
* const counterLayer = Layer.effect(Counter, Effect.gen(function*() {
|
|
1388
1447
|
* const id = yield* Ref.updateAndGet(nextId, (n) => n + 1)
|
|
1389
|
-
* console.log("constructed Counter")
|
|
1390
1448
|
* return { id }
|
|
1391
1449
|
* }))
|
|
1392
1450
|
*
|
|
@@ -1395,7 +1453,7 @@ export const updateService = /*#__PURE__*/dual(3, (layer, service, f) => provide
|
|
|
1395
1453
|
* Layer.provide(rightLayer, counterLayer)
|
|
1396
1454
|
* )
|
|
1397
1455
|
*
|
|
1398
|
-
* yield* Effect.provide(
|
|
1456
|
+
* const sharedResult = yield* Effect.provide(compareIds, shared)
|
|
1399
1457
|
*
|
|
1400
1458
|
* const freshCounterLayer = Layer.fresh(counterLayer)
|
|
1401
1459
|
* const fresh = Layer.merge(
|
|
@@ -1403,15 +1461,12 @@ export const updateService = /*#__PURE__*/dual(3, (layer, service, f) => provide
|
|
|
1403
1461
|
* Layer.provide(rightLayer, freshCounterLayer)
|
|
1404
1462
|
* )
|
|
1405
1463
|
*
|
|
1406
|
-
* yield* Effect.provide(
|
|
1464
|
+
* const freshResult = yield* Effect.provide(compareIds, fresh)
|
|
1465
|
+
*
|
|
1466
|
+
* return { shared: sharedResult, fresh: freshResult }
|
|
1407
1467
|
* })
|
|
1408
1468
|
*
|
|
1409
|
-
* Effect.runPromise(program)
|
|
1410
|
-
* // constructed Counter
|
|
1411
|
-
* // same Counter: true
|
|
1412
|
-
* // constructed Counter
|
|
1413
|
-
* // constructed Counter
|
|
1414
|
-
* // same Counter: false
|
|
1469
|
+
* await Effect.runPromise(program) // => { shared: true, fresh: false }
|
|
1415
1470
|
* ```
|
|
1416
1471
|
*
|
|
1417
1472
|
* @category layers
|
|
@@ -1433,50 +1488,30 @@ export const fresh = self => fromBuildUnsafe((_, scope) => self.build(makeMemoMa
|
|
|
1433
1488
|
*
|
|
1434
1489
|
* **Example** (Launching an application layer)
|
|
1435
1490
|
*
|
|
1436
|
-
* ```ts
|
|
1437
|
-
* import {
|
|
1491
|
+
* ```ts import.meta.vitest
|
|
1492
|
+
* import { Context, Deferred, Effect, Fiber, Layer, Ref } from "effect"
|
|
1438
1493
|
*
|
|
1439
1494
|
* class HttpServer extends Context.Service<HttpServer, {
|
|
1440
|
-
* readonly
|
|
1441
|
-
* readonly stop: () => Effect.Effect<string>
|
|
1495
|
+
* readonly port: number
|
|
1442
1496
|
* }>()("HttpServer") {}
|
|
1443
1497
|
*
|
|
1444
|
-
*
|
|
1445
|
-
*
|
|
1446
|
-
*
|
|
1447
|
-
*
|
|
1448
|
-
* // Server layer that starts an HTTP server
|
|
1449
|
-
* const serverLayer = Layer.effect(HttpServer, Effect.gen(function*() {
|
|
1450
|
-
* yield* Console.log("Starting HTTP server...")
|
|
1498
|
+
* const program = Effect.gen(function*() {
|
|
1499
|
+
* const events = yield* Ref.make<Array<string>>([])
|
|
1500
|
+
* const started = yield* Deferred.make<void>()
|
|
1451
1501
|
*
|
|
1452
|
-
*
|
|
1453
|
-
*
|
|
1454
|
-
*
|
|
1455
|
-
*
|
|
1456
|
-
*
|
|
1457
|
-
* stop: Effect.fn("HttpServer.stop")(function*() {
|
|
1458
|
-
* yield* Console.log("Server stopped gracefully")
|
|
1459
|
-
* return "Server stopped"
|
|
1460
|
-
* })
|
|
1461
|
-
* }
|
|
1462
|
-
* }))
|
|
1502
|
+
* const serverLayer = Layer.effect(HttpServer, Effect.gen(function*() {
|
|
1503
|
+
* yield* Ref.update(events, (events) => [...events, "Starting HTTP server..."])
|
|
1504
|
+
* yield* Deferred.succeed(started, undefined)
|
|
1505
|
+
* return { port: 3000 }
|
|
1506
|
+
* }))
|
|
1463
1507
|
*
|
|
1464
|
-
*
|
|
1465
|
-
*
|
|
1508
|
+
* const fiber = yield* Effect.forkChild(Layer.launch(serverLayer))
|
|
1509
|
+
* yield* Deferred.await(started)
|
|
1510
|
+
* yield* Fiber.interrupt(fiber)
|
|
1511
|
+
* return yield* Ref.get(events)
|
|
1466
1512
|
* })
|
|
1467
1513
|
*
|
|
1468
|
-
* //
|
|
1469
|
-
* const appLayer = Layer.mergeAll(serverLayer, loggerLayer)
|
|
1470
|
-
*
|
|
1471
|
-
* // Launch the application - runs until interrupted
|
|
1472
|
-
* const application = appLayer.pipe(
|
|
1473
|
-
* Layer.launch,
|
|
1474
|
-
* Effect.tapError((error) => Console.log(`Application failed: ${error}`)),
|
|
1475
|
-
* Effect.tap(() => Console.log("Application completed"))
|
|
1476
|
-
* )
|
|
1477
|
-
*
|
|
1478
|
-
* // This will run forever until externally interrupted
|
|
1479
|
-
* // Effect.runFork(application)
|
|
1514
|
+
* await Effect.runPromise(program) // => ["Starting HTTP server..."]
|
|
1480
1515
|
* ```
|
|
1481
1516
|
*
|
|
1482
1517
|
* @category converting
|
|
@@ -1498,7 +1533,7 @@ export const launch = self => internalEffect.scoped(internalEffect.andThen(build
|
|
|
1498
1533
|
*
|
|
1499
1534
|
* **Example** (Mocking services for tests)
|
|
1500
1535
|
*
|
|
1501
|
-
* ```ts
|
|
1536
|
+
* ```ts import.meta.vitest
|
|
1502
1537
|
* import { Context, Effect, Layer } from "effect"
|
|
1503
1538
|
*
|
|
1504
1539
|
* class UserService extends Context.Service<UserService, {
|
|
@@ -1526,13 +1561,15 @@ export const launch = self => internalEffect.scoped(internalEffect.andThen(build
|
|
|
1526
1561
|
*
|
|
1527
1562
|
* // This works - we provided an implementation
|
|
1528
1563
|
* const user = yield* userService.getUser("123")
|
|
1529
|
-
* console.log(user.name) // "Test User"
|
|
1530
1564
|
*
|
|
1531
1565
|
* // This would throw - we didn't implement deleteUser
|
|
1532
1566
|
* // yield* userService.deleteUser("123") // UnimplementedError
|
|
1567
|
+
*
|
|
1568
|
+
* return user.name
|
|
1533
1569
|
* }).pipe(
|
|
1534
1570
|
* Effect.provide(testUserLayer)
|
|
1535
1571
|
* )
|
|
1572
|
+
* Effect.runSync(testProgram) // => "Test User"
|
|
1536
1573
|
* ```
|
|
1537
1574
|
*
|
|
1538
1575
|
* @category testing
|
|
@@ -1596,22 +1633,17 @@ const ChannelTypeId = "~effect/Channel";
|
|
|
1596
1633
|
*
|
|
1597
1634
|
* **Example** (Constraining layer success types)
|
|
1598
1635
|
*
|
|
1599
|
-
* ```ts
|
|
1600
|
-
* import { Layer } from "effect"
|
|
1636
|
+
* ```ts import.meta.vitest
|
|
1637
|
+
* import { Context, Layer } from "effect"
|
|
1601
1638
|
*
|
|
1602
|
-
*
|
|
1603
|
-
*
|
|
1639
|
+
* const NumberService = Context.Service<number>("Number")
|
|
1640
|
+
* const numberLayer = Layer.succeed(NumberService, 42)
|
|
1604
1641
|
*
|
|
1605
1642
|
* // Define a constraint that the success type must be a number
|
|
1606
1643
|
* const satisfiesNumber = Layer.satisfiesSuccessType<number>()
|
|
1607
1644
|
*
|
|
1608
1645
|
* // This works - Layer<42, never, never> extends Layer<number, never, never>
|
|
1609
|
-
* const validLayer = satisfiesNumber(
|
|
1610
|
-
*
|
|
1611
|
-
* // This would cause a TypeScript compilation error:
|
|
1612
|
-
* // const invalidLayer = satisfiesNumber(StringLayer)
|
|
1613
|
-
* // ^^^^^^^^^^^
|
|
1614
|
-
* // Type 'string' is not assignable to type 'number'
|
|
1646
|
+
* const validLayer = satisfiesNumber(numberLayer)
|
|
1615
1647
|
* ```
|
|
1616
1648
|
*
|
|
1617
1649
|
* @category utility types
|
|
@@ -1628,23 +1660,16 @@ export const satisfiesSuccessType = () => layer => layer;
|
|
|
1628
1660
|
*
|
|
1629
1661
|
* **Example** (Constraining layer error types)
|
|
1630
1662
|
*
|
|
1631
|
-
* ```ts
|
|
1632
|
-
* import { Layer } from "effect"
|
|
1663
|
+
* ```ts import.meta.vitest
|
|
1664
|
+
* import { Effect, Layer } from "effect"
|
|
1633
1665
|
*
|
|
1634
|
-
*
|
|
1635
|
-
* declare const TypeErrorLayer: Layer.Layer<never, TypeError, never>
|
|
1636
|
-
* declare const StringLayer: Layer.Layer<never, string, never>
|
|
1666
|
+
* const typeErrorLayer = Layer.effectDiscard(Effect.fail(new TypeError("boom")))
|
|
1637
1667
|
*
|
|
1638
1668
|
* // Define a constraint that the error type must be an Error
|
|
1639
1669
|
* const satisfiesError = Layer.satisfiesErrorType<Error>()
|
|
1640
1670
|
*
|
|
1641
1671
|
* // This works - Layer<never, TypeError, never> extends Layer<never, Error, never>
|
|
1642
|
-
* const validLayer = satisfiesError(
|
|
1643
|
-
*
|
|
1644
|
-
* // This would cause a TypeScript compilation error:
|
|
1645
|
-
* // const invalidLayer = satisfiesError(StringLayer)
|
|
1646
|
-
* // ^^^^^^^^^^^
|
|
1647
|
-
* // Type 'string' is not assignable to type 'Error'
|
|
1672
|
+
* const validLayer = satisfiesError(typeErrorLayer)
|
|
1648
1673
|
* ```
|
|
1649
1674
|
*
|
|
1650
1675
|
* @category utility types
|
|
@@ -1661,22 +1686,17 @@ export const satisfiesErrorType = () => layer => layer;
|
|
|
1661
1686
|
*
|
|
1662
1687
|
* **Example** (Constraining layer service requirements)
|
|
1663
1688
|
*
|
|
1664
|
-
* ```ts
|
|
1665
|
-
* import { Layer } from "effect"
|
|
1689
|
+
* ```ts import.meta.vitest
|
|
1690
|
+
* import { Context, Effect, Layer } from "effect"
|
|
1666
1691
|
*
|
|
1667
|
-
*
|
|
1668
|
-
*
|
|
1692
|
+
* const NumberService = Context.Service<number>("Number")
|
|
1693
|
+
* const numberLayer = Layer.effectDiscard(Effect.asVoid(NumberService))
|
|
1669
1694
|
*
|
|
1670
1695
|
* // Define a constraint that the service requirements must be numbers
|
|
1671
1696
|
* const satisfiesNumber = Layer.satisfiesServicesType<number>()
|
|
1672
1697
|
*
|
|
1673
1698
|
* // This works - Layer<never, never, 42> extends Layer<never, never, number>
|
|
1674
|
-
* const validLayer = satisfiesNumber(
|
|
1675
|
-
*
|
|
1676
|
-
* // This would cause a TypeScript compilation error:
|
|
1677
|
-
* // const invalidLayer = satisfiesNumber(StringLayer)
|
|
1678
|
-
* // ^^^^^^^^^^^
|
|
1679
|
-
* // Type 'string' is not assignable to type 'number'
|
|
1699
|
+
* const validLayer = satisfiesNumber(numberLayer)
|
|
1680
1700
|
* ```
|
|
1681
1701
|
*
|
|
1682
1702
|
* @category utility types
|
|
@@ -1697,38 +1717,37 @@ export const satisfiesServicesType = () => layer => layer;
|
|
|
1697
1717
|
*
|
|
1698
1718
|
* **Example** (Tracing layer construction with a span)
|
|
1699
1719
|
*
|
|
1700
|
-
* ```ts
|
|
1701
|
-
* import {
|
|
1720
|
+
* ```ts import.meta.vitest
|
|
1721
|
+
* import { Context, Effect, Layer } from "effect"
|
|
1702
1722
|
* import type { Tracer } from "effect"
|
|
1703
1723
|
*
|
|
1704
1724
|
* class Database extends Context.Service<Database, {
|
|
1705
1725
|
* readonly query: (sql: string) => Effect.Effect<string>
|
|
1706
1726
|
* }>()("Database") {}
|
|
1707
1727
|
*
|
|
1728
|
+
* const logs: Array<string> = []
|
|
1729
|
+
*
|
|
1708
1730
|
* // Create a traced layer - all operations performed during construction of
|
|
1709
1731
|
* // the `Database` service are part of the "database-init" span
|
|
1710
1732
|
* const databaseLayer = Layer.effect(Database, Effect.gen(function*() {
|
|
1711
1733
|
* // These operations are traced under "database-init" span
|
|
1712
|
-
*
|
|
1713
|
-
*
|
|
1714
|
-
* yield* Effect.log("Database connected")
|
|
1734
|
+
* logs.push("Connecting to database")
|
|
1735
|
+
* logs.push("Database connected")
|
|
1715
1736
|
*
|
|
1716
1737
|
* const parentSpan = yield* Effect.currentParentSpan
|
|
1717
|
-
*
|
|
1738
|
+
* logs.push((parentSpan as Tracer.Span).name)
|
|
1718
1739
|
*
|
|
1719
1740
|
* return {
|
|
1720
1741
|
* query: Effect.fn("Database.query")((sql: string) => Effect.succeed(`Result: ${sql}`))
|
|
1721
1742
|
* }
|
|
1722
|
-
* })).pipe(Layer.provide(Layer.span("database-init"
|
|
1723
|
-
*
|
|
1724
|
-
* // Can also use the `onEnd` callback to execute logic when the span ends
|
|
1725
|
-
* const tracedLayer = Layer.span("service-initialization", {
|
|
1726
|
-
* attributes: { version: "1.0.0" },
|
|
1743
|
+
* })).pipe(Layer.provide(Layer.span("database-init", {
|
|
1727
1744
|
* onEnd: (span, exit) =>
|
|
1728
|
-
* Effect.sync(() => {
|
|
1729
|
-
*
|
|
1730
|
-
*
|
|
1731
|
-
*
|
|
1745
|
+
* Effect.sync(() => logs.push(`Span ${span.name} ended with: ${exit._tag}`))
|
|
1746
|
+
* })))
|
|
1747
|
+
*
|
|
1748
|
+
* const program = Database.use((database) => database.query("SELECT 1"))
|
|
1749
|
+
* Effect.runSync(Effect.provide(program, databaseLayer)) // => "Result: SELECT 1"
|
|
1750
|
+
* logs // => ["Connecting to database", "Database connected", "database-init", "Span database-init ended with: Success"]
|
|
1732
1751
|
* ```
|
|
1733
1752
|
*
|
|
1734
1753
|
* @category tracing
|
|
@@ -1749,10 +1768,11 @@ export const span = (name, options) => {
|
|
|
1749
1768
|
*
|
|
1750
1769
|
* **Example** (Referencing an existing parent span)
|
|
1751
1770
|
*
|
|
1752
|
-
* ```ts
|
|
1753
|
-
* import {
|
|
1771
|
+
* ```ts import.meta.vitest
|
|
1772
|
+
* import { Context, Effect, Layer, Tracer } from "effect"
|
|
1754
1773
|
*
|
|
1755
1774
|
* class Database extends Context.Service<Database, {
|
|
1775
|
+
* readonly spanId: string
|
|
1756
1776
|
* readonly query: (sql: string) => Effect.Effect<string>
|
|
1757
1777
|
* }>()("Database") {}
|
|
1758
1778
|
*
|
|
@@ -1760,12 +1780,10 @@ export const span = (name, options) => {
|
|
|
1760
1780
|
* const databaseLayer = Layer.effect(
|
|
1761
1781
|
* Database,
|
|
1762
1782
|
* Effect.gen(function*() {
|
|
1763
|
-
* yield* Effect.log("Initializing database")
|
|
1764
|
-
*
|
|
1765
1783
|
* const parentSpan = yield* Effect.currentParentSpan
|
|
1766
|
-
* yield* Console.log(parentSpan.spanId) // "42"
|
|
1767
1784
|
*
|
|
1768
1785
|
* return {
|
|
1786
|
+
* spanId: parentSpan.spanId,
|
|
1769
1787
|
* query: Effect.fn("Database.query")((sql: string) => Effect.succeed(`Result: ${sql}`))
|
|
1770
1788
|
* }
|
|
1771
1789
|
* })
|
|
@@ -1773,6 +1791,9 @@ export const span = (name, options) => {
|
|
|
1773
1791
|
* spanId: "42",
|
|
1774
1792
|
* traceId: "000"
|
|
1775
1793
|
* }))))
|
|
1794
|
+
* const program = Database.use((database) =>
|
|
1795
|
+
* Effect.map(database.query("SELECT 1"), (result) => ({ spanId: database.spanId, result })))
|
|
1796
|
+
* Effect.runSync(Effect.provide(program, databaseLayer)) // => { spanId: "42", result: "Result: SELECT 1" }
|
|
1776
1797
|
* ```
|
|
1777
1798
|
*
|
|
1778
1799
|
* @category tracing
|
|
@@ -1791,7 +1812,7 @@ export const parentSpan = span => succeedContext(Tracer.ParentSpan.context(span)
|
|
|
1791
1812
|
*
|
|
1792
1813
|
* **Example** (Wrapping a layer with a span)
|
|
1793
1814
|
*
|
|
1794
|
-
* ```ts
|
|
1815
|
+
* ```ts import.meta.vitest
|
|
1795
1816
|
* import { Context, Effect, Layer } from "effect"
|
|
1796
1817
|
*
|
|
1797
1818
|
* class Database extends Context.Service<Database, {
|
|
@@ -1802,10 +1823,10 @@ export const parentSpan = span => succeedContext(Tracer.ParentSpan.context(span)
|
|
|
1802
1823
|
* readonly log: (msg: string) => Effect.Effect<void>
|
|
1803
1824
|
* }>()("Logger") {}
|
|
1804
1825
|
*
|
|
1826
|
+
* const logs: Array<string> = []
|
|
1827
|
+
*
|
|
1805
1828
|
* // Create layers with tracing
|
|
1806
1829
|
* const databaseLayer = Layer.effect(Database, Effect.gen(function*() {
|
|
1807
|
-
* yield* Effect.log("Connecting to database")
|
|
1808
|
-
* yield* Effect.sleep("100 millis")
|
|
1809
1830
|
* return {
|
|
1810
1831
|
* query: Effect.fn("Database.query")((sql: string) => Effect.succeed(`Result: ${sql}`))
|
|
1811
1832
|
* }
|
|
@@ -1814,16 +1835,14 @@ export const parentSpan = span => succeedContext(Tracer.ParentSpan.context(span)
|
|
|
1814
1835
|
* }))
|
|
1815
1836
|
*
|
|
1816
1837
|
* const loggerLayer = Layer.succeed(Logger, {
|
|
1817
|
-
* log: Effect.fn("Logger.log")((msg: string) => Effect.sync(() =>
|
|
1838
|
+
* log: Effect.fn("Logger.log")((msg: string) => Effect.sync(() => logs.push(msg)))
|
|
1818
1839
|
* }).pipe(Layer.withSpan("logger-initialization"))
|
|
1819
1840
|
*
|
|
1820
1841
|
* // Combine traced layers
|
|
1821
1842
|
* const appLayer = Layer.mergeAll(databaseLayer, loggerLayer).pipe(
|
|
1822
1843
|
* Layer.withSpan("app-initialization", {
|
|
1823
1844
|
* onEnd: (span, exit) =>
|
|
1824
|
-
* Effect.sync(() => {
|
|
1825
|
-
* console.log(`Application initialization completed: ${exit._tag}`)
|
|
1826
|
-
* })
|
|
1845
|
+
* Effect.sync(() => logs.push(`Application initialization completed: ${exit._tag}`))
|
|
1827
1846
|
* })
|
|
1828
1847
|
* )
|
|
1829
1848
|
*
|
|
@@ -1834,6 +1853,8 @@ export const parentSpan = span => succeedContext(Tracer.ParentSpan.context(span)
|
|
|
1834
1853
|
* yield* logger.log("Application ready")
|
|
1835
1854
|
* return yield* database.query("SELECT * FROM users")
|
|
1836
1855
|
* }).pipe(Effect.provide(appLayer))
|
|
1856
|
+
* Effect.runSync(program) // => "Result: SELECT * FROM users"
|
|
1857
|
+
* logs // => ["Application ready", "Application initialization completed: Success"]
|
|
1837
1858
|
* ```
|
|
1838
1859
|
*
|
|
1839
1860
|
* @category tracing
|
|
@@ -1865,7 +1886,7 @@ export const withSpan = function () {
|
|
|
1865
1886
|
*
|
|
1866
1887
|
* **Example** (Attaching layers to an existing parent span)
|
|
1867
1888
|
*
|
|
1868
|
-
* ```ts
|
|
1889
|
+
* ```ts import.meta.vitest
|
|
1869
1890
|
* import { Context, Effect, Layer, Tracer } from "effect"
|
|
1870
1891
|
*
|
|
1871
1892
|
* class Database extends Context.Service<Database, {
|
|
@@ -1878,14 +1899,12 @@ export const withSpan = function () {
|
|
|
1878
1899
|
*
|
|
1879
1900
|
* // Create layers
|
|
1880
1901
|
* const DatabaseLayer = Layer.effect(Database, Effect.gen(function*() {
|
|
1881
|
-
* yield* Effect.log("Connecting to database")
|
|
1882
1902
|
* return {
|
|
1883
1903
|
* query: Effect.fn("Database.query")((sql: string) => Effect.succeed(`DB: ${sql}`))
|
|
1884
1904
|
* }
|
|
1885
1905
|
* }))
|
|
1886
1906
|
*
|
|
1887
1907
|
* const CacheLayer = Layer.effect(Cache, Effect.gen(function*() {
|
|
1888
|
-
* yield* Effect.log("Connecting to cache")
|
|
1889
1908
|
* return {
|
|
1890
1909
|
* get: Effect.fn("Cache.get")((key: string) => Effect.succeed(`Cache: ${key}`))
|
|
1891
1910
|
* }
|
|
@@ -1911,6 +1930,7 @@ export const withSpan = function () {
|
|
|
1911
1930
|
* return { dbResult, cacheResult }
|
|
1912
1931
|
* })
|
|
1913
1932
|
* )
|
|
1933
|
+
* Effect.runSync(Effect.scoped(program)) // => { dbResult: "DB: SELECT * FROM users", cacheResult: "Cache: user:123" }
|
|
1914
1934
|
* ```
|
|
1915
1935
|
*
|
|
1916
1936
|
* @category tracing
|