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
@@ -1,3 +1,4 @@
1
+ import * as Array from "../Array.js"
1
2
  import type * as Cause from "../Cause.js"
2
3
  import * as Chunk from "../Chunk.js"
3
4
  import * as Clock from "../Clock.js"
@@ -21,15 +22,16 @@ import type * as MetricLabel from "../MetricLabel.js"
21
22
  import * as Option from "../Option.js"
22
23
  import * as Predicate from "../Predicate.js"
23
24
  import type * as Random from "../Random.js"
24
- import * as ReadonlyArray from "../ReadonlyArray.js"
25
25
  import * as Ref from "../Ref.js"
26
26
  import type * as runtimeFlagsPatch from "../RuntimeFlagsPatch.js"
27
27
  import * as Tracer from "../Tracer.js"
28
- import type { MergeRecord, NoInfer } from "../Types.js"
28
+ import type { MergeRecord } from "../Types.js"
29
29
  import * as internalCause from "./cause.js"
30
+ import { clockTag } from "./clock.js"
30
31
  import * as core from "./core.js"
31
32
  import * as defaultServices from "./defaultServices.js"
32
33
  import * as fiberRefsPatch from "./fiberRefs/patch.js"
34
+ import type { FiberRuntime } from "./fiberRuntime.js"
33
35
  import * as metricLabel from "./metric/label.js"
34
36
  import * as runtimeFlags from "./runtimeFlags.js"
35
37
  import * as SingleShotGen from "./singleShotGen.js"
@@ -341,7 +343,7 @@ export const allowInterrupt: Effect.Effect<void> = descriptorWith(
341
343
  (descriptor) =>
342
344
  HashSet.size(descriptor.interruptors) > 0
343
345
  ? core.interrupt
344
- : core.unit
346
+ : core.void
345
347
  )
346
348
 
347
349
  /* @internal */
@@ -510,7 +512,7 @@ export const filterMap = dual<
510
512
  >(2, (elements, pf) =>
511
513
  core.map(
512
514
  core.forEachSequential(elements, identity),
513
- ReadonlyArray.filterMap(pf)
515
+ Array.filterMap(pf)
514
516
  ))
515
517
 
516
518
  /* @internal */
@@ -693,7 +695,7 @@ export const firstSuccessOf = <Eff extends Effect.Effect<any, any, any>>(
693
695
  }
694
696
  return pipe(
695
697
  Chunk.tailNonEmpty(list),
696
- ReadonlyArray.reduce(Chunk.headNonEmpty(list), (left, right) => core.orElse(left, () => right) as Eff)
698
+ Array.reduce(Chunk.headNonEmpty(list), (left, right) => core.orElse(left, () => right) as Eff)
697
699
  )
698
700
  })
699
701
 
@@ -840,7 +842,7 @@ export const ignore = <A, E, R>(self: Effect.Effect<A, E, R>): Effect.Effect<voi
840
842
  export const ignoreLogged = <A, E, R>(self: Effect.Effect<A, E, R>): Effect.Effect<void, never, R> =>
841
843
  core.matchCauseEffect(self, {
842
844
  onFailure: (cause) => logDebug(cause, "An error was silently ignored because it is not anticipated to be useful"),
843
- onSuccess: () => core.unit
845
+ onSuccess: () => core.void
844
846
  })
845
847
 
846
848
  /* @internal */
@@ -885,68 +887,71 @@ export const iterate: {
885
887
  return core.succeed(initial)
886
888
  })
887
889
 
