effect 2.2.5 → 2.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (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 +47 -47
  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 +47 -47
  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
@@ -14,7 +14,7 @@ const ClockSymbolKey = "effect/Clock"
14
14
  export const ClockTypeId: Clock.ClockTypeId = Symbol.for(ClockSymbolKey) as Clock.ClockTypeId
15
15
 
16
16
  /** @internal */
17
- export const clockTag: Context.Tag<Clock.Clock, Clock.Clock> = Context.Tag(ClockTypeId)
17
+ export const clockTag: Context.Tag<Clock.Clock, Clock.Clock> = Context.GenericTag("effect/Clock")
18
18
 
19
19
  /** @internal */
20
20
  export const MAX_TIMER_MILLIS = 2 ** 31 - 1
@@ -77,16 +77,16 @@ class ClockImpl implements Clock.Clock {
77
77
  return processOrPerformanceNow()
78
78
  }
79
79
 
80
- currentTimeMillis: Effect.Effect<never, never, number> = core.sync(() => this.unsafeCurrentTimeMillis())
80
+ currentTimeMillis: Effect.Effect<number> = core.sync(() => this.unsafeCurrentTimeMillis())
81
81
 
82
- currentTimeNanos: Effect.Effect<never, never, bigint> = core.sync(() => this.unsafeCurrentTimeNanos())
82
+ currentTimeNanos: Effect.Effect<bigint> = core.sync(() => this.unsafeCurrentTimeNanos())
83
83
 
84
- scheduler(): Effect.Effect<never, never, Clock.ClockScheduler> {
84
+ scheduler(): Effect.Effect<Clock.ClockScheduler> {
85
85
  return core.succeed(globalClockScheduler)
86
86
  }
87
87
 
88
- sleep(duration: Duration.Duration): Effect.Effect<never, never, void> {
89
- return core.asyncEither<never, never, void>((cb) => {
88
+ sleep(duration: Duration.Duration): Effect.Effect<void> {
89
+ return core.asyncEither<void>((cb) => {
90
90
  const canceler = globalClockScheduler.unsafeSchedule(() => cb(core.unit), duration)
91
91
  return Either.left(core.asUnit(core.sync(canceler)))
92
92
  })
@@ -3,12 +3,12 @@ import type { Concurrency } from "../Types.js"
3
3
  import * as core from "./core.js"
4
4
 
5
5
  /** @internal */
6
- export const match = <R, E, A>(
6
+ export const match = <A, E, R>(
7
7
  concurrency: Concurrency | undefined,
8
- sequential: () => Effect<R, E, A>,
9
- unbounded: () => Effect<R, E, A>,
10
- bounded: (limit: number) => Effect<R, E, A>
11
- ): Effect<R, E, A> => {
8
+ sequential: () => Effect<A, E, R>,
9
+ unbounded: () => Effect<A, E, R>,
10
+ bounded: (limit: number) => Effect<A, E, R>
11
+ ): Effect<A, E, R> => {
12
12
  switch (concurrency) {
13
13
  case undefined:
14
14
  return sequential()
@@ -30,11 +30,11 @@ export const match = <R, E, A>(
30
30
  }
31
31
 
32
32
  /** @internal */
33
- export const matchSimple = <R, E, A>(
33
+ export const matchSimple = <A, E, R>(
34
34
  concurrency: Concurrency | undefined,
35
- sequential: () => Effect<R, E, A>,
36
- concurrent: () => Effect<R, E, A>
37
- ): Effect<R, E, A> => {
35
+ sequential: () => Effect<A, E, R>,
36
+ concurrent: () => Effect<A, E, R>
37
+ ): Effect<A, E, R> => {
38
38
  switch (concurrency) {
39
39
  case undefined:
40
40
  return sequential()
@@ -33,9 +33,10 @@ export const ConfigProviderTypeId: ConfigProvider.ConfigProviderTypeId = Symbol.
33
33
  ) as ConfigProvider.ConfigProviderTypeId
34
34
 
35
35
  /** @internal */
36
- export const configProviderTag: Context.Tag<ConfigProvider.ConfigProvider, ConfigProvider.ConfigProvider> = Context.Tag(
37
- ConfigProviderTypeId
38
- )
36
+ export const configProviderTag: Context.Tag<ConfigProvider.ConfigProvider, ConfigProvider.ConfigProvider> = Context
37
+ .GenericTag(
38
+ "effect/ConfigProvider"
39
+ )
39
40
 
40
41
  /** @internal */
41
42
  const FlatConfigProviderSymbolKey = "effect/ConfigProviderFlat"
@@ -48,7 +49,7 @@ export const FlatConfigProviderTypeId: ConfigProvider.FlatConfigProviderTypeId =
48
49
  /** @internal */
49
50
  export const make = (
50
51
  options: {
51
- readonly load: <A>(config: Config.Config<A>) => Effect.Effect<never, ConfigError.ConfigError, A>
52
+ readonly load: <A>(config: Config.Config<A>) => Effect.Effect<A, ConfigError.ConfigError>
52
53
  readonly flattened: ConfigProvider.ConfigProvider.Flat
53
54
  }
54
55
  ): ConfigProvider.ConfigProvider => ({
@@ -66,10 +67,10 @@ export const makeFlat = (
66
67
  path: ReadonlyArray<string>,
67
68
  config: Config.Config.Primitive<A>,
68
69
  split: boolean
69
- ) => Effect.Effect<never, ConfigError.ConfigError, ReadonlyArray<A>>
70
+ ) => Effect.Effect<ReadonlyArray<A>, ConfigError.ConfigError>
70
71
  readonly enumerateChildren: (
71
72
  path: ReadonlyArray<string>
72
- ) => Effect.Effect<never, ConfigError.ConfigError, HashSet.HashSet<string>>
73
+ ) => Effect.Effect<HashSet.HashSet<string>, ConfigError.ConfigError>
73
74
  readonly patch: PathPatch.PathPatch
74
75
  }
75
76
  ): ConfigProvider.ConfigProvider.Flat => ({
@@ -112,7 +113,7 @@ export const fromEnv = (
112
113
  path: ReadonlyArray<string>,
113
114
  primitive: Config.Config.Primitive<A>,
114
115
  split = true
115
- ): Effect.Effect<never, ConfigError.ConfigError, ReadonlyArray<A>> => {
116
+ ): Effect.Effect<ReadonlyArray<A>, ConfigError.ConfigError> => {
116
117
  const pathString = makePathString(path)
117
118
  const current = getEnv()
118
119
  const valueOpt = pathString in current ? Option.some(current[pathString]!) : Option.none()
@@ -125,7 +126,7 @@ export const fromEnv = (
125
126
 
126
127
  const enumerateChildren = (
127
128
  path: ReadonlyArray<string>
128
- ): Effect.Effect<never, ConfigError.ConfigError, HashSet.HashSet<string>> =>
129
+ ): Effect.Effect<HashSet.HashSet<string>, ConfigError.ConfigError> =>
129
130
  core.sync(() => {
130
131
  const current = getEnv()
131
132
  const keys = Object.keys(current)
@@ -163,7 +164,7 @@ export const fromMap = (
163
164
  path: ReadonlyArray<string>,
164
165
  primitive: Config.Config.Primitive<A>,
165
166
  split = true
166
- ): Effect.Effect<never, ConfigError.ConfigError, ReadonlyArray<A>> => {
167
+ ): Effect.Effect<ReadonlyArray<A>, ConfigError.ConfigError> => {
167
168
  const pathString = makePathString(path)
168
169
  const valueOpt = mapWithIndexSplit.has(pathString) ?
169
170
  Option.some(mapWithIndexSplit.get(pathString)!) :
@@ -176,7 +177,7 @@ export const fromMap = (
176
177
  }
177
178
  const enumerateChildren = (
178
179
  path: ReadonlyArray<string>
179
- ): Effect.Effect<never, ConfigError.ConfigError, HashSet.HashSet<string>> =>
180
+ ): Effect.Effect<HashSet.HashSet<string>, ConfigError.ConfigError> =>
180
181
  core.sync(() => {
181
182
  const keyPaths = Array.from(mapWithIndexSplit.keys()).map(unmakePathString)
182
183
  const filteredKeyPaths = keyPaths.filter((keyPath) => {
@@ -238,26 +239,21 @@ const fromFlatLoop = <A>(
238
239
  prefix: ReadonlyArray<string>,
239
240
  config: Config.Config<A>,
240
241
  split: boolean
241
- ): Effect.Effect<never, ConfigError.ConfigError, ReadonlyArray<A>> => {
242
+ ): Effect.Effect<ReadonlyArray<A>, ConfigError.ConfigError> => {
242
243
  const op = config as _config.ConfigPrimitive
243
244
  switch (op._tag) {
244
245
  case OpCodes.OP_CONSTANT: {
245
- return core.succeed(ReadonlyArray.of(op.value)) as Effect.Effect<
246
- never,
247
- ConfigError.ConfigError,
248
- ReadonlyArray<A>
249
- >
246
+ return core.succeed(ReadonlyArray.of(op.value)) as Effect.Effect<ReadonlyArray<A>, ConfigError.ConfigError>
250
247
  }
251
248
  case OpCodes.OP_DESCRIBED: {
252
249
  return core.suspend(
253
250
  () => fromFlatLoop(flat, prefix, op.config, split)
254
- ) as unknown as Effect.Effect<never, ConfigError.ConfigError, ReadonlyArray<A>>
251
+ ) as unknown as Effect.Effect<ReadonlyArray<A>, ConfigError.ConfigError>
255
252
  }
256
253
  case OpCodes.OP_FAIL: {
257
254
  return core.fail(configError.MissingData(prefix, op.message)) as Effect.Effect<
258
- never,
259
- ConfigError.ConfigError,
260
- ReadonlyArray<A>
255
+ ReadonlyArray<A>,
256
+ ConfigError.ConfigError
261
257
  >
262
258
  }
263
259
  case OpCodes.OP_FALLBACK: {
@@ -272,13 +268,12 @@ const fromFlatLoop = <A>(
272
268
  }
273
269
  return core.fail(error1)
274
270
  })
275
- ) as unknown as Effect.Effect<never, ConfigError.ConfigError, ReadonlyArray<A>>
271
+ ) as unknown as Effect.Effect<ReadonlyArray<A>, ConfigError.ConfigError>
276
272
  }
277
273
  case OpCodes.OP_LAZY: {
278
274
  return core.suspend(() => fromFlatLoop(flat, prefix, op.config(), split)) as Effect.Effect<
279
- never,
280
- ConfigError.ConfigError,
281
- ReadonlyArray<A>
275
+ ReadonlyArray<A>,
276
+ ConfigError.ConfigError
282
277
  >
283
278
  }
284
279
  case OpCodes.OP_MAP_OR_FAIL: {
@@ -294,7 +289,7 @@ const fromFlatLoop = <A>(
294
289
  )
295
290
  )
296
291
  )
297
- ) as unknown as Effect.Effect<never, ConfigError.ConfigError, ReadonlyArray<A>>
292
+ ) as unknown as Effect.Effect<ReadonlyArray<A>, ConfigError.ConfigError>
298
293
  }
299
294
  case OpCodes.OP_NESTED: {
300
295
  return core.suspend(() =>
@@ -304,7 +299,7 @@ const fromFlatLoop = <A>(
304
299
  op.config,
305
300
  split
306
301
  )
307
- ) as unknown as Effect.Effect<never, ConfigError.ConfigError, ReadonlyArray<A>>
302
+ ) as unknown as Effect.Effect<ReadonlyArray<A>, ConfigError.ConfigError>
308
303
  }
309
304
  case OpCodes.OP_PRIMITIVE: {
310
305
  return pipe(
@@ -321,7 +316,7 @@ const fromFlatLoop = <A>(
321
316
  })
322
317
  )
323
318
  )
324
- ) as unknown as Effect.Effect<never, ConfigError.ConfigError, ReadonlyArray<A>>
319
+ ) as unknown as Effect.Effect<ReadonlyArray<A>, ConfigError.ConfigError>
325
320
  }
326
321
  case OpCodes.OP_SEQUENCE: {
327
322
  return pipe(
@@ -334,7 +329,7 @@ const fromFlatLoop = <A>(
334
329
  if (indices.length === 0) {
335
330
  return core.suspend(() =>
336
331
  core.map(fromFlatLoop(flat, patchedPrefix, op.config, true), ReadonlyArray.of)
337
- ) as unknown as Effect.Effect<never, ConfigError.ConfigError, ReadonlyArray<A>>
332
+ ) as unknown as Effect.Effect<ReadonlyArray<A>, ConfigError.ConfigError>
338
333
  }
339
334
  return pipe(
340
335
  core.forEachSequential(
@@ -348,7 +343,7 @@ const fromFlatLoop = <A>(
348
343
  }
349
344
  return ReadonlyArray.of(flattened)
350
345
  })
351
- ) as unknown as Effect.Effect<never, ConfigError.ConfigError, ReadonlyArray<A>>
346
+ ) as unknown as Effect.Effect<ReadonlyArray<A>, ConfigError.ConfigError>
352
347
  })
353
348
  )
354
349
  )
@@ -389,7 +384,7 @@ const fromFlatLoop = <A>(
389
384
  )
390
385
  )
391
386
  )
