effect 2.0.0-next.42 → 2.0.0-next.43

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 (669) hide show
  1. package/Bigint/dist/effect-Bigint.cjs.dev.js +365 -28
  2. package/Bigint/dist/effect-Bigint.cjs.prod.js +365 -28
  3. package/Boolean/dist/effect-Boolean.cjs.dev.js +243 -22
  4. package/Boolean/dist/effect-Boolean.cjs.prod.js +243 -22
  5. package/Brand/dist/effect-Brand.cjs.dev.js +221 -26
  6. package/Brand/dist/effect-Brand.cjs.prod.js +221 -26
  7. package/Cache/dist/effect-Cache.cjs.dev.js +181 -76
  8. package/Cache/dist/effect-Cache.cjs.prod.js +181 -76
  9. package/Cause/dist/effect-Cause.cjs.dev.js +754 -93
  10. package/Cause/dist/effect-Cause.cjs.prod.js +754 -93
  11. package/Channel/dist/effect-Channel.cjs.dev.js +1205 -213
  12. package/Channel/dist/effect-Channel.cjs.prod.js +1205 -213
  13. package/ChannelChildExecutorDecision/dist/effect-ChannelChildExecutorDecision.cjs.dev.js +118 -12
  14. package/ChannelChildExecutorDecision/dist/effect-ChannelChildExecutorDecision.cjs.prod.js +118 -12
  15. package/ChannelMergeDecision/dist/effect-ChannelMergeDecision.cjs.dev.js +63 -9
  16. package/ChannelMergeDecision/dist/effect-ChannelMergeDecision.cjs.prod.js +63 -9
  17. package/ChannelMergeState/dist/effect-ChannelMergeState.cjs.dev.js +107 -12
  18. package/ChannelMergeState/dist/effect-ChannelMergeState.cjs.prod.js +107 -12
  19. package/ChannelMergeStrategy/dist/effect-ChannelMergeStrategy.cjs.dev.js +88 -10
  20. package/ChannelMergeStrategy/dist/effect-ChannelMergeStrategy.cjs.prod.js +88 -10
  21. package/ChannelSingleProducerAsyncInput/dist/effect-ChannelSingleProducerAsyncInput.cjs.dev.js +130 -89
  22. package/ChannelSingleProducerAsyncInput/dist/effect-ChannelSingleProducerAsyncInput.cjs.prod.js +130 -89
  23. package/ChannelUpstreamPullRequest/dist/effect-ChannelUpstreamPullRequest.cjs.dev.js +88 -10
  24. package/ChannelUpstreamPullRequest/dist/effect-ChannelUpstreamPullRequest.cjs.prod.js +88 -10
  25. package/ChannelUpstreamPullStrategy/dist/effect-ChannelUpstreamPullStrategy.cjs.dev.js +87 -10
  26. package/ChannelUpstreamPullStrategy/dist/effect-ChannelUpstreamPullStrategy.cjs.prod.js +87 -10
  27. package/Chunk/dist/effect-Chunk.cjs.dev.js +1170 -101
  28. package/Chunk/dist/effect-Chunk.cjs.prod.js +1170 -101
  29. package/Clock/dist/effect-Clock.cjs.dev.js +120 -49
  30. package/Clock/dist/effect-Clock.cjs.prod.js +120 -49
  31. package/Config/dist/effect-Config.cjs.dev.js +386 -71
  32. package/Config/dist/effect-Config.cjs.prod.js +386 -71
  33. package/ConfigError/dist/effect-ConfigError.cjs.dev.js +219 -40
  34. package/ConfigError/dist/effect-ConfigError.cjs.prod.js +219 -40
  35. package/ConfigProvider/dist/effect-ConfigProvider.cjs.dev.js +250 -58
  36. package/ConfigProvider/dist/effect-ConfigProvider.cjs.prod.js +250 -58
  37. package/ConfigProviderPathPatch/dist/effect-ConfigProviderPathPatch.cjs.dev.js +92 -28
  38. package/ConfigProviderPathPatch/dist/effect-ConfigProviderPathPatch.cjs.prod.js +92 -28
  39. package/ConfigSecret/dist/effect-ConfigSecret.cjs.dev.js +85 -28
  40. package/ConfigSecret/dist/effect-ConfigSecret.cjs.prod.js +85 -28
  41. package/Console/dist/effect-Console.cjs.dev.js +315 -105
  42. package/Console/dist/effect-Console.cjs.prod.js +315 -105
  43. package/Context/dist/effect-Context.cjs.dev.js +322 -33
  44. package/Context/dist/effect-Context.cjs.prod.js +322 -33
  45. package/Data/dist/effect-Data.cjs.dev.js +223 -21
  46. package/Data/dist/effect-Data.cjs.prod.js +223 -21
  47. package/DefaultServices/dist/effect-DefaultServices.cjs.dev.js +59 -41
  48. package/DefaultServices/dist/effect-DefaultServices.cjs.prod.js +59 -41
  49. package/Deferred/dist/effect-Deferred.cjs.dev.js +254 -55
  50. package/Deferred/dist/effect-Deferred.cjs.prod.js +254 -55
  51. package/Differ/dist/effect-Differ.cjs.dev.js +985 -42
  52. package/Differ/dist/effect-Differ.cjs.prod.js +985 -42
  53. package/Duration/dist/effect-Duration.cjs.dev.js +476 -51
  54. package/Duration/dist/effect-Duration.cjs.prod.js +476 -51
  55. package/Effect/dist/effect-Effect.cjs.dev.js +3484 -410
  56. package/Effect/dist/effect-Effect.cjs.prod.js +3484 -410
  57. package/Effectable/dist/effect-Effectable.cjs.dev.js +92 -21
  58. package/Effectable/dist/effect-Effectable.cjs.prod.js +92 -21
  59. package/Either/dist/effect-Either.cjs.dev.js +475 -43
  60. package/Either/dist/effect-Either.cjs.prod.js +475 -43
  61. package/Encoding/dist/effect-Encoding.cjs.dev.js +302 -29
  62. package/Encoding/dist/effect-Encoding.cjs.prod.js +302 -29
  63. package/Equal/dist/effect-Equal.cjs.dev.js +61 -10
  64. package/Equal/dist/effect-Equal.cjs.prod.js +61 -10
  65. package/Equivalence/dist/effect-Equivalence.cjs.dev.js +213 -23
  66. package/Equivalence/dist/effect-Equivalence.cjs.prod.js +213 -23
  67. package/Error/dist/effect-Error.cjs.dev.js +130 -90
  68. package/Error/dist/effect-Error.cjs.prod.js +130 -90
  69. package/ExecutionStrategy/dist/effect-ExecutionStrategy.cjs.dev.js +2 -2
  70. package/ExecutionStrategy/dist/effect-ExecutionStrategy.cjs.prod.js +2 -2
  71. package/Exit/dist/effect-Exit.cjs.dev.js +395 -69
  72. package/Exit/dist/effect-Exit.cjs.prod.js +395 -69
  73. package/Fiber/dist/effect-Fiber.cjs.dev.js +537 -123
  74. package/Fiber/dist/effect-Fiber.cjs.prod.js +537 -123
  75. package/FiberId/dist/effect-FiberId.cjs.dev.js +19 -19
  76. package/FiberId/dist/effect-FiberId.cjs.prod.js +19 -19
  77. package/FiberRef/dist/effect-FiberRef.cjs.dev.js +400 -120
  78. package/FiberRef/dist/effect-FiberRef.cjs.prod.js +400 -120
  79. package/FiberRefs/dist/effect-FiberRefs.cjs.dev.js +147 -46
  80. package/FiberRefs/dist/effect-FiberRefs.cjs.prod.js +147 -46
  81. package/FiberRefsPatch/dist/effect-FiberRefsPatch.cjs.dev.js +110 -40
  82. package/FiberRefsPatch/dist/effect-FiberRefsPatch.cjs.prod.js +110 -40
  83. package/FiberStatus/dist/effect-FiberStatus.cjs.dev.js +185 -18
  84. package/FiberStatus/dist/effect-FiberStatus.cjs.prod.js +185 -18
  85. package/Function/dist/effect-Function.cjs.dev.js +511 -24
  86. package/Function/dist/effect-Function.cjs.prod.js +511 -24
  87. package/GlobalValue/dist/effect-GlobalValue.cjs.dev.js +18 -3
  88. package/GlobalValue/dist/effect-GlobalValue.cjs.prod.js +18 -3
  89. package/GroupBy/dist/effect-GroupBy.cjs.dev.js +167 -110
  90. package/GroupBy/dist/effect-GroupBy.cjs.prod.js +167 -110
  91. package/Hash/dist/effect-Hash.cjs.dev.js +175 -19
  92. package/Hash/dist/effect-Hash.cjs.prod.js +175 -19
  93. package/HashMap/dist/effect-HashMap.cjs.dev.js +337 -52
  94. package/HashMap/dist/effect-HashMap.cjs.prod.js +337 -52
  95. package/HashSet/dist/effect-HashSet.cjs.dev.js +266 -45
  96. package/HashSet/dist/effect-HashSet.cjs.prod.js +266 -45
  97. package/Hub/dist/effect-Hub.cjs.dev.js +1319 -88
  98. package/Hub/dist/effect-Hub.cjs.prod.js +1319 -88
  99. package/Inspectable/dist/effect-Inspectable.cjs.dev.js +37 -4
  100. package/Inspectable/dist/effect-Inspectable.cjs.prod.js +37 -4
  101. package/KeyedPool/dist/effect-KeyedPool.cjs.dev.js +327 -82
  102. package/KeyedPool/dist/effect-KeyedPool.cjs.prod.js +327 -82
  103. package/Layer/dist/effect-Layer.cjs.dev.js +696 -146
  104. package/Layer/dist/effect-Layer.cjs.prod.js +696 -146
  105. package/List/dist/effect-List.cjs.dev.js +868 -68
  106. package/List/dist/effect-List.cjs.prod.js +868 -68
  107. package/LogLevel/dist/effect-LogLevel.cjs.dev.js +243 -50
  108. package/LogLevel/dist/effect-LogLevel.cjs.prod.js +243 -50
  109. package/LogSpan/dist/effect-LogSpan.cjs.dev.js +34 -3
  110. package/LogSpan/dist/effect-LogSpan.cjs.prod.js +34 -3
  111. package/Logger/dist/effect-Logger.cjs.dev.js +313 -112
  112. package/Logger/dist/effect-Logger.cjs.prod.js +313 -112
  113. package/Metric/dist/effect-Metric.cjs.dev.js +503 -115
  114. package/Metric/dist/effect-Metric.cjs.prod.js +503 -115
  115. package/MetricBoundaries/dist/effect-MetricBoundaries.cjs.dev.js +72 -26
  116. package/MetricBoundaries/dist/effect-MetricBoundaries.cjs.prod.js +72 -26
  117. package/MetricHook/dist/effect-MetricHook.cjs.dev.js +95 -33
  118. package/MetricHook/dist/effect-MetricHook.cjs.prod.js +95 -33
  119. package/MetricKey/dist/effect-MetricKey.cjs.dev.js +133 -35
  120. package/MetricKey/dist/effect-MetricKey.cjs.prod.js +133 -35
  121. package/MetricKeyType/dist/effect-MetricKeyType.cjs.dev.js +179 -38
  122. package/MetricKeyType/dist/effect-MetricKeyType.cjs.prod.js +179 -38
  123. package/MetricLabel/dist/effect-MetricLabel.cjs.dev.js +47 -12
  124. package/MetricLabel/dist/effect-MetricLabel.cjs.prod.js +47 -12
  125. package/MetricPair/dist/effect-MetricPair.cjs.dev.js +38 -6
  126. package/MetricPair/dist/effect-MetricPair.cjs.prod.js +38 -6
  127. package/MetricPolling/dist/effect-MetricPolling.cjs.dev.js +229 -85
  128. package/MetricPolling/dist/effect-MetricPolling.cjs.prod.js +229 -85
  129. package/MetricRegistry/dist/effect-MetricRegistry.cjs.dev.js +55 -33
  130. package/MetricRegistry/dist/effect-MetricRegistry.cjs.prod.js +55 -33
  131. package/MetricState/dist/effect-MetricState.cjs.dev.js +174 -29
  132. package/MetricState/dist/effect-MetricState.cjs.prod.js +174 -29
  133. package/MutableHashMap/dist/effect-MutableHashMap.cjs.dev.js +149 -32
  134. package/MutableHashMap/dist/effect-MutableHashMap.cjs.prod.js +149 -32
  135. package/MutableHashSet/dist/effect-MutableHashSet.cjs.dev.js +111 -30
  136. package/MutableHashSet/dist/effect-MutableHashSet.cjs.prod.js +111 -30
  137. package/MutableList/dist/effect-MutableList.cjs.dev.js +276 -20
  138. package/MutableList/dist/effect-MutableList.cjs.prod.js +276 -20
  139. package/MutableQueue/dist/effect-MutableQueue.cjs.dev.js +209 -32
  140. package/MutableQueue/dist/effect-MutableQueue.cjs.prod.js +209 -32
  141. package/MutableRef/dist/effect-MutableRef.cjs.dev.js +175 -28
  142. package/MutableRef/dist/effect-MutableRef.cjs.prod.js +175 -28
  143. package/NonEmptyIterable/dist/effect-NonEmptyIterable.cjs.dev.js +25 -2
  144. package/NonEmptyIterable/dist/effect-NonEmptyIterable.cjs.prod.js +25 -2
  145. package/Number/dist/effect-Number.cjs.dev.js +389 -29
  146. package/Number/dist/effect-Number.cjs.prod.js +389 -29
  147. package/Option/dist/effect-Option.cjs.dev.js +1137 -79
  148. package/Option/dist/effect-Option.cjs.prod.js +1137 -79
  149. package/Order/dist/effect-Order.cjs.dev.js +288 -31
  150. package/Order/dist/effect-Order.cjs.prod.js +288 -31
  151. package/Ordering/dist/effect-Ordering.cjs.dev.js +89 -7
  152. package/Ordering/dist/effect-Ordering.cjs.prod.js +89 -7
  153. package/Pipeable/dist/effect-Pipeable.cjs.dev.js +41 -2
  154. package/Pipeable/dist/effect-Pipeable.cjs.prod.js +41 -2
  155. package/Pool/dist/effect-Pool.cjs.dev.js +176 -78
  156. package/Pool/dist/effect-Pool.cjs.prod.js +176 -78
  157. package/Predicate/dist/effect-Predicate.cjs.dev.js +672 -44
  158. package/Predicate/dist/effect-Predicate.cjs.prod.js +672 -44
  159. package/Queue/dist/effect-Queue.cjs.dev.js +426 -104
  160. package/Queue/dist/effect-Queue.cjs.prod.js +426 -104
  161. package/Random/dist/effect-Random.cjs.dev.js +126 -50
  162. package/Random/dist/effect-Random.cjs.prod.js +126 -50
  163. package/ReadonlyArray/dist/effect-ReadonlyArray.cjs.dev.js +1589 -157
  164. package/ReadonlyArray/dist/effect-ReadonlyArray.cjs.prod.js +1589 -157
  165. package/ReadonlyRecord/dist/effect-ReadonlyRecord.cjs.dev.js +552 -42
  166. package/ReadonlyRecord/dist/effect-ReadonlyRecord.cjs.prod.js +552 -42
  167. package/RedBlackTree/dist/effect-RedBlackTree.cjs.dev.js +1638 -59
  168. package/RedBlackTree/dist/effect-RedBlackTree.cjs.prod.js +1638 -59
  169. package/Ref/dist/effect-Ref.cjs.dev.js +31 -31
  170. package/Ref/dist/effect-Ref.cjs.prod.js +31 -31
  171. package/Reloadable/dist/effect-Reloadable.cjs.dev.js +225 -92
  172. package/Reloadable/dist/effect-Reloadable.cjs.prod.js +225 -92
  173. package/Request/dist/effect-Request.cjs.dev.js +237 -87
  174. package/Request/dist/effect-Request.cjs.prod.js +237 -87
  175. package/RequestBlock/dist/effect-RequestBlock.cjs.dev.js +194 -99
  176. package/RequestBlock/dist/effect-RequestBlock.cjs.prod.js +194 -99
  177. package/RequestResolver/dist/effect-RequestResolver.cjs.dev.js +291 -109
  178. package/RequestResolver/dist/effect-RequestResolver.cjs.prod.js +291 -109
  179. package/Resource/dist/effect-Resource.cjs.dev.js +176 -84
  180. package/Resource/dist/effect-Resource.cjs.prod.js +176 -84
  181. package/Runtime/dist/effect-Runtime.cjs.dev.js +244 -93
  182. package/Runtime/dist/effect-Runtime.cjs.prod.js +244 -93
  183. package/RuntimeFlags/dist/effect-RuntimeFlags.cjs.dev.js +418 -120
  184. package/RuntimeFlags/dist/effect-RuntimeFlags.cjs.prod.js +418 -120
  185. package/RuntimeFlagsPatch/dist/effect-RuntimeFlagsPatch.cjs.dev.js +25 -25
  186. package/RuntimeFlagsPatch/dist/effect-RuntimeFlagsPatch.cjs.prod.js +25 -25
  187. package/STM/dist/effect-STM.cjs.dev.js +1420 -236
  188. package/STM/dist/effect-STM.cjs.prod.js +1420 -236
  189. package/Schedule/dist/effect-Schedule.cjs.dev.js +1106 -155
  190. package/Schedule/dist/effect-Schedule.cjs.prod.js +1106 -155
  191. package/ScheduleDecision/dist/effect-ScheduleDecision.cjs.dev.js +111 -28
  192. package/ScheduleDecision/dist/effect-ScheduleDecision.cjs.prod.js +111 -28
  193. package/ScheduleInterval/dist/effect-ScheduleInterval.cjs.dev.js +237 -33
  194. package/ScheduleInterval/dist/effect-ScheduleInterval.cjs.prod.js +237 -33
  195. package/ScheduleIntervals/dist/effect-ScheduleIntervals.cjs.dev.js +264 -36
  196. package/ScheduleIntervals/dist/effect-ScheduleIntervals.cjs.prod.js +264 -36
  197. package/Scheduler/dist/effect-Scheduler.cjs.dev.js +365 -48
  198. package/Scheduler/dist/effect-Scheduler.cjs.prod.js +365 -48
  199. package/Scope/dist/effect-Scope.cjs.dev.js +191 -81
  200. package/Scope/dist/effect-Scope.cjs.prod.js +191 -81
  201. package/ScopedCache/dist/effect-ScopedCache.cjs.dev.js +511 -78
  202. package/ScopedCache/dist/effect-ScopedCache.cjs.prod.js +511 -78
  203. package/ScopedRef/dist/effect-ScopedRef.cjs.dev.js +146 -81
  204. package/ScopedRef/dist/effect-ScopedRef.cjs.prod.js +146 -81
  205. package/Sink/dist/effect-Sink.cjs.dev.js +1198 -207
  206. package/Sink/dist/effect-Sink.cjs.prod.js +1198 -207
  207. package/SortedMap/dist/effect-SortedMap.cjs.dev.js +194 -39
  208. package/SortedMap/dist/effect-SortedMap.cjs.prod.js +194 -39
  209. package/SortedSet/dist/effect-SortedSet.cjs.dev.js +293 -42
  210. package/SortedSet/dist/effect-SortedSet.cjs.prod.js +293 -42
  211. package/Stream/dist/effect-Stream.cjs.dev.js +3272 -400
  212. package/Stream/dist/effect-Stream.cjs.prod.js +3272 -400
  213. package/StreamHaltStrategy/dist/effect-StreamHaltStrategy.cjs.dev.js +2 -2
  214. package/StreamHaltStrategy/dist/effect-StreamHaltStrategy.cjs.prod.js +2 -2
  215. package/String/dist/effect-String.cjs.dev.js +652 -64
  216. package/String/dist/effect-String.cjs.prod.js +652 -64
  217. package/Struct/dist/effect-Struct.cjs.dev.js +126 -9
  218. package/Struct/dist/effect-Struct.cjs.prod.js +126 -9
  219. package/SubscriptionRef/dist/effect-SubscriptionRef.cjs.dev.js +336 -130
  220. package/SubscriptionRef/dist/effect-SubscriptionRef.cjs.prod.js +336 -130
  221. package/Supervisor/dist/effect-Supervisor.cjs.dev.js +233 -93
  222. package/Supervisor/dist/effect-Supervisor.cjs.prod.js +233 -93
  223. package/Symbol/dist/effect-Symbol.cjs.dev.js +29 -6
  224. package/Symbol/dist/effect-Symbol.cjs.prod.js +29 -6
  225. package/SynchronizedRef/dist/effect-SynchronizedRef.cjs.dev.js +253 -101
  226. package/SynchronizedRef/dist/effect-SynchronizedRef.cjs.prod.js +253 -101
  227. package/TArray/dist/effect-TArray.cjs.dev.js +516 -155
  228. package/TArray/dist/effect-TArray.cjs.prod.js +516 -155
  229. package/TDeferred/dist/effect-TDeferred.cjs.dev.js +218 -120
  230. package/TDeferred/dist/effect-TDeferred.cjs.prod.js +218 -120
  231. package/THub/dist/effect-THub.cjs.dev.js +650 -130
  232. package/THub/dist/effect-THub.cjs.prod.js +650 -130
  233. package/TMap/dist/effect-TMap.cjs.dev.js +525 -158
  234. package/TMap/dist/effect-TMap.cjs.prod.js +525 -158
  235. package/TPriorityQueue/dist/effect-TPriorityQueue.cjs.dev.js +458 -132
  236. package/TPriorityQueue/dist/effect-TPriorityQueue.cjs.prod.js +458 -132
  237. package/TQueue/dist/effect-TQueue.cjs.dev.js +429 -142
  238. package/TQueue/dist/effect-TQueue.cjs.prod.js +429 -142
  239. package/TRandom/dist/effect-TRandom.cjs.dev.js +289 -123
  240. package/TRandom/dist/effect-TRandom.cjs.prod.js +289 -123
  241. package/TReentrantLock/dist/effect-TReentrantLock.cjs.dev.js +530 -131
  242. package/TReentrantLock/dist/effect-TReentrantLock.cjs.prod.js +530 -131
  243. package/TRef/dist/effect-TRef.cjs.dev.js +237 -127
  244. package/TRef/dist/effect-TRef.cjs.prod.js +237 -127
  245. package/TSemaphore/dist/effect-TSemaphore.cjs.dev.js +282 -126
  246. package/TSemaphore/dist/effect-TSemaphore.cjs.prod.js +282 -126
  247. package/TSet/dist/effect-TSet.cjs.dev.js +514 -146
  248. package/TSet/dist/effect-TSet.cjs.prod.js +514 -146
  249. package/Take/dist/effect-Take.cjs.dev.js +295 -111
  250. package/Take/dist/effect-Take.cjs.prod.js +295 -111
  251. package/TestAnnotation/dist/effect-TestAnnotation.cjs.dev.js +132 -33
  252. package/TestAnnotation/dist/effect-TestAnnotation.cjs.prod.js +132 -33
  253. package/TestAnnotationMap/dist/effect-TestAnnotationMap.cjs.dev.js +106 -11
  254. package/TestAnnotationMap/dist/effect-TestAnnotationMap.cjs.prod.js +106 -11
  255. package/TestAnnotations/dist/effect-TestAnnotations.cjs.dev.js +127 -61
  256. package/TestAnnotations/dist/effect-TestAnnotations.cjs.prod.js +127 -61
  257. package/TestClock/dist/effect-TestClock.cjs.dev.js +623 -101
  258. package/TestClock/dist/effect-TestClock.cjs.prod.js +623 -101
  259. package/TestConfig/dist/effect-TestConfig.cjs.dev.js +41 -20
  260. package/TestConfig/dist/effect-TestConfig.cjs.prod.js +41 -20
  261. package/TestContext/dist/effect-TestContext.cjs.dev.js +117 -98
  262. package/TestContext/dist/effect-TestContext.cjs.prod.js +117 -98
  263. package/TestLive/dist/effect-TestLive.cjs.dev.js +82 -42
  264. package/TestLive/dist/effect-TestLive.cjs.prod.js +82 -42
  265. package/TestServices/dist/effect-TestServices.cjs.dev.js +380 -129
  266. package/TestServices/dist/effect-TestServices.cjs.prod.js +380 -129
  267. package/TestSized/dist/effect-TestSized.cjs.dev.js +78 -35
  268. package/TestSized/dist/effect-TestSized.cjs.prod.js +78 -35
  269. package/Tracer/dist/effect-Tracer.cjs.dev.js +104 -43
  270. package/Tracer/dist/effect-Tracer.cjs.prod.js +104 -43
  271. package/Tuple/dist/effect-Tuple.cjs.dev.js +182 -17
  272. package/Tuple/dist/effect-Tuple.cjs.prod.js +182 -17
  273. package/Unify/dist/effect-Unify.cjs.dev.js +37 -3
  274. package/Unify/dist/effect-Unify.cjs.prod.js +37 -3
  275. package/Utils/dist/effect-Utils.cjs.dev.js +354 -9
  276. package/Utils/dist/effect-Utils.cjs.prod.js +354 -9
  277. package/dist/{Context-f958cabc.cjs.prod.js → Context-01a123ac.cjs.prod.js} +8 -8
  278. package/dist/{Context-96739709.cjs.dev.js → Context-593661f6.cjs.dev.js} +8 -8
  279. package/dist/{Effectable-f867d1cb.cjs.prod.js → Effectable-2f022879.cjs.dev.js} +4 -4
  280. package/dist/{Effectable-a6403e5f.cjs.dev.js → Effectable-cd8f3a96.cjs.prod.js} +4 -4
  281. package/dist/{Either-9c349424.cjs.dev.js → Either-12bbe00c.cjs.dev.js} +5 -5
  282. package/dist/{Either-d03d5f05.cjs.prod.js → Either-7a881c7a.cjs.prod.js} +5 -5
  283. package/dist/{ExecutionStrategy-89fbe735.cjs.dev.js → ExecutionStrategy-14d3053a.cjs.prod.js} +1 -13
  284. package/dist/{ExecutionStrategy-dc778180.cjs.prod.js → ExecutionStrategy-70f1a920.cjs.dev.js} +1 -13
  285. package/dist/{FiberId-929dcce4.cjs.dev.js → FiberId-557db880.cjs.dev.js} +8 -30
  286. package/dist/{FiberId-b79e8047.cjs.prod.js → FiberId-e594f6e8.cjs.prod.js} +8 -30
  287. package/dist/{HashSet-ece2cfe8.cjs.dev.js → HashSet-0b4ff1e4.cjs.dev.js} +7 -7
  288. package/dist/{HashSet-6fe62df2.cjs.prod.js → HashSet-6257b66d.cjs.prod.js} +7 -7
  289. package/dist/{Ref-f41d9514.cjs.dev.js → Ref-74b592a4.cjs.dev.js} +5 -25
  290. package/dist/{Ref-b0f07131.cjs.prod.js → Ref-a3a4e50d.cjs.prod.js} +5 -25
  291. package/dist/{RuntimeFlagsPatch-130e990c.cjs.dev.js → RuntimeFlagsPatch-e2769b87.cjs.prod.js} +2 -24
  292. package/dist/{RuntimeFlagsPatch-5570758d.cjs.prod.js → RuntimeFlagsPatch-ea268c50.cjs.dev.js} +2 -24
  293. package/dist/{StreamHaltStrategy-66a53f66.cjs.dev.js → StreamHaltStrategy-9a61b88d.cjs.dev.js} +1 -16
  294. package/dist/{StreamHaltStrategy-07f544a6.cjs.prod.js → StreamHaltStrategy-b495622b.cjs.prod.js} +1 -16
  295. package/dist/{boundaries-03c7494a.cjs.dev.js → boundaries-20cfad9d.cjs.prod.js} +6 -6
  296. package/dist/{boundaries-5d1a46e1.cjs.prod.js → boundaries-3810d885.cjs.dev.js} +6 -6
  297. package/dist/{cache-debb30b9.cjs.prod.js → cache-3a55a13a.cjs.prod.js} +21 -21
  298. package/dist/{cache-6a9fa3c2.cjs.dev.js → cache-83d14f6e.cjs.dev.js} +21 -21
  299. package/dist/{childExecutorDecision-2b30946c.cjs.prod.js → childExecutorDecision-2eed6e25.cjs.dev.js} +1 -1
  300. package/dist/{childExecutorDecision-ad3db696.cjs.dev.js → childExecutorDecision-b5842db5.cjs.prod.js} +1 -1
  301. package/dist/{circular-e96ed3ce.cjs.dev.js → circular-2162b720.cjs.dev.js} +7 -7
  302. package/dist/{circular-4e4a12d0.cjs.dev.js → circular-a4887ee9.cjs.dev.js} +19 -19
  303. package/dist/{circular-fc9d405f.cjs.prod.js → circular-c3ce70f4.cjs.prod.js} +7 -7
  304. package/dist/{circular-b9af7e3c.cjs.prod.js → circular-f72fcb1d.cjs.prod.js} +19 -19
  305. package/dist/{config-a57559a0.cjs.dev.js → config-80900693.cjs.dev.js} +10 -10
  306. package/dist/{config-e86d2f2c.cjs.prod.js → config-d0ddc159.cjs.prod.js} +10 -10
  307. package/dist/{configError-6a3652f8.cjs.prod.js → configError-240e9b61.cjs.dev.js} +3 -3
  308. package/dist/{configError-1686533e.cjs.dev.js → configError-33e55472.cjs.prod.js} +3 -3
  309. package/dist/{configProvider-91019e0c.cjs.prod.js → configProvider-93617d6d.cjs.prod.js} +13 -13
  310. package/dist/{configProvider-e8277224.cjs.dev.js → configProvider-ce43fdbf.cjs.dev.js} +13 -13
  311. package/dist/{configSecret-ecb6c5b3.cjs.prod.js → configSecret-d1caca55.cjs.prod.js} +4 -4
  312. package/dist/{configSecret-5812fa69.cjs.dev.js → configSecret-e34c1b14.cjs.dev.js} +4 -4
  313. package/dist/{core-99a7f5f2.cjs.prod.js → core-0b0539de.cjs.prod.js} +19 -19
  314. package/dist/{core-3a3a9567.cjs.prod.js → core-8ff5a82c.cjs.prod.js} +14 -14
  315. package/dist/{core-5fb17b79.cjs.dev.js → core-b2dfee8d.cjs.dev.js} +14 -14
  316. package/dist/{core-3ddc73fc.cjs.dev.js → core-b4d7b4f5.cjs.dev.js} +19 -19
  317. package/dist/{core-effect-0b09eb55.cjs.dev.js → core-effect-892f3686.cjs.dev.js} +23 -23
  318. package/dist/{core-effect-0efbe120.cjs.prod.js → core-effect-c65770cd.cjs.prod.js} +23 -23
  319. package/dist/{dataSource-894bb2d1.cjs.dev.js → dataSource-5227437c.cjs.dev.js} +7 -7
  320. package/dist/{dataSource-536382d2.cjs.prod.js → dataSource-837686e6.cjs.prod.js} +7 -7
  321. package/dist/declarations/src/index.d.ts.map +1 -1
  322. package/dist/{defaultServices-85cd09a5.cjs.prod.js → defaultServices-086b8ac9.cjs.prod.js} +10 -10
  323. package/dist/{defaultServices-101983cd.cjs.dev.js → defaultServices-5530ff0e.cjs.dev.js} +10 -10
  324. package/dist/effect.cjs.dev.js +466 -344
  325. package/dist/effect.cjs.prod.js +466 -344
  326. package/dist/effect.esm.js +283 -283
  327. package/dist/{fiber-e68a3beb.cjs.dev.js → fiber-1bfb4c1d.cjs.dev.js} +14 -14
  328. package/dist/{fiber-d61e94dc.cjs.prod.js → fiber-2eb0a4c1.cjs.prod.js} +14 -14
  329. package/dist/{fiberRefs-1a0bda7d.cjs.dev.js → fiberRefs-be4fae6a.cjs.dev.js} +7 -7
  330. package/dist/{fiberRefs-56d69854.cjs.prod.js → fiberRefs-be6b6a70.cjs.prod.js} +7 -7
  331. package/dist/{fiberRuntime-d359f080.cjs.prod.js → fiberRuntime-af2d0ca1.cjs.prod.js} +42 -42
  332. package/dist/{fiberRuntime-9699a6b8.cjs.dev.js → fiberRuntime-e0db0ab6.cjs.dev.js} +42 -42
  333. package/dist/{groupBy-5ec3b13b.cjs.prod.js → groupBy-7ce46ea3.cjs.prod.js} +14 -14
  334. package/dist/{groupBy-83c39612.cjs.dev.js → groupBy-bd943372.cjs.dev.js} +14 -14
  335. package/dist/{hook-822704ea.cjs.dev.js → hook-470b717e.cjs.prod.js} +9 -9
  336. package/dist/{hook-6c7550dc.cjs.prod.js → hook-e72b20fd.cjs.dev.js} +9 -9
  337. package/dist/{key-330b98b1.cjs.prod.js → key-378a6a2c.cjs.prod.js} +8 -8
  338. package/dist/{key-a474fc0d.cjs.dev.js → key-f0a1408a.cjs.dev.js} +8 -8
  339. package/dist/{keyType-1e916ae2.cjs.dev.js → keyType-55f27f07.cjs.dev.js} +5 -5
  340. package/dist/{keyType-8460e792.cjs.prod.js → keyType-cf67c69c.cjs.prod.js} +5 -5
  341. package/dist/{label-3e143765.cjs.prod.js → label-011edbe7.cjs.dev.js} +4 -4
  342. package/dist/{label-246fb11d.cjs.dev.js → label-655343b5.cjs.prod.js} +4 -4
  343. package/dist/{layer-4be7be9b.cjs.prod.js → layer-3b1b0e2e.cjs.prod.js} +19 -19
  344. package/dist/{layer-51422619.cjs.dev.js → layer-9cbb61ce.cjs.dev.js} +19 -19
  345. package/dist/{mergeDecision-e483c280.cjs.prod.js → mergeDecision-07c6b5c9.cjs.prod.js} +1 -1
  346. package/dist/{mergeDecision-e457a76b.cjs.dev.js → mergeDecision-be41e797.cjs.dev.js} +1 -1
  347. package/dist/{mergeState-dba66248.cjs.prod.js → mergeState-75990fa2.cjs.prod.js} +1 -1
  348. package/dist/{mergeState-83204f38.cjs.dev.js → mergeState-8153ce39.cjs.dev.js} +1 -1
  349. package/dist/{mergeStrategy-845a1279.cjs.prod.js → mergeStrategy-3dd6e55f.cjs.prod.js} +1 -1
  350. package/dist/{mergeStrategy-b19dc19a.cjs.dev.js → mergeStrategy-81ea5b80.cjs.dev.js} +1 -1
  351. package/dist/{pair-e5443c93.cjs.prod.js → pair-291b78d7.cjs.dev.js} +1 -1
  352. package/dist/{pair-08a8685e.cjs.dev.js → pair-6254cf85.cjs.prod.js} +1 -1
  353. package/dist/{patch-49a74eb1.cjs.prod.js → patch-a1b2802f.cjs.dev.js} +4 -4
  354. package/dist/{patch-d5f75194.cjs.dev.js → patch-c4d6c61e.cjs.prod.js} +4 -4
  355. package/dist/{pathPatch-e46d4168.cjs.dev.js → pathPatch-15c8d723.cjs.prod.js} +6 -6
  356. package/dist/{pathPatch-ded405f6.cjs.prod.js → pathPatch-d9d41297.cjs.dev.js} +6 -6
  357. package/dist/{pool-2db8a1f2.cjs.dev.js → pool-29b03fb2.cjs.dev.js} +12 -12
  358. package/dist/{pool-bcc71d3b.cjs.prod.js → pool-b5c7d254.cjs.prod.js} +12 -12
  359. package/dist/{query-3599e07d.cjs.dev.js → query-67a7c448.cjs.dev.js} +6 -6
  360. package/dist/{query-096bd104.cjs.prod.js → query-d5eefc43.cjs.prod.js} +6 -6
  361. package/dist/{queue-6ee3ba6c.cjs.prod.js → queue-38614769.cjs.prod.js} +9 -9
  362. package/dist/{queue-5fffc770.cjs.dev.js → queue-997d6e51.cjs.dev.js} +9 -9
  363. package/dist/{registry-29905dcc.cjs.prod.js → registry-013ecdde.cjs.prod.js} +7 -7
  364. package/dist/{registry-c883cf52.cjs.dev.js → registry-1099de3f.cjs.dev.js} +7 -7
  365. package/dist/{runtime-851e8d63.cjs.dev.js → runtime-15cc9cc5.cjs.dev.js} +16 -16
  366. package/dist/{runtime-06e3baba.cjs.prod.js → runtime-3a59f5c4.cjs.prod.js} +16 -16
  367. package/dist/{schedule-eb6e347d.cjs.prod.js → schedule-1d92198c.cjs.prod.js} +22 -22
  368. package/dist/{schedule-63e9a90e.cjs.dev.js → schedule-e0f55cab.cjs.dev.js} +22 -22
  369. package/dist/{scopedRef-365da725.cjs.dev.js → scopedRef-88ae648a.cjs.dev.js} +9 -9
  370. package/dist/{scopedRef-8387a141.cjs.prod.js → scopedRef-a0257d92.cjs.prod.js} +9 -9
  371. package/dist/{singleProducerAsyncInput-9d6d57d6.cjs.dev.js → singleProducerAsyncInput-1c6cc8fb.cjs.prod.js} +13 -13
  372. package/dist/{singleProducerAsyncInput-4035643a.cjs.prod.js → singleProducerAsyncInput-998b8fac.cjs.dev.js} +13 -13
  373. package/dist/{sink-9d318853.cjs.dev.js → sink-1ac24bca.cjs.dev.js} +42 -42
  374. package/dist/{sink-c22afb4c.cjs.prod.js → sink-4d668efb.cjs.prod.js} +42 -42
  375. package/dist/{state-0d29362f.cjs.prod.js → state-8fbec044.cjs.dev.js} +4 -4
  376. package/dist/{state-8a8a647c.cjs.dev.js → state-dd1bd066.cjs.prod.js} +4 -4
  377. package/dist/{stm-25e9f751.cjs.dev.js → stm-fbb398a5.cjs.dev.js} +13 -13
  378. package/dist/{stm-52b6d829.cjs.prod.js → stm-fcac86d5.cjs.prod.js} +13 -13
  379. package/dist/{stream-d0865b79.cjs.dev.js → stream-adef675d.cjs.dev.js} +33 -33
  380. package/dist/{stream-5f118d1a.cjs.prod.js → stream-e670e8fa.cjs.prod.js} +33 -33
  381. package/dist/{synchronizedRef-303ae7ce.cjs.prod.js → synchronizedRef-37e32854.cjs.dev.js} +3 -3
  382. package/dist/{synchronizedRef-5c50013e.cjs.dev.js → synchronizedRef-b4cde4de.cjs.prod.js} +3 -3
  383. package/dist/{tArray-3cd19ff4.cjs.dev.js → tArray-239d37ad.cjs.dev.js} +7 -7
  384. package/dist/{tArray-28dfa8e9.cjs.prod.js → tArray-70de8ec4.cjs.prod.js} +7 -7
  385. package/dist/{tMap-7361e520.cjs.dev.js → tMap-4b27665d.cjs.dev.js} +12 -12
  386. package/dist/{tMap-22aa6411.cjs.prod.js → tMap-a202396b.cjs.prod.js} +12 -12
  387. package/dist/{tQueue-4596ba62.cjs.prod.js → tQueue-004a478e.cjs.dev.js} +8 -8
  388. package/dist/{tQueue-86c4ee3b.cjs.dev.js → tQueue-82c4db95.cjs.prod.js} +8 -8
  389. package/dist/{tRef-0bbb1e7e.cjs.prod.js → tRef-bb7cc73a.cjs.dev.js} +3 -3
  390. package/dist/{tRef-c3fe1748.cjs.dev.js → tRef-ee2c7f44.cjs.prod.js} +3 -3
  391. package/dist/{take-6f424894.cjs.prod.js → take-4857b6af.cjs.dev.js} +7 -7
  392. package/dist/{take-df1858f2.cjs.dev.js → take-9c555b46.cjs.prod.js} +7 -7
  393. package/dist/{upstreamPullRequest-705e868d.cjs.prod.js → upstreamPullRequest-7a694281.cjs.dev.js} +1 -1
  394. package/dist/{upstreamPullRequest-c08f06a4.cjs.dev.js → upstreamPullRequest-c89f818d.cjs.prod.js} +1 -1
  395. package/dist/{upstreamPullStrategy-34452db1.cjs.prod.js → upstreamPullStrategy-63cc8967.cjs.prod.js} +1 -1
  396. package/dist/{upstreamPullStrategy-0ccf2960.cjs.dev.js → upstreamPullStrategy-f9f1ab57.cjs.dev.js} +1 -1
  397. package/package.json +3 -2
  398. package/dist/Bigint-0ebd807c.cjs.dev.js +0 -392
  399. package/dist/Bigint-912c77f3.cjs.prod.js +0 -392
  400. package/dist/Boolean-97839b78.cjs.prod.js +0 -264
  401. package/dist/Boolean-f0bc3abf.cjs.dev.js +0 -264
  402. package/dist/Brand-93578f43.cjs.prod.js +0 -224
  403. package/dist/Brand-b238487d.cjs.dev.js +0 -224
  404. package/dist/Cache-27de64e5.cjs.prod.js +0 -127
  405. package/dist/Cache-b1fd7d93.cjs.dev.js +0 -127
  406. package/dist/Cause-73ebfede.cjs.dev.js +0 -791
  407. package/dist/Cause-f90cc424.cjs.prod.js +0 -791
  408. package/dist/Channel-96c79066.cjs.prod.js +0 -1217
  409. package/dist/Channel-ff137fa2.cjs.dev.js +0 -1217
  410. package/dist/ChannelChildExecutorDecision-168278f6.cjs.prod.js +0 -136
  411. package/dist/ChannelChildExecutorDecision-b0e715de.cjs.dev.js +0 -136
  412. package/dist/ChannelMergeDecision-9c266aeb.cjs.prod.js +0 -78
  413. package/dist/ChannelMergeDecision-eeaf4779.cjs.dev.js +0 -78
  414. package/dist/ChannelMergeState-4366d090.cjs.prod.js +0 -125
  415. package/dist/ChannelMergeState-abce1d88.cjs.dev.js +0 -125
  416. package/dist/ChannelMergeStrategy-6193b8e0.cjs.prod.js +0 -104
  417. package/dist/ChannelMergeStrategy-e7ddbb7a.cjs.dev.js +0 -104
  418. package/dist/ChannelSingleProducerAsyncInput-0fd1d6fd.cjs.prod.js +0 -55
  419. package/dist/ChannelSingleProducerAsyncInput-3a95731f.cjs.dev.js +0 -55
  420. package/dist/ChannelUpstreamPullRequest-1ca7d2bd.cjs.dev.js +0 -104
  421. package/dist/ChannelUpstreamPullRequest-208751c3.cjs.prod.js +0 -104
  422. package/dist/ChannelUpstreamPullStrategy-266b5a77.cjs.prod.js +0 -103
  423. package/dist/ChannelUpstreamPullStrategy-ec57dc70.cjs.dev.js +0 -103
  424. package/dist/Chunk-6cf5a8e6.cjs.prod.js +0 -1248
  425. package/dist/Chunk-bd290b8e.cjs.dev.js +0 -1248
  426. package/dist/Clock-dd715d18.cjs.dev.js +0 -97
  427. package/dist/Clock-fb3f7535.cjs.prod.js +0 -97
  428. package/dist/Config-7f41ea05.cjs.prod.js +0 -393
  429. package/dist/Config-ae8e35fb.cjs.dev.js +0 -393
  430. package/dist/ConfigError-c1f762d2.cjs.dev.js +0 -225
  431. package/dist/ConfigError-cee682fa.cjs.prod.js +0 -225
  432. package/dist/ConfigProvider-58a767e3.cjs.prod.js +0 -240
  433. package/dist/ConfigProvider-88a6a51a.cjs.dev.js +0 -240
  434. package/dist/ConfigProviderPathPatch-52422b32.cjs.prod.js +0 -86
  435. package/dist/ConfigProviderPathPatch-d22442e3.cjs.dev.js +0 -86
  436. package/dist/ConfigSecret-c76717e8.cjs.dev.js +0 -83
  437. package/dist/ConfigSecret-ebab2ae7.cjs.prod.js +0 -83
  438. package/dist/Console-3feb9b13.cjs.dev.js +0 -271
  439. package/dist/Console-ad274f55.cjs.prod.js +0 -271
  440. package/dist/Context-25a49952.cjs.prod.js +0 -327
  441. package/dist/Context-3c9e986b.cjs.dev.js +0 -327
  442. package/dist/Data-07dc27f1.cjs.prod.js +0 -237
  443. package/dist/Data-85559fb3.cjs.dev.js +0 -237
  444. package/dist/DefaultServices-4ff6cd71.cjs.prod.js +0 -34
  445. package/dist/DefaultServices-c2fc760b.cjs.dev.js +0 -34
  446. package/dist/Deferred-33cc0aa3.cjs.prod.js +0 -253
  447. package/dist/Deferred-e92635ac.cjs.dev.js +0 -253
  448. package/dist/Differ-0122f60e.cjs.dev.js +0 -992
  449. package/dist/Differ-0bd34066.cjs.prod.js +0 -992
  450. package/dist/Duration-0bc08d03.cjs.prod.js +0 -508
  451. package/dist/Duration-604874d1.cjs.dev.js +0 -508
  452. package/dist/Effect-880ff8dc.cjs.dev.js +0 -3740
  453. package/dist/Effect-9ed81037.cjs.prod.js +0 -3740
  454. package/dist/Effectable-04f3cd30.cjs.dev.js +0 -99
  455. package/dist/Effectable-8997112d.cjs.prod.js +0 -99
  456. package/dist/Either-3fab3796.cjs.prod.js +0 -502
  457. package/dist/Either-a806809d.cjs.dev.js +0 -502
  458. package/dist/Encoding-0cab52d5.cjs.prod.js +0 -309
  459. package/dist/Encoding-d993b1b0.cjs.dev.js +0 -309
  460. package/dist/Equal-281b6ca8.cjs.dev.js +0 -71
  461. package/dist/Equal-ce9977a8.cjs.prod.js +0 -71
  462. package/dist/Equivalence-0bc84518.cjs.prod.js +0 -238
  463. package/dist/Equivalence-de7a0d51.cjs.dev.js +0 -238
  464. package/dist/Error-2ec0b140.cjs.prod.js +0 -57
  465. package/dist/Error-71850b6f.cjs.dev.js +0 -57
  466. package/dist/Exit-720d2786.cjs.prod.js +0 -408
  467. package/dist/Exit-b702e23f.cjs.dev.js +0 -408
  468. package/dist/Fiber-8c99b572.cjs.prod.js +0 -521
  469. package/dist/Fiber-93d51baf.cjs.dev.js +0 -521
  470. package/dist/FiberRef-8e944b1e.cjs.prod.js +0 -385
  471. package/dist/FiberRef-edb41545.cjs.dev.js +0 -385
  472. package/dist/FiberRefs-802c55f6.cjs.prod.js +0 -135
  473. package/dist/FiberRefs-ec1734cb.cjs.dev.js +0 -135
  474. package/dist/FiberRefsPatch-db52f5a6.cjs.prod.js +0 -90
  475. package/dist/FiberRefsPatch-efbeff91.cjs.dev.js +0 -90
  476. package/dist/FiberStatus-b82dad24.cjs.prod.js +0 -197
  477. package/dist/FiberStatus-bac7d58d.cjs.dev.js +0 -197
  478. package/dist/Function-2e6b0cda.cjs.prod.js +0 -538
  479. package/dist/Function-41ce433d.cjs.dev.js +0 -538
  480. package/dist/GlobalValue-81ab6908.cjs.dev.js +0 -28
  481. package/dist/GlobalValue-cb645c99.cjs.prod.js +0 -28
  482. package/dist/GroupBy-15649e19.cjs.dev.js +0 -79
  483. package/dist/GroupBy-342eec35.cjs.prod.js +0 -79
  484. package/dist/HKT-2cc79e63.cjs.dev.js +0 -7
  485. package/dist/HKT-d682535d.cjs.prod.js +0 -7
  486. package/dist/Hash-1bd73210.cjs.prod.js +0 -192
  487. package/dist/Hash-bd154268.cjs.dev.js +0 -192
  488. package/dist/HashMap-12668911.cjs.prod.js +0 -361
  489. package/dist/HashMap-68e290b6.cjs.dev.js +0 -361
  490. package/dist/HashSet-6978c08e.cjs.dev.js +0 -283
  491. package/dist/HashSet-c40a52b1.cjs.prod.js +0 -283
  492. package/dist/Hub-17f075d3.cjs.dev.js +0 -1280
  493. package/dist/Hub-c89028e9.cjs.prod.js +0 -1280
  494. package/dist/Inspectable-3c4a0f5d.cjs.prod.js +0 -50
  495. package/dist/Inspectable-ac929af4.cjs.dev.js +0 -50
  496. package/dist/KeyedPool-44b820c5.cjs.dev.js +0 -282
  497. package/dist/KeyedPool-89ab8fef.cjs.prod.js +0 -282
  498. package/dist/Layer-1cdc4ae0.cjs.prod.js +0 -688
  499. package/dist/Layer-d30c27fd.cjs.dev.js +0 -688
  500. package/dist/List-c6ea7efe.cjs.dev.js +0 -912
  501. package/dist/List-d9775087.cjs.prod.js +0 -912
  502. package/dist/LogLevel-83df6f42.cjs.prod.js +0 -240
  503. package/dist/LogLevel-91738879.cjs.dev.js +0 -240
  504. package/dist/LogSpan-c905a192.cjs.prod.js +0 -46
  505. package/dist/LogSpan-e345ba58.cjs.dev.js +0 -46
  506. package/dist/Logger-70b9b704.cjs.prod.js +0 -275
  507. package/dist/Logger-e4460422.cjs.dev.js +0 -275
  508. package/dist/Metric-17f4b13c.cjs.prod.js +0 -488
  509. package/dist/Metric-f6bae70a.cjs.dev.js +0 -488
  510. package/dist/MetricBoundaries-cf5df220.cjs.prod.js +0 -68
  511. package/dist/MetricBoundaries-f5f5aae1.cjs.dev.js +0 -68
  512. package/dist/MetricHook-3104e93b.cjs.dev.js +0 -90
  513. package/dist/MetricHook-efd05d72.cjs.prod.js +0 -90
  514. package/dist/MetricKey-9cfcaec8.cjs.prod.js +0 -130
  515. package/dist/MetricKey-c3ba437e.cjs.dev.js +0 -130
  516. package/dist/MetricKeyType-6d2d9036.cjs.prod.js +0 -187
  517. package/dist/MetricKeyType-c1d7ebe8.cjs.dev.js +0 -187
  518. package/dist/MetricLabel-6a1886c6.cjs.dev.js +0 -53
  519. package/dist/MetricLabel-7e1d569e.cjs.prod.js +0 -53
  520. package/dist/MetricPair-658ab13d.cjs.dev.js +0 -50
  521. package/dist/MetricPair-aec13967.cjs.prod.js +0 -50
  522. package/dist/MetricPolling-57dfc966.cjs.dev.js +0 -177
  523. package/dist/MetricPolling-cc8ab4df.cjs.prod.js +0 -177
  524. package/dist/MetricRegistry-e4af936b.cjs.dev.js +0 -38
  525. package/dist/MetricRegistry-ff6df283.cjs.prod.js +0 -38
  526. package/dist/MetricState-b65340a4.cjs.dev.js +0 -191
  527. package/dist/MetricState-bd6a5001.cjs.prod.js +0 -191
  528. package/dist/MutableHashMap-74e83e84.cjs.dev.js +0 -154
  529. package/dist/MutableHashMap-95493edb.cjs.prod.js +0 -154
  530. package/dist/MutableHashSet-780dfd63.cjs.prod.js +0 -110
  531. package/dist/MutableHashSet-ec8d7cc4.cjs.dev.js +0 -110
  532. package/dist/MutableList-58124ef2.cjs.dev.js +0 -296
  533. package/dist/MutableList-732af09a.cjs.prod.js +0 -296
  534. package/dist/MutableQueue-0e9f2466.cjs.dev.js +0 -215
  535. package/dist/MutableQueue-f8aba856.cjs.prod.js +0 -215
  536. package/dist/MutableRef-4a2f1f23.cjs.prod.js +0 -194
  537. package/dist/MutableRef-724c4082.cjs.dev.js +0 -194
  538. package/dist/NonEmptyIterable-418cef14.cjs.prod.js +0 -36
  539. package/dist/NonEmptyIterable-bb452f41.cjs.dev.js +0 -36
  540. package/dist/Number-588f6483.cjs.dev.js +0 -417
  541. package/dist/Number-cb2ba2e8.cjs.prod.js +0 -417
  542. package/dist/Option-02025c86.cjs.prod.js +0 -1198
  543. package/dist/Option-03997d77.cjs.dev.js +0 -1198
  544. package/dist/Order-28bdebd2.cjs.dev.js +0 -321
  545. package/dist/Order-8a112bfb.cjs.prod.js +0 -321
  546. package/dist/Ordering-60bf9127.cjs.prod.js +0 -104
  547. package/dist/Ordering-b955b746.cjs.dev.js +0 -104
  548. package/dist/Pipeable-4698db72.cjs.dev.js +0 -52
  549. package/dist/Pipeable-d3ec6711.cjs.prod.js +0 -52
  550. package/dist/Pool-9d1076d0.cjs.prod.js +0 -122
  551. package/dist/Pool-c55003ad.cjs.dev.js +0 -122
  552. package/dist/Predicate-9e859c9c.cjs.dev.js +0 -718
  553. package/dist/Predicate-daa86e61.cjs.prod.js +0 -718
  554. package/dist/Queue-5cd64a6d.cjs.prod.js +0 -394
  555. package/dist/Queue-bc7bd323.cjs.dev.js +0 -394
  556. package/dist/Random-0645cf02.cjs.prod.js +0 -104
  557. package/dist/Random-a321de88.cjs.dev.js +0 -104
  558. package/dist/ReadonlyArray-48949ee7.cjs.dev.js +0 -1721
  559. package/dist/ReadonlyArray-8157f697.cjs.prod.js +0 -1721
  560. package/dist/ReadonlyRecord-605a625b.cjs.dev.js +0 -568
  561. package/dist/ReadonlyRecord-8db8bada.cjs.prod.js +0 -568
  562. package/dist/RedBlackTree-e6bd147c.cjs.dev.js +0 -1669
  563. package/dist/RedBlackTree-eb41ea8a.cjs.prod.js +0 -1669
  564. package/dist/Reloadable-0edff6c9.cjs.dev.js +0 -169
  565. package/dist/Reloadable-b8258af1.cjs.prod.js +0 -169
  566. package/dist/Request-a6ad9d9b.cjs.prod.js +0 -190
  567. package/dist/Request-e36e5b23.cjs.dev.js +0 -190
  568. package/dist/RequestBlock-2901e863.cjs.dev.js +0 -124
  569. package/dist/RequestBlock-67fcbe9d.cjs.prod.js +0 -124
  570. package/dist/RequestResolver-dd99257a.cjs.prod.js +0 -233
  571. package/dist/RequestResolver-f7c90ef8.cjs.dev.js +0 -233
  572. package/dist/Resource-6244a4a2.cjs.prod.js +0 -118
  573. package/dist/Resource-95a6d6d3.cjs.dev.js +0 -118
  574. package/dist/Runtime-a1902a53.cjs.dev.js +0 -191
  575. package/dist/Runtime-e35482c6.cjs.prod.js +0 -191
  576. package/dist/RuntimeFlags-1bd7be71.cjs.prod.js +0 -381
  577. package/dist/RuntimeFlags-33abd026.cjs.dev.js +0 -381
  578. package/dist/STM-18b06ffb.cjs.dev.js +0 -1447
  579. package/dist/STM-698be88d.cjs.prod.js +0 -1447
  580. package/dist/Schedule-2ab499ea.cjs.dev.js +0 -1159
  581. package/dist/Schedule-2ed66272.cjs.prod.js +0 -1159
  582. package/dist/ScheduleDecision-369f2d2b.cjs.prod.js +0 -106
  583. package/dist/ScheduleDecision-ba8d0e87.cjs.dev.js +0 -106
  584. package/dist/ScheduleInterval-51f42533.cjs.dev.js +0 -244
  585. package/dist/ScheduleInterval-78037484.cjs.prod.js +0 -244
  586. package/dist/ScheduleIntervals-b0bfcf3b.cjs.dev.js +0 -265
  587. package/dist/ScheduleIntervals-db13140c.cjs.prod.js +0 -265
  588. package/dist/Scheduler-23a6506c.cjs.dev.js +0 -358
  589. package/dist/Scheduler-f0877070.cjs.prod.js +0 -358
  590. package/dist/Scope-90083792.cjs.dev.js +0 -143
  591. package/dist/Scope-e35df038.cjs.prod.js +0 -143
  592. package/dist/ScopedCache-514f4e7c.cjs.prod.js +0 -467
  593. package/dist/ScopedCache-74a8fce5.cjs.dev.js +0 -467
  594. package/dist/ScopedRef-aab226df.cjs.prod.js +0 -87
  595. package/dist/ScopedRef-d3264ff1.cjs.dev.js +0 -87
  596. package/dist/Sink-9261d74a.cjs.dev.js +0 -1215
  597. package/dist/Sink-cff4b341.cjs.prod.js +0 -1215
  598. package/dist/SortedMap-bb3311c3.cjs.prod.js +0 -210
  599. package/dist/SortedMap-f452cc44.cjs.dev.js +0 -210
  600. package/dist/SortedSet-424670fe.cjs.prod.js +0 -311
  601. package/dist/SortedSet-f90b14a2.cjs.dev.js +0 -311
  602. package/dist/Stream-6d90b2ae.cjs.prod.js +0 -3469
  603. package/dist/Stream-93b679da.cjs.dev.js +0 -3469
  604. package/dist/StreamEmit-a10e1de5.cjs.prod.js +0 -7
  605. package/dist/StreamEmit-ec1da471.cjs.dev.js +0 -7
  606. package/dist/String-23b18ca9.cjs.prod.js +0 -694
  607. package/dist/String-830aaa3e.cjs.dev.js +0 -694
  608. package/dist/Struct-14648d76.cjs.dev.js +0 -141
  609. package/dist/Struct-c6b00f29.cjs.prod.js +0 -141
  610. package/dist/SubscriptionRef-751fcfe1.cjs.dev.js +0 -269
  611. package/dist/SubscriptionRef-e03f691a.cjs.prod.js +0 -269
  612. package/dist/Supervisor-1b659cf4.cjs.prod.js +0 -170
  613. package/dist/Supervisor-edbd5163.cjs.dev.js +0 -170
  614. package/dist/Symbol-55d0b3d8.cjs.prod.js +0 -40
  615. package/dist/Symbol-5d74a5f2.cjs.dev.js +0 -40
  616. package/dist/SynchronizedRef-55ff7bb2.cjs.prod.js +0 -212
  617. package/dist/SynchronizedRef-61c3bd6d.cjs.dev.js +0 -212
  618. package/dist/TArray-b0c09907.cjs.dev.js +0 -455
  619. package/dist/TArray-cded8951.cjs.prod.js +0 -455
  620. package/dist/TDeferred-030586e1.cjs.dev.js +0 -129
  621. package/dist/TDeferred-f62d1da6.cjs.prod.js +0 -129
  622. package/dist/THub-0321bde2.cjs.dev.js +0 -570
  623. package/dist/THub-634ffcd8.cjs.prod.js +0 -570
  624. package/dist/TMap-67a5ea40.cjs.dev.js +0 -463
  625. package/dist/TMap-8c5c3d9b.cjs.prod.js +0 -463
  626. package/dist/TPriorityQueue-4af362f4.cjs.dev.js +0 -381
  627. package/dist/TPriorityQueue-ec4cfbba.cjs.prod.js +0 -381
  628. package/dist/TQueue-52584284.cjs.dev.js +0 -353
  629. package/dist/TQueue-85f6bcbb.cjs.prod.js +0 -353
  630. package/dist/TRandom-265453cb.cjs.dev.js +0 -203
  631. package/dist/TRandom-d9e010c9.cjs.prod.js +0 -203
  632. package/dist/TReentrantLock-6a3d4156.cjs.dev.js +0 -456
  633. package/dist/TReentrantLock-86796969.cjs.prod.js +0 -456
  634. package/dist/TRef-7eb2bee7.cjs.prod.js +0 -152
  635. package/dist/TRef-c862b660.cjs.dev.js +0 -152
  636. package/dist/TSemaphore-9b7d229c.cjs.prod.js +0 -197
  637. package/dist/TSemaphore-c82fb2cd.cjs.dev.js +0 -197
  638. package/dist/TSet-7324f8a5.cjs.prod.js +0 -444
  639. package/dist/TSet-b13e57f6.cjs.dev.js +0 -444
  640. package/dist/Take-27322346.cjs.dev.js +0 -236
  641. package/dist/Take-f7fb5f03.cjs.prod.js +0 -236
  642. package/dist/TestAnnotation-73be7a68.cjs.dev.js +0 -135
  643. package/dist/TestAnnotation-b9b93d03.cjs.prod.js +0 -135
  644. package/dist/TestAnnotationMap-80c87410.cjs.dev.js +0 -125
  645. package/dist/TestAnnotationMap-e946bab5.cjs.prod.js +0 -125
  646. package/dist/TestAnnotations-10747778.cjs.prod.js +0 -97
  647. package/dist/TestAnnotations-f13982a3.cjs.dev.js +0 -97
  648. package/dist/TestClock-ca77e8d2.cjs.dev.js +0 -581
  649. package/dist/TestClock-d144bba1.cjs.prod.js +0 -581
  650. package/dist/TestConfig-1a73e844.cjs.prod.js +0 -37
  651. package/dist/TestConfig-e5ffa946.cjs.dev.js +0 -37
  652. package/dist/TestContext-955af22b.cjs.prod.js +0 -41
  653. package/dist/TestContext-dd910687.cjs.dev.js +0 -41
  654. package/dist/TestLive-93f78882.cjs.dev.js +0 -60
  655. package/dist/TestLive-ea9968d7.cjs.prod.js +0 -60
  656. package/dist/TestServices-64a29e2a.cjs.prod.js +0 -341
  657. package/dist/TestServices-f88bbc6c.cjs.dev.js +0 -341
  658. package/dist/TestSized-16e67d53.cjs.prod.js +0 -64
  659. package/dist/TestSized-d0b7100b.cjs.dev.js +0 -64
  660. package/dist/Tracer-64cf6419.cjs.prod.js +0 -81
  661. package/dist/Tracer-81751f09.cjs.dev.js +0 -81
  662. package/dist/Tuple-27ecf3a1.cjs.prod.js +0 -199
  663. package/dist/Tuple-75d2a389.cjs.dev.js +0 -199
  664. package/dist/Types-1280d3aa.cjs.dev.js +0 -7
  665. package/dist/Types-3a58df45.cjs.prod.js +0 -7
  666. package/dist/Unify-99be0499.cjs.dev.js +0 -48
  667. package/dist/Unify-e86fd412.cjs.prod.js +0 -48
  668. package/dist/Utils-864e1d48.cjs.prod.js +0 -370
  669. package/dist/Utils-b0c14d1b.cjs.dev.js +0 -370
