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/PubSub.js
CHANGED
|
@@ -30,7 +30,7 @@ const SubscriptionTypeId = "~effect/PubSub/Subscription";
|
|
|
30
30
|
*
|
|
31
31
|
* **Example** (Creating a PubSub with a custom strategy)
|
|
32
32
|
*
|
|
33
|
-
* ```ts
|
|
33
|
+
* ```ts import.meta.vitest
|
|
34
34
|
* import { Effect, PubSub } from "effect"
|
|
35
35
|
*
|
|
36
36
|
* const program = Effect.gen(function*() {
|
|
@@ -41,8 +41,13 @@ const SubscriptionTypeId = "~effect/PubSub/Subscription";
|
|
|
41
41
|
* })
|
|
42
42
|
*
|
|
43
43
|
* // Use the created PubSub
|
|
44
|
-
* yield* PubSub.publish(pubsub, "Hello")
|
|
44
|
+
* const published = yield* PubSub.publish(pubsub, "Hello")
|
|
45
|
+
* yield* PubSub.shutdown(pubsub)
|
|
46
|
+
* return published
|
|
45
47
|
* })
|
|
48
|
+
*
|
|
49
|
+
* const actual = await Effect.runPromise(program)
|
|
50
|
+
* actual // => true
|
|
46
51
|
* ```
|
|
47
52
|
*
|
|
48
53
|
* @category constructors
|
|
@@ -62,7 +67,7 @@ export const make = options => Effect.sync(() => makePubSubUnsafe(options.atomic
|
|
|
62
67
|
*
|
|
63
68
|
* **Example** (Creating a bounded PubSub)
|
|
64
69
|
*
|
|
65
|
-
* ```ts
|
|
70
|
+
* ```ts import.meta.vitest
|
|
66
71
|
* import { Effect, PubSub } from "effect"
|
|
67
72
|
*
|
|
68
73
|
* const program = Effect.gen(function*() {
|
|
@@ -74,7 +79,15 @@ export const make = options => Effect.sync(() => makePubSubUnsafe(options.atomic
|
|
|
74
79
|
* capacity: 100,
|
|
75
80
|
* replay: 10 // Last 10 messages replayed to new subscribers
|
|
76
81
|
* })
|
|
82
|
+
*
|
|
83
|
+
* const capacities = [PubSub.capacity(pubsub), PubSub.capacity(pubsubWithReplay)]
|
|
84
|
+
* yield* PubSub.shutdown(pubsub)
|
|
85
|
+
* yield* PubSub.shutdown(pubsubWithReplay)
|
|
86
|
+
* return capacities
|
|
77
87
|
* })
|
|
88
|
+
*
|
|
89
|
+
* const actual = await Effect.runPromise(program)
|
|
90
|
+
* actual // => [100, 100]
|
|
78
91
|
* ```
|
|
79
92
|
*
|
|
80
93
|
* @category constructors
|
|
@@ -94,33 +107,27 @@ export const bounded = capacity => make({
|
|
|
94
107
|
*
|
|
95
108
|
* **Example** (Dropping messages when full)
|
|
96
109
|
*
|
|
97
|
-
* ```ts
|
|
110
|
+
* ```ts import.meta.vitest
|
|
98
111
|
* import { Effect, PubSub } from "effect"
|
|
99
112
|
*
|
|
100
|
-
* const program = Effect.gen(function*() {
|
|
113
|
+
* const program = Effect.scoped(Effect.gen(function*() {
|
|
101
114
|
* // Create dropping PubSub that drops new messages when full
|
|
102
115
|
* const pubsub = yield* PubSub.dropping<string>(3)
|
|
103
116
|
*
|
|
104
|
-
*
|
|
105
|
-
* const pubsubWithReplay = yield* PubSub.dropping<string>({
|
|
106
|
-
* capacity: 3,
|
|
107
|
-
* replay: 5
|
|
108
|
-
* })
|
|
117
|
+
* const subscription = yield* PubSub.subscribe(pubsub)
|
|
109
118
|
*
|
|
110
|
-
*
|
|
111
|
-
*
|
|
119
|
+
* // Fill the PubSub and see dropping behavior
|
|
120
|
+
* yield* PubSub.publish(pubsub, "msg1") // succeeds
|
|
121
|
+
* yield* PubSub.publish(pubsub, "msg2") // succeeds
|
|
122
|
+
* yield* PubSub.publish(pubsub, "msg3") // succeeds
|
|
123
|
+
* const dropped = yield* PubSub.publish(pubsub, "msg4") // returns false (dropped)
|
|
112
124
|
*
|
|
113
|
-
*
|
|
114
|
-
*
|
|
115
|
-
*
|
|
116
|
-
* yield* PubSub.publish(pubsub, "msg3") // succeeds
|
|
117
|
-
* const dropped = yield* PubSub.publish(pubsub, "msg4") // returns false (dropped)
|
|
118
|
-
* console.log("Message dropped:", !dropped) // true
|
|
125
|
+
* const messages = yield* PubSub.takeAll(subscription)
|
|
126
|
+
* return { dropped: !dropped, messages }
|
|
127
|
+
* }))
|
|
119
128
|
*
|
|
120
|
-
*
|
|
121
|
-
*
|
|
122
|
-
* }))
|
|
123
|
-
* })
|
|
129
|
+
* const actual = await Effect.runPromise(program)
|
|
130
|
+
* actual // => { dropped: true, messages: ["msg1", "msg2", "msg3"] }
|
|
124
131
|
* ```
|
|
125
132
|
*
|
|
126
133
|
* @category constructors
|
|
@@ -140,32 +147,26 @@ export const dropping = capacity => make({
|
|
|
140
147
|
*
|
|
141
148
|
* **Example** (Sliding old messages when full)
|
|
142
149
|
*
|
|
143
|
-
* ```ts
|
|
150
|
+
* ```ts import.meta.vitest
|
|
144
151
|
* import { Effect, PubSub } from "effect"
|
|
145
152
|
*
|
|
146
|
-
* const program = Effect.gen(function*() {
|
|
153
|
+
* const program = Effect.scoped(Effect.gen(function*() {
|
|
147
154
|
* // Create sliding PubSub that evicts old messages when full
|
|
148
155
|
* const pubsub = yield* PubSub.sliding<string>(3)
|
|
149
156
|
*
|
|
150
|
-
*
|
|
151
|
-
* const pubsubWithReplay = yield* PubSub.sliding<string>({
|
|
152
|
-
* capacity: 3,
|
|
153
|
-
* replay: 2
|
|
154
|
-
* })
|
|
157
|
+
* const subscription = yield* PubSub.subscribe(pubsub)
|
|
155
158
|
*
|
|
156
|
-
*
|
|
157
|
-
*
|
|
159
|
+
* // Fill and overflow the PubSub
|
|
160
|
+
* yield* PubSub.publish(pubsub, "msg1")
|
|
161
|
+
* yield* PubSub.publish(pubsub, "msg2")
|
|
162
|
+
* yield* PubSub.publish(pubsub, "msg3")
|
|
163
|
+
* yield* PubSub.publish(pubsub, "msg4") // "msg1" is evicted
|
|
158
164
|
*
|
|
159
|
-
*
|
|
160
|
-
*
|
|
161
|
-
* yield* PubSub.publish(pubsub, "msg2")
|
|
162
|
-
* yield* PubSub.publish(pubsub, "msg3")
|
|
163
|
-
* yield* PubSub.publish(pubsub, "msg4") // "msg1" is evicted
|
|
165
|
+
* return yield* PubSub.takeAll(subscription)
|
|
166
|
+
* }))
|
|
164
167
|
*
|
|
165
|
-
*
|
|
166
|
-
*
|
|
167
|
-
* }))
|
|
168
|
-
* })
|
|
168
|
+
* const actual = await Effect.runPromise(program)
|
|
169
|
+
* actual // => ["msg2", "msg3", "msg4"]
|
|
169
170
|
* ```
|
|
170
171
|
*
|
|
171
172
|
* @category constructors
|
|
@@ -180,30 +181,25 @@ export const sliding = capacity => make({
|
|
|
180
181
|
*
|
|
181
182
|
* **Example** (Creating an unbounded PubSub)
|
|
182
183
|
*
|
|
183
|
-
* ```ts
|
|
184
|
+
* ```ts import.meta.vitest
|
|
184
185
|
* import { Effect, PubSub } from "effect"
|
|
185
186
|
*
|
|
186
|
-
* const program = Effect.gen(function*() {
|
|
187
|
+
* const program = Effect.scoped(Effect.gen(function*() {
|
|
187
188
|
* // Create unbounded PubSub
|
|
188
189
|
* const pubsub = yield* PubSub.unbounded<string>()
|
|
189
190
|
*
|
|
190
|
-
*
|
|
191
|
-
* const pubsubWithReplay = yield* PubSub.unbounded<string>({
|
|
192
|
-
* replay: 10
|
|
193
|
-
* })
|
|
191
|
+
* const subscription = yield* PubSub.subscribe(pubsub)
|
|
194
192
|
*
|
|
195
|
-
*
|
|
196
|
-
*
|
|
193
|
+
* // Can publish unlimited messages
|
|
194
|
+
* for (let i = 0; i < 3; i++) {
|
|
195
|
+
* yield* PubSub.publish(pubsub, `message-${i}`)
|
|
196
|
+
* }
|
|
197
197
|
*
|
|
198
|
-
*
|
|
199
|
-
*
|
|
200
|
-
* yield* PubSub.publish(pubsub, `message-${i}`)
|
|
201
|
-
* }
|
|
198
|
+
* return yield* PubSub.takeAll(subscription)
|
|
199
|
+
* }))
|
|
202
200
|
*
|
|
203
|
-
*
|
|
204
|
-
*
|
|
205
|
-
* }))
|
|
206
|
-
* })
|
|
201
|
+
* const actual = await Effect.runPromise(program)
|
|
202
|
+
* actual // => ["message-0", "message-1", "message-2"]
|
|
207
203
|
* ```
|
|
208
204
|
*
|
|
209
205
|
* @category constructors
|
|
@@ -281,18 +277,17 @@ export const makeAtomicUnbounded = options => new UnboundedPubSub(options?.repla
|
|
|
281
277
|
*
|
|
282
278
|
* **Example** (Getting PubSub capacity)
|
|
283
279
|
*
|
|
284
|
-
* ```ts
|
|
280
|
+
* ```ts import.meta.vitest
|
|
285
281
|
* import { Effect, PubSub } from "effect"
|
|
286
282
|
*
|
|
287
283
|
* const program = Effect.gen(function*() {
|
|
288
284
|
* const pubsub = yield* PubSub.bounded<string>(100)
|
|
289
|
-
* const cap = PubSub.capacity(pubsub)
|
|
290
|
-
* console.log("PubSub capacity:", cap) // 100
|
|
291
|
-
*
|
|
292
285
|
* const unboundedPubsub = yield* PubSub.unbounded<string>()
|
|
293
|
-
*
|
|
294
|
-
* console.log("Unbounded capacity:", unboundedCap) // Number.MAX_SAFE_INTEGER
|
|
286
|
+
* return [PubSub.capacity(pubsub), PubSub.capacity(unboundedPubsub)]
|
|
295
287
|
* })
|
|
288
|
+
*
|
|
289
|
+
* const actual = await Effect.runPromise(program)
|
|
290
|
+
* actual // => [100, Number.MAX_SAFE_INTEGER]
|
|
296
291
|
* ```
|
|
297
292
|
*
|
|
298
293
|
* @category getters
|
|
@@ -310,29 +305,28 @@ export const capacity = self => self.pubsub.capacity;
|
|
|
310
305
|
*
|
|
311
306
|
* **Example** (Getting PubSub size)
|
|
312
307
|
*
|
|
313
|
-
* ```ts
|
|
308
|
+
* ```ts import.meta.vitest
|
|
314
309
|
* import { Effect, PubSub } from "effect"
|
|
315
310
|
*
|
|
316
|
-
* const program = Effect.gen(function*() {
|
|
311
|
+
* const program = Effect.scoped(Effect.gen(function*() {
|
|
317
312
|
* const pubsub = yield* PubSub.bounded<string>(10)
|
|
318
313
|
*
|
|
319
314
|
* // Initially empty
|
|
320
315
|
* const initialSize = yield* PubSub.size(pubsub)
|
|
321
|
-
* console.log("Initial size:", initialSize) // 0
|
|
322
316
|
*
|
|
323
|
-
* yield*
|
|
324
|
-
* const subscription = yield* PubSub.subscribe(pubsub)
|
|
317
|
+
* const subscription = yield* PubSub.subscribe(pubsub)
|
|
325
318
|
*
|
|
326
|
-
*
|
|
327
|
-
*
|
|
328
|
-
*
|
|
319
|
+
* // Publish some messages for the active subscription
|
|
320
|
+
* yield* PubSub.publish(pubsub, "msg1")
|
|
321
|
+
* yield* PubSub.publish(pubsub, "msg2")
|
|
329
322
|
*
|
|
330
|
-
*
|
|
331
|
-
*
|
|
323
|
+
* const afterPublish = yield* PubSub.size(pubsub)
|
|
324
|
+
* const messages = yield* PubSub.takeAll(subscription)
|
|
325
|
+
* return { initialSize, afterPublish, messages }
|
|
326
|
+
* }))
|
|
332
327
|
*
|
|
333
|
-
*
|
|
334
|
-
*
|
|
335
|
-
* })
|
|
328
|
+
* const actual = await Effect.runPromise(program)
|
|
329
|
+
* actual // => { initialSize: 0, afterPublish: 2, messages: ["msg1", "msg2"] }
|
|
336
330
|
* ```
|
|
337
331
|
*
|
|
338
332
|
* @category getters
|
|
@@ -355,14 +349,16 @@ export const size = self => Effect.sync(() => sizeUnsafe(self));
|
|
|
355
349
|
*
|
|
356
350
|
* **Example** (Reading size synchronously)
|
|
357
351
|
*
|
|
358
|
-
* ```ts
|
|
359
|
-
* import { PubSub } from "effect"
|
|
352
|
+
* ```ts import.meta.vitest
|
|
353
|
+
* import { Effect, PubSub } from "effect"
|
|
360
354
|
*
|
|
361
|
-
*
|
|
362
|
-
*
|
|
355
|
+
* const program = Effect.gen(function*() {
|
|
356
|
+
* const pubsub = yield* PubSub.bounded<string>(2)
|
|
357
|
+
* return PubSub.sizeUnsafe(pubsub)
|
|
358
|
+
* })
|
|
363
359
|
*
|
|
364
|
-
* const
|
|
365
|
-
*
|
|
360
|
+
* const actual = await Effect.runPromise(program)
|
|
361
|
+
* actual // => 0
|
|
366
362
|
* ```
|
|
367
363
|
*
|
|
368
364
|
* @category getters
|
|
@@ -383,29 +379,28 @@ export const sizeUnsafe = self => {
|
|
|
383
379
|
*
|
|
384
380
|
* **Example** (Checking whether a PubSub is full)
|
|
385
381
|
*
|
|
386
|
-
* ```ts
|
|
382
|
+
* ```ts import.meta.vitest
|
|
387
383
|
* import { Effect, PubSub } from "effect"
|
|
388
384
|
*
|
|
389
|
-
* const program = Effect.gen(function*() {
|
|
385
|
+
* const program = Effect.scoped(Effect.gen(function*() {
|
|
390
386
|
* const pubsub = yield* PubSub.bounded<string>(2)
|
|
391
387
|
*
|
|
392
388
|
* // Initially not full
|
|
393
389
|
* const initiallyFull = yield* PubSub.isFull(pubsub)
|
|
394
|
-
* console.log("Initially full:", initiallyFull) // false
|
|
395
390
|
*
|
|
396
|
-
* yield*
|
|
397
|
-
* const subscription = yield* PubSub.subscribe(pubsub)
|
|
391
|
+
* const subscription = yield* PubSub.subscribe(pubsub)
|
|
398
392
|
*
|
|
399
|
-
*
|
|
400
|
-
*
|
|
401
|
-
*
|
|
393
|
+
* // Fill the PubSub for the active subscription
|
|
394
|
+
* yield* PubSub.publish(pubsub, "msg1")
|
|
395
|
+
* yield* PubSub.publish(pubsub, "msg2")
|
|
402
396
|
*
|
|
403
|
-
*
|
|
404
|
-
*
|
|
397
|
+
* const nowFull = yield* PubSub.isFull(pubsub)
|
|
398
|
+
* const messages = yield* PubSub.takeAll(subscription)
|
|
399
|
+
* return { initiallyFull, nowFull, messages }
|
|
400
|
+
* }))
|
|
405
401
|
*
|
|
406
|
-
*
|
|
407
|
-
*
|
|
408
|
-
* })
|
|
402
|
+
* const actual = await Effect.runPromise(program)
|
|
403
|
+
* actual // => { initiallyFull: false, nowFull: true, messages: ["msg1", "msg2"] }
|
|
409
404
|
* ```
|
|
410
405
|
*
|
|
411
406
|
* @category predicates
|
|
@@ -417,28 +412,27 @@ export const isFull = self => Effect.map(size(self), size => size === self.pubsu
|
|
|
417
412
|
*
|
|
418
413
|
* **Example** (Checking whether a PubSub is empty)
|
|
419
414
|
*
|
|
420
|
-
* ```ts
|
|
415
|
+
* ```ts import.meta.vitest
|
|
421
416
|
* import { Effect, PubSub } from "effect"
|
|
422
417
|
*
|
|
423
|
-
* const program = Effect.gen(function*() {
|
|
418
|
+
* const program = Effect.scoped(Effect.gen(function*() {
|
|
424
419
|
* const pubsub = yield* PubSub.bounded<string>(10)
|
|
425
420
|
*
|
|
426
421
|
* // Initially empty
|
|
427
422
|
* const initiallyEmpty = yield* PubSub.isEmpty(pubsub)
|
|
428
|
-
* console.log("Initially empty:", initiallyEmpty) // true
|
|
429
423
|
*
|
|
430
|
-
* yield*
|
|
431
|
-
* const subscription = yield* PubSub.subscribe(pubsub)
|
|
424
|
+
* const subscription = yield* PubSub.subscribe(pubsub)
|
|
432
425
|
*
|
|
433
|
-
*
|
|
434
|
-
*
|
|
426
|
+
* // Publish a message for the active subscription
|
|
427
|
+
* yield* PubSub.publish(pubsub, "Hello")
|
|
435
428
|
*
|
|
436
|
-
*
|
|
437
|
-
*
|
|
429
|
+
* const nowEmpty = yield* PubSub.isEmpty(pubsub)
|
|
430
|
+
* const message = yield* PubSub.take(subscription)
|
|
431
|
+
* return { initiallyEmpty, nowEmpty, message }
|
|
432
|
+
* }))
|
|
438
433
|
*
|
|
439
|
-
*
|
|
440
|
-
*
|
|
441
|
-
* })
|
|
434
|
+
* const actual = await Effect.runPromise(program)
|
|
435
|
+
* actual // => { initiallyEmpty: true, nowEmpty: false, message: "Hello" }
|
|
442
436
|
* ```
|
|
443
437
|
*
|
|
444
438
|
* @category predicates
|
|
@@ -457,7 +451,7 @@ export const isEmpty = self => Effect.map(size(self), size => size === 0);
|
|
|
457
451
|
*
|
|
458
452
|
* **Example** (Shutting down a PubSub)
|
|
459
453
|
*
|
|
460
|
-
* ```ts
|
|
454
|
+
* ```ts import.meta.vitest
|
|
461
455
|
* import { Effect, PubSub } from "effect"
|
|
462
456
|
*
|
|
463
457
|
* const program = Effect.gen(function*() {
|
|
@@ -467,12 +461,14 @@ export const isEmpty = self => Effect.map(size(self), size => size === 0);
|
|
|
467
461
|
* yield* PubSub.shutdown(pubsub)
|
|
468
462
|
*
|
|
469
463
|
* const isShutdown = yield* PubSub.isShutdown(pubsub)
|
|
470
|
-
* console.log("Is shutdown:", isShutdown) // true
|
|
471
464
|
*
|
|
472
465
|
* // Publishing after shutdown returns false
|
|
473
466
|
* const published = yield* PubSub.publish(pubsub, "msg1")
|
|
474
|
-
*
|
|
467
|
+
* return { isShutdown, published }
|
|
475
468
|
* })
|
|
469
|
+
*
|
|
470
|
+
* const actual = await Effect.runPromise(program)
|
|
471
|
+
* actual // => { isShutdown: true, published: false }
|
|
476
472
|
* ```
|
|
477
473
|
*
|
|
478
474
|
* @category lifecycle
|
|
@@ -488,7 +484,7 @@ export const shutdown = self => Effect.uninterruptible(Effect.withFiber(fiber =>
|
|
|
488
484
|
*
|
|
489
485
|
* **Example** (Checking whether a PubSub is shut down)
|
|
490
486
|
*
|
|
491
|
-
* ```ts
|
|
487
|
+
* ```ts import.meta.vitest
|
|
492
488
|
* import { Effect, PubSub } from "effect"
|
|
493
489
|
*
|
|
494
490
|
* const program = Effect.gen(function*() {
|
|
@@ -496,14 +492,16 @@ export const shutdown = self => Effect.uninterruptible(Effect.withFiber(fiber =>
|
|
|
496
492
|
*
|
|
497
493
|
* // Initially not shutdown
|
|
498
494
|
* const initiallyShutdown = yield* PubSub.isShutdown(pubsub)
|
|
499
|
-
* console.log("Initially shutdown:", initiallyShutdown) // false
|
|
500
495
|
*
|
|
501
496
|
* // Shutdown the PubSub
|
|
502
497
|
* yield* PubSub.shutdown(pubsub)
|
|
503
498
|
*
|
|
504
499
|
* const nowShutdown = yield* PubSub.isShutdown(pubsub)
|
|
505
|
-
*
|
|
500
|
+
* return [initiallyShutdown, nowShutdown]
|
|
506
501
|
* })
|
|
502
|
+
*
|
|
503
|
+
* const actual = await Effect.runPromise(program)
|
|
504
|
+
* actual // => [false, true]
|
|
507
505
|
* ```
|
|
508
506
|
*
|
|
509
507
|
* @category predicates
|
|
@@ -521,18 +519,18 @@ export const isShutdown = self => Effect.sync(() => isShutdownUnsafe(self));
|
|
|
521
519
|
*
|
|
522
520
|
* **Example** (Checking shutdown synchronously)
|
|
523
521
|
*
|
|
524
|
-
* ```ts
|
|
525
|
-
* import { PubSub } from "effect"
|
|
522
|
+
* ```ts import.meta.vitest
|
|
523
|
+
* import { Effect, PubSub } from "effect"
|
|
526
524
|
*
|
|
527
|
-
*
|
|
525
|
+
* const program = Effect.gen(function*() {
|
|
526
|
+
* const pubsub = yield* PubSub.bounded<string>(2)
|
|
527
|
+
* const initiallyShutdown = PubSub.isShutdownUnsafe(pubsub)
|
|
528
|
+
* yield* PubSub.shutdown(pubsub)
|
|
529
|
+
* return [initiallyShutdown, PubSub.isShutdownUnsafe(pubsub)]
|
|
530
|
+
* })
|
|
528
531
|
*
|
|
529
|
-
*
|
|
530
|
-
*
|
|
531
|
-
* if (isDown) {
|
|
532
|
-
* console.log("PubSub is shutdown, cannot publish")
|
|
533
|
-
* } else {
|
|
534
|
-
* console.log("PubSub is active")
|
|
535
|
-
* }
|
|
532
|
+
* const actual = await Effect.runPromise(program)
|
|
533
|
+
* actual // => [false, true]
|
|
536
534
|
* ```
|
|
537
535
|
*
|
|
538
536
|
* @category predicates
|
|
@@ -546,7 +544,7 @@ export const isShutdownUnsafe = self => self.shutdownFlag.current;
|
|
|
546
544
|
*
|
|
547
545
|
* **Example** (Waiting for shutdown)
|
|
548
546
|
*
|
|
549
|
-
* ```ts
|
|
547
|
+
* ```ts import.meta.vitest
|
|
550
548
|
* import { Effect, Fiber, PubSub } from "effect"
|
|
551
549
|
*
|
|
552
550
|
* const program = Effect.gen(function*() {
|
|
@@ -556,19 +554,19 @@ export const isShutdownUnsafe = self => self.shutdownFlag.current;
|
|
|
556
554
|
* const waiterFiber = yield* Effect.forkChild(
|
|
557
555
|
* Effect.gen(function*() {
|
|
558
556
|
* yield* PubSub.awaitShutdown(pubsub)
|
|
559
|
-
*
|
|
557
|
+
* return "PubSub has been shutdown!"
|
|
560
558
|
* })
|
|
561
559
|
* )
|
|
562
560
|
*
|
|
563
|
-
* // Do some work...
|
|
564
|
-
* yield* Effect.sleep("100 millis")
|
|
565
|
-
*
|
|
566
561
|
* // Shutdown the PubSub
|
|
567
562
|
* yield* PubSub.shutdown(pubsub)
|
|
568
563
|
*
|
|
569
564
|
* // The waiter will now complete
|
|
570
|
-
* yield* Fiber.join(waiterFiber)
|
|
565
|
+
* return yield* Fiber.join(waiterFiber)
|
|
571
566
|
* })
|
|
567
|
+
*
|
|
568
|
+
* const actual = await Effect.runPromise(program)
|
|
569
|
+
* actual // => "PubSub has been shutdown!"
|
|
572
570
|
* ```
|
|
573
571
|
*
|
|
574
572
|
* @category lifecycle
|
|
@@ -592,24 +590,24 @@ export const awaitShutdown = self => self.shutdownHook.await;
|
|
|
592
590
|
*
|
|
593
591
|
* **Example** (Publishing a message)
|
|
594
592
|
*
|
|
595
|
-
* ```ts
|
|
593
|
+
* ```ts import.meta.vitest
|
|
596
594
|
* import { Effect, PubSub } from "effect"
|
|
597
595
|
*
|
|
598
|
-
* const program = Effect.gen(function*() {
|
|
596
|
+
* const program = Effect.scoped(Effect.gen(function*() {
|
|
599
597
|
* const pubsub = yield* PubSub.bounded<string>(10)
|
|
600
598
|
*
|
|
601
599
|
* // Publish a message
|
|
602
600
|
* const published = yield* PubSub.publish(pubsub, "Hello World")
|
|
603
|
-
* console.log("Message published:", published) // true
|
|
604
601
|
*
|
|
605
|
-
* yield*
|
|
606
|
-
* const subscription = yield* PubSub.subscribe(pubsub)
|
|
602
|
+
* const subscription = yield* PubSub.subscribe(pubsub)
|
|
607
603
|
*
|
|
608
|
-
*
|
|
609
|
-
*
|
|
610
|
-
*
|
|
611
|
-
*
|
|
612
|
-
*
|
|
604
|
+
* yield* PubSub.publish(pubsub, "Hello")
|
|
605
|
+
* const message = yield* PubSub.take(subscription)
|
|
606
|
+
* return { published, message }
|
|
607
|
+
* }))
|
|
608
|
+
*
|
|
609
|
+
* const actual = await Effect.runPromise(program)
|
|
610
|
+
* actual // => { published: true, message: "Hello" }
|
|
613
611
|
* ```
|
|
614
612
|
*
|
|
615
613
|
* @see {@link publishUnsafe} for a synchronous non-blocking attempt that does not run effectful surplus handling
|
|
@@ -644,24 +642,16 @@ export const publish = /*#__PURE__*/dual(2, (self, value) => Effect.suspend(() =
|
|
|
644
642
|
*
|
|
645
643
|
* **Example** (Publishing without suspending)
|
|
646
644
|
*
|
|
647
|
-
* ```ts
|
|
648
|
-
* import { PubSub } from "effect"
|
|
649
|
-
*
|
|
650
|
-
* declare const pubsub: PubSub.PubSub<string>
|
|
645
|
+
* ```ts import.meta.vitest
|
|
646
|
+
* import { Effect, PubSub } from "effect"
|
|
651
647
|
*
|
|
652
|
-
*
|
|
653
|
-
*
|
|
654
|
-
*
|
|
655
|
-
*
|
|
656
|
-
* } else {
|
|
657
|
-
* console.log("Message dropped (PubSub full or shutdown)")
|
|
658
|
-
* }
|
|
648
|
+
* const program = Effect.gen(function*() {
|
|
649
|
+
* const pubsub = yield* PubSub.bounded<string>(2)
|
|
650
|
+
* return PubSub.publishUnsafe(pubsub, "Hello")
|
|
651
|
+
* })
|
|
659
652
|
*
|
|
660
|
-
*
|
|
661
|
-
*
|
|
662
|
-
* const publishedCount =
|
|
663
|
-
* messages.filter((msg) => PubSub.publishUnsafe(pubsub, msg)).length
|
|
664
|
-
* console.log(`Published ${publishedCount} out of ${messages.length} messages`)
|
|
653
|
+
* const actual = await Effect.runPromise(program)
|
|
654
|
+
* actual // => true
|
|
665
655
|
* ```
|
|
666
656
|
*
|
|
667
657
|
* @see {@link publish} for effectful publishing that honors the configured surplus strategy
|
|
@@ -683,37 +673,30 @@ export const publishUnsafe = /*#__PURE__*/dual(2, (self, value) => {
|
|
|
683
673
|
*
|
|
684
674
|
* **Example** (Publishing multiple messages)
|
|
685
675
|
*
|
|
686
|
-
* ```ts
|
|
676
|
+
* ```ts import.meta.vitest
|
|
687
677
|
* import { Effect, Fiber, PubSub } from "effect"
|
|
688
678
|
*
|
|
689
|
-
* const program = Effect.gen(function*() {
|
|
679
|
+
* const program = Effect.scoped(Effect.gen(function*() {
|
|
690
680
|
* const pubsub = yield* PubSub.bounded<string>(10)
|
|
691
681
|
*
|
|
692
682
|
* // Publish multiple messages at once
|
|
693
|
-
* const
|
|
694
|
-
* const allPublished = yield* PubSub.publishAll(pubsub, messages)
|
|
695
|
-
* console.log("All messages published:", allPublished) // true
|
|
683
|
+
* const allPublished = yield* PubSub.publishAll(pubsub, ["Hello", "World", "from", "Effect"])
|
|
696
684
|
*
|
|
697
685
|
* // With a smaller capacity and an active subscription
|
|
698
686
|
* const smallPubsub = yield* PubSub.bounded<string>(2)
|
|
699
|
-
* const
|
|
700
|
-
*
|
|
701
|
-
* yield* Effect.scoped(Effect.gen(function*() {
|
|
702
|
-
* const subscription = yield* PubSub.subscribe(smallPubsub)
|
|
687
|
+
* const subscription = yield* PubSub.subscribe(smallPubsub)
|
|
703
688
|
*
|
|
704
|
-
*
|
|
705
|
-
*
|
|
689
|
+
* // Will suspend until space becomes available for all messages
|
|
690
|
+
* const fiber = yield* Effect.forkChild(PubSub.publishAll(smallPubsub, ["msg1", "msg2", "msg3", "msg4"]))
|
|
706
691
|
*
|
|
707
|
-
*
|
|
708
|
-
*
|
|
692
|
+
* const firstBatch = yield* PubSub.takeBetween(subscription, 2, 2)
|
|
693
|
+
* const result = yield* Fiber.join(fiber)
|
|
694
|
+
* const secondBatch = yield* PubSub.takeAll(subscription)
|
|
695
|
+
* return { allPublished, firstBatch, result, secondBatch }
|
|
696
|
+
* }))
|
|
709
697
|
*
|
|
710
|
-
*
|
|
711
|
-
*
|
|
712
|
-
*
|
|
713
|
-
* const secondBatch = yield* PubSub.takeAll(subscription)
|
|
714
|
-
* console.log("Second batch:", secondBatch) // ["msg3", "msg4"]
|
|
715
|
-
* }))
|
|
716
|
-
* })
|
|
698
|
+
* const actual = await Effect.runPromise(program)
|
|
699
|
+
* actual // => { allPublished: true, firstBatch: ["msg1", "msg2"], result: true, secondBatch: ["msg3", "msg4"] }
|
|
717
700
|
* ```
|
|
718
701
|
*
|
|
719
702
|
* @category publishing
|
|
@@ -737,14 +720,14 @@ export const publishAll = /*#__PURE__*/dual(2, (self, elements) => Effect.suspen
|
|
|
737
720
|
*
|
|
738
721
|
* **Example** (Subscribing to messages)
|
|
739
722
|
*
|
|
740
|
-
* ```ts
|
|
723
|
+
* ```ts import.meta.vitest
|
|
741
724
|
* import { Effect, PubSub } from "effect"
|
|
742
725
|
*
|
|
743
726
|
* const program = Effect.gen(function*() {
|
|
744
727
|
* const pubsub = yield* PubSub.bounded<string>(10)
|
|
745
728
|
*
|
|
746
729
|
* // Subscribe within a scope for automatic cleanup
|
|
747
|
-
* yield* Effect.scoped(Effect.gen(function*() {
|
|
730
|
+
* const first = yield* Effect.scoped(Effect.gen(function*() {
|
|
748
731
|
* const subscription = yield* PubSub.subscribe(pubsub)
|
|
749
732
|
*
|
|
750
733
|
* // Publish some messages
|
|
@@ -754,25 +737,28 @@ export const publishAll = /*#__PURE__*/dual(2, (self, elements) => Effect.suspen
|
|
|
754
737
|
* // Take messages one by one
|
|
755
738
|
* const msg1 = yield* PubSub.take(subscription)
|
|
756
739
|
* const msg2 = yield* PubSub.take(subscription)
|
|
757
|
-
* console.log(msg1, msg2) // "Hello", "World"
|
|
758
740
|
*
|
|
759
741
|
* // Subscription is automatically cleaned up when scope exits
|
|
742
|
+
* return [msg1, msg2]
|
|
760
743
|
* }))
|
|
761
744
|
*
|
|
762
|
-
* yield* Effect.scoped(Effect.gen(function*() {
|
|
745
|
+
* const second = yield* Effect.scoped(Effect.gen(function*() {
|
|
763
746
|
* const sub1 = yield* PubSub.subscribe(pubsub)
|
|
764
747
|
* const sub2 = yield* PubSub.subscribe(pubsub)
|
|
765
748
|
*
|
|
766
749
|
* // Multiple subscribers can receive the same messages
|
|
767
750
|
* yield* PubSub.publish(pubsub, "Broadcast")
|
|
768
751
|
*
|
|
769
|
-
*
|
|
752
|
+
* return yield* Effect.all([
|
|
770
753
|
* PubSub.take(sub1),
|
|
771
754
|
* PubSub.take(sub2)
|
|
772
755
|
* ])
|
|
773
|
-
* console.log("Both received:", msg1, msg2) // "Broadcast", "Broadcast"
|
|
774
756
|
* }))
|
|
757
|
+
* return [first, second]
|
|
775
758
|
* })
|
|
759
|
+
*
|
|
760
|
+
* const actual = await Effect.runPromise(program)
|
|
761
|
+
* actual // => [["Hello", "World"], ["Broadcast", "Broadcast"]]
|
|
776
762
|
* ```
|
|
777
763
|
*
|
|
778
764
|
* @category subscriptions
|
|
@@ -792,6 +778,7 @@ const unsubscribe = self => Effect.uninterruptible(Effect.withFiber(state => {
|
|
|
792
778
|
}).pipe(Effect.tap(() => Effect.sync(() => {
|
|
793
779
|
self.subscribers.delete(self.subscription);
|
|
794
780
|
self.subscription.unsubscribe();
|
|
781
|
+
self.replayWindow.close();
|
|
795
782
|
self.strategy.onPubSubEmptySpaceUnsafe(self.pubsub, self.subscribers);
|
|
796
783
|
})), Effect.when(self.shutdownHook.open), Effect.asVoid);
|
|
797
784
|
}));
|
|
@@ -801,28 +788,26 @@ const unsubscribe = self => Effect.uninterruptible(Effect.withFiber(state => {
|
|
|
801
788
|
*
|
|
802
789
|
* **Example** (Taking a message)
|
|
803
790
|
*
|
|
804
|
-
* ```ts
|
|
791
|
+
* ```ts import.meta.vitest
|
|
805
792
|
* import { Effect, Fiber, PubSub } from "effect"
|
|
806
793
|
*
|
|
807
|
-
* const program = Effect.gen(function*() {
|
|
794
|
+
* const program = Effect.scoped(Effect.gen(function*() {
|
|
808
795
|
* const pubsub = yield* PubSub.bounded<string>(10)
|
|
809
796
|
*
|
|
810
|
-
* yield*
|
|
811
|
-
* const subscription = yield* PubSub.subscribe(pubsub)
|
|
797
|
+
* const subscription = yield* PubSub.subscribe(pubsub)
|
|
812
798
|
*
|
|
813
|
-
*
|
|
814
|
-
*
|
|
815
|
-
* PubSub.take(subscription)
|
|
816
|
-
* )
|
|
799
|
+
* // Start a fiber to take a message (will suspend)
|
|
800
|
+
* const takeFiber = yield* Effect.forkChild(PubSub.take(subscription))
|
|
817
801
|
*
|
|
818
|
-
*
|
|
819
|
-
*
|
|
802
|
+
* // Publish a message
|
|
803
|
+
* yield* PubSub.publish(pubsub, "Hello")
|
|
820
804
|
*
|
|
821
|
-
*
|
|
822
|
-
*
|
|
823
|
-
*
|
|
824
|
-
*
|
|
825
|
-
*
|
|
805
|
+
* // The take will now complete
|
|
806
|
+
* return yield* Fiber.join(takeFiber)
|
|
807
|
+
* }))
|
|
808
|
+
*
|
|
809
|
+
* const actual = await Effect.runPromise(program)
|
|
810
|
+
* actual // => "Hello"
|
|
826
811
|
* ```
|
|
827
812
|
*
|
|
828
813
|
* @category subscriptions
|
|
@@ -850,23 +835,23 @@ export const take = self => Effect.suspend(() => {
|
|
|
850
835
|
*
|
|
851
836
|
* **Example** (Taking all available messages)
|
|
852
837
|
*
|
|
853
|
-
* ```ts
|
|
838
|
+
* ```ts import.meta.vitest
|
|
854
839
|
* import { Effect, PubSub } from "effect"
|
|
855
840
|
*
|
|
856
|
-
* const program = Effect.gen(function*() {
|
|
841
|
+
* const program = Effect.scoped(Effect.gen(function*() {
|
|
857
842
|
* const pubsub = yield* PubSub.bounded<string>(10)
|
|
858
843
|
*
|
|
859
|
-
* yield*
|
|
860
|
-
* const subscription = yield* PubSub.subscribe(pubsub)
|
|
844
|
+
* const subscription = yield* PubSub.subscribe(pubsub)
|
|
861
845
|
*
|
|
862
|
-
*
|
|
863
|
-
*
|
|
846
|
+
* // Publish multiple messages
|
|
847
|
+
* yield* PubSub.publishAll(pubsub, ["msg1", "msg2", "msg3"])
|
|
864
848
|
*
|
|
865
|
-
*
|
|
866
|
-
*
|
|
867
|
-
*
|
|
868
|
-
*
|
|
869
|
-
*
|
|
849
|
+
* // Take all available messages at once
|
|
850
|
+
* return yield* PubSub.takeAll(subscription)
|
|
851
|
+
* }))
|
|
852
|
+
*
|
|
853
|
+
* const actual = await Effect.runPromise(program)
|
|
854
|
+
* actual // => ["msg1", "msg2", "msg3"]
|
|
870
855
|
* ```
|
|
871
856
|
*
|
|
872
857
|
* @category subscriptions
|
|
@@ -908,31 +893,30 @@ const pollForItem = self => {
|
|
|
908
893
|
*
|
|
909
894
|
* **Example** (Taking up to a maximum number of messages)
|
|
910
895
|
*
|
|
911
|
-
* ```ts
|
|
896
|
+
* ```ts import.meta.vitest
|
|
912
897
|
* import { Effect, PubSub } from "effect"
|
|
913
898
|
*
|
|
914
|
-
* const program = Effect.gen(function*() {
|
|
899
|
+
* const program = Effect.scoped(Effect.gen(function*() {
|
|
915
900
|
* const pubsub = yield* PubSub.bounded<string>(10)
|
|
916
901
|
*
|
|
917
|
-
* yield*
|
|
918
|
-
* const subscription = yield* PubSub.subscribe(pubsub)
|
|
902
|
+
* const subscription = yield* PubSub.subscribe(pubsub)
|
|
919
903
|
*
|
|
920
|
-
*
|
|
921
|
-
*
|
|
904
|
+
* // Publish multiple messages
|
|
905
|
+
* yield* PubSub.publishAll(pubsub, ["msg1", "msg2", "msg3", "msg4", "msg5"])
|
|
922
906
|
*
|
|
923
|
-
*
|
|
924
|
-
*
|
|
925
|
-
* console.log("Up to 3:", upTo3) // ["msg1", "msg2", "msg3"]
|
|
907
|
+
* // Take up to 3 messages
|
|
908
|
+
* const upTo3 = yield* PubSub.takeUpTo(subscription, 3)
|
|
926
909
|
*
|
|
927
|
-
*
|
|
928
|
-
*
|
|
929
|
-
* console.log("Up to 5:", upTo5) // ["msg4", "msg5"]
|
|
910
|
+
* // Take up to 5 more (only 2 remaining)
|
|
911
|
+
* const upTo5 = yield* PubSub.takeUpTo(subscription, 5)
|
|
930
912
|
*
|
|
931
|
-
*
|
|
932
|
-
*
|
|
933
|
-
*
|
|
934
|
-
*
|
|
935
|
-
*
|
|
913
|
+
* // No more messages available
|
|
914
|
+
* const noMore = yield* PubSub.takeUpTo(subscription, 10)
|
|
915
|
+
* return [upTo3, upTo5, noMore]
|
|
916
|
+
* }))
|
|
917
|
+
*
|
|
918
|
+
* const actual = await Effect.runPromise(program)
|
|
919
|
+
* actual // => [["msg1", "msg2", "msg3"], ["msg4", "msg5"], []]
|
|
936
920
|
* ```
|
|
937
921
|
*
|
|
938
922
|
* @category subscriptions
|
|
@@ -957,28 +941,26 @@ export const takeUpTo = /*#__PURE__*/dual(2, (self, max) => Effect.suspend(() =>
|
|
|
957
941
|
*
|
|
958
942
|
* **Example** (Taking between a minimum and maximum)
|
|
959
943
|
*
|
|
960
|
-
* ```ts
|
|
944
|
+
* ```ts import.meta.vitest
|
|
961
945
|
* import { Effect, Fiber, PubSub } from "effect"
|
|
962
946
|
*
|
|
963
|
-
* const program = Effect.gen(function*() {
|
|
947
|
+
* const program = Effect.scoped(Effect.gen(function*() {
|
|
964
948
|
* const pubsub = yield* PubSub.bounded<string>(10)
|
|
965
949
|
*
|
|
966
|
-
* yield*
|
|
967
|
-
* const subscription = yield* PubSub.subscribe(pubsub)
|
|
950
|
+
* const subscription = yield* PubSub.subscribe(pubsub)
|
|
968
951
|
*
|
|
969
|
-
*
|
|
970
|
-
*
|
|
971
|
-
* PubSub.takeBetween(subscription, 2, 5)
|
|
972
|
-
* )
|
|
952
|
+
* // Start taking between 2 and 5 messages (will suspend)
|
|
953
|
+
* const takeFiber = yield* Effect.forkChild(PubSub.takeBetween(subscription, 2, 5))
|
|
973
954
|
*
|
|
974
|
-
*
|
|
975
|
-
*
|
|
955
|
+
* // Publish 3 messages
|
|
956
|
+
* yield* PubSub.publishAll(pubsub, ["msg1", "msg2", "msg3"])
|
|
976
957
|
*
|
|
977
|
-
*
|
|
978
|
-
*
|
|
979
|
-
*
|
|
980
|
-
*
|
|
981
|
-
*
|
|
958
|
+
* // Now the take will complete with 3 messages
|
|
959
|
+
* return yield* Fiber.join(takeFiber)
|
|
960
|
+
* }))
|
|
961
|
+
*
|
|
962
|
+
* const actual = await Effect.runPromise(program)
|
|
963
|
+
* actual // => ["msg1", "msg2", "msg3"]
|
|
982
964
|
* ```
|
|
983
965
|
*
|
|
984
966
|
* @category subscriptions
|
|
@@ -1023,29 +1005,29 @@ const takeRemainderLoop = (self, min, max, acc) => {
|
|
|
1023
1005
|
*
|
|
1024
1006
|
* **Example** (Checking remaining messages)
|
|
1025
1007
|
*
|
|
1026
|
-
* ```ts
|
|
1008
|
+
* ```ts import.meta.vitest
|
|
1027
1009
|
* import { Effect, PubSub } from "effect"
|
|
1028
1010
|
*
|
|
1029
|
-
* const program = Effect.gen(function*() {
|
|
1011
|
+
* const program = Effect.scoped(Effect.gen(function*() {
|
|
1030
1012
|
* const pubsub = yield* PubSub.bounded<string>(10)
|
|
1031
1013
|
*
|
|
1032
|
-
* yield*
|
|
1033
|
-
* const subscription = yield* PubSub.subscribe(pubsub)
|
|
1014
|
+
* const subscription = yield* PubSub.subscribe(pubsub)
|
|
1034
1015
|
*
|
|
1035
|
-
*
|
|
1036
|
-
*
|
|
1016
|
+
* // Publish some messages
|
|
1017
|
+
* yield* PubSub.publishAll(pubsub, ["msg1", "msg2", "msg3"])
|
|
1037
1018
|
*
|
|
1038
|
-
*
|
|
1039
|
-
*
|
|
1040
|
-
* console.log("Messages available:", count) // 3
|
|
1019
|
+
* // Check how many messages are available
|
|
1020
|
+
* const count = yield* PubSub.remaining(subscription)
|
|
1041
1021
|
*
|
|
1042
|
-
*
|
|
1043
|
-
*
|
|
1022
|
+
* // Take one message
|
|
1023
|
+
* const message = yield* PubSub.take(subscription)
|
|
1044
1024
|
*
|
|
1045
|
-
*
|
|
1046
|
-
*
|
|
1047
|
-
*
|
|
1048
|
-
*
|
|
1025
|
+
* const remaining = yield* PubSub.remaining(subscription)
|
|
1026
|
+
* return { count, message, remaining }
|
|
1027
|
+
* }))
|
|
1028
|
+
*
|
|
1029
|
+
* const actual = await Effect.runPromise(program)
|
|
1030
|
+
* actual // => { count: 3, message: "msg1", remaining: 2 }
|
|
1049
1031
|
* ```
|
|
1050
1032
|
*
|
|
1051
1033
|
* @see {@link remainingUnsafe} for a synchronous check that reports shutdown as `Option.none()`
|
|
@@ -1065,23 +1047,17 @@ export const remaining = self => Effect.suspend(() => self.shutdownFlag.current
|
|
|
1065
1047
|
*
|
|
1066
1048
|
* **Example** (Checking remaining messages synchronously)
|
|
1067
1049
|
*
|
|
1068
|
-
* ```ts
|
|
1069
|
-
* import { PubSub } from "effect"
|
|
1050
|
+
* ```ts import.meta.vitest
|
|
1051
|
+
* import { Effect, Option, PubSub } from "effect"
|
|
1070
1052
|
*
|
|
1071
|
-
*
|
|
1072
|
-
*
|
|
1073
|
-
*
|
|
1074
|
-
*
|
|
1075
|
-
*
|
|
1076
|
-
* console.log("Messages available:", remainingOption.value)
|
|
1077
|
-
* } else {
|
|
1078
|
-
* console.log("Subscription is shutdown")
|
|
1079
|
-
* }
|
|
1053
|
+
* const program = Effect.scoped(Effect.gen(function*() {
|
|
1054
|
+
* const pubsub = yield* PubSub.bounded<string>(2)
|
|
1055
|
+
* const subscription = yield* PubSub.subscribe(pubsub)
|
|
1056
|
+
* return PubSub.remainingUnsafe(subscription)
|
|
1057
|
+
* }))
|
|
1080
1058
|
*
|
|
1081
|
-
*
|
|
1082
|
-
*
|
|
1083
|
-
* // Process messages in batch
|
|
1084
|
-
* }
|
|
1059
|
+
* const actual = await Effect.runPromise(program)
|
|
1060
|
+
* actual // => Option.some(0)
|
|
1085
1061
|
* ```
|
|
1086
1062
|
*
|
|
1087
1063
|
* @see {@link remaining} for the effectful variant that interrupts on shutdown
|
|
@@ -1119,6 +1095,7 @@ const removeSubscribers = (subscribers, subscription, pollers) => {
|
|
|
1119
1095
|
const makeSubscriptionUnsafe = (pubsub, subscribers, strategy) => new SubscriptionImpl(pubsub, subscribers, pubsub.subscribe(), MutableList.make(), Latch.makeUnsafe(false), MutableRef.make(false), strategy, pubsub.replayWindow());
|
|
1120
1096
|
class BoundedPubSubArb {
|
|
1121
1097
|
array;
|
|
1098
|
+
replayIndices;
|
|
1122
1099
|
publisherIndex = 0;
|
|
1123
1100
|
subscribers;
|
|
1124
1101
|
subscriberCount = 0;
|
|
@@ -1131,6 +1108,9 @@ class BoundedPubSubArb {
|
|
|
1131
1108
|
this.array = Array.from({
|
|
1132
1109
|
length: capacity
|
|
1133
1110
|
});
|
|
1111
|
+
this.replayIndices = replayBuffer ? Array.from({
|
|
1112
|
+
length: capacity
|
|
1113
|
+
}) : [];
|
|
1134
1114
|
this.subscribers = Array.from({
|
|
1135
1115
|
length: capacity
|
|
1136
1116
|
});
|
|
@@ -1151,15 +1131,16 @@ class BoundedPubSubArb {
|
|
|
1151
1131
|
if (this.isFull()) {
|
|
1152
1132
|
return false;
|
|
1153
1133
|
}
|
|
1134
|
+
const replayIndex = this.replayBuffer?.offer(value);
|
|
1154
1135
|
if (this.subscriberCount !== 0) {
|
|
1155
1136
|
const index = this.publisherIndex % this.capacity;
|
|
1156
1137
|
this.array[index] = value;
|
|
1138
|
+
if (replayIndex !== undefined) {
|
|
1139
|
+
this.replayIndices[index] = replayIndex;
|
|
1140
|
+
}
|
|
1157
1141
|
this.subscribers[index] = this.subscriberCount;
|
|
1158
1142
|
this.publisherIndex += 1;
|
|
1159
1143
|
}
|
|
1160
|
-
if (this.replayBuffer) {
|
|
1161
|
-
this.replayBuffer.offer(value);
|
|
1162
|
-
}
|
|
1163
1144
|
return true;
|
|
1164
1145
|
}
|
|
1165
1146
|
publishAll(elements) {
|
|
@@ -1183,23 +1164,23 @@ class BoundedPubSubArb {
|
|
|
1183
1164
|
const a = chunk[iteratorIndex++];
|
|
1184
1165
|
const index = this.publisherIndex % this.capacity;
|
|
1185
1166
|
this.array[index] = a;
|
|
1167
|
+
const replayIndex = this.replayBuffer?.offer(a);
|
|
1168
|
+
if (replayIndex !== undefined) {
|
|
1169
|
+
this.replayIndices[index] = replayIndex;
|
|
1170
|
+
}
|
|
1186
1171
|
this.subscribers[index] = this.subscriberCount;
|
|
1187
1172
|
this.publisherIndex += 1;
|
|
1188
|
-
if (this.replayBuffer) {
|
|
1189
|
-
this.replayBuffer.offer(a);
|
|
1190
|
-
}
|
|
1191
1173
|
}
|
|
1192
1174
|
return chunk.slice(iteratorIndex);
|
|
1193
1175
|
}
|
|
1194
1176
|
slide() {
|
|
1195
1177
|
if (this.subscribersIndex !== this.publisherIndex) {
|
|
1196
1178
|
const index = this.subscribersIndex % this.capacity;
|
|
1179
|
+
const value = this.array[index];
|
|
1197
1180
|
this.array[index] = AbsentValue;
|
|
1198
1181
|
this.subscribers[index] = 0;
|
|
1199
1182
|
this.subscribersIndex += 1;
|
|
1200
|
-
|
|
1201
|
-
if (this.replayBuffer) {
|
|
1202
|
-
this.replayBuffer.slide();
|
|
1183
|
+
this.replayBuffer?.slide(value, this.replayIndices[index]);
|
|
1203
1184
|
}
|
|
1204
1185
|
}
|
|
1205
1186
|
subscribe() {
|
|
@@ -1287,6 +1268,7 @@ class BoundedPubSubArbSubscription {
|
|
|
1287
1268
|
}
|
|
1288
1269
|
class BoundedPubSubPow2 {
|
|
1289
1270
|
array;
|
|
1271
|
+
replayIndices;
|
|
1290
1272
|
mask;
|
|
1291
1273
|
publisherIndex = 0;
|
|
1292
1274
|
subscribers;
|
|
@@ -1300,6 +1282,9 @@ class BoundedPubSubPow2 {
|
|
|
1300
1282
|
this.array = Array.from({
|
|
1301
1283
|
length: capacity
|
|
1302
1284
|
});
|
|
1285
|
+
this.replayIndices = replayBuffer ? Array.from({
|
|
1286
|
+
length: capacity
|
|
1287
|
+
}) : [];
|
|
1303
1288
|
this.mask = capacity - 1;
|
|
1304
1289
|
this.subscribers = Array.from({
|
|
1305
1290
|
length: capacity
|
|
@@ -1321,15 +1306,16 @@ class BoundedPubSubPow2 {
|
|
|
1321
1306
|
if (this.isFull()) {
|
|
1322
1307
|
return false;
|
|
1323
1308
|
}
|
|
1309
|
+
const replayIndex = this.replayBuffer?.offer(value);
|
|
1324
1310
|
if (this.subscriberCount !== 0) {
|
|
1325
1311
|
const index = this.publisherIndex & this.mask;
|
|
1326
1312
|
this.array[index] = value;
|
|
1313
|
+
if (replayIndex !== undefined) {
|
|
1314
|
+
this.replayIndices[index] = replayIndex;
|
|
1315
|
+
}
|
|
1327
1316
|
this.subscribers[index] = this.subscriberCount;
|
|
1328
1317
|
this.publisherIndex += 1;
|
|
1329
1318
|
}
|
|
1330
|
-
if (this.replayBuffer) {
|
|
1331
|
-
this.replayBuffer.offer(value);
|
|
1332
|
-
}
|
|
1333
1319
|
return true;
|
|
1334
1320
|
}
|
|
1335
1321
|
publishAll(elements) {
|
|
@@ -1353,23 +1339,23 @@ class BoundedPubSubPow2 {
|
|
|
1353
1339
|
const elem = chunk[iteratorIndex++];
|
|
1354
1340
|
const index = this.publisherIndex & this.mask;
|
|
1355
1341
|
this.array[index] = elem;
|
|
1342
|
+
const replayIndex = this.replayBuffer?.offer(elem);
|
|
1343
|
+
if (replayIndex !== undefined) {
|
|
1344
|
+
this.replayIndices[index] = replayIndex;
|
|
1345
|
+
}
|
|
1356
1346
|
this.subscribers[index] = this.subscriberCount;
|
|
1357
1347
|
this.publisherIndex += 1;
|
|
1358
|
-
if (this.replayBuffer) {
|
|
1359
|
-
this.replayBuffer.offer(elem);
|
|
1360
|
-
}
|
|
1361
1348
|
}
|
|
1362
1349
|
return chunk.slice(iteratorIndex);
|
|
1363
1350
|
}
|
|
1364
1351
|
slide() {
|
|
1365
1352
|
if (this.subscribersIndex !== this.publisherIndex) {
|
|
1366
1353
|
const index = this.subscribersIndex & this.mask;
|
|
1354
|
+
const value = this.array[index];
|
|
1367
1355
|
this.array[index] = AbsentValue;
|
|
1368
1356
|
this.subscribers[index] = 0;
|
|
1369
1357
|
this.subscribersIndex += 1;
|
|
1370
|
-
|
|
1371
|
-
if (this.replayBuffer) {
|
|
1372
|
-
this.replayBuffer.slide();
|
|
1358
|
+
this.replayBuffer?.slide(value, this.replayIndices[index]);
|
|
1373
1359
|
}
|
|
1374
1360
|
}
|
|
1375
1361
|
subscribe() {
|
|
@@ -1460,6 +1446,7 @@ class BoundedPubSubSingle {
|
|
|
1460
1446
|
subscriberCount = 0;
|
|
1461
1447
|
subscribers = 0;
|
|
1462
1448
|
value = AbsentValue;
|
|
1449
|
+
replayIndex = 0;
|
|
1463
1450
|
capacity = 1;
|
|
1464
1451
|
replayBuffer;
|
|
1465
1452
|
constructor(replayBuffer) {
|
|
@@ -1484,14 +1471,15 @@ class BoundedPubSubSingle {
|
|
|
1484
1471
|
if (this.isFull()) {
|
|
1485
1472
|
return false;
|
|
1486
1473
|
}
|
|
1474
|
+
const replayIndex = this.replayBuffer?.offer(value);
|
|
1487
1475
|
if (this.subscriberCount !== 0) {
|
|
1488
1476
|
this.value = value;
|
|
1477
|
+
if (replayIndex !== undefined) {
|
|
1478
|
+
this.replayIndex = replayIndex;
|
|
1479
|
+
}
|
|
1489
1480
|
this.subscribers = this.subscriberCount;
|
|
1490
1481
|
this.publisherIndex += 1;
|
|
1491
1482
|
}
|
|
1492
|
-
if (this.replayBuffer) {
|
|
1493
|
-
this.replayBuffer.offer(value);
|
|
1494
|
-
}
|
|
1495
1483
|
return true;
|
|
1496
1484
|
}
|
|
1497
1485
|
publishAll(elements) {
|
|
@@ -1513,11 +1501,10 @@ class BoundedPubSubSingle {
|
|
|
1513
1501
|
}
|
|
1514
1502
|
slide() {
|
|
1515
1503
|
if (this.isFull()) {
|
|
1504
|
+
const value = this.value;
|
|
1516
1505
|
this.subscribers = 0;
|
|
1517
1506
|
this.value = AbsentValue;
|
|
1518
|
-
|
|
1519
|
-
if (this.replayBuffer) {
|
|
1520
|
-
this.replayBuffer.slide();
|
|
1507
|
+
this.replayBuffer?.slide(value, this.replayIndex);
|
|
1521
1508
|
}
|
|
1522
1509
|
}
|
|
1523
1510
|
subscribe() {
|
|
@@ -1580,6 +1567,7 @@ class BoundedPubSubSingleSubscription {
|
|
|
1580
1567
|
class UnboundedPubSub {
|
|
1581
1568
|
publisherHead = {
|
|
1582
1569
|
value: AbsentValue,
|
|
1570
|
+
replayIndex: undefined,
|
|
1583
1571
|
subscribers: 0,
|
|
1584
1572
|
next: null
|
|
1585
1573
|
};
|
|
@@ -1604,19 +1592,19 @@ class UnboundedPubSub {
|
|
|
1604
1592
|
return this.publisherIndex - this.subscribersIndex;
|
|
1605
1593
|
}
|
|
1606
1594
|
publish(value) {
|
|
1595
|
+
const replayIndex = this.replayBuffer?.offer(value);
|
|
1607
1596
|
const subscribers = this.publisherTail.subscribers;
|
|
1608
1597
|
if (subscribers !== 0) {
|
|
1609
|
-
|
|
1598
|
+
const node = {
|
|
1610
1599
|
value,
|
|
1600
|
+
replayIndex,
|
|
1611
1601
|
subscribers,
|
|
1612
1602
|
next: null
|
|
1613
1603
|
};
|
|
1604
|
+
this.publisherTail.next = node;
|
|
1614
1605
|
this.publisherTail = this.publisherTail.next;
|
|
1615
1606
|
this.publisherIndex += 1;
|
|
1616
1607
|
}
|
|
1617
|
-
if (this.replayBuffer) {
|
|
1618
|
-
this.replayBuffer.offer(value);
|
|
1619
|
-
}
|
|
1620
1608
|
return true;
|
|
1621
1609
|
}
|
|
1622
1610
|
publishAll(elements) {
|
|
@@ -1631,12 +1619,12 @@ class UnboundedPubSub {
|
|
|
1631
1619
|
}
|
|
1632
1620
|
slide() {
|
|
1633
1621
|
if (this.publisherHead !== this.publisherTail) {
|
|
1622
|
+
const node = this.publisherHead.next;
|
|
1623
|
+
const value = node.value;
|
|
1634
1624
|
this.publisherHead = this.publisherHead.next;
|
|
1635
1625
|
this.publisherHead.value = AbsentValue;
|
|
1636
1626
|
this.subscribersIndex += 1;
|
|
1637
|
-
|
|
1638
|
-
if (this.replayBuffer) {
|
|
1639
|
-
this.replayBuffer.slide();
|
|
1627
|
+
this.replayBuffer?.slide(value, node.replayIndex);
|
|
1640
1628
|
}
|
|
1641
1629
|
}
|
|
1642
1630
|
subscribe() {
|
|
@@ -1906,34 +1894,30 @@ export class BackPressureStrategy {
|
|
|
1906
1894
|
*
|
|
1907
1895
|
* **Example** (Applying a dropping strategy)
|
|
1908
1896
|
*
|
|
1909
|
-
* ```ts
|
|
1897
|
+
* ```ts import.meta.vitest
|
|
1910
1898
|
* import { Effect, PubSub } from "effect"
|
|
1911
1899
|
*
|
|
1912
|
-
* const program = Effect.gen(function*() {
|
|
1913
|
-
* //
|
|
1914
|
-
* const pubsub = yield* PubSub.
|
|
1915
|
-
*
|
|
1916
|
-
* // Or explicitly create with dropping strategy
|
|
1917
|
-
* const customPubsub = yield* PubSub.make<string>({
|
|
1900
|
+
* const program = Effect.scoped(Effect.gen(function*() {
|
|
1901
|
+
* // Explicitly create a PubSub with a dropping strategy
|
|
1902
|
+
* const pubsub = yield* PubSub.make<string>({
|
|
1918
1903
|
* atomicPubSub: () => PubSub.makeAtomicBounded(2),
|
|
1919
1904
|
* strategy: () => new PubSub.DroppingStrategy()
|
|
1920
1905
|
* })
|
|
1921
1906
|
*
|
|
1922
|
-
* yield*
|
|
1923
|
-
* const subscription = yield* PubSub.subscribe(pubsub)
|
|
1907
|
+
* const subscription = yield* PubSub.subscribe(pubsub)
|
|
1924
1908
|
*
|
|
1925
|
-
*
|
|
1926
|
-
*
|
|
1927
|
-
*
|
|
1928
|
-
*
|
|
1909
|
+
* // Fill the PubSub
|
|
1910
|
+
* const pub1 = yield* PubSub.publish(pubsub, "msg1") // true
|
|
1911
|
+
* const pub2 = yield* PubSub.publish(pubsub, "msg2") // true
|
|
1912
|
+
* const pub3 = yield* PubSub.publish(pubsub, "msg3") // false (dropped)
|
|
1929
1913
|
*
|
|
1930
|
-
*
|
|
1914
|
+
* // Subscribers will only see the first two messages
|
|
1915
|
+
* const messages = yield* PubSub.takeAll(subscription)
|
|
1916
|
+
* return { published: [pub1, pub2, pub3], messages }
|
|
1917
|
+
* }))
|
|
1931
1918
|
*
|
|
1932
|
-
*
|
|
1933
|
-
*
|
|
1934
|
-
* console.log("Received messages:", messages) // ["msg1", "msg2"]
|
|
1935
|
-
* }))
|
|
1936
|
-
* })
|
|
1919
|
+
* const actual = await Effect.runPromise(program)
|
|
1920
|
+
* actual // => { published: [true, true, false], messages: ["msg1", "msg2"] }
|
|
1937
1921
|
* ```
|
|
1938
1922
|
*
|
|
1939
1923
|
* @category models
|
|
@@ -1975,33 +1959,30 @@ export class DroppingStrategy {
|
|
|
1975
1959
|
*
|
|
1976
1960
|
* **Example** (Applying a sliding strategy)
|
|
1977
1961
|
*
|
|
1978
|
-
* ```ts
|
|
1962
|
+
* ```ts import.meta.vitest
|
|
1979
1963
|
* import { Effect, PubSub } from "effect"
|
|
1980
1964
|
*
|
|
1981
|
-
* const program = Effect.gen(function*() {
|
|
1982
|
-
* //
|
|
1983
|
-
* const pubsub = yield* PubSub.
|
|
1984
|
-
*
|
|
1985
|
-
* // Or explicitly create with sliding strategy
|
|
1986
|
-
* const customPubsub = yield* PubSub.make<string>({
|
|
1965
|
+
* const program = Effect.scoped(Effect.gen(function*() {
|
|
1966
|
+
* // Explicitly create a PubSub with a sliding strategy
|
|
1967
|
+
* const pubsub = yield* PubSub.make<string>({
|
|
1987
1968
|
* atomicPubSub: () => PubSub.makeAtomicBounded(2),
|
|
1988
1969
|
* strategy: () => new PubSub.SlidingStrategy()
|
|
1989
1970
|
* })
|
|
1990
1971
|
*
|
|
1991
|
-
* yield*
|
|
1992
|
-
* const subscription = yield* PubSub.subscribe(pubsub)
|
|
1972
|
+
* const subscription = yield* PubSub.subscribe(pubsub)
|
|
1993
1973
|
*
|
|
1994
|
-
*
|
|
1995
|
-
*
|
|
1996
|
-
*
|
|
1997
|
-
*
|
|
1998
|
-
*
|
|
1974
|
+
* // Publish messages that exceed capacity
|
|
1975
|
+
* yield* PubSub.publish(pubsub, "msg1") // stored
|
|
1976
|
+
* yield* PubSub.publish(pubsub, "msg2") // stored
|
|
1977
|
+
* yield* PubSub.publish(pubsub, "msg3") // "msg1" evicted, "msg3" stored
|
|
1978
|
+
* yield* PubSub.publish(pubsub, "msg4") // "msg2" evicted, "msg4" stored
|
|
1999
1979
|
*
|
|
2000
|
-
*
|
|
2001
|
-
*
|
|
2002
|
-
*
|
|
2003
|
-
*
|
|
2004
|
-
*
|
|
1980
|
+
* // Subscribers will see the most recent messages
|
|
1981
|
+
* return yield* PubSub.takeAll(subscription)
|
|
1982
|
+
* }))
|
|
1983
|
+
*
|
|
1984
|
+
* const actual = await Effect.runPromise(program)
|
|
1985
|
+
* actual // => ["msg3", "msg4"]
|
|
2005
1986
|
* ```
|
|
2006
1987
|
*
|
|
2007
1988
|
* @category models
|
|
@@ -2078,21 +2059,31 @@ class ReplayBuffer {
|
|
|
2078
2059
|
capacity;
|
|
2079
2060
|
head = {
|
|
2080
2061
|
value: AbsentValue,
|
|
2062
|
+
index: 0,
|
|
2081
2063
|
next: null
|
|
2082
2064
|
};
|
|
2083
2065
|
tail = this.head;
|
|
2066
|
+
slideValues = [];
|
|
2084
2067
|
size = 0;
|
|
2085
2068
|
index = 0;
|
|
2069
|
+
publisherIndex = 0;
|
|
2086
2070
|
constructor(capacity) {
|
|
2087
2071
|
this.capacity = capacity;
|
|
2088
2072
|
}
|
|
2089
|
-
slide() {
|
|
2073
|
+
slide(value, publisherIndex) {
|
|
2074
|
+
this.slideValues[this.index % this.capacity] = {
|
|
2075
|
+
value,
|
|
2076
|
+
index: publisherIndex
|
|
2077
|
+
};
|
|
2090
2078
|
this.index++;
|
|
2091
2079
|
}
|
|
2092
2080
|
offer(a) {
|
|
2081
|
+
const index = this.publisherIndex++;
|
|
2093
2082
|
this.tail.value = a;
|
|
2083
|
+
this.tail.index = index;
|
|
2094
2084
|
this.tail.next = {
|
|
2095
2085
|
value: AbsentValue,
|
|
2086
|
+
index: 0,
|
|
2096
2087
|
next: null
|
|
2097
2088
|
};
|
|
2098
2089
|
this.tail = this.tail.next;
|
|
@@ -2101,6 +2092,7 @@ class ReplayBuffer {
|
|
|
2101
2092
|
} else {
|
|
2102
2093
|
this.size += 1;
|
|
2103
2094
|
}
|
|
2095
|
+
return index;
|
|
2104
2096
|
}
|
|
2105
2097
|
offerAll(as) {
|
|
2106
2098
|
for (const a of as) {
|
|
@@ -2109,47 +2101,65 @@ class ReplayBuffer {
|
|
|
2109
2101
|
}
|
|
2110
2102
|
}
|
|
2111
2103
|
class ReplayWindowImpl {
|
|
2112
|
-
head;
|
|
2113
|
-
index;
|
|
2114
|
-
remaining;
|
|
2115
2104
|
buffer;
|
|
2105
|
+
values;
|
|
2106
|
+
index = 0;
|
|
2107
|
+
remaining;
|
|
2108
|
+
slideIndex;
|
|
2109
|
+
newestIndex = -1;
|
|
2116
2110
|
constructor(buffer) {
|
|
2117
2111
|
this.buffer = buffer;
|
|
2118
|
-
this.index = buffer.index;
|
|
2119
2112
|
this.remaining = buffer.size;
|
|
2120
|
-
this.
|
|
2121
|
-
|
|
2122
|
-
|
|
2123
|
-
|
|
2124
|
-
this.
|
|
2125
|
-
this.index
|
|
2113
|
+
this.slideIndex = buffer.index;
|
|
2114
|
+
this.values = new Array(this.remaining);
|
|
2115
|
+
let node = buffer.head;
|
|
2116
|
+
for (let i = 0; i < this.remaining; i++) {
|
|
2117
|
+
this.values[i] = node.value;
|
|
2118
|
+
this.newestIndex = node.index;
|
|
2119
|
+
node = node.next;
|
|
2120
|
+
}
|
|
2121
|
+
}
|
|
2122
|
+
close() {
|
|
2123
|
+
this.values.length = 0;
|
|
2124
|
+
this.remaining = 0;
|
|
2125
|
+
}
|
|
2126
|
+
sync() {
|
|
2127
|
+
const slides = this.buffer.index - this.slideIndex;
|
|
2128
|
+
if (slides === 0 || this.remaining === 0) {
|
|
2129
|
+
return;
|
|
2130
|
+
}
|
|
2131
|
+
const count = Math.min(slides, this.buffer.capacity);
|
|
2132
|
+
const start = this.buffer.index - count;
|
|
2133
|
+
for (let i = 0; i < count; i++) {
|
|
2134
|
+
const entry = this.buffer.slideValues[(start + i) % this.buffer.capacity];
|
|
2135
|
+
if (entry.index > this.newestIndex) {
|
|
2136
|
+
this.index = (this.index + 1) % this.values.length;
|
|
2137
|
+
this.values[(this.index + this.remaining - 1) % this.values.length] = entry.value;
|
|
2138
|
+
this.newestIndex = entry.index;
|
|
2139
|
+
}
|
|
2126
2140
|
}
|
|
2141
|
+
this.slideIndex = this.buffer.index;
|
|
2127
2142
|
}
|
|
2128
2143
|
take() {
|
|
2129
2144
|
if (this.remaining === 0) {
|
|
2130
2145
|
return undefined;
|
|
2131
|
-
} else if (this.index < this.buffer.index) {
|
|
2132
|
-
this.fastForward();
|
|
2133
2146
|
}
|
|
2147
|
+
this.sync();
|
|
2148
|
+
const value = this.values[this.index];
|
|
2149
|
+
this.values[this.index] = AbsentValue;
|
|
2150
|
+
this.index = (this.index + 1) % this.values.length;
|
|
2134
2151
|
this.remaining--;
|
|
2135
|
-
|
|
2136
|
-
|
|
2152
|
+
if (this.remaining === 0) {
|
|
2153
|
+
this.close();
|
|
2154
|
+
}
|
|
2137
2155
|
return value;
|
|
2138
2156
|
}
|
|
2139
2157
|
takeN(n) {
|
|
2140
|
-
if (this.remaining === 0) {
|
|
2141
|
-
return [];
|
|
2142
|
-
} else if (this.index < this.buffer.index) {
|
|
2143
|
-
this.fastForward();
|
|
2144
|
-
}
|
|
2145
2158
|
const len = Math.min(n, this.remaining);
|
|
2146
2159
|
const items = new Array(len);
|
|
2147
2160
|
for (let i = 0; i < len; i++) {
|
|
2148
|
-
|
|
2149
|
-
this.head = this.head.next;
|
|
2150
|
-
items[i] = value;
|
|
2161
|
+
items[i] = this.take();
|
|
2151
2162
|
}
|
|
2152
|
-
this.remaining -= len;
|
|
2153
2163
|
return items;
|
|
2154
2164
|
}
|
|
2155
2165
|
takeAll() {
|
|
@@ -2160,6 +2170,7 @@ const emptyReplayWindow = {
|
|
|
2160
2170
|
remaining: 0,
|
|
2161
2171
|
take: () => undefined,
|
|
2162
2172
|
takeN: () => [],
|
|
2163
|
-
takeAll: () => []
|
|
2173
|
+
takeAll: () => [],
|
|
2174
|
+
close: () => void 0
|
|
2164
2175
|
};
|
|
2165
2176
|
//# sourceMappingURL=PubSub.js.map
|