392
- ) as unknown as Effect.Effect<never, ConfigError.ConfigError, ReadonlyArray<A>>
387
+ ) as unknown as Effect.Effect<ReadonlyArray<A>, ConfigError.ConfigError>
393
388
  }
394
389
  case OpCodes.OP_ZIP_WITH: {
395
390
  return core.suspend(() =>
@@ -437,7 +432,7 @@ const fromFlatLoop = <A>(
437
432
  )
438
433
  )
439
434
  )
440
- ) as unknown as Effect.Effect<never, ConfigError.ConfigError, ReadonlyArray<A>>
435
+ ) as unknown as Effect.Effect<ReadonlyArray<A>, ConfigError.ConfigError>
441
436
  }
442
437
  }
443
438
  }
@@ -610,7 +605,7 @@ const parsePrimitive = <A>(
610
605
  primitive: Config.Config.Primitive<A>,
611
606
  delimiter: string,
612
607
  split: boolean
613
- ): Effect.Effect<never, ConfigError.ConfigError, ReadonlyArray<A>> => {
608
+ ): Effect.Effect<ReadonlyArray<A>, ConfigError.ConfigError> => {
614
609
  if (!split) {
615
610
  return pipe(
616
611
  primitive.parse(text),
@@ -631,11 +626,9 @@ const transpose = <A>(array: ReadonlyArray<ReadonlyArray<A>>): ReadonlyArray<Rea
631
626
  return Object.keys(array[0]).map((column) => array.map((row) => row[column as any]))
632
627
  }
633
628
 
634
- const escapeRegex = (string: string): string => {
635
- return string.replace(/[/\-\\^$*+?.()|[\]{}]/g, "\\$&")
636
- }
629
+ const escapeRegex = (string: string): string => string.replace(/[/\-\\^$*+?.()|[\]{}]/g, "\\$&")
637
630
 
638
- const indicesFrom = (quotedIndices: HashSet.HashSet<string>): Effect.Effect<never, never, ReadonlyArray<number>> =>
631
+ const indicesFrom = (quotedIndices: HashSet.HashSet<string>): Effect.Effect<ReadonlyArray<number>> =>
639
632
  pipe(
640
633
  core.forEachSequential(quotedIndices, parseQuotedIndex),
641
634
  core.mapBoth({
@@ -11,13 +11,13 @@ import * as fiberRuntime from "./fiberRuntime.js"
11
11
  import * as layer from "./layer.js"
12
12
 
13
13
  /** @internal */
14
- export const console: Effect.Effect<never, never, Console.Console> = core.map(
14
+ export const console: Effect.Effect<Console.Console> = core.map(
15
15
  core.fiberRefGet(defaultServices.currentServices),
16
16
  Context.get(defaultConsole.consoleTag)
17
17
  )
18
18
 
19
19
  /** @internal */
20
- export const consoleWith = <R, E, A>(f: (console: Console.Console) => Effect.Effect<R, E, A>) =>
20
+ export const consoleWith = <A, E, R>(f: (console: Console.Console) => Effect.Effect<A, E, R>) =>
21
21
  core.fiberRefGetWith(
22
22
  defaultServices.currentServices,
23
23
  (services) => f(Context.get(services, defaultConsole.consoleTag))
@@ -25,8 +25,8 @@ export const consoleWith = <R, E, A>(f: (console: Console.Console) => Effect.Eff
25
25
 
26
26
  /** @internal */
27
27
  export const withConsole = dual<
28
- <A extends Console.Console>(console: A) => <R, E, A>(effect: Effect.Effect<R, E, A>) => Effect.Effect<R, E, A>,
29
- <R, E, A extends Console.Console>(effect: Effect.Effect<R, E, A>, console: A) => Effect.Effect<R, E, A>
28
+ <C extends Console.Console>(console: C) => <A, E, R>(effect: Effect.Effect<A, E, R>) => Effect.Effect<A, E, R>,
29
+ <A, E, R, C extends Console.Console>(effect: Effect.Effect<A, E, R>, console: C) => Effect.Effect<A, E, R>
30
30
  >(2, (effect, value) =>
31
31
  core.fiberRefLocallyWith(
32
32
  effect,
@@ -35,14 +35,14 @@ export const withConsole = dual<
35
35
  ))
36
36
 
37
37
  /** @internal */
38
- export const withConsoleScoped = <A extends Console.Console>(console: A): Effect.Effect<Scope.Scope, never, void> =>
38
+ export const withConsoleScoped = <A extends Console.Console>(console: A): Effect.Effect<void, never, Scope.Scope> =>
39
39
  fiberRuntime.fiberRefLocallyScopedWith(
40
40
  defaultServices.currentServices,
41
41
  Context.add(defaultConsole.consoleTag, console)
42
42
  )
43
43
 
44
44
  /** @internal */
45
- export const setConsole = <A extends Console.Console>(console: A): Layer.Layer<never, never, never> =>
45
+ export const setConsole = <A extends Console.Console>(console: A): Layer.Layer<never> =>
46
46
  layer.scopedDiscard(
47
47
  fiberRuntime.fiberRefLocallyScopedWith(
48
48
  defaultServices.currentServices,
@@ -122,14 +122,14 @@ export const withGroup = dual<
122
122
  readonly label?: string | undefined
123
123
  readonly collapsed?: boolean | undefined
124
124
  }
125
- ) => <R, E, A>(self: Effect.Effect<R, E, A>) => Effect.Effect<R, E, A>,
126
- <R, E, A>(
127
- self: Effect.Effect<R, E, A>,
125
+ ) => <A, E, R>(self: Effect.Effect<A, E, R>) => Effect.Effect<A, E, R>,
126
+ <A, E, R>(
127
+ self: Effect.Effect<A, E, R>,
128
128
  options?: {
129
129
  readonly label?: string | undefined
130
130
  readonly collapsed?: boolean | undefined
131
131
  }
132
- ) => Effect.Effect<R, E, A>
132
+ ) => Effect.Effect<A, E, R>
133
133
  >((args) => core.isEffect(args[0]), (self, options) =>
134
134
  consoleWith((_) =>
135
135
  core.acquireUseRelease(
@@ -141,8 +141,8 @@ export const withGroup = dual<
141
141
 
142
142
  /** @internal */
143
143
  export const withTime = dual<
144
- (label?: string) => <R, E, A>(self: Effect.Effect<R, E, A>) => Effect.Effect<R, E, A>,
145
- <R, E, A>(self: Effect.Effect<R, E, A>, label?: string) => Effect.Effect<R, E, A>
144
+ (label?: string) => <A, E, R>(self: Effect.Effect<A, E, R>) => Effect.Effect<A, E, R>,
145
+ <A, E, R>(self: Effect.Effect<A, E, R>, label?: string) => Effect.Effect<A, E, R>
146
146
  >((args) => core.isEffect(args[0]), (self, label) =>
147
147
  consoleWith((_) =>
148
148
  core.acquireUseRelease(
@@ -1,7 +1,6 @@
1
1
  import type * as C from "../Context.js"
2
2
  import * as Equal from "../Equal.js"
3
3
  import { dual } from "../Function.js"
4
- import { globalValue } from "../GlobalValue.js"
5
4
  import * as Hash from "../Hash.js"
6
5
  import { format, NodeInspectSymbol, toJSON } from "../Inspectable.js"
7
6
  import type * as O from "../Option.js"
@@ -23,7 +22,7 @@ export const STMTypeId: STM.STMTypeId = Symbol.for(
23
22
  ) as STM.STMTypeId
24
23
 
25
24
  /** @internal */
26
- export const TagProto: C.Tag<unknown, unknown> = {
25
+ export const TagProto: any = {
27
26
  ...EffectPrototype,
28
27
  _tag: "Tag",
29
28
  _op: "Tag",
@@ -38,7 +37,7 @@ export const TagProto: C.Tag<unknown, unknown> = {
38
37
  toJSON<I, A>(this: C.Tag<I, A>) {
39
38
  return {
40
39
  _id: "Tag",
41
- identifier: this.identifier,
40
+ key: this.key,
42
41
  stack: this.stack
43
42
  }
44
43
  },
@@ -56,13 +55,8 @@ export const TagProto: C.Tag<unknown, unknown> = {
56
55
  }
57
56
  }
58
57
 
59
- const tagRegistry = globalValue("effect/Context/Tag/tagRegistry", () => new Map<any, C.Tag<any, any>>())
60
-
61
58
  /** @internal */
62
- export const makeTag = <Identifier, Service = Identifier>(identifier?: unknown): C.Tag<Identifier, Service> => {
63
- if (identifier && tagRegistry.has(identifier)) {
64
- return tagRegistry.get(identifier)!
65
- }
59
+ export const makeGenericTag = <Identifier, Service = Identifier>(key: string): C.Tag<Identifier, Service> => {
66
60
  const limit = Error.stackTraceLimit
67
61
  Error.stackTraceLimit = 2
68
62
  const creationError = new Error()
@@ -73,13 +67,28 @@ export const makeTag = <Identifier, Service = Identifier>(identifier?: unknown):
73
67
  return creationError.stack
74
68
  }
75
69
  })
76
- if (identifier) {
77
- tag.identifier = identifier
78
- tagRegistry.set(identifier, tag)
79
- }
70
+ tag.key = key
80
71
  return tag
81
72
  }
82
73
 
74
+ /** @internal */
75
+ export const Tag = <const Id extends string>(id: Id) => <Self, Shape>(): C.TagClass<Self, Id, Shape> => {
76
+ const limit = Error.stackTraceLimit
77
+ Error.stackTraceLimit = 2
78
+ const creationError = new Error()
79
+ Error.stackTraceLimit = limit
80
+
81
+ function TagClass() {}
82
+ Object.setPrototypeOf(TagClass, TagProto)
83
+ TagClass.key = id
84
+ Object.defineProperty(TagClass, "stack", {
85
+ get() {
86
+ return creationError.stack
87
+ }
88
+ })
89
+ return TagClass as any
90
+ }
91
+
83
92
  /** @internal */
84
93
  export const TypeId: C.TypeId = Symbol.for("effect/Context") as C.TypeId
85
94
 
@@ -122,14 +131,14 @@ export const ContextProto: Omit<C.Context<unknown>, "unsafeMap"> = {
122
131
  }
123
132
 
124
133
  /** @internal */
125
- export const makeContext = <Services>(unsafeMap: Map<C.Tag<any, any>, any>): C.Context<Services> => {
134
+ export const makeContext = <Services>(unsafeMap: Map<string, any>): C.Context<Services> => {
126
135
  const context = Object.create(ContextProto)
127
136
  context.unsafeMap = unsafeMap
128
137
  return context
129
138
  }
130
139
 
131
140
  const serviceNotFoundError = (tag: C.Tag<any, any>) => {
132
- const error = new Error(`Service not found${tag.identifier ? `: ${String(tag.identifier)}` : ""}`)
141
+ const error = new Error(`Service not found${tag.key ? `: ${String(tag.key)}` : ""}`)
133
142
  if (tag.stack) {
134
143
  const lines = tag.stack.split("\n")
135
144
  if (lines.length > 2) {
@@ -162,7 +171,7 @@ export const empty = (): C.Context<never> => _empty
162
171
  export const make = <T extends C.Tag<any, any>>(
163
172
  tag: T,
164
173
  service: C.Tag.Service<T>
165
- ): C.Context<C.Tag.Identifier<T>> => makeContext(new Map([[tag, service]]))
174
+ ): C.Context<C.Tag.Identifier<T>> => makeContext(new Map([[tag.key, service]]))
166
175
 
167
176
  /** @internal */
168
177
  export const add = dual<
@@ -179,7 +188,7 @@ export const add = dual<
179
188
  ) => C.Context<Services | C.Tag.Identifier<T>>
180
189
  >(3, (self, tag, service) => {
181
190
  const map = new Map(self.unsafeMap)
182
- map.set(tag as C.Tag<unknown, unknown>, service)
191
+ map.set(tag.key, service)
183
192
  return makeContext(map)
184
193
  })
185
194
 
@@ -188,10 +197,10 @@ export const unsafeGet = dual<
188
197
  <S, I>(tag: C.Tag<I, S>) => <Services>(self: C.Context<Services>) => S,
189
198
  <Services, S, I>(self: C.Context<Services>, tag: C.Tag<I, S>) => S
190
199
  >(2, (self, tag) => {
191
- if (!self.unsafeMap.has(tag)) {
200
+ if (!self.unsafeMap.has(tag.key)) {
192
201
  throw serviceNotFoundError(tag as any)
193
202
  }
194
- return self.unsafeMap.get(tag)! as any
203
+ return self.unsafeMap.get(tag.key)! as any
195
204
  })
196
205
 
197
206
  /** @internal */
@@ -205,10 +214,10 @@ export const getOption = dual<
205
214
  <S, I>(tag: C.Tag<I, S>) => <Services>(self: C.Context<Services>) => O.Option<S>,
206
215
  <Services, S, I>(self: C.Context<Services>, tag: C.Tag<I, S>) => O.Option<S>
207
216
  >(2, (self, tag) => {
208
- if (!self.unsafeMap.has(tag)) {
217
+ if (!self.unsafeMap.has(tag.key)) {
209
218
  return option.none
210
219
  }
211
- return option.some(self.unsafeMap.get(tag)! as any)
220
+ return option.some(self.unsafeMap.get(tag.key)! as any)
212
221
  })
213
222
 
214
223
  /** @internal */
@@ -229,7 +238,7 @@ export const pick =
229
238
  (self: C.Context<Services>): C.Context<
230
239
  { [k in keyof S]: C.Tag.Identifier<S[k]> }[number]
231
240
  > => {
232
- const tagSet = new Set<unknown>(tags)
241
+ const tagSet = new Set<string>(tags.map((_) => _.key))
233
242
  const newEnv = new Map()
234
243
  for (const [tag, s] of self.unsafeMap.entries()) {
235
244
  if (tagSet.has(tag)) {
@@ -247,7 +256,7 @@ export const omit =
247
256
  > => {
248
257
  const newEnv = new Map(self.unsafeMap)
249
258
  for (const tag of tags) {
250
- newEnv.delete(tag)
259
+ newEnv.delete(tag.key)
251
260
  }
252
261
  return makeContext(newEnv)
253
262
  }