888
- const logWithLevel = (level?: LogLevel.LogLevel) =>
889
- <A>(
890
- messageOrCause: A,
891
- supplementary?: A extends Cause.Cause<any> ? unknown : Cause.Cause<unknown>
890
+ /** @internal */
891
+ export const logWithLevel = (level?: LogLevel.LogLevel) =>
892
+ (
893
+ ...message: ReadonlyArray<any>
892
894
  ): Effect.Effect<void> => {
893
895
  const levelOption = Option.fromNullable(level)
894
- let message: unknown
895
- let cause: Cause.Cause<unknown>
896
- if (internalCause.isCause(messageOrCause)) {
897
- cause = messageOrCause
898
- message = (supplementary as unknown) ?? ""
899
- } else {
900
- message = messageOrCause
901
- cause = (supplementary as Cause.Cause<unknown>) ?? internalCause.empty
896
+ let cause: Cause.Cause<unknown> | undefined = undefined
897
+ for (let i = 0, len = message.length; i < len; i++) {
898
+ const msg = message[i]
899
+ if (internalCause.isCause(msg)) {
900
+ if (cause !== undefined) {
901
+ cause = internalCause.sequential(cause, msg)
902
+ } else {
903
+ cause = msg
904
+ }
905
+ message = [...message.slice(0, i), ...message.slice(i + 1)]
906
+ i--
907
+ }
908
+ }
909
+ if (message.length === 0) {
910
+ message = "" as any
911
+ } else if (message.length === 1) {
912
+ message = message[0]
913
+ }
914
+ if (cause === undefined) {
915
+ cause = internalCause.empty
902
916
  }
903
917
  return core.withFiberRuntime((fiberState) => {
904
918
  fiberState.log(message, cause, levelOption)
905
- return core.unit
919
+ return core.void
906
920
  })
907
921
  }
908
922
 
909
923
  /** @internal */
910
- export const log: <A>(
911
- messageOrCause: A,
912
- supplementary?: A extends Cause.Cause<any> ? unknown : Cause.Cause<unknown>
913
- ) => Effect.Effect<void> = logWithLevel()
924
+ export const log: (...message: ReadonlyArray<any>) => Effect.Effect<void, never, never> = logWithLevel()
914
925
 
915
926
  /** @internal */
916
- export const logTrace: <A>(
917
- messageOrCause: A,
918
- supplementary?: A extends Cause.Cause<any> ? unknown : Cause.Cause<unknown>
919
- ) => Effect.Effect<void> = logWithLevel(LogLevel.Trace)
927
+ export const logTrace: (...message: ReadonlyArray<any>) => Effect.Effect<void, never, never> = logWithLevel(
928
+ LogLevel.Trace
929
+ )
920
930
 
921
931
  /** @internal */
922
- export const logDebug: <A>(
923
- messageOrCause: A,
924
- supplementary?: A extends Cause.Cause<any> ? unknown : Cause.Cause<unknown>
925
- ) => Effect.Effect<void> = logWithLevel(LogLevel.Debug)
932
+ export const logDebug: (...message: ReadonlyArray<any>) => Effect.Effect<void, never, never> = logWithLevel(
933
+ LogLevel.Debug
934
+ )
926
935
 
927
936
  /** @internal */
928
- export const logInfo: <A>(
929
- messageOrCause: A,
930
- supplementary?: A extends Cause.Cause<any> ? unknown : Cause.Cause<unknown>
931
- ) => Effect.Effect<void> = logWithLevel(LogLevel.Info)
937
+ export const logInfo: (...message: ReadonlyArray<any>) => Effect.Effect<void, never, never> = logWithLevel(
938
+ LogLevel.Info
939
+ )
932
940
 
933
941
  /** @internal */
934
- export const logWarning: <A>(
935
- messageOrCause: A,
936
- supplementary?: A extends Cause.Cause<any> ? unknown : Cause.Cause<unknown>
937
- ) => Effect.Effect<void> = logWithLevel(LogLevel.Warning)
942
+ export const logWarning: (...message: ReadonlyArray<any>) => Effect.Effect<void, never, never> = logWithLevel(
943
+ LogLevel.Warning
944
+ )
938
945
 
939
946
  /** @internal */
940
- export const logError: <A>(
941
- messageOrCause: A,
942
- supplementary?: A extends Cause.Cause<any> ? unknown : Cause.Cause<unknown>
943
- ) => Effect.Effect<void> = logWithLevel(LogLevel.Error)
947
+ export const logError: (...message: ReadonlyArray<any>) => Effect.Effect<void, never, never> = logWithLevel(
948
+ LogLevel.Error
949
+ )
944
950
 
945
951
  /** @internal */
946
- export const logFatal: <A>(
947
- messageOrCause: A,
948
- supplementary?: A extends Cause.Cause<any> ? unknown : Cause.Cause<unknown>
949
- ) => Effect.Effect<void> = logWithLevel(LogLevel.Fatal)
952
+ export const logFatal: (...message: ReadonlyArray<any>) => Effect.Effect<void, never, never> = logWithLevel(
953
+ LogLevel.Fatal
954
+ )
950
955
 
951
956
  /* @internal */
952
957
  export const withLogSpan = dual<
@@ -1015,7 +1020,7 @@ export const loop: {
1015
1020
  ): any =>
1016
1021
  options.discard
1017
1022
  ? loopDiscard(initial, options.while, options.step, options.body)
1018
- : core.map(loopInternal(initial, options.while, options.step, options.body), Array.from)
1023
+ : core.map(loopInternal(initial, options.while, options.step, options.body), Array.fromIterable)
1019
1024
 
1020
1025
  const loopInternal = <Z, A, E, R>(
1021
1026
  initial: Z,
@@ -1045,7 +1050,7 @@ const loopDiscard = <S, X, E, R>(
1045
1050
  body(initial),
1046
1051
  () => loopDiscard(inc(initial), cont, inc, body)
1047
1052
  )
1048
- : core.unit
1053
+ : core.void
1049
1054
  )
1050
1055
 
1051
1056
  /* @internal */
@@ -1072,8 +1077,9 @@ export const mapAccum: {
1072
1077
  let i = 0
1073
1078
  while (!(next = iterator.next()).done) {
1074
1079
  const index = i++
1080
+ const value = next.value
1075
1081
  result = core.flatMap(result, (state) =>
1076
- core.map(f(state, next.value, index), ([z, b]) => {
1082
+ core.map(f(state, value, index), ([z, b]) => {
1077
1083
  builder.push(b)
1078
1084
  return z
1079
1085
  }))
@@ -1140,7 +1146,7 @@ export const none = <A, E, R>(
1140
1146
  core.flatMap(self, (option) => {
1141
1147
  switch (option._tag) {
1142
1148
  case "None":
1143
- return core.unit
1149
+ return core.void
1144
1150
  case "Some":
1145
1151
  return core.fail(new core.NoSuchElementException())
1146
1152
  }
@@ -1152,7 +1158,7 @@ export const once = <A, E, R>(
1152
1158
  ): Effect.Effect<Effect.Effect<void, E, R>> =>
1153
1159
  core.map(
1154
1160
  Ref.make(true),
1155
- (ref) => core.asUnit(core.whenEffect(self, Ref.getAndSet(ref, false)))
1161
+ (ref) => core.asVoid(core.whenEffect(self, Ref.getAndSet(ref, false)))
1156
1162
  )
1157
1163
 
1158
1164
  /* @internal */
@@ -1178,7 +1184,7 @@ export const orElseSucceed = dual<
1178
1184
  export const parallelErrors = <A, E, R>(self: Effect.Effect<A, E, R>): Effect.Effect<A, Array<E>, R> =>
1179
1185
  core.matchCauseEffect(self, {
1180
1186
  onFailure: (cause) => {
1181
- const errors = Array.from(internalCause.failures(cause))
1187
+ const errors = Array.fromIterable(internalCause.failures(cause))
1182
1188
  return errors.length === 0
1183
1189
  ? core.failCause(cause as Cause.Cause<never>)
1184
1190
  : core.fail(errors)
@@ -1272,7 +1278,7 @@ export const reduce = dual<
1272
1278
  zero: Z,
1273
1279
  f: (z: Z, a: A, i: number) => Effect.Effect<Z, E, R>
1274
1280
  ) =>
1275
- ReadonlyArray.fromIterable(elements).reduce(
1281
+ Array.fromIterable(elements).reduce(
1276
1282
  (acc, el, i) => core.flatMap(acc, (a) => f(a, el, i)),
1277
1283
  core.succeed(zero) as Effect.Effect<Z, E, R>
1278
1284
  )
@@ -1292,7 +1298,7 @@ export const reduceRight = dual<
1292
1298
  >(
1293
1299
  3,
1294
1300
  <A, Z, R, E>(elements: Iterable<A>, zero: Z, f: (a: A, z: Z, i: number) => Effect.Effect<Z, E, R>) =>
1295
- ReadonlyArray.fromIterable(elements).reduceRight(
1301
+ Array.fromIterable(elements).reduceRight(
1296
1302
  (acc, el, i) => core.flatMap(acc, (a) => f(el, a, i)),
1297
1303
  core.succeed(zero) as Effect.Effect<Z, E, R>
1298
1304
  )
@@ -1429,7 +1435,7 @@ export const labelMetrics = dual<
1429
1435
  <A, E, R>(self: Effect.Effect<A, E, R>, labels: Iterable<MetricLabel.MetricLabel>) => Effect.Effect<A, E, R>
1430
1436
  >(
1431
1437
  2,
1432
- (self, labels) => core.fiberRefLocallyWith(self, core.currentMetricLabels, (old) => ReadonlyArray.union(old, labels))
1438
+ (self, labels) => core.fiberRefLocallyWith(self, core.currentMetricLabels, (old) => Array.union(old, labels))
1433
1439
  )
1434
1440
 
1435
1441
  /* @internal */
@@ -1590,7 +1596,7 @@ export const tapErrorTag = dual<
1590
1596
  if (Predicate.isTagged(e, k)) {
1591
1597
  return f(e as any)
1592
1598
  }
1593
- return core.unit as any
1599
+ return core.void as any
1594
1600
  }))
1595
1601
 
1596
1602
  /* @internal */
@@ -1773,7 +1779,7 @@ export const updateFiberRefs = (
1773
1779
  ): Effect.Effect<void> =>
1774
1780
  core.withFiberRuntime((state) => {
1775
1781
  state.setFiberRefs(f(state.id(), state.getFiberRefs()))
1776
- return core.unit
1782
+ return core.void
1777
1783
  })
1778
1784
 
1779
1785
  /* @internal */
@@ -1991,7 +1997,7 @@ export const annotateSpans = dual<
1991
1997
  )
1992
1998
 
1993
1999
  /** @internal */
1994
- export const currentParentSpan: Effect.Effect<Tracer.ParentSpan, Cause.NoSuchElementException> = serviceOptional(
2000
+ export const currentParentSpan: Effect.Effect<Tracer.AnySpan, Cause.NoSuchElementException> = serviceOptional(
1995
2001
  internalTracer.spanTag
1996
2002
  )
1997
2003
 
@@ -1999,29 +2005,22 @@ export const currentParentSpan: Effect.Effect<Tracer.ParentSpan, Cause.NoSuchEle
1999
2005
  export const currentSpan: Effect.Effect<Tracer.Span, Cause.NoSuchElementException> = core.flatMap(
2000
2006
  core.context<never>(),
2001
2007
  (context) => {
2002
- const span = context.unsafeMap.get(internalTracer.spanTag.key) as Tracer.ParentSpan | undefined
2008
+ const span = context.unsafeMap.get(internalTracer.spanTag.key) as Tracer.AnySpan | undefined
2003
2009
  return span !== undefined && span._tag === "Span"
2004
2010
  ? core.succeed(span)
2005
2011
  : core.fail(new core.NoSuchElementException())
2006
2012
  }
2007
2013
  )
2008
2014
 
2009
- const bigint0 = BigInt(0)
2010
- /** @internal */
2011
- export const currentTimeNanosTracing = core.fiberRefGetWith(
2012
- core.currentTracerTimingEnabled,
2013
- (enabled) => enabled ? Clock.currentTimeNanos : core.succeed(bigint0)
2014
- )
2015
-
2016
2015
  /* @internal */
2017
2016
  export const linkSpans = dual<
2018
2017
  (
2019
- span: Tracer.ParentSpan,
2018
+ span: Tracer.AnySpan,
2020
2019
  attributes?: Record<string, unknown>
2021
2020
  ) => <A, E, R>(self: Effect.Effect<A, E, R>) => Effect.Effect<A, E, R>,
2022
2021
  <A, E, R>(
2023
2022
  self: Effect.Effect<A, E, R>,
2024
- span: Tracer.ParentSpan,
2023
+ span: Tracer.AnySpan,
2025
2024
  attributes?: Record<string, unknown>
2026
2025
  ) => Effect.Effect<A, E, R>
2027
2026
  >(
@@ -2040,65 +2039,80 @@ export const linkSpans = dual<
2040
2039
  )
2041
2040
  )
2042
2041
 
2042
+ const bigint0 = BigInt(0)
2043
+
2043
2044
  /** @internal */
2044
- export const makeSpan = (
2045
+ export const unsafeMakeSpan = <XA, XE>(
2046
+ fiber: FiberRuntime<XA, XE>,
2045
2047
  name: string,
2046
2048
  options?: {
2047
2049
  readonly attributes?: Record<string, unknown> | undefined
2048
2050
  readonly links?: ReadonlyArray<Tracer.SpanLink> | undefined
2049
- readonly parent?: Tracer.ParentSpan | undefined
2051
+ readonly parent?: Tracer.AnySpan | undefined
2050
2052
  readonly root?: boolean | undefined
2051
2053
  readonly context?: Context.Context<never> | undefined
2052
2054
  }
2053
- ): Effect.Effect<Tracer.Span> =>
2054
- core.flatMap(fiberRefs, (fiberRefs) =>
2055
- core.sync(() => {
2056
- const enabled = FiberRefs.getOrDefault(fiberRefs, core.currentTracerEnabled)
2057
- if (enabled === false) {
2058
- return core.noopSpan(name)
2059
- }
2055
+ ) => {
2056
+ const enabled = fiber.getFiberRef(core.currentTracerEnabled)
2057
+ if (enabled === false) {
2058
+ return core.noopSpan(name)
2059
+ }
2060
2060
 
2061
- const context = FiberRefs.getOrDefault(fiberRefs, core.currentContext)
2062
- const services = FiberRefs.getOrDefault(fiberRefs, defaultServices.currentServices)
2063
-
2064
- const tracer = Context.get(services, internalTracer.tracerTag)
2065
- const clock = Context.get(services, Clock.Clock)
2066
- const timingEnabled = FiberRefs.getOrDefault(fiberRefs, core.currentTracerTimingEnabled)
2067
- const annotationsFromEnv = FiberRefs.get(fiberRefs, core.currentTracerSpanAnnotations)
2068
- const linksFromEnv = FiberRefs.get(fiberRefs, core.currentTracerSpanLinks)
2069
-
2070
- const parent = options?.parent
2071
- ? Option.some(options.parent)
2072
- : options?.root
2073
- ? Option.none()
2074
- : Context.getOption(context, internalTracer.spanTag)
2075
-
2076
- const links = linksFromEnv._tag === "Some" ?
2077
- options?.links !== undefined ?
2078
- [
2079
- ...Chunk.toReadonlyArray(linksFromEnv.value),
2080
- ...(options?.links ?? [])
2081
- ] :
2082
- Chunk.toReadonlyArray(linksFromEnv.value) :
2083
- options?.links ?? ReadonlyArray.empty()
2084
-
2085
- const span = tracer.span(
2086
- name,
2087
- parent,
2088
- options?.context ?? Context.empty(),
2089
- links,
2090
- timingEnabled ? clock.unsafeCurrentTimeNanos() : bigint0
2091
- )
2061
+ const context = fiber.getFiberRef(core.currentContext)
2062
+ const services = fiber.getFiberRef(defaultServices.currentServices)
2063
+
2064
+ const tracer = Context.get(services, internalTracer.tracerTag)
2065
+ const clock = Context.get(services, Clock.Clock)
2066
+ const timingEnabled = fiber.getFiberRef(core.currentTracerTimingEnabled)
2067
+
2068
+ const fiberRefs = fiber.getFiberRefs()
2069
+ const annotationsFromEnv = FiberRefs.get(fiberRefs, core.currentTracerSpanAnnotations)
2070
+ const linksFromEnv = FiberRefs.get(fiberRefs, core.currentTracerSpanLinks)
2071
+
2072
+ const parent = options?.parent
2073
+ ? Option.some(options.parent)
2074
+ : options?.root
2075
+ ? Option.none()
2076
+ : Context.getOption(context, internalTracer.spanTag)
2077
+
2078
+ const links = linksFromEnv._tag === "Some" ?
2079
+ options?.links !== undefined ?
2080
+ [
2081
+ ...Chunk.toReadonlyArray(linksFromEnv.value),
2082
+ ...(options?.links ?? [])
2083
+ ] :
2084
+ Chunk.toReadonlyArray(linksFromEnv.value) :
2085
+ options?.links ?? Array.empty()
2086
+
2087
+ const span = tracer.span(
2088
+ name,
2089
+ parent,
2090
+ options?.context ?? Context.empty(),
2091
+ links,
2092
+ timingEnabled ? clock.unsafeCurrentTimeNanos() : bigint0
2093
+ )
2092
2094
 
2093
- if (annotationsFromEnv._tag === "Some") {
2094
- HashMap.forEach(annotationsFromEnv.value, (value, key) => span.attribute(key, value))
2095
- }
2096
- if (options?.attributes) {
2097
- Object.entries(options.attributes).forEach(([k, v]) => span.attribute(k, v))
2098
- }
2095
+ if (annotationsFromEnv._tag === "Some") {
2096
+ HashMap.forEach(annotationsFromEnv.value, (value, key) => span.attribute(key, value))
2097
+ }
2098
+ if (options?.attributes !== undefined) {
2099
+ Object.entries(options.attributes).forEach(([k, v]) => span.attribute(k, v))
2100
+ }
2099
2101
 
2100
- return span
2101
- }))
2102
+ return span
2103
+ }
2104
+
2105
+ /** @internal */
2106
+ export const makeSpan = (
2107
+ name: string,
2108
+ options?: {
2109
+ readonly attributes?: Record<string, unknown> | undefined
2110
+ readonly links?: ReadonlyArray<Tracer.SpanLink> | undefined
2111
+ readonly parent?: Tracer.AnySpan | undefined
2112
+ readonly root?: boolean | undefined
2113
+ readonly context?: Context.Context<never> | undefined
2114
+ }
2115
+ ): Effect.Effect<Tracer.Span> => core.withFiberRuntime((fiber) => core.succeed(unsafeMakeSpan(fiber, name, options)))
2102
2116
 
2103
2117
  /* @internal */
2104
2118
  export const spanAnnotations: Effect.Effect<HashMap.HashMap<string, unknown>> = core
@@ -2114,7 +2128,7 @@ export const useSpan: {
2114
2128
  <A, E, R>(name: string, options: {
2115
2129
  readonly attributes?: Record<string, unknown> | undefined
2116
2130
  readonly links?: ReadonlyArray<Tracer.SpanLink> | undefined
2117
- readonly parent?: Tracer.ParentSpan | undefined
2131
+ readonly parent?: Tracer.AnySpan | undefined
2118
2132
  readonly root?: boolean | undefined
2119
2133
  readonly context?: Context.Context<never> | undefined
2120
2134
  }, evaluate: (span: Tracer.Span) => Effect.Effect<A, E, R>): Effect.Effect<A, E, R>
@@ -2128,31 +2142,32 @@ export const useSpan: {
2128
2142
  const options: {
2129
2143
  readonly attributes?: Record<string, unknown> | undefined
2130
2144
  readonly links?: ReadonlyArray<Tracer.SpanLink> | undefined
2131
- readonly parent?: Tracer.ParentSpan | undefined
2145
+ readonly parent?: Tracer.AnySpan | undefined
2132
2146
  readonly root?: boolean | undefined
2133
2147
  readonly context?: Context.Context<never> | undefined
2134
2148
  } | undefined = args.length === 1 ? undefined : args[0]
2135
2149
  const evaluate: (span: Tracer.Span) => Effect.Effect<A, E, R> = args[args.length - 1]
2136
2150
 
2137
- return core.acquireUseRelease(
2138
- makeSpan(name, options),
2139
- evaluate,
2140
- (span, exit) =>
2141
- span.status._tag === "Ended" ?
2142
- core.unit :
2143
- core.flatMap(
2144
- currentTimeNanosTracing,
2145
- (endTime) => core.sync(() => span.end(endTime, exit))
2146
- )
2147
- )
2151
+ return core.withFiberRuntime<A, E, R>((fiber) => {
2152
+ const span = unsafeMakeSpan(fiber, name, options)
2153
+ const timingEnabled = fiber.getFiberRef(core.currentTracerTimingEnabled)
2154
+ const clock = Context.get(fiber.getFiberRef(defaultServices.currentServices), clockTag)
2155
+ return core.onExit(evaluate(span), (exit) =>
2156
+ core.sync(() => {
2157
+ if (span.status._tag === "Ended") {
2158
+ return
2159
+ }
2160
+ span.end(timingEnabled ? clock.unsafeCurrentTimeNanos() : bigint0, exit)
2161
+ }))
2162
+ })
2148
2163
  }
2149
2164
 
2150
2165
  /** @internal */
2151
2166
  export const withParentSpan = dual<
2152
2167
  (
2153
- span: Tracer.ParentSpan
2168
+ span: Tracer.AnySpan
2154
2169
  ) => <A, E, R>(self: Effect.Effect<A, E, R>) => Effect.Effect<A, E, Exclude<R, Tracer.ParentSpan>>,
2155
- <A, E, R>(self: Effect.Effect<A, E, R>, span: Tracer.ParentSpan) => Effect.Effect<A, E, Exclude<R, Tracer.ParentSpan>>
2170
+ <A, E, R>(self: Effect.Effect<A, E, R>, span: Tracer.AnySpan) => Effect.Effect<A, E, Exclude<R, Tracer.ParentSpan>>
2156
2171
  >(2, (self, span) => provideService(self, internalTracer.spanTag, span))
2157
2172
 
2158
2173
  /** @internal */
@@ -2160,14 +2175,14 @@ export const withSpan = dual<
2160
2175
  (name: string, options?: {
2161
2176
  readonly attributes?: Record<string, unknown> | undefined
2162
2177
  readonly links?: ReadonlyArray<Tracer.SpanLink> | undefined
2163
- readonly parent?: Tracer.ParentSpan | undefined
2178
+ readonly parent?: Tracer.AnySpan | undefined
2164
2179
  readonly root?: boolean | undefined
2165
2180
  readonly context?: Context.Context<never> | undefined
2166
2181
  }) => <A, E, R>(self: Effect.Effect<A, E, R>) => Effect.Effect<A, E, Exclude<R, Tracer.ParentSpan>>,
2167
2182
  <A, E, R>(self: Effect.Effect<A, E, R>, name: string, options?: {
2168
2183
  readonly attributes?: Record<string, unknown> | undefined
2169
2184
  readonly links?: ReadonlyArray<Tracer.SpanLink> | undefined
2170
- readonly parent?: Tracer.ParentSpan | undefined
2185
+ readonly parent?: Tracer.AnySpan | undefined
2171
2186
  readonly root?: boolean | undefined
2172
2187
  readonly context?: Context.Context<never> | undefined
2173
2188
  }) => Effect.Effect<A, E, Exclude<R, Tracer.ParentSpan>>
@@ -981,8 +981,11 @@ export const sync = <OutDone>(
981
981
  return op
982
982
  }
983
983
 
984
- /** @internal */
985
- export const unit: Channel.Channel<never> = succeedNow(void 0)
984
+ const void_: Channel.Channel<never> = succeedNow(void 0)
985
+ export {
986
+ /** @internal */
987
+ void_ as void
988
+ }
986
989
 
987
990
  /** @internal */
988
991
  export const write = <OutElem>(