effect 2.2.5 → 2.3.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 (693) hide show
  1. package/RateLimiter/package.json +6 -0
  2. package/dist/cjs/Cause.js +14 -1
  3. package/dist/cjs/Cause.js.map +1 -1
  4. package/dist/cjs/Channel.js.map +1 -1
  5. package/dist/cjs/Clock.js.map +1 -1
  6. package/dist/cjs/Console.js.map +1 -1
  7. package/dist/cjs/Context.js +23 -25
  8. package/dist/cjs/Context.js.map +1 -1
  9. package/dist/cjs/Data.js +3 -3
  10. package/dist/cjs/Data.js.map +1 -1
  11. package/dist/cjs/Deferred.js +1 -1
  12. package/dist/cjs/Deferred.js.map +1 -1
  13. package/dist/cjs/Effect.js +9 -9
  14. package/dist/cjs/Effect.js.map +1 -1
  15. package/dist/cjs/Effectable.js.map +1 -1
  16. package/dist/cjs/Either.js.map +1 -1
  17. package/dist/cjs/Exit.js +2 -2
  18. package/dist/cjs/Exit.js.map +1 -1
  19. package/dist/cjs/Fiber.js.map +1 -1
  20. package/dist/cjs/FiberMap.js +3 -3
  21. package/dist/cjs/FiberRef.js.map +1 -1
  22. package/dist/cjs/FiberRefs.js.map +1 -1
  23. package/dist/cjs/FiberSet.js +3 -3
  24. package/dist/cjs/FiberSet.js.map +1 -1
  25. package/dist/cjs/GroupBy.js.map +1 -1
  26. package/dist/cjs/Layer.js.map +1 -1
  27. package/dist/cjs/LogLevel.js.map +1 -1
  28. package/dist/cjs/Logger.js.map +1 -1
  29. package/dist/cjs/Metric.js.map +1 -1
  30. package/dist/cjs/Number.js +20 -1
  31. package/dist/cjs/Number.js.map +1 -1
  32. package/dist/cjs/Option.js.map +1 -1
  33. package/dist/cjs/Pool.js.map +1 -1
  34. package/dist/cjs/PubSub.js.map +1 -1
  35. package/dist/cjs/Queue.js.map +1 -1
  36. package/dist/cjs/Random.js.map +1 -1
  37. package/dist/cjs/RateLimiter.js +38 -0
  38. package/dist/cjs/RateLimiter.js.map +1 -0
  39. package/dist/cjs/ReadonlyRecord.js +45 -9
  40. package/dist/cjs/ReadonlyRecord.js.map +1 -1
  41. package/dist/cjs/Ref.js.map +1 -1
  42. package/dist/cjs/Request.js.map +1 -1
  43. package/dist/cjs/RequestResolver.js.map +1 -1
  44. package/dist/cjs/Resource.js.map +1 -1
  45. package/dist/cjs/Runtime.js +1 -4
  46. package/dist/cjs/Runtime.js.map +1 -1
  47. package/dist/cjs/RuntimeFlags.js.map +1 -1
  48. package/dist/cjs/STM.js.map +1 -1
  49. package/dist/cjs/Schedule.js.map +1 -1
  50. package/dist/cjs/Scope.js.map +1 -1
  51. package/dist/cjs/ScopedRef.js.map +1 -1
  52. package/dist/cjs/SingleProducerAsyncInput.js.map +1 -1
  53. package/dist/cjs/Sink.js.map +1 -1
  54. package/dist/cjs/Stream.js.map +1 -1
  55. package/dist/cjs/SubscriptionRef.js.map +1 -1
  56. package/dist/cjs/Supervisor.js.map +1 -1
  57. package/dist/cjs/SynchronizedRef.js.map +1 -1
  58. package/dist/cjs/TArray.js.map +1 -1
  59. package/dist/cjs/TDeferred.js.map +1 -1
  60. package/dist/cjs/TMap.js.map +1 -1
  61. package/dist/cjs/TPriorityQueue.js.map +1 -1
  62. package/dist/cjs/TPubSub.js.map +1 -1
  63. package/dist/cjs/TQueue.js.map +1 -1
  64. package/dist/cjs/TRandom.js.map +1 -1
  65. package/dist/cjs/TReentrantLock.js.map +1 -1
  66. package/dist/cjs/TRef.js.map +1 -1
  67. package/dist/cjs/TSemaphore.js.map +1 -1
  68. package/dist/cjs/TSet.js.map +1 -1
  69. package/dist/cjs/Take.js +6 -6
  70. package/dist/cjs/Take.js.map +1 -1
  71. package/dist/cjs/TestAnnotation.js +10 -13
  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 +1 -1
  76. package/dist/cjs/TestClock.js.map +1 -1
  77. package/dist/cjs/TestConfig.js +1 -1
  78. package/dist/cjs/TestConfig.js.map +1 -1
  79. package/dist/cjs/TestContext.js.map +1 -1
  80. package/dist/cjs/TestLive.js +1 -1
  81. package/dist/cjs/TestLive.js.map +1 -1
  82. package/dist/cjs/TestServices.js.map +1 -1
  83. package/dist/cjs/TestSized.js +1 -1
  84. package/dist/cjs/TestSized.js.map +1 -1
  85. package/dist/cjs/Utils.js +0 -1
  86. package/dist/cjs/Utils.js.map +1 -1
  87. package/dist/cjs/index.js +4 -2
  88. package/dist/cjs/index.js.map +1 -1
  89. package/dist/cjs/internal/cache.js.map +1 -1
  90. package/dist/cjs/internal/channel/channelExecutor.js.map +1 -1
  91. package/dist/cjs/internal/channel/mergeDecision.js +2 -6
  92. package/dist/cjs/internal/channel/mergeDecision.js.map +1 -1
  93. package/dist/cjs/internal/channel/singleProducerAsyncInput.js.map +1 -1
  94. package/dist/cjs/internal/channel.js +1 -1
  95. package/dist/cjs/internal/channel.js.map +1 -1
  96. package/dist/cjs/internal/clock.js +1 -1
  97. package/dist/cjs/internal/clock.js.map +1 -1
  98. package/dist/cjs/internal/configProvider.js +2 -4
  99. package/dist/cjs/internal/configProvider.js.map +1 -1
  100. package/dist/cjs/internal/console.js.map +1 -1
  101. package/dist/cjs/internal/context.js +31 -22
  102. package/dist/cjs/internal/context.js.map +1 -1
  103. package/dist/cjs/internal/core-effect.js +13 -27
  104. package/dist/cjs/internal/core-effect.js.map +1 -1
  105. package/dist/cjs/internal/core-stream.js.map +1 -1
  106. package/dist/cjs/internal/core.js +61 -130
  107. package/dist/cjs/internal/core.js.map +1 -1
  108. package/dist/cjs/internal/data.js.map +1 -1
  109. package/dist/cjs/internal/defaultServices/console.js +1 -1
  110. package/dist/cjs/internal/defaultServices/console.js.map +1 -1
  111. package/dist/cjs/internal/defaultServices.js.map +1 -1
  112. package/dist/cjs/internal/deferred.js.map +1 -1
  113. package/dist/cjs/internal/differ/contextPatch.js +9 -9
  114. package/dist/cjs/internal/differ/contextPatch.js.map +1 -1
  115. package/dist/cjs/internal/effect/circular.js +7 -10
  116. package/dist/cjs/internal/effect/circular.js.map +1 -1
  117. package/dist/cjs/internal/effectable.js +4 -4
  118. package/dist/cjs/internal/effectable.js.map +1 -1
  119. package/dist/cjs/internal/fiber.js +2 -6
  120. package/dist/cjs/internal/fiber.js.map +1 -1
  121. package/dist/cjs/internal/fiberRuntime.js +10 -19
  122. package/dist/cjs/internal/fiberRuntime.js.map +1 -1
  123. package/dist/cjs/internal/groupBy.js.map +1 -1
  124. package/dist/cjs/internal/keyedPool.js.map +1 -1
  125. package/dist/cjs/internal/layer/circular.js.map +1 -1
  126. package/dist/cjs/internal/layer.js +3 -3
  127. package/dist/cjs/internal/layer.js.map +1 -1
  128. package/dist/cjs/internal/logSpan.js +3 -5
  129. package/dist/cjs/internal/logSpan.js.map +1 -1
  130. package/dist/cjs/internal/metric.js.map +1 -1
  131. package/dist/cjs/internal/pool.js.map +1 -1
  132. package/dist/cjs/internal/pubsub.js +2 -6
  133. package/dist/cjs/internal/pubsub.js.map +1 -1
  134. package/dist/cjs/internal/query.js.map +1 -1
  135. package/dist/cjs/internal/queue.js.map +1 -1
  136. package/dist/cjs/internal/random.js +1 -1
  137. package/dist/cjs/internal/random.js.map +1 -1
  138. package/dist/cjs/internal/rateLimiter.js +44 -0
  139. package/dist/cjs/internal/rateLimiter.js.map +1 -0
  140. package/dist/cjs/internal/ref.js.map +1 -1
  141. package/dist/cjs/internal/reloadable.js +1 -9
  142. package/dist/cjs/internal/reloadable.js.map +1 -1
  143. package/dist/cjs/internal/runtime.js +0 -1
  144. package/dist/cjs/internal/runtime.js.map +1 -1
  145. package/dist/cjs/internal/schedule.js.map +1 -1
  146. package/dist/cjs/internal/scopedCache.js.map +1 -1
  147. package/dist/cjs/internal/scopedRef.js.map +1 -1
  148. package/dist/cjs/internal/sink.js +7 -7
  149. package/dist/cjs/internal/sink.js.map +1 -1
  150. package/dist/cjs/internal/stm/core.js.map +1 -1
  151. package/dist/cjs/internal/stm/stm/stmState.js.map +1 -1
  152. package/dist/cjs/internal/stm/stm/tExit.js +2 -2
  153. package/dist/cjs/internal/stm/stm/tExit.js.map +1 -1
  154. package/dist/cjs/internal/stm/stm/tryCommit.js.map +1 -1
  155. package/dist/cjs/internal/stm/stm.js.map +1 -1
  156. package/dist/cjs/internal/stm/tArray.js.map +1 -1
  157. package/dist/cjs/internal/stm/tDeferred.js +4 -2
  158. package/dist/cjs/internal/stm/tDeferred.js.map +1 -1
  159. package/dist/cjs/internal/stm/tMap.js.map +1 -1
  160. package/dist/cjs/internal/stm/tPriorityQueue.js.map +1 -1
  161. package/dist/cjs/internal/stm/tPubSub.js.map +1 -1
  162. package/dist/cjs/internal/stm/tQueue.js.map +1 -1
  163. package/dist/cjs/internal/stm/tRandom.js +1 -1
  164. package/dist/cjs/internal/stm/tRandom.js.map +1 -1
  165. package/dist/cjs/internal/stm/tReentrantLock.js.map +1 -1
  166. package/dist/cjs/internal/stm/tRef.js.map +1 -1
  167. package/dist/cjs/internal/stm/tSemaphore.js.map +1 -1
  168. package/dist/cjs/internal/stm/tSet.js.map +1 -1
  169. package/dist/cjs/internal/stream/debounceState.js.map +1 -1
  170. package/dist/cjs/internal/stream/handoff.js.map +1 -1
  171. package/dist/cjs/internal/stream/handoffSignal.js.map +1 -1
  172. package/dist/cjs/internal/stream/pull.js.map +1 -1
  173. package/dist/cjs/internal/stream.js +0 -2
  174. package/dist/cjs/internal/stream.js.map +1 -1
  175. package/dist/cjs/internal/subscriptionRef.js.map +1 -1
  176. package/dist/cjs/internal/supervisor.js.map +1 -1
  177. package/dist/cjs/internal/take.js +2 -2
  178. package/dist/cjs/internal/take.js.map +1 -1
  179. package/dist/cjs/internal/testing/sleep.js.map +1 -1
  180. package/dist/cjs/internal/tracer.js +2 -2
  181. package/dist/cjs/internal/tracer.js.map +1 -1
  182. package/dist/cjs/internal/version.js +1 -1
  183. package/dist/dts/Cache.d.ts +20 -20
  184. package/dist/dts/Cache.d.ts.map +1 -1
  185. package/dist/dts/Cause.d.ts +33 -5
  186. package/dist/dts/Cause.d.ts.map +1 -1
  187. package/dist/dts/Channel.d.ts +197 -194
  188. package/dist/dts/Channel.d.ts.map +1 -1
  189. package/dist/dts/Clock.d.ts +7 -7
  190. package/dist/dts/Clock.d.ts.map +1 -1
  191. package/dist/dts/Config.d.ts +1 -1
  192. package/dist/dts/Config.d.ts.map +1 -1
  193. package/dist/dts/ConfigProvider.d.ts +6 -6
  194. package/dist/dts/ConfigProvider.d.ts.map +1 -1
  195. package/dist/dts/Console.d.ts +43 -43
  196. package/dist/dts/Console.d.ts.map +1 -1
  197. package/dist/dts/Context.d.ts +44 -29
  198. package/dist/dts/Context.d.ts.map +1 -1
  199. package/dist/dts/Data.d.ts +38 -57
  200. package/dist/dts/Data.d.ts.map +1 -1
  201. package/dist/dts/Deferred.d.ts +36 -36
  202. package/dist/dts/Deferred.d.ts.map +1 -1
  203. package/dist/dts/Effect.d.ts +732 -729
  204. package/dist/dts/Effect.d.ts.map +1 -1
  205. package/dist/dts/Effectable.d.ts +8 -8
  206. package/dist/dts/Effectable.d.ts.map +1 -1
  207. package/dist/dts/Either.d.ts +2 -3
  208. package/dist/dts/Either.d.ts.map +1 -1
  209. package/dist/dts/Exit.d.ts +74 -74
  210. package/dist/dts/Exit.d.ts.map +1 -1
  211. package/dist/dts/Fiber.d.ts +75 -75
  212. package/dist/dts/Fiber.d.ts.map +1 -1
  213. package/dist/dts/FiberMap.d.ts +22 -22
  214. package/dist/dts/FiberMap.d.ts.map +1 -1
  215. package/dist/dts/FiberRef.d.ts +28 -28
  216. package/dist/dts/FiberRef.d.ts.map +1 -1
  217. package/dist/dts/FiberRefs.d.ts +1 -1
  218. package/dist/dts/FiberRefs.d.ts.map +1 -1
  219. package/dist/dts/FiberSet.d.ts +16 -16
  220. package/dist/dts/FiberSet.d.ts.map +1 -1
  221. package/dist/dts/GroupBy.d.ts +6 -6
  222. package/dist/dts/GroupBy.d.ts.map +1 -1
  223. package/dist/dts/KeyedPool.d.ts +22 -22
  224. package/dist/dts/KeyedPool.d.ts.map +1 -1
  225. package/dist/dts/Layer.d.ts +126 -126
  226. package/dist/dts/Layer.d.ts.map +1 -1
  227. package/dist/dts/LogLevel.d.ts +2 -2
  228. package/dist/dts/LogLevel.d.ts.map +1 -1
  229. package/dist/dts/Logger.d.ts +14 -14
  230. package/dist/dts/Logger.d.ts.map +1 -1
  231. package/dist/dts/MergeDecision.d.ts +7 -7
  232. package/dist/dts/MergeState.d.ts +13 -13
  233. package/dist/dts/MergeState.d.ts.map +1 -1
  234. package/dist/dts/Metric.d.ts +32 -32
  235. package/dist/dts/Metric.d.ts.map +1 -1
  236. package/dist/dts/MetricPolling.d.ts +6 -6
  237. package/dist/dts/MetricPolling.d.ts.map +1 -1
  238. package/dist/dts/Number.d.ts +15 -0
  239. package/dist/dts/Number.d.ts.map +1 -1
  240. package/dist/dts/Option.d.ts +2 -3
  241. package/dist/dts/Option.d.ts.map +1 -1
  242. package/dist/dts/Pool.d.ts +15 -16
  243. package/dist/dts/Pool.d.ts.map +1 -1
  244. package/dist/dts/PubSub.d.ts +18 -18
  245. package/dist/dts/PubSub.d.ts.map +1 -1
  246. package/dist/dts/Queue.d.ts +40 -40
  247. package/dist/dts/Queue.d.ts.map +1 -1
  248. package/dist/dts/Random.d.ts +13 -13
  249. package/dist/dts/Random.d.ts.map +1 -1
  250. package/dist/dts/RateLimiter.d.ts +31 -0
  251. package/dist/dts/RateLimiter.d.ts.map +1 -0
  252. package/dist/dts/ReadonlyArray.d.ts +3 -3
  253. package/dist/dts/ReadonlyRecord.d.ts +37 -8
  254. package/dist/dts/ReadonlyRecord.d.ts.map +1 -1
  255. package/dist/dts/Ref.d.ts +25 -25
  256. package/dist/dts/Ref.d.ts.map +1 -1
  257. package/dist/dts/Reloadable.d.ts +9 -9
  258. package/dist/dts/Reloadable.d.ts.map +1 -1
  259. package/dist/dts/Request.d.ts +27 -28
  260. package/dist/dts/Request.d.ts.map +1 -1
  261. package/dist/dts/RequestBlock.d.ts +3 -3
  262. package/dist/dts/RequestBlock.d.ts.map +1 -1
  263. package/dist/dts/RequestResolver.d.ts +16 -16
  264. package/dist/dts/RequestResolver.d.ts.map +1 -1
  265. package/dist/dts/Resource.d.ts +7 -7
  266. package/dist/dts/Resource.d.ts.map +1 -1
  267. package/dist/dts/Runtime.d.ts +13 -16
  268. package/dist/dts/Runtime.d.ts.map +1 -1
  269. package/dist/dts/RuntimeFlags.d.ts +10 -10
  270. package/dist/dts/RuntimeFlags.d.ts.map +1 -1
  271. package/dist/dts/STM.d.ts +303 -303
  272. package/dist/dts/STM.d.ts.map +1 -1
  273. package/dist/dts/Schedule.d.ts +19 -19
  274. package/dist/dts/Schedule.d.ts.map +1 -1
  275. package/dist/dts/Scope.d.ts +10 -10
  276. package/dist/dts/Scope.d.ts.map +1 -1
  277. package/dist/dts/ScopedCache.d.ts +14 -14
  278. package/dist/dts/ScopedCache.d.ts.map +1 -1
  279. package/dist/dts/ScopedRef.d.ts +5 -5
  280. package/dist/dts/ScopedRef.d.ts.map +1 -1
  281. package/dist/dts/SingleProducerAsyncInput.d.ts +8 -8
  282. package/dist/dts/SingleProducerAsyncInput.d.ts.map +1 -1
  283. package/dist/dts/Sink.d.ts +214 -205
  284. package/dist/dts/Sink.d.ts.map +1 -1
  285. package/dist/dts/Stream.d.ts +595 -592
  286. package/dist/dts/Stream.d.ts.map +1 -1
  287. package/dist/dts/StreamEmit.d.ts +5 -5
  288. package/dist/dts/StreamEmit.d.ts.map +1 -1
  289. package/dist/dts/Streamable.d.ts +2 -2
  290. package/dist/dts/Streamable.d.ts.map +1 -1
  291. package/dist/dts/SubscriptionRef.d.ts +41 -41
  292. package/dist/dts/SubscriptionRef.d.ts.map +1 -1
  293. package/dist/dts/Supervisor.d.ts +17 -17
  294. package/dist/dts/Supervisor.d.ts.map +1 -1
  295. package/dist/dts/SynchronizedRef.d.ts +41 -41
  296. package/dist/dts/SynchronizedRef.d.ts.map +1 -1
  297. package/dist/dts/TArray.d.ts +72 -72
  298. package/dist/dts/TArray.d.ts.map +1 -1
  299. package/dist/dts/TDeferred.d.ts +12 -12
  300. package/dist/dts/TDeferred.d.ts.map +1 -1
  301. package/dist/dts/TMap.d.ts +67 -67
  302. package/dist/dts/TMap.d.ts.map +1 -1
  303. package/dist/dts/TPriorityQueue.d.ts +23 -23
  304. package/dist/dts/TPriorityQueue.d.ts.map +1 -1
  305. package/dist/dts/TPubSub.d.ts +15 -15
  306. package/dist/dts/TPubSub.d.ts.map +1 -1
  307. package/dist/dts/TQueue.d.ts +40 -40
  308. package/dist/dts/TQueue.d.ts.map +1 -1
  309. package/dist/dts/TRandom.d.ts +13 -13
  310. package/dist/dts/TRandom.d.ts.map +1 -1
  311. package/dist/dts/TReentrantLock.d.ts +21 -21
  312. package/dist/dts/TReentrantLock.d.ts.map +1 -1
  313. package/dist/dts/TRef.d.ts +25 -25
  314. package/dist/dts/TRef.d.ts.map +1 -1
  315. package/dist/dts/TSemaphore.d.ts +15 -15
  316. package/dist/dts/TSemaphore.d.ts.map +1 -1
  317. package/dist/dts/TSet.d.ts +49 -49
  318. package/dist/dts/TSet.d.ts.map +1 -1
  319. package/dist/dts/Take.d.ts +41 -41
  320. package/dist/dts/Take.d.ts.map +1 -1
  321. package/dist/dts/TestAnnotation.d.ts +1 -3
  322. package/dist/dts/TestAnnotation.d.ts.map +1 -1
  323. package/dist/dts/TestAnnotations.d.ts +3 -3
  324. package/dist/dts/TestAnnotations.d.ts.map +1 -1
  325. package/dist/dts/TestClock.d.ts +18 -18
  326. package/dist/dts/TestClock.d.ts.map +1 -1
  327. package/dist/dts/TestConfig.d.ts.map +1 -1
  328. package/dist/dts/TestContext.d.ts +2 -2
  329. package/dist/dts/TestContext.d.ts.map +1 -1
  330. package/dist/dts/TestLive.d.ts +1 -1
  331. package/dist/dts/TestLive.d.ts.map +1 -1
  332. package/dist/dts/TestServices.d.ts +31 -31
  333. package/dist/dts/TestServices.d.ts.map +1 -1
  334. package/dist/dts/TestSized.d.ts +2 -2
  335. package/dist/dts/TestSized.d.ts.map +1 -1
  336. package/dist/dts/Tracer.d.ts +1 -1
  337. package/dist/dts/Utils.d.ts.map +1 -1
  338. package/dist/dts/index.d.ts +12 -2
  339. package/dist/dts/index.d.ts.map +1 -1
  340. package/dist/dts/internal/channel/channelExecutor.d.ts +1 -1
  341. package/dist/dts/internal/channel/channelExecutor.d.ts.map +1 -1
  342. package/dist/dts/internal/core-stream.d.ts +1 -1
  343. package/dist/dts/internal/core-stream.d.ts.map +1 -1
  344. package/dist/dts/internal/rateLimiter.d.ts +2 -0
  345. package/dist/dts/internal/rateLimiter.d.ts.map +1 -0
  346. package/dist/dts/internal/stm/stm.d.ts +6 -6
  347. package/dist/dts/internal/stm/stm.d.ts.map +1 -1
  348. package/dist/dts/internal/version.d.ts +1 -1
  349. package/dist/esm/Cause.js +13 -0
  350. package/dist/esm/Cause.js.map +1 -1
  351. package/dist/esm/Channel.js.map +1 -1
  352. package/dist/esm/Clock.js.map +1 -1
  353. package/dist/esm/Console.js.map +1 -1
  354. package/dist/esm/Context.js +22 -24
  355. package/dist/esm/Context.js.map +1 -1
  356. package/dist/esm/Data.js +4 -5
  357. package/dist/esm/Data.js.map +1 -1
  358. package/dist/esm/Deferred.js +1 -1
  359. package/dist/esm/Deferred.js.map +1 -1
  360. package/dist/esm/Effect.js +9 -9
  361. package/dist/esm/Effect.js.map +1 -1
  362. package/dist/esm/Effectable.js.map +1 -1
  363. package/dist/esm/Either.js.map +1 -1
  364. package/dist/esm/Exit.js +2 -2
  365. package/dist/esm/Exit.js.map +1 -1
  366. package/dist/esm/Fiber.js.map +1 -1
  367. package/dist/esm/FiberMap.js +3 -3
  368. package/dist/esm/FiberRef.js.map +1 -1
  369. package/dist/esm/FiberRefs.js.map +1 -1
  370. package/dist/esm/FiberSet.js +3 -3
  371. package/dist/esm/FiberSet.js.map +1 -1
  372. package/dist/esm/GroupBy.js.map +1 -1
  373. package/dist/esm/Layer.js.map +1 -1
  374. package/dist/esm/LogLevel.js.map +1 -1
  375. package/dist/esm/Logger.js.map +1 -1
  376. package/dist/esm/Metric.js.map +1 -1
  377. package/dist/esm/Number.js +18 -0
  378. package/dist/esm/Number.js.map +1 -1
  379. package/dist/esm/Option.js.map +1 -1
  380. package/dist/esm/Pool.js.map +1 -1
  381. package/dist/esm/PubSub.js.map +1 -1
  382. package/dist/esm/Queue.js.map +1 -1
  383. package/dist/esm/Random.js.map +1 -1
  384. package/dist/esm/RateLimiter.js +7 -0
  385. package/dist/esm/RateLimiter.js.map +1 -0
  386. package/dist/esm/ReadonlyRecord.js +44 -8
  387. package/dist/esm/ReadonlyRecord.js.map +1 -1
  388. package/dist/esm/Ref.js.map +1 -1
  389. package/dist/esm/Request.js.map +1 -1
  390. package/dist/esm/RequestResolver.js.map +1 -1
  391. package/dist/esm/Resource.js.map +1 -1
  392. package/dist/esm/Runtime.js +1 -4
  393. package/dist/esm/Runtime.js.map +1 -1
  394. package/dist/esm/RuntimeFlags.js.map +1 -1
  395. package/dist/esm/STM.js.map +1 -1
  396. package/dist/esm/Schedule.js.map +1 -1
  397. package/dist/esm/Scope.js.map +1 -1
  398. package/dist/esm/ScopedRef.js.map +1 -1
  399. package/dist/esm/SingleProducerAsyncInput.js.map +1 -1
  400. package/dist/esm/Sink.js.map +1 -1
  401. package/dist/esm/Stream.js.map +1 -1
  402. package/dist/esm/SubscriptionRef.js.map +1 -1
  403. package/dist/esm/Supervisor.js.map +1 -1
  404. package/dist/esm/SynchronizedRef.js.map +1 -1
  405. package/dist/esm/TArray.js.map +1 -1
  406. package/dist/esm/TDeferred.js.map +1 -1
  407. package/dist/esm/TMap.js.map +1 -1
  408. package/dist/esm/TPriorityQueue.js.map +1 -1
  409. package/dist/esm/TPubSub.js.map +1 -1
  410. package/dist/esm/TQueue.js.map +1 -1
  411. package/dist/esm/TRandom.js.map +1 -1
  412. package/dist/esm/TReentrantLock.js.map +1 -1
  413. package/dist/esm/TRef.js.map +1 -1
  414. package/dist/esm/TSemaphore.js.map +1 -1
  415. package/dist/esm/TSet.js.map +1 -1
  416. package/dist/esm/Take.js +6 -6
  417. package/dist/esm/Take.js.map +1 -1
  418. package/dist/esm/TestAnnotation.js +10 -13
  419. package/dist/esm/TestAnnotation.js.map +1 -1
  420. package/dist/esm/TestAnnotations.js +1 -1
  421. package/dist/esm/TestAnnotations.js.map +1 -1
  422. package/dist/esm/TestClock.js +1 -1
  423. package/dist/esm/TestClock.js.map +1 -1
  424. package/dist/esm/TestConfig.js +1 -1
  425. package/dist/esm/TestConfig.js.map +1 -1
  426. package/dist/esm/TestContext.js.map +1 -1
  427. package/dist/esm/TestLive.js +1 -1
  428. package/dist/esm/TestLive.js.map +1 -1
  429. package/dist/esm/TestServices.js.map +1 -1
  430. package/dist/esm/TestSized.js +1 -1
  431. package/dist/esm/TestSized.js.map +1 -1
  432. package/dist/esm/Utils.js +1 -1
  433. package/dist/esm/Utils.js.map +1 -1
  434. package/dist/esm/index.js +12 -2
  435. package/dist/esm/index.js.map +1 -1
  436. package/dist/esm/internal/cache.js.map +1 -1
  437. package/dist/esm/internal/channel/channelExecutor.js.map +1 -1
  438. package/dist/esm/internal/channel/mergeDecision.js +2 -6
  439. package/dist/esm/internal/channel/mergeDecision.js.map +1 -1
  440. package/dist/esm/internal/channel/singleProducerAsyncInput.js.map +1 -1
  441. package/dist/esm/internal/channel.js +1 -1
  442. package/dist/esm/internal/channel.js.map +1 -1
  443. package/dist/esm/internal/clock.js +1 -1
  444. package/dist/esm/internal/clock.js.map +1 -1
  445. package/dist/esm/internal/configProvider.js +2 -4
  446. package/dist/esm/internal/configProvider.js.map +1 -1
  447. package/dist/esm/internal/console.js.map +1 -1
  448. package/dist/esm/internal/context.js +28 -20
  449. package/dist/esm/internal/context.js.map +1 -1
  450. package/dist/esm/internal/core-effect.js +12 -26
  451. package/dist/esm/internal/core-effect.js.map +1 -1
  452. package/dist/esm/internal/core-stream.js.map +1 -1
  453. package/dist/esm/internal/core.js +57 -127
  454. package/dist/esm/internal/core.js.map +1 -1
  455. package/dist/esm/internal/data.js.map +1 -1
  456. package/dist/esm/internal/defaultServices/console.js +1 -1
  457. package/dist/esm/internal/defaultServices/console.js.map +1 -1
  458. package/dist/esm/internal/defaultServices.js.map +1 -1
  459. package/dist/esm/internal/deferred.js.map +1 -1
  460. package/dist/esm/internal/differ/contextPatch.js +9 -9
  461. package/dist/esm/internal/differ/contextPatch.js.map +1 -1
  462. package/dist/esm/internal/effect/circular.js +5 -8
  463. package/dist/esm/internal/effect/circular.js.map +1 -1
  464. package/dist/esm/internal/effectable.js +4 -4
  465. package/dist/esm/internal/effectable.js.map +1 -1
  466. package/dist/esm/internal/fiber.js +2 -6
  467. package/dist/esm/internal/fiber.js.map +1 -1
  468. package/dist/esm/internal/fiberRuntime.js +10 -19
  469. package/dist/esm/internal/fiberRuntime.js.map +1 -1
  470. package/dist/esm/internal/groupBy.js.map +1 -1
  471. package/dist/esm/internal/keyedPool.js.map +1 -1
  472. package/dist/esm/internal/layer/circular.js.map +1 -1
  473. package/dist/esm/internal/layer.js +3 -3
  474. package/dist/esm/internal/layer.js.map +1 -1
  475. package/dist/esm/internal/logSpan.js +3 -5
  476. package/dist/esm/internal/logSpan.js.map +1 -1
  477. package/dist/esm/internal/metric.js.map +1 -1
  478. package/dist/esm/internal/pool.js.map +1 -1
  479. package/dist/esm/internal/pubsub.js +1 -5
  480. package/dist/esm/internal/pubsub.js.map +1 -1
  481. package/dist/esm/internal/query.js.map +1 -1
  482. package/dist/esm/internal/queue.js.map +1 -1
  483. package/dist/esm/internal/random.js +1 -1
  484. package/dist/esm/internal/random.js.map +1 -1
  485. package/dist/esm/internal/rateLimiter.js +12 -0
  486. package/dist/esm/internal/rateLimiter.js.map +1 -0
  487. package/dist/esm/internal/ref.js.map +1 -1
  488. package/dist/esm/internal/reloadable.js +1 -9
  489. package/dist/esm/internal/reloadable.js.map +1 -1
  490. package/dist/esm/internal/runtime.js +0 -1
  491. package/dist/esm/internal/runtime.js.map +1 -1
  492. package/dist/esm/internal/schedule.js.map +1 -1
  493. package/dist/esm/internal/scopedCache.js.map +1 -1
  494. package/dist/esm/internal/scopedRef.js.map +1 -1
  495. package/dist/esm/internal/sink.js +7 -7
  496. package/dist/esm/internal/sink.js.map +1 -1
  497. package/dist/esm/internal/stm/core.js.map +1 -1
  498. package/dist/esm/internal/stm/stm/stmState.js.map +1 -1
  499. package/dist/esm/internal/stm/stm/tExit.js +2 -2
  500. package/dist/esm/internal/stm/stm/tExit.js.map +1 -1
  501. package/dist/esm/internal/stm/stm/tryCommit.js.map +1 -1
  502. package/dist/esm/internal/stm/stm.js.map +1 -1
  503. package/dist/esm/internal/stm/tArray.js.map +1 -1
  504. package/dist/esm/internal/stm/tDeferred.js +4 -2
  505. package/dist/esm/internal/stm/tDeferred.js.map +1 -1
  506. package/dist/esm/internal/stm/tMap.js.map +1 -1
  507. package/dist/esm/internal/stm/tPriorityQueue.js.map +1 -1
  508. package/dist/esm/internal/stm/tPubSub.js.map +1 -1
  509. package/dist/esm/internal/stm/tQueue.js.map +1 -1
  510. package/dist/esm/internal/stm/tRandom.js +1 -1
  511. package/dist/esm/internal/stm/tRandom.js.map +1 -1
  512. package/dist/esm/internal/stm/tReentrantLock.js.map +1 -1
  513. package/dist/esm/internal/stm/tRef.js.map +1 -1
  514. package/dist/esm/internal/stm/tSemaphore.js.map +1 -1
  515. package/dist/esm/internal/stm/tSet.js.map +1 -1
  516. package/dist/esm/internal/stream/debounceState.js.map +1 -1
  517. package/dist/esm/internal/stream/handoff.js.map +1 -1
  518. package/dist/esm/internal/stream/handoffSignal.js.map +1 -1
  519. package/dist/esm/internal/stream/pull.js.map +1 -1
  520. package/dist/esm/internal/stream.js +0 -2
  521. package/dist/esm/internal/stream.js.map +1 -1
  522. package/dist/esm/internal/subscriptionRef.js.map +1 -1
  523. package/dist/esm/internal/supervisor.js.map +1 -1
  524. package/dist/esm/internal/take.js +2 -2
  525. package/dist/esm/internal/take.js.map +1 -1
  526. package/dist/esm/internal/testing/sleep.js.map +1 -1
  527. package/dist/esm/internal/tracer.js +2 -2
  528. package/dist/esm/internal/tracer.js.map +1 -1
  529. package/dist/esm/internal/version.js +1 -1
  530. package/package.json +9 -1
  531. package/src/Cache.ts +20 -20
  532. package/src/Cause.ts +37 -13
  533. package/src/Channel.ts +802 -794
  534. package/src/Clock.ts +7 -7
  535. package/src/Config.ts +1 -1
  536. package/src/ConfigProvider.ts +6 -6
  537. package/src/Console.ts +44 -48
  538. package/src/Context.ts +52 -30
  539. package/src/Data.ts +38 -61
  540. package/src/Deferred.ts +39 -41
  541. package/src/Effect.ts +1187 -1206
  542. package/src/Effectable.ts +8 -8
  543. package/src/Either.ts +2 -3
  544. package/src/Exit.ts +88 -105
  545. package/src/Fiber.ts +77 -83
  546. package/src/FiberMap.ts +77 -77
  547. package/src/FiberRef.ts +28 -28
  548. package/src/FiberRefs.ts +1 -1
  549. package/src/FiberSet.ts +61 -62
  550. package/src/GroupBy.ts +8 -12
  551. package/src/KeyedPool.ts +22 -22
  552. package/src/Layer.ts +187 -181
  553. package/src/LogLevel.ts +7 -6
  554. package/src/Logger.ts +18 -18
  555. package/src/MergeDecision.ts +7 -7
  556. package/src/MergeState.ts +16 -16
  557. package/src/Metric.ts +39 -39
  558. package/src/MetricPolling.ts +6 -6
  559. package/src/Number.ts +19 -0
  560. package/src/Option.ts +2 -3
  561. package/src/Pool.ts +15 -16
  562. package/src/PubSub.ts +18 -18
  563. package/src/Queue.ts +43 -46
  564. package/src/Random.ts +13 -15
  565. package/src/RateLimiter.ts +37 -0
  566. package/src/ReadonlyRecord.ts +49 -8
  567. package/src/Ref.ts +25 -25
  568. package/src/Reloadable.ts +10 -10
  569. package/src/Request.ts +31 -31
  570. package/src/RequestBlock.ts +3 -3
  571. package/src/RequestResolver.ts +21 -21
  572. package/src/Resource.ts +13 -13
  573. package/src/Runtime.ts +16 -19
  574. package/src/RuntimeFlags.ts +10 -10
  575. package/src/STM.ts +361 -362
  576. package/src/Schedule.ts +19 -19
  577. package/src/Scheduler.ts +2 -2
  578. package/src/Scope.ts +14 -15
  579. package/src/ScopedCache.ts +14 -14
  580. package/src/ScopedRef.ts +7 -7
  581. package/src/SingleProducerAsyncInput.ts +8 -9
  582. package/src/Sink.ts +357 -381
  583. package/src/Stream.ts +935 -1033
  584. package/src/StreamEmit.ts +5 -5
  585. package/src/Streamable.ts +2 -2
  586. package/src/SubscriptionRef.ts +51 -51
  587. package/src/Supervisor.ts +26 -26
  588. package/src/SynchronizedRef.ts +44 -44
  589. package/src/TArray.ts +74 -74
  590. package/src/TDeferred.ts +14 -14
  591. package/src/TMap.ts +72 -72
  592. package/src/TPriorityQueue.ts +23 -24
  593. package/src/TPubSub.ts +15 -15
  594. package/src/TQueue.ts +40 -40
  595. package/src/TRandom.ts +13 -13
  596. package/src/TReentrantLock.ts +21 -21
  597. package/src/TRef.ts +25 -25
  598. package/src/TSemaphore.ts +15 -15
  599. package/src/TSet.ts +49 -49
  600. package/src/Take.ts +51 -51
  601. package/src/TestAnnotation.ts +6 -17
  602. package/src/TestAnnotations.ts +7 -9
  603. package/src/TestClock.ts +39 -45
  604. package/src/TestConfig.ts +1 -3
  605. package/src/TestContext.ts +3 -3
  606. package/src/TestLive.ts +3 -5
  607. package/src/TestServices.ts +45 -47
  608. package/src/TestSized.ts +5 -5
  609. package/src/Tracer.ts +1 -1
  610. package/src/Utils.ts +8 -10
  611. package/src/index.ts +13 -2
  612. package/src/internal/blockedRequests.ts +2 -2
  613. package/src/internal/cache.ts +38 -38
  614. package/src/internal/channel/channelExecutor.ts +65 -73
  615. package/src/internal/channel/channelState.ts +11 -11
  616. package/src/internal/channel/continuation.ts +10 -10
  617. package/src/internal/channel/mergeDecision.ts +14 -16
  618. package/src/internal/channel/mergeState.ts +12 -12
  619. package/src/internal/channel/singleProducerAsyncInput.ts +15 -17
  620. package/src/internal/channel/subexecutor.ts +7 -7
  621. package/src/internal/channel.ts +901 -980
  622. package/src/internal/clock.ts +6 -6
  623. package/src/internal/concurrency.ts +9 -9
  624. package/src/internal/configProvider.ts +29 -36
  625. package/src/internal/console.ts +12 -12
  626. package/src/internal/context.ts +32 -23
  627. package/src/internal/core-effect.ts +655 -616
  628. package/src/internal/core-stream.ts +317 -325
  629. package/src/internal/core.ts +856 -790
  630. package/src/internal/data.ts +2 -3
  631. package/src/internal/dataSource.ts +14 -14
  632. package/src/internal/defaultServices/console.ts +3 -1
  633. package/src/internal/defaultServices.ts +21 -21
  634. package/src/internal/deferred.ts +9 -9
  635. package/src/internal/differ/contextPatch.ts +17 -17
  636. package/src/internal/effect/circular.ts +154 -159
  637. package/src/internal/effectable.ts +7 -7
  638. package/src/internal/fiber.ts +55 -59
  639. package/src/internal/fiberRefs.ts +1 -1
  640. package/src/internal/fiberRuntime.ts +426 -463
  641. package/src/internal/groupBy.ts +59 -62
  642. package/src/internal/keyedPool.ts +37 -37
  643. package/src/internal/layer/circular.ts +37 -37
  644. package/src/internal/layer.ts +235 -240
  645. package/src/internal/logSpan.ts +3 -5
  646. package/src/internal/metric/polling.ts +5 -5
  647. package/src/internal/metric.ts +54 -55
  648. package/src/internal/pool.ts +72 -72
  649. package/src/internal/pubsub.ts +75 -84
  650. package/src/internal/query.ts +25 -27
  651. package/src/internal/queue.ts +65 -70
  652. package/src/internal/random.ts +9 -9
  653. package/src/internal/rateLimiter.ts +30 -0
  654. package/src/internal/ref.ts +24 -24
  655. package/src/internal/reloadable.ts +11 -31
  656. package/src/internal/request.ts +14 -14
  657. package/src/internal/resource.ts +8 -8
  658. package/src/internal/runtime.ts +21 -22
  659. package/src/internal/schedule.ts +131 -134
  660. package/src/internal/scopedCache.ts +35 -32
  661. package/src/internal/scopedRef.ts +14 -14
  662. package/src/internal/sink.ts +507 -565
  663. package/src/internal/stm/core.ts +101 -102
  664. package/src/internal/stm/stm/stmState.ts +10 -10
  665. package/src/internal/stm/stm/tExit.ts +18 -18
  666. package/src/internal/stm/stm/tryCommit.ts +5 -5
  667. package/src/internal/stm/stm.ts +363 -374
  668. package/src/internal/stm/tArray.ts +92 -92
  669. package/src/internal/stm/tDeferred.ts +16 -14
  670. package/src/internal/stm/tMap.ts +83 -84
  671. package/src/internal/stm/tPriorityQueue.ts +24 -25
  672. package/src/internal/stm/tPubSub.ts +37 -38
  673. package/src/internal/stm/tQueue.ts +44 -48
  674. package/src/internal/stm/tRandom.ts +18 -18
  675. package/src/internal/stm/tReentrantLock.ts +28 -28
  676. package/src/internal/stm/tRef.ts +25 -25
  677. package/src/internal/stm/tSemaphore.ts +16 -16
  678. package/src/internal/stm/tSet.ts +51 -52
  679. package/src/internal/stream/debounceState.ts +7 -7
  680. package/src/internal/stream/emit.ts +4 -4
  681. package/src/internal/stream/handoff.ts +19 -19
  682. package/src/internal/stream/handoffSignal.ts +4 -4
  683. package/src/internal/stream/pull.ts +10 -11
  684. package/src/internal/stream.ts +1770 -1788
  685. package/src/internal/subscriptionRef.ts +17 -17
  686. package/src/internal/supervisor.ts +49 -56
  687. package/src/internal/synchronizedRef.ts +27 -27
  688. package/src/internal/take.ts +61 -61
  689. package/src/internal/testing/sleep.ts +2 -2
  690. package/src/internal/testing/suspendedWarningData.ts +2 -2
  691. package/src/internal/testing/warningData.ts +2 -2
  692. package/src/internal/tracer.ts +2 -6
  693. package/src/internal/version.ts +1 -1
