effect 2.4.18 → 3.0.0

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 (688) hide show
  1. package/Array/package.json +6 -0
  2. package/FiberHandle/package.json +6 -0
  3. package/Readable/package.json +6 -0
  4. package/Record/package.json +6 -0
  5. package/RegExp/package.json +6 -0
  6. package/Subscribable/package.json +6 -0
  7. package/dist/cjs/{ReadonlyArray.js → Array.js} +46 -23
  8. package/dist/cjs/Array.js.map +1 -0
  9. package/dist/cjs/Brand.js +2 -2
  10. package/dist/cjs/Brand.js.map +1 -1
  11. package/dist/cjs/Channel.js +4 -8
  12. package/dist/cjs/Channel.js.map +1 -1
  13. package/dist/cjs/Chunk.js +5 -1
  14. package/dist/cjs/Chunk.js.map +1 -1
  15. package/dist/cjs/ConfigError.js.map +1 -1
  16. package/dist/cjs/Cron.js +13 -13
  17. package/dist/cjs/Cron.js.map +1 -1
  18. package/dist/cjs/Duration.js +39 -2
  19. package/dist/cjs/Duration.js.map +1 -1
  20. package/dist/cjs/Effect.js +14 -10
  21. package/dist/cjs/Effect.js.map +1 -1
  22. package/dist/cjs/Either.js +4 -1
  23. package/dist/cjs/Either.js.map +1 -1
  24. package/dist/cjs/ExecutionStrategy.js.map +1 -1
  25. package/dist/cjs/Exit.js +3 -9
  26. package/dist/cjs/Exit.js.map +1 -1
  27. package/dist/cjs/Fiber.js +2 -8
  28. package/dist/cjs/Fiber.js.map +1 -1
  29. package/dist/cjs/FiberHandle.js +288 -0
  30. package/dist/cjs/FiberHandle.js.map +1 -0
  31. package/dist/cjs/FiberMap.js +86 -27
  32. package/dist/cjs/FiberMap.js.map +1 -1
  33. package/dist/cjs/FiberRefs.js.map +1 -1
  34. package/dist/cjs/FiberSet.js +51 -15
  35. package/dist/cjs/FiberSet.js.map +1 -1
  36. package/dist/cjs/HashMap.js.map +1 -1
  37. package/dist/cjs/HashSet.js.map +1 -1
  38. package/dist/cjs/Iterable.js +40 -5
  39. package/dist/cjs/Iterable.js.map +1 -1
  40. package/dist/cjs/Layer.js.map +1 -1
  41. package/dist/cjs/List.js +8 -7
  42. package/dist/cjs/List.js.map +1 -1
  43. package/dist/cjs/Metric.js +3 -1
  44. package/dist/cjs/Metric.js.map +1 -1
  45. package/dist/cjs/MetricKey.js.map +1 -1
  46. package/dist/cjs/MetricKeyType.js.map +1 -1
  47. package/dist/cjs/MutableHashMap.js +0 -4
  48. package/dist/cjs/MutableHashMap.js.map +1 -1
  49. package/dist/cjs/Option.js +3 -6
  50. package/dist/cjs/Option.js.map +1 -1
  51. package/dist/cjs/Readable.js +79 -0
  52. package/dist/cjs/Readable.js.map +1 -0
  53. package/dist/cjs/{ReadonlyRecord.js → Record.js} +29 -29
  54. package/dist/cjs/Record.js.map +1 -0
  55. package/dist/cjs/RegExp.js +24 -0
  56. package/dist/cjs/RegExp.js.map +1 -0
  57. package/dist/cjs/STM.js +4 -10
  58. package/dist/cjs/STM.js.map +1 -1
  59. package/dist/cjs/Schedule.js +2 -2
  60. package/dist/cjs/Schedule.js.map +1 -1
  61. package/dist/cjs/ScopedCache.js.map +1 -1
  62. package/dist/cjs/Stream.js +3 -9
  63. package/dist/cjs/Stream.js.map +1 -1
  64. package/dist/cjs/StreamHaltStrategy.js +2 -0
  65. package/dist/cjs/StreamHaltStrategy.js.map +1 -1
  66. package/dist/cjs/String.js +44 -2
  67. package/dist/cjs/String.js.map +1 -1
  68. package/dist/cjs/Subscribable.js +91 -0
  69. package/dist/cjs/Subscribable.js.map +1 -0
  70. package/dist/cjs/SubscriptionRef.js.map +1 -1
  71. package/dist/cjs/TestAnnotation.js +2 -1
  72. package/dist/cjs/TestAnnotation.js.map +1 -1
  73. package/dist/cjs/TestAnnotations.js +1 -1
  74. package/dist/cjs/TestAnnotations.js.map +1 -1
  75. package/dist/cjs/TestClock.js +3 -3
  76. package/dist/cjs/TestClock.js.map +1 -1
  77. package/dist/cjs/Tracer.js.map +1 -1
  78. package/dist/cjs/index.js +14 -6
  79. package/dist/cjs/index.js.map +1 -1
  80. package/dist/cjs/internal/{readonlyArray.js → array.js} +1 -1
  81. package/dist/cjs/internal/array.js.map +1 -0
  82. package/dist/cjs/internal/cache.js +3 -3
  83. package/dist/cjs/internal/cache.js.map +1 -1
  84. package/dist/cjs/internal/cause.js +6 -5
  85. package/dist/cjs/internal/cause.js.map +1 -1
  86. package/dist/cjs/internal/channel/channelExecutor.js +15 -15
  87. package/dist/cjs/internal/channel/channelExecutor.js.map +1 -1
  88. package/dist/cjs/internal/channel/channelState.js +1 -1
  89. package/dist/cjs/internal/channel/channelState.js.map +1 -1
  90. package/dist/cjs/internal/channel/singleProducerAsyncInput.js +1 -1
  91. package/dist/cjs/internal/channel/singleProducerAsyncInput.js.map +1 -1
  92. package/dist/cjs/internal/channel.js +10 -10
  93. package/dist/cjs/internal/channel.js.map +1 -1
  94. package/dist/cjs/internal/clock.js +2 -2
  95. package/dist/cjs/internal/clock.js.map +1 -1
  96. package/dist/cjs/internal/configError.js +20 -19
  97. package/dist/cjs/internal/configError.js.map +1 -1
  98. package/dist/cjs/internal/configProvider/pathPatch.js +1 -1
  99. package/dist/cjs/internal/configProvider/pathPatch.js.map +1 -1
  100. package/dist/cjs/internal/configProvider.js +48 -49
  101. package/dist/cjs/internal/configProvider.js.map +1 -1
  102. package/dist/cjs/internal/core-effect.js +68 -40
  103. package/dist/cjs/internal/core-effect.js.map +1 -1
  104. package/dist/cjs/internal/core-stream.js +2 -3
  105. package/dist/cjs/internal/core-stream.js.map +1 -1
  106. package/dist/cjs/internal/core.js +41 -114
  107. package/dist/cjs/internal/core.js.map +1 -1
  108. package/dist/cjs/internal/dataSource.js +19 -2
  109. package/dist/cjs/internal/dataSource.js.map +1 -1
  110. package/dist/cjs/internal/differ/readonlyArrayPatch.js +6 -6
  111. package/dist/cjs/internal/differ/readonlyArrayPatch.js.map +1 -1
  112. package/dist/cjs/internal/effect/circular.js +6 -1
  113. package/dist/cjs/internal/effect/circular.js.map +1 -1
  114. package/dist/cjs/internal/errors.js +13 -0
  115. package/dist/cjs/internal/errors.js.map +1 -0
  116. package/dist/cjs/internal/executionStrategy.js +4 -4
  117. package/dist/cjs/internal/executionStrategy.js.map +1 -1
  118. package/dist/cjs/internal/fiber.js +5 -6
  119. package/dist/cjs/internal/fiber.js.map +1 -1
  120. package/dist/cjs/internal/fiberRefs/patch.js +1 -1
  121. package/dist/cjs/internal/fiberRefs/patch.js.map +1 -1
  122. package/dist/cjs/internal/fiberRefs.js +1 -1
  123. package/dist/cjs/internal/fiberRefs.js.map +1 -1
  124. package/dist/cjs/internal/fiberRuntime.js +106 -66
  125. package/dist/cjs/internal/fiberRuntime.js.map +1 -1
  126. package/dist/cjs/internal/groupBy.js +3 -3
  127. package/dist/cjs/internal/groupBy.js.map +1 -1
  128. package/dist/cjs/internal/hashMap.js +1 -1
  129. package/dist/cjs/internal/hashMap.js.map +1 -1
  130. package/dist/cjs/internal/hashSet.js.map +1 -1
  131. package/dist/cjs/internal/layer/circular.js.map +1 -1
  132. package/dist/cjs/internal/layer.js +5 -5
  133. package/dist/cjs/internal/layer.js.map +1 -1
  134. package/dist/cjs/internal/logger.js +28 -8
  135. package/dist/cjs/internal/logger.js.map +1 -1
  136. package/dist/cjs/internal/managedRuntime.js +1 -1
  137. package/dist/cjs/internal/managedRuntime.js.map +1 -1
  138. package/dist/cjs/internal/matcher.js +5 -4
  139. package/dist/cjs/internal/matcher.js.map +1 -1
  140. package/dist/cjs/internal/metric/boundaries.js +4 -4
  141. package/dist/cjs/internal/metric/boundaries.js.map +1 -1
  142. package/dist/cjs/internal/metric/hook.js +20 -17
  143. package/dist/cjs/internal/metric/hook.js.map +1 -1
  144. package/dist/cjs/internal/metric/key.js +4 -4
  145. package/dist/cjs/internal/metric/key.js.map +1 -1
  146. package/dist/cjs/internal/metric/keyType.js +6 -1
  147. package/dist/cjs/internal/metric/keyType.js.map +1 -1
  148. package/dist/cjs/internal/metric/state.js +4 -4
  149. package/dist/cjs/internal/metric/state.js.map +1 -1
  150. package/dist/cjs/internal/metric.js +4 -4
  151. package/dist/cjs/internal/metric.js.map +1 -1
  152. package/dist/cjs/internal/pool.js +11 -11
  153. package/dist/cjs/internal/pool.js.map +1 -1
  154. package/dist/cjs/internal/pubsub.js +5 -5
  155. package/dist/cjs/internal/pubsub.js.map +1 -1
  156. package/dist/cjs/internal/query.js +2 -2
  157. package/dist/cjs/internal/query.js.map +1 -1
  158. package/dist/cjs/internal/queue.js +9 -9
  159. package/dist/cjs/internal/queue.js.map +1 -1
  160. package/dist/cjs/internal/rateLimiter.js +1 -1
  161. package/dist/cjs/internal/rateLimiter.js.map +1 -1
  162. package/dist/cjs/internal/redBlackTree/iterator.js +2 -2
  163. package/dist/cjs/internal/redBlackTree/iterator.js.map +1 -1
  164. package/dist/cjs/internal/ref.js +6 -1
  165. package/dist/cjs/internal/ref.js.map +1 -1
  166. package/dist/cjs/internal/reloadable.js +1 -1
  167. package/dist/cjs/internal/reloadable.js.map +1 -1
  168. package/dist/cjs/internal/runtime.js +4 -4
  169. package/dist/cjs/internal/runtime.js.map +1 -1
  170. package/dist/cjs/internal/schedule/intervals.js +2 -1
  171. package/dist/cjs/internal/schedule/intervals.js.map +1 -1
  172. package/dist/cjs/internal/schedule.js +5 -5
  173. package/dist/cjs/internal/schedule.js.map +1 -1
  174. package/dist/cjs/internal/scopedCache.js +7 -7
  175. package/dist/cjs/internal/scopedCache.js.map +1 -1
  176. package/dist/cjs/internal/scopedRef.js +4 -4
  177. package/dist/cjs/internal/scopedRef.js.map +1 -1
  178. package/dist/cjs/internal/secret.js +2 -2
  179. package/dist/cjs/internal/secret.js.map +1 -1
  180. package/dist/cjs/internal/sink.js +10 -10
  181. package/dist/cjs/internal/sink.js.map +1 -1
  182. package/dist/cjs/internal/stm/stm/tExit.js +2 -4
  183. package/dist/cjs/internal/stm/stm/tExit.js.map +1 -1
  184. package/dist/cjs/internal/stm/stm.js +11 -11
  185. package/dist/cjs/internal/stm/stm.js.map +1 -1
  186. package/dist/cjs/internal/stm/tMap.js +3 -3
  187. package/dist/cjs/internal/stm/tMap.js.map +1 -1
  188. package/dist/cjs/internal/stm/tPriorityQueue.js +11 -11
  189. package/dist/cjs/internal/stm/tPriorityQueue.js.map +1 -1
  190. package/dist/cjs/internal/stm/tPubSub.js +3 -3
  191. package/dist/cjs/internal/stm/tPubSub.js.map +1 -1
  192. package/dist/cjs/internal/stm/tQueue.js +3 -3
  193. package/dist/cjs/internal/stm/tQueue.js.map +1 -1
  194. package/dist/cjs/internal/stm/tSet.js +1 -1
  195. package/dist/cjs/internal/stm/tSet.js.map +1 -1
  196. package/dist/cjs/internal/stream/haltStrategy.js +5 -5
  197. package/dist/cjs/internal/stream/haltStrategy.js.map +1 -1
  198. package/dist/cjs/internal/stream.js +84 -85
  199. package/dist/cjs/internal/stream.js.map +1 -1
  200. package/dist/cjs/internal/subscriptionRef.js +8 -0
  201. package/dist/cjs/internal/subscriptionRef.js.map +1 -1
  202. package/dist/cjs/internal/supervisor.js +1 -1
  203. package/dist/cjs/internal/supervisor.js.map +1 -1
  204. package/dist/cjs/internal/take.js +1 -1
  205. package/dist/cjs/internal/take.js.map +1 -1
  206. package/dist/cjs/internal/tracer.js.map +1 -1
  207. package/dist/cjs/internal/trie.js +1 -1
  208. package/dist/cjs/internal/trie.js.map +1 -1
  209. package/dist/cjs/internal/version.js +1 -1
  210. package/dist/cjs/internal/version.js.map +1 -1
  211. package/dist/dts/{ReadonlyArray.d.ts → Array.d.ts} +39 -18
  212. package/dist/dts/Array.d.ts.map +1 -0
  213. package/dist/dts/BigDecimal.d.ts.map +1 -1
  214. package/dist/dts/BigInt.d.ts.map +1 -1
  215. package/dist/dts/Brand.d.ts +1 -19
  216. package/dist/dts/Brand.d.ts.map +1 -1
  217. package/dist/dts/Cache.d.ts +10 -10
  218. package/dist/dts/Cache.d.ts.map +1 -1
  219. package/dist/dts/Cause.d.ts +1 -1
  220. package/dist/dts/Cause.d.ts.map +1 -1
  221. package/dist/dts/Channel.d.ts +6 -4
  222. package/dist/dts/Channel.d.ts.map +1 -1
  223. package/dist/dts/Chunk.d.ts +1 -4
  224. package/dist/dts/Chunk.d.ts.map +1 -1
  225. package/dist/dts/ConfigError.d.ts +7 -6
  226. package/dist/dts/ConfigError.d.ts.map +1 -1
  227. package/dist/dts/Cron.d.ts +0 -5
  228. package/dist/dts/Cron.d.ts.map +1 -1
  229. package/dist/dts/Duration.d.ts +16 -0
  230. package/dist/dts/Duration.d.ts.map +1 -1
  231. package/dist/dts/Effect.d.ts +38 -33
  232. package/dist/dts/Effect.d.ts.map +1 -1
  233. package/dist/dts/Either.d.ts +5 -2
  234. package/dist/dts/Either.d.ts.map +1 -1
  235. package/dist/dts/Encoding.d.ts.map +1 -1
  236. package/dist/dts/Equivalence.d.ts.map +1 -1
  237. package/dist/dts/ExecutionStrategy.d.ts +10 -2
  238. package/dist/dts/ExecutionStrategy.d.ts.map +1 -1
  239. package/dist/dts/Exit.d.ts +4 -3
  240. package/dist/dts/Exit.d.ts.map +1 -1
  241. package/dist/dts/Fiber.d.ts +4 -2
  242. package/dist/dts/Fiber.d.ts.map +1 -1
  243. package/dist/dts/FiberHandle.d.ts +189 -0
  244. package/dist/dts/FiberHandle.d.ts.map +1 -0
  245. package/dist/dts/FiberMap.d.ts +48 -12
  246. package/dist/dts/FiberMap.d.ts.map +1 -1
  247. package/dist/dts/FiberRefs.d.ts +1 -1
  248. package/dist/dts/FiberRefs.d.ts.map +1 -1
  249. package/dist/dts/FiberSet.d.ts +9 -5
  250. package/dist/dts/FiberSet.d.ts.map +1 -1
  251. package/dist/dts/Function.d.ts.map +1 -1
  252. package/dist/dts/GroupBy.d.ts +1 -1
  253. package/dist/dts/GroupBy.d.ts.map +1 -1
  254. package/dist/dts/HashMap.d.ts +0 -1
  255. package/dist/dts/HashMap.d.ts.map +1 -1
  256. package/dist/dts/HashSet.d.ts +0 -1
  257. package/dist/dts/HashSet.d.ts.map +1 -1
  258. package/dist/dts/Iterable.d.ts +12 -5
  259. package/dist/dts/Iterable.d.ts.map +1 -1
  260. package/dist/dts/Layer.d.ts +6 -6
  261. package/dist/dts/Layer.d.ts.map +1 -1
  262. package/dist/dts/List.d.ts +0 -11
  263. package/dist/dts/List.d.ts.map +1 -1
  264. package/dist/dts/Logger.d.ts +2 -2
  265. package/dist/dts/Logger.d.ts.map +1 -1
  266. package/dist/dts/Metric.d.ts +7 -2
  267. package/dist/dts/Metric.d.ts.map +1 -1
  268. package/dist/dts/MetricKey.d.ts +4 -1
  269. package/dist/dts/MetricKey.d.ts.map +1 -1
  270. package/dist/dts/MetricKeyType.d.ts +4 -1
  271. package/dist/dts/MetricKeyType.d.ts.map +1 -1
  272. package/dist/dts/MutableHashMap.d.ts.map +1 -1
  273. package/dist/dts/Option.d.ts +5 -3
  274. package/dist/dts/Option.d.ts.map +1 -1
  275. package/dist/dts/Order.d.ts.map +1 -1
  276. package/dist/dts/Readable.d.ts +55 -0
  277. package/dist/dts/Readable.d.ts.map +1 -0
  278. package/dist/dts/{ReadonlyRecord.d.ts → Record.d.ts} +29 -30
  279. package/dist/dts/Record.d.ts.map +1 -0
  280. package/dist/dts/Ref.d.ts +2 -2
  281. package/dist/dts/Ref.d.ts.map +1 -1
  282. package/dist/dts/RegExp.d.ts +17 -0
  283. package/dist/dts/RegExp.d.ts.map +1 -0
  284. package/dist/dts/Request.d.ts +1 -1
  285. package/dist/dts/Request.d.ts.map +1 -1
  286. package/dist/dts/RequestResolver.d.ts +2 -2
  287. package/dist/dts/RequestResolver.d.ts.map +1 -1
  288. package/dist/dts/STM.d.ts +6 -4
  289. package/dist/dts/STM.d.ts.map +1 -1
  290. package/dist/dts/Schedule.d.ts +1 -1
  291. package/dist/dts/Scheduler.d.ts.map +1 -1
  292. package/dist/dts/ScopedCache.d.ts +9 -9
  293. package/dist/dts/ScopedCache.d.ts.map +1 -1
  294. package/dist/dts/SortedMap.d.ts.map +1 -1
  295. package/dist/dts/SortedSet.d.ts +1 -1
  296. package/dist/dts/SortedSet.d.ts.map +1 -1
  297. package/dist/dts/Stream.d.ts +8 -6
  298. package/dist/dts/Stream.d.ts.map +1 -1
  299. package/dist/dts/StreamHaltStrategy.d.ts +14 -2
  300. package/dist/dts/StreamHaltStrategy.d.ts.map +1 -1
  301. package/dist/dts/String.d.ts +25 -1
  302. package/dist/dts/String.d.ts.map +1 -1
  303. package/dist/dts/Subscribable.d.ts +59 -0
  304. package/dist/dts/Subscribable.d.ts.map +1 -0
  305. package/dist/dts/SubscriptionRef.d.ts +2 -2
  306. package/dist/dts/SubscriptionRef.d.ts.map +1 -1
  307. package/dist/dts/TestAnnotation.d.ts.map +1 -1
  308. package/dist/dts/TestAnnotationMap.d.ts.map +1 -1
  309. package/dist/dts/TestAnnotations.d.ts +0 -3
  310. package/dist/dts/TestAnnotations.d.ts.map +1 -1
  311. package/dist/dts/TestClock.d.ts.map +1 -1
  312. package/dist/dts/TestLive.d.ts.map +1 -1
  313. package/dist/dts/TestServices.d.ts.map +1 -1
  314. package/dist/dts/TestSized.d.ts.map +1 -1
  315. package/dist/dts/Tracer.d.ts +12 -5
  316. package/dist/dts/Tracer.d.ts.map +1 -1
  317. package/dist/dts/Trie.d.ts +1 -1
  318. package/dist/dts/Trie.d.ts.map +1 -1
  319. package/dist/dts/Types.d.ts +0 -7
  320. package/dist/dts/Types.d.ts.map +1 -1
  321. package/dist/dts/index.d.ts +22 -4
  322. package/dist/dts/index.d.ts.map +1 -1
  323. package/dist/dts/internal/array.d.ts +5 -0
  324. package/dist/dts/internal/array.d.ts.map +1 -0
  325. package/dist/dts/internal/core-stream.d.ts +4 -0
  326. package/dist/dts/internal/core-stream.d.ts.map +1 -1
  327. package/dist/dts/internal/core.d.ts +3 -1
  328. package/dist/dts/internal/core.d.ts.map +1 -1
  329. package/dist/dts/internal/errors.d.ts +5 -0
  330. package/dist/dts/internal/errors.d.ts.map +1 -0
  331. package/dist/dts/internal/fiber.d.ts +5 -1
  332. package/dist/dts/internal/fiber.d.ts.map +1 -1
  333. package/dist/dts/internal/hashMap.d.ts.map +1 -1
  334. package/dist/dts/internal/logger.d.ts.map +1 -1
  335. package/dist/dts/internal/metric/keyType.d.ts +3 -1
  336. package/dist/dts/internal/metric/keyType.d.ts.map +1 -1
  337. package/dist/dts/internal/metric/state.d.ts.map +1 -1
  338. package/dist/dts/internal/random.d.ts.map +1 -1
  339. package/dist/dts/internal/runtimeFlags.d.ts.map +1 -1
  340. package/dist/dts/internal/stm/stm/tExit.d.ts +4 -1
  341. package/dist/dts/internal/stm/stm/tExit.d.ts.map +1 -1
  342. package/dist/dts/internal/stm/stm.d.ts +3 -0
  343. package/dist/dts/internal/stm/stm.d.ts.map +1 -1
  344. package/dist/dts/internal/stream.d.ts +5 -1
  345. package/dist/dts/internal/stream.d.ts.map +1 -1
  346. package/dist/esm/{ReadonlyArray.js → Array.js} +42 -20
  347. package/dist/esm/Array.js.map +1 -0
  348. package/dist/esm/Brand.js +2 -2
  349. package/dist/esm/Brand.js.map +1 -1
  350. package/dist/esm/Channel.js +4 -2
  351. package/dist/esm/Channel.js.map +1 -1
  352. package/dist/esm/Chunk.js +4 -1
  353. package/dist/esm/Chunk.js.map +1 -1
  354. package/dist/esm/ConfigError.js.map +1 -1
  355. package/dist/esm/Cron.js +13 -13
  356. package/dist/esm/Cron.js.map +1 -1
  357. package/dist/esm/Duration.js +38 -1
  358. package/dist/esm/Duration.js.map +1 -1
  359. package/dist/esm/Effect.js +11 -2
  360. package/dist/esm/Effect.js.map +1 -1
  361. package/dist/esm/Either.js +4 -1
  362. package/dist/esm/Either.js.map +1 -1
  363. package/dist/esm/ExecutionStrategy.js.map +1 -1
  364. package/dist/esm/Exit.js +4 -2
  365. package/dist/esm/Exit.js.map +1 -1
  366. package/dist/esm/Fiber.js +3 -1
  367. package/dist/esm/Fiber.js.map +1 -1
  368. package/dist/esm/FiberHandle.js +247 -0
  369. package/dist/esm/FiberHandle.js.map +1 -0
  370. package/dist/esm/FiberMap.js +85 -26
  371. package/dist/esm/FiberMap.js.map +1 -1
  372. package/dist/esm/FiberRefs.js.map +1 -1
  373. package/dist/esm/FiberSet.js +51 -15
  374. package/dist/esm/FiberSet.js.map +1 -1
  375. package/dist/esm/HashMap.js.map +1 -1
  376. package/dist/esm/HashSet.js.map +1 -1
  377. package/dist/esm/Iterable.js +39 -4
  378. package/dist/esm/Iterable.js.map +1 -1
  379. package/dist/esm/Layer.js.map +1 -1
  380. package/dist/esm/List.js +7 -6
  381. package/dist/esm/List.js.map +1 -1
  382. package/dist/esm/Metric.js +3 -1
  383. package/dist/esm/Metric.js.map +1 -1
  384. package/dist/esm/MetricKey.js.map +1 -1
  385. package/dist/esm/MetricKeyType.js.map +1 -1
  386. package/dist/esm/MutableHashMap.js +0 -3
  387. package/dist/esm/MutableHashMap.js.map +1 -1
  388. package/dist/esm/Option.js +4 -2
  389. package/dist/esm/Option.js.map +1 -1
  390. package/dist/esm/Readable.js +45 -0
  391. package/dist/esm/Readable.js.map +1 -0
  392. package/dist/esm/{ReadonlyRecord.js → Record.js} +29 -29
  393. package/dist/esm/Record.js.map +1 -0
  394. package/dist/esm/RegExp.js +17 -0
  395. package/dist/esm/RegExp.js.map +1 -0
  396. package/dist/esm/STM.js +5 -3
  397. package/dist/esm/STM.js.map +1 -1
  398. package/dist/esm/Schedule.js +1 -1
  399. package/dist/esm/Schedule.js.map +1 -1
  400. package/dist/esm/ScopedCache.js.map +1 -1
  401. package/dist/esm/Stream.js +5 -3
  402. package/dist/esm/Stream.js.map +1 -1
  403. package/dist/esm/StreamHaltStrategy.js +2 -0
  404. package/dist/esm/StreamHaltStrategy.js.map +1 -1
  405. package/dist/esm/String.js +37 -1
  406. package/dist/esm/String.js.map +1 -1
  407. package/dist/esm/Subscribable.js +56 -0
  408. package/dist/esm/Subscribable.js.map +1 -0
  409. package/dist/esm/SubscriptionRef.js.map +1 -1
  410. package/dist/esm/TestAnnotation.js +2 -1
  411. package/dist/esm/TestAnnotation.js.map +1 -1
  412. package/dist/esm/TestAnnotations.js +1 -1
  413. package/dist/esm/TestAnnotations.js.map +1 -1
  414. package/dist/esm/TestClock.js +3 -3
  415. package/dist/esm/TestClock.js.map +1 -1
  416. package/dist/esm/Tracer.js.map +1 -1
  417. package/dist/esm/index.js +22 -4
  418. package/dist/esm/index.js.map +1 -1
  419. package/dist/esm/internal/{readonlyArray.js → array.js} +1 -1
  420. package/dist/esm/internal/array.js.map +1 -0
  421. package/dist/esm/internal/cache.js +3 -3
  422. package/dist/esm/internal/cache.js.map +1 -1
  423. package/dist/esm/internal/cause.js +6 -5
  424. package/dist/esm/internal/cause.js.map +1 -1
  425. package/dist/esm/internal/channel/channelExecutor.js +15 -15
  426. package/dist/esm/internal/channel/channelExecutor.js.map +1 -1
  427. package/dist/esm/internal/channel/channelState.js +1 -1
  428. package/dist/esm/internal/channel/channelState.js.map +1 -1
  429. package/dist/esm/internal/channel/singleProducerAsyncInput.js +1 -1
  430. package/dist/esm/internal/channel/singleProducerAsyncInput.js.map +1 -1
  431. package/dist/esm/internal/channel.js +8 -8
  432. package/dist/esm/internal/channel.js.map +1 -1
  433. package/dist/esm/internal/clock.js +2 -2
  434. package/dist/esm/internal/clock.js.map +1 -1
  435. package/dist/esm/internal/configError.js +20 -19
  436. package/dist/esm/internal/configError.js.map +1 -1
  437. package/dist/esm/internal/configProvider/pathPatch.js +1 -1
  438. package/dist/esm/internal/configProvider/pathPatch.js.map +1 -1
  439. package/dist/esm/internal/configProvider.js +48 -49
  440. package/dist/esm/internal/configProvider.js.map +1 -1
  441. package/dist/esm/internal/core-effect.js +64 -38
  442. package/dist/esm/internal/core-effect.js.map +1 -1
  443. package/dist/esm/internal/core-stream.js +3 -2
  444. package/dist/esm/internal/core-stream.js.map +1 -1
  445. package/dist/esm/internal/core.js +37 -108
  446. package/dist/esm/internal/core.js.map +1 -1
  447. package/dist/esm/internal/dataSource.js +19 -2
  448. package/dist/esm/internal/dataSource.js.map +1 -1
  449. package/dist/esm/internal/differ/readonlyArrayPatch.js +6 -6
  450. package/dist/esm/internal/differ/readonlyArrayPatch.js.map +1 -1
  451. package/dist/esm/internal/effect/circular.js +6 -1
  452. package/dist/esm/internal/effect/circular.js.map +1 -1
  453. package/dist/esm/internal/errors.js +6 -0
  454. package/dist/esm/internal/errors.js.map +1 -0
  455. package/dist/esm/internal/executionStrategy.js +4 -4
  456. package/dist/esm/internal/executionStrategy.js.map +1 -1
  457. package/dist/esm/internal/fiber.js +6 -5
  458. package/dist/esm/internal/fiber.js.map +1 -1
  459. package/dist/esm/internal/fiberRefs/patch.js +1 -1
  460. package/dist/esm/internal/fiberRefs/patch.js.map +1 -1
  461. package/dist/esm/internal/fiberRefs.js +1 -1
  462. package/dist/esm/internal/fiberRefs.js.map +1 -1
  463. package/dist/esm/internal/fiberRuntime.js +104 -63
  464. package/dist/esm/internal/fiberRuntime.js.map +1 -1
  465. package/dist/esm/internal/groupBy.js +3 -3
  466. package/dist/esm/internal/groupBy.js.map +1 -1
  467. package/dist/esm/internal/hashMap.js +1 -1
  468. package/dist/esm/internal/hashMap.js.map +1 -1
  469. package/dist/esm/internal/hashSet.js.map +1 -1
  470. package/dist/esm/internal/layer/circular.js.map +1 -1
  471. package/dist/esm/internal/layer.js +5 -5
  472. package/dist/esm/internal/layer.js.map +1 -1
  473. package/dist/esm/internal/logger.js +28 -8
  474. package/dist/esm/internal/logger.js.map +1 -1
  475. package/dist/esm/internal/managedRuntime.js +1 -1
  476. package/dist/esm/internal/managedRuntime.js.map +1 -1
  477. package/dist/esm/internal/matcher.js +4 -3
  478. package/dist/esm/internal/matcher.js.map +1 -1
  479. package/dist/esm/internal/metric/boundaries.js +4 -4
  480. package/dist/esm/internal/metric/boundaries.js.map +1 -1
  481. package/dist/esm/internal/metric/hook.js +20 -17
  482. package/dist/esm/internal/metric/hook.js.map +1 -1
  483. package/dist/esm/internal/metric/key.js +4 -4
  484. package/dist/esm/internal/metric/key.js.map +1 -1
  485. package/dist/esm/internal/metric/keyType.js +5 -1
  486. package/dist/esm/internal/metric/keyType.js.map +1 -1
  487. package/dist/esm/internal/metric/state.js +4 -4
  488. package/dist/esm/internal/metric/state.js.map +1 -1
  489. package/dist/esm/internal/metric.js +4 -4
  490. package/dist/esm/internal/metric.js.map +1 -1
  491. package/dist/esm/internal/pool.js +11 -11
  492. package/dist/esm/internal/pool.js.map +1 -1
  493. package/dist/esm/internal/pubsub.js +5 -5
  494. package/dist/esm/internal/pubsub.js.map +1 -1
  495. package/dist/esm/internal/query.js +2 -2
  496. package/dist/esm/internal/query.js.map +1 -1
  497. package/dist/esm/internal/queue.js +9 -9
  498. package/dist/esm/internal/queue.js.map +1 -1
  499. package/dist/esm/internal/rateLimiter.js +1 -1
  500. package/dist/esm/internal/rateLimiter.js.map +1 -1
  501. package/dist/esm/internal/redBlackTree/iterator.js +2 -2
  502. package/dist/esm/internal/redBlackTree/iterator.js.map +1 -1
  503. package/dist/esm/internal/ref.js +6 -1
  504. package/dist/esm/internal/ref.js.map +1 -1
  505. package/dist/esm/internal/reloadable.js +1 -1
  506. package/dist/esm/internal/reloadable.js.map +1 -1
  507. package/dist/esm/internal/runtime.js +4 -4
  508. package/dist/esm/internal/runtime.js.map +1 -1
  509. package/dist/esm/internal/schedule/intervals.js +2 -1
  510. package/dist/esm/internal/schedule/intervals.js.map +1 -1
  511. package/dist/esm/internal/schedule.js +3 -3
  512. package/dist/esm/internal/schedule.js.map +1 -1
  513. package/dist/esm/internal/scopedCache.js +7 -7
  514. package/dist/esm/internal/scopedCache.js.map +1 -1
  515. package/dist/esm/internal/scopedRef.js +4 -4
  516. package/dist/esm/internal/scopedRef.js.map +1 -1
  517. package/dist/esm/internal/secret.js +2 -2
  518. package/dist/esm/internal/secret.js.map +1 -1
  519. package/dist/esm/internal/sink.js +10 -10
  520. package/dist/esm/internal/sink.js.map +1 -1
  521. package/dist/esm/internal/stm/stm/tExit.js +3 -2
  522. package/dist/esm/internal/stm/stm/tExit.js.map +1 -1
  523. package/dist/esm/internal/stm/stm.js +11 -9
  524. package/dist/esm/internal/stm/stm.js.map +1 -1
  525. package/dist/esm/internal/stm/tMap.js +3 -3
  526. package/dist/esm/internal/stm/tMap.js.map +1 -1
  527. package/dist/esm/internal/stm/tPriorityQueue.js +11 -11
  528. package/dist/esm/internal/stm/tPriorityQueue.js.map +1 -1
  529. package/dist/esm/internal/stm/tPubSub.js +3 -3
  530. package/dist/esm/internal/stm/tPubSub.js.map +1 -1
  531. package/dist/esm/internal/stm/tQueue.js +3 -3
  532. package/dist/esm/internal/stm/tQueue.js.map +1 -1
  533. package/dist/esm/internal/stm/tSet.js +1 -1
  534. package/dist/esm/internal/stm/tSet.js.map +1 -1
  535. package/dist/esm/internal/stream/haltStrategy.js +5 -5
  536. package/dist/esm/internal/stream/haltStrategy.js.map +1 -1
  537. package/dist/esm/internal/stream.js +85 -84
  538. package/dist/esm/internal/stream.js.map +1 -1
  539. package/dist/esm/internal/subscriptionRef.js +8 -0
  540. package/dist/esm/internal/subscriptionRef.js.map +1 -1
  541. package/dist/esm/internal/supervisor.js +1 -1
  542. package/dist/esm/internal/supervisor.js.map +1 -1
  543. package/dist/esm/internal/take.js +1 -1
  544. package/dist/esm/internal/take.js.map +1 -1
  545. package/dist/esm/internal/tracer.js.map +1 -1
  546. package/dist/esm/internal/trie.js +1 -1
  547. package/dist/esm/internal/trie.js.map +1 -1
  548. package/dist/esm/internal/version.js +1 -1
  549. package/dist/esm/internal/version.js.map +1 -1
  550. package/package.json +45 -13
  551. package/src/{ReadonlyArray.ts → Array.ts} +47 -24
  552. package/src/Brand.ts +3 -3
  553. package/src/Cache.ts +12 -10
  554. package/src/Cause.ts +1 -1
  555. package/src/Channel.ts +12 -9
  556. package/src/Chunk.ts +3 -3
  557. package/src/ConfigError.ts +7 -6
  558. package/src/Cron.ts +17 -17
  559. package/src/Duration.ts +54 -1
  560. package/src/Effect.ts +46 -57
  561. package/src/Either.ts +7 -7
  562. package/src/ExecutionStrategy.ts +10 -2
  563. package/src/Exit.ts +11 -9
  564. package/src/Fiber.ts +11 -8
  565. package/src/FiberHandle.ts +414 -0
  566. package/src/FiberMap.ts +181 -73
  567. package/src/FiberRefs.ts +1 -1
  568. package/src/FiberSet.ts +96 -36
  569. package/src/GroupBy.ts +1 -1
  570. package/src/HashMap.ts +0 -1
  571. package/src/HashSet.ts +0 -1
  572. package/src/Iterable.ts +48 -10
  573. package/src/Layer.ts +6 -6
  574. package/src/List.ts +8 -7
  575. package/src/Logger.ts +2 -2
  576. package/src/Metric.ts +9 -2
  577. package/src/MetricKey.ts +9 -1
  578. package/src/MetricKeyType.ts +6 -1
  579. package/src/MutableHashMap.ts +1 -1
  580. package/src/Option.ts +9 -6
  581. package/src/Readable.ts +92 -0
  582. package/src/{ReadonlyRecord.ts → Record.ts} +28 -29
  583. package/src/Ref.ts +2 -2
  584. package/src/RegExp.ts +17 -0
  585. package/src/Request.ts +1 -1
  586. package/src/RequestResolver.ts +4 -4
  587. package/src/STM.ts +12 -9
  588. package/src/Schedule.ts +1 -1
  589. package/src/ScopedCache.ts +11 -9
  590. package/src/SortedSet.ts +1 -1
  591. package/src/Stream.ts +14 -11
  592. package/src/StreamHaltStrategy.ts +14 -2
  593. package/src/String.ts +45 -2
  594. package/src/Subscribable.ts +99 -0
  595. package/src/SubscriptionRef.ts +2 -2
  596. package/src/TestAnnotation.ts +2 -1
  597. package/src/TestAnnotations.ts +1 -1
  598. package/src/TestClock.ts +3 -3
  599. package/src/Tracer.ts +13 -5
  600. package/src/Trie.ts +1 -1
  601. package/src/Types.ts +0 -8
  602. package/src/index.ts +26 -4
  603. package/src/internal/{readonlyArray.ts → array.ts} +1 -1
  604. package/src/internal/cache.ts +40 -40
  605. package/src/internal/cause.ts +8 -8
  606. package/src/internal/channel/channelExecutor.ts +15 -15
  607. package/src/internal/channel/channelState.ts +1 -1
  608. package/src/internal/channel/singleProducerAsyncInput.ts +1 -1
  609. package/src/internal/channel.ts +11 -11
  610. package/src/internal/clock.ts +2 -2
  611. package/src/internal/configError.ts +22 -21
  612. package/src/internal/configProvider/pathPatch.ts +1 -1
  613. package/src/internal/configProvider.ts +51 -55
  614. package/src/internal/core-effect.ts +149 -134
  615. package/src/internal/core-stream.ts +5 -2
  616. package/src/internal/core.ts +64 -200
  617. package/src/internal/dataSource.ts +19 -20
  618. package/src/internal/differ/readonlyArrayPatch.ts +6 -6
  619. package/src/internal/effect/circular.ts +9 -3
  620. package/src/internal/errors.ts +7 -0
  621. package/src/internal/executionStrategy.ts +14 -12
  622. package/src/internal/fiber.ts +8 -5
  623. package/src/internal/fiberRefs/patch.ts +1 -1
  624. package/src/internal/fiberRefs.ts +1 -1
  625. package/src/internal/fiberRuntime.ts +157 -123
  626. package/src/internal/groupBy.ts +4 -4
  627. package/src/internal/hashMap.ts +1 -2
  628. package/src/internal/hashSet.ts +0 -1
  629. package/src/internal/layer/circular.ts +2 -2
  630. package/src/internal/layer.ts +9 -9
  631. package/src/internal/logger.ts +28 -8
  632. package/src/internal/managedRuntime.ts +1 -1
  633. package/src/internal/matcher.ts +5 -3
  634. package/src/internal/metric/boundaries.ts +5 -5
  635. package/src/internal/metric/hook.ts +21 -18
  636. package/src/internal/metric/key.ts +8 -5
  637. package/src/internal/metric/keyType.ts +5 -2
  638. package/src/internal/metric/state.ts +5 -5
  639. package/src/internal/metric.ts +8 -6
  640. package/src/internal/pool.ts +11 -11
  641. package/src/internal/pubsub.ts +6 -6
  642. package/src/internal/query.ts +4 -4
  643. package/src/internal/queue.ts +11 -11
  644. package/src/internal/rateLimiter.ts +1 -1
  645. package/src/internal/redBlackTree/iterator.ts +2 -2
  646. package/src/internal/ref.ts +8 -2
  647. package/src/internal/reloadable.ts +1 -1
  648. package/src/internal/runtime.ts +5 -5
  649. package/src/internal/schedule/intervals.ts +2 -1
  650. package/src/internal/schedule.ts +8 -9
  651. package/src/internal/scopedCache.ts +53 -53
  652. package/src/internal/scopedRef.ts +4 -4
  653. package/src/internal/secret.ts +2 -2
  654. package/src/internal/sink.ts +10 -10
  655. package/src/internal/stm/stm/tExit.ts +5 -2
  656. package/src/internal/stm/stm.ts +13 -9
  657. package/src/internal/stm/tMap.ts +3 -3
  658. package/src/internal/stm/tPriorityQueue.ts +11 -11
  659. package/src/internal/stm/tPubSub.ts +3 -3
  660. package/src/internal/stm/tQueue.ts +3 -3
  661. package/src/internal/stm/tSet.ts +1 -1
  662. package/src/internal/stream/haltStrategy.ts +23 -14
  663. package/src/internal/stream.ts +91 -88
  664. package/src/internal/subscriptionRef.ts +8 -0
  665. package/src/internal/supervisor.ts +1 -1
  666. package/src/internal/take.ts +1 -1
  667. package/src/internal/tracer.ts +2 -2
  668. package/src/internal/trie.ts +1 -2
  669. package/src/internal/version.ts +1 -1
  670. package/ReadonlyArray/package.json +0 -6
  671. package/ReadonlyRecord/package.json +0 -6
  672. package/dist/cjs/ReadonlyArray.js.map +0 -1
  673. package/dist/cjs/ReadonlyRecord.js.map +0 -1
  674. package/dist/cjs/internal/Iterable.js +0 -61
  675. package/dist/cjs/internal/Iterable.js.map +0 -1
  676. package/dist/cjs/internal/readonlyArray.js.map +0 -1
  677. package/dist/dts/ReadonlyArray.d.ts.map +0 -1
  678. package/dist/dts/ReadonlyRecord.d.ts.map +0 -1
  679. package/dist/dts/internal/Iterable.d.ts +0 -2
  680. package/dist/dts/internal/Iterable.d.ts.map +0 -1
  681. package/dist/dts/internal/readonlyArray.d.ts +0 -5
  682. package/dist/dts/internal/readonlyArray.d.ts.map +0 -1
  683. package/dist/esm/ReadonlyArray.js.map +0 -1
  684. package/dist/esm/ReadonlyRecord.js.map +0 -1
  685. package/dist/esm/internal/Iterable.js +0 -53
  686. package/dist/esm/internal/Iterable.js.map +0 -1
  687. package/dist/esm/internal/readonlyArray.js.map +0 -1
  688. package/src/internal/Iterable.ts +0 -54
