effect 2.0.0-next.38 → 2.0.0-next.39
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/Bigint/dist/effect-Bigint.esm.js +346 -5
- package/Boolean/dist/effect-Boolean.esm.js +230 -5
- package/Brand/dist/effect-Brand.esm.js +204 -20
- package/Cache/dist/effect-Cache.cjs.dev.js +13 -13
- package/Cache/dist/effect-Cache.cjs.prod.js +13 -13
- package/Cache/dist/effect-Cache.esm.js +111 -74
- package/Cause/dist/effect-Cause.esm.js +668 -33
- package/Channel/dist/effect-Channel.cjs.dev.js +36 -36
- package/Channel/dist/effect-Channel.cjs.prod.js +36 -36
- package/Channel/dist/effect-Channel.esm.js +1001 -107
- package/ChannelChildExecutorDecision/dist/effect-ChannelChildExecutorDecision.esm.js +112 -3
- package/ChannelMergeDecision/dist/effect-ChannelMergeDecision.esm.js +60 -3
- package/ChannelMergeState/dist/effect-ChannelMergeState.esm.js +101 -3
- package/ChannelMergeStrategy/dist/effect-ChannelMergeStrategy.esm.js +84 -3
- package/ChannelSingleProducerAsyncInput/dist/effect-ChannelSingleProducerAsyncInput.cjs.dev.js +28 -28
- package/ChannelSingleProducerAsyncInput/dist/effect-ChannelSingleProducerAsyncInput.cjs.prod.js +28 -28
- package/ChannelSingleProducerAsyncInput/dist/effect-ChannelSingleProducerAsyncInput.esm.js +47 -91
- package/ChannelUpstreamPullRequest/dist/effect-ChannelUpstreamPullRequest.esm.js +84 -3
- package/ChannelUpstreamPullStrategy/dist/effect-ChannelUpstreamPullStrategy.esm.js +83 -3
- package/Chunk/dist/effect-Chunk.esm.js +1084 -20
- package/Clock/dist/effect-Clock.cjs.dev.js +3 -3
- package/Clock/dist/effect-Clock.cjs.prod.js +3 -3
- package/Clock/dist/effect-Clock.esm.js +78 -42
- package/Config/dist/effect-Config.esm.js +321 -37
- package/ConfigError/dist/effect-ConfigError.esm.js +185 -21
- package/ConfigProvider/dist/effect-ConfigProvider.esm.js +198 -39
- package/ConfigProviderPathPatch/dist/effect-ConfigProviderPathPatch.esm.js +70 -24
- package/ConfigSecret/dist/effect-ConfigSecret.esm.js +63 -22
- package/Console/dist/effect-Console.cjs.dev.js +22 -22
- package/Console/dist/effect-Console.cjs.prod.js +22 -22
- package/Console/dist/effect-Console.esm.js +154 -83
- package/Context/dist/effect-Context.esm.js +295 -17
- package/Data/dist/effect-Data.esm.js +163 -7
- package/DefaultServices/dist/effect-DefaultServices.cjs.dev.js +3 -3
- package/DefaultServices/dist/effect-DefaultServices.cjs.prod.js +3 -3
- package/DefaultServices/dist/effect-DefaultServices.esm.js +24 -42
- package/Deferred/dist/effect-Deferred.esm.js +206 -33
- package/Differ/dist/effect-Differ.esm.js +137 -26
- package/Duration/dist/effect-Duration.cjs.dev.js +2 -1
- package/Duration/dist/effect-Duration.cjs.mjs +1 -0
- package/Duration/dist/effect-Duration.cjs.prod.js +2 -1
- package/Duration/dist/effect-Duration.esm.js +438 -16
- package/Effect/dist/effect-Effect.cjs.dev.js +26 -26
- package/Effect/dist/effect-Effect.cjs.prod.js +26 -26
- package/Effect/dist/effect-Effect.esm.js +3093 -89
- package/Effectable/dist/effect-Effectable.esm.js +77 -10
- package/Either/dist/effect-Either.esm.js +442 -13
- package/Encoding/dist/effect-Encoding.esm.js +123 -14
- package/Equal/dist/effect-Equal.esm.js +57 -6
- package/Equivalence/dist/effect-Equivalence.esm.js +196 -2
- package/Error/dist/effect-Error.cjs.dev.js +27 -27
- package/Error/dist/effect-Error.cjs.prod.js +27 -27
- package/Error/dist/effect-Error.esm.js +47 -91
- package/ExecutionStrategy/dist/effect-ExecutionStrategy.esm.js +99 -2
- package/Exit/dist/effect-Exit.esm.js +332 -33
- package/Fiber/dist/effect-Fiber.cjs.dev.js +18 -18
- package/Fiber/dist/effect-Fiber.cjs.prod.js +18 -18
- package/Fiber/dist/effect-Fiber.esm.js +423 -77
- package/FiberId/dist/effect-FiberId.esm.js +161 -20
- package/FiberRef/dist/effect-FiberRef.cjs.dev.js +14 -14
- package/FiberRef/dist/effect-FiberRef.cjs.prod.js +14 -14
- package/FiberRef/dist/effect-FiberRef.esm.js +289 -75
- package/FiberRefs/dist/effect-FiberRefs.esm.js +107 -34
- package/FiberRefsPatch/dist/effect-FiberRefsPatch.esm.js +76 -35
- package/FiberStatus/dist/effect-FiberStatus.esm.js +89 -7
- package/Function/dist/effect-Function.esm.js +492 -1
- package/GlobalValue/dist/effect-GlobalValue.esm.js +20 -1
- package/GroupBy/dist/effect-GroupBy.cjs.dev.js +37 -37
- package/GroupBy/dist/effect-GroupBy.cjs.prod.js +37 -37
- package/GroupBy/dist/effect-GroupBy.esm.js +63 -108
- package/Hash/dist/effect-Hash.esm.js +164 -5
- package/HashMap/dist/effect-HashMap.esm.js +287 -18
- package/HashSet/dist/effect-HashSet.esm.js +227 -18
- package/Hub/dist/effect-Hub.cjs.dev.js +13 -13
- package/Hub/dist/effect-Hub.cjs.prod.js +13 -13
- package/Hub/dist/effect-Hub.esm.js +148 -74
- package/Inspectable/dist/effect-Inspectable.esm.js +38 -1
- package/KeyedPool/dist/effect-KeyedPool.cjs.dev.js +14 -14
- package/KeyedPool/dist/effect-KeyedPool.cjs.prod.js +14 -14
- package/KeyedPool/dist/effect-KeyedPool.esm.js +104 -75
- package/Layer/dist/effect-Layer.cjs.dev.js +22 -22
- package/Layer/dist/effect-Layer.cjs.prod.js +22 -22
- package/Layer/dist/effect-Layer.esm.js +557 -83
- package/List/dist/effect-List.esm.js +816 -21
- package/LogLevel/dist/effect-LogLevel.esm.js +202 -33
- package/LogSpan/dist/effect-LogSpan.esm.js +24 -1
- package/Logger/dist/effect-Logger.cjs.dev.js +24 -24
- package/Logger/dist/effect-Logger.cjs.prod.js +24 -24
- package/Logger/dist/effect-Logger.esm.js +198 -85
- package/Metric/dist/effect-Metric.cjs.dev.js +12 -12
- package/Metric/dist/effect-Metric.cjs.prod.js +12 -12
- package/Metric/dist/effect-Metric.esm.js +395 -71
- package/MetricBoundaries/dist/effect-MetricBoundaries.esm.js +52 -22
- package/MetricHook/dist/effect-MetricHook.cjs.dev.js +3 -3
- package/MetricHook/dist/effect-MetricHook.cjs.prod.js +3 -3
- package/MetricHook/dist/effect-MetricHook.esm.js +68 -27
- package/MetricKey/dist/effect-MetricKey.cjs.dev.js +4 -4
- package/MetricKey/dist/effect-MetricKey.cjs.prod.js +4 -4
- package/MetricKey/dist/effect-MetricKey.esm.js +104 -23
- package/MetricKeyType/dist/effect-MetricKeyType.cjs.dev.js +3 -3
- package/MetricKeyType/dist/effect-MetricKeyType.cjs.prod.js +3 -3
- package/MetricKeyType/dist/effect-MetricKeyType.esm.js +147 -18
- package/MetricLabel/dist/effect-MetricLabel.esm.js +41 -9
- package/MetricPair/dist/effect-MetricPair.esm.js +38 -3
- package/MetricPolling/dist/effect-MetricPolling.cjs.dev.js +18 -18
- package/MetricPolling/dist/effect-MetricPolling.cjs.prod.js +18 -18
- package/MetricPolling/dist/effect-MetricPolling.esm.js +84 -77
- package/MetricRegistry/dist/effect-MetricRegistry.cjs.dev.js +5 -5
- package/MetricRegistry/dist/effect-MetricRegistry.cjs.prod.js +5 -5
- package/MetricRegistry/dist/effect-MetricRegistry.esm.js +28 -33
- package/MetricState/dist/effect-MetricState.esm.js +151 -9
- package/MutableHashMap/dist/effect-MutableHashMap.esm.js +128 -20
- package/MutableHashSet/dist/effect-MutableHashSet.esm.js +90 -21
- package/MutableList/dist/effect-MutableList.esm.js +264 -4
- package/MutableQueue/dist/effect-MutableQueue.esm.js +187 -22
- package/MutableRef/dist/effect-MutableRef.esm.js +156 -9
- package/NonEmptyIterable/dist/effect-NonEmptyIterable.esm.js +28 -1
- package/Number/dist/effect-Number.esm.js +369 -5
- package/Option/dist/effect-Option.esm.js +1071 -15
- package/Order/dist/effect-Order.esm.js +263 -2
- package/Ordering/dist/effect-Ordering.esm.js +88 -2
- package/Pipeable/dist/effect-Pipeable.esm.js +44 -1
- package/Pool/dist/effect-Pool.cjs.dev.js +14 -14
- package/Pool/dist/effect-Pool.cjs.prod.js +14 -14
- package/Pool/dist/effect-Pool.esm.js +104 -75
- package/Predicate/dist/effect-Predicate.esm.js +634 -2
- package/Queue/dist/effect-Queue.cjs.dev.js +13 -13
- package/Queue/dist/effect-Queue.cjs.prod.js +13 -13
- package/Queue/dist/effect-Queue.esm.js +328 -74
- package/Random/dist/effect-Random.cjs.dev.js +3 -3
- package/Random/dist/effect-Random.cjs.prod.js +3 -3
- package/Random/dist/effect-Random.esm.js +83 -42
- package/ReadonlyArray/dist/effect-ReadonlyArray.esm.js +1445 -19
- package/ReadonlyRecord/dist/effect-ReadonlyRecord.esm.js +518 -17
- package/RedBlackTree/dist/effect-RedBlackTree.esm.js +314 -22
- package/Ref/dist/effect-Ref.esm.js +111 -33
- package/Reloadable/dist/effect-Reloadable.cjs.dev.js +23 -23
- package/Reloadable/dist/effect-Reloadable.cjs.prod.js +23 -23
- package/Reloadable/dist/effect-Reloadable.esm.js +88 -84
- package/Request/dist/effect-Request.cjs.dev.js +13 -13
- package/Request/dist/effect-Request.cjs.prod.js +13 -13
- package/Request/dist/effect-Request.esm.js +160 -74
- package/RequestBlock/dist/effect-RequestBlock.cjs.dev.js +28 -28
- package/RequestBlock/dist/effect-RequestBlock.cjs.prod.js +28 -28
- package/RequestBlock/dist/effect-RequestBlock.esm.js +103 -91
- package/RequestResolver/dist/effect-RequestResolver.cjs.dev.js +28 -28
- package/RequestResolver/dist/effect-RequestResolver.cjs.prod.js +28 -28
- package/RequestResolver/dist/effect-RequestResolver.esm.js +191 -91
- package/Resource/dist/effect-Resource.cjs.dev.js +19 -19
- package/Resource/dist/effect-Resource.cjs.prod.js +19 -19
- package/Resource/dist/effect-Resource.esm.js +70 -79
- package/Runtime/dist/effect-Runtime.cjs.dev.js +20 -20
- package/Runtime/dist/effect-Runtime.cjs.prod.js +20 -20
- package/Runtime/dist/effect-Runtime.esm.js +157 -79
- package/RuntimeFlags/dist/effect-RuntimeFlags.cjs.dev.js +24 -24
- package/RuntimeFlags/dist/effect-RuntimeFlags.cjs.prod.js +24 -24
- package/RuntimeFlags/dist/effect-RuntimeFlags.esm.js +305 -85
- package/RuntimeFlagsPatch/dist/effect-RuntimeFlagsPatch.esm.js +158 -27
- package/STM/dist/effect-STM.cjs.dev.js +41 -41
- package/STM/dist/effect-STM.cjs.prod.js +41 -41
- package/STM/dist/effect-STM.esm.js +1193 -112
- package/Schedule/dist/effect-Schedule.cjs.dev.js +11 -11
- package/Schedule/dist/effect-Schedule.cjs.prod.js +11 -11
- package/Schedule/dist/effect-Schedule.esm.js +957 -57
- package/ScheduleDecision/dist/effect-ScheduleDecision.cjs.dev.js +4 -4
- package/ScheduleDecision/dist/effect-ScheduleDecision.cjs.prod.js +4 -4
- package/ScheduleDecision/dist/effect-ScheduleDecision.esm.js +48 -24
- package/ScheduleInterval/dist/effect-ScheduleInterval.cjs.dev.js +2 -2
- package/ScheduleInterval/dist/effect-ScheduleInterval.cjs.prod.js +2 -2
- package/ScheduleInterval/dist/effect-ScheduleInterval.esm.js +130 -17
- package/ScheduleIntervals/dist/effect-ScheduleIntervals.cjs.dev.js +3 -3
- package/ScheduleIntervals/dist/effect-ScheduleIntervals.cjs.prod.js +3 -3
- package/ScheduleIntervals/dist/effect-ScheduleIntervals.esm.js +105 -23
- package/Scheduler/dist/effect-Scheduler.esm.js +326 -34
- package/Scope/dist/effect-Scope.cjs.dev.js +12 -12
- package/Scope/dist/effect-Scope.cjs.prod.js +12 -12
- package/Scope/dist/effect-Scope.esm.js +117 -71
- package/ScopedCache/dist/effect-ScopedCache.cjs.dev.js +14 -14
- package/ScopedCache/dist/effect-ScopedCache.cjs.prod.js +14 -14
- package/ScopedCache/dist/effect-ScopedCache.esm.js +52 -75
- package/ScopedRef/dist/effect-ScopedRef.cjs.dev.js +19 -19
- package/ScopedRef/dist/effect-ScopedRef.cjs.prod.js +19 -19
- package/ScopedRef/dist/effect-ScopedRef.esm.js +71 -79
- package/Sink/dist/effect-Sink.cjs.dev.js +32 -32
- package/Sink/dist/effect-Sink.cjs.prod.js +32 -32
- package/Sink/dist/effect-Sink.esm.js +997 -101
- package/SortedMap/dist/effect-SortedMap.esm.js +168 -23
- package/SortedSet/dist/effect-SortedSet.esm.js +263 -23
- package/Stream/dist/effect-Stream.cjs.dev.js +37 -37
- package/Stream/dist/effect-Stream.cjs.prod.js +37 -37
- package/Stream/dist/effect-Stream.esm.js +2879 -108
- package/StreamHaltStrategy/dist/effect-StreamHaltStrategy.esm.js +97 -2
- package/String/dist/effect-String.esm.js +600 -17
- package/Struct/dist/effect-Struct.esm.js +125 -4
- package/SubscriptionRef/dist/effect-SubscriptionRef.cjs.dev.js +37 -37
- package/SubscriptionRef/dist/effect-SubscriptionRef.cjs.prod.js +37 -37
- package/SubscriptionRef/dist/effect-SubscriptionRef.esm.js +160 -108
- package/Supervisor/dist/effect-Supervisor.cjs.dev.js +24 -24
- package/Supervisor/dist/effect-Supervisor.cjs.prod.js +24 -24
- package/Supervisor/dist/effect-Supervisor.esm.js +148 -85
- package/Symbol/dist/effect-Symbol.esm.js +30 -4
- package/SynchronizedRef/dist/effect-SynchronizedRef.cjs.dev.js +18 -18
- package/SynchronizedRef/dist/effect-SynchronizedRef.cjs.prod.js +18 -18
- package/SynchronizedRef/dist/effect-SynchronizedRef.esm.js +160 -78
- package/TArray/dist/effect-TArray.cjs.dev.js +43 -43
- package/TArray/dist/effect-TArray.cjs.prod.js +43 -43
- package/TArray/dist/effect-TArray.esm.js +367 -114
- package/TDeferred/dist/effect-TDeferred.cjs.dev.js +42 -42
- package/TDeferred/dist/effect-TDeferred.cjs.prod.js +42 -42
- package/TDeferred/dist/effect-TDeferred.esm.js +63 -113
- package/THub/dist/effect-THub.cjs.dev.js +44 -44
- package/THub/dist/effect-THub.cjs.prod.js +44 -44
- package/THub/dist/effect-THub.esm.js +157 -115
- package/TMap/dist/effect-TMap.cjs.dev.js +45 -45
- package/TMap/dist/effect-TMap.cjs.prod.js +45 -45
- package/TMap/dist/effect-TMap.esm.js +373 -116
- package/TPriorityQueue/dist/effect-TPriorityQueue.cjs.dev.js +41 -41
- package/TPriorityQueue/dist/effect-TPriorityQueue.cjs.prod.js +41 -41
- package/TPriorityQueue/dist/effect-TPriorityQueue.esm.js +184 -113
- package/TQueue/dist/effect-TQueue.cjs.dev.js +44 -44
- package/TQueue/dist/effect-TQueue.cjs.prod.js +44 -44
- package/TQueue/dist/effect-TQueue.esm.js +293 -115
- package/TRandom/dist/effect-TRandom.cjs.dev.js +43 -43
- package/TRandom/dist/effect-TRandom.cjs.prod.js +43 -43
- package/TRandom/dist/effect-TRandom.esm.js +93 -114
- package/TReentrantLock/dist/effect-TReentrantLock.cjs.dev.js +41 -41
- package/TReentrantLock/dist/effect-TReentrantLock.cjs.prod.js +41 -41
- package/TReentrantLock/dist/effect-TReentrantLock.esm.js +199 -112
- package/TRef/dist/effect-TRef.cjs.dev.js +41 -41
- package/TRef/dist/effect-TRef.cjs.prod.js +41 -41
- package/TRef/dist/effect-TRef.esm.js +116 -112
- package/TSemaphore/dist/effect-TSemaphore.cjs.dev.js +43 -43
- package/TSemaphore/dist/effect-TSemaphore.cjs.prod.js +43 -43
- package/TSemaphore/dist/effect-TSemaphore.esm.js +97 -114
- package/TSet/dist/effect-TSet.cjs.dev.js +45 -45
- package/TSet/dist/effect-TSet.cjs.prod.js +45 -45
- package/TSet/dist/effect-TSet.esm.js +268 -116
- package/Take/dist/effect-Take.cjs.dev.js +28 -28
- package/Take/dist/effect-Take.cjs.prod.js +28 -28
- package/Take/dist/effect-Take.esm.js +190 -91
- package/TestAnnotation/dist/effect-TestAnnotation.esm.js +111 -26
- package/TestAnnotationMap/dist/effect-TestAnnotationMap.esm.js +101 -2
- package/TestAnnotations/dist/effect-TestAnnotations.cjs.dev.js +7 -7
- package/TestAnnotations/dist/effect-TestAnnotations.cjs.prod.js +7 -7
- package/TestAnnotations/dist/effect-TestAnnotations.esm.js +83 -59
- package/TestClock/dist/effect-TestClock.cjs.dev.js +24 -24
- package/TestClock/dist/effect-TestClock.cjs.prod.js +24 -24
- package/TestClock/dist/effect-TestClock.esm.js +411 -87
- package/TestConfig/dist/effect-TestConfig.esm.js +27 -18
- package/TestContext/dist/effect-TestContext.cjs.dev.js +31 -31
- package/TestContext/dist/effect-TestContext.cjs.prod.js +31 -31
- package/TestContext/dist/effect-TestContext.esm.js +29 -98
- package/TestLive/dist/effect-TestLive.cjs.dev.js +3 -3
- package/TestLive/dist/effect-TestLive.cjs.prod.js +3 -3
- package/TestLive/dist/effect-TestLive.esm.js +48 -42
- package/TestServices/dist/effect-TestServices.cjs.dev.js +29 -29
- package/TestServices/dist/effect-TestServices.cjs.prod.js +29 -29
- package/TestServices/dist/effect-TestServices.esm.js +269 -96
- package/TestSized/dist/effect-TestSized.esm.js +50 -33
- package/Tracer/dist/effect-Tracer.cjs.dev.js +3 -3
- package/Tracer/dist/effect-Tracer.cjs.prod.js +3 -3
- package/Tracer/dist/effect-Tracer.esm.js +68 -42
- package/Tuple/dist/effect-Tuple.esm.js +173 -4
- package/Unify/dist/effect-Unify.esm.js +40 -2
- package/Utils/dist/effect-Utils.esm.js +352 -3
- package/dist/{Cache-e7468f24.cjs.dev.js → Cache-1688e584.cjs.dev.js} +1 -1
- package/dist/{Cache-65f7e875.cjs.prod.js → Cache-8f2f2b55.cjs.prod.js} +1 -1
- package/dist/{Channel-482334e0.cjs.prod.js → Channel-2ce019f1.cjs.prod.js} +2 -2
- package/dist/{Channel-4099f225.cjs.dev.js → Channel-544108d2.cjs.dev.js} +2 -2
- package/dist/{ChannelSingleProducerAsyncInput-e1260219.cjs.dev.js → ChannelSingleProducerAsyncInput-62f4749c.cjs.dev.js} +1 -1
- package/dist/{ChannelSingleProducerAsyncInput-9d23aac3.cjs.prod.js → ChannelSingleProducerAsyncInput-6e0084c3.cjs.prod.js} +1 -1
- package/dist/{Clock-0b777b1b.cjs.prod.js → Clock-09ecce0a.cjs.prod.js} +1 -1
- package/dist/{Clock-80bf3b4b.cjs.dev.js → Clock-bec722c1.cjs.dev.js} +1 -1
- package/dist/{Console-69b2fba9.cjs.prod.js → Console-150b7b40.cjs.prod.js} +3 -3
- package/dist/{Console-ff87924b.cjs.dev.js → Console-4825ee9f.cjs.dev.js} +3 -3
- package/dist/{DefaultServices-c1a6b148.cjs.dev.js → DefaultServices-d5740d37.cjs.dev.js} +1 -1
- package/dist/{DefaultServices-6a83f0aa.cjs.prod.js → DefaultServices-df7495bb.cjs.prod.js} +1 -1
- package/dist/{Duration-011e7325.cjs.prod.js → Duration-0bc08d03.cjs.prod.js} +8 -0
- package/dist/{Duration-5ac57eb4.cjs.dev.js → Duration-604874d1.cjs.dev.js} +8 -0
- package/dist/{Effect-f0659a90.cjs.prod.js → Effect-1442090f.cjs.prod.js} +9 -9
- package/dist/{Effect-8392a3cd.cjs.dev.js → Effect-6e9780e6.cjs.dev.js} +9 -9
- package/dist/{Error-5edcd83a.cjs.dev.js → Error-5ab157f2.cjs.dev.js} +1 -1
- package/dist/{Error-d7f0de14.cjs.prod.js → Error-e9d25c53.cjs.prod.js} +1 -1
- package/dist/{Fiber-c797d281.cjs.dev.js → Fiber-6432d5f7.cjs.dev.js} +3 -3
- package/dist/{Fiber-3b2a4091.cjs.prod.js → Fiber-e61b3c65.cjs.prod.js} +3 -3
- package/dist/{FiberRef-61cd9abe.cjs.dev.js → FiberRef-1db44a9b.cjs.dev.js} +2 -2
- package/dist/{FiberRef-0b332631.cjs.prod.js → FiberRef-efb4a3ac.cjs.prod.js} +2 -2
- package/dist/{GroupBy-bd212344.cjs.dev.js → GroupBy-8a8149b4.cjs.dev.js} +1 -1
- package/dist/{GroupBy-bb08aeb2.cjs.prod.js → GroupBy-b74084af.cjs.prod.js} +1 -1
- package/dist/{Hub-926961e9.cjs.prod.js → Hub-6e64debd.cjs.prod.js} +2 -2
- package/dist/{Hub-af0194fd.cjs.dev.js → Hub-74834668.cjs.dev.js} +2 -2
- package/dist/{KeyedPool-f7b4675c.cjs.dev.js → KeyedPool-b05481e9.cjs.dev.js} +3 -3
- package/dist/{KeyedPool-0ddba691.cjs.prod.js → KeyedPool-cd8abf95.cjs.prod.js} +3 -3
- package/dist/{Layer-ec0ab71c.cjs.prod.js → Layer-297269fd.cjs.prod.js} +1 -1
- package/dist/{Layer-6ad0ac38.cjs.dev.js → Layer-c69f3fdc.cjs.dev.js} +1 -1
- package/dist/{Logger-620f1fa9.cjs.dev.js → Logger-680763c7.cjs.dev.js} +2 -2
- package/dist/{Logger-3df1180d.cjs.prod.js → Logger-7a664cc3.cjs.prod.js} +2 -2
- package/dist/{Metric-ebc35919.cjs.dev.js → Metric-09d012ff.cjs.dev.js} +1 -1
- package/dist/{Metric-9607aa06.cjs.prod.js → Metric-b7563a68.cjs.prod.js} +1 -1
- package/dist/{MetricHook-fdc68e37.cjs.dev.js → MetricHook-3104e93b.cjs.dev.js} +1 -1
- package/dist/{MetricHook-a742d813.cjs.prod.js → MetricHook-efd05d72.cjs.prod.js} +1 -1
- package/dist/{MetricKey-b17b2c9a.cjs.prod.js → MetricKey-9cfcaec8.cjs.prod.js} +1 -1
- package/dist/{MetricKey-be3afc49.cjs.dev.js → MetricKey-c3ba437e.cjs.dev.js} +1 -1
- package/dist/{MetricKeyType-3dfa6802.cjs.prod.js → MetricKeyType-6d2d9036.cjs.prod.js} +1 -1
- package/dist/{MetricKeyType-fba3e0ec.cjs.dev.js → MetricKeyType-c1d7ebe8.cjs.dev.js} +1 -1
- package/dist/{MetricPolling-061de6b9.cjs.dev.js → MetricPolling-5af0ff67.cjs.dev.js} +3 -3
- package/dist/{MetricPolling-6e5e4b2e.cjs.prod.js → MetricPolling-a0a4e798.cjs.prod.js} +3 -3
- package/dist/{MetricRegistry-4df5e56b.cjs.dev.js → MetricRegistry-e4af936b.cjs.dev.js} +1 -1
- package/dist/{MetricRegistry-da2c65bd.cjs.prod.js → MetricRegistry-ff6df283.cjs.prod.js} +1 -1
- package/dist/{Pool-d8e4142e.cjs.prod.js → Pool-54389592.cjs.prod.js} +1 -1
- package/dist/{Pool-e8a79a57.cjs.dev.js → Pool-fe1b506a.cjs.dev.js} +1 -1
- package/dist/{Queue-de055f1c.cjs.prod.js → Queue-5f954287.cjs.prod.js} +1 -1
- package/dist/{Queue-55a39179.cjs.dev.js → Queue-8d082fe4.cjs.dev.js} +1 -1
- package/dist/{Random-d6a2f801.cjs.dev.js → Random-35304046.cjs.dev.js} +1 -1
- package/dist/{Random-ade126e8.cjs.prod.js → Random-b4709b6a.cjs.prod.js} +1 -1
- package/dist/{Reloadable-5f1ed95c.cjs.prod.js → Reloadable-2b8ba75d.cjs.prod.js} +5 -5
- package/dist/{Reloadable-e8bcb00e.cjs.dev.js → Reloadable-b01c9297.cjs.dev.js} +5 -5
- package/dist/{Request-45226c5f.cjs.prod.js → Request-53592fe4.cjs.prod.js} +2 -2
- package/dist/{Request-9d12c3ba.cjs.dev.js → Request-d3b63af6.cjs.dev.js} +2 -2
- package/dist/{RequestBlock-0e9f377b.cjs.dev.js → RequestBlock-1aa4c3bd.cjs.dev.js} +1 -1
- package/dist/{RequestBlock-d4c7c31d.cjs.prod.js → RequestBlock-8c3b51d1.cjs.prod.js} +1 -1
- package/dist/{RequestResolver-8764ee8c.cjs.prod.js → RequestResolver-133197d5.cjs.prod.js} +2 -2
- package/dist/{RequestResolver-b287a04a.cjs.dev.js → RequestResolver-86c21b80.cjs.dev.js} +2 -2
- package/dist/{Resource-f95cf55a.cjs.prod.js → Resource-2530fe45.cjs.prod.js} +3 -3
- package/dist/{Resource-4f2b627f.cjs.dev.js → Resource-e50b4b25.cjs.dev.js} +3 -3
- package/dist/{Runtime-969e6cb2.cjs.prod.js → Runtime-0d643f0c.cjs.prod.js} +1 -1
- package/dist/{Runtime-dc0234a0.cjs.dev.js → Runtime-c4b887ff.cjs.dev.js} +1 -1
- package/dist/{RuntimeFlags-7a400d83.cjs.prod.js → RuntimeFlags-9d8fac5a.cjs.prod.js} +1 -1
- package/dist/{RuntimeFlags-60dfc3f5.cjs.dev.js → RuntimeFlags-f67e3984.cjs.dev.js} +1 -1
- package/dist/{STM-b8d9766d.cjs.prod.js → STM-23270be2.cjs.prod.js} +2 -2
- package/dist/{STM-af9026e6.cjs.dev.js → STM-5a4c9921.cjs.dev.js} +2 -2
- package/dist/{Schedule-58648908.cjs.prod.js → Schedule-0444792d.cjs.prod.js} +1 -1
- package/dist/{Schedule-76089454.cjs.dev.js → Schedule-b6c7b49a.cjs.dev.js} +1 -1
- package/dist/{ScheduleDecision-fbd6bb79.cjs.prod.js → ScheduleDecision-369f2d2b.cjs.prod.js} +1 -1
- package/dist/{ScheduleDecision-9555a6dc.cjs.dev.js → ScheduleDecision-ba8d0e87.cjs.dev.js} +1 -1
- package/dist/{ScheduleInterval-3ca6dbb0.cjs.dev.js → ScheduleInterval-51f42533.cjs.dev.js} +1 -1
- package/dist/{ScheduleInterval-15c7da05.cjs.prod.js → ScheduleInterval-78037484.cjs.prod.js} +1 -1
- package/dist/{ScheduleIntervals-36ff45c1.cjs.dev.js → ScheduleIntervals-b0bfcf3b.cjs.dev.js} +1 -1
- package/dist/{ScheduleIntervals-a5bbdb0d.cjs.prod.js → ScheduleIntervals-db13140c.cjs.prod.js} +1 -1
- package/dist/{Scope-e3e714b4.cjs.prod.js → Scope-311c7eb9.cjs.prod.js} +1 -1
- package/dist/{Scope-820b74b2.cjs.dev.js → Scope-6ba9ec6d.cjs.dev.js} +1 -1
- package/dist/{ScopedCache-f9b2f52e.cjs.dev.js → ScopedCache-3f58b125.cjs.dev.js} +5 -5
- package/dist/{ScopedCache-467ccc2b.cjs.prod.js → ScopedCache-8f99505c.cjs.prod.js} +5 -5
- package/dist/{ScopedRef-b45fd0e8.cjs.prod.js → ScopedRef-7946d287.cjs.prod.js} +1 -1
- package/dist/{ScopedRef-735385de.cjs.dev.js → ScopedRef-b92e1633.cjs.dev.js} +1 -1
- package/dist/{Sink-dffe83ea.cjs.dev.js → Sink-9f13da17.cjs.dev.js} +1 -1
- package/dist/{Sink-cb1bba84.cjs.prod.js → Sink-9f82fc3b.cjs.prod.js} +1 -1
- package/dist/{Stream-c348a386.cjs.dev.js → Stream-14325ecb.cjs.dev.js} +2 -2
- package/dist/{Stream-39e8de11.cjs.prod.js → Stream-cf262c16.cjs.prod.js} +2 -2
- package/dist/{SubscriptionRef-62745b92.cjs.prod.js → SubscriptionRef-aa7bdc5f.cjs.prod.js} +5 -5
- package/dist/{SubscriptionRef-53e8686c.cjs.dev.js → SubscriptionRef-d3c1aa07.cjs.dev.js} +5 -5
- package/dist/{Supervisor-0ea7382b.cjs.prod.js → Supervisor-21087253.cjs.prod.js} +2 -2
- package/dist/{Supervisor-cf21fcaa.cjs.dev.js → Supervisor-40dd7ce5.cjs.dev.js} +2 -2
- package/dist/{SynchronizedRef-9e9689e9.cjs.dev.js → SynchronizedRef-3181eb0a.cjs.dev.js} +1 -1
- package/dist/{SynchronizedRef-2cc5af97.cjs.prod.js → SynchronizedRef-c6e0884b.cjs.prod.js} +1 -1
- package/dist/{TArray-6057170a.cjs.prod.js → TArray-6767b4bd.cjs.prod.js} +1 -1
- package/dist/{TArray-0b280c93.cjs.dev.js → TArray-a0a4c6e6.cjs.dev.js} +1 -1
- package/dist/{TDeferred-73b5dfc2.cjs.prod.js → TDeferred-a9839479.cjs.prod.js} +3 -3
- package/dist/{TDeferred-786b2b13.cjs.dev.js → TDeferred-ac2c4025.cjs.dev.js} +3 -3
- package/dist/{THub-810db270.cjs.prod.js → THub-25b77864.cjs.prod.js} +5 -5
- package/dist/{THub-bcd35bc0.cjs.dev.js → THub-38053ae1.cjs.dev.js} +5 -5
- package/dist/{TMap-7206da08.cjs.prod.js → TMap-91505efa.cjs.prod.js} +1 -1
- package/dist/{TMap-06e0747b.cjs.dev.js → TMap-de8ac080.cjs.dev.js} +1 -1
- package/dist/{TPriorityQueue-71490af5.cjs.prod.js → TPriorityQueue-00b65d1a.cjs.prod.js} +2 -2
- package/dist/{TPriorityQueue-0844551b.cjs.dev.js → TPriorityQueue-96ff0e15.cjs.dev.js} +2 -2
- package/dist/{TQueue-67ccf55b.cjs.prod.js → TQueue-5e242ca2.cjs.prod.js} +1 -1
- package/dist/{TQueue-5621ef6e.cjs.dev.js → TQueue-707762bf.cjs.dev.js} +1 -1
- package/dist/{TRandom-c974e739.cjs.dev.js → TRandom-5eb21d23.cjs.dev.js} +5 -5
- package/dist/{TRandom-557dc8e1.cjs.prod.js → TRandom-ec9c7bf7.cjs.prod.js} +5 -5
- package/dist/{TReentrantLock-5f7cba2d.cjs.dev.js → TReentrantLock-1b77d76f.cjs.dev.js} +3 -3
- package/dist/{TReentrantLock-e6ee830e.cjs.prod.js → TReentrantLock-c5a8401e.cjs.prod.js} +3 -3
- package/dist/{TRef-f7b2bc6f.cjs.prod.js → TRef-b87580d7.cjs.prod.js} +1 -1
- package/dist/{TRef-38eac0f0.cjs.dev.js → TRef-cf2e8ad7.cjs.dev.js} +1 -1
- package/dist/{TSemaphore-28d87428.cjs.prod.js → TSemaphore-29503416.cjs.prod.js} +4 -4
- package/dist/{TSemaphore-3cf15f77.cjs.dev.js → TSemaphore-50edec08.cjs.dev.js} +4 -4
- package/dist/{TSet-677ac73c.cjs.prod.js → TSet-3c2568e9.cjs.prod.js} +2 -2
- package/dist/{TSet-1dca2ef3.cjs.dev.js → TSet-bb4775ca.cjs.dev.js} +2 -2
- package/dist/{Take-bfdbd28d.cjs.dev.js → Take-684c9901.cjs.dev.js} +1 -1
- package/dist/{Take-e40627bd.cjs.prod.js → Take-b4c91438.cjs.prod.js} +1 -1
- package/dist/{TestAnnotations-14444032.cjs.prod.js → TestAnnotations-5db95828.cjs.prod.js} +2 -2
- package/dist/{TestAnnotations-ee0f8c79.cjs.dev.js → TestAnnotations-733b39ef.cjs.dev.js} +2 -2
- package/dist/{TestClock-30ba14e8.cjs.prod.js → TestClock-89a36b89.cjs.prod.js} +8 -8
- package/dist/{TestClock-d782f3ee.cjs.dev.js → TestClock-e2773846.cjs.dev.js} +8 -8
- package/dist/{TestContext-eebb1aad.cjs.dev.js → TestContext-3328163e.cjs.dev.js} +4 -4
- package/dist/{TestContext-f76f750e.cjs.prod.js → TestContext-917bf305.cjs.prod.js} +4 -4
- package/dist/{TestLive-dc458127.cjs.dev.js → TestLive-465ad3ef.cjs.dev.js} +1 -1
- package/dist/{TestLive-e5d614fe.cjs.prod.js → TestLive-f3232ac4.cjs.prod.js} +1 -1
- package/dist/{TestServices-b3af20a3.cjs.prod.js → TestServices-605f726e.cjs.prod.js} +6 -6
- package/dist/{TestServices-7a60d735.cjs.dev.js → TestServices-921e5c42.cjs.dev.js} +6 -6
- package/dist/{Tracer-3cd1e3bc.cjs.prod.js → Tracer-d06d0b61.cjs.prod.js} +1 -1
- package/dist/{Tracer-435e56fd.cjs.dev.js → Tracer-da182c8c.cjs.dev.js} +1 -1
- package/dist/{cache-66637407.cjs.dev.js → cache-6cdc31f7.cjs.dev.js} +3 -3
- package/dist/{cache-c88afdc0.cjs.prod.js → cache-ab7bbfbd.cjs.prod.js} +3 -3
- package/dist/{circular-d08ca815.cjs.dev.js → circular-4cb0b79d.cjs.dev.js} +5 -5
- package/dist/{circular-7eed8a92.cjs.prod.js → circular-5b3558d9.cjs.prod.js} +5 -5
- package/dist/{circular-5c436934.cjs.dev.js → circular-78011d6b.cjs.dev.js} +3 -3
- package/dist/{circular-c8f8e360.cjs.prod.js → circular-81b4c556.cjs.prod.js} +3 -3
- package/dist/{core-20a91d69.cjs.prod.js → core-4ced6e17.cjs.prod.js} +4 -4
- package/dist/{core-6e50c01f.cjs.dev.js → core-d9eea905.cjs.dev.js} +4 -4
- package/dist/{core-effect-780f9db7.cjs.dev.js → core-effect-a9b8ee08.cjs.dev.js} +4 -4
- package/dist/{core-effect-023f4abe.cjs.prod.js → core-effect-bf806dd9.cjs.prod.js} +4 -4
- package/dist/{dataSource-7ec08fa5.cjs.prod.js → dataSource-abccc876.cjs.prod.js} +2 -2
- package/dist/{dataSource-e56e2a99.cjs.dev.js → dataSource-d5f79f4e.cjs.dev.js} +2 -2
- package/dist/declarations/src/Duration.d.ts +5 -0
- package/dist/declarations/src/Duration.d.ts.map +1 -1
- package/dist/{defaultServices-452aebad.cjs.prod.js → defaultServices-4112c0c9.cjs.prod.js} +1 -1
- package/dist/{defaultServices-e9a9b935.cjs.dev.js → defaultServices-60c753dc.cjs.dev.js} +1 -1
- package/dist/effect.cjs.dev.js +93 -93
- package/dist/effect.cjs.prod.js +93 -93
- package/dist/effect.esm.js +283 -197
- package/dist/{fiber-2975db3a.cjs.prod.js → fiber-90ffaf8c.cjs.prod.js} +1 -1
- package/dist/{fiber-1132297b.cjs.dev.js → fiber-da1a207c.cjs.dev.js} +1 -1
- package/dist/{fiberRuntime-9d6d53be.cjs.prod.js → fiberRuntime-1c369a47.cjs.prod.js} +7 -7
- package/dist/{fiberRuntime-ac7fae54.cjs.dev.js → fiberRuntime-e9680313.cjs.dev.js} +7 -7
- package/dist/{groupBy-f0a83f90.cjs.prod.js → groupBy-0cc85afb.cjs.prod.js} +5 -5
- package/dist/{groupBy-e1d3c5e8.cjs.dev.js → groupBy-b204a881.cjs.dev.js} +5 -5
- package/dist/{hook-0bf192b2.cjs.prod.js → hook-6c7550dc.cjs.prod.js} +1 -1
- package/dist/{hook-9e86d119.cjs.dev.js → hook-822704ea.cjs.dev.js} +1 -1
- package/dist/{key-a79acfe7.cjs.prod.js → key-330b98b1.cjs.prod.js} +1 -1
- package/dist/{key-6ac569ca.cjs.dev.js → key-a474fc0d.cjs.dev.js} +1 -1
- package/dist/{keyType-c1e7cfc5.cjs.dev.js → keyType-1e916ae2.cjs.dev.js} +1 -1
- package/dist/{keyType-681c1c4a.cjs.prod.js → keyType-8460e792.cjs.prod.js} +1 -1
- package/dist/{layer-f0c8023d.cjs.dev.js → layer-ae8eefad.cjs.dev.js} +9 -9
- package/dist/{layer-db9c42be.cjs.prod.js → layer-ffacc2c5.cjs.prod.js} +9 -9
- package/dist/{pool-cd9f1284.cjs.dev.js → pool-3f16af61.cjs.dev.js} +4 -4
- package/dist/{pool-975b7d21.cjs.prod.js → pool-59a31f55.cjs.prod.js} +4 -4
- package/dist/{query-12e387cf.cjs.dev.js → query-193d0a89.cjs.dev.js} +3 -3
- package/dist/{query-eb8a7001.cjs.prod.js → query-fe4a82d6.cjs.prod.js} +3 -3
- package/dist/{queue-0dbc2b3f.cjs.dev.js → queue-04ae7ec7.cjs.dev.js} +1 -1
- package/dist/{queue-f70dda1a.cjs.prod.js → queue-b81aee38.cjs.prod.js} +1 -1
- package/dist/{registry-92c00ecd.cjs.prod.js → registry-29905dcc.cjs.prod.js} +2 -2
- package/dist/{registry-9e9ae2c7.cjs.dev.js → registry-c883cf52.cjs.dev.js} +2 -2
- package/dist/{runtime-f8d0f39b.cjs.dev.js → runtime-3ae98f19.cjs.dev.js} +3 -3
- package/dist/{runtime-0ada41f2.cjs.prod.js → runtime-8c3f1bd3.cjs.prod.js} +3 -3
- package/dist/{schedule-18b063cb.cjs.dev.js → schedule-479d8fcc.cjs.dev.js} +7 -7
- package/dist/{schedule-f918adf5.cjs.prod.js → schedule-7e30db2d.cjs.prod.js} +7 -7
- package/dist/{scopedRef-50091b28.cjs.dev.js → scopedRef-16d9d192.cjs.dev.js} +3 -3
- package/dist/{scopedRef-d6396f06.cjs.prod.js → scopedRef-40b5bb82.cjs.prod.js} +3 -3
- package/dist/{singleProducerAsyncInput-f3dd657f.cjs.dev.js → singleProducerAsyncInput-552122e6.cjs.dev.js} +1 -1
- package/dist/{singleProducerAsyncInput-bd600183.cjs.prod.js → singleProducerAsyncInput-c5ff73b7.cjs.prod.js} +1 -1
- package/dist/{sink-bb64c8a6.cjs.dev.js → sink-16a1a901.cjs.dev.js} +9 -9
- package/dist/{sink-6a1db2b0.cjs.prod.js → sink-c9ae7558.cjs.prod.js} +9 -9
- package/dist/{stm-2b8fa344.cjs.dev.js → stm-44f045e5.cjs.dev.js} +3 -3
- package/dist/{stm-e3401389.cjs.prod.js → stm-59af7e62.cjs.prod.js} +3 -3
- package/dist/{stream-7bc5bfac.cjs.dev.js → stream-84a13e23.cjs.dev.js} +13 -17
- package/dist/{stream-22ea5a61.cjs.prod.js → stream-8acbee57.cjs.prod.js} +13 -17
- package/dist/{tArray-a211cc29.cjs.prod.js → tArray-a690480d.cjs.prod.js} +3 -3
- package/dist/{tArray-36a6e713.cjs.dev.js → tArray-c0a3d1e2.cjs.dev.js} +3 -3
- package/dist/{tMap-fd504724.cjs.dev.js → tMap-1c1b10c4.cjs.dev.js} +5 -5
- package/dist/{tMap-9c22a2ff.cjs.prod.js → tMap-8dfc92f5.cjs.prod.js} +5 -5
- package/dist/{tQueue-4b66ca7b.cjs.prod.js → tQueue-48a29f8b.cjs.prod.js} +4 -4
- package/dist/{tQueue-565f8994.cjs.dev.js → tQueue-aaec000f.cjs.dev.js} +4 -4
- package/dist/{tRef-565db536.cjs.dev.js → tRef-1df89632.cjs.dev.js} +1 -1
- package/dist/{tRef-74dff65b.cjs.prod.js → tRef-cc473a9f.cjs.prod.js} +1 -1
- package/dist/{take-05ea3c27.cjs.prod.js → take-906e6ef4.cjs.prod.js} +1 -1
- package/dist/{take-f87477f8.cjs.dev.js → take-e1c6b82a.cjs.dev.js} +1 -1
- package/{dist/Context-149c432f.esm.js → internal/Context.esm.js} +9 -9
- package/internal/Data.esm.js +49 -0
- package/internal/Differ/ChunkPatch.esm.js +131 -0
- package/internal/Differ/ContextPatch.esm.js +158 -0
- package/internal/Differ/HashMapPatch.esm.js +133 -0
- package/internal/Differ/HashSetPatch.esm.js +107 -0
- package/internal/Differ/OrPatch.esm.js +196 -0
- package/internal/Differ.esm.js +130 -0
- package/internal/Effectable.esm.js +89 -0
- package/internal/Either.esm.js +95 -0
- package/internal/Encoding/Base64.esm.js +74 -0
- package/internal/Encoding/Base64Url.esm.js +24 -0
- package/internal/Encoding/Common.esm.js +21 -0
- package/internal/Encoding/Hex.esm.js +55 -0
- package/internal/HashMap/array.esm.js +51 -0
- package/internal/HashMap/bitwise.esm.js +34 -0
- package/internal/HashMap/config.esm.js +16 -0
- package/internal/HashMap/keySet.esm.js +8 -0
- package/internal/HashMap/node.esm.js +253 -0
- package/internal/HashMap.esm.js +366 -0
- package/internal/HashSet.esm.js +211 -0
- package/internal/Option.esm.js +75 -0
- package/{dist/ReadonlyArray-c8b1f51c.esm.js → internal/ReadonlyArray.esm.js} +1 -1
- package/internal/RedBlackTree/iterator.esm.js +204 -0
- package/internal/RedBlackTree/node.esm.js +43 -0
- package/{dist/RedBlackTree-611b3b4c.esm.js → internal/RedBlackTree.esm.js} +65 -655
- package/{dist/Stack-765c2298.esm.js → internal/Stack.esm.js} +1 -1
- package/internal/blockedRequests.esm.js +365 -0
- package/{dist/cache-d62912e6.esm.js → internal/cache.esm.js} +18 -18
- package/internal/cause.esm.js +1067 -0
- package/internal/channel/channelExecutor.esm.js +692 -0
- package/internal/channel/channelState.esm.js +78 -0
- package/{dist/childExecutorDecision-a7b466d2.esm.js → internal/channel/childExecutorDecision.esm.js} +3 -17
- package/internal/channel/continuation.esm.js +58 -0
- package/{dist/mergeDecision-d31cb28c.esm.js → internal/channel/mergeDecision.esm.js} +3 -12
- package/{dist/mergeState-1325df20.esm.js → internal/channel/mergeState.esm.js} +3 -17
- package/{dist/mergeStrategy-a88b5442.esm.js → internal/channel/mergeStrategy.esm.js} +3 -12
- package/{dist/singleProducerAsyncInput-5b2ede75.esm.js → internal/channel/singleProducerAsyncInput.esm.js} +8 -8
- package/internal/channel/subexecutor.esm.js +153 -0
- package/{dist/upstreamPullRequest-fed99e29.esm.js → internal/channel/upstreamPullRequest.esm.js} +3 -12
- package/{dist/upstreamPullStrategy-d5d1aa92.esm.js → internal/channel/upstreamPullStrategy.esm.js} +3 -12
- package/internal/channel.esm.js +648 -0
- package/internal/clock.esm.js +82 -0
- package/internal/completedRequestMap.esm.js +7 -0
- package/internal/concurrency.esm.js +47 -0
- package/{dist/config-b039b99f.esm.js → internal/config.esm.js} +12 -66
- package/{dist/configError-8b2e2999.esm.js → internal/configError.esm.js} +5 -34
- package/{dist/pathPatch-f393ab1b.esm.js → internal/configProvider/pathPatch.esm.js} +7 -7
- package/{dist/configProvider-c997961d.esm.js → internal/configProvider.esm.js} +16 -79
- package/{dist/configSecret-6e9eaf9d.esm.js → internal/configSecret.esm.js} +5 -5
- package/internal/console.esm.js +72 -0
- package/{dist/core-effect-57445976.esm.js → internal/core-effect.esm.js} +26 -53
- package/internal/core-stream.esm.js +293 -0
- package/internal/core.esm.js +1745 -0
- package/{dist/dataSource-1f41ea46.esm.js → internal/dataSource.esm.js} +9 -8
- package/internal/defaultServices/console.esm.js +96 -0
- package/internal/defaultServices.esm.js +84 -0
- package/internal/deferred.esm.js +37 -0
- package/{dist/circular-08fb0138.esm.js → internal/effect/circular.esm.js} +23 -20
- package/internal/executionStrategy.esm.js +61 -0
- package/{dist/fiber-8fb398f3.esm.js → internal/fiber.esm.js} +15 -121
- package/internal/fiberId.esm.js +243 -0
- package/internal/fiberMessage.esm.js +54 -0
- package/{dist/patch-743d675c.esm.js → internal/fiberRefs/patch.esm.js} +5 -5
- package/{dist/fiberRefs-69cce1a0.esm.js → internal/fiberRefs.esm.js} +8 -8
- package/{dist/fiberRuntime-bfcf5f49.esm.js → internal/fiberRuntime.esm.js} +152 -1006
- package/internal/fiberScope.esm.js +58 -0
- package/internal/fiberStatus.esm.js +89 -0
- package/{dist/groupBy-d11b31b1.esm.js → internal/groupBy.esm.js} +16 -14
- package/{dist/Hub-121dbf51.esm.js → internal/hub.esm.js} +34 -196
- package/internal/keyedPool.esm.js +161 -0
- package/{dist/circular-e463e1e6.esm.js → internal/layer/circular.esm.js} +10 -8
- package/{dist/layer-35828af7.esm.js → internal/layer.esm.js} +21 -65
- package/internal/logSpan.esm.js +15 -0
- package/internal/logger-circular.esm.js +21 -0
- package/internal/logger.esm.js +213 -0
- package/{dist/boundaries-52029180.esm.js → internal/metric/boundaries.esm.js} +7 -7
- package/{dist/hook-fd61107b.esm.js → internal/metric/hook.esm.js} +10 -10
- package/{dist/key-340a2bae.esm.js → internal/metric/key.esm.js} +9 -9
- package/{dist/keyType-869d90f8.esm.js → internal/metric/keyType.esm.js} +6 -6
- package/{dist/label-0cc6c9a0.esm.js → internal/metric/label.esm.js} +5 -5
- package/{dist/pair-5bb3eef4.esm.js → internal/metric/pair.esm.js} +2 -2
- package/internal/metric/polling.esm.js +74 -0
- package/{dist/registry-c59aeb06.esm.js → internal/metric/registry.esm.js} +8 -8
- package/{dist/state-2c6abdb1.esm.js → internal/metric/state.esm.js} +5 -5
- package/internal/metric.esm.js +204 -0
- package/internal/opCodes/cause.esm.js +31 -0
- package/internal/opCodes/channel.esm.js +71 -0
- package/internal/opCodes/channelChildExecutorDecision.esm.js +16 -0
- package/internal/opCodes/channelMergeDecision.esm.js +11 -0
- package/internal/opCodes/channelMergeState.esm.js +16 -0
- package/internal/opCodes/channelMergeStrategy.esm.js +11 -0
- package/internal/opCodes/channelState.esm.js +21 -0
- package/internal/opCodes/channelUpstreamPullRequest.esm.js +11 -0
- package/internal/opCodes/channelUpstreamPullStrategy.esm.js +11 -0
- package/internal/opCodes/config.esm.js +56 -0
- package/internal/opCodes/configError.esm.js +31 -0
- package/internal/opCodes/continuation.esm.js +11 -0
- package/internal/opCodes/deferred.esm.js +11 -0
- package/internal/opCodes/effect.esm.js +71 -0
- package/internal/opCodes/layer.esm.js +46 -0
- package/internal/opCodes/streamHaltStrategy.esm.js +21 -0
- package/{dist/pool-7d5c25ef.esm.js → internal/pool.esm.js} +13 -13
- package/{dist/query-242f7fda.esm.js → internal/query.esm.js} +10 -7
- package/{dist/queue-f74db567.esm.js → internal/queue.esm.js} +10 -10
- package/internal/random.esm.js +58 -0
- package/internal/ref.esm.js +121 -0
- package/internal/reloadable.esm.js +62 -0
- package/internal/request.esm.js +81 -0
- package/internal/resource.esm.js +35 -0
- package/internal/ringBuffer.esm.js +56 -0
- package/{dist/runtime-bcdd4416.esm.js → internal/runtime.esm.js} +19 -17
- package/internal/runtimeFlags.esm.js +137 -0
- package/internal/runtimeFlagsPatch.esm.js +57 -0
- package/internal/schedule/decision.esm.js +45 -0
- package/internal/schedule/interval.esm.js +85 -0
- package/internal/schedule/intervals.esm.js +135 -0
- package/{dist/schedule-566ae18c.esm.js → internal/schedule.esm.js} +26 -25
- package/{dist/ScopedCache-8fa7e96d.esm.js → internal/scopedCache.esm.js} +27 -83
- package/{dist/scopedRef-0fdefef8.esm.js → internal/scopedRef.esm.js} +10 -10
- package/internal/singleShotGen.esm.js +30 -0
- package/internal/sink.esm.js +918 -0
- package/{dist/core-f6cae6d7.esm.js → internal/stm/core.esm.js} +46 -525
- package/internal/stm/opCodes/stm.esm.js +56 -0
- package/internal/stm/opCodes/stmState.esm.js +16 -0
- package/internal/stm/opCodes/strategy.esm.js +16 -0
- package/internal/stm/opCodes/tExit.esm.js +26 -0
- package/internal/stm/opCodes/tryCommit.esm.js +11 -0
- package/internal/stm/stm/entry.esm.js +47 -0
- package/internal/stm/stm/journal.esm.js +96 -0
- package/internal/stm/stm/stmState.esm.js +104 -0
- package/internal/stm/stm/tExit.esm.js +113 -0
- package/internal/stm/stm/tryCommit.esm.js +25 -0
- package/internal/stm/stm/txnId.esm.js +15 -0
- package/internal/stm/stm/versioned.esm.js +8 -0
- package/{dist/stm-6937f6f2.esm.js → internal/stm/stm.esm.js} +16 -14
- package/{dist/tArray-79024770.esm.js → internal/stm/tArray.esm.js} +8 -8
- package/internal/stm/tDeferred.esm.js +49 -0
- package/{dist/THub-573c2fb3.esm.js → internal/stm/tHub.esm.js} +28 -200
- package/{dist/tMap-907e37f4.esm.js → internal/stm/tMap.esm.js} +13 -13
- package/internal/stm/tPriorityQueue.esm.js +156 -0
- package/{dist/tQueue-74395d76.esm.js → internal/stm/tQueue.esm.js} +10 -24
- package/internal/stm/tRandom.esm.js +89 -0
- package/internal/stm/tReentrantLock.esm.js +216 -0
- package/{dist/tRef-fc8ff438.esm.js → internal/stm/tRef.esm.js} +6 -4
- package/internal/stm/tSemaphore.esm.js +73 -0
- package/internal/stm/tSet.esm.js +113 -0
- package/internal/stream/debounceState.esm.js +39 -0
- package/internal/stream/emit.esm.js +51 -0
- package/internal/stream/haltStrategy.esm.js +74 -0
- package/internal/stream/handoff.esm.js +79 -0
- package/internal/stream/handoffSignal.esm.js +40 -0
- package/internal/stream/pull.esm.js +10 -0
- package/internal/stream/sinkEndReason.esm.js +27 -0
- package/internal/stream/zipAllState.esm.js +65 -0
- package/internal/stream/zipChunksState.esm.js +41 -0
- package/{dist/stream-e44fba40.esm.js → internal/stream.esm.js} +399 -770
- package/internal/string-utils.esm.js +66 -0
- package/internal/subscriptionRef.esm.js +65 -0
- package/internal/supervisor/patch.esm.js +156 -0
- package/internal/supervisor.esm.js +204 -0
- package/{dist/synchronizedRef-1ceb6bd3.esm.js → internal/synchronizedRef.esm.js} +4 -4
- package/{dist/take-0d5e0eab.esm.js → internal/take.esm.js} +8 -8
- package/internal/testing/suspendedWarningData.esm.js +66 -0
- package/internal/testing/warningData.esm.js +75 -0
- package/{dist/timeout-4180303d.esm.js → internal/timeout.esm.js} +1 -1
- package/internal/tracer.esm.js +61 -0
- package/package.json +700 -554
- package/dist/Bigint-bf034c1f.esm.js +0 -370
- package/dist/Boolean-bf38e241.esm.js +0 -248
- package/dist/Brand-f068009f.esm.js +0 -215
- package/dist/Cache-27cd0ab7.esm.js +0 -120
- package/dist/Cause-5946c7a3.esm.js +0 -730
- package/dist/Channel-4bba5096.esm.js +0 -1109
- package/dist/ChannelChildExecutorDecision-674b3a48.esm.js +0 -125
- package/dist/ChannelMergeDecision-e5f34de0.esm.js +0 -70
- package/dist/ChannelMergeState-ae694a7c.esm.js +0 -114
- package/dist/ChannelMergeStrategy-9ef51c54.esm.js +0 -95
- package/dist/ChannelSingleProducerAsyncInput-1d15a3ec.esm.js +0 -52
- package/dist/ChannelUpstreamPullRequest-9b3a6733.esm.js +0 -95
- package/dist/ChannelUpstreamPullStrategy-85e1042b.esm.js +0 -94
- package/dist/Chunk-4c1f4599.esm.js +0 -1167
- package/dist/Clock-f8b987d7.esm.js +0 -88
- package/dist/Config-8d8f5a9f.esm.js +0 -358
- package/dist/ConfigError-41421a53.esm.js +0 -206
- package/dist/ConfigProvider-977168f2.esm.js +0 -220
- package/dist/ConfigProviderPathPatch-881ec2b5.esm.js +0 -79
- package/dist/ConfigSecret-9d3bf471.esm.js +0 -74
- package/dist/Console-9be5cd81.esm.js +0 -247
- package/dist/Context-c41aa832.esm.js +0 -312
- package/dist/Data-dee529b9.esm.js +0 -224
- package/dist/DefaultServices-b70d7e44.esm.js +0 -30
- package/dist/Deferred-9010d2ac.esm.js +0 -230
- package/dist/Differ-a249bf4d.esm.js +0 -975
- package/dist/Duration-98bca14c.esm.js +0 -467
- package/dist/Effect-ee05a487.esm.js +0 -3417
- package/dist/Effectable-a292d920.esm.js +0 -158
- package/dist/Effectable-d9b23ee3.esm.js +0 -89
- package/dist/Either-408d23a8.esm.js +0 -163
- package/dist/Either-aa46c018.esm.js +0 -473
- package/dist/Encoding-d95012ad.esm.js +0 -295
- package/dist/Equal-2a99fde3.esm.js +0 -65
- package/dist/Equivalence-cf2752b1.esm.js +0 -218
- package/dist/Error-083b7b69.esm.js +0 -53
- package/dist/ExecutionStrategy-e3775e86.esm.js +0 -168
- package/dist/Exit-666b4f01.esm.js +0 -371
- package/dist/Fiber-ebef9c60.esm.js +0 -473
- package/dist/FiberId-17e50f05.esm.js +0 -422
- package/dist/FiberRef-ddf157fd.esm.js +0 -338
- package/dist/FiberRefs-f705c1b5.esm.js +0 -122
- package/dist/FiberRefsPatch-04e0adc7.esm.js +0 -84
- package/dist/FiberStatus-7a24d5ef.esm.js +0 -187
- package/dist/Function-12511160.esm.js +0 -516
- package/dist/GlobalValue-b5edf230.esm.js +0 -25
- package/dist/GroupBy-4c667347.esm.js +0 -72
- package/dist/HKT-1990744d.esm.js +0 -5
- package/dist/Hash-7910f34f.esm.js +0 -179
- package/dist/HashMap-6c230bde.esm.js +0 -327
- package/dist/HashSet-69824ba8.esm.js +0 -907
- package/dist/HashSet-ae2856c1.esm.js +0 -256
- package/dist/Inspectable-b0c51e90.esm.js +0 -45
- package/dist/KeyedPool-08ee3618.esm.js +0 -273
- package/dist/Layer-8586a429.esm.js +0 -623
- package/dist/List-6e58a1e9.esm.js +0 -865
- package/dist/LogLevel-5a4fa506.esm.js +0 -222
- package/dist/LogSpan-f36e9619.esm.js +0 -42
- package/dist/Logger-aafaa76b.esm.js +0 -246
- package/dist/Metric-fef02dd6.esm.js +0 -442
- package/dist/MetricBoundaries-c8610876.esm.js +0 -61
- package/dist/MetricHook-6859801b.esm.js +0 -80
- package/dist/MetricKey-d1b96e85.esm.js +0 -118
- package/dist/MetricKeyType-4ce20904.esm.js +0 -168
- package/dist/MetricLabel-123185d1.esm.js +0 -48
- package/dist/MetricPair-840a98b7.esm.js +0 -45
- package/dist/MetricPolling-538e65c8.esm.js +0 -167
- package/dist/MetricRegistry-1e32438c.esm.js +0 -34
- package/dist/MetricState-ccc2e0db.esm.js +0 -172
- package/dist/MutableHashMap-02b39969.esm.js +0 -142
- package/dist/MutableHashSet-db4f96e8.esm.js +0 -101
- package/dist/MutableList-76401868.esm.js +0 -281
- package/dist/MutableQueue-446ac662.esm.js +0 -202
- package/dist/MutableRef-2734b082.esm.js +0 -176
- package/dist/NonEmptyIterable-e78d759e.esm.js +0 -33
- package/dist/Number-4b836a09.esm.js +0 -394
- package/dist/Option-df40d2b9.esm.js +0 -1135
- package/dist/Order-a875fe30.esm.js +0 -293
- package/dist/Ordering-079176ff.esm.js +0 -97
- package/dist/Pipeable-10760a1d.esm.js +0 -49
- package/dist/Pool-f1667f78.esm.js +0 -114
- package/dist/Predicate-6b61b95b.esm.js +0 -677
- package/dist/Queue-d99be5de.esm.js +0 -362
- package/dist/Random-5ed16d23.esm.js +0 -94
- package/dist/ReadonlyArray-0a71b226.esm.js +0 -1584
- package/dist/ReadonlyRecord-c9f03980.esm.js +0 -544
- package/dist/Ref-5eefaff1.esm.js +0 -248
- package/dist/Reloadable-e2eba7eb.esm.js +0 -159
- package/dist/Request-8b0e9130.esm.js +0 -175
- package/dist/RequestBlock-88afac19.esm.js +0 -114
- package/dist/RequestResolver-f17a25be.esm.js +0 -213
- package/dist/Resource-525ecb8a.esm.js +0 -111
- package/dist/Runtime-7b6c0a8b.esm.js +0 -175
- package/dist/RuntimeFlags-60048f70.esm.js +0 -344
- package/dist/RuntimeFlagsPatch-51f77dce.esm.js +0 -365
- package/dist/STM-1ef98d11.esm.js +0 -1321
- package/dist/Schedule-8502145c.esm.js +0 -1059
- package/dist/ScheduleDecision-e0b221dc.esm.js +0 -99
- package/dist/ScheduleInterval-cc7fc624.esm.js +0 -229
- package/dist/ScheduleIntervals-c4dc0500.esm.js +0 -252
- package/dist/Scheduler-844c1a90.esm.js +0 -343
- package/dist/Scope-0253ac82.esm.js +0 -131
- package/dist/ScopedRef-d92cda3b.esm.js +0 -80
- package/dist/Sink-322b0a96.esm.js +0 -1107
- package/dist/SortedMap-e429b26f.esm.js +0 -190
- package/dist/SortedSet-ffc2cefd.esm.js +0 -288
- package/dist/Stream-a54c82e5.esm.js +0 -3175
- package/dist/StreamEmit-bd696ab0.esm.js +0 -5
- package/dist/StreamHaltStrategy-592df221.esm.js +0 -201
- package/dist/String-5d27ad4c.esm.js +0 -648
- package/dist/Struct-b95eb81c.esm.js +0 -134
- package/dist/SubscriptionRef-93d8d20b.esm.js +0 -245
- package/dist/Supervisor-802f0ad0.esm.js +0 -160
- package/dist/Symbol-81368584.esm.js +0 -36
- package/dist/SynchronizedRef-5b418159.esm.js +0 -187
- package/dist/TArray-e0699120.esm.js +0 -412
- package/dist/TDeferred-96a9e821.esm.js +0 -120
- package/dist/TMap-0b08af84.esm.js +0 -419
- package/dist/TPriorityQueue-a5eb73d4.esm.js +0 -360
- package/dist/TQueue-2c224826.esm.js +0 -324
- package/dist/TRandom-dbfd1b25.esm.js +0 -192
- package/dist/TReentrantLock-83290260.esm.js +0 -435
- package/dist/TRef-bb02383a.esm.js +0 -135
- package/dist/TSemaphore-9a746009.esm.js +0 -183
- package/dist/TSet-91c5d646.esm.js +0 -412
- package/dist/Take-880079f7.esm.js +0 -214
- package/dist/TestAnnotation-f4477615.esm.js +0 -124
- package/dist/TestAnnotationMap-11d08509.esm.js +0 -114
- package/dist/TestAnnotations-39f7e011.esm.js +0 -91
- package/dist/TestClock-ab72e391.esm.js +0 -565
- package/dist/TestConfig-0d2c885c.esm.js +0 -33
- package/dist/TestContext-61178585.esm.js +0 -36
- package/dist/TestLive-61a5e471.esm.js +0 -55
- package/dist/TestServices-310ebe14.esm.js +0 -306
- package/dist/TestSized-745ac7e5.esm.js +0 -58
- package/dist/Tracer-da65ce12.esm.js +0 -75
- package/dist/Tuple-eefd2c03.esm.js +0 -187
- package/dist/Types-be3804ad.esm.js +0 -5
- package/dist/Unify-118c2d56.esm.js +0 -45
- package/dist/Utils-80c21479.esm.js +0 -362
- package/dist/core-64ab7ff5.esm.js +0 -3225
- package/dist/defaultServices-b9ca1236.esm.js +0 -359
- package/dist/sink-637a9670.esm.js +0 -2877
|
@@ -1,2877 +0,0 @@
|
|
|
1
|
-
import { f as fail$2, a as failureOrCause, d as die$2, m as map$4, b as isInterrupted, c as isDieType, R as RuntimeException } from './Cause-5946c7a3.esm.js';
|
|
2
|
-
import { f as fromIterable, u as unsafeGet$1, e as empty, i as isEmpty, l as unsafeFromArray, b as appendAll, c as append, n as toReadonlyArray, d as drop$1, z as flatten$2, s as map$5, A as dropWhile$1, g as filter, o as of, B as splitAt, h as isNonEmpty, C as last$1, y as reduce } from './Chunk-4c1f4599.esm.js';
|
|
3
|
-
import { a as currentTimeMillis } from './Clock-f8b987d7.esm.js';
|
|
4
|
-
import { m as millis } from './Duration-98bca14c.esm.js';
|
|
5
|
-
import { i as isEffect, e as unit$1, g as ignore, z as zipWith$1, h as exit, s as sync$2, p as provide, m as matchCauseEffect, j as zipRight$3, k as flatMap$2, l as suspend$2, n as forkDaemon, o as ensuring$2, q as uninterruptible, r as map$2, t as zip$2, v as forEach$1, w as succeed$3, x as scoped$1, u as uninterruptibleMask, y as scope, A as forkScoped, B as addFinalizer, C as zipLeft$2, D as all$1, F as dieMessage$1, c as catchAllCause$1, G as acquireUseRelease$1, H as intoDeferred, I as tapErrorCause, f as failCause$3, J as tap, K as context$2, L as matchCause, d as flatten$1, M as gen, N as acquireRelease, O as makeSemaphore, P as interruptible, Q as asUnit$1, R as raceFirst, S as forever, T as raceWith$1, b as as$2, U as race$1, V as when, W as repeatWhile, X as never$2, Y as withSpanScoped, Z as repeatUntil, _ as takeWhile, $ as contextWith$2, a0 as filter$1, a1 as dropUntil$1, a2 as dropWhile$2 } from './Effect-ee05a487.esm.js';
|
|
6
|
-
import { b as match, l as left, r as right, m as merge$2 } from './Either-aa46c018.esm.js';
|
|
7
|
-
import { e as isFailure, z as zipRight$2, d as die$1, m as match$1, s as succeed$2, a as failCause$2, g as all, u as unit$2, h as map$3, j as zip$3 } from './Exit-666b4f01.esm.js';
|
|
8
|
-
import { d as dual, i as identity, b as constVoid, p as pipe, c as constTrue } from './Function-12511160.esm.js';
|
|
9
|
-
import { e as empty$1, j as has, u as unsafeGet$2, s as set$1 } from './HashMap-6c230bde.esm.js';
|
|
10
|
-
import { e as empty$2, h as has$1, a as add$1 } from './HashSet-ae2856c1.esm.js';
|
|
11
|
-
import { s as subscribe, b as bounded$1 } from './Hub-121dbf51.esm.js';
|
|
12
|
-
import { n as none, i as isSome, g as getOrElse, b as match$2, s as some$1, a as isNone, o as orElse$2 } from './Option-df40d2b9.esm.js';
|
|
13
|
-
import { p as pipeArguments } from './Pipeable-10760a1d.esm.js';
|
|
14
|
-
import { t as take$1, b as bounded, s as shutdown, o as offer, u as unbounded, a as size, c as offerAll } from './Queue-d99be5de.esm.js';
|
|
15
|
-
import { X as span } from './ReadonlyArray-0a71b226.esm.js';
|
|
16
|
-
import { m as make$1, g as get, s as set, u as update, a as modify } from './Ref-5eefaff1.esm.js';
|
|
17
|
-
import { b as add, m as merge$1, c as make$4, u as unsafeGet } from './Context-c41aa832.esm.js';
|
|
18
|
-
import { s as succeed$4, _ as _await, m as make, f as failCause$4, i as isDone } from './Deferred-9010d2ac.esm.js';
|
|
19
|
-
import { e as equals } from './Equal-2a99fde3.esm.js';
|
|
20
|
-
import { i as interrupt, a as inheritAll, j as join, _ as _await$1 } from './Fiber-ebef9c60.esm.js';
|
|
21
|
-
import { b as build, m as merge, c as context$3 } from './Layer-8586a429.esm.js';
|
|
22
|
-
import { f as fork, a as addFinalizer$1, m as make$3, e as extend, c as close } from './Scope-0253ac82.esm.js';
|
|
23
|
-
import { a as sequential } from './ExecutionStrategy-e3775e86.esm.js';
|
|
24
|
-
import { C as Continue, O as OP_YIELD, a as OP_CLOSE, b as OP_CONTINUE } from './childExecutorDecision-a7b466d2.esm.js';
|
|
25
|
-
import { P as PullAfterNext, O as OP_PULL_AFTER_ALL_ENQUEUED, a as OP_PULL_AFTER_NEXT } from './upstreamPullStrategy-d5d1aa92.esm.js';
|
|
26
|
-
import { N as NoUpstream, P as Pulled } from './upstreamPullRequest-fed99e29.esm.js';
|
|
27
|
-
import { D as Done$1, A as Await, O as OP_DONE$1 } from './mergeDecision-d31cb28c.esm.js';
|
|
28
|
-
import { B as BothRunning, O as OP_RIGHT_DONE, R as RightDone, a as OP_LEFT_DONE, L as LeftDone, b as OP_BOTH_RUNNING } from './mergeState-1325df20.esm.js';
|
|
29
|
-
import { m as match$3, B as BackPressure } from './mergeStrategy-a88b5442.esm.js';
|
|
30
|
-
import { m as make$2 } from './singleProducerAsyncInput-5b2ede75.esm.js';
|
|
31
|
-
|
|
32
|
-
/** @internal */
|
|
33
|
-
const OP_CONTINUATION_K = "ContinuationK";
|
|
34
|
-
|
|
35
|
-
/** @internal */
|
|
36
|
-
|
|
37
|
-
/** @internal */
|
|
38
|
-
const OP_CONTINUATION_FINALIZER = "ContinuationFinalizer";
|
|
39
|
-
|
|
40
|
-
/** @internal */
|
|
41
|
-
|
|
42
|
-
/** @internal */
|
|
43
|
-
const ContinuationTypeId = /*#__PURE__*/Symbol.for("effect/ChannelContinuation");
|
|
44
|
-
|
|
45
|
-
/** @internal */
|
|
46
|
-
|
|
47
|
-
/** @internal */
|
|
48
|
-
|
|
49
|
-
/** @internal */
|
|
50
|
-
|
|
51
|
-
/** @internal */
|
|
52
|
-
|
|
53
|
-
/** @internal */
|
|
54
|
-
|
|
55
|
-
/** @internal */
|
|
56
|
-
|
|
57
|
-
/** @internal */
|
|
58
|
-
|
|
59
|
-
/** @internal */
|
|
60
|
-
|
|
61
|
-
/** @internal */
|
|
62
|
-
const continuationVariance = {
|
|
63
|
-
_Env: _ => _,
|
|
64
|
-
_InErr: _ => _,
|
|
65
|
-
_InElem: _ => _,
|
|
66
|
-
_InDone: _ => _,
|
|
67
|
-
_OutErr: _ => _,
|
|
68
|
-
_OutDone: _ => _,
|
|
69
|
-
_OutErr2: _ => _,
|
|
70
|
-
_OutElem: _ => _,
|
|
71
|
-
_OutDone2: _ => _
|
|
72
|
-
};
|
|
73
|
-
|
|
74
|
-
/** @internal */
|
|
75
|
-
class ContinuationKImpl {
|
|
76
|
-
_tag = OP_CONTINUATION_K;
|
|
77
|
-
[ContinuationTypeId] = continuationVariance;
|
|
78
|
-
constructor(onSuccess, onHalt) {
|
|
79
|
-
this.onSuccess = onSuccess;
|
|
80
|
-
this.onHalt = onHalt;
|
|
81
|
-
}
|
|
82
|
-
onExit(exit) {
|
|
83
|
-
return isFailure(exit) ? this.onHalt(exit.cause) : this.onSuccess(exit.value);
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
|
|
87
|
-
/** @internal */
|
|
88
|
-
class ContinuationFinalizerImpl {
|
|
89
|
-
_tag = OP_CONTINUATION_FINALIZER;
|
|
90
|
-
[ContinuationTypeId] = continuationVariance;
|
|
91
|
-
constructor(finalizer) {
|
|
92
|
-
this.finalizer = finalizer;
|
|
93
|
-
}
|
|
94
|
-
}
|
|
95
|
-
|
|
96
|
-
/** @internal */
|
|
97
|
-
const OP_BRACKET_OUT = "BracketOut";
|
|
98
|
-
|
|
99
|
-
/** @internal */
|
|
100
|
-
|
|
101
|
-
/** @internal */
|
|
102
|
-
const OP_BRIDGE = "Bridge";
|
|
103
|
-
|
|
104
|
-
/** @internal */
|
|
105
|
-
|
|
106
|
-
/** @internal */
|
|
107
|
-
const OP_CONCAT_ALL = "ConcatAll";
|
|
108
|
-
|
|
109
|
-
/** @internal */
|
|
110
|
-
|
|
111
|
-
/** @internal */
|
|
112
|
-
const OP_EMIT$2 = "Emit";
|
|
113
|
-
|
|
114
|
-
/** @internal */
|
|
115
|
-
|
|
116
|
-
/** @internal */
|
|
117
|
-
const OP_ENSURING = "Ensuring";
|
|
118
|
-
|
|
119
|
-
/** @internal */
|
|
120
|
-
|
|
121
|
-
/** @internal */
|
|
122
|
-
const OP_FAIL = "Fail";
|
|
123
|
-
|
|
124
|
-
/** @internal */
|
|
125
|
-
|
|
126
|
-
/** @internal */
|
|
127
|
-
const OP_FOLD = "Fold";
|
|
128
|
-
|
|
129
|
-
/** @internal */
|
|
130
|
-
|
|
131
|
-
/** @internal */
|
|
132
|
-
const OP_FROM_EFFECT$1 = "FromEffect";
|
|
133
|
-
|
|
134
|
-
/** @internal */
|
|
135
|
-
|
|
136
|
-
/** @internal */
|
|
137
|
-
const OP_PIPE_TO = "PipeTo";
|
|
138
|
-
|
|
139
|
-
/** @internal */
|
|
140
|
-
|
|
141
|
-
/** @internal */
|
|
142
|
-
const OP_PROVIDE = "Provide";
|
|
143
|
-
|
|
144
|
-
/** @internal */
|
|
145
|
-
|
|
146
|
-
/** @internal */
|
|
147
|
-
const OP_READ$1 = "Read";
|
|
148
|
-
|
|
149
|
-
/** @internal */
|
|
150
|
-
|
|
151
|
-
/** @internal */
|
|
152
|
-
const OP_SUCCEED = "Succeed";
|
|
153
|
-
|
|
154
|
-
/** @internal */
|
|
155
|
-
|
|
156
|
-
/** @internal */
|
|
157
|
-
const OP_SUCCEED_NOW = "SucceedNow";
|
|
158
|
-
|
|
159
|
-
/** @internal */
|
|
160
|
-
|
|
161
|
-
/** @internal */
|
|
162
|
-
const OP_SUSPEND = "Suspend";
|
|
163
|
-
|
|
164
|
-
/** @internal */
|
|
165
|
-
|
|
166
|
-
/** @internal */
|
|
167
|
-
const ChannelSymbolKey = "effect/Channel";
|
|
168
|
-
|
|
169
|
-
/** @internal */
|
|
170
|
-
const ChannelTypeId = /*#__PURE__*/Symbol.for(ChannelSymbolKey);
|
|
171
|
-
|
|
172
|
-
/** @internal */
|
|
173
|
-
const channelVariance = {
|
|
174
|
-
_Env: _ => _,
|
|
175
|
-
_InErr: _ => _,
|
|
176
|
-
_InElem: _ => _,
|
|
177
|
-
_InDone: _ => _,
|
|
178
|
-
_OutErr: _ => _,
|
|
179
|
-
_OutElem: _ => _,
|
|
180
|
-
_OutDone: _ => _
|
|
181
|
-
};
|
|
182
|
-
|
|
183
|
-
/** @internal */
|
|
184
|
-
const proto$1 = {
|
|
185
|
-
[ChannelTypeId]: channelVariance,
|
|
186
|
-
pipe() {
|
|
187
|
-
return pipeArguments(this, arguments);
|
|
188
|
-
}
|
|
189
|
-
};
|
|
190
|
-
|
|
191
|
-
/** @internal */
|
|
192
|
-
|
|
193
|
-
/** @internal */
|
|
194
|
-
|
|
195
|
-
/** @internal */
|
|
196
|
-
|
|
197
|
-
/** @internal */
|
|
198
|
-
|
|
199
|
-
/** @internal */
|
|
200
|
-
|
|
201
|
-
/** @internal */
|
|
202
|
-
|
|
203
|
-
/** @internal */
|
|
204
|
-
|
|
205
|
-
/** @internal */
|
|
206
|
-
|
|
207
|
-
/** @internal */
|
|
208
|
-
|
|
209
|
-
/** @internal */
|
|
210
|
-
|
|
211
|
-
/** @internal */
|
|
212
|
-
|
|
213
|
-
/** @internal */
|
|
214
|
-
|
|
215
|
-
/** @internal */
|
|
216
|
-
|
|
217
|
-
/** @internal */
|
|
218
|
-
|
|
219
|
-
/** @internal */
|
|
220
|
-
|
|
221
|
-
/** @internal */
|
|
222
|
-
|
|
223
|
-
/** @internal */
|
|
224
|
-
const isChannel = u => typeof u === "object" && u != null && ChannelTypeId in u || isEffect(u);
|
|
225
|
-
|
|
226
|
-
/** @internal */
|
|
227
|
-
const acquireReleaseOut = /*#__PURE__*/dual(2, (self, release) => {
|
|
228
|
-
const op = Object.create(proto$1);
|
|
229
|
-
op._tag = OP_BRACKET_OUT;
|
|
230
|
-
op.acquire = () => self;
|
|
231
|
-
op.finalizer = release;
|
|
232
|
-
return op;
|
|
233
|
-
});
|
|
234
|
-
|
|
235
|
-
/** @internal */
|
|
236
|
-
const catchAllCause = /*#__PURE__*/dual(2, (self, f) => {
|
|
237
|
-
const op = Object.create(proto$1);
|
|
238
|
-
op._tag = OP_FOLD;
|
|
239
|
-
op.channel = self;
|
|
240
|
-
op.k = new ContinuationKImpl(succeed$1, f);
|
|
241
|
-
return op;
|
|
242
|
-
});
|
|
243
|
-
|
|
244
|
-
/** @internal */
|
|
245
|
-
const collectElements = self => {
|
|
246
|
-
return suspend$1(() => {
|
|
247
|
-
const builder = [];
|
|
248
|
-
return flatMap$1(pipeTo(self, collectElementsReader(builder)), value => sync$1(() => [fromIterable(builder), value]));
|
|
249
|
-
});
|
|
250
|
-
};
|
|
251
|
-
|
|
252
|
-
/** @internal */
|
|
253
|
-
const collectElementsReader = builder => readWith({
|
|
254
|
-
onInput: outElem => flatMap$1(sync$1(() => {
|
|
255
|
-
builder.push(outElem);
|
|
256
|
-
}), () => collectElementsReader(builder)),
|
|
257
|
-
onFailure: fail$1,
|
|
258
|
-
onDone: succeedNow
|
|
259
|
-
});
|
|
260
|
-
|
|
261
|
-
/** @internal */
|
|
262
|
-
const concatAll = channels => concatAllWith(channels, constVoid, constVoid);
|
|
263
|
-
|
|
264
|
-
/** @internal */
|
|
265
|
-
const concatAllWith = (channels, f, g) => {
|
|
266
|
-
const op = Object.create(proto$1);
|
|
267
|
-
op._tag = OP_CONCAT_ALL;
|
|
268
|
-
op.combineInners = f;
|
|
269
|
-
op.combineAll = g;
|
|
270
|
-
op.onPull = () => PullAfterNext(none());
|
|
271
|
-
op.onEmit = () => Continue;
|
|
272
|
-
op.value = () => channels;
|
|
273
|
-
op.k = identity;
|
|
274
|
-
return op;
|
|
275
|
-
};
|
|
276
|
-
|
|
277
|
-
/** @internal */
|
|
278
|
-
const concatMapWith = /*#__PURE__*/dual(4, (self, f, g, h) => {
|
|
279
|
-
const op = Object.create(proto$1);
|
|
280
|
-
op._tag = OP_CONCAT_ALL;
|
|
281
|
-
op.combineInners = g;
|
|
282
|
-
op.combineAll = h;
|
|
283
|
-
op.onPull = () => PullAfterNext(none());
|
|
284
|
-
op.onEmit = () => Continue;
|
|
285
|
-
op.value = () => self;
|
|
286
|
-
op.k = f;
|
|
287
|
-
return op;
|
|
288
|
-
});
|
|
289
|
-
|
|
290
|
-
/** @internal */
|
|
291
|
-
const concatMapWithCustom = /*#__PURE__*/dual(6, (self, f, g, h, onPull, onEmit) => {
|
|
292
|
-
const op = Object.create(proto$1);
|
|
293
|
-
op._tag = OP_CONCAT_ALL;
|
|
294
|
-
op.combineInners = g;
|
|
295
|
-
op.combineAll = h;
|
|
296
|
-
op.onPull = onPull;
|
|
297
|
-
op.onEmit = onEmit;
|
|
298
|
-
op.value = () => self;
|
|
299
|
-
op.k = f;
|
|
300
|
-
return op;
|
|
301
|
-
});
|
|
302
|
-
|
|
303
|
-
/** @internal */
|
|
304
|
-
const embedInput = /*#__PURE__*/dual(2, (self, input) => {
|
|
305
|
-
const op = Object.create(proto$1);
|
|
306
|
-
op._tag = OP_BRIDGE;
|
|
307
|
-
op.input = input;
|
|
308
|
-
op.channel = self;
|
|
309
|
-
return op;
|
|
310
|
-
});
|
|
311
|
-
|
|
312
|
-
/** @internal */
|
|
313
|
-
const ensuringWith$1 = /*#__PURE__*/dual(2, (self, finalizer) => {
|
|
314
|
-
const op = Object.create(proto$1);
|
|
315
|
-
op._tag = OP_ENSURING;
|
|
316
|
-
op.channel = self;
|
|
317
|
-
op.finalizer = finalizer;
|
|
318
|
-
return op;
|
|
319
|
-
});
|
|
320
|
-
|
|
321
|
-
/** @internal */
|
|
322
|
-
const fail$1 = error => failCause$1(fail$2(error));
|
|
323
|
-
|
|
324
|
-
/** @internal */
|
|
325
|
-
const failSync$1 = evaluate => failCauseSync$1(() => fail$2(evaluate()));
|
|
326
|
-
|
|
327
|
-
/** @internal */
|
|
328
|
-
const failCause$1 = cause => failCauseSync$1(() => cause);
|
|
329
|
-
|
|
330
|
-
/** @internal */
|
|
331
|
-
const failCauseSync$1 = evaluate => {
|
|
332
|
-
const op = Object.create(proto$1);
|
|
333
|
-
op._tag = OP_FAIL;
|
|
334
|
-
op.error = evaluate;
|
|
335
|
-
return op;
|
|
336
|
-
};
|
|
337
|
-
|
|
338
|
-
/** @internal */
|
|
339
|
-
const flatMap$1 = /*#__PURE__*/dual(2, (self, f) => {
|
|
340
|
-
const op = Object.create(proto$1);
|
|
341
|
-
op._tag = OP_FOLD;
|
|
342
|
-
op.channel = self;
|
|
343
|
-
op.k = new ContinuationKImpl(f, failCause$1);
|
|
344
|
-
return op;
|
|
345
|
-
});
|
|
346
|
-
|
|
347
|
-
/** @internal */
|
|
348
|
-
const foldCauseChannel = /*#__PURE__*/dual(2, (self, options) => {
|
|
349
|
-
const op = Object.create(proto$1);
|
|
350
|
-
op._tag = OP_FOLD;
|
|
351
|
-
op.channel = self;
|
|
352
|
-
op.k = new ContinuationKImpl(options.onSuccess, options.onFailure);
|
|
353
|
-
return op;
|
|
354
|
-
});
|
|
355
|
-
|
|
356
|
-
/** @internal */
|
|
357
|
-
const fromEffect$1 = effect => {
|
|
358
|
-
const op = Object.create(proto$1);
|
|
359
|
-
op._tag = OP_FROM_EFFECT$1;
|
|
360
|
-
op.effect = () => effect;
|
|
361
|
-
return op;
|
|
362
|
-
};
|
|
363
|
-
|
|
364
|
-
/** @internal */
|
|
365
|
-
const pipeTo = /*#__PURE__*/dual(2, (self, that) => {
|
|
366
|
-
const op = Object.create(proto$1);
|
|
367
|
-
op._tag = OP_PIPE_TO;
|
|
368
|
-
op.left = () => self;
|
|
369
|
-
op.right = () => that;
|
|
370
|
-
return op;
|
|
371
|
-
});
|
|
372
|
-
|
|
373
|
-
/** @internal */
|
|
374
|
-
const provideContext$1 = /*#__PURE__*/dual(2, (self, env) => {
|
|
375
|
-
const op = Object.create(proto$1);
|
|
376
|
-
op._tag = OP_PROVIDE;
|
|
377
|
-
op.context = () => env;
|
|
378
|
-
op.inner = self;
|
|
379
|
-
return op;
|
|
380
|
-
});
|
|
381
|
-
|
|
382
|
-
/** @internal */
|
|
383
|
-
const readOrFail = error => {
|
|
384
|
-
const op = Object.create(proto$1);
|
|
385
|
-
op._tag = OP_READ$1;
|
|
386
|
-
op.more = succeed$1;
|
|
387
|
-
op.done = new ContinuationKImpl(() => fail$1(error), () => fail$1(error));
|
|
388
|
-
return op;
|
|
389
|
-
};
|
|
390
|
-
|
|
391
|
-
/** @internal */
|
|
392
|
-
const readWith = options => readWithCause({
|
|
393
|
-
onInput: options.onInput,
|
|
394
|
-
onFailure: cause => match(failureOrCause(cause), {
|
|
395
|
-
onLeft: options.onFailure,
|
|
396
|
-
onRight: failCause$1
|
|
397
|
-
}),
|
|
398
|
-
onDone: options.onDone
|
|
399
|
-
});
|
|
400
|
-
|
|
401
|
-
/** @internal */
|
|
402
|
-
const readWithCause = options => {
|
|
403
|
-
const op = Object.create(proto$1);
|
|
404
|
-
op._tag = OP_READ$1;
|
|
405
|
-
op.more = options.onInput;
|
|
406
|
-
op.done = new ContinuationKImpl(options.onDone, options.onFailure);
|
|
407
|
-
return op;
|
|
408
|
-
};
|
|
409
|
-
|
|
410
|
-
/** @internal */
|
|
411
|
-
const succeed$1 = value => sync$1(() => value);
|
|
412
|
-
|
|
413
|
-
/** @internal */
|
|
414
|
-
const succeedNow = result => {
|
|
415
|
-
const op = Object.create(proto$1);
|
|
416
|
-
op._tag = OP_SUCCEED_NOW;
|
|
417
|
-
op.terminal = result;
|
|
418
|
-
return op;
|
|
419
|
-
};
|
|
420
|
-
|
|
421
|
-
/** @internal */
|
|
422
|
-
const suspend$1 = evaluate => {
|
|
423
|
-
const op = Object.create(proto$1);
|
|
424
|
-
op._tag = OP_SUSPEND;
|
|
425
|
-
op.channel = evaluate;
|
|
426
|
-
return op;
|
|
427
|
-
};
|
|
428
|
-
const sync$1 = evaluate => {
|
|
429
|
-
const op = Object.create(proto$1);
|
|
430
|
-
op._tag = OP_SUCCEED;
|
|
431
|
-
op.evaluate = evaluate;
|
|
432
|
-
return op;
|
|
433
|
-
};
|
|
434
|
-
|
|
435
|
-
/** @internal */
|
|
436
|
-
const unit = /*#__PURE__*/succeedNow(void 0);
|
|
437
|
-
|
|
438
|
-
/** @internal */
|
|
439
|
-
const write = out => {
|
|
440
|
-
const op = Object.create(proto$1);
|
|
441
|
-
op._tag = OP_EMIT$2;
|
|
442
|
-
op.out = out;
|
|
443
|
-
return op;
|
|
444
|
-
};
|
|
445
|
-
|
|
446
|
-
/** @internal */
|
|
447
|
-
const OP_DONE = "Done";
|
|
448
|
-
|
|
449
|
-
/** @internal */
|
|
450
|
-
|
|
451
|
-
/** @internal */
|
|
452
|
-
const OP_EMIT$1 = "Emit";
|
|
453
|
-
|
|
454
|
-
/** @internal */
|
|
455
|
-
|
|
456
|
-
/** @internal */
|
|
457
|
-
const OP_FROM_EFFECT = "FromEffect";
|
|
458
|
-
|
|
459
|
-
/** @internal */
|
|
460
|
-
|
|
461
|
-
/** @internal */
|
|
462
|
-
const OP_READ = "Read";
|
|
463
|
-
|
|
464
|
-
/** @internal */
|
|
465
|
-
|
|
466
|
-
/** @internal */
|
|
467
|
-
const ChannelStateTypeId = /*#__PURE__*/Symbol.for("effect/ChannelState");
|
|
468
|
-
|
|
469
|
-
/** @internal */
|
|
470
|
-
|
|
471
|
-
/** @internal */
|
|
472
|
-
|
|
473
|
-
/** @internal */
|
|
474
|
-
|
|
475
|
-
/** @internal */
|
|
476
|
-
const channelStateVariance = {
|
|
477
|
-
_R: _ => _,
|
|
478
|
-
_E: _ => _
|
|
479
|
-
};
|
|
480
|
-
|
|
481
|
-
/** @internal */
|
|
482
|
-
const proto = {
|
|
483
|
-
[ChannelStateTypeId]: channelStateVariance
|
|
484
|
-
};
|
|
485
|
-
|
|
486
|
-
/** @internal */
|
|
487
|
-
|
|
488
|
-
/** @internal */
|
|
489
|
-
|
|
490
|
-
/** @internal */
|
|
491
|
-
|
|
492
|
-
/** @internal */
|
|
493
|
-
|
|
494
|
-
/** @internal */
|
|
495
|
-
|
|
496
|
-
/** @internal */
|
|
497
|
-
|
|
498
|
-
/** @internal */
|
|
499
|
-
const Done = () => {
|
|
500
|
-
const op = Object.create(proto);
|
|
501
|
-
op._tag = OP_DONE;
|
|
502
|
-
return op;
|
|
503
|
-
};
|
|
504
|
-
|
|
505
|
-
/** @internal */
|
|
506
|
-
const Emit$1 = () => {
|
|
507
|
-
const op = Object.create(proto);
|
|
508
|
-
op._tag = OP_EMIT$1;
|
|
509
|
-
return op;
|
|
510
|
-
};
|
|
511
|
-
|
|
512
|
-
/** @internal */
|
|
513
|
-
const FromEffect = effect => {
|
|
514
|
-
const op = Object.create(proto);
|
|
515
|
-
op._tag = OP_FROM_EFFECT;
|
|
516
|
-
op.effect = effect;
|
|
517
|
-
return op;
|
|
518
|
-
};
|
|
519
|
-
|
|
520
|
-
/** @internal */
|
|
521
|
-
const Read = (upstream, onEffect, onEmit, onDone) => {
|
|
522
|
-
const op = Object.create(proto);
|
|
523
|
-
op._tag = OP_READ;
|
|
524
|
-
op.upstream = upstream;
|
|
525
|
-
op.onEffect = onEffect;
|
|
526
|
-
op.onEmit = onEmit;
|
|
527
|
-
op.onDone = onDone;
|
|
528
|
-
return op;
|
|
529
|
-
};
|
|
530
|
-
|
|
531
|
-
/** @internal */
|
|
532
|
-
const isFromEffect = self => self._tag === OP_FROM_EFFECT;
|
|
533
|
-
|
|
534
|
-
/** @internal */
|
|
535
|
-
const effect = self => isFromEffect(self) ? self.effect : unit$1;
|
|
536
|
-
|
|
537
|
-
/** @internal */
|
|
538
|
-
const effectOrUndefinedIgnored = self => isFromEffect(self) ? ignore(self.effect) : undefined;
|
|
539
|
-
|
|
540
|
-
/** @internal */
|
|
541
|
-
|
|
542
|
-
/** @internal */
|
|
543
|
-
|
|
544
|
-
/** @internal */
|
|
545
|
-
const OP_PULL_FROM_CHILD = "PullFromChild";
|
|
546
|
-
|
|
547
|
-
/** @internal */
|
|
548
|
-
|
|
549
|
-
/** @internal */
|
|
550
|
-
const OP_PULL_FROM_UPSTREAM = "PullFromUpstream";
|
|
551
|
-
|
|
552
|
-
/** @internal */
|
|
553
|
-
|
|
554
|
-
/** @internal */
|
|
555
|
-
const OP_DRAIN_CHILD_EXECUTORS = "DrainChildExecutors";
|
|
556
|
-
|
|
557
|
-
/** @internal */
|
|
558
|
-
|
|
559
|
-
/** @internal */
|
|
560
|
-
const OP_EMIT = "Emit";
|
|
561
|
-
|
|
562
|
-
/** @internal */
|
|
563
|
-
|
|
564
|
-
/**
|
|
565
|
-
* Execute the `childExecutor` and on each emitted value, decide what to do by
|
|
566
|
-
* `onEmit`.
|
|
567
|
-
*
|
|
568
|
-
* @internal
|
|
569
|
-
*/
|
|
570
|
-
class PullFromChild {
|
|
571
|
-
_tag = OP_PULL_FROM_CHILD;
|
|
572
|
-
constructor(childExecutor, parentSubexecutor, onEmit) {
|
|
573
|
-
this.childExecutor = childExecutor;
|
|
574
|
-
this.parentSubexecutor = parentSubexecutor;
|
|
575
|
-
this.onEmit = onEmit;
|
|
576
|
-
}
|
|
577
|
-
close(exit$1) {
|
|
578
|
-
const fin1 = this.childExecutor.close(exit$1);
|
|
579
|
-
const fin2 = this.parentSubexecutor.close(exit$1);
|
|
580
|
-
if (fin1 !== undefined && fin2 !== undefined) {
|
|
581
|
-
return zipWith$1(exit(fin1), exit(fin2), (exit1, exit2) => pipe(exit1, zipRight$2(exit2)));
|
|
582
|
-
} else if (fin1 !== undefined) {
|
|
583
|
-
return fin1;
|
|
584
|
-
} else if (fin2 !== undefined) {
|
|
585
|
-
return fin2;
|
|
586
|
-
} else {
|
|
587
|
-
return undefined;
|
|
588
|
-
}
|
|
589
|
-
}
|
|
590
|
-
enqueuePullFromChild(_child) {
|
|
591
|
-
return this;
|
|
592
|
-
}
|
|
593
|
-
}
|
|
594
|
-
|
|
595
|
-
/**
|
|
596
|
-
* Execute `upstreamExecutor` and for each emitted element, spawn a child
|
|
597
|
-
* channel and continue with processing it by `PullFromChild`.
|
|
598
|
-
*
|
|
599
|
-
* @internal
|
|
600
|
-
*/
|
|
601
|
-
class PullFromUpstream {
|
|
602
|
-
_tag = OP_PULL_FROM_UPSTREAM;
|
|
603
|
-
constructor(upstreamExecutor, createChild, lastDone, activeChildExecutors, combineChildResults, combineWithChildResult, onPull, onEmit) {
|
|
604
|
-
this.upstreamExecutor = upstreamExecutor;
|
|
605
|
-
this.createChild = createChild;
|
|
606
|
-
this.lastDone = lastDone;
|
|
607
|
-
this.activeChildExecutors = activeChildExecutors;
|
|
608
|
-
this.combineChildResults = combineChildResults;
|
|
609
|
-
this.combineWithChildResult = combineWithChildResult;
|
|
610
|
-
this.onPull = onPull;
|
|
611
|
-
this.onEmit = onEmit;
|
|
612
|
-
}
|
|
613
|
-
close(exit$1) {
|
|
614
|
-
const fin1 = this.upstreamExecutor.close(exit$1);
|
|
615
|
-
const fins = [...this.activeChildExecutors.map(child => child !== undefined ? child.childExecutor.close(exit$1) : undefined), fin1];
|
|
616
|
-
const result = fins.reduce((acc, next) => {
|
|
617
|
-
if (acc !== undefined && next !== undefined) {
|
|
618
|
-
return zipWith$1(acc, exit(next), (exit1, exit2) => zipRight$2(exit1, exit2));
|
|
619
|
-
} else if (acc !== undefined) {
|
|
620
|
-
return acc;
|
|
621
|
-
} else if (next !== undefined) {
|
|
622
|
-
return exit(next);
|
|
623
|
-
} else {
|
|
624
|
-
return undefined;
|
|
625
|
-
}
|
|
626
|
-
}, undefined);
|
|
627
|
-
return result === undefined ? result : result;
|
|
628
|
-
}
|
|
629
|
-
enqueuePullFromChild(child) {
|
|
630
|
-
return new PullFromUpstream(this.upstreamExecutor, this.createChild, this.lastDone, [...this.activeChildExecutors, child], this.combineChildResults, this.combineWithChildResult, this.onPull, this.onEmit);
|
|
631
|
-
}
|
|
632
|
-
}
|
|
633
|
-
|
|
634
|
-
/**
|
|
635
|
-
* Transformed from `PullFromUpstream` when upstream has finished but there
|
|
636
|
-
* are still active child executors.
|
|
637
|
-
*
|
|
638
|
-
* @internal
|
|
639
|
-
*/
|
|
640
|
-
class DrainChildExecutors {
|
|
641
|
-
_tag = OP_DRAIN_CHILD_EXECUTORS;
|
|
642
|
-
constructor(upstreamExecutor, lastDone, activeChildExecutors, upstreamDone, combineChildResults, combineWithChildResult, onPull) {
|
|
643
|
-
this.upstreamExecutor = upstreamExecutor;
|
|
644
|
-
this.lastDone = lastDone;
|
|
645
|
-
this.activeChildExecutors = activeChildExecutors;
|
|
646
|
-
this.upstreamDone = upstreamDone;
|
|
647
|
-
this.combineChildResults = combineChildResults;
|
|
648
|
-
this.combineWithChildResult = combineWithChildResult;
|
|
649
|
-
this.onPull = onPull;
|
|
650
|
-
}
|
|
651
|
-
close(exit$1) {
|
|
652
|
-
const fin1 = this.upstreamExecutor.close(exit$1);
|
|
653
|
-
const fins = [...this.activeChildExecutors.map(child => child !== undefined ? child.childExecutor.close(exit$1) : undefined), fin1];
|
|
654
|
-
const result = fins.reduce((acc, next) => {
|
|
655
|
-
if (acc !== undefined && next !== undefined) {
|
|
656
|
-
return zipWith$1(acc, exit(next), (exit1, exit2) => zipRight$2(exit1, exit2));
|
|
657
|
-
} else if (acc !== undefined) {
|
|
658
|
-
return acc;
|
|
659
|
-
} else if (next !== undefined) {
|
|
660
|
-
return exit(next);
|
|
661
|
-
} else {
|
|
662
|
-
return undefined;
|
|
663
|
-
}
|
|
664
|
-
}, undefined);
|
|
665
|
-
return result === undefined ? result : result;
|
|
666
|
-
}
|
|
667
|
-
enqueuePullFromChild(child) {
|
|
668
|
-
return new DrainChildExecutors(this.upstreamExecutor, this.lastDone, [...this.activeChildExecutors, child], this.upstreamDone, this.combineChildResults, this.combineWithChildResult, this.onPull);
|
|
669
|
-
}
|
|
670
|
-
}
|
|
671
|
-
|
|
672
|
-
/** @internal */
|
|
673
|
-
class Emit {
|
|
674
|
-
_tag = OP_EMIT;
|
|
675
|
-
constructor(value, next) {
|
|
676
|
-
this.value = value;
|
|
677
|
-
this.next = next;
|
|
678
|
-
}
|
|
679
|
-
close(exit) {
|
|
680
|
-
const result = this.next.close(exit);
|
|
681
|
-
return result === undefined ? result : result;
|
|
682
|
-
}
|
|
683
|
-
enqueuePullFromChild(_child) {
|
|
684
|
-
return this;
|
|
685
|
-
}
|
|
686
|
-
}
|
|
687
|
-
|
|
688
|
-
/** @internal */
|
|
689
|
-
|
|
690
|
-
/** @internal */
|
|
691
|
-
|
|
692
|
-
/** @internal */
|
|
693
|
-
|
|
694
|
-
class ChannelExecutor {
|
|
695
|
-
_activeSubexecutor = undefined;
|
|
696
|
-
_cancelled = undefined;
|
|
697
|
-
_closeLastSubstream = undefined;
|
|
698
|
-
_done = undefined;
|
|
699
|
-
_doneStack = [];
|
|
700
|
-
_emitted = undefined;
|
|
701
|
-
_input = undefined;
|
|
702
|
-
_inProgressFinalizer = undefined;
|
|
703
|
-
constructor(initialChannel, providedEnv, executeCloseLastSubstream) {
|
|
704
|
-
this._currentChannel = initialChannel;
|
|
705
|
-
this._executeCloseLastSubstream = executeCloseLastSubstream;
|
|
706
|
-
this._providedEnv = providedEnv;
|
|
707
|
-
}
|
|
708
|
-
run() {
|
|
709
|
-
let result = undefined;
|
|
710
|
-
while (result === undefined) {
|
|
711
|
-
if (this._cancelled !== undefined) {
|
|
712
|
-
result = this.processCancellation();
|
|
713
|
-
} else if (this._activeSubexecutor !== undefined) {
|
|
714
|
-
result = this.runSubexecutor();
|
|
715
|
-
} else {
|
|
716
|
-
try {
|
|
717
|
-
if (this._currentChannel === undefined) {
|
|
718
|
-
result = Done();
|
|
719
|
-
} else {
|
|
720
|
-
if (isEffect(this._currentChannel)) {
|
|
721
|
-
this._currentChannel = fromEffect$1(this._currentChannel);
|
|
722
|
-
} else {
|
|
723
|
-
switch (this._currentChannel._tag) {
|
|
724
|
-
case OP_BRACKET_OUT:
|
|
725
|
-
{
|
|
726
|
-
result = this.runBracketOut(this._currentChannel);
|
|
727
|
-
break;
|
|
728
|
-
}
|
|
729
|
-
case OP_BRIDGE:
|
|
730
|
-
{
|
|
731
|
-
const bridgeInput = this._currentChannel.input;
|
|
732
|
-
|
|
733
|
-
// PipeTo(left, Bridge(queue, channel))
|
|
734
|
-
// In a fiber: repeatedly run left and push its outputs to the queue
|
|
735
|
-
// Add a finalizer to interrupt the fiber and close the executor
|
|
736
|
-
this._currentChannel = this._currentChannel.channel;
|
|
737
|
-
if (this._input !== undefined) {
|
|
738
|
-
const inputExecutor = this._input;
|
|
739
|
-
this._input = undefined;
|
|
740
|
-
const drainer = () => flatMap$2(bridgeInput.awaitRead(), () => suspend$2(() => {
|
|
741
|
-
const state = inputExecutor.run();
|
|
742
|
-
switch (state._tag) {
|
|
743
|
-
case OP_DONE:
|
|
744
|
-
{
|
|
745
|
-
return match$1(inputExecutor.getDone(), {
|
|
746
|
-
onFailure: cause => bridgeInput.error(cause),
|
|
747
|
-
onSuccess: value => bridgeInput.done(value)
|
|
748
|
-
});
|
|
749
|
-
}
|
|
750
|
-
case OP_EMIT$1:
|
|
751
|
-
{
|
|
752
|
-
return flatMap$2(bridgeInput.emit(inputExecutor.getEmit()), () => drainer());
|
|
753
|
-
}
|
|
754
|
-
case OP_FROM_EFFECT:
|
|
755
|
-
{
|
|
756
|
-
return matchCauseEffect(state.effect, {
|
|
757
|
-
onFailure: cause => bridgeInput.error(cause),
|
|
758
|
-
onSuccess: () => drainer()
|
|
759
|
-
});
|
|
760
|
-
}
|
|
761
|
-
case OP_READ:
|
|
762
|
-
{
|
|
763
|
-
return readUpstream(state, () => drainer(), cause => bridgeInput.error(cause));
|
|
764
|
-
}
|
|
765
|
-
}
|
|
766
|
-
}));
|
|
767
|
-
result = FromEffect(flatMap$2(forkDaemon(drainer()), fiber => sync$2(() => this.addFinalizer(exit => flatMap$2(interrupt(fiber), () => suspend$2(() => {
|
|
768
|
-
const effect = this.restorePipe(exit, inputExecutor);
|
|
769
|
-
return effect !== undefined ? effect : unit$1;
|
|
770
|
-
}))))));
|
|
771
|
-
}
|
|
772
|
-
break;
|
|
773
|
-
}
|
|
774
|
-
case OP_CONCAT_ALL:
|
|
775
|
-
{
|
|
776
|
-
const executor = new ChannelExecutor(this._currentChannel.value(), this._providedEnv, effect => sync$2(() => {
|
|
777
|
-
const prevLastClose = this._closeLastSubstream === undefined ? unit$1 : this._closeLastSubstream;
|
|
778
|
-
this._closeLastSubstream = pipe(prevLastClose, zipRight$3(effect));
|
|
779
|
-
}));
|
|
780
|
-
executor._input = this._input;
|
|
781
|
-
const channel = this._currentChannel;
|
|
782
|
-
this._activeSubexecutor = new PullFromUpstream(executor, value => channel.k(value), undefined, [], (x, y) => channel.combineInners(x, y), (x, y) => channel.combineAll(x, y), request => channel.onPull(request), value => channel.onEmit(value));
|
|
783
|
-
this._closeLastSubstream = undefined;
|
|
784
|
-
this._currentChannel = undefined;
|
|
785
|
-
break;
|
|
786
|
-
}
|
|
787
|
-
case OP_EMIT$2:
|
|
788
|
-
{
|
|
789
|
-
this._emitted = this._currentChannel.out;
|
|
790
|
-
this._currentChannel = this._activeSubexecutor !== undefined ? undefined : unit;
|
|
791
|
-
result = Emit$1();
|
|
792
|
-
break;
|
|
793
|
-
}
|
|
794
|
-
case OP_ENSURING:
|
|
795
|
-
{
|
|
796
|
-
this.runEnsuring(this._currentChannel);
|
|
797
|
-
break;
|
|
798
|
-
}
|
|
799
|
-
case OP_FAIL:
|
|
800
|
-
{
|
|
801
|
-
result = this.doneHalt(this._currentChannel.error());
|
|
802
|
-
break;
|
|
803
|
-
}
|
|
804
|
-
case OP_FOLD:
|
|
805
|
-
{
|
|
806
|
-
this._doneStack.push(this._currentChannel.k);
|
|
807
|
-
this._currentChannel = this._currentChannel.channel;
|
|
808
|
-
break;
|
|
809
|
-
}
|
|
810
|
-
case OP_FROM_EFFECT$1:
|
|
811
|
-
{
|
|
812
|
-
const effect = this._providedEnv === undefined ? this._currentChannel.effect() : pipe(this._currentChannel.effect(), provide(this._providedEnv));
|
|
813
|
-
result = FromEffect(matchCauseEffect(effect, {
|
|
814
|
-
onFailure: cause => {
|
|
815
|
-
const state = this.doneHalt(cause);
|
|
816
|
-
return state !== undefined && isFromEffect(state) ? state.effect : unit$1;
|
|
817
|
-
},
|
|
818
|
-
onSuccess: value => {
|
|
819
|
-
const state = this.doneSucceed(value);
|
|
820
|
-
return state !== undefined && isFromEffect(state) ? state.effect : unit$1;
|
|
821
|
-
}
|
|
822
|
-
}));
|
|
823
|
-
break;
|
|
824
|
-
}
|
|
825
|
-
case OP_PIPE_TO:
|
|
826
|
-
{
|
|
827
|
-
const previousInput = this._input;
|
|
828
|
-
const leftExec = new ChannelExecutor(this._currentChannel.left(), this._providedEnv, effect => this._executeCloseLastSubstream(effect));
|
|
829
|
-
leftExec._input = previousInput;
|
|
830
|
-
this._input = leftExec;
|
|
831
|
-
this.addFinalizer(exit => {
|
|
832
|
-
const effect = this.restorePipe(exit, previousInput);
|
|
833
|
-
return effect !== undefined ? effect : unit$1;
|
|
834
|
-
});
|
|
835
|
-
this._currentChannel = this._currentChannel.right();
|
|
836
|
-
break;
|
|
837
|
-
}
|
|
838
|
-
case OP_PROVIDE:
|
|
839
|
-
{
|
|
840
|
-
const previousEnv = this._providedEnv;
|
|
841
|
-
this._providedEnv = this._currentChannel.context();
|
|
842
|
-
this._currentChannel = this._currentChannel.inner;
|
|
843
|
-
this.addFinalizer(() => sync$2(() => {
|
|
844
|
-
this._providedEnv = previousEnv;
|
|
845
|
-
}));
|
|
846
|
-
break;
|
|
847
|
-
}
|
|
848
|
-
case OP_READ$1:
|
|
849
|
-
{
|
|
850
|
-
const read = this._currentChannel;
|
|
851
|
-
result = Read(this._input, identity, emitted => {
|
|
852
|
-
try {
|
|
853
|
-
this._currentChannel = read.more(emitted);
|
|
854
|
-
} catch (error) {
|
|
855
|
-
this._currentChannel = read.done.onExit(die$1(error));
|
|
856
|
-
}
|
|
857
|
-
return undefined;
|
|
858
|
-
}, exit => {
|
|
859
|
-
const onExit = exit => {
|
|
860
|
-
return read.done.onExit(exit);
|
|
861
|
-
};
|
|
862
|
-
this._currentChannel = onExit(exit);
|
|
863
|
-
return undefined;
|
|
864
|
-
});
|
|
865
|
-
break;
|
|
866
|
-
}
|
|
867
|
-
case OP_SUCCEED:
|
|
868
|
-
{
|
|
869
|
-
result = this.doneSucceed(this._currentChannel.evaluate());
|
|
870
|
-
break;
|
|
871
|
-
}
|
|
872
|
-
case OP_SUCCEED_NOW:
|
|
873
|
-
{
|
|
874
|
-
result = this.doneSucceed(this._currentChannel.terminal);
|
|
875
|
-
break;
|
|
876
|
-
}
|
|
877
|
-
case OP_SUSPEND:
|
|
878
|
-
{
|
|
879
|
-
this._currentChannel = this._currentChannel.channel();
|
|
880
|
-
break;
|
|
881
|
-
}
|
|
882
|
-
default:
|
|
883
|
-
{
|
|
884
|
-
// @ts-expect-error
|
|
885
|
-
this._currentChannel._tag;
|
|
886
|
-
}
|
|
887
|
-
}
|
|
888
|
-
}
|
|
889
|
-
}
|
|
890
|
-
} catch (error) {
|
|
891
|
-
this._currentChannel = failCause$1(die$2(error));
|
|
892
|
-
}
|
|
893
|
-
}
|
|
894
|
-
}
|
|
895
|
-
return result;
|
|
896
|
-
}
|
|
897
|
-
getDone() {
|
|
898
|
-
return this._done;
|
|
899
|
-
}
|
|
900
|
-
getEmit() {
|
|
901
|
-
return this._emitted;
|
|
902
|
-
}
|
|
903
|
-
cancelWith(exit) {
|
|
904
|
-
this._cancelled = exit;
|
|
905
|
-
}
|
|
906
|
-
clearInProgressFinalizer() {
|
|
907
|
-
this._inProgressFinalizer = undefined;
|
|
908
|
-
}
|
|
909
|
-
storeInProgressFinalizer(finalizer) {
|
|
910
|
-
this._inProgressFinalizer = finalizer;
|
|
911
|
-
}
|
|
912
|
-
popAllFinalizers(exit) {
|
|
913
|
-
const finalizers = [];
|
|
914
|
-
let next = this._doneStack.pop();
|
|
915
|
-
while (next) {
|
|
916
|
-
if (next._tag === "ContinuationFinalizer") {
|
|
917
|
-
finalizers.push(next.finalizer);
|
|
918
|
-
}
|
|
919
|
-
next = this._doneStack.pop();
|
|
920
|
-
}
|
|
921
|
-
const effect = finalizers.length === 0 ? unit$1 : runFinalizers(finalizers, exit);
|
|
922
|
-
this.storeInProgressFinalizer(effect);
|
|
923
|
-
return effect;
|
|
924
|
-
}
|
|
925
|
-
popNextFinalizers() {
|
|
926
|
-
const builder = [];
|
|
927
|
-
while (this._doneStack.length !== 0) {
|
|
928
|
-
const cont = this._doneStack[this._doneStack.length - 1];
|
|
929
|
-
if (cont._tag === OP_CONTINUATION_K) {
|
|
930
|
-
return builder;
|
|
931
|
-
}
|
|
932
|
-
builder.push(cont);
|
|
933
|
-
this._doneStack.pop();
|
|
934
|
-
}
|
|
935
|
-
return builder;
|
|
936
|
-
}
|
|
937
|
-
restorePipe(exit, prev) {
|
|
938
|
-
const currInput = this._input;
|
|
939
|
-
this._input = prev;
|
|
940
|
-
if (currInput !== undefined) {
|
|
941
|
-
const effect = currInput.close(exit);
|
|
942
|
-
return effect;
|
|
943
|
-
}
|
|
944
|
-
return unit$1;
|
|
945
|
-
}
|
|
946
|
-
close(exit$1) {
|
|
947
|
-
let runInProgressFinalizers = undefined;
|
|
948
|
-
const finalizer = this._inProgressFinalizer;
|
|
949
|
-
if (finalizer !== undefined) {
|
|
950
|
-
runInProgressFinalizers = pipe(finalizer, ensuring$2(sync$2(() => this.clearInProgressFinalizer())));
|
|
951
|
-
}
|
|
952
|
-
let closeSelf = undefined;
|
|
953
|
-
const selfFinalizers = this.popAllFinalizers(exit$1);
|
|
954
|
-
if (selfFinalizers !== undefined) {
|
|
955
|
-
closeSelf = pipe(selfFinalizers, ensuring$2(sync$2(() => this.clearInProgressFinalizer())));
|
|
956
|
-
}
|
|
957
|
-
const closeSubexecutors = this._activeSubexecutor === undefined ? undefined : this._activeSubexecutor.close(exit$1);
|
|
958
|
-
if (closeSubexecutors === undefined && runInProgressFinalizers === undefined && closeSelf === undefined) {
|
|
959
|
-
return undefined;
|
|
960
|
-
}
|
|
961
|
-
return pipe(exit(ifNotNull(closeSubexecutors)), zip$2(exit(ifNotNull(runInProgressFinalizers))), zip$2(exit(ifNotNull(closeSelf))), map$2(([[exit1, exit2], exit3]) => pipe(exit1, zipRight$2(exit2), zipRight$2(exit3))), uninterruptible,
|
|
962
|
-
// TODO: remove
|
|
963
|
-
flatMap$2(exit => suspend$2(() => exit)));
|
|
964
|
-
}
|
|
965
|
-
doneSucceed(value) {
|
|
966
|
-
if (this._doneStack.length === 0) {
|
|
967
|
-
this._done = succeed$2(value);
|
|
968
|
-
this._currentChannel = undefined;
|
|
969
|
-
return Done();
|
|
970
|
-
}
|
|
971
|
-
const head = this._doneStack[this._doneStack.length - 1];
|
|
972
|
-
if (head._tag === OP_CONTINUATION_K) {
|
|
973
|
-
this._doneStack.pop();
|
|
974
|
-
this._currentChannel = head.onSuccess(value);
|
|
975
|
-
return undefined;
|
|
976
|
-
}
|
|
977
|
-
const finalizers = this.popNextFinalizers();
|
|
978
|
-
if (this._doneStack.length === 0) {
|
|
979
|
-
this._doneStack = finalizers.reverse();
|
|
980
|
-
this._done = succeed$2(value);
|
|
981
|
-
this._currentChannel = undefined;
|
|
982
|
-
return Done();
|
|
983
|
-
}
|
|
984
|
-
const finalizerEffect = runFinalizers(finalizers.map(f => f.finalizer), succeed$2(value));
|
|
985
|
-
this.storeInProgressFinalizer(finalizerEffect);
|
|
986
|
-
const effect = pipe(finalizerEffect, ensuring$2(sync$2(() => this.clearInProgressFinalizer())), uninterruptible, flatMap$2(() => sync$2(() => this.doneSucceed(value))));
|
|
987
|
-
return FromEffect(effect);
|
|
988
|
-
}
|
|
989
|
-
doneHalt(cause) {
|
|
990
|
-
if (this._doneStack.length === 0) {
|
|
991
|
-
this._done = failCause$2(cause);
|
|
992
|
-
this._currentChannel = undefined;
|
|
993
|
-
return Done();
|
|
994
|
-
}
|
|
995
|
-
const head = this._doneStack[this._doneStack.length - 1];
|
|
996
|
-
if (head._tag === OP_CONTINUATION_K) {
|
|
997
|
-
this._doneStack.pop();
|
|
998
|
-
this._currentChannel = head.onHalt(cause);
|
|
999
|
-
return undefined;
|
|
1000
|
-
}
|
|
1001
|
-
const finalizers = this.popNextFinalizers();
|
|
1002
|
-
if (this._doneStack.length === 0) {
|
|
1003
|
-
this._doneStack = finalizers.reverse();
|
|
1004
|
-
this._done = failCause$2(cause);
|
|
1005
|
-
this._currentChannel = undefined;
|
|
1006
|
-
return Done();
|
|
1007
|
-
}
|
|
1008
|
-
const finalizerEffect = runFinalizers(finalizers.map(f => f.finalizer), failCause$2(cause));
|
|
1009
|
-
this.storeInProgressFinalizer(finalizerEffect);
|
|
1010
|
-
const effect = pipe(finalizerEffect, ensuring$2(sync$2(() => this.clearInProgressFinalizer())), uninterruptible, flatMap$2(() => sync$2(() => this.doneHalt(cause))));
|
|
1011
|
-
return FromEffect(effect);
|
|
1012
|
-
}
|
|
1013
|
-
processCancellation() {
|
|
1014
|
-
this._currentChannel = undefined;
|
|
1015
|
-
this._done = this._cancelled;
|
|
1016
|
-
this._cancelled = undefined;
|
|
1017
|
-
return Done();
|
|
1018
|
-
}
|
|
1019
|
-
runBracketOut(bracketOut) {
|
|
1020
|
-
const effect = uninterruptible(matchCauseEffect(this.provide(bracketOut.acquire()), {
|
|
1021
|
-
onFailure: cause => sync$2(() => {
|
|
1022
|
-
this._currentChannel = failCause$1(cause);
|
|
1023
|
-
}),
|
|
1024
|
-
onSuccess: out => sync$2(() => {
|
|
1025
|
-
this.addFinalizer(exit => this.provide(bracketOut.finalizer(out, exit)));
|
|
1026
|
-
this._currentChannel = write(out);
|
|
1027
|
-
})
|
|
1028
|
-
}));
|
|
1029
|
-
return FromEffect(effect);
|
|
1030
|
-
}
|
|
1031
|
-
provide(effect) {
|
|
1032
|
-
if (this._providedEnv === undefined) {
|
|
1033
|
-
return effect;
|
|
1034
|
-
}
|
|
1035
|
-
return pipe(effect, provide(this._providedEnv));
|
|
1036
|
-
}
|
|
1037
|
-
runEnsuring(ensuring) {
|
|
1038
|
-
this.addFinalizer(ensuring.finalizer);
|
|
1039
|
-
this._currentChannel = ensuring.channel;
|
|
1040
|
-
}
|
|
1041
|
-
addFinalizer(f) {
|
|
1042
|
-
this._doneStack.push(new ContinuationFinalizerImpl(f));
|
|
1043
|
-
}
|
|
1044
|
-
runSubexecutor() {
|
|
1045
|
-
const subexecutor = this._activeSubexecutor;
|
|
1046
|
-
switch (subexecutor._tag) {
|
|
1047
|
-
case OP_PULL_FROM_CHILD:
|
|
1048
|
-
{
|
|
1049
|
-
return this.pullFromChild(subexecutor.childExecutor, subexecutor.parentSubexecutor, subexecutor.onEmit, subexecutor);
|
|
1050
|
-
}
|
|
1051
|
-
case OP_PULL_FROM_UPSTREAM:
|
|
1052
|
-
{
|
|
1053
|
-
return this.pullFromUpstream(subexecutor);
|
|
1054
|
-
}
|
|
1055
|
-
case OP_DRAIN_CHILD_EXECUTORS:
|
|
1056
|
-
{
|
|
1057
|
-
return this.drainChildExecutors(subexecutor);
|
|
1058
|
-
}
|
|
1059
|
-
case OP_EMIT:
|
|
1060
|
-
{
|
|
1061
|
-
this._emitted = subexecutor.value;
|
|
1062
|
-
this._activeSubexecutor = subexecutor.next;
|
|
1063
|
-
return Emit$1();
|
|
1064
|
-
}
|
|
1065
|
-
}
|
|
1066
|
-
}
|
|
1067
|
-
replaceSubexecutor(nextSubExec) {
|
|
1068
|
-
this._currentChannel = undefined;
|
|
1069
|
-
this._activeSubexecutor = nextSubExec;
|
|
1070
|
-
}
|
|
1071
|
-
finishWithExit(exit) {
|
|
1072
|
-
const state = match$1(exit, {
|
|
1073
|
-
onFailure: cause => this.doneHalt(cause),
|
|
1074
|
-
onSuccess: value => this.doneSucceed(value)
|
|
1075
|
-
});
|
|
1076
|
-
this._activeSubexecutor = undefined;
|
|
1077
|
-
return state === undefined ? unit$1 : effect(state);
|
|
1078
|
-
}
|
|
1079
|
-
finishSubexecutorWithCloseEffect(subexecutorDone, ...closeFuncs) {
|
|
1080
|
-
this.addFinalizer(() => pipe(closeFuncs, forEach$1(closeFunc => pipe(sync$2(() => closeFunc(subexecutorDone)), flatMap$2(closeEffect => closeEffect !== undefined ? closeEffect : unit$1)), {
|
|
1081
|
-
discard: true
|
|
1082
|
-
})));
|
|
1083
|
-
const state = pipe(subexecutorDone, match$1({
|
|
1084
|
-
onFailure: cause => this.doneHalt(cause),
|
|
1085
|
-
onSuccess: value => this.doneSucceed(value)
|
|
1086
|
-
}));
|
|
1087
|
-
this._activeSubexecutor = undefined;
|
|
1088
|
-
return state;
|
|
1089
|
-
}
|
|
1090
|
-
applyUpstreamPullStrategy(upstreamFinished, queue, strategy) {
|
|
1091
|
-
switch (strategy._tag) {
|
|
1092
|
-
case OP_PULL_AFTER_NEXT:
|
|
1093
|
-
{
|
|
1094
|
-
const shouldPrepend = !upstreamFinished || queue.some(subexecutor => subexecutor !== undefined);
|
|
1095
|
-
return [strategy.emitSeparator, shouldPrepend ? [undefined, ...queue] : queue];
|
|
1096
|
-
}
|
|
1097
|
-
case OP_PULL_AFTER_ALL_ENQUEUED:
|
|
1098
|
-
{
|
|
1099
|
-
const shouldEnqueue = !upstreamFinished || queue.some(subexecutor => subexecutor !== undefined);
|
|
1100
|
-
return [strategy.emitSeparator, shouldEnqueue ? [...queue, undefined] : queue];
|
|
1101
|
-
}
|
|
1102
|
-
}
|
|
1103
|
-
}
|
|
1104
|
-
pullFromChild(childExecutor, parentSubexecutor, onEmitted, subexecutor) {
|
|
1105
|
-
return Read(childExecutor, identity, emitted => {
|
|
1106
|
-
const childExecutorDecision = onEmitted(emitted);
|
|
1107
|
-
switch (childExecutorDecision._tag) {
|
|
1108
|
-
case OP_CONTINUE:
|
|
1109
|
-
{
|
|
1110
|
-
break;
|
|
1111
|
-
}
|
|
1112
|
-
case OP_CLOSE:
|
|
1113
|
-
{
|
|
1114
|
-
this.finishWithDoneValue(childExecutor, parentSubexecutor, childExecutorDecision.value);
|
|
1115
|
-
break;
|
|
1116
|
-
}
|
|
1117
|
-
case OP_YIELD:
|
|
1118
|
-
{
|
|
1119
|
-
const modifiedParent = parentSubexecutor.enqueuePullFromChild(subexecutor);
|
|
1120
|
-
this.replaceSubexecutor(modifiedParent);
|
|
1121
|
-
break;
|
|
1122
|
-
}
|
|
1123
|
-
}
|
|
1124
|
-
this._activeSubexecutor = new Emit(emitted, this._activeSubexecutor);
|
|
1125
|
-
return undefined;
|
|
1126
|
-
}, match$1({
|
|
1127
|
-
onFailure: cause => {
|
|
1128
|
-
const state = this.handleSubexecutorFailure(childExecutor, parentSubexecutor, cause);
|
|
1129
|
-
return state === undefined ? undefined : effectOrUndefinedIgnored(state);
|
|
1130
|
-
},
|
|
1131
|
-
onSuccess: doneValue => {
|
|
1132
|
-
this.finishWithDoneValue(childExecutor, parentSubexecutor, doneValue);
|
|
1133
|
-
return undefined;
|
|
1134
|
-
}
|
|
1135
|
-
}));
|
|
1136
|
-
}
|
|
1137
|
-
finishWithDoneValue(childExecutor, parentSubexecutor, doneValue) {
|
|
1138
|
-
const subexecutor = parentSubexecutor;
|
|
1139
|
-
switch (subexecutor._tag) {
|
|
1140
|
-
case OP_PULL_FROM_UPSTREAM:
|
|
1141
|
-
{
|
|
1142
|
-
const modifiedParent = new PullFromUpstream(subexecutor.upstreamExecutor, subexecutor.createChild, subexecutor.lastDone !== undefined ? subexecutor.combineChildResults(subexecutor.lastDone, doneValue) : doneValue, subexecutor.activeChildExecutors, subexecutor.combineChildResults, subexecutor.combineWithChildResult, subexecutor.onPull, subexecutor.onEmit);
|
|
1143
|
-
this._closeLastSubstream = childExecutor.close(succeed$2(doneValue));
|
|
1144
|
-
this.replaceSubexecutor(modifiedParent);
|
|
1145
|
-
break;
|
|
1146
|
-
}
|
|
1147
|
-
case OP_DRAIN_CHILD_EXECUTORS:
|
|
1148
|
-
{
|
|
1149
|
-
const modifiedParent = new DrainChildExecutors(subexecutor.upstreamExecutor, subexecutor.lastDone !== undefined ? subexecutor.combineChildResults(subexecutor.lastDone, doneValue) : doneValue, subexecutor.activeChildExecutors, subexecutor.upstreamDone, subexecutor.combineChildResults, subexecutor.combineWithChildResult, subexecutor.onPull);
|
|
1150
|
-
this._closeLastSubstream = childExecutor.close(succeed$2(doneValue));
|
|
1151
|
-
this.replaceSubexecutor(modifiedParent);
|
|
1152
|
-
break;
|
|
1153
|
-
}
|
|
1154
|
-
}
|
|
1155
|
-
}
|
|
1156
|
-
handleSubexecutorFailure(childExecutor, parentSubexecutor, cause) {
|
|
1157
|
-
return this.finishSubexecutorWithCloseEffect(failCause$2(cause), exit => parentSubexecutor.close(exit), exit => childExecutor.close(exit));
|
|
1158
|
-
}
|
|
1159
|
-
pullFromUpstream(subexecutor) {
|
|
1160
|
-
if (subexecutor.activeChildExecutors.length === 0) {
|
|
1161
|
-
return this.performPullFromUpstream(subexecutor);
|
|
1162
|
-
}
|
|
1163
|
-
const activeChild = subexecutor.activeChildExecutors[0];
|
|
1164
|
-
const parentSubexecutor = new PullFromUpstream(subexecutor.upstreamExecutor, subexecutor.createChild, subexecutor.lastDone, subexecutor.activeChildExecutors.slice(1), subexecutor.combineChildResults, subexecutor.combineWithChildResult, subexecutor.onPull, subexecutor.onEmit);
|
|
1165
|
-
if (activeChild === undefined) {
|
|
1166
|
-
return this.performPullFromUpstream(parentSubexecutor);
|
|
1167
|
-
}
|
|
1168
|
-
this.replaceSubexecutor(new PullFromChild(activeChild.childExecutor, parentSubexecutor, activeChild.onEmit));
|
|
1169
|
-
return undefined;
|
|
1170
|
-
}
|
|
1171
|
-
performPullFromUpstream(subexecutor) {
|
|
1172
|
-
return Read(subexecutor.upstreamExecutor, effect => {
|
|
1173
|
-
const closeLastSubstream = this._closeLastSubstream === undefined ? unit$1 : this._closeLastSubstream;
|
|
1174
|
-
this._closeLastSubstream = undefined;
|
|
1175
|
-
return pipe(this._executeCloseLastSubstream(closeLastSubstream), zipRight$3(effect));
|
|
1176
|
-
}, emitted => {
|
|
1177
|
-
if (this._closeLastSubstream !== undefined) {
|
|
1178
|
-
const closeLastSubstream = this._closeLastSubstream;
|
|
1179
|
-
this._closeLastSubstream = undefined;
|
|
1180
|
-
return pipe(this._executeCloseLastSubstream(closeLastSubstream), map$2(() => {
|
|
1181
|
-
const childExecutor = new ChannelExecutor(subexecutor.createChild(emitted), this._providedEnv, this._executeCloseLastSubstream);
|
|
1182
|
-
childExecutor._input = this._input;
|
|
1183
|
-
const [emitSeparator, updatedChildExecutors] = this.applyUpstreamPullStrategy(false, subexecutor.activeChildExecutors, subexecutor.onPull(Pulled(emitted)));
|
|
1184
|
-
this._activeSubexecutor = new PullFromChild(childExecutor, new PullFromUpstream(subexecutor.upstreamExecutor, subexecutor.createChild, subexecutor.lastDone, updatedChildExecutors, subexecutor.combineChildResults, subexecutor.combineWithChildResult, subexecutor.onPull, subexecutor.onEmit), subexecutor.onEmit);
|
|
1185
|
-
if (isSome(emitSeparator)) {
|
|
1186
|
-
this._activeSubexecutor = new Emit(emitSeparator.value, this._activeSubexecutor);
|
|
1187
|
-
}
|
|
1188
|
-
return undefined;
|
|
1189
|
-
}));
|
|
1190
|
-
}
|
|
1191
|
-
const childExecutor = new ChannelExecutor(subexecutor.createChild(emitted), this._providedEnv, this._executeCloseLastSubstream);
|
|
1192
|
-
childExecutor._input = this._input;
|
|
1193
|
-
const [emitSeparator, updatedChildExecutors] = this.applyUpstreamPullStrategy(false, subexecutor.activeChildExecutors, subexecutor.onPull(Pulled(emitted)));
|
|
1194
|
-
this._activeSubexecutor = new PullFromChild(childExecutor, new PullFromUpstream(subexecutor.upstreamExecutor, subexecutor.createChild, subexecutor.lastDone, updatedChildExecutors, subexecutor.combineChildResults, subexecutor.combineWithChildResult, subexecutor.onPull, subexecutor.onEmit), subexecutor.onEmit);
|
|
1195
|
-
if (isSome(emitSeparator)) {
|
|
1196
|
-
this._activeSubexecutor = new Emit(emitSeparator.value, this._activeSubexecutor);
|
|
1197
|
-
}
|
|
1198
|
-
return undefined;
|
|
1199
|
-
}, exit => {
|
|
1200
|
-
if (subexecutor.activeChildExecutors.some(subexecutor => subexecutor !== undefined)) {
|
|
1201
|
-
const drain = new DrainChildExecutors(subexecutor.upstreamExecutor, subexecutor.lastDone, [undefined, ...subexecutor.activeChildExecutors], subexecutor.upstreamExecutor.getDone(), subexecutor.combineChildResults, subexecutor.combineWithChildResult, subexecutor.onPull);
|
|
1202
|
-
if (this._closeLastSubstream !== undefined) {
|
|
1203
|
-
const closeLastSubstream = this._closeLastSubstream;
|
|
1204
|
-
this._closeLastSubstream = undefined;
|
|
1205
|
-
return pipe(this._executeCloseLastSubstream(closeLastSubstream), map$2(() => this.replaceSubexecutor(drain)));
|
|
1206
|
-
}
|
|
1207
|
-
this.replaceSubexecutor(drain);
|
|
1208
|
-
return undefined;
|
|
1209
|
-
}
|
|
1210
|
-
const closeLastSubstream = this._closeLastSubstream;
|
|
1211
|
-
const state = this.finishSubexecutorWithCloseEffect(pipe(exit, map$3(a => subexecutor.combineWithChildResult(subexecutor.lastDone, a))), () => closeLastSubstream, exit => subexecutor.upstreamExecutor.close(exit));
|
|
1212
|
-
return state === undefined ? undefined :
|
|
1213
|
-
// NOTE: assuming finalizers cannot fail
|
|
1214
|
-
effectOrUndefinedIgnored(state);
|
|
1215
|
-
});
|
|
1216
|
-
}
|
|
1217
|
-
drainChildExecutors(subexecutor) {
|
|
1218
|
-
if (subexecutor.activeChildExecutors.length === 0) {
|
|
1219
|
-
const lastClose = this._closeLastSubstream;
|
|
1220
|
-
if (lastClose !== undefined) {
|
|
1221
|
-
this.addFinalizer(() => succeed$3(lastClose));
|
|
1222
|
-
}
|
|
1223
|
-
return this.finishSubexecutorWithCloseEffect(subexecutor.upstreamDone, () => lastClose, exit => subexecutor.upstreamExecutor.close(exit));
|
|
1224
|
-
}
|
|
1225
|
-
const activeChild = subexecutor.activeChildExecutors[0];
|
|
1226
|
-
const rest = subexecutor.activeChildExecutors.slice(1);
|
|
1227
|
-
if (activeChild === undefined) {
|
|
1228
|
-
const [emitSeparator, remainingExecutors] = this.applyUpstreamPullStrategy(true, rest, subexecutor.onPull(NoUpstream(rest.reduce((n, curr) => curr !== undefined ? n + 1 : n, 0))));
|
|
1229
|
-
this.replaceSubexecutor(new DrainChildExecutors(subexecutor.upstreamExecutor, subexecutor.lastDone, remainingExecutors, subexecutor.upstreamDone, subexecutor.combineChildResults, subexecutor.combineWithChildResult, subexecutor.onPull));
|
|
1230
|
-
if (isSome(emitSeparator)) {
|
|
1231
|
-
this._emitted = emitSeparator.value;
|
|
1232
|
-
return Emit$1();
|
|
1233
|
-
}
|
|
1234
|
-
return undefined;
|
|
1235
|
-
}
|
|
1236
|
-
const parentSubexecutor = new DrainChildExecutors(subexecutor.upstreamExecutor, subexecutor.lastDone, rest, subexecutor.upstreamDone, subexecutor.combineChildResults, subexecutor.combineWithChildResult, subexecutor.onPull);
|
|
1237
|
-
this.replaceSubexecutor(new PullFromChild(activeChild.childExecutor, parentSubexecutor, activeChild.onEmit));
|
|
1238
|
-
return undefined;
|
|
1239
|
-
}
|
|
1240
|
-
}
|
|
1241
|
-
const ifNotNull = effect => effect !== undefined ? effect : unit$1;
|
|
1242
|
-
const runFinalizers = (finalizers, exit$1) => {
|
|
1243
|
-
return pipe(forEach$1(finalizers, fin => exit(fin(exit$1))), map$2(exits => pipe(all(exits), getOrElse(() => unit$2))), flatMap$2(exit => suspend$2(() => exit)));
|
|
1244
|
-
};
|
|
1245
|
-
|
|
1246
|
-
/**
|
|
1247
|
-
* @internal
|
|
1248
|
-
*/
|
|
1249
|
-
const readUpstream = (r, onSuccess, onFailure) => {
|
|
1250
|
-
const readStack = [r];
|
|
1251
|
-
const read = () => {
|
|
1252
|
-
const current = readStack.pop();
|
|
1253
|
-
if (current === undefined || current.upstream === undefined) {
|
|
1254
|
-
return dieMessage$1("Unexpected end of input for channel execution");
|
|
1255
|
-
}
|
|
1256
|
-
const state = current.upstream.run();
|
|
1257
|
-
switch (state._tag) {
|
|
1258
|
-
case OP_EMIT$1:
|
|
1259
|
-
{
|
|
1260
|
-
const emitEffect = current.onEmit(current.upstream.getEmit());
|
|
1261
|
-
if (readStack.length === 0) {
|
|
1262
|
-
if (emitEffect === undefined) {
|
|
1263
|
-
return suspend$2(onSuccess);
|
|
1264
|
-
}
|
|
1265
|
-
return pipe(emitEffect, matchCauseEffect({
|
|
1266
|
-
onFailure,
|
|
1267
|
-
onSuccess
|
|
1268
|
-
}));
|
|
1269
|
-
}
|
|
1270
|
-
if (emitEffect === undefined) {
|
|
1271
|
-
return suspend$2(() => read());
|
|
1272
|
-
}
|
|
1273
|
-
return pipe(emitEffect, matchCauseEffect({
|
|
1274
|
-
onFailure,
|
|
1275
|
-
onSuccess: () => read()
|
|
1276
|
-
}));
|
|
1277
|
-
}
|
|
1278
|
-
case OP_DONE:
|
|
1279
|
-
{
|
|
1280
|
-
const doneEffect = current.onDone(current.upstream.getDone());
|
|
1281
|
-
if (readStack.length === 0) {
|
|
1282
|
-
if (doneEffect === undefined) {
|
|
1283
|
-
return suspend$2(onSuccess);
|
|
1284
|
-
}
|
|
1285
|
-
return pipe(doneEffect, matchCauseEffect({
|
|
1286
|
-
onFailure,
|
|
1287
|
-
onSuccess
|
|
1288
|
-
}));
|
|
1289
|
-
}
|
|
1290
|
-
if (doneEffect === undefined) {
|
|
1291
|
-
return suspend$2(() => read());
|
|
1292
|
-
}
|
|
1293
|
-
return pipe(doneEffect, matchCauseEffect({
|
|
1294
|
-
onFailure,
|
|
1295
|
-
onSuccess: () => read()
|
|
1296
|
-
}));
|
|
1297
|
-
}
|
|
1298
|
-
case OP_FROM_EFFECT:
|
|
1299
|
-
{
|
|
1300
|
-
readStack.push(current);
|
|
1301
|
-
return pipe(current.onEffect(state.effect), catchAllCause$1(cause => suspend$2(() => {
|
|
1302
|
-
const doneEffect = current.onDone(failCause$2(cause));
|
|
1303
|
-
return doneEffect === undefined ? unit$1 : doneEffect;
|
|
1304
|
-
})), matchCauseEffect({
|
|
1305
|
-
onFailure,
|
|
1306
|
-
onSuccess: () => read()
|
|
1307
|
-
}));
|
|
1308
|
-
}
|
|
1309
|
-
case OP_READ:
|
|
1310
|
-
{
|
|
1311
|
-
readStack.push(current);
|
|
1312
|
-
readStack.push(state);
|
|
1313
|
-
return suspend$2(() => read());
|
|
1314
|
-
}
|
|
1315
|
-
}
|
|
1316
|
-
};
|
|
1317
|
-
return read();
|
|
1318
|
-
};
|
|
1319
|
-
|
|
1320
|
-
/** @internal */
|
|
1321
|
-
const run$1 = self => pipe(runScoped(self), scoped$1);
|
|
1322
|
-
|
|
1323
|
-
/** @internal */
|
|
1324
|
-
const runScoped = self => {
|
|
1325
|
-
const run = (channelDeferred, scopeDeferred, scope) => acquireUseRelease$1(sync$2(() => new ChannelExecutor(self, void 0, identity)), exec => suspend$2(() => pipe(runScopedInterpret(exec.run(), exec), intoDeferred(channelDeferred), zipRight$3(_await(channelDeferred)), zipLeft$2(_await(scopeDeferred)))), (exec, exit) => {
|
|
1326
|
-
const finalize = exec.close(exit);
|
|
1327
|
-
if (finalize === undefined) {
|
|
1328
|
-
return unit$1;
|
|
1329
|
-
}
|
|
1330
|
-
return tapErrorCause(finalize, cause => addFinalizer$1(scope, failCause$3(cause)));
|
|
1331
|
-
});
|
|
1332
|
-
return uninterruptibleMask(restore => flatMap$2(scope, parent => pipe(all$1([fork(parent, sequential), make(), make()]), flatMap$2(([child, channelDeferred, scopeDeferred]) => pipe(forkScoped(restore(run(channelDeferred, scopeDeferred, child))), flatMap$2(fiber => pipe(addFinalizer(() => succeed$4(scopeDeferred, void 0)), zipRight$3(restore(_await(channelDeferred))), zipLeft$2(inheritAll(fiber)))))))));
|
|
1333
|
-
};
|
|
1334
|
-
|
|
1335
|
-
/** @internal */
|
|
1336
|
-
const runScopedInterpret = (channelState, exec) => {
|
|
1337
|
-
const op = channelState;
|
|
1338
|
-
switch (op._tag) {
|
|
1339
|
-
case OP_FROM_EFFECT:
|
|
1340
|
-
{
|
|
1341
|
-
return pipe(op.effect, flatMap$2(() => runScopedInterpret(exec.run(), exec)));
|
|
1342
|
-
}
|
|
1343
|
-
case OP_EMIT$1:
|
|
1344
|
-
{
|
|
1345
|
-
// Can't really happen because Out <:< Nothing. So just skip ahead.
|
|
1346
|
-
return runScopedInterpret(exec.run(), exec);
|
|
1347
|
-
}
|
|
1348
|
-
case OP_DONE:
|
|
1349
|
-
{
|
|
1350
|
-
return suspend$2(() => exec.getDone());
|
|
1351
|
-
}
|
|
1352
|
-
case OP_READ:
|
|
1353
|
-
{
|
|
1354
|
-
return readUpstream(op, () => runScopedInterpret(exec.run(), exec), failCause$3);
|
|
1355
|
-
}
|
|
1356
|
-
}
|
|
1357
|
-
};
|
|
1358
|
-
|
|
1359
|
-
/** @internal */
|
|
1360
|
-
const acquireUseRelease = (acquire, use, release) => flatMap$1(fromEffect$1(make$1(() => unit$1)), ref => pipe(fromEffect$1(uninterruptible(tap(acquire, a => set(ref, exit => release(a, exit))))), flatMap$1(use), ensuringWith$1(exit => flatMap$2(get(ref), f => f(exit)))));
|
|
1361
|
-
|
|
1362
|
-
/** @internal */
|
|
1363
|
-
const as$1 = /*#__PURE__*/dual(2, (self, value) => map$1(self, () => value));
|
|
1364
|
-
|
|
1365
|
-
/** @internal */
|
|
1366
|
-
const asUnit = self => map$1(self, constVoid);
|
|
1367
|
-
|
|
1368
|
-
/** @internal */
|
|
1369
|
-
const buffer = options => suspend$1(() => {
|
|
1370
|
-
const doBuffer = (empty, isEmpty, ref) => unwrap$1(modify(ref, inElem => isEmpty(inElem) ? [readWith({
|
|
1371
|
-
onInput: input => flatMap$1(write(input), () => doBuffer(empty, isEmpty, ref)),
|
|
1372
|
-
onFailure: error => fail$1(error),
|
|
1373
|
-
onDone: done => succeedNow(done)
|
|
1374
|
-
}), inElem] : [flatMap$1(write(inElem), () => doBuffer(empty, isEmpty, ref)), empty]));
|
|
1375
|
-
return doBuffer(options.empty, options.isEmpty, options.ref);
|
|
1376
|
-
});
|
|
1377
|
-
|
|
1378
|
-
/** @internal */
|
|
1379
|
-
const bufferChunk = ref => buffer({
|
|
1380
|
-
empty: empty(),
|
|
1381
|
-
isEmpty: isEmpty,
|
|
1382
|
-
ref
|
|
1383
|
-
});
|
|
1384
|
-
|
|
1385
|
-
/** @internal */
|
|
1386
|
-
const catchAll = /*#__PURE__*/dual(2, (self, f) => catchAllCause(self, cause => match(failureOrCause(cause), {
|
|
1387
|
-
onLeft: f,
|
|
1388
|
-
onRight: failCause$1
|
|
1389
|
-
})));
|
|
1390
|
-
|
|
1391
|
-
/** @internal */
|
|
1392
|
-
const concatMap = /*#__PURE__*/dual(2, (self, f) => concatMapWith(self, f, () => void 0, () => void 0));
|
|
1393
|
-
|
|
1394
|
-
/** @internal */
|
|
1395
|
-
const collect = /*#__PURE__*/dual(2, (self, pf) => {
|
|
1396
|
-
const collector = readWith({
|
|
1397
|
-
onInput: out => match$2(pf(out), {
|
|
1398
|
-
onNone: () => collector,
|
|
1399
|
-
onSome: out2 => flatMap$1(write(out2), () => collector)
|
|
1400
|
-
}),
|
|
1401
|
-
onFailure: fail$1,
|
|
1402
|
-
onDone: succeedNow
|
|
1403
|
-
});
|
|
1404
|
-
return pipeTo(self, collector);
|
|
1405
|
-
});
|
|
1406
|
-
|
|
1407
|
-
/** @internal */
|
|
1408
|
-
const concatOut = self => concatAll(self);
|
|
1409
|
-
|
|
1410
|
-
/** @internal */
|
|
1411
|
-
const mapInput$1 = /*#__PURE__*/dual(2, (self, f) => {
|
|
1412
|
-
const reader = readWith({
|
|
1413
|
-
onInput: inElem => flatMap$1(write(inElem), () => reader),
|
|
1414
|
-
onFailure: fail$1,
|
|
1415
|
-
onDone: done => succeedNow(f(done))
|
|
1416
|
-
});
|
|
1417
|
-
return pipeTo(reader, self);
|
|
1418
|
-
});
|
|
1419
|
-
|
|
1420
|
-
/** @internal */
|
|
1421
|
-
const mapInputEffect$1 = /*#__PURE__*/dual(2, (self, f) => {
|
|
1422
|
-
const reader = readWith({
|
|
1423
|
-
onInput: inElem => flatMap$1(write(inElem), () => reader),
|
|
1424
|
-
onFailure: fail$1,
|
|
1425
|
-
onDone: done => fromEffect$1(f(done))
|
|
1426
|
-
});
|
|
1427
|
-
return pipeTo(reader, self);
|
|
1428
|
-
});
|
|
1429
|
-
|
|
1430
|
-
/** @internal */
|
|
1431
|
-
const mapInputError = /*#__PURE__*/dual(2, (self, f) => {
|
|
1432
|
-
const reader = readWith({
|
|
1433
|
-
onInput: inElem => flatMap$1(write(inElem), () => reader),
|
|
1434
|
-
onFailure: error => fail$1(f(error)),
|
|
1435
|
-
onDone: succeedNow
|
|
1436
|
-
});
|
|
1437
|
-
return pipeTo(reader, self);
|
|
1438
|
-
});
|
|
1439
|
-
|
|
1440
|
-
/** @internal */
|
|
1441
|
-
const mapInputErrorEffect = /*#__PURE__*/dual(2, (self, f) => {
|
|
1442
|
-
const reader = readWith({
|
|
1443
|
-
onInput: inElem => flatMap$1(write(inElem), () => reader),
|
|
1444
|
-
onFailure: error => fromEffect$1(f(error)),
|
|
1445
|
-
onDone: succeedNow
|
|
1446
|
-
});
|
|
1447
|
-
return pipeTo(reader, self);
|
|
1448
|
-
});
|
|
1449
|
-
|
|
1450
|
-
/** @internal */
|
|
1451
|
-
const mapInputIn = /*#__PURE__*/dual(2, (self, f) => {
|
|
1452
|
-
const reader = readWith({
|
|
1453
|
-
onInput: inElem => flatMap$1(write(f(inElem)), () => reader),
|
|
1454
|
-
onFailure: fail$1,
|
|
1455
|
-
onDone: succeedNow
|
|
1456
|
-
});
|
|
1457
|
-
return pipeTo(reader, self);
|
|
1458
|
-
});
|
|
1459
|
-
const mapInputInEffect = /*#__PURE__*/dual(2, (self, f) => {
|
|
1460
|
-
const reader = readWith({
|
|
1461
|
-
onInput: inElem => flatMap$1(flatMap$1(fromEffect$1(f(inElem)), write), () => reader),
|
|
1462
|
-
onFailure: fail$1,
|
|
1463
|
-
onDone: succeedNow
|
|
1464
|
-
});
|
|
1465
|
-
return pipeTo(reader, self);
|
|
1466
|
-
});
|
|
1467
|
-
|
|
1468
|
-
/** @internal */
|
|
1469
|
-
const doneCollect = self => suspend$1(() => {
|
|
1470
|
-
const builder = [];
|
|
1471
|
-
return pipe(pipeTo(self, doneCollectReader(builder)), flatMap$1(outDone => succeed$1([unsafeFromArray(builder), outDone])));
|
|
1472
|
-
});
|
|
1473
|
-
|
|
1474
|
-
/** @internal */
|
|
1475
|
-
const doneCollectReader = builder => {
|
|
1476
|
-
return readWith({
|
|
1477
|
-
onInput: outElem => flatMap$1(sync$1(() => {
|
|
1478
|
-
builder.push(outElem);
|
|
1479
|
-
}), () => doneCollectReader(builder)),
|
|
1480
|
-
onFailure: fail$1,
|
|
1481
|
-
onDone: succeed$1
|
|
1482
|
-
});
|
|
1483
|
-
};
|
|
1484
|
-
|
|
1485
|
-
/** @internal */
|
|
1486
|
-
const drain$1 = self => {
|
|
1487
|
-
const drainer = readWithCause({
|
|
1488
|
-
onInput: () => drainer,
|
|
1489
|
-
onFailure: failCause$1,
|
|
1490
|
-
onDone: succeed$1
|
|
1491
|
-
});
|
|
1492
|
-
return pipeTo(self, drainer);
|
|
1493
|
-
};
|
|
1494
|
-
|
|
1495
|
-
/** @internal */
|
|
1496
|
-
const emitCollect = self => flatMap$1(doneCollect(self), write);
|
|
1497
|
-
|
|
1498
|
-
/** @internal */
|
|
1499
|
-
const ensuring$1 = /*#__PURE__*/dual(2, (self, finalizer) => ensuringWith$1(self, () => finalizer));
|
|
1500
|
-
|
|
1501
|
-
/** @internal */
|
|
1502
|
-
const context$1 = () => fromEffect$1(context$2());
|
|
1503
|
-
|
|
1504
|
-
/** @internal */
|
|
1505
|
-
const contextWith$1 = f => map$1(context$1(), f);
|
|
1506
|
-
|
|
1507
|
-
/** @internal */
|
|
1508
|
-
const contextWithChannel = f => flatMap$1(context$1(), f);
|
|
1509
|
-
|
|
1510
|
-
/** @internal */
|
|
1511
|
-
const contextWithEffect$1 = f => mapEffect$1(context$1(), f);
|
|
1512
|
-
|
|
1513
|
-
/** @internal */
|
|
1514
|
-
const flatten = self => flatMap$1(self, identity);
|
|
1515
|
-
|
|
1516
|
-
/** @internal */
|
|
1517
|
-
const foldChannel = /*#__PURE__*/dual(2, (self, options) => foldCauseChannel(self, {
|
|
1518
|
-
onFailure: cause => {
|
|
1519
|
-
const either = failureOrCause(cause);
|
|
1520
|
-
switch (either._tag) {
|
|
1521
|
-
case "Left":
|
|
1522
|
-
{
|
|
1523
|
-
return options.onFailure(either.left);
|
|
1524
|
-
}
|
|
1525
|
-
case "Right":
|
|
1526
|
-
{
|
|
1527
|
-
return failCause$1(either.right);
|
|
1528
|
-
}
|
|
1529
|
-
}
|
|
1530
|
-
},
|
|
1531
|
-
onSuccess: options.onSuccess
|
|
1532
|
-
}));
|
|
1533
|
-
|
|
1534
|
-
/** @internal */
|
|
1535
|
-
const fromEither = either => suspend$1(() => match(either, {
|
|
1536
|
-
onLeft: fail$1,
|
|
1537
|
-
onRight: succeed$1
|
|
1538
|
-
}));
|
|
1539
|
-
|
|
1540
|
-
/** @internal */
|
|
1541
|
-
const fromInput = input => unwrap$1(input.takeWith(failCause$1, elem => flatMap$1(write(elem), () => fromInput(input)), succeed$1));
|
|
1542
|
-
|
|
1543
|
-
/** @internal */
|
|
1544
|
-
const fromHub$1 = hub => unwrapScoped$1(map$2(subscribe(hub), fromQueue$1));
|
|
1545
|
-
|
|
1546
|
-
/** @internal */
|
|
1547
|
-
const fromHubScoped = hub => map$2(subscribe(hub), fromQueue$1);
|
|
1548
|
-
|
|
1549
|
-
/** @internal */
|
|
1550
|
-
const fromOption = option => suspend$1(() => match$2(option, {
|
|
1551
|
-
onNone: () => fail$1(none()),
|
|
1552
|
-
onSome: succeed$1
|
|
1553
|
-
}));
|
|
1554
|
-
|
|
1555
|
-
/** @internal */
|
|
1556
|
-
const fromQueue$1 = queue => suspend$1(() => fromQueueInternal(queue));
|
|
1557
|
-
|
|
1558
|
-
/** @internal */
|
|
1559
|
-
const fromQueueInternal = queue => pipe(fromEffect$1(take$1(queue)), flatMap$1(match({
|
|
1560
|
-
onLeft: match$1({
|
|
1561
|
-
onFailure: failCause$1,
|
|
1562
|
-
onSuccess: succeedNow
|
|
1563
|
-
}),
|
|
1564
|
-
onRight: elem => flatMap$1(write(elem), () => fromQueueInternal(queue))
|
|
1565
|
-
})));
|
|
1566
|
-
|
|
1567
|
-
/** @internal */
|
|
1568
|
-
const identityChannel = () => readWith({
|
|
1569
|
-
onInput: input => flatMap$1(write(input), () => identityChannel()),
|
|
1570
|
-
onFailure: fail$1,
|
|
1571
|
-
onDone: succeedNow
|
|
1572
|
-
});
|
|
1573
|
-
|
|
1574
|
-
/** @internal */
|
|
1575
|
-
const interruptWhen = /*#__PURE__*/dual(2, (self, effect) => mergeWith(self, {
|
|
1576
|
-
other: fromEffect$1(effect),
|
|
1577
|
-
onSelfDone: selfDone => Done$1(suspend$2(() => selfDone)),
|
|
1578
|
-
onOtherDone: effectDone => Done$1(suspend$2(() => effectDone))
|
|
1579
|
-
}));
|
|
1580
|
-
|
|
1581
|
-
/** @internal */
|
|
1582
|
-
const interruptWhenDeferred = /*#__PURE__*/dual(2, (self, deferred) => interruptWhen(self, _await(deferred)));
|
|
1583
|
-
|
|
1584
|
-
/** @internal */
|
|
1585
|
-
const map$1 = /*#__PURE__*/dual(2, (self, f) => flatMap$1(self, a => sync$1(() => f(a))));
|
|
1586
|
-
|
|
1587
|
-
/** @internal */
|
|
1588
|
-
const mapEffect$1 = /*#__PURE__*/dual(2, (self, f) => flatMap$1(self, z => fromEffect$1(f(z))));
|
|
1589
|
-
|
|
1590
|
-
/** @internal */
|
|
1591
|
-
const mapError$1 = /*#__PURE__*/dual(2, (self, f) => mapErrorCause(self, map$4(f)));
|
|
1592
|
-
|
|
1593
|
-
/** @internal */
|
|
1594
|
-
const mapErrorCause = /*#__PURE__*/dual(2, (self, f) => catchAllCause(self, cause => failCause$1(f(cause))));
|
|
1595
|
-
|
|
1596
|
-
/** @internal */
|
|
1597
|
-
const mapOut = /*#__PURE__*/dual(2, (self, f) => {
|
|
1598
|
-
const reader = readWith({
|
|
1599
|
-
onInput: outElem => flatMap$1(write(f(outElem)), () => reader),
|
|
1600
|
-
onFailure: fail$1,
|
|
1601
|
-
onDone: succeedNow
|
|
1602
|
-
});
|
|
1603
|
-
return pipeTo(self, reader);
|
|
1604
|
-
});
|
|
1605
|
-
|
|
1606
|
-
/** @internal */
|
|
1607
|
-
const mapOutEffect = /*#__PURE__*/dual(2, (self, f) => {
|
|
1608
|
-
const reader = readWithCause({
|
|
1609
|
-
onInput: outElem => pipe(fromEffect$1(f(outElem)), flatMap$1(write), flatMap$1(() => reader)),
|
|
1610
|
-
onFailure: failCause$1,
|
|
1611
|
-
onDone: succeedNow
|
|
1612
|
-
});
|
|
1613
|
-
return pipeTo(self, reader);
|
|
1614
|
-
});
|
|
1615
|
-
|
|
1616
|
-
/** @internal */
|
|
1617
|
-
const mapOutEffectPar = /*#__PURE__*/dual(3, (self, f, n) => pipe(gen(function* ($) {
|
|
1618
|
-
const queue = yield* $(acquireRelease(bounded(n), queue => shutdown(queue)));
|
|
1619
|
-
const errorSignal = yield* $(make());
|
|
1620
|
-
const withPermits = n === Number.POSITIVE_INFINITY ? _ => identity : (yield* $(makeSemaphore(n))).withPermits;
|
|
1621
|
-
const pull = yield* $(toPull(self));
|
|
1622
|
-
yield* $(matchCauseEffect(pull, {
|
|
1623
|
-
onFailure: cause => offer(queue, failCause$3(cause)),
|
|
1624
|
-
onSuccess: either => match(either, {
|
|
1625
|
-
onLeft: outDone => {
|
|
1626
|
-
const lock = withPermits(n);
|
|
1627
|
-
return zipRight$3(interruptible(lock(unit$1)), asUnit$1(offer(queue, succeed$3(left(outDone)))));
|
|
1628
|
-
},
|
|
1629
|
-
onRight: outElem => gen(function* ($) {
|
|
1630
|
-
const deferred = yield* $(make());
|
|
1631
|
-
const latch = yield* $(make());
|
|
1632
|
-
yield* $(asUnit$1(offer(queue, map$2(_await(deferred), right))));
|
|
1633
|
-
yield* $(succeed$4(latch, void 0), zipRight$3(pipe(uninterruptibleMask(restore => pipe(exit(restore(_await(errorSignal))), raceFirst(exit(restore(f(outElem)))),
|
|
1634
|
-
// TODO: remove
|
|
1635
|
-
flatMap$2(exit => suspend$2(() => exit)))), tapErrorCause(cause => failCause$4(errorSignal, cause)), intoDeferred(deferred))), withPermits(1), forkScoped);
|
|
1636
|
-
yield* $(_await(latch));
|
|
1637
|
-
})
|
|
1638
|
-
})
|
|
1639
|
-
}), forever, interruptible, forkScoped);
|
|
1640
|
-
return queue;
|
|
1641
|
-
}), map$2(queue => {
|
|
1642
|
-
const consumer = unwrap$1(matchCause(flatten$1(take$1(queue)), {
|
|
1643
|
-
onFailure: failCause$1,
|
|
1644
|
-
onSuccess: match({
|
|
1645
|
-
onLeft: succeedNow,
|
|
1646
|
-
onRight: outElem => flatMap$1(write(outElem), () => consumer)
|
|
1647
|
-
})
|
|
1648
|
-
}));
|
|
1649
|
-
return consumer;
|
|
1650
|
-
}), unwrapScoped$1));
|
|
1651
|
-
|
|
1652
|
-
/** @internal */
|
|
1653
|
-
const mergeAll = options => {
|
|
1654
|
-
return channels => mergeAllWith(options)(channels, constVoid);
|
|
1655
|
-
};
|
|
1656
|
-
|
|
1657
|
-
/** @internal */
|
|
1658
|
-
const mergeAllUnbounded = channels => mergeAllWith({
|
|
1659
|
-
concurrency: "unbounded"
|
|
1660
|
-
})(channels, constVoid);
|
|
1661
|
-
|
|
1662
|
-
/** @internal */
|
|
1663
|
-
const mergeAllUnboundedWith = (channels, f) => mergeAllWith({
|
|
1664
|
-
concurrency: "unbounded"
|
|
1665
|
-
})(channels, f);
|
|
1666
|
-
|
|
1667
|
-
/** @internal */
|
|
1668
|
-
const mergeAllWith = ({
|
|
1669
|
-
bufferSize = 16,
|
|
1670
|
-
concurrency,
|
|
1671
|
-
mergeStrategy = BackPressure()
|
|
1672
|
-
}) => (channels, f) => pipe(gen(function* ($) {
|
|
1673
|
-
const input = yield* $(make$2());
|
|
1674
|
-
const queueReader = fromInput(input);
|
|
1675
|
-
const queue = yield* $(acquireRelease(bounded(bufferSize), queue => shutdown(queue)));
|
|
1676
|
-
const cancelers = yield* $(acquireRelease(unbounded(), queue => shutdown(queue)));
|
|
1677
|
-
const lastDone = yield* $(make$1(none()));
|
|
1678
|
-
const errorSignal = yield* $(make());
|
|
1679
|
-
const withPermits = concurrency === "unbounded" ? _ => identity : (yield* $(makeSemaphore(concurrency))).withPermits;
|
|
1680
|
-
const pull = yield* $(toPull(channels));
|
|
1681
|
-
const evaluatePull = pull => pipe(flatMap$2(pull, match({
|
|
1682
|
-
onLeft: done => succeed$3(some$1(done)),
|
|
1683
|
-
onRight: outElem => as$2(offer(queue, succeed$3(right(outElem))), none())
|
|
1684
|
-
})), repeatUntil(isSome), flatMap$2(match$2({
|
|
1685
|
-
onNone: () => unit$1,
|
|
1686
|
-
onSome: outDone => update(lastDone, match$2({
|
|
1687
|
-
onNone: () => some$1(outDone),
|
|
1688
|
-
onSome: lastDone => some$1(f(lastDone, outDone))
|
|
1689
|
-
}))
|
|
1690
|
-
})), catchAllCause$1(cause => isInterrupted(cause) ? failCause$3(cause) : pipe(offer(queue, failCause$3(cause)), zipRight$3(succeed$4(errorSignal, void 0)), asUnit$1)));
|
|
1691
|
-
yield* $(matchCauseEffect(pull, {
|
|
1692
|
-
onFailure: cause => pipe(offer(queue, failCause$3(cause)), zipRight$3(succeed$3(false))),
|
|
1693
|
-
onSuccess: match({
|
|
1694
|
-
onLeft: outDone => raceWith$1(_await(errorSignal), withPermits(concurrency)(unit$1), {
|
|
1695
|
-
onSelfDone: (_, permitAcquisition) => pipe(interrupt(permitAcquisition), as$2(false)),
|
|
1696
|
-
onOtherDone: (_, failureAwait) => pipe(interrupt(failureAwait), zipRight$3(pipe(get(lastDone), flatMap$2(match$2({
|
|
1697
|
-
onNone: () => offer(queue, succeed$3(left(outDone))),
|
|
1698
|
-
onSome: lastDone => offer(queue, succeed$3(left(f(lastDone, outDone))))
|
|
1699
|
-
})), as$2(false))))
|
|
1700
|
-
}),
|
|
1701
|
-
onRight: channel => pipe(mergeStrategy, match$3({
|
|
1702
|
-
onBackPressure: () => gen(function* ($) {
|
|
1703
|
-
const latch = yield* $(make());
|
|
1704
|
-
const raceEffects = pipe(queueReader, pipeTo(channel), toPull, flatMap$2(pull => pipe(evaluatePull(pull), race$1(_await(errorSignal)))), scoped$1);
|
|
1705
|
-
yield* $(succeed$4(latch, void 0), zipRight$3(raceEffects), withPermits(1), forkScoped);
|
|
1706
|
-
yield* $(_await(latch));
|
|
1707
|
-
const errored = yield* $(isDone(errorSignal));
|
|
1708
|
-
return !errored;
|
|
1709
|
-
}),
|
|
1710
|
-
onBufferSliding: () => gen(function* ($) {
|
|
1711
|
-
const canceler = yield* $(make());
|
|
1712
|
-
const latch = yield* $(make());
|
|
1713
|
-
const size$1 = yield* $(size(cancelers));
|
|
1714
|
-
yield* $(take$1(cancelers), flatMap$2(_ => succeed$4(_, void 0)), when(() => concurrency === "unbounded" ? false : size$1 >= concurrency));
|
|
1715
|
-
yield* $(offer(cancelers, canceler));
|
|
1716
|
-
const raceEffects = pipe(queueReader, pipeTo(channel), toPull, flatMap$2(pull => pipe(evaluatePull(pull), race$1(_await(errorSignal)), race$1(_await(canceler)))), scoped$1);
|
|
1717
|
-
yield* $(succeed$4(latch, void 0), zipRight$3(raceEffects), withPermits(1), forkScoped);
|
|
1718
|
-
yield* $(_await(latch));
|
|
1719
|
-
const errored = yield* $(isDone(errorSignal));
|
|
1720
|
-
return !errored;
|
|
1721
|
-
})
|
|
1722
|
-
}))
|
|
1723
|
-
})
|
|
1724
|
-
}), repeatWhile(identity), forkScoped);
|
|
1725
|
-
return [queue, input];
|
|
1726
|
-
}), map$2(([queue, input]) => {
|
|
1727
|
-
const consumer = pipe(take$1(queue), flatten$1, matchCause({
|
|
1728
|
-
onFailure: failCause$1,
|
|
1729
|
-
onSuccess: match({
|
|
1730
|
-
onLeft: succeedNow,
|
|
1731
|
-
onRight: outElem => flatMap$1(write(outElem), () => consumer)
|
|
1732
|
-
})
|
|
1733
|
-
}), unwrap$1);
|
|
1734
|
-
return embedInput(consumer, input);
|
|
1735
|
-
}), unwrapScoped$1);
|
|
1736
|
-
|
|
1737
|
-
/** @internal */
|
|
1738
|
-
const mergeMap = /*#__PURE__*/dual(3, (self, f, options) => mergeAll(options)(mapOut(self, f)));
|
|
1739
|
-
|
|
1740
|
-
/** @internal */
|
|
1741
|
-
const mergeOut = /*#__PURE__*/dual(2, (self, n) => mergeAll({
|
|
1742
|
-
concurrency: n
|
|
1743
|
-
})(mapOut(self, identity)));
|
|
1744
|
-
|
|
1745
|
-
/** @internal */
|
|
1746
|
-
const mergeOutWith = /*#__PURE__*/dual(3, (self, n, f) => mergeAllWith({
|
|
1747
|
-
concurrency: n
|
|
1748
|
-
})(mapOut(self, identity), f));
|
|
1749
|
-
|
|
1750
|
-
/** @internal */
|
|
1751
|
-
const mergeWith = /*#__PURE__*/dual(2, (self, options) => unwrapScoped$1(flatMap$2(make$2(), input => {
|
|
1752
|
-
const queueReader = fromInput(input);
|
|
1753
|
-
return map$2(zip$2(toPull(pipeTo(queueReader, self)), toPull(pipeTo(queueReader, options.other))), ([pullL, pullR]) => {
|
|
1754
|
-
const handleSide = (exit, fiber, pull) => (done, both, single) => {
|
|
1755
|
-
const onDecision = decision => {
|
|
1756
|
-
const op = decision;
|
|
1757
|
-
if (op._tag === OP_DONE$1) {
|
|
1758
|
-
return succeed$3(fromEffect$1(zipRight$3(interrupt(fiber), op.effect)));
|
|
1759
|
-
}
|
|
1760
|
-
return map$2(_await$1(fiber), match$1({
|
|
1761
|
-
onFailure: cause => fromEffect$1(op.f(failCause$2(cause))),
|
|
1762
|
-
onSuccess: match({
|
|
1763
|
-
onLeft: done => fromEffect$1(op.f(succeed$2(done))),
|
|
1764
|
-
onRight: elem => zipRight$1(write(elem), go(single(op.f)))
|
|
1765
|
-
})
|
|
1766
|
-
}));
|
|
1767
|
-
};
|
|
1768
|
-
return match$1(exit, {
|
|
1769
|
-
onFailure: cause => onDecision(done(failCause$2(cause))),
|
|
1770
|
-
onSuccess: match({
|
|
1771
|
-
onLeft: z => onDecision(done(succeed$2(z))),
|
|
1772
|
-
onRight: elem => succeed$3(flatMap$1(write(elem), () => flatMap$1(fromEffect$1(forkDaemon(pull)), leftFiber => go(both(leftFiber, fiber)))))
|
|
1773
|
-
})
|
|
1774
|
-
});
|
|
1775
|
-
};
|
|
1776
|
-
const go = state => {
|
|
1777
|
-
switch (state._tag) {
|
|
1778
|
-
case OP_BOTH_RUNNING:
|
|
1779
|
-
{
|
|
1780
|
-
const leftJoin = interruptible(join(state.left));
|
|
1781
|
-
const rightJoin = interruptible(join(state.right));
|
|
1782
|
-
return unwrap$1(raceWith$1(leftJoin, rightJoin, {
|
|
1783
|
-
onSelfDone: (leftExit, rf) => zipRight$3(interrupt(rf), handleSide(leftExit, state.right, pullL)(options.onSelfDone, BothRunning, f => LeftDone(f))),
|
|
1784
|
-
onOtherDone: (rightExit, lf) => zipRight$3(interrupt(lf), handleSide(rightExit, state.left, pullR)(options.onOtherDone, (left, right) => BothRunning(right, left), f => RightDone(f)))
|
|
1785
|
-
}));
|
|
1786
|
-
}
|
|
1787
|
-
case OP_LEFT_DONE:
|
|
1788
|
-
{
|
|
1789
|
-
return unwrap$1(map$2(exit(pullR), match$1({
|
|
1790
|
-
onFailure: cause => fromEffect$1(state.f(failCause$2(cause))),
|
|
1791
|
-
onSuccess: match({
|
|
1792
|
-
onLeft: done => fromEffect$1(state.f(succeed$2(done))),
|
|
1793
|
-
onRight: elem => flatMap$1(write(elem), () => go(LeftDone(state.f)))
|
|
1794
|
-
})
|
|
1795
|
-
})));
|
|
1796
|
-
}
|
|
1797
|
-
case OP_RIGHT_DONE:
|
|
1798
|
-
{
|
|
1799
|
-
return unwrap$1(map$2(exit(pullL), match$1({
|
|
1800
|
-
onFailure: cause => fromEffect$1(state.f(failCause$2(cause))),
|
|
1801
|
-
onSuccess: match({
|
|
1802
|
-
onLeft: done => fromEffect$1(state.f(succeed$2(done))),
|
|
1803
|
-
onRight: elem => flatMap$1(write(elem), () => go(RightDone(state.f)))
|
|
1804
|
-
})
|
|
1805
|
-
})));
|
|
1806
|
-
}
|
|
1807
|
-
}
|
|
1808
|
-
};
|
|
1809
|
-
return pipe(fromEffect$1(zipWith$1(forkDaemon(pullL), forkDaemon(pullR), (left, right) => BothRunning(left, right))), flatMap$1(go), embedInput(input));
|
|
1810
|
-
});
|
|
1811
|
-
})));
|
|
1812
|
-
|
|
1813
|
-
/** @internal */
|
|
1814
|
-
const never$1 = /*#__PURE__*/fromEffect$1(never$2);
|
|
1815
|
-
|
|
1816
|
-
/** @internal */
|
|
1817
|
-
const orDie = /*#__PURE__*/dual(2, (self, error) => orDieWith(self, error));
|
|
1818
|
-
|
|
1819
|
-
/** @internal */
|
|
1820
|
-
const orDieWith = /*#__PURE__*/dual(2, (self, f) => catchAll(self, e => {
|
|
1821
|
-
throw f(e);
|
|
1822
|
-
}));
|
|
1823
|
-
|
|
1824
|
-
/** @internal */
|
|
1825
|
-
const orElse$1 = /*#__PURE__*/dual(2, (self, that) => catchAll(self, that));
|
|
1826
|
-
|
|
1827
|
-
/** @internal */
|
|
1828
|
-
const pipeToOrFail = /*#__PURE__*/dual(2, (self, that) => suspend$1(() => {
|
|
1829
|
-
let channelException = undefined;
|
|
1830
|
-
const reader = readWith({
|
|
1831
|
-
onInput: outElem => flatMap$1(write(outElem), () => reader),
|
|
1832
|
-
onFailure: outErr => {
|
|
1833
|
-
channelException = ChannelException(outErr);
|
|
1834
|
-
return failCause$1(die$2(channelException));
|
|
1835
|
-
},
|
|
1836
|
-
onDone: succeedNow
|
|
1837
|
-
});
|
|
1838
|
-
const writer = readWithCause({
|
|
1839
|
-
onInput: outElem => pipe(write(outElem), flatMap$1(() => writer)),
|
|
1840
|
-
onFailure: cause => isDieType(cause) && isChannelException(cause.defect) && equals(cause.defect, channelException) ? fail$1(cause.defect.error) : failCause$1(cause),
|
|
1841
|
-
onDone: succeedNow
|
|
1842
|
-
});
|
|
1843
|
-
return pipeTo(pipeTo(pipeTo(self, reader), that), writer);
|
|
1844
|
-
}));
|
|
1845
|
-
|
|
1846
|
-
/** @internal */
|
|
1847
|
-
const provideService = /*#__PURE__*/dual(3, (self, tag, service) => {
|
|
1848
|
-
return flatMap$1(context$1(), context => provideContext$1(self, add(context, tag, service)));
|
|
1849
|
-
});
|
|
1850
|
-
|
|
1851
|
-
/** @internal */
|
|
1852
|
-
const provideLayer = /*#__PURE__*/dual(2, (self, layer) => unwrapScoped$1(map$2(build(layer), env => provideContext$1(self, env))));
|
|
1853
|
-
|
|
1854
|
-
/** @internal */
|
|
1855
|
-
const mapInputContext = /*#__PURE__*/dual(2, (self, f) => contextWithChannel(context => provideContext$1(self, f(context))));
|
|
1856
|
-
|
|
1857
|
-
/** @internal */
|
|
1858
|
-
const provideSomeLayer = /*#__PURE__*/dual(2, (self, layer) =>
|
|
1859
|
-
// @ts-expect-error
|
|
1860
|
-
provideLayer(self, merge(context$3(), layer)));
|
|
1861
|
-
|
|
1862
|
-
/** @internal */
|
|
1863
|
-
const read = () => readOrFail(none());
|
|
1864
|
-
|
|
1865
|
-
/** @internal */
|
|
1866
|
-
const repeated = self => flatMap$1(self, () => repeated(self));
|
|
1867
|
-
|
|
1868
|
-
/** @internal */
|
|
1869
|
-
const run = self => scoped$1(runScoped(self));
|
|
1870
|
-
|
|
1871
|
-
/** @internal */
|
|
1872
|
-
const runCollect = self => run$1(collectElements(self));
|
|
1873
|
-
|
|
1874
|
-
/** @internal */
|
|
1875
|
-
const runDrain = self => run$1(drain$1(self));
|
|
1876
|
-
|
|
1877
|
-
/** @internal */
|
|
1878
|
-
const scoped = effect => unwrap$1(uninterruptibleMask(restore => map$2(make$3(), scope => acquireReleaseOut(tapErrorCause(restore(extend(scope)(effect)), cause => close(scope, failCause$2(cause))), (_, exit) => close(scope, exit)))));
|
|
1879
|
-
|
|
1880
|
-
/** @internal */
|
|
1881
|
-
const toHub = hub => toQueue(hub);
|
|
1882
|
-
|
|
1883
|
-
/** @internal */
|
|
1884
|
-
const toPull = self => map$2(acquireRelease(sync$2(() => new ChannelExecutor(self, void 0, identity)), (exec, exit) => {
|
|
1885
|
-
const finalize = exec.close(exit);
|
|
1886
|
-
return finalize === undefined ? unit$1 : finalize;
|
|
1887
|
-
}), exec => suspend$2(() => interpretToPull(exec.run(), exec)));
|
|
1888
|
-
|
|
1889
|
-
/** @internal */
|
|
1890
|
-
const interpretToPull = (channelState, exec) => {
|
|
1891
|
-
const state = channelState;
|
|
1892
|
-
switch (state._tag) {
|
|
1893
|
-
case OP_DONE:
|
|
1894
|
-
{
|
|
1895
|
-
return match$1(exec.getDone(), {
|
|
1896
|
-
onFailure: failCause$3,
|
|
1897
|
-
onSuccess: done => succeed$3(left(done))
|
|
1898
|
-
});
|
|
1899
|
-
}
|
|
1900
|
-
case OP_EMIT$1:
|
|
1901
|
-
{
|
|
1902
|
-
return succeed$3(right(exec.getEmit()));
|
|
1903
|
-
}
|
|
1904
|
-
case OP_FROM_EFFECT:
|
|
1905
|
-
{
|
|
1906
|
-
return pipe(state.effect, flatMap$2(() => interpretToPull(exec.run(), exec)));
|
|
1907
|
-
}
|
|
1908
|
-
case OP_READ:
|
|
1909
|
-
{
|
|
1910
|
-
return readUpstream(state, () => interpretToPull(exec.run(), exec), cause => failCause$3(cause));
|
|
1911
|
-
}
|
|
1912
|
-
}
|
|
1913
|
-
};
|
|
1914
|
-
|
|
1915
|
-
/** @internal */
|
|
1916
|
-
const toQueue = queue => suspend$1(() => toQueueInternal(queue));
|
|
1917
|
-
|
|
1918
|
-
/** @internal */
|
|
1919
|
-
const toQueueInternal = queue => {
|
|
1920
|
-
return readWithCause({
|
|
1921
|
-
onInput: elem => flatMap$1(fromEffect$1(offer(queue, right(elem))), () => toQueueInternal(queue)),
|
|
1922
|
-
onFailure: cause => fromEffect$1(pipe(offer(queue, left(failCause$2(cause))))),
|
|
1923
|
-
onDone: done => fromEffect$1(pipe(offer(queue, left(succeed$2(done)))))
|
|
1924
|
-
});
|
|
1925
|
-
};
|
|
1926
|
-
|
|
1927
|
-
/** @internal */
|
|
1928
|
-
const unwrap$1 = channel => flatten(fromEffect$1(channel));
|
|
1929
|
-
|
|
1930
|
-
/** @internal */
|
|
1931
|
-
const unwrapScoped$1 = self => concatAllWith(scoped(self), (d, _) => d, (d, _) => d);
|
|
1932
|
-
|
|
1933
|
-
/** @internal */
|
|
1934
|
-
const updateService = /*#__PURE__*/dual(3, (self, tag, f) => mapInputContext(self, context => merge$1(context, make$4(tag, f(unsafeGet(context, tag))))));
|
|
1935
|
-
|
|
1936
|
-
/** @internal */
|
|
1937
|
-
const withSpan = /*#__PURE__*/dual(3, (self, name, options) => unwrapScoped$1(as$2(withSpanScoped(name, options), self)));
|
|
1938
|
-
|
|
1939
|
-
/** @internal */
|
|
1940
|
-
const writeAll = (...outs) => writeChunk(fromIterable(outs));
|
|
1941
|
-
|
|
1942
|
-
/** @internal */
|
|
1943
|
-
const writeChunk = outs => writeChunkWriter(0, outs.length, outs);
|
|
1944
|
-
|
|
1945
|
-
/** @internal */
|
|
1946
|
-
const writeChunkWriter = (idx, len, chunk) => {
|
|
1947
|
-
return idx === len ? unit : pipe(write(pipe(chunk, unsafeGet$1(idx))), flatMap$1(() => writeChunkWriter(idx + 1, len, chunk)));
|
|
1948
|
-
};
|
|
1949
|
-
|
|
1950
|
-
/** @internal */
|
|
1951
|
-
const zip$1 = /*#__PURE__*/dual(args => isChannel(args[1]), (self, that, options) => options?.concurrent ? mergeWith(self, {
|
|
1952
|
-
other: that,
|
|
1953
|
-
onSelfDone: exit1 => Await(exit2 => suspend$2(() => zip$3(exit1, exit2))),
|
|
1954
|
-
onOtherDone: exit2 => Await(exit1 => suspend$2(() => zip$3(exit1, exit2)))
|
|
1955
|
-
}) : flatMap$1(self, a => map$1(that, b => [a, b])));
|
|
1956
|
-
|
|
1957
|
-
/** @internal */
|
|
1958
|
-
const zipLeft$1 = /*#__PURE__*/dual(args => isChannel(args[1]), (self, that, options) => options?.concurrent ? map$1(zip$1(self, that, {
|
|
1959
|
-
concurrent: true
|
|
1960
|
-
}), tuple => tuple[0]) : flatMap$1(self, z => as$1(that, z)));
|
|
1961
|
-
|
|
1962
|
-
/** @internal */
|
|
1963
|
-
const zipRight$1 = /*#__PURE__*/dual(args => isChannel(args[1]), (self, that, options) => options?.concurrent ? map$1(zip$1(self, that, {
|
|
1964
|
-
concurrent: true
|
|
1965
|
-
}), tuple => tuple[1]) : flatMap$1(self, () => that));
|
|
1966
|
-
|
|
1967
|
-
/** @internal */
|
|
1968
|
-
const ChannelExceptionTypeId = /*#__PURE__*/Symbol.for("effect/Channel/ChannelException");
|
|
1969
|
-
|
|
1970
|
-
/** @internal */
|
|
1971
|
-
const ChannelException = error => ({
|
|
1972
|
-
_tag: "ChannelException",
|
|
1973
|
-
[ChannelExceptionTypeId]: ChannelExceptionTypeId,
|
|
1974
|
-
error
|
|
1975
|
-
});
|
|
1976
|
-
|
|
1977
|
-
/** @internal */
|
|
1978
|
-
const isChannelException = u => typeof u === "object" && u != null && ChannelExceptionTypeId in u;
|
|
1979
|
-
|
|
1980
|
-
/** @internal */
|
|
1981
|
-
const SinkTypeId = /*#__PURE__*/Symbol.for("effect/Sink");
|
|
1982
|
-
|
|
1983
|
-
/** @internal */
|
|
1984
|
-
const sinkVariance = {
|
|
1985
|
-
_R: _ => _,
|
|
1986
|
-
_E: _ => _,
|
|
1987
|
-
_In: _ => _,
|
|
1988
|
-
_L: _ => _,
|
|
1989
|
-
_Z: _ => _
|
|
1990
|
-
};
|
|
1991
|
-
|
|
1992
|
-
/** @internal */
|
|
1993
|
-
class SinkImpl {
|
|
1994
|
-
[SinkTypeId] = sinkVariance;
|
|
1995
|
-
constructor(channel) {
|
|
1996
|
-
this.channel = channel;
|
|
1997
|
-
}
|
|
1998
|
-
pipe() {
|
|
1999
|
-
return pipeArguments(this, arguments);
|
|
2000
|
-
}
|
|
2001
|
-
}
|
|
2002
|
-
|
|
2003
|
-
/** @internal */
|
|
2004
|
-
const isSink = u => typeof u === "object" && u != null && SinkTypeId in u;
|
|
2005
|
-
|
|
2006
|
-
/** @internal */
|
|
2007
|
-
const suspend = evaluate => new SinkImpl(suspend$1(() => toChannel(evaluate())));
|
|
2008
|
-
|
|
2009
|
-
/** @internal */
|
|
2010
|
-
const as = /*#__PURE__*/dual(2, (self, z) => pipe(self, map(() => z)));
|
|
2011
|
-
|
|
2012
|
-
/** @internal */
|
|
2013
|
-
const collectAll = () => new SinkImpl(collectAllLoop(empty()));
|
|
2014
|
-
|
|
2015
|
-
/** @internal */
|
|
2016
|
-
const collectAllLoop = acc => readWithCause({
|
|
2017
|
-
onInput: chunk => collectAllLoop(pipe(acc, appendAll(chunk))),
|
|
2018
|
-
onFailure: failCause$1,
|
|
2019
|
-
onDone: () => succeed$1(acc)
|
|
2020
|
-
});
|
|
2021
|
-
|
|
2022
|
-
/** @internal */
|
|
2023
|
-
const collectAllN = n => suspend(() => fromChannel(collectAllNLoop(n, empty())));
|
|
2024
|
-
|
|
2025
|
-
/** @internal */
|
|
2026
|
-
const collectAllNLoop = (n, acc) => readWithCause({
|
|
2027
|
-
onInput: chunk => {
|
|
2028
|
-
const [collected, leftovers] = splitAt(chunk, n);
|
|
2029
|
-
if (collected.length < n) {
|
|
2030
|
-
return collectAllNLoop(n - collected.length, appendAll(acc, collected));
|
|
2031
|
-
}
|
|
2032
|
-
if (isEmpty(leftovers)) {
|
|
2033
|
-
return succeed$1(appendAll(acc, collected));
|
|
2034
|
-
}
|
|
2035
|
-
return flatMap$1(write(leftovers), () => succeed$1(appendAll(acc, collected)));
|
|
2036
|
-
},
|
|
2037
|
-
onFailure: failCause$1,
|
|
2038
|
-
onDone: () => succeed$1(acc)
|
|
2039
|
-
});
|
|
2040
|
-
|
|
2041
|
-
/** @internal */
|
|
2042
|
-
const collectAllFrom = self => collectAllWhileWith(self, {
|
|
2043
|
-
initial: empty(),
|
|
2044
|
-
while: constTrue,
|
|
2045
|
-
body: (chunk, z) => pipe(chunk, append(z))
|
|
2046
|
-
});
|
|
2047
|
-
|
|
2048
|
-
/** @internal */
|
|
2049
|
-
const collectAllToMap = (key, merge) => {
|
|
2050
|
-
return pipe(foldLeftChunks(empty$1(), (map, chunk) => pipe(chunk, reduce(map, (map, input) => {
|
|
2051
|
-
const k = key(input);
|
|
2052
|
-
const v = pipe(map, has(k)) ? merge(pipe(map, unsafeGet$2(k)), input) : input;
|
|
2053
|
-
return pipe(map, set$1(k, v));
|
|
2054
|
-
}))));
|
|
2055
|
-
};
|
|
2056
|
-
|
|
2057
|
-
/** @internal */
|
|
2058
|
-
const collectAllToMapN = (n, key, merge) => {
|
|
2059
|
-
return foldWeighted({
|
|
2060
|
-
initial: empty$1(),
|
|
2061
|
-
maxCost: n,
|
|
2062
|
-
cost: (acc, input) => pipe(acc, has(key(input))) ? 0 : 1,
|
|
2063
|
-
body: (acc, input) => {
|
|
2064
|
-
const k = key(input);
|
|
2065
|
-
const v = pipe(acc, has(k)) ? merge(pipe(acc, unsafeGet$2(k)), input) : input;
|
|
2066
|
-
return pipe(acc, set$1(k, v));
|
|
2067
|
-
}
|
|
2068
|
-
});
|
|
2069
|
-
};
|
|
2070
|
-
|
|
2071
|
-
/** @internal */
|
|
2072
|
-
const collectAllToSet = () => foldLeftChunks(empty$2(), (acc, chunk) => pipe(chunk, reduce(acc, (acc, input) => pipe(acc, add$1(input)))));
|
|
2073
|
-
|
|
2074
|
-
/** @internal */
|
|
2075
|
-
const collectAllToSetN = n => foldWeighted({
|
|
2076
|
-
initial: empty$2(),
|
|
2077
|
-
maxCost: n,
|
|
2078
|
-
cost: (acc, input) => has$1(acc, input) ? 0 : 1,
|
|
2079
|
-
body: (acc, input) => add$1(acc, input)
|
|
2080
|
-
});
|
|
2081
|
-
|
|
2082
|
-
/** @internal */
|
|
2083
|
-
const collectAllUntil = p => {
|
|
2084
|
-
return pipe(fold([empty(), true], tuple => tuple[1], ([chunk, _], input) => [pipe(chunk, append(input)), !p(input)]), map(tuple => tuple[0]));
|
|
2085
|
-
};
|
|
2086
|
-
|
|
2087
|
-
/** @internal */
|
|
2088
|
-
const collectAllUntilEffect = p => {
|
|
2089
|
-
return pipe(foldEffect([empty(), true], tuple => tuple[1], ([chunk, _], input) => pipe(p(input), map$2(bool => [pipe(chunk, append(input)), !bool]))), map(tuple => tuple[0]));
|
|
2090
|
-
};
|
|
2091
|
-
|
|
2092
|
-
/** @internal */
|
|
2093
|
-
const collectAllWhile = predicate => fromChannel(collectAllWhileReader(predicate, empty()));
|
|
2094
|
-
|
|
2095
|
-
/** @internal */
|
|
2096
|
-
const collectAllWhileReader = (predicate, done) => readWith({
|
|
2097
|
-
onInput: input => {
|
|
2098
|
-
const [collected, leftovers] = pipe(toReadonlyArray(input), span(predicate));
|
|
2099
|
-
if (leftovers.length === 0) {
|
|
2100
|
-
return collectAllWhileReader(predicate, pipe(done, appendAll(unsafeFromArray(collected))));
|
|
2101
|
-
}
|
|
2102
|
-
return pipe(write(unsafeFromArray(leftovers)), zipRight$1(succeed$1(pipe(done, appendAll(unsafeFromArray(collected))))));
|
|
2103
|
-
},
|
|
2104
|
-
onFailure: fail$1,
|
|
2105
|
-
onDone: () => succeed$1(done)
|
|
2106
|
-
});
|
|
2107
|
-
|
|
2108
|
-
/** @internal */
|
|
2109
|
-
const collectAllWhileEffect = predicate => fromChannel(collectAllWhileEffectReader(predicate, empty()));
|
|
2110
|
-
|
|
2111
|
-
/** @internal */
|
|
2112
|
-
const collectAllWhileEffectReader = (predicate, done) => readWith({
|
|
2113
|
-
onInput: input => pipe(fromEffect$1(pipe(input, takeWhile(predicate), map$2(unsafeFromArray))), flatMap$1(collected => {
|
|
2114
|
-
const leftovers = pipe(input, drop$1(collected.length));
|
|
2115
|
-
if (isEmpty(leftovers)) {
|
|
2116
|
-
return collectAllWhileEffectReader(predicate, pipe(done, appendAll(collected)));
|
|
2117
|
-
}
|
|
2118
|
-
return pipe(write(leftovers), zipRight$1(succeed$1(pipe(done, appendAll(collected)))));
|
|
2119
|
-
})),
|
|
2120
|
-
onFailure: fail$1,
|
|
2121
|
-
onDone: () => succeed$1(done)
|
|
2122
|
-
});
|
|
2123
|
-
|
|
2124
|
-
/** @internal */
|
|
2125
|
-
const collectAllWhileWith = /*#__PURE__*/dual(2, (self, options) => {
|
|
2126
|
-
const refs = pipe(make$1(empty()), zip$2(make$1(false)));
|
|
2127
|
-
const newChannel = pipe(fromEffect$1(refs), flatMap$1(([leftoversRef, upstreamDoneRef]) => {
|
|
2128
|
-
const upstreamMarker = readWith({
|
|
2129
|
-
onInput: input => pipe(write(input), flatMap$1(() => upstreamMarker)),
|
|
2130
|
-
onFailure: fail$1,
|
|
2131
|
-
onDone: done => pipe(fromEffect$1(set(upstreamDoneRef, true)), as$1(done))
|
|
2132
|
-
});
|
|
2133
|
-
return pipe(upstreamMarker, pipeTo(bufferChunk(leftoversRef)), pipeTo(collectAllWhileWithLoop(self, leftoversRef, upstreamDoneRef, options.initial, options.while, options.body)));
|
|
2134
|
-
}));
|
|
2135
|
-
return new SinkImpl(newChannel);
|
|
2136
|
-
});
|
|
2137
|
-
|
|
2138
|
-
/** @internal */
|
|
2139
|
-
const collectAllWhileWithLoop = (self, leftoversRef, upstreamDoneRef, currentResult, p, f) => {
|
|
2140
|
-
return pipe(toChannel(self), doneCollect, foldChannel({
|
|
2141
|
-
onFailure: fail$1,
|
|
2142
|
-
onSuccess: ([leftovers, doneValue]) => p(doneValue) ? pipe(fromEffect$1(set(leftoversRef, flatten$2(leftovers))), flatMap$1(() => pipe(fromEffect$1(get(upstreamDoneRef)), flatMap$1(upstreamDone => {
|
|
2143
|
-
const accumulatedResult = f(currentResult, doneValue);
|
|
2144
|
-
return upstreamDone ? pipe(write(flatten$2(leftovers)), as$1(accumulatedResult)) : collectAllWhileWithLoop(self, leftoversRef, upstreamDoneRef, accumulatedResult, p, f);
|
|
2145
|
-
})))) : pipe(write(flatten$2(leftovers)), as$1(currentResult))
|
|
2146
|
-
}));
|
|
2147
|
-
};
|
|
2148
|
-
|
|
2149
|
-
/** @internal */
|
|
2150
|
-
const collectLeftover = self => new SinkImpl(pipe(collectElements(toChannel(self)), map$1(([chunks, z]) => [z, flatten$2(chunks)])));
|
|
2151
|
-
|
|
2152
|
-
/** @internal */
|
|
2153
|
-
const mapInput = /*#__PURE__*/dual(2, (self, f) => pipe(self, mapInputChunks(map$5(f))));
|
|
2154
|
-
|
|
2155
|
-
/** @internal */
|
|
2156
|
-
const mapInputEffect = /*#__PURE__*/dual(2, (self, f) => mapInputChunksEffect(self, chunk => map$2(forEach$1(chunk, v => f(v)), unsafeFromArray)));
|
|
2157
|
-
|
|
2158
|
-
/** @internal */
|
|
2159
|
-
const mapInputChunks = /*#__PURE__*/dual(2, (self, f) => {
|
|
2160
|
-
const loop = readWith({
|
|
2161
|
-
onInput: chunk => pipe(write(f(chunk)), flatMap$1(() => loop)),
|
|
2162
|
-
onFailure: fail$1,
|
|
2163
|
-
onDone: succeed$1
|
|
2164
|
-
});
|
|
2165
|
-
return new SinkImpl(pipe(loop, pipeTo(toChannel(self))));
|
|
2166
|
-
});
|
|
2167
|
-
|
|
2168
|
-
/** @internal */
|
|
2169
|
-
const mapInputChunksEffect = /*#__PURE__*/dual(2, (self, f) => {
|
|
2170
|
-
const loop = readWith({
|
|
2171
|
-
onInput: chunk => pipe(fromEffect$1(f(chunk)), flatMap$1(write), flatMap$1(() => loop)),
|
|
2172
|
-
onFailure: fail$1,
|
|
2173
|
-
onDone: succeed$1
|
|
2174
|
-
});
|
|
2175
|
-
return new SinkImpl(pipe(loop, pipeToOrFail(toChannel(self))));
|
|
2176
|
-
});
|
|
2177
|
-
|
|
2178
|
-
/** @internal */
|
|
2179
|
-
const die = defect => failCause(die$2(defect));
|
|
2180
|
-
|
|
2181
|
-
/** @internal */
|
|
2182
|
-
const dieMessage = message => failCause(die$2(RuntimeException(message)));
|
|
2183
|
-
|
|
2184
|
-
/** @internal */
|
|
2185
|
-
const dieSync = evaluate => failCauseSync(() => die$2(evaluate()));
|
|
2186
|
-
|
|
2187
|
-
/** @internal */
|
|
2188
|
-
const dimap = /*#__PURE__*/dual(2, (self, options) => map(mapInput(self, options.onInput), options.onDone));
|
|
2189
|
-
|
|
2190
|
-
/** @internal */
|
|
2191
|
-
const dimapEffect = /*#__PURE__*/dual(2, (self, options) => mapEffect(mapInputEffect(self, options.onInput), options.onDone));
|
|
2192
|
-
|
|
2193
|
-
/** @internal */
|
|
2194
|
-
const dimapChunks = /*#__PURE__*/dual(2, (self, options) => map(mapInputChunks(self, options.onInput), options.onDone));
|
|
2195
|
-
|
|
2196
|
-
/** @internal */
|
|
2197
|
-
const dimapChunksEffect = /*#__PURE__*/dual(2, (self, options) => mapEffect(mapInputChunksEffect(self, options.onInput), options.onDone));
|
|
2198
|
-
|
|
2199
|
-
/** @internal */
|
|
2200
|
-
const drain = /*#__PURE__*/new SinkImpl( /*#__PURE__*/drain$1( /*#__PURE__*/identityChannel()));
|
|
2201
|
-
|
|
2202
|
-
/** @internal */
|
|
2203
|
-
const drop = n => suspend(() => new SinkImpl(dropLoop(n)));
|
|
2204
|
-
|
|
2205
|
-
/** @internal */
|
|
2206
|
-
const dropLoop = n => readWith({
|
|
2207
|
-
onInput: input => {
|
|
2208
|
-
const dropped = pipe(input, drop$1(n));
|
|
2209
|
-
const leftover = Math.max(n - input.length, 0);
|
|
2210
|
-
const more = isEmpty(input) || leftover > 0;
|
|
2211
|
-
if (more) {
|
|
2212
|
-
return dropLoop(leftover);
|
|
2213
|
-
}
|
|
2214
|
-
return pipe(write(dropped), zipRight$1(identityChannel()));
|
|
2215
|
-
},
|
|
2216
|
-
onFailure: fail$1,
|
|
2217
|
-
onDone: () => unit
|
|
2218
|
-
});
|
|
2219
|
-
|
|
2220
|
-
/** @internal */
|
|
2221
|
-
const dropUntil = predicate => new SinkImpl(pipe(toChannel(dropWhile(input => !predicate(input))), pipeToOrFail(toChannel(drop(1)))));
|
|
2222
|
-
|
|
2223
|
-
/** @internal */
|
|
2224
|
-
const dropUntilEffect = predicate => suspend(() => new SinkImpl(dropUntilEffectReader(predicate)));
|
|
2225
|
-
|
|
2226
|
-
/** @internal */
|
|
2227
|
-
const dropUntilEffectReader = predicate => readWith({
|
|
2228
|
-
onInput: input => pipe(input, dropUntil$1(predicate), map$2(leftover => {
|
|
2229
|
-
const more = leftover.length === 0;
|
|
2230
|
-
return more ? dropUntilEffectReader(predicate) : pipe(write(unsafeFromArray(leftover)), zipRight$1(identityChannel()));
|
|
2231
|
-
}), unwrap$1),
|
|
2232
|
-
onFailure: fail$1,
|
|
2233
|
-
onDone: () => unit
|
|
2234
|
-
});
|
|
2235
|
-
|
|
2236
|
-
/** @internal */
|
|
2237
|
-
const dropWhile = predicate => new SinkImpl(dropWhileReader(predicate));
|
|
2238
|
-
|
|
2239
|
-
/** @internal */
|
|
2240
|
-
const dropWhileReader = predicate => readWith({
|
|
2241
|
-
onInput: input => {
|
|
2242
|
-
const out = pipe(input, dropWhile$1(predicate));
|
|
2243
|
-
if (isEmpty(out)) {
|
|
2244
|
-
return dropWhileReader(predicate);
|
|
2245
|
-
}
|
|
2246
|
-
return pipe(write(out), zipRight$1(identityChannel()));
|
|
2247
|
-
},
|
|
2248
|
-
onFailure: fail$1,
|
|
2249
|
-
onDone: succeedNow
|
|
2250
|
-
});
|
|
2251
|
-
|
|
2252
|
-
/** @internal */
|
|
2253
|
-
const dropWhileEffect = predicate => suspend(() => new SinkImpl(dropWhileEffectReader(predicate)));
|
|
2254
|
-
|
|
2255
|
-
/** @internal */
|
|
2256
|
-
const dropWhileEffectReader = predicate => readWith({
|
|
2257
|
-
onInput: input => pipe(input, dropWhile$2(predicate), map$2(leftover => {
|
|
2258
|
-
const more = leftover.length === 0;
|
|
2259
|
-
return more ? dropWhileEffectReader(predicate) : pipe(write(unsafeFromArray(leftover)), zipRight$1(identityChannel()));
|
|
2260
|
-
}), unwrap$1),
|
|
2261
|
-
onFailure: fail$1,
|
|
2262
|
-
onDone: () => unit
|
|
2263
|
-
});
|
|
2264
|
-
|
|
2265
|
-
/** @internal */
|
|
2266
|
-
const ensuring = /*#__PURE__*/dual(2, (self, finalizer) => new SinkImpl(pipe(self, toChannel, ensuring$1(finalizer))));
|
|
2267
|
-
|
|
2268
|
-
/** @internal */
|
|
2269
|
-
const ensuringWith = /*#__PURE__*/dual(2, (self, finalizer) => new SinkImpl(pipe(self, toChannel, ensuringWith$1(finalizer))));
|
|
2270
|
-
|
|
2271
|
-
/** @internal */
|
|
2272
|
-
const context = () => fromEffect(context$2());
|
|
2273
|
-
|
|
2274
|
-
/** @internal */
|
|
2275
|
-
const contextWith = f => pipe(context(), map(f));
|
|
2276
|
-
|
|
2277
|
-
/** @internal */
|
|
2278
|
-
const contextWithEffect = f => pipe(context(), mapEffect(f));
|
|
2279
|
-
|
|
2280
|
-
/** @internal */
|
|
2281
|
-
const contextWithSink = f => new SinkImpl(unwrap$1(pipe(contextWith$2(context => toChannel(f(context))))));
|
|
2282
|
-
|
|
2283
|
-
/** @internal */
|
|
2284
|
-
const every = predicate => fold(true, identity, (acc, input) => acc && predicate(input));
|
|
2285
|
-
|
|
2286
|
-
/** @internal */
|
|
2287
|
-
const fail = e => new SinkImpl(fail$1(e));
|
|
2288
|
-
|
|
2289
|
-
/** @internal */
|
|
2290
|
-
const failSync = evaluate => new SinkImpl(failSync$1(evaluate));
|
|
2291
|
-
|
|
2292
|
-
/** @internal */
|
|
2293
|
-
const failCause = cause => new SinkImpl(failCause$1(cause));
|
|
2294
|
-
|
|
2295
|
-
/** @internal */
|
|
2296
|
-
const failCauseSync = evaluate => new SinkImpl(failCauseSync$1(evaluate));
|
|
2297
|
-
|
|
2298
|
-
/** @internal */
|
|
2299
|
-
const filterInput = f => {
|
|
2300
|
-
return self => pipe(self, mapInputChunks(filter(f)));
|
|
2301
|
-
};
|
|
2302
|
-
|
|
2303
|
-
/** @internal */
|
|
2304
|
-
const filterInputEffect = /*#__PURE__*/dual(2, (self, f) => mapInputChunksEffect(self, chunk => map$2(filter$1(chunk, f), unsafeFromArray)));
|
|
2305
|
-
|
|
2306
|
-
/** @internal */
|
|
2307
|
-
const findEffect = /*#__PURE__*/dual(2, (self, f) => {
|
|
2308
|
-
const newChannel = pipe(fromEffect$1(pipe(make$1(empty()), zip$2(make$1(false)))), flatMap$1(([leftoversRef, upstreamDoneRef]) => {
|
|
2309
|
-
const upstreamMarker = readWith({
|
|
2310
|
-
onInput: input => pipe(write(input), flatMap$1(() => upstreamMarker)),
|
|
2311
|
-
onFailure: fail$1,
|
|
2312
|
-
onDone: done => pipe(fromEffect$1(set(upstreamDoneRef, true)), as$1(done))
|
|
2313
|
-
});
|
|
2314
|
-
const loop = foldChannel(collectElements(toChannel(self)), {
|
|
2315
|
-
onFailure: fail$1,
|
|
2316
|
-
onSuccess: ([leftovers, doneValue]) => pipe(fromEffect$1(f(doneValue)), flatMap$1(satisfied => pipe(fromEffect$1(set(leftoversRef, flatten$2(leftovers))), zipRight$1(pipe(fromEffect$1(get(upstreamDoneRef)), flatMap$1(upstreamDone => {
|
|
2317
|
-
if (satisfied) {
|
|
2318
|
-
return pipe(write(flatten$2(leftovers)), as$1(some$1(doneValue)));
|
|
2319
|
-
}
|
|
2320
|
-
if (upstreamDone) {
|
|
2321
|
-
return pipe(write(flatten$2(leftovers)), as$1(none()));
|
|
2322
|
-
}
|
|
2323
|
-
return loop;
|
|
2324
|
-
}))))))
|
|
2325
|
-
});
|
|
2326
|
-
return pipe(upstreamMarker, pipeTo(bufferChunk(leftoversRef)), pipeTo(loop));
|
|
2327
|
-
}));
|
|
2328
|
-
return new SinkImpl(newChannel);
|
|
2329
|
-
});
|
|
2330
|
-
|
|
2331
|
-
/** @internal */
|
|
2332
|
-
const fold = (s, contFn, f) => suspend(() => new SinkImpl(foldReader(s, contFn, f)));
|
|
2333
|
-
|
|
2334
|
-
/** @internal */
|
|
2335
|
-
const foldReader = (s, contFn, f) => {
|
|
2336
|
-
if (!contFn(s)) {
|
|
2337
|
-
return succeedNow(s);
|
|
2338
|
-
}
|
|
2339
|
-
return readWith({
|
|
2340
|
-
onInput: input => {
|
|
2341
|
-
const [nextS, leftovers] = foldChunkSplit(s, input, contFn, f, 0, input.length);
|
|
2342
|
-
if (isNonEmpty(leftovers)) {
|
|
2343
|
-
return pipe(write(leftovers), as$1(nextS));
|
|
2344
|
-
}
|
|
2345
|
-
return foldReader(nextS, contFn, f);
|
|
2346
|
-
},
|
|
2347
|
-
onFailure: fail$1,
|
|
2348
|
-
onDone: () => succeedNow(s)
|
|
2349
|
-
});
|
|
2350
|
-
};
|
|
2351
|
-
|
|
2352
|
-
/** @internal */
|
|
2353
|
-
const foldChunkSplit = (s, chunk, contFn, f, index, length) => {
|
|
2354
|
-
if (index === length) {
|
|
2355
|
-
return [s, empty()];
|
|
2356
|
-
}
|
|
2357
|
-
const s1 = f(s, pipe(chunk, unsafeGet$1(index)));
|
|
2358
|
-
if (contFn(s1)) {
|
|
2359
|
-
return foldChunkSplit(s1, chunk, contFn, f, index + 1, length);
|
|
2360
|
-
}
|
|
2361
|
-
return [s1, pipe(chunk, drop$1(index + 1))];
|
|
2362
|
-
};
|
|
2363
|
-
|
|
2364
|
-
/** @internal */
|
|
2365
|
-
const foldSink = /*#__PURE__*/dual(2, (self, options) => {
|
|
2366
|
-
const newChannel = pipe(toChannel(self), collectElements, foldChannel({
|
|
2367
|
-
onFailure: error => toChannel(options.onFailure(error)),
|
|
2368
|
-
onSuccess: ([leftovers, z]) => suspend$1(() => {
|
|
2369
|
-
const leftoversRef = {
|
|
2370
|
-
ref: pipe(leftovers, filter(isNonEmpty))
|
|
2371
|
-
};
|
|
2372
|
-
const refReader = pipe(sync$1(() => {
|
|
2373
|
-
const ref = leftoversRef.ref;
|
|
2374
|
-
leftoversRef.ref = empty();
|
|
2375
|
-
return ref;
|
|
2376
|
-
}),
|
|
2377
|
-
// This cast is safe because of the L1 >: L <: In1 bound. It follows that
|
|
2378
|
-
// L <: In1 and therefore Chunk[L] can be safely cast to Chunk[In1].
|
|
2379
|
-
flatMap$1(chunk => writeChunk(chunk)));
|
|
2380
|
-
const passthrough = identityChannel();
|
|
2381
|
-
const continuationSink = pipe(refReader, zipRight$1(passthrough), pipeTo(toChannel(options.onSuccess(z))));
|
|
2382
|
-
return flatMap$1(collectElements(continuationSink), ([newLeftovers, z1]) => pipe(succeed$1(leftoversRef.ref), flatMap$1(writeChunk), zipRight$1(writeChunk(newLeftovers)), as$1(z1)));
|
|
2383
|
-
})
|
|
2384
|
-
}));
|
|
2385
|
-
return new SinkImpl(newChannel);
|
|
2386
|
-
});
|
|
2387
|
-
|
|
2388
|
-
/** @internal */
|
|
2389
|
-
const foldChunks = (s, contFn, f) => suspend(() => new SinkImpl(foldChunksReader(s, contFn, f)));
|
|
2390
|
-
|
|
2391
|
-
/** @internal */
|
|
2392
|
-
const foldChunksReader = (s, contFn, f) => {
|
|
2393
|
-
if (!contFn(s)) {
|
|
2394
|
-
return succeedNow(s);
|
|
2395
|
-
}
|
|
2396
|
-
return readWith({
|
|
2397
|
-
onInput: input => foldChunksReader(f(s, input), contFn, f),
|
|
2398
|
-
onFailure: fail$1,
|
|
2399
|
-
onDone: () => succeedNow(s)
|
|
2400
|
-
});
|
|
2401
|
-
};
|
|
2402
|
-
|
|
2403
|
-
/** @internal */
|
|
2404
|
-
const foldChunksEffect = (s, contFn, f) => suspend(() => new SinkImpl(foldChunksEffectReader(s, contFn, f)));
|
|
2405
|
-
|
|
2406
|
-
/** @internal */
|
|
2407
|
-
const foldChunksEffectReader = (s, contFn, f) => {
|
|
2408
|
-
if (!contFn(s)) {
|
|
2409
|
-
return succeedNow(s);
|
|
2410
|
-
}
|
|
2411
|
-
return readWith({
|
|
2412
|
-
onInput: input => pipe(fromEffect$1(f(s, input)), flatMap$1(s => foldChunksEffectReader(s, contFn, f))),
|
|
2413
|
-
onFailure: fail$1,
|
|
2414
|
-
onDone: () => succeedNow(s)
|
|
2415
|
-
});
|
|
2416
|
-
};
|
|
2417
|
-
|
|
2418
|
-
/** @internal */
|
|
2419
|
-
const foldEffect = (s, contFn, f) => suspend(() => new SinkImpl(foldEffectReader(s, contFn, f)));
|
|
2420
|
-
|
|
2421
|
-
/** @internal */
|
|
2422
|
-
const foldEffectReader = (s, contFn, f) => {
|
|
2423
|
-
if (!contFn(s)) {
|
|
2424
|
-
return succeedNow(s);
|
|
2425
|
-
}
|
|
2426
|
-
return readWith({
|
|
2427
|
-
onInput: input => pipe(fromEffect$1(foldChunkSplitEffect(s, input, contFn, f)), flatMap$1(([nextS, leftovers]) => pipe(leftovers, match$2({
|
|
2428
|
-
onNone: () => foldEffectReader(nextS, contFn, f),
|
|
2429
|
-
onSome: leftover => pipe(write(leftover), as$1(nextS))
|
|
2430
|
-
})))),
|
|
2431
|
-
onFailure: fail$1,
|
|
2432
|
-
onDone: () => succeedNow(s)
|
|
2433
|
-
});
|
|
2434
|
-
};
|
|
2435
|
-
|
|
2436
|
-
/** @internal */
|
|
2437
|
-
const foldChunkSplitEffect = (s, chunk, contFn, f) => foldChunkSplitEffectInternal(s, chunk, 0, chunk.length, contFn, f);
|
|
2438
|
-
|
|
2439
|
-
/** @internal */
|
|
2440
|
-
const foldChunkSplitEffectInternal = (s, chunk, index, length, contFn, f) => {
|
|
2441
|
-
if (index === length) {
|
|
2442
|
-
return succeed$3([s, none()]);
|
|
2443
|
-
}
|
|
2444
|
-
return pipe(f(s, pipe(chunk, unsafeGet$1(index))), flatMap$2(s1 => contFn(s1) ? foldChunkSplitEffectInternal(s1, chunk, index + 1, length, contFn, f) : succeed$3([s1, some$1(pipe(chunk, drop$1(index + 1)))])));
|
|
2445
|
-
};
|
|
2446
|
-
|
|
2447
|
-
/** @internal */
|
|
2448
|
-
const foldLeft = (s, f) => ignoreLeftover(fold(s, constTrue, f));
|
|
2449
|
-
|
|
2450
|
-
/** @internal */
|
|
2451
|
-
const foldLeftChunks = (s, f) => foldChunks(s, constTrue, f);
|
|
2452
|
-
|
|
2453
|
-
/** @internal */
|
|
2454
|
-
const foldLeftChunksEffect = (s, f) => ignoreLeftover(foldChunksEffect(s, constTrue, f));
|
|
2455
|
-
|
|
2456
|
-
/** @internal */
|
|
2457
|
-
const foldLeftEffect = (s, f) => foldEffect(s, constTrue, f);
|
|
2458
|
-
|
|
2459
|
-
/** @internal */
|
|
2460
|
-
const foldUntil = (s, max, f) => pipe(fold([s, 0], tuple => tuple[1] < max, ([output, count], input) => [f(output, input), count + 1]), map(tuple => tuple[0]));
|
|
2461
|
-
|
|
2462
|
-
/** @internal */
|
|
2463
|
-
const foldUntilEffect = (s, max, f) => pipe(foldEffect([s, 0], tuple => tuple[1] < max, ([output, count], input) => pipe(f(output, input), map$2(s => [s, count + 1]))), map(tuple => tuple[0]));
|
|
2464
|
-
|
|
2465
|
-
/** @internal */
|
|
2466
|
-
const foldWeighted = options => foldWeightedDecompose({
|
|
2467
|
-
...options,
|
|
2468
|
-
decompose: of
|
|
2469
|
-
});
|
|
2470
|
-
|
|
2471
|
-
/** @internal */
|
|
2472
|
-
const foldWeightedDecompose = options => suspend(() => new SinkImpl(foldWeightedDecomposeLoop(options.initial, 0, false, options.maxCost, options.cost, options.decompose, options.body)));
|
|
2473
|
-
|
|
2474
|
-
/** @internal */
|
|
2475
|
-
const foldWeightedDecomposeLoop = (s, cost, dirty, max, costFn, decompose, f) => readWith({
|
|
2476
|
-
onInput: input => {
|
|
2477
|
-
const [nextS, nextCost, nextDirty, leftovers] = foldWeightedDecomposeFold(input, 0, s, cost, dirty, max, costFn, decompose, f);
|
|
2478
|
-
if (isNonEmpty(leftovers)) {
|
|
2479
|
-
return pipe(write(leftovers), zipRight$1(succeedNow(nextS)));
|
|
2480
|
-
}
|
|
2481
|
-
if (cost > max) {
|
|
2482
|
-
return succeedNow(nextS);
|
|
2483
|
-
}
|
|
2484
|
-
return foldWeightedDecomposeLoop(nextS, nextCost, nextDirty, max, costFn, decompose, f);
|
|
2485
|
-
},
|
|
2486
|
-
onFailure: fail$1,
|
|
2487
|
-
onDone: () => succeedNow(s)
|
|
2488
|
-
});
|
|
2489
|
-
|
|
2490
|
-
/** @internal */
|
|
2491
|
-
const foldWeightedDecomposeFold = (input, index, s, cost, dirty, max, costFn, decompose, f) => {
|
|
2492
|
-
if (index === input.length) {
|
|
2493
|
-
return [s, cost, dirty, empty()];
|
|
2494
|
-
}
|
|
2495
|
-
const elem = pipe(input, unsafeGet$1(index));
|
|
2496
|
-
const total = cost + costFn(s, elem);
|
|
2497
|
-
if (total <= max) {
|
|
2498
|
-
return foldWeightedDecomposeFold(input, index + 1, f(s, elem), total, true, max, costFn, decompose, f);
|
|
2499
|
-
}
|
|
2500
|
-
const decomposed = decompose(elem);
|
|
2501
|
-
if (decomposed.length <= 1 && !dirty) {
|
|
2502
|
-
// If `elem` cannot be decomposed, we need to cross the `max` threshold. To
|
|
2503
|
-
// minimize "injury", we only allow this when we haven't added anything else
|
|
2504
|
-
// to the aggregate (dirty = false).
|
|
2505
|
-
return [f(s, elem), total, true, pipe(input, drop$1(index + 1))];
|
|
2506
|
-
}
|
|
2507
|
-
if (decomposed.length <= 1 && dirty) {
|
|
2508
|
-
// If the state is dirty and `elem` cannot be decomposed, we stop folding
|
|
2509
|
-
// and include `elem` in the leftovers.
|
|
2510
|
-
return [s, cost, dirty, pipe(input, drop$1(index))];
|
|
2511
|
-
}
|
|
2512
|
-
// `elem` got decomposed, so we will recurse with the decomposed elements pushed
|
|
2513
|
-
// into the chunk we're processing and see if we can aggregate further.
|
|
2514
|
-
const next = pipe(decomposed, appendAll(pipe(input, drop$1(index + 1))));
|
|
2515
|
-
return foldWeightedDecomposeFold(next, 0, s, cost, dirty, max, costFn, decompose, f);
|
|
2516
|
-
};
|
|
2517
|
-
|
|
2518
|
-
/** @internal */
|
|
2519
|
-
const foldWeightedDecomposeEffect = options => suspend(() => new SinkImpl(foldWeightedDecomposeEffectLoop(options.initial, options.maxCost, options.cost, options.decompose, options.body, 0, false)));
|
|
2520
|
-
|
|
2521
|
-
/** @internal */
|
|
2522
|
-
const foldWeightedEffect = options => foldWeightedDecomposeEffect({
|
|
2523
|
-
...options,
|
|
2524
|
-
decompose: input => succeed$3(of(input))
|
|
2525
|
-
});
|
|
2526
|
-
|
|
2527
|
-
/** @internal */
|
|
2528
|
-
const foldWeightedDecomposeEffectLoop = (s, max, costFn, decompose, f, cost, dirty) => readWith({
|
|
2529
|
-
onInput: input => pipe(fromEffect$1(foldWeightedDecomposeEffectFold(s, max, costFn, decompose, f, input, dirty, cost, 0)), flatMap$1(([nextS, nextCost, nextDirty, leftovers]) => {
|
|
2530
|
-
if (isNonEmpty(leftovers)) {
|
|
2531
|
-
return pipe(write(leftovers), zipRight$1(succeedNow(nextS)));
|
|
2532
|
-
}
|
|
2533
|
-
if (cost > max) {
|
|
2534
|
-
return succeedNow(nextS);
|
|
2535
|
-
}
|
|
2536
|
-
return foldWeightedDecomposeEffectLoop(nextS, max, costFn, decompose, f, nextCost, nextDirty);
|
|
2537
|
-
})),
|
|
2538
|
-
onFailure: fail$1,
|
|
2539
|
-
onDone: () => succeedNow(s)
|
|
2540
|
-
});
|
|
2541
|
-
|
|
2542
|
-
/** @internal */
|
|
2543
|
-
const foldWeightedDecomposeEffectFold = (s, max, costFn, decompose, f, input, dirty, cost, index) => {
|
|
2544
|
-
if (index === input.length) {
|
|
2545
|
-
return succeed$3([s, cost, dirty, empty()]);
|
|
2546
|
-
}
|
|
2547
|
-
const elem = pipe(input, unsafeGet$1(index));
|
|
2548
|
-
return pipe(costFn(s, elem), map$2(newCost => cost + newCost), flatMap$2(total => {
|
|
2549
|
-
if (total <= max) {
|
|
2550
|
-
return pipe(f(s, elem), flatMap$2(s => foldWeightedDecomposeEffectFold(s, max, costFn, decompose, f, input, true, total, index + 1)));
|
|
2551
|
-
}
|
|
2552
|
-
return pipe(decompose(elem), flatMap$2(decomposed => {
|
|
2553
|
-
if (decomposed.length <= 1 && !dirty) {
|
|
2554
|
-
// If `elem` cannot be decomposed, we need to cross the `max` threshold. To
|
|
2555
|
-
// minimize "injury", we only allow this when we haven't added anything else
|
|
2556
|
-
// to the aggregate (dirty = false).
|
|
2557
|
-
return pipe(f(s, elem), map$2(s => [s, total, true, pipe(input, drop$1(index + 1))]));
|
|
2558
|
-
}
|
|
2559
|
-
if (decomposed.length <= 1 && dirty) {
|
|
2560
|
-
// If the state is dirty and `elem` cannot be decomposed, we stop folding
|
|
2561
|
-
// and include `elem` in th leftovers.
|
|
2562
|
-
return succeed$3([s, cost, dirty, pipe(input, drop$1(index))]);
|
|
2563
|
-
}
|
|
2564
|
-
// `elem` got decomposed, so we will recurse with the decomposed elements pushed
|
|
2565
|
-
// into the chunk we're processing and see if we can aggregate further.
|
|
2566
|
-
const next = pipe(decomposed, appendAll(pipe(input, drop$1(index + 1))));
|
|
2567
|
-
return foldWeightedDecomposeEffectFold(s, max, costFn, decompose, f, next, dirty, cost, 0);
|
|
2568
|
-
}));
|
|
2569
|
-
}));
|
|
2570
|
-
};
|
|
2571
|
-
|
|
2572
|
-
/** @internal */
|
|
2573
|
-
const flatMap = /*#__PURE__*/dual(2, (self, f) => foldSink(self, {
|
|
2574
|
-
onFailure: fail,
|
|
2575
|
-
onSuccess: f
|
|
2576
|
-
}));
|
|
2577
|
-
|
|
2578
|
-
/** @internal */
|
|
2579
|
-
const forEach = f => {
|
|
2580
|
-
const process = readWithCause({
|
|
2581
|
-
onInput: input => pipe(fromEffect$1(forEach$1(input, v => f(v), {
|
|
2582
|
-
discard: true
|
|
2583
|
-
})), flatMap$1(() => process)),
|
|
2584
|
-
onFailure: failCause$1,
|
|
2585
|
-
onDone: () => unit
|
|
2586
|
-
});
|
|
2587
|
-
return new SinkImpl(process);
|
|
2588
|
-
};
|
|
2589
|
-
|
|
2590
|
-
/** @internal */
|
|
2591
|
-
const forEachChunk = f => {
|
|
2592
|
-
const process = readWithCause({
|
|
2593
|
-
onInput: input => pipe(fromEffect$1(f(input)), flatMap$1(() => process)),
|
|
2594
|
-
onFailure: failCause$1,
|
|
2595
|
-
onDone: () => unit
|
|
2596
|
-
});
|
|
2597
|
-
return new SinkImpl(process);
|
|
2598
|
-
};
|
|
2599
|
-
|
|
2600
|
-
/** @internal */
|
|
2601
|
-
const forEachWhile = f => {
|
|
2602
|
-
const process = readWithCause({
|
|
2603
|
-
onInput: input => forEachWhileReader(f, input, 0, input.length, process),
|
|
2604
|
-
onFailure: failCause$1,
|
|
2605
|
-
onDone: () => unit
|
|
2606
|
-
});
|
|
2607
|
-
return new SinkImpl(process);
|
|
2608
|
-
};
|
|
2609
|
-
|
|
2610
|
-
/** @internal */
|
|
2611
|
-
const forEachWhileReader = (f, input, index, length, cont) => {
|
|
2612
|
-
if (index === length) {
|
|
2613
|
-
return cont;
|
|
2614
|
-
}
|
|
2615
|
-
return pipe(fromEffect$1(f(pipe(input, unsafeGet$1(index)))), flatMap$1(bool => bool ? forEachWhileReader(f, input, index + 1, length, cont) : write(pipe(input, drop$1(index)))), catchAll(error => pipe(write(pipe(input, drop$1(index))), zipRight$1(fail$1(error)))));
|
|
2616
|
-
};
|
|
2617
|
-
|
|
2618
|
-
/** @internal */
|
|
2619
|
-
const forEachChunkWhile = f => {
|
|
2620
|
-
const reader = readWith({
|
|
2621
|
-
onInput: input => pipe(fromEffect$1(f(input)), flatMap$1(cont => cont ? reader : unit)),
|
|
2622
|
-
onFailure: fail$1,
|
|
2623
|
-
onDone: () => unit
|
|
2624
|
-
});
|
|
2625
|
-
return new SinkImpl(reader);
|
|
2626
|
-
};
|
|
2627
|
-
|
|
2628
|
-
/** @internal */
|
|
2629
|
-
const fromChannel = channel => new SinkImpl(channel);
|
|
2630
|
-
|
|
2631
|
-
/** @internal */
|
|
2632
|
-
const fromEffect = effect => new SinkImpl(fromEffect$1(effect));
|
|
2633
|
-
|
|
2634
|
-
/** @internal */
|
|
2635
|
-
const fromHub = (hub, options) => fromQueue(hub, options);
|
|
2636
|
-
|
|
2637
|
-
/** @internal */
|
|
2638
|
-
const fromPush = push => new SinkImpl(unwrapScoped$1(pipe(push, map$2(fromPushPull))));
|
|
2639
|
-
const fromPushPull = push => readWith({
|
|
2640
|
-
onInput: input => foldChannel(fromEffect$1(push(some$1(input))), {
|
|
2641
|
-
onFailure: ([either, leftovers]) => match(either, {
|
|
2642
|
-
onLeft: error => pipe(write(leftovers), zipRight$1(fail$1(error))),
|
|
2643
|
-
onRight: z => pipe(write(leftovers), zipRight$1(succeedNow(z)))
|
|
2644
|
-
}),
|
|
2645
|
-
onSuccess: () => fromPushPull(push)
|
|
2646
|
-
}),
|
|
2647
|
-
onFailure: fail$1,
|
|
2648
|
-
onDone: () => foldChannel(fromEffect$1(push(none())), {
|
|
2649
|
-
onFailure: ([either, leftovers]) => match(either, {
|
|
2650
|
-
onLeft: error => pipe(write(leftovers), zipRight$1(fail$1(error))),
|
|
2651
|
-
onRight: z => pipe(write(leftovers), zipRight$1(succeedNow(z)))
|
|
2652
|
-
}),
|
|
2653
|
-
onSuccess: () => fromEffect$1(dieMessage$1("BUG: Sink.fromPush - please report an issue at https://github.com/Effect-TS/stream/issues"))
|
|
2654
|
-
})
|
|
2655
|
-
});
|
|
2656
|
-
|
|
2657
|
-
/** @internal */
|
|
2658
|
-
const fromQueue = (queue, options) => options?.shutdown ? unwrapScoped(map$2(acquireRelease(succeed$3(queue), shutdown), fromQueue)) : forEachChunk(input => pipe(offerAll(queue, input)));
|
|
2659
|
-
|
|
2660
|
-
/** @internal */
|
|
2661
|
-
const head = () => fold(none(), isNone, (option, input) => match$2(option, {
|
|
2662
|
-
onNone: () => some$1(input),
|
|
2663
|
-
onSome: () => option
|
|
2664
|
-
}));
|
|
2665
|
-
|
|
2666
|
-
/** @internal */
|
|
2667
|
-
const ignoreLeftover = self => new SinkImpl(drain$1(toChannel(self)));
|
|
2668
|
-
|
|
2669
|
-
/** @internal */
|
|
2670
|
-
const last = () => foldLeftChunks(none(), (s, input) => orElse$2(last$1(input), () => s));
|
|
2671
|
-
|
|
2672
|
-
/** @internal */
|
|
2673
|
-
const leftover = chunk => new SinkImpl(suspend$1(() => write(chunk)));
|
|
2674
|
-
|
|
2675
|
-
/** @internal */
|
|
2676
|
-
const map = /*#__PURE__*/dual(2, (self, f) => {
|
|
2677
|
-
return new SinkImpl(pipe(toChannel(self), map$1(f)));
|
|
2678
|
-
});
|
|
2679
|
-
|
|
2680
|
-
/** @internal */
|
|
2681
|
-
const mapEffect = /*#__PURE__*/dual(2, (self, f) => new SinkImpl(pipe(toChannel(self), mapEffect$1(f))));
|
|
2682
|
-
|
|
2683
|
-
/** @internal */
|
|
2684
|
-
const mapError = /*#__PURE__*/dual(2, (self, f) => new SinkImpl(pipe(toChannel(self), mapError$1(f))));
|
|
2685
|
-
|
|
2686
|
-
/** @internal */
|
|
2687
|
-
const mapLeftover = /*#__PURE__*/dual(2, (self, f) => new SinkImpl(pipe(toChannel(self), mapOut(map$5(f)))));
|
|
2688
|
-
|
|
2689
|
-
/** @internal */
|
|
2690
|
-
const never = /*#__PURE__*/fromEffect(never$2);
|
|
2691
|
-
|
|
2692
|
-
/** @internal */
|
|
2693
|
-
const orElse = /*#__PURE__*/dual(2, (self, that) => new SinkImpl(pipe(toChannel(self), orElse$1(() => toChannel(that())))));
|
|
2694
|
-
|
|
2695
|
-
/** @internal */
|
|
2696
|
-
const provideContext = /*#__PURE__*/dual(2, (self, context) => new SinkImpl(pipe(toChannel(self), provideContext$1(context))));
|
|
2697
|
-
|
|
2698
|
-
/** @internal */
|
|
2699
|
-
const race = /*#__PURE__*/dual(2, (self, that) => pipe(self, raceBoth(that), map(merge$2)));
|
|
2700
|
-
|
|
2701
|
-
/** @internal */
|
|
2702
|
-
const raceBoth = /*#__PURE__*/dual(args => isSink(args[1]), (self, that, options) => raceWith(self, {
|
|
2703
|
-
other: that,
|
|
2704
|
-
onSelfDone: selfDone => Done$1(map$2(selfDone, left)),
|
|
2705
|
-
onOtherDone: thatDone => Done$1(map$2(thatDone, right)),
|
|
2706
|
-
capacity: options?.capacity ?? 16
|
|
2707
|
-
}));
|
|
2708
|
-
|
|
2709
|
-
/** @internal */
|
|
2710
|
-
const raceWith = /*#__PURE__*/dual(2, (self, options) => {
|
|
2711
|
-
const scoped = gen(function* ($) {
|
|
2712
|
-
const hub = yield* $(bounded$1(options?.capacity ?? 16));
|
|
2713
|
-
const channel1 = yield* $(fromHubScoped(hub));
|
|
2714
|
-
const channel2 = yield* $(fromHubScoped(hub));
|
|
2715
|
-
const reader = toHub(hub);
|
|
2716
|
-
const writer = pipe(channel1, pipeTo(toChannel(self)), mergeWith({
|
|
2717
|
-
other: pipe(channel2, pipeTo(toChannel(options.other))),
|
|
2718
|
-
onSelfDone: options.onSelfDone,
|
|
2719
|
-
onOtherDone: options.onOtherDone
|
|
2720
|
-
}));
|
|
2721
|
-
const racedChannel = mergeWith(reader, {
|
|
2722
|
-
other: writer,
|
|
2723
|
-
onSelfDone: _ => Await(exit => suspend$2(() => exit)),
|
|
2724
|
-
onOtherDone: done => Done$1(suspend$2(() => done))
|
|
2725
|
-
});
|
|
2726
|
-
return new SinkImpl(racedChannel);
|
|
2727
|
-
});
|
|
2728
|
-
return unwrapScoped(scoped);
|
|
2729
|
-
});
|
|
2730
|
-
|
|
2731
|
-
/** @internal */
|
|
2732
|
-
const refineOrDie = /*#__PURE__*/dual(2, (self, pf) => pipe(self, refineOrDieWith(pf, identity)));
|
|
2733
|
-
|
|
2734
|
-
/** @internal */
|
|
2735
|
-
const refineOrDieWith = /*#__PURE__*/dual(3, (self, pf, f) => {
|
|
2736
|
-
const newChannel = pipe(self, toChannel, catchAll(error => match$2(pf(error), {
|
|
2737
|
-
onNone: () => failCauseSync$1(() => die$2(f(error))),
|
|
2738
|
-
onSome: fail$1
|
|
2739
|
-
})));
|
|
2740
|
-
return new SinkImpl(newChannel);
|
|
2741
|
-
});
|
|
2742
|
-
|
|
2743
|
-
/** @internal */
|
|
2744
|
-
const some = predicate => fold(false, bool => !bool, (acc, input) => acc || predicate(input));
|
|
2745
|
-
|
|
2746
|
-
/** @internal */
|
|
2747
|
-
const splitWhere = /*#__PURE__*/dual(2, (self, f) => {
|
|
2748
|
-
const newChannel = pipe(fromEffect$1(make$1(empty())), flatMap$1(ref => pipe(splitWhereSplitter(false, ref, f), pipeToOrFail(toChannel(self)), collectElements, flatMap$1(([leftovers, z]) => pipe(fromEffect$1(get(ref)), flatMap$1(leftover => pipe(write(pipe(leftover, appendAll(flatten$2(leftovers)))), zipRight$1(succeed$1(z)))))))));
|
|
2749
|
-
return new SinkImpl(newChannel);
|
|
2750
|
-
});
|
|
2751
|
-
|
|
2752
|
-
/** @internal */
|
|
2753
|
-
const splitWhereSplitter = (written, leftovers, f) => readWithCause({
|
|
2754
|
-
onInput: input => {
|
|
2755
|
-
if (isEmpty(input)) {
|
|
2756
|
-
return splitWhereSplitter(written, leftovers, f);
|
|
2757
|
-
}
|
|
2758
|
-
if (written) {
|
|
2759
|
-
const index = indexWhere(input, f);
|
|
2760
|
-
if (index === -1) {
|
|
2761
|
-
return zipRight$1(write(input), splitWhereSplitter(true, leftovers, f));
|
|
2762
|
-
}
|
|
2763
|
-
const [left, right] = splitAt(input, index);
|
|
2764
|
-
return zipRight$1(write(left), fromEffect$1(set(leftovers, right)));
|
|
2765
|
-
}
|
|
2766
|
-
const index = indexWhere(input, f, 1);
|
|
2767
|
-
if (index === -1) {
|
|
2768
|
-
return zipRight$1(write(input), splitWhereSplitter(true, leftovers, f));
|
|
2769
|
-
}
|
|
2770
|
-
const [left, right] = pipe(input, splitAt(Math.max(index, 1)));
|
|
2771
|
-
return zipRight$1(write(left), fromEffect$1(set(leftovers, right)));
|
|
2772
|
-
},
|
|
2773
|
-
onFailure: failCause$1,
|
|
2774
|
-
onDone: succeed$1
|
|
2775
|
-
});
|
|
2776
|
-
|
|
2777
|
-
/** @internal */
|
|
2778
|
-
const indexWhere = (self, predicate, from = 0) => {
|
|
2779
|
-
const iterator = self[Symbol.iterator]();
|
|
2780
|
-
let index = 0;
|
|
2781
|
-
let result = -1;
|
|
2782
|
-
let next;
|
|
2783
|
-
while (result < 0 && (next = iterator.next()) && !next.done) {
|
|
2784
|
-
const a = next.value;
|
|
2785
|
-
if (index >= from && predicate(a)) {
|
|
2786
|
-
result = index;
|
|
2787
|
-
}
|
|
2788
|
-
index = index + 1;
|
|
2789
|
-
}
|
|
2790
|
-
return result;
|
|
2791
|
-
};
|
|
2792
|
-
|
|
2793
|
-
/** @internal */
|
|
2794
|
-
const succeed = z => new SinkImpl(succeed$1(z));
|
|
2795
|
-
|
|
2796
|
-
/** @internal */
|
|
2797
|
-
const sum = /*#__PURE__*/foldLeftChunks(0, (acc, chunk) => acc + reduce(chunk, 0, (s, a) => s + a));
|
|
2798
|
-
|
|
2799
|
-
/** @internal */
|
|
2800
|
-
const summarized = /*#__PURE__*/dual(3, (self, summary, f) => {
|
|
2801
|
-
const newChannel = pipe(fromEffect$1(summary), flatMap$1(start => pipe(self, toChannel, flatMap$1(done => pipe(fromEffect$1(summary), map$1(end => [done, f(start, end)]))))));
|
|
2802
|
-
return new SinkImpl(newChannel);
|
|
2803
|
-
});
|
|
2804
|
-
|
|
2805
|
-
/** @internal */
|
|
2806
|
-
const sync = evaluate => new SinkImpl(sync$1(evaluate));
|
|
2807
|
-
|
|
2808
|
-
/** @internal */
|
|
2809
|
-
const take = n => pipe(foldChunks(empty(), chunk => chunk.length < n, (acc, chunk) => pipe(acc, appendAll(chunk))), flatMap(acc => {
|
|
2810
|
-
const [taken, leftover] = pipe(acc, splitAt(n));
|
|
2811
|
-
return new SinkImpl(pipe(write(leftover), zipRight$1(succeedNow(taken))));
|
|
2812
|
-
}));
|
|
2813
|
-
|
|
2814
|
-
/** @internal */
|
|
2815
|
-
const toChannel = self => isEffect(self) ? toChannel(fromEffect(self)) : self.channel;
|
|
2816
|
-
|
|
2817
|
-
/** @internal */
|
|
2818
|
-
const unwrap = effect => new SinkImpl(unwrap$1(pipe(effect, map$2(sink => toChannel(sink)))));
|
|
2819
|
-
|
|
2820
|
-
/** @internal */
|
|
2821
|
-
const unwrapScoped = effect => {
|
|
2822
|
-
return new SinkImpl(unwrapScoped$1(pipe(effect, map$2(sink => toChannel(sink)))));
|
|
2823
|
-
};
|
|
2824
|
-
|
|
2825
|
-
/** @internal */
|
|
2826
|
-
const withDuration = self => pipe(self, summarized(currentTimeMillis, (start, end) => millis(end - start)));
|
|
2827
|
-
|
|
2828
|
-
/** @internal */
|
|
2829
|
-
const zip = /*#__PURE__*/dual(args => isSink(args[1]), (self, that, options) => zipWith(self, that, (z, z2) => [z, z2], options));
|
|
2830
|
-
|
|
2831
|
-
/** @internal */
|
|
2832
|
-
const zipLeft = /*#__PURE__*/dual(args => isSink(args[1]), (self, that, options) => zipWith(self, that, (z, _) => z, options));
|
|
2833
|
-
|
|
2834
|
-
/** @internal */
|
|
2835
|
-
const zipRight = /*#__PURE__*/dual(args => isSink(args[1]), (self, that, options) => zipWith(self, that, (_, z2) => z2, options));
|
|
2836
|
-
|
|
2837
|
-
/** @internal */
|
|
2838
|
-
const zipWith = /*#__PURE__*/dual(args => isSink(args[1]), (self, that, f, options) => options?.concurrent ? raceWith(self, {
|
|
2839
|
-
other: that,
|
|
2840
|
-
onSelfDone: match$1({
|
|
2841
|
-
onFailure: cause => Done$1(failCause$3(cause)),
|
|
2842
|
-
onSuccess: leftZ => Await(match$1({
|
|
2843
|
-
onFailure: failCause$3,
|
|
2844
|
-
onSuccess: rightZ => succeed$3(f(leftZ, rightZ))
|
|
2845
|
-
}))
|
|
2846
|
-
}),
|
|
2847
|
-
onOtherDone: match$1({
|
|
2848
|
-
onFailure: cause => Done$1(failCause$3(cause)),
|
|
2849
|
-
onSuccess: rightZ => Await(match$1({
|
|
2850
|
-
onFailure: failCause$3,
|
|
2851
|
-
onSuccess: leftZ => succeed$3(f(leftZ, rightZ))
|
|
2852
|
-
}))
|
|
2853
|
-
})
|
|
2854
|
-
}) : flatMap(self, z => map(that, z2 => f(z, z2))));
|
|
2855
|
-
|
|
2856
|
-
// Circular with Channel
|
|
2857
|
-
|
|
2858
|
-
/** @internal */
|
|
2859
|
-
const channelToSink = self => new SinkImpl(self);
|
|
2860
|
-
|
|
2861
|
-
// Constants
|
|
2862
|
-
|
|
2863
|
-
/** @internal */
|
|
2864
|
-
const count = /*#__PURE__*/foldLeftChunks(0, (acc, chunk) => acc + chunk.length);
|
|
2865
|
-
|
|
2866
|
-
/** @internal */
|
|
2867
|
-
const mkString = /*#__PURE__*/suspend(() => {
|
|
2868
|
-
const strings = [];
|
|
2869
|
-
return pipe(foldLeftChunks(void 0, (_, elems) => map$5(elems, elem => {
|
|
2870
|
-
strings.push(String(elem));
|
|
2871
|
-
})), map(() => strings.join("")));
|
|
2872
|
-
});
|
|
2873
|
-
|
|
2874
|
-
/** @internal */
|
|
2875
|
-
const timed = /*#__PURE__*/pipe( /*#__PURE__*/withDuration(drain), /*#__PURE__*/map(tuple => tuple[1]));
|
|
2876
|
-
|
|
2877
|
-
export { drain as $, succeed$1 as A, mapOut as B, ChannelTypeId as C, mapOutEffectPar as D, repeated as E, collectAllN as F, interruptWhen as G, interruptWhenDeferred as H, mapOutEffect as I, mapError$1 as J, mapErrorCause as K, mergeWith as L, mkString as M, orDieWith as N, orElse$1 as O, foldSink as P, collectLeftover as Q, zipRight as R, SinkTypeId as S, fromEffect as T, fail as U, fromChannel as V, provideContext$1 as W, catchAll as X, runDrain as Y, collectAll as Z, count as _, readWithCause as a, foldUntilEffect as a$, fold as a0, foldEffect as a1, forEach as a2, forEachChunk as a3, forEachWhile as a4, head as a5, last as a6, sum as a7, scoped as a8, foldCauseChannel as a9, dimapChunks as aA, dimapChunksEffect as aB, drop as aC, dropUntil as aD, dropUntilEffect as aE, dropWhile as aF, dropWhileEffect as aG, ensuring as aH, ensuringWith as aI, context as aJ, contextWith as aK, contextWithEffect as aL, contextWithSink as aM, every as aN, failSync as aO, failCause as aP, failCauseSync as aQ, filterInput as aR, filterInputEffect as aS, findEffect as aT, foldChunks as aU, foldChunksEffect as aV, foldLeft as aW, foldLeftChunks as aX, foldLeftChunksEffect as aY, foldLeftEffect as aZ, foldUntil as a_, toPull as aa, fromInput as ab, embedInput as ac, mergeMap as ad, sync$1 as ae, writeAll as af, as as ag, collectAllFrom as ah, collectAllToMap as ai, collectAllToMapN as aj, collectAllToSet as ak, collectAllToSetN as al, collectAllUntil as am, collectAllUntilEffect as an, collectAllWhile as ao, collectAllWhileEffect as ap, collectAllWhileWith as aq, mapInput as ar, mapInputEffect as as, mapInputChunks as at, mapInputChunksEffect as au, die as av, dieMessage as aw, dieSync as ax, dimap as ay, dimapEffect as az, fromEffect$1 as b, failCauseSync$1 as b$, foldWeighted as b0, foldWeightedDecompose as b1, foldWeightedDecomposeEffect as b2, foldWeightedEffect as b3, forEachChunkWhile as b4, flatMap as b5, fromHub as b6, fromPush as b7, fromQueue as b8, ignoreLeftover as b9, zipWith as bA, ChannelExceptionTypeId as bB, acquireUseRelease as bC, acquireReleaseOut as bD, as$1 as bE, asUnit as bF, buffer as bG, bufferChunk as bH, concatAll as bI, concatAllWith as bJ, concatMapWith as bK, concatMapWithCustom as bL, collect as bM, concatOut as bN, mapInput$1 as bO, mapInputEffect$1 as bP, mapInputError as bQ, mapInputErrorEffect as bR, mapInputIn as bS, mapInputInEffect as bT, doneCollect as bU, emitCollect as bV, context$1 as bW, contextWith$1 as bX, contextWithChannel as bY, contextWithEffect$1 as bZ, failSync$1 as b_, leftover as ba, map as bb, mapEffect as bc, mapError as bd, mapLeftover as be, never as bf, orElse as bg, provideContext as bh, race as bi, raceBoth as bj, raceWith as bk, refineOrDie as bl, refineOrDieWith as bm, some as bn, splitWhere as bo, succeed as bp, summarized as bq, suspend as br, sync as bs, take as bt, timed as bu, unwrap as bv, unwrapScoped as bw, withDuration as bx, zip as by, zipLeft as bz, failCause$1 as c, flatten as c0, foldChannel as c1, fromEither as c2, fromHub$1 as c3, fromHubScoped as c4, fromOption as c5, fromQueue$1 as c6, map$1 as c7, mapEffect$1 as c8, mergeAll as c9, mergeAllUnbounded as ca, mergeAllUnboundedWith as cb, mergeAllWith as cc, mergeOut as cd, mergeOutWith as ce, never$1 as cf, orDie as cg, provideLayer as ch, mapInputContext as ci, provideSomeLayer as cj, provideService as ck, read as cl, readOrFail as cm, run as cn, runCollect as co, toHub as cp, toQueue as cq, channelToSink as cr, updateService as cs, withSpan as ct, zip$1 as cu, zipLeft$1 as cv, ChannelException as cw, isChannelException as cx, drain$1 as d, unit as e, flatMap$1 as f, run$1 as g, pipeToOrFail as h, collectElements as i, unwrapScoped$1 as j, fail$1 as k, catchAllCause as l, concatMap as m, writeChunk as n, readWith as o, pipeTo as p, identityChannel as q, runScoped as r, suspend$1 as s, toChannel as t, unwrap$1 as u, succeedNow as v, write as w, ensuring$1 as x, ensuringWith$1 as y, zipRight$1 as z };
|