effect 2.0.0-next.43 → 2.0.0-next.45

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.
Files changed (737) hide show
  1. package/Brand/dist/effect-Brand.cjs.dev.js +2 -2
  2. package/Brand/dist/effect-Brand.cjs.prod.js +2 -2
  3. package/Cache/dist/effect-Cache.cjs.dev.js +27 -27
  4. package/Cache/dist/effect-Cache.cjs.prod.js +27 -27
  5. package/Cause/dist/effect-Cause.cjs.dev.js +16 -16
  6. package/Cause/dist/effect-Cause.cjs.mjs +1 -1
  7. package/Cause/dist/effect-Cause.cjs.prod.js +16 -16
  8. package/Cause/dist/effect-Cause.esm.js +4 -4
  9. package/Channel/dist/effect-Channel.cjs.dev.js +49 -49
  10. package/Channel/dist/effect-Channel.cjs.mjs +3 -3
  11. package/Channel/dist/effect-Channel.cjs.prod.js +49 -49
  12. package/Channel/dist/effect-Channel.esm.js +8 -8
  13. package/ChannelSingleProducerAsyncInput/dist/effect-ChannelSingleProducerAsyncInput.cjs.dev.js +35 -35
  14. package/ChannelSingleProducerAsyncInput/dist/effect-ChannelSingleProducerAsyncInput.cjs.prod.js +35 -35
  15. package/Chunk/dist/effect-Chunk.cjs.dev.js +2 -2
  16. package/Chunk/dist/effect-Chunk.cjs.prod.js +2 -2
  17. package/Clock/dist/effect-Clock.cjs.dev.js +13 -13
  18. package/Clock/dist/effect-Clock.cjs.prod.js +13 -13
  19. package/Config/dist/effect-Config.cjs.dev.js +10 -10
  20. package/Config/dist/effect-Config.cjs.prod.js +10 -10
  21. package/ConfigError/dist/effect-ConfigError.cjs.dev.js +3 -3
  22. package/ConfigError/dist/effect-ConfigError.cjs.prod.js +3 -3
  23. package/ConfigProvider/dist/effect-ConfigProvider.cjs.dev.js +12 -12
  24. package/ConfigProvider/dist/effect-ConfigProvider.cjs.prod.js +12 -12
  25. package/ConfigProviderPathPatch/dist/effect-ConfigProviderPathPatch.cjs.dev.js +4 -4
  26. package/ConfigProviderPathPatch/dist/effect-ConfigProviderPathPatch.cjs.prod.js +4 -4
  27. package/ConfigSecret/dist/effect-ConfigSecret.cjs.dev.js +3 -3
  28. package/ConfigSecret/dist/effect-ConfigSecret.cjs.prod.js +3 -3
  29. package/Console/dist/effect-Console.cjs.dev.js +31 -31
  30. package/Console/dist/effect-Console.cjs.prod.js +31 -31
  31. package/Context/dist/effect-Context.cjs.dev.js +3 -3
  32. package/Context/dist/effect-Context.cjs.prod.js +3 -3
  33. package/DefaultServices/dist/effect-DefaultServices.cjs.dev.js +13 -13
  34. package/DefaultServices/dist/effect-DefaultServices.cjs.prod.js +13 -13
  35. package/Deferred/dist/effect-Deferred.cjs.dev.js +7 -7
  36. package/Deferred/dist/effect-Deferred.cjs.prod.js +7 -7
  37. package/Differ/dist/effect-Differ.cjs.dev.js +4 -4
  38. package/Differ/dist/effect-Differ.cjs.prod.js +4 -4
  39. package/Duration/dist/effect-Duration.cjs.dev.js +2 -2
  40. package/Duration/dist/effect-Duration.cjs.prod.js +2 -2
  41. package/Effect/dist/effect-Effect.cjs.dev.js +41 -41
  42. package/Effect/dist/effect-Effect.cjs.prod.js +41 -41
  43. package/Effectable/dist/effect-Effectable.cjs.dev.js +24 -13
  44. package/Effectable/dist/effect-Effectable.cjs.mjs +5 -4
  45. package/Effectable/dist/effect-Effectable.cjs.prod.js +24 -13
  46. package/Effectable/dist/effect-Effectable.esm.js +15 -5
  47. package/Either/dist/effect-Either.cjs.dev.js +2 -2
  48. package/Either/dist/effect-Either.cjs.prod.js +2 -2
  49. package/Encoding/dist/effect-Encoding.cjs.dev.js +2 -2
  50. package/Encoding/dist/effect-Encoding.cjs.prod.js +2 -2
  51. package/Error/dist/effect-Error.cjs.dev.js +35 -35
  52. package/Error/dist/effect-Error.cjs.prod.js +35 -35
  53. package/Error/dist/effect-Error.esm.js +2 -2
  54. package/ExecutionStrategy/dist/effect-ExecutionStrategy.cjs.dev.js +2 -2
  55. package/ExecutionStrategy/dist/effect-ExecutionStrategy.cjs.prod.js +2 -2
  56. package/Exit/dist/effect-Exit.cjs.dev.js +7 -7
  57. package/Exit/dist/effect-Exit.cjs.prod.js +7 -7
  58. package/Fiber/dist/effect-Fiber.cjs.dev.js +28 -28
  59. package/Fiber/dist/effect-Fiber.cjs.prod.js +28 -28
  60. package/FiberId/dist/effect-FiberId.cjs.dev.js +4 -4
  61. package/FiberId/dist/effect-FiberId.cjs.prod.js +4 -4
  62. package/FiberRef/dist/effect-FiberRef.cjs.dev.js +28 -28
  63. package/FiberRef/dist/effect-FiberRef.cjs.prod.js +28 -28
  64. package/FiberRefs/dist/effect-FiberRefs.cjs.dev.js +8 -8
  65. package/FiberRefs/dist/effect-FiberRefs.cjs.prod.js +8 -8
  66. package/FiberRefsPatch/dist/effect-FiberRefsPatch.cjs.dev.js +9 -9
  67. package/FiberRefsPatch/dist/effect-FiberRefsPatch.cjs.prod.js +9 -9
  68. package/GroupBy/dist/effect-GroupBy.cjs.dev.js +41 -41
  69. package/GroupBy/dist/effect-GroupBy.cjs.prod.js +41 -41
  70. package/HashMap/dist/effect-HashMap.cjs.dev.js +19 -19
  71. package/HashMap/dist/effect-HashMap.cjs.prod.js +19 -19
  72. package/HashSet/dist/effect-HashSet.cjs.dev.js +19 -19
  73. package/HashSet/dist/effect-HashSet.cjs.prod.js +19 -19
  74. package/KeyedPool/dist/effect-KeyedPool.cjs.dev.js +32 -32
  75. package/KeyedPool/dist/effect-KeyedPool.cjs.prod.js +32 -32
  76. package/Layer/dist/effect-Layer.cjs.dev.js +31 -31
  77. package/Layer/dist/effect-Layer.cjs.prod.js +31 -31
  78. package/List/dist/effect-List.cjs.dev.js +2 -2
  79. package/List/dist/effect-List.cjs.prod.js +2 -2
  80. package/LogLevel/dist/effect-LogLevel.cjs.dev.js +7 -7
  81. package/LogLevel/dist/effect-LogLevel.cjs.prod.js +7 -7
  82. package/Logger/dist/effect-Logger.cjs.dev.js +32 -32
  83. package/Logger/dist/effect-Logger.cjs.prod.js +32 -32
  84. package/Metric/dist/effect-Metric.cjs.dev.js +26 -26
  85. package/Metric/dist/effect-Metric.cjs.prod.js +26 -26
  86. package/MetricBoundaries/dist/effect-MetricBoundaries.cjs.dev.js +3 -3
  87. package/MetricBoundaries/dist/effect-MetricBoundaries.cjs.prod.js +3 -3
  88. package/MetricHook/dist/effect-MetricHook.cjs.dev.js +5 -5
  89. package/MetricHook/dist/effect-MetricHook.cjs.prod.js +5 -5
  90. package/MetricKey/dist/effect-MetricKey.cjs.dev.js +5 -5
  91. package/MetricKey/dist/effect-MetricKey.cjs.prod.js +5 -5
  92. package/MetricKeyType/dist/effect-MetricKeyType.cjs.dev.js +3 -3
  93. package/MetricKeyType/dist/effect-MetricKeyType.cjs.prod.js +3 -3
  94. package/MetricPolling/dist/effect-MetricPolling.cjs.dev.js +29 -29
  95. package/MetricPolling/dist/effect-MetricPolling.cjs.prod.js +29 -29
  96. package/MetricRegistry/dist/effect-MetricRegistry.cjs.dev.js +7 -7
  97. package/MetricRegistry/dist/effect-MetricRegistry.cjs.prod.js +7 -7
  98. package/MetricState/dist/effect-MetricState.cjs.dev.js +1 -1
  99. package/MetricState/dist/effect-MetricState.cjs.prod.js +1 -1
  100. package/MutableHashMap/dist/effect-MutableHashMap.cjs.dev.js +3 -3
  101. package/MutableHashMap/dist/effect-MutableHashMap.cjs.prod.js +3 -3
  102. package/MutableHashSet/dist/effect-MutableHashSet.cjs.dev.js +3 -3
  103. package/MutableHashSet/dist/effect-MutableHashSet.cjs.prod.js +3 -3
  104. package/MutableQueue/dist/effect-MutableQueue.cjs.dev.js +2 -2
  105. package/MutableQueue/dist/effect-MutableQueue.cjs.prod.js +2 -2
  106. package/Option/dist/effect-Option.cjs.dev.js +2 -2
  107. package/Option/dist/effect-Option.cjs.prod.js +2 -2
  108. package/Pool/dist/effect-Pool.cjs.dev.js +28 -28
  109. package/Pool/dist/effect-Pool.cjs.prod.js +28 -28
  110. package/PubSub/dist/effect-PubSub.cjs.d.mts +2 -0
  111. package/PubSub/dist/effect-PubSub.cjs.d.mts.map +1 -0
  112. package/PubSub/dist/effect-PubSub.cjs.d.ts +2 -0
  113. package/PubSub/dist/effect-PubSub.cjs.d.ts.map +1 -0
  114. package/{Hub/dist/effect-Hub.cjs.dev.js → PubSub/dist/effect-PubSub.cjs.dev.js} +162 -162
  115. package/PubSub/dist/effect-PubSub.cjs.js +7 -0
  116. package/{Hub/dist/effect-Hub.cjs.mjs → PubSub/dist/effect-PubSub.cjs.mjs} +1 -1
  117. package/{Hub/dist/effect-Hub.cjs.prod.js → PubSub/dist/effect-PubSub.cjs.prod.js} +162 -162
  118. package/{Hub/dist/effect-Hub.esm.js → PubSub/dist/effect-PubSub.esm.js} +15 -15
  119. package/PubSub/package.json +4 -0
  120. package/Queue/dist/effect-Queue.cjs.dev.js +27 -27
  121. package/Queue/dist/effect-Queue.cjs.prod.js +27 -27
  122. package/Random/dist/effect-Random.cjs.dev.js +13 -13
  123. package/Random/dist/effect-Random.cjs.prod.js +13 -13
  124. package/ReadonlyArray/dist/effect-ReadonlyArray.cjs.dev.js +2 -2
  125. package/ReadonlyArray/dist/effect-ReadonlyArray.cjs.prod.js +2 -2
  126. package/ReadonlyRecord/dist/effect-ReadonlyRecord.cjs.dev.js +2 -2
  127. package/ReadonlyRecord/dist/effect-ReadonlyRecord.cjs.prod.js +2 -2
  128. package/RedBlackTree/dist/effect-RedBlackTree.cjs.dev.js +2 -2
  129. package/RedBlackTree/dist/effect-RedBlackTree.cjs.prod.js +2 -2
  130. package/Ref/dist/effect-Ref.cjs.dev.js +8 -8
  131. package/Ref/dist/effect-Ref.cjs.prod.js +8 -8
  132. package/Reloadable/dist/effect-Reloadable.cjs.dev.js +40 -40
  133. package/Reloadable/dist/effect-Reloadable.cjs.prod.js +40 -40
  134. package/Request/dist/effect-Request.cjs.dev.js +28 -28
  135. package/Request/dist/effect-Request.cjs.prod.js +28 -28
  136. package/RequestBlock/dist/effect-RequestBlock.cjs.dev.js +35 -35
  137. package/RequestBlock/dist/effect-RequestBlock.cjs.prod.js +35 -35
  138. package/RequestResolver/dist/effect-RequestResolver.cjs.dev.js +35 -35
  139. package/RequestResolver/dist/effect-RequestResolver.cjs.prod.js +35 -35
  140. package/Resource/dist/effect-Resource.cjs.dev.js +33 -33
  141. package/Resource/dist/effect-Resource.cjs.prod.js +33 -33
  142. package/Runtime/dist/effect-Runtime.cjs.dev.js +29 -29
  143. package/Runtime/dist/effect-Runtime.cjs.prod.js +29 -29
  144. package/RuntimeFlags/dist/effect-RuntimeFlags.cjs.dev.js +32 -32
  145. package/RuntimeFlags/dist/effect-RuntimeFlags.cjs.prod.js +32 -32
  146. package/RuntimeFlagsPatch/dist/effect-RuntimeFlagsPatch.cjs.dev.js +5 -5
  147. package/RuntimeFlagsPatch/dist/effect-RuntimeFlagsPatch.cjs.prod.js +5 -5
  148. package/STM/dist/effect-STM.cjs.dev.js +43 -43
  149. package/STM/dist/effect-STM.cjs.prod.js +43 -43
  150. package/Schedule/dist/effect-Schedule.cjs.dev.js +18 -18
  151. package/Schedule/dist/effect-Schedule.cjs.prod.js +18 -18
  152. package/ScheduleDecision/dist/effect-ScheduleDecision.cjs.dev.js +2 -2
  153. package/ScheduleDecision/dist/effect-ScheduleDecision.cjs.prod.js +2 -2
  154. package/ScheduleInterval/dist/effect-ScheduleInterval.cjs.dev.js +2 -2
  155. package/ScheduleInterval/dist/effect-ScheduleInterval.cjs.prod.js +2 -2
  156. package/ScheduleIntervals/dist/effect-ScheduleIntervals.cjs.dev.js +2 -2
  157. package/ScheduleIntervals/dist/effect-ScheduleIntervals.cjs.prod.js +2 -2
  158. package/Scheduler/dist/effect-Scheduler.cjs.dev.js +7 -7
  159. package/Scheduler/dist/effect-Scheduler.cjs.prod.js +7 -7
  160. package/Scope/dist/effect-Scope.cjs.dev.js +26 -26
  161. package/Scope/dist/effect-Scope.cjs.prod.js +26 -26
  162. package/ScopedCache/dist/effect-ScopedCache.cjs.dev.js +46 -46
  163. package/ScopedCache/dist/effect-ScopedCache.cjs.prod.js +46 -46
  164. package/ScopedRef/dist/effect-ScopedRef.cjs.dev.js +30 -30
  165. package/ScopedRef/dist/effect-ScopedRef.cjs.prod.js +30 -30
  166. package/Sink/dist/effect-Sink.cjs.dev.js +42 -42
  167. package/Sink/dist/effect-Sink.cjs.mjs +1 -1
  168. package/Sink/dist/effect-Sink.cjs.prod.js +42 -42
  169. package/Sink/dist/effect-Sink.esm.js +5 -5
  170. package/SortedMap/dist/effect-SortedMap.cjs.dev.js +2 -2
  171. package/SortedMap/dist/effect-SortedMap.cjs.prod.js +2 -2
  172. package/SortedSet/dist/effect-SortedSet.cjs.dev.js +2 -2
  173. package/SortedSet/dist/effect-SortedSet.cjs.prod.js +2 -2
  174. package/Stream/dist/effect-Stream.cjs.dev.js +59 -59
  175. package/Stream/dist/effect-Stream.cjs.mjs +5 -5
  176. package/Stream/dist/effect-Stream.cjs.prod.js +59 -59
  177. package/Stream/dist/effect-Stream.esm.js +15 -15
  178. package/Streamable/dist/effect-Streamable.cjs.d.mts +2 -0
  179. package/Streamable/dist/effect-Streamable.cjs.d.mts.map +1 -0
  180. package/Streamable/dist/effect-Streamable.cjs.d.ts +2 -0
  181. package/Streamable/dist/effect-Streamable.cjs.d.ts.map +1 -0
  182. package/Streamable/dist/effect-Streamable.cjs.dev.js +152 -0
  183. package/Streamable/dist/effect-Streamable.cjs.js +7 -0
  184. package/Streamable/dist/effect-Streamable.cjs.mjs +3 -0
  185. package/Streamable/dist/effect-Streamable.cjs.prod.js +152 -0
  186. package/Streamable/dist/effect-Streamable.esm.js +42 -0
  187. package/Streamable/package.json +4 -0
  188. package/String/dist/effect-String.cjs.dev.js +2 -2
  189. package/String/dist/effect-String.cjs.prod.js +2 -2
  190. package/SubscriptionRef/dist/effect-SubscriptionRef.cjs.dev.js +46 -46
  191. package/SubscriptionRef/dist/effect-SubscriptionRef.cjs.prod.js +46 -46
  192. package/Supervisor/dist/effect-Supervisor.cjs.dev.js +33 -33
  193. package/Supervisor/dist/effect-Supervisor.cjs.prod.js +33 -33
  194. package/SynchronizedRef/dist/effect-SynchronizedRef.cjs.dev.js +29 -29
  195. package/SynchronizedRef/dist/effect-SynchronizedRef.cjs.prod.js +29 -29
  196. package/TArray/dist/effect-TArray.cjs.dev.js +45 -45
  197. package/TArray/dist/effect-TArray.cjs.prod.js +45 -45
  198. package/TDeferred/dist/effect-TDeferred.cjs.dev.js +44 -44
  199. package/TDeferred/dist/effect-TDeferred.cjs.prod.js +44 -44
  200. package/TMap/dist/effect-TMap.cjs.dev.js +46 -46
  201. package/TMap/dist/effect-TMap.cjs.prod.js +46 -46
  202. package/TPriorityQueue/dist/effect-TPriorityQueue.cjs.dev.js +43 -43
  203. package/TPriorityQueue/dist/effect-TPriorityQueue.cjs.prod.js +43 -43
  204. package/TPubSub/dist/effect-TPubSub.cjs.d.mts +2 -0
  205. package/TPubSub/dist/effect-TPubSub.cjs.d.mts.map +1 -0
  206. package/TPubSub/dist/effect-TPubSub.cjs.d.ts +2 -0
  207. package/TPubSub/dist/effect-TPubSub.cjs.d.ts.map +1 -0
  208. package/{THub/dist/effect-THub.cjs.dev.js → TPubSub/dist/effect-TPubSub.cjs.dev.js} +98 -98
  209. package/TPubSub/dist/effect-TPubSub.cjs.js +7 -0
  210. package/{THub/dist/effect-THub.cjs.mjs → TPubSub/dist/effect-TPubSub.cjs.mjs} +2 -2
  211. package/{THub/dist/effect-THub.cjs.prod.js → TPubSub/dist/effect-TPubSub.cjs.prod.js} +98 -98
  212. package/TPubSub/dist/effect-TPubSub.esm.js +157 -0
  213. package/TPubSub/package.json +4 -0
  214. package/TQueue/dist/effect-TQueue.cjs.dev.js +45 -45
  215. package/TQueue/dist/effect-TQueue.cjs.prod.js +45 -45
  216. package/TRandom/dist/effect-TRandom.cjs.dev.js +45 -45
  217. package/TRandom/dist/effect-TRandom.cjs.prod.js +45 -45
  218. package/TReentrantLock/dist/effect-TReentrantLock.cjs.dev.js +43 -43
  219. package/TReentrantLock/dist/effect-TReentrantLock.cjs.prod.js +43 -43
  220. package/TRef/dist/effect-TRef.cjs.dev.js +43 -43
  221. package/TRef/dist/effect-TRef.cjs.prod.js +43 -43
  222. package/TSemaphore/dist/effect-TSemaphore.cjs.dev.js +44 -44
  223. package/TSemaphore/dist/effect-TSemaphore.cjs.prod.js +44 -44
  224. package/TSet/dist/effect-TSet.cjs.dev.js +46 -46
  225. package/TSet/dist/effect-TSet.cjs.prod.js +46 -46
  226. package/Take/dist/effect-Take.cjs.dev.js +35 -35
  227. package/Take/dist/effect-Take.cjs.prod.js +35 -35
  228. package/TestAnnotation/dist/effect-TestAnnotation.cjs.dev.js +4 -4
  229. package/TestAnnotation/dist/effect-TestAnnotation.cjs.prod.js +4 -4
  230. package/TestAnnotations/dist/effect-TestAnnotations.cjs.dev.js +21 -21
  231. package/TestAnnotations/dist/effect-TestAnnotations.cjs.prod.js +21 -21
  232. package/TestClock/dist/effect-TestClock.cjs.dev.js +45 -45
  233. package/TestClock/dist/effect-TestClock.cjs.prod.js +45 -45
  234. package/TestConfig/dist/effect-TestConfig.cjs.dev.js +3 -3
  235. package/TestConfig/dist/effect-TestConfig.cjs.prod.js +3 -3
  236. package/TestContext/dist/effect-TestContext.cjs.dev.js +34 -34
  237. package/TestContext/dist/effect-TestContext.cjs.prod.js +34 -34
  238. package/TestLive/dist/effect-TestLive.cjs.dev.js +13 -13
  239. package/TestLive/dist/effect-TestLive.cjs.prod.js +13 -13
  240. package/TestServices/dist/effect-TestServices.cjs.dev.js +38 -38
  241. package/TestServices/dist/effect-TestServices.cjs.prod.js +38 -38
  242. package/TestSized/dist/effect-TestSized.cjs.dev.js +7 -7
  243. package/TestSized/dist/effect-TestSized.cjs.prod.js +7 -7
  244. package/Tracer/dist/effect-Tracer.cjs.dev.js +13 -13
  245. package/Tracer/dist/effect-Tracer.cjs.prod.js +13 -13
  246. package/dist/{Context-01a123ac.cjs.prod.js → Context-0b0d0e29.cjs.prod.js} +2 -2
  247. package/dist/{Context-593661f6.cjs.dev.js → Context-1f857844.cjs.dev.js} +2 -2
  248. package/dist/{Effectable-2f022879.cjs.dev.js → Effectable-07258ce9.cjs.dev.js} +10 -8
  249. package/dist/{Effectable-cd8f3a96.cjs.prod.js → Effectable-c2cd2b50.cjs.prod.js} +10 -8
  250. package/dist/{Either-7a881c7a.cjs.prod.js → Either-a974e241.cjs.prod.js} +3 -3
  251. package/dist/{Either-12bbe00c.cjs.dev.js → Either-d49a9926.cjs.dev.js} +3 -3
  252. package/dist/{ExecutionStrategy-14d3053a.cjs.prod.js → ExecutionStrategy-4808fe5d.cjs.prod.js} +2 -2
  253. package/dist/{ExecutionStrategy-70f1a920.cjs.dev.js → ExecutionStrategy-7d9d457b.cjs.dev.js} +2 -2
  254. package/dist/{HashSet-6257b66d.cjs.prod.js → HashSet-0ffa0e48.cjs.prod.js} +32 -32
  255. package/dist/{HashSet-0b4ff1e4.cjs.dev.js → HashSet-606682d1.cjs.dev.js} +32 -32
  256. package/dist/{Ref-74b592a4.cjs.dev.js → Ref-4009db78.cjs.dev.js} +1 -1
  257. package/dist/{Ref-a3a4e50d.cjs.prod.js → Ref-590d873e.cjs.prod.js} +1 -1
  258. package/dist/{cache-3a55a13a.cjs.prod.js → cache-8a5a4a2d.cjs.prod.js} +13 -13
  259. package/dist/{cache-83d14f6e.cjs.dev.js → cache-fe0cd2f2.cjs.dev.js} +13 -13
  260. package/dist/{circular-c3ce70f4.cjs.prod.js → circular-2d1d95bc.cjs.prod.js} +6 -6
  261. package/dist/{circular-2162b720.cjs.dev.js → circular-325c6904.cjs.dev.js} +6 -6
  262. package/dist/{circular-a4887ee9.cjs.dev.js → circular-95bf2834.cjs.dev.js} +33 -33
  263. package/dist/{circular-f72fcb1d.cjs.prod.js → circular-ccfbed47.cjs.prod.js} +33 -33
  264. package/dist/{config-d0ddc159.cjs.prod.js → config-a72429ce.cjs.prod.js} +3 -3
  265. package/dist/{config-80900693.cjs.dev.js → config-e4643c63.cjs.dev.js} +3 -3
  266. package/dist/{configProvider-93617d6d.cjs.prod.js → configProvider-16bc7ff6.cjs.prod.js} +29 -29
  267. package/dist/{configProvider-ce43fdbf.cjs.dev.js → configProvider-3cdbe5f3.cjs.dev.js} +29 -29
  268. package/dist/{core-b2dfee8d.cjs.dev.js → core-44c23eaf.cjs.dev.js} +3 -3
  269. package/dist/{core-0b0539de.cjs.prod.js → core-c87f1ac0.cjs.prod.js} +730 -730
  270. package/dist/{core-8ff5a82c.cjs.prod.js → core-ce4f24fc.cjs.prod.js} +3 -3
  271. package/dist/{core-b4d7b4f5.cjs.dev.js → core-efee9c5a.cjs.dev.js} +730 -730
  272. package/dist/{core-effect-c65770cd.cjs.prod.js → core-effect-867f1514.cjs.prod.js} +75 -73
  273. package/dist/{core-effect-892f3686.cjs.dev.js → core-effect-f99b558c.cjs.dev.js} +75 -73
  274. package/dist/{dataSource-837686e6.cjs.prod.js → dataSource-2fe48092.cjs.prod.js} +2 -2
  275. package/dist/{dataSource-5227437c.cjs.dev.js → dataSource-642004b6.cjs.dev.js} +2 -2
  276. package/dist/declarations/src/Cause.d.ts +6 -6
  277. package/dist/declarations/src/Cause.d.ts.map +1 -1
  278. package/dist/declarations/src/Channel.d.ts +7 -7
  279. package/dist/declarations/src/Channel.d.ts.map +1 -1
  280. package/dist/declarations/src/Effect.d.ts +4 -2
  281. package/dist/declarations/src/Effect.d.ts.map +1 -1
  282. package/dist/declarations/src/Effectable.d.ts +14 -4
  283. package/dist/declarations/src/Effectable.d.ts.map +1 -1
  284. package/dist/declarations/src/Metric.d.ts +31 -7
  285. package/dist/declarations/src/Metric.d.ts.map +1 -1
  286. package/dist/declarations/src/MetricHook.d.ts +7 -4
  287. package/dist/declarations/src/MetricHook.d.ts.map +1 -1
  288. package/dist/declarations/src/MetricKey.d.ts +24 -4
  289. package/dist/declarations/src/MetricKey.d.ts.map +1 -1
  290. package/dist/declarations/src/MetricKeyType.d.ts +9 -6
  291. package/dist/declarations/src/MetricKeyType.d.ts.map +1 -1
  292. package/dist/declarations/src/MetricRegistry.d.ts +2 -2
  293. package/dist/declarations/src/MetricRegistry.d.ts.map +1 -1
  294. package/dist/declarations/src/MetricState.d.ts +15 -9
  295. package/dist/declarations/src/MetricState.d.ts.map +1 -1
  296. package/dist/declarations/src/{Hub.d.ts → PubSub.d.ts} +38 -38
  297. package/dist/declarations/src/PubSub.d.ts.map +1 -0
  298. package/dist/declarations/src/Sink.d.ts +4 -4
  299. package/dist/declarations/src/Sink.d.ts.map +1 -1
  300. package/dist/declarations/src/Stream.d.ts +24 -24
  301. package/dist/declarations/src/Stream.d.ts.map +1 -1
  302. package/dist/declarations/src/Streamable.d.ts +27 -0
  303. package/dist/declarations/src/Streamable.d.ts.map +1 -0
  304. package/dist/declarations/src/SubscriptionRef.d.ts.map +1 -1
  305. package/dist/declarations/src/TPubSub.d.ts +146 -0
  306. package/dist/declarations/src/TPubSub.d.ts.map +1 -0
  307. package/dist/declarations/src/index.d.ts +11 -7
  308. package/dist/declarations/src/index.d.ts.map +1 -1
  309. package/dist/{defaultServices-086b8ac9.cjs.prod.js → defaultServices-7e943cae.cjs.prod.js} +6 -6
  310. package/dist/{defaultServices-5530ff0e.cjs.dev.js → defaultServices-eb04fba1.cjs.dev.js} +6 -6
  311. package/dist/effect.cjs.dev.js +9 -6
  312. package/dist/effect.cjs.mjs +3 -2
  313. package/dist/effect.cjs.prod.js +9 -6
  314. package/dist/effect.esm.js +6 -4
  315. package/dist/{fiber-1bfb4c1d.cjs.dev.js → fiber-4d2acba3.cjs.dev.js} +12 -12
  316. package/dist/{fiber-2eb0a4c1.cjs.prod.js → fiber-588d28c2.cjs.prod.js} +12 -12
  317. package/dist/{fiberRefs-be6b6a70.cjs.prod.js → fiberRefs-51f2a630.cjs.prod.js} +1 -1
  318. package/dist/{fiberRefs-be4fae6a.cjs.dev.js → fiberRefs-e08092fb.cjs.dev.js} +1 -1
  319. package/dist/{fiberRuntime-e0db0ab6.cjs.dev.js → fiberRuntime-6e93adff.cjs.dev.js} +107 -102
  320. package/dist/{fiberRuntime-af2d0ca1.cjs.prod.js → fiberRuntime-7287c284.cjs.prod.js} +107 -102
  321. package/dist/{groupBy-bd943372.cjs.dev.js → groupBy-1e05ffd4.cjs.dev.js} +4 -4
  322. package/dist/{groupBy-7ce46ea3.cjs.prod.js → groupBy-6d5815f3.cjs.prod.js} +4 -4
  323. package/dist/{hook-470b717e.cjs.prod.js → hook-39ebe8b3.cjs.prod.js} +8 -4
  324. package/dist/{hook-e72b20fd.cjs.dev.js → hook-f9a9b660.cjs.dev.js} +8 -4
  325. package/dist/{key-378a6a2c.cjs.prod.js → key-66f61406.cjs.prod.js} +3 -3
  326. package/dist/{key-f0a1408a.cjs.dev.js → key-6d9b350e.cjs.dev.js} +3 -3
  327. package/dist/{keyType-55f27f07.cjs.dev.js → keyType-22634b88.cjs.dev.js} +9 -2
  328. package/dist/{keyType-cf67c69c.cjs.prod.js → keyType-8ff33fde.cjs.prod.js} +9 -2
  329. package/dist/{layer-9cbb61ce.cjs.dev.js → layer-e3745d23.cjs.dev.js} +33 -33
  330. package/dist/{layer-3b1b0e2e.cjs.prod.js → layer-f8cd3f83.cjs.prod.js} +33 -33
  331. package/dist/{patch-a1b2802f.cjs.dev.js → patch-b051ae7e.cjs.dev.js} +1 -1
  332. package/dist/{patch-c4d6c61e.cjs.prod.js → patch-b8d22fb3.cjs.prod.js} +1 -1
  333. package/dist/{pathPatch-15c8d723.cjs.prod.js → pathPatch-bdcb0e3f.cjs.prod.js} +1 -1
  334. package/dist/{pathPatch-d9d41297.cjs.dev.js → pathPatch-fc0ba157.cjs.dev.js} +1 -1
  335. package/dist/{pool-b5c7d254.cjs.prod.js → pool-6c034854.cjs.prod.js} +31 -31
  336. package/dist/{pool-29b03fb2.cjs.dev.js → pool-a52582b9.cjs.dev.js} +31 -31
  337. package/dist/{query-d5eefc43.cjs.prod.js → query-59d346d8.cjs.prod.js} +11 -11
  338. package/dist/{query-67a7c448.cjs.dev.js → query-ab3d963c.cjs.dev.js} +11 -11
  339. package/dist/{queue-997d6e51.cjs.dev.js → queue-50c41726.cjs.dev.js} +22 -22
  340. package/dist/{queue-38614769.cjs.prod.js → queue-fcd6126f.cjs.prod.js} +22 -22
  341. package/dist/{registry-013ecdde.cjs.prod.js → registry-3809a602.cjs.prod.js} +4 -4
  342. package/dist/{registry-1099de3f.cjs.dev.js → registry-fc4cef7b.cjs.dev.js} +4 -4
  343. package/dist/{runtime-15cc9cc5.cjs.dev.js → runtime-9047860e.cjs.dev.js} +7 -7
  344. package/dist/{runtime-3a59f5c4.cjs.prod.js → runtime-aa083fe4.cjs.prod.js} +7 -7
  345. package/dist/{schedule-1d92198c.cjs.prod.js → schedule-4ca6941d.cjs.prod.js} +40 -40
  346. package/dist/{schedule-e0f55cab.cjs.dev.js → schedule-fd323904.cjs.dev.js} +40 -40
  347. package/dist/scopedRef-0fc8943d.cjs.prod.js +55 -0
  348. package/dist/scopedRef-dc386056.cjs.dev.js +55 -0
  349. package/dist/{singleProducerAsyncInput-998b8fac.cjs.dev.js → singleProducerAsyncInput-54b43c1b.cjs.dev.js} +1 -1
  350. package/dist/{singleProducerAsyncInput-1c6cc8fb.cjs.prod.js → singleProducerAsyncInput-61ffe143.cjs.prod.js} +1 -1
  351. package/dist/{sink-1ac24bca.cjs.dev.js → sink-0445fb11.cjs.dev.js} +17 -17
  352. package/dist/{sink-4d668efb.cjs.prod.js → sink-ade4fdbe.cjs.prod.js} +17 -17
  353. package/dist/{state-dd1bd066.cjs.prod.js → state-0bdf02b7.cjs.prod.js} +2 -6
  354. package/dist/{state-8fbec044.cjs.dev.js → state-931050c4.cjs.dev.js} +2 -6
  355. package/dist/{stm-fcac86d5.cjs.prod.js → stm-8d082310.cjs.prod.js} +3 -3
  356. package/dist/{stm-fbb398a5.cjs.dev.js → stm-e9d8effb.cjs.dev.js} +3 -3
  357. package/dist/{stream-e670e8fa.cjs.prod.js → stream-97061dd9.cjs.prod.js} +31 -28
  358. package/dist/{stream-adef675d.cjs.dev.js → stream-e220a3b2.cjs.dev.js} +31 -28
  359. package/dist/{synchronizedRef-37e32854.cjs.dev.js → synchronizedRef-1f28b27f.cjs.dev.js} +6 -6
  360. package/dist/{synchronizedRef-b4cde4de.cjs.prod.js → synchronizedRef-ff0ddebf.cjs.prod.js} +6 -6
  361. package/dist/{tArray-70de8ec4.cjs.prod.js → tArray-437f6510.cjs.prod.js} +3 -3
  362. package/dist/{tArray-239d37ad.cjs.dev.js → tArray-59a819a0.cjs.dev.js} +3 -3
  363. package/dist/{tMap-a202396b.cjs.prod.js → tMap-ca06b00f.cjs.prod.js} +4 -4
  364. package/dist/{tMap-4b27665d.cjs.dev.js → tMap-d6376d13.cjs.dev.js} +4 -4
  365. package/dist/{tQueue-004a478e.cjs.dev.js → tQueue-7b931af8.cjs.dev.js} +3 -3
  366. package/dist/{tQueue-82c4db95.cjs.prod.js → tQueue-bf3716af.cjs.prod.js} +3 -3
  367. package/dist/{tRef-bb7cc73a.cjs.dev.js → tRef-5b159626.cjs.dev.js} +1 -1
  368. package/dist/{tRef-ee2c7f44.cjs.prod.js → tRef-bb143111.cjs.prod.js} +1 -1
  369. package/internal/Context.esm.js +2 -2
  370. package/internal/Effectable.esm.js +8 -8
  371. package/internal/Either.esm.js +3 -3
  372. package/internal/Option.esm.js +3 -3
  373. package/internal/cause.esm.js +5 -5
  374. package/internal/channel.esm.js +5 -5
  375. package/internal/core-effect.esm.js +3 -1
  376. package/internal/fiberRuntime.esm.js +13 -8
  377. package/internal/metric/hook.esm.js +7 -3
  378. package/internal/metric/key.esm.js +2 -2
  379. package/internal/metric/keyType.esm.js +9 -2
  380. package/internal/metric/registry.esm.js +2 -2
  381. package/internal/metric/state.esm.js +2 -6
  382. package/internal/metric.esm.js +3 -3
  383. package/internal/{hub.esm.js → pubsub.esm.js} +108 -108
  384. package/internal/sink.esm.js +8 -8
  385. package/internal/stm/{tHub.esm.js → tPubSub.esm.js} +30 -30
  386. package/internal/stream.esm.js +23 -20
  387. package/internal/subscriptionRef.esm.js +8 -8
  388. package/package.json +62 -203
  389. package/src/.index.ts +30 -0
  390. package/src/Bigint.ts +381 -0
  391. package/src/Boolean.ts +261 -0
  392. package/src/Brand.ts +336 -0
  393. package/src/Cache.ts +250 -0
  394. package/src/Cause.ts +813 -0
  395. package/src/Channel.ts +2244 -0
  396. package/src/ChannelChildExecutorDecision.ts +138 -0
  397. package/src/ChannelMergeDecision.ts +94 -0
  398. package/src/ChannelMergeState.ts +166 -0
  399. package/src/ChannelMergeStrategy.ts +107 -0
  400. package/src/ChannelSingleProducerAsyncInput.ts +68 -0
  401. package/src/ChannelUpstreamPullRequest.ts +110 -0
  402. package/src/ChannelUpstreamPullStrategy.ts +120 -0
  403. package/src/Chunk.ts +1314 -0
  404. package/src/Clock.ts +111 -0
  405. package/src/Config.ts +447 -0
  406. package/src/ConfigError.ts +267 -0
  407. package/src/ConfigProvider.ts +296 -0
  408. package/src/ConfigProviderPathPatch.ts +100 -0
  409. package/src/ConfigSecret.ts +76 -0
  410. package/src/Console.ts +222 -0
  411. package/src/Context.ts +365 -0
  412. package/src/Data.ts +295 -0
  413. package/src/DefaultServices.ts +34 -0
  414. package/src/Deferred.ts +283 -0
  415. package/src/Differ.ts +406 -0
  416. package/src/Duration.ts +558 -0
  417. package/src/Effect.ts +5177 -0
  418. package/src/Effectable.ts +107 -0
  419. package/src/Either.ts +593 -0
  420. package/src/Encoding.ts +130 -0
  421. package/src/Equal.ts +64 -0
  422. package/src/Equivalence.ts +235 -0
  423. package/src/Error.ts +69 -0
  424. package/src/ExecutionStrategy.ts +111 -0
  425. package/src/Exit.ts +464 -0
  426. package/src/Fiber.ts +650 -0
  427. package/src/FiberId.ts +187 -0
  428. package/src/FiberRef.ts +399 -0
  429. package/src/FiberRefs.ts +160 -0
  430. package/src/FiberRefsPatch.ts +105 -0
  431. package/src/FiberStatus.ts +108 -0
  432. package/src/Function.ts +834 -0
  433. package/src/GlobalValue.ts +20 -0
  434. package/src/GroupBy.ts +102 -0
  435. package/src/HKT.ts +44 -0
  436. package/src/Hash.ts +162 -0
  437. package/src/HashMap.ts +373 -0
  438. package/src/HashSet.ts +300 -0
  439. package/src/Inspectable.ts +45 -0
  440. package/src/KeyedPool.ts +160 -0
  441. package/src/Layer.ts +866 -0
  442. package/src/List.ts +942 -0
  443. package/src/LogLevel.ts +266 -0
  444. package/src/LogSpan.ts +25 -0
  445. package/src/Logger.ts +321 -0
  446. package/src/Metric.ts +657 -0
  447. package/src/MetricBoundaries.ts +70 -0
  448. package/src/MetricHook.ts +139 -0
  449. package/src/MetricKey.ts +227 -0
  450. package/src/MetricKeyType.ts +257 -0
  451. package/src/MetricLabel.ts +47 -0
  452. package/src/MetricPair.ts +70 -0
  453. package/src/MetricPolling.ts +136 -0
  454. package/src/MetricRegistry.ts +47 -0
  455. package/src/MetricState.ts +256 -0
  456. package/src/MutableHashMap.ts +187 -0
  457. package/src/MutableHashSet.ts +118 -0
  458. package/src/MutableList.ts +289 -0
  459. package/src/MutableQueue.ts +227 -0
  460. package/src/MutableRef.ts +204 -0
  461. package/src/NonEmptyIterable.ts +30 -0
  462. package/src/Number.ts +406 -0
  463. package/src/Option.ts +1307 -0
  464. package/src/Order.ts +328 -0
  465. package/src/Ordering.ts +112 -0
  466. package/src/Pipeable.ts +318 -0
  467. package/src/Pool.ts +148 -0
  468. package/src/Predicate.ts +704 -0
  469. package/src/PubSub.ts +175 -0
  470. package/src/Queue.ts +575 -0
  471. package/src/Random.ts +115 -0
  472. package/src/ReadonlyArray.ts +2017 -0
  473. package/src/ReadonlyRecord.ts +641 -0
  474. package/src/RedBlackTree.ts +415 -0
  475. package/src/Ref.ts +159 -0
  476. package/src/Reloadable.ts +136 -0
  477. package/src/Request.ts +285 -0
  478. package/src/RequestBlock.ts +157 -0
  479. package/src/RequestResolver.ts +305 -0
  480. package/src/Resource.ts +97 -0
  481. package/src/Runtime.ts +216 -0
  482. package/src/RuntimeFlags.ts +336 -0
  483. package/src/RuntimeFlagsPatch.ts +183 -0
  484. package/src/STM.ts +2076 -0
  485. package/src/Schedule.ts +1396 -0
  486. package/src/ScheduleDecision.ts +62 -0
  487. package/src/ScheduleInterval.ts +151 -0
  488. package/src/ScheduleIntervals.ts +122 -0
  489. package/src/Scheduler.ts +359 -0
  490. package/src/Scope.ts +171 -0
  491. package/src/ScopedCache.ts +148 -0
  492. package/src/ScopedRef.ts +95 -0
  493. package/src/Sink.ts +1431 -0
  494. package/src/SortedMap.ts +229 -0
  495. package/src/SortedSet.ts +385 -0
  496. package/src/Stream.ts +4540 -0
  497. package/src/StreamEmit.ts +83 -0
  498. package/src/StreamHaltStrategy.ts +111 -0
  499. package/src/Streamable.ts +42 -0
  500. package/src/String.ts +682 -0
  501. package/src/Struct.ts +151 -0
  502. package/src/SubscriptionRef.ts +273 -0
  503. package/src/Supervisor.ts +239 -0
  504. package/src/Symbol.ts +28 -0
  505. package/src/SynchronizedRef.ts +249 -0
  506. package/src/TArray.ts +494 -0
  507. package/src/TDeferred.ts +99 -0
  508. package/src/TMap.ts +510 -0
  509. package/src/TPriorityQueue.ts +223 -0
  510. package/src/TPubSub.ts +187 -0
  511. package/src/TQueue.ts +431 -0
  512. package/src/TRandom.ts +129 -0
  513. package/src/TReentrantLock.ts +224 -0
  514. package/src/TRef.ts +176 -0
  515. package/src/TSemaphore.ts +129 -0
  516. package/src/TSet.ts +349 -0
  517. package/src/Take.ts +257 -0
  518. package/src/TestAnnotation.ts +166 -0
  519. package/src/TestAnnotationMap.ts +124 -0
  520. package/src/TestAnnotations.ts +113 -0
  521. package/src/TestClock.ts +552 -0
  522. package/src/TestConfig.ts +49 -0
  523. package/src/TestContext.ts +35 -0
  524. package/src/TestLive.ts +55 -0
  525. package/src/TestServices.ts +392 -0
  526. package/src/TestSized.ts +55 -0
  527. package/src/Tracer.ts +119 -0
  528. package/src/Tuple.ts +204 -0
  529. package/src/Types.ts +123 -0
  530. package/src/Unify.ts +118 -0
  531. package/src/Utils.ts +699 -0
  532. package/src/index.ts +845 -0
  533. package/src/internal/Common.ts +56 -0
  534. package/src/internal/Context.ts +252 -0
  535. package/src/internal/Data.ts +51 -0
  536. package/src/internal/Differ/ChunkPatch.ts +209 -0
  537. package/src/internal/Differ/ContextPatch.ts +229 -0
  538. package/src/internal/Differ/HashMapPatch.ts +217 -0
  539. package/src/internal/Differ/HashSetPatch.ts +174 -0
  540. package/src/internal/Differ/OrPatch.ts +296 -0
  541. package/src/internal/Differ.ts +184 -0
  542. package/src/internal/Effectable.ts +92 -0
  543. package/src/internal/Either.ts +107 -0
  544. package/src/internal/Encoding/Base64.ts +282 -0
  545. package/src/internal/Encoding/Base64Url.ts +28 -0
  546. package/src/internal/Encoding/Common.ts +24 -0
  547. package/src/internal/Encoding/Hex.ts +315 -0
  548. package/src/internal/HashMap/array.ts +49 -0
  549. package/src/internal/HashMap/bitwise.ts +32 -0
  550. package/src/internal/HashMap/config.ts +14 -0
  551. package/src/internal/HashMap/keySet.ts +8 -0
  552. package/src/internal/HashMap/node.ts +390 -0
  553. package/src/internal/HashMap.ts +533 -0
  554. package/src/internal/HashSet.ts +319 -0
  555. package/src/internal/Iterable.ts +54 -0
  556. package/src/internal/Option.ts +79 -0
  557. package/src/internal/ReadonlyArray.ts +8 -0
  558. package/src/internal/RedBlackTree/iterator.ts +207 -0
  559. package/src/internal/RedBlackTree/node.ts +48 -0
  560. package/src/internal/RedBlackTree.ts +1195 -0
  561. package/src/internal/Stack.ts +4 -0
  562. package/src/internal/blockedRequests.ts +512 -0
  563. package/src/internal/cache.ts +714 -0
  564. package/src/internal/cause.ts +1220 -0
  565. package/src/internal/channel/channelExecutor.ts +1193 -0
  566. package/src/internal/channel/channelState.ts +132 -0
  567. package/src/internal/channel/childExecutorDecision.ts +95 -0
  568. package/src/internal/channel/continuation.ts +171 -0
  569. package/src/internal/channel/mergeDecision.ts +115 -0
  570. package/src/internal/channel/mergeState.ts +120 -0
  571. package/src/internal/channel/mergeStrategy.ts +72 -0
  572. package/src/internal/channel/singleProducerAsyncInput.ts +261 -0
  573. package/src/internal/channel/subexecutor.ts +229 -0
  574. package/src/internal/channel/upstreamPullRequest.ts +83 -0
  575. package/src/internal/channel/upstreamPullStrategy.ts +86 -0
  576. package/src/internal/channel.ts +2516 -0
  577. package/src/internal/clock.ts +97 -0
  578. package/src/internal/completedRequestMap.ts +9 -0
  579. package/src/internal/concurrency.ts +83 -0
  580. package/src/internal/config.ts +598 -0
  581. package/src/internal/configError.ts +291 -0
  582. package/src/internal/configProvider/pathPatch.ts +97 -0
  583. package/src/internal/configProvider.ts +692 -0
  584. package/src/internal/configSecret.ts +71 -0
  585. package/src/internal/console.ts +136 -0
  586. package/src/internal/core-effect.ts +2146 -0
  587. package/src/internal/core-stream.ts +999 -0
  588. package/src/internal/core.ts +2765 -0
  589. package/src/internal/dataSource.ts +258 -0
  590. package/src/internal/defaultServices/console.ts +97 -0
  591. package/src/internal/defaultServices.ts +140 -0
  592. package/src/internal/deferred.ts +44 -0
  593. package/src/internal/effect/circular.ts +664 -0
  594. package/src/internal/executionStrategy.ts +72 -0
  595. package/src/internal/fiber.ts +350 -0
  596. package/src/internal/fiberId.ts +270 -0
  597. package/src/internal/fiberMessage.ts +85 -0
  598. package/src/internal/fiberRefs/patch.ts +144 -0
  599. package/src/internal/fiberRefs.ts +239 -0
  600. package/src/internal/fiberRuntime.ts +3477 -0
  601. package/src/internal/fiberScope.ts +72 -0
  602. package/src/internal/fiberStatus.ts +118 -0
  603. package/src/internal/groupBy.ts +516 -0
  604. package/src/internal/keyedPool.ts +240 -0
  605. package/src/internal/layer/circular.ts +203 -0
  606. package/src/internal/layer.ts +1230 -0
  607. package/src/internal/logSpan.ts +15 -0
  608. package/src/internal/logger-circular.ts +24 -0
  609. package/src/internal/logger.ts +307 -0
  610. package/src/internal/metric/boundaries.ts +72 -0
  611. package/src/internal/metric/hook.ts +459 -0
  612. package/src/internal/metric/key.ts +173 -0
  613. package/src/internal/metric/keyType.ts +263 -0
  614. package/src/internal/metric/label.ts +44 -0
  615. package/src/internal/metric/pair.ts +48 -0
  616. package/src/internal/metric/polling.ts +143 -0
  617. package/src/internal/metric/registry.ts +188 -0
  618. package/src/internal/metric/state.ts +286 -0
  619. package/src/internal/metric.ts +522 -0
  620. package/src/internal/opCodes/cause.ts +35 -0
  621. package/src/internal/opCodes/channel.ts +83 -0
  622. package/src/internal/opCodes/channelChildExecutorDecision.ts +17 -0
  623. package/src/internal/opCodes/channelMergeDecision.ts +11 -0
  624. package/src/internal/opCodes/channelMergeState.ts +17 -0
  625. package/src/internal/opCodes/channelMergeStrategy.ts +11 -0
  626. package/src/internal/opCodes/channelState.ts +23 -0
  627. package/src/internal/opCodes/channelUpstreamPullRequest.ts +11 -0
  628. package/src/internal/opCodes/channelUpstreamPullStrategy.ts +11 -0
  629. package/src/internal/opCodes/config.ts +65 -0
  630. package/src/internal/opCodes/configError.ts +35 -0
  631. package/src/internal/opCodes/continuation.ts +11 -0
  632. package/src/internal/opCodes/deferred.ts +11 -0
  633. package/src/internal/opCodes/effect.ts +83 -0
  634. package/src/internal/opCodes/layer.ts +53 -0
  635. package/src/internal/opCodes/streamHaltStrategy.ts +23 -0
  636. package/src/internal/pool.ts +499 -0
  637. package/src/internal/pubsub.ts +1557 -0
  638. package/src/internal/query.ts +199 -0
  639. package/src/internal/queue.ts +729 -0
  640. package/src/internal/random.ts +88 -0
  641. package/src/internal/ref.ts +164 -0
  642. package/src/internal/reloadable.ts +164 -0
  643. package/src/internal/request.ts +137 -0
  644. package/src/internal/resource.ts +64 -0
  645. package/src/internal/ringBuffer.ts +68 -0
  646. package/src/internal/runtime.ts +348 -0
  647. package/src/internal/runtimeFlags.ts +176 -0
  648. package/src/internal/runtimeFlagsPatch.ts +103 -0
  649. package/src/internal/schedule/decision.ts +47 -0
  650. package/src/internal/schedule/interval.ts +101 -0
  651. package/src/internal/schedule/intervals.ts +179 -0
  652. package/src/internal/schedule.ts +2096 -0
  653. package/src/internal/scopedCache.ts +634 -0
  654. package/src/internal/scopedRef.ts +133 -0
  655. package/src/internal/singleShotGen.ts +35 -0
  656. package/src/internal/sink.ts +2118 -0
  657. package/src/internal/stm/core.ts +804 -0
  658. package/src/internal/stm/opCodes/stm.ts +71 -0
  659. package/src/internal/stm/opCodes/stmState.ts +17 -0
  660. package/src/internal/stm/opCodes/strategy.ts +17 -0
  661. package/src/internal/stm/opCodes/tExit.ts +29 -0
  662. package/src/internal/stm/opCodes/tryCommit.ts +11 -0
  663. package/src/internal/stm/stm/entry.ts +59 -0
  664. package/src/internal/stm/stm/journal.ts +123 -0
  665. package/src/internal/stm/stm/opCodes/stm.ts +71 -0
  666. package/src/internal/stm/stm/opCodes/stmState.ts +17 -0
  667. package/src/internal/stm/stm/opCodes/strategy.ts +17 -0
  668. package/src/internal/stm/stm/opCodes/tExit.ts +29 -0
  669. package/src/internal/stm/stm/opCodes/tryCommit.ts +11 -0
  670. package/src/internal/stm/stm/stmState.ts +130 -0
  671. package/src/internal/stm/stm/tExit.ts +180 -0
  672. package/src/internal/stm/stm/tryCommit.ts +34 -0
  673. package/src/internal/stm/stm/txnId.ts +14 -0
  674. package/src/internal/stm/stm/versioned.ts +4 -0
  675. package/src/internal/stm/stm.ts +1491 -0
  676. package/src/internal/stm/tArray.ts +550 -0
  677. package/src/internal/stm/tDeferred.ts +79 -0
  678. package/src/internal/stm/tMap.ts +824 -0
  679. package/src/internal/stm/tPriorityQueue.ts +259 -0
  680. package/src/internal/stm/tPubSub.ts +542 -0
  681. package/src/internal/stm/tQueue.ts +400 -0
  682. package/src/internal/stm/tRandom.ts +140 -0
  683. package/src/internal/stm/tReentrantLock.ts +352 -0
  684. package/src/internal/stm/tRef.ts +190 -0
  685. package/src/internal/stm/tSemaphore.ts +113 -0
  686. package/src/internal/stm/tSet.ts +237 -0
  687. package/src/internal/stream/debounceState.ts +57 -0
  688. package/src/internal/stream/emit.ts +46 -0
  689. package/src/internal/stream/haltStrategy.ts +85 -0
  690. package/src/internal/stream/handoff.ts +185 -0
  691. package/src/internal/stream/handoffSignal.ts +59 -0
  692. package/src/internal/stream/pull.ts +35 -0
  693. package/src/internal/stream/sinkEndReason.ts +30 -0
  694. package/src/internal/stream/zipAllState.ts +88 -0
  695. package/src/internal/stream/zipChunksState.ts +56 -0
  696. package/src/internal/stream.ts +8089 -0
  697. package/src/internal/string-utils.ts +107 -0
  698. package/src/internal/subscriptionRef.ts +133 -0
  699. package/src/internal/supervisor/patch.ts +190 -0
  700. package/src/internal/supervisor.ts +301 -0
  701. package/src/internal/synchronizedRef.ts +115 -0
  702. package/src/internal/take.ts +198 -0
  703. package/src/internal/testing/sleep.ts +27 -0
  704. package/src/internal/testing/suspendedWarningData.ts +85 -0
  705. package/src/internal/testing/warningData.ts +94 -0
  706. package/src/internal/timeout.ts +23 -0
  707. package/src/internal/tracer.ts +74 -0
  708. package/Hub/dist/effect-Hub.cjs.d.mts +0 -2
  709. package/Hub/dist/effect-Hub.cjs.d.mts.map +0 -1
  710. package/Hub/dist/effect-Hub.cjs.d.ts +0 -2
  711. package/Hub/dist/effect-Hub.cjs.d.ts.map +0 -1
  712. package/Hub/dist/effect-Hub.cjs.js +0 -7
  713. package/Hub/package.json +0 -4
  714. package/THub/dist/effect-THub.cjs.d.mts +0 -2
  715. package/THub/dist/effect-THub.cjs.d.mts.map +0 -1
  716. package/THub/dist/effect-THub.cjs.d.ts +0 -2
  717. package/THub/dist/effect-THub.cjs.d.ts.map +0 -1
  718. package/THub/dist/effect-THub.cjs.js +0 -7
  719. package/THub/dist/effect-THub.esm.js +0 -157
  720. package/THub/package.json +0 -4
  721. package/dist/declarations/src/Hub.d.ts.map +0 -1
  722. package/dist/declarations/src/THub.d.ts +0 -146
  723. package/dist/declarations/src/THub.d.ts.map +0 -1
  724. package/dist/scopedRef-88ae648a.cjs.dev.js +0 -55
  725. package/dist/scopedRef-a0257d92.cjs.prod.js +0 -55
  726. /package/dist/{FiberId-557db880.cjs.dev.js → FiberId-9c555b91.cjs.dev.js} +0 -0
  727. /package/dist/{FiberId-e594f6e8.cjs.prod.js → FiberId-fd1b9201.cjs.prod.js} +0 -0
  728. /package/dist/{RuntimeFlagsPatch-ea268c50.cjs.dev.js → RuntimeFlagsPatch-197be4f3.cjs.dev.js} +0 -0
  729. /package/dist/{RuntimeFlagsPatch-e2769b87.cjs.prod.js → RuntimeFlagsPatch-7f853fa5.cjs.prod.js} +0 -0
  730. /package/dist/{boundaries-3810d885.cjs.dev.js → boundaries-60c435b8.cjs.dev.js} +0 -0
  731. /package/dist/{boundaries-20cfad9d.cjs.prod.js → boundaries-73dd633f.cjs.prod.js} +0 -0
  732. /package/dist/{configError-240e9b61.cjs.dev.js → configError-623ccb8d.cjs.dev.js} +0 -0
  733. /package/dist/{configError-33e55472.cjs.prod.js → configError-d2914327.cjs.prod.js} +0 -0
  734. /package/dist/{configSecret-e34c1b14.cjs.dev.js → configSecret-baa8839f.cjs.dev.js} +0 -0
  735. /package/dist/{configSecret-d1caca55.cjs.prod.js → configSecret-c08c317d.cjs.prod.js} +0 -0
  736. /package/dist/{take-4857b6af.cjs.dev.js → take-05b33c5b.cjs.dev.js} +0 -0
  737. /package/dist/{take-9c555b46.cjs.prod.js → take-c7b73760.cjs.prod.js} +0 -0
