effect 2.4.19 → 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 (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 +288 -0
  25. package/dist/cjs/FiberHandle.js.map +1 -0
  26. package/dist/cjs/FiberMap.js +86 -27
  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 +46 -47
  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} +39 -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 +247 -0
  329. package/dist/esm/FiberHandle.js.map +1 -0
  330. package/dist/esm/FiberMap.js +85 -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 +46 -47
  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} +47 -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 +414 -0
  504. package/src/FiberMap.ts +181 -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 +49 -52
  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
@@ -27,7 +27,9 @@ export type ScopedCacheTypeId = typeof ScopedCacheTypeId
27
27
  * @since 2.0.0
28
28
  * @category models
29
29
  */
30
- export interface ScopedCache<in Key, out Error, out Value> extends ScopedCache.Variance<Key, Error, Value>, Pipeable {
30
+ export interface ScopedCache<in Key, out Value, out Error = never>
31
+ extends ScopedCache.Variance<Key, Value, Error>, Pipeable
32
+ {
31
33
  /**
32
34
  * Retrieves the value associated with the specified key if it exists.
33
35
  * Otherwise returns `Option.none`.
@@ -98,7 +100,7 @@ export declare namespace ScopedCache {
98
100
  * @since 2.0.0
99
101
  * @category models
100
102
  */
101
- export interface Variance<in Key, out Error, out Value> {
103
+ export interface Variance<in Key, out Value, out Error> {
102
104
  readonly [ScopedCacheTypeId]: {
103
105
  _Key: Types.Contravariant<Key>
104
106
  _Error: Types.Covariant<Error>
@@ -114,13 +116,13 @@ export declare namespace ScopedCache {
114
116
  * @since 2.0.0
115
117
  * @category constructors
116
118
  */
117
- export const make: <Key, Environment, Error, Value>(
119
+ export const make: <Key, Value, Error = never, Environment = never>(
118
120
  options: {
119
- readonly lookup: Lookup<Key, Environment, Error, Value>
121
+ readonly lookup: Lookup<Key, Value, Error, Environment>
120
122
  readonly capacity: number
121
123
  readonly timeToLive: Duration.DurationInput
122
124
  }
123
- ) => Effect.Effect<ScopedCache<Key, Error, Value>, never, Scope.Scope | Environment> = internal.make
125
+ ) => Effect.Effect<ScopedCache<Key, Value, Error>, never, Scope.Scope | Environment> = internal.make
124
126
 
125
127
  /**
126
128
  * Constructs a new cache with the specified capacity, time to live, and
@@ -130,13 +132,13 @@ export const make: <Key, Environment, Error, Value>(
130
132
  * @since 2.0.0
131
133
  * @category constructors
132
134
  */
133
- export const makeWith: <Key, Environment, Error, Value>(
135
+ export const makeWith: <Key, Value, Error = never, Environment = never>(
134
136
  options: {
135
137
  readonly capacity: number
136
- readonly lookup: Lookup<Key, Environment, Error, Value>
138
+ readonly lookup: Lookup<Key, Value, Error, Environment>
137
139
  readonly timeToLive: (exit: Exit.Exit<Value, Error>) => Duration.DurationInput
138
140
  }
139
- ) => Effect.Effect<ScopedCache<Key, Error, Value>, never, Scope.Scope | Environment> = internal.makeWith
141
+ ) => Effect.Effect<ScopedCache<Key, Value, Error>, never, Scope.Scope | Environment> = internal.makeWith
140
142
 
141
143
  /**
142
144
  * Similar to `Cache.Lookup`, but executes the lookup function within a `Scope`.
@@ -144,6 +146,6 @@ export const makeWith: <Key, Environment, Error, Value>(
144
146
  * @since 2.0.0
145
147
  * @category models
146
148
  */
147
- export type Lookup<Key, Environment, Error, Value> = (
149
+ export type Lookup<Key, Value, Error = never, Environment = never> = (
148
150
  key: Key
149
151
  ) => Effect.Effect<Value, Error, Environment | Scope.Scope>
package/src/SortedSet.ts CHANGED
@@ -14,7 +14,7 @@ import { pipeArguments } from "./Pipeable.js"
14
14
  import type { Predicate } from "./Predicate.js"
15
15
  import { hasProperty } from "./Predicate.js"
16
16
  import * as RBT from "./RedBlackTree.js"
17
- import type { Invariant, NoInfer } from "./Types.js"
17
+ import type { Invariant } from "./Types.js"
18
18
 
19
19
  const TypeId: unique symbol = Symbol.for("effect/SortedSet")
20
20
 
package/src/Stream.ts CHANGED
@@ -29,7 +29,7 @@ import type * as Emit from "./StreamEmit.js"
29
29
  import type * as HaltStrategy from "./StreamHaltStrategy.js"
30
30
  import type * as Take from "./Take.js"
31
31
  import type * as Tracer from "./Tracer.js"
32
- import type { Covariant, MergeRecord, NoInfer } from "./Types.js"
32
+ import type { Covariant, MergeRecord } from "./Types.js"
33
33
  import type * as Unify from "./Unify.js"
34
34
 
35
35
  /**
@@ -3707,7 +3707,7 @@ export const throttleEffect: {
3707
3707
  } = internal.throttleEffect
3708
3708
 
3709
3709
  /**
3710
- * A stream that emits Unit values spaced by the specified duration.
3710
+ * A stream that emits void values spaced by the specified duration.
3711
3711
  *
3712
3712
  * @since 2.0.0
3713
3713
  * @category constructors
@@ -3915,13 +3915,16 @@ export const unfoldEffect: <S, A, E, R>(
3915
3915
  f: (s: S) => Effect.Effect<Option.Option<readonly [A, S]>, E, R>
3916
3916
  ) => Stream<A, E, R> = internal.unfoldEffect
3917
3917
 
3918
- /**
3919
- * A stream that contains a single `Unit` value.
3920
- *
3921
- * @since 2.0.0
3922
- * @category constructors
3923
- */
3924
- export const unit: Stream<void> = internal.unit
3918
+ const void_: Stream<void> = internal.void
3919
+ export {
3920
+ /**
3921
+ * A stream that contains a single `void` value.
3922
+ *
3923
+ * @since 2.0.0
3924
+ * @category constructors
3925
+ */
3926
+ void_ as void
3927
+ }
3925
3928
 
3926
3929
  /**
3927
3930
  * Creates a stream produced from an `Effect`.
@@ -4025,7 +4028,7 @@ export const withSpan: {
4025
4028
  options?: {
4026
4029
  readonly attributes?: Record<string, unknown> | undefined
4027
4030
  readonly links?: ReadonlyArray<Tracer.SpanLink> | undefined
4028
- readonly parent?: Tracer.ParentSpan | undefined
4031
+ readonly parent?: Tracer.AnySpan | undefined
4029
4032
  readonly root?: boolean | undefined
4030
4033
  readonly context?: Context.Context<never> | undefined
4031
4034
  } | undefined
@@ -4036,7 +4039,7 @@ export const withSpan: {
4036
4039
  options?: {
4037
4040
  readonly attributes?: Record<string, unknown> | undefined
4038
4041
  readonly links?: ReadonlyArray<Tracer.SpanLink> | undefined
4039
- readonly parent?: Tracer.ParentSpan | undefined
4042
+ readonly parent?: Tracer.AnySpan | undefined
4040
4043
  readonly root?: boolean | undefined
4041
4044
  readonly context?: Context.Context<never> | undefined
4042
4045
  } | undefined
@@ -102,10 +102,22 @@ export const isBoth: (self: HaltStrategy) => self is Both = internal.isBoth
102
102
  export const isEither: (self: HaltStrategy) => self is Either = internal.isEither
103
103
 
104
104
  /**
105
+ * Folds over the specified `HaltStrategy` using the provided case functions.
106
+ *
105
107
  * @since 2.0.0
106
108
  * @category folding
107
109
  */
108
110
  export const match: {
109
- <Z>(onLeft: () => Z, onRight: () => Z, onBoth: () => Z, onEither: () => Z): (self: HaltStrategy) => Z
110
- <Z>(self: HaltStrategy, onLeft: () => Z, onRight: () => Z, onBoth: () => Z, onEither: () => Z): Z
111
+ <Z>(options: {
112
+ readonly onLeft: () => Z
113
+ readonly onRight: () => Z
114
+ readonly onBoth: () => Z
115
+ readonly onEither: () => Z
116
+ }): (self: HaltStrategy) => Z
117
+ <Z>(self: HaltStrategy, options: {
118
+ readonly onLeft: () => Z
119
+ readonly onRight: () => Z
120
+ readonly onBoth: () => Z
121
+ readonly onEither: () => Z
122
+ }): Z
111
123
  } = internal.match
package/src/String.ts CHANGED
@@ -6,16 +6,16 @@
6
6
  * @since 2.0.0
7
7
  */
8
8
 
9
+ import type { NonEmptyArray } from "./Array.js"
9
10
  import * as equivalence from "./Equivalence.js"
10
11
  import { dual } from "./Function.js"
11
- import * as readonlyArray from "./internal/readonlyArray.js"
12
+ import * as readonlyArray from "./internal/array.js"
12
13
  import * as number from "./Number.js"
13
14
  import * as Option from "./Option.js"
14
15
  import * as order from "./Order.js"
15
16
  import type * as Ordering from "./Ordering.js"
16
17
  import type { Refinement } from "./Predicate.js"
17
18
  import * as predicate from "./Predicate.js"
18
- import type { NonEmptyArray } from "./ReadonlyArray.js"
19
19
 
20
20
  /**
21
21
  * Tests if a value is a `string`.
@@ -624,6 +624,49 @@ export const stripMarginWith: {
624
624
  */
625
625
  export const stripMargin = (self: string): string => stripMarginWith(self, "|")
626
626
 
627
+ /**
628
+ * @since 2.0.0
629
+ */
630
+ export const snakeToCamel = (self: string): string => {
631
+ let str = self[0]
632
+ for (let i = 1; i < self.length; i++) {
633
+ str += self[i] === "_" ? self[++i].toUpperCase() : self[i]
634
+ }
635
+ return str
636
+ }
637
+
638
+ /**
639
+ * @since 2.0.0
640
+ */
641
+ export const snakeToPascal = (self: string): string => {
642
+ let str = self[0].toUpperCase()
643
+ for (let i = 1; i < self.length; i++) {
644
+ str += self[i] === "_" ? self[++i].toUpperCase() : self[i]
645
+ }
646
+ return str
647
+ }
648
+
649
+ /**
650
+ * @since 2.0.0
651
+ */
652
+ export const snakeToKebab = (self: string): string => self.replace(/_/g, "-")
653
+
654
+ /**
655
+ * @since 2.0.0
656
+ */
657
+ export const camelToSnake = (self: string): string => self.replace(/([A-Z])/g, "_$1").toLowerCase()
658
+
659
+ /**
660
+ * @since 2.0.0
661
+ */
662
+ export const pascalToSnake = (self: string): string =>
663
+ (self.slice(0, 1) + self.slice(1).replace(/([A-Z])/g, "_$1")).toLowerCase()
664
+
665
+ /**
666
+ * @since 2.0.0
667
+ */
668
+ export const kebabToSnake = (self: string): string => self.replace(/-/g, "_")
669
+
627
670
  class LinesIterator implements IterableIterator<string> {
628
671
  private index: number
629
672
  private readonly length: number
@@ -1,6 +1,7 @@
1
1
  /**
2
2
  * @since 2.0.0
3
3
  */
4
+ import * as RA from "./Array.js"
4
5
  import * as Context from "./Context.js"
5
6
  import type * as Effect from "./Effect.js"
6
7
  import * as Equal from "./Equal.js"
@@ -11,7 +12,6 @@ import * as core from "./internal/core.js"
11
12
  import * as fiber from "./internal/fiber.js"
12
13
  import * as MutableRef from "./MutableRef.js"
13
14
  import { hasProperty } from "./Predicate.js"
14
- import * as RA from "./ReadonlyArray.js"
15
15
  import * as Ref from "./Ref.js"
16
16
  import * as SortedSet from "./SortedSet.js"
17
17
  import * as TestAnnotation from "./TestAnnotation.js"
package/src/TestClock.ts CHANGED
@@ -209,7 +209,7 @@ export class TestClockImpl implements TestClock {
209
209
  core.flatMap((shouldAwait) =>
210
210
  shouldAwait ?
211
211
  pipe(this.warningStart(), core.zipRight(core.deferredAwait(deferred))) :
212
- pipe(core.deferredSucceed(deferred, void 0), core.asUnit)
212
+ pipe(core.deferredSucceed(deferred, void 0), core.asVoid)
213
213
  )
214
214
  ))
215
215
  }
@@ -250,7 +250,7 @@ export class TestClockImpl implements TestClock {
250
250
  }
251
251
  /**
252
252
  * Captures a "snapshot" of the identifier and status of all fibers in this
253
- * test other than the current fiber. Fails with the `Unit` value if any of
253
+ * test other than the current fiber. Fails with the `void` value if any of
254
254
  * these fibers are not done or suspended. Note that because we cannot
255
255
  * synchronize on the status of multiple fibers at the same time this
256
256
  * snapshot may not be fully consistent.
@@ -409,7 +409,7 @@ export class TestClockImpl implements TestClock {
409
409
  core.flatMap((option) => {
410
410
  switch (option._tag) {
411
411
  case "None": {
412
- return core.unit
412
+ return core.void
413
413
  }
414
414
  case "Some": {
415
415
  const [end, deferred] = option.value
package/src/Tracer.ts CHANGED
@@ -26,7 +26,7 @@ export interface Tracer {
26
26
  readonly [TracerTypeId]: TracerTypeId
27
27
  span(
28
28
  name: string,
29
- parent: Option.Option<ParentSpan>,
29
+ parent: Option.Option<AnySpan>,
30
30
  context: Context.Context<never>,
31
31
  links: ReadonlyArray<SpanLink>,
32
32
  startTime: bigint
@@ -52,13 +52,21 @@ export type SpanStatus = {
52
52
  * @since 2.0.0
53
53
  * @category models
54
54
  */
55
- export type ParentSpan = Span | ExternalSpan
55
+ export type AnySpan = Span | ExternalSpan
56
56
 
57
57
  /**
58
58
  * @since 2.0.0
59
59
  * @category tags
60
60
  */
61
- export const ParentSpan: Context.Tag<ParentSpan, ParentSpan> = internal.spanTag
61
+ export interface ParentSpan {
62
+ readonly _: unique symbol
63
+ }
64
+
65
+ /**
66
+ * @since 2.0.0
67
+ * @category tags
68
+ */
69
+ export const ParentSpan: Context.Tag<ParentSpan, AnySpan> = internal.spanTag
62
70
 
63
71
  /**
64
72
  * @since 2.0.0
@@ -81,7 +89,7 @@ export interface Span {
81
89
  readonly name: string
82
90
  readonly spanId: string
83
91
  readonly traceId: string
84
- readonly parent: Option.Option<ParentSpan>
92
+ readonly parent: Option.Option<AnySpan>
85
93
  readonly context: Context.Context<never>
86
94
  readonly status: SpanStatus
87
95
  readonly attributes: ReadonlyMap<string, unknown>
@@ -98,7 +106,7 @@ export interface Span {
98
106
  */
99
107
  export interface SpanLink {
100
108
  readonly _tag: "SpanLink"
101
- readonly span: ParentSpan
109
+ readonly span: AnySpan
102
110
  readonly attributes: Readonly<Record<string, unknown>>
103
111
  }
104
112
 
package/src/Trie.ts CHANGED
@@ -20,7 +20,7 @@ import type { Inspectable } from "./Inspectable.js"
20
20
  import * as TR from "./internal/trie.js"
21
21
  import type { Option } from "./Option.js"
22
22
  import type { Pipeable } from "./Pipeable.js"
23
- import type { Covariant, NoInfer } from "./Types.js"
23
+ import type { Covariant } from "./Types.js"
24
24
 
25
25
  const TypeId: unique symbol = TR.TrieTypeId as TypeId
26
26
 
package/src/Types.ts CHANGED
@@ -170,14 +170,6 @@ export type Mutable<T> = {
170
170
  -readonly [P in keyof T]: T[P]
171
171
  }
172
172
 
173
- /**
174
- * Avoid inference on a specific parameter
175
- *
176
- * @since 2.0.0
177
- * @category models
178
- */
179
- export type NoInfer<A> = [A][A extends any ? 0 : never]
180
-
181
173
  /**
182
174
  * Invariant helper.
183
175
  *
package/src/index.ts CHANGED
@@ -29,6 +29,13 @@ export {
29
29
  unsafeCoerce
30
30
  } from "./Function.js"
31
31
 
32
+ /**
33
+ * This module provides utility functions for working with arrays in TypeScript.
34
+ *
35
+ * @since 2.0.0
36
+ */
37
+ export * as Array from "./Array.js"
38
+
32
39
  /**
33
40
  * This module provides utility functions and type class instances for working with the `BigDecimal` type in TypeScript.
34
41
  * It includes functions for basic arithmetic operations, as well as type class instances for `Equivalence` and `Order`.
@@ -255,6 +262,11 @@ export * as Exit from "./Exit.js"
255
262
  */
256
263
  export * as Fiber from "./Fiber.js"
257
264
 
265
+ /**
266
+ * @since 2.0.0
267
+ */
268
+ export * as FiberHandle from "./FiberHandle.js"
269
+
258
270
  /**
259
271
  * @since 2.0.0
260
272
  */
@@ -575,19 +587,12 @@ export * as RateLimiter from "./RateLimiter.js"
575
587
  */
576
588
  export * as Readable from "./Readable.js"
577
589
 
578
- /**
579
- * This module provides utility functions for working with arrays in TypeScript.
580
- *
581
- * @since 2.0.0
582
- */
583
- export * as ReadonlyArray from "./ReadonlyArray.js"
584
-
585
590
  /**
586
591
  * This module provides utility functions for working with records in TypeScript.
587
592
  *
588
593
  * @since 2.0.0
589
594
  */
590
- export * as ReadonlyRecord from "./ReadonlyRecord.js"
595
+ export * as Record from "./Record.js"
591
596
 
592
597
  /**
593
598
  * @since 2.0.0
@@ -2,7 +2,7 @@
2
2
  * @since 2.0.0
3
3
  */
4
4
 
5
- import type { NonEmptyArray } from "../ReadonlyArray.js"
5
+ import type { NonEmptyArray } from "../Array.js"
6
6
 
7
7
  /** @internal */
8
8
  export const isNonEmptyArray = <A>(self: ReadonlyArray<A>): self is NonEmptyArray<A> => self.length > 0
@@ -29,13 +29,13 @@ import * as fiberRuntime from "./fiberRuntime.js"
29
29
  *
30
30
  * @internal
31
31
  */
32
- export type MapValue<Key, Error, Value> =
33
- | Complete<Key, Error, Value>
34
- | Pending<Key, Error, Value>
35
- | Refreshing<Key, Error, Value>
32
+ export type MapValue<Key, Value, Error> =
33
+ | Complete<Key, Value, Error>
34
+ | Pending<Key, Value, Error>
35
+ | Refreshing<Key, Value, Error>
36
36
 
37
37
  /** @internal */
38
- export interface Complete<out Key, out Error, out Value> {
38
+ export interface Complete<out Key, out Value, out Error> {
39
39
  readonly _tag: "Complete"
40
40
  readonly key: MapKey<Key>
41
41
  readonly exit: Exit.Exit<Value, Error>
@@ -44,26 +44,26 @@ export interface Complete<out Key, out Error, out Value> {
44
44
  }
45
45
 
46
46
  /** @internal */
47
- export interface Pending<out Key, in out Error, in out Value> {
47
+ export interface Pending<out Key, in out Value, in out Error> {
48
48
  readonly _tag: "Pending"
49
49
  readonly key: MapKey<Key>
50
50
  readonly deferred: Deferred.Deferred<Value, Error>
51
51
  }
52
52
 
53
53
  /** @internal */
54
- export interface Refreshing<out Key, in out Error, in out Value> {
54
+ export interface Refreshing<out Key, in out Value, in out Error> {
55
55
  readonly _tag: "Refreshing"
56
56
  readonly deferred: Deferred.Deferred<Value, Error>
57
- readonly complete: Complete<Key, Error, Value>
57
+ readonly complete: Complete<Key, Value, Error>
58
58
  }
59
59
 
60
60
  /** @internal */
61
- export const complete = <Key, Error, Value>(
61
+ export const complete = <Key, Value, Error>(
62
62
  key: MapKey<Key>,
63
63
  exit: Exit.Exit<Value, Error>,
64
64
  entryStats: Cache.EntryStats,
65
65
  timeToLiveMillis: number
66
- ): MapValue<Key, Error, Value> =>
66
+ ): MapValue<Key, Value, Error> =>
67
67
  Data.struct({
68
68
  _tag: "Complete" as const,
69
69
  key,
@@ -73,10 +73,10 @@ export const complete = <Key, Error, Value>(
73
73
  })
74
74
 
75
75
  /** @internal */
76
- export const pending = <Key, Error, Value>(
76
+ export const pending = <Key, Value, Error>(
77
77
  key: MapKey<Key>,
78
78
  deferred: Deferred.Deferred<Value, Error>
79
- ): MapValue<Key, Error, Value> =>
79
+ ): MapValue<Key, Value, Error> =>
80
80
  Data.struct({
81
81
  _tag: "Pending" as const,
82
82
  key,
@@ -84,10 +84,10 @@ export const pending = <Key, Error, Value>(
84
84
  })
85
85
 
86
86
  /** @internal */
87
- export const refreshing = <Key, Error, Value>(
87
+ export const refreshing = <Key, Value, Error>(
88
88
  deferred: Deferred.Deferred<Value, Error>,
89
- complete: Complete<Key, Error, Value>
90
- ): MapValue<Key, Error, Value> =>
89
+ complete: Complete<Key, Value, Error>
90
+ ): MapValue<Key, Value, Error> =>
91
91
  Data.struct({
92
92
  _tag: "Refreshing" as const,
93
93
  deferred,
@@ -216,8 +216,8 @@ export const makeKeySet = <K>(): KeySet<K> => new KeySetImpl<K>()
216
216
  *
217
217
  * @internal
218
218
  */
219
- export interface CacheState<in out Key, in out Error, in out Value> {
220
- map: MutableHashMap.MutableHashMap<Key, MapValue<Key, Error, Value>> // mutable by design
219
+ export interface CacheState<in out Key, in out Value, in out Error> {
220
+ map: MutableHashMap.MutableHashMap<Key, MapValue<Key, Value, Error>> // mutable by design
221
221
  keys: KeySet<Key> // mutable by design
222
222
  accesses: MutableQueue.MutableQueue<MapKey<Key>> // mutable by design
223
223
  updating: MutableRef.MutableRef<boolean> // mutable by design
@@ -230,14 +230,14 @@ export interface CacheState<in out Key, in out Error, in out Value> {
230
230
  *
231
231
  * @internal
232
232
  */
233
- export const makeCacheState = <Key, Error, Value>(
234
- map: MutableHashMap.MutableHashMap<Key, MapValue<Key, Error, Value>>,
233
+ export const makeCacheState = <Key, Value, Error>(
234
+ map: MutableHashMap.MutableHashMap<Key, MapValue<Key, Value, Error>>,
235
235
  keys: KeySet<Key>,
236
236
  accesses: MutableQueue.MutableQueue<MapKey<Key>>,
237
237
  updating: MutableRef.MutableRef<boolean>,
238
238
  hits: number,
239
239
  misses: number
240
- ): CacheState<Key, Error, Value> => ({
240
+ ): CacheState<Key, Value, Error> => ({
241
241
  map,
242
242
  keys,
243
243
  accesses,
@@ -251,7 +251,7 @@ export const makeCacheState = <Key, Error, Value>(
251
251
  *
252
252
  * @internal
253
253
  */
254
- export const initialCacheState = <Key, Error, Value>(): CacheState<Key, Error, Value> =>
254
+ export const initialCacheState = <Key, Value, Error>(): CacheState<Key, Value, Error> =>
255
255
  makeCacheState(
256
256
  MutableHashMap.empty(),
257
257
  makeKeySet(),
@@ -292,14 +292,14 @@ export const makeEntryStats = (loadedMillis: number): Cache.EntryStats => ({
292
292
  loadedMillis
293
293
  })
294
294
 
295
- class CacheImpl<in out Key, in out Error, in out Value> implements Cache.Cache<Key, Error, Value> {
295
+ class CacheImpl<in out Key, in out Value, in out Error> implements Cache.Cache<Key, Value, Error> {
296
296
  readonly [CacheTypeId] = cacheVariance
297
- readonly cacheState: CacheState<Key, Error, Value>
297
+ readonly cacheState: CacheState<Key, Value, Error>
298
298
  constructor(
299
299
  readonly capacity: number,
300
300
  readonly context: Context.Context<any>,
301
301
  readonly fiberId: FiberId.FiberId,
302
- readonly lookup: Cache.Lookup<Key, any, Error, Value>,
302
+ readonly lookup: Cache.Lookup<Key, Value, Error, any>,
303
303
  readonly timeToLive: (exit: Exit.Exit<Value, Error>) => Duration.DurationInput
304
304
  ) {
305
305
  this.cacheState = initialCacheState()
@@ -443,7 +443,7 @@ class CacheImpl<in out Key, in out Error, in out Value> implements Cache.Cache<K
443
443
  }
444
444
  }
445
445
  if (value === undefined) {
446
- return core.asUnit(this.lookupValueOf(key, deferred))
446
+ return core.asVoid(this.lookupValueOf(key, deferred))
447
447
  } else {
448
448
  switch (value._tag) {
449
449
  case "Complete": {
@@ -452,7 +452,7 @@ class CacheImpl<in out Key, in out Error, in out Value> implements Cache.Cache<K
452
452
  if (Equal.equals(found, value)) {
453
453
  MutableHashMap.remove(this.cacheState.map, k)
454
454
  }
455
- return core.asUnit(this.get(key))
455
+ return core.asVoid(this.get(key))
456
456
  }
457
457
  // Only trigger the lookup if we're still the current value, `completedResult`
458
458
  return pipe(
@@ -460,13 +460,13 @@ class CacheImpl<in out Key, in out Error, in out Value> implements Cache.Cache<K
460
460
  effect.when(() => {
461
461
  const current = Option.getOrUndefined(MutableHashMap.get(this.cacheState.map, k))
462
462
  if (Equal.equals(current, value)) {
463
- const mapValue = refreshing(deferred, value as Complete<Key, Error, Value>)
463
+ const mapValue = refreshing(deferred, value as Complete<Key, Value, Error>)
464
464
  MutableHashMap.set(this.cacheState.map, k, mapValue)
465
465
  return true
466
466
  }
467
467
  return false
468
468
  }),
469
- core.asUnit
469
+ core.asVoid
470
470
  )
471
471
  }
472
472
  case "Pending": {
@@ -496,7 +496,7 @@ class CacheImpl<in out Key, in out Error, in out Value> implements Cache.Cache<K
496
496
  MutableHashMap.set(
497
497
  this.cacheState.map,
498
498
  k,
499
- mapValue as Complete<Key, Error, Value>
499
+ mapValue as Complete<Key, Value, Error>
500
500
  )
501
501
  })
502
502
  )
@@ -545,7 +545,7 @@ class CacheImpl<in out Key, in out Error, in out Value> implements Cache.Cache<K
545
545
  }
546
546
 
547
547
  resolveMapValue(
548
- value: MapValue<Key, Error, Value>,
548
+ value: MapValue<Key, Value, Error>,
549
549
  ignorePending = false
550
550
  ): Effect.Effect<Option.Option<Value>, Error> {
551
551
  return effect.clockWith((clock) => {
@@ -665,13 +665,13 @@ class CacheImpl<in out Key, in out Error, in out Value> implements Cache.Cache<K
665
665
  }
666
666
 
667
667
  /** @internal */
668
- export const make = <Key, Environment, Error, Value>(
668
+ export const make = <Key, Value, Error = never, Environment = never>(
669
669
  options: {
670
670
  readonly capacity: number
671
671
  readonly timeToLive: Duration.DurationInput
672
- readonly lookup: Cache.Lookup<Key, Environment, Error, Value>
672
+ readonly lookup: Cache.Lookup<Key, Value, Error, Environment>
673
673
  }
674
- ): Effect.Effect<Cache.Cache<Key, Error, Value>, never, Environment> => {
674
+ ): Effect.Effect<Cache.Cache<Key, Value, Error>, never, Environment> => {
675
675
  const timeToLive = Duration.decode(options.timeToLive)
676
676
  return makeWith({
677
677
  capacity: options.capacity,
@@ -681,13 +681,13 @@ export const make = <Key, Environment, Error, Value>(
681
681
  }
682
682
 
683
683
  /** @internal */
684
- export const makeWith = <Key, Environment, Error, Value>(
684
+ export const makeWith = <Key, Value, Error = never, Environment = never>(
685
685
  options: {
686
686
  readonly capacity: number
687
- readonly lookup: Cache.Lookup<Key, Environment, Error, Value>
687
+ readonly lookup: Cache.Lookup<Key, Value, Error, Environment>
688
688
  readonly timeToLive: (exit: Exit.Exit<Value, Error>) => Duration.DurationInput
689
689
  }
690
- ): Effect.Effect<Cache.Cache<Key, Error, Value>, never, Environment> =>
690
+ ): Effect.Effect<Cache.Cache<Key, Value, Error>, never, Environment> =>
691
691
  core.map(
692
692
  fiberRuntime.all([core.context<Environment>(), core.fiberId]),
693
693
  ([context, fiberId]) =>
@@ -701,12 +701,12 @@ export const makeWith = <Key, Environment, Error, Value>(
701
701
  )
702
702
 
703
703
  /** @internal */
704
- export const unsafeMakeWith = <Key, Error, Value>(
704
+ export const unsafeMakeWith = <Key, Value, Error = never>(
705
705
  capacity: number,
706
- lookup: Cache.Lookup<Key, never, Error, Value>,
706
+ lookup: Cache.Lookup<Key, Value, Error>,
707
707
  timeToLive: (exit: Exit.Exit<Value, Error>) => Duration.DurationInput
708
- ): Cache.Cache<Key, Error, Value> =>
709
- new CacheImpl<Key, Error, Value>(
708
+ ): Cache.Cache<Key, Value, Error> =>
709
+ new CacheImpl<Key, Value, Error>(
710
710
  capacity,
711
711
  Context.empty() as Context.Context<any>,
712
712
  none,