effect 3.8.3 → 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 (599) 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 +54 -23
  56. package/dist/cjs/Micro.js.map +1 -1
  57. package/dist/cjs/MutableHashMap.js.map +1 -1
  58. package/dist/cjs/MutableHashSet.js.map +1 -1
  59. package/dist/cjs/MutableList.js.map +1 -1
  60. package/dist/cjs/MutableQueue.js.map +1 -1
  61. package/dist/cjs/MutableRef.js.map +1 -1
  62. package/dist/cjs/Number.js.map +1 -1
  63. package/dist/cjs/Option.js.map +1 -1
  64. package/dist/cjs/Order.js.map +1 -1
  65. package/dist/cjs/Ordering.js.map +1 -1
  66. package/dist/cjs/Pipeable.js.map +1 -1
  67. package/dist/cjs/Pool.js.map +1 -1
  68. package/dist/cjs/Predicate.js.map +1 -1
  69. package/dist/cjs/PubSub.js.map +1 -1
  70. package/dist/cjs/Queue.js.map +1 -1
  71. package/dist/cjs/RcMap.js.map +1 -1
  72. package/dist/cjs/Readable.js.map +1 -1
  73. package/dist/cjs/Record.js.map +1 -1
  74. package/dist/cjs/RedBlackTree.js.map +1 -1
  75. package/dist/cjs/Ref.js.map +1 -1
  76. package/dist/cjs/Request.js.map +1 -1
  77. package/dist/cjs/RequestResolver.js.map +1 -1
  78. package/dist/cjs/Runtime.js.map +1 -1
  79. package/dist/cjs/RuntimeFlags.js.map +1 -1
  80. package/dist/cjs/RuntimeFlagsPatch.js.map +1 -1
  81. package/dist/cjs/STM.js.map +1 -1
  82. package/dist/cjs/Schedule.js.map +1 -1
  83. package/dist/cjs/ScheduleInterval.js.map +1 -1
  84. package/dist/cjs/ScheduleIntervals.js.map +1 -1
  85. package/dist/cjs/Scheduler.js.map +1 -1
  86. package/dist/cjs/Scope.js +25 -15
  87. package/dist/cjs/Scope.js.map +1 -1
  88. package/dist/cjs/ScopedRef.js.map +1 -1
  89. package/dist/cjs/Sink.js.map +1 -1
  90. package/dist/cjs/SortedMap.js.map +1 -1
  91. package/dist/cjs/SortedSet.js.map +1 -1
  92. package/dist/cjs/Stream.js +17 -3
  93. package/dist/cjs/Stream.js.map +1 -1
  94. package/dist/cjs/StreamHaltStrategy.js.map +1 -1
  95. package/dist/cjs/String.js.map +1 -1
  96. package/dist/cjs/Struct.js.map +1 -1
  97. package/dist/cjs/Subscribable.js.map +1 -1
  98. package/dist/cjs/SubscriptionRef.js.map +1 -1
  99. package/dist/cjs/SynchronizedRef.js.map +1 -1
  100. package/dist/cjs/TArray.js.map +1 -1
  101. package/dist/cjs/TDeferred.js.map +1 -1
  102. package/dist/cjs/TMap.js.map +1 -1
  103. package/dist/cjs/TPriorityQueue.js.map +1 -1
  104. package/dist/cjs/TPubSub.js.map +1 -1
  105. package/dist/cjs/TQueue.js.map +1 -1
  106. package/dist/cjs/TReentrantLock.js.map +1 -1
  107. package/dist/cjs/TRef.js.map +1 -1
  108. package/dist/cjs/TSemaphore.js.map +1 -1
  109. package/dist/cjs/TSet.js.map +1 -1
  110. package/dist/cjs/Take.js.map +1 -1
  111. package/dist/cjs/TestAnnotationMap.js.map +1 -1
  112. package/dist/cjs/TestClock.js.map +1 -1
  113. package/dist/cjs/TestServices.js.map +1 -1
  114. package/dist/cjs/Trie.js.map +1 -1
  115. package/dist/cjs/Tuple.js.map +1 -1
  116. package/dist/cjs/Unify.js.map +1 -1
  117. package/dist/cjs/UpstreamPullRequest.js.map +1 -1
  118. package/dist/cjs/UpstreamPullStrategy.js.map +1 -1
  119. package/dist/cjs/Utils.js +1 -14
  120. package/dist/cjs/Utils.js.map +1 -1
  121. package/dist/cjs/internal/core.js +4 -3
  122. package/dist/cjs/internal/core.js.map +1 -1
  123. package/dist/cjs/internal/runtime.js +1 -1
  124. package/dist/cjs/internal/runtime.js.map +1 -1
  125. package/dist/cjs/internal/stream.js +12 -3
  126. package/dist/cjs/internal/stream.js.map +1 -1
  127. package/dist/cjs/internal/version.js +1 -1
  128. package/dist/dts/Array.d.ts +2684 -0
  129. package/dist/dts/Array.d.ts.map +1 -1
  130. package/dist/dts/BigDecimal.d.ts +558 -1
  131. package/dist/dts/BigDecimal.d.ts.map +1 -1
  132. package/dist/dts/BigInt.d.ts +490 -0
  133. package/dist/dts/BigInt.d.ts.map +1 -1
  134. package/dist/dts/Boolean.d.ts +228 -0
  135. package/dist/dts/Boolean.d.ts.map +1 -1
  136. package/dist/dts/Cause.d.ts +172 -0
  137. package/dist/dts/Cause.d.ts.map +1 -1
  138. package/dist/dts/Channel.d.ts +750 -0
  139. package/dist/dts/Channel.d.ts.map +1 -1
  140. package/dist/dts/ChildExecutorDecision.d.ts +12 -0
  141. package/dist/dts/ChildExecutorDecision.d.ts.map +1 -1
  142. package/dist/dts/Chunk.d.ts +791 -0
  143. package/dist/dts/Chunk.d.ts.map +1 -1
  144. package/dist/dts/Config.d.ts +174 -0
  145. package/dist/dts/Config.d.ts.map +1 -1
  146. package/dist/dts/ConfigError.d.ts +16 -0
  147. package/dist/dts/ConfigError.d.ts.map +1 -1
  148. package/dist/dts/ConfigProvider.d.ts +84 -0
  149. package/dist/dts/ConfigProvider.d.ts.map +1 -1
  150. package/dist/dts/ConfigProviderPathPatch.d.ts +32 -0
  151. package/dist/dts/ConfigProviderPathPatch.d.ts.map +1 -1
  152. package/dist/dts/Console.d.ts +24 -0
  153. package/dist/dts/Console.d.ts.map +1 -1
  154. package/dist/dts/Context.d.ts +232 -0
  155. package/dist/dts/Context.d.ts.map +1 -1
  156. package/dist/dts/Cron.d.ts +12 -0
  157. package/dist/dts/Cron.d.ts.map +1 -1
  158. package/dist/dts/Data.d.ts +165 -0
  159. package/dist/dts/Data.d.ts.map +1 -1
  160. package/dist/dts/DateTime.d.ts +878 -0
  161. package/dist/dts/DateTime.d.ts.map +1 -1
  162. package/dist/dts/Deferred.d.ts +170 -0
  163. package/dist/dts/Deferred.d.ts.map +1 -1
  164. package/dist/dts/Differ.d.ts +78 -0
  165. package/dist/dts/Differ.d.ts.map +1 -1
  166. package/dist/dts/Duration.d.ts +130 -0
  167. package/dist/dts/Duration.d.ts.map +1 -1
  168. package/dist/dts/Effect.d.ts +4117 -3
  169. package/dist/dts/Effect.d.ts.map +1 -1
  170. package/dist/dts/Either.d.ts +620 -0
  171. package/dist/dts/Either.d.ts.map +1 -1
  172. package/dist/dts/Equivalence.d.ts +24 -0
  173. package/dist/dts/Equivalence.d.ts.map +1 -1
  174. package/dist/dts/ExecutionStrategy.d.ts +14 -0
  175. package/dist/dts/ExecutionStrategy.d.ts.map +1 -1
  176. package/dist/dts/Exit.d.ts +252 -0
  177. package/dist/dts/Exit.d.ts.map +1 -1
  178. package/dist/dts/Fiber.d.ts +182 -0
  179. package/dist/dts/Fiber.d.ts.map +1 -1
  180. package/dist/dts/FiberHandle.d.ts +42 -0
  181. package/dist/dts/FiberHandle.d.ts.map +1 -1
  182. package/dist/dts/FiberId.d.ts +24 -0
  183. package/dist/dts/FiberId.d.ts.map +1 -1
  184. package/dist/dts/FiberMap.d.ts +102 -0
  185. package/dist/dts/FiberMap.d.ts.map +1 -1
  186. package/dist/dts/FiberRef.d.ts +80 -0
  187. package/dist/dts/FiberRef.d.ts.map +1 -1
  188. package/dist/dts/FiberRefs.d.ts +84 -0
  189. package/dist/dts/FiberRefs.d.ts.map +1 -1
  190. package/dist/dts/FiberRefsPatch.d.ts +30 -0
  191. package/dist/dts/FiberRefsPatch.d.ts.map +1 -1
  192. package/dist/dts/FiberSet.d.ts +38 -0
  193. package/dist/dts/FiberSet.d.ts.map +1 -1
  194. package/dist/dts/Function.d.ts +144 -28
  195. package/dist/dts/Function.d.ts.map +1 -1
  196. package/dist/dts/GroupBy.d.ts +38 -0
  197. package/dist/dts/GroupBy.d.ts.map +1 -1
  198. package/dist/dts/Hash.d.ts +8 -0
  199. package/dist/dts/Hash.d.ts.map +1 -1
  200. package/dist/dts/HashMap.d.ts +300 -0
  201. package/dist/dts/HashMap.d.ts.map +1 -1
  202. package/dist/dts/HashSet.d.ts +284 -0
  203. package/dist/dts/HashSet.d.ts.map +1 -1
  204. package/dist/dts/Iterable.d.ts +454 -0
  205. package/dist/dts/Iterable.d.ts.map +1 -1
  206. package/dist/dts/KeyedPool.d.ts +34 -0
  207. package/dist/dts/KeyedPool.d.ts.map +1 -1
  208. package/dist/dts/Layer.d.ts +414 -0
  209. package/dist/dts/Layer.d.ts.map +1 -1
  210. package/dist/dts/List.d.ts +430 -0
  211. package/dist/dts/List.d.ts.map +1 -1
  212. package/dist/dts/LogLevel.d.ts +46 -0
  213. package/dist/dts/LogLevel.d.ts.map +1 -1
  214. package/dist/dts/Logger.d.ts +194 -0
  215. package/dist/dts/Logger.d.ts.map +1 -1
  216. package/dist/dts/Mailbox.d.ts +16 -0
  217. package/dist/dts/Mailbox.d.ts.map +1 -1
  218. package/dist/dts/MergeDecision.d.ts +8 -0
  219. package/dist/dts/MergeDecision.d.ts.map +1 -1
  220. package/dist/dts/MergeState.d.ts +8 -0
  221. package/dist/dts/MergeState.d.ts.map +1 -1
  222. package/dist/dts/MergeStrategy.d.ts +12 -0
  223. package/dist/dts/MergeStrategy.d.ts.map +1 -1
  224. package/dist/dts/Metric.d.ts +410 -0
  225. package/dist/dts/Metric.d.ts.map +1 -1
  226. package/dist/dts/MetricHook.d.ts +24 -0
  227. package/dist/dts/MetricHook.d.ts.map +1 -1
  228. package/dist/dts/MetricKey.d.ts +48 -0
  229. package/dist/dts/MetricKey.d.ts.map +1 -1
  230. package/dist/dts/MetricPolling.d.ts +40 -0
  231. package/dist/dts/MetricPolling.d.ts.map +1 -1
  232. package/dist/dts/MetricState.d.ts +16 -0
  233. package/dist/dts/MetricState.d.ts.map +1 -1
  234. package/dist/dts/Micro.d.ts +1203 -25
  235. package/dist/dts/Micro.d.ts.map +1 -1
  236. package/dist/dts/MutableHashMap.d.ts +50 -0
  237. package/dist/dts/MutableHashMap.d.ts.map +1 -1
  238. package/dist/dts/MutableHashSet.d.ts +24 -0
  239. package/dist/dts/MutableHashSet.d.ts.map +1 -1
  240. package/dist/dts/MutableList.d.ts +36 -0
  241. package/dist/dts/MutableList.d.ts.map +1 -1
  242. package/dist/dts/MutableQueue.d.ts +62 -0
  243. package/dist/dts/MutableQueue.d.ts.map +1 -1
  244. package/dist/dts/MutableRef.d.ts +56 -0
  245. package/dist/dts/MutableRef.d.ts.map +1 -1
  246. package/dist/dts/Number.d.ts +474 -0
  247. package/dist/dts/Number.d.ts.map +1 -1
  248. package/dist/dts/Option.d.ts +1019 -0
  249. package/dist/dts/Option.d.ts.map +1 -1
  250. package/dist/dts/Order.d.ts +24 -0
  251. package/dist/dts/Order.d.ts.map +1 -1
  252. package/dist/dts/Ordering.d.ts +66 -0
  253. package/dist/dts/Ordering.d.ts.map +1 -1
  254. package/dist/dts/Pipeable.d.ts +21 -21
  255. package/dist/dts/Pipeable.d.ts.map +1 -1
  256. package/dist/dts/Pool.d.ts +16 -0
  257. package/dist/dts/Pool.d.ts.map +1 -1
  258. package/dist/dts/Predicate.d.ts +498 -0
  259. package/dist/dts/Predicate.d.ts.map +1 -1
  260. package/dist/dts/PubSub.d.ts +28 -0
  261. package/dist/dts/PubSub.d.ts.map +1 -1
  262. package/dist/dts/Queue.d.ts +104 -0
  263. package/dist/dts/Queue.d.ts.map +1 -1
  264. package/dist/dts/RcMap.d.ts +70 -0
  265. package/dist/dts/RcMap.d.ts.map +1 -1
  266. package/dist/dts/Readable.d.ts +16 -0
  267. package/dist/dts/Readable.d.ts.map +1 -1
  268. package/dist/dts/Record.d.ts +800 -0
  269. package/dist/dts/Record.d.ts.map +1 -1
  270. package/dist/dts/RedBlackTree.d.ts +300 -0
  271. package/dist/dts/RedBlackTree.d.ts.map +1 -1
  272. package/dist/dts/Ref.d.ts +88 -0
  273. package/dist/dts/Ref.d.ts.map +1 -1
  274. package/dist/dts/Request.d.ts +76 -0
  275. package/dist/dts/Request.d.ts.map +1 -1
  276. package/dist/dts/RequestResolver.d.ts +144 -0
  277. package/dist/dts/RequestResolver.d.ts.map +1 -1
  278. package/dist/dts/Runtime.d.ts +126 -0
  279. package/dist/dts/Runtime.d.ts.map +1 -1
  280. package/dist/dts/RuntimeFlags.d.ts +100 -0
  281. package/dist/dts/RuntimeFlags.d.ts.map +1 -1
  282. package/dist/dts/RuntimeFlagsPatch.d.ts +112 -0
  283. package/dist/dts/RuntimeFlagsPatch.d.ts.map +1 -1
  284. package/dist/dts/STM.d.ts +1090 -0
  285. package/dist/dts/STM.d.ts.map +1 -1
  286. package/dist/dts/Schedule.d.ts +704 -0
  287. package/dist/dts/Schedule.d.ts.map +1 -1
  288. package/dist/dts/ScheduleInterval.d.ts +68 -0
  289. package/dist/dts/ScheduleInterval.d.ts.map +1 -1
  290. package/dist/dts/ScheduleIntervals.d.ts +50 -0
  291. package/dist/dts/ScheduleIntervals.d.ts.map +1 -1
  292. package/dist/dts/Scope.d.ts +76 -15
  293. package/dist/dts/Scope.d.ts.map +1 -1
  294. package/dist/dts/ScopedRef.d.ts +22 -0
  295. package/dist/dts/ScopedRef.d.ts.map +1 -1
  296. package/dist/dts/Sink.d.ts +464 -0
  297. package/dist/dts/Sink.d.ts.map +1 -1
  298. package/dist/dts/SortedMap.d.ts +76 -0
  299. package/dist/dts/SortedMap.d.ts.map +1 -1
  300. package/dist/dts/SortedSet.d.ts +142 -0
  301. package/dist/dts/SortedSet.d.ts.map +1 -1
  302. package/dist/dts/Stream.d.ts +4998 -1
  303. package/dist/dts/Stream.d.ts.map +1 -1
  304. package/dist/dts/StreamHaltStrategy.d.ts +12 -0
  305. package/dist/dts/StreamHaltStrategy.d.ts.map +1 -1
  306. package/dist/dts/String.d.ts +200 -0
  307. package/dist/dts/String.d.ts.map +1 -1
  308. package/dist/dts/Struct.d.ts +84 -0
  309. package/dist/dts/Struct.d.ts.map +1 -1
  310. package/dist/dts/Subscribable.d.ts +16 -0
  311. package/dist/dts/Subscribable.d.ts.map +1 -1
  312. package/dist/dts/SubscriptionRef.d.ts +152 -0
  313. package/dist/dts/SubscriptionRef.d.ts.map +1 -1
  314. package/dist/dts/SynchronizedRef.d.ts +152 -0
  315. package/dist/dts/SynchronizedRef.d.ts.map +1 -1
  316. package/dist/dts/TArray.d.ts +426 -0
  317. package/dist/dts/TArray.d.ts.map +1 -1
  318. package/dist/dts/TDeferred.d.ts +24 -0
  319. package/dist/dts/TDeferred.d.ts.map +1 -1
  320. package/dist/dts/TMap.d.ts +366 -0
  321. package/dist/dts/TMap.d.ts.map +1 -1
  322. package/dist/dts/TPriorityQueue.d.ts +60 -0
  323. package/dist/dts/TPriorityQueue.d.ts.map +1 -1
  324. package/dist/dts/TPubSub.d.ts +28 -0
  325. package/dist/dts/TPubSub.d.ts.map +1 -1
  326. package/dist/dts/TQueue.d.ts +108 -0
  327. package/dist/dts/TQueue.d.ts.map +1 -1
  328. package/dist/dts/TReentrantLock.d.ts +36 -0
  329. package/dist/dts/TReentrantLock.d.ts.map +1 -1
  330. package/dist/dts/TRef.d.ts +88 -0
  331. package/dist/dts/TRef.d.ts.map +1 -1
  332. package/dist/dts/TSemaphore.d.ts +40 -0
  333. package/dist/dts/TSemaphore.d.ts.map +1 -1
  334. package/dist/dts/TSet.d.ts +254 -0
  335. package/dist/dts/TSet.d.ts.map +1 -1
  336. package/dist/dts/Take.d.ts +56 -0
  337. package/dist/dts/Take.d.ts.map +1 -1
  338. package/dist/dts/TestAnnotationMap.d.ts.map +1 -1
  339. package/dist/dts/TestClock.d.ts.map +1 -1
  340. package/dist/dts/TestServices.d.ts.map +1 -1
  341. package/dist/dts/Trie.d.ts +906 -0
  342. package/dist/dts/Trie.d.ts.map +1 -1
  343. package/dist/dts/Tuple.d.ts +144 -0
  344. package/dist/dts/Tuple.d.ts.map +1 -1
  345. package/dist/dts/Unify.d.ts +18 -0
  346. package/dist/dts/Unify.d.ts.map +1 -1
  347. package/dist/dts/UpstreamPullRequest.d.ts +12 -0
  348. package/dist/dts/UpstreamPullRequest.d.ts.map +1 -1
  349. package/dist/dts/UpstreamPullStrategy.d.ts +12 -0
  350. package/dist/dts/UpstreamPullStrategy.d.ts.map +1 -1
  351. package/dist/dts/Utils.d.ts.map +1 -1
  352. package/dist/dts/internal/stream.d.ts.map +1 -1
  353. package/dist/esm/Array.js.map +1 -1
  354. package/dist/esm/BigDecimal.js +2 -2
  355. package/dist/esm/BigDecimal.js.map +1 -1
  356. package/dist/esm/BigInt.js.map +1 -1
  357. package/dist/esm/Boolean.js.map +1 -1
  358. package/dist/esm/Cause.js.map +1 -1
  359. package/dist/esm/Channel.js.map +1 -1
  360. package/dist/esm/ChildExecutorDecision.js.map +1 -1
  361. package/dist/esm/Chunk.js.map +1 -1
  362. package/dist/esm/Config.js.map +1 -1
  363. package/dist/esm/ConfigError.js.map +1 -1
  364. package/dist/esm/ConfigProvider.js.map +1 -1
  365. package/dist/esm/ConfigProviderPathPatch.js.map +1 -1
  366. package/dist/esm/Console.js.map +1 -1
  367. package/dist/esm/Context.js.map +1 -1
  368. package/dist/esm/Cron.js.map +1 -1
  369. package/dist/esm/Data.js.map +1 -1
  370. package/dist/esm/DateTime.js.map +1 -1
  371. package/dist/esm/Deferred.js.map +1 -1
  372. package/dist/esm/Differ.js.map +1 -1
  373. package/dist/esm/Duration.js.map +1 -1
  374. package/dist/esm/Effect.js.map +1 -1
  375. package/dist/esm/Either.js.map +1 -1
  376. package/dist/esm/Equivalence.js.map +1 -1
  377. package/dist/esm/ExecutionStrategy.js.map +1 -1
  378. package/dist/esm/Exit.js.map +1 -1
  379. package/dist/esm/Fiber.js.map +1 -1
  380. package/dist/esm/FiberHandle.js.map +1 -1
  381. package/dist/esm/FiberId.js.map +1 -1
  382. package/dist/esm/FiberMap.js.map +1 -1
  383. package/dist/esm/FiberRef.js.map +1 -1
  384. package/dist/esm/FiberRefs.js.map +1 -1
  385. package/dist/esm/FiberRefsPatch.js.map +1 -1
  386. package/dist/esm/FiberSet.js.map +1 -1
  387. package/dist/esm/Function.js.map +1 -1
  388. package/dist/esm/GroupBy.js.map +1 -1
  389. package/dist/esm/Hash.js.map +1 -1
  390. package/dist/esm/HashMap.js.map +1 -1
  391. package/dist/esm/HashSet.js.map +1 -1
  392. package/dist/esm/Iterable.js.map +1 -1
  393. package/dist/esm/KeyedPool.js.map +1 -1
  394. package/dist/esm/Layer.js.map +1 -1
  395. package/dist/esm/List.js.map +1 -1
  396. package/dist/esm/LogLevel.js.map +1 -1
  397. package/dist/esm/Logger.js.map +1 -1
  398. package/dist/esm/Mailbox.js.map +1 -1
  399. package/dist/esm/MergeDecision.js.map +1 -1
  400. package/dist/esm/MergeState.js.map +1 -1
  401. package/dist/esm/MergeStrategy.js.map +1 -1
  402. package/dist/esm/Metric.js.map +1 -1
  403. package/dist/esm/MetricHook.js.map +1 -1
  404. package/dist/esm/MetricKey.js.map +1 -1
  405. package/dist/esm/MetricPolling.js.map +1 -1
  406. package/dist/esm/MetricState.js.map +1 -1
  407. package/dist/esm/Micro.js +50 -20
  408. package/dist/esm/Micro.js.map +1 -1
  409. package/dist/esm/MutableHashMap.js.map +1 -1
  410. package/dist/esm/MutableHashSet.js.map +1 -1
  411. package/dist/esm/MutableList.js.map +1 -1
  412. package/dist/esm/MutableQueue.js.map +1 -1
  413. package/dist/esm/MutableRef.js.map +1 -1
  414. package/dist/esm/Number.js.map +1 -1
  415. package/dist/esm/Option.js.map +1 -1
  416. package/dist/esm/Order.js.map +1 -1
  417. package/dist/esm/Ordering.js.map +1 -1
  418. package/dist/esm/Pipeable.js.map +1 -1
  419. package/dist/esm/Pool.js.map +1 -1
  420. package/dist/esm/Predicate.js.map +1 -1
  421. package/dist/esm/PubSub.js.map +1 -1
  422. package/dist/esm/Queue.js.map +1 -1
  423. package/dist/esm/RcMap.js.map +1 -1
  424. package/dist/esm/Readable.js.map +1 -1
  425. package/dist/esm/Record.js.map +1 -1
  426. package/dist/esm/RedBlackTree.js.map +1 -1
  427. package/dist/esm/Ref.js.map +1 -1
  428. package/dist/esm/Request.js.map +1 -1
  429. package/dist/esm/RequestResolver.js.map +1 -1
  430. package/dist/esm/Runtime.js.map +1 -1
  431. package/dist/esm/RuntimeFlags.js.map +1 -1
  432. package/dist/esm/RuntimeFlagsPatch.js.map +1 -1
  433. package/dist/esm/STM.js.map +1 -1
  434. package/dist/esm/Schedule.js.map +1 -1
  435. package/dist/esm/ScheduleInterval.js.map +1 -1
  436. package/dist/esm/ScheduleIntervals.js.map +1 -1
  437. package/dist/esm/Scheduler.js.map +1 -1
  438. package/dist/esm/Scope.js +25 -15
  439. package/dist/esm/Scope.js.map +1 -1
  440. package/dist/esm/ScopedRef.js.map +1 -1
  441. package/dist/esm/Sink.js.map +1 -1
  442. package/dist/esm/SortedMap.js.map +1 -1
  443. package/dist/esm/SortedSet.js.map +1 -1
  444. package/dist/esm/Stream.js +14 -0
  445. package/dist/esm/Stream.js.map +1 -1
  446. package/dist/esm/StreamHaltStrategy.js.map +1 -1
  447. package/dist/esm/String.js.map +1 -1
  448. package/dist/esm/Struct.js.map +1 -1
  449. package/dist/esm/Subscribable.js.map +1 -1
  450. package/dist/esm/SubscriptionRef.js.map +1 -1
  451. package/dist/esm/SynchronizedRef.js.map +1 -1
  452. package/dist/esm/TArray.js.map +1 -1
  453. package/dist/esm/TDeferred.js.map +1 -1
  454. package/dist/esm/TMap.js.map +1 -1
  455. package/dist/esm/TPriorityQueue.js.map +1 -1
  456. package/dist/esm/TPubSub.js.map +1 -1
  457. package/dist/esm/TQueue.js.map +1 -1
  458. package/dist/esm/TReentrantLock.js.map +1 -1
  459. package/dist/esm/TRef.js.map +1 -1
  460. package/dist/esm/TSemaphore.js.map +1 -1
  461. package/dist/esm/TSet.js.map +1 -1
  462. package/dist/esm/Take.js.map +1 -1
  463. package/dist/esm/TestAnnotationMap.js.map +1 -1
  464. package/dist/esm/TestClock.js.map +1 -1
  465. package/dist/esm/TestServices.js.map +1 -1
  466. package/dist/esm/Trie.js.map +1 -1
  467. package/dist/esm/Tuple.js.map +1 -1
  468. package/dist/esm/Unify.js.map +1 -1
  469. package/dist/esm/UpstreamPullRequest.js.map +1 -1
  470. package/dist/esm/UpstreamPullStrategy.js.map +1 -1
  471. package/dist/esm/Utils.js +1 -14
  472. package/dist/esm/Utils.js.map +1 -1
  473. package/dist/esm/internal/core.js +1 -1
  474. package/dist/esm/internal/core.js.map +1 -1
  475. package/dist/esm/internal/runtime.js +1 -1
  476. package/dist/esm/internal/runtime.js.map +1 -1
  477. package/dist/esm/internal/stream.js +9 -0
  478. package/dist/esm/internal/stream.js.map +1 -1
  479. package/dist/esm/internal/version.js +1 -1
  480. package/package.json +1 -1
  481. package/src/Array.ts +2723 -36
  482. package/src/BigDecimal.ts +585 -18
  483. package/src/BigInt.ts +516 -16
  484. package/src/Boolean.ts +241 -8
  485. package/src/Cause.ts +177 -1
  486. package/src/Channel.ts +766 -49
  487. package/src/ChildExecutorDecision.ts +12 -0
  488. package/src/Chunk.ts +818 -4
  489. package/src/Config.ts +187 -8
  490. package/src/ConfigError.ts +16 -0
  491. package/src/ConfigProvider.ts +89 -1
  492. package/src/ConfigProviderPathPatch.ts +32 -0
  493. package/src/Console.ts +37 -8
  494. package/src/Context.ts +232 -0
  495. package/src/Cron.ts +12 -0
  496. package/src/Data.ts +165 -0
  497. package/src/DateTime.ts +1006 -50
  498. package/src/Deferred.ts +170 -0
  499. package/src/Differ.ts +89 -27
  500. package/src/Duration.ts +156 -16
  501. package/src/Effect.ts +4297 -123
  502. package/src/Either.ts +650 -34
  503. package/src/Equivalence.ts +24 -0
  504. package/src/ExecutionStrategy.ts +29 -10
  505. package/src/Exit.ts +252 -0
  506. package/src/Fiber.ts +182 -0
  507. package/src/FiberHandle.ts +42 -0
  508. package/src/FiberId.ts +24 -0
  509. package/src/FiberMap.ts +144 -21
  510. package/src/FiberRef.ts +80 -0
  511. package/src/FiberRefs.ts +84 -0
  512. package/src/FiberRefsPatch.ts +35 -1
  513. package/src/FiberSet.ts +38 -0
  514. package/src/Function.ts +416 -31
  515. package/src/GroupBy.ts +38 -0
  516. package/src/Hash.ts +8 -0
  517. package/src/HashMap.ts +300 -0
  518. package/src/HashSet.ts +284 -0
  519. package/src/Iterable.ts +456 -6
  520. package/src/KeyedPool.ts +34 -0
  521. package/src/Layer.ts +426 -30
  522. package/src/List.ts +476 -3
  523. package/src/LogLevel.ts +46 -0
  524. package/src/Logger.ts +195 -4
  525. package/src/Mailbox.ts +16 -0
  526. package/src/MergeDecision.ts +8 -0
  527. package/src/MergeState.ts +8 -0
  528. package/src/MergeStrategy.ts +25 -8
  529. package/src/Metric.ts +426 -15
  530. package/src/MetricHook.ts +24 -0
  531. package/src/MetricKey.ts +62 -8
  532. package/src/MetricPolling.ts +42 -6
  533. package/src/MetricState.ts +16 -0
  534. package/src/Micro.ts +1350 -102
  535. package/src/MutableHashMap.ts +105 -1
  536. package/src/MutableHashSet.ts +24 -0
  537. package/src/MutableList.ts +36 -0
  538. package/src/MutableQueue.ts +62 -0
  539. package/src/MutableRef.ts +56 -0
  540. package/src/Number.ts +500 -16
  541. package/src/Option.ts +1042 -16
  542. package/src/Order.ts +24 -0
  543. package/src/Ordering.ts +66 -0
  544. package/src/Pipeable.ts +224 -21
  545. package/src/Pool.ts +16 -0
  546. package/src/Predicate.ts +498 -0
  547. package/src/PubSub.ts +28 -0
  548. package/src/Queue.ts +104 -0
  549. package/src/RcMap.ts +70 -0
  550. package/src/Readable.ts +18 -7
  551. package/src/Record.ts +814 -40
  552. package/src/RedBlackTree.ts +305 -1
  553. package/src/Ref.ts +88 -0
  554. package/src/Request.ts +76 -0
  555. package/src/RequestResolver.ts +145 -4
  556. package/src/Runtime.ts +134 -2
  557. package/src/RuntimeFlags.ts +100 -0
  558. package/src/RuntimeFlagsPatch.ts +112 -0
  559. package/src/STM.ts +1107 -11
  560. package/src/Schedule.ts +704 -0
  561. package/src/ScheduleInterval.ts +68 -0
  562. package/src/ScheduleIntervals.ts +50 -0
  563. package/src/Scheduler.ts +2 -0
  564. package/src/Scope.ts +83 -15
  565. package/src/ScopedRef.ts +22 -0
  566. package/src/Sink.ts +464 -0
  567. package/src/SortedMap.ts +76 -0
  568. package/src/SortedSet.ts +143 -3
  569. package/src/Stream.ts +5041 -54
  570. package/src/StreamHaltStrategy.ts +29 -12
  571. package/src/String.ts +200 -0
  572. package/src/Struct.ts +86 -7
  573. package/src/Subscribable.ts +16 -0
  574. package/src/SubscriptionRef.ts +159 -11
  575. package/src/SynchronizedRef.ts +169 -8
  576. package/src/TArray.ts +431 -1
  577. package/src/TDeferred.ts +24 -0
  578. package/src/TMap.ts +381 -12
  579. package/src/TPriorityQueue.ts +60 -0
  580. package/src/TPubSub.ts +28 -0
  581. package/src/TQueue.ts +108 -0
  582. package/src/TReentrantLock.ts +36 -0
  583. package/src/TRef.ts +88 -0
  584. package/src/TSemaphore.ts +40 -0
  585. package/src/TSet.ts +280 -12
  586. package/src/Take.ts +56 -0
  587. package/src/TestAnnotationMap.ts +45 -1
  588. package/src/TestClock.ts +6 -0
  589. package/src/TestServices.ts +66 -0
  590. package/src/Trie.ts +906 -0
  591. package/src/Tuple.ts +157 -8
  592. package/src/Unify.ts +19 -3
  593. package/src/UpstreamPullRequest.ts +12 -0
  594. package/src/UpstreamPullStrategy.ts +12 -0
  595. package/src/Utils.ts +1 -15
  596. package/src/internal/core.ts +1 -1
  597. package/src/internal/runtime.ts +1 -1
  598. package/src/internal/stream.ts +27 -0
  599. package/src/internal/version.ts +1 -1
