effect 3.8.4 → 3.8.5

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 (595) hide show
  1. package/dist/cjs/Array.js.map +1 -1
  2. package/dist/cjs/BigDecimal.js +2 -3
  3. package/dist/cjs/BigDecimal.js.map +1 -1
  4. package/dist/cjs/BigInt.js.map +1 -1
  5. package/dist/cjs/Boolean.js.map +1 -1
  6. package/dist/cjs/Cause.js.map +1 -1
  7. package/dist/cjs/Channel.js.map +1 -1
  8. package/dist/cjs/ChildExecutorDecision.js.map +1 -1
  9. package/dist/cjs/Chunk.js.map +1 -1
  10. package/dist/cjs/Config.js.map +1 -1
  11. package/dist/cjs/ConfigError.js.map +1 -1
  12. package/dist/cjs/ConfigProvider.js.map +1 -1
  13. package/dist/cjs/ConfigProviderPathPatch.js.map +1 -1
  14. package/dist/cjs/Console.js.map +1 -1
  15. package/dist/cjs/Context.js.map +1 -1
  16. package/dist/cjs/Cron.js.map +1 -1
  17. package/dist/cjs/Data.js.map +1 -1
  18. package/dist/cjs/DateTime.js.map +1 -1
  19. package/dist/cjs/Deferred.js.map +1 -1
  20. package/dist/cjs/Differ.js.map +1 -1
  21. package/dist/cjs/Duration.js.map +1 -1
  22. package/dist/cjs/Effect.js.map +1 -1
  23. package/dist/cjs/Either.js.map +1 -1
  24. package/dist/cjs/Equivalence.js.map +1 -1
  25. package/dist/cjs/ExecutionStrategy.js.map +1 -1
  26. package/dist/cjs/Exit.js.map +1 -1
  27. package/dist/cjs/Fiber.js.map +1 -1
  28. package/dist/cjs/FiberHandle.js.map +1 -1
  29. package/dist/cjs/FiberId.js.map +1 -1
  30. package/dist/cjs/FiberMap.js.map +1 -1
  31. package/dist/cjs/FiberRef.js.map +1 -1
  32. package/dist/cjs/FiberRefs.js.map +1 -1
  33. package/dist/cjs/FiberRefsPatch.js.map +1 -1
  34. package/dist/cjs/FiberSet.js.map +1 -1
  35. package/dist/cjs/Function.js.map +1 -1
  36. package/dist/cjs/GroupBy.js.map +1 -1
  37. package/dist/cjs/Hash.js.map +1 -1
  38. package/dist/cjs/HashMap.js.map +1 -1
  39. package/dist/cjs/HashSet.js.map +1 -1
  40. package/dist/cjs/Iterable.js.map +1 -1
  41. package/dist/cjs/KeyedPool.js.map +1 -1
  42. package/dist/cjs/Layer.js.map +1 -1
  43. package/dist/cjs/List.js.map +1 -1
  44. package/dist/cjs/LogLevel.js.map +1 -1
  45. package/dist/cjs/Logger.js.map +1 -1
  46. package/dist/cjs/Mailbox.js.map +1 -1
  47. package/dist/cjs/MergeDecision.js.map +1 -1
  48. package/dist/cjs/MergeState.js.map +1 -1
  49. package/dist/cjs/MergeStrategy.js.map +1 -1
  50. package/dist/cjs/Metric.js.map +1 -1
  51. package/dist/cjs/MetricHook.js.map +1 -1
  52. package/dist/cjs/MetricKey.js.map +1 -1
  53. package/dist/cjs/MetricPolling.js.map +1 -1
  54. package/dist/cjs/MetricState.js.map +1 -1
  55. package/dist/cjs/Micro.js.map +1 -1
  56. package/dist/cjs/MutableHashMap.js.map +1 -1
  57. package/dist/cjs/MutableHashSet.js.map +1 -1
  58. package/dist/cjs/MutableList.js.map +1 -1
  59. package/dist/cjs/MutableQueue.js.map +1 -1
  60. package/dist/cjs/MutableRef.js.map +1 -1
  61. package/dist/cjs/Number.js.map +1 -1
  62. package/dist/cjs/Option.js.map +1 -1
  63. package/dist/cjs/Order.js.map +1 -1
  64. package/dist/cjs/Ordering.js.map +1 -1
  65. package/dist/cjs/Pipeable.js.map +1 -1
  66. package/dist/cjs/Pool.js.map +1 -1
  67. package/dist/cjs/Predicate.js.map +1 -1
  68. package/dist/cjs/PubSub.js.map +1 -1
  69. package/dist/cjs/Queue.js.map +1 -1
  70. package/dist/cjs/RcMap.js.map +1 -1
  71. package/dist/cjs/Readable.js.map +1 -1
  72. package/dist/cjs/Record.js.map +1 -1
  73. package/dist/cjs/RedBlackTree.js.map +1 -1
  74. package/dist/cjs/Ref.js.map +1 -1
  75. package/dist/cjs/Request.js.map +1 -1
  76. package/dist/cjs/RequestResolver.js.map +1 -1
  77. package/dist/cjs/Runtime.js.map +1 -1
  78. package/dist/cjs/RuntimeFlags.js.map +1 -1
  79. package/dist/cjs/RuntimeFlagsPatch.js.map +1 -1
  80. package/dist/cjs/STM.js.map +1 -1
  81. package/dist/cjs/Schedule.js.map +1 -1
  82. package/dist/cjs/ScheduleInterval.js.map +1 -1
  83. package/dist/cjs/ScheduleIntervals.js.map +1 -1
  84. package/dist/cjs/Scheduler.js.map +1 -1
  85. package/dist/cjs/Scope.js.map +1 -1
  86. package/dist/cjs/ScopedRef.js.map +1 -1
  87. package/dist/cjs/Sink.js.map +1 -1
  88. package/dist/cjs/SortedMap.js.map +1 -1
  89. package/dist/cjs/SortedSet.js.map +1 -1
  90. package/dist/cjs/Stream.js +17 -3
  91. package/dist/cjs/Stream.js.map +1 -1
  92. package/dist/cjs/StreamHaltStrategy.js.map +1 -1
  93. package/dist/cjs/String.js.map +1 -1
  94. package/dist/cjs/Struct.js.map +1 -1
  95. package/dist/cjs/Subscribable.js.map +1 -1
  96. package/dist/cjs/SubscriptionRef.js.map +1 -1
  97. package/dist/cjs/SynchronizedRef.js.map +1 -1
  98. package/dist/cjs/TArray.js.map +1 -1
  99. package/dist/cjs/TDeferred.js.map +1 -1
  100. package/dist/cjs/TMap.js.map +1 -1
  101. package/dist/cjs/TPriorityQueue.js.map +1 -1
  102. package/dist/cjs/TPubSub.js.map +1 -1
  103. package/dist/cjs/TQueue.js.map +1 -1
  104. package/dist/cjs/TReentrantLock.js.map +1 -1
  105. package/dist/cjs/TRef.js.map +1 -1
  106. package/dist/cjs/TSemaphore.js.map +1 -1
  107. package/dist/cjs/TSet.js.map +1 -1
  108. package/dist/cjs/Take.js.map +1 -1
  109. package/dist/cjs/TestAnnotationMap.js.map +1 -1
  110. package/dist/cjs/TestClock.js.map +1 -1
  111. package/dist/cjs/TestServices.js.map +1 -1
  112. package/dist/cjs/Trie.js.map +1 -1
  113. package/dist/cjs/Tuple.js.map +1 -1
  114. package/dist/cjs/Unify.js.map +1 -1
  115. package/dist/cjs/UpstreamPullRequest.js.map +1 -1
  116. package/dist/cjs/UpstreamPullStrategy.js.map +1 -1
  117. package/dist/cjs/Utils.js +1 -14
  118. package/dist/cjs/Utils.js.map +1 -1
  119. package/dist/cjs/internal/core.js +4 -3
  120. package/dist/cjs/internal/core.js.map +1 -1
  121. package/dist/cjs/internal/runtime.js +1 -1
  122. package/dist/cjs/internal/runtime.js.map +1 -1
  123. package/dist/cjs/internal/stream.js +12 -3
  124. package/dist/cjs/internal/stream.js.map +1 -1
  125. package/dist/cjs/internal/version.js +1 -1
  126. package/dist/dts/Array.d.ts +2684 -0
  127. package/dist/dts/Array.d.ts.map +1 -1
  128. package/dist/dts/BigDecimal.d.ts +558 -1
  129. package/dist/dts/BigDecimal.d.ts.map +1 -1
  130. package/dist/dts/BigInt.d.ts +490 -0
  131. package/dist/dts/BigInt.d.ts.map +1 -1
  132. package/dist/dts/Boolean.d.ts +228 -0
  133. package/dist/dts/Boolean.d.ts.map +1 -1
  134. package/dist/dts/Cause.d.ts +172 -0
  135. package/dist/dts/Cause.d.ts.map +1 -1
  136. package/dist/dts/Channel.d.ts +750 -0
  137. package/dist/dts/Channel.d.ts.map +1 -1
  138. package/dist/dts/ChildExecutorDecision.d.ts +12 -0
  139. package/dist/dts/ChildExecutorDecision.d.ts.map +1 -1
  140. package/dist/dts/Chunk.d.ts +791 -0
  141. package/dist/dts/Chunk.d.ts.map +1 -1
  142. package/dist/dts/Config.d.ts +174 -0
  143. package/dist/dts/Config.d.ts.map +1 -1
  144. package/dist/dts/ConfigError.d.ts +16 -0
  145. package/dist/dts/ConfigError.d.ts.map +1 -1
  146. package/dist/dts/ConfigProvider.d.ts +84 -0
  147. package/dist/dts/ConfigProvider.d.ts.map +1 -1
  148. package/dist/dts/ConfigProviderPathPatch.d.ts +32 -0
  149. package/dist/dts/ConfigProviderPathPatch.d.ts.map +1 -1
  150. package/dist/dts/Console.d.ts +24 -0
  151. package/dist/dts/Console.d.ts.map +1 -1
  152. package/dist/dts/Context.d.ts +232 -0
  153. package/dist/dts/Context.d.ts.map +1 -1
  154. package/dist/dts/Cron.d.ts +12 -0
  155. package/dist/dts/Cron.d.ts.map +1 -1
  156. package/dist/dts/Data.d.ts +165 -0
  157. package/dist/dts/Data.d.ts.map +1 -1
  158. package/dist/dts/DateTime.d.ts +878 -0
  159. package/dist/dts/DateTime.d.ts.map +1 -1
  160. package/dist/dts/Deferred.d.ts +170 -0
  161. package/dist/dts/Deferred.d.ts.map +1 -1
  162. package/dist/dts/Differ.d.ts +78 -0
  163. package/dist/dts/Differ.d.ts.map +1 -1
  164. package/dist/dts/Duration.d.ts +130 -0
  165. package/dist/dts/Duration.d.ts.map +1 -1
  166. package/dist/dts/Effect.d.ts +4117 -3
  167. package/dist/dts/Effect.d.ts.map +1 -1
  168. package/dist/dts/Either.d.ts +620 -0
  169. package/dist/dts/Either.d.ts.map +1 -1
  170. package/dist/dts/Equivalence.d.ts +24 -0
  171. package/dist/dts/Equivalence.d.ts.map +1 -1
  172. package/dist/dts/ExecutionStrategy.d.ts +14 -0
  173. package/dist/dts/ExecutionStrategy.d.ts.map +1 -1
  174. package/dist/dts/Exit.d.ts +252 -0
  175. package/dist/dts/Exit.d.ts.map +1 -1
  176. package/dist/dts/Fiber.d.ts +182 -0
  177. package/dist/dts/Fiber.d.ts.map +1 -1
  178. package/dist/dts/FiberHandle.d.ts +42 -0
  179. package/dist/dts/FiberHandle.d.ts.map +1 -1
  180. package/dist/dts/FiberId.d.ts +24 -0
  181. package/dist/dts/FiberId.d.ts.map +1 -1
  182. package/dist/dts/FiberMap.d.ts +102 -0
  183. package/dist/dts/FiberMap.d.ts.map +1 -1
  184. package/dist/dts/FiberRef.d.ts +80 -0
  185. package/dist/dts/FiberRef.d.ts.map +1 -1
  186. package/dist/dts/FiberRefs.d.ts +84 -0
  187. package/dist/dts/FiberRefs.d.ts.map +1 -1
  188. package/dist/dts/FiberRefsPatch.d.ts +30 -0
  189. package/dist/dts/FiberRefsPatch.d.ts.map +1 -1
  190. package/dist/dts/FiberSet.d.ts +38 -0
  191. package/dist/dts/FiberSet.d.ts.map +1 -1
  192. package/dist/dts/Function.d.ts +144 -28
  193. package/dist/dts/Function.d.ts.map +1 -1
  194. package/dist/dts/GroupBy.d.ts +38 -0
  195. package/dist/dts/GroupBy.d.ts.map +1 -1
  196. package/dist/dts/Hash.d.ts +8 -0
  197. package/dist/dts/Hash.d.ts.map +1 -1
  198. package/dist/dts/HashMap.d.ts +300 -0
  199. package/dist/dts/HashMap.d.ts.map +1 -1
  200. package/dist/dts/HashSet.d.ts +284 -0
  201. package/dist/dts/HashSet.d.ts.map +1 -1
  202. package/dist/dts/Iterable.d.ts +454 -0
  203. package/dist/dts/Iterable.d.ts.map +1 -1
  204. package/dist/dts/KeyedPool.d.ts +34 -0
  205. package/dist/dts/KeyedPool.d.ts.map +1 -1
  206. package/dist/dts/Layer.d.ts +414 -0
  207. package/dist/dts/Layer.d.ts.map +1 -1
  208. package/dist/dts/List.d.ts +430 -0
  209. package/dist/dts/List.d.ts.map +1 -1
  210. package/dist/dts/LogLevel.d.ts +46 -0
  211. package/dist/dts/LogLevel.d.ts.map +1 -1
  212. package/dist/dts/Logger.d.ts +194 -0
  213. package/dist/dts/Logger.d.ts.map +1 -1
  214. package/dist/dts/Mailbox.d.ts +16 -0
  215. package/dist/dts/Mailbox.d.ts.map +1 -1
  216. package/dist/dts/MergeDecision.d.ts +8 -0
  217. package/dist/dts/MergeDecision.d.ts.map +1 -1
  218. package/dist/dts/MergeState.d.ts +8 -0
  219. package/dist/dts/MergeState.d.ts.map +1 -1
  220. package/dist/dts/MergeStrategy.d.ts +12 -0
  221. package/dist/dts/MergeStrategy.d.ts.map +1 -1
  222. package/dist/dts/Metric.d.ts +410 -0
  223. package/dist/dts/Metric.d.ts.map +1 -1
  224. package/dist/dts/MetricHook.d.ts +24 -0
  225. package/dist/dts/MetricHook.d.ts.map +1 -1
  226. package/dist/dts/MetricKey.d.ts +48 -0
  227. package/dist/dts/MetricKey.d.ts.map +1 -1
  228. package/dist/dts/MetricPolling.d.ts +40 -0
  229. package/dist/dts/MetricPolling.d.ts.map +1 -1
  230. package/dist/dts/MetricState.d.ts +16 -0
  231. package/dist/dts/MetricState.d.ts.map +1 -1
  232. package/dist/dts/Micro.d.ts +1110 -0
  233. package/dist/dts/Micro.d.ts.map +1 -1
  234. package/dist/dts/MutableHashMap.d.ts +50 -0
  235. package/dist/dts/MutableHashMap.d.ts.map +1 -1
  236. package/dist/dts/MutableHashSet.d.ts +24 -0
  237. package/dist/dts/MutableHashSet.d.ts.map +1 -1
  238. package/dist/dts/MutableList.d.ts +36 -0
  239. package/dist/dts/MutableList.d.ts.map +1 -1
  240. package/dist/dts/MutableQueue.d.ts +62 -0
  241. package/dist/dts/MutableQueue.d.ts.map +1 -1
  242. package/dist/dts/MutableRef.d.ts +56 -0
  243. package/dist/dts/MutableRef.d.ts.map +1 -1
  244. package/dist/dts/Number.d.ts +474 -0
  245. package/dist/dts/Number.d.ts.map +1 -1
  246. package/dist/dts/Option.d.ts +1019 -0
  247. package/dist/dts/Option.d.ts.map +1 -1
  248. package/dist/dts/Order.d.ts +24 -0
  249. package/dist/dts/Order.d.ts.map +1 -1
  250. package/dist/dts/Ordering.d.ts +66 -0
  251. package/dist/dts/Ordering.d.ts.map +1 -1
  252. package/dist/dts/Pipeable.d.ts +21 -21
  253. package/dist/dts/Pipeable.d.ts.map +1 -1
  254. package/dist/dts/Pool.d.ts +16 -0
  255. package/dist/dts/Pool.d.ts.map +1 -1
  256. package/dist/dts/Predicate.d.ts +498 -0
  257. package/dist/dts/Predicate.d.ts.map +1 -1
  258. package/dist/dts/PubSub.d.ts +28 -0
  259. package/dist/dts/PubSub.d.ts.map +1 -1
  260. package/dist/dts/Queue.d.ts +104 -0
  261. package/dist/dts/Queue.d.ts.map +1 -1
  262. package/dist/dts/RcMap.d.ts +70 -0
  263. package/dist/dts/RcMap.d.ts.map +1 -1
  264. package/dist/dts/Readable.d.ts +16 -0
  265. package/dist/dts/Readable.d.ts.map +1 -1
  266. package/dist/dts/Record.d.ts +800 -0
  267. package/dist/dts/Record.d.ts.map +1 -1
  268. package/dist/dts/RedBlackTree.d.ts +300 -0
  269. package/dist/dts/RedBlackTree.d.ts.map +1 -1
  270. package/dist/dts/Ref.d.ts +88 -0
  271. package/dist/dts/Ref.d.ts.map +1 -1
  272. package/dist/dts/Request.d.ts +76 -0
  273. package/dist/dts/Request.d.ts.map +1 -1
  274. package/dist/dts/RequestResolver.d.ts +144 -0
  275. package/dist/dts/RequestResolver.d.ts.map +1 -1
  276. package/dist/dts/Runtime.d.ts +126 -0
  277. package/dist/dts/Runtime.d.ts.map +1 -1
  278. package/dist/dts/RuntimeFlags.d.ts +100 -0
  279. package/dist/dts/RuntimeFlags.d.ts.map +1 -1
  280. package/dist/dts/RuntimeFlagsPatch.d.ts +112 -0
  281. package/dist/dts/RuntimeFlagsPatch.d.ts.map +1 -1
  282. package/dist/dts/STM.d.ts +1090 -0
  283. package/dist/dts/STM.d.ts.map +1 -1
  284. package/dist/dts/Schedule.d.ts +704 -0
  285. package/dist/dts/Schedule.d.ts.map +1 -1
  286. package/dist/dts/ScheduleInterval.d.ts +68 -0
  287. package/dist/dts/ScheduleInterval.d.ts.map +1 -1
  288. package/dist/dts/ScheduleIntervals.d.ts +50 -0
  289. package/dist/dts/ScheduleIntervals.d.ts.map +1 -1
  290. package/dist/dts/Scope.d.ts +36 -0
  291. package/dist/dts/Scope.d.ts.map +1 -1
  292. package/dist/dts/ScopedRef.d.ts +22 -0
  293. package/dist/dts/ScopedRef.d.ts.map +1 -1
  294. package/dist/dts/Sink.d.ts +464 -0
  295. package/dist/dts/Sink.d.ts.map +1 -1
  296. package/dist/dts/SortedMap.d.ts +76 -0
  297. package/dist/dts/SortedMap.d.ts.map +1 -1
  298. package/dist/dts/SortedSet.d.ts +142 -0
  299. package/dist/dts/SortedSet.d.ts.map +1 -1
  300. package/dist/dts/Stream.d.ts +4998 -1
  301. package/dist/dts/Stream.d.ts.map +1 -1
  302. package/dist/dts/StreamHaltStrategy.d.ts +12 -0
  303. package/dist/dts/StreamHaltStrategy.d.ts.map +1 -1
  304. package/dist/dts/String.d.ts +200 -0
  305. package/dist/dts/String.d.ts.map +1 -1
  306. package/dist/dts/Struct.d.ts +84 -0
  307. package/dist/dts/Struct.d.ts.map +1 -1
  308. package/dist/dts/Subscribable.d.ts +16 -0
  309. package/dist/dts/Subscribable.d.ts.map +1 -1
  310. package/dist/dts/SubscriptionRef.d.ts +152 -0
  311. package/dist/dts/SubscriptionRef.d.ts.map +1 -1
  312. package/dist/dts/SynchronizedRef.d.ts +152 -0
  313. package/dist/dts/SynchronizedRef.d.ts.map +1 -1
  314. package/dist/dts/TArray.d.ts +426 -0
  315. package/dist/dts/TArray.d.ts.map +1 -1
  316. package/dist/dts/TDeferred.d.ts +24 -0
  317. package/dist/dts/TDeferred.d.ts.map +1 -1
  318. package/dist/dts/TMap.d.ts +366 -0
  319. package/dist/dts/TMap.d.ts.map +1 -1
  320. package/dist/dts/TPriorityQueue.d.ts +60 -0
  321. package/dist/dts/TPriorityQueue.d.ts.map +1 -1
  322. package/dist/dts/TPubSub.d.ts +28 -0
  323. package/dist/dts/TPubSub.d.ts.map +1 -1
  324. package/dist/dts/TQueue.d.ts +108 -0
  325. package/dist/dts/TQueue.d.ts.map +1 -1
  326. package/dist/dts/TReentrantLock.d.ts +36 -0
  327. package/dist/dts/TReentrantLock.d.ts.map +1 -1
  328. package/dist/dts/TRef.d.ts +88 -0
  329. package/dist/dts/TRef.d.ts.map +1 -1
  330. package/dist/dts/TSemaphore.d.ts +40 -0
  331. package/dist/dts/TSemaphore.d.ts.map +1 -1
  332. package/dist/dts/TSet.d.ts +254 -0
  333. package/dist/dts/TSet.d.ts.map +1 -1
  334. package/dist/dts/Take.d.ts +56 -0
  335. package/dist/dts/Take.d.ts.map +1 -1
  336. package/dist/dts/TestAnnotationMap.d.ts.map +1 -1
  337. package/dist/dts/TestClock.d.ts.map +1 -1
  338. package/dist/dts/TestServices.d.ts.map +1 -1
  339. package/dist/dts/Trie.d.ts +906 -0
  340. package/dist/dts/Trie.d.ts.map +1 -1
  341. package/dist/dts/Tuple.d.ts +144 -0
  342. package/dist/dts/Tuple.d.ts.map +1 -1
  343. package/dist/dts/Unify.d.ts +18 -0
  344. package/dist/dts/Unify.d.ts.map +1 -1
  345. package/dist/dts/UpstreamPullRequest.d.ts +12 -0
  346. package/dist/dts/UpstreamPullRequest.d.ts.map +1 -1
  347. package/dist/dts/UpstreamPullStrategy.d.ts +12 -0
  348. package/dist/dts/UpstreamPullStrategy.d.ts.map +1 -1
  349. package/dist/dts/Utils.d.ts.map +1 -1
  350. package/dist/dts/internal/stream.d.ts.map +1 -1
  351. package/dist/esm/Array.js.map +1 -1
  352. package/dist/esm/BigDecimal.js +2 -2
  353. package/dist/esm/BigDecimal.js.map +1 -1
  354. package/dist/esm/BigInt.js.map +1 -1
  355. package/dist/esm/Boolean.js.map +1 -1
  356. package/dist/esm/Cause.js.map +1 -1
  357. package/dist/esm/Channel.js.map +1 -1
  358. package/dist/esm/ChildExecutorDecision.js.map +1 -1
  359. package/dist/esm/Chunk.js.map +1 -1
  360. package/dist/esm/Config.js.map +1 -1
  361. package/dist/esm/ConfigError.js.map +1 -1
  362. package/dist/esm/ConfigProvider.js.map +1 -1
  363. package/dist/esm/ConfigProviderPathPatch.js.map +1 -1
  364. package/dist/esm/Console.js.map +1 -1
  365. package/dist/esm/Context.js.map +1 -1
  366. package/dist/esm/Cron.js.map +1 -1
  367. package/dist/esm/Data.js.map +1 -1
  368. package/dist/esm/DateTime.js.map +1 -1
  369. package/dist/esm/Deferred.js.map +1 -1
  370. package/dist/esm/Differ.js.map +1 -1
  371. package/dist/esm/Duration.js.map +1 -1
  372. package/dist/esm/Effect.js.map +1 -1
  373. package/dist/esm/Either.js.map +1 -1
  374. package/dist/esm/Equivalence.js.map +1 -1
  375. package/dist/esm/ExecutionStrategy.js.map +1 -1
  376. package/dist/esm/Exit.js.map +1 -1
  377. package/dist/esm/Fiber.js.map +1 -1
  378. package/dist/esm/FiberHandle.js.map +1 -1
  379. package/dist/esm/FiberId.js.map +1 -1
  380. package/dist/esm/FiberMap.js.map +1 -1
  381. package/dist/esm/FiberRef.js.map +1 -1
  382. package/dist/esm/FiberRefs.js.map +1 -1
  383. package/dist/esm/FiberRefsPatch.js.map +1 -1
  384. package/dist/esm/FiberSet.js.map +1 -1
  385. package/dist/esm/Function.js.map +1 -1
  386. package/dist/esm/GroupBy.js.map +1 -1
  387. package/dist/esm/Hash.js.map +1 -1
  388. package/dist/esm/HashMap.js.map +1 -1
  389. package/dist/esm/HashSet.js.map +1 -1
  390. package/dist/esm/Iterable.js.map +1 -1
  391. package/dist/esm/KeyedPool.js.map +1 -1
  392. package/dist/esm/Layer.js.map +1 -1
  393. package/dist/esm/List.js.map +1 -1
  394. package/dist/esm/LogLevel.js.map +1 -1
  395. package/dist/esm/Logger.js.map +1 -1
  396. package/dist/esm/Mailbox.js.map +1 -1
  397. package/dist/esm/MergeDecision.js.map +1 -1
  398. package/dist/esm/MergeState.js.map +1 -1
  399. package/dist/esm/MergeStrategy.js.map +1 -1
  400. package/dist/esm/Metric.js.map +1 -1
  401. package/dist/esm/MetricHook.js.map +1 -1
  402. package/dist/esm/MetricKey.js.map +1 -1
  403. package/dist/esm/MetricPolling.js.map +1 -1
  404. package/dist/esm/MetricState.js.map +1 -1
  405. package/dist/esm/Micro.js.map +1 -1
  406. package/dist/esm/MutableHashMap.js.map +1 -1
  407. package/dist/esm/MutableHashSet.js.map +1 -1
  408. package/dist/esm/MutableList.js.map +1 -1
  409. package/dist/esm/MutableQueue.js.map +1 -1
  410. package/dist/esm/MutableRef.js.map +1 -1
  411. package/dist/esm/Number.js.map +1 -1
  412. package/dist/esm/Option.js.map +1 -1
  413. package/dist/esm/Order.js.map +1 -1
  414. package/dist/esm/Ordering.js.map +1 -1
  415. package/dist/esm/Pipeable.js.map +1 -1
  416. package/dist/esm/Pool.js.map +1 -1
  417. package/dist/esm/Predicate.js.map +1 -1
  418. package/dist/esm/PubSub.js.map +1 -1
  419. package/dist/esm/Queue.js.map +1 -1
  420. package/dist/esm/RcMap.js.map +1 -1
  421. package/dist/esm/Readable.js.map +1 -1
  422. package/dist/esm/Record.js.map +1 -1
  423. package/dist/esm/RedBlackTree.js.map +1 -1
  424. package/dist/esm/Ref.js.map +1 -1
  425. package/dist/esm/Request.js.map +1 -1
  426. package/dist/esm/RequestResolver.js.map +1 -1
  427. package/dist/esm/Runtime.js.map +1 -1
  428. package/dist/esm/RuntimeFlags.js.map +1 -1
  429. package/dist/esm/RuntimeFlagsPatch.js.map +1 -1
  430. package/dist/esm/STM.js.map +1 -1
  431. package/dist/esm/Schedule.js.map +1 -1
  432. package/dist/esm/ScheduleInterval.js.map +1 -1
  433. package/dist/esm/ScheduleIntervals.js.map +1 -1
  434. package/dist/esm/Scheduler.js.map +1 -1
  435. package/dist/esm/Scope.js.map +1 -1
  436. package/dist/esm/ScopedRef.js.map +1 -1
  437. package/dist/esm/Sink.js.map +1 -1
  438. package/dist/esm/SortedMap.js.map +1 -1
  439. package/dist/esm/SortedSet.js.map +1 -1
  440. package/dist/esm/Stream.js +14 -0
  441. package/dist/esm/Stream.js.map +1 -1
  442. package/dist/esm/StreamHaltStrategy.js.map +1 -1
  443. package/dist/esm/String.js.map +1 -1
  444. package/dist/esm/Struct.js.map +1 -1
  445. package/dist/esm/Subscribable.js.map +1 -1
  446. package/dist/esm/SubscriptionRef.js.map +1 -1
  447. package/dist/esm/SynchronizedRef.js.map +1 -1
  448. package/dist/esm/TArray.js.map +1 -1
  449. package/dist/esm/TDeferred.js.map +1 -1
  450. package/dist/esm/TMap.js.map +1 -1
  451. package/dist/esm/TPriorityQueue.js.map +1 -1
  452. package/dist/esm/TPubSub.js.map +1 -1
  453. package/dist/esm/TQueue.js.map +1 -1
  454. package/dist/esm/TReentrantLock.js.map +1 -1
  455. package/dist/esm/TRef.js.map +1 -1
  456. package/dist/esm/TSemaphore.js.map +1 -1
  457. package/dist/esm/TSet.js.map +1 -1
  458. package/dist/esm/Take.js.map +1 -1
  459. package/dist/esm/TestAnnotationMap.js.map +1 -1
  460. package/dist/esm/TestClock.js.map +1 -1
  461. package/dist/esm/TestServices.js.map +1 -1
  462. package/dist/esm/Trie.js.map +1 -1
  463. package/dist/esm/Tuple.js.map +1 -1
  464. package/dist/esm/Unify.js.map +1 -1
  465. package/dist/esm/UpstreamPullRequest.js.map +1 -1
  466. package/dist/esm/UpstreamPullStrategy.js.map +1 -1
  467. package/dist/esm/Utils.js +1 -14
  468. package/dist/esm/Utils.js.map +1 -1
  469. package/dist/esm/internal/core.js +1 -1
  470. package/dist/esm/internal/core.js.map +1 -1
  471. package/dist/esm/internal/runtime.js +1 -1
  472. package/dist/esm/internal/runtime.js.map +1 -1
  473. package/dist/esm/internal/stream.js +9 -0
  474. package/dist/esm/internal/stream.js.map +1 -1
  475. package/dist/esm/internal/version.js +1 -1
  476. package/package.json +1 -1
  477. package/src/Array.ts +2723 -36
  478. package/src/BigDecimal.ts +585 -18
  479. package/src/BigInt.ts +516 -16
  480. package/src/Boolean.ts +241 -8
  481. package/src/Cause.ts +177 -1
  482. package/src/Channel.ts +766 -49
  483. package/src/ChildExecutorDecision.ts +12 -0
  484. package/src/Chunk.ts +818 -4
  485. package/src/Config.ts +187 -8
  486. package/src/ConfigError.ts +16 -0
  487. package/src/ConfigProvider.ts +89 -1
  488. package/src/ConfigProviderPathPatch.ts +32 -0
  489. package/src/Console.ts +37 -8
  490. package/src/Context.ts +232 -0
  491. package/src/Cron.ts +12 -0
  492. package/src/Data.ts +165 -0
  493. package/src/DateTime.ts +1006 -50
  494. package/src/Deferred.ts +170 -0
  495. package/src/Differ.ts +89 -27
  496. package/src/Duration.ts +156 -16
  497. package/src/Effect.ts +4297 -123
  498. package/src/Either.ts +650 -34
  499. package/src/Equivalence.ts +24 -0
  500. package/src/ExecutionStrategy.ts +29 -10
  501. package/src/Exit.ts +252 -0
  502. package/src/Fiber.ts +182 -0
  503. package/src/FiberHandle.ts +42 -0
  504. package/src/FiberId.ts +24 -0
  505. package/src/FiberMap.ts +144 -21
  506. package/src/FiberRef.ts +80 -0
  507. package/src/FiberRefs.ts +84 -0
  508. package/src/FiberRefsPatch.ts +35 -1
  509. package/src/FiberSet.ts +38 -0
  510. package/src/Function.ts +416 -31
  511. package/src/GroupBy.ts +38 -0
  512. package/src/Hash.ts +8 -0
  513. package/src/HashMap.ts +300 -0
  514. package/src/HashSet.ts +284 -0
  515. package/src/Iterable.ts +456 -6
  516. package/src/KeyedPool.ts +34 -0
  517. package/src/Layer.ts +426 -30
  518. package/src/List.ts +476 -3
  519. package/src/LogLevel.ts +46 -0
  520. package/src/Logger.ts +195 -4
  521. package/src/Mailbox.ts +16 -0
  522. package/src/MergeDecision.ts +8 -0
  523. package/src/MergeState.ts +8 -0
  524. package/src/MergeStrategy.ts +25 -8
  525. package/src/Metric.ts +426 -15
  526. package/src/MetricHook.ts +24 -0
  527. package/src/MetricKey.ts +62 -8
  528. package/src/MetricPolling.ts +42 -6
  529. package/src/MetricState.ts +16 -0
  530. package/src/Micro.ts +1212 -56
  531. package/src/MutableHashMap.ts +105 -1
  532. package/src/MutableHashSet.ts +24 -0
  533. package/src/MutableList.ts +36 -0
  534. package/src/MutableQueue.ts +62 -0
  535. package/src/MutableRef.ts +56 -0
  536. package/src/Number.ts +500 -16
  537. package/src/Option.ts +1042 -16
  538. package/src/Order.ts +24 -0
  539. package/src/Ordering.ts +66 -0
  540. package/src/Pipeable.ts +224 -21
  541. package/src/Pool.ts +16 -0
  542. package/src/Predicate.ts +498 -0
  543. package/src/PubSub.ts +28 -0
  544. package/src/Queue.ts +104 -0
  545. package/src/RcMap.ts +70 -0
  546. package/src/Readable.ts +18 -7
  547. package/src/Record.ts +814 -40
  548. package/src/RedBlackTree.ts +305 -1
  549. package/src/Ref.ts +88 -0
  550. package/src/Request.ts +76 -0
  551. package/src/RequestResolver.ts +145 -4
  552. package/src/Runtime.ts +134 -2
  553. package/src/RuntimeFlags.ts +100 -0
  554. package/src/RuntimeFlagsPatch.ts +112 -0
  555. package/src/STM.ts +1107 -11
  556. package/src/Schedule.ts +704 -0
  557. package/src/ScheduleInterval.ts +68 -0
  558. package/src/ScheduleIntervals.ts +50 -0
  559. package/src/Scheduler.ts +2 -0
  560. package/src/Scope.ts +36 -0
  561. package/src/ScopedRef.ts +22 -0
  562. package/src/Sink.ts +464 -0
  563. package/src/SortedMap.ts +76 -0
  564. package/src/SortedSet.ts +143 -3
  565. package/src/Stream.ts +5041 -54
  566. package/src/StreamHaltStrategy.ts +29 -12
  567. package/src/String.ts +200 -0
  568. package/src/Struct.ts +86 -7
  569. package/src/Subscribable.ts +16 -0
  570. package/src/SubscriptionRef.ts +159 -11
  571. package/src/SynchronizedRef.ts +169 -8
  572. package/src/TArray.ts +431 -1
  573. package/src/TDeferred.ts +24 -0
  574. package/src/TMap.ts +381 -12
  575. package/src/TPriorityQueue.ts +60 -0
  576. package/src/TPubSub.ts +28 -0
  577. package/src/TQueue.ts +108 -0
  578. package/src/TReentrantLock.ts +36 -0
  579. package/src/TRef.ts +88 -0
  580. package/src/TSemaphore.ts +40 -0
  581. package/src/TSet.ts +280 -12
  582. package/src/Take.ts +56 -0
  583. package/src/TestAnnotationMap.ts +45 -1
  584. package/src/TestClock.ts +6 -0
  585. package/src/TestServices.ts +66 -0
  586. package/src/Trie.ts +906 -0
  587. package/src/Tuple.ts +157 -8
  588. package/src/Unify.ts +19 -3
  589. package/src/UpstreamPullRequest.ts +12 -0
  590. package/src/UpstreamPullStrategy.ts +12 -0
  591. package/src/Utils.ts +1 -15
  592. package/src/internal/core.ts +1 -1
  593. package/src/internal/runtime.ts +1 -1
  594. package/src/internal/stream.ts +27 -0
  595. package/src/internal/version.ts +1 -1