package/src/Clock.ts CHANGED
@@ -35,7 +35,7 @@ export interface Clock {
35
35
  /**
36
36
  * Returns the current time in milliseconds.
37
37
  */
38
- readonly currentTimeMillis: Effect.Effect<never, never, number>
38
+ readonly currentTimeMillis: Effect.Effect<number>
39
39
  /**
40
40
  * Unsafely returns the current time in nanoseconds.
41
41
  */
@@ -43,11 +43,11 @@ export interface Clock {
43
43
  /**
44
44
  * Returns the current time in nanoseconds.
45
45
  */
46
- readonly currentTimeNanos: Effect.Effect<never, never, bigint>
46
+ readonly currentTimeNanos: Effect.Effect<bigint>
47
47
  /**
48
48
  * Asynchronously sleeps for the specified duration.
49
49
  */
50
- sleep(duration: Duration.Duration): Effect.Effect<never, never, void>
50
+ sleep(duration: Duration.Duration): Effect.Effect<void>
51
51
  }
52
52
 
53
53
  /**
@@ -83,25 +83,25 @@ export const make: (_: void) => Clock = internal.make
83
83
  * @since 2.0.0
84
84
  * @category constructors
85
85
  */
86
- export const sleep: (duration: Duration.DurationInput) => Effect.Effect<never, never, void> = defaultServices.sleep
86
+ export const sleep: (duration: Duration.DurationInput) => Effect.Effect<void> = defaultServices.sleep
87
87
 
88
88
  /**
89
89
  * @since 2.0.0
90
90
  * @category constructors
91
91
  */
92
- export const currentTimeMillis: Effect.Effect<never, never, number> = defaultServices.currentTimeMillis
92
+ export const currentTimeMillis: Effect.Effect<number> = defaultServices.currentTimeMillis
93
93
 
94
94
  /**
95
95
  * @since 2.0.0
96
96
  * @category constructors
97
97
  */
98
- export const currentTimeNanos: Effect.Effect<never, never, bigint> = defaultServices.currentTimeNanos
98
+ export const currentTimeNanos: Effect.Effect<bigint> = defaultServices.currentTimeNanos
99
99
 
100
100
  /**
101
101
  * @since 2.0.0
102
102
  * @category constructors
103
103
  */
104
- export const clockWith: <R, E, A>(f: (clock: Clock) => Effect.Effect<R, E, A>) => Effect.Effect<R, E, A> =
104
+ export const clockWith: <A, E, R>(f: (clock: Clock) => Effect.Effect<A, E, R>) => Effect.Effect<A, E, R> =
105
105
  defaultServices.clockWith
106
106
 
107
107
  /**
package/src/Config.ts CHANGED
@@ -33,7 +33,7 @@ export type ConfigTypeId = typeof ConfigTypeId
33
33
  * @since 2.0.0
34
34
  * @category models
35
35
  */
36
- export interface Config<out A> extends Config.Variance<A>, Effect.Effect<never, ConfigError.ConfigError, A> {}
36
+ export interface Config<out A> extends Config.Variance<A>, Effect.Effect<A, ConfigError.ConfigError> {}
37
37
 
38
38
  /**
39
39
  * @since 2.0.0
@@ -46,7 +46,7 @@ export interface ConfigProvider extends ConfigProvider.Proto, Pipeable {
46
46
  /**
47
47
  * Loads the specified configuration, or fails with a config error.
48
48
  */
49
- load<A>(config: Config.Config<A>): Effect.Effect<never, ConfigError.ConfigError, A>
49
+ load<A>(config: Config.Config<A>): Effect.Effect<A, ConfigError.ConfigError>
50
50
  /**
51
51
  * Flattens this config provider into a simplified config provider that knows
52
52
  * only how to deal with flat (key/value) properties.
@@ -81,10 +81,10 @@ export declare namespace ConfigProvider {
81
81
  path: ReadonlyArray<string>,
82
82
  config: Config.Config.Primitive<A>,
83
83
  split?: boolean
84
- ): Effect.Effect<never, ConfigError.ConfigError, ReadonlyArray<A>>
84
+ ): Effect.Effect<ReadonlyArray<A>, ConfigError.ConfigError>
85
85
  enumerateChildren(
86
86
  path: ReadonlyArray<string>
87
- ): Effect.Effect<never, ConfigError.ConfigError, HashSet.HashSet<string>>
87
+ ): Effect.Effect<HashSet.HashSet<string>, ConfigError.ConfigError>
88
88
  }
89
89
 
90
90
  /**
@@ -146,7 +146,7 @@ export const ConfigProvider: Context.Tag<ConfigProvider, ConfigProvider> = inter
146
146
  */
147
147
  export const make: (
148
148
  options: {
149
- readonly load: <A>(config: Config.Config<A>) => Effect.Effect<never, ConfigError.ConfigError, A>
149
+ readonly load: <A>(config: Config.Config<A>) => Effect.Effect<A, ConfigError.ConfigError>
150
150
  readonly flattened: ConfigProvider.Flat
151
151
  }
152
152
  ) => ConfigProvider = internal.make
@@ -162,10 +162,10 @@ export const makeFlat: (options: {
162
162
  path: ReadonlyArray<string>,
163
163
  config: Config.Config.Primitive<A>,
164
164
  split: boolean
165
- ) => Effect.Effect<never, ConfigError.ConfigError, ReadonlyArray<A>>
165
+ ) => Effect.Effect<ReadonlyArray<A>, ConfigError.ConfigError>
166
166
  readonly enumerateChildren: (
167
167
  path: ReadonlyArray<string>
168
- ) => Effect.Effect<never, ConfigError.ConfigError, HashSet.HashSet<string>>
168
+ ) => Effect.Effect<HashSet.HashSet<string>, ConfigError.ConfigError>
169
169
  readonly patch: PathPatch.PathPatch
