effect 2.4.19 → 3.0.1

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 (615) hide show
  1. package/Array/package.json +6 -0
  2. package/FiberHandle/package.json +6 -0
  3. package/Record/package.json +6 -0
  4. package/dist/cjs/{ReadonlyArray.js → Array.js} +46 -23
  5. package/dist/cjs/Array.js.map +1 -0
  6. package/dist/cjs/Brand.js +2 -2
  7. package/dist/cjs/Brand.js.map +1 -1
  8. package/dist/cjs/Channel.js +4 -8
  9. package/dist/cjs/Channel.js.map +1 -1
  10. package/dist/cjs/Chunk.js +5 -1
  11. package/dist/cjs/Chunk.js.map +1 -1
  12. package/dist/cjs/ConfigError.js.map +1 -1
  13. package/dist/cjs/Cron.js +13 -13
  14. package/dist/cjs/Cron.js.map +1 -1
  15. package/dist/cjs/Effect.js +14 -10
  16. package/dist/cjs/Effect.js.map +1 -1
  17. package/dist/cjs/Either.js +4 -1
  18. package/dist/cjs/Either.js.map +1 -1
  19. package/dist/cjs/ExecutionStrategy.js.map +1 -1
  20. package/dist/cjs/Exit.js +3 -9
  21. package/dist/cjs/Exit.js.map +1 -1
  22. package/dist/cjs/Fiber.js +2 -8
  23. package/dist/cjs/Fiber.js.map +1 -1
  24. package/dist/cjs/FiberHandle.js +306 -0
  25. package/dist/cjs/FiberHandle.js.map +1 -0
  26. package/dist/cjs/FiberMap.js +105 -28
  27. package/dist/cjs/FiberMap.js.map +1 -1
  28. package/dist/cjs/FiberRefs.js.map +1 -1
  29. package/dist/cjs/FiberSet.js +51 -15
  30. package/dist/cjs/FiberSet.js.map +1 -1
  31. package/dist/cjs/HashMap.js.map +1 -1
  32. package/dist/cjs/HashSet.js.map +1 -1
  33. package/dist/cjs/Iterable.js +40 -5
  34. package/dist/cjs/Iterable.js.map +1 -1
  35. package/dist/cjs/Layer.js.map +1 -1
  36. package/dist/cjs/List.js +3 -3
  37. package/dist/cjs/List.js.map +1 -1
  38. package/dist/cjs/Metric.js +3 -1
  39. package/dist/cjs/Metric.js.map +1 -1
  40. package/dist/cjs/MetricKey.js.map +1 -1
  41. package/dist/cjs/MetricKeyType.js.map +1 -1
  42. package/dist/cjs/MutableHashMap.js +0 -4
  43. package/dist/cjs/MutableHashMap.js.map +1 -1
  44. package/dist/cjs/Option.js +3 -6
  45. package/dist/cjs/Option.js.map +1 -1
  46. package/dist/cjs/{ReadonlyRecord.js → Record.js} +29 -29
  47. package/dist/cjs/Record.js.map +1 -0
  48. package/dist/cjs/STM.js +4 -10
  49. package/dist/cjs/STM.js.map +1 -1
  50. package/dist/cjs/Schedule.js +2 -2
  51. package/dist/cjs/Schedule.js.map +1 -1
  52. package/dist/cjs/ScopedCache.js.map +1 -1
  53. package/dist/cjs/Stream.js +3 -9
  54. package/dist/cjs/Stream.js.map +1 -1
  55. package/dist/cjs/StreamHaltStrategy.js +2 -0
  56. package/dist/cjs/StreamHaltStrategy.js.map +1 -1
  57. package/dist/cjs/String.js +44 -2
  58. package/dist/cjs/String.js.map +1 -1
  59. package/dist/cjs/TestAnnotations.js +1 -1
  60. package/dist/cjs/TestAnnotations.js.map +1 -1
  61. package/dist/cjs/TestClock.js +3 -3
  62. package/dist/cjs/TestClock.js.map +1 -1
  63. package/dist/cjs/Tracer.js.map +1 -1
  64. package/dist/cjs/index.js +8 -6
  65. package/dist/cjs/index.js.map +1 -1
  66. package/dist/cjs/internal/{readonlyArray.js → array.js} +1 -1
  67. package/dist/cjs/internal/array.js.map +1 -0
  68. package/dist/cjs/internal/cache.js +3 -3
  69. package/dist/cjs/internal/cache.js.map +1 -1
  70. package/dist/cjs/internal/cause.js +3 -3
  71. package/dist/cjs/internal/cause.js.map +1 -1
  72. package/dist/cjs/internal/channel/channelExecutor.js +15 -15
  73. package/dist/cjs/internal/channel/channelExecutor.js.map +1 -1
  74. package/dist/cjs/internal/channel/channelState.js +1 -1
  75. package/dist/cjs/internal/channel/channelState.js.map +1 -1
  76. package/dist/cjs/internal/channel/singleProducerAsyncInput.js +1 -1
  77. package/dist/cjs/internal/channel/singleProducerAsyncInput.js.map +1 -1
  78. package/dist/cjs/internal/channel.js +10 -10
  79. package/dist/cjs/internal/channel.js.map +1 -1
  80. package/dist/cjs/internal/clock.js +2 -2
  81. package/dist/cjs/internal/clock.js.map +1 -1
  82. package/dist/cjs/internal/configError.js +20 -19
  83. package/dist/cjs/internal/configError.js.map +1 -1
  84. package/dist/cjs/internal/configProvider/pathPatch.js +1 -1
  85. package/dist/cjs/internal/configProvider/pathPatch.js.map +1 -1
  86. package/dist/cjs/internal/configProvider.js +47 -48
  87. package/dist/cjs/internal/configProvider.js.map +1 -1
  88. package/dist/cjs/internal/core-effect.js +42 -28
  89. package/dist/cjs/internal/core-effect.js.map +1 -1
  90. package/dist/cjs/internal/core-stream.js +2 -3
  91. package/dist/cjs/internal/core-stream.js.map +1 -1
  92. package/dist/cjs/internal/core.js +27 -31
  93. package/dist/cjs/internal/core.js.map +1 -1
  94. package/dist/cjs/internal/dataSource.js +19 -2
  95. package/dist/cjs/internal/dataSource.js.map +1 -1
  96. package/dist/cjs/internal/differ/readonlyArrayPatch.js +6 -6
  97. package/dist/cjs/internal/differ/readonlyArrayPatch.js.map +1 -1
  98. package/dist/cjs/internal/effect/circular.js +1 -1
  99. package/dist/cjs/internal/effect/circular.js.map +1 -1
  100. package/dist/cjs/internal/executionStrategy.js +4 -4
  101. package/dist/cjs/internal/executionStrategy.js.map +1 -1
  102. package/dist/cjs/internal/fiber.js +5 -6
  103. package/dist/cjs/internal/fiber.js.map +1 -1
  104. package/dist/cjs/internal/fiberRefs/patch.js +1 -1
  105. package/dist/cjs/internal/fiberRefs/patch.js.map +1 -1
  106. package/dist/cjs/internal/fiberRefs.js +1 -1
  107. package/dist/cjs/internal/fiberRefs.js.map +1 -1
  108. package/dist/cjs/internal/fiberRuntime.js +33 -33
  109. package/dist/cjs/internal/fiberRuntime.js.map +1 -1
  110. package/dist/cjs/internal/groupBy.js +3 -3
  111. package/dist/cjs/internal/groupBy.js.map +1 -1
  112. package/dist/cjs/internal/hashMap.js.map +1 -1
  113. package/dist/cjs/internal/hashSet.js.map +1 -1
  114. package/dist/cjs/internal/layer/circular.js.map +1 -1
  115. package/dist/cjs/internal/layer.js +5 -5
  116. package/dist/cjs/internal/layer.js.map +1 -1
  117. package/dist/cjs/internal/logger.js +28 -8
  118. package/dist/cjs/internal/logger.js.map +1 -1
  119. package/dist/cjs/internal/managedRuntime.js +1 -1
  120. package/dist/cjs/internal/managedRuntime.js.map +1 -1
  121. package/dist/cjs/internal/metric/boundaries.js +4 -4
  122. package/dist/cjs/internal/metric/boundaries.js.map +1 -1
  123. package/dist/cjs/internal/metric/hook.js +20 -17
  124. package/dist/cjs/internal/metric/hook.js.map +1 -1
  125. package/dist/cjs/internal/metric/key.js +4 -4
  126. package/dist/cjs/internal/metric/key.js.map +1 -1
  127. package/dist/cjs/internal/metric/keyType.js +6 -1
  128. package/dist/cjs/internal/metric/keyType.js.map +1 -1
  129. package/dist/cjs/internal/metric/state.js +4 -4
  130. package/dist/cjs/internal/metric/state.js.map +1 -1
  131. package/dist/cjs/internal/metric.js +4 -4
  132. package/dist/cjs/internal/metric.js.map +1 -1
  133. package/dist/cjs/internal/pool.js +11 -11
  134. package/dist/cjs/internal/pool.js.map +1 -1
  135. package/dist/cjs/internal/pubsub.js +5 -5
  136. package/dist/cjs/internal/pubsub.js.map +1 -1
  137. package/dist/cjs/internal/query.js +2 -2
  138. package/dist/cjs/internal/query.js.map +1 -1
  139. package/dist/cjs/internal/queue.js +9 -9
  140. package/dist/cjs/internal/queue.js.map +1 -1
  141. package/dist/cjs/internal/rateLimiter.js +1 -1
  142. package/dist/cjs/internal/rateLimiter.js.map +1 -1
  143. package/dist/cjs/internal/redBlackTree/iterator.js +2 -2
  144. package/dist/cjs/internal/redBlackTree/iterator.js.map +1 -1
  145. package/dist/cjs/internal/reloadable.js +1 -1
  146. package/dist/cjs/internal/reloadable.js.map +1 -1
  147. package/dist/cjs/internal/runtime.js +4 -4
  148. package/dist/cjs/internal/runtime.js.map +1 -1
  149. package/dist/cjs/internal/schedule.js +5 -5
  150. package/dist/cjs/internal/schedule.js.map +1 -1
  151. package/dist/cjs/internal/scopedCache.js +7 -7
  152. package/dist/cjs/internal/scopedCache.js.map +1 -1
  153. package/dist/cjs/internal/scopedRef.js +4 -4
  154. package/dist/cjs/internal/scopedRef.js.map +1 -1
  155. package/dist/cjs/internal/secret.js +2 -2
  156. package/dist/cjs/internal/secret.js.map +1 -1
  157. package/dist/cjs/internal/sink.js +10 -10
  158. package/dist/cjs/internal/sink.js.map +1 -1
  159. package/dist/cjs/internal/stm/stm/tExit.js +2 -4
  160. package/dist/cjs/internal/stm/stm/tExit.js.map +1 -1
  161. package/dist/cjs/internal/stm/stm.js +11 -11
  162. package/dist/cjs/internal/stm/stm.js.map +1 -1
  163. package/dist/cjs/internal/stm/tMap.js +3 -3
  164. package/dist/cjs/internal/stm/tMap.js.map +1 -1
  165. package/dist/cjs/internal/stm/tPriorityQueue.js +11 -11
  166. package/dist/cjs/internal/stm/tPriorityQueue.js.map +1 -1
  167. package/dist/cjs/internal/stm/tPubSub.js +3 -3
  168. package/dist/cjs/internal/stm/tPubSub.js.map +1 -1
  169. package/dist/cjs/internal/stm/tQueue.js +3 -3
  170. package/dist/cjs/internal/stm/tQueue.js.map +1 -1
  171. package/dist/cjs/internal/stm/tSet.js +1 -1
  172. package/dist/cjs/internal/stm/tSet.js.map +1 -1
  173. package/dist/cjs/internal/stream/haltStrategy.js +5 -5
  174. package/dist/cjs/internal/stream/haltStrategy.js.map +1 -1
  175. package/dist/cjs/internal/stream.js +84 -85
  176. package/dist/cjs/internal/stream.js.map +1 -1
  177. package/dist/cjs/internal/supervisor.js +1 -1
  178. package/dist/cjs/internal/supervisor.js.map +1 -1
  179. package/dist/cjs/internal/take.js +1 -1
  180. package/dist/cjs/internal/take.js.map +1 -1
  181. package/dist/cjs/internal/tracer.js.map +1 -1
  182. package/dist/cjs/internal/trie.js.map +1 -1
  183. package/dist/cjs/internal/version.js +1 -1
  184. package/dist/cjs/internal/version.js.map +1 -1
  185. package/dist/dts/{ReadonlyArray.d.ts → Array.d.ts} +42 -18
  186. package/dist/dts/Array.d.ts.map +1 -0
  187. package/dist/dts/BigDecimal.d.ts.map +1 -1
  188. package/dist/dts/BigInt.d.ts.map +1 -1
  189. package/dist/dts/Brand.d.ts +1 -19
  190. package/dist/dts/Brand.d.ts.map +1 -1
  191. package/dist/dts/Cache.d.ts +10 -10
  192. package/dist/dts/Cache.d.ts.map +1 -1
  193. package/dist/dts/Cause.d.ts +1 -1
  194. package/dist/dts/Cause.d.ts.map +1 -1
  195. package/dist/dts/Channel.d.ts +6 -4
  196. package/dist/dts/Channel.d.ts.map +1 -1
  197. package/dist/dts/Chunk.d.ts +1 -4
  198. package/dist/dts/Chunk.d.ts.map +1 -1
  199. package/dist/dts/ConfigError.d.ts +7 -6
  200. package/dist/dts/ConfigError.d.ts.map +1 -1
  201. package/dist/dts/Cron.d.ts +0 -5
  202. package/dist/dts/Cron.d.ts.map +1 -1
  203. package/dist/dts/Duration.d.ts.map +1 -1
  204. package/dist/dts/Effect.d.ts +38 -33
  205. package/dist/dts/Effect.d.ts.map +1 -1
  206. package/dist/dts/Either.d.ts +5 -2
  207. package/dist/dts/Either.d.ts.map +1 -1
  208. package/dist/dts/Encoding.d.ts.map +1 -1
  209. package/dist/dts/Equivalence.d.ts.map +1 -1
  210. package/dist/dts/ExecutionStrategy.d.ts +10 -2
  211. package/dist/dts/ExecutionStrategy.d.ts.map +1 -1
  212. package/dist/dts/Exit.d.ts +4 -3
  213. package/dist/dts/Exit.d.ts.map +1 -1
  214. package/dist/dts/Fiber.d.ts +4 -2
  215. package/dist/dts/Fiber.d.ts.map +1 -1
  216. package/dist/dts/FiberHandle.d.ts +189 -0
  217. package/dist/dts/FiberHandle.d.ts.map +1 -0
  218. package/dist/dts/FiberMap.d.ts +48 -12
  219. package/dist/dts/FiberMap.d.ts.map +1 -1
  220. package/dist/dts/FiberRefs.d.ts +1 -1
  221. package/dist/dts/FiberRefs.d.ts.map +1 -1
  222. package/dist/dts/FiberSet.d.ts +9 -5
  223. package/dist/dts/FiberSet.d.ts.map +1 -1
  224. package/dist/dts/Function.d.ts.map +1 -1
  225. package/dist/dts/GroupBy.d.ts +1 -1
  226. package/dist/dts/GroupBy.d.ts.map +1 -1
  227. package/dist/dts/HashMap.d.ts +0 -1
  228. package/dist/dts/HashMap.d.ts.map +1 -1
  229. package/dist/dts/HashSet.d.ts +0 -1
  230. package/dist/dts/HashSet.d.ts.map +1 -1
  231. package/dist/dts/Iterable.d.ts +12 -5
  232. package/dist/dts/Iterable.d.ts.map +1 -1
  233. package/dist/dts/Layer.d.ts +6 -6
  234. package/dist/dts/Layer.d.ts.map +1 -1
  235. package/dist/dts/List.d.ts +0 -11
  236. package/dist/dts/List.d.ts.map +1 -1
  237. package/dist/dts/Logger.d.ts +2 -2
  238. package/dist/dts/Logger.d.ts.map +1 -1
  239. package/dist/dts/Metric.d.ts +7 -2
  240. package/dist/dts/Metric.d.ts.map +1 -1
  241. package/dist/dts/MetricKey.d.ts +4 -1
  242. package/dist/dts/MetricKey.d.ts.map +1 -1
  243. package/dist/dts/MetricKeyType.d.ts +4 -1
  244. package/dist/dts/MetricKeyType.d.ts.map +1 -1
  245. package/dist/dts/MutableHashMap.d.ts.map +1 -1
  246. package/dist/dts/Option.d.ts +5 -3
  247. package/dist/dts/Option.d.ts.map +1 -1
  248. package/dist/dts/Order.d.ts.map +1 -1
  249. package/dist/dts/{ReadonlyRecord.d.ts → Record.d.ts} +29 -30
  250. package/dist/dts/Record.d.ts.map +1 -0
  251. package/dist/dts/Request.d.ts +1 -1
  252. package/dist/dts/Request.d.ts.map +1 -1
  253. package/dist/dts/RequestResolver.d.ts +2 -2
  254. package/dist/dts/RequestResolver.d.ts.map +1 -1
  255. package/dist/dts/STM.d.ts +6 -4
  256. package/dist/dts/STM.d.ts.map +1 -1
  257. package/dist/dts/Schedule.d.ts +1 -1
  258. package/dist/dts/Scheduler.d.ts.map +1 -1
  259. package/dist/dts/ScopedCache.d.ts +9 -9
  260. package/dist/dts/ScopedCache.d.ts.map +1 -1
  261. package/dist/dts/SortedMap.d.ts.map +1 -1
  262. package/dist/dts/SortedSet.d.ts +1 -1
  263. package/dist/dts/SortedSet.d.ts.map +1 -1
  264. package/dist/dts/Stream.d.ts +8 -6
  265. package/dist/dts/Stream.d.ts.map +1 -1
  266. package/dist/dts/StreamHaltStrategy.d.ts +14 -2
  267. package/dist/dts/StreamHaltStrategy.d.ts.map +1 -1
  268. package/dist/dts/String.d.ts +25 -1
  269. package/dist/dts/String.d.ts.map +1 -1
  270. package/dist/dts/Subscribable.d.ts.map +1 -1
  271. package/dist/dts/TestAnnotation.d.ts.map +1 -1
  272. package/dist/dts/TestAnnotationMap.d.ts.map +1 -1
  273. package/dist/dts/TestAnnotations.d.ts +0 -3
  274. package/dist/dts/TestAnnotations.d.ts.map +1 -1
  275. package/dist/dts/TestClock.d.ts.map +1 -1
  276. package/dist/dts/TestLive.d.ts.map +1 -1
  277. package/dist/dts/TestServices.d.ts.map +1 -1
  278. package/dist/dts/TestSized.d.ts.map +1 -1
  279. package/dist/dts/Tracer.d.ts +12 -5
  280. package/dist/dts/Tracer.d.ts.map +1 -1
  281. package/dist/dts/Trie.d.ts +1 -1
  282. package/dist/dts/Trie.d.ts.map +1 -1
  283. package/dist/dts/Types.d.ts +0 -7
  284. package/dist/dts/Types.d.ts.map +1 -1
  285. package/dist/dts/index.d.ts +11 -7
  286. package/dist/dts/index.d.ts.map +1 -1
  287. package/dist/dts/internal/array.d.ts +5 -0
  288. package/dist/dts/internal/array.d.ts.map +1 -0
  289. package/dist/dts/internal/core-stream.d.ts +4 -0
  290. package/dist/dts/internal/core-stream.d.ts.map +1 -1
  291. package/dist/dts/internal/core.d.ts +3 -1
  292. package/dist/dts/internal/core.d.ts.map +1 -1
  293. package/dist/dts/internal/fiber.d.ts +5 -1
  294. package/dist/dts/internal/fiber.d.ts.map +1 -1
  295. package/dist/dts/internal/hashMap.d.ts.map +1 -1
  296. package/dist/dts/internal/logger.d.ts.map +1 -1
  297. package/dist/dts/internal/metric/keyType.d.ts +3 -1
  298. package/dist/dts/internal/metric/keyType.d.ts.map +1 -1
  299. package/dist/dts/internal/metric/state.d.ts.map +1 -1
  300. package/dist/dts/internal/random.d.ts.map +1 -1
  301. package/dist/dts/internal/runtimeFlags.d.ts.map +1 -1
  302. package/dist/dts/internal/stm/stm/tExit.d.ts +4 -1
  303. package/dist/dts/internal/stm/stm/tExit.d.ts.map +1 -1
  304. package/dist/dts/internal/stm/stm.d.ts +3 -0
  305. package/dist/dts/internal/stm/stm.d.ts.map +1 -1
  306. package/dist/dts/internal/stream.d.ts +5 -1
  307. package/dist/dts/internal/stream.d.ts.map +1 -1
  308. package/dist/esm/{ReadonlyArray.js → Array.js} +42 -20
  309. package/dist/esm/Array.js.map +1 -0
  310. package/dist/esm/Brand.js +2 -2
  311. package/dist/esm/Brand.js.map +1 -1
  312. package/dist/esm/Channel.js +4 -2
  313. package/dist/esm/Channel.js.map +1 -1
  314. package/dist/esm/Chunk.js +4 -1
  315. package/dist/esm/Chunk.js.map +1 -1
  316. package/dist/esm/ConfigError.js.map +1 -1
  317. package/dist/esm/Cron.js +13 -13
  318. package/dist/esm/Cron.js.map +1 -1
  319. package/dist/esm/Effect.js +11 -2
  320. package/dist/esm/Effect.js.map +1 -1
  321. package/dist/esm/Either.js +4 -1
  322. package/dist/esm/Either.js.map +1 -1
  323. package/dist/esm/ExecutionStrategy.js.map +1 -1
  324. package/dist/esm/Exit.js +4 -2
  325. package/dist/esm/Exit.js.map +1 -1
  326. package/dist/esm/Fiber.js +3 -1
  327. package/dist/esm/Fiber.js.map +1 -1
  328. package/dist/esm/FiberHandle.js +265 -0
  329. package/dist/esm/FiberHandle.js.map +1 -0
  330. package/dist/esm/FiberMap.js +103 -26
  331. package/dist/esm/FiberMap.js.map +1 -1
  332. package/dist/esm/FiberRefs.js.map +1 -1
  333. package/dist/esm/FiberSet.js +51 -15
  334. package/dist/esm/FiberSet.js.map +1 -1
  335. package/dist/esm/HashMap.js.map +1 -1
  336. package/dist/esm/HashSet.js.map +1 -1
  337. package/dist/esm/Iterable.js +39 -4
  338. package/dist/esm/Iterable.js.map +1 -1
  339. package/dist/esm/Layer.js.map +1 -1
  340. package/dist/esm/List.js +3 -3
  341. package/dist/esm/List.js.map +1 -1
  342. package/dist/esm/Metric.js +3 -1
  343. package/dist/esm/Metric.js.map +1 -1
  344. package/dist/esm/MetricKey.js.map +1 -1
  345. package/dist/esm/MetricKeyType.js.map +1 -1
  346. package/dist/esm/MutableHashMap.js +0 -3
  347. package/dist/esm/MutableHashMap.js.map +1 -1
  348. package/dist/esm/Option.js +4 -2
  349. package/dist/esm/Option.js.map +1 -1
  350. package/dist/esm/{ReadonlyRecord.js → Record.js} +29 -29
  351. package/dist/esm/Record.js.map +1 -0
  352. package/dist/esm/STM.js +5 -3
  353. package/dist/esm/STM.js.map +1 -1
  354. package/dist/esm/Schedule.js +1 -1
  355. package/dist/esm/Schedule.js.map +1 -1
  356. package/dist/esm/ScopedCache.js.map +1 -1
  357. package/dist/esm/Stream.js +5 -3
  358. package/dist/esm/Stream.js.map +1 -1
  359. package/dist/esm/StreamHaltStrategy.js +2 -0
  360. package/dist/esm/StreamHaltStrategy.js.map +1 -1
  361. package/dist/esm/String.js +37 -1
  362. package/dist/esm/String.js.map +1 -1
  363. package/dist/esm/TestAnnotations.js +1 -1
  364. package/dist/esm/TestAnnotations.js.map +1 -1
  365. package/dist/esm/TestClock.js +3 -3
  366. package/dist/esm/TestClock.js.map +1 -1
  367. package/dist/esm/Tracer.js.map +1 -1
  368. package/dist/esm/index.js +11 -7
  369. package/dist/esm/index.js.map +1 -1
  370. package/dist/esm/internal/{readonlyArray.js → array.js} +1 -1
  371. package/dist/esm/internal/array.js.map +1 -0
  372. package/dist/esm/internal/cache.js +3 -3
  373. package/dist/esm/internal/cache.js.map +1 -1
  374. package/dist/esm/internal/cause.js +3 -3
  375. package/dist/esm/internal/cause.js.map +1 -1
  376. package/dist/esm/internal/channel/channelExecutor.js +15 -15
  377. package/dist/esm/internal/channel/channelExecutor.js.map +1 -1
  378. package/dist/esm/internal/channel/channelState.js +1 -1
  379. package/dist/esm/internal/channel/channelState.js.map +1 -1
  380. package/dist/esm/internal/channel/singleProducerAsyncInput.js +1 -1
  381. package/dist/esm/internal/channel/singleProducerAsyncInput.js.map +1 -1
  382. package/dist/esm/internal/channel.js +8 -8
  383. package/dist/esm/internal/channel.js.map +1 -1
  384. package/dist/esm/internal/clock.js +2 -2
  385. package/dist/esm/internal/clock.js.map +1 -1
  386. package/dist/esm/internal/configError.js +20 -19
  387. package/dist/esm/internal/configError.js.map +1 -1
  388. package/dist/esm/internal/configProvider/pathPatch.js +1 -1
  389. package/dist/esm/internal/configProvider/pathPatch.js.map +1 -1
  390. package/dist/esm/internal/configProvider.js +47 -48
  391. package/dist/esm/internal/configProvider.js.map +1 -1
  392. package/dist/esm/internal/core-effect.js +39 -26
  393. package/dist/esm/internal/core-effect.js.map +1 -1
  394. package/dist/esm/internal/core-stream.js +3 -2
  395. package/dist/esm/internal/core-stream.js.map +1 -1
  396. package/dist/esm/internal/core.js +24 -26
  397. package/dist/esm/internal/core.js.map +1 -1
  398. package/dist/esm/internal/dataSource.js +19 -2
  399. package/dist/esm/internal/dataSource.js.map +1 -1
  400. package/dist/esm/internal/differ/readonlyArrayPatch.js +6 -6
  401. package/dist/esm/internal/differ/readonlyArrayPatch.js.map +1 -1
  402. package/dist/esm/internal/effect/circular.js +1 -1
  403. package/dist/esm/internal/effect/circular.js.map +1 -1
  404. package/dist/esm/internal/executionStrategy.js +4 -4
  405. package/dist/esm/internal/executionStrategy.js.map +1 -1
  406. package/dist/esm/internal/fiber.js +6 -5
  407. package/dist/esm/internal/fiber.js.map +1 -1
  408. package/dist/esm/internal/fiberRefs/patch.js +1 -1
  409. package/dist/esm/internal/fiberRefs/patch.js.map +1 -1
  410. package/dist/esm/internal/fiberRefs.js +1 -1
  411. package/dist/esm/internal/fiberRefs.js.map +1 -1
  412. package/dist/esm/internal/fiberRuntime.js +33 -33
  413. package/dist/esm/internal/fiberRuntime.js.map +1 -1
  414. package/dist/esm/internal/groupBy.js +3 -3
  415. package/dist/esm/internal/groupBy.js.map +1 -1
  416. package/dist/esm/internal/hashMap.js.map +1 -1
  417. package/dist/esm/internal/hashSet.js.map +1 -1
  418. package/dist/esm/internal/layer/circular.js.map +1 -1
  419. package/dist/esm/internal/layer.js +5 -5
  420. package/dist/esm/internal/layer.js.map +1 -1
  421. package/dist/esm/internal/logger.js +28 -8
  422. package/dist/esm/internal/logger.js.map +1 -1
  423. package/dist/esm/internal/managedRuntime.js +1 -1
  424. package/dist/esm/internal/managedRuntime.js.map +1 -1
  425. package/dist/esm/internal/metric/boundaries.js +4 -4
  426. package/dist/esm/internal/metric/boundaries.js.map +1 -1
  427. package/dist/esm/internal/metric/hook.js +20 -17
  428. package/dist/esm/internal/metric/hook.js.map +1 -1
  429. package/dist/esm/internal/metric/key.js +4 -4
  430. package/dist/esm/internal/metric/key.js.map +1 -1
  431. package/dist/esm/internal/metric/keyType.js +5 -1
  432. package/dist/esm/internal/metric/keyType.js.map +1 -1
  433. package/dist/esm/internal/metric/state.js +4 -4
  434. package/dist/esm/internal/metric/state.js.map +1 -1
  435. package/dist/esm/internal/metric.js +4 -4
  436. package/dist/esm/internal/metric.js.map +1 -1
  437. package/dist/esm/internal/pool.js +11 -11
  438. package/dist/esm/internal/pool.js.map +1 -1
  439. package/dist/esm/internal/pubsub.js +5 -5
  440. package/dist/esm/internal/pubsub.js.map +1 -1
  441. package/dist/esm/internal/query.js +2 -2
  442. package/dist/esm/internal/query.js.map +1 -1
  443. package/dist/esm/internal/queue.js +9 -9
  444. package/dist/esm/internal/queue.js.map +1 -1
  445. package/dist/esm/internal/rateLimiter.js +1 -1
  446. package/dist/esm/internal/rateLimiter.js.map +1 -1
  447. package/dist/esm/internal/redBlackTree/iterator.js +2 -2
  448. package/dist/esm/internal/redBlackTree/iterator.js.map +1 -1
  449. package/dist/esm/internal/reloadable.js +1 -1
  450. package/dist/esm/internal/reloadable.js.map +1 -1
  451. package/dist/esm/internal/runtime.js +4 -4
  452. package/dist/esm/internal/runtime.js.map +1 -1
  453. package/dist/esm/internal/schedule.js +3 -3
  454. package/dist/esm/internal/schedule.js.map +1 -1
  455. package/dist/esm/internal/scopedCache.js +7 -7
  456. package/dist/esm/internal/scopedCache.js.map +1 -1
  457. package/dist/esm/internal/scopedRef.js +4 -4
  458. package/dist/esm/internal/scopedRef.js.map +1 -1
  459. package/dist/esm/internal/secret.js +2 -2
  460. package/dist/esm/internal/secret.js.map +1 -1
  461. package/dist/esm/internal/sink.js +10 -10
  462. package/dist/esm/internal/sink.js.map +1 -1
  463. package/dist/esm/internal/stm/stm/tExit.js +3 -2
  464. package/dist/esm/internal/stm/stm/tExit.js.map +1 -1
  465. package/dist/esm/internal/stm/stm.js +11 -9
  466. package/dist/esm/internal/stm/stm.js.map +1 -1
  467. package/dist/esm/internal/stm/tMap.js +3 -3
  468. package/dist/esm/internal/stm/tMap.js.map +1 -1
  469. package/dist/esm/internal/stm/tPriorityQueue.js +11 -11
  470. package/dist/esm/internal/stm/tPriorityQueue.js.map +1 -1
  471. package/dist/esm/internal/stm/tPubSub.js +3 -3
  472. package/dist/esm/internal/stm/tPubSub.js.map +1 -1
  473. package/dist/esm/internal/stm/tQueue.js +3 -3
  474. package/dist/esm/internal/stm/tQueue.js.map +1 -1
  475. package/dist/esm/internal/stm/tSet.js +1 -1
  476. package/dist/esm/internal/stm/tSet.js.map +1 -1
  477. package/dist/esm/internal/stream/haltStrategy.js +5 -5
  478. package/dist/esm/internal/stream/haltStrategy.js.map +1 -1
  479. package/dist/esm/internal/stream.js +85 -84
  480. package/dist/esm/internal/stream.js.map +1 -1
  481. package/dist/esm/internal/supervisor.js +1 -1
  482. package/dist/esm/internal/supervisor.js.map +1 -1
  483. package/dist/esm/internal/take.js +1 -1
  484. package/dist/esm/internal/take.js.map +1 -1
  485. package/dist/esm/internal/tracer.js.map +1 -1
  486. package/dist/esm/internal/trie.js.map +1 -1
  487. package/dist/esm/internal/version.js +1 -1
  488. package/dist/esm/internal/version.js.map +1 -1
  489. package/package.json +23 -15
  490. package/src/{ReadonlyArray.ts → Array.ts} +50 -24
  491. package/src/Brand.ts +3 -3
  492. package/src/Cache.ts +12 -10
  493. package/src/Cause.ts +1 -1
  494. package/src/Channel.ts +12 -9
  495. package/src/Chunk.ts +3 -3
  496. package/src/ConfigError.ts +7 -6
  497. package/src/Cron.ts +17 -17
  498. package/src/Effect.ts +46 -57
  499. package/src/Either.ts +7 -7
  500. package/src/ExecutionStrategy.ts +10 -2
  501. package/src/Exit.ts +11 -9
  502. package/src/Fiber.ts +11 -8
  503. package/src/FiberHandle.ts +433 -0
  504. package/src/FiberMap.ts +200 -73
  505. package/src/FiberRefs.ts +1 -1
  506. package/src/FiberSet.ts +96 -36
  507. package/src/GroupBy.ts +1 -1
  508. package/src/HashMap.ts +0 -1
  509. package/src/HashSet.ts +0 -1
  510. package/src/Iterable.ts +48 -10
  511. package/src/Layer.ts +6 -6
  512. package/src/List.ts +3 -4
  513. package/src/Logger.ts +2 -2
  514. package/src/Metric.ts +9 -2
  515. package/src/MetricKey.ts +9 -1
  516. package/src/MetricKeyType.ts +6 -1
  517. package/src/MutableHashMap.ts +1 -1
  518. package/src/Option.ts +9 -6
  519. package/src/{ReadonlyRecord.ts → Record.ts} +28 -29
  520. package/src/Request.ts +1 -1
  521. package/src/RequestResolver.ts +4 -4
  522. package/src/STM.ts +12 -9
  523. package/src/Schedule.ts +1 -1
  524. package/src/ScopedCache.ts +11 -9
  525. package/src/SortedSet.ts +1 -1
  526. package/src/Stream.ts +14 -11
  527. package/src/StreamHaltStrategy.ts +14 -2
  528. package/src/String.ts +45 -2
  529. package/src/TestAnnotations.ts +1 -1
  530. package/src/TestClock.ts +3 -3
  531. package/src/Tracer.ts +13 -5
  532. package/src/Trie.ts +1 -1
  533. package/src/Types.ts +0 -8
  534. package/src/index.ts +13 -8
  535. package/src/internal/{readonlyArray.ts → array.ts} +1 -1
  536. package/src/internal/cache.ts +40 -40
  537. package/src/internal/cause.ts +5 -6
  538. package/src/internal/channel/channelExecutor.ts +15 -15
  539. package/src/internal/channel/channelState.ts +1 -1
  540. package/src/internal/channel/singleProducerAsyncInput.ts +1 -1
  541. package/src/internal/channel.ts +11 -11
  542. package/src/internal/clock.ts +2 -2
  543. package/src/internal/configError.ts +22 -21
  544. package/src/internal/configProvider/pathPatch.ts +1 -1
  545. package/src/internal/configProvider.ts +50 -53
  546. package/src/internal/core-effect.ts +73 -70
  547. package/src/internal/core-stream.ts +5 -2
  548. package/src/internal/core.ts +51 -50
  549. package/src/internal/dataSource.ts +19 -20
  550. package/src/internal/differ/readonlyArrayPatch.ts +6 -6
  551. package/src/internal/effect/circular.ts +2 -2
  552. package/src/internal/executionStrategy.ts +14 -12
  553. package/src/internal/fiber.ts +8 -5
  554. package/src/internal/fiberRefs/patch.ts +1 -1
  555. package/src/internal/fiberRefs.ts +1 -1
  556. package/src/internal/fiberRuntime.ts +45 -45
  557. package/src/internal/groupBy.ts +4 -4
  558. package/src/internal/hashMap.ts +0 -1
  559. package/src/internal/hashSet.ts +0 -1
  560. package/src/internal/layer/circular.ts +2 -2
  561. package/src/internal/layer.ts +9 -9
  562. package/src/internal/logger.ts +28 -8
  563. package/src/internal/managedRuntime.ts +1 -1
  564. package/src/internal/metric/boundaries.ts +5 -5
  565. package/src/internal/metric/hook.ts +21 -18
  566. package/src/internal/metric/key.ts +8 -5
  567. package/src/internal/metric/keyType.ts +5 -2
  568. package/src/internal/metric/state.ts +5 -5
  569. package/src/internal/metric.ts +8 -6
  570. package/src/internal/pool.ts +11 -11
  571. package/src/internal/pubsub.ts +6 -6
  572. package/src/internal/query.ts +4 -4
  573. package/src/internal/queue.ts +11 -11
  574. package/src/internal/rateLimiter.ts +1 -1
  575. package/src/internal/redBlackTree/iterator.ts +2 -2
  576. package/src/internal/reloadable.ts +1 -1
  577. package/src/internal/runtime.ts +5 -5
  578. package/src/internal/schedule.ts +8 -9
  579. package/src/internal/scopedCache.ts +53 -53
  580. package/src/internal/scopedRef.ts +4 -4
  581. package/src/internal/secret.ts +2 -2
  582. package/src/internal/sink.ts +10 -10
  583. package/src/internal/stm/stm/tExit.ts +5 -2
  584. package/src/internal/stm/stm.ts +13 -9
  585. package/src/internal/stm/tMap.ts +3 -3
  586. package/src/internal/stm/tPriorityQueue.ts +11 -11
  587. package/src/internal/stm/tPubSub.ts +3 -3
  588. package/src/internal/stm/tQueue.ts +3 -3
  589. package/src/internal/stm/tSet.ts +1 -1
  590. package/src/internal/stream/haltStrategy.ts +23 -14
  591. package/src/internal/stream.ts +91 -88
  592. package/src/internal/supervisor.ts +1 -1
  593. package/src/internal/take.ts +1 -1
  594. package/src/internal/tracer.ts +2 -2
  595. package/src/internal/trie.ts +0 -1
  596. package/src/internal/version.ts +1 -1
  597. package/ReadonlyArray/package.json +0 -6
  598. package/ReadonlyRecord/package.json +0 -6
  599. package/dist/cjs/ReadonlyArray.js.map +0 -1
  600. package/dist/cjs/ReadonlyRecord.js.map +0 -1
  601. package/dist/cjs/internal/Iterable.js +0 -61
  602. package/dist/cjs/internal/Iterable.js.map +0 -1
  603. package/dist/cjs/internal/readonlyArray.js.map +0 -1
  604. package/dist/dts/ReadonlyArray.d.ts.map +0 -1
  605. package/dist/dts/ReadonlyRecord.d.ts.map +0 -1
  606. package/dist/dts/internal/Iterable.d.ts +0 -2
  607. package/dist/dts/internal/Iterable.d.ts.map +0 -1
  608. package/dist/dts/internal/readonlyArray.d.ts +0 -5
  609. package/dist/dts/internal/readonlyArray.d.ts.map +0 -1
  610. package/dist/esm/ReadonlyArray.js.map +0 -1
  611. package/dist/esm/ReadonlyRecord.js.map +0 -1
  612. package/dist/esm/internal/Iterable.js +0 -53
  613. package/dist/esm/internal/Iterable.js.map +0 -1
  614. package/dist/esm/internal/readonlyArray.js.map +0 -1
  615. package/src/internal/Iterable.ts +0 -54