@@ -5,7 +5,7 @@ var Context_dist_effectContext = require('../Context/dist/effect-Context.cjs.pro
5
5
  var Differ_dist_effectDiffer = require('../Differ/dist/effect-Differ.cjs.prod.js');
6
6
  var Either_dist_effectEither = require('../Either/dist/effect-Either.cjs.prod.js');
7
7
  var Equal_dist_effectEqual = require('../Equal/dist/effect-Equal.cjs.prod.js');
8
- var FiberId_dist_effectFiberId = require('./FiberId-e594f6e8.cjs.prod.js');
8
+ var FiberId_dist_effectFiberId = require('./FiberId-fd1b9201.cjs.prod.js');
9
9
  var Function_dist_effectFunction = require('../Function/dist/effect-Function.cjs.prod.js');
10
10
  var GlobalValue_dist_effectGlobalValue = require('../GlobalValue/dist/effect-GlobalValue.cjs.prod.js');
11
11
  var Hash_dist_effectHash = require('../Hash/dist/effect-Hash.cjs.prod.js');
@@ -16,10 +16,368 @@ var List_dist_effectList = require('../List/dist/effect-List.cjs.prod.js');
16
16
  var Option_dist_effectOption = require('../Option/dist/effect-Option.cjs.prod.js');
17
17
  var Pipeable_dist_effectPipeable = require('../Pipeable/dist/effect-Pipeable.cjs.prod.js');
18
18
  var ReadonlyArray_dist_effectReadonlyArray = require('../ReadonlyArray/dist/effect-ReadonlyArray.cjs.prod.js');
19
- var Effectable = require('./Effectable-cd8f3a96.cjs.prod.js');
20
- var RuntimeFlagsPatch_dist_effectRuntimeFlagsPatch = require('./RuntimeFlagsPatch-e2769b87.cjs.prod.js');
19
+ var Effectable = require('./Effectable-c2cd2b50.cjs.prod.js');
20
+ var RuntimeFlagsPatch_dist_effectRuntimeFlagsPatch = require('./RuntimeFlagsPatch-7f853fa5.cjs.prod.js');
21
21
  var MutableRef_dist_effectMutableRef = require('../MutableRef/dist/effect-MutableRef.cjs.prod.js');
22
22
 
23
+ /** @internal */
24
+ const empty$1 = {
25
+ _tag: "Empty"
26
+ };
27
+
28
+ /**
29
+ * Combines this collection of blocked requests with the specified collection
30
+ * of blocked requests, in parallel.
31
+ *
32
+ * @internal
33
+ */
34
+ const par = (self, that) => ({
35
+ _tag: "Par",
36
+ left: self,
37
+ right: that
38
+ });
39
+
40
+ /**
41
+ * Combines this collection of blocked requests with the specified collection
42
+ * of blocked requests, in sequence.
43
+ *
44
+ * @internal
45
+ */
46
+ const seq = (self, that) => ({
47
+ _tag: "Seq",
48
+ left: self,
49
+ right: that
50
+ });
51
+
52
+ /**
53
+ * Constructs a collection of blocked requests from the specified blocked
54
+ * request and data source.
55
+ *
56
+ * @internal
57
+ */
58
+ const single = (dataSource, blockedRequest) => ({
59
+ _tag: "Single",
60
+ dataSource,
61
+ blockedRequest
62
+ });
63
+
64
+ /** @internal */
65
+ const MapRequestResolversReducer = f => ({
66
+ emptyCase: () => empty$1,
67
+ parCase: (left, right) => par(left, right),
68
+ seqCase: (left, right) => seq(left, right),
69
+ singleCase: (dataSource, blockedRequest) => single(f(dataSource), blockedRequest)
70
+ });
71
+ /**
72
+ * Transforms all data sources with the specified data source aspect, which
73
+ * can change the environment type of data sources but must preserve the
74
+ * request type of each data source.
75
+ *
76
+ * @internal
77
+ */
78
+ const mapRequestResolvers = (self, f) => reduce$1(self, MapRequestResolversReducer(f));
79
+
80
+ /**
81
+ * Folds over the cases of this collection of blocked requests with the
82
+ * specified functions.
83
+ *
84
+ * @internal
85
+ */
86
+ const reduce$1 = (self, reducer) => {
87
+ let input = List_dist_effectList.of(self);
88
+ let output = List_dist_effectList.empty();
89
+ while (List_dist_effectList.isCons(input)) {
90
+ const current = input.head;
91
+ switch (current._tag) {
92
+ case "Empty":
93
+ {
94
+ output = List_dist_effectList.cons(Either_dist_effectEither.right(reducer.emptyCase()), output);
95
+ input = input.tail;
96
+ break;
97
+ }
98
+ case "Par":
99
+ {
100
+ output = List_dist_effectList.cons(Either_dist_effectEither.left({
101
+ _tag: "ParCase"
102
+ }), output);
103
+ input = List_dist_effectList.cons(current.left, List_dist_effectList.cons(current.right, input.tail));
104
+ break;
105
+ }
106
+ case "Seq":
107
+ {
108
+ output = List_dist_effectList.cons(Either_dist_effectEither.left({
109
+ _tag: "SeqCase"
110
+ }), output);
111
+ input = List_dist_effectList.cons(current.left, List_dist_effectList.cons(current.right, input.tail));
112
+ break;
113
+ }
114
+ case "Single":
115
+ {
116
+ const result = reducer.singleCase(current.dataSource, current.blockedRequest);
117
+ output = List_dist_effectList.cons(Either_dist_effectEither.right(result), output);
118
+ input = input.tail;
119
+ break;
120
+ }
121
+ }
122
+ }
123
+ const result = List_dist_effectList.reduce(output, List_dist_effectList.empty(), (acc, current) => {
124
+ switch (current._tag) {
125
+ case "Left":
126
+ {
127
+ const left = List_dist_effectList.unsafeHead(acc);
128
+ const right = List_dist_effectList.unsafeHead(List_dist_effectList.unsafeTail(acc));
129
+ const tail = List_dist_effectList.unsafeTail(List_dist_effectList.unsafeTail(acc));
130
+ switch (current.left._tag) {
131
+ case "ParCase":
132
+ {
133
+ return List_dist_effectList.cons(reducer.parCase(left, right), tail);
134
+ }
135
+ case "SeqCase":
136
+ {
137
+ return List_dist_effectList.cons(reducer.seqCase(left, right), tail);
138
+ }
139
+ }
140
+ }
141
+ case "Right":
142
+ {
143
+ return List_dist_effectList.cons(current.right, acc);
144
+ }
145
+ }
146
+ });
147
+ if (List_dist_effectList.isNil(result)) {
148
+ throw new Error("BUG: BlockedRequests.reduce - please report an issue at https://github.com/Effect-TS/query/issues");
149
+ }
150
+ return result.head;
151
+ };
152
+
153
+ /**
154
+ * Flattens a collection of blocked requests into a collection of pipelined
155
+ * and batched requests that can be submitted for execution.
156
+ *
157
+ * @internal
158
+ */
159
+ const flatten$2 = self => {
160
+ let current = List_dist_effectList.of(self);
161
+ let updated = List_dist_effectList.empty();
162
+ // eslint-disable-next-line no-constant-condition
163
+ while (1) {
164
+ const [parallel, sequential] = List_dist_effectList.reduce(current, [parallelCollectionEmpty(), List_dist_effectList.empty()], ([parallel, sequential], blockedRequest) => {
165
+ const [par, seq] = step$1(blockedRequest);
166
+ return [parallelCollectionCombine(parallel, par), List_dist_effectList.appendAll(sequential, seq)];
167
+ });
168
+ updated = merge(updated, parallel);
169
+ if (List_dist_effectList.isNil(sequential)) {
170
+ return List_dist_effectList.reverse(updated);
171
+ }
172
+ current = sequential;
173
+ }
174
+ throw new Error("BUG: BlockedRequests.flatten - please report an issue at https://github.com/Effect-TS/query/issues");
175
+ };
176
+
177
+ /**
178
+ * Takes one step in evaluating a collection of blocked requests, returning a
179
+ * collection of blocked requests that can be performed in parallel and a list
180
+ * of blocked requests that must be performed sequentially after those
181
+ * requests.
182
+ */
183
+ const step$1 = requests => {
184
+ let current = requests;
185
+ let parallel = parallelCollectionEmpty();
186
+ let stack = List_dist_effectList.empty();
187
+ let sequential = List_dist_effectList.empty();
188
+ // eslint-disable-next-line no-constant-condition
189
+ while (1) {
190
+ switch (current._tag) {
191
+ case "Empty":
192
+ {
193
+ if (List_dist_effectList.isNil(stack)) {
194
+ return [parallel, sequential];
195
+ }
196
+ current = stack.head;
197
+ stack = stack.tail;
198
+ break;
199
+ }
200
+ case "Par":
201
+ {
202
+ stack = List_dist_effectList.cons(current.right, stack);
203
+ current = current.left;
204
+ break;
205
+ }
206
+ case "Seq":
207
+ {
208
+ const left = current.left;
209
+ const right = current.right;
210
+ switch (left._tag) {
211
+ case "Empty":
212
+ {
213
+ current = right;
214
+ break;
215
+ }
216
+ case "Par":
217
+ {
218
+ const l = left.left;
219
+ const r = left.right;
220
+ current = par(seq(l, right), seq(r, right));
221
+ break;
222
+ }
223
+ case "Seq":
224
+ {
225
+ const l = left.left;
226
+ const r = left.right;
227
+ current = seq(l, seq(r, right));
228
+ break;
229
+ }
230
+ case "Single":
231
+ {
232
+ current = left;
233
+ sequential = List_dist_effectList.cons(right, sequential);
234
+ break;
235
+ }
236
+ }
237
+ break;
238
+ }
239
+ case "Single":
240
+ {
241
+ parallel = parallelCollectionCombine(parallel, parallelCollectionMake(current.dataSource, current.blockedRequest));
242
+ if (List_dist_effectList.isNil(stack)) {
243
+ return [parallel, sequential];
244
+ }
245
+ current = stack.head;
246
+ stack = stack.tail;
247
+ break;
248
+ }
249
+ }
250
+ }
251
+ throw new Error("BUG: BlockedRequests.step - please report an issue at https://github.com/Effect-TS/query/issues");
252
+ };
253
+
254
+ /**
255
+ * Merges a collection of requests that must be executed sequentially with a
256
+ * collection of requests that can be executed in parallel. If the collections
257
+ * are both from the same single data source then the requests can be
258
+ * pipelined while preserving ordering guarantees.
259
+ */
260
+ const merge = (sequential, parallel) => {
261
+ if (List_dist_effectList.isNil(sequential)) {
262
+ return List_dist_effectList.of(parallelCollectionToSequentialCollection(parallel));
263
+ }
264
+ if (parallelCollectionIsEmpty(parallel)) {
265
+ return sequential;
266
+ }
267
+ const seqHeadKeys = sequentialCollectionKeys(sequential.head);
268
+ const parKeys = parallelCollectionKeys(parallel);
269
+ if (seqHeadKeys.length === 1 && parKeys.length === 1 && Equal_dist_effectEqual.equals(seqHeadKeys[0], parKeys[0])) {
270
+ return List_dist_effectList.cons(sequentialCollectionCombine(sequential.head, parallelCollectionToSequentialCollection(parallel)), sequential.tail);
271
+ }
272
+ return List_dist_effectList.cons(parallelCollectionToSequentialCollection(parallel), sequential);
273
+ };
274
+
275
+ //
276
+ // circular
277
+ //
278
+
279
+ /** @internal */
280
+ const EntryTypeId = /*#__PURE__*/Symbol.for("effect/RequestBlock/Entry");
281
+
282
+ /** @internal */
283
+ class EntryImpl {
284
+ [EntryTypeId] = blockedRequestVariance;
285
+ constructor(request, result, listeners, ownerId, state) {
286
+ this.request = request;
287
+ this.result = result;
288
+ this.listeners = listeners;
289
+ this.ownerId = ownerId;
290
+ this.state = state;
291
+ }
292
+ }
293
+
294
+ /** @internal */
295
+ const blockedRequestVariance = {
296
+ _R: _ => _
297
+ };
298
+
299
+ /** @internal */
300
+ const isEntry = u => {
301
+ return typeof u === "object" && u != null && EntryTypeId in u;
302
+ };
303
+
304
+ /** @internal */
305
+ const makeEntry = options => new EntryImpl(options.request, options.result, options.listeners, options.ownerId, options.state);
306
+
307
+ /** @internal */
308
+ const RequestBlockParallelTypeId = /*#__PURE__*/Symbol.for("effect/RequestBlock/RequestBlockParallel");
309
+ const parallelVariance = {
310
+ _R: _ => _
311
+ };
312
+ class ParallelImpl {
313
+ [RequestBlockParallelTypeId] = parallelVariance;
314
+ constructor(map) {
315
+ this.map = map;
316
+ }
317
+ }
318
+
319
+ /** @internal */
320
+ const parallelCollectionEmpty = () => new ParallelImpl(HashMap_dist_effectHashMap.empty());
321
+
322
+ /** @internal */
323
+ const parallelCollectionMake = (dataSource, blockedRequest) => new ParallelImpl(HashMap_dist_effectHashMap.make([dataSource, Array.of(blockedRequest)]));
324
+
325
+ /** @internal */
326
+ const parallelCollectionCombine = (self, that) => new ParallelImpl(HashMap_dist_effectHashMap.reduce(self.map, that.map, (map, value, key) => HashMap_dist_effectHashMap.set(map, key, Option_dist_effectOption.match(HashMap_dist_effectHashMap.get(map, key), {
327
+ onNone: () => value,
328
+ onSome: a => [...a, ...value]
329
+ }))));
330
+
331
+ /** @internal */
332
+ const parallelCollectionIsEmpty = self => HashMap_dist_effectHashMap.isEmpty(self.map);
333
+
334
+ /** @internal */
335
+ const parallelCollectionKeys = self => Array.from(HashMap_dist_effectHashMap.keys(self.map));
336
+
337
+ /** @internal */
338
+ const parallelCollectionToSequentialCollection = self => sequentialCollectionMake(HashMap_dist_effectHashMap.map(self.map, x => Array.of(x)));
339
+
340
+ /** @internal */
341
+ const SequentialCollectionTypeId = /*#__PURE__*/Symbol.for("effect/RequestBlock/RequestBlockSequential");
342
+
343
+ /** @internal */
344
+ const sequentialVariance = {
345
+ _R: _ => _
346
+ };
347
+ class SequentialImpl {
348
+ [SequentialCollectionTypeId] = sequentialVariance;
349
+ constructor(map) {
350
+ this.map = map;
351
+ }
352
+ }
353
+
354
+ /** @internal */
355
+ const sequentialCollectionMake = map => new SequentialImpl(map);
356
+
357
+ /** @internal */
358
+ const sequentialCollectionCombine = (self, that) => new SequentialImpl(HashMap_dist_effectHashMap.reduce(that.map, self.map, (map, value, key) => HashMap_dist_effectHashMap.set(map, key, Option_dist_effectOption.match(HashMap_dist_effectHashMap.get(map, key), {
359
+ onNone: () => [],
360
+ onSome: a => [...a, ...value]
361
+ }))));
362
+
363
+ /** @internal */
364
+ const sequentialCollectionKeys = self => Array.from(HashMap_dist_effectHashMap.keys(self.map));
365
+
366
+ /** @internal */
367
+ const sequentialCollectionToChunk = self => Array.from(self.map);
368
+
369
+ /** @internal */
370
+
371
+ /** @internal */
372
+
373
+ /** @internal */
374
+
375
+ /** @internal */
376
+
377
+ /** @internal */
378
+
379
+ /** @internal */
380
+
23
381
  /** @internal */
24
382
  const OP_DIE = "Die";
25
383
 
@@ -123,7 +481,7 @@ const proto = {
123
481
  // -----------------------------------------------------------------------------
124
482
 
125
483
  /** @internal */
126
- const empty$1 = /*#__PURE__*/(() => {
484
+ const empty = /*#__PURE__*/(() => {
127
485
  const o = /*#__PURE__*/Object.create(proto);
128
486
  o._tag = OP_EMPTY;
129
487
  return o;
@@ -208,7 +566,7 @@ const isEmpty = self => {
208
566
  if (self._tag === OP_EMPTY) {
209
567
  return true;
210
568
  }
211
- return reduce$1(self, true, (acc, cause) => {
569
+ return reduce(self, true, (acc, cause) => {
212
570
  switch (cause._tag) {
213
571
  case OP_EMPTY:
214
572
  {
@@ -241,13 +599,13 @@ const isInterrupted = self => Option_dist_effectOption.isSome(interruptOption(se
241
599
  const isInterruptedOnly = self => reduceWithContext(undefined, IsInterruptedOnlyCauseReducer)(self);
242
600
 
243
601
  /** @internal */
244
- const failures = self => Chunk_dist_effectChunk.reverse(reduce$1(self, Chunk_dist_effectChunk.empty(), (list, cause) => cause._tag === OP_FAIL ? Option_dist_effectOption.some(Function_dist_effectFunction.pipe(list, Chunk_dist_effectChunk.prepend(cause.error))) : Option_dist_effectOption.none()));
602
+ const failures = self => Chunk_dist_effectChunk.reverse(reduce(self, Chunk_dist_effectChunk.empty(), (list, cause) => cause._tag === OP_FAIL ? Option_dist_effectOption.some(Function_dist_effectFunction.pipe(list, Chunk_dist_effectChunk.prepend(cause.error))) : Option_dist_effectOption.none()));
245
603
 
246
604
  /** @internal */
247
- const defects = self => Chunk_dist_effectChunk.reverse(reduce$1(self, Chunk_dist_effectChunk.empty(), (list, cause) => cause._tag === OP_DIE ? Option_dist_effectOption.some(Function_dist_effectFunction.pipe(list, Chunk_dist_effectChunk.prepend(cause.defect))) : Option_dist_effectOption.none()));
605
+ const defects = self => Chunk_dist_effectChunk.reverse(reduce(self, Chunk_dist_effectChunk.empty(), (list, cause) => cause._tag === OP_DIE ? Option_dist_effectOption.some(Function_dist_effectFunction.pipe(list, Chunk_dist_effectChunk.prepend(cause.defect))) : Option_dist_effectOption.none()));
248
606
 
249
607
  /** @internal */
250
- const interruptors = self => reduce$1(self, HashSet_dist_effectHashSet.empty(), (set, cause) => cause._tag === OP_INTERRUPT ? Option_dist_effectOption.some(Function_dist_effectFunction.pipe(set, HashSet_dist_effectHashSet.add(cause.fiberId))) : Option_dist_effectOption.none());
608
+ const interruptors = self => reduce(self, HashSet_dist_effectHashSet.empty(), (set, cause) => cause._tag === OP_INTERRUPT ? Option_dist_effectOption.some(Function_dist_effectFunction.pipe(set, HashSet_dist_effectHashSet.add(cause.fiberId))) : Option_dist_effectOption.none());
251
609
 
252
610
  /** @internal */
253
611
  const failureOption = self => find(self, cause => cause._tag === OP_FAIL ? Option_dist_effectOption.some(cause.error) : Option_dist_effectOption.none());
@@ -273,7 +631,7 @@ const dieOption = self => find(self, cause => cause._tag === OP_DIE ? Option_dis
273
631
 
274
632
  /** @internal */
275
633
  const flipCauseOption = self => match(self, {
276
- onEmpty: Option_dist_effectOption.some(empty$1),
634
+ onEmpty: Option_dist_effectOption.some(empty),
277
635
  onFail: failureOption => Function_dist_effectFunction.pipe(failureOption, Option_dist_effectOption.map(fail$1)),
278
636
  onDie: defect => Option_dist_effectOption.some(die$1(defect)),
279
637
  onInterrupt: fiberId => Option_dist_effectOption.some(interrupt$1(fiberId)),
@@ -382,8 +740,8 @@ const linearize = self => match(self, {
382
740
 
383
741
  /** @internal */
384
742
  const stripFailures = self => match(self, {
385
- onEmpty: empty$1,
386
- onFail: () => empty$1,
743
+ onEmpty: empty,
744
+ onFail: () => empty,
387
745
  onDie: defect => die$1(defect),
388
746
  onInterrupt: fiberId => interrupt$1(fiberId),
389
747
  onSequential: sequential,
@@ -392,7 +750,7 @@ const stripFailures = self => match(self, {
392
750
 
393
751
  /** @internal */
394
752
  const electFailures = self => match(self, {
395
- onEmpty: empty$1,
753
+ onEmpty: empty,
396
754
  onFail: failure => die$1(failure),
397
755
  onDie: defect => die$1(defect),
398
756
  onInterrupt: fiberId => interrupt$1(fiberId),
@@ -402,7 +760,7 @@ const electFailures = self => match(self, {
402
760
 
403
761
  /** @internal */
404
762
  const stripSomeDefects = /*#__PURE__*/Function_dist_effectFunction.dual(2, (self, pf) => match(self, {
405
- onEmpty: Option_dist_effectOption.some(empty$1),
763
+ onEmpty: Option_dist_effectOption.some(empty),
406
764
  onFail: error => Option_dist_effectOption.some(fail$1(error)),
407
765
  onDie: defect => {
408
766
  const option = pf(defect);
@@ -451,7 +809,7 @@ const map$1 = /*#__PURE__*/Function_dist_effectFunction.dual(2, (self, f) => fla
451
809
 
452
810
  /** @internal */
453
811
  const flatMap$1 = /*#__PURE__*/Function_dist_effectFunction.dual(2, (self, f) => match(self, {
454
- onEmpty: empty$1,
812
+ onEmpty: empty,
455
813
  onFail: error => f(error),
456
814
  onDie: defect => die$1(defect),
457
815
  onInterrupt: fiberId => interrupt$1(fiberId),
@@ -460,7 +818,7 @@ const flatMap$1 = /*#__PURE__*/Function_dist_effectFunction.dual(2, (self, f) =>
460
818
  }));
461
819
 
462
820
  /** @internal */
463
- const flatten$2 = self => flatMap$1(self, Function_dist_effectFunction.identity);
821
+ const flatten$1 = self => flatMap$1(self, Function_dist_effectFunction.identity);
464
822
 
465
823
  // -----------------------------------------------------------------------------
466
824
  // Equality
@@ -471,7 +829,7 @@ const contains = /*#__PURE__*/Function_dist_effectFunction.dual(2, (self, that)
471
829
  if (that._tag === OP_EMPTY || self === that) {
472
830
  return true;
473
831
  }
474
- return reduce$1(self, false, (accumulator, cause) => {
832
+ return reduce(self, false, (accumulator, cause) => {
475
833
  return Option_dist_effectOption.some(accumulator || causeEquals(cause, that));
476
834
  });
477
835
  });
@@ -481,11 +839,11 @@ const causeEquals = (left, right) => {
481
839
  let leftStack = Chunk_dist_effectChunk.of(left);
482
840
  let rightStack = Chunk_dist_effectChunk.of(right);
483
841
  while (Chunk_dist_effectChunk.isNonEmpty(leftStack) && Chunk_dist_effectChunk.isNonEmpty(rightStack)) {
484
- const [leftParallel, leftSequential] = Function_dist_effectFunction.pipe(Chunk_dist_effectChunk.headNonEmpty(leftStack), reduce$1([HashSet_dist_effectHashSet.empty(), Chunk_dist_effectChunk.empty()], ([parallel, sequential], cause) => {
842
+ const [leftParallel, leftSequential] = Function_dist_effectFunction.pipe(Chunk_dist_effectChunk.headNonEmpty(leftStack), reduce([HashSet_dist_effectHashSet.empty(), Chunk_dist_effectChunk.empty()], ([parallel, sequential], cause) => {
485
843
  const [par, seq] = evaluateCause(cause);
486
844
  return Option_dist_effectOption.some([Function_dist_effectFunction.pipe(parallel, HashSet_dist_effectHashSet.union(par)), Function_dist_effectFunction.pipe(sequential, Chunk_dist_effectChunk.appendAll(seq))]);
487
845
  }));
488
- const [rightParallel, rightSequential] = Function_dist_effectFunction.pipe(Chunk_dist_effectChunk.headNonEmpty(rightStack), reduce$1([HashSet_dist_effectHashSet.empty(), Chunk_dist_effectChunk.empty()], ([parallel, sequential], cause) => {
846
+ const [rightParallel, rightSequential] = Function_dist_effectFunction.pipe(Chunk_dist_effectChunk.headNonEmpty(rightStack), reduce([HashSet_dist_effectHashSet.empty(), Chunk_dist_effectChunk.empty()], ([parallel, sequential], cause) => {
489
847
  const [par, seq] = evaluateCause(cause);
490
848
  return Option_dist_effectOption.some([Function_dist_effectFunction.pipe(parallel, HashSet_dist_effectHashSet.union(par)), Function_dist_effectFunction.pipe(sequential, Chunk_dist_effectChunk.appendAll(seq))]);
491
849
  }));
@@ -674,792 +1032,434 @@ const evaluateCause = self => {
674
1032
  default:
675
1033
  {
676
1034
  _sequential = Function_dist_effectFunction.pipe(_sequential, Chunk_dist_effectChunk.prepend(cause.right));
677
- cause = cause.left;
678
- break;
679
- }
680
- }
681
- break;
682
- }
683
- case OP_PARALLEL:
684
- {
685
- stack.push(cause.right);
686
- cause = cause.left;
687
- break;
688
- }
689
- }
690
- }
691
- throw new Error("BUG: Cause.evaluateCauseLoop - please report an issue at https://github.com/Effect-TS/io/issues");
692
- };
693
-
694
- // -----------------------------------------------------------------------------
695
- // Reducing
696
- // -----------------------------------------------------------------------------
697
-
698
- /** @internal */
699
- const SizeCauseReducer = {
700
- emptyCase: () => 0,
701
- failCase: () => 1,
702
- dieCase: () => 1,
703
- interruptCase: () => 1,
704
- sequentialCase: (_, left, right) => left + right,
705
- parallelCase: (_, left, right) => left + right
706
- };
707
-
708
- /** @internal */
709
- const IsInterruptedOnlyCauseReducer = {
710
- emptyCase: Function_dist_effectFunction.constTrue,
711
- failCase: Function_dist_effectFunction.constFalse,
712
- dieCase: Function_dist_effectFunction.constFalse,
713
- interruptCase: Function_dist_effectFunction.constTrue,
714
- sequentialCase: (_, left, right) => left && right,
715
- parallelCase: (_, left, right) => left && right
716
- };
717
-
718
- /** @internal */
719
- const FilterCauseReducer = predicate => ({
720
- emptyCase: () => empty$1,
721
- failCase: (_, error) => fail$1(error),
722
- dieCase: (_, defect) => die$1(defect),
723
- interruptCase: (_, fiberId) => interrupt$1(fiberId),
724
- sequentialCase: (_, left, right) => {
725
- if (predicate(left)) {
726
- if (predicate(right)) {
727
- return sequential(left, right);
728
- }
729
- return left;
730
- }
731
- if (predicate(right)) {
732
- return right;
733
- }
734
- return empty$1;
735
- },
736
- parallelCase: (_, left, right) => {
737
- if (predicate(left)) {
738
- if (predicate(right)) {
739
- return parallel(left, right);
740
- }
741
- return left;
742
- }
743
- if (predicate(right)) {
744
- return right;
745
- }
746
- return empty$1;
747
- }
748
- });
749
-
750
- /** @internal */
751
-
752
- const OP_SEQUENTIAL_CASE = "SequentialCase";
753
- const OP_PARALLEL_CASE = "ParallelCase";
754
-
755
- /** @internal */
756
-
757
- /** @internal */
758
-
759
- /** @internal */
760
- const match = /*#__PURE__*/Function_dist_effectFunction.dual(2, (self, {
761
- onDie,
762
- onEmpty,
763
- onFail,
764
- onInterrupt,
765
- onParallel,
766
- onSequential
767
- }) => {
768
- return reduceWithContext(self, void 0, {
769
- emptyCase: () => onEmpty,
770
- failCase: (_, error) => onFail(error),
771
- dieCase: (_, defect) => onDie(defect),
772
- interruptCase: (_, fiberId) => onInterrupt(fiberId),
773
- sequentialCase: (_, left, right) => onSequential(left, right),
774
- parallelCase: (_, left, right) => onParallel(left, right)
775
- });
776
- });
777
-
778
- /** @internal */
779
- const reduce$1 = /*#__PURE__*/Function_dist_effectFunction.dual(3, (self, zero, pf) => {
780
- let accumulator = zero;
781
- let cause = self;
782
- const causes = [];
783
- while (cause !== undefined) {
784
- const option = pf(accumulator, cause);
785
- accumulator = Option_dist_effectOption.isSome(option) ? option.value : accumulator;
786
- switch (cause._tag) {
787
- case OP_SEQUENTIAL:
788
- {
789
- causes.push(cause.right);
790
- cause = cause.left;
791
- break;
792
- }
793
- case OP_PARALLEL:
794
- {
795
- causes.push(cause.right);
796
- cause = cause.left;
797
- break;
798
- }
799
- default:
800
- {
801
- cause = undefined;
802
- break;
803
- }
804
- }
805
- if (cause === undefined && causes.length > 0) {
806
- cause = causes.pop();
807
- }
808
- }
809
- return accumulator;
810
- });
811
-
812
- /** @internal */
813
- const reduceWithContext = /*#__PURE__*/Function_dist_effectFunction.dual(3, (self, context, reducer) => {
814
- const input = [self];
815
- const output = [];
816
- while (input.length > 0) {
817
- const cause = input.pop();
818
- switch (cause._tag) {
819
- case OP_EMPTY:
820
- {
821
- output.push(Either_dist_effectEither.right(reducer.emptyCase(context)));
822
- break;
823
- }
824
- case OP_FAIL:
825
- {
826
- output.push(Either_dist_effectEither.right(reducer.failCase(context, cause.error)));
827
- break;
828
- }
829
- case OP_DIE:
830
- {
831
- output.push(Either_dist_effectEither.right(reducer.dieCase(context, cause.defect)));
832
- break;
833
- }
834
- case OP_INTERRUPT:
835
- {
836
- output.push(Either_dist_effectEither.right(reducer.interruptCase(context, cause.fiberId)));
837
- break;
838
- }
839
- case OP_SEQUENTIAL:
840
- {
841
- input.push(cause.right);
842
- input.push(cause.left);
843
- output.push(Either_dist_effectEither.left({
844
- _tag: OP_SEQUENTIAL_CASE
845
- }));
846
- break;
847
- }
848
- case OP_PARALLEL:
849
- {
850
- input.push(cause.right);
851
- input.push(cause.left);
852
- output.push(Either_dist_effectEither.left({
853
- _tag: OP_PARALLEL_CASE
854
- }));
855
- break;
856
- }
857
- }
858
- }
859
- const accumulator = [];
860
- while (output.length > 0) {
861
- const either = output.pop();
862
- switch (either._tag) {
863
- case "Left":
864
- {
865
- switch (either.left._tag) {
866
- case OP_SEQUENTIAL_CASE:
867
- {
868
- const left = accumulator.pop();
869
- const right = accumulator.pop();
870
- const value = reducer.sequentialCase(context, left, right);
871
- accumulator.push(value);
872
- break;
873
- }
874
- case OP_PARALLEL_CASE:
875
- {
876
- const left = accumulator.pop();
877
- const right = accumulator.pop();
878
- const value = reducer.parallelCase(context, left, right);
879
- accumulator.push(value);
880
- break;
881
- }
882
- }
883
- break;
884
- }
885
- case "Right":
886
- {
887
- accumulator.push(either.right);
888
- break;
889
- }
890
- }
891
- }
892
- if (accumulator.length === 0) {
893
- throw new Error("BUG: Cause.reduceWithContext - please report an issue at https://github.com/Effect-TS/io/issues");
894
- }
895
- return accumulator.pop();
896
- });
897
-
898
- // -----------------------------------------------------------------------------
899
- // Errors
900
- // -----------------------------------------------------------------------------
901
-
902
- const makeException = (proto, tag) => {
903
- const _tag = {
904
- value: tag,
905
- enumerable: true
906
- };
907
- const protoWithToString = {
908
- ...proto,
909
- toString() {
910
- return `${this._tag}: ${this.message}`;
911
- }
912
- };
913
- return message => Object.create(protoWithToString, {
914
- _tag,
915
- message: {
916
- value: message,
917
- enumerable: true
1035
+ cause = cause.left;
1036
+ break;
1037
+ }
1038
+ }
1039
+ break;
1040
+ }
1041
+ case OP_PARALLEL:
1042
+ {
1043
+ stack.push(cause.right);
1044
+ cause = cause.left;
1045
+ break;
1046
+ }
918
1047
  }
919
- });
920
- };
921
-
922
- /** @internal */
923
- const RuntimeExceptionTypeId = /*#__PURE__*/Symbol.for("effect/Cause/errors/RuntimeException");
924
-
925
- /** @internal */
926
- const RuntimeException = /*#__PURE__*/makeException({
927
- [RuntimeExceptionTypeId]: RuntimeExceptionTypeId
928
- }, "RuntimeException");
929
-
930
- /** @internal */
931
- const isRuntimeException = u => {
932
- return typeof u === "object" && u != null && RuntimeExceptionTypeId in u;
933
- };
934
-
935
- /** @internal */
936
- const InterruptedExceptionTypeId = /*#__PURE__*/Symbol.for("effect/Cause/errors/InterruptedException");
937
-
938
- /** @internal */
939
- const InterruptedException = /*#__PURE__*/makeException({
940
- [InterruptedExceptionTypeId]: InterruptedExceptionTypeId
941
- }, "InterruptedException");
942
-
943
- /** @internal */
944
- const isInterruptedException = u => {
945
- return typeof u === "object" && u != null && InterruptedExceptionTypeId in u;
946
- };
947
-
948
- /** @internal */
949
- const IllegalArgumentExceptionTypeId = /*#__PURE__*/Symbol.for("effect/Cause/errors/IllegalArgument");
950
-
951
- /** @internal */
952
- const IllegalArgumentException = /*#__PURE__*/makeException({
953
- [IllegalArgumentExceptionTypeId]: IllegalArgumentExceptionTypeId
954
- }, "IllegalArgumentException");
955
-
956
- /** @internal */
957
- const isIllegalArgumentException = u => {
958
- return typeof u === "object" && u != null && IllegalArgumentExceptionTypeId in u;
1048
+ }
1049
+ throw new Error("BUG: Cause.evaluateCauseLoop - please report an issue at https://github.com/Effect-TS/io/issues");
959
1050
  };
960
1051
 
961
- /** @internal */
962
- const NoSuchElementExceptionTypeId = /*#__PURE__*/Symbol.for("effect/Cause/errors/NoSuchElement");
963
-
964
- /** @internal */
965
- const NoSuchElementException = /*#__PURE__*/makeException({
966
- [NoSuchElementExceptionTypeId]: NoSuchElementExceptionTypeId
967
- }, "NoSuchElementException");
1052
+ // -----------------------------------------------------------------------------
1053
+ // Reducing
1054
+ // -----------------------------------------------------------------------------
968
1055
 
969
1056
  /** @internal */
970
- const isNoSuchElementException = u => {
971
- return typeof u === "object" && u != null && NoSuchElementExceptionTypeId in u;
1057
+ const SizeCauseReducer = {
1058
+ emptyCase: () => 0,
1059
+ failCase: () => 1,
1060
+ dieCase: () => 1,
1061
+ interruptCase: () => 1,
1062
+ sequentialCase: (_, left, right) => left + right,
1063
+ parallelCase: (_, left, right) => left + right
972
1064
  };
973
1065
 
974
1066
  /** @internal */
975
- const InvalidHubCapacityExceptionTypeId = /*#__PURE__*/Symbol.for("effect/Cause/errors/InvalidHubCapacityException");
976
-
977
- /** @internal */
978
- const InvalidHubCapacityException = /*#__PURE__*/makeException({
979
- [InvalidHubCapacityExceptionTypeId]: InvalidHubCapacityExceptionTypeId
980
- }, "InvalidHubCapacityException");
981
-
982
- // -----------------------------------------------------------------------------
983
- // Pretty Printing
984
- // -----------------------------------------------------------------------------
985
-
986
- const filterStack = stack => {
987
- const lines = stack.split("\n");
988
- const out = [];
989
- for (let i = 0; i < lines.length; i++) {
990
- if (lines[i].includes("EffectPrimitive") || lines[i].includes("Generator.next") || lines[i].includes("FiberRuntime")) {
991
- return out.join("\n");
992
- } else {
993
- out.push(lines[i]);
994
- }
995
- }
996
- return out.join("\n");
1067
+ const IsInterruptedOnlyCauseReducer = {
1068
+ emptyCase: Function_dist_effectFunction.constTrue,
1069
+ failCase: Function_dist_effectFunction.constFalse,
1070
+ dieCase: Function_dist_effectFunction.constFalse,
1071
+ interruptCase: Function_dist_effectFunction.constTrue,
1072
+ sequentialCase: (_, left, right) => left && right,
1073
+ parallelCase: (_, left, right) => left && right
997
1074
  };
998
1075
 
999
1076
  /** @internal */
1000
- const pretty = cause => {
1001
- if (isInterruptedOnly(cause)) {
1002
- return "All fibers interrupted without errors.";
1003
- }
1004
- const final = prettyErrors(cause).map(e => {
1005
- let message = e.message;
1006
- if (e.stack) {
1007
- message += `\r\n${filterStack(e.stack)}`;
1008
- }
1009
- if (e.span) {
1010
- let current = e.span;
1011
- let i = 0;
1012
- while (current && current._tag === "Span" && i < 10) {
1013
- message += `\r\n at ${current.name}`;
1014
- current = Option_dist_effectOption.getOrUndefined(current.parent);
1015
- i++;
1077
+ const FilterCauseReducer = predicate => ({
1078
+ emptyCase: () => empty,
1079
+ failCase: (_, error) => fail$1(error),
1080
+ dieCase: (_, defect) => die$1(defect),
1081
+ interruptCase: (_, fiberId) => interrupt$1(fiberId),
1082
+ sequentialCase: (_, left, right) => {
1083
+ if (predicate(left)) {
1084
+ if (predicate(right)) {
1085
+ return sequential(left, right);
1016
1086
  }
1087
+ return left;
1017
1088
  }
1018
- return message;
1019
- }).join("\r\n");
1020
- return final;
1021
- };
1022
- class PrettyError {
1023
- constructor(message, stack, span) {
1024
- this.message = message;
1025
- this.stack = stack;
1026
- this.span = span;
1027
- }
1028
- toJSON() {
1029
- const out = {
1030
- message: this.message
1031
- };
1032
- if (this.stack) {
1033
- out.stack = this.stack;
1034
- }
1035
- if (this.span) {
1036
- out.span = this.span;
1089
+ if (predicate(right)) {
1090
+ return right;
1037
1091
  }
1038
- return out;
1039
- }
1040
- }
1041
-
1042
- /**
1043
- * A utility function for generating human-readable error messages from a generic error of type `unknown`.
1044
- *
1045
- * Rules:
1046
- *
1047
- * 1) If the input `u` is already a string, it's considered a message, and "Error" is added as a prefix.
1048
- * 2) If `u` has a user-defined `toString()` method, it uses that method and adds "Error" as a prefix.
1049
- * 3) If `u` is an object and its only (optional) properties are "name", "message", or "_tag", it constructs
1050
- * an error message based on those properties.
1051
- * 4) Otherwise, it uses `JSON.stringify` to produce a string representation and uses it as the error message,
1052
- * with "Error" added as a prefix.
1053
- *
1054
- * @internal
1055
- */
1056
- const prettyErrorMessage = u => {
1057
- // 1)
1058
- if (typeof u === "string") {
1059
- return `Error: ${u}`;
1060
- }
1061
- // 2)
1062
- if (typeof u === "object" && u != null && "toString" in u && typeof u["toString"] === "function" && u["toString"] !== Object.prototype.toString) {
1063
- return u["toString"]();
1064
- }
1065
- // 3)
1066
- if (typeof u === "object" && u !== null) {
1067
- if ("message" in u && typeof u["message"] === "string") {
1068
- const raw = JSON.parse(JSON.stringify(u));
1069
- const keys = new Set(Object.keys(raw));
1070
- keys.delete("name");
1071
- keys.delete("message");
1072
- keys.delete("_tag");
1073
- if (keys.size === 0) {
1074
- const name = "name" in u && typeof u.name === "string" ? u.name : "Error";
1075
- const tag = "_tag" in u && typeof u["_tag"] === "string" ? `(${u._tag})` : ``;
1076
- return `${name}${tag}: ${u.message}`;
1092
+ return empty;
1093
+ },
1094
+ parallelCase: (_, left, right) => {
1095
+ if (predicate(left)) {
1096
+ if (predicate(right)) {
1097
+ return parallel(left, right);
1077
1098
  }
1099
+ return left;
1078
1100
  }
1101
+ if (predicate(right)) {
1102
+ return right;
1103
+ }
1104
+ return empty;
1079
1105
  }
1080
- // 4)
1081
- return `Error: ${JSON.stringify(u)}`;
1082
- };
1083
- const spanSymbol$1 = /*#__PURE__*/Symbol.for("effect/SpanAnnotation");
1084
- const defaultRenderError = error => {
1085
- const span = typeof error === "object" && error !== null && spanSymbol$1 in error && error[spanSymbol$1];
1086
- if (typeof error === "object" && error !== null && error instanceof Error) {
1087
- return new PrettyError(prettyErrorMessage(error), error.stack?.split("\n").filter(_ => !_.startsWith("Error")).join("\n"), span);
1088
- }
1089
- return new PrettyError(prettyErrorMessage(error), void 0, span);
1090
- };
1091
-
1092
- /** @internal */
1093
- const prettyErrors = cause => reduceWithContext(cause, void 0, {
1094
- emptyCase: () => [],
1095
- dieCase: (_, unknownError) => {
1096
- return [defaultRenderError(unknownError)];
1097
- },
1098
- failCase: (_, error) => {
1099
- return [defaultRenderError(error)];
1100
- },
1101
- interruptCase: () => [],
1102
- parallelCase: (_, l, r) => [...l, ...r],
1103
- sequentialCase: (_, l, r) => [...l, ...r]
1104
1106
  });
1105
1107
 
1106
1108
  /** @internal */
1107
- const empty = {
1108
- _tag: "Empty"
1109
- };
1110
-
1111
- /**
1112
- * Combines this collection of blocked requests with the specified collection
1113
- * of blocked requests, in parallel.
1114
- *
1115
- * @internal
1116
- */
1117
- const par = (self, that) => ({
1118
- _tag: "Par",
1119
- left: self,
1120
- right: that
1121
- });
1122
-
1123
- /**
1124
- * Combines this collection of blocked requests with the specified collection
1125
- * of blocked requests, in sequence.
1126
- *
1127
- * @internal
1128
- */
1129
- const seq = (self, that) => ({
1130
- _tag: "Seq",
1131
- left: self,
1132
- right: that
1133
- });
1134
1109
 
1135
- /**
1136
- * Constructs a collection of blocked requests from the specified blocked
1137
- * request and data source.
1138
- *
1139
- * @internal
1140
- */
1141
- const single = (dataSource, blockedRequest) => ({
1142
- _tag: "Single",
1143
- dataSource,
1144
- blockedRequest
1145
- });
1110
+ const OP_SEQUENTIAL_CASE = "SequentialCase";
1111
+ const OP_PARALLEL_CASE = "ParallelCase";
1146
1112
 
1147
1113
  /** @internal */
1148
- const MapRequestResolversReducer = f => ({
1149
- emptyCase: () => empty,
1150
- parCase: (left, right) => par(left, right),
1151
- seqCase: (left, right) => seq(left, right),
1152
- singleCase: (dataSource, blockedRequest) => single(f(dataSource), blockedRequest)
1114
+
1115
+ /** @internal */
1116
+
1117
+ /** @internal */
1118
+ const match = /*#__PURE__*/Function_dist_effectFunction.dual(2, (self, {
1119
+ onDie,
1120
+ onEmpty,
1121
+ onFail,
1122
+ onInterrupt,
1123
+ onParallel,
1124
+ onSequential
1125
+ }) => {
1126
+ return reduceWithContext(self, void 0, {
1127
+ emptyCase: () => onEmpty,
1128
+ failCase: (_, error) => onFail(error),
1129
+ dieCase: (_, defect) => onDie(defect),
1130
+ interruptCase: (_, fiberId) => onInterrupt(fiberId),
1131
+ sequentialCase: (_, left, right) => onSequential(left, right),
1132
+ parallelCase: (_, left, right) => onParallel(left, right)
1133
+ });
1153
1134
  });
1154
- /**
1155
- * Transforms all data sources with the specified data source aspect, which
1156
- * can change the environment type of data sources but must preserve the
1157
- * request type of each data source.
1158
- *
1159
- * @internal
1160
- */
1161
- const mapRequestResolvers = (self, f) => reduce(self, MapRequestResolversReducer(f));
1162
1135
 
1163
- /**
1164
- * Folds over the cases of this collection of blocked requests with the
1165
- * specified functions.
1166
- *
1167
- * @internal
1168
- */
1169
- const reduce = (self, reducer) => {
1170
- let input = List_dist_effectList.of(self);
1171
- let output = List_dist_effectList.empty();
1172
- while (List_dist_effectList.isCons(input)) {
1173
- const current = input.head;
1174
- switch (current._tag) {
1175
- case "Empty":
1176
- {
1177
- output = List_dist_effectList.cons(Either_dist_effectEither.right(reducer.emptyCase()), output);
1178
- input = input.tail;
1179
- break;
1180
- }
1181
- case "Par":
1136
+ /** @internal */
1137
+ const reduce = /*#__PURE__*/Function_dist_effectFunction.dual(3, (self, zero, pf) => {
1138
+ let accumulator = zero;
1139
+ let cause = self;
1140
+ const causes = [];
1141
+ while (cause !== undefined) {
1142
+ const option = pf(accumulator, cause);
1143
+ accumulator = Option_dist_effectOption.isSome(option) ? option.value : accumulator;
1144
+ switch (cause._tag) {
1145
+ case OP_SEQUENTIAL:
1182
1146
  {
1183
- output = List_dist_effectList.cons(Either_dist_effectEither.left({
1184
- _tag: "ParCase"
1185
- }), output);
1186
- input = List_dist_effectList.cons(current.left, List_dist_effectList.cons(current.right, input.tail));
1147
+ causes.push(cause.right);
1148
+ cause = cause.left;
1187
1149
  break;
1188
1150
  }
1189
- case "Seq":
1151
+ case OP_PARALLEL:
1190
1152
  {
1191
- output = List_dist_effectList.cons(Either_dist_effectEither.left({
1192
- _tag: "SeqCase"
1193
- }), output);
1194
- input = List_dist_effectList.cons(current.left, List_dist_effectList.cons(current.right, input.tail));
1153
+ causes.push(cause.right);
1154
+ cause = cause.left;
1195
1155
  break;
1196
1156
  }
1197
- case "Single":
1157
+ default:
1198
1158
  {
1199
- const result = reducer.singleCase(current.dataSource, current.blockedRequest);
1200
- output = List_dist_effectList.cons(Either_dist_effectEither.right(result), output);
1201
- input = input.tail;
1159
+ cause = undefined;
1202
1160
  break;
1203
1161
  }
1204
1162
  }
1163
+ if (cause === undefined && causes.length > 0) {
1164
+ cause = causes.pop();
1165
+ }
1205
1166
  }
1206
- const result = List_dist_effectList.reduce(output, List_dist_effectList.empty(), (acc, current) => {
1207
- switch (current._tag) {
1208
- case "Left":
1167
+ return accumulator;
1168
+ });
1169
+
1170
+ /** @internal */
1171
+ const reduceWithContext = /*#__PURE__*/Function_dist_effectFunction.dual(3, (self, context, reducer) => {
1172
+ const input = [self];
1173
+ const output = [];
1174
+ while (input.length > 0) {
1175
+ const cause = input.pop();
1176
+ switch (cause._tag) {
1177
+ case OP_EMPTY:
1209
1178
  {
1210
- const left = List_dist_effectList.unsafeHead(acc);
1211
- const right = List_dist_effectList.unsafeHead(List_dist_effectList.unsafeTail(acc));
1212
- const tail = List_dist_effectList.unsafeTail(List_dist_effectList.unsafeTail(acc));
1213
- switch (current.left._tag) {
1214
- case "ParCase":
1215
- {
1216
- return List_dist_effectList.cons(reducer.parCase(left, right), tail);
1217
- }
1218
- case "SeqCase":
1219
- {
1220
- return List_dist_effectList.cons(reducer.seqCase(left, right), tail);
1221
- }
1222
- }
1179
+ output.push(Either_dist_effectEither.right(reducer.emptyCase(context)));
1180
+ break;
1223
1181
  }
1224
- case "Right":
1182
+ case OP_FAIL:
1225
1183
  {
1226
- return List_dist_effectList.cons(current.right, acc);
1184
+ output.push(Either_dist_effectEither.right(reducer.failCase(context, cause.error)));
1185
+ break;
1227
1186
  }
1228
- }
1229
- });
1230
- if (List_dist_effectList.isNil(result)) {
1231
- throw new Error("BUG: BlockedRequests.reduce - please report an issue at https://github.com/Effect-TS/query/issues");
1232
- }
1233
- return result.head;
1234
- };
1235
-
1236
- /**
1237
- * Flattens a collection of blocked requests into a collection of pipelined
1238
- * and batched requests that can be submitted for execution.
1239
- *
1240
- * @internal
1241
- */
1242
- const flatten$1 = self => {
1243
- let current = List_dist_effectList.of(self);
1244
- let updated = List_dist_effectList.empty();
1245
- // eslint-disable-next-line no-constant-condition
1246
- while (1) {
1247
- const [parallel, sequential] = List_dist_effectList.reduce(current, [parallelCollectionEmpty(), List_dist_effectList.empty()], ([parallel, sequential], blockedRequest) => {
1248
- const [par, seq] = step$1(blockedRequest);
1249
- return [parallelCollectionCombine(parallel, par), List_dist_effectList.appendAll(sequential, seq)];
1250
- });
1251
- updated = merge(updated, parallel);
1252
- if (List_dist_effectList.isNil(sequential)) {
1253
- return List_dist_effectList.reverse(updated);
1254
- }
1255
- current = sequential;
1256
- }
1257
- throw new Error("BUG: BlockedRequests.flatten - please report an issue at https://github.com/Effect-TS/query/issues");
1258
- };
1259
-
1260
- /**
1261
- * Takes one step in evaluating a collection of blocked requests, returning a
1262
- * collection of blocked requests that can be performed in parallel and a list
1263
- * of blocked requests that must be performed sequentially after those
1264
- * requests.
1265
- */
1266
- const step$1 = requests => {
1267
- let current = requests;
1268
- let parallel = parallelCollectionEmpty();
1269
- let stack = List_dist_effectList.empty();
1270
- let sequential = List_dist_effectList.empty();
1271
- // eslint-disable-next-line no-constant-condition
1272
- while (1) {
1273
- switch (current._tag) {
1274
- case "Empty":
1187
+ case OP_DIE:
1275
1188
  {
1276
- if (List_dist_effectList.isNil(stack)) {
1277
- return [parallel, sequential];
1278
- }
1279
- current = stack.head;
1280
- stack = stack.tail;
1189
+ output.push(Either_dist_effectEither.right(reducer.dieCase(context, cause.defect)));
1281
1190
  break;
1282
1191
  }
1283
- case "Par":
1192
+ case OP_INTERRUPT:
1284
1193
  {
1285
- stack = List_dist_effectList.cons(current.right, stack);
1286
- current = current.left;
1194
+ output.push(Either_dist_effectEither.right(reducer.interruptCase(context, cause.fiberId)));
1287
1195
  break;
1288
1196
  }
1289
- case "Seq":
1197
+ case OP_SEQUENTIAL:
1290
1198
  {
1291
- const left = current.left;
1292
- const right = current.right;
1293
- switch (left._tag) {
1294
- case "Empty":
1295
- {
1296
- current = right;
1297
- break;
1298
- }
1299
- case "Par":
1300
- {
1301
- const l = left.left;
1302
- const r = left.right;
1303
- current = par(seq(l, right), seq(r, right));
1304
- break;
1305
- }
1306
- case "Seq":
1307
- {
1308
- const l = left.left;
1309
- const r = left.right;
1310
- current = seq(l, seq(r, right));
1311
- break;
1312
- }
1313
- case "Single":
1314
- {
1315
- current = left;
1316
- sequential = List_dist_effectList.cons(right, sequential);
1317
- break;
1318
- }
1319
- }
1199
+ input.push(cause.right);
1200
+ input.push(cause.left);
1201
+ output.push(Either_dist_effectEither.left({
1202
+ _tag: OP_SEQUENTIAL_CASE
1203
+ }));
1320
1204
  break;
1321
1205
  }
1322
- case "Single":
1206
+ case OP_PARALLEL:
1323
1207
  {
1324
- parallel = parallelCollectionCombine(parallel, parallelCollectionMake(current.dataSource, current.blockedRequest));
1325
- if (List_dist_effectList.isNil(stack)) {
1326
- return [parallel, sequential];
1327
- }
1328
- current = stack.head;
1329
- stack = stack.tail;
1208
+ input.push(cause.right);
1209
+ input.push(cause.left);
1210
+ output.push(Either_dist_effectEither.left({
1211
+ _tag: OP_PARALLEL_CASE
1212
+ }));
1330
1213
  break;
1331
1214
  }
1332
1215
  }
1333
1216
  }
1334
- throw new Error("BUG: BlockedRequests.step - please report an issue at https://github.com/Effect-TS/query/issues");
1335
- };
1336
-
1337
- /**
1338
- * Merges a collection of requests that must be executed sequentially with a
1339
- * collection of requests that can be executed in parallel. If the collections
1340
- * are both from the same single data source then the requests can be
1341
- * pipelined while preserving ordering guarantees.
1342
- */
1343
- const merge = (sequential, parallel) => {
1344
- if (List_dist_effectList.isNil(sequential)) {
1345
- return List_dist_effectList.of(parallelCollectionToSequentialCollection(parallel));
1346
- }
1347
- if (parallelCollectionIsEmpty(parallel)) {
1348
- return sequential;
1217
+ const accumulator = [];
1218
+ while (output.length > 0) {
1219
+ const either = output.pop();
1220
+ switch (either._tag) {
1221
+ case "Left":
1222
+ {
1223
+ switch (either.left._tag) {
1224
+ case OP_SEQUENTIAL_CASE:
1225
+ {
1226
+ const left = accumulator.pop();
1227
+ const right = accumulator.pop();
1228
+ const value = reducer.sequentialCase(context, left, right);
1229
+ accumulator.push(value);
1230
+ break;
1231
+ }
1232
+ case OP_PARALLEL_CASE:
1233
+ {
1234
+ const left = accumulator.pop();
1235
+ const right = accumulator.pop();
1236
+ const value = reducer.parallelCase(context, left, right);
1237
+ accumulator.push(value);
1238
+ break;
1239
+ }
1240
+ }
1241
+ break;
1242
+ }
1243
+ case "Right":
1244
+ {
1245
+ accumulator.push(either.right);
1246
+ break;
1247
+ }
1248
+ }
1349
1249
  }
1350
- const seqHeadKeys = sequentialCollectionKeys(sequential.head);
1351
- const parKeys = parallelCollectionKeys(parallel);
1352
- if (seqHeadKeys.length === 1 && parKeys.length === 1 && Equal_dist_effectEqual.equals(seqHeadKeys[0], parKeys[0])) {
1353
- return List_dist_effectList.cons(sequentialCollectionCombine(sequential.head, parallelCollectionToSequentialCollection(parallel)), sequential.tail);
1250
+ if (accumulator.length === 0) {
1251
+ throw new Error("BUG: Cause.reduceWithContext - please report an issue at https://github.com/Effect-TS/io/issues");
1354
1252
  }
1355
- return List_dist_effectList.cons(parallelCollectionToSequentialCollection(parallel), sequential);
1356
- };
1357
-
1358
- //
1359
- // circular
1360
- //
1361
-
1362
- /** @internal */
1363
- const EntryTypeId = /*#__PURE__*/Symbol.for("effect/RequestBlock/Entry");
1253
+ return accumulator.pop();
1254
+ });
1364
1255
 
1365
- /** @internal */
1366
- class EntryImpl {
1367
- [EntryTypeId] = blockedRequestVariance;
1368
- constructor(request, result, listeners, ownerId, state) {
1369
- this.request = request;
1370
- this.result = result;
1371
- this.listeners = listeners;
1372
- this.ownerId = ownerId;
1373
- this.state = state;
1374
- }
1375
- }
1256
+ // -----------------------------------------------------------------------------
1257
+ // Errors
1258
+ // -----------------------------------------------------------------------------
1376
1259
 
1377
- /** @internal */
1378
- const blockedRequestVariance = {
1379
- _R: _ => _
1260
+ const makeException = (proto, tag) => {
1261
+ const _tag = {
1262
+ value: tag,
1263
+ enumerable: true
1264
+ };
1265
+ const protoWithToString = {
1266
+ ...proto,
1267
+ toString() {
1268
+ return `${this._tag}: ${this.message}`;
1269
+ }
1270
+ };
1271
+ return message => Object.create(protoWithToString, {
1272
+ _tag,
1273
+ message: {
1274
+ value: message,
1275
+ enumerable: true
1276
+ }
1277
+ });
1380
1278
  };
1381
1279
 
1382
1280
  /** @internal */
1383
- const isEntry = u => {
1384
- return typeof u === "object" && u != null && EntryTypeId in u;
1385
- };
1281
+ const RuntimeExceptionTypeId = /*#__PURE__*/Symbol.for("effect/Cause/errors/RuntimeException");
1386
1282
 
1387
1283
  /** @internal */
1388
- const makeEntry = options => new EntryImpl(options.request, options.result, options.listeners, options.ownerId, options.state);
1284
+ const RuntimeException = /*#__PURE__*/makeException({
1285
+ [RuntimeExceptionTypeId]: RuntimeExceptionTypeId
1286
+ }, "RuntimeException");
1389
1287
 
1390
1288
  /** @internal */
1391
- const RequestBlockParallelTypeId = /*#__PURE__*/Symbol.for("effect/RequestBlock/RequestBlockParallel");
1392
- const parallelVariance = {
1393
- _R: _ => _
1289
+ const isRuntimeException = u => {
1290
+ return typeof u === "object" && u != null && RuntimeExceptionTypeId in u;
1394
1291
  };
1395
- class ParallelImpl {
1396
- [RequestBlockParallelTypeId] = parallelVariance;
1397
- constructor(map) {
1398
- this.map = map;
1399
- }
1400
- }
1401
-
1402
- /** @internal */
1403
- const parallelCollectionEmpty = () => new ParallelImpl(HashMap_dist_effectHashMap.empty());
1404
1292
 
1405
1293
  /** @internal */
1406
- const parallelCollectionMake = (dataSource, blockedRequest) => new ParallelImpl(HashMap_dist_effectHashMap.make([dataSource, Array.of(blockedRequest)]));
1407
-
1408
- /** @internal */
1409
- const parallelCollectionCombine = (self, that) => new ParallelImpl(HashMap_dist_effectHashMap.reduce(self.map, that.map, (map, value, key) => HashMap_dist_effectHashMap.set(map, key, Option_dist_effectOption.match(HashMap_dist_effectHashMap.get(map, key), {
1410
- onNone: () => value,
1411
- onSome: a => [...a, ...value]
1412
- }))));
1294
+ const InterruptedExceptionTypeId = /*#__PURE__*/Symbol.for("effect/Cause/errors/InterruptedException");
1413
1295
 
1414
1296
  /** @internal */
1415
- const parallelCollectionIsEmpty = self => HashMap_dist_effectHashMap.isEmpty(self.map);
1297
+ const InterruptedException = /*#__PURE__*/makeException({
1298
+ [InterruptedExceptionTypeId]: InterruptedExceptionTypeId
1299
+ }, "InterruptedException");
1416
1300
 
1417
1301
  /** @internal */
1418
- const parallelCollectionKeys = self => Array.from(HashMap_dist_effectHashMap.keys(self.map));
1302
+ const isInterruptedException = u => {
1303
+ return typeof u === "object" && u != null && InterruptedExceptionTypeId in u;
1304
+ };
1419
1305
 
1420
1306
  /** @internal */
1421
- const parallelCollectionToSequentialCollection = self => sequentialCollectionMake(HashMap_dist_effectHashMap.map(self.map, x => Array.of(x)));
1307
+ const IllegalArgumentExceptionTypeId = /*#__PURE__*/Symbol.for("effect/Cause/errors/IllegalArgument");
1422
1308
 
1423
1309
  /** @internal */
1424
- const SequentialCollectionTypeId = /*#__PURE__*/Symbol.for("effect/RequestBlock/RequestBlockSequential");
1310
+ const IllegalArgumentException = /*#__PURE__*/makeException({
1311
+ [IllegalArgumentExceptionTypeId]: IllegalArgumentExceptionTypeId
1312
+ }, "IllegalArgumentException");
1425
1313
 
1426
1314
  /** @internal */
1427
- const sequentialVariance = {
1428
- _R: _ => _
1315
+ const isIllegalArgumentException = u => {
1316
+ return typeof u === "object" && u != null && IllegalArgumentExceptionTypeId in u;
1429
1317
  };
1430
- class SequentialImpl {
1431
- [SequentialCollectionTypeId] = sequentialVariance;
1432
- constructor(map) {
1433
- this.map = map;
1434
- }
1435
- }
1436
1318
 
1437
1319
  /** @internal */
1438
- const sequentialCollectionMake = map => new SequentialImpl(map);
1320
+ const NoSuchElementExceptionTypeId = /*#__PURE__*/Symbol.for("effect/Cause/errors/NoSuchElement");
1439
1321
 
1440
1322
  /** @internal */
1441
- const sequentialCollectionCombine = (self, that) => new SequentialImpl(HashMap_dist_effectHashMap.reduce(that.map, self.map, (map, value, key) => HashMap_dist_effectHashMap.set(map, key, Option_dist_effectOption.match(HashMap_dist_effectHashMap.get(map, key), {
1442
- onNone: () => [],
1443
- onSome: a => [...a, ...value]
1444
- }))));
1323
+ const NoSuchElementException = /*#__PURE__*/makeException({
1324
+ [NoSuchElementExceptionTypeId]: NoSuchElementExceptionTypeId
1325
+ }, "NoSuchElementException");
1445
1326
 
1446
1327
  /** @internal */
1447
- const sequentialCollectionKeys = self => Array.from(HashMap_dist_effectHashMap.keys(self.map));
1328
+ const isNoSuchElementException = u => {
1329
+ return typeof u === "object" && u != null && NoSuchElementExceptionTypeId in u;
1330
+ };
1448
1331
 
1449
1332
  /** @internal */
1450
- const sequentialCollectionToChunk = self => Array.from(self.map);
1333
+ const InvalidPubSubCapacityExceptionTypeId = /*#__PURE__*/Symbol.for("effect/Cause/errors/InvalidPubSubCapacityException");
1451
1334
 
1452
1335
  /** @internal */
1336
+ const InvalidPubSubCapacityException = /*#__PURE__*/makeException({
1337
+ [InvalidPubSubCapacityExceptionTypeId]: InvalidPubSubCapacityExceptionTypeId
1338
+ }, "InvalidPubSubCapacityException");
1453
1339
 
1454
- /** @internal */
1340
+ // -----------------------------------------------------------------------------
1341
+ // Pretty Printing
1342
+ // -----------------------------------------------------------------------------
1455
1343
 
1456
- /** @internal */
1344
+ const filterStack = stack => {
1345
+ const lines = stack.split("\n");
1346
+ const out = [];
1347
+ for (let i = 0; i < lines.length; i++) {
1348
+ if (lines[i].includes("EffectPrimitive") || lines[i].includes("Generator.next") || lines[i].includes("FiberRuntime")) {
1349
+ return out.join("\n");
1350
+ } else {
1351
+ out.push(lines[i]);
1352
+ }
1353
+ }
1354
+ return out.join("\n");
1355
+ };
1457
1356
 
1458
1357
  /** @internal */
1358
+ const pretty = cause => {
1359
+ if (isInterruptedOnly(cause)) {
1360
+ return "All fibers interrupted without errors.";
1361
+ }
1362
+ const final = prettyErrors(cause).map(e => {
1363
+ let message = e.message;
1364
+ if (e.stack) {
1365
+ message += `\r\n${filterStack(e.stack)}`;
1366
+ }
1367
+ if (e.span) {
1368
+ let current = e.span;
1369
+ let i = 0;
1370
+ while (current && current._tag === "Span" && i < 10) {
1371
+ message += `\r\n at ${current.name}`;
1372
+ current = Option_dist_effectOption.getOrUndefined(current.parent);
1373
+ i++;
1374
+ }
1375
+ }
1376
+ return message;
1377
+ }).join("\r\n");
1378
+ return final;
1379
+ };
1380
+ class PrettyError {
1381
+ constructor(message, stack, span) {
1382
+ this.message = message;
1383
+ this.stack = stack;
1384
+ this.span = span;
1385
+ }
1386
+ toJSON() {
1387
+ const out = {
1388
+ message: this.message
1389
+ };
1390
+ if (this.stack) {
1391
+ out.stack = this.stack;
1392
+ }
1393
+ if (this.span) {
1394
+ out.span = this.span;
1395
+ }
1396
+ return out;
1397
+ }
1398
+ }
1459
1399
 
1460
- /** @internal */
1400
+ /**
1401
+ * A utility function for generating human-readable error messages from a generic error of type `unknown`.
1402
+ *
1403
+ * Rules:
1404
+ *
1405
+ * 1) If the input `u` is already a string, it's considered a message, and "Error" is added as a prefix.
1406
+ * 2) If `u` has a user-defined `toString()` method, it uses that method and adds "Error" as a prefix.
1407
+ * 3) If `u` is an object and its only (optional) properties are "name", "message", or "_tag", it constructs
1408
+ * an error message based on those properties.
1409
+ * 4) Otherwise, it uses `JSON.stringify` to produce a string representation and uses it as the error message,
1410
+ * with "Error" added as a prefix.
1411
+ *
1412
+ * @internal
1413
+ */
1414
+ const prettyErrorMessage = u => {
1415
+ // 1)
1416
+ if (typeof u === "string") {
1417
+ return `Error: ${u}`;
1418
+ }
1419
+ // 2)
1420
+ if (typeof u === "object" && u != null && "toString" in u && typeof u["toString"] === "function" && u["toString"] !== Object.prototype.toString) {
1421
+ return u["toString"]();
1422
+ }
1423
+ // 3)
1424
+ if (typeof u === "object" && u !== null) {
1425
+ if ("message" in u && typeof u["message"] === "string") {
1426
+ const raw = JSON.parse(JSON.stringify(u));
1427
+ const keys = new Set(Object.keys(raw));
1428
+ keys.delete("name");
1429
+ keys.delete("message");
1430
+ keys.delete("_tag");
1431
+ if (keys.size === 0) {
1432
+ const name = "name" in u && typeof u.name === "string" ? u.name : "Error";
1433
+ const tag = "_tag" in u && typeof u["_tag"] === "string" ? `(${u._tag})` : ``;
1434
+ return `${name}${tag}: ${u.message}`;
1435
+ }
1436
+ }
1437
+ }
1438
+ // 4)
1439
+ return `Error: ${JSON.stringify(u)}`;
1440
+ };
1441
+ const spanSymbol$1 = /*#__PURE__*/Symbol.for("effect/SpanAnnotation");
1442
+ const defaultRenderError = error => {
1443
+ const span = typeof error === "object" && error !== null && spanSymbol$1 in error && error[spanSymbol$1];
1444
+ if (typeof error === "object" && error !== null && error instanceof Error) {
1445
+ return new PrettyError(prettyErrorMessage(error), error.stack?.split("\n").filter(_ => !_.startsWith("Error")).join("\n"), span);
1446
+ }
1447
+ return new PrettyError(prettyErrorMessage(error), void 0, span);
1448
+ };
1461
1449
 
1462
1450
  /** @internal */
1451
+ const prettyErrors = cause => reduceWithContext(cause, void 0, {
1452
+ emptyCase: () => [],
1453
+ dieCase: (_, unknownError) => {
1454
+ return [defaultRenderError(unknownError)];
1455
+ },
1456
+ failCase: (_, error) => {
1457
+ return [defaultRenderError(error)];
1458
+ },
1459
+ interruptCase: () => [],
1460
+ parallelCase: (_, l, r) => [...l, ...r],
1461
+ sequentialCase: (_, l, r) => [...l, ...r]
1462
+ });
1463
1463
 
1464
1464
  /** @internal */
1465
1465
  const OP_STATE_PENDING = "Pending";
@@ -2523,9 +2523,9 @@ const isRequestResolver = u => typeof u === "object" && u != null && RequestReso
2523
2523
  const resolverLocally = /*#__PURE__*/Function_dist_effectFunction.dual(3, (use, self, value) => new RequestResolverImpl(requests => fiberRefLocally(use.runAll(requests), self, value), Chunk_dist_effectChunk.make("Locally", use, self, value)));
2524
2524
 
2525
2525
  /** @internal */
2526
- const requestBlockLocally = (self, ref, value) => reduce(self, LocallyReducer(ref, value));
2526
+ const requestBlockLocally = (self, ref, value) => reduce$1(self, LocallyReducer(ref, value));
2527
2527
  const LocallyReducer = (ref, value) => ({
2528
- emptyCase: () => empty,
2528
+ emptyCase: () => empty$1,
2529
2529
  parCase: (left, right) => par(left, right),
2530
2530
  seqCase: (left, right) => seq(left, right),
2531
2531
  singleCase: (dataSource, blockedRequest) => single(resolverLocally(dataSource, ref, value), blockedRequest)
@@ -2638,8 +2638,8 @@ const currentForkScopeOverride = /*#__PURE__*/GlobalValue_dist_effectGlobalValue
2638
2638
  }));
2639
2639
 
2640
2640
  /** @internal */
2641
- const currentInterruptedCause = /*#__PURE__*/GlobalValue_dist_effectGlobalValue.globalValue( /*#__PURE__*/Symbol.for("effect/FiberRef/currentInterruptedCause"), () => fiberRefUnsafeMake(empty$1, {
2642
- fork: () => empty$1,
2641
+ const currentInterruptedCause = /*#__PURE__*/GlobalValue_dist_effectGlobalValue.globalValue( /*#__PURE__*/Symbol.for("effect/FiberRef/currentInterruptedCause"), () => fiberRefUnsafeMake(empty, {
2642
+ fork: () => empty,
2643
2643
  join: (parent, _) => parent
2644
2644
  }));
2645
2645
 
@@ -3233,8 +3233,8 @@ exports.IllegalArgumentException = IllegalArgumentException;
3233
3233
  exports.IllegalArgumentExceptionTypeId = IllegalArgumentExceptionTypeId;
3234
3234
  exports.InterruptedException = InterruptedException;
3235
3235
  exports.InterruptedExceptionTypeId = InterruptedExceptionTypeId;
3236
- exports.InvalidHubCapacityException = InvalidHubCapacityException;
3237
- exports.InvalidHubCapacityExceptionTypeId = InvalidHubCapacityExceptionTypeId;
3236
+ exports.InvalidPubSubCapacityException = InvalidPubSubCapacityException;
3237
+ exports.InvalidPubSubCapacityExceptionTypeId = InvalidPubSubCapacityExceptionTypeId;
3238
3238
  exports.NoSuchElementException = NoSuchElementException;
3239
3239
  exports.NoSuchElementExceptionTypeId = NoSuchElementExceptionTypeId;
3240
3240
  exports.RequestResolverImpl = RequestResolverImpl;
@@ -3245,8 +3245,8 @@ exports.RuntimeExceptionTypeId = RuntimeExceptionTypeId;
3245
3245
  exports.ScopeTypeId = ScopeTypeId;
3246
3246
  exports.acquireUseRelease = acquireUseRelease;
3247
3247
  exports.allLogLevels = allLogLevels;
3248
- exports.as = as;
3249
- exports.as$1 = as$1;
3248
+ exports.as = as$1;
3249
+ exports.as$1 = as;
3250
3250
  exports.asUnit = asUnit;
3251
3251
  exports.async = async;
3252
3252
  exports.asyncEither = asyncEither;
@@ -3302,8 +3302,8 @@ exports.dieMessage = dieMessage;
3302
3302
  exports.dieOption = dieOption;
3303
3303
  exports.dieSync = dieSync;
3304
3304
  exports.either = either;
3305
- exports.empty = empty$1;
3306
- exports.empty$1 = empty;
3305
+ exports.empty = empty;
3306
+ exports.empty$1 = empty$1;
3307
3307
  exports.exit = exit;
3308
3308
  exports.exitAs = exitAs;
3309
3309
  exports.exitAsUnit = exitAsUnit;
@@ -3340,8 +3340,8 @@ exports.exitZipParLeft = exitZipParLeft;
3340
3340
  exports.exitZipParRight = exitZipParRight;
3341
3341
  exports.exitZipRight = exitZipRight;
3342
3342
  exports.exitZipWith = exitZipWith;
3343
- exports.fail = fail;
3344
- exports.fail$1 = fail$1;
3343
+ exports.fail = fail$1;
3344
+ exports.fail$1 = fail;
3345
3345
  exports.failCause = failCause;
3346
3346
  exports.failCauseSync = failCauseSync;
3347
3347
  exports.failSync = failSync;
@@ -3373,19 +3373,19 @@ exports.fiberRefUpdateSome = fiberRefUpdateSome;
3373
3373
  exports.fiberRefUpdateSomeAndGet = fiberRefUpdateSomeAndGet;
3374
3374
  exports.filter = filter;
3375
3375
  exports.find = find;
3376
- exports.flatMap = flatMap;
3377
- exports.flatMap$1 = flatMap$1;
3376
+ exports.flatMap = flatMap$1;
3377
+ exports.flatMap$1 = flatMap;
3378
3378
  exports.flatMapStep = flatMapStep;
3379
- exports.flatten = flatten;
3380
- exports.flatten$1 = flatten$1;
3379
+ exports.flatten = flatten$1;
3380
+ exports.flatten$1 = flatten;
3381
3381
  exports.flatten$2 = flatten$2;
3382
3382
  exports.flip = flip;
3383
3383
  exports.flipCauseOption = flipCauseOption;
3384
3384
  exports.forEachSequential = forEachSequential;
3385
3385
  exports.forEachSequentialDiscard = forEachSequentialDiscard;
3386
3386
  exports.if_ = if_;
3387
- exports.interrupt = interrupt;
3388
- exports.interrupt$1 = interrupt$1;
3387
+ exports.interrupt = interrupt$1;
3388
+ exports.interrupt$1 = interrupt;
3389
3389
  exports.interruptAsFiber = interruptAsFiber;
3390
3390
  exports.interruptFiber = interruptFiber;
3391
3391
  exports.interruptOption = interruptOption;
@@ -3426,8 +3426,8 @@ exports.logLevelTrace = logLevelTrace;
3426
3426
  exports.logLevelWarning = logLevelWarning;
3427
3427
  exports.makeEffectError = makeEffectError;
3428
3428
  exports.makeEntry = makeEntry;
3429
- exports.map = map;
3430
- exports.map$1 = map$1;
3429
+ exports.map = map$1;
3430
+ exports.map$1 = map;
3431
3431
  exports.mapBoth = mapBoth;
3432
3432
  exports.mapError = mapError;
3433
3433
  exports.mapInputContext = mapInputContext;
@@ -3452,8 +3452,8 @@ exports.pretty = pretty;
3452
3452
  exports.prettyErrors = prettyErrors;
3453
3453
  exports.provideContext = provideContext;
3454
3454
  exports.provideSomeContext = provideSomeContext;
3455
- exports.reduce = reduce$1;
3456
- exports.reduce$1 = reduce;
3455
+ exports.reduce = reduce;
3456
+ exports.reduce$1 = reduce$1;
3457
3457
  exports.reduceWithContext = reduceWithContext;
3458
3458
  exports.releaseMapAdd = releaseMapAdd;
3459
3459
  exports.releaseMapMake = releaseMapMake;