170
170
  }) => ConfigProvider.Flat = internal.makeFlat
171
171
 
package/src/Console.ts CHANGED
@@ -26,27 +26,27 @@ export type TypeId = typeof TypeId
26
26
  */
27
27
  export interface Console {
28
28
  readonly [TypeId]: TypeId
29
- assert(condition: boolean, ...args: ReadonlyArray<any>): Effect<never, never, void>
30
- readonly clear: Effect<never, never, void>
31
- count(label?: string): Effect<never, never, void>
32
- countReset(label?: string): Effect<never, never, void>
33
- debug(...args: ReadonlyArray<any>): Effect<never, never, void>
34
- dir(item: any, options?: any): Effect<never, never, void>
35
- dirxml(...args: ReadonlyArray<any>): Effect<never, never, void>
36
- error(...args: ReadonlyArray<any>): Effect<never, never, void>
29
+ assert(condition: boolean, ...args: ReadonlyArray<any>): Effect<void>
30
+ readonly clear: Effect<void>
31
+ count(label?: string): Effect<void>
32
+ countReset(label?: string): Effect<void>
33
+ debug(...args: ReadonlyArray<any>): Effect<void>
34
+ dir(item: any, options?: any): Effect<void>
35
+ dirxml(...args: ReadonlyArray<any>): Effect<void>
36
+ error(...args: ReadonlyArray<any>): Effect<void>
37
37
  group(options?: {
38
38
  readonly label?: string | undefined
39
39
  readonly collapsed?: boolean | undefined
40
- }): Effect<never, never, void>
41
- readonly groupEnd: Effect<never, never, void>
42
- info(...args: ReadonlyArray<any>): Effect<never, never, void>
43
- log(...args: ReadonlyArray<any>): Effect<never, never, void>
44
- table(tabularData: any, properties?: ReadonlyArray<string>): Effect<never, never, void>
45
- time(label?: string): Effect<never, never, void>
46
- timeEnd(label?: string): Effect<never, never, void>
47
- timeLog(label?: string, ...args: ReadonlyArray<any>): Effect<never, never, void>
48
- trace(...args: ReadonlyArray<any>): Effect<never, never, void>
49
- warn(...args: ReadonlyArray<any>): Effect<never, never, void>
40
+ }): Effect<void>
41
+ readonly groupEnd: Effect<void>
42
+ info(...args: ReadonlyArray<any>): Effect<void>
43
+ log(...args: ReadonlyArray<any>): Effect<void>
44
+ table(tabularData: any, properties?: ReadonlyArray<string>): Effect<void>
45
+ time(label?: string): Effect<void>
46
+ timeEnd(label?: string): Effect<void>
47
+ timeLog(label?: string, ...args: ReadonlyArray<any>): Effect<void>
48
+ trace(...args: ReadonlyArray<any>): Effect<void>
49
+ warn(...args: ReadonlyArray<any>): Effect<void>
50
50
  readonly unsafe: UnsafeConsole