package/src/GroupBy.ts CHANGED
@@ -7,7 +7,7 @@ import type { Predicate } from "./Predicate.js"
7
7
  import type * as Queue from "./Queue.js"
8
8
  import type * as Stream from "./Stream.js"
9
9
  import type * as Take from "./Take.js"
10
- import type { Covariant, NoInfer } from "./Types.js"
10
+ import type { Covariant } from "./Types.js"
11
11
 
12
12
  /**
13
13
  * @since 2.0.0
package/src/HashMap.ts CHANGED
@@ -9,7 +9,6 @@ import * as HM from "./internal/hashMap.js"
9
9
  import * as _keySet from "./internal/hashMap/keySet.js"
10
10
  import type { Option } from "./Option.js"
11
11
  import type { Pipeable } from "./Pipeable.js"
12
- import type { NoInfer } from "./Types.js"
13
12
 
14
13
  const TypeId: unique symbol = HM.HashMapTypeId as TypeId
15
14
 
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 Arr 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> => Arr.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(Arr.getEquivalence(isEquivalent), toArray<A>)
96
95
 
97
96
  const _equivalence = getEquivalence(Equal.equals)
98
97
 
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`.
@@ -11,7 +11,6 @@ import type { Equivalence } from "./Equivalence.js"
11
11
  import { dual, identity } from "./Function.js"
12
12
  import type { TypeLambda } from "./HKT.js"
13
13
  import * as Option from "./Option.js"
14
- import type { NoInfer } from "./Types.js"
15
14
 
16
15
  /**
17
16
  * @category models
@@ -69,7 +68,7 @@ export const empty = <K extends string | symbol = never, V = never>(): Record<
69
68
  * @param self - record to test for emptiness.
70
69
  *
71
70
  * @example
72
- * import { isEmptyRecord } from "effect/ReadonlyRecord"
71
+ * import { isEmptyRecord } from "effect/Record"
73
72
  *
74
73
  * assert.deepStrictEqual(isEmptyRecord({}), true);
75
74
  * assert.deepStrictEqual(isEmptyRecord({ a: 3 }), false);
@@ -86,7 +85,7 @@ export const isEmptyRecord = <K extends string, A>(self: Record<K, A>): self is
86
85
  * @param self - record to test for emptiness.
87
86
  *
88
87
  * @example
89
- * import { isEmptyReadonlyRecord } from "effect/ReadonlyRecord"
88
+ * import { isEmptyReadonlyRecord } from "effect/Record"
90
89
  *
91
90
  * assert.deepStrictEqual(isEmptyReadonlyRecord({}), true);
92
91
  * assert.deepStrictEqual(isEmptyReadonlyRecord({ a: 3 }), false);
@@ -106,7 +105,7 @@ export const isEmptyReadonlyRecord: <K extends string, A>(
106
105
  * @param f - A projection function that maps values of the iterable to a tuple of a key and a value.
107
106
  *
108
107
  * @example
109
- * import { fromIterableWith } from "effect/ReadonlyRecord"
108
+ * import { fromIterableWith } from "effect/Record"
110
109
  *
111
110
  * const input = [1, 2, 3, 4]
112
111
  *
@@ -148,7 +147,7 @@ export const fromIterableWith: {
148
147
  * @param f - A function that extracts the key for each element.
149
148
  *
150
149
  * @example
151
- * import { fromIterableBy } from "effect/ReadonlyRecord"
150
+ * import { fromIterableBy } from "effect/Record"
152
151
  *
153
152
  * const users = [
154
153
  * { id: "2", name: "name2" },
@@ -180,7 +179,7 @@ export const fromIterableBy = <A, K extends string | symbol>(
180
179
  * @param self - The iterable of key-value pairs.
181
180
  *
182
181
  * @example
183
- * import { fromEntries } from "effect/ReadonlyRecord"
182
+ * import { fromEntries } from "effect/Record"
184
183
  *
185
184
  * const input: Array<[string, number]> = [["a", 1], ["b", 2]]
186
185
  *
@@ -200,7 +199,7 @@ export const fromEntries: <Entry extends readonly [string | symbol, any]>(
200
199
  * @param f - The custom mapping function to apply to each key/value of the record.
201
200
  *
202
201
  * @example
203
- * import { collect } from "effect/ReadonlyRecord"
202
+ * import { collect } from "effect/Record"
204
203
  *
205
204
  * const x = { a: 1, b: 2, c: 3 }
206
205
  * assert.deepStrictEqual(collect(x, (key, n) => [key, n]), [["a", 1], ["b", 2], ["c", 3]])
@@ -228,7 +227,7 @@ export const collect: {
228
227
  * @param self - The record to transform.
229
228
  *
230
229
  * @example
231
- * import { toEntries } from "effect/ReadonlyRecord"
230
+ * import { toEntries } from "effect/Record"
232
231
  *
233
232
  * const x = { a: 1, b: 2, c: 3 }
234
233
  * assert.deepStrictEqual(toEntries(x), [["a", 1], ["b", 2], ["c", 3]])
@@ -247,7 +246,7 @@ export const toEntries: <K extends string, A>(self: ReadonlyRecord<K, A>) => Arr
247
246
  * @param self - A record to calculate the number of key/value pairs in.
248
247
  *
249
248
  * @example
250
- * import { size } from "effect/ReadonlyRecord";
249
+ * import { size } from "effect/Record";
251
250
  *
252
251
  * assert.deepStrictEqual(size({ a: "a", b: 1, c: true }), 3);
253
252
  *
@@ -262,7 +261,7 @@ export const size = <K extends string, A>(self: ReadonlyRecord<K, A>): number =>
262
261
  * @param key - the key to look for in the record.
263
262
  *
264
263
  * @example
265
- * import { empty, has } from "effect/ReadonlyRecord"
264
+ * import { empty, has } from "effect/Record"
266
265
  *
267
266
  * assert.deepStrictEqual(has({ a: 1, b: 2 }, "a"), true);
268
267
  * assert.deepStrictEqual(has(empty<string>(), "c"), false);
@@ -292,7 +291,7 @@ export const has: {
292
291
  * @param key - Key to retrieve from record.
293
292
  *
294
293
  * @example
295
- * import { get } from "effect/ReadonlyRecord"
294
+ * import { get } from "effect/Record"
296
295
  * import { some, none } from "effect/Option"
297
296
  *
298
297
  * const person: Record<string, unknown> = { name: "John Doe", age: 35 }
@@ -320,7 +319,7 @@ export const get: {
320
319
  * @param f - The function to apply to the element.
321
320
  *
322
321
  * @example
323
- * import { modify } from "effect/ReadonlyRecord"
322
+ * import { modify } from "effect/Record"
324
323
  * import { some, none } from "effect/Option"
325
324
  *
326
325
  * const f = (x: number) => x * 2
@@ -361,7 +360,7 @@ export const modify: {
361
360
  * @param f - The function to apply to the element.
362
361
  *
363
362
  * @example
364
- * import { modifyOption } from "effect/ReadonlyRecord"
363
+ * import { modifyOption } from "effect/Record"
365
364
  * import { some, none } from "effect/Option"
366
365
  *
367
366
  * const f = (x: number) => x * 2
@@ -409,7 +408,7 @@ export const modifyOption: {
409
408
  * @param b - The new value to replace the existing value with.
410
409
  *
411
410
  * @example
412
- * import { empty, replaceOption } from "effect/ReadonlyRecord"
411
+ * import { empty, replaceOption } from "effect/Record"
413
412
  * import { some, none } from "effect/Option"
414
413
  *
415
414
  * assert.deepStrictEqual(
@@ -447,7 +446,7 @@ export const replaceOption: {
447
446
  * @param key - the key to remove from the record.
448
447
  *
449
448
  * @example
450
- * import { remove } from "effect/ReadonlyRecord"
449
+ * import { remove } from "effect/Record"
451
450
  *
452
451
  * assert.deepStrictEqual(remove({ a: 1, b: 2 }, "a"), { b: 2 })
453
452
  *
@@ -477,7 +476,7 @@ export const remove: {
477
476
  * @param key - The key of the property to retrieve.
478
477
  *
479
478
  * @example
480
- * import { pop } from "effect/ReadonlyRecord"
479
+ * import { pop } from "effect/Record"
481
480
  * import { some, none } from 'effect/Option'
482
481
  *
483
482
  * assert.deepStrictEqual(pop({ a: 1, b: 2 }, "a"), some([1, { b: 2 }]))
@@ -507,7 +506,7 @@ export const pop: {
507
506
  * @param f - A transformation function that will be applied to each of the values in the record.
508
507
  *
509
508
  * @example
510
- * import { map } from "effect/ReadonlyRecord"
509
+ * import { map } from "effect/Record"
511
510
  *
512
511
  * const f = (n: number) => `-${n}`
513
512
  *
@@ -538,7 +537,7 @@ export const map: {
538
537
  * Maps the keys of a `ReadonlyRecord` while preserving the corresponding values.
539
538
  *
540
539
  * @example
541
- * import { mapKeys } from "effect/ReadonlyRecord"
540
+ * import { mapKeys } from "effect/Record"
542
541
  *
543
542
  * assert.deepStrictEqual(mapKeys({ a: 3, b: 5 }, (key) => key.toUpperCase()), { A: 3, B: 5 })
544
543
  *
@@ -572,7 +571,7 @@ export const mapKeys: {
572
571
  * Maps entries of a `ReadonlyRecord` using the provided function, allowing modification of both keys and corresponding values.
573
572
  *
574
573
  * @example
575
- * import { mapEntries } from "effect/ReadonlyRecord"
574
+ * import { mapEntries } from "effect/Record"
576
575
  *
577
576
  * assert.deepStrictEqual(mapEntries({ a: 3, b: 5 }, (a, key) => [key.toUpperCase(), a + 1]), { A: 4, B: 6 })
578
577
  *
@@ -610,7 +609,7 @@ export const mapEntries: {
610
609
  * @param f - The transformation function.
611
610
  *
612
611
  * @example
613
- * import { filterMap } from "effect/ReadonlyRecord"
612
+ * import { filterMap } from "effect/Record"
614
613
  * import { some, none } from 'effect/Option'
615
614
  *
616
615
  * const x = { a: 1, b: 2, c: 3 }
@@ -651,7 +650,7 @@ export const filterMap: {
651
650
  * @param predicate - A function that returns a `boolean` value to determine if the entry should be included in the new record.
652
651
  *
653
652
  * @example
654
- * import { filter } from "effect/ReadonlyRecord"
653
+ * import { filter } from "effect/Record"
655
654
  *
656
655
  * const x = { a: 1, b: 2, c: 3, d: 4 }
657
656
  * assert.deepStrictEqual(filter(x, (n) => n > 2), { c: 3, d: 4 })
@@ -696,7 +695,7 @@ export const filter: {
696
695
  * @param self - A record with `Option` values.
697
696
  *
698
697
  * @example
699
- * import { getSomes } from "effect/ReadonlyRecord"
698
+ * import { getSomes } from "effect/Record"
700
699
  * import { some, none } from "effect/Option"
701
700
  *
702
701
  * assert.deepStrictEqual(
@@ -717,7 +716,7 @@ export const getSomes: <K extends string, A>(
717
716
  * Given a record with `Either` values, returns a new record containing only the `Left` values, preserving the original keys.
718
717
  *
719
718
  * @example
720
- * import { getLefts } from "effect/ReadonlyRecord"
719
+ * import { getLefts } from "effect/Record"
721
720
  * import { right, left } from "effect/Either"
722
721
  *
723
722
  * assert.deepStrictEqual(
@@ -746,7 +745,7 @@ export const getLefts = <K extends string, R, L>(
746
745
  * Given a record with `Either` values, returns a new record containing only the `Right` values, preserving the original keys.
747
746
  *
748
747
  * @example
749
- * import { getRights } from "effect/ReadonlyRecord"
748
+ * import { getRights } from "effect/Record"
750
749
  * import { right, left } from "effect/Either"
751
750
  *
752
751
  * assert.deepStrictEqual(
@@ -778,7 +777,7 @@ export const getRights = <K extends string, R, L>(
778
777
  * @param f - The predicate function to apply to each element.
779
778
  *
780
779
  * @example
781
- * import { partitionMap } from "effect/ReadonlyRecord"
780
+ * import { partitionMap } from "effect/Record"
782
781
  * import { left, right } from 'effect/Either'
783
782
  *
784
783
  * const x = { a: 1, b: 2, c: 3 }
@@ -825,7 +824,7 @@ export const partitionMap: {
825
824
  * @param self - the record to partition.
826
825
  *
827
826
  * @example
828
- * import { separate } from "effect/ReadonlyRecord"
827
+ * import { separate } from "effect/Record"
829
828
  * import { left, right } from 'effect/Either'
830
829
  *
831
830
  * assert.deepStrictEqual(
@@ -847,7 +846,7 @@ export const separate: <K extends string, A, B>(
847
846
  * @param predicate - The partitioning function to determine the partitioning of each value of the record.
848
847
  *
849
848
  * @example
850
- * import { partition } from "effect/ReadonlyRecord"
849
+ * import { partition } from "effect/Record"
851
850
  *
852
851
  * assert.deepStrictEqual(
853
852
  * partition({ a: 1, b: 3 }, (n) => n > 2),
@@ -925,7 +924,7 @@ export const values = <K extends string, A>(self: ReadonlyRecord<K, A>): Array<A
925
924
  * @param values - The value you want to associate with the key.
926
925
  *
927
926
  * @example
928
- * import { set } from "effect/ReadonlyRecord"
927
+ * import { set } from "effect/Record"
929
928
  *
930
929
  * assert.deepStrictEqual(set("a", 5)({ a: 1, b: 2 }), { a: 5, b: 2 });
931
930
  * assert.deepStrictEqual(set("c", 5)({ a: 1, b: 2 }), { a: 1, b: 2, c: 5 });
@@ -962,7 +961,7 @@ export const set: {
962
961
  * @param value - The new value to associate with the key.
963
962
  *
964
963
  * @example
965
- * import { replace } from "effect/ReadonlyRecord"
964
+ * import { replace } from "effect/Record"
966
965
  * import { some, none } from "effect/Option"
967
966
  *
968
967
  * assert.deepStrictEqual(replace("a", 3)({ a: 1, b: 2 }), { a: 3, b: 2 });
package/src/Request.ts CHANGED
@@ -257,7 +257,7 @@ export interface Listeners {
257
257
  * @since 2.0.0
258
258
  */