@@ -2,82 +2,1140 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- require('../../dist/Equal-281b6ca8.cjs.dev.js');
6
- require('../../dist/Equivalence-de7a0d51.cjs.dev.js');
7
- require('../../dist/Function-41ce433d.cjs.dev.js');
8
- require('../../dist/Either-9c349424.cjs.dev.js');
9
- require('../../dist/Number-588f6483.cjs.dev.js');
10
- require('../../dist/Order-28bdebd2.cjs.dev.js');
11
- require('../../dist/Utils-b0c14d1b.cjs.dev.js');
12
- var Option_dist_effectOption = require('../../dist/Option-03997d77.cjs.dev.js');
13
- require('../../dist/Hash-bd154268.cjs.dev.js');
14
- require('../../dist/GlobalValue-81ab6908.cjs.dev.js');
15
- require('../../dist/Inspectable-ac929af4.cjs.dev.js');
16
- require('../../dist/Effectable-a6403e5f.cjs.dev.js');
17
- require('../../dist/Data-85559fb3.cjs.dev.js');
18
- require('../../dist/Pipeable-4698db72.cjs.dev.js');
19
- require('../../dist/Predicate-9e859c9c.cjs.dev.js');
20
-
21
-
22
-
23
- exports.Do = Option_dist_effectOption.Do;
24
- exports.TypeId = Option_dist_effectOption.TypeId;
25
- exports.all = Option_dist_effectOption.all;
26
- exports.ap = Option_dist_effectOption.ap;
27
- exports.as = Option_dist_effectOption.as;
28
- exports.asUnit = Option_dist_effectOption.asUnit;
29
- exports.bind = Option_dist_effectOption.bind;
30
- exports.bindTo = Option_dist_effectOption.bindTo;
31
- exports.composeK = Option_dist_effectOption.composeK;
32
- exports.contains = Option_dist_effectOption.contains;
33
- exports.containsWith = Option_dist_effectOption.containsWith;
34
- exports.divide = Option_dist_effectOption.divide;
35
- exports.exists = Option_dist_effectOption.exists;
36
- exports.filter = Option_dist_effectOption.filter;
37
- exports.filterMap = Option_dist_effectOption.filterMap;
38
- exports.firstSomeOf = Option_dist_effectOption.firstSomeOf;
39
- exports.flatMap = Option_dist_effectOption.flatMap;
40
- exports.flatMapNullable = Option_dist_effectOption.flatMapNullable;
41
- exports.flatten = Option_dist_effectOption.flatten;
42
- exports.fromIterable = Option_dist_effectOption.fromIterable;
43
- exports.fromNullable = Option_dist_effectOption.fromNullable;
44
- exports.gen = Option_dist_effectOption.gen;
45
- exports.getEquivalence = Option_dist_effectOption.getEquivalence;
46
- exports.getLeft = Option_dist_effectOption.getLeft;
47
- exports.getOrElse = Option_dist_effectOption.getOrElse;
48
- exports.getOrNull = Option_dist_effectOption.getOrNull;
49
- exports.getOrThrow = Option_dist_effectOption.getOrThrow;
50
- exports.getOrThrowWith = Option_dist_effectOption.getOrThrowWith;
51
- exports.getOrUndefined = Option_dist_effectOption.getOrUndefined;
52
- exports.getOrder = Option_dist_effectOption.getOrder;
53
- exports.getRight = Option_dist_effectOption.getRight;
54
- exports.isNone = Option_dist_effectOption.isNone;
55
- exports.isOption = Option_dist_effectOption.isOption;
56
- exports.isSome = Option_dist_effectOption.isSome;
57
- exports["let"] = Option_dist_effectOption.let_;
58
- exports.lift2 = Option_dist_effectOption.lift2;
59
- exports.liftNullable = Option_dist_effectOption.liftNullable;
60
- exports.liftPredicate = Option_dist_effectOption.liftPredicate;
61
- exports.liftThrowable = Option_dist_effectOption.liftThrowable;
62
- exports.map = Option_dist_effectOption.map;
63
- exports.match = Option_dist_effectOption.match;
64
- exports.multiply = Option_dist_effectOption.multiply;
65
- exports.multiplyCompact = Option_dist_effectOption.multiplyCompact;
66
- exports.none = Option_dist_effectOption.none;
67
- exports.orElse = Option_dist_effectOption.orElse;
68
- exports.orElseEither = Option_dist_effectOption.orElseEither;
69
- exports.partitionMap = Option_dist_effectOption.partitionMap;
70
- exports.product = Option_dist_effectOption.product;
71
- exports.productMany = Option_dist_effectOption.productMany;
72
- exports.reduceCompact = Option_dist_effectOption.reduceCompact;
73
- exports.some = Option_dist_effectOption.some;
74
- exports.subtract = Option_dist_effectOption.subtract;
75
- exports.sum = Option_dist_effectOption.sum;
76
- exports.sumCompact = Option_dist_effectOption.sumCompact;
77
- exports.tap = Option_dist_effectOption.tap;
78
- exports.toArray = Option_dist_effectOption.toArray;
79
- exports.toRefinement = Option_dist_effectOption.toRefinement;
80
- exports.unit = Option_dist_effectOption.unit;
81
- exports.zipLeft = Option_dist_effectOption.zipLeft;
82
- exports.zipRight = Option_dist_effectOption.zipRight;
83
- exports.zipWith = Option_dist_effectOption.zipWith;
5
+ var Equal_dist_effectEqual = require('../../Equal/dist/effect-Equal.cjs.dev.js');
6
+ var Equivalence_dist_effectEquivalence = require('../../Equivalence/dist/effect-Equivalence.cjs.dev.js');
7
+ var Function_dist_effectFunction = require('../../Function/dist/effect-Function.cjs.dev.js');
8
+ var Either = require('../../dist/Either-12bbe00c.cjs.dev.js');
9
+ var Number_dist_effectNumber = require('../../Number/dist/effect-Number.cjs.dev.js');
10
+ var Order_dist_effectOrder = require('../../Order/dist/effect-Order.cjs.dev.js');
11
+ var Utils_dist_effectUtils = require('../../Utils/dist/effect-Utils.cjs.dev.js');
12
+ require('../../Hash/dist/effect-Hash.cjs.dev.js');
13
+ require('../../GlobalValue/dist/effect-GlobalValue.cjs.dev.js');
14
+ require('../../Inspectable/dist/effect-Inspectable.cjs.dev.js');
15
+ require('../../dist/Effectable-2f022879.cjs.dev.js');
16
+ require('../../Data/dist/effect-Data.cjs.dev.js');
17
+ require('../../Pipeable/dist/effect-Pipeable.cjs.dev.js');
18
+ require('../../Predicate/dist/effect-Predicate.cjs.dev.js');
19
+
20
+ /**
21
+ * @since 2.0.0
22
+ */
23
+
24
+ /**
25
+ * @category models
26
+ * @since 2.0.0
27
+ */
28
+
29
+ /**
30
+ * @category symbols
31
+ * @since 2.0.0
32
+ */
33
+ const TypeId = /*#__PURE__*/Symbol.for("effect/Option");
34
+
35
+ /**
36
+ * @category symbols
37
+ * @since 2.0.0
38
+ */
39
+
40
+ /**
41
+ * @category models
42
+ * @since 2.0.0
43
+ */
44
+
45
+ /**
46
+ * @category models
47
+ * @since 2.0.0
48
+ */
49
+
50
+ /**
51
+ * @category models
52
+ * @since 2.0.0
53
+ */
54
+
55
+ /**
56
+ * @category models
57
+ * @since 2.0.0
58
+ */
59
+
60
+ /**
61
+ * @category type lambdas
62
+ * @since 2.0.0
63
+ */
64
+
65
+ /**
66
+ * Creates a new `Option` that represents the absence of a value.
67
+ *
68
+ * @category constructors
69
+ * @since 2.0.0
70
+ */
71
+ const none = () => Either.none;
72
+
73
+ /**
74
+ * Creates a new `Option` that wraps the given value.
75
+ *
76
+ * @param value - The value to wrap.
77
+ *
78
+ * @category constructors
79
+ * @since 2.0.0
80
+ */
81
+ const some = Either.some;
82
+
83
+ /**
84
+ * Tests if a value is a `Option`.
85
+ *
86
+ * @param input - The value to check.
87
+ *
88
+ * @example
89
+ * import { some, none, isOption } from 'effect/Option'
90
+ *
91
+ * assert.deepStrictEqual(isOption(some(1)), true)
92
+ * assert.deepStrictEqual(isOption(none()), true)
93
+ * assert.deepStrictEqual(isOption({}), false)
94
+ *
95
+ * @category guards
96
+ * @since 2.0.0
97
+ */
98
+ const isOption = Either.isOption;
99
+
100
+ /**
101
+ * Determine if a `Option` is a `None`.
102
+ *
103
+ * @param self - The `Option` to check.
104
+ *
105
+ * @example
106
+ * import { some, none, isNone } from 'effect/Option'
107
+ *
108
+ * assert.deepStrictEqual(isNone(some(1)), false)
109
+ * assert.deepStrictEqual(isNone(none()), true)
110
+ *
111
+ * @category guards
112
+ * @since 2.0.0
113
+ */
114
+ const isNone = Either.isNone;
115
+
116
+ /**
117
+ * Determine if a `Option` is a `Some`.
118
+ *
119
+ * @param self - The `Option` to check.
120
+ *
121
+ * @example
122
+ * import { some, none, isSome } from 'effect/Option'
123
+ *
124
+ * assert.deepStrictEqual(isSome(some(1)), true)
125
+ * assert.deepStrictEqual(isSome(none()), false)
126
+ *
127
+ * @category guards
128
+ * @since 2.0.0
129
+ */
130
+ const isSome = Either.isSome;
131
+
132
+ /**
133
+ * Matches the given `Option` and returns either the provided `onNone` value or the result of the provided `onSome`
134
+ * function when passed the `Option`'s value.
135
+ *
136
+ * @param self - The `Option` to match
137
+ * @param onNone - The value to be returned if the `Option` is `None`
138
+ * @param onSome - The function to be called if the `Option` is `Some`, it will be passed the `Option`'s value and its result will be returned
139
+ *
140
+ * @example
141
+ * import { some, none, match } from 'effect/Option'
142
+ * import { pipe } from "effect/Function"
143
+ *
144
+ * assert.deepStrictEqual(
145
+ * pipe(some(1), match({ onNone: () => 'a none', onSome: (a) => `a some containing ${a}` })),
146
+ * 'a some containing 1'
147
+ * )
148
+ *
149
+ * assert.deepStrictEqual(
150
+ * pipe(none(), match({ onNone: () => 'a none', onSome: (a) => `a some containing ${a}` })),
151
+ * 'a none'
152
+ * )
153
+ *
154
+ * @category pattern matching
155
+ * @since 2.0.0
156
+ */
157
+ const match = /*#__PURE__*/Function_dist_effectFunction.dual(2, (self, {
158
+ onNone,
159
+ onSome
160
+ }) => isNone(self) ? onNone() : onSome(self.value));
161
+
162
+ /**
163
+ * Returns a type guard from a `Option` returning function.
164
+ * This function ensures that a type guard definition is type-safe.
165
+ *
166
+ * @example
167
+ * import * as O from "effect/Option"
168
+ *
169
+ * const parsePositive = (n: number): O.Option<number> =>
170
+ * n > 0 ? O.some(n) : O.none()
171
+ *
172
+ * const isPositive = O.toRefinement(parsePositive)
173
+ *
174
+ * assert.deepStrictEqual(isPositive(1), true)
175
+ * assert.deepStrictEqual(isPositive(-1), false)
176
+ *
177
+ * @category conversions
178
+ * @since 2.0.0
179
+ */
180
+ const toRefinement = f => a => isSome(f(a));
181
+
182
+ /**
183
+ * Converts an `Iterable` of values into an `Option`. Returns the first value of the `Iterable` wrapped in a `Some`
184
+ * if the `Iterable` is not empty, otherwise returns `None`.
185
+ *
186
+ * @param collection - The `Iterable` to be converted to an `Option`.
187
+ *
188
+ * @example
189
+ * import { fromIterable, some, none } from 'effect/Option'
190
+ *
191
+ * assert.deepStrictEqual(fromIterable([1, 2, 3]), some(1))
192
+ * assert.deepStrictEqual(fromIterable([]), none())
193
+ *
194
+ * @category conversions
195
+ * @since 2.0.0
196
+ */
197
+ const fromIterable = collection => {
198
+ for (const a of collection) {
199
+ return some(a);
200
+ }
201
+ return none();
202
+ };
203
+
204
+ /**
205
+ * Converts a `Either` to an `Option` discarding the error.
206
+ *
207
+ * Alias of {@link fromEither}.
208
+ *
209
+ * @example
210
+ * import * as O from "effect/Option"
211
+ * import * as E from "effect/Either"
212
+ *
213
+ * assert.deepStrictEqual(O.getRight(E.right('ok')), O.some('ok'))
214
+ * assert.deepStrictEqual(O.getRight(E.left('err')), O.none())
215
+ *
216
+ * @category conversions
217
+ * @since 2.0.0
218
+ */
219
+ const getRight = Either.getRight;
220
+
221
+ /**
222
+ * Converts a `Either` to an `Option` discarding the value.
223
+ *
224
+ * @example
225
+ * import * as O from "effect/Option"
226
+ * import * as E from "effect/Either"
227
+ *
228
+ * assert.deepStrictEqual(O.getLeft(E.right("ok")), O.none())
229
+ * assert.deepStrictEqual(O.getLeft(E.left("a")), O.some("a"))
230
+ *
231
+ * @category conversions
232
+ * @since 2.0.0
233
+ */
234
+ const getLeft = Either.getLeft;
235
+
236
+ /**
237
+ * Returns the value of the `Option` if it is `Some`, otherwise returns `onNone`
238
+ *
239
+ * @param self - The `Option` to get the value of.
240
+ * @param onNone - Function that returns the default value to return if the `Option` is `None`.
241
+ *
242
+ * @example
243
+ * import { some, none, getOrElse } from 'effect/Option'
244
+ * import { pipe } from "effect/Function"
245
+ *
246
+ * assert.deepStrictEqual(pipe(some(1), getOrElse(() => 0)), 1)
247
+ * assert.deepStrictEqual(pipe(none(), getOrElse(() => 0)), 0)
248
+ *
249
+ * @category getters
250
+ * @since 2.0.0
251
+ */
252
+ const getOrElse = /*#__PURE__*/Function_dist_effectFunction.dual(2, (self, onNone) => isNone(self) ? onNone() : self.value);
253
+
254
+ /**
255
+ * Returns the provided `Option` `that` if `self` is `None`, otherwise returns `self`.
256
+ *
257
+ * @param self - The first `Option` to be checked.
258
+ * @param that - The `Option` to return if `self` is `None`.
259
+ *
260
+ * @example
261
+ * import * as O from "effect/Option"
262
+ * import { pipe } from "effect/Function"
263
+ *
264
+ * assert.deepStrictEqual(
265
+ * pipe(
266
+ * O.none(),
267
+ * O.orElse(() => O.none())
268
+ * ),
269
+ * O.none()
270
+ * )
271
+ * assert.deepStrictEqual(
272
+ * pipe(
273
+ * O.some('a'),
274
+ * O.orElse(() => O.none())
275
+ * ),
276
+ * O.some('a')
277
+ * )
278
+ * assert.deepStrictEqual(
279
+ * pipe(
280
+ * O.none(),
281
+ * O.orElse(() => O.some('b'))
282
+ * ),
283
+ * O.some('b')
284
+ * )
285
+ * assert.deepStrictEqual(
286
+ * pipe(
287
+ * O.some('a'),
288
+ * O.orElse(() => O.some('b'))
289
+ * ),
290
+ * O.some('a')
291
+ * )
292
+ *
293
+ * @category error handling
294
+ * @since 2.0.0
295
+ */
296
+ const orElse = /*#__PURE__*/Function_dist_effectFunction.dual(2, (self, that) => isNone(self) ? that() : self);
297
+
298
+ /**
299
+ * Similar to `orElse`, but instead of returning a simple union, it returns an `Either` object,
300
+ * which contains information about which of the two `Option`s has been chosen.
301
+ *
302
+ * This is useful when it's important to know whether the value was retrieved from the first `Option` or the second option.
303
+ *
304
+ * @param self - The first `Option` to be checked.
305
+ * @param that - The second `Option` to be considered if the first `Option` is `None`.
306
+ *
307
+ * @category error handling
308
+ * @since 2.0.0
309
+ */
310
+ const orElseEither = /*#__PURE__*/Function_dist_effectFunction.dual(2, (self, that) => isNone(self) ? map(that(), Either.right) : map(self, Either.left));
311
+
312
+ /**
313
+ * Given an `Iterable` collection of `Option`s, returns the first `Some` found in the collection.
314
+ *
315
+ * @param collection - An iterable collection of `Option` to be searched.
316
+ *
317
+ * @example
318
+ * import * as O from "effect/Option"
319
+ *
320
+ * assert.deepStrictEqual(O.firstSomeOf([O.none(), O.some(1), O.some(2)]), O.some(1))
321
+ *
322
+ * @category error handling
323
+ * @since 2.0.0
324
+ */
325
+ const firstSomeOf = collection => {
326
+ let out = none();
327
+ for (out of collection) {
328
+ if (isSome(out)) {
329
+ return out;
330
+ }
331
+ }
332
+ return out;
333
+ };
334
+
335
+ /**
336
+ * Constructs a new `Option` from a nullable type. If the value is `null` or `undefined`, returns `None`, otherwise
337
+ * returns the value wrapped in a `Some`.
338
+ *
339
+ * @param nullableValue - The nullable value to be converted to an `Option`.
340
+ *
341
+ * @example
342
+ * import * as O from "effect/Option"
343
+ *
344
+ * assert.deepStrictEqual(O.fromNullable(undefined), O.none())
345
+ * assert.deepStrictEqual(O.fromNullable(null), O.none())
346
+ * assert.deepStrictEqual(O.fromNullable(1), O.some(1))
347
+ *
348
+ * @category conversions
349
+ * @since 2.0.0
350
+ */
351
+ const fromNullable = nullableValue => nullableValue == null ? none() : some(nullableValue);
352
+
353
+ /**
354
+ * This API is useful for lifting a function that returns `null` or `undefined` into the `Option` context.
355
+ *
356
+ * @example
357
+ * import * as O from "effect/Option"
358
+ *
359
+ * const parse = (s: string): number | undefined => {
360
+ * const n = parseFloat(s)
361
+ * return isNaN(n) ? undefined : n
362
+ * }
363
+ *
364
+ * const parseOption = O.liftNullable(parse)
365
+ *
366
+ * assert.deepStrictEqual(parseOption('1'), O.some(1))
367
+ * assert.deepStrictEqual(parseOption('not a number'), O.none())
368
+ *
369
+ * @category conversions
370
+ * @since 2.0.0
371
+ */
372
+ const liftNullable = f => (...a) => fromNullable(f(...a));
373
+
374
+ /**
375
+ * Returns the value of the `Option` if it is a `Some`, otherwise returns `null`.
376
+ *
377
+ * @param self - The `Option` to extract the value from.
378
+ *
379
+ * @example
380
+ * import * as O from "effect/Option"
381
+ *
382
+ * assert.deepStrictEqual(O.getOrNull(O.some(1)), 1)
383
+ * assert.deepStrictEqual(O.getOrNull(O.none()), null)
384
+ *
385
+ * @category getters
386
+ * @since 2.0.0
387
+ */
388
+ const getOrNull = /*#__PURE__*/getOrElse(Function_dist_effectFunction.constNull);
389
+
390
+ /**
391
+ * Returns the value of the `Option` if it is a `Some`, otherwise returns `undefined`.
392
+ *
393
+ * @param self - The `Option` to extract the value from.
394
+ *
395
+ * @example
396
+ * import * as O from "effect/Option"
397
+ *
398
+ * assert.deepStrictEqual(O.getOrUndefined(O.some(1)), 1)
399
+ * assert.deepStrictEqual(O.getOrUndefined(O.none()), undefined)
400
+ *
401
+ * @category getters
402
+ * @since 2.0.0
403
+ */
404
+ const getOrUndefined = /*#__PURE__*/getOrElse(Function_dist_effectFunction.constUndefined);
405
+
406
+ /**
407
+ * A utility function that lifts a function that throws exceptions into a function that returns an `Option`.
408
+ *
409
+ * This function is useful for any function that might throw an exception, allowing the developer to handle
410
+ * the exception in a more functional way.
411
+ *
412
+ * @param f - the function that can throw exceptions.
413
+ *
414
+ * @example
415
+ * import * as O from "effect/Option"
416
+ *
417
+ * const parse = O.liftThrowable(JSON.parse)
418
+ *
419
+ * assert.deepStrictEqual(parse("1"), O.some(1))
420
+ * assert.deepStrictEqual(parse(""), O.none())
421
+ *
422
+ * @category conversions
423
+ * @since 2.0.0
424
+ */
425
+ const liftThrowable = f => (...a) => {
426
+ try {
427
+ return some(f(...a));
428
+ } catch (e) {
429
+ return none();
430
+ }
431
+ };
432
+
433
+ /**
434
+ * Extracts the value of an `Option` or throws if the `Option` is `None`.
435
+ *
436
+ * If a default error is sufficient for your use case and you don't need to configure the thrown error, see {@link getOrThrow}.
437
+ *
438
+ * @param self - The `Option` to extract the value from.
439
+ * @param onNone - A function that will be called if the `Option` is `None`. It returns the error to be thrown.
440
+ *
441
+ * @example
442
+ * import * as O from "effect/Option"
443
+ *
444
+ * assert.deepStrictEqual(
445
+ * O.getOrThrowWith(O.some(1), () => new Error('Unexpected None')),
446
+ * 1
447
+ * )
448
+ * assert.throws(() => O.getOrThrowWith(O.none(), () => new Error('Unexpected None')))
449
+ *
450
+ * @category conversions
451
+ * @since 2.0.0
452
+ */
453
+ const getOrThrowWith = /*#__PURE__*/Function_dist_effectFunction.dual(2, (self, onNone) => {
454
+ if (isSome(self)) {
455
+ return self.value;
456
+ }
457
+ throw onNone();
458
+ });
459
+
460
+ /**
461
+ * Extracts the value of an `Option` or throws if the `Option` is `None`.
462
+ *
463
+ * The thrown error is a default error. To configure the error thrown, see {@link getOrThrowWith}.
464
+ *
465
+ * @param self - The `Option` to extract the value from.
466
+ * @throws `Error("getOrThrow called on a None")`
467
+ *
468
+ * @example
469
+ * import * as O from "effect/Option"
470
+ *
471
+ * assert.deepStrictEqual(O.getOrThrow(O.some(1)), 1)
472
+ * assert.throws(() => O.getOrThrow(O.none()))
473
+ *
474
+ * @category conversions
475
+ * @since 2.0.0
476
+ */
477
+ const getOrThrow = /*#__PURE__*/getOrThrowWith(() => new Error("getOrThrow called on a None"));
478
+
479
+ /**
480
+ * Maps the `Some` side of an `Option` value to a new `Option` value.
481
+ *
482
+ * @param self - An `Option` to map
483
+ * @param f - The function to map over the value of the `Option`
484
+ *
485
+ * @category transforming
486
+ * @since 2.0.0
487
+ */
488
+ const map = /*#__PURE__*/Function_dist_effectFunction.dual(2, (self, f) => isNone(self) ? none() : some(f(self.value)));
489
+
490
+ /**
491
+ * Maps the `Some` value of this `Option` to the specified constant value.
492
+ *
493
+ * @category transforming
494
+ * @since 2.0.0
495
+ */
496
+ const as = /*#__PURE__*/Function_dist_effectFunction.dual(2, (self, b) => map(self, () => b));
497
+
498
+ /**
499
+ * Maps the `Some` value of this `Option` to the `void` constant value.
500
+ *
501
+ * This is useful when the value of the `Option` is not needed, but the presence or absence of the value is important.
502
+ *
503
+ * @category transforming
504
+ * @since 2.0.0
505
+ */
506
+ const asUnit = /*#__PURE__*/as(undefined);
507
+
508
+ /**
509
+ * @since 2.0.0
510
+ */
511
+ const unit = /*#__PURE__*/some(undefined);
512
+
513
+ /**
514
+ * Applies a function to the value of an `Option` and flattens the result, if the input is `Some`.
515
+ *
516
+ * @category transforming
517
+ * @since 2.0.0
518
+ */
519
+ const flatMap = /*#__PURE__*/Function_dist_effectFunction.dual(2, (self, f) => isNone(self) ? none() : f(self.value));
520
+
521
+ /**
522
+ * This is `flatMap` + `fromNullable`, useful when working with optional values.
523
+ *
524
+ * @example
525
+ * import { some, none, flatMapNullable } from 'effect/Option'
526
+ * import { pipe } from "effect/Function"
527
+ *
528
+ * interface Employee {
529
+ * company?: {
530
+ * address?: {
531
+ * street?: {
532
+ * name?: string
533
+ * }
534
+ * }
535
+ * }
536
+ * }
537
+ *
538
+ * const employee1: Employee = { company: { address: { street: { name: 'high street' } } } }
539
+ *
540
+ * assert.deepStrictEqual(
541
+ * pipe(
542
+ * some(employee1),
543
+ * flatMapNullable(employee => employee.company?.address?.street?.name),
544
+ * ),
545
+ * some('high street')
546
+ * )
547
+ *
548
+ * const employee2: Employee = { company: { address: { street: {} } } }
549
+ *
550
+ * assert.deepStrictEqual(
551
+ * pipe(
552
+ * some(employee2),
553
+ * flatMapNullable(employee => employee.company?.address?.street?.name),
554
+ * ),
555
+ * none()
556
+ * )
557
+ *
558
+ * @category transforming
559
+ * @since 2.0.0
560
+ */
561
+ const flatMapNullable = /*#__PURE__*/Function_dist_effectFunction.dual(2, (self, f) => isNone(self) ? none() : fromNullable(f(self.value)));
562
+
563
+ /**
564
+ * @category transforming
565
+ * @since 2.0.0
566
+ */
567
+ const flatten = /*#__PURE__*/flatMap(Function_dist_effectFunction.identity);
568
+
569
+ /**
570
+ * @category transforming
571
+ * @since 2.0.0
572
+ */
573
+ const zipRight = /*#__PURE__*/Function_dist_effectFunction.dual(2, (self, that) => flatMap(self, () => that));
574
+
575
+ /**
576
+ * @category transforming
577
+ * @since 2.0.0
578
+ */
579
+ const composeK = /*#__PURE__*/Function_dist_effectFunction.dual(2, (afb, bfc) => a => flatMap(afb(a), bfc));
580
+
581
+ /**
582
+ * Sequences the specified `that` `Option` but ignores its value.
583
+ *
584
+ * It is useful when we want to chain multiple operations, but only care about the result of `self`.
585
+ *
586
+ * @param that - The `Option` that will be ignored in the chain and discarded
587
+ * @param self - The `Option` we care about
588
+ *
589
+ * @category transforming
590
+ * @since 2.0.0
591
+ */
592
+ const zipLeft = /*#__PURE__*/Function_dist_effectFunction.dual(2, (self, that) => tap(self, () => that));
593
+
594
+ /**
595
+ * Applies the provided function `f` to the value of the `Option` if it is `Some` and returns the original `Option`
596
+ * unless `f` returns `None`, in which case it returns `None`.
597
+ *
598
+ * This function is useful for performing additional computations on the value of the input `Option` without affecting its value.
599
+ *
600
+ * @param f - Function to apply to the value of the `Option` if it is `Some`
601
+ * @param self - The `Option` to apply the function to
602
+ *
603
+ * @example
604
+ * import * as O from "effect/Option"
605
+ *
606
+ * const getInteger = (n: number) => Number.isInteger(n) ? O.some(n) : O.none()
607
+ *
608
+ * assert.deepStrictEqual(O.tap(O.none(), getInteger), O.none())
609
+ * assert.deepStrictEqual(O.tap(O.some(1), getInteger), O.some(1))
610
+ * assert.deepStrictEqual(O.tap(O.some(1.14), getInteger), O.none())
611
+ *
612
+ * @category transforming
613
+ * @since 2.0.0
614
+ */
615
+ const tap = /*#__PURE__*/Function_dist_effectFunction.dual(2, (self, f) => flatMap(self, a => map(f(a), () => a)));
616
+
617
+ /**
618
+ * @category combining
619
+ * @since 2.0.0
620
+ */
621
+ const product = (self, that) => isSome(self) && isSome(that) ? some([self.value, that.value]) : none();
622
+
623
+ /**
624
+ * @category combining
625
+ * @since 2.0.0
626
+ */
627
+ const productMany = (self, collection) => {
628
+ if (isNone(self)) {
629
+ return none();
630
+ }
631
+ const out = [self.value];
632
+ for (const o of collection) {
633
+ if (isNone(o)) {
634
+ return none();
635
+ }
636
+ out.push(o.value);
637
+ }
638
+ return some(out);
639
+ };
640
+
641
+ /**
642
+ * Takes a structure of `Option`s and returns an `Option` of values with the same structure.
643
+ *
644
+ * - If a tuple is supplied, then the returned `Option` will contain a tuple with the same length.
645
+ * - If a struct is supplied, then the returned `Option` will contain a struct with the same keys.
646
+ * - If an iterable is supplied, then the returned `Option` will contain an array.
647
+ *
648
+ * @param fields - the struct of `Option`s to be sequenced.
649
+ *
650
+ * @example
651
+ * import * as O from "effect/Option"
652
+ *
653
+ * assert.deepStrictEqual(O.all([O.some(1), O.some(2)]), O.some([1, 2]))
654
+ * assert.deepStrictEqual(O.all({ a: O.some(1), b: O.some("hello") }), O.some({ a: 1, b: "hello" }))
655
+ * assert.deepStrictEqual(O.all({ a: O.some(1), b: O.none() }), O.none())
656
+ *
657
+ * @category combining
658
+ * @since 2.0.0
659
+ */
660
+ // @ts-expect-error
661
+ const all = input => {
662
+ if (Symbol.iterator in input) {
663
+ const out = [];
664
+ for (const o of input) {
665
+ if (isNone(o)) {
666
+ return none();
667
+ }
668
+ out.push(o.value);
669
+ }
670
+ return some(out);
671
+ }
672
+ const out = {};
673
+ for (const key of Object.keys(input)) {
674
+ const o = input[key];
675
+ if (isNone(o)) {
676
+ return none();
677
+ }
678
+ out[key] = o.value;
679
+ }
680
+ return some(out);
681
+ };
682
+
683
+ /**
684
+ * Zips two `Option` values together using a provided function, returning a new `Option` of the result.
685
+ *
686
+ * @param self - The left-hand side of the zip operation
687
+ * @param that - The right-hand side of the zip operation
688
+ * @param f - The function used to combine the values of the two `Option`s
689
+ *
690
+ * @example
691
+ * import * as O from "effect/Option"
692
+ *
693
+ * type Complex = [number, number]
694
+ *
695
+ * const complex = (real: number, imaginary: number): Complex => [real, imaginary]
696
+ *
697
+ * assert.deepStrictEqual(O.zipWith(O.none(), O.none(), complex), O.none())
698
+ * assert.deepStrictEqual(O.zipWith(O.some(1), O.none(), complex), O.none())
699
+ * assert.deepStrictEqual(O.zipWith(O.none(), O.some(1), complex), O.none())
700
+ * assert.deepStrictEqual(O.zipWith(O.some(1), O.some(2), complex), O.some([1, 2]))
701
+ *
702
+ * assert.deepStrictEqual(O.zipWith(O.some(1), complex)(O.some(2)), O.some([2, 1]))
703
+ *
704
+ * @category combining
705
+ * @since 2.0.0
706
+ */
707
+ const zipWith = /*#__PURE__*/Function_dist_effectFunction.dual(3, (self, that, f) => map(product(self, that), ([a, b]) => f(a, b)));
708
+
709
+ /**
710
+ * @category combining
711
+ * @since 2.0.0
712
+ */
713
+ const ap = /*#__PURE__*/Function_dist_effectFunction.dual(2, (self, that) => zipWith(self, that, (f, a) => f(a)));
714
+
715
+ /**
716
+ * Reduces an `Iterable` of `Option<A>` to a single value of type `B`, elements that are `None` are ignored.
717
+ *
718
+ * @param self - The Iterable of `Option<A>` to be reduced.
719
+ * @param b - The initial value of the accumulator.
720
+ * @param f - The reducing function that takes the current accumulator value and the unwrapped value of an `Option<A>`.
721
+ *
722
+ * @example
723
+ * import { some, none, reduceCompact } from 'effect/Option'
724
+ * import { pipe } from "effect/Function"
725
+ *
726
+ * const iterable = [some(1), none(), some(2), none()]
727
+ * assert.deepStrictEqual(pipe(iterable, reduceCompact(0, (b, a) => b + a)), 3)
728
+ *
729
+ * @category folding
730
+ * @since 2.0.0
731
+ */
732
+ const reduceCompact = /*#__PURE__*/Function_dist_effectFunction.dual(3, (self, b, f) => {
733
+ let out = b;
734
+ for (const oa of self) {
735
+ if (isSome(oa)) {
736
+ out = f(out, oa.value);
737
+ }
738
+ }
739
+ return out;
740
+ });
741
+
742
+ /**
743
+ * Transforms an `Option` into an `Array`.
744
+ * If the input is `None`, an empty array is returned.
745
+ * If the input is `Some`, the value is wrapped in an array.
746
+ *
747
+ * @param self - The `Option` to convert to an array.
748
+ *
749
+ * @example
750
+ * import * as O from "effect/Option"
751
+ *
752
+ * assert.deepStrictEqual(O.toArray(O.some(1)), [1])
753
+ * assert.deepStrictEqual(O.toArray(O.none()), [])
754
+ *
755
+ * @category conversions
756
+ * @since 2.0.0
757
+ */
758
+ const toArray = self => isNone(self) ? [] : [self.value];
759
+
760
+ /**
761
+ * @category filtering
762
+ * @since 2.0.0
763
+ */
764
+ const partitionMap = /*#__PURE__*/Function_dist_effectFunction.dual(2, (self, f) => {
765
+ if (isNone(self)) {
766
+ return [none(), none()];
767
+ }
768
+ const e = f(self.value);
769
+ return Either.isLeft(e) ? [some(e.left), none()] : [none(), some(e.right)];
770
+ });
771
+
772
+ /**
773
+ * Maps over the value of an `Option` and filters out `None`s.
774
+ *
775
+ * Useful when in addition to filtering you also want to change the type of the `Option`.
776
+ *
777
+ * @param self - The `Option` to map over.
778
+ * @param f - A function to apply to the value of the `Option`.
779
+ *
780
+ * @example
781
+ * import * as O from "effect/Option"
782
+ *
783
+ * const evenNumber = (n: number) => n % 2 === 0 ? O.some(n) : O.none()
784
+ *
785
+ * assert.deepStrictEqual(O.filterMap(O.none(), evenNumber), O.none())
786
+ * assert.deepStrictEqual(O.filterMap(O.some(3), evenNumber), O.none())
787
+ * assert.deepStrictEqual(O.filterMap(O.some(2), evenNumber), O.some(2))
788
+ *
789
+ * @category filtering
790
+ * @since 2.0.0
791
+ */
792
+ const filterMap = /*#__PURE__*/Function_dist_effectFunction.dual(2, (self, f) => isNone(self) ? none() : f(self.value));
793
+
794
+ /**
795
+ * Filters an `Option` using a predicate. If the predicate is not satisfied or the `Option` is `None` returns `None`.
796
+ *
797
+ * If you need to change the type of the `Option` in addition to filtering, see `filterMap`.
798
+ *
799
+ * @param predicate - A predicate function to apply to the `Option` value.
800
+ * @param fb - The `Option` to filter.
801
+ *
802
+ * @example
803
+ * import * as O from "effect/Option"
804
+ *
805
+ * // predicate
806
+ * const isEven = (n: number) => n % 2 === 0
807
+ *
808
+ * assert.deepStrictEqual(O.filter(O.none(), isEven), O.none())
809
+ * assert.deepStrictEqual(O.filter(O.some(3), isEven), O.none())
810
+ * assert.deepStrictEqual(O.filter(O.some(2), isEven), O.some(2))
811
+ *
812
+ * // refinement
813
+ * const isNumber = (v: unknown): v is number => typeof v === "number"
814
+ *
815
+ * assert.deepStrictEqual(O.filter(O.none(), isNumber), O.none())
816
+ * assert.deepStrictEqual(O.filter(O.some('hello'), isNumber), O.none())
817
+ * assert.deepStrictEqual(O.filter(O.some(2), isNumber), O.some(2))
818
+ *
819
+ * @category filtering
820
+ * @since 2.0.0
821
+ */
822
+ const filter = /*#__PURE__*/Function_dist_effectFunction.dual(2, (self, predicate) => filterMap(self, b => predicate(b) ? Either.some(b) : Either.none));
823
+
824
+ /**
825
+ * @example
826
+ * import { none, some, getEquivalence } from 'effect/Option'
827
+ * import * as N from 'effect/Number'
828
+ *
829
+ * const isEquivalent = getEquivalence(N.Equivalence)
830
+ * assert.deepStrictEqual(isEquivalent(none(), none()), true)
831
+ * assert.deepStrictEqual(isEquivalent(none(), some(1)), false)
832
+ * assert.deepStrictEqual(isEquivalent(some(1), none()), false)
833
+ * assert.deepStrictEqual(isEquivalent(some(1), some(2)), false)
834
+ * assert.deepStrictEqual(isEquivalent(some(1), some(1)), true)
835
+ *
836
+ * @category equivalence
837
+ * @since 2.0.0
838
+ */
839
+ const getEquivalence = isEquivalent => Equivalence_dist_effectEquivalence.make((x, y) => x === y || (isNone(x) ? isNone(y) : isNone(y) ? false : isEquivalent(x.value, y.value)));
840
+
841
+ /**
842
+ * The `Order` instance allows `Option` values to be compared with
843
+ * `compare`, whenever there is an `Order` instance for
844
+ * the type the `Option` contains.
845
+ *
846
+ * `None` is considered to be less than any `Some` value.
847
+ *
848
+ * @example
849
+ * import { none, some, getOrder } from 'effect/Option'
850
+ * import * as N from 'effect/Number'
851
+ * import { pipe } from "effect/Function"
852
+ *
853
+ * const O = getOrder(N.Order)
854
+ * assert.deepStrictEqual(O(none(), none()), 0)
855
+ * assert.deepStrictEqual(O(none(), some(1)), -1)
856
+ * assert.deepStrictEqual(O(some(1), none()), 1)
857
+ * assert.deepStrictEqual(O(some(1), some(2)), -1)
858
+ * assert.deepStrictEqual(O(some(1), some(1)), 0)
859
+ *
860
+ * @category sorting
861
+ * @since 2.0.0
862
+ */
863
+ const getOrder = O => Order_dist_effectOrder.make((self, that) => isSome(self) ? isSome(that) ? O(self.value, that.value) : 1 : -1);
864
+
865
+ /**
866
+ * Lifts a binary function into `Option`.
867
+ *
868
+ * @param f - The function to lift.
869
+ *
870
+ * @category lifting
871
+ * @since 2.0.0
872
+ */
873
+ const lift2 = f => Function_dist_effectFunction.dual(2, (self, that) => zipWith(self, that, f));
874
+
875
+ /**
876
+ * Transforms a `Predicate` function into a `Some` of the input value if the predicate returns `true` or `None`
877
+ * if the predicate returns `false`.
878
+ *
879
+ * @param predicate - A `Predicate` function that takes in a value of type `A` and returns a boolean.
880
+ *
881
+ * @example
882
+ * import * as O from "effect/Option"
883
+ *
884
+ * const getOption = O.liftPredicate((n: number) => n >= 0)
885
+ *
886
+ * assert.deepStrictEqual(getOption(-1), O.none())
887
+ * assert.deepStrictEqual(getOption(1), O.some(1))
888
+ *
889
+ * @category lifting
890
+ * @since 2.0.0
891
+ */
892
+ const liftPredicate = predicate => b => predicate(b) ? some(b) : none();
893
+
894
+ /**
895
+ * Returns a function that checks if a `Option` contains a given value using a provided `isEquivalent` function.
896
+ *
897
+ * @param equivalent - An `Equivalence` instance to compare values of the `Option`.
898
+ * @param self - The `Option` to apply the comparison to.
899
+ * @param a - The value to compare against the `Option`.
900
+ *
901
+ * @example
902
+ * import { some, none, containsWith } from 'effect/Option'
903
+ * import { Equivalence } from 'effect/Number'
904
+ * import { pipe } from "effect/Function"
905
+ *
906
+ * assert.deepStrictEqual(pipe(some(2), containsWith(Equivalence)(2)), true)
907
+ * assert.deepStrictEqual(pipe(some(1), containsWith(Equivalence)(2)), false)
908
+ * assert.deepStrictEqual(pipe(none(), containsWith(Equivalence)(2)), false)
909
+ *
910
+ * @category elements
911
+ * @since 2.0.0
912
+ */
913
+ const containsWith = isEquivalent => Function_dist_effectFunction.dual(2, (self, a) => isNone(self) ? false : isEquivalent(self.value, a));
914
+ const _equivalence = /*#__PURE__*/Equal_dist_effectEqual.equivalence();
915
+
916
+ /**
917
+ * Returns a function that checks if an `Option` contains a given value using the default `Equivalence`.
918
+ *
919
+ * @category elements
920
+ * @since 2.0.0
921
+ */
922
+ const contains = /*#__PURE__*/containsWith(_equivalence);
923
+
924
+ /**
925
+ * Check if a value in an `Option` type meets a certain predicate.
926
+ *
927
+ * @param self - The `Option` to check.
928
+ * @param predicate - The condition to check.
929
+ *
930
+ * @example
931
+ * import { some, none, exists } from 'effect/Option'
932
+ * import { pipe } from "effect/Function"
933
+ *
934
+ * const isEven = (n: number) => n % 2 === 0
935
+ *
936
+ * assert.deepStrictEqual(pipe(some(2), exists(isEven)), true)
937
+ * assert.deepStrictEqual(pipe(some(1), exists(isEven)), false)
938
+ * assert.deepStrictEqual(pipe(none(), exists(isEven)), false)
939
+ *
940
+ * @since 2.0.0
941
+ */
942
+ const exists = /*#__PURE__*/Function_dist_effectFunction.dual(2, (self, predicate) => isNone(self) ? false : predicate(self.value));
943
+
944
+ // -------------------------------------------------------------------------------------
945
+ // math
946
+ // -------------------------------------------------------------------------------------
947
+
948
+ /**
949
+ * @category math
950
+ * @since 2.0.0
951
+ */
952
+ const sum = /*#__PURE__*/lift2(Number_dist_effectNumber.sum);
953
+
954
+ /**
955
+ * @category math
956
+ * @since 2.0.0
957
+ */
958
+ const multiply = /*#__PURE__*/lift2(Number_dist_effectNumber.multiply);
959
+
960
+ /**
961
+ * @category math
962
+ * @since 2.0.0
963
+ */
964
+ const subtract = /*#__PURE__*/lift2(Number_dist_effectNumber.subtract);
965
+
966
+ /**
967
+ * @category math
968
+ * @since 2.0.0
969
+ */
970
+ const divide = /*#__PURE__*/lift2(Number_dist_effectNumber.divide);
971
+
972
+ /**
973
+ * Sum all numbers in an iterable of `Option<number>` ignoring the `None` values.
974
+ *
975
+ * @param self - The iterable of `Option<number>` to be summed.
976
+ *
977
+ * @example
978
+ * import { sumCompact, some, none } from 'effect/Option'
979
+ *
980
+ * const iterable = [some(2), none(), some(3), none()]
981
+ * assert.deepStrictEqual(sumCompact(iterable), 5)
982
+ *
983
+ * @category math
984
+ * @since 2.0.0
985
+ */
986
+ const sumCompact = self => {
987
+ let out = 0;
988
+ for (const oa of self) {
989
+ if (isSome(oa)) {
990
+ out += oa.value;
991
+ }
992
+ }
993
+ return out;
994
+ };
995
+
996
+ /**
997
+ * Multiply all numbers in an iterable of `Option<number>` ignoring the `None` values.
998
+ *
999
+ * @param self - The iterable of `Option<number>` to be multiplied.
1000
+ *
1001
+ * @example
1002
+ * import { multiplyCompact, some, none } from 'effect/Option'
1003
+ *
1004
+ * const iterable = [some(2), none(), some(3), none()]
1005
+ * assert.deepStrictEqual(multiplyCompact(iterable), 6)
1006
+ *
1007
+ * @category math
1008
+ * @since 2.0.0
1009
+ */
1010
+ const multiplyCompact = self => {
1011
+ let out = 1;
1012
+ for (const oa of self) {
1013
+ if (isSome(oa)) {
1014
+ const a = oa.value;
1015
+ if (a === 0) {
1016
+ return 0;
1017
+ }
1018
+ out *= a;
1019
+ }
1020
+ }
1021
+ return out;
1022
+ };
1023
+
1024
+ // -------------------------------------------------------------------------------------
1025
+ // do notation
1026
+ // -------------------------------------------------------------------------------------
1027
+
1028
+ /**
1029
+ * @category do notation
1030
+ * @since 2.0.0
1031
+ */
1032
+ const bindTo = /*#__PURE__*/Function_dist_effectFunction.dual(2, (self, name) => map(self, a => ({
1033
+ [name]: a
1034
+ })));
1035
+ const let_ = /*#__PURE__*/Function_dist_effectFunction.dual(3, (self, name, f) => map(self, a => Object.assign({}, a, {
1036
+ [name]: f(a)
1037
+ })));
1038
+
1039
+ /**
1040
+ * @category do notation
1041
+ * @since 2.0.0
1042
+ */
1043
+ const bind = /*#__PURE__*/Function_dist_effectFunction.dual(3, (self, name, f) => flatMap(self, a => map(f(a), b => Object.assign({}, a, {
1044
+ [name]: b
1045
+ }))));
1046
+
1047
+ /**
1048
+ * @category do notation
1049
+ * @since 2.0.0
1050
+ */
1051
+ const Do = /*#__PURE__*/some({});
1052
+ const adapter = /*#__PURE__*/Utils_dist_effectUtils.adapter();
1053
+
1054
+ /**
1055
+ * @category generators
1056
+ * @since 2.0.0
1057
+ */
1058
+ const gen = f => {
1059
+ const iterator = f(adapter);
1060
+ let state = iterator.next();
1061
+ if (state.done) {
1062
+ return some(void 0);
1063
+ } else {
1064
+ let current = state.value.value;
1065
+ if (isNone(current)) {
1066
+ return current;
1067
+ }
1068
+ while (!state.done) {
1069
+ state = iterator.next(current.value);
1070
+ if (!state.done) {
1071
+ current = state.value.value;
1072
+ if (isNone(current)) {
1073
+ return current;
1074
+ }
1075
+ }
1076
+ }
1077
+ return some(state.value);
1078
+ }
1079
+ };
1080
+
1081
+ exports.Do = Do;
1082
+ exports.TypeId = TypeId;
1083
+ exports.all = all;
1084
+ exports.ap = ap;
1085
+ exports.as = as;
1086
+ exports.asUnit = asUnit;
1087
+ exports.bind = bind;
1088
+ exports.bindTo = bindTo;
1089
+ exports.composeK = composeK;
1090
+ exports.contains = contains;
1091
+ exports.containsWith = containsWith;
1092
+ exports.divide = divide;
1093
+ exports.exists = exists;
1094
+ exports.filter = filter;
1095
+ exports.filterMap = filterMap;
1096
+ exports.firstSomeOf = firstSomeOf;
1097
+ exports.flatMap = flatMap;
1098
+ exports.flatMapNullable = flatMapNullable;
1099
+ exports.flatten = flatten;
1100
+ exports.fromIterable = fromIterable;
1101
+ exports.fromNullable = fromNullable;
1102
+ exports.gen = gen;
1103
+ exports.getEquivalence = getEquivalence;
1104
+ exports.getLeft = getLeft;
1105
+ exports.getOrElse = getOrElse;
1106
+ exports.getOrNull = getOrNull;
1107
+ exports.getOrThrow = getOrThrow;
1108
+ exports.getOrThrowWith = getOrThrowWith;
1109
+ exports.getOrUndefined = getOrUndefined;
1110
+ exports.getOrder = getOrder;
1111
+ exports.getRight = getRight;
1112
+ exports.isNone = isNone;
1113
+ exports.isOption = isOption;
1114
+ exports.isSome = isSome;
1115
+ exports["let"] = let_;
1116
+ exports.lift2 = lift2;
1117
+ exports.liftNullable = liftNullable;
1118
+ exports.liftPredicate = liftPredicate;
1119
+ exports.liftThrowable = liftThrowable;
1120
+ exports.map = map;
1121
+ exports.match = match;
1122
+ exports.multiply = multiply;
1123
+ exports.multiplyCompact = multiplyCompact;
1124
+ exports.none = none;
1125
+ exports.orElse = orElse;
1126
+ exports.orElseEither = orElseEither;
1127
+ exports.partitionMap = partitionMap;
1128
+ exports.product = product;
1129
+ exports.productMany = productMany;
1130
+ exports.reduceCompact = reduceCompact;
1131
+ exports.some = some;
1132
+ exports.subtract = subtract;
1133
+ exports.sum = sum;
1134
+ exports.sumCompact = sumCompact;
1135
+ exports.tap = tap;
1136
+ exports.toArray = toArray;
1137
+ exports.toRefinement = toRefinement;
1138
+ exports.unit = unit;
1139
+ exports.zipLeft = zipLeft;
1140
+ exports.zipRight = zipRight;
1141
+ exports.zipWith = zipWith;