51
51
  }
52
52
 
@@ -89,123 +89,119 @@ export const Console: Context.Tag<Console, Console> = defaultConsole.consoleTag
89
89
  * @category default services
90
90
  */
91
91
  export const withConsole: {
92
- <A extends Console>(console: A): <R, E, A>(effect: Effect<R, E, A>) => Effect<R, E, A>
93
- <R, E, A extends Console>(effect: Effect<R, E, A>, console: A): Effect<R, E, A>
92
+ <C extends Console>(console: C): <A, E, R>(effect: Effect<A, E, R>) => Effect<A, E, R>
93
+ <A, E, R, C extends Console>(effect: Effect<A, E, R>, console: C): Effect<A, E, R>
94
94
  } = internal.withConsole
95
95
 
96
96
  /**
97
97
  * @since 2.0.0
98
98
  * @category default services
99
99
  */
100
- export const setConsole: <A extends Console>(console: A) => Layer.Layer<never, never, never> = internal.setConsole
100
+ export const setConsole: <A extends Console>(console: A) => Layer.Layer<never> = internal.setConsole
101
101
 
102
102
  /**
103
103
  * @since 2.0.0
104
104
  * @category accessor
105
105
  */
106
- export const consoleWith: <R, E, A>(f: (console: Console) => Effect<R, E, A>) => Effect<R, E, A> = internal.consoleWith
106
+ export const consoleWith: <A, E, R>(f: (console: Console) => Effect<A, E, R>) => Effect<A, E, R> = internal.consoleWith
107
107
 