259
259
  export interface Cache extends
260
- _Cache.ConsumerCache<Request<any, any>, never, {
260
+ _Cache.ConsumerCache<Request<any, any>, {
261
261
  listeners: Listeners
262
262
  handle: Deferred<unknown, unknown>
263
263
  }>
@@ -187,13 +187,13 @@ export const around: {
187
187
  */
188
188
  export const aroundRequests: {
189
189
  <A, A2, R2, X, R3>(
190
- before: (requests: ReadonlyArray<Types.NoInfer<A>>) => Effect.Effect<A2, never, R2>,
191
- after: (requests: ReadonlyArray<Types.NoInfer<A>>, _: A2) => Effect.Effect<X, never, R3>
190
+ before: (requests: ReadonlyArray<NoInfer<A>>) => Effect.Effect<A2, never, R2>,
191
+ after: (requests: ReadonlyArray<NoInfer<A>>, _: A2) => Effect.Effect<X, never, R3>
192
192
  ): <R>(self: RequestResolver<A, R>) => RequestResolver<A, R2 | R3 | R>
193
193
  <A, R, A2, R2, X, R3>(
194
194
  self: RequestResolver<A, R>,
195
- before: (requests: ReadonlyArray<Types.NoInfer<A>>) => Effect.Effect<A2, never, R2>,
196
- after: (requests: ReadonlyArray<Types.NoInfer<A>>, _: A2) => Effect.Effect<X, never, R3>
195
+ before: (requests: ReadonlyArray<NoInfer<A>>) => Effect.Effect<A2, never, R2>,
196
+ after: (requests: ReadonlyArray<NoInfer<A>>, _: A2) => Effect.Effect<X, never, R3>
197
197
  ): RequestResolver<A, R | R2 | R3>
198
198
  } = internal.aroundRequests
199
199