effect 4.0.0-beta.102 → 4.0.0-beta.103
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/Array.d.ts +971 -1037
- package/dist/Array.d.ts.map +1 -1
- package/dist/Array.js +381 -407
- package/dist/Array.js.map +1 -1
- package/dist/BigDecimal.d.ts +433 -756
- package/dist/BigDecimal.d.ts.map +1 -1
- package/dist/BigDecimal.js +200 -325
- package/dist/BigDecimal.js.map +1 -1
- package/dist/BigInt.d.ts +207 -267
- package/dist/BigInt.d.ts.map +1 -1
- package/dist/BigInt.js +107 -135
- package/dist/BigInt.js.map +1 -1
- package/dist/Boolean.d.ts +146 -188
- package/dist/Boolean.d.ts.map +1 -1
- package/dist/Boolean.js +64 -84
- package/dist/Boolean.js.map +1 -1
- package/dist/Brand.js.map +1 -1
- package/dist/Cache.d.ts +405 -254
- package/dist/Cache.d.ts.map +1 -1
- package/dist/Cache.js +166 -101
- package/dist/Cache.js.map +1 -1
- package/dist/Cause.d.ts +167 -277
- package/dist/Cause.d.ts.map +1 -1
- package/dist/Cause.js +122 -176
- package/dist/Cause.js.map +1 -1
- package/dist/Channel.d.ts +729 -768
- package/dist/Channel.d.ts.map +1 -1
- package/dist/Channel.js +514 -440
- package/dist/Channel.js.map +1 -1
- package/dist/ChannelSchema.d.ts +1 -1
- package/dist/ChannelSchema.d.ts.map +1 -1
- package/dist/ChannelSchema.js.map +1 -1
- package/dist/Chunk.d.ts +834 -1173
- package/dist/Chunk.d.ts.map +1 -1
- package/dist/Chunk.js +326 -439
- package/dist/Chunk.js.map +1 -1
- package/dist/Clock.d.ts +180 -49
- package/dist/Clock.d.ts.map +1 -1
- package/dist/Clock.js +96 -31
- package/dist/Clock.js.map +1 -1
- package/dist/Combiner.d.ts +20 -33
- package/dist/Combiner.d.ts.map +1 -1
- package/dist/Combiner.js +18 -30
- package/dist/Combiner.js.map +1 -1
- package/dist/Config.d.ts +225 -173
- package/dist/Config.d.ts.map +1 -1
- package/dist/Config.js +336 -265
- package/dist/Config.js.map +1 -1
- package/dist/ConfigProvider.d.ts +194 -68
- package/dist/ConfigProvider.d.ts.map +1 -1
- package/dist/ConfigProvider.js +115 -80
- package/dist/ConfigProvider.js.map +1 -1
- package/dist/Console.d.ts +233 -33
- package/dist/Console.d.ts.map +1 -1
- package/dist/Console.js +232 -32
- package/dist/Console.js.map +1 -1
- package/dist/Context.d.ts +151 -274
- package/dist/Context.d.ts.map +1 -1
- package/dist/Context.js +171 -214
- package/dist/Context.js.map +1 -1
- package/dist/Cron.d.ts +68 -77
- package/dist/Cron.d.ts.map +1 -1
- package/dist/Cron.js +57 -66
- package/dist/Cron.js.map +1 -1
- package/dist/Crypto.d.ts +13 -15
- package/dist/Crypto.d.ts.map +1 -1
- package/dist/Crypto.js +9 -10
- package/dist/Crypto.js.map +1 -1
- package/dist/Data.d.ts +60 -80
- package/dist/Data.d.ts.map +1 -1
- package/dist/Data.js +16 -23
- package/dist/Data.js.map +1 -1
- package/dist/DateTime.d.ts +562 -660
- package/dist/DateTime.d.ts.map +1 -1
- package/dist/DateTime.js +307 -362
- package/dist/DateTime.js.map +1 -1
- package/dist/Deferred.d.ts +253 -256
- package/dist/Deferred.d.ts.map +1 -1
- package/dist/Deferred.js +104 -96
- package/dist/Deferred.js.map +1 -1
- package/dist/Duration.d.ts +216 -308
- package/dist/Duration.d.ts.map +1 -1
- package/dist/Duration.js +132 -186
- package/dist/Duration.js.map +1 -1
- package/dist/Effect.d.ts +2841 -3247
- package/dist/Effect.d.ts.map +1 -1
- package/dist/Effect.js +1322 -1546
- package/dist/Effect.js.map +1 -1
- package/dist/Effectable.js.map +1 -1
- package/dist/Encoding.d.ts +22 -40
- package/dist/Encoding.d.ts.map +1 -1
- package/dist/Encoding.js +22 -40
- package/dist/Encoding.js.map +1 -1
- package/dist/Equal.d.ts +33 -37
- package/dist/Equal.d.ts.map +1 -1
- package/dist/Equal.js +29 -21
- package/dist/Equal.js.map +1 -1
- package/dist/Equivalence.d.ts +103 -105
- package/dist/Equivalence.d.ts.map +1 -1
- package/dist/Equivalence.js +77 -79
- package/dist/Equivalence.js.map +1 -1
- package/dist/ErrorReporter.d.ts +51 -27
- package/dist/ErrorReporter.d.ts.map +1 -1
- package/dist/ErrorReporter.js +50 -26
- package/dist/ErrorReporter.js.map +1 -1
- package/dist/ExecutionPlan.d.ts +13 -55
- package/dist/ExecutionPlan.d.ts.map +1 -1
- package/dist/ExecutionPlan.js +7 -28
- package/dist/ExecutionPlan.js.map +1 -1
- package/dist/Exit.d.ts +116 -192
- package/dist/Exit.d.ts.map +1 -1
- package/dist/Exit.js +82 -130
- package/dist/Exit.js.map +1 -1
- package/dist/Fiber.d.ts +82 -146
- package/dist/Fiber.d.ts.map +1 -1
- package/dist/Fiber.js +48 -87
- package/dist/Fiber.js.map +1 -1
- package/dist/FiberHandle.d.ts +152 -105
- package/dist/FiberHandle.d.ts.map +1 -1
- package/dist/FiberHandle.js +106 -73
- package/dist/FiberHandle.js.map +1 -1
- package/dist/FiberMap.d.ts +213 -168
- package/dist/FiberMap.d.ts.map +1 -1
- package/dist/FiberMap.js +114 -89
- package/dist/FiberMap.js.map +1 -1
- package/dist/FiberSet.d.ts +123 -81
- package/dist/FiberSet.d.ts.map +1 -1
- package/dist/FiberSet.js +85 -59
- package/dist/FiberSet.js.map +1 -1
- package/dist/FileSystem.d.ts +153 -264
- package/dist/FileSystem.d.ts.map +1 -1
- package/dist/FileSystem.js +42 -147
- package/dist/FileSystem.js.map +1 -1
- package/dist/Filter.d.ts +61 -33
- package/dist/Filter.d.ts.map +1 -1
- package/dist/Filter.js +26 -15
- package/dist/Filter.js.map +1 -1
- package/dist/Formatter.d.ts +25 -33
- package/dist/Formatter.d.ts.map +1 -1
- package/dist/Formatter.js +48 -49
- package/dist/Formatter.js.map +1 -1
- package/dist/Function.d.ts +76 -145
- package/dist/Function.d.ts.map +1 -1
- package/dist/Function.js +40 -57
- package/dist/Function.js.map +1 -1
- package/dist/Graph.d.ts +360 -714
- package/dist/Graph.d.ts.map +1 -1
- package/dist/Graph.js +168 -297
- package/dist/Graph.js.map +1 -1
- package/dist/HKT.d.ts +12 -6
- package/dist/HKT.d.ts.map +1 -1
- package/dist/Hash.d.ts +47 -83
- package/dist/Hash.d.ts.map +1 -1
- package/dist/Hash.js +46 -68
- package/dist/Hash.js.map +1 -1
- package/dist/HashMap.d.ts +319 -411
- package/dist/HashMap.d.ts.map +1 -1
- package/dist/HashMap.js +122 -166
- package/dist/HashMap.js.map +1 -1
- package/dist/HashRing.d.ts.map +1 -1
- package/dist/HashRing.js +1 -0
- package/dist/HashRing.js.map +1 -1
- package/dist/HashSet.d.ts +177 -284
- package/dist/HashSet.d.ts.map +1 -1
- package/dist/HashSet.js +68 -109
- package/dist/HashSet.js.map +1 -1
- package/dist/Inspectable.d.ts +12 -12
- package/dist/Inspectable.js +8 -8
- package/dist/Inspectable.js.map +1 -1
- package/dist/Iterable.d.ts +620 -786
- package/dist/Iterable.d.ts.map +1 -1
- package/dist/Iterable.js +228 -306
- package/dist/Iterable.js.map +1 -1
- package/dist/JsonPatch.d.ts +11 -13
- package/dist/JsonPatch.d.ts.map +1 -1
- package/dist/JsonPatch.js +44 -102
- package/dist/JsonPatch.js.map +1 -1
- package/dist/JsonPointer.d.ts +8 -8
- package/dist/JsonPointer.js +8 -8
- package/dist/JsonPointer.js.map +1 -1
- package/dist/JsonSchema.d.ts +98 -44
- package/dist/JsonSchema.d.ts.map +1 -1
- package/dist/JsonSchema.js +297 -234
- package/dist/JsonSchema.js.map +1 -1
- package/dist/Latch.d.ts +23 -35
- package/dist/Latch.d.ts.map +1 -1
- package/dist/Latch.js +16 -28
- package/dist/Latch.js.map +1 -1
- package/dist/Layer.d.ts +359 -260
- package/dist/Layer.d.ts.map +1 -1
- package/dist/Layer.js +195 -175
- package/dist/Layer.js.map +1 -1
- package/dist/LayerMap.d.ts +42 -29
- package/dist/LayerMap.d.ts.map +1 -1
- package/dist/LayerMap.js +31 -21
- package/dist/LayerMap.js.map +1 -1
- package/dist/LayerRef.d.ts +6 -2
- package/dist/LayerRef.d.ts.map +1 -1
- package/dist/LayerRef.js +6 -2
- package/dist/LayerRef.js.map +1 -1
- package/dist/LogLevel.d.ts +114 -214
- package/dist/LogLevel.d.ts.map +1 -1
- package/dist/LogLevel.js +41 -76
- package/dist/LogLevel.js.map +1 -1
- package/dist/Logger.d.ts +218 -467
- package/dist/Logger.d.ts.map +1 -1
- package/dist/Logger.js +204 -450
- package/dist/Logger.js.map +1 -1
- package/dist/ManagedRuntime.d.ts +7 -5
- package/dist/ManagedRuntime.d.ts.map +1 -1
- package/dist/ManagedRuntime.js +7 -5
- package/dist/ManagedRuntime.js.map +1 -1
- package/dist/Match.d.ts +217 -252
- package/dist/Match.d.ts.map +1 -1
- package/dist/Match.js +150 -183
- package/dist/Match.js.map +1 -1
- package/dist/Metric.d.ts +442 -993
- package/dist/Metric.d.ts.map +1 -1
- package/dist/Metric.js +198 -642
- package/dist/Metric.js.map +1 -1
- package/dist/MutableHashMap.d.ts +144 -173
- package/dist/MutableHashMap.d.ts.map +1 -1
- package/dist/MutableHashMap.js +68 -79
- package/dist/MutableHashMap.js.map +1 -1
- package/dist/MutableHashSet.d.ts +84 -89
- package/dist/MutableHashSet.d.ts.map +1 -1
- package/dist/MutableHashSet.js +44 -47
- package/dist/MutableHashSet.js.map +1 -1
- package/dist/MutableList.d.ts +71 -370
- package/dist/MutableList.d.ts.map +1 -1
- package/dist/MutableList.js +59 -284
- package/dist/MutableList.js.map +1 -1
- package/dist/MutableRef.d.ts +420 -243
- package/dist/MutableRef.d.ts.map +1 -1
- package/dist/MutableRef.js +209 -120
- package/dist/MutableRef.js.map +1 -1
- package/dist/Newtype.d.ts +21 -14
- package/dist/Newtype.d.ts.map +1 -1
- package/dist/Newtype.js +15 -13
- package/dist/Newtype.js.map +1 -1
- package/dist/NonEmptyIterable.d.ts +7 -137
- package/dist/NonEmptyIterable.d.ts.map +1 -1
- package/dist/NonEmptyIterable.js +5 -93
- package/dist/NonEmptyIterable.js.map +1 -1
- package/dist/Number.d.ts +196 -233
- package/dist/Number.d.ts.map +1 -1
- package/dist/Number.js +90 -109
- package/dist/Number.js.map +1 -1
- package/dist/Optic.d.ts +97 -189
- package/dist/Optic.d.ts.map +1 -1
- package/dist/Optic.js +187 -290
- package/dist/Optic.js.map +1 -1
- package/dist/Option.d.ts +447 -812
- package/dist/Option.d.ts.map +1 -1
- package/dist/Option.js +211 -392
- package/dist/Option.js.map +1 -1
- package/dist/Order.d.ts +109 -109
- package/dist/Order.js +91 -91
- package/dist/Order.js.map +1 -1
- package/dist/Ordering.d.ts +20 -23
- package/dist/Ordering.d.ts.map +1 -1
- package/dist/Ordering.js +8 -9
- package/dist/Ordering.js.map +1 -1
- package/dist/PartitionedSemaphore.js.map +1 -1
- package/dist/Path.d.ts +38 -41
- package/dist/Path.d.ts.map +1 -1
- package/dist/Path.js +3 -4
- package/dist/Path.js.map +1 -1
- package/dist/Pipeable.d.ts +6 -5
- package/dist/Pipeable.d.ts.map +1 -1
- package/dist/Pipeable.js +2 -2
- package/dist/Pipeable.js.map +1 -1
- package/dist/PlatformError.d.ts +4 -4
- package/dist/PlatformError.js +3 -3
- package/dist/PlatformError.js.map +1 -1
- package/dist/Pool.d.ts +4 -2
- package/dist/Pool.d.ts.map +1 -1
- package/dist/Pool.js +4 -2
- package/dist/Pool.js.map +1 -1
- package/dist/Predicate.d.ts +200 -181
- package/dist/Predicate.d.ts.map +1 -1
- package/dist/Predicate.js +100 -108
- package/dist/Predicate.js.map +1 -1
- package/dist/PrimaryKey.d.ts +7 -7
- package/dist/PrimaryKey.js +5 -5
- package/dist/PrimaryKey.js.map +1 -1
- package/dist/PubSub.d.ts +425 -494
- package/dist/PubSub.d.ts.map +1 -1
- package/dist/PubSub.js +373 -362
- package/dist/PubSub.js.map +1 -1
- package/dist/Pull.d.ts +24 -18
- package/dist/Pull.d.ts.map +1 -1
- package/dist/Pull.js +11 -9
- package/dist/Pull.js.map +1 -1
- package/dist/Queue.d.ts +200 -159
- package/dist/Queue.d.ts.map +1 -1
- package/dist/Queue.js +162 -132
- package/dist/Queue.js.map +1 -1
- package/dist/Random.d.ts +49 -74
- package/dist/Random.d.ts.map +1 -1
- package/dist/Random.js +35 -54
- package/dist/Random.js.map +1 -1
- package/dist/RcMap.d.ts +121 -63
- package/dist/RcMap.d.ts.map +1 -1
- package/dist/RcMap.js +42 -21
- package/dist/RcMap.js.map +1 -1
- package/dist/RcRef.d.ts +24 -13
- package/dist/RcRef.d.ts.map +1 -1
- package/dist/RcRef.js +15 -9
- package/dist/RcRef.js.map +1 -1
- package/dist/Record.d.ts +291 -488
- package/dist/Record.d.ts.map +1 -1
- package/dist/Record.js +111 -202
- package/dist/Record.js.map +1 -1
- package/dist/Redactable.d.ts +6 -2
- package/dist/Redactable.d.ts.map +1 -1
- package/dist/Redactable.js +7 -2
- package/dist/Redactable.js.map +1 -1
- package/dist/Redacted.d.ts +25 -25
- package/dist/Redacted.d.ts.map +1 -1
- package/dist/Redacted.js +19 -20
- package/dist/Redacted.js.map +1 -1
- package/dist/Reducer.d.ts +8 -15
- package/dist/Reducer.d.ts.map +1 -1
- package/dist/Reducer.js +6 -12
- package/dist/Reducer.js.map +1 -1
- package/dist/Ref.d.ts +95 -165
- package/dist/Ref.d.ts.map +1 -1
- package/dist/Ref.js +75 -122
- package/dist/Ref.js.map +1 -1
- package/dist/References.d.ts +102 -168
- package/dist/References.d.ts.map +1 -1
- package/dist/References.js +102 -168
- package/dist/References.js.map +1 -1
- package/dist/RegExp.d.ts +10 -14
- package/dist/RegExp.d.ts.map +1 -1
- package/dist/RegExp.js +10 -14
- package/dist/RegExp.js.map +1 -1
- package/dist/Request.d.ts +31 -21
- package/dist/Request.d.ts.map +1 -1
- package/dist/Request.js +16 -13
- package/dist/Request.js.map +1 -1
- package/dist/RequestResolver.d.ts +201 -90
- package/dist/RequestResolver.d.ts.map +1 -1
- package/dist/RequestResolver.js +87 -41
- package/dist/RequestResolver.js.map +1 -1
- package/dist/Resource.js.map +1 -1
- package/dist/Result.d.ts +302 -470
- package/dist/Result.d.ts.map +1 -1
- package/dist/Result.js +133 -217
- package/dist/Result.js.map +1 -1
- package/dist/Runtime.d.ts +50 -75
- package/dist/Runtime.d.ts.map +1 -1
- package/dist/Runtime.js +39 -60
- package/dist/Runtime.js.map +1 -1
- package/dist/Schedule.d.ts +290 -1636
- package/dist/Schedule.d.ts.map +1 -1
- package/dist/Schedule.js +162 -803
- package/dist/Schedule.js.map +1 -1
- package/dist/Scheduler.d.ts +5 -5
- package/dist/Scheduler.d.ts.map +1 -1
- package/dist/Scheduler.js +18 -6
- package/dist/Scheduler.js.map +1 -1
- package/dist/Schema.d.ts +644 -642
- package/dist/Schema.d.ts.map +1 -1
- package/dist/Schema.js +491 -527
- package/dist/Schema.js.map +1 -1
- package/dist/SchemaAST.d.ts +27 -50
- package/dist/SchemaAST.d.ts.map +1 -1
- package/dist/SchemaAST.js +366 -279
- package/dist/SchemaAST.js.map +1 -1
- package/dist/SchemaError.d.ts +7 -6
- package/dist/SchemaError.d.ts.map +1 -1
- package/dist/SchemaError.js +7 -6
- package/dist/SchemaError.js.map +1 -1
- package/dist/SchemaGetter.d.ts +217 -174
- package/dist/SchemaGetter.d.ts.map +1 -1
- package/dist/SchemaGetter.js +218 -185
- package/dist/SchemaGetter.js.map +1 -1
- package/dist/SchemaIssue.d.ts +62 -190
- package/dist/SchemaIssue.d.ts.map +1 -1
- package/dist/SchemaIssue.js +73 -265
- package/dist/SchemaIssue.js.map +1 -1
- package/dist/SchemaParser.d.ts +2 -2
- package/dist/SchemaParser.d.ts.map +1 -1
- package/dist/SchemaParser.js +123 -75
- package/dist/SchemaParser.js.map +1 -1
- package/dist/SchemaRepresentation.d.ts +22 -36
- package/dist/SchemaRepresentation.d.ts.map +1 -1
- package/dist/SchemaRepresentation.js +20 -26
- package/dist/SchemaRepresentation.js.map +1 -1
- package/dist/SchemaTransformation.d.ts +114 -74
- package/dist/SchemaTransformation.d.ts.map +1 -1
- package/dist/SchemaTransformation.js +120 -85
- package/dist/SchemaTransformation.js.map +1 -1
- package/dist/Scope.d.ts +123 -151
- package/dist/Scope.d.ts.map +1 -1
- package/dist/Scope.js +72 -92
- package/dist/Scope.js.map +1 -1
- package/dist/ScopedCache.js.map +1 -1
- package/dist/ScopedRef.d.ts +3 -3
- package/dist/ScopedRef.js +2 -2
- package/dist/ScopedRef.js.map +1 -1
- package/dist/Semaphore.d.ts +96 -10
- package/dist/Semaphore.d.ts.map +1 -1
- package/dist/Semaphore.js +78 -39
- package/dist/Semaphore.js.map +1 -1
- package/dist/Sink.d.ts +117 -107
- package/dist/Sink.d.ts.map +1 -1
- package/dist/Sink.js +107 -100
- package/dist/Sink.js.map +1 -1
- package/dist/Stdio.d.ts +1 -1
- package/dist/Stdio.js.map +1 -1
- package/dist/Stream.d.ts +2415 -2949
- package/dist/Stream.d.ts.map +1 -1
- package/dist/Stream.js +1078 -1381
- package/dist/Stream.js.map +1 -1
- package/dist/String.d.ts +262 -308
- package/dist/String.d.ts.map +1 -1
- package/dist/String.js +184 -215
- package/dist/String.js.map +1 -1
- package/dist/Struct.d.ts +109 -114
- package/dist/Struct.d.ts.map +1 -1
- package/dist/Struct.js +41 -50
- package/dist/Struct.js.map +1 -1
- package/dist/SubscriptionRef.d.ts +282 -250
- package/dist/SubscriptionRef.d.ts.map +1 -1
- package/dist/SubscriptionRef.js +104 -92
- package/dist/SubscriptionRef.js.map +1 -1
- package/dist/Symbol.d.ts +3 -3
- package/dist/Symbol.js +3 -3
- package/dist/Symbol.js.map +1 -1
- package/dist/SynchronizedRef.js.map +1 -1
- package/dist/Take.js.map +1 -1
- package/dist/Terminal.d.ts +2 -2
- package/dist/Terminal.js +1 -1
- package/dist/Terminal.js.map +1 -1
- package/dist/Tracer.d.ts +100 -54
- package/dist/Tracer.d.ts.map +1 -1
- package/dist/Tracer.js +41 -24
- package/dist/Tracer.js.map +1 -1
- package/dist/Trie.d.ts +287 -679
- package/dist/Trie.d.ts.map +1 -1
- package/dist/Trie.js +109 -251
- package/dist/Trie.js.map +1 -1
- package/dist/Tuple.d.ts +92 -127
- package/dist/Tuple.d.ts.map +1 -1
- package/dist/Tuple.js +42 -57
- package/dist/Tuple.js.map +1 -1
- package/dist/TxChunk.d.ts +201 -121
- package/dist/TxChunk.d.ts.map +1 -1
- package/dist/TxChunk.js +85 -56
- package/dist/TxChunk.js.map +1 -1
- package/dist/TxDeferred.d.ts +62 -46
- package/dist/TxDeferred.d.ts.map +1 -1
- package/dist/TxDeferred.js +30 -22
- package/dist/TxDeferred.js.map +1 -1
- package/dist/TxHashMap.d.ts +631 -779
- package/dist/TxHashMap.d.ts.map +1 -1
- package/dist/TxHashMap.js +268 -330
- package/dist/TxHashMap.js.map +1 -1
- package/dist/TxHashSet.d.ts +297 -236
- package/dist/TxHashSet.d.ts.map +1 -1
- package/dist/TxHashSet.js +130 -100
- package/dist/TxHashSet.js.map +1 -1
- package/dist/TxPriorityQueue.d.ts +126 -95
- package/dist/TxPriorityQueue.d.ts.map +1 -1
- package/dist/TxPriorityQueue.js +74 -56
- package/dist/TxPriorityQueue.js.map +1 -1
- package/dist/TxPubSub.d.ts +101 -88
- package/dist/TxPubSub.d.ts.map +1 -1
- package/dist/TxPubSub.js +87 -66
- package/dist/TxPubSub.js.map +1 -1
- package/dist/TxQueue.d.ts +200 -180
- package/dist/TxQueue.d.ts.map +1 -1
- package/dist/TxQueue.js +160 -136
- package/dist/TxQueue.js.map +1 -1
- package/dist/TxReentrantLock.d.ts +97 -66
- package/dist/TxReentrantLock.d.ts.map +1 -1
- package/dist/TxReentrantLock.js +67 -45
- package/dist/TxReentrantLock.js.map +1 -1
- package/dist/TxRef.d.ts +51 -32
- package/dist/TxRef.d.ts.map +1 -1
- package/dist/TxRef.js +23 -15
- package/dist/TxRef.js.map +1 -1
- package/dist/TxSemaphore.d.ts +129 -95
- package/dist/TxSemaphore.d.ts.map +1 -1
- package/dist/TxSemaphore.js +85 -70
- package/dist/TxSemaphore.js.map +1 -1
- package/dist/TxSubscriptionRef.d.ts +97 -70
- package/dist/TxSubscriptionRef.d.ts.map +1 -1
- package/dist/TxSubscriptionRef.js +44 -34
- package/dist/TxSubscriptionRef.js.map +1 -1
- package/dist/Types.d.ts +126 -67
- package/dist/Types.d.ts.map +1 -1
- package/dist/UndefinedOr.js.map +1 -1
- package/dist/Unify.d.ts +45 -65
- package/dist/Unify.d.ts.map +1 -1
- package/dist/Unify.js +6 -9
- package/dist/Unify.js.map +1 -1
- package/dist/Utils.d.ts +23 -16
- package/dist/Utils.d.ts.map +1 -1
- package/dist/Utils.js +3 -7
- package/dist/Utils.js.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/internal/array.js.map +1 -1
- package/dist/internal/core.js +1 -1
- package/dist/internal/core.js.map +1 -1
- package/dist/internal/dateTime.js +4 -0
- package/dist/internal/dateTime.js.map +1 -1
- package/dist/internal/doNotation.js.map +1 -1
- package/dist/internal/effect.js +77 -40
- package/dist/internal/effect.js.map +1 -1
- package/dist/internal/equal.js.map +1 -1
- package/dist/internal/errors.js.map +1 -1
- package/dist/internal/executionPlan.js.map +1 -1
- package/dist/internal/hashMap.js.map +1 -1
- package/dist/internal/hashSet.js.map +1 -1
- package/dist/internal/layer.js.map +1 -1
- package/dist/internal/matcher.js.map +1 -1
- package/dist/internal/metric.js.map +1 -1
- package/dist/internal/option.js.map +1 -1
- package/dist/internal/persistence.d.ts +2 -0
- package/dist/internal/persistence.d.ts.map +1 -0
- package/dist/internal/persistence.js +3 -0
- package/dist/internal/persistence.js.map +1 -0
- package/dist/internal/random.js.map +1 -1
- package/dist/internal/rcRef.js.map +1 -1
- package/dist/internal/record.js.map +1 -1
- package/dist/internal/redacted.js.map +1 -1
- package/dist/internal/references.js +3 -0
- package/dist/internal/references.js.map +1 -1
- package/dist/internal/request.js.map +1 -1
- package/dist/internal/result.js.map +1 -1
- package/dist/internal/schedule.js.map +1 -1
- package/dist/internal/schema/annotations.js.map +1 -1
- package/dist/internal/schema/cause.js.map +1 -1
- package/dist/internal/schema/fromJsonSchemaDocument.js +13 -11
- package/dist/internal/schema/fromJsonSchemaDocument.js.map +1 -1
- package/dist/internal/schema/fromRepresentation.js +8 -15
- package/dist/internal/schema/fromRepresentation.js.map +1 -1
- package/dist/internal/schema/parser.d.ts +14 -0
- package/dist/internal/schema/parser.d.ts.map +1 -0
- package/dist/internal/schema/parser.js +13 -0
- package/dist/internal/schema/parser.js.map +1 -0
- package/dist/internal/schema/schema.js.map +1 -1
- package/dist/internal/schema/toArbitrary.js.map +1 -1
- package/dist/internal/schema/toCodeDocument.js.map +1 -1
- package/dist/internal/schema/toEquivalence.js.map +1 -1
- package/dist/internal/schema/toJsonSchemaDocument.js +48 -6
- package/dist/internal/schema/toJsonSchemaDocument.js.map +1 -1
- package/dist/internal/schema/toRepresentation.js +87 -107
- package/dist/internal/schema/toRepresentation.js.map +1 -1
- package/dist/internal/stackTraceLimit.js.map +1 -1
- package/dist/internal/stream.js.map +1 -1
- package/dist/internal/tracer.js.map +1 -1
- package/dist/internal/trie.js +13 -9
- package/dist/internal/trie.js.map +1 -1
- package/dist/testing/FastCheck.d.ts +8 -7
- package/dist/testing/FastCheck.d.ts.map +1 -1
- package/dist/testing/FastCheck.js +8 -7
- package/dist/testing/FastCheck.js.map +1 -1
- package/dist/testing/TestClock.d.ts +57 -28
- package/dist/testing/TestClock.d.ts.map +1 -1
- package/dist/testing/TestClock.js +50 -18
- package/dist/testing/TestClock.js.map +1 -1
- package/dist/testing/TestConsole.d.ts +32 -31
- package/dist/testing/TestConsole.d.ts.map +1 -1
- package/dist/testing/TestConsole.js +24 -22
- package/dist/testing/TestConsole.js.map +1 -1
- package/dist/testing/TestSchema.d.ts +29 -29
- package/dist/testing/TestSchema.js +25 -25
- package/dist/testing/TestSchema.js.map +1 -1
- package/dist/testing/index.js.map +1 -1
- package/dist/unstable/ai/AiError.d.ts +95 -118
- package/dist/unstable/ai/AiError.d.ts.map +1 -1
- package/dist/unstable/ai/AiError.js +94 -117
- package/dist/unstable/ai/AiError.js.map +1 -1
- package/dist/unstable/ai/AnthropicStructuredOutput.d.ts +1 -1
- package/dist/unstable/ai/AnthropicStructuredOutput.js +1 -1
- package/dist/unstable/ai/AnthropicStructuredOutput.js.map +1 -1
- package/dist/unstable/ai/Chat.d.ts +132 -97
- package/dist/unstable/ai/Chat.d.ts.map +1 -1
- package/dist/unstable/ai/Chat.js +55 -51
- package/dist/unstable/ai/Chat.js.map +1 -1
- package/dist/unstable/ai/EmbeddingModel.js.map +1 -1
- package/dist/unstable/ai/IdGenerator.d.ts +32 -28
- package/dist/unstable/ai/IdGenerator.d.ts.map +1 -1
- package/dist/unstable/ai/IdGenerator.js +26 -21
- package/dist/unstable/ai/IdGenerator.js.map +1 -1
- package/dist/unstable/ai/LanguageModel.d.ts +107 -67
- package/dist/unstable/ai/LanguageModel.d.ts.map +1 -1
- package/dist/unstable/ai/LanguageModel.js +104 -64
- package/dist/unstable/ai/LanguageModel.js.map +1 -1
- package/dist/unstable/ai/McpProtocol.d.ts +30 -0
- package/dist/unstable/ai/McpProtocol.d.ts.map +1 -0
- package/dist/unstable/ai/McpProtocol.js +20 -0
- package/dist/unstable/ai/McpProtocol.js.map +1 -0
- package/dist/unstable/ai/McpSchema.d.ts +141 -75
- package/dist/unstable/ai/McpSchema.d.ts.map +1 -1
- package/dist/unstable/ai/McpSchema.js +58 -50
- package/dist/unstable/ai/McpSchema.js.map +1 -1
- package/dist/unstable/ai/McpServer.d.ts +68 -59
- package/dist/unstable/ai/McpServer.d.ts.map +1 -1
- package/dist/unstable/ai/McpServer.js +694 -241
- package/dist/unstable/ai/McpServer.js.map +1 -1
- package/dist/unstable/ai/Model.d.ts +8 -19
- package/dist/unstable/ai/Model.d.ts.map +1 -1
- package/dist/unstable/ai/Model.js +9 -20
- package/dist/unstable/ai/Model.js.map +1 -1
- package/dist/unstable/ai/OpenAiStructuredOutput.d.ts +1 -1
- package/dist/unstable/ai/OpenAiStructuredOutput.js +1 -1
- package/dist/unstable/ai/OpenAiStructuredOutput.js.map +1 -1
- package/dist/unstable/ai/Prompt.d.ts +112 -38
- package/dist/unstable/ai/Prompt.d.ts.map +1 -1
- package/dist/unstable/ai/Prompt.js +53 -17
- package/dist/unstable/ai/Prompt.js.map +1 -1
- package/dist/unstable/ai/Response.d.ts +28 -14
- package/dist/unstable/ai/Response.d.ts.map +1 -1
- package/dist/unstable/ai/Response.js +9 -4
- package/dist/unstable/ai/Response.js.map +1 -1
- package/dist/unstable/ai/ResponseIdTracker.js.map +1 -1
- package/dist/unstable/ai/Telemetry.d.ts +46 -13
- package/dist/unstable/ai/Telemetry.d.ts.map +1 -1
- package/dist/unstable/ai/Telemetry.js +18 -7
- package/dist/unstable/ai/Telemetry.js.map +1 -1
- package/dist/unstable/ai/Tokenizer.d.ts +14 -3
- package/dist/unstable/ai/Tokenizer.d.ts.map +1 -1
- package/dist/unstable/ai/Tokenizer.js +10 -2
- package/dist/unstable/ai/Tokenizer.js.map +1 -1
- package/dist/unstable/ai/Tool.d.ts +59 -44
- package/dist/unstable/ai/Tool.d.ts.map +1 -1
- package/dist/unstable/ai/Tool.js +48 -39
- package/dist/unstable/ai/Tool.js.map +1 -1
- package/dist/unstable/ai/Toolkit.d.ts +26 -8
- package/dist/unstable/ai/Toolkit.d.ts.map +1 -1
- package/dist/unstable/ai/Toolkit.js +18 -4
- package/dist/unstable/ai/Toolkit.js.map +1 -1
- package/dist/unstable/ai/index.d.ts +4 -0
- package/dist/unstable/ai/index.d.ts.map +1 -1
- package/dist/unstable/ai/index.js +4 -0
- package/dist/unstable/ai/index.js.map +1 -1
- package/dist/unstable/ai/internal/codec-transformer.js.map +1 -1
- package/dist/unstable/ai/internal/mcpProtocol.d.ts +21 -0
- package/dist/unstable/ai/internal/mcpProtocol.d.ts.map +1 -0
- package/dist/unstable/ai/internal/mcpProtocol.js +22 -0
- package/dist/unstable/ai/internal/mcpProtocol.js.map +1 -0
- package/dist/unstable/ai/internal/mcpProtocolRegistry.d.ts +2 -0
- package/dist/unstable/ai/internal/mcpProtocolRegistry.d.ts.map +1 -0
- package/dist/unstable/ai/internal/mcpProtocolRegistry.js +32 -0
- package/dist/unstable/ai/internal/mcpProtocolRegistry.js.map +1 -0
- package/dist/unstable/ai/internal/structured-output.js +14 -15
- package/dist/unstable/ai/internal/structured-output.js.map +1 -1
- package/dist/unstable/cli/Argument.d.ts +273 -69
- package/dist/unstable/cli/Argument.d.ts.map +1 -1
- package/dist/unstable/cli/Argument.js +111 -33
- package/dist/unstable/cli/Argument.js.map +1 -1
- package/dist/unstable/cli/CliConfig.js.map +1 -1
- package/dist/unstable/cli/CliError.d.ts +69 -76
- package/dist/unstable/cli/CliError.d.ts.map +1 -1
- package/dist/unstable/cli/CliError.js +57 -61
- package/dist/unstable/cli/CliError.js.map +1 -1
- package/dist/unstable/cli/CliOutput.d.ts +35 -54
- package/dist/unstable/cli/CliOutput.d.ts.map +1 -1
- package/dist/unstable/cli/CliOutput.js +26 -42
- package/dist/unstable/cli/CliOutput.js.map +1 -1
- package/dist/unstable/cli/Command.d.ts +705 -107
- package/dist/unstable/cli/Command.d.ts.map +1 -1
- package/dist/unstable/cli/Command.js +238 -42
- package/dist/unstable/cli/Command.js.map +1 -1
- package/dist/unstable/cli/Completions.js.map +1 -1
- package/dist/unstable/cli/Flag.d.ts +418 -138
- package/dist/unstable/cli/Flag.d.ts.map +1 -1
- package/dist/unstable/cli/Flag.js +197 -71
- package/dist/unstable/cli/Flag.js.map +1 -1
- package/dist/unstable/cli/GlobalFlag.d.ts +1 -1
- package/dist/unstable/cli/GlobalFlag.js.map +1 -1
- package/dist/unstable/cli/HelpDoc.d.ts +12 -4
- package/dist/unstable/cli/HelpDoc.d.ts.map +1 -1
- package/dist/unstable/cli/Param.d.ts +292 -78
- package/dist/unstable/cli/Param.d.ts.map +1 -1
- package/dist/unstable/cli/Param.js +128 -46
- package/dist/unstable/cli/Param.js.map +1 -1
- package/dist/unstable/cli/Primitive.d.ts +370 -149
- package/dist/unstable/cli/Primitive.d.ts.map +1 -1
- package/dist/unstable/cli/Primitive.js +344 -136
- package/dist/unstable/cli/Primitive.js.map +1 -1
- package/dist/unstable/cli/Prompt.d.ts +23 -14
- package/dist/unstable/cli/Prompt.d.ts.map +1 -1
- package/dist/unstable/cli/Prompt.js +23 -14
- package/dist/unstable/cli/Prompt.js.map +1 -1
- package/dist/unstable/cli/index.js.map +1 -1
- package/dist/unstable/cli/internal/ansi.js.map +1 -1
- package/dist/unstable/cli/internal/auto-suggest.js.map +1 -1
- package/dist/unstable/cli/internal/command.js.map +1 -1
- package/dist/unstable/cli/internal/completions/bash.js.map +1 -1
- package/dist/unstable/cli/internal/completions/descriptor.js.map +1 -1
- package/dist/unstable/cli/internal/completions/fish.js.map +1 -1
- package/dist/unstable/cli/internal/completions/zsh.js.map +1 -1
- package/dist/unstable/cli/internal/config.js.map +1 -1
- package/dist/unstable/cli/internal/help.js.map +1 -1
- package/dist/unstable/cli/internal/lexer.js +17 -7
- package/dist/unstable/cli/internal/lexer.js.map +1 -1
- package/dist/unstable/cli/internal/parser.js +2 -2
- package/dist/unstable/cli/internal/parser.js.map +1 -1
- package/dist/unstable/cli/internal/wizard.js.map +1 -1
- package/dist/unstable/cluster/ClusterCron.js.map +1 -1
- package/dist/unstable/cluster/ClusterError.js.map +1 -1
- package/dist/unstable/cluster/ClusterMetrics.js.map +1 -1
- package/dist/unstable/cluster/ClusterSchema.d.ts +8 -8
- package/dist/unstable/cluster/ClusterSchema.js +8 -8
- package/dist/unstable/cluster/ClusterSchema.js.map +1 -1
- package/dist/unstable/cluster/ClusterWorkflowEngine.d.ts.map +1 -1
- package/dist/unstable/cluster/ClusterWorkflowEngine.js +5 -1
- package/dist/unstable/cluster/ClusterWorkflowEngine.js.map +1 -1
- package/dist/unstable/cluster/DeliverAt.js.map +1 -1
- package/dist/unstable/cluster/Entity.d.ts +10 -10
- package/dist/unstable/cluster/Entity.d.ts.map +1 -1
- package/dist/unstable/cluster/Entity.js +8 -8
- package/dist/unstable/cluster/Entity.js.map +1 -1
- package/dist/unstable/cluster/EntityAddress.js.map +1 -1
- package/dist/unstable/cluster/EntityId.js.map +1 -1
- package/dist/unstable/cluster/EntityProxy.d.ts +4 -2
- package/dist/unstable/cluster/EntityProxy.d.ts.map +1 -1
- package/dist/unstable/cluster/EntityProxy.js +4 -2
- package/dist/unstable/cluster/EntityProxy.js.map +1 -1
- package/dist/unstable/cluster/EntityProxyServer.js.map +1 -1
- package/dist/unstable/cluster/EntityResource.d.ts +2 -2
- package/dist/unstable/cluster/EntityResource.js +2 -2
- package/dist/unstable/cluster/EntityResource.js.map +1 -1
- package/dist/unstable/cluster/EntityType.js.map +1 -1
- package/dist/unstable/cluster/Envelope.d.ts +3 -3
- package/dist/unstable/cluster/Envelope.js +3 -3
- package/dist/unstable/cluster/Envelope.js.map +1 -1
- package/dist/unstable/cluster/HttpRunner.d.ts +2 -2
- package/dist/unstable/cluster/HttpRunner.d.ts.map +1 -1
- package/dist/unstable/cluster/HttpRunner.js +6 -4
- package/dist/unstable/cluster/HttpRunner.js.map +1 -1
- package/dist/unstable/cluster/K8sHttpClient.js.map +1 -1
- package/dist/unstable/cluster/MachineId.js.map +1 -1
- package/dist/unstable/cluster/Message.d.ts +9 -9
- package/dist/unstable/cluster/Message.js +6 -6
- package/dist/unstable/cluster/Message.js.map +1 -1
- package/dist/unstable/cluster/MessageStorage.d.ts +15 -15
- package/dist/unstable/cluster/MessageStorage.js +5 -5
- package/dist/unstable/cluster/MessageStorage.js.map +1 -1
- package/dist/unstable/cluster/Reply.d.ts.map +1 -1
- package/dist/unstable/cluster/Reply.js +4 -4
- package/dist/unstable/cluster/Reply.js.map +1 -1
- package/dist/unstable/cluster/Runner.js.map +1 -1
- package/dist/unstable/cluster/RunnerAddress.js.map +1 -1
- package/dist/unstable/cluster/RunnerHealth.d.ts +1 -1
- package/dist/unstable/cluster/RunnerHealth.js +1 -1
- package/dist/unstable/cluster/RunnerHealth.js.map +1 -1
- package/dist/unstable/cluster/RunnerServer.d.ts +2 -1
- package/dist/unstable/cluster/RunnerServer.d.ts.map +1 -1
- package/dist/unstable/cluster/RunnerServer.js +16 -16
- package/dist/unstable/cluster/RunnerServer.js.map +1 -1
- package/dist/unstable/cluster/RunnerStorage.d.ts +2 -2
- package/dist/unstable/cluster/RunnerStorage.js +1 -1
- package/dist/unstable/cluster/RunnerStorage.js.map +1 -1
- package/dist/unstable/cluster/Runners.d.ts +6 -6
- package/dist/unstable/cluster/Runners.d.ts.map +1 -1
- package/dist/unstable/cluster/Runners.js +19 -10
- package/dist/unstable/cluster/Runners.js.map +1 -1
- package/dist/unstable/cluster/ShardId.js.map +1 -1
- package/dist/unstable/cluster/Sharding.d.ts.map +1 -1
- package/dist/unstable/cluster/Sharding.js +3 -2
- package/dist/unstable/cluster/Sharding.js.map +1 -1
- package/dist/unstable/cluster/ShardingConfig.d.ts +3 -3
- package/dist/unstable/cluster/ShardingConfig.js +3 -3
- package/dist/unstable/cluster/ShardingConfig.js.map +1 -1
- package/dist/unstable/cluster/ShardingRegistrationEvent.js.map +1 -1
- package/dist/unstable/cluster/SingleRunner.js.map +1 -1
- package/dist/unstable/cluster/Singleton.js.map +1 -1
- package/dist/unstable/cluster/SingletonAddress.d.ts +1 -1
- package/dist/unstable/cluster/SingletonAddress.js +1 -1
- package/dist/unstable/cluster/SingletonAddress.js.map +1 -1
- package/dist/unstable/cluster/Snowflake.d.ts +8 -8
- package/dist/unstable/cluster/Snowflake.js +8 -8
- package/dist/unstable/cluster/Snowflake.js.map +1 -1
- package/dist/unstable/cluster/SocketRunner.js.map +1 -1
- package/dist/unstable/cluster/SqlMessageStorage.js +1 -1
- package/dist/unstable/cluster/SqlMessageStorage.js.map +1 -1
- package/dist/unstable/cluster/SqlRunnerStorage.d.ts.map +1 -1
- package/dist/unstable/cluster/SqlRunnerStorage.js +20 -5
- package/dist/unstable/cluster/SqlRunnerStorage.js.map +1 -1
- package/dist/unstable/cluster/TestRunner.js.map +1 -1
- package/dist/unstable/cluster/index.js.map +1 -1
- package/dist/unstable/cluster/internal/entityManager.js +5 -5
- package/dist/unstable/cluster/internal/entityManager.js.map +1 -1
- package/dist/unstable/cluster/internal/entityReaper.js.map +1 -1
- package/dist/unstable/cluster/internal/hash.js.map +1 -1
- package/dist/unstable/cluster/internal/interruptors.js.map +1 -1
- package/dist/unstable/cluster/internal/resourceMap.js.map +1 -1
- package/dist/unstable/cluster/internal/resourceRef.js.map +1 -1
- package/dist/unstable/cluster/internal/shardLock.js.map +1 -1
- package/dist/unstable/devtools/DevTools.js.map +1 -1
- package/dist/unstable/devtools/DevToolsClient.js.map +1 -1
- package/dist/unstable/devtools/DevToolsSchema.js.map +1 -1
- package/dist/unstable/devtools/DevToolsServer.js.map +1 -1
- package/dist/unstable/devtools/index.js.map +1 -1
- package/dist/unstable/encoding/Msgpack.d.ts.map +1 -1
- package/dist/unstable/encoding/Msgpack.js +6 -8
- package/dist/unstable/encoding/Msgpack.js.map +1 -1
- package/dist/unstable/encoding/Ndjson.js.map +1 -1
- package/dist/unstable/encoding/Sse.d.ts +72 -8
- package/dist/unstable/encoding/Sse.d.ts.map +1 -1
- package/dist/unstable/encoding/Sse.js +58 -8
- package/dist/unstable/encoding/Sse.js.map +1 -1
- package/dist/unstable/encoding/index.js.map +1 -1
- package/dist/unstable/eventlog/Event.d.ts +20 -20
- package/dist/unstable/eventlog/Event.js.map +1 -1
- package/dist/unstable/eventlog/EventGroup.d.ts +4 -4
- package/dist/unstable/eventlog/EventGroup.js.map +1 -1
- package/dist/unstable/eventlog/EventJournal.d.ts +15 -15
- package/dist/unstable/eventlog/EventJournal.js +13 -13
- package/dist/unstable/eventlog/EventJournal.js.map +1 -1
- package/dist/unstable/eventlog/EventLog.d.ts +3 -3
- package/dist/unstable/eventlog/EventLog.js +3 -3
- package/dist/unstable/eventlog/EventLog.js.map +1 -1
- package/dist/unstable/eventlog/EventLogEncryption.d.ts +1 -1
- package/dist/unstable/eventlog/EventLogEncryption.js +1 -1
- package/dist/unstable/eventlog/EventLogEncryption.js.map +1 -1
- package/dist/unstable/eventlog/EventLogMessage.d.ts +2 -2
- package/dist/unstable/eventlog/EventLogMessage.js +1 -1
- package/dist/unstable/eventlog/EventLogMessage.js.map +1 -1
- package/dist/unstable/eventlog/EventLogRemote.d.ts +15 -15
- package/dist/unstable/eventlog/EventLogRemote.js +1 -1
- package/dist/unstable/eventlog/EventLogRemote.js.map +1 -1
- package/dist/unstable/eventlog/EventLogServer.d.ts +11 -2
- package/dist/unstable/eventlog/EventLogServer.d.ts.map +1 -1
- package/dist/unstable/eventlog/EventLogServer.js +45 -21
- package/dist/unstable/eventlog/EventLogServer.js.map +1 -1
- package/dist/unstable/eventlog/EventLogServerEncrypted.d.ts +4 -4
- package/dist/unstable/eventlog/EventLogServerEncrypted.d.ts.map +1 -1
- package/dist/unstable/eventlog/EventLogServerEncrypted.js +13 -5
- package/dist/unstable/eventlog/EventLogServerEncrypted.js.map +1 -1
- package/dist/unstable/eventlog/EventLogServerUnencrypted.d.ts +5 -5
- package/dist/unstable/eventlog/EventLogServerUnencrypted.d.ts.map +1 -1
- package/dist/unstable/eventlog/EventLogServerUnencrypted.js +14 -6
- package/dist/unstable/eventlog/EventLogServerUnencrypted.js.map +1 -1
- package/dist/unstable/eventlog/EventLogSessionAuth.d.ts +1 -1
- package/dist/unstable/eventlog/EventLogSessionAuth.js +1 -1
- package/dist/unstable/eventlog/EventLogSessionAuth.js.map +1 -1
- package/dist/unstable/eventlog/SqlEventJournal.js.map +1 -1
- package/dist/unstable/eventlog/SqlEventLogServerEncrypted.js.map +1 -1
- package/dist/unstable/eventlog/SqlEventLogServerUnencrypted.js.map +1 -1
- package/dist/unstable/eventlog/index.js.map +1 -1
- package/dist/unstable/eventlog/internal/identityRootSecretDerivation.js.map +1 -1
- package/dist/unstable/http/Cookies.d.ts +2 -2
- package/dist/unstable/http/Cookies.d.ts.map +1 -1
- package/dist/unstable/http/Cookies.js +30 -18
- package/dist/unstable/http/Cookies.js.map +1 -1
- package/dist/unstable/http/Etag.d.ts +1 -1
- package/dist/unstable/http/Etag.js +1 -1
- package/dist/unstable/http/Etag.js.map +1 -1
- package/dist/unstable/http/FetchHttpClient.d.ts.map +1 -1
- package/dist/unstable/http/FetchHttpClient.js.map +1 -1
- package/dist/unstable/http/Headers.d.ts +2 -2
- package/dist/unstable/http/Headers.js +2 -2
- package/dist/unstable/http/Headers.js.map +1 -1
- package/dist/unstable/http/HttpBody.d.ts +5 -3
- package/dist/unstable/http/HttpBody.d.ts.map +1 -1
- package/dist/unstable/http/HttpBody.js +11 -5
- package/dist/unstable/http/HttpBody.js.map +1 -1
- package/dist/unstable/http/HttpClient.d.ts +51 -44
- package/dist/unstable/http/HttpClient.d.ts.map +1 -1
- package/dist/unstable/http/HttpClient.js +46 -17
- package/dist/unstable/http/HttpClient.js.map +1 -1
- package/dist/unstable/http/HttpClientError.js.map +1 -1
- package/dist/unstable/http/HttpClientRequest.d.ts.map +1 -1
- package/dist/unstable/http/HttpClientRequest.js +2 -0
- package/dist/unstable/http/HttpClientRequest.js.map +1 -1
- package/dist/unstable/http/HttpClientResponse.d.ts +4 -4
- package/dist/unstable/http/HttpClientResponse.js +2 -2
- package/dist/unstable/http/HttpClientResponse.js.map +1 -1
- package/dist/unstable/http/HttpEffect.d.ts +6 -6
- package/dist/unstable/http/HttpEffect.js +3 -3
- package/dist/unstable/http/HttpEffect.js.map +1 -1
- package/dist/unstable/http/HttpIncomingMessage.js.map +1 -1
- package/dist/unstable/http/HttpMethod.d.ts +6 -9
- package/dist/unstable/http/HttpMethod.d.ts.map +1 -1
- package/dist/unstable/http/HttpMethod.js +6 -9
- package/dist/unstable/http/HttpMethod.js.map +1 -1
- package/dist/unstable/http/HttpMiddleware.d.ts +75 -9
- package/dist/unstable/http/HttpMiddleware.d.ts.map +1 -1
- package/dist/unstable/http/HttpMiddleware.js +164 -39
- package/dist/unstable/http/HttpMiddleware.js.map +1 -1
- package/dist/unstable/http/HttpPlatform.d.ts +76 -0
- package/dist/unstable/http/HttpPlatform.d.ts.map +1 -1
- package/dist/unstable/http/HttpPlatform.js +32 -0
- package/dist/unstable/http/HttpPlatform.js.map +1 -1
- package/dist/unstable/http/HttpRouter.d.ts +88 -89
- package/dist/unstable/http/HttpRouter.d.ts.map +1 -1
- package/dist/unstable/http/HttpRouter.js +78 -79
- package/dist/unstable/http/HttpRouter.js.map +1 -1
- package/dist/unstable/http/HttpServer.d.ts +13 -13
- package/dist/unstable/http/HttpServer.js +6 -6
- package/dist/unstable/http/HttpServer.js.map +1 -1
- package/dist/unstable/http/HttpServerError.d.ts +2 -2
- package/dist/unstable/http/HttpServerError.js +2 -2
- package/dist/unstable/http/HttpServerError.js.map +1 -1
- package/dist/unstable/http/HttpServerRequest.d.ts +4 -4
- package/dist/unstable/http/HttpServerRequest.js +4 -4
- package/dist/unstable/http/HttpServerRequest.js.map +1 -1
- package/dist/unstable/http/HttpServerRespondable.js.map +1 -1
- package/dist/unstable/http/HttpServerResponse.d.ts +22 -0
- package/dist/unstable/http/HttpServerResponse.d.ts.map +1 -1
- package/dist/unstable/http/HttpServerResponse.js +10 -0
- package/dist/unstable/http/HttpServerResponse.js.map +1 -1
- package/dist/unstable/http/HttpStaticServer.d.ts +35 -7
- package/dist/unstable/http/HttpStaticServer.d.ts.map +1 -1
- package/dist/unstable/http/HttpStaticServer.js +35 -7
- package/dist/unstable/http/HttpStaticServer.js.map +1 -1
- package/dist/unstable/http/HttpTraceContext.js.map +1 -1
- package/dist/unstable/http/Multipart.d.ts +6 -6
- package/dist/unstable/http/Multipart.js +5 -5
- package/dist/unstable/http/Multipart.js.map +1 -1
- package/dist/unstable/http/Template.js.map +1 -1
- package/dist/unstable/http/Url.d.ts +33 -63
- package/dist/unstable/http/Url.d.ts.map +1 -1
- package/dist/unstable/http/Url.js +14 -28
- package/dist/unstable/http/Url.js.map +1 -1
- package/dist/unstable/http/UrlParams.d.ts +10 -18
- package/dist/unstable/http/UrlParams.d.ts.map +1 -1
- package/dist/unstable/http/UrlParams.js +9 -17
- package/dist/unstable/http/UrlParams.js.map +1 -1
- package/dist/unstable/http/index.js.map +1 -1
- package/dist/unstable/http/internal/compression.d.ts +2 -0
- package/dist/unstable/http/internal/compression.d.ts.map +1 -0
- package/dist/unstable/http/internal/compression.js +155 -0
- package/dist/unstable/http/internal/compression.js.map +1 -0
- package/dist/unstable/http/internal/preResponseHandler.js.map +1 -1
- package/dist/unstable/httpapi/HttpApi.js.map +1 -1
- package/dist/unstable/httpapi/HttpApiBuilder.d.ts +1 -1
- package/dist/unstable/httpapi/HttpApiBuilder.d.ts.map +1 -1
- package/dist/unstable/httpapi/HttpApiBuilder.js +10 -11
- package/dist/unstable/httpapi/HttpApiBuilder.js.map +1 -1
- package/dist/unstable/httpapi/HttpApiClient.d.ts +4 -5
- package/dist/unstable/httpapi/HttpApiClient.d.ts.map +1 -1
- package/dist/unstable/httpapi/HttpApiClient.js +11 -13
- package/dist/unstable/httpapi/HttpApiClient.js.map +1 -1
- package/dist/unstable/httpapi/HttpApiEndpoint.d.ts +42 -42
- package/dist/unstable/httpapi/HttpApiEndpoint.js.map +1 -1
- package/dist/unstable/httpapi/HttpApiError.d.ts +13 -13
- package/dist/unstable/httpapi/HttpApiError.js +13 -13
- package/dist/unstable/httpapi/HttpApiError.js.map +1 -1
- package/dist/unstable/httpapi/HttpApiGroup.d.ts +15 -15
- package/dist/unstable/httpapi/HttpApiGroup.js.map +1 -1
- package/dist/unstable/httpapi/HttpApiMiddleware.d.ts +71 -24
- package/dist/unstable/httpapi/HttpApiMiddleware.d.ts.map +1 -1
- package/dist/unstable/httpapi/HttpApiMiddleware.js +57 -10
- package/dist/unstable/httpapi/HttpApiMiddleware.js.map +1 -1
- package/dist/unstable/httpapi/HttpApiScalar.d.ts +0 -12
- package/dist/unstable/httpapi/HttpApiScalar.d.ts.map +1 -1
- package/dist/unstable/httpapi/HttpApiScalar.js.map +1 -1
- package/dist/unstable/httpapi/HttpApiSchema.d.ts +6 -6
- package/dist/unstable/httpapi/HttpApiSchema.js +4 -4
- package/dist/unstable/httpapi/HttpApiSchema.js.map +1 -1
- package/dist/unstable/httpapi/HttpApiSecurity.js.map +1 -1
- package/dist/unstable/httpapi/HttpApiSwagger.js.map +1 -1
- package/dist/unstable/httpapi/HttpApiTest.js.map +1 -1
- package/dist/unstable/httpapi/OpenApi.d.ts +13 -13
- package/dist/unstable/httpapi/OpenApi.js +13 -13
- package/dist/unstable/httpapi/OpenApi.js.map +1 -1
- package/dist/unstable/httpapi/index.js.map +1 -1
- package/dist/unstable/httpapi/internal/html.js.map +1 -1
- package/dist/unstable/httpapi/internal/httpApiScalar.js.map +1 -1
- package/dist/unstable/httpapi/internal/httpApiSwagger.js.map +1 -1
- package/dist/unstable/httpapi/internal/mediaType.js.map +1 -1
- package/dist/unstable/observability/Otlp.js.map +1 -1
- package/dist/unstable/observability/OtlpExporter.d.ts +12 -14
- package/dist/unstable/observability/OtlpExporter.d.ts.map +1 -1
- package/dist/unstable/observability/OtlpExporter.js +17 -4
- package/dist/unstable/observability/OtlpExporter.js.map +1 -1
- package/dist/unstable/observability/OtlpLogger.js.map +1 -1
- package/dist/unstable/observability/OtlpMetrics.d.ts +4 -1
- package/dist/unstable/observability/OtlpMetrics.d.ts.map +1 -1
- package/dist/unstable/observability/OtlpMetrics.js.map +1 -1
- package/dist/unstable/observability/OtlpResource.d.ts +16 -7
- package/dist/unstable/observability/OtlpResource.d.ts.map +1 -1
- package/dist/unstable/observability/OtlpResource.js +21 -12
- package/dist/unstable/observability/OtlpResource.js.map +1 -1
- package/dist/unstable/observability/OtlpSerialization.js.map +1 -1
- package/dist/unstable/observability/OtlpTracer.js.map +1 -1
- package/dist/unstable/observability/PrometheusMetrics.d.ts +13 -4
- package/dist/unstable/observability/PrometheusMetrics.d.ts.map +1 -1
- package/dist/unstable/observability/PrometheusMetrics.js +10 -3
- package/dist/unstable/observability/PrometheusMetrics.js.map +1 -1
- package/dist/unstable/observability/index.js.map +1 -1
- package/dist/unstable/observability/internal/otlpEnv.js +1 -1
- package/dist/unstable/observability/internal/otlpEnv.js.map +1 -1
- package/dist/unstable/observability/internal/otlpProtobuf.js.map +1 -1
- package/dist/unstable/observability/internal/protobuf.js +3 -0
- package/dist/unstable/observability/internal/protobuf.js.map +1 -1
- package/dist/unstable/persistence/KeyValueStore.d.ts +8 -3
- package/dist/unstable/persistence/KeyValueStore.d.ts.map +1 -1
- package/dist/unstable/persistence/KeyValueStore.js +22 -13
- package/dist/unstable/persistence/KeyValueStore.js.map +1 -1
- package/dist/unstable/persistence/Persistable.d.ts +8 -8
- package/dist/unstable/persistence/Persistable.js.map +1 -1
- package/dist/unstable/persistence/PersistedCache.js.map +1 -1
- package/dist/unstable/persistence/PersistedQueue.d.ts +6 -6
- package/dist/unstable/persistence/PersistedQueue.js +6 -6
- package/dist/unstable/persistence/PersistedQueue.js.map +1 -1
- package/dist/unstable/persistence/Persistence.d.ts +3 -3
- package/dist/unstable/persistence/Persistence.d.ts.map +1 -1
- package/dist/unstable/persistence/Persistence.js +91 -15
- package/dist/unstable/persistence/Persistence.js.map +1 -1
- package/dist/unstable/persistence/RateLimiter.d.ts +26 -15
- package/dist/unstable/persistence/RateLimiter.d.ts.map +1 -1
- package/dist/unstable/persistence/RateLimiter.js +24 -13
- package/dist/unstable/persistence/RateLimiter.js.map +1 -1
- package/dist/unstable/persistence/Redis.d.ts +2 -2
- package/dist/unstable/persistence/Redis.js +1 -1
- package/dist/unstable/persistence/Redis.js.map +1 -1
- package/dist/unstable/persistence/index.js.map +1 -1
- package/dist/unstable/process/ChildProcess.d.ts +64 -21
- package/dist/unstable/process/ChildProcess.d.ts.map +1 -1
- package/dist/unstable/process/ChildProcess.js +14 -5
- package/dist/unstable/process/ChildProcess.js.map +1 -1
- package/dist/unstable/process/ChildProcessSpawner.d.ts +21 -10
- package/dist/unstable/process/ChildProcessSpawner.d.ts.map +1 -1
- package/dist/unstable/process/ChildProcessSpawner.js +1 -1
- package/dist/unstable/process/ChildProcessSpawner.js.map +1 -1
- package/dist/unstable/process/index.js.map +1 -1
- package/dist/unstable/reactivity/AsyncResult.d.ts +8 -8
- package/dist/unstable/reactivity/AsyncResult.d.ts.map +1 -1
- package/dist/unstable/reactivity/AsyncResult.js +10 -10
- package/dist/unstable/reactivity/AsyncResult.js.map +1 -1
- package/dist/unstable/reactivity/Atom.d.ts +25 -22
- package/dist/unstable/reactivity/Atom.d.ts.map +1 -1
- package/dist/unstable/reactivity/Atom.js +14 -13
- package/dist/unstable/reactivity/Atom.js.map +1 -1
- package/dist/unstable/reactivity/AtomHttpApi.d.ts +1 -1
- package/dist/unstable/reactivity/AtomHttpApi.d.ts.map +1 -1
- package/dist/unstable/reactivity/AtomHttpApi.js +4 -1
- package/dist/unstable/reactivity/AtomHttpApi.js.map +1 -1
- package/dist/unstable/reactivity/AtomRef.js.map +1 -1
- package/dist/unstable/reactivity/AtomRegistry.js +24 -3
- package/dist/unstable/reactivity/AtomRegistry.js.map +1 -1
- package/dist/unstable/reactivity/AtomRpc.d.ts +1 -1
- package/dist/unstable/reactivity/AtomRpc.d.ts.map +1 -1
- package/dist/unstable/reactivity/AtomRpc.js +4 -1
- package/dist/unstable/reactivity/AtomRpc.js.map +1 -1
- package/dist/unstable/reactivity/Hydration.d.ts +1 -1
- package/dist/unstable/reactivity/Hydration.js +1 -1
- package/dist/unstable/reactivity/Hydration.js.map +1 -1
- package/dist/unstable/reactivity/Reactivity.js.map +1 -1
- package/dist/unstable/reactivity/index.js.map +1 -1
- package/dist/unstable/rpc/Rpc.d.ts +35 -33
- package/dist/unstable/rpc/Rpc.d.ts.map +1 -1
- package/dist/unstable/rpc/Rpc.js +4 -2
- package/dist/unstable/rpc/Rpc.js.map +1 -1
- package/dist/unstable/rpc/RpcClient.d.ts +12 -12
- package/dist/unstable/rpc/RpcClient.d.ts.map +1 -1
- package/dist/unstable/rpc/RpcClient.js +12 -11
- package/dist/unstable/rpc/RpcClient.js.map +1 -1
- package/dist/unstable/rpc/RpcClientError.js.map +1 -1
- package/dist/unstable/rpc/RpcGroup.d.ts +8 -8
- package/dist/unstable/rpc/RpcGroup.js +1 -1
- package/dist/unstable/rpc/RpcGroup.js.map +1 -1
- package/dist/unstable/rpc/RpcMessage.d.ts +31 -30
- package/dist/unstable/rpc/RpcMessage.d.ts.map +1 -1
- package/dist/unstable/rpc/RpcMessage.js +6 -6
- package/dist/unstable/rpc/RpcMessage.js.map +1 -1
- package/dist/unstable/rpc/RpcMiddleware.d.ts +10 -10
- package/dist/unstable/rpc/RpcMiddleware.js +1 -1
- package/dist/unstable/rpc/RpcMiddleware.js.map +1 -1
- package/dist/unstable/rpc/RpcSchema.d.ts +4 -4
- package/dist/unstable/rpc/RpcSchema.js +3 -3
- package/dist/unstable/rpc/RpcSchema.js.map +1 -1
- package/dist/unstable/rpc/RpcSerialization.d.ts +58 -7
- package/dist/unstable/rpc/RpcSerialization.d.ts.map +1 -1
- package/dist/unstable/rpc/RpcSerialization.js +175 -96
- package/dist/unstable/rpc/RpcSerialization.js.map +1 -1
- package/dist/unstable/rpc/RpcServer.d.ts +13 -13
- package/dist/unstable/rpc/RpcServer.js +17 -13
- package/dist/unstable/rpc/RpcServer.js.map +1 -1
- package/dist/unstable/rpc/RpcTest.js.map +1 -1
- package/dist/unstable/rpc/RpcWorker.d.ts +5 -5
- package/dist/unstable/rpc/RpcWorker.js +4 -4
- package/dist/unstable/rpc/RpcWorker.js.map +1 -1
- package/dist/unstable/rpc/Utils.js.map +1 -1
- package/dist/unstable/rpc/index.js.map +1 -1
- package/dist/unstable/schema/Model.d.ts +52 -50
- package/dist/unstable/schema/Model.d.ts.map +1 -1
- package/dist/unstable/schema/Model.js +35 -33
- package/dist/unstable/schema/Model.js.map +1 -1
- package/dist/unstable/schema/VariantSchema.d.ts +5 -5
- package/dist/unstable/schema/VariantSchema.js +2 -2
- package/dist/unstable/schema/VariantSchema.js.map +1 -1
- package/dist/unstable/schema/index.js.map +1 -1
- package/dist/unstable/socket/Socket.d.ts +11 -3
- package/dist/unstable/socket/Socket.d.ts.map +1 -1
- package/dist/unstable/socket/Socket.js +9 -4
- package/dist/unstable/socket/Socket.js.map +1 -1
- package/dist/unstable/socket/SocketServer.js.map +1 -1
- package/dist/unstable/socket/index.js.map +1 -1
- package/dist/unstable/sql/Migrator.js.map +1 -1
- package/dist/unstable/sql/SqlClient.d.ts +1 -1
- package/dist/unstable/sql/SqlClient.d.ts.map +1 -1
- package/dist/unstable/sql/SqlClient.js +2 -2
- package/dist/unstable/sql/SqlClient.js.map +1 -1
- package/dist/unstable/sql/SqlConnection.js.map +1 -1
- package/dist/unstable/sql/SqlError.js.map +1 -1
- package/dist/unstable/sql/SqlModel.d.ts +2 -2
- package/dist/unstable/sql/SqlModel.js +2 -2
- package/dist/unstable/sql/SqlModel.js.map +1 -1
- package/dist/unstable/sql/SqlResolver.d.ts +5 -5
- package/dist/unstable/sql/SqlResolver.js +2 -2
- package/dist/unstable/sql/SqlResolver.js.map +1 -1
- package/dist/unstable/sql/SqlSchema.js.map +1 -1
- package/dist/unstable/sql/SqlStream.js.map +1 -1
- package/dist/unstable/sql/Statement.d.ts +6 -6
- package/dist/unstable/sql/Statement.js +15 -15
- package/dist/unstable/sql/Statement.js.map +1 -1
- package/dist/unstable/sql/index.js.map +1 -1
- package/dist/unstable/workers/Transferable.d.ts +1 -1
- package/dist/unstable/workers/Transferable.js +1 -1
- package/dist/unstable/workers/Transferable.js.map +1 -1
- package/dist/unstable/workers/Worker.d.ts +2 -2
- package/dist/unstable/workers/Worker.js +2 -2
- package/dist/unstable/workers/Worker.js.map +1 -1
- package/dist/unstable/workers/WorkerError.d.ts +7 -7
- package/dist/unstable/workers/WorkerError.js +6 -6
- package/dist/unstable/workers/WorkerError.js.map +1 -1
- package/dist/unstable/workers/WorkerRunner.d.ts +1 -1
- package/dist/unstable/workers/WorkerRunner.js +1 -1
- package/dist/unstable/workers/WorkerRunner.js.map +1 -1
- package/dist/unstable/workers/index.js.map +1 -1
- package/dist/unstable/workflow/Activity.d.ts +2 -2
- package/dist/unstable/workflow/Activity.js +2 -2
- package/dist/unstable/workflow/Activity.js.map +1 -1
- package/dist/unstable/workflow/DurableClock.d.ts +1 -1
- package/dist/unstable/workflow/DurableClock.js +1 -1
- package/dist/unstable/workflow/DurableClock.js.map +1 -1
- package/dist/unstable/workflow/DurableDeferred.d.ts +10 -10
- package/dist/unstable/workflow/DurableDeferred.js +5 -5
- package/dist/unstable/workflow/DurableDeferred.js.map +1 -1
- package/dist/unstable/workflow/DurableQueue.d.ts +22 -20
- package/dist/unstable/workflow/DurableQueue.d.ts.map +1 -1
- package/dist/unstable/workflow/DurableQueue.js +22 -20
- package/dist/unstable/workflow/DurableQueue.js.map +1 -1
- package/dist/unstable/workflow/Workflow.d.ts +21 -21
- package/dist/unstable/workflow/Workflow.d.ts.map +1 -1
- package/dist/unstable/workflow/Workflow.js +13 -14
- package/dist/unstable/workflow/Workflow.js.map +1 -1
- package/dist/unstable/workflow/WorkflowEngine.d.ts +1 -1
- package/dist/unstable/workflow/WorkflowEngine.js.map +1 -1
- package/dist/unstable/workflow/WorkflowProxy.d.ts +4 -2
- package/dist/unstable/workflow/WorkflowProxy.d.ts.map +1 -1
- package/dist/unstable/workflow/WorkflowProxy.js +4 -2
- package/dist/unstable/workflow/WorkflowProxy.js.map +1 -1
- package/dist/unstable/workflow/WorkflowProxyServer.js.map +1 -1
- package/dist/unstable/workflow/index.js.map +1 -1
- package/dist/unstable/workflow/internal/crypto.js.map +1 -1
- package/package.json +5 -6
- package/src/Array.ts +982 -1045
- package/src/BigDecimal.ts +433 -756
- package/src/BigInt.ts +213 -269
- package/src/Boolean.ts +146 -188
- package/src/Cache.ts +409 -255
- package/src/Cause.ts +167 -277
- package/src/Channel.ts +891 -816
- package/src/ChannelSchema.ts +1 -1
- package/src/Chunk.ts +841 -1181
- package/src/Clock.ts +181 -49
- package/src/Combiner.ts +20 -33
- package/src/Config.ts +615 -332
- package/src/ConfigProvider.ts +214 -120
- package/src/Console.ts +289 -39
- package/src/Context.ts +319 -378
- package/src/Cron.ts +68 -77
- package/src/Crypto.ts +13 -15
- package/src/Data.ts +60 -80
- package/src/DateTime.ts +564 -660
- package/src/Deferred.ts +253 -256
- package/src/Duration.ts +216 -308
- package/src/Effect.ts +2893 -3279
- package/src/Encoding.ts +22 -40
- package/src/Equal.ts +49 -39
- package/src/Equivalence.ts +103 -105
- package/src/ErrorReporter.ts +51 -27
- package/src/ExecutionPlan.ts +13 -55
- package/src/Exit.ts +116 -192
- package/src/Fiber.ts +81 -148
- package/src/FiberHandle.ts +152 -105
- package/src/FiberMap.ts +225 -174
- package/src/FiberSet.ts +124 -82
- package/src/FileSystem.ts +155 -263
- package/src/Filter.ts +61 -33
- package/src/Formatter.ts +54 -56
- package/src/Function.ts +76 -145
- package/src/Graph.ts +416 -770
- package/src/HKT.ts +12 -6
- package/src/Hash.ts +52 -83
- package/src/HashMap.ts +319 -411
- package/src/HashRing.ts +1 -0
- package/src/HashSet.ts +177 -284
- package/src/Inspectable.ts +12 -12
- package/src/Iterable.ts +620 -786
- package/src/JsonPatch.ts +58 -112
- package/src/JsonPointer.ts +8 -8
- package/src/JsonSchema.ts +402 -244
- package/src/Latch.ts +23 -35
- package/src/Layer.ts +359 -260
- package/src/LayerMap.ts +49 -29
- package/src/LayerRef.ts +6 -2
- package/src/LogLevel.ts +114 -214
- package/src/Logger.ts +344 -697
- package/src/ManagedRuntime.ts +7 -5
- package/src/Match.ts +217 -252
- package/src/Metric.ts +516 -1089
- package/src/MutableHashMap.ts +218 -255
- package/src/MutableHashSet.ts +84 -89
- package/src/MutableList.ts +73 -370
- package/src/MutableRef.ts +420 -243
- package/src/Newtype.ts +21 -14
- package/src/NonEmptyIterable.ts +7 -137
- package/src/Number.ts +196 -233
- package/src/Optic.ts +243 -383
- package/src/Option.ts +447 -812
- package/src/Order.ts +109 -109
- package/src/Ordering.ts +20 -23
- package/src/Path.ts +38 -41
- package/src/Pipeable.ts +6 -5
- package/src/PlatformError.ts +4 -4
- package/src/Pool.ts +4 -2
- package/src/Predicate.ts +200 -181
- package/src/PrimaryKey.ts +7 -7
- package/src/PubSub.ts +526 -552
- package/src/Pull.ts +24 -18
- package/src/Queue.ts +200 -159
- package/src/Random.ts +49 -74
- package/src/RcMap.ts +121 -63
- package/src/RcRef.ts +24 -13
- package/src/Record.ts +291 -488
- package/src/Redactable.ts +10 -3
- package/src/Redacted.ts +25 -25
- package/src/Reducer.ts +8 -15
- package/src/Ref.ts +221 -361
- package/src/References.ts +102 -168
- package/src/RegExp.ts +10 -14
- package/src/Request.ts +31 -21
- package/src/RequestResolver.ts +202 -91
- package/src/Result.ts +312 -484
- package/src/Runtime.ts +50 -75
- package/src/Schedule.ts +308 -1734
- package/src/Scheduler.ts +20 -7
- package/src/Schema.ts +716 -745
- package/src/SchemaAST.ts +466 -358
- package/src/SchemaError.ts +7 -6
- package/src/SchemaGetter.ts +242 -190
- package/src/SchemaIssue.ts +89 -275
- package/src/SchemaParser.ts +180 -93
- package/src/SchemaRepresentation.ts +22 -40
- package/src/SchemaTransformation.ts +129 -88
- package/src/Scope.ts +123 -151
- package/src/ScopedRef.ts +4 -4
- package/src/Semaphore.ts +152 -51
- package/src/Sink.ts +128 -113
- package/src/Stdio.ts +1 -1
- package/src/Stream.ts +2602 -3123
- package/src/String.ts +275 -312
- package/src/Struct.ts +109 -114
- package/src/SubscriptionRef.ts +284 -252
- package/src/Symbol.ts +3 -3
- package/src/Terminal.ts +2 -2
- package/src/Tracer.ts +102 -55
- package/src/Trie.ts +287 -679
- package/src/Tuple.ts +92 -127
- package/src/TxChunk.ts +201 -121
- package/src/TxDeferred.ts +62 -46
- package/src/TxHashMap.ts +645 -799
- package/src/TxHashSet.ts +443 -356
- package/src/TxPriorityQueue.ts +130 -98
- package/src/TxPubSub.ts +107 -80
- package/src/TxQueue.ts +214 -183
- package/src/TxReentrantLock.ts +97 -66
- package/src/TxRef.ts +51 -32
- package/src/TxSemaphore.ts +129 -95
- package/src/TxSubscriptionRef.ts +97 -70
- package/src/Types.ts +126 -67
- package/src/Unify.ts +45 -65
- package/src/Utils.ts +23 -16
- package/src/internal/core.ts +2 -2
- package/src/internal/dateTime.ts +6 -0
- package/src/internal/effect.ts +93 -48
- package/src/internal/persistence.ts +2 -0
- package/src/internal/references.ts +3 -2
- package/src/internal/schema/fromJsonSchemaDocument.ts +15 -13
- package/src/internal/schema/fromRepresentation.ts +10 -16
- package/src/internal/schema/parser.ts +22 -0
- package/src/internal/schema/toJsonSchemaDocument.ts +60 -6
- package/src/internal/schema/toRepresentation.ts +104 -119
- package/src/internal/trie.ts +10 -11
- package/src/testing/FastCheck.ts +8 -7
- package/src/testing/TestClock.ts +72 -30
- package/src/testing/TestConsole.ts +32 -31
- package/src/testing/TestSchema.ts +29 -29
- package/src/unstable/ai/AiError.ts +95 -118
- package/src/unstable/ai/AnthropicStructuredOutput.ts +1 -1
- package/src/unstable/ai/Chat.ts +132 -97
- package/src/unstable/ai/IdGenerator.ts +32 -28
- package/src/unstable/ai/LanguageModel.ts +107 -67
- package/src/unstable/ai/McpProtocol.ts +48 -0
- package/src/unstable/ai/McpSchema.ts +60 -50
- package/src/unstable/ai/McpServer.ts +930 -304
- package/src/unstable/ai/Model.ts +9 -20
- package/src/unstable/ai/OpenAiStructuredOutput.ts +1 -1
- package/src/unstable/ai/Prompt.ts +145 -43
- package/src/unstable/ai/Response.ts +28 -14
- package/src/unstable/ai/Telemetry.ts +46 -13
- package/src/unstable/ai/Tokenizer.ts +14 -3
- package/src/unstable/ai/Tool.ts +59 -44
- package/src/unstable/ai/Toolkit.ts +26 -8
- package/src/unstable/ai/index.ts +5 -0
- package/src/unstable/ai/internal/mcpProtocol.ts +85 -0
- package/src/unstable/ai/internal/mcpProtocolRegistry.ts +70 -0
- package/src/unstable/ai/internal/structured-output.ts +13 -18
- package/src/unstable/cli/Argument.ts +273 -69
- package/src/unstable/cli/CliError.ts +69 -76
- package/src/unstable/cli/CliOutput.ts +44 -58
- package/src/unstable/cli/Command.ts +705 -107
- package/src/unstable/cli/Flag.ts +418 -138
- package/src/unstable/cli/GlobalFlag.ts +1 -1
- package/src/unstable/cli/HelpDoc.ts +12 -4
- package/src/unstable/cli/Param.ts +292 -78
- package/src/unstable/cli/Primitive.ts +370 -149
- package/src/unstable/cli/Prompt.ts +28 -14
- package/src/unstable/cli/internal/lexer.ts +8 -2
- package/src/unstable/cli/internal/parser.ts +2 -2
- package/src/unstable/cluster/ClusterSchema.ts +8 -8
- package/src/unstable/cluster/ClusterWorkflowEngine.ts +5 -1
- package/src/unstable/cluster/Entity.ts +15 -16
- package/src/unstable/cluster/EntityProxy.ts +4 -2
- package/src/unstable/cluster/EntityResource.ts +2 -2
- package/src/unstable/cluster/Envelope.ts +3 -3
- package/src/unstable/cluster/HttpRunner.ts +6 -4
- package/src/unstable/cluster/Message.ts +9 -9
- package/src/unstable/cluster/MessageStorage.ts +15 -15
- package/src/unstable/cluster/Reply.ts +4 -6
- package/src/unstable/cluster/RunnerHealth.ts +1 -1
- package/src/unstable/cluster/RunnerServer.ts +41 -8
- package/src/unstable/cluster/RunnerStorage.ts +2 -2
- package/src/unstable/cluster/Runners.ts +23 -12
- package/src/unstable/cluster/Sharding.ts +7 -8
- package/src/unstable/cluster/ShardingConfig.ts +3 -3
- package/src/unstable/cluster/SingletonAddress.ts +1 -1
- package/src/unstable/cluster/Snowflake.ts +8 -8
- package/src/unstable/cluster/SqlMessageStorage.ts +1 -1
- package/src/unstable/cluster/SqlRunnerStorage.ts +21 -5
- package/src/unstable/cluster/internal/entityManager.ts +11 -15
- package/src/unstable/encoding/Msgpack.ts +6 -8
- package/src/unstable/encoding/Sse.ts +98 -16
- package/src/unstable/eventlog/Event.ts +20 -20
- package/src/unstable/eventlog/EventGroup.ts +4 -4
- package/src/unstable/eventlog/EventJournal.ts +15 -15
- package/src/unstable/eventlog/EventLog.ts +3 -3
- package/src/unstable/eventlog/EventLogEncryption.ts +1 -1
- package/src/unstable/eventlog/EventLogMessage.ts +2 -2
- package/src/unstable/eventlog/EventLogRemote.ts +1 -1
- package/src/unstable/eventlog/EventLogServer.ts +41 -7
- package/src/unstable/eventlog/EventLogServerEncrypted.ts +13 -5
- package/src/unstable/eventlog/EventLogServerUnencrypted.ts +14 -6
- package/src/unstable/eventlog/EventLogSessionAuth.ts +1 -1
- package/src/unstable/http/Cookies.ts +35 -21
- package/src/unstable/http/Etag.ts +1 -1
- package/src/unstable/http/FetchHttpClient.ts +3 -1
- package/src/unstable/http/Headers.ts +2 -2
- package/src/unstable/http/HttpBody.ts +20 -5
- package/src/unstable/http/HttpClient.ts +83 -55
- package/src/unstable/http/HttpClientRequest.ts +2 -0
- package/src/unstable/http/HttpClientResponse.ts +4 -4
- package/src/unstable/http/HttpEffect.ts +8 -8
- package/src/unstable/http/HttpMethod.ts +6 -9
- package/src/unstable/http/HttpMiddleware.ts +202 -39
- package/src/unstable/http/HttpPlatform.ts +95 -0
- package/src/unstable/http/HttpRouter.ts +102 -98
- package/src/unstable/http/HttpServer.ts +13 -13
- package/src/unstable/http/HttpServerError.ts +2 -2
- package/src/unstable/http/HttpServerRequest.ts +4 -4
- package/src/unstable/http/HttpServerResponse.ts +30 -0
- package/src/unstable/http/HttpStaticServer.ts +35 -7
- package/src/unstable/http/Multipart.ts +6 -6
- package/src/unstable/http/Url.ts +33 -63
- package/src/unstable/http/UrlParams.ts +10 -18
- package/src/unstable/http/internal/compression.ts +196 -0
- package/src/unstable/httpapi/HttpApiBuilder.ts +10 -9
- package/src/unstable/httpapi/HttpApiClient.ts +14 -14
- package/src/unstable/httpapi/HttpApiEndpoint.ts +42 -42
- package/src/unstable/httpapi/HttpApiError.ts +13 -13
- package/src/unstable/httpapi/HttpApiGroup.ts +15 -15
- package/src/unstable/httpapi/HttpApiMiddleware.ts +71 -24
- package/src/unstable/httpapi/HttpApiScalar.ts +0 -12
- package/src/unstable/httpapi/HttpApiSchema.ts +6 -6
- package/src/unstable/httpapi/OpenApi.ts +13 -13
- package/src/unstable/observability/OtlpExporter.ts +31 -19
- package/src/unstable/observability/OtlpMetrics.ts +4 -1
- package/src/unstable/observability/OtlpResource.ts +26 -17
- package/src/unstable/observability/PrometheusMetrics.ts +13 -4
- package/src/unstable/observability/internal/otlpEnv.ts +1 -1
- package/src/unstable/observability/internal/protobuf.ts +3 -0
- package/src/unstable/persistence/KeyValueStore.ts +72 -49
- package/src/unstable/persistence/Persistable.ts +8 -8
- package/src/unstable/persistence/PersistedQueue.ts +6 -6
- package/src/unstable/persistence/Persistence.ts +126 -19
- package/src/unstable/persistence/RateLimiter.ts +26 -15
- package/src/unstable/persistence/Redis.ts +2 -2
- package/src/unstable/process/ChildProcess.ts +64 -21
- package/src/unstable/process/ChildProcessSpawner.ts +21 -10
- package/src/unstable/reactivity/AsyncResult.ts +12 -13
- package/src/unstable/reactivity/Atom.ts +28 -25
- package/src/unstable/reactivity/AtomHttpApi.ts +5 -4
- package/src/unstable/reactivity/AtomRegistry.ts +24 -3
- package/src/unstable/reactivity/AtomRpc.ts +5 -4
- package/src/unstable/reactivity/Hydration.ts +1 -1
- package/src/unstable/rpc/Rpc.ts +35 -33
- package/src/unstable/rpc/RpcClient.ts +16 -15
- package/src/unstable/rpc/RpcGroup.ts +8 -8
- package/src/unstable/rpc/RpcMessage.ts +31 -30
- package/src/unstable/rpc/RpcMiddleware.ts +10 -10
- package/src/unstable/rpc/RpcSchema.ts +4 -4
- package/src/unstable/rpc/RpcSerialization.ts +167 -68
- package/src/unstable/rpc/RpcServer.ts +18 -15
- package/src/unstable/rpc/RpcWorker.ts +5 -5
- package/src/unstable/schema/Model.ts +52 -50
- package/src/unstable/schema/VariantSchema.ts +5 -5
- package/src/unstable/socket/Socket.ts +17 -4
- package/src/unstable/sql/SqlClient.ts +5 -6
- package/src/unstable/sql/SqlModel.ts +2 -2
- package/src/unstable/sql/SqlResolver.ts +5 -5
- package/src/unstable/sql/Statement.ts +24 -23
- package/src/unstable/workers/Transferable.ts +1 -1
- package/src/unstable/workers/Worker.ts +2 -2
- package/src/unstable/workers/WorkerError.ts +7 -7
- package/src/unstable/workers/WorkerRunner.ts +1 -1
- package/src/unstable/workflow/Activity.ts +2 -2
- package/src/unstable/workflow/DurableClock.ts +1 -1
- package/src/unstable/workflow/DurableDeferred.ts +10 -10
- package/src/unstable/workflow/DurableQueue.ts +22 -20
- package/src/unstable/workflow/Workflow.ts +23 -23
- package/src/unstable/workflow/WorkflowEngine.ts +1 -1
- package/src/unstable/workflow/WorkflowProxy.ts +4 -2
- package/dist/internal/version.d.ts +0 -3
- package/dist/internal/version.d.ts.map +0 -1
- package/dist/internal/version.js +0 -2
- package/dist/internal/version.js.map +0 -1
- package/src/internal/version.ts +0 -2
package/dist/Schedule.js
CHANGED
|
@@ -22,7 +22,7 @@ const randomNext = /*#__PURE__*/random.Random.useSync(random => random.nextDoubl
|
|
|
22
22
|
* input and output values, zero duration, and zeroed timing fields before any
|
|
23
23
|
* schedule step has produced metadata.
|
|
24
24
|
*
|
|
25
|
-
* @category
|
|
25
|
+
* @category services
|
|
26
26
|
* @since 4.0.0
|
|
27
27
|
*/
|
|
28
28
|
export const CurrentMetadata = /*#__PURE__*/Context.Reference("effect/Schedule/CurrentMetadata", {
|
|
@@ -52,16 +52,16 @@ const ScheduleProto = {
|
|
|
52
52
|
*
|
|
53
53
|
* **Example** (Checking for schedules)
|
|
54
54
|
*
|
|
55
|
-
* ```ts
|
|
55
|
+
* ```ts import.meta.vitest
|
|
56
56
|
* import { Schedule } from "effect"
|
|
57
57
|
*
|
|
58
58
|
* const schedule = Schedule.exponential("100 millis")
|
|
59
59
|
* const notSchedule = { foo: "bar" }
|
|
60
60
|
*
|
|
61
|
-
*
|
|
62
|
-
*
|
|
63
|
-
*
|
|
64
|
-
*
|
|
61
|
+
* Schedule.isSchedule(schedule) // => true
|
|
62
|
+
* Schedule.isSchedule(notSchedule) // => false
|
|
63
|
+
* Schedule.isSchedule(null) // => false
|
|
64
|
+
* Schedule.isSchedule(undefined) // => false
|
|
65
65
|
* ```
|
|
66
66
|
*
|
|
67
67
|
* @category guards
|
|
@@ -73,7 +73,7 @@ export const isSchedule = u => hasProperty(u, TypeId);
|
|
|
73
73
|
*
|
|
74
74
|
* **Example** (Creating a custom schedule from a step function)
|
|
75
75
|
*
|
|
76
|
-
* ```ts
|
|
76
|
+
* ```ts import.meta.vitest
|
|
77
77
|
* import { Cause, Duration, Effect, Schedule } from "effect"
|
|
78
78
|
*
|
|
79
79
|
* const schedule = Schedule.fromStep(Effect.sync(() => {
|
|
@@ -86,6 +86,14 @@ export const isSchedule = u => hasProperty(u, TypeId);
|
|
|
86
86
|
* return Effect.succeed([count++, Duration.millis(100)] as [number, Duration.Duration])
|
|
87
87
|
* }
|
|
88
88
|
* }))
|
|
89
|
+
*
|
|
90
|
+
* const program = Effect.gen(function*() {
|
|
91
|
+
* const step = yield* Schedule.toStep(schedule)
|
|
92
|
+
* const [output] = yield* step(0, "input")
|
|
93
|
+
* return output
|
|
94
|
+
* })
|
|
95
|
+
*
|
|
96
|
+
* await Effect.runPromise(program) // => 0
|
|
89
97
|
* ```
|
|
90
98
|
*
|
|
91
99
|
* @category constructors
|
|
@@ -120,7 +128,7 @@ const metadataFn = () => {
|
|
|
120
128
|
*
|
|
121
129
|
* **Example** (Creating a metadata-aware schedule)
|
|
122
130
|
*
|
|
123
|
-
* ```ts
|
|
131
|
+
* ```ts import.meta.vitest
|
|
124
132
|
* import { Cause, Duration, Effect, Schedule } from "effect"
|
|
125
133
|
*
|
|
126
134
|
* const firstThreeInputs = Schedule.fromStepWithMetadata(Effect.succeed((metadata: Schedule.InputMetadata<string>) => {
|
|
@@ -133,6 +141,14 @@ const metadataFn = () => {
|
|
|
133
141
|
* Duration.millis(250)
|
|
134
142
|
* ] as [string, Duration.Duration])
|
|
135
143
|
* }))
|
|
144
|
+
*
|
|
145
|
+
* const program = Effect.gen(function*() {
|
|
146
|
+
* const step = yield* Schedule.toStep(firstThreeInputs)
|
|
147
|
+
* const [output] = yield* step(0, "input")
|
|
148
|
+
* return output
|
|
149
|
+
* })
|
|
150
|
+
*
|
|
151
|
+
* await Effect.runPromise(program) // => "attempt 1: input"
|
|
136
152
|
* ```
|
|
137
153
|
*
|
|
138
154
|
* @category constructors
|
|
@@ -147,8 +163,8 @@ export const fromStepWithMetadata = step => fromStep(effect.map(step, f => {
|
|
|
147
163
|
*
|
|
148
164
|
* **Example** (Extracting a schedule step function)
|
|
149
165
|
*
|
|
150
|
-
* ```ts
|
|
151
|
-
* import { Effect, Schedule } from "effect"
|
|
166
|
+
* ```ts import.meta.vitest
|
|
167
|
+
* import { Duration, Effect, Schedule } from "effect"
|
|
152
168
|
*
|
|
153
169
|
* // Extract step function from an existing schedule
|
|
154
170
|
* const schedule = Schedule.exponential("100 millis").pipe(Schedule.upTo({ times: 3 }))
|
|
@@ -159,10 +175,10 @@ export const fromStepWithMetadata = step => fromStep(effect.map(step, f => {
|
|
|
159
175
|
* // Use the step function directly for custom logic. The timestamp is
|
|
160
176
|
* // supplied by the caller, so tests can pass a deterministic value.
|
|
161
177
|
* const now = 0
|
|
162
|
-
*
|
|
163
|
-
*
|
|
164
|
-
* console.log(`Step result: ${result}`)
|
|
178
|
+
* return yield* stepFn(now, "input")
|
|
165
179
|
* })
|
|
180
|
+
*
|
|
181
|
+
* await Effect.runPromise(program) // => [Duration.millis(100), Duration.millis(100)]
|
|
166
182
|
* ```
|
|
167
183
|
*
|
|
168
184
|
* @category destructors
|
|
@@ -207,26 +223,19 @@ export const toStepWithMetadata = schedule => effect.clockWith(clock => effect.m
|
|
|
207
223
|
*
|
|
208
224
|
* **Example** (Extracting a sleeping step function)
|
|
209
225
|
*
|
|
210
|
-
* ```ts
|
|
226
|
+
* ```ts import.meta.vitest
|
|
211
227
|
* import { Effect, Schedule } from "effect"
|
|
228
|
+
* import { TestClock } from "effect/testing"
|
|
212
229
|
*
|
|
213
|
-
*
|
|
214
|
-
* const schedule = Schedule.spaced("1 second").pipe(Schedule.upTo({ times: 3 }))
|
|
230
|
+
* const schedule = Schedule.recurs(3)
|
|
215
231
|
*
|
|
216
232
|
* const program = Effect.gen(function*() {
|
|
217
233
|
* const stepWithSleep = yield* Schedule.toStepWithSleep(schedule)
|
|
218
234
|
*
|
|
219
|
-
*
|
|
220
|
-
* console.log("Starting...")
|
|
221
|
-
* const result1 = yield* stepWithSleep("first")
|
|
222
|
-
* console.log(`First result: ${result1}`)
|
|
223
|
-
*
|
|
224
|
-
* const result2 = yield* stepWithSleep("second")
|
|
225
|
-
* console.log(`Second result: ${result2}`)
|
|
226
|
-
*
|
|
227
|
-
* const result3 = yield* stepWithSleep("third")
|
|
228
|
-
* console.log(`Third result: ${result3}`)
|
|
235
|
+
* return [yield* stepWithSleep("first"), yield* stepWithSleep("second")]
|
|
229
236
|
* })
|
|
237
|
+
*
|
|
238
|
+
* await Effect.runPromise(Effect.provide(program, TestClock.layer())) // => [0, 1]
|
|
230
239
|
* ```
|
|
231
240
|
*
|
|
232
241
|
* @category destructors
|
|
@@ -239,94 +248,19 @@ export const toStepWithSleep = schedule => effect.map(toStepWithMetadata(schedul
|
|
|
239
248
|
*
|
|
240
249
|
* **Example** (Adding extra delay to a schedule)
|
|
241
250
|
*
|
|
242
|
-
* ```ts
|
|
243
|
-
* import {
|
|
251
|
+
* ```ts import.meta.vitest
|
|
252
|
+
* import { Duration, Effect, Schedule } from "effect"
|
|
244
253
|
*
|
|
245
|
-
*
|
|
246
|
-
*
|
|
247
|
-
* // Add a deterministic extra delay based on the schedule metadata
|
|
248
|
-
* const delayedSchedule = Schedule.addDelay(
|
|
249
|
-
* Schedule.exponential("100 millis").pipe(Schedule.upTo({ times: 5 })),
|
|
250
|
-
* ({ output }) =>
|
|
251
|
-
* Effect.succeed(Duration.millis(Duration.toMillis(output) * 0.25))
|
|
254
|
+
* const schedule = Schedule.recurs(1).pipe(
|
|
255
|
+
* Schedule.addDelay(() => Effect.succeed("25 millis"))
|
|
252
256
|
* )
|
|
253
|
-
*
|
|
254
|
-
*
|
|
255
|
-
* yield*
|
|
256
|
-
*
|
|
257
|
-
* delayedSchedule.pipe(
|
|
258
|
-
* Schedule.tap(({ output: delay }) =>
|
|
259
|
-
* Console.log(`Base delay: ${delay}`)
|
|
260
|
-
* )
|
|
261
|
-
* )
|
|
262
|
-
* )
|
|
263
|
-
* })
|
|
264
|
-
*
|
|
265
|
-
* // Add adaptive delay based on execution count
|
|
266
|
-
* const adaptiveSchedule = Schedule.addDelay(
|
|
267
|
-
* Schedule.recurs(6),
|
|
268
|
-
* ({ output: executionCount }) =>
|
|
269
|
-
* // Increase delay as execution count grows
|
|
270
|
-
* Effect.succeed(Duration.millis(executionCount * 200))
|
|
271
|
-
* )
|
|
272
|
-
*
|
|
273
|
-
* const adaptiveProgram = Effect.gen(function*() {
|
|
274
|
-
* yield* Effect.repeat(
|
|
275
|
-
* Effect.gen(function*() {
|
|
276
|
-
* yield* Console.log("Adaptive delay task")
|
|
277
|
-
* return "adaptive"
|
|
278
|
-
* }),
|
|
279
|
-
* adaptiveSchedule.pipe(
|
|
280
|
-
* Schedule.tap(({ output: count }) =>
|
|
281
|
-
* Console.log(`Execution ${count + 1} with adaptive delay`)
|
|
282
|
-
* )
|
|
283
|
-
* )
|
|
284
|
-
* )
|
|
285
|
-
* })
|
|
286
|
-
*
|
|
287
|
-
* // Add effectful delay computation from deterministic service data
|
|
288
|
-
* const loadByExecution = [1, 3, 2, 4] as const
|
|
289
|
-
*
|
|
290
|
-
* const dynamicSchedule = Schedule.addDelay(
|
|
291
|
-
* Schedule.spaced("1 second").pipe(Schedule.upTo({ times: 4 })),
|
|
292
|
-
* ({ output: executionNumber }) => {
|
|
293
|
-
* const load = loadByExecution[executionNumber] ?? 1
|
|
294
|
-
* return Effect.succeed(Duration.millis(load * 100))
|
|
295
|
-
* }
|
|
296
|
-
* )
|
|
297
|
-
*
|
|
298
|
-
* const dynamicProgram = Effect.gen(function*() {
|
|
299
|
-
* yield* Effect.repeat(
|
|
300
|
-
* Effect.gen(function*() {
|
|
301
|
-
* yield* Console.log("Dynamic delay task")
|
|
302
|
-
* return "dynamic"
|
|
303
|
-
* }),
|
|
304
|
-
* dynamicSchedule
|
|
305
|
-
* )
|
|
257
|
+
* const program = Effect.gen(function*() {
|
|
258
|
+
* const step = yield* Schedule.toStep(schedule)
|
|
259
|
+
* const [, delay] = yield* step(0, undefined)
|
|
260
|
+
* return delay
|
|
306
261
|
* })
|
|
307
262
|
*
|
|
308
|
-
*
|
|
309
|
-
* const progressiveRetrySchedule = Schedule.addDelay(
|
|
310
|
-
* Schedule.exponential("50 millis").pipe(Schedule.upTo({ times: 4 })),
|
|
311
|
-
* () => Effect.succeed(Duration.millis(100)) // Fixed additional delay
|
|
312
|
-
* )
|
|
313
|
-
*
|
|
314
|
-
* const retryProgram = Effect.gen(function*() {
|
|
315
|
-
* let attempt = 0
|
|
316
|
-
*
|
|
317
|
-
* const result = yield* Effect.retry(
|
|
318
|
-
* Effect.gen(function*() {
|
|
319
|
-
* attempt++
|
|
320
|
-
* if (attempt < 5) {
|
|
321
|
-
* return yield* Effect.fail(new RetryAttemptError({ message: `Attempt ${attempt} failed` }))
|
|
322
|
-
* }
|
|
323
|
-
* return `Success on attempt ${attempt}`
|
|
324
|
-
* }),
|
|
325
|
-
* progressiveRetrySchedule
|
|
326
|
-
* )
|
|
327
|
-
*
|
|
328
|
-
* yield* Console.log(`Final result: ${result}`)
|
|
329
|
-
* })
|
|
263
|
+
* await Effect.runPromise(program) // => Duration.millis(25)
|
|
330
264
|
* ```
|
|
331
265
|
*
|
|
332
266
|
* @category delays & timeouts
|
|
@@ -339,35 +273,11 @@ export const addDelay = /*#__PURE__*/dual(2, (self, f) => modifyDelay(self, meta
|
|
|
339
273
|
*
|
|
340
274
|
* **Example** (Sequencing quick and slow retries)
|
|
341
275
|
*
|
|
342
|
-
* ```ts
|
|
343
|
-
* import {
|
|
344
|
-
*
|
|
345
|
-
* class RetryAttemptError extends Data.TaggedError("RetryAttemptError")<{ readonly message: string }> {}
|
|
346
|
-
*
|
|
347
|
-
* // First retry 3 times quickly, then switch to slower retries
|
|
348
|
-
* const quickRetries = Schedule.exponential("100 millis").pipe(
|
|
349
|
-
* Schedule.upTo({ times: 3 })
|
|
350
|
-
* )
|
|
351
|
-
* const slowRetries = Schedule.exponential("1 second").pipe(
|
|
352
|
-
* Schedule.upTo({ times: 2 })
|
|
353
|
-
* )
|
|
354
|
-
*
|
|
355
|
-
* const combinedRetries = Schedule.andThen(quickRetries, slowRetries)
|
|
276
|
+
* ```ts import.meta.vitest
|
|
277
|
+
* import { Schedule } from "effect"
|
|
356
278
|
*
|
|
357
|
-
* const
|
|
358
|
-
*
|
|
359
|
-
* yield* Effect.retry(
|
|
360
|
-
* Effect.gen(function*() {
|
|
361
|
-
* attempt++
|
|
362
|
-
* yield* Console.log(`Attempt ${attempt}`)
|
|
363
|
-
* if (attempt < 6) {
|
|
364
|
-
* return yield* Effect.fail(new RetryAttemptError({ message: `Failure ${attempt}` }))
|
|
365
|
-
* }
|
|
366
|
-
* return `Success on attempt ${attempt}`
|
|
367
|
-
* }),
|
|
368
|
-
* combinedRetries
|
|
369
|
-
* )
|
|
370
|
-
* })
|
|
279
|
+
* const schedule = Schedule.andThen(Schedule.recurs(1), Schedule.recurs(2))
|
|
280
|
+
* Schedule.isSchedule(schedule) // => true
|
|
371
281
|
* ```
|
|
372
282
|
*
|
|
373
283
|
* @category sequencing
|
|
@@ -388,31 +298,11 @@ export const andThen = /*#__PURE__*/dual(2, (self, other) => map(andThenResult(s
|
|
|
388
298
|
*
|
|
389
299
|
* **Example** (Tracking sequential schedule phases)
|
|
390
300
|
*
|
|
391
|
-
* ```ts
|
|
392
|
-
* import {
|
|
393
|
-
*
|
|
394
|
-
* // Track which phase of the schedule we're in
|
|
395
|
-
* const phaseTracker = Schedule.andThenResult(
|
|
396
|
-
* Schedule.exponential("100 millis").pipe(Schedule.upTo({ times: 2 })),
|
|
397
|
-
* Schedule.spaced("500 millis").pipe(Schedule.upTo({ times: 2 }))
|
|
398
|
-
* )
|
|
301
|
+
* ```ts import.meta.vitest
|
|
302
|
+
* import { Schedule } from "effect"
|
|
399
303
|
*
|
|
400
|
-
* const
|
|
401
|
-
*
|
|
402
|
-
* Effect.gen(function*() {
|
|
403
|
-
* yield* Console.log("Task executed")
|
|
404
|
-
* return "task-result"
|
|
405
|
-
* }),
|
|
406
|
-
* phaseTracker.pipe(
|
|
407
|
-
* Schedule.tap(({ output: result }) =>
|
|
408
|
-
* Result.match(result, {
|
|
409
|
-
* onFailure: (phase1Output) => Console.log(`Phase 1: ${phase1Output}`),
|
|
410
|
-
* onSuccess: (phase2Output) => Console.log(`Phase 2: ${phase2Output}`)
|
|
411
|
-
* })
|
|
412
|
-
* )
|
|
413
|
-
* )
|
|
414
|
-
* )
|
|
415
|
-
* })
|
|
304
|
+
* const schedule = Schedule.andThenResult(Schedule.recurs(1), Schedule.recurs(2))
|
|
305
|
+
* Schedule.isSchedule(schedule) // => true
|
|
416
306
|
* ```
|
|
417
307
|
*
|
|
418
308
|
* @category sequencing
|
|
@@ -454,36 +344,11 @@ export const andThenResult = /*#__PURE__*/dual(2, (self, other) => fromStep(effe
|
|
|
454
344
|
*
|
|
455
345
|
* **Example** (Combining retry schedules by their maximum delay)
|
|
456
346
|
*
|
|
457
|
-
* ```ts
|
|
458
|
-
* import {
|
|
459
|
-
*
|
|
460
|
-
* class RetryAttemptError extends Data.TaggedError("RetryAttemptError")<{ readonly message: string }> {}
|
|
461
|
-
*
|
|
462
|
-
* const retrySchedule = Schedule.max([
|
|
463
|
-
* Schedule.fixed("5 seconds"),
|
|
464
|
-
* Schedule.exponential("5 seconds"),
|
|
465
|
-
* Schedule.spaced("10 seconds")
|
|
466
|
-
* ])
|
|
347
|
+
* ```ts import.meta.vitest
|
|
348
|
+
* import { Schedule } from "effect"
|
|
467
349
|
*
|
|
468
|
-
* const
|
|
469
|
-
*
|
|
470
|
-
*
|
|
471
|
-
* yield* Effect.retry(
|
|
472
|
-
* Effect.gen(function*() {
|
|
473
|
-
* attempt++
|
|
474
|
-
* yield* Console.log(`Retry attempt ${attempt}`)
|
|
475
|
-
* if (attempt < 3) {
|
|
476
|
-
* return yield* Effect.fail(new RetryAttemptError({ message: `Attempt ${attempt} failed` }))
|
|
477
|
-
* }
|
|
478
|
-
* return "success"
|
|
479
|
-
* }),
|
|
480
|
-
* retrySchedule.pipe(
|
|
481
|
-
* Schedule.tap(({ output: duration }) =>
|
|
482
|
-
* Console.log(`Waiting for the slowest schedule: ${duration}`)
|
|
483
|
-
* )
|
|
484
|
-
* )
|
|
485
|
-
* )
|
|
486
|
-
* })
|
|
350
|
+
* const schedule = Schedule.max([Schedule.fixed("5 seconds"), Schedule.spaced("10 seconds")])
|
|
351
|
+
* Schedule.isSchedule(schedule) // => true
|
|
487
352
|
* ```
|
|
488
353
|
*
|
|
489
354
|
* @category combining
|
|
@@ -514,126 +379,11 @@ const maxDuration = results => {
|
|
|
514
379
|
*
|
|
515
380
|
* **Example** (Scheduling work with cron expressions)
|
|
516
381
|
*
|
|
517
|
-
* ```ts
|
|
518
|
-
* import {
|
|
519
|
-
*
|
|
520
|
-
* class ScheduledTaskError extends Data.TaggedError("ScheduledTaskError")<{ readonly message: string }> {}
|
|
382
|
+
* ```ts import.meta.vitest
|
|
383
|
+
* import { Schedule } from "effect"
|
|
521
384
|
*
|
|
522
|
-
* // Run every minute
|
|
523
385
|
* const everyMinute = Schedule.cron("* * * * *")
|
|
524
|
-
*
|
|
525
|
-
* const minutelyProgram = Effect.gen(function*() {
|
|
526
|
-
* yield* Effect.repeat(
|
|
527
|
-
* Effect.gen(function*() {
|
|
528
|
-
* yield* Console.log("Running minutely task")
|
|
529
|
-
* return "minute"
|
|
530
|
-
* }),
|
|
531
|
-
* everyMinute.pipe(
|
|
532
|
-
* Schedule.upTo({ times: 3 }), // Run only 3 times for demo
|
|
533
|
-
* Schedule.tap(({ output: duration }) =>
|
|
534
|
-
* Console.log(`Next execution in: ${duration}`)
|
|
535
|
-
* )
|
|
536
|
-
* )
|
|
537
|
-
* )
|
|
538
|
-
* })
|
|
539
|
-
*
|
|
540
|
-
* // Run every day at 2:30 AM
|
|
541
|
-
* const dailyBackup = Schedule.cron("30 2 * * *")
|
|
542
|
-
*
|
|
543
|
-
* const backupProgram = Effect.gen(function*() {
|
|
544
|
-
* yield* Effect.repeat(
|
|
545
|
-
* Effect.gen(function*() {
|
|
546
|
-
* yield* Console.log("Running daily backup...")
|
|
547
|
-
* // Simulate backup process
|
|
548
|
-
* yield* Effect.sleep("2 seconds")
|
|
549
|
-
* yield* Console.log("Backup completed")
|
|
550
|
-
* return "backup-done"
|
|
551
|
-
* }),
|
|
552
|
-
* dailyBackup.pipe(
|
|
553
|
-
* Schedule.upTo({ times: 2 }) // Run 2 times for demo
|
|
554
|
-
* )
|
|
555
|
-
* )
|
|
556
|
-
* })
|
|
557
|
-
*
|
|
558
|
-
* // Run every Monday at 9:00 AM with timezone
|
|
559
|
-
* const weeklyReport = Schedule.cron("0 9 * * 1", "America/New_York")
|
|
560
|
-
*
|
|
561
|
-
* const reportProgram = Effect.gen(function*() {
|
|
562
|
-
* yield* Effect.repeat(
|
|
563
|
-
* Effect.gen(function*() {
|
|
564
|
-
* yield* Console.log("Generating weekly report...")
|
|
565
|
-
* const report = {
|
|
566
|
-
* week: 42,
|
|
567
|
-
* status: "ready" as const
|
|
568
|
-
* }
|
|
569
|
-
* yield* Console.log(`Report generated: ${JSON.stringify(report)}`)
|
|
570
|
-
* return report
|
|
571
|
-
* }),
|
|
572
|
-
* weeklyReport.pipe(Schedule.upTo({ times: 1 }))
|
|
573
|
-
* )
|
|
574
|
-
* })
|
|
575
|
-
*
|
|
576
|
-
* // Run every 15 minutes during business hours (9 AM - 5 PM)
|
|
577
|
-
* const businessHoursCheck = Schedule.cron("0,15,30,45 9-17 * * 1-5")
|
|
578
|
-
*
|
|
579
|
-
* const businessProgram = Effect.gen(function*() {
|
|
580
|
-
* const statuses = ["healthy", "healthy", "degraded", "healthy"] as const
|
|
581
|
-
* let index = 0
|
|
582
|
-
*
|
|
583
|
-
* yield* Effect.repeat(
|
|
584
|
-
* Effect.gen(function*() {
|
|
585
|
-
* yield* Console.log("Business hours health check...")
|
|
586
|
-
* const status = statuses[index++]
|
|
587
|
-
* yield* Console.log(`System status: ${status}`)
|
|
588
|
-
* return status
|
|
589
|
-
* }),
|
|
590
|
-
* businessHoursCheck.pipe(
|
|
591
|
-
* Schedule.upTo({ times: 4 }) // Demo with 4 checks
|
|
592
|
-
* )
|
|
593
|
-
* )
|
|
594
|
-
* })
|
|
595
|
-
*
|
|
596
|
-
* // Run on specific days of the month
|
|
597
|
-
* const monthlyInvoice = Schedule.cron("0 10 1,15 * *") // 1st and 15th at 10 AM
|
|
598
|
-
*
|
|
599
|
-
* const invoiceProgram = Effect.gen(function*() {
|
|
600
|
-
* yield* Effect.repeat(
|
|
601
|
-
* Effect.gen(function*() {
|
|
602
|
-
* yield* Console.log("Processing monthly invoices...")
|
|
603
|
-
* const invoiceCount = 72
|
|
604
|
-
* yield* Console.log(`Processed ${invoiceCount} invoices`)
|
|
605
|
-
* return { count: invoiceCount, batch: "2024-01-a" }
|
|
606
|
-
* }),
|
|
607
|
-
* monthlyInvoice.pipe(Schedule.upTo({ times: 1 }))
|
|
608
|
-
* )
|
|
609
|
-
* })
|
|
610
|
-
*
|
|
611
|
-
* // Complex cron with error handling
|
|
612
|
-
* const complexCron = Schedule.cron("0 2,4,6 * * *").pipe(
|
|
613
|
-
* Schedule.tap(({ output: duration }) =>
|
|
614
|
-
* Console.log(`Scheduled to run again in ${duration}`)
|
|
615
|
-
* )
|
|
616
|
-
* )
|
|
617
|
-
*
|
|
618
|
-
* const robustProgram = Effect.gen(function*() {
|
|
619
|
-
* let attempt = 0
|
|
620
|
-
*
|
|
621
|
-
* yield* Effect.repeat(
|
|
622
|
-
* Effect.gen(function*() {
|
|
623
|
-
* attempt++
|
|
624
|
-
* yield* Console.log("Complex scheduled task...")
|
|
625
|
-
* if (attempt === 1) {
|
|
626
|
-
* return yield* Effect.fail(new ScheduledTaskError({ message: "Scheduled task failed" }))
|
|
627
|
-
* }
|
|
628
|
-
* return "success"
|
|
629
|
-
* }),
|
|
630
|
-
* complexCron.pipe(Schedule.upTo({ times: 3 }))
|
|
631
|
-
* ).pipe(
|
|
632
|
-
* Effect.catch((error: unknown) =>
|
|
633
|
-
* Console.log(`Cron task error: ${String(error)}`)
|
|
634
|
-
* )
|
|
635
|
-
* )
|
|
636
|
-
* })
|
|
386
|
+
* Schedule.isSchedule(everyMinute) // => true
|
|
637
387
|
* ```
|
|
638
388
|
*
|
|
639
389
|
* @category constructors
|
|
@@ -666,13 +416,10 @@ export const cron = (expression, tz) => {
|
|
|
666
416
|
*
|
|
667
417
|
* **Example** (Recurring once after a duration)
|
|
668
418
|
*
|
|
669
|
-
* ```ts
|
|
670
|
-
* import {
|
|
419
|
+
* ```ts import.meta.vitest
|
|
420
|
+
* import { Schedule } from "effect"
|
|
671
421
|
*
|
|
672
|
-
*
|
|
673
|
-
* Console.log("runs again after one second"),
|
|
674
|
-
* Schedule.duration("1 second")
|
|
675
|
-
* )
|
|
422
|
+
* Schedule.isSchedule(Schedule.duration("1 second")) // => true
|
|
676
423
|
* ```
|
|
677
424
|
*
|
|
678
425
|
* @see {@link during} for recurring until a duration has elapsed
|
|
@@ -694,82 +441,10 @@ export const duration = durationInput => {
|
|
|
694
441
|
*
|
|
695
442
|
* **Example** (Repeating work during a duration)
|
|
696
443
|
*
|
|
697
|
-
* ```ts
|
|
698
|
-
* import {
|
|
699
|
-
*
|
|
700
|
-
* class RetryAttemptError extends Data.TaggedError("RetryAttemptError")<{ readonly message: string }> {}
|
|
701
|
-
*
|
|
702
|
-
* // Run a task for exactly 5 seconds, regardless of how many iterations
|
|
703
|
-
* const fiveSecondSchedule = Schedule.during("5 seconds")
|
|
704
|
-
*
|
|
705
|
-
* const timedProgram = Effect.gen(function*() {
|
|
706
|
-
* yield* Effect.repeat(
|
|
707
|
-
* Effect.gen(function*() {
|
|
708
|
-
* yield* Console.log("Task executed inside the time window")
|
|
709
|
-
* yield* Effect.sleep("500 millis") // Each task takes 500ms
|
|
710
|
-
* return "task done"
|
|
711
|
-
* }),
|
|
712
|
-
* fiveSecondSchedule.pipe(
|
|
713
|
-
* Schedule.tap(({ output: elapsedDuration }) =>
|
|
714
|
-
* Console.log(`Total elapsed: ${elapsedDuration}`)
|
|
715
|
-
* )
|
|
716
|
-
* )
|
|
717
|
-
* )
|
|
718
|
-
*
|
|
719
|
-
* yield* Console.log("Time limit reached!")
|
|
720
|
-
* })
|
|
721
|
-
*
|
|
722
|
-
* // Combine with other schedules for time-bounded execution
|
|
723
|
-
* const timeAndCountLimited = Schedule.max([
|
|
724
|
-
* Schedule.spaced("1 second"),
|
|
725
|
-
* Schedule.during("10 seconds"), // Stop after 10 seconds OR
|
|
726
|
-
* Schedule.recurs(15) // 15 attempts, whichever comes first
|
|
727
|
-
* ])
|
|
728
|
-
*
|
|
729
|
-
* // Burst execution within time window
|
|
730
|
-
* const burstWindow = Schedule.during("3 seconds")
|
|
731
|
-
*
|
|
732
|
-
* const burstProgram = Effect.gen(function*() {
|
|
733
|
-
* yield* Console.log("Starting burst execution...")
|
|
734
|
-
*
|
|
735
|
-
* yield* Effect.repeat(
|
|
736
|
-
* Effect.gen(function*() {
|
|
737
|
-
* yield* Console.log("Burst task")
|
|
738
|
-
* return "burst"
|
|
739
|
-
* }),
|
|
740
|
-
* burstWindow
|
|
741
|
-
* )
|
|
742
|
-
*
|
|
743
|
-
* yield* Console.log("Burst window completed")
|
|
744
|
-
* })
|
|
745
|
-
*
|
|
746
|
-
* // Timed retry window - retry for up to 30 seconds
|
|
747
|
-
* const timedRetry = Schedule.max([
|
|
748
|
-
* Schedule.exponential("200 millis"),
|
|
749
|
-
* Schedule.during("30 seconds")
|
|
750
|
-
* ])
|
|
751
|
-
*
|
|
752
|
-
* const retryProgram = Effect.gen(function*() {
|
|
753
|
-
* let attempt = 0
|
|
754
|
-
*
|
|
755
|
-
* const result = yield* Effect.retry(
|
|
756
|
-
* Effect.gen(function*() {
|
|
757
|
-
* attempt++
|
|
758
|
-
* yield* Console.log(`Retry attempt ${attempt}`)
|
|
759
|
-
*
|
|
760
|
-
* if (attempt < 4) {
|
|
761
|
-
* return yield* Effect.fail(new RetryAttemptError({ message: `Attempt ${attempt} failed` }))
|
|
762
|
-
* }
|
|
763
|
-
*
|
|
764
|
-
* return `Success on attempt ${attempt}`
|
|
765
|
-
* }),
|
|
766
|
-
* timedRetry
|
|
767
|
-
* )
|
|
444
|
+
* ```ts import.meta.vitest
|
|
445
|
+
* import { Schedule } from "effect"
|
|
768
446
|
*
|
|
769
|
-
*
|
|
770
|
-
* }).pipe(
|
|
771
|
-
* Effect.catch((error: unknown) => Console.log(`Timed out: ${String(error)}`))
|
|
772
|
-
* )
|
|
447
|
+
* Schedule.isSchedule(Schedule.during("5 seconds")) // => true
|
|
773
448
|
* ```
|
|
774
449
|
*
|
|
775
450
|
* @see {@link duration} for one delayed recurrence
|
|
@@ -781,7 +456,7 @@ export const during = duration => {
|
|
|
781
456
|
const durationMillis = Duration.toMillis(duration);
|
|
782
457
|
return fromStepWithMetadata(effect.succeed(meta => {
|
|
783
458
|
const elapsed = Duration.millis(meta.elapsed);
|
|
784
|
-
return meta.elapsed > durationMillis ? effect.succeed([elapsed, Duration.zero])
|
|
459
|
+
return meta.elapsed > durationMillis ? Cause.done(elapsed) : effect.succeed([elapsed, Duration.zero]);
|
|
785
460
|
}));
|
|
786
461
|
};
|
|
787
462
|
/**
|
|
@@ -795,36 +470,11 @@ export const during = duration => {
|
|
|
795
470
|
*
|
|
796
471
|
* **Example** (Combining retry schedules by their minimum delay)
|
|
797
472
|
*
|
|
798
|
-
* ```ts
|
|
799
|
-
* import {
|
|
800
|
-
*
|
|
801
|
-
* class RetryAttemptError extends Data.TaggedError("RetryAttemptError")<{ readonly message: string }> {}
|
|
802
|
-
*
|
|
803
|
-
* const retrySchedule = Schedule.min([
|
|
804
|
-
* Schedule.fixed("5 seconds"),
|
|
805
|
-
* Schedule.exponential("5 seconds"),
|
|
806
|
-
* Schedule.spaced("10 seconds")
|
|
807
|
-
* ])
|
|
473
|
+
* ```ts import.meta.vitest
|
|
474
|
+
* import { Schedule } from "effect"
|
|
808
475
|
*
|
|
809
|
-
* const
|
|
810
|
-
*
|
|
811
|
-
*
|
|
812
|
-
* yield* Effect.retry(
|
|
813
|
-
* Effect.gen(function*() {
|
|
814
|
-
* attempt++
|
|
815
|
-
* yield* Console.log(`Retry attempt ${attempt}`)
|
|
816
|
-
* if (attempt < 3) {
|
|
817
|
-
* return yield* Effect.fail(new RetryAttemptError({ message: `Attempt ${attempt} failed` }))
|
|
818
|
-
* }
|
|
819
|
-
* return "success"
|
|
820
|
-
* }),
|
|
821
|
-
* retrySchedule.pipe(
|
|
822
|
-
* Schedule.tap(({ output: duration }) =>
|
|
823
|
-
* Console.log(`Waiting for the fastest schedule: ${duration}`)
|
|
824
|
-
* )
|
|
825
|
-
* )
|
|
826
|
-
* )
|
|
827
|
-
* })
|
|
476
|
+
* const schedule = Schedule.min([Schedule.fixed("5 seconds"), Schedule.spaced("10 seconds")])
|
|
477
|
+
* Schedule.isSchedule(schedule) // => true
|
|
828
478
|
* ```
|
|
829
479
|
*
|
|
830
480
|
* @category combining
|
|
@@ -858,44 +508,15 @@ const minDuration = results => {
|
|
|
858
508
|
*
|
|
859
509
|
* **Example** (Retrying with exponential backoff)
|
|
860
510
|
*
|
|
861
|
-
* ```ts
|
|
862
|
-
* import {
|
|
863
|
-
*
|
|
864
|
-
* class RetryFailure extends Data.TaggedError("RetryFailure")<{ readonly message: string }> {}
|
|
865
|
-
*
|
|
866
|
-
* // Basic exponential backoff with default factor of 2
|
|
867
|
-
* const basicExponential = Schedule.exponential("100 millis")
|
|
868
|
-
* // Delays: 100ms, 200ms, 400ms, 800ms, 1600ms, ...
|
|
869
|
-
*
|
|
870
|
-
* // Custom exponential backoff with factor 1.5
|
|
871
|
-
* const gentleExponential = Schedule.exponential("200 millis", 1.5)
|
|
872
|
-
* // Delays: 200ms, 300ms, 450ms, 675ms, 1012ms, ...
|
|
873
|
-
*
|
|
874
|
-
* // Retry with exponential backoff (limited to 5 attempts)
|
|
875
|
-
* const retryPolicy = Schedule.max([
|
|
876
|
-
* Schedule.exponential("50 millis"),
|
|
877
|
-
* Schedule.recurs(5)
|
|
878
|
-
* ])
|
|
511
|
+
* ```ts import.meta.vitest
|
|
512
|
+
* import { Duration, Effect, Schedule } from "effect"
|
|
879
513
|
*
|
|
880
514
|
* const program = Effect.gen(function*() {
|
|
881
|
-
*
|
|
882
|
-
*
|
|
883
|
-
* const result = yield* Effect.retry(
|
|
884
|
-
* Effect.gen(function*() {
|
|
885
|
-
* attempt++
|
|
886
|
-
* if (attempt < 4) {
|
|
887
|
-
* yield* Console.log(`Attempt ${attempt} failed, retrying...`)
|
|
888
|
-
* return yield* Effect.fail(new RetryFailure({ message: `Failure ${attempt}` }))
|
|
889
|
-
* }
|
|
890
|
-
* return `Success on attempt ${attempt}`
|
|
891
|
-
* }),
|
|
892
|
-
* retryPolicy
|
|
893
|
-
* )
|
|
894
|
-
*
|
|
895
|
-
* yield* Console.log(`Final result: ${result}`)
|
|
515
|
+
* const step = yield* Schedule.toStep(Schedule.exponential("100 millis"))
|
|
516
|
+
* return yield* step(0, undefined)
|
|
896
517
|
* })
|
|
897
518
|
*
|
|
898
|
-
*
|
|
519
|
+
* await Effect.runPromise(program) // => [Duration.millis(100), Duration.millis(100)]
|
|
899
520
|
* ```
|
|
900
521
|
*
|
|
901
522
|
* @category constructors
|
|
@@ -915,63 +536,15 @@ export const exponential = (base, factor = 2) => {
|
|
|
915
536
|
*
|
|
916
537
|
* **Example** (Retrying with Fibonacci backoff)
|
|
917
538
|
*
|
|
918
|
-
* ```ts
|
|
919
|
-
* import {
|
|
920
|
-
*
|
|
921
|
-
* class RetryAttemptError extends Data.TaggedError("RetryAttemptError")<{ readonly message: string }> {}
|
|
922
|
-
*
|
|
923
|
-
* // Basic Fibonacci schedule starting with 100ms
|
|
924
|
-
* const fibSchedule = Schedule.fibonacci("100 millis")
|
|
925
|
-
* // Delays: 100ms, 100ms, 200ms, 300ms, 500ms, 800ms, 1300ms, ...
|
|
926
|
-
*
|
|
927
|
-
* // Retry with Fibonacci backoff for gradual increase
|
|
928
|
-
* const retryWithFib = Effect.gen(function*() {
|
|
929
|
-
* let attempt = 0
|
|
539
|
+
* ```ts import.meta.vitest
|
|
540
|
+
* import { Duration, Effect, Schedule } from "effect"
|
|
930
541
|
*
|
|
931
|
-
*
|
|
932
|
-
*
|
|
933
|
-
*
|
|
934
|
-
* yield* Console.log(`Attempt ${attempt}`)
|
|
935
|
-
*
|
|
936
|
-
* if (attempt < 5) {
|
|
937
|
-
* return yield* Effect.fail(new RetryAttemptError({ message: `Attempt ${attempt} failed` }))
|
|
938
|
-
* }
|
|
939
|
-
*
|
|
940
|
-
* return `Success on attempt ${attempt}`
|
|
941
|
-
* }),
|
|
942
|
-
* Schedule.max([
|
|
943
|
-
* Schedule.fibonacci("50 millis"),
|
|
944
|
-
* Schedule.recurs(6) // Maximum 6 retries
|
|
945
|
-
* ]).pipe(
|
|
946
|
-
* Schedule.tap(({ output: delay }) => Console.log(`Next retry in ${delay}`))
|
|
947
|
-
* )
|
|
948
|
-
* )
|
|
949
|
-
*
|
|
950
|
-
* yield* Console.log(`Final result: ${result}`)
|
|
542
|
+
* const program = Effect.gen(function*() {
|
|
543
|
+
* const step = yield* Schedule.toStep(Schedule.fibonacci("100 millis"))
|
|
544
|
+
* return yield* step(0, undefined)
|
|
951
545
|
* })
|
|
952
546
|
*
|
|
953
|
-
*
|
|
954
|
-
* const adaptiveHeartbeat = Effect.gen(function*() {
|
|
955
|
-
* yield* Console.log("Heartbeat")
|
|
956
|
-
* return "pulse"
|
|
957
|
-
* }).pipe(
|
|
958
|
-
* Effect.repeat(
|
|
959
|
-
* Schedule.fibonacci("200 millis").pipe(
|
|
960
|
-
* Schedule.upTo({ times: 8 }) // First 8 heartbeats
|
|
961
|
-
* )
|
|
962
|
-
* )
|
|
963
|
-
* )
|
|
964
|
-
*
|
|
965
|
-
* // Fibonacci vs exponential comparison
|
|
966
|
-
* const compareSchedules = Effect.gen(function*() {
|
|
967
|
-
* yield* Console.log("=== Fibonacci Delays ===")
|
|
968
|
-
* // 100ms, 100ms, 200ms, 300ms, 500ms, 800ms
|
|
969
|
-
*
|
|
970
|
-
* yield* Console.log("=== Exponential Delays ===")
|
|
971
|
-
* // 100ms, 200ms, 400ms, 800ms, 1600ms, 3200ms
|
|
972
|
-
*
|
|
973
|
-
* // Fibonacci grows more slowly than exponential
|
|
974
|
-
* })
|
|
547
|
+
* await Effect.runPromise(program) // => [Duration.millis(100), Duration.millis(100)]
|
|
975
548
|
* ```
|
|
976
549
|
*
|
|
977
550
|
* @category constructors
|
|
@@ -1011,50 +584,15 @@ export const fibonacci = one => {
|
|
|
1011
584
|
*
|
|
1012
585
|
* **Example** (Repeating on fixed intervals)
|
|
1013
586
|
*
|
|
1014
|
-
* ```ts
|
|
1015
|
-
* import {
|
|
1016
|
-
*
|
|
1017
|
-
* // Fixed interval schedule - recurs on a one-second cadence
|
|
1018
|
-
* const everySecond = Schedule.fixed("1 second")
|
|
1019
|
-
*
|
|
1020
|
-
* // Health check that runs at fixed intervals
|
|
1021
|
-
* const healthCheck = Effect.gen(function*() {
|
|
1022
|
-
* yield* Console.log("Health check")
|
|
1023
|
-
* yield* Effect.sleep("200 millis") // simulate health check work
|
|
1024
|
-
* return "healthy"
|
|
1025
|
-
* }).pipe(
|
|
1026
|
-
* Effect.repeat(Schedule.fixed("2 seconds").pipe(Schedule.upTo({ times: 5 })))
|
|
1027
|
-
* )
|
|
1028
|
-
*
|
|
1029
|
-
* // Difference between fixed and spaced:
|
|
1030
|
-
* // - fixed: maintains constant rate regardless of action duration
|
|
1031
|
-
* // - spaced: waits for the duration AFTER each action completes
|
|
1032
|
-
*
|
|
1033
|
-
* const longRunningTask = Effect.gen(function*() {
|
|
1034
|
-
* yield* Console.log("Task started")
|
|
1035
|
-
* yield* Effect.sleep("1.5 seconds") // Longer than interval
|
|
1036
|
-
* yield* Console.log("Task completed")
|
|
1037
|
-
* return "done"
|
|
1038
|
-
* })
|
|
1039
|
-
*
|
|
1040
|
-
* // Fixed schedule: if task takes 1.5s but interval is 1s,
|
|
1041
|
-
* // next execution happens immediately (no pile-up)
|
|
1042
|
-
* const fixedSchedule = longRunningTask.pipe(
|
|
1043
|
-
* Effect.repeat(Schedule.fixed("1 second").pipe(Schedule.upTo({ times: 3 })))
|
|
1044
|
-
* )
|
|
1045
|
-
*
|
|
1046
|
-
* // Comparing with spaced (waits 1s AFTER each task)
|
|
1047
|
-
* const spacedSchedule = longRunningTask.pipe(
|
|
1048
|
-
* Effect.repeat(Schedule.spaced("1 second").pipe(Schedule.upTo({ times: 3 })))
|
|
1049
|
-
* )
|
|
587
|
+
* ```ts import.meta.vitest
|
|
588
|
+
* import { Duration, Effect, Schedule } from "effect"
|
|
1050
589
|
*
|
|
1051
590
|
* const program = Effect.gen(function*() {
|
|
1052
|
-
* yield*
|
|
1053
|
-
* yield*
|
|
1054
|
-
*
|
|
1055
|
-
* yield* Console.log("=== Spaced Schedule Demo ===")
|
|
1056
|
-
* yield* spacedSchedule
|
|
591
|
+
* const step = yield* Schedule.toStep(Schedule.fixed("1 second"))
|
|
592
|
+
* return yield* step(0, undefined)
|
|
1057
593
|
* })
|
|
594
|
+
*
|
|
595
|
+
* await Effect.runPromise(program) // => [0, Duration.seconds(1)]
|
|
1058
596
|
* ```
|
|
1059
597
|
*
|
|
1060
598
|
* @see {@link spaced} for delaying after each action completes
|
|
@@ -1096,59 +634,19 @@ export const fixed = interval => {
|
|
|
1096
634
|
*
|
|
1097
635
|
* **Example** (Mapping schedule outputs)
|
|
1098
636
|
*
|
|
1099
|
-
* ```ts
|
|
1100
|
-
* import {
|
|
637
|
+
* ```ts import.meta.vitest
|
|
638
|
+
* import { Effect, Schedule } from "effect"
|
|
1101
639
|
*
|
|
1102
|
-
* // Transform schedule output from number to string
|
|
1103
640
|
* const countSchedule = Schedule.recurs(5).pipe(
|
|
1104
641
|
* Schedule.map(({ output: count }) => Effect.succeed(`Execution #${count + 1}`))
|
|
1105
642
|
* )
|
|
1106
|
-
*
|
|
1107
|
-
* // Map schedule delays to human-readable format
|
|
1108
|
-
* const readableDelays = Schedule.exponential("100 millis").pipe(
|
|
1109
|
-
* Schedule.map(({ output: delay }) => Effect.succeed(`Next retry in ${delay}`))
|
|
1110
|
-
* )
|
|
1111
|
-
*
|
|
1112
|
-
* // Transform numeric output to structured data
|
|
1113
|
-
* const structuredSchedule = Schedule.spaced("1 second").pipe(
|
|
1114
|
-
* Schedule.map(({ output: recurrence }) => Effect.succeed({
|
|
1115
|
-
* iteration: recurrence + 1,
|
|
1116
|
-
* phase: recurrence < 5 ? "warmup" as const : "steady" as const
|
|
1117
|
-
* }))
|
|
1118
|
-
* )
|
|
1119
|
-
*
|
|
1120
643
|
* const program = Effect.gen(function*() {
|
|
1121
|
-
* const
|
|
1122
|
-
*
|
|
1123
|
-
*
|
|
1124
|
-
* Schedule.upTo({ times: 8 }),
|
|
1125
|
-
* Schedule.tap(({ output: info }) =>
|
|
1126
|
-
* Console.log(
|
|
1127
|
-
* `${info.phase} phase - iteration ${info.iteration}`
|
|
1128
|
-
* )
|
|
1129
|
-
* )
|
|
1130
|
-
* )
|
|
1131
|
-
* )
|
|
1132
|
-
*
|
|
1133
|
-
* yield* Console.log(`Completed iterations`)
|
|
644
|
+
* const step = yield* Schedule.toStep(countSchedule)
|
|
645
|
+
* const [output] = yield* step(0, undefined)
|
|
646
|
+
* return output
|
|
1134
647
|
* })
|
|
1135
648
|
*
|
|
1136
|
-
* //
|
|
1137
|
-
* const effectfulMap = Schedule.fixed("2 seconds").pipe(
|
|
1138
|
-
* Schedule.map(({ output: count }) =>
|
|
1139
|
-
* Effect.gen(function*() {
|
|
1140
|
-
* yield* Console.log(`Processing count: ${count}`)
|
|
1141
|
-
* return count * 10
|
|
1142
|
-
* })
|
|
1143
|
-
* )
|
|
1144
|
-
* )
|
|
1145
|
-
*
|
|
1146
|
-
* // Use timing metadata in the mapped output
|
|
1147
|
-
* const complexSchedule = Schedule.fibonacci("100 millis").pipe(
|
|
1148
|
-
* Schedule.map(({ output: delay, attempt }) =>
|
|
1149
|
-
* Effect.succeed(`Attempt ${attempt} delay: ${delay}`)
|
|
1150
|
-
* )
|
|
1151
|
-
* )
|
|
649
|
+
* await Effect.runPromise(program) // => "Execution #1"
|
|
1152
650
|
* ```
|
|
1153
651
|
*
|
|
1154
652
|
* @category mapping
|
|
@@ -1184,28 +682,19 @@ export const map = /*#__PURE__*/dual(2, (self, f) => fromStep(effect.map(toStep(
|
|
|
1184
682
|
*
|
|
1185
683
|
* **Example** (Modifying delays from schedule metadata)
|
|
1186
684
|
*
|
|
1187
|
-
* ```ts
|
|
1188
|
-
* import {
|
|
685
|
+
* ```ts import.meta.vitest
|
|
686
|
+
* import { Duration, Effect, Schedule } from "effect"
|
|
1189
687
|
*
|
|
1190
|
-
*
|
|
1191
|
-
*
|
|
1192
|
-
* Schedule.modifyDelay(({ output, duration }) => {
|
|
1193
|
-
* // Double the delay if we're seeing high iteration counts
|
|
1194
|
-
* return Effect.succeed(output > 5 ? Duration.times(duration, 2) : duration)
|
|
1195
|
-
* })
|
|
688
|
+
* const schedule = Schedule.spaced("10 millis").pipe(
|
|
689
|
+
* Schedule.modifyDelay(({ duration }) => Effect.succeed(Duration.times(duration, 2)))
|
|
1196
690
|
* )
|
|
1197
|
-
*
|
|
1198
691
|
* const program = Effect.gen(function*() {
|
|
1199
|
-
*
|
|
1200
|
-
* yield*
|
|
1201
|
-
*
|
|
1202
|
-
* counter++
|
|
1203
|
-
* yield* Console.log(`Attempt ${counter}`)
|
|
1204
|
-
* return counter
|
|
1205
|
-
* }),
|
|
1206
|
-
* adaptiveDelay.pipe(Schedule.upTo({ times: 8 }))
|
|
1207
|
-
* )
|
|
692
|
+
* const step = yield* Schedule.toStep(schedule)
|
|
693
|
+
* const [, delay] = yield* step(0, undefined)
|
|
694
|
+
* return delay
|
|
1208
695
|
* })
|
|
696
|
+
*
|
|
697
|
+
* await Effect.runPromise(program) // => Duration.millis(20)
|
|
1209
698
|
* ```
|
|
1210
699
|
*
|
|
1211
700
|
* @category delays & timeouts
|
|
@@ -1247,25 +736,19 @@ export const jittered = self => modifyDelay(self, ({
|
|
|
1247
736
|
*
|
|
1248
737
|
* **Example** (Passing inputs through as outputs)
|
|
1249
738
|
*
|
|
1250
|
-
* ```ts
|
|
1251
|
-
* import {
|
|
739
|
+
* ```ts import.meta.vitest
|
|
740
|
+
* import { Effect, Schedule } from "effect"
|
|
1252
741
|
*
|
|
1253
|
-
* // Create a schedule that outputs the inputs instead of original outputs
|
|
1254
742
|
* const inputSchedule = Schedule.passthrough(
|
|
1255
743
|
* Schedule.exponential("100 millis").pipe(Schedule.upTo({ times: 3 }))
|
|
1256
744
|
* )
|
|
1257
|
-
*
|
|
1258
745
|
* const program = Effect.gen(function*() {
|
|
1259
|
-
*
|
|
1260
|
-
* yield*
|
|
1261
|
-
*
|
|
1262
|
-
* counter++
|
|
1263
|
-
* yield* Console.log(`Task ${counter} executed`)
|
|
1264
|
-
* return `result-${counter}`
|
|
1265
|
-
* }),
|
|
1266
|
-
* inputSchedule
|
|
1267
|
-
* )
|
|
746
|
+
* const step = yield* Schedule.toStep(inputSchedule)
|
|
747
|
+
* const [output] = yield* step(0, "input")
|
|
748
|
+
* return output
|
|
1268
749
|
* })
|
|
750
|
+
*
|
|
751
|
+
* await Effect.runPromise(program) // => "input"
|
|
1269
752
|
* ```
|
|
1270
753
|
*
|
|
1271
754
|
* @category mapping
|
|
@@ -1292,53 +775,17 @@ export const passthrough = self => fromStep(effect.map(toStep(self), step => (no
|
|
|
1292
775
|
*
|
|
1293
776
|
* **Example** (Limiting recurrences)
|
|
1294
777
|
*
|
|
1295
|
-
* ```ts
|
|
1296
|
-
* import {
|
|
1297
|
-
*
|
|
1298
|
-
* class RetryAttemptError extends Data.TaggedError("RetryAttemptError")<{ readonly message: string }> {}
|
|
1299
|
-
*
|
|
1300
|
-
* // Basic recurs - retry at most 3 times
|
|
1301
|
-
* const maxThreeAttempts = Schedule.recurs(3)
|
|
1302
|
-
*
|
|
1303
|
-
* // Retry a failing operation at most 5 times
|
|
1304
|
-
* const program = Effect.gen(function*() {
|
|
1305
|
-
* let attempt = 0
|
|
1306
|
-
*
|
|
1307
|
-
* const result = yield* Effect.retry(
|
|
1308
|
-
* Effect.gen(function*() {
|
|
1309
|
-
* attempt++
|
|
1310
|
-
* yield* Console.log(`Attempt ${attempt}`)
|
|
1311
|
-
*
|
|
1312
|
-
* if (attempt < 4) {
|
|
1313
|
-
* return yield* Effect.fail(new RetryAttemptError({ message: `Attempt ${attempt} failed` }))
|
|
1314
|
-
* }
|
|
1315
|
-
*
|
|
1316
|
-
* return `Success on attempt ${attempt}`
|
|
1317
|
-
* }),
|
|
1318
|
-
* Schedule.recurs(5) // Will retry up to 5 times
|
|
1319
|
-
* )
|
|
1320
|
-
*
|
|
1321
|
-
* yield* Console.log(`Final result: ${result}`)
|
|
1322
|
-
* })
|
|
778
|
+
* ```ts import.meta.vitest
|
|
779
|
+
* import { Effect, Schedule } from "effect"
|
|
780
|
+
* import { TestClock } from "effect/testing"
|
|
1323
781
|
*
|
|
1324
|
-
*
|
|
1325
|
-
* const
|
|
1326
|
-
* Schedule.
|
|
1327
|
-
*
|
|
1328
|
-
* ])
|
|
1329
|
-
*
|
|
1330
|
-
* // Allow ten recurrences after the initial run
|
|
1331
|
-
* const tenRecurrences = Effect.gen(function*() {
|
|
1332
|
-
* yield* Console.log("Executing task...")
|
|
1333
|
-
* return "completed"
|
|
1334
|
-
* }).pipe(
|
|
1335
|
-
* Effect.repeat(Schedule.recurs(10))
|
|
782
|
+
* const executions: Array<number> = []
|
|
783
|
+
* const program = Effect.sync(() => executions.push(executions.length + 1)).pipe(
|
|
784
|
+
* Effect.repeat(Schedule.recurs(3)),
|
|
785
|
+
* Effect.as(executions)
|
|
1336
786
|
* )
|
|
1337
787
|
*
|
|
1338
|
-
*
|
|
1339
|
-
* const countingSchedule = Schedule.recurs(3).pipe(
|
|
1340
|
-
* Schedule.tap(({ output: count }) => Console.log(`Execution #${count + 1}`))
|
|
1341
|
-
* )
|
|
788
|
+
* await Effect.runPromise(Effect.provide(program, TestClock.layer())) // => [1, 2, 3, 4]
|
|
1342
789
|
* ```
|
|
1343
790
|
*
|
|
1344
791
|
* @see {@link upTo} for limiting an existing schedule
|
|
@@ -1359,46 +806,15 @@ export const recurs = times => while_(forever, ({
|
|
|
1359
806
|
*
|
|
1360
807
|
* **Example** (Repeating with fixed spacing)
|
|
1361
808
|
*
|
|
1362
|
-
* ```ts
|
|
1363
|
-
* import {
|
|
1364
|
-
*
|
|
1365
|
-
* // Basic spaced schedule - runs every 2 seconds
|
|
1366
|
-
* const everyTwoSeconds = Schedule.spaced("2 seconds")
|
|
1367
|
-
*
|
|
1368
|
-
* // Heartbeat that runs indefinitely with fixed spacing
|
|
1369
|
-
* const heartbeat = Effect.gen(function*() {
|
|
1370
|
-
* yield* Console.log("Heartbeat")
|
|
1371
|
-
* }).pipe(
|
|
1372
|
-
* Effect.repeat(everyTwoSeconds)
|
|
1373
|
-
* )
|
|
1374
|
-
*
|
|
1375
|
-
* // Limited repeat - run only 5 times with 1-second spacing
|
|
1376
|
-
* const limitedTask = Effect.gen(function*() {
|
|
1377
|
-
* yield* Console.log("Executing scheduled task...")
|
|
1378
|
-
* yield* Effect.sleep("500 millis") // simulate work
|
|
1379
|
-
* return "Task completed"
|
|
1380
|
-
* }).pipe(
|
|
1381
|
-
* Effect.repeat(
|
|
1382
|
-
* Schedule.spaced("1 second").pipe(Schedule.upTo({ times: 5 }))
|
|
1383
|
-
* )
|
|
1384
|
-
* )
|
|
1385
|
-
*
|
|
1386
|
-
* // Simple spaced schedule with limited repetitions
|
|
1387
|
-
* const limitedSpaced = Schedule.max([
|
|
1388
|
-
* Schedule.spaced("100 millis"),
|
|
1389
|
-
* Schedule.recurs(5) // at most 5 times
|
|
1390
|
-
* ])
|
|
809
|
+
* ```ts import.meta.vitest
|
|
810
|
+
* import { Duration, Effect, Schedule } from "effect"
|
|
1391
811
|
*
|
|
1392
812
|
* const program = Effect.gen(function*() {
|
|
1393
|
-
* yield*
|
|
1394
|
-
*
|
|
1395
|
-
* yield* Effect.repeat(
|
|
1396
|
-
* Effect.succeed("work item"),
|
|
1397
|
-
* limitedSpaced
|
|
1398
|
-
* )
|
|
1399
|
-
*
|
|
1400
|
-
* yield* Console.log("Completed executions")
|
|
813
|
+
* const step = yield* Schedule.toStep(Schedule.spaced("2 seconds"))
|
|
814
|
+
* return yield* step(0, undefined)
|
|
1401
815
|
* })
|
|
816
|
+
*
|
|
817
|
+
* await Effect.runPromise(program) // => [0, Duration.seconds(2)]
|
|
1402
818
|
* ```
|
|
1403
819
|
*
|
|
1404
820
|
* @see {@link fixed} for recurrence aligned to a regular cadence
|
|
@@ -1422,23 +838,20 @@ export const spaced = duration => {
|
|
|
1422
838
|
*
|
|
1423
839
|
* **Example** (Tapping schedule metadata)
|
|
1424
840
|
*
|
|
1425
|
-
* ```ts
|
|
1426
|
-
* import {
|
|
1427
|
-
*
|
|
1428
|
-
* const monitoredSchedule = Schedule.exponential("100 millis").pipe(
|
|
1429
|
-
* Schedule.upTo({ times: 5 }),
|
|
1430
|
-
* Schedule.tap((metadata) =>
|
|
1431
|
-
* Console.log(
|
|
1432
|
-
* `Attempt ${metadata.attempt} produced ${metadata.output} ` +
|
|
1433
|
-
* `after ${metadata.elapsed}ms; next delay is ${metadata.duration}`
|
|
1434
|
-
* )
|
|
1435
|
-
* )
|
|
1436
|
-
* )
|
|
841
|
+
* ```ts import.meta.vitest
|
|
842
|
+
* import { Effect, Schedule } from "effect"
|
|
1437
843
|
*
|
|
1438
|
-
* const
|
|
1439
|
-
*
|
|
1440
|
-
*
|
|
844
|
+
* const attempts: Array<number> = []
|
|
845
|
+
* const monitoredSchedule = Schedule.recurs(2).pipe(
|
|
846
|
+
* Schedule.tap((metadata) => Effect.sync(() => attempts.push(metadata.attempt)))
|
|
1441
847
|
* )
|
|
848
|
+
* const program = Effect.gen(function*() {
|
|
849
|
+
* const step = yield* Schedule.toStep(monitoredSchedule)
|
|
850
|
+
* const [output] = yield* step(0, undefined)
|
|
851
|
+
* return { attempts, output }
|
|
852
|
+
* })
|
|
853
|
+
*
|
|
854
|
+
* await Effect.runPromise(program) // => { attempts: [1], output: 0 }
|
|
1442
855
|
* ```
|
|
1443
856
|
*
|
|
1444
857
|
* @category sequencing
|
|
@@ -1475,64 +888,18 @@ export const tap = /*#__PURE__*/dual(2, (self, f) => fromStep(effect.map(toStep(
|
|
|
1475
888
|
*
|
|
1476
889
|
* **Example** (Limiting by duration and recurrence count)
|
|
1477
890
|
*
|
|
1478
|
-
* ```ts
|
|
1479
|
-
* import {
|
|
1480
|
-
*
|
|
1481
|
-
* class RetryAttemptError extends Data.TaggedError("RetryAttemptError")<{ readonly message: string }> {}
|
|
1482
|
-
*
|
|
1483
|
-
* // Limit an infinite schedule to five recurrences
|
|
1484
|
-
* const limitedHeartbeat = Schedule.spaced("1 second").pipe(
|
|
1485
|
-
* Schedule.upTo({ times: 5 })
|
|
1486
|
-
* )
|
|
1487
|
-
*
|
|
1488
|
-
* const heartbeatProgram = Effect.gen(function*() {
|
|
1489
|
-
* yield* Effect.repeat(
|
|
1490
|
-
* Effect.gen(function*() {
|
|
1491
|
-
* yield* Console.log("Heartbeat")
|
|
1492
|
-
* return "pulse"
|
|
1493
|
-
* }),
|
|
1494
|
-
* limitedHeartbeat
|
|
1495
|
-
* )
|
|
1496
|
-
*
|
|
1497
|
-
* yield* Console.log("Heartbeat sequence completed")
|
|
1498
|
-
* })
|
|
1499
|
-
*
|
|
1500
|
-
* // Limit retry attempts by both count and elapsed time
|
|
1501
|
-
* const limitedRetry = Schedule.exponential("100 millis").pipe(
|
|
1502
|
-
* Schedule.upTo({
|
|
1503
|
-
* duration: "5 seconds",
|
|
1504
|
-
* times: 3
|
|
1505
|
-
* })
|
|
1506
|
-
* )
|
|
1507
|
-
*
|
|
1508
|
-
* const retryProgram = Effect.gen(function*() {
|
|
1509
|
-
* let attempt = 0
|
|
1510
|
-
*
|
|
1511
|
-
* const result = yield* Effect.retry(
|
|
1512
|
-
* Effect.gen(function*() {
|
|
1513
|
-
* attempt++
|
|
1514
|
-
* yield* Console.log(`Attempt ${attempt}`)
|
|
1515
|
-
*
|
|
1516
|
-
* if (attempt < 5) { // Will fail more than 3 times
|
|
1517
|
-
* return yield* Effect.fail(new RetryAttemptError({ message: `Attempt ${attempt} failed` }))
|
|
1518
|
-
* }
|
|
1519
|
-
*
|
|
1520
|
-
* return `Success on attempt ${attempt}`
|
|
1521
|
-
* }),
|
|
1522
|
-
* limitedRetry
|
|
1523
|
-
* )
|
|
891
|
+
* ```ts import.meta.vitest
|
|
892
|
+
* import { Effect, Schedule } from "effect"
|
|
893
|
+
* import { TestClock } from "effect/testing"
|
|
1524
894
|
*
|
|
1525
|
-
*
|
|
1526
|
-
*
|
|
1527
|
-
*
|
|
1528
|
-
*
|
|
1529
|
-
* )
|
|
895
|
+
* const executions: Array<number> = []
|
|
896
|
+
* const schedule = Schedule.forever.pipe(Schedule.upTo({ times: 2 }))
|
|
897
|
+
* const program = Effect.sync(() => executions.push(executions.length + 1)).pipe(
|
|
898
|
+
* Effect.repeat(schedule),
|
|
899
|
+
* Effect.as(executions)
|
|
1530
900
|
* )
|
|
1531
901
|
*
|
|
1532
|
-
*
|
|
1533
|
-
* const unchanged = Schedule.fixed("500 millis").pipe(
|
|
1534
|
-
* Schedule.upTo({})
|
|
1535
|
-
* )
|
|
902
|
+
* await Effect.runPromise(Effect.provide(program, TestClock.layer())) // => [1, 2, 3]
|
|
1536
903
|
* ```
|
|
1537
904
|
*
|
|
1538
905
|
* @category filtering
|
|
@@ -1595,21 +962,15 @@ while_ as while };
|
|
|
1595
962
|
*
|
|
1596
963
|
* **Example** (Repeating on aligned windows)
|
|
1597
964
|
*
|
|
1598
|
-
* ```ts
|
|
1599
|
-
* import {
|
|
1600
|
-
*
|
|
1601
|
-
* // Execute tasks at regular intervals aligned to window boundaries
|
|
1602
|
-
* const windowSchedule = Schedule.windowed("5 seconds")
|
|
965
|
+
* ```ts import.meta.vitest
|
|
966
|
+
* import { Duration, Effect, Schedule } from "effect"
|
|
1603
967
|
*
|
|
1604
968
|
* const program = Effect.gen(function*() {
|
|
1605
|
-
* yield*
|
|
1606
|
-
*
|
|
1607
|
-
* yield* Console.log("Window task executed")
|
|
1608
|
-
* return "window-task"
|
|
1609
|
-
* }),
|
|
1610
|
-
* windowSchedule.pipe(Schedule.upTo({ times: 4 }))
|
|
1611
|
-
* )
|
|
969
|
+
* const step = yield* Schedule.toStep(Schedule.windowed("5 seconds"))
|
|
970
|
+
* return yield* step(0, undefined)
|
|
1612
971
|
* })
|
|
972
|
+
*
|
|
973
|
+
* await Effect.runPromise(program) // => [0, Duration.seconds(5)]
|
|
1613
974
|
* ```
|
|
1614
975
|
*
|
|
1615
976
|
* @category constructors
|
|
@@ -1629,21 +990,18 @@ export const windowed = interval => {
|
|
|
1629
990
|
*
|
|
1630
991
|
* **Example** (Repeating forever)
|
|
1631
992
|
*
|
|
1632
|
-
* ```ts
|
|
1633
|
-
* import {
|
|
993
|
+
* ```ts import.meta.vitest
|
|
994
|
+
* import { Effect, Schedule } from "effect"
|
|
995
|
+
* import { TestClock } from "effect/testing"
|
|
1634
996
|
*
|
|
1635
|
-
*
|
|
1636
|
-
* const
|
|
997
|
+
* const executions: Array<number> = []
|
|
998
|
+
* const schedule = Schedule.forever.pipe(Schedule.upTo({ times: 2 }))
|
|
999
|
+
* const program = Effect.sync(() => executions.push(executions.length + 1)).pipe(
|
|
1000
|
+
* Effect.repeat(schedule),
|
|
1001
|
+
* Effect.as(executions)
|
|
1002
|
+
* )
|
|
1637
1003
|
*
|
|
1638
|
-
*
|
|
1639
|
-
* yield* Effect.repeat(
|
|
1640
|
-
* Effect.gen(function*() {
|
|
1641
|
-
* yield* Console.log("Running forever...")
|
|
1642
|
-
* return "continuous-task"
|
|
1643
|
-
* }),
|
|
1644
|
-
* infiniteSchedule.pipe(Schedule.upTo({ times: 5 })) // Limit for demo
|
|
1645
|
-
* )
|
|
1646
|
-
* })
|
|
1004
|
+
* await Effect.runPromise(Effect.provide(program, TestClock.layer())) // => [1, 2, 3]
|
|
1647
1005
|
* ```
|
|
1648
1006
|
*
|
|
1649
1007
|
* @category constructors
|
|
@@ -1686,12 +1044,13 @@ identity_ as identity };
|
|
|
1686
1044
|
*
|
|
1687
1045
|
* **Example** (Setting a schedule input type)
|
|
1688
1046
|
*
|
|
1689
|
-
* ```ts
|
|
1047
|
+
* ```ts import.meta.vitest
|
|
1690
1048
|
* import { Schedule } from "effect"
|
|
1691
1049
|
*
|
|
1692
1050
|
* const schedule = Schedule.recurs(3).pipe(
|
|
1693
1051
|
* Schedule.setInputType<string>()
|
|
1694
1052
|
* )
|
|
1053
|
+
* Schedule.isSchedule(schedule) // => true
|
|
1695
1054
|
* ```
|
|
1696
1055
|
*
|
|
1697
1056
|
* @category utility types
|