package/src/HashSet.ts CHANGED
@@ -7,7 +7,6 @@ import type { Inspectable } from "./Inspectable.js"
7
7
  import * as HS from "./internal/hashSet.js"
8
8
  import type { Pipeable } from "./Pipeable.js"
9
9
  import type { Predicate, Refinement } from "./Predicate.js"
10
- import type { NoInfer } from "./Types.js"
11
10
 
12
11
  const TypeId: unique symbol = HS.HashSetTypeId as TypeId
13
12
 
package/src/Iterable.ts CHANGED
@@ -4,6 +4,7 @@
4
4
  * @since 2.0.0
5
5
  */
6
6
 
7
+ import type { NonEmptyArray } from "./Array.js"
7
8
  import type { Either } from "./Either.js"
8
9
  import * as E from "./Either.js"
9
10
  import * as Equal from "./Equal.js"
@@ -11,10 +12,8 @@ import { dual, identity } from "./Function.js"
11
12
  import type { Option } from "./Option.js"
12
13
  import * as O from "./Option.js"
13
14
  import { isBoolean } from "./Predicate.js"
14
- import type { NonEmptyArray } from "./ReadonlyArray.js"
15
- import type * as ReadonlyRecord from "./ReadonlyRecord.js"
15
+ import type * as Record from "./Record.js"
16
16
  import * as Tuple from "./Tuple.js"