package/src/Predicate.ts CHANGED
@@ -88,7 +88,45 @@ export declare namespace Refinement {
88
88
  * @since 2.0.0
89
89
  */
90
90
  export const mapInput: {
91
+ /**
92
+ * Given a `Predicate<A>` returns a `Predicate<B>`
93
+ *
94
+ * @param self - the `Predicate<A>` to be transformed to `Predicate<B>`.
95
+ * @param f - a function to transform `B` to `A`.
96
+ *
97
+ * @example
98
+ * import { Predicate, Number } from "effect"
99
+ *
100
+ * const minLength3 = Predicate.mapInput(Number.greaterThan(2), (s: string) => s.length)
101
+ *
102
+ * assert.deepStrictEqual(minLength3("a"), false)
103
+ * assert.deepStrictEqual(minLength3("aa"), false)
104
+ * assert.deepStrictEqual(minLength3("aaa"), true)
105
+ * assert.deepStrictEqual(minLength3("aaaa"), true)
106
+ *
107
+ * @category combinators
108
+ * @since 2.0.0
109
+ */
91
110
  <B, A>(f: (b: B) => A): (self: Predicate<A>) => Predicate<B>
111
+ /**
112
+ * Given a `Predicate<A>` returns a `Predicate<B>`
113
+ *
114
+ * @param self - the `Predicate<A>` to be transformed to `Predicate<B>`.
115
+ * @param f - a function to transform `B` to `A`.
116
+ *
117
+ * @example
118
+ * import { Predicate, Number } from "effect"
119
+ *
120
+ * const minLength3 = Predicate.mapInput(Number.greaterThan(2), (s: string) => s.length)
121
+ *
122
+ * assert.deepStrictEqual(minLength3("a"), false)
123
+ * assert.deepStrictEqual(minLength3("aa"), false)
124
+ * assert.deepStrictEqual(minLength3("aaa"), true)
125
+ * assert.deepStrictEqual(minLength3("aaaa"), true)
126
+ *
127
+ * @category combinators
128
+ * @since 2.0.0
129
+ */
92
130
  <A, B>(self: Predicate<A>, f: (b: B) => A): Predicate<B>
93
131
  } = dual(2, <A, B>(self: Predicate<A>, f: (b: B) => A): Predicate<B> => (b) => self(f(b)))
94
132
 
@@ -117,7 +155,55 @@ export const mapInput: {
117
155
  * @since 3.3.0
118
156
  */
119
157
  export const isTupleOf: {
158
+ /**
159
+ * Determine if an `Array` is a tuple with exactly `N` elements, narrowing down the type to `TupleOf`.
160
+ *
161
+ * An `Array` is considered to be a `TupleOf` if its length is exactly `N`.
162
+ *
163
+ * @param self - The `Array` to check.
164
+ * @param n - The exact number of elements that the `Array` should have to be considered a `TupleOf`.
165
+ *
166
+ * @example
167
+ * import { isTupleOf } from "effect/Predicate"
168
+ *
169
+ * assert.deepStrictEqual(isTupleOf([1, 2, 3], 3), true);
170
+ * assert.deepStrictEqual(isTupleOf([1, 2, 3], 2), false);
171
+ * assert.deepStrictEqual(isTupleOf([1, 2, 3], 4), false);
172
+ *
173
+ * const arr: number[] = [1, 2, 3];
174
+ * if (isTupleOf(arr, 3)) {
175
+ * console.log(arr);
176
+ * // ^? [number, number, number]
177
+ * }
178
+ *
179
+ * @category guards
180
+ * @since 3.3.0
181
+ */
120
182
  <N extends number>(n: N): <T>(self: ReadonlyArray<T>) => self is TupleOf<N, T>
183
+ /**
184
+ * Determine if an `Array` is a tuple with exactly `N` elements, narrowing down the type to `TupleOf`.
185
+ *
186
+ * An `Array` is considered to be a `TupleOf` if its length is exactly `N`.
187
+ *
188
+ * @param self - The `Array` to check.
189
+ * @param n - The exact number of elements that the `Array` should have to be considered a `TupleOf`.
190
+ *
191
+ * @example
192
+ * import { isTupleOf } from "effect/Predicate"
193
+ *
194
+ * assert.deepStrictEqual(isTupleOf([1, 2, 3], 3), true);
195
+ * assert.deepStrictEqual(isTupleOf([1, 2, 3], 2), false);
196
+ * assert.deepStrictEqual(isTupleOf([1, 2, 3], 4), false);
197
+ *
198
+ * const arr: number[] = [1, 2, 3];
199
+ * if (isTupleOf(arr, 3)) {
200
+ * console.log(arr);
201
+ * // ^? [number, number, number]
202
+ * }
203
+ *
204
+ * @category guards
205
+ * @since 3.3.0
206
+ */
121
207
  <T, N extends number>(self: ReadonlyArray<T>, n: N): self is TupleOf<N, T>
122
208
  } = dual(2, <T, N extends number>(self: ReadonlyArray<T>, n: N): self is TupleOf<N, T> => self.length === n)
123
209
 
@@ -146,7 +232,55 @@ export const isTupleOf: {
146
232
  * @since 3.3.0
147
233
  */
148
234
  export const isTupleOfAtLeast: {
235
+ /**
236
+ * Determine if an `Array` is a tuple with at least `N` elements, narrowing down the type to `TupleOfAtLeast`.
237
+ *
238
+ * An `Array` is considered to be a `TupleOfAtLeast` if its length is at least `N`.
239
+ *
240
+ * @param self - The `Array` to check.
241
+ * @param n - The minimum number of elements that the `Array` should have to be considered a `TupleOfAtLeast`.
242
+ *
243
+ * @example
244
+ * import { isTupleOfAtLeast } from "effect/Predicate"
245
+ *
246
+ * assert.deepStrictEqual(isTupleOfAtLeast([1, 2, 3], 3), true);
247
+ * assert.deepStrictEqual(isTupleOfAtLeast([1, 2, 3], 2), true);
248
+ * assert.deepStrictEqual(isTupleOfAtLeast([1, 2, 3], 4), false);
249
+ *
250
+ * const arr: number[] = [1, 2, 3, 4];
251
+ * if (isTupleOfAtLeast(arr, 3)) {
252
+ * console.log(arr);
253
+ * // ^? [number, number, number, ...number[]]
254
+ * }
255
+ *
256
+ * @category guards
257
+ * @since 3.3.0
258
+ */
149
259
  <N extends number>(n: N): <T>(self: ReadonlyArray<T>) => self is TupleOfAtLeast<N, T>
260
+ /**
261
+ * Determine if an `Array` is a tuple with at least `N` elements, narrowing down the type to `TupleOfAtLeast`.
262
+ *
263
+ * An `Array` is considered to be a `TupleOfAtLeast` if its length is at least `N`.
264
+ *
265
+ * @param self - The `Array` to check.
266
+ * @param n - The minimum number of elements that the `Array` should have to be considered a `TupleOfAtLeast`.
267
+ *
268
+ * @example
269
+ * import { isTupleOfAtLeast } from "effect/Predicate"
270
+ *
271
+ * assert.deepStrictEqual(isTupleOfAtLeast([1, 2, 3], 3), true);
272
+ * assert.deepStrictEqual(isTupleOfAtLeast([1, 2, 3], 2), true);
273
+ * assert.deepStrictEqual(isTupleOfAtLeast([1, 2, 3], 4), false);
274
+ *
275
+ * const arr: number[] = [1, 2, 3, 4];
276
+ * if (isTupleOfAtLeast(arr, 3)) {
277
+ * console.log(arr);
278
+ * // ^? [number, number, number, ...number[]]
279
+ * }
280
+ *
281
+ * @category guards
282
+ * @since 3.3.0
283
+ */
150
284
  <T, N extends number>(self: ReadonlyArray<T>, n: N): self is TupleOfAtLeast<N, T>
151
285
  } = dual(2, <T, N extends number>(self: ReadonlyArray<T>, n: N): self is TupleOfAtLeast<N, T> => self.length >= n)
152
286
 
@@ -446,7 +580,25 @@ export const isObject = (input: unknown): input is object => isRecordOrArray(inp
446
580
  * @since 2.0.0
447
581
  */
448
582
  export const hasProperty: {
583
+ /**
584
+ * Checks whether a value is an `object` containing a specified property key.
585
+ *
586
+ * @param property - The field to check within the object.
587
+ * @param self - The value to examine.
588
+ *
589
+ * @category guards
590
+ * @since 2.0.0
591
+ */
449
592
  <P extends PropertyKey>(property: P): (self: unknown) => self is { [K in P]: unknown }
593
+ /**
594
+ * Checks whether a value is an `object` containing a specified property key.
595
+ *
596
+ * @param property - The field to check within the object.
597
+ * @param self - The value to examine.
598
+ *
599
+ * @category guards
600
+ * @since 2.0.0
601
+ */
450
602
  <P extends PropertyKey>(self: unknown, property: P): self is { [K in P]: unknown }
451
603
  } = dual(
452
604
  2,
@@ -474,7 +626,45 @@ export const hasProperty: {
474
626
  * @since 2.0.0
475
627
  */
476
628
  export const isTagged: {
629
+ /**
630
+ * Tests if a value is an `object` with a property `_tag` that matches the given tag.
631
+ *
632
+ * @param input - The value to test.
633
+ * @param tag - The tag to test for.
634
+ *
635
+ * @example
636
+ * import { isTagged } from "effect/Predicate"
637
+ *
638
+ * assert.deepStrictEqual(isTagged(1, "a"), false)
639
+ * assert.deepStrictEqual(isTagged(null, "a"), false)
640
+ * assert.deepStrictEqual(isTagged({}, "a"), false)
641
+ * assert.deepStrictEqual(isTagged({ a: "a" }, "a"), false)
642
+ * assert.deepStrictEqual(isTagged({ _tag: "a" }, "a"), true)
643
+ * assert.deepStrictEqual(isTagged("a")({ _tag: "a" }), true)
644
+ *
645
+ * @category guards
646
+ * @since 2.0.0
647
+ */
477
648
  <K extends string>(tag: K): (self: unknown) => self is { _tag: K }
649
+ /**
650
+ * Tests if a value is an `object` with a property `_tag` that matches the given tag.
651
+ *
652
+ * @param input - The value to test.
653
+ * @param tag - The tag to test for.
654
+ *
655
+ * @example
656
+ * import { isTagged } from "effect/Predicate"
657
+ *
658
+ * assert.deepStrictEqual(isTagged(1, "a"), false)
659
+ * assert.deepStrictEqual(isTagged(null, "a"), false)
660
+ * assert.deepStrictEqual(isTagged({}, "a"), false)
661
+ * assert.deepStrictEqual(isTagged({ a: "a" }, "a"), false)
662
+ * assert.deepStrictEqual(isTagged({ _tag: "a" }, "a"), true)
663
+ * assert.deepStrictEqual(isTagged("a")({ _tag: "a" }), true)
664
+ *
665
+ * @category guards
666
+ * @since 2.0.0
667
+ */
478
668
  <K extends string>(self: unknown, tag: K): self is { _tag: K }
479
669
  } = dual(
480
670
  2,
@@ -669,9 +859,21 @@ export const isPromiseLike = (
669
859
  * @since 2.0.0
670
860
  */
671
861
  export const compose: {
862
+ /**
863
+ * @since 2.0.0
864
+ */
672
865
  <A, B extends A, C extends B>(bc: Refinement<B, C>): (ab: Refinement<A, B>) => Refinement<A, C>
866
+ /**
867
+ * @since 2.0.0
868
+ */
673
869
  <A, B extends A>(bc: Predicate<NoInfer<B>>): (ab: Refinement<A, B>) => Refinement<A, B>
870
+ /**
871
+ * @since 2.0.0
872
+ */
674
873
  <A, B extends A, C extends B>(ab: Refinement<A, B>, bc: Refinement<B, C>): Refinement<A, C>
874
+ /**
875
+ * @since 2.0.0
876
+ */
675
877
  <A, B extends A>(ab: Refinement<A, B>, bc: Predicate<NoInfer<B>>): Refinement<A, B>
676
878
  } = dual(
677
879
  2,
@@ -733,6 +935,17 @@ export const productMany = <A>(
733
935
  * @since 2.0.0
734
936
  */
735
937
  export const tuple: {
938
+ /**
939
+ * Similar to `Promise.all` but operates on `Predicate`s.
940
+ *
941
+ * ```
942
+ * [Refinement<A, B>, Refinement<C, D>, ...] -> Refinement<[A, C, ...], [B, D, ...]>
943
+ * [Predicate<A>, Predicate<B>, ...] -> Predicate<[A, B, ...]>
944
+ * [Refinement<A, B>, Predicate<C>, ...] -> Refinement<[A, C, ...], [B, C, ...]>
945
+ * ```
946
+ *
947
+ * @since 2.0.0
948
+ */
736
949
  <T extends ReadonlyArray<Predicate.Any>>(
737
950
  ...elements: T
738
951
  ): [Extract<T[number], Refinement.Any>] extends [never] ? Predicate<{ readonly [I in keyof T]: Predicate.In<T[I]> }>
@@ -752,6 +965,15 @@ export const tuple: {
752
965
  * @since 2.0.0
753
966
  */
754
967
  export const struct: {
968
+ /**
969
+ * ```
970
+ * { ab: Refinement<A, B>; cd: Refinement<C, D>, ... } -> Refinement<{ ab: A; cd: C; ... }, { ab: B; cd: D; ... }>
971
+ * { a: Predicate<A, B>; b: Predicate<B>, ... } -> Predicate<{ a: A; b: B; ... }>
972
+ * { ab: Refinement<A, B>; c: Predicate<C>, ... } -> Refinement<{ ab: A; c: C; ... }, { ab: B; c: С; ... }>
973
+ * ```
974
+ *
975
+ * @since 2.0.0
976
+ */
755
977
  <R extends Record<string, Predicate.Any>>(
756
978
  fields: R
757
979
  ): [Extract<R[keyof R], Refinement.Any>] extends [never] ?
@@ -810,9 +1032,81 @@ export const not = <A>(self: Predicate<A>): Predicate<A> => (a) => !self(a)
810
1032
  * @since 2.0.0
811
1033
  */
812
1034
  export const or: {
1035
+ /**
1036
+ * Combines two predicates into a new predicate that returns `true` if at least one of the predicates returns `true`.
1037
+ *
1038
+ * @param self - A predicate.
1039
+ * @param that - A predicate.
1040
+ *
1041
+ * @example
1042
+ * import { Predicate, Number } from "effect"
1043
+ *
1044
+ * const nonZero = Predicate.or(Number.lessThan(0), Number.greaterThan(0))
1045
+ *
1046
+ * assert.deepStrictEqual(nonZero(-1), true)
1047
+ * assert.deepStrictEqual(nonZero(0), false)
1048
+ * assert.deepStrictEqual(nonZero(1), true)
1049
+ *
1050
+ * @category combinators
1051
+ * @since 2.0.0
1052
+ */
813
1053
  <A, C extends A>(that: Refinement<A, C>): <B extends A>(self: Refinement<A, B>) => Refinement<A, B | C>
1054
+ /**
1055
+ * Combines two predicates into a new predicate that returns `true` if at least one of the predicates returns `true`.
1056
+ *
1057
+ * @param self - A predicate.
1058
+ * @param that - A predicate.
1059
+ *
1060
+ * @example
1061
+ * import { Predicate, Number } from "effect"
1062
+ *
1063
+ * const nonZero = Predicate.or(Number.lessThan(0), Number.greaterThan(0))
1064
+ *
1065
+ * assert.deepStrictEqual(nonZero(-1), true)
1066
+ * assert.deepStrictEqual(nonZero(0), false)
1067
+ * assert.deepStrictEqual(nonZero(1), true)
1068
+ *
1069
+ * @category combinators
1070
+ * @since 2.0.0
1071
+ */
814
1072
  <A, B extends A, C extends A>(self: Refinement<A, B>, that: Refinement<A, C>): Refinement<A, B | C>
1073
+ /**
1074
+ * Combines two predicates into a new predicate that returns `true` if at least one of the predicates returns `true`.
1075
+ *
1076
+ * @param self - A predicate.
1077
+ * @param that - A predicate.
1078
+ *
1079
+ * @example
1080
+ * import { Predicate, Number } from "effect"
1081
+ *
1082
+ * const nonZero = Predicate.or(Number.lessThan(0), Number.greaterThan(0))
1083
+ *
1084
+ * assert.deepStrictEqual(nonZero(-1), true)
1085
+ * assert.deepStrictEqual(nonZero(0), false)
1086
+ * assert.deepStrictEqual(nonZero(1), true)
1087
+ *
1088
+ * @category combinators
1089
+ * @since 2.0.0
1090
+ */
815
1091
  <A>(that: Predicate<A>): (self: Predicate<A>) => Predicate<A>
1092
+ /**
1093
+ * Combines two predicates into a new predicate that returns `true` if at least one of the predicates returns `true`.
1094
+ *
1095
+ * @param self - A predicate.
1096
+ * @param that - A predicate.
1097
+ *
1098
+ * @example
1099
+ * import { Predicate, Number } from "effect"
1100
+ *
1101
+ * const nonZero = Predicate.or(Number.lessThan(0), Number.greaterThan(0))
1102
+ *
1103
+ * assert.deepStrictEqual(nonZero(-1), true)
1104
+ * assert.deepStrictEqual(nonZero(0), false)
1105
+ * assert.deepStrictEqual(nonZero(1), true)
1106
+ *
1107
+ * @category combinators
1108
+ * @since 2.0.0
1109
+ */
816
1110
  <A>(self: Predicate<A>, that: Predicate<A>): Predicate<A>
817
1111
  } = dual(2, <A>(self: Predicate<A>, that: Predicate<A>): Predicate<A> => (a) => self(a) || that(a))
818
1112
 
@@ -838,9 +1132,93 @@ export const or: {
838
1132
  * @since 2.0.0
839
1133
  */
840
1134
  export const and: {
1135
+ /**
1136
+ * Combines two predicates into a new predicate that returns `true` if both of the predicates returns `true`.
1137
+ *
1138
+ * @param self - A predicate.
1139
+ * @param that - A predicate.
1140
+ *
1141
+ * @example
1142
+ * import { Predicate } from "effect"
1143
+ *
1144
+ * const minLength = (n: number) => (s: string) => s.length >= n
1145
+ * const maxLength = (n: number) => (s: string) => s.length <= n
1146
+ *
1147
+ * const length = (n: number) => Predicate.and(minLength(n), maxLength(n))
1148
+ *
1149
+ * assert.deepStrictEqual(length(2)("aa"), true)
1150
+ * assert.deepStrictEqual(length(2)("a"), false)
1151
+ * assert.deepStrictEqual(length(2)("aaa"), false)
1152
+ *
1153
+ * @category combinators
1154
+ * @since 2.0.0
1155
+ */
841
1156
  <A, C extends A>(that: Refinement<A, C>): <B extends A>(self: Refinement<A, B>) => Refinement<A, B & C>
1157
+ /**
1158
+ * Combines two predicates into a new predicate that returns `true` if both of the predicates returns `true`.
1159
+ *
1160
+ * @param self - A predicate.
1161
+ * @param that - A predicate.
1162
+ *
1163
+ * @example
1164
+ * import { Predicate } from "effect"
1165
+ *
1166
+ * const minLength = (n: number) => (s: string) => s.length >= n
1167
+ * const maxLength = (n: number) => (s: string) => s.length <= n
1168
+ *
1169
+ * const length = (n: number) => Predicate.and(minLength(n), maxLength(n))
1170
+ *
1171
+ * assert.deepStrictEqual(length(2)("aa"), true)
1172
+ * assert.deepStrictEqual(length(2)("a"), false)
1173
+ * assert.deepStrictEqual(length(2)("aaa"), false)
1174
+ *
1175
+ * @category combinators
1176
+ * @since 2.0.0
1177
+ */
842
1178
  <A, B extends A, C extends A>(self: Refinement<A, B>, that: Refinement<A, C>): Refinement<A, B & C>
1179
+ /**
1180
+ * Combines two predicates into a new predicate that returns `true` if both of the predicates returns `true`.
1181
+ *
1182
+ * @param self - A predicate.
1183
+ * @param that - A predicate.
1184
+ *
1185
+ * @example
1186
+ * import { Predicate } from "effect"
1187
+ *
1188
+ * const minLength = (n: number) => (s: string) => s.length >= n
1189
+ * const maxLength = (n: number) => (s: string) => s.length <= n
1190
+ *
1191
+ * const length = (n: number) => Predicate.and(minLength(n), maxLength(n))
1192
+ *
1193
+ * assert.deepStrictEqual(length(2)("aa"), true)
1194
+ * assert.deepStrictEqual(length(2)("a"), false)
1195
+ * assert.deepStrictEqual(length(2)("aaa"), false)
1196
+ *
1197
+ * @category combinators
1198
+ * @since 2.0.0
1199
+ */
843
1200
  <A>(that: Predicate<A>): (self: Predicate<A>) => Predicate<A>
1201
+ /**
1202
+ * Combines two predicates into a new predicate that returns `true` if both of the predicates returns `true`.
1203
+ *
1204
+ * @param self - A predicate.
1205
+ * @param that - A predicate.
1206
+ *
1207
+ * @example
1208
+ * import { Predicate } from "effect"
1209
+ *
1210
+ * const minLength = (n: number) => (s: string) => s.length >= n
1211
+ * const maxLength = (n: number) => (s: string) => s.length <= n
1212
+ *
1213
+ * const length = (n: number) => Predicate.and(minLength(n), maxLength(n))
1214
+ *
1215
+ * assert.deepStrictEqual(length(2)("aa"), true)
1216
+ * assert.deepStrictEqual(length(2)("a"), false)
1217
+ * assert.deepStrictEqual(length(2)("aaa"), false)
1218
+ *
1219
+ * @category combinators
1220
+ * @since 2.0.0
1221
+ */
844
1222
  <A>(self: Predicate<A>, that: Predicate<A>): Predicate<A>
845
1223
  } = dual(2, <A>(self: Predicate<A>, that: Predicate<A>): Predicate<A> => (a) => self(a) && that(a))
846
1224
 
@@ -849,7 +1227,15 @@ export const and: {
849
1227
  * @since 2.0.0
850
1228
  */
851
1229
  export const xor: {
1230
+ /**
1231
+ * @category combinators
1232
+ * @since 2.0.0
1233
+ */
852
1234
  <A>(that: Predicate<A>): (self: Predicate<A>) => Predicate<A>
1235
+ /**
1236
+ * @category combinators
1237
+ * @since 2.0.0
1238
+ */
853
1239
  <A>(self: Predicate<A>, that: Predicate<A>): Predicate<A>
854
1240
  } = dual(2, <A>(self: Predicate<A>, that: Predicate<A>): Predicate<A> => (a) => self(a) !== that(a))
855
1241
 
@@ -858,7 +1244,15 @@ export const xor: {
858
1244
  * @since 2.0.0
859
1245
  */
860
1246
  export const eqv: {
1247
+ /**
1248
+ * @category combinators
1249
+ * @since 2.0.0
1250
+ */
861
1251
  <A>(that: Predicate<A>): (self: Predicate<A>) => Predicate<A>
1252
+ /**
1253
+ * @category combinators
1254
+ * @since 2.0.0
1255
+ */
862
1256
  <A>(self: Predicate<A>, that: Predicate<A>): Predicate<A>
863
1257
  } = dual(2, <A>(self: Predicate<A>, that: Predicate<A>): Predicate<A> => (a) => self(a) === that(a))
864
1258
 
@@ -907,7 +1301,95 @@ export const eqv: {
907
1301
  * @since 2.0.0
908
1302
  */
909
1303
  export const implies: {
1304
+ /**
1305
+ * Represents the logical implication combinator for predicates. In formal
1306
+ * logic, the implication operator `->` denotes that if the first proposition
1307
+ * (antecedent) is true, then the second proposition (consequent) must also be
1308
+ * true. In simpler terms, `p implies q` can be interpreted as "if p then q". If
1309
+ * the first predicate holds, then the second predicate must hold
1310
+ * for the given context.
1311
+ *
1312
+ * In practical terms within TypeScript, `p implies q` is equivalent to `!p || (p && q)`.
1313
+ *
1314
+ * Note that if the antecedent is `false`, the result is `true` by default
1315
+ * because the outcome of the consequent cannot be determined.
1316
+ *
1317
+ * This function is useful in situations where you need to enforce rules or
1318
+ * constraints that are contingent on certain conditions.
1319
+ * It proves especially helpful in defining property tests.
1320
+ *
1321
+ * The example below illustrates the transitive property of order using the
1322
+ * `implies` function. In simple terms, if `a <= b` and `b <= c`, then `a <= c`
1323
+ * must be true.
1324
+ *
1325
+ * @example
1326
+ * import { Predicate } from "effect"
1327
+ *
1328
+ * type Triple = {
1329
+ * readonly a: number
1330
+ * readonly b: number
1331
+ * readonly c: number
1332
+ * }
1333
+ *
1334
+ * const transitivity = Predicate.implies(
1335
+ * // antecedent
1336
+ * (input: Triple) => input.a <= input.b && input.b <= input.c,
1337
+ * // consequent
1338
+ * (input: Triple) => input.a <= input.c
1339
+ * )
1340
+ *
1341
+ * assert.equal(transitivity({ a: 1, b: 2, c: 3 }), true)
1342
+ * // antecedent is `false`, so the result is `true`
1343
+ * assert.equal(transitivity({ a: 1, b: 0, c: 0 }), true)
1344
+ *
1345
+ * @category combinators
1346
+ * @since 2.0.0
1347
+ */
910
1348
  <A>(consequent: Predicate<A>): (antecedent: Predicate<A>) => Predicate<A>
1349
+ /**
1350
+ * Represents the logical implication combinator for predicates. In formal
1351
+ * logic, the implication operator `->` denotes that if the first proposition
1352
+ * (antecedent) is true, then the second proposition (consequent) must also be
1353
+ * true. In simpler terms, `p implies q` can be interpreted as "if p then q". If
1354
+ * the first predicate holds, then the second predicate must hold
1355
+ * for the given context.
1356
+ *
1357
+ * In practical terms within TypeScript, `p implies q` is equivalent to `!p || (p && q)`.
1358
+ *
1359
+ * Note that if the antecedent is `false`, the result is `true` by default
1360
+ * because the outcome of the consequent cannot be determined.
1361
+ *
1362
+ * This function is useful in situations where you need to enforce rules or
1363
+ * constraints that are contingent on certain conditions.
1364
+ * It proves especially helpful in defining property tests.
1365
+ *
1366
+ * The example below illustrates the transitive property of order using the
1367
+ * `implies` function. In simple terms, if `a <= b` and `b <= c`, then `a <= c`
1368
+ * must be true.
1369
+ *
1370
+ * @example
1371
+ * import { Predicate } from "effect"
1372
+ *
1373
+ * type Triple = {
1374
+ * readonly a: number
1375
+ * readonly b: number
1376
+ * readonly c: number
1377
+ * }
1378
+ *
1379
+ * const transitivity = Predicate.implies(
1380
+ * // antecedent
1381
+ * (input: Triple) => input.a <= input.b && input.b <= input.c,
1382
+ * // consequent
1383
+ * (input: Triple) => input.a <= input.c
1384
+ * )
1385
+ *
1386
+ * assert.equal(transitivity({ a: 1, b: 2, c: 3 }), true)
1387
+ * // antecedent is `false`, so the result is `true`
1388
+ * assert.equal(transitivity({ a: 1, b: 0, c: 0 }), true)
1389
+ *
1390
+ * @category combinators
1391
+ * @since 2.0.0
1392
+ */
911
1393
  <A>(antecedent: Predicate<A>, consequent: Predicate<A>): Predicate<A>
912
1394
  } = dual(
913
1395
  2,
@@ -919,7 +1401,15 @@ export const implies: {
919
1401
  * @since 2.0.0
920
1402
  */
921
1403
  export const nor: {
1404
+ /**
1405
+ * @category combinators
1406
+ * @since 2.0.0
1407
+ */
922
1408
  <A>(that: Predicate<A>): (self: Predicate<A>) => Predicate<A>
1409
+ /**
1410
+ * @category combinators
1411
+ * @since 2.0.0
1412
+ */
923
1413
  <A>(self: Predicate<A>, that: Predicate<A>): Predicate<A>
924
1414
  } = dual(
925
1415
  2,
@@ -931,7 +1421,15 @@ export const nor: {
931
1421
  * @since 2.0.0
932
1422
  */
933
1423
  export const nand: {
1424
+ /**
1425
+ * @category combinators
1426
+ * @since 2.0.0
1427
+ */
934
1428
  <A>(that: Predicate<A>): (self: Predicate<A>) => Predicate<A>
1429
+ /**
1430
+ * @category combinators
1431
+ * @since 2.0.0
1432
+ */
935
1433
  <A>(self: Predicate<A>, that: Predicate<A>): Predicate<A>
936
1434
  } = dual(
937
1435
  2,
package/src/PubSub.ts CHANGED
@@ -155,7 +155,21 @@ export const awaitShutdown: <A>(self: PubSub<A>) => Effect.Effect<void> = intern
155
155
  * @category utils
156
156
  */
157
157
  export const publish: {
158
+ /**
159
+ * Publishes a message to the `PubSub`, returning whether the message was published
160
+ * to the `PubSub`.
161
+ *
162
+ * @since 2.0.0
163
+ * @category utils
164
+ */
158
165
  <A>(value: A): (self: PubSub<A>) => Effect.Effect<boolean>
166
+ /**
167
+ * Publishes a message to the `PubSub`, returning whether the message was published
168
+ * to the `PubSub`.
169
+ *
170
+ * @since 2.0.0
171
+ * @category utils
172
+ */
159
173
  <A>(self: PubSub<A>, value: A): Effect.Effect<boolean>
160
174
  } = internal.publish
161
175
 
@@ -167,7 +181,21 @@ export const publish: {
167
181
  * @category utils
168
182
  */
169
183
  export const publishAll: {
184
+ /**
185
+ * Publishes all of the specified messages to the `PubSub`, returning whether they
186
+ * were published to the `PubSub`.
187
+ *
188
+ * @since 2.0.0
189
+ * @category utils
190
+ */
170
191
  <A>(elements: Iterable<A>): (self: PubSub<A>) => Effect.Effect<boolean>
192
+ /**
193
+ * Publishes all of the specified messages to the `PubSub`, returning whether they
194
+ * were published to the `PubSub`.
195
+ *
196
+ * @since 2.0.0
197
+ * @category utils
198
+ */
171
199
  <A>(self: PubSub<A>, elements: Iterable<A>): Effect.Effect<boolean>
172
200
  } = internal.publishAll
173
201