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
@@ -0,0 +1,99 @@
1
+ /**
2
+ * @since 2.0.0
3
+ */
4
+ import * as Effect from "./Effect.js"
5
+ import { dual } from "./Function.js"
6
+ import { pipeArguments } from "./Pipeable.js"
7
+ import { hasProperty } from "./Predicate.js"
8
+ import * as Readable from "./Readable.js"
9
+ import * as Stream from "./Stream.js"
10
+
11
+ /**
12
+ * @since 2.0.0
13
+ * @category type ids
14
+ */
15
+ export const TypeId = Symbol.for("effect/Subscribable")
16
+
17
+ /**
18
+ * @since 2.0.0
19
+ * @category type ids
20
+ */
21
+ export type TypeId = typeof TypeId
22
+
23
+ /**
24
+ * @since 2.0.0
25
+ * @category models
26
+ */
27
+ export interface Subscribable<A, E = never, R = never> extends Readable.Readable<A, E, R> {
28
+ readonly [TypeId]: TypeId
29
+ readonly changes: Stream.Stream<A, E, R>
30
+ }
31
+
32
+ /**
33
+ * @since 2.0.0
34
+ * @category refinements
35
+ */
36
+ export const isSubscribable = (u: unknown): u is Subscribable<unknown, unknown, unknown> => hasProperty(u, TypeId)
37
+
38
+ const Proto: Omit<Subscribable<any>, "get" | "changes"> = {
39
+ [Readable.TypeId]: Readable.TypeId,
40
+ [TypeId]: TypeId,
41
+ pipe() {
42
+ return pipeArguments(this, arguments)
43
+ }
44
+ }
45
+
46
+ /**
47
+ * @since 2.0.0
48
+ * @category constructors
49
+ */
50
+ export const make = <A, E, R>(options: {
51
+ readonly get: Effect.Effect<A, E, R>
52
+ readonly changes: Stream.Stream<A, E, R>
53
+ }): Subscribable<A, E, R> => Object.assign(Object.create(Proto), options)
54
+
55
+ /**
56
+ * @since 2.0.0
57
+ * @category combinators
58
+ */
59
+ export const map: {
60
+ <A, B>(f: (a: NoInfer<A>) => B): <E, R>(fa: Subscribable<A, E, R>) => Subscribable<B, E, R>
61
+ <A, E, R, B>(self: Subscribable<A, E, R>, f: (a: NoInfer<A>) => B): Subscribable<B, E, R>
62
+ } = dual(2, <A, E, R, B>(self: Subscribable<A, E, R>, f: (a: NoInfer<A>) => B): Subscribable<B, E, R> =>
63
+ make({
64
+ get: Effect.map(self.get, f),
65
+ changes: Stream.map(self.changes, f)
66
+ }))
67
+
68
+ /**
69
+ * @since 2.0.0
70
+ * @category combinators
71
+ */
72
+ export const mapEffect: {
73
+ <A, B, E2, R2>(
74
+ f: (a: NoInfer<A>) => Effect.Effect<B, E2, R2>
75
+ ): <E, R>(fa: Subscribable<A, E, R>) => Subscribable<B, E | E2, R | R2>
76
+ <A, E, R, B, E2, R2>(
77
+ self: Subscribable<A, E, R>,
78
+ f: (a: NoInfer<A>) => Effect.Effect<B, E2, R2>
79
+ ): Subscribable<B, E | E2, R | R2>
80
+ } = dual(2, <A, E, R, B, E2, R2>(
81
+ self: Subscribable<A, E, R>,
82
+ f: (a: NoInfer<A>) => Effect.Effect<B, E2, R2>
83
+ ): Subscribable<B, E | E2, R | R2> =>
84
+ make({
85
+ get: Effect.flatMap(self.get, f),
86
+ changes: Stream.mapEffect(self.changes, f)
87
+ }))
88
+
89
+ /**
90
+ * @since 2.0.0
91
+ * @category constructors
92
+ */
93
+ export const unwrap = <A, E, R, E1, R1>(
94
+ effect: Effect.Effect<Subscribable<A, E, R>, E1, R1>
95
+ ): Subscribable<A, E | E1, R | R1> =>
96
+ make({
97
+ get: Effect.flatMap(effect, (s) => s.get),
98
+ changes: Stream.unwrap(Effect.map(effect, (s) => s.changes))
99
+ })
@@ -4,10 +4,10 @@
4
4
  import type * as Effect from "./Effect.js"
5
5
  import * as internal from "./internal/subscriptionRef.js"
6
6
  import type * as Option from "./Option.js"
7
- import type { Pipeable } from "./Pipeable.js"
8
7
  import type * as PubSub from "./PubSub.js"
9
8
  import * as Ref from "./Ref.js"
10
9
  import type * as Stream from "./Stream.js"
10
+ import type { Subscribable } from "./Subscribable.js"
11
11
  import * as Synchronized from "./SynchronizedRef.js"
12
12
  import type * as Types from "./Types.js"
13
13
 
@@ -31,7 +31,7 @@ export type SubscriptionRefTypeId = typeof SubscriptionRefTypeId
31
31
  * @category models
32
32
  */
33
33
  export interface SubscriptionRef<in out A>