17
- import type { NoInfer } from "./Types.js"
18
17
 
19
18
  /**
20
19
  * Return a `Iterable` with element `i` initialized with `f(i)`.
@@ -123,7 +122,7 @@ export const fromRecord = <K extends string, A>(self: Readonly<Record<K, A>>): I
123
122
  export const prepend: {
124
123
  <B>(head: B): <A>(self: Iterable<A>) => Iterable<A | B>
125
124
  <A, B>(self: Iterable<A>, head: B): Iterable<A | B>
126
- } = dual(2, <A, B>(self: Iterable<A>, head: B): Iterable<A | B> => flatten<A | B>([[head], self]))
125
+ } = dual(2, <A, B>(self: Iterable<A>, head: B): Iterable<A | B> => prependAll(self, [head]))
127
126
 
128
127
  /**
129
128
  * Prepends the specified prefix iterable to the beginning of the specified iterable.
@@ -144,7 +143,7 @@ export const prependAll: {
144
143
  <A, B>(self: Iterable<A>, that: Iterable<B>): Iterable<A | B>
145
144
  } = dual(
146
145
  2,
147
- <A, B>(self: Iterable<A>, that: Iterable<B>): Iterable<A | B> => flatten<A | B>([that, self])
146
+ <A, B>(self: Iterable<A>, that: Iterable<B>): Iterable<A | B> => appendAll(that, self)
148
147
  )
149
148
 
150
149
  /**
@@ -156,7 +155,7 @@ export const prependAll: {
156
155
  export const append: {
157
156
  <B>(last: B): <A>(self: Iterable<A>) => Iterable<A | B>
158
157
  <A, B>(self: Iterable<A>, last: B): Iterable<A | B>
159
- } = dual(2, <A, B>(self: Iterable<A>, last: B): Iterable<A | B> => flatten<A | B>([self, [last]]))
158
+ } = dual(2, <A, B>(self: Iterable<A>, last: B): Iterable<A | B> => appendAll(self, [last]))
160
159
 
161
160
  /**
162
161
  * Concatenates two iterables, combining their elements.
@@ -169,7 +168,27 @@ export const appendAll: {
169
168
  <A, B>(self: Iterable<A>, that: Iterable<B>): Iterable<A | B>
170
169
  } = dual(
171
170
  2,
172
- <A, B>(self: Iterable<A>, that: Iterable<B>): Iterable<A | B> => flatten<A | B>([self, that])
171
+ <A, B>(self: Iterable<A>, that: Iterable<B>): Iterable<A | B> => ({
172
+ [Symbol.iterator]() {
173
+ const iterA = self[Symbol.iterator]()
174
+ let doneA = false
175
+ let iterB: Iterator<B>
176
+ return {
177
+ next() {
178
+ if (!doneA) {
179
+ const r = iterA.next()
180
+ if (r.done) {
181
+ doneA = true
182
+ iterB = that[Symbol.iterator]()
183
+ return iterB.next()
184
+ }
185
+ return r
186
+ }
187
+ return iterB.next()
188
+ }
189
+ }
190
+ }
191
+ })
173
192
  )
174
193
 
175
194
  /**
@@ -607,15 +626,15 @@ export const group: <A>(self: Iterable<A>) => Iterable<NonEmptyArray<A>> = group
607
626
  export const groupBy: {
608
627
  <A, K extends string | symbol>(
609
628
  f: (a: A) => K
610
- ): (self: Iterable<A>) => Record<ReadonlyRecord.ReadonlyRecord.NonLiteralKey<K>, NonEmptyArray<A>>
629
+ ): (self: Iterable<A>) => Record<Record.ReadonlyRecord.NonLiteralKey<K>, NonEmptyArray<A>>
611
630
  <A, K extends string | symbol>(
612
631
  self: Iterable<A>,
613
632
  f: (a: A) => K
614
- ): Record<ReadonlyRecord.ReadonlyRecord.NonLiteralKey<K>, NonEmptyArray<A>>
633
+ ): Record<Record.ReadonlyRecord.NonLiteralKey<K>, NonEmptyArray<A>>
615
634
  } = dual(2, <A, K extends string | symbol>(
616
635
  self: Iterable<A>,
617
636
  f: (a: A) => K
618
- ): Record<ReadonlyRecord.ReadonlyRecord.NonLiteralKey<K>, NonEmptyArray<A>> => {
637
+ ): Record<Record.ReadonlyRecord.NonLiteralKey<K>, NonEmptyArray<A>> => {
619
638
  const out: Record<string | symbol, NonEmptyArray<A>> = {}
620
639
  for (const a of self) {
621
640
  const k = f(a)
@@ -938,6 +957,25 @@ export const forEach: {
938
957
  }
939
958
  })
940
959
 
960
+ /**
961
+ * @category folding
962
+ * @since 2.0.0
963
+ */
964
+ export const reduce: {
965
+ <B, A>(b: B, f: (b: B, a: A, i: number) => B): (self: Iterable<A>) => B
966
+ <A, B>(self: Iterable<A>, b: B, f: (b: B, a: A, i: number) => B): B
967
+ } = dual(3, <A, B>(self: Iterable<A>, b: B, f: (b: B, a: A, i: number) => B): B => {
968
+ if (Array.isArray(self)) {
969
+ return self.reduce(f, b)
970
+ }
971
+ let i = 0
972
+ let result = b
973
+ for (const n of self) {
974
+ result = f(result, n, i++)
975
+ }
976
+ return result
977
+ })
978
+
941
979
  /**
942
980
  * Deduplicates adjacent elements that are identical using the provided `isEquivalent` function.
943
981
  *
package/src/Layer.ts CHANGED
@@ -896,7 +896,7 @@ export const setConfigProvider: (configProvider: ConfigProvider) => Layer<never>
896
896
  * @since 2.0.0
897
897
  * @category tracing
898
898
  */