package/src/Either.ts CHANGED
@@ -139,7 +139,33 @@ export const left: <L>(left: L) => Either<never, L> = either.left
139
139
  * @since 2.0.0
140
140
  */
141
141
  export const fromNullable: {
142
+ /**
143
+ * Takes a lazy default and a nullable value, if the value is not nully (`null` or `undefined`), turn it into a `Right`, if the value is nully use
144
+ * the provided default as a `Left`.
145
+ *
146
+ * @example
147
+ * import { Either } from "effect"
148
+ *
149
+ * assert.deepStrictEqual(Either.fromNullable(1, () => 'fallback'), Either.right(1))
150
+ * assert.deepStrictEqual(Either.fromNullable(null, () => 'fallback'), Either.left('fallback'))
151
+ *
152
+ * @category constructors
153
+ * @since 2.0.0
154
+ */
142
155
  <R, L>(onNullable: (right: R) => L): (self: R) => Either<NonNullable<R>, L>
156
+ /**
157
+ * Takes a lazy default and a nullable value, if the value is not nully (`null` or `undefined`), turn it into a `Right`, if the value is nully use
158
+ * the provided default as a `Left`.
159
+ *
160
+ * @example
161
+ * import { Either } from "effect"
162
+ *
163
+ * assert.deepStrictEqual(Either.fromNullable(1, () => 'fallback'), Either.right(1))
164
+ * assert.deepStrictEqual(Either.fromNullable(null, () => 'fallback'), Either.left('fallback'))
165
+ *
166
+ * @category constructors
167
+ * @since 2.0.0
168
+ */
143
169
  <R, L>(self: R, onNullable: (right: R) => L): Either<NonNullable<R>, L>
144
170
  } = dual(
145
171
  2,
@@ -158,7 +184,27 @@ export const fromNullable: {
158
184
  * @since 2.0.0
159
185
  */
160
186
  export const fromOption: {
187
+ /**
188
+ * @example
189
+ * import { Either, Option } from "effect"
190
+ *
191
+ * assert.deepStrictEqual(Either.fromOption(Option.some(1), () => 'error'), Either.right(1))
192
+ * assert.deepStrictEqual(Either.fromOption(Option.none(), () => 'error'), Either.left('error'))
193
+ *
194
+ * @category constructors
195
+ * @since 2.0.0
196
+ */
161
197
  <L>(onNone: () => L): <R>(self: Option<R>) => Either<R, L>
198
+ /**
199
+ * @example
200
+ * import { Either, Option } from "effect"
201
+ *
202
+ * assert.deepStrictEqual(Either.fromOption(Option.some(1), () => 'error'), Either.right(1))
203
+ * assert.deepStrictEqual(Either.fromOption(Option.none(), () => 'error'), Either.left('error'))
204
+ *
205
+ * @category constructors
206
+ * @since 2.0.0
207
+ */
162
208
  <R, L>(self: Option<R>, onNone: () => L): Either<R, L>
163
209
  } = either.fromOption
164
210
 
@@ -300,14 +346,27 @@ export const getEquivalence = <R, L>({ left, right }: {
300
346
  * @since 2.0.0
301
347
  */
302
348
  export const mapBoth: {
303
- <L, L2, R, R2>(options: {
304
- readonly onLeft: (left: L) => L2
305
- readonly onRight: (right: R) => R2
306
- }): (self: Either<R, L>) => Either<R2, L2>
307
- <L, R, L2, R2>(self: Either<R, L>, options: {
308
- readonly onLeft: (left: L) => L2
309
- readonly onRight: (right: R) => R2
310
- }): Either<R2, L2>
349
+ /**
350
+ * @category mapping
351
+ * @since 2.0.0
352
+ */
353
+ <L, L2, R, R2>(
354
+ options: {
355
+ readonly onLeft: (left: L) => L2
356
+ readonly onRight: (right: R) => R2
357
+ }
358
+ ): (self: Either<R, L>) => Either<R2, L2>
359
+ /**
360
+ * @category mapping
361
+ * @since 2.0.0
362
+ */
363
+ <L, R, L2, R2>(
364
+ self: Either<R, L>,
365
+ options: {
366
+ readonly onLeft: (left: L) => L2
367
+ readonly onRight: (right: R) => R2
368
+ }
369
+ ): Either<R2, L2>
311
370
  } = dual(
312
371
  2,
313
372
  <L, R, L2, R2>(self: Either<R, L>, { onLeft, onRight }: {
@@ -326,7 +385,25 @@ export const mapBoth: {
326
385
  * @since 2.0.0
327
386
  */
328
387
  export const mapLeft: {
388
+ /**
389
+ * Maps the `Left` side of an `Either` value to a new `Either` value.
390
+ *
391
+ * @param self - The input `Either` value to map.
392
+ * @param f - A transformation function to apply to the `Left` value of the input `Either`.
393
+ *
394
+ * @category mapping
395
+ * @since 2.0.0
396
+ */
329
397
  <L, L2>(f: (left: L) => L2): <R>(self: Either<R, L>) => Either<R, L2>
398
+ /**
399
+ * Maps the `Left` side of an `Either` value to a new `Either` value.
400
+ *
401
+ * @param self - The input `Either` value to map.
402
+ * @param f - A transformation function to apply to the `Left` value of the input `Either`.
403
+ *
404
+ * @category mapping
405
+ * @since 2.0.0
406
+ */
330
407
  <R, L, L2>(self: Either<R, L>, f: (left: L) => L2): Either<R, L2>
331
408
  } = dual(
332
409
  2,
@@ -344,7 +421,25 @@ export const mapLeft: {
344
421
  * @since 2.0.0
345
422
  */
346
423
  export const map: {
424
+ /**
425
+ * Maps the `Right` side of an `Either` value to a new `Either` value.
426
+ *
427
+ * @param self - An `Either` to map
428
+ * @param f - The function to map over the value of the `Either`
429
+ *
430
+ * @category mapping
431
+ * @since 2.0.0
432
+ */
347
433
  <R, R2>(f: (right: R) => R2): <L>(self: Either<R, L>) => Either<R2, L>
434
+ /**
435
+ * Maps the `Right` side of an `Either` value to a new `Either` value.
436
+ *
437
+ * @param self - An `Either` to map
438
+ * @param f - The function to map over the value of the `Either`
439
+ *
440
+ * @category mapping
441
+ * @since 2.0.0
442
+ */
348
443
  <R, L, R2>(self: Either<R, L>, f: (right: R) => R2): Either<R2, L>
349
444
  } = dual(
350
445
  2,
@@ -373,14 +468,59 @@ export const map: {
373
468
  * @since 2.0.0
374
469
  */
375
470
  export const match: {
376
- <L, B, R, C = B>(options: {
377
- readonly onLeft: (left: L) => B
378
- readonly onRight: (right: R) => C
379
- }): (self: Either<R, L>) => B | C
380
- <R, L, B, C = B>(self: Either<R, L>, options: {
381
- readonly onLeft: (left: L) => B
382
- readonly onRight: (right: R) => C
383
- }): B | C
471
+ /**
472
+ * Takes two functions and an `Either` value, if the value is a `Left` the inner value is applied to the `onLeft function,
473
+ * if the value is a `Right` the inner value is applied to the `onRight` function.
474
+ *
475
+ * @example
476
+ * import { pipe, Either } from "effect"
477
+ *
478
+ * const onLeft = (strings: ReadonlyArray<string>): string => `strings: ${strings.join(', ')}`
479
+ *
480
+ * const onRight = (value: number): string => `Ok: ${value}`
481
+ *
482
+ * assert.deepStrictEqual(pipe(Either.right(1), Either.match({ onLeft, onRight })), 'Ok: 1')
483
+ * assert.deepStrictEqual(
484
+ * pipe(Either.left(['string 1', 'string 2']), Either.match({ onLeft, onRight })),
485
+ * 'strings: string 1, string 2'
486
+ * )
487
+ *
488
+ * @category pattern matching
489
+ * @since 2.0.0
490
+ */
491
+ <L, B, R, C = B>(
492
+ options: {
493
+ readonly onLeft: (left: L) => B
494
+ readonly onRight: (right: R) => C
495
+ }
496
+ ): (self: Either<R, L>) => B | C
497
+ /**
498
+ * Takes two functions and an `Either` value, if the value is a `Left` the inner value is applied to the `onLeft function,
499
+ * if the value is a `Right` the inner value is applied to the `onRight` function.
500
+ *
501
+ * @example
502
+ * import { pipe, Either } from "effect"
503
+ *
504
+ * const onLeft = (strings: ReadonlyArray<string>): string => `strings: ${strings.join(', ')}`
505
+ *
506
+ * const onRight = (value: number): string => `Ok: ${value}`
507
+ *
508
+ * assert.deepStrictEqual(pipe(Either.right(1), Either.match({ onLeft, onRight })), 'Ok: 1')
509
+ * assert.deepStrictEqual(
510
+ * pipe(Either.left(['string 1', 'string 2']), Either.match({ onLeft, onRight })),
511
+ * 'strings: string 1, string 2'
512
+ * )
513
+ *
514
+ * @category pattern matching
515
+ * @since 2.0.0
516
+ */
517
+ <R, L, B, C = B>(
518
+ self: Either<R, L>,
519
+ options: {
520
+ readonly onLeft: (left: L) => B
521
+ readonly onRight: (right: R) => C
522
+ }
523
+ ): B | C
384
524
  } = dual(
385
525
  2,
386
526
  <R, L, B, C = B>(self: Either<R, L>, { onLeft, onRight }: {
@@ -419,16 +559,125 @@ export const match: {
419
559
  * @since 3.4.0
420
560
  */
421
561
  export const liftPredicate: {
562
+ /**
563
+ * Transforms a `Predicate` function into a `Right` of the input value if the predicate returns `true`
564
+ * or `Left` of the result of the provided function if the predicate returns false
565
+ *
566
+ * @param predicate - A `Predicate` function that takes in a value of type `A` and returns a boolean.
567
+ *
568
+ * @example
569
+ * import { pipe, Either } from "effect"
570
+ *
571
+ * const isPositive = (n: number): boolean => n > 0
572
+ *
573
+ * assert.deepStrictEqual(
574
+ * pipe(
575
+ * 1,
576
+ * Either.liftPredicate(isPositive, n => `${n} is not positive`)
577
+ * ),
578
+ * Either.right(1)
579
+ * )
580
+ * assert.deepStrictEqual(
581
+ * pipe(
582
+ * 0,
583
+ * Either.liftPredicate(isPositive, n => `${n} is not positive`)
584
+ * ),
585
+ * Either.left("0 is not positive")
586
+ * )
587
+ *
588
+ * @category lifting
589
+ * @since 3.4.0
590
+ */
422
591
  <A, B extends A, E>(refinement: Refinement<NoInfer<A>, B>, orLeftWith: (a: NoInfer<A>) => E): (a: A) => Either<B, E>
423
- <A, E>(
424
- predicate: Predicate<NoInfer<A>>,
425
- orLeftWith: (a: NoInfer<A>) => E
426
- ): (a: A) => Either<A, E>
427
- <A, E, B extends A>(
428
- self: A,
429
- refinement: Refinement<A, B>,
430
- orLeftWith: (a: A) => E
431
- ): Either<B, E>
592
+ /**
593
+ * Transforms a `Predicate` function into a `Right` of the input value if the predicate returns `true`
594
+ * or `Left` of the result of the provided function if the predicate returns false
595
+ *
596
+ * @param predicate - A `Predicate` function that takes in a value of type `A` and returns a boolean.
597
+ *
598
+ * @example
599
+ * import { pipe, Either } from "effect"
600
+ *
601
+ * const isPositive = (n: number): boolean => n > 0
602
+ *
603
+ * assert.deepStrictEqual(
604
+ * pipe(
605
+ * 1,
606
+ * Either.liftPredicate(isPositive, n => `${n} is not positive`)
607
+ * ),
608
+ * Either.right(1)
609
+ * )
610
+ * assert.deepStrictEqual(
611
+ * pipe(
612
+ * 0,
613
+ * Either.liftPredicate(isPositive, n => `${n} is not positive`)
614
+ * ),
615
+ * Either.left("0 is not positive")
616
+ * )
617
+ *
618
+ * @category lifting
619
+ * @since 3.4.0
620
+ */
621
+ <A, E>(predicate: Predicate<NoInfer<A>>, orLeftWith: (a: NoInfer<A>) => E): (a: A) => Either<A, E>
622
+ /**
623
+ * Transforms a `Predicate` function into a `Right` of the input value if the predicate returns `true`
624
+ * or `Left` of the result of the provided function if the predicate returns false
625
+ *
626
+ * @param predicate - A `Predicate` function that takes in a value of type `A` and returns a boolean.
627
+ *
628
+ * @example
629
+ * import { pipe, Either } from "effect"
630
+ *
631
+ * const isPositive = (n: number): boolean => n > 0
632
+ *
633
+ * assert.deepStrictEqual(
634
+ * pipe(
635
+ * 1,
636
+ * Either.liftPredicate(isPositive, n => `${n} is not positive`)
637
+ * ),
638
+ * Either.right(1)
639
+ * )
640
+ * assert.deepStrictEqual(
641
+ * pipe(
642
+ * 0,
643
+ * Either.liftPredicate(isPositive, n => `${n} is not positive`)
644
+ * ),
645
+ * Either.left("0 is not positive")
646
+ * )
647
+ *
648
+ * @category lifting
649
+ * @since 3.4.0
650
+ */
651
+ <A, E, B extends A>(self: A, refinement: Refinement<A, B>, orLeftWith: (a: A) => E): Either<B, E>
652
+ /**
653
+ * Transforms a `Predicate` function into a `Right` of the input value if the predicate returns `true`
654
+ * or `Left` of the result of the provided function if the predicate returns false
655
+ *
656
+ * @param predicate - A `Predicate` function that takes in a value of type `A` and returns a boolean.
657
+ *
658
+ * @example
659
+ * import { pipe, Either } from "effect"
660
+ *
661
+ * const isPositive = (n: number): boolean => n > 0
662
+ *
663
+ * assert.deepStrictEqual(
664
+ * pipe(
665
+ * 1,
666
+ * Either.liftPredicate(isPositive, n => `${n} is not positive`)
667
+ * ),
668
+ * Either.right(1)
669
+ * )
670
+ * assert.deepStrictEqual(
671
+ * pipe(
672
+ * 0,
673
+ * Either.liftPredicate(isPositive, n => `${n} is not positive`)
674
+ * ),
675
+ * Either.left("0 is not positive")
676
+ * )
677
+ *
678
+ * @category lifting
679
+ * @since 3.4.0
680
+ */
432
681
  <A, E>(
433
682
  self: A,
434
683
  predicate: Predicate<NoInfer<A>>,
@@ -468,19 +717,127 @@ export const liftPredicate: {
468
717
  * @category filtering & conditionals
469
718
  */
470
719
  export const filterOrLeft: {
720
+ /**
721
+ * Filter the right value with the provided function.
722
+ * If the predicate fails, set the left value with the result of the provided function.
723
+ *
724
+ * @example
725
+ * import { pipe, Either } from "effect"
726
+ *
727
+ * const isPositive = (n: number): boolean => n > 0
728
+ *
729
+ * assert.deepStrictEqual(
730
+ * pipe(
731
+ * Either.right(1),
732
+ * Either.filterOrLeft(isPositive, n => `${n} is not positive`)
733
+ * ),
734
+ * Either.right(1)
735
+ * )
736
+ * assert.deepStrictEqual(
737
+ * pipe(
738
+ * Either.right(0),
739
+ * Either.filterOrLeft(isPositive, n => `${n} is not positive`)
740
+ * ),
741
+ * Either.left("0 is not positive")
742
+ * )
743
+ *
744
+ * @since 2.0.0
745
+ * @category filtering & conditionals
746
+ */
471
747
  <R, B extends R, L2>(
472
748
  refinement: Refinement<NoInfer<R>, B>,
473
749
  orLeftWith: (right: NoInfer<R>) => L2
474
750
  ): <L>(self: Either<R, L>) => Either<B, L2 | L>
751
+ /**
752
+ * Filter the right value with the provided function.
753
+ * If the predicate fails, set the left value with the result of the provided function.
754
+ *
755
+ * @example
756
+ * import { pipe, Either } from "effect"
757
+ *
758
+ * const isPositive = (n: number): boolean => n > 0
759
+ *
760
+ * assert.deepStrictEqual(
761
+ * pipe(
762
+ * Either.right(1),
763
+ * Either.filterOrLeft(isPositive, n => `${n} is not positive`)
764
+ * ),
765
+ * Either.right(1)
766
+ * )
767
+ * assert.deepStrictEqual(
768
+ * pipe(
769
+ * Either.right(0),
770
+ * Either.filterOrLeft(isPositive, n => `${n} is not positive`)
771
+ * ),
772
+ * Either.left("0 is not positive")
773
+ * )
774
+ *
775
+ * @since 2.0.0
776
+ * @category filtering & conditionals
777
+ */
475
778
  <R, L2>(
476
779
  predicate: Predicate<NoInfer<R>>,
477
780
  orLeftWith: (right: NoInfer<R>) => L2
478
781
  ): <L>(self: Either<R, L>) => Either<R, L2 | L>
782
+ /**
783
+ * Filter the right value with the provided function.
784
+ * If the predicate fails, set the left value with the result of the provided function.
785
+ *
786
+ * @example
787
+ * import { pipe, Either } from "effect"
788
+ *
789
+ * const isPositive = (n: number): boolean => n > 0
790
+ *
791
+ * assert.deepStrictEqual(
792
+ * pipe(
793
+ * Either.right(1),
794
+ * Either.filterOrLeft(isPositive, n => `${n} is not positive`)
795
+ * ),
796
+ * Either.right(1)
797
+ * )
798
+ * assert.deepStrictEqual(
799
+ * pipe(
800
+ * Either.right(0),
801
+ * Either.filterOrLeft(isPositive, n => `${n} is not positive`)
802
+ * ),
803
+ * Either.left("0 is not positive")
804
+ * )
805
+ *
806
+ * @since 2.0.0
807
+ * @category filtering & conditionals
808
+ */
479
809
  <R, L, B extends R, L2>(
480
810
  self: Either<R, L>,
481
811
  refinement: Refinement<R, B>,
482
812
  orLeftWith: (right: R) => L2
483
813
  ): Either<B, L | L2>
814
+ /**
815
+ * Filter the right value with the provided function.
816
+ * If the predicate fails, set the left value with the result of the provided function.
817
+ *
818
+ * @example
819
+ * import { pipe, Either } from "effect"
820
+ *
821
+ * const isPositive = (n: number): boolean => n > 0
822
+ *
823
+ * assert.deepStrictEqual(
824
+ * pipe(
825
+ * Either.right(1),
826
+ * Either.filterOrLeft(isPositive, n => `${n} is not positive`)
827
+ * ),
828
+ * Either.right(1)
829
+ * )
830
+ * assert.deepStrictEqual(
831
+ * pipe(
832
+ * Either.right(0),
833
+ * Either.filterOrLeft(isPositive, n => `${n} is not positive`)
834
+ * ),
835
+ * Either.left("0 is not positive")
836
+ * )
837
+ *
838
+ * @since 2.0.0
839
+ * @category filtering & conditionals
840
+ */
484
841
  <R, L, E2>(self: Either<R, L>, predicate: Predicate<R>, orLeftWith: (right: R) => E2): Either<R, L | E2>
485
842
  } = dual(3, <R, L, E2>(
486
843
  self: Either<R, L>,
@@ -510,7 +867,31 @@ export const merge: <R, L>(self: Either<R, L>) => L | R = match({
510
867
  * @since 2.0.0
511
868
  */
512
869
  export const getOrElse: {
870
+ /**
871
+ * Returns the wrapped value if it's a `Right` or a default value if is a `Left`.
872
+ *
873
+ * @example
874
+ * import { Either } from "effect"
875
+ *
876
+ * assert.deepStrictEqual(Either.getOrElse(Either.right(1), (error) => error + "!"), 1)
877
+ * assert.deepStrictEqual(Either.getOrElse(Either.left("not a number"), (error) => error + "!"), "not a number!")
878
+ *
879
+ * @category getters
880
+ * @since 2.0.0
881
+ */
513
882
  <L, R2>(onLeft: (left: L) => R2): <R>(self: Either<R, L>) => R2 | R
883
+ /**
884
+ * Returns the wrapped value if it's a `Right` or a default value if is a `Left`.
885
+ *
886
+ * @example
887
+ * import { Either } from "effect"
888
+ *
889
+ * assert.deepStrictEqual(Either.getOrElse(Either.right(1), (error) => error + "!"), 1)
890
+ * assert.deepStrictEqual(Either.getOrElse(Either.left("not a number"), (error) => error + "!"), "not a number!")
891
+ *
892
+ * @category getters
893
+ * @since 2.0.0
894
+ */
514
895
  <R, L, R2>(self: Either<R, L>, onLeft: (left: L) => R2): R | R2
515
896
  } = dual(
516
897
  2,
@@ -562,7 +943,47 @@ export const getOrUndefined: <R, L>(self: Either<R, L>) => R | undefined = getOr
562
943
  * @since 2.0.0
563
944
  */
564
945
  export const getOrThrowWith: {
946
+ /**
947
+ * Extracts the value of an `Either` or throws if the `Either` is `Left`.
948
+ *
949
+ * If a default error is sufficient for your use case and you don't need to configure the thrown error, see {@link getOrThrow}.
950
+ *
951
+ * @param self - The `Either` to extract the value from.
952
+ * @param onLeft - A function that will be called if the `Either` is `Left`. It returns the error to be thrown.
953
+ *
954
+ * @example
955
+ * import { Either } from "effect"
956
+ *
957
+ * assert.deepStrictEqual(
958
+ * Either.getOrThrowWith(Either.right(1), () => new Error('Unexpected Left')),
959
+ * 1
960
+ * )
961
+ * assert.throws(() => Either.getOrThrowWith(Either.left("error"), () => new Error('Unexpected Left')))
962
+ *
963
+ * @category getters
964
+ * @since 2.0.0
965
+ */
565
966
  <L>(onLeft: (left: L) => unknown): <A>(self: Either<A, L>) => A
967
+ /**
968
+ * Extracts the value of an `Either` or throws if the `Either` is `Left`.
969
+ *
970
+ * If a default error is sufficient for your use case and you don't need to configure the thrown error, see {@link getOrThrow}.
971
+ *
972
+ * @param self - The `Either` to extract the value from.
973
+ * @param onLeft - A function that will be called if the `Either` is `Left`. It returns the error to be thrown.
974
+ *
975
+ * @example
976
+ * import { Either } from "effect"
977
+ *
978
+ * assert.deepStrictEqual(
979
+ * Either.getOrThrowWith(Either.right(1), () => new Error('Unexpected Left')),
980
+ * 1
981
+ * )
982
+ * assert.throws(() => Either.getOrThrowWith(Either.left("error"), () => new Error('Unexpected Left')))
983
+ *
984
+ * @category getters
985
+ * @since 2.0.0
986
+ */
566
987
  <R, L>(self: Either<R, L>, onLeft: (left: L) => unknown): R
567
988
  } = dual(2, <R, L>(self: Either<R, L>, onLeft: (left: L) => unknown): R => {
568
989
  if (isRight(self)) {
@@ -602,7 +1023,25 @@ export const getOrThrow: <R, L>(self: Either<R, L>) => R = getOrThrowWith(() =>
602
1023
  * @since 2.0.0
603
1024
  */
604
1025
  export const orElse: {
1026
+ /**
1027
+ * Returns `self` if it is a `Right` or `that` otherwise.
1028
+ *
1029
+ * @param self - The input `Either` value to check and potentially return.
1030
+ * @param that - A function that takes the error value from `self` (if it's a `Left`) and returns a new `Either` value.
1031
+ *
1032
+ * @category error handling
1033
+ * @since 2.0.0
1034
+ */
605
1035
  <L, R2, L2>(that: (left: L) => Either<R2, L2>): <R>(self: Either<R, L>) => Either<R | R2, L2>
1036
+ /**
1037
+ * Returns `self` if it is a `Right` or `that` otherwise.
1038
+ *
1039
+ * @param self - The input `Either` value to check and potentially return.
1040
+ * @param that - A function that takes the error value from `self` (if it's a `Left`) and returns a new `Either` value.
1041
+ *
1042
+ * @category error handling
1043
+ * @since 2.0.0
1044
+ */
606
1045
  <R, L, R2, L2>(self: Either<R, L>, that: (left: L) => Either<R2, L2>): Either<R | R2, L2>
607
1046
  } = dual(
608
1047
  2,
@@ -615,7 +1054,15 @@ export const orElse: {
615
1054
  * @since 2.0.0
616
1055
  */
617
1056
  export const flatMap: {
1057
+ /**
1058
+ * @category sequencing
1059
+ * @since 2.0.0
1060
+ */
618
1061
  <R, R2, L2>(f: (right: R) => Either<R2, L2>): <L>(self: Either<R, L>) => Either<R2, L | L2>
1062
+ /**
1063
+ * @category sequencing
1064
+ * @since 2.0.0
1065
+ */
619
1066
  <R, L, R2, L2>(self: Either<R, L>, f: (right: R) => Either<R2, L2>): Either<R2, L | L2>
620
1067
  } = dual(
621
1068
  2,
@@ -630,13 +1077,61 @@ export const flatMap: {
630
1077
  * @since 2.0.0
631
1078
  */
632
1079
  export const andThen: {
1080
+ /**
1081
+ * Executes a sequence of two `Either`s. The second `Either` can be dependent on the result of the first `Either`.
1082
+ *
1083
+ * @category sequencing
1084
+ * @since 2.0.0
1085
+ */
633
1086
  <R, R2, L2>(f: (right: R) => Either<R2, L2>): <L>(self: Either<R, L>) => Either<R2, L | L2>
1087
+ /**
1088
+ * Executes a sequence of two `Either`s. The second `Either` can be dependent on the result of the first `Either`.
1089
+ *
1090
+ * @category sequencing
1091
+ * @since 2.0.0
1092
+ */
634
1093
  <R2, L2>(f: Either<R2, L2>): <L, R1>(self: Either<R1, L>) => Either<R2, L | L2>
1094
+ /**
1095
+ * Executes a sequence of two `Either`s. The second `Either` can be dependent on the result of the first `Either`.
1096
+ *
1097
+ * @category sequencing
1098
+ * @since 2.0.0
1099
+ */
635
1100
  <R, R2>(f: (right: R) => R2): <L>(self: Either<R, L>) => Either<R2, L>
1101
+ /**
1102
+ * Executes a sequence of two `Either`s. The second `Either` can be dependent on the result of the first `Either`.
1103
+ *
1104
+ * @category sequencing
1105
+ * @since 2.0.0
1106
+ */
636
1107
  <R2>(right: NotFunction<R2>): <R1, L>(self: Either<R1, L>) => Either<R2, L>
1108
+ /**
1109
+ * Executes a sequence of two `Either`s. The second `Either` can be dependent on the result of the first `Either`.
1110
+ *
1111
+ * @category sequencing
1112
+ * @since 2.0.0
1113
+ */
637
1114
  <R, L, R2, L2>(self: Either<R, L>, f: (right: R) => Either<R2, L2>): Either<R2, L | L2>
1115
+ /**
1116
+ * Executes a sequence of two `Either`s. The second `Either` can be dependent on the result of the first `Either`.
1117
+ *
1118
+ * @category sequencing
1119
+ * @since 2.0.0
1120
+ */
638
1121
  <R, L, R2, L2>(self: Either<R, L>, f: Either<R2, L2>): Either<R2, L | L2>
1122
+ /**
1123
+ * Executes a sequence of two `Either`s. The second `Either` can be dependent on the result of the first `Either`.
1124
+ *
1125
+ * @category sequencing
1126
+ * @since 2.0.0
1127
+ */
639
1128
  <R, L, R2>(self: Either<R, L>, f: (right: R) => R2): Either<R2, L>
1129
+ /**
1130
+ * Executes a sequence of two `Either`s. The second `Either` can be dependent on the result of the first `Either`.
1131
+ *
1132
+ * @category sequencing
1133
+ * @since 2.0.0
1134
+ */
640
1135
  <R, L, R2>(self: Either<R, L>, f: NotFunction<R2>): Either<R2, L>
641
1136
  } = dual(
642
1137
  2,
@@ -652,15 +1147,16 @@ export const andThen: {
652
1147
  * @since 2.0.0
653
1148
  */
654
1149
  export const zipWith: {
655
- <R2, L2, R, B>(
656
- that: Either<R2, L2>,
657
- f: (right: R, right2: R2) => B
658
- ): <L>(self: Either<R, L>) => Either<B, L2 | L>
659
- <R, L, R2, L2, B>(
660
- self: Either<R, L>,
661
- that: Either<R2, L2>,
662
- f: (right: R, right2: R2) => B
663
- ): Either<B, L | L2>
1150
+ /**
1151
+ * @category zipping
1152
+ * @since 2.0.0
1153
+ */
1154
+ <R2, L2, R, B>(that: Either<R2, L2>, f: (right: R, right2: R2) => B): <L>(self: Either<R, L>) => Either<B, L2 | L>
1155
+ /**
1156
+ * @category zipping
1157
+ * @since 2.0.0
1158
+ */
1159
+ <R, L, R2, L2, B>(self: Either<R, L>, that: Either<R2, L2>, f: (right: R, right2: R2) => B): Either<B, L | L2>
664
1160
  } = dual(
665
1161
  3,
666
1162
  <R, L, R2, L2, B>(self: Either<R, L>, that: Either<R2, L2>, f: (right: R, right2: R2) => B): Either<B, L | L2> =>
@@ -672,7 +1168,15 @@ export const zipWith: {
672
1168
  * @since 2.0.0
673
1169
  */
674
1170
  export const ap: {
1171
+ /**
1172
+ * @category combining
1173
+ * @since 2.0.0
1174
+ */
675
1175
  <R, L2>(that: Either<R, L2>): <R2, L>(self: Either<(right: R) => R2, L>) => Either<R2, L | L2>
1176
+ /**
1177
+ * @category combining
1178
+ * @since 2.0.0
1179
+ */
676
1180
  <R, R2, L, L2>(self: Either<(right: R) => R2, L>, that: Either<R, L2>): Either<R2, L | L2>
677
1181
  } = dual(
678
1182
  2,
@@ -849,10 +1353,66 @@ export const Do: Either<{}> = right({})
849
1353
  * @since 2.0.0
850
1354
  */
851
1355
  export const bind: {
1356
+ /**
1357
+ * The "do simulation" in Effect allows you to write code in a more declarative style, similar to the "do notation" in other programming languages. It provides a way to define variables and perform operations on them using functions like `bind` and `let`.
1358
+ *
1359
+ * Here's how the do simulation works:
1360
+ *
1361
+ * 1. Start the do simulation using the `Do` value
1362
+ * 2. Within the do simulation scope, you can use the `bind` function to define variables and bind them to `Either` values
1363
+ * 3. You can accumulate multiple `bind` statements to define multiple variables within the scope
1364
+ * 4. Inside the do simulation scope, you can also use the `let` function to define variables and bind them to simple values
1365
+ *
1366
+ * @see {@link Do}
1367
+ * @see {@link bindTo}
1368
+ * @see {@link let_ let}
1369
+ *
1370
+ * @example
1371
+ * import { Either, pipe } from "effect"
1372
+ *
1373
+ * const result = pipe(
1374
+ * Either.Do,
1375
+ * Either.bind("x", () => Either.right(2)),
1376
+ * Either.bind("y", () => Either.right(3)),
1377
+ * Either.let("sum", ({ x, y }) => x + y)
1378
+ * )
1379
+ * assert.deepStrictEqual(result, Either.right({ x: 2, y: 3, sum: 5 }))
1380
+ *
1381
+ * @category do notation
1382
+ * @since 2.0.0
1383
+ */
852
1384
  <N extends string, A extends object, B, L2>(
853
1385
  name: Exclude<N, keyof A>,
854
1386
  f: (a: A) => Either<B, L2>
855
1387
  ): <L1>(self: Either<A, L1>) => Either<{ [K in N | keyof A]: K extends keyof A ? A[K] : B }, L1 | L2>
1388
+ /**
1389
+ * The "do simulation" in Effect allows you to write code in a more declarative style, similar to the "do notation" in other programming languages. It provides a way to define variables and perform operations on them using functions like `bind` and `let`.
1390
+ *
1391
+ * Here's how the do simulation works:
1392
+ *
1393
+ * 1. Start the do simulation using the `Do` value
1394
+ * 2. Within the do simulation scope, you can use the `bind` function to define variables and bind them to `Either` values
1395
+ * 3. You can accumulate multiple `bind` statements to define multiple variables within the scope
1396
+ * 4. Inside the do simulation scope, you can also use the `let` function to define variables and bind them to simple values
1397
+ *
1398
+ * @see {@link Do}
1399
+ * @see {@link bindTo}
1400
+ * @see {@link let_ let}
1401
+ *
1402
+ * @example
1403
+ * import { Either, pipe } from "effect"
1404
+ *
1405
+ * const result = pipe(
1406
+ * Either.Do,
1407
+ * Either.bind("x", () => Either.right(2)),
1408
+ * Either.bind("y", () => Either.right(3)),
1409
+ * Either.let("sum", ({ x, y }) => x + y)
1410
+ * )
1411
+ * assert.deepStrictEqual(result, Either.right({ x: 2, y: 3, sum: 5 }))
1412
+ *
1413
+ * @category do notation
1414
+ * @since 2.0.0
1415
+ */
856
1416
  <A extends object, L1, N extends string, B, L2>(
857
1417
  self: Either<A, L1>,
858
1418
  name: Exclude<N, keyof A>,
@@ -889,7 +1449,63 @@ export const bind: {
889
1449
  * @since 2.0.0
890
1450
  */
891
1451
  export const bindTo: {
1452
+ /**
1453
+ * The "do simulation" in Effect allows you to write code in a more declarative style, similar to the "do notation" in other programming languages. It provides a way to define variables and perform operations on them using functions like `bind` and `let`.
1454
+ *
1455
+ * Here's how the do simulation works:
1456
+ *
1457
+ * 1. Start the do simulation using the `Do` value
1458
+ * 2. Within the do simulation scope, you can use the `bind` function to define variables and bind them to `Either` values
1459
+ * 3. You can accumulate multiple `bind` statements to define multiple variables within the scope
1460
+ * 4. Inside the do simulation scope, you can also use the `let` function to define variables and bind them to simple values
1461
+ *
1462
+ * @see {@link Do}
1463
+ * @see {@link bind}
1464
+ * @see {@link let_ let}
1465
+ *
1466
+ * @example
1467
+ * import { Either, pipe } from "effect"
1468
+ *
1469
+ * const result = pipe(
1470
+ * Either.Do,
1471
+ * Either.bind("x", () => Either.right(2)),
1472
+ * Either.bind("y", () => Either.right(3)),
1473
+ * Either.let("sum", ({ x, y }) => x + y)
1474
+ * )
1475
+ * assert.deepStrictEqual(result, Either.right({ x: 2, y: 3, sum: 5 }))
1476
+ *
1477
+ * @category do notation
1478
+ * @since 2.0.0
1479
+ */
892
1480
  <N extends string>(name: N): <R, L>(self: Either<R, L>) => Either<{ [K in N]: R }, L>
1481
+ /**
1482
+ * The "do simulation" in Effect allows you to write code in a more declarative style, similar to the "do notation" in other programming languages. It provides a way to define variables and perform operations on them using functions like `bind` and `let`.
1483
+ *
1484
+ * Here's how the do simulation works:
1485
+ *
1486
+ * 1. Start the do simulation using the `Do` value
1487
+ * 2. Within the do simulation scope, you can use the `bind` function to define variables and bind them to `Either` values
1488
+ * 3. You can accumulate multiple `bind` statements to define multiple variables within the scope
1489
+ * 4. Inside the do simulation scope, you can also use the `let` function to define variables and bind them to simple values
1490
+ *
1491
+ * @see {@link Do}
1492
+ * @see {@link bind}
1493
+ * @see {@link let_ let}
1494
+ *
1495
+ * @example
1496
+ * import { Either, pipe } from "effect"
1497
+ *
1498
+ * const result = pipe(
1499
+ * Either.Do,
1500
+ * Either.bind("x", () => Either.right(2)),
1501
+ * Either.bind("y", () => Either.right(3)),
1502
+ * Either.let("sum", ({ x, y }) => x + y)
1503
+ * )
1504
+ * assert.deepStrictEqual(result, Either.right({ x: 2, y: 3, sum: 5 }))
1505
+ *
1506
+ * @category do notation
1507
+ * @since 2.0.0
1508
+ */
893
1509
  <R, L, N extends string>(self: Either<R, L>, name: N): Either<{ [K in N]: R }, L>
894
1510
  } = doNotation.bindTo<EitherTypeLambda>(map)
895
1511