34
- extends SubscriptionRef.Variance<A>, Synchronized.SynchronizedRef<A>, Pipeable
34
+ extends SubscriptionRef.Variance<A>, Synchronized.SynchronizedRef<A>, Subscribable<A>
35
35
  {
36
36
  /** @internal */
37
37
  readonly ref: Ref.Ref<A>
@@ -8,6 +8,7 @@ import type * as Fiber from "./Fiber.js"
8
8
  import { pipe } from "./Function.js"
9
9
  import * as Hash from "./Hash.js"
10
10
  import * as HashSet from "./HashSet.js"
11
+ import { getBugErrorMessage } from "./internal/errors.js"
11
12
  import type * as MutableRef from "./MutableRef.js"
12
13
  import { hasProperty } from "./Predicate.js"
13
14
  import type * as SortedSet from "./SortedSet.js"
@@ -96,7 +97,7 @@ export const compose = <A>(
96
97
  if (Either.isLeft(left) && Either.isRight(right)) {
97
98
  return right
98
99
  }
99
- throw new Error("BUG: TestAnnotation.compose - please report an issue at https://github.com/Effect-TS/effect/issues")
100
+ throw new Error(getBugErrorMessage("TestAnnotation.compose"))
100
101
  }
101
102
 
102
103
  /**
@@ -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
  */
@@ -571,18 +583,16 @@ export * as Random from "./Random.js"
571
583
  export * as RateLimiter from "./RateLimiter.js"
572
584
 
573
585
  /**
574
- * This module provides utility functions for working with arrays in TypeScript.
575
- *
576
586
  * @since 2.0.0
577
587
  */
578
- export * as ReadonlyArray from "./ReadonlyArray.js"
588
+ export * as Readable from "./Readable.js"
579
589
 
580
590
  /**
581
591
  * This module provides utility functions for working with records in TypeScript.
582
592
  *
583
593
  * @since 2.0.0
584
594
  */
585
- export * as ReadonlyRecord from "./ReadonlyRecord.js"
595
+ export * as Record from "./Record.js"
586
596
 
587
597
  /**
588
598
  * @since 2.0.0
@@ -594,6 +604,13 @@ export * as RedBlackTree from "./RedBlackTree.js"
594
604
  */
595
605
  export * as Ref from "./Ref.js"
596
606
 
607
+ /**
608
+ * This module provides utility functions for working with RegExp in TypeScript.
609
+ *
610
+ * @since 2.0.0
611
+ */
612
+ export * as RegExp from "./RegExp.js"
613
+
597
614
  /**
598
615
  * @since 2.0.0
599
616
  */
@@ -740,6 +757,11 @@ export * as String from "./String.js"
740
757
  */
741
758
  export * as Struct from "./Struct.js"
742
759
 
760
+ /**
761
+ * @since 2.0.0
762
+ */
763
+ export * as Subscribable from "./Subscribable.js"
764
+
743
765
  /**
744
766
  * @since 2.0.0
745
767
  */
@@ -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,
@@ -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 Either from "../Either.js"
@@ -11,9 +12,8 @@ import * as Option from "../Option.js"
11
12
  import { pipeArguments } from "../Pipeable.js"
12
13
  import { hasProperty, isFunction } from "../Predicate.js"
13
14
  import type { Predicate, Refinement } from "../Predicate.js"
14
- import * as ReadonlyArray from "../ReadonlyArray.js"
15
- import type { ParentSpan, Span } from "../Tracer.js"
16
- import type { NoInfer } from "../Types.js"
15
+ import type { AnySpan, Span } from "../Tracer.js"
16
+ import { getBugErrorMessage } from "./errors.js"
17
17
  import * as OpCodes from "./opCodes/cause.js"
18
18
 
19
19
  // -----------------------------------------------------------------------------
@@ -584,7 +584,7 @@ const flattenCauseLoop = (
584
584
  while (1) {
585
585
  const [parallel, sequential] = pipe(
586
586
  causes,
587
- ReadonlyArray.reduce(
587
+ Array.reduce(
588
588
  [HashSet.empty<unknown>(), Chunk.empty<Cause.Cause<unknown>>()] as const,
589
589
  ([parallel, sequential], cause) => {
590
590
  const [par, seq] = evaluateCause(cause)
@@ -604,7 +604,7 @@ const flattenCauseLoop = (
604
604
  causes = sequential
605
605
  flattened = updated
606
606
  }
607
- throw new Error("BUG: Cause.flattenCauseLoop - please report an issue at https://github.com/Effect-TS/effect/issues")
607
+ throw new Error(getBugErrorMessage("Cause.flattenCauseLoop"))
608
608
  }
609
609
 
610
610
  // -----------------------------------------------------------------------------
@@ -740,7 +740,7 @@ const evaluateCause = (
740
740
  }
741
741
  }
742
742
  }
743
- throw new Error("BUG: Cause.evaluateCauseLoop - please report an issue at https://github.com/Effect-TS/effect/issues")
743
+ throw new Error(getBugErrorMessage("Cause.evaluateCauseLoop"))
744
744
  }
745
745
 
746
746
  // -----------------------------------------------------------------------------
@@ -990,7 +990,7 @@ export const pretty = <E>(cause: Cause.Cause<E>): string => {
990
990
  message += `\r\n${filterStack(e.stack)}`
991
991
  }
992
992
  if (e.span) {
993
- let current: Span | ParentSpan | undefined = e.span
993
+ let current: Span | AnySpan | undefined = e.span
994
994
  let i = 0
995
995
  while (current && current._tag === "Span" && i < 10) {
996
996
  message += `\r\n at ${current.name}`
@@ -1046,7 +1046,7 @@ export const prettyErrorMessage = (u: unknown): string => {
1046
1046
  hasProperty(u, "toString") &&
1047
1047
  isFunction(u["toString"]) &&
1048
1048
  u["toString"] !== Object.prototype.toString &&
1049
- u["toString"] !== Array.prototype.toString
1049
+ u["toString"] !== globalThis.Array.prototype.toString
1050
1050
  ) {
1051
1051
  return u["toString"]()
1052
1052
  }