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/src/Logger.ts
CHANGED
|
@@ -42,23 +42,20 @@ const TypeId = "~effect/Logger"
|
|
|
42
42
|
*
|
|
43
43
|
* **Example** (Creating custom loggers)
|
|
44
44
|
*
|
|
45
|
-
* ```ts
|
|
45
|
+
* ```ts import.meta.vitest
|
|
46
46
|
* import { Effect, Logger } from "effect"
|
|
47
47
|
*
|
|
48
|
-
*
|
|
48
|
+
* const messages: Array<string> = []
|
|
49
49
|
* const stringLogger = Logger.make<unknown, void>((options) => {
|
|
50
|
-
*
|
|
50
|
+
* messages.push(`[${options.logLevel}] ${options.message}`)
|
|
51
51
|
* })
|
|
52
52
|
*
|
|
53
|
-
* // Create a logger that accepts any message type and returns a formatted string
|
|
54
|
-
* const formattedLogger = Logger.make<unknown, string>((options) =>
|
|
55
|
-
* `${options.date.toISOString()} [${options.logLevel}] ${options.message}`
|
|
56
|
-
* )
|
|
57
|
-
*
|
|
58
|
-
* // Use the logger in an Effect program
|
|
59
53
|
* const program = Effect.log("Hello World").pipe(
|
|
60
54
|
* Effect.provide(Logger.layer([stringLogger]))
|
|
61
55
|
* )
|
|
56
|
+
*
|
|
57
|
+
* Effect.runSync(program)
|
|
58
|
+
* messages // => ["[Info] Hello World"]
|
|
62
59
|
* ```
|
|
63
60
|
*
|
|
64
61
|
* @category models
|
|
@@ -78,24 +75,24 @@ export interface Logger<in Message, out Output> extends Pipeable {
|
|
|
78
75
|
*
|
|
79
76
|
* **Example** (Accessing logger options)
|
|
80
77
|
*
|
|
81
|
-
* ```ts
|
|
78
|
+
* ```ts import.meta.vitest
|
|
82
79
|
* import { Effect, Logger } from "effect"
|
|
83
80
|
*
|
|
84
|
-
*
|
|
81
|
+
* const outputs: Array<unknown> = []
|
|
85
82
|
* const detailedLogger = Logger.make((options) => {
|
|
86
|
-
*
|
|
83
|
+
* outputs.push({
|
|
87
84
|
* message: options.message,
|
|
88
85
|
* level: options.logLevel,
|
|
89
|
-
*
|
|
90
|
-
*
|
|
91
|
-
* hasCause: options.cause !== undefined
|
|
92
|
-
* }
|
|
93
|
-
* console.log(JSON.stringify(output))
|
|
86
|
+
* hasCause: options.cause.reasons.length > 0
|
|
87
|
+
* })
|
|
94
88
|
* })
|
|
95
89
|
*
|
|
96
90
|
* const program = Effect.log("Processing request").pipe(
|
|
97
91
|
* Effect.provide(Logger.layer([detailedLogger]))
|
|
98
92
|
* )
|
|
93
|
+
*
|
|
94
|
+
* Effect.runSync(program)
|
|
95
|
+
* outputs // => [{ message: ["Processing request"], level: "Info", hasCause: false }]
|
|
99
96
|
* ```
|
|
100
97
|
*
|
|
101
98
|
* @category options
|
|
@@ -114,16 +111,14 @@ export interface Options<out Message> {
|
|
|
114
111
|
*
|
|
115
112
|
* **Example** (Checking logger values)
|
|
116
113
|
*
|
|
117
|
-
* ```ts
|
|
114
|
+
* ```ts import.meta.vitest
|
|
118
115
|
* import { Logger } from "effect"
|
|
119
116
|
*
|
|
120
|
-
* const myLogger = Logger.make((
|
|
121
|
-
* console.log(options.message)
|
|
122
|
-
* })
|
|
117
|
+
* const myLogger = Logger.make(() => undefined)
|
|
123
118
|
*
|
|
124
|
-
*
|
|
125
|
-
*
|
|
126
|
-
*
|
|
119
|
+
* Logger.isLogger(myLogger) // => true
|
|
120
|
+
* Logger.isLogger("not a logger") // => false
|
|
121
|
+
* Logger.isLogger({ log: () => {} }) // => false
|
|
127
122
|
* ```
|
|
128
123
|
*
|
|
129
124
|
* @category guards
|
|
@@ -142,26 +137,26 @@ export const isLogger = (u: unknown): u is Logger<unknown, unknown> => Predicate
|
|
|
142
137
|
*
|
|
143
138
|
* **Example** (Accessing current loggers)
|
|
144
139
|
*
|
|
145
|
-
* ```ts
|
|
140
|
+
* ```ts import.meta.vitest
|
|
146
141
|
* import { Effect, Logger } from "effect"
|
|
147
142
|
*
|
|
148
|
-
*
|
|
143
|
+
* const messages: Array<unknown> = []
|
|
144
|
+
* const customLogger = Logger.make((options) => {
|
|
145
|
+
* messages.push(options.message)
|
|
146
|
+
* })
|
|
149
147
|
* const program = Effect.gen(function*() {
|
|
150
148
|
* const currentLoggers = yield* Effect.service(Logger.CurrentLoggers)
|
|
151
|
-
* console.log(`Number of active loggers: ${currentLoggers.size}`)
|
|
152
|
-
*
|
|
153
|
-
* // Add a custom logger to the set
|
|
154
|
-
* const customLogger = Logger.make((options) => {
|
|
155
|
-
* console.log(`Custom: ${options.message}`)
|
|
156
|
-
* })
|
|
157
|
-
*
|
|
158
149
|
* yield* Effect.log("Hello from custom logger").pipe(
|
|
159
150
|
* Effect.provide(Logger.layer([customLogger]))
|
|
160
151
|
* )
|
|
152
|
+
* return currentLoggers.has(Logger.defaultLogger)
|
|
161
153
|
* })
|
|
154
|
+
*
|
|
155
|
+
* Effect.runSync(program) // => true
|
|
156
|
+
* messages // => [["Hello from custom logger"]]
|
|
162
157
|
* ```
|
|
163
158
|
*
|
|
164
|
-
* @category
|
|
159
|
+
* @category services
|
|
165
160
|
* @since 4.0.0
|
|
166
161
|
*/
|
|
167
162
|
export const CurrentLoggers: Context.Reference<ReadonlySet<Logger<unknown, any>>> = effect.CurrentLoggers
|
|
@@ -184,7 +179,7 @@ export const CurrentLoggers: Context.Reference<ReadonlySet<Logger<unknown, any>>
|
|
|
184
179
|
* @see {@link consolePretty} for the TTY-mode pretty console logger affected by this reference
|
|
185
180
|
* @see {@link withConsoleError} for routing a specific formatter logger to `console.error`
|
|
186
181
|
*
|
|
187
|
-
* @category
|
|
182
|
+
* @category services
|
|
188
183
|
* @since 4.0.0
|
|
189
184
|
*/
|
|
190
185
|
export const LogToStderr: Context.Reference<boolean> = effect.LogToStderr
|
|
@@ -199,27 +194,24 @@ export const LogToStderr: Context.Reference<boolean> = effect.LogToStderr
|
|
|
199
194
|
*
|
|
200
195
|
* **Example** (Transforming logger output)
|
|
201
196
|
*
|
|
202
|
-
* ```ts
|
|
203
|
-
* import { Logger } from "effect"
|
|
197
|
+
* ```ts import.meta.vitest
|
|
198
|
+
* import { Effect, Logger } from "effect"
|
|
204
199
|
*
|
|
205
|
-
*
|
|
200
|
+
* const outputs: Array<unknown> = []
|
|
206
201
|
* const structuredLogger = Logger.make((options) => ({
|
|
207
|
-
*
|
|
208
|
-
* message: options.message,
|
|
209
|
-
* timestamp: options.date.toISOString()
|
|
202
|
+
* message: options.message
|
|
210
203
|
* }))
|
|
211
204
|
*
|
|
212
|
-
* // Transform the output to JSON strings
|
|
213
|
-
* const jsonStringLogger = Logger.map(
|
|
214
|
-
* structuredLogger,
|
|
215
|
-
* (output) => JSON.stringify(output)
|
|
216
|
-
* )
|
|
217
|
-
*
|
|
218
205
|
* // Transform to uppercase messages
|
|
219
206
|
* const uppercaseLogger = Logger.map(
|
|
220
207
|
* structuredLogger,
|
|
221
208
|
* (output) => ({ ...output, message: String(output.message).toUpperCase() })
|
|
222
209
|
* )
|
|
210
|
+
*
|
|
211
|
+
* const collector = Logger.make((options) => outputs.push(uppercaseLogger.log(options)))
|
|
212
|
+
* const program = Effect.log("hello").pipe(Effect.provide(Logger.layer([collector])))
|
|
213
|
+
* Effect.runSync(program)
|
|
214
|
+
* outputs // => [{ message: "HELLO" }]
|
|
223
215
|
* ```
|
|
224
216
|
*
|
|
225
217
|
* @category mapping
|
|
@@ -236,27 +228,24 @@ export const map = dual<
|
|
|
236
228
|
*
|
|
237
229
|
* **Example** (Transforming logger output)
|
|
238
230
|
*
|
|
239
|
-
* ```ts
|
|
240
|
-
* import { Logger } from "effect"
|
|
231
|
+
* ```ts import.meta.vitest
|
|
232
|
+
* import { Effect, Logger } from "effect"
|
|
241
233
|
*
|
|
242
|
-
*
|
|
234
|
+
* const outputs: Array<unknown> = []
|
|
243
235
|
* const structuredLogger = Logger.make((options) => ({
|
|
244
|
-
*
|
|
245
|
-
* message: options.message,
|
|
246
|
-
* timestamp: options.date.toISOString()
|
|
236
|
+
* message: options.message
|
|
247
237
|
* }))
|
|
248
238
|
*
|
|
249
|
-
* // Transform the output to JSON strings
|
|
250
|
-
* const jsonStringLogger = Logger.map(
|
|
251
|
-
* structuredLogger,
|
|
252
|
-
* (output) => JSON.stringify(output)
|
|
253
|
-
* )
|
|
254
|
-
*
|
|
255
239
|
* // Transform to uppercase messages
|
|
256
240
|
* const uppercaseLogger = Logger.map(
|
|
257
241
|
* structuredLogger,
|
|
258
242
|
* (output) => ({ ...output, message: String(output.message).toUpperCase() })
|
|
259
243
|
* )
|
|
244
|
+
*
|
|
245
|
+
* const collector = Logger.make((options) => outputs.push(uppercaseLogger.log(options)))
|
|
246
|
+
* const program = Effect.log("hello").pipe(Effect.provide(Logger.layer([collector])))
|
|
247
|
+
* Effect.runSync(program)
|
|
248
|
+
* outputs // => [{ message: "HELLO" }]
|
|
260
249
|
* ```
|
|
261
250
|
*
|
|
262
251
|
* @category mapping
|
|
@@ -275,27 +264,24 @@ export const map = dual<
|
|
|
275
264
|
*
|
|
276
265
|
* **Example** (Transforming logger output)
|
|
277
266
|
*
|
|
278
|
-
* ```ts
|
|
279
|
-
* import { Logger } from "effect"
|
|
267
|
+
* ```ts import.meta.vitest
|
|
268
|
+
* import { Effect, Logger } from "effect"
|
|
280
269
|
*
|
|
281
|
-
*
|
|
270
|
+
* const outputs: Array<unknown> = []
|
|
282
271
|
* const structuredLogger = Logger.make((options) => ({
|
|
283
|
-
*
|
|
284
|
-
* message: options.message,
|
|
285
|
-
* timestamp: options.date.toISOString()
|
|
272
|
+
* message: options.message
|
|
286
273
|
* }))
|
|
287
274
|
*
|
|
288
|
-
* // Transform the output to JSON strings
|
|
289
|
-
* const jsonStringLogger = Logger.map(
|
|
290
|
-
* structuredLogger,
|
|
291
|
-
* (output) => JSON.stringify(output)
|
|
292
|
-
* )
|
|
293
|
-
*
|
|
294
275
|
* // Transform to uppercase messages
|
|
295
276
|
* const uppercaseLogger = Logger.map(
|
|
296
277
|
* structuredLogger,
|
|
297
278
|
* (output) => ({ ...output, message: String(output.message).toUpperCase() })
|
|
298
279
|
* )
|
|
280
|
+
*
|
|
281
|
+
* const collector = Logger.make((options) => outputs.push(uppercaseLogger.log(options)))
|
|
282
|
+
* const program = Effect.log("hello").pipe(Effect.provide(Logger.layer([collector])))
|
|
283
|
+
* Effect.runSync(program)
|
|
284
|
+
* outputs // => [{ message: "HELLO" }]
|
|
299
285
|
* ```
|
|
300
286
|
*
|
|
301
287
|
* @category mapping
|
|
@@ -315,20 +301,23 @@ export const map = dual<
|
|
|
315
301
|
*
|
|
316
302
|
* **Example** (Writing logger output with console.log)
|
|
317
303
|
*
|
|
318
|
-
* ```ts
|
|
304
|
+
* ```ts import.meta.vitest
|
|
319
305
|
* import { Effect, Logger } from "effect"
|
|
306
|
+
* import { TestConsole } from "effect/testing"
|
|
320
307
|
*
|
|
321
308
|
* // Create a custom formatter
|
|
322
309
|
* const customFormatter = Logger.make((options) =>
|
|
323
|
-
*
|
|
310
|
+
* `${options.logLevel}: ${options.message}`
|
|
324
311
|
* )
|
|
325
312
|
*
|
|
326
|
-
* // Route to console
|
|
327
313
|
* const consoleLogger = Logger.withConsoleLog(customFormatter)
|
|
328
314
|
*
|
|
329
|
-
* const program = Effect.
|
|
330
|
-
* Effect.provide(Logger.layer([consoleLogger]))
|
|
331
|
-
*
|
|
315
|
+
* const program = Effect.gen(function*() {
|
|
316
|
+
* yield* Effect.log("Hello World").pipe(Effect.provide(Logger.layer([consoleLogger])))
|
|
317
|
+
* return yield* TestConsole.logLines
|
|
318
|
+
* }).pipe(Effect.provide(TestConsole.layer))
|
|
319
|
+
*
|
|
320
|
+
* await Effect.runPromise(program) // => ["Info: Hello World"]
|
|
332
321
|
* ```
|
|
333
322
|
*
|
|
334
323
|
* @category logging
|
|
@@ -352,20 +341,23 @@ export const withConsoleLog = <Message, Output>(
|
|
|
352
341
|
*
|
|
353
342
|
* **Example** (Writing logger output with console.error)
|
|
354
343
|
*
|
|
355
|
-
* ```ts
|
|
344
|
+
* ```ts import.meta.vitest
|
|
356
345
|
* import { Effect, Logger } from "effect"
|
|
346
|
+
* import { TestConsole } from "effect/testing"
|
|
357
347
|
*
|
|
358
348
|
* // Create an error-specific formatter
|
|
359
349
|
* const errorFormatter = Logger.make((options) =>
|
|
360
|
-
* `ERROR
|
|
350
|
+
* `ERROR: ${options.message}`
|
|
361
351
|
* )
|
|
362
352
|
*
|
|
363
|
-
* // Route to console.error
|
|
364
353
|
* const errorLogger = Logger.withConsoleError(errorFormatter)
|
|
365
354
|
*
|
|
366
|
-
* const program = Effect.
|
|
367
|
-
* Effect.provide(Logger.layer([errorLogger]))
|
|
368
|
-
*
|
|
355
|
+
* const program = Effect.gen(function*() {
|
|
356
|
+
* yield* Effect.logError("Database connection failed").pipe(Effect.provide(Logger.layer([errorLogger])))
|
|
357
|
+
* return yield* TestConsole.errorLines
|
|
358
|
+
* }).pipe(Effect.provide(TestConsole.layer))
|
|
359
|
+
*
|
|
360
|
+
* await Effect.runPromise(program) // => ["ERROR: Database connection failed"]
|
|
369
361
|
* ```
|
|
370
362
|
*
|
|
371
363
|
* @category logging
|
|
@@ -393,9 +385,15 @@ export const withConsoleError = <Message, Output>(
|
|
|
393
385
|
*
|
|
394
386
|
* **Example** (Writing logs with level-based console methods)
|
|
395
387
|
*
|
|
396
|
-
* ```ts
|
|
397
|
-
* import { Effect, Logger } from "effect"
|
|
388
|
+
* ```ts import.meta.vitest
|
|
389
|
+
* import { Console, Effect, Logger } from "effect"
|
|
398
390
|
*
|
|
391
|
+
* const messages: Array<ReadonlyArray<unknown>> = []
|
|
392
|
+
* const testConsole: Console.Console = Object.assign(Object.create(console), {
|
|
393
|
+
* info: (message: unknown) => messages.push(["info", message]),
|
|
394
|
+
* warn: (message: unknown) => messages.push(["warn", message]),
|
|
395
|
+
* error: (message: unknown) => messages.push(["error", message])
|
|
396
|
+
* })
|
|
399
397
|
* const formatter = Logger.make((options) =>
|
|
400
398
|
* `[${options.logLevel}] ${options.message}`
|
|
401
399
|
* )
|
|
@@ -406,10 +404,14 @@ export const withConsoleError = <Message, Output>(
|
|
|
406
404
|
* yield* Effect.logInfo("Info message") // -> console.info
|
|
407
405
|
* yield* Effect.logWarning("Warning") // -> console.warn
|
|
408
406
|
* yield* Effect.logError("Error occurred") // -> console.error
|
|
409
|
-
*
|
|
410
|
-
*
|
|
411
|
-
*
|
|
412
|
-
*
|
|
407
|
+
* }).pipe(Effect.provide(Logger.layer([leveledLogger])))
|
|
408
|
+
* Effect.runSync(Effect.provideService(program, Console.Console, testConsole))
|
|
409
|
+
* const expected = [
|
|
410
|
+
* ["info", "[Info] Info message"],
|
|
411
|
+
* ["warn", "[Warn] Warning"],
|
|
412
|
+
* ["error", "[Error] Error occurred"]
|
|
413
|
+
* ]
|
|
414
|
+
* messages // => expected
|
|
413
415
|
* ```
|
|
414
416
|
*
|
|
415
417
|
* @category logging
|
|
@@ -508,34 +510,20 @@ const format = (
|
|
|
508
510
|
*
|
|
509
511
|
* **Example** (Creating loggers from functions)
|
|
510
512
|
*
|
|
511
|
-
* ```ts
|
|
512
|
-
* import { Effect, Logger
|
|
513
|
+
* ```ts import.meta.vitest
|
|
514
|
+
* import { Effect, Logger } from "effect"
|
|
513
515
|
*
|
|
514
|
-
*
|
|
516
|
+
* const outputs: Array<string> = []
|
|
515
517
|
* const textLogger = Logger.make((options) =>
|
|
516
|
-
* `${options.
|
|
518
|
+
* `${options.logLevel}: ${options.message}`
|
|
517
519
|
* )
|
|
518
|
-
*
|
|
519
|
-
* // Structured object logger
|
|
520
|
-
* const objectLogger = Logger.make((options) => ({
|
|
521
|
-
* timestamp: options.date.toISOString(),
|
|
522
|
-
* level: options.logLevel,
|
|
523
|
-
* message: options.message,
|
|
524
|
-
* fiberId: options.fiber.id,
|
|
525
|
-
* annotations: options.fiber.getRef(References.CurrentLogAnnotations)
|
|
526
|
-
* }))
|
|
527
|
-
*
|
|
528
|
-
* // Custom filtering logger
|
|
529
|
-
* const filteredLogger = Logger.make((options) => {
|
|
530
|
-
* if (options.logLevel === "Debug") {
|
|
531
|
-
* return // Skip debug messages
|
|
532
|
-
* }
|
|
533
|
-
* return `${options.logLevel}: ${options.message}`
|
|
534
|
-
* })
|
|
520
|
+
* const collector = Logger.make((options) => outputs.push(textLogger.log(options)))
|
|
535
521
|
*
|
|
536
522
|
* const program = Effect.log("Hello World").pipe(
|
|
537
|
-
* Effect.provide(Logger.layer([
|
|
523
|
+
* Effect.provide(Logger.layer([collector]))
|
|
538
524
|
* )
|
|
525
|
+
* Effect.runSync(program)
|
|
526
|
+
* outputs // => ["Info: Hello World"]
|
|
539
527
|
* ```
|
|
540
528
|
*
|
|
541
529
|
* @category constructors
|
|
@@ -550,25 +538,10 @@ export const make: <Message, Output>(
|
|
|
550
538
|
*
|
|
551
539
|
* **Example** (Referencing the default logger)
|
|
552
540
|
*
|
|
553
|
-
* ```ts
|
|
554
|
-
* import {
|
|
555
|
-
*
|
|
556
|
-
* // Use the default logger (automatically used by Effect runtime)
|
|
557
|
-
* const program = Effect.gen(function*() {
|
|
558
|
-
* yield* Effect.log("This uses the default logger")
|
|
559
|
-
* yield* Effect.logInfo("Info message")
|
|
560
|
-
* yield* Effect.logError("Error message")
|
|
561
|
-
* })
|
|
562
|
-
*
|
|
563
|
-
* // Explicitly use the default logger
|
|
564
|
-
* const withDefaultLogger = Effect.log("Explicit default").pipe(
|
|
565
|
-
* Effect.provide(Logger.layer([Logger.defaultLogger]))
|
|
566
|
-
* )
|
|
541
|
+
* ```ts import.meta.vitest
|
|
542
|
+
* import { Logger } from "effect"
|
|
567
543
|
*
|
|
568
|
-
* //
|
|
569
|
-
* const customLogger = Logger.make((options) => {
|
|
570
|
-
* console.log(`CUSTOM: ${options.message}`)
|
|
571
|
-
* })
|
|
544
|
+
* Logger.isLogger(Logger.defaultLogger) // => true
|
|
572
545
|
* ```
|
|
573
546
|
*
|
|
574
547
|
* @category constructors
|
|
@@ -586,24 +559,24 @@ export const defaultLogger: Logger<unknown, void> = effect.defaultLogger
|
|
|
586
559
|
*
|
|
587
560
|
* **Example** (Formatting logs as simple strings)
|
|
588
561
|
*
|
|
589
|
-
* ```ts
|
|
562
|
+
* ```ts import.meta.vitest
|
|
590
563
|
* import { Effect, Logger } from "effect"
|
|
564
|
+
* import { TestConsole } from "effect/testing"
|
|
591
565
|
*
|
|
592
566
|
* // Use the simple format logger
|
|
593
|
-
* const
|
|
594
|
-
*
|
|
567
|
+
* const stableSimple = Logger.map(Logger.formatSimple, (output) =>
|
|
568
|
+
* output
|
|
569
|
+
* .replace(/timestamp=\S+ /, "")
|
|
570
|
+
* .replace(/fiber=#\d+ /, "")
|
|
595
571
|
* )
|
|
596
|
-
*
|
|
597
|
-
* // Combine with console output
|
|
598
|
-
* const consoleSimpleLogger = Logger.withConsoleLog(Logger.formatSimple)
|
|
599
|
-
*
|
|
600
572
|
* const program = Effect.gen(function*() {
|
|
601
|
-
* yield* Effect.log("Application started")
|
|
602
|
-
*
|
|
603
|
-
*
|
|
604
|
-
*
|
|
605
|
-
*
|
|
606
|
-
*
|
|
573
|
+
* yield* Effect.log("Application started").pipe(
|
|
574
|
+
* Effect.provide(Logger.layer([Logger.withConsoleLog(stableSimple)]))
|
|
575
|
+
* )
|
|
576
|
+
* return yield* TestConsole.logLines
|
|
577
|
+
* }).pipe(Effect.provide(TestConsole.layer))
|
|
578
|
+
*
|
|
579
|
+
* await Effect.runPromise(program) // => ["level=Info message=\"Application started\""]
|
|
607
580
|
* ```
|
|
608
581
|
*
|
|
609
582
|
* @category constructors
|
|
@@ -622,27 +595,23 @@ export const formatSimple = effect.loggerMake(format(escapeDoubleQuotes))
|
|
|
622
595
|
*
|
|
623
596
|
* **Example** (Formatting logs as logfmt)
|
|
624
597
|
*
|
|
625
|
-
* ```ts
|
|
598
|
+
* ```ts import.meta.vitest
|
|
626
599
|
* import { Effect, Logger } from "effect"
|
|
600
|
+
* import { TestConsole } from "effect/testing"
|
|
627
601
|
*
|
|
628
|
-
*
|
|
629
|
-
*
|
|
630
|
-
*
|
|
631
|
-
* )
|
|
632
|
-
*
|
|
633
|
-
* // Perfect for structured logging systems
|
|
634
|
-
* const structuredProgram = Effect.gen(function*() {
|
|
635
|
-
* yield* Effect.log("User login", { userId: 123, method: "OAuth" })
|
|
636
|
-
* yield* Effect.logInfo("Request processed", {
|
|
637
|
-
* duration: 45,
|
|
638
|
-
* status: "success"
|
|
639
|
-
* })
|
|
640
|
-
* }).pipe(
|
|
641
|
-
* Effect.provide(Logger.layer([Logger.withConsoleLog(Logger.formatLogFmt)]))
|
|
602
|
+
* const stableLogFmt = Logger.map(Logger.formatLogFmt, (output) =>
|
|
603
|
+
* output
|
|
604
|
+
* .replace(/timestamp=\S+ /, "")
|
|
605
|
+
* .replace(/fiber=#\d+ /, "")
|
|
642
606
|
* )
|
|
607
|
+
* const program = Effect.gen(function*() {
|
|
608
|
+
* yield* Effect.log("User login").pipe(
|
|
609
|
+
* Effect.provide(Logger.layer([Logger.withConsoleLog(stableLogFmt)]))
|
|
610
|
+
* )
|
|
611
|
+
* return yield* TestConsole.logLines
|
|
612
|
+
* }).pipe(Effect.provide(TestConsole.layer))
|
|
643
613
|
*
|
|
644
|
-
*
|
|
645
|
-
* const productionLogger = Logger.formatLogFmt
|
|
614
|
+
* await Effect.runPromise(program) // => ["level=Info message=\"User login\""]
|
|
646
615
|
* ```
|
|
647
616
|
*
|
|
648
617
|
* @category constructors
|
|
@@ -662,30 +631,22 @@ export const formatLogFmt = effect.loggerMake(format(JSON.stringify, 0))
|
|
|
662
631
|
*
|
|
663
632
|
* **Example** (Formatting logs as structured objects)
|
|
664
633
|
*
|
|
665
|
-
* ```ts
|
|
634
|
+
* ```ts import.meta.vitest
|
|
666
635
|
* import { Effect, Logger } from "effect"
|
|
636
|
+
* import { TestConsole } from "effect/testing"
|
|
667
637
|
*
|
|
668
|
-
*
|
|
669
|
-
*
|
|
670
|
-
*
|
|
671
|
-
* )
|
|
672
|
-
*
|
|
673
|
-
*
|
|
674
|
-
*
|
|
675
|
-
*
|
|
676
|
-
* yield*
|
|
677
|
-
* }).pipe(
|
|
678
|
-
* Effect.annotateLogs("sessionId", "abc123"),
|
|
679
|
-
* Effect.withLogSpan("request"),
|
|
680
|
-
* Effect.provide(Logger.layer([Logger.formatStructured]))
|
|
681
|
-
* )
|
|
638
|
+
* const stableStructured = Logger.map(Logger.formatStructured, (output) => ({
|
|
639
|
+
* message: output.message,
|
|
640
|
+
* level: output.level
|
|
641
|
+
* }))
|
|
642
|
+
* const program = Effect.gen(function*() {
|
|
643
|
+
* yield* Effect.log("User action").pipe(
|
|
644
|
+
* Effect.provide(Logger.layer([Logger.withConsoleLog(stableStructured)]))
|
|
645
|
+
* )
|
|
646
|
+
* return yield* TestConsole.logLines
|
|
647
|
+
* }).pipe(Effect.provide(TestConsole.layer))
|
|
682
648
|
*
|
|
683
|
-
* //
|
|
684
|
-
* const processingLogger = Logger.map(Logger.formatStructured, (output) => {
|
|
685
|
-
* // Process the structured object
|
|
686
|
-
* const enhanced = { ...output, processed: true }
|
|
687
|
-
* return enhanced
|
|
688
|
-
* })
|
|
649
|
+
* await Effect.runPromise(program) // => [{ message: "User action", level: "INFO" }]
|
|
689
650
|
* ```
|
|
690
651
|
*
|
|
691
652
|
* @category constructors
|
|
@@ -740,35 +701,22 @@ export const formatStructured: Logger<unknown, {
|
|
|
740
701
|
*
|
|
741
702
|
* **Example** (Formatting logs as JSON)
|
|
742
703
|
*
|
|
743
|
-
* ```ts
|
|
744
|
-
* import { Effect, Logger } from "effect"
|
|
745
|
-
*
|
|
746
|
-
* // Use the JSON format logger
|
|
747
|
-
* const jsonLoggerProgram = Effect.log("Hello JSON Format").pipe(
|
|
748
|
-
* Effect.provide(Logger.layer([Logger.formatJson]))
|
|
749
|
-
* )
|
|
704
|
+
* ```ts import.meta.vitest
|
|
705
|
+
* import { Effect, Formatter, Logger } from "effect"
|
|
706
|
+
* import { TestConsole } from "effect/testing"
|
|
750
707
|
*
|
|
751
|
-
*
|
|
752
|
-
*
|
|
753
|
-
*
|
|
754
|
-
*
|
|
755
|
-
*
|
|
756
|
-
*
|
|
757
|
-
*
|
|
758
|
-
*
|
|
759
|
-
*
|
|
760
|
-
*
|
|
761
|
-
* Effect.withLogSpan("request-processing"),
|
|
762
|
-
* Effect.provide(Logger.layer([Logger.formatJson]))
|
|
763
|
-
* )
|
|
764
|
-
*
|
|
765
|
-
* // Adapt the JSON string before giving it to an output sink
|
|
766
|
-
* const envelopedJsonLogger = Logger.map(
|
|
767
|
-
* Logger.formatJson,
|
|
768
|
-
* (jsonString) => `{"service":"api-server","entry":${jsonString}}`
|
|
769
|
-
* )
|
|
708
|
+
* const stableJson = Logger.map(Logger.formatJson, (json) => {
|
|
709
|
+
* const output = JSON.parse(json)
|
|
710
|
+
* return Formatter.formatJson({ message: output.message, level: output.level })
|
|
711
|
+
* })
|
|
712
|
+
* const program = Effect.gen(function*() {
|
|
713
|
+
* yield* Effect.log("Server started").pipe(
|
|
714
|
+
* Effect.provide(Logger.layer([Logger.withConsoleLog(stableJson)]))
|
|
715
|
+
* )
|
|
716
|
+
* return yield* TestConsole.logLines
|
|
717
|
+
* }).pipe(Effect.provide(TestConsole.layer))
|
|
770
718
|
*
|
|
771
|
-
*
|
|
719
|
+
* await Effect.runPromise(program) // => ["{\"message\":\"Server started\",\"level\":\"INFO\"}"]
|
|
772
720
|
* ```
|
|
773
721
|
*
|
|
774
722
|
* @category constructors
|
|
@@ -787,43 +735,26 @@ export const formatJson = map(formatStructured, Formatter.formatJson)
|
|
|
787
735
|
*
|
|
788
736
|
* **Example** (Batching logger output)
|
|
789
737
|
*
|
|
790
|
-
* ```ts
|
|
791
|
-
* import {
|
|
738
|
+
* ```ts import.meta.vitest
|
|
739
|
+
* import { Effect, Logger } from "effect"
|
|
792
740
|
*
|
|
793
|
-
*
|
|
794
|
-
* const
|
|
795
|
-
*
|
|
741
|
+
* const flushed: Array<ReadonlyArray<string>> = []
|
|
742
|
+
* const messageLogger = Logger.make((options) => String(options.message))
|
|
743
|
+
* const batchedLogger = Logger.batched(messageLogger, {
|
|
744
|
+
* window: "1 hour",
|
|
796
745
|
* flush: (messages) =>
|
|
797
746
|
* Effect.sync(() => {
|
|
798
|
-
*
|
|
799
|
-
* messages.forEach((msg, i) => console.log(`${i + 1}. ${msg}`))
|
|
747
|
+
* flushed.push(messages)
|
|
800
748
|
* })
|
|
801
749
|
* })
|
|
802
750
|
*
|
|
803
|
-
* const program = Effect.gen(function*() {
|
|
751
|
+
* const program = Effect.scoped(Effect.gen(function*() {
|
|
804
752
|
* const logger = yield* batchedLogger
|
|
805
|
-
*
|
|
806
|
-
* yield* Effect.provide(
|
|
807
|
-
*
|
|
808
|
-
*
|
|
809
|
-
*
|
|
810
|
-
* Effect.log("Event 3"),
|
|
811
|
-
* Effect.sleep(Duration.seconds(6)), // Trigger flush
|
|
812
|
-
* Effect.log("Event 4")
|
|
813
|
-
* ]),
|
|
814
|
-
* Logger.layer([logger])
|
|
815
|
-
* )
|
|
816
|
-
* })
|
|
817
|
-
*
|
|
818
|
-
* // Remote batch logging example
|
|
819
|
-
* const remoteBatchLogger = Logger.batched(Logger.formatStructured, {
|
|
820
|
-
* window: Duration.seconds(10),
|
|
821
|
-
* flush: (entries) =>
|
|
822
|
-
* Effect.sync(() => {
|
|
823
|
-
* // Send batch to remote logging service
|
|
824
|
-
* console.log(`Sending ${entries.length} log entries to remote service`)
|
|
825
|
-
* })
|
|
826
|
-
* })
|
|
753
|
+
* yield* Effect.log("Event 1").pipe(Effect.provide(Logger.layer([logger])))
|
|
754
|
+
* yield* Effect.log("Event 2").pipe(Effect.provide(Logger.layer([logger])))
|
|
755
|
+
* }))
|
|
756
|
+
* await Effect.runPromise(program)
|
|
757
|
+
* flushed // => [["Event 1", "Event 2"]]
|
|
827
758
|
* ```
|
|
828
759
|
*
|
|
829
760
|
* @category constructors
|
|
@@ -841,43 +772,26 @@ export const batched = dual<
|
|
|
841
772
|
*
|
|
842
773
|
* **Example** (Batching logger output)
|
|
843
774
|
*
|
|
844
|
-
* ```ts
|
|
845
|
-
* import {
|
|
775
|
+
* ```ts import.meta.vitest
|
|
776
|
+
* import { Effect, Logger } from "effect"
|
|
846
777
|
*
|
|
847
|
-
*
|
|
848
|
-
* const
|
|
849
|
-
*
|
|
778
|
+
* const flushed: Array<ReadonlyArray<string>> = []
|
|
779
|
+
* const messageLogger = Logger.make((options) => String(options.message))
|
|
780
|
+
* const batchedLogger = Logger.batched(messageLogger, {
|
|
781
|
+
* window: "1 hour",
|
|
850
782
|
* flush: (messages) =>
|
|
851
783
|
* Effect.sync(() => {
|
|
852
|
-
*
|
|
853
|
-
* messages.forEach((msg, i) => console.log(`${i + 1}. ${msg}`))
|
|
784
|
+
* flushed.push(messages)
|
|
854
785
|
* })
|
|
855
786
|
* })
|
|
856
787
|
*
|
|
857
|
-
* const program = Effect.gen(function*() {
|
|
788
|
+
* const program = Effect.scoped(Effect.gen(function*() {
|
|
858
789
|
* const logger = yield* batchedLogger
|
|
859
|
-
*
|
|
860
|
-
* yield* Effect.provide(
|
|
861
|
-
*
|
|
862
|
-
*
|
|
863
|
-
*
|
|
864
|
-
* Effect.log("Event 3"),
|
|
865
|
-
* Effect.sleep(Duration.seconds(6)), // Trigger flush
|
|
866
|
-
* Effect.log("Event 4")
|
|
867
|
-
* ]),
|
|
868
|
-
* Logger.layer([logger])
|
|
869
|
-
* )
|
|
870
|
-
* })
|
|
871
|
-
*
|
|
872
|
-
* // Remote batch logging example
|
|
873
|
-
* const remoteBatchLogger = Logger.batched(Logger.formatStructured, {
|
|
874
|
-
* window: Duration.seconds(10),
|
|
875
|
-
* flush: (entries) =>
|
|
876
|
-
* Effect.sync(() => {
|
|
877
|
-
* // Send batch to remote logging service
|
|
878
|
-
* console.log(`Sending ${entries.length} log entries to remote service`)
|
|
879
|
-
* })
|
|
880
|
-
* })
|
|
790
|
+
* yield* Effect.log("Event 1").pipe(Effect.provide(Logger.layer([logger])))
|
|
791
|
+
* yield* Effect.log("Event 2").pipe(Effect.provide(Logger.layer([logger])))
|
|
792
|
+
* }))
|
|
793
|
+
* await Effect.runPromise(program)
|
|
794
|
+
* flushed // => [["Event 1", "Event 2"]]
|
|
881
795
|
* ```
|
|
882
796
|
*
|
|
883
797
|
* @category constructors
|
|
@@ -902,43 +816,26 @@ export const batched = dual<
|
|
|
902
816
|
*
|
|
903
817
|
* **Example** (Batching logger output)
|
|
904
818
|
*
|
|
905
|
-
* ```ts
|
|
906
|
-
* import {
|
|
819
|
+
* ```ts import.meta.vitest
|
|
820
|
+
* import { Effect, Logger } from "effect"
|
|
907
821
|
*
|
|
908
|
-
*
|
|
909
|
-
* const
|
|
910
|
-
*
|
|
822
|
+
* const flushed: Array<ReadonlyArray<string>> = []
|
|
823
|
+
* const messageLogger = Logger.make((options) => String(options.message))
|
|
824
|
+
* const batchedLogger = Logger.batched(messageLogger, {
|
|
825
|
+
* window: "1 hour",
|
|
911
826
|
* flush: (messages) =>
|
|
912
827
|
* Effect.sync(() => {
|
|
913
|
-
*
|
|
914
|
-
* messages.forEach((msg, i) => console.log(`${i + 1}. ${msg}`))
|
|
828
|
+
* flushed.push(messages)
|
|
915
829
|
* })
|
|
916
830
|
* })
|
|
917
831
|
*
|
|
918
|
-
* const program = Effect.gen(function*() {
|
|
832
|
+
* const program = Effect.scoped(Effect.gen(function*() {
|
|
919
833
|
* const logger = yield* batchedLogger
|
|
920
|
-
*
|
|
921
|
-
* yield* Effect.provide(
|
|
922
|
-
*
|
|
923
|
-
*
|
|
924
|
-
*
|
|
925
|
-
* Effect.log("Event 3"),
|
|
926
|
-
* Effect.sleep(Duration.seconds(6)), // Trigger flush
|
|
927
|
-
* Effect.log("Event 4")
|
|
928
|
-
* ]),
|
|
929
|
-
* Logger.layer([logger])
|
|
930
|
-
* )
|
|
931
|
-
* })
|
|
932
|
-
*
|
|
933
|
-
* // Remote batch logging example
|
|
934
|
-
* const remoteBatchLogger = Logger.batched(Logger.formatStructured, {
|
|
935
|
-
* window: Duration.seconds(10),
|
|
936
|
-
* flush: (entries) =>
|
|
937
|
-
* Effect.sync(() => {
|
|
938
|
-
* // Send batch to remote logging service
|
|
939
|
-
* console.log(`Sending ${entries.length} log entries to remote service`)
|
|
940
|
-
* })
|
|
941
|
-
* })
|
|
834
|
+
* yield* Effect.log("Event 1").pipe(Effect.provide(Logger.layer([logger])))
|
|
835
|
+
* yield* Effect.log("Event 2").pipe(Effect.provide(Logger.layer([logger])))
|
|
836
|
+
* }))
|
|
837
|
+
* await Effect.runPromise(program)
|
|
838
|
+
* flushed // => [["Event 1", "Event 2"]]
|
|
942
839
|
* ```
|
|
943
840
|
*
|
|
944
841
|
* @category constructors
|
|
@@ -1000,35 +897,11 @@ export const batched = dual<
|
|
|
1000
897
|
*
|
|
1001
898
|
* **Example** (Logging with pretty console output)
|
|
1002
899
|
*
|
|
1003
|
-
* ```ts
|
|
1004
|
-
* import {
|
|
1005
|
-
*
|
|
1006
|
-
* // Use the pretty console logger with default settings
|
|
1007
|
-
* const basicPretty = Effect.log("Hello Pretty Format").pipe(
|
|
1008
|
-
* Effect.provide(Logger.layer([Logger.consolePretty()]))
|
|
1009
|
-
* )
|
|
1010
|
-
*
|
|
1011
|
-
* // Configure pretty logger options
|
|
1012
|
-
* const customPretty = Logger.consolePretty({
|
|
1013
|
-
* colors: true,
|
|
1014
|
-
* stderr: false,
|
|
1015
|
-
* mode: "tty",
|
|
1016
|
-
* formatDate: (date) => date.toLocaleTimeString()
|
|
1017
|
-
* })
|
|
1018
|
-
*
|
|
1019
|
-
* // Perfect for development environment
|
|
1020
|
-
* const developmentProgram = Effect.gen(function*() {
|
|
1021
|
-
* yield* Effect.log("Application starting")
|
|
1022
|
-
* yield* Effect.logInfo("Database connected")
|
|
1023
|
-
* yield* Effect.logWarning("High memory usage detected")
|
|
1024
|
-
* }).pipe(
|
|
1025
|
-
* Effect.annotateLogs("environment", "development"),
|
|
1026
|
-
* Effect.withLogSpan("startup"),
|
|
1027
|
-
* Effect.provide(Logger.layer([customPretty]))
|
|
1028
|
-
* )
|
|
900
|
+
* ```ts import.meta.vitest
|
|
901
|
+
* import { Logger } from "effect"
|
|
1029
902
|
*
|
|
1030
|
-
*
|
|
1031
|
-
*
|
|
903
|
+
* const prettyLogger = Logger.consolePretty({ colors: false })
|
|
904
|
+
* Logger.isLogger(prettyLogger) // => true
|
|
1032
905
|
* ```
|
|
1033
906
|
*
|
|
1034
907
|
* @category constructors
|
|
@@ -1054,33 +927,10 @@ export const consolePretty: (
|
|
|
1054
927
|
*
|
|
1055
928
|
* **Example** (Logging logfmt output to the console)
|
|
1056
929
|
*
|
|
1057
|
-
* ```ts
|
|
1058
|
-
* import {
|
|
1059
|
-
*
|
|
1060
|
-
* // Use the console logfmt logger
|
|
1061
|
-
* const logfmtProgram = Effect.log("Hello LogFmt Console").pipe(
|
|
1062
|
-
* Effect.provide(Logger.layer([Logger.consoleLogFmt]))
|
|
1063
|
-
* )
|
|
1064
|
-
*
|
|
1065
|
-
* // Great for production environments
|
|
1066
|
-
* const productionProgram = Effect.gen(function*() {
|
|
1067
|
-
* yield* Effect.log("Server started", { port: 8080, version: "1.0.0" })
|
|
1068
|
-
* yield* Effect.logInfo("Request processed", { userId: 123, duration: 45 })
|
|
1069
|
-
* yield* Effect.logError("Validation failed", {
|
|
1070
|
-
* field: "email",
|
|
1071
|
-
* value: "invalid"
|
|
1072
|
-
* })
|
|
1073
|
-
* }).pipe(
|
|
1074
|
-
* Effect.annotateLogs("service", "api"),
|
|
1075
|
-
* Effect.withLogSpan("request-handler"),
|
|
1076
|
-
* Effect.provide(Logger.layer([Logger.consoleLogFmt]))
|
|
1077
|
-
* )
|
|
930
|
+
* ```ts import.meta.vitest
|
|
931
|
+
* import { Logger } from "effect"
|
|
1078
932
|
*
|
|
1079
|
-
* //
|
|
1080
|
-
* const multiLoggerLive = Logger.layer([
|
|
1081
|
-
* Logger.consoleLogFmt,
|
|
1082
|
-
* Logger.consolePretty()
|
|
1083
|
-
* ])
|
|
933
|
+
* Logger.isLogger(Logger.consoleLogFmt) // => true
|
|
1084
934
|
* ```
|
|
1085
935
|
*
|
|
1086
936
|
* @category constructors
|
|
@@ -1102,41 +952,10 @@ export const consoleLogFmt: Logger<unknown, void> = withConsoleLog(formatLogFmt)
|
|
|
1102
952
|
*
|
|
1103
953
|
* **Example** (Logging structured output to the console)
|
|
1104
954
|
*
|
|
1105
|
-
* ```ts
|
|
1106
|
-
* import {
|
|
1107
|
-
*
|
|
1108
|
-
* // Use the console structured logger
|
|
1109
|
-
* const structuredProgram = Effect.log("Hello Structured Console").pipe(
|
|
1110
|
-
* Effect.provide(Logger.layer([Logger.consoleStructured]))
|
|
1111
|
-
* )
|
|
1112
|
-
*
|
|
1113
|
-
* // Perfect for development debugging
|
|
1114
|
-
* const debugProgram = Effect.gen(function*() {
|
|
1115
|
-
* yield* Effect.log("User event", {
|
|
1116
|
-
* userId: 123,
|
|
1117
|
-
* action: "login",
|
|
1118
|
-
* ip: "192.168.1.1"
|
|
1119
|
-
* })
|
|
1120
|
-
* yield* Effect.logInfo("API call", {
|
|
1121
|
-
* endpoint: "/users",
|
|
1122
|
-
* method: "GET",
|
|
1123
|
-
* duration: 120
|
|
1124
|
-
* })
|
|
1125
|
-
* }).pipe(
|
|
1126
|
-
* Effect.annotateLogs("requestId", "req-123"),
|
|
1127
|
-
* Effect.withLogSpan("authentication"),
|
|
1128
|
-
* Effect.provide(Logger.layer([Logger.consoleStructured]))
|
|
1129
|
-
* )
|
|
955
|
+
* ```ts import.meta.vitest
|
|
956
|
+
* import { Logger } from "effect"
|
|
1130
957
|
*
|
|
1131
|
-
* //
|
|
1132
|
-
* const inspectionProgram = Effect.gen(function*() {
|
|
1133
|
-
* yield* Effect.log("Complex data", {
|
|
1134
|
-
* user: { id: 1, name: "John" },
|
|
1135
|
-
* metadata: { source: "api", version: 2 }
|
|
1136
|
-
* })
|
|
1137
|
-
* }).pipe(
|
|
1138
|
-
* Effect.provide(Logger.layer([Logger.consoleStructured]))
|
|
1139
|
-
* )
|
|
958
|
+
* Logger.isLogger(Logger.consoleStructured) // => true
|
|
1140
959
|
* ```
|
|
1141
960
|
*
|
|
1142
961
|
* @category constructors
|
|
@@ -1156,46 +975,10 @@ export const consoleStructured: Logger<unknown, void> = withConsoleLog(formatStr
|
|
|
1156
975
|
*
|
|
1157
976
|
* **Example** (Logging JSON output to the console)
|
|
1158
977
|
*
|
|
1159
|
-
* ```ts
|
|
1160
|
-
* import {
|
|
1161
|
-
*
|
|
1162
|
-
* // Use the console JSON logger
|
|
1163
|
-
* const jsonProgram = Effect.log("Hello JSON Console").pipe(
|
|
1164
|
-
* Effect.provide(Logger.layer([Logger.consoleJson]))
|
|
1165
|
-
* )
|
|
1166
|
-
*
|
|
1167
|
-
* // Perfect for production logging and log aggregation
|
|
1168
|
-
* const productionProgram = Effect.gen(function*() {
|
|
1169
|
-
* yield* Effect.log("Server started", { port: 3000, env: "production" })
|
|
1170
|
-
* yield* Effect.logInfo("Request", {
|
|
1171
|
-
* method: "POST",
|
|
1172
|
-
* url: "/api/users",
|
|
1173
|
-
* body: { name: "Alice" }
|
|
1174
|
-
* })
|
|
1175
|
-
* yield* Effect.logError("Database error", {
|
|
1176
|
-
* error: "Connection timeout",
|
|
1177
|
-
* retryCount: 3
|
|
1178
|
-
* })
|
|
1179
|
-
* }).pipe(
|
|
1180
|
-
* Effect.annotateLogs("service", "user-api"),
|
|
1181
|
-
* Effect.annotateLogs("version", "1.2.3"),
|
|
1182
|
-
* Effect.withLogSpan("request-processing"),
|
|
1183
|
-
* Effect.provide(Logger.layer([Logger.consoleJson]))
|
|
1184
|
-
* )
|
|
978
|
+
* ```ts import.meta.vitest
|
|
979
|
+
* import { Logger } from "effect"
|
|
1185
980
|
*
|
|
1186
|
-
* //
|
|
1187
|
-
* const productionSetup = Logger.layer([
|
|
1188
|
-
* Logger.consoleJson, // For stdout JSON logs
|
|
1189
|
-
* Logger.consolePretty() // For local debugging
|
|
1190
|
-
* ])
|
|
1191
|
-
*
|
|
1192
|
-
* // Ideal for containerized environments (Docker, Kubernetes)
|
|
1193
|
-
* const containerProgram = Effect.log("Container ready", {
|
|
1194
|
-
* containerId: "abc123",
|
|
1195
|
-
* image: "myapp:latest"
|
|
1196
|
-
* }).pipe(
|
|
1197
|
-
* Effect.provide(Logger.layer([Logger.consoleJson]))
|
|
1198
|
-
* )
|
|
981
|
+
* Logger.isLogger(Logger.consoleJson) // => true
|
|
1199
982
|
* ```
|
|
1200
983
|
*
|
|
1201
984
|
* @category constructors
|
|
@@ -1218,40 +1001,14 @@ export const consoleJson: Logger<unknown, void> = withConsoleLog(formatJson)
|
|
|
1218
1001
|
*
|
|
1219
1002
|
* **Example** (Recording logs as trace span events)
|
|
1220
1003
|
*
|
|
1221
|
-
* ```ts
|
|
1004
|
+
* ```ts import.meta.vitest
|
|
1222
1005
|
* import { Effect, Logger } from "effect"
|
|
1223
1006
|
*
|
|
1224
|
-
*
|
|
1225
|
-
*
|
|
1226
|
-
* yield* Effect.log("This automatically becomes a span event")
|
|
1227
|
-
* yield* Effect.logInfo("Processing data")
|
|
1228
|
-
* })
|
|
1229
|
-
*
|
|
1230
|
-
* // Explicitly combine tracer logger with other loggers
|
|
1231
|
-
* const observabilityProgram = Effect.gen(function*() {
|
|
1232
|
-
* yield* Effect.log("Operation started")
|
|
1233
|
-
* yield* Effect.logInfo("Processing data")
|
|
1234
|
-
* yield* Effect.logError("Error occurred")
|
|
1235
|
-
* }).pipe(
|
|
1236
|
-
* Effect.withLogSpan("data-processing"),
|
|
1237
|
-
* Effect.provide(Logger.layer([
|
|
1238
|
-
* Logger.tracerLogger,
|
|
1239
|
-
* Logger.consoleJson
|
|
1240
|
-
* ]))
|
|
1241
|
-
* )
|
|
1242
|
-
*
|
|
1243
|
-
* // Perfect for correlating logs with traces in distributed systems
|
|
1244
|
-
* const distributedProgram = Effect.gen(function*() {
|
|
1245
|
-
* yield* Effect.log("Step 1: Fetching user data")
|
|
1246
|
-
* yield* Effect.sleep("100 millis")
|
|
1247
|
-
* yield* Effect.log("Step 2: Processing payment")
|
|
1248
|
-
* yield* Effect.sleep("200 millis")
|
|
1249
|
-
* yield* Effect.log("Step 3: Sending confirmation")
|
|
1250
|
-
* }).pipe(
|
|
1251
|
-
* Effect.withLogSpan("payment-workflow"),
|
|
1252
|
-
* Effect.annotateLogs("userId", "user-123"),
|
|
1007
|
+
* const program = Effect.log("span event").pipe(
|
|
1008
|
+
* Effect.withSpan("operation"),
|
|
1253
1009
|
* Effect.provide(Logger.layer([Logger.tracerLogger]))
|
|
1254
1010
|
* )
|
|
1011
|
+
* Effect.runSync(program)
|
|
1255
1012
|
* ```
|
|
1256
1013
|
*
|
|
1257
1014
|
* @category constructors
|
|
@@ -1270,37 +1027,23 @@ export const tracerLogger: Logger<unknown, void> = effect.tracerLogger
|
|
|
1270
1027
|
*
|
|
1271
1028
|
* **Example** (Providing logger layers)
|
|
1272
1029
|
*
|
|
1273
|
-
* ```ts
|
|
1030
|
+
* ```ts import.meta.vitest
|
|
1274
1031
|
* import { Effect, Logger } from "effect"
|
|
1275
1032
|
*
|
|
1276
|
-
*
|
|
1277
|
-
* const
|
|
1278
|
-
*
|
|
1279
|
-
*
|
|
1280
|
-
* const
|
|
1281
|
-
* Logger.consoleJson,
|
|
1282
|
-
* Logger.consolePretty(),
|
|
1283
|
-
* Logger.formatStructured
|
|
1284
|
-
* ])
|
|
1285
|
-
*
|
|
1286
|
-
* // Merge with existing loggers
|
|
1287
|
-
* const AdditionalLoggerLive = Logger.layer(
|
|
1288
|
-
* [Logger.consoleJson],
|
|
1289
|
-
* { mergeWithExisting: true }
|
|
1290
|
-
* )
|
|
1291
|
-
*
|
|
1292
|
-
* // Using multiple logger formats
|
|
1293
|
-
* const jsonLogger = Logger.consoleJson
|
|
1294
|
-
* const prettyLogger = Logger.consolePretty()
|
|
1295
|
-
*
|
|
1296
|
-
* const CustomLoggerLive = Logger.layer([jsonLogger, prettyLogger])
|
|
1033
|
+
* const messages: Array<unknown> = []
|
|
1034
|
+
* const customLogger = Logger.make((options) => {
|
|
1035
|
+
* messages.push(options.message)
|
|
1036
|
+
* })
|
|
1037
|
+
* const CustomLoggerLive = Logger.layer([customLogger])
|
|
1297
1038
|
*
|
|
1298
1039
|
* const program = Effect.log("Application started").pipe(
|
|
1299
1040
|
* Effect.provide(CustomLoggerLive)
|
|
1300
1041
|
* )
|
|
1042
|
+
* Effect.runSync(program)
|
|
1043
|
+
* messages // => [["Application started"]]
|
|
1301
1044
|
* ```
|
|
1302
1045
|
*
|
|
1303
|
-
* @category
|
|
1046
|
+
* @category layers
|
|
1304
1047
|
* @since 4.0.0
|
|
1305
1048
|
*/
|
|
1306
1049
|
export const layer = <
|
|
@@ -1338,91 +1081,59 @@ export const layer = <
|
|
|
1338
1081
|
*
|
|
1339
1082
|
* **Example** (Writing JSON logs to a file)
|
|
1340
1083
|
*
|
|
1341
|
-
* ```ts
|
|
1342
|
-
* import { Effect,
|
|
1343
|
-
* import { NodeFileSystem, NodeRuntime } from "@effect/platform-node"
|
|
1344
|
-
*
|
|
1345
|
-
* const fileLogger = Logger.formatJson.pipe(
|
|
1346
|
-
* Logger.toFile("/tmp/log.txt")
|
|
1347
|
-
* )
|
|
1348
|
-
* const LoggerLive = Logger.layer([fileLogger]).pipe(
|
|
1349
|
-
* Layer.provide(NodeFileSystem.layer)
|
|
1350
|
-
* )
|
|
1084
|
+
* ```ts import.meta.vitest
|
|
1085
|
+
* import { Effect, FileSystem, Logger } from "effect"
|
|
1351
1086
|
*
|
|
1352
|
-
*
|
|
1353
|
-
*
|
|
1354
|
-
*
|
|
1355
|
-
*
|
|
1356
|
-
*
|
|
1357
|
-
*
|
|
1087
|
+
* const writes: Array<string> = []
|
|
1088
|
+
* const file = {
|
|
1089
|
+
* write: (buffer: Uint8Array) => Effect.sync(() => {
|
|
1090
|
+
* writes.push(new TextDecoder().decode(buffer).trim())
|
|
1091
|
+
* return FileSystem.Size(buffer.length)
|
|
1092
|
+
* })
|
|
1093
|
+
* } as unknown as FileSystem.File
|
|
1094
|
+
* const fileSystem = FileSystem.makeNoop({ open: () => Effect.succeed(file) })
|
|
1095
|
+
* const messageLogger = Logger.make((options) => String(options.message))
|
|
1096
|
+
*
|
|
1097
|
+
* const program = Effect.scoped(Effect.gen(function*() {
|
|
1098
|
+
* const fileLogger = yield* Logger.toFile(messageLogger, "/tmp/log.txt")
|
|
1099
|
+
* yield* Effect.log("a").pipe(Effect.provide(Logger.layer([fileLogger])))
|
|
1100
|
+
* yield* Effect.log("b").pipe(Effect.provide(Logger.layer([fileLogger])))
|
|
1101
|
+
* yield* Effect.log("c").pipe(Effect.provide(Logger.layer([fileLogger])))
|
|
1102
|
+
* })).pipe(Effect.provideService(FileSystem.FileSystem, fileSystem))
|
|
1103
|
+
*
|
|
1104
|
+
* await Effect.runPromise(program)
|
|
1105
|
+
* writes // => ["a\nb\nc"]
|
|
1358
1106
|
* ```
|
|
1359
1107
|
*
|
|
1360
1108
|
* **Example** (Writing logs to files)
|
|
1361
1109
|
*
|
|
1362
|
-
* ```ts
|
|
1363
|
-
* import {
|
|
1364
|
-
* import { NodeFileSystem } from "@effect/platform-node"
|
|
1365
|
-
*
|
|
1366
|
-
* // Basic file logging. The scope keeps the file open while logs are emitted
|
|
1367
|
-
* // and flushes pending entries when it closes.
|
|
1368
|
-
* const basicFileLogger = Effect.scoped(
|
|
1369
|
-
* Effect.gen(function*() {
|
|
1370
|
-
* const fileLogger = yield* Logger.formatJson.pipe(
|
|
1371
|
-
* Logger.toFile("/tmp/app.log")
|
|
1372
|
-
* )
|
|
1373
|
-
*
|
|
1374
|
-
* yield* Effect.log("Application started").pipe(
|
|
1375
|
-
* Effect.provide(Logger.layer([fileLogger]))
|
|
1376
|
-
* )
|
|
1377
|
-
* })
|
|
1378
|
-
* ).pipe(
|
|
1379
|
-
* Effect.provide(NodeFileSystem.layer)
|
|
1380
|
-
* )
|
|
1110
|
+
* ```ts import.meta.vitest
|
|
1111
|
+
* import { Effect, FileSystem, Logger } from "effect"
|
|
1381
1112
|
*
|
|
1382
|
-
*
|
|
1383
|
-
* const
|
|
1384
|
-
* Effect.
|
|
1385
|
-
*
|
|
1386
|
-
*
|
|
1387
|
-
* flag: "a",
|
|
1388
|
-
* batchWindow: Duration.seconds(5)
|
|
1389
|
-
* })
|
|
1390
|
-
* )
|
|
1391
|
-
*
|
|
1392
|
-
* yield* Effect.all([
|
|
1393
|
-
* Effect.log("Event 1"),
|
|
1394
|
-
* Effect.log("Event 2"),
|
|
1395
|
-
* Effect.log("Event 3")
|
|
1396
|
-
* ]).pipe(
|
|
1397
|
-
* Effect.provide(Logger.layer([fileLogger]))
|
|
1398
|
-
* )
|
|
1113
|
+
* const writes: Array<string> = []
|
|
1114
|
+
* const file = {
|
|
1115
|
+
* write: (buffer: Uint8Array) => Effect.sync(() => {
|
|
1116
|
+
* writes.push(new TextDecoder().decode(buffer).trim())
|
|
1117
|
+
* return FileSystem.Size(buffer.length)
|
|
1399
1118
|
* })
|
|
1400
|
-
*
|
|
1401
|
-
*
|
|
1402
|
-
* )
|
|
1119
|
+
* } as unknown as FileSystem.File
|
|
1120
|
+
* const fileSystem = FileSystem.makeNoop({ open: () => Effect.succeed(file) })
|
|
1121
|
+
* const messageLogger = Logger.make((options) => String(options.message))
|
|
1403
1122
|
*
|
|
1404
|
-
*
|
|
1405
|
-
*
|
|
1406
|
-
*
|
|
1407
|
-
* const fileLogger = yield* Logger.formatJson.pipe(
|
|
1408
|
-
* Logger.toFile("/tmp/production.log")
|
|
1409
|
-
* )
|
|
1410
|
-
*
|
|
1411
|
-
* const loggerLive = Logger.layer([
|
|
1412
|
-
* Logger.consolePretty(),
|
|
1413
|
-
* fileLogger
|
|
1414
|
-
* ])
|
|
1415
|
-
*
|
|
1416
|
-
* yield* Effect.log("Production event").pipe(
|
|
1417
|
-
* Effect.provide(loggerLive)
|
|
1418
|
-
* )
|
|
1123
|
+
* const program = Effect.scoped(Effect.gen(function*() {
|
|
1124
|
+
* const fileLogger = yield* Logger.toFile(messageLogger, "/tmp/app.log", {
|
|
1125
|
+
* batchWindow: "1 hour"
|
|
1419
1126
|
* })
|
|
1420
|
-
* ).pipe(
|
|
1421
|
-
*
|
|
1422
|
-
*
|
|
1127
|
+
* yield* Effect.log("Application started").pipe(
|
|
1128
|
+
* Effect.provide(Logger.layer([fileLogger]))
|
|
1129
|
+
* )
|
|
1130
|
+
* })).pipe(Effect.provideService(FileSystem.FileSystem, fileSystem))
|
|
1131
|
+
*
|
|
1132
|
+
* await Effect.runPromise(program)
|
|
1133
|
+
* writes // => ["Application started"]
|
|
1423
1134
|
* ```
|
|
1424
1135
|
*
|
|
1425
|
-
* @category
|
|
1136
|
+
* @category logging
|
|
1426
1137
|
* @since 4.0.0
|
|
1427
1138
|
*/
|
|
1428
1139
|
export const toFile = dual<
|
|
@@ -1437,91 +1148,59 @@ export const toFile = dual<
|
|
|
1437
1148
|
*
|
|
1438
1149
|
* **Example** (Writing JSON logs to a file)
|
|
1439
1150
|
*
|
|
1440
|
-
* ```ts
|
|
1441
|
-
* import { Effect,
|
|
1442
|
-
* import { NodeFileSystem, NodeRuntime } from "@effect/platform-node"
|
|
1443
|
-
*
|
|
1444
|
-
* const fileLogger = Logger.formatJson.pipe(
|
|
1445
|
-
* Logger.toFile("/tmp/log.txt")
|
|
1446
|
-
* )
|
|
1447
|
-
* const LoggerLive = Logger.layer([fileLogger]).pipe(
|
|
1448
|
-
* Layer.provide(NodeFileSystem.layer)
|
|
1449
|
-
* )
|
|
1151
|
+
* ```ts import.meta.vitest
|
|
1152
|
+
* import { Effect, FileSystem, Logger } from "effect"
|
|
1450
1153
|
*
|
|
1451
|
-
*
|
|
1452
|
-
*
|
|
1453
|
-
*
|
|
1454
|
-
*
|
|
1455
|
-
*
|
|
1456
|
-
*
|
|
1154
|
+
* const writes: Array<string> = []
|
|
1155
|
+
* const file = {
|
|
1156
|
+
* write: (buffer: Uint8Array) => Effect.sync(() => {
|
|
1157
|
+
* writes.push(new TextDecoder().decode(buffer).trim())
|
|
1158
|
+
* return FileSystem.Size(buffer.length)
|
|
1159
|
+
* })
|
|
1160
|
+
* } as unknown as FileSystem.File
|
|
1161
|
+
* const fileSystem = FileSystem.makeNoop({ open: () => Effect.succeed(file) })
|
|
1162
|
+
* const messageLogger = Logger.make((options) => String(options.message))
|
|
1163
|
+
*
|
|
1164
|
+
* const program = Effect.scoped(Effect.gen(function*() {
|
|
1165
|
+
* const fileLogger = yield* Logger.toFile(messageLogger, "/tmp/log.txt")
|
|
1166
|
+
* yield* Effect.log("a").pipe(Effect.provide(Logger.layer([fileLogger])))
|
|
1167
|
+
* yield* Effect.log("b").pipe(Effect.provide(Logger.layer([fileLogger])))
|
|
1168
|
+
* yield* Effect.log("c").pipe(Effect.provide(Logger.layer([fileLogger])))
|
|
1169
|
+
* })).pipe(Effect.provideService(FileSystem.FileSystem, fileSystem))
|
|
1170
|
+
*
|
|
1171
|
+
* await Effect.runPromise(program)
|
|
1172
|
+
* writes // => ["a\nb\nc"]
|
|
1457
1173
|
* ```
|
|
1458
1174
|
*
|
|
1459
1175
|
* **Example** (Writing logs to files)
|
|
1460
1176
|
*
|
|
1461
|
-
* ```ts
|
|
1462
|
-
* import {
|
|
1463
|
-
* import { NodeFileSystem } from "@effect/platform-node"
|
|
1177
|
+
* ```ts import.meta.vitest
|
|
1178
|
+
* import { Effect, FileSystem, Logger } from "effect"
|
|
1464
1179
|
*
|
|
1465
|
-
*
|
|
1466
|
-
*
|
|
1467
|
-
*
|
|
1468
|
-
*
|
|
1469
|
-
*
|
|
1470
|
-
* Logger.toFile("/tmp/app.log")
|
|
1471
|
-
* )
|
|
1472
|
-
*
|
|
1473
|
-
* yield* Effect.log("Application started").pipe(
|
|
1474
|
-
* Effect.provide(Logger.layer([fileLogger]))
|
|
1475
|
-
* )
|
|
1180
|
+
* const writes: Array<string> = []
|
|
1181
|
+
* const file = {
|
|
1182
|
+
* write: (buffer: Uint8Array) => Effect.sync(() => {
|
|
1183
|
+
* writes.push(new TextDecoder().decode(buffer).trim())
|
|
1184
|
+
* return FileSystem.Size(buffer.length)
|
|
1476
1185
|
* })
|
|
1477
|
-
*
|
|
1478
|
-
*
|
|
1479
|
-
* )
|
|
1480
|
-
*
|
|
1481
|
-
* // File logger with custom batch window
|
|
1482
|
-
* const batchedFileLogger = Effect.scoped(
|
|
1483
|
-
* Effect.gen(function*() {
|
|
1484
|
-
* const fileLogger = yield* Logger.formatLogFmt.pipe(
|
|
1485
|
-
* Logger.toFile("/var/log/myapp.log", {
|
|
1486
|
-
* flag: "a",
|
|
1487
|
-
* batchWindow: Duration.seconds(5)
|
|
1488
|
-
* })
|
|
1489
|
-
* )
|
|
1186
|
+
* } as unknown as FileSystem.File
|
|
1187
|
+
* const fileSystem = FileSystem.makeNoop({ open: () => Effect.succeed(file) })
|
|
1188
|
+
* const messageLogger = Logger.make((options) => String(options.message))
|
|
1490
1189
|
*
|
|
1491
|
-
*
|
|
1492
|
-
*
|
|
1493
|
-
*
|
|
1494
|
-
* Effect.log("Event 3")
|
|
1495
|
-
* ]).pipe(
|
|
1496
|
-
* Effect.provide(Logger.layer([fileLogger]))
|
|
1497
|
-
* )
|
|
1190
|
+
* const program = Effect.scoped(Effect.gen(function*() {
|
|
1191
|
+
* const fileLogger = yield* Logger.toFile(messageLogger, "/tmp/app.log", {
|
|
1192
|
+
* batchWindow: "1 hour"
|
|
1498
1193
|
* })
|
|
1499
|
-
* ).pipe(
|
|
1500
|
-
*
|
|
1501
|
-
*
|
|
1502
|
-
*
|
|
1503
|
-
* // Multiple loggers: console + file
|
|
1504
|
-
* const multiLogger = Effect.scoped(
|
|
1505
|
-
* Effect.gen(function*() {
|
|
1506
|
-
* const fileLogger = yield* Logger.formatJson.pipe(
|
|
1507
|
-
* Logger.toFile("/tmp/production.log")
|
|
1508
|
-
* )
|
|
1509
|
-
*
|
|
1510
|
-
* const loggerLive = Logger.layer([
|
|
1511
|
-
* Logger.consolePretty(),
|
|
1512
|
-
* fileLogger
|
|
1513
|
-
* ])
|
|
1194
|
+
* yield* Effect.log("Application started").pipe(
|
|
1195
|
+
* Effect.provide(Logger.layer([fileLogger]))
|
|
1196
|
+
* )
|
|
1197
|
+
* })).pipe(Effect.provideService(FileSystem.FileSystem, fileSystem))
|
|
1514
1198
|
*
|
|
1515
|
-
*
|
|
1516
|
-
*
|
|
1517
|
-
* )
|
|
1518
|
-
* })
|
|
1519
|
-
* ).pipe(
|
|
1520
|
-
* Effect.provide(NodeFileSystem.layer)
|
|
1521
|
-
* )
|
|
1199
|
+
* await Effect.runPromise(program)
|
|
1200
|
+
* writes // => ["Application started"]
|
|
1522
1201
|
* ```
|
|
1523
1202
|
*
|
|
1524
|
-
* @category
|
|
1203
|
+
* @category logging
|
|
1525
1204
|
* @since 4.0.0
|
|
1526
1205
|
*/
|
|
1527
1206
|
(
|
|
@@ -1545,91 +1224,59 @@ export const toFile = dual<
|
|
|
1545
1224
|
*
|
|
1546
1225
|
* **Example** (Writing JSON logs to a file)
|
|
1547
1226
|
*
|
|
1548
|
-
* ```ts
|
|
1549
|
-
* import { Effect,
|
|
1550
|
-
* import { NodeFileSystem, NodeRuntime } from "@effect/platform-node"
|
|
1551
|
-
*
|
|
1552
|
-
* const fileLogger = Logger.formatJson.pipe(
|
|
1553
|
-
* Logger.toFile("/tmp/log.txt")
|
|
1554
|
-
* )
|
|
1555
|
-
* const LoggerLive = Logger.layer([fileLogger]).pipe(
|
|
1556
|
-
* Layer.provide(NodeFileSystem.layer)
|
|
1557
|
-
* )
|
|
1227
|
+
* ```ts import.meta.vitest
|
|
1228
|
+
* import { Effect, FileSystem, Logger } from "effect"
|
|
1558
1229
|
*
|
|
1559
|
-
*
|
|
1560
|
-
*
|
|
1561
|
-
*
|
|
1562
|
-
*
|
|
1563
|
-
*
|
|
1564
|
-
*
|
|
1230
|
+
* const writes: Array<string> = []
|
|
1231
|
+
* const file = {
|
|
1232
|
+
* write: (buffer: Uint8Array) => Effect.sync(() => {
|
|
1233
|
+
* writes.push(new TextDecoder().decode(buffer).trim())
|
|
1234
|
+
* return FileSystem.Size(buffer.length)
|
|
1235
|
+
* })
|
|
1236
|
+
* } as unknown as FileSystem.File
|
|
1237
|
+
* const fileSystem = FileSystem.makeNoop({ open: () => Effect.succeed(file) })
|
|
1238
|
+
* const messageLogger = Logger.make((options) => String(options.message))
|
|
1239
|
+
*
|
|
1240
|
+
* const program = Effect.scoped(Effect.gen(function*() {
|
|
1241
|
+
* const fileLogger = yield* Logger.toFile(messageLogger, "/tmp/log.txt")
|
|
1242
|
+
* yield* Effect.log("a").pipe(Effect.provide(Logger.layer([fileLogger])))
|
|
1243
|
+
* yield* Effect.log("b").pipe(Effect.provide(Logger.layer([fileLogger])))
|
|
1244
|
+
* yield* Effect.log("c").pipe(Effect.provide(Logger.layer([fileLogger])))
|
|
1245
|
+
* })).pipe(Effect.provideService(FileSystem.FileSystem, fileSystem))
|
|
1246
|
+
*
|
|
1247
|
+
* await Effect.runPromise(program)
|
|
1248
|
+
* writes // => ["a\nb\nc"]
|
|
1565
1249
|
* ```
|
|
1566
1250
|
*
|
|
1567
1251
|
* **Example** (Writing logs to files)
|
|
1568
1252
|
*
|
|
1569
|
-
* ```ts
|
|
1570
|
-
* import {
|
|
1571
|
-
* import { NodeFileSystem } from "@effect/platform-node"
|
|
1572
|
-
*
|
|
1573
|
-
* // Basic file logging. The scope keeps the file open while logs are emitted
|
|
1574
|
-
* // and flushes pending entries when it closes.
|
|
1575
|
-
* const basicFileLogger = Effect.scoped(
|
|
1576
|
-
* Effect.gen(function*() {
|
|
1577
|
-
* const fileLogger = yield* Logger.formatJson.pipe(
|
|
1578
|
-
* Logger.toFile("/tmp/app.log")
|
|
1579
|
-
* )
|
|
1253
|
+
* ```ts import.meta.vitest
|
|
1254
|
+
* import { Effect, FileSystem, Logger } from "effect"
|
|
1580
1255
|
*
|
|
1581
|
-
*
|
|
1582
|
-
*
|
|
1583
|
-
*
|
|
1256
|
+
* const writes: Array<string> = []
|
|
1257
|
+
* const file = {
|
|
1258
|
+
* write: (buffer: Uint8Array) => Effect.sync(() => {
|
|
1259
|
+
* writes.push(new TextDecoder().decode(buffer).trim())
|
|
1260
|
+
* return FileSystem.Size(buffer.length)
|
|
1584
1261
|
* })
|
|
1585
|
-
*
|
|
1586
|
-
*
|
|
1587
|
-
* )
|
|
1588
|
-
*
|
|
1589
|
-
* // File logger with custom batch window
|
|
1590
|
-
* const batchedFileLogger = Effect.scoped(
|
|
1591
|
-
* Effect.gen(function*() {
|
|
1592
|
-
* const fileLogger = yield* Logger.formatLogFmt.pipe(
|
|
1593
|
-
* Logger.toFile("/var/log/myapp.log", {
|
|
1594
|
-
* flag: "a",
|
|
1595
|
-
* batchWindow: Duration.seconds(5)
|
|
1596
|
-
* })
|
|
1597
|
-
* )
|
|
1262
|
+
* } as unknown as FileSystem.File
|
|
1263
|
+
* const fileSystem = FileSystem.makeNoop({ open: () => Effect.succeed(file) })
|
|
1264
|
+
* const messageLogger = Logger.make((options) => String(options.message))
|
|
1598
1265
|
*
|
|
1599
|
-
*
|
|
1600
|
-
*
|
|
1601
|
-
*
|
|
1602
|
-
* Effect.log("Event 3")
|
|
1603
|
-
* ]).pipe(
|
|
1604
|
-
* Effect.provide(Logger.layer([fileLogger]))
|
|
1605
|
-
* )
|
|
1266
|
+
* const program = Effect.scoped(Effect.gen(function*() {
|
|
1267
|
+
* const fileLogger = yield* Logger.toFile(messageLogger, "/tmp/app.log", {
|
|
1268
|
+
* batchWindow: "1 hour"
|
|
1606
1269
|
* })
|
|
1607
|
-
* ).pipe(
|
|
1608
|
-
*
|
|
1609
|
-
*
|
|
1610
|
-
*
|
|
1611
|
-
* // Multiple loggers: console + file
|
|
1612
|
-
* const multiLogger = Effect.scoped(
|
|
1613
|
-
* Effect.gen(function*() {
|
|
1614
|
-
* const fileLogger = yield* Logger.formatJson.pipe(
|
|
1615
|
-
* Logger.toFile("/tmp/production.log")
|
|
1616
|
-
* )
|
|
1617
|
-
*
|
|
1618
|
-
* const loggerLive = Logger.layer([
|
|
1619
|
-
* Logger.consolePretty(),
|
|
1620
|
-
* fileLogger
|
|
1621
|
-
* ])
|
|
1270
|
+
* yield* Effect.log("Application started").pipe(
|
|
1271
|
+
* Effect.provide(Logger.layer([fileLogger]))
|
|
1272
|
+
* )
|
|
1273
|
+
* })).pipe(Effect.provideService(FileSystem.FileSystem, fileSystem))
|
|
1622
1274
|
*
|
|
1623
|
-
*
|
|
1624
|
-
*
|
|
1625
|
-
* )
|
|
1626
|
-
* })
|
|
1627
|
-
* ).pipe(
|
|
1628
|
-
* Effect.provide(NodeFileSystem.layer)
|
|
1629
|
-
* )
|
|
1275
|
+
* await Effect.runPromise(program)
|
|
1276
|
+
* writes // => ["Application started"]
|
|
1630
1277
|
* ```
|
|
1631
1278
|
*
|
|
1632
|
-
* @category
|
|
1279
|
+
* @category logging
|
|
1633
1280
|
* @since 4.0.0
|
|
1634
1281
|
*/
|
|
1635
1282
|
<Message>(
|