108
108
  /**
109
109
  * @since 2.0.0
110
110
  * @category accessor
111
111
  */
112
- export const assert: (condition: boolean, ...args: ReadonlyArray<any>) => Effect<never, never, void> = internal.assert
112
+ export const assert: (condition: boolean, ...args: ReadonlyArray<any>) => Effect<void> = internal.assert
113
113
 
114
114
  /**
115
115
  * @since 2.0.0
116
116
  * @category accessor
117
117
  */
118
- export const clear: Effect<never, never, void> = internal.clear
118
+ export const clear: Effect<void> = internal.clear
119
119
 
120
120
  /**
121
121
  * @since 2.0.0
122
122
  * @category accessor
123
123
  */
124
- export const count: (label?: string) => Effect<never, never, void> = internal.count
124
+ export const count: (label?: string) => Effect<void> = internal.count
125
125
 
126
126
  /**
127
127
  * @since 2.0.0
128
128
  * @category accessor
129
129
  */
130
- export const countReset: (label?: string) => Effect<never, never, void> = internal.countReset
130
+ export const countReset: (label?: string) => Effect<void> = internal.countReset
131
131
 
132
132
  /**
133
133
  * @since 2.0.0
134
134
  * @category accessor
135
135
  */
136
- export const debug: (...args: ReadonlyArray<any>) => Effect<never, never, void> = internal.debug
136
+ export const debug: (...args: ReadonlyArray<any>) => Effect<void> = internal.debug
137
137
 