899
- export const parentSpan: (span: Tracer.ParentSpan) => Layer<Tracer.ParentSpan> = circularLayer.parentSpan
899
+ export const parentSpan: (span: Tracer.AnySpan) => Layer<Tracer.ParentSpan> = circularLayer.parentSpan
900
900
 
901
901
  /**
902
902
  * @since 2.0.0
@@ -962,7 +962,7 @@ export const span: (
962
962
  options?: {
963
963
  readonly attributes?: Record<string, unknown> | undefined
964
964
  readonly links?: ReadonlyArray<Tracer.SpanLink> | undefined
965
- readonly parent?: Tracer.ParentSpan | undefined
965
+ readonly parent?: Tracer.AnySpan | undefined
966
966
  readonly root?: boolean | undefined
967
967
  readonly context?: Context.Context<never> | undefined
968
968
  readonly onEnd?:
@@ -1018,7 +1018,7 @@ export const withSpan: {
1018
1018
  options?: {
1019
1019
  readonly attributes?: Record<string, unknown> | undefined
1020
1020
  readonly links?: ReadonlyArray<Tracer.SpanLink> | undefined
1021
- readonly parent?: Tracer.ParentSpan | undefined
1021
+ readonly parent?: Tracer.AnySpan | undefined
1022
1022
  readonly root?: boolean | undefined
1023
1023
  readonly context?: Context.Context<never> | undefined
1024
1024
  readonly onEnd?:
@@ -1032,7 +1032,7 @@ export const withSpan: {
1032
1032
  options?: {
1033
1033
  readonly attributes?: Record<string, unknown> | undefined
1034
1034
  readonly links?: ReadonlyArray<Tracer.SpanLink> | undefined
1035
- readonly parent?: Tracer.ParentSpan | undefined
1035
+ readonly parent?: Tracer.AnySpan | undefined
1036
1036
  readonly root?: boolean | undefined
1037
1037
  readonly context?: Context.Context<never> | undefined
1038
1038
  readonly onEnd?:
@@ -1047,8 +1047,8 @@ export const withSpan: {
1047
1047
  * @category tracing
1048
1048
  */
1049
1049
  export const withParentSpan: {
1050
- (span: Tracer.ParentSpan): <A, E, R>(self: Layer<A, E, R>) => Layer<A, E, Exclude<R, Tracer.ParentSpan>>
1051
- <A, E, R>(self: Layer<A, E, R>, span: Tracer.ParentSpan): Layer<A, E, Exclude<R, Tracer.ParentSpan>>
1050
+ (span: Tracer.AnySpan): <A, E, R>(self: Layer<A, E, R>) => Layer<A, E, Exclude<R, Tracer.ParentSpan>>
1051
+ <A, E, R>(self: Layer<A, E, R>, span: Tracer.AnySpan): Layer<A, E, Exclude<R, Tracer.ParentSpan>>
1052
1052
  } = internal.withParentSpan
1053
1053
 
1054
1054
  // -----------------------------------------------------------------------------
package/src/List.ts CHANGED
@@ -21,6 +21,7 @@
21
21
  * Licensed under Apache License 2.0
22
22
  * (http://www.apache.org/licenses/LICENSE-2.0).
23
23
  */
24
+ import * as Array from "./Array.js"
24
25
  import * as Chunk from "./Chunk.js"
25
26
  import * as Either from "./Either.js"
26
27
  import * as Equal from "./Equal.js"
@@ -32,8 +33,6 @@ import * as Option from "./Option.js"
32
33
  import type { Pipeable } from "./Pipeable.js"
33
34
  import { pipeArguments } from "./Pipeable.js"
34
35
  import { hasProperty, type Predicate, type Refinement } from "./Predicate.js"
35
- import * as ReadonlyArray from "./ReadonlyArray.js"
36
- import type { NoInfer } from "./Types.js"
37
36
 
38
37
  /**
39
38
  * Represents an immutable linked list of elements of type `A`.
@@ -85,14 +84,14 @@ export interface Cons<out A> extends Iterable<A>, Equal.Equal, Pipeable, Inspect
85
84
  * @category conversions
86
85
  * @since 2.0.0
87
86
  */
88
- export const toArray = <A>(self: List<A>): Array<A> => Array.from(self)
87
+ export const toArray = <A>(self: List<A>): Array<A> => Array.fromIterable(self)
89
88
 
90
89
  /**
91
90
  * @category equivalence
92
91
  * @since 2.0.0
93
92
  */
94
93
  export const getEquivalence = <A>(isEquivalent: Equivalence.Equivalence<A>): Equivalence.Equivalence<List<A>> =>
95
- Equivalence.mapInput(ReadonlyArray.getEquivalence(isEquivalent), toArray<A>)
94
+ Equivalence.mapInput(Array.getEquivalence(isEquivalent), toArray<A>)
96
95
 
97
96
  const _equivalence = getEquivalence(Equal.equals)
98
97
 
@@ -924,6 +923,8 @@ export const take: {
924
923
  */
925
924
  export const toChunk = <A>(self: List<A>): Chunk.Chunk<A> => Chunk.fromIterable(self)
926
925
 
926
+ const getExpectedListToBeNonEmptyErrorMessage = "Expected List to be non-empty"
927
+
927
928
  /**
928
929
  * Unsafely returns the first element of the specified `List`.
929
930
  *
@@ -932,7 +933,7 @@ export const toChunk = <A>(self: List<A>): Chunk.Chunk<A> => Chunk.fromIterable(
932
933
  */
933
934
  export const unsafeHead = <A>(self: List<A>): A => {
934
935
  if (isNil(self)) {
935
- throw new Error("Expected List to be non-empty")
936
+ throw new Error(getExpectedListToBeNonEmptyErrorMessage)
936
937
  }
937
938
  return self.head
938
939
  }
@@ -945,7 +946,7 @@ export const unsafeHead = <A>(self: List<A>): A => {
945
946
  */
946
947
  export const unsafeLast = <A>(self: List<A>): A => {
947
948
  if (isNil(self)) {
948
- throw new Error("Expected List to be non-empty")
949
+ throw new Error(getExpectedListToBeNonEmptyErrorMessage)
949
950
  }
950
951
  let these = self
951
952
  let scout = self.tail
@@ -964,7 +965,7 @@ export const unsafeLast = <A>(self: List<A>): A => {
964
965
  */
965
966
  export const unsafeTail = <A>(self: List<A>): List<A> => {
966
967
  if (isNil(self)) {
967
- throw new Error("Expected List to be non-empty")
968
+ throw new Error(getExpectedListToBeNonEmptyErrorMessage)
968
969
  }
969
970
  return self.tail
970
971
  }
package/src/Logger.ts CHANGED
@@ -183,12 +183,12 @@ export const map: {
183
183
  export const batched: {
184
184
  <Output, R>(
185
185
  window: DurationInput,
186
- f: (messages: Array<Types.NoInfer<Output>>) => Effect<void, never, R>
186
+ f: (messages: Array<NoInfer<Output>>) => Effect<void, never, R>
187
187
  ): <Message>(self: Logger<Message, Output>) => Effect<Logger<Message, void>, never, R | Scope>
188
188
  <Message, Output, R>(
189
189
  self: Logger<Message, Output>,
190
190
  window: DurationInput,
191
- f: (messages: Array<Types.NoInfer<Output>>) => Effect<void, never, R>
191
+ f: (messages: Array<NoInfer<Output>>) => Effect<void, never, R>
192
192
  ): Effect<Logger<Message, void>, never, Scope | R>
193
193
  } = fiberRuntime.batchedLogger
194
194
 
package/src/Metric.ts CHANGED
@@ -208,12 +208,19 @@ export const counter: {
208
208
  * @example
209
209
  * import * as Metric from "effect/Metric"
210
210
  *
211
- * const errorFrequency = Metric.frequency("error_frequency", "Counts the occurrences of errors.");
211
+ * const errorFrequency = Metric.frequency("error_frequency", {
212
+ * description: "Counts the occurrences of errors."
213
+ * });
212
214
  *
213
215
  * @since 2.0.0
214
216
  * @category constructors
215
217
  */
216
- export const frequency: (name: string, description?: string) => Metric.Frequency<string> = internal.frequency
218
+ export const frequency: (
219
+ name: string,
220
+ options?:
221
+ | { readonly description?: string | undefined; readonly preregisteredWords?: ReadonlyArray<string> | undefined }
222
+ | undefined
223
+ ) => Metric.Frequency<string> = internal.frequency
217
224
 
218
225
  /**
219
226
  * Returns a new metric that is powered by this one, but which accepts updates
package/src/MetricKey.ts CHANGED
@@ -132,7 +132,15 @@ export const counter: {
132
132
  * @since 2.0.0
133
133
  * @category constructors
134
134
  */
135
- export const frequency: (name: string, description?: string) => MetricKey.Frequency = internal.frequency
135
+ export const frequency: (
136
+ name: string,
137
+ options?:
138
+ | {
139
+ readonly description?: string | undefined
140
+ readonly preregisteredWords?: ReadonlyArray<string> | undefined
141
+ }
142
+ | undefined
143
+ ) => MetricKey.Frequency = internal.frequency
136
144
 
137
145
  /**
138
146
  * Creates a metric key for a gauge, with the specified name.
@@ -113,6 +113,7 @@ export declare namespace MetricKeyType {
113
113
  */
114
114
  export type Frequency = MetricKeyType<string, MetricState.MetricState.Frequency> & {
115
115
  readonly [FrequencyKeyTypeTypeId]: FrequencyKeyTypeTypeId
116
+ readonly preregisteredWords: ReadonlyArray<string>
116
117
  }
117
118
 
118
119
  /**
@@ -193,7 +194,11 @@ export const counter: <A extends number | bigint>() => MetricKeyType.Counter<A>
193
194
  * @since 2.0.0
194
195
  * @category constructors
195
196
  */
196
- export const frequency: MetricKeyType.Frequency = internal.frequency
197
+ export const frequency: (
198
+ options?: {
199
+ readonly preregisteredWords?: ReadonlyArray<string> | undefined
200
+ } | undefined
201
+ ) => MetricKeyType.Frequency = internal.frequency
197
202
 
198
203
  /**
199
204
  * @since 2.0.0
@@ -1,6 +1,7 @@
1
1
  /**
2
2
  * @since 2.0.0
3
3
  */
4
+ import type { NonEmptyArray } from "./Array.js"
4
5
  import * as Equal from "./Equal.js"
5
6
  import { dual } from "./Function.js"
6
7
  import * as Hash from "./Hash.js"
@@ -8,7 +9,6 @@ import { format, type Inspectable, NodeInspectSymbol, toJSON } from "./Inspectab
8
9
  import * as Option from "./Option.js"
9
10
  import type { Pipeable } from "./Pipeable.js"
10
11
  import { pipeArguments } from "./Pipeable.js"
11
- import type { NonEmptyArray } from "./ReadonlyArray.js"
12
12
 
13
13
  const TypeId: unique symbol = Symbol.for("effect/MutableHashMap") as TypeId
14
14
 
package/src/Option.ts CHANGED
@@ -14,7 +14,7 @@ import type { Order } from "./Order.js"
14
14
  import * as order from "./Order.js"
15
15
  import type { Pipeable } from "./Pipeable.js"
16
16
  import type { Predicate, Refinement } from "./Predicate.js"
17
- import type { Covariant, NoInfer, NotFunction } from "./Types.js"
17
+ import type { Covariant, NotFunction } from "./Types.js"
18
18
  import type * as Unify from "./Unify.js"
19
19
  import * as Gen from "./Utils.js"
20
20
 
@@ -629,12 +629,15 @@ export const as: {
629
629
  * @category mapping
630
630
  * @since 2.0.0
631
631
  */
632
- export const asUnit: <_>(self: Option<_>) => Option<void> = as(undefined)
632
+ export const asVoid: <_>(self: Option<_>) => Option<void> = as(undefined)
633
633
 
634
- /**
635
- * @since 2.0.0
636
- */
637
- export const unit: Option<void> = some(undefined)
634
+ const void_: Option<void> = some(undefined)
635
+ export {
636
+ /**
637
+ * @since 2.0.0
638
+ */
639
+ void_ as void
640
+ }
638
641
 
639
642
  /**
640
643
  * Applies a function to the value of an `Option` and flattens the result, if the input is `Some`.
@@ -0,0 +1,92 @@
1
+ /**
2
+ * @since 2.0.0
3
+ */
4
+ import type { Effect } from "./Effect.js"
5
+ import { dual } from "./Function.js"
6
+ import * as core from "./internal/core.js"
7
+ import { type Pipeable, pipeArguments } from "./Pipeable.js"
8
+ import { hasProperty } from "./Predicate.js"
9
+
10
+ /**
11
+ * @since 2.0.0
12
+ * @category type ids
13
+ */
14
+ export const TypeId = Symbol.for("effect/Readable")
15
+
16
+ /**
17
+ * @since 2.0.0
18
+ * @category type ids
19
+ */
20
+ export type TypeId = typeof TypeId
21
+
22
+ /**
23
+ * @since 2.0.0
24
+ * @category models
25
+ */
26
+ export interface Readable<A, E = never, R = never> extends Pipeable {
27
+ readonly [TypeId]: TypeId
28
+ readonly get: Effect<A, E, R>
29
+ }
30
+
31
+ /**
32
+ * @since 2.0.0
33
+ * @category refinements
34
+ */
35
+ export const isReadable = (u: unknown): u is Readable<unknown, unknown, unknown> => hasProperty(u, TypeId)
36
+
37
+ const Proto: Omit<Readable<any>, "get"> = {
38
+ [TypeId]: TypeId,
39
+ pipe() {
40
+ return pipeArguments(this, arguments)
41
+ }
42
+ }
43
+
44
+ /**
45
+ * @since 2.0.0
46
+ * @category constructors
47
+ */
48
+ export const make = <A, E, R>(get: Effect<A, E, R>): Readable<A, E, R> => {
49
+ const self = Object.create(Proto)
50
+ self.get = get
51
+ return self
52
+ }
53
+
54
+ /**
55
+ * @since 2.0.0
56
+ * @category combinators
57
+ */
58
+ export const map: {
59
+ <A, B>(f: (a: NoInfer<A>) => B): <E, R>(fa: Readable<A, E, R>) => Readable<B, E, R>
60
+ <A, E, R, B>(self: Readable<A, E, R>, f: (a: NoInfer<A>) => B): Readable<B, E, R>
61
+ } = dual(
62
+ 2,
63
+ <A, E, R, B>(self: Readable<A, E, R>, f: (a: NoInfer<A>) => B): Readable<B, E, R> => make(core.map(self.get, f))
64
+ )
65
+
66
+ /**
67
+ * @since 2.0.0
68
+ * @category combinators
69
+ */
70
+ export const mapEffect: {
71
+ <A, B, E2, R2>(
72
+ f: (a: NoInfer<A>) => Effect<B, E2, R2>
73
+ ): <E, R>(fa: Readable<A, E, R>) => Readable<B, E | E2, R | R2>
74
+ <A, E, R, B, E2, R2>(
75
+ self: Readable<A, E, R>,
76
+ f: (a: NoInfer<A>) => Effect<B, E2, R2>
77
+ ): Readable<B, E | E2, R | R2>
78
+ } = dual(2, <A, E, R, B, E2, R2>(
79
+ self: Readable<A, E, R>,
80
+ f: (a: NoInfer<A>) => Effect<B, E2, R2>
81
+ ): Readable<B, E | E2, R | R2> => make(core.flatMap(self.get, f)))
82
+
83
+ /**
84
+ * @since 2.0.0
85
+ * @category constructors
86
+ */
87
+ export const unwrap = <A, E, R, E1, R1>(
88
+ effect: Effect<Readable<A, E, R>, E1, R1>
89
+ ): Readable<A, E | E1, R | R1> =>
90
+ make(
91
+ core.flatMap(effect, (s) => s.get)
92
+ )