138
138
  /**
139
139
  * @since 2.0.0
140
140
  * @category accessor
141
141
  */
142
- export const dir: (item: any, options?: any) => Effect<never, never, void> = internal.dir
142
+ export const dir: (item: any, options?: any) => Effect<void> = internal.dir
143
143
 
144
144
  /**
145
145
  * @since 2.0.0
146
146
  * @category accessor
147
147
  */
148
- export const dirxml: (...args: ReadonlyArray<any>) => Effect<never, never, void> = internal.dirxml
148
+ export const dirxml: (...args: ReadonlyArray<any>) => Effect<void> = internal.dirxml
149
149
 
150
150
  /**
151
151
  * @since 2.0.0
152
152
  * @category accessor
153
153
  */
154
- export const error: (...args: ReadonlyArray<any>) => Effect<never, never, void> = internal.error
154
+ export const error: (...args: ReadonlyArray<any>) => Effect<void> = internal.error
155
155
 
156
156
  /**
157
157
  * @since 2.0.0
158
158
  * @category accessor
159
159
  */
160
160
  export const group: (
161
- options?: {
162
- label?: string | undefined
163
- collapsed?: boolean | undefined
164
- }
165
- ) => Effect<Scope, never, void> = internal.group
161
+ options?: { label?: string | undefined; collapsed?: boolean | undefined } | undefined
162
+ ) => Effect<void, never, Scope> = internal.group
166
163
 
167
164
  /**
168
165
  * @since 2.0.0
169
166
  * @category accessor
170
167
  */
171
- export const info: (...args: ReadonlyArray<any>) => Effect<never, never, void> = internal.info
168
+ export const info: (...args: ReadonlyArray<any>) => Effect<void> = internal.info
172
169
 
173
170
  /**
174
171
  * @since 2.0.0
175
172
  * @category accessor
176
173
  */
177
- export const log: (...args: ReadonlyArray<any>) => Effect<never, never, void> = internal.log
174
+ export const log: (...args: ReadonlyArray<any>) => Effect<void> = internal.log
178
175
 
179
176
  /**
180
177
  * @since 2.0.0
181
178
  * @category accessor
182
179
  */
183
- export const table: (tabularData: any, properties?: ReadonlyArray<string>) => Effect<never, never, void> =
184
- internal.table
180
+ export const table: (tabularData: any, properties?: ReadonlyArray<string>) => Effect<void> = internal.table
185
181
 
186
182
  /**
187
183
  * @since 2.0.0
188
184
  * @category accessor
189
185
  */
190
- export const time: (label?: string) => Effect<Scope, never, void> = internal.time
186
+ export const time: (label?: string | undefined) => Effect<void, never, Scope> = internal.time
191
187
 
192
188
  /**
193
189
  * @since 2.0.0
194
190
  * @category accessor
195
191
  */
196
- export const timeLog: (label?: string, ...args: ReadonlyArray<any>) => Effect<never, never, void> = internal.timeLog
192
+ export const timeLog: (label?: string, ...args: ReadonlyArray<any>) => Effect<void> = internal.timeLog
197
193
 
198
194
  /**
199
195
  * @since 2.0.0
200
196
  * @category accessor
201
197
  */
202
- export const trace: (...args: ReadonlyArray<any>) => Effect<never, never, void> = internal.trace
198
+ export const trace: (...args: ReadonlyArray<any>) => Effect<void> = internal.trace
203
199
 
204
200
  /**
205
201
  * @since 2.0.0
206
202
  * @category accessor
207
203
  */
208
- export const warn: (...args: ReadonlyArray<any>) => Effect<never, never, void> = internal.warn
204
+ export const warn: (...args: ReadonlyArray<any>) => Effect<void> = internal.warn
209
205
 
210
206
  /**
211
207
  * @since 2.0.0
@@ -215,11 +211,11 @@ export const withGroup: {
215
211
  (options?: {
216
212
  readonly label?: string | undefined
217
213
  readonly collapsed?: boolean | undefined
218
- }): <R, E, A>(self: Effect<R, E, A>) => Effect<R, E, A>
219
- <R, E, A>(self: Effect<R, E, A>, options?: {
214
+ }): <A, E, R>(self: Effect<A, E, R>) => Effect<A, E, R>
215
+ <A, E, R>(self: Effect<A, E, R>, options?: {
220
216
  readonly label?: string | undefined
221
217
  readonly collapsed?: boolean | undefined
222
- }): Effect<R, E, A>
218
+ }): Effect<A, E, R>
223
219
  } = internal.withGroup
224
220
 
225
221
  /**
@@ -227,6 +223,6 @@ export const withGroup: {
227
223
  * @category accessor
228
224
  */
229
225
  export const withTime: {
230
- (label?: string): <R, E, A>(self: Effect<R, E, A>) => Effect<R, E, A>
231
- <R, E, A>(self: Effect<R, E, A>, label?: string): Effect<R, E, A>
226
+ (label?: string): <A, E, R>(self: Effect<A, E, R>) => Effect<A, E, R>
227
+ <A, E, R>(self: Effect<A, E, R>, label?: string): Effect<A, E, R>
232
228
  } = internal.withTime
package/src/Context.ts CHANGED
@@ -37,12 +37,31 @@ export interface Tag<in out Identifier, in out Service> extends Pipeable, Inspec
37
37
  of(self: Service): Service
38
38
  context(self: Service): Context<Identifier>
39
39
  readonly stack?: string | undefined
40
- readonly identifier?: unknown
40
+ readonly key: string
41
41
  [Unify.typeSymbol]?: unknown
42
42
  [Unify.unifySymbol]?: TagUnify<this>
43
43
  [Unify.ignoreSymbol]?: TagUnifyIgnore
44
44
  }
45
45
 
46
+ /**
47
+ * @since 2.0.0
48
+ * @category models
49
+ */
50
+ export interface TagClassShape<Id, Shape> {
51
+ readonly [TagTypeId]: {
52
+ readonly Id: Id
53
+ readonly Shape: Shape
54
+ }
55
+ }
56
+
57
+ /**
58
+ * @since 2.0.0
59
+ * @category models
60
+ */
61
+ export interface TagClass<Self, Id, Shape> extends Tag<Self, Shape> {
62
+ new(_: never): TagClassShape<Id, Shape>
63
+ }
64
+
46
65
  /**
47
66
  * @category models
48
67
  * @since 2.0.0
@@ -64,35 +83,32 @@ export declare namespace Tag {
64
83
  /**
65
84
  * @since 2.0.0
66
85
  */
67
- export type Service<T extends Tag<any, any>> = T extends Tag<any, infer A> ? A : never
86
+ export type Service<T extends Tag<any, any> | TagClassShape<any, any>> = T extends Tag<any, infer A> ? A
87
+ : T extends TagClassShape<any, infer A> ? A
88
+ : never
68
89
  /**
69
90
  * @since 2.0.0
70
91
  */
71
- export type Identifier<T extends Tag<any, any>> = T extends Tag<infer A, any> ? A : never
92
+ export type Identifier<T extends Tag<any, any> | TagClassShape<any, any>> = T extends Tag<infer A, any> ? A
93
+ : T extends TagClassShape<infer A, any> ? A
94
+ : never
72
95
  }
73
96
 
74
97
  /**
75
98
  * Creates a new `Tag` instance with an optional key parameter.
76
99
  *
77
- * Specifying the `key` will make the `Tag` global, meaning two tags with the same
78
- * key will map to the same instance.
79
- *
80
- * Note: this is useful for cases where live reload can happen and it is
81
- * desireable to preserve the instance across reloads.
82
- *
83
- * @param key - An optional key that makes the `Tag` global.
100
+ * @param key - A key that will be used to compare tags.
84
101
  *
85
102
  * @example
86
103
  * import * as Context from "effect/Context"
87
104
  *
88
- * assert.strictEqual(Context.Tag() === Context.Tag(), false)
89
- * assert.strictEqual(Context.Tag("PORT") === Context.Tag("PORT"), true)
105
+ * assert.strictEqual(Context.GenericTag("PORT").key === Context.GenericTag("PORT").key, true)
90
106
  *
91
107
  * @since 2.0.0
92
108
  * @category constructors
93
109
  */
94
- export const Tag: <Identifier, Service = Identifier>(identifier?: unknown) => Tag<Identifier, Service> =
95
- internal.makeTag
110
+ export const GenericTag: <Identifier, Service = Identifier>(key: string) => Tag<Identifier, Service> =
111
+ internal.makeGenericTag
96
112
 
97
113
  const TypeId: unique symbol = internal.TypeId as TypeId
98
114
 
@@ -116,14 +132,14 @@ export interface Context<in Services> extends Equal, Pipeable, Inspectable {
116
132
  readonly [TypeId]: {
117
133
  readonly _Services: Types.Contravariant<Services>
118
134
  }
119
- readonly unsafeMap: Map<Tag<any, any>, any>
135
+ readonly unsafeMap: Map<string, any>
120
136
  }
121
137
 
122
138
  /**
123
139
  * @since 2.0.0
124
140
  * @category constructors
125
141
  */
126
- export const unsafeMake: <Services>(unsafeMap: Map<Tag<any, any>, any>) => Context<Services> = internal.makeContext
142
+ export const unsafeMake: <Services>(unsafeMap: Map<string, any>) => Context<Services> = internal.makeContext
127
143
 
128
144
  /**
129
145
  * Checks if the provided argument is a `Context`.
@@ -148,7 +164,7 @@ export const isContext: (input: unknown) => input is Context<never> = internal.i
148
164
  * @example
149
165
  * import * as Context from "effect/Context"
150
166
  *
151
- * assert.strictEqual(Context.isTag(Context.Tag()), true)
167
+ * assert.strictEqual(Context.isTag(Context.GenericTag("Tag")), true)
152
168
  *
153
169
  * @since 2.0.0
154
170
  * @category guards
@@ -174,7 +190,7 @@ export const empty: () => Context<never> = internal.empty
174
190
  * @example
175
191
  * import * as Context from "effect/Context"
176
192
  *
177
- * const Port = Context.Tag<{ PORT: number }>()
193
+ * const Port = Context.GenericTag<{ PORT: number }>("Port")
178
194
  *
179
195
  * const Services = Context.make(Port, { PORT: 8080 })
180
196
  *
@@ -193,8 +209,8 @@ export const make: <T extends Tag<any, any>>(tag: T, service: Tag.Service<T>) =>
193
209
  * import * as Context from "effect/Context"
194
210
  * import { pipe } from "effect/Function"
195
211
  *
196
- * const Port = Context.Tag<{ PORT: number }>()
197
- * const Timeout = Context.Tag<{ TIMEOUT: number }>()
212
+ * const Port = Context.GenericTag<{ PORT: number }>("Port")
213
+ * const Timeout = Context.GenericTag<{ TIMEOUT: number }>("Timeout")
198
214
  *
199
215
  * const someContext = Context.make(Port, { PORT: 8080 })
200
216
  *
@@ -230,8 +246,8 @@ export const add: {
230
246
  * import * as Context from "effect/Context"
231
247
  * import { pipe } from "effect/Function"
232
248
  *
233
- * const Port = Context.Tag<{ PORT: number }>()
234
- * const Timeout = Context.Tag<{ TIMEOUT: number }>()
249
+ * const Port = Context.GenericTag<{ PORT: number }>("Port")
250
+ * const Timeout = Context.GenericTag<{ TIMEOUT: number }>("Timeout")
235
251
  *
236
252
  * const Services = pipe(
237
253
  * Context.make(Port, { PORT: 8080 }),
@@ -260,8 +276,8 @@ export const get: {
260
276
  * @example
261
277
  * import * as Context from "effect/Context"
262
278
  *
263
- * const Port = Context.Tag<{ PORT: number }>()
264
- * const Timeout = Context.Tag<{ TIMEOUT: number }>()
279
+ * const Port = Context.GenericTag<{ PORT: number }>("Port")
280
+ * const Timeout = Context.GenericTag<{ TIMEOUT: number }>("Timeout")
265
281
  *
266
282
  * const Services = Context.make(Port, { PORT: 8080 })
267
283
  *
@@ -287,8 +303,8 @@ export const unsafeGet: {
287
303
  * import * as Context from "effect/Context"
288
304
  * import * as O from "effect/Option"
289
305
  *
290
- * const Port = Context.Tag<{ PORT: number }>()
291
- * const Timeout = Context.Tag<{ TIMEOUT: number }>()
306
+ * const Port = Context.GenericTag<{ PORT: number }>("Port")
307
+ * const Timeout = Context.GenericTag<{ TIMEOUT: number }>("Timeout")
292
308
  *
293
309
  * const Services = Context.make(Port, { PORT: 8080 })
294
310
  *
@@ -312,8 +328,8 @@ export const getOption: {
312
328
  * @example
313
329
  * import * as Context from "effect/Context"
314
330
  *
315
- * const Port = Context.Tag<{ PORT: number }>()
316
- * const Timeout = Context.Tag<{ TIMEOUT: number }>()
331
+ * const Port = Context.GenericTag<{ PORT: number }>("Port")
332
+ * const Timeout = Context.GenericTag<{ TIMEOUT: number }>("Timeout")
317
333
  *
318
334
  * const firstContext = Context.make(Port, { PORT: 8080 })
319
335
  * const secondContext = Context.make(Timeout, { TIMEOUT: 5000 })
@@ -341,8 +357,8 @@ export const merge: {
341
357
  * import { pipe } from "effect/Function"
342
358
  * import * as O from "effect/Option"
343
359
  *
344
- * const Port = Context.Tag<{ PORT: number }>()
345
- * const Timeout = Context.Tag<{ TIMEOUT: number }>()
360
+ * const Port = Context.GenericTag<{ PORT: number }>("Port")
361
+ * const Timeout = Context.GenericTag<{ TIMEOUT: number }>("Timeout")
346
362
  *
347
363
  * const someContext = pipe(
348
364
  * Context.make(Port, { PORT: 8080 }),
@@ -367,3 +383,9 @@ export const omit: <Services, S extends Array<ValidTagsById<Services>>>(
367
383
  ...tags: S
368
384
  ) => (self: Context<Services>) => Context<Exclude<Services, { [k in keyof S]: Tag.Identifier<S[k]> }[keyof S]>> =
369
385
  internal.omit
386
+
387
+ /**
388
+ * @since 2.0.0
389
+ * @category constructors
390
+ */
391
+ export const Tag: <const Id extends string>(id: Id) => <Self, Shape>() => TagClass<Self, Id, Shape> = internal.Tag