effect 3.8.4 → 3.9.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 (757) hide show
  1. package/dist/cjs/Array.js +24 -3
  2. package/dist/cjs/Array.js.map +1 -1
  3. package/dist/cjs/BigDecimal.js +5 -3
  4. package/dist/cjs/BigDecimal.js.map +1 -1
  5. package/dist/cjs/BigInt.js.map +1 -1
  6. package/dist/cjs/Boolean.js.map +1 -1
  7. package/dist/cjs/Cause.js.map +1 -1
  8. package/dist/cjs/Channel.js.map +1 -1
  9. package/dist/cjs/ChildExecutorDecision.js.map +1 -1
  10. package/dist/cjs/Chunk.js +3 -0
  11. package/dist/cjs/Chunk.js.map +1 -1
  12. package/dist/cjs/Config.js.map +1 -1
  13. package/dist/cjs/ConfigError.js.map +1 -1
  14. package/dist/cjs/ConfigProvider.js.map +1 -1
  15. package/dist/cjs/ConfigProviderPathPatch.js.map +1 -1
  16. package/dist/cjs/Console.js.map +1 -1
  17. package/dist/cjs/Context.js.map +1 -1
  18. package/dist/cjs/Cron.js +3 -0
  19. package/dist/cjs/Cron.js.map +1 -1
  20. package/dist/cjs/Data.js.map +1 -1
  21. package/dist/cjs/DateTime.js +6 -0
  22. package/dist/cjs/DateTime.js.map +1 -1
  23. package/dist/cjs/Deferred.js.map +1 -1
  24. package/dist/cjs/Differ.js.map +1 -1
  25. package/dist/cjs/Duration.js +3 -0
  26. package/dist/cjs/Duration.js.map +1 -1
  27. package/dist/cjs/Effect.js +122 -35
  28. package/dist/cjs/Effect.js.map +1 -1
  29. package/dist/cjs/Either.js.map +1 -1
  30. package/dist/cjs/Equivalence.js.map +1 -1
  31. package/dist/cjs/ExecutionStrategy.js.map +1 -1
  32. package/dist/cjs/Exit.js.map +1 -1
  33. package/dist/cjs/Fiber.js.map +1 -1
  34. package/dist/cjs/FiberHandle.js +3 -0
  35. package/dist/cjs/FiberHandle.js.map +1 -1
  36. package/dist/cjs/FiberId.js.map +1 -1
  37. package/dist/cjs/FiberMap.js +3 -0
  38. package/dist/cjs/FiberMap.js.map +1 -1
  39. package/dist/cjs/FiberRef.js.map +1 -1
  40. package/dist/cjs/FiberRefs.js.map +1 -1
  41. package/dist/cjs/FiberRefsPatch.js.map +1 -1
  42. package/dist/cjs/FiberSet.js +3 -0
  43. package/dist/cjs/FiberSet.js.map +1 -1
  44. package/dist/cjs/Function.js.map +1 -1
  45. package/dist/cjs/GroupBy.js.map +1 -1
  46. package/dist/cjs/Hash.js.map +1 -1
  47. package/dist/cjs/HashMap.js.map +1 -1
  48. package/dist/cjs/HashSet.js.map +1 -1
  49. package/dist/cjs/Inspectable.js +15 -1
  50. package/dist/cjs/Inspectable.js.map +1 -1
  51. package/dist/cjs/Iterable.js.map +1 -1
  52. package/dist/cjs/KeyedPool.js.map +1 -1
  53. package/dist/cjs/Layer.js.map +1 -1
  54. package/dist/cjs/List.js +6 -0
  55. package/dist/cjs/List.js.map +1 -1
  56. package/dist/cjs/LogLevel.js.map +1 -1
  57. package/dist/cjs/Logger.js.map +1 -1
  58. package/dist/cjs/Mailbox.js.map +1 -1
  59. package/dist/cjs/ManagedRuntime.js +16 -1
  60. package/dist/cjs/ManagedRuntime.js.map +1 -1
  61. package/dist/cjs/MergeDecision.js.map +1 -1
  62. package/dist/cjs/MergeState.js.map +1 -1
  63. package/dist/cjs/MergeStrategy.js.map +1 -1
  64. package/dist/cjs/Metric.js.map +1 -1
  65. package/dist/cjs/MetricHook.js.map +1 -1
  66. package/dist/cjs/MetricKey.js.map +1 -1
  67. package/dist/cjs/MetricPolling.js.map +1 -1
  68. package/dist/cjs/MetricState.js.map +1 -1
  69. package/dist/cjs/Micro.js +6 -0
  70. package/dist/cjs/Micro.js.map +1 -1
  71. package/dist/cjs/MutableHashMap.js +3 -0
  72. package/dist/cjs/MutableHashMap.js.map +1 -1
  73. package/dist/cjs/MutableHashSet.js +3 -0
  74. package/dist/cjs/MutableHashSet.js.map +1 -1
  75. package/dist/cjs/MutableList.js +3 -0
  76. package/dist/cjs/MutableList.js.map +1 -1
  77. package/dist/cjs/MutableQueue.js +3 -0
  78. package/dist/cjs/MutableQueue.js.map +1 -1
  79. package/dist/cjs/MutableRef.js +3 -0
  80. package/dist/cjs/MutableRef.js.map +1 -1
  81. package/dist/cjs/Number.js.map +1 -1
  82. package/dist/cjs/Option.js.map +1 -1
  83. package/dist/cjs/Order.js.map +1 -1
  84. package/dist/cjs/Ordering.js.map +1 -1
  85. package/dist/cjs/Pipeable.js.map +1 -1
  86. package/dist/cjs/Pool.js.map +1 -1
  87. package/dist/cjs/Predicate.js +18 -2
  88. package/dist/cjs/Predicate.js.map +1 -1
  89. package/dist/cjs/PubSub.js.map +1 -1
  90. package/dist/cjs/Queue.js.map +1 -1
  91. package/dist/cjs/RcMap.js.map +1 -1
  92. package/dist/cjs/Readable.js.map +1 -1
  93. package/dist/cjs/Record.js.map +1 -1
  94. package/dist/cjs/RedBlackTree.js.map +1 -1
  95. package/dist/cjs/Ref.js.map +1 -1
  96. package/dist/cjs/RegExp.js +20 -1
  97. package/dist/cjs/RegExp.js.map +1 -1
  98. package/dist/cjs/Request.js.map +1 -1
  99. package/dist/cjs/RequestResolver.js.map +1 -1
  100. package/dist/cjs/Resource.js.map +1 -1
  101. package/dist/cjs/Runtime.js.map +1 -1
  102. package/dist/cjs/RuntimeFlags.js.map +1 -1
  103. package/dist/cjs/RuntimeFlagsPatch.js.map +1 -1
  104. package/dist/cjs/STM.js.map +1 -1
  105. package/dist/cjs/Schedule.js.map +1 -1
  106. package/dist/cjs/ScheduleInterval.js.map +1 -1
  107. package/dist/cjs/ScheduleIntervals.js.map +1 -1
  108. package/dist/cjs/Scheduler.js.map +1 -1
  109. package/dist/cjs/Scope.js.map +1 -1
  110. package/dist/cjs/ScopedRef.js.map +1 -1
  111. package/dist/cjs/Sink.js.map +1 -1
  112. package/dist/cjs/SortedMap.js +3 -0
  113. package/dist/cjs/SortedMap.js.map +1 -1
  114. package/dist/cjs/SortedSet.js +3 -0
  115. package/dist/cjs/SortedSet.js.map +1 -1
  116. package/dist/cjs/Stream.js +17 -3
  117. package/dist/cjs/Stream.js.map +1 -1
  118. package/dist/cjs/StreamHaltStrategy.js.map +1 -1
  119. package/dist/cjs/String.js.map +1 -1
  120. package/dist/cjs/Struct.js.map +1 -1
  121. package/dist/cjs/Subscribable.js.map +1 -1
  122. package/dist/cjs/SubscriptionRef.js.map +1 -1
  123. package/dist/cjs/SynchronizedRef.js.map +1 -1
  124. package/dist/cjs/TArray.js.map +1 -1
  125. package/dist/cjs/TDeferred.js.map +1 -1
  126. package/dist/cjs/TMap.js.map +1 -1
  127. package/dist/cjs/TPriorityQueue.js.map +1 -1
  128. package/dist/cjs/TPubSub.js.map +1 -1
  129. package/dist/cjs/TQueue.js.map +1 -1
  130. package/dist/cjs/TReentrantLock.js.map +1 -1
  131. package/dist/cjs/TRef.js.map +1 -1
  132. package/dist/cjs/TSemaphore.js.map +1 -1
  133. package/dist/cjs/TSet.js.map +1 -1
  134. package/dist/cjs/Take.js.map +1 -1
  135. package/dist/cjs/TestAnnotationMap.js.map +1 -1
  136. package/dist/cjs/TestClock.js.map +1 -1
  137. package/dist/cjs/TestServices.js.map +1 -1
  138. package/dist/cjs/Trie.js.map +1 -1
  139. package/dist/cjs/Tuple.js +21 -2
  140. package/dist/cjs/Tuple.js.map +1 -1
  141. package/dist/cjs/Unify.js.map +1 -1
  142. package/dist/cjs/UpstreamPullRequest.js.map +1 -1
  143. package/dist/cjs/UpstreamPullStrategy.js.map +1 -1
  144. package/dist/cjs/Utils.js +1 -14
  145. package/dist/cjs/Utils.js.map +1 -1
  146. package/dist/cjs/internal/cause.js +3 -0
  147. package/dist/cjs/internal/cause.js.map +1 -1
  148. package/dist/cjs/internal/context.js +6 -1
  149. package/dist/cjs/internal/context.js.map +1 -1
  150. package/dist/cjs/internal/core-effect.js.map +1 -1
  151. package/dist/cjs/internal/core.js +16 -3
  152. package/dist/cjs/internal/core.js.map +1 -1
  153. package/dist/cjs/internal/effect/circular.js +5 -1
  154. package/dist/cjs/internal/effect/circular.js.map +1 -1
  155. package/dist/cjs/internal/fiberId.js +9 -0
  156. package/dist/cjs/internal/fiberId.js.map +1 -1
  157. package/dist/cjs/internal/hashMap.js +3 -0
  158. package/dist/cjs/internal/hashMap.js.map +1 -1
  159. package/dist/cjs/internal/hashSet.js +3 -0
  160. package/dist/cjs/internal/hashSet.js.map +1 -1
  161. package/dist/cjs/internal/layer.js +33 -19
  162. package/dist/cjs/internal/layer.js.map +1 -1
  163. package/dist/cjs/internal/mailbox.js +3 -0
  164. package/dist/cjs/internal/mailbox.js.map +1 -1
  165. package/dist/cjs/internal/managedRuntime/circular.js +10 -0
  166. package/dist/cjs/internal/managedRuntime/circular.js.map +1 -0
  167. package/dist/cjs/internal/managedRuntime.js +23 -9
  168. package/dist/cjs/internal/managedRuntime.js.map +1 -1
  169. package/dist/cjs/internal/option.js +3 -0
  170. package/dist/cjs/internal/option.js.map +1 -1
  171. package/dist/cjs/internal/pool.js +6 -1
  172. package/dist/cjs/internal/pool.js.map +1 -1
  173. package/dist/cjs/internal/redBlackTree.js +3 -0
  174. package/dist/cjs/internal/redBlackTree.js.map +1 -1
  175. package/dist/cjs/internal/resource.js +15 -5
  176. package/dist/cjs/internal/resource.js.map +1 -1
  177. package/dist/cjs/internal/runtime.js +4 -1
  178. package/dist/cjs/internal/runtime.js.map +1 -1
  179. package/dist/cjs/internal/scopedRef.js +11 -8
  180. package/dist/cjs/internal/scopedRef.js.map +1 -1
  181. package/dist/cjs/internal/stm/core.js +1 -2
  182. package/dist/cjs/internal/stm/core.js.map +1 -1
  183. package/dist/cjs/internal/stream.js +12 -3
  184. package/dist/cjs/internal/stream.js.map +1 -1
  185. package/dist/cjs/internal/trie.js +3 -0
  186. package/dist/cjs/internal/trie.js.map +1 -1
  187. package/dist/cjs/internal/version.js +1 -1
  188. package/dist/dts/Array.d.ts +2735 -2
  189. package/dist/dts/Array.d.ts.map +1 -1
  190. package/dist/dts/BigDecimal.d.ts +558 -1
  191. package/dist/dts/BigDecimal.d.ts.map +1 -1
  192. package/dist/dts/BigInt.d.ts +490 -0
  193. package/dist/dts/BigInt.d.ts.map +1 -1
  194. package/dist/dts/Boolean.d.ts +228 -0
  195. package/dist/dts/Boolean.d.ts.map +1 -1
  196. package/dist/dts/Cause.d.ts +172 -0
  197. package/dist/dts/Cause.d.ts.map +1 -1
  198. package/dist/dts/Channel.d.ts +750 -0
  199. package/dist/dts/Channel.d.ts.map +1 -1
  200. package/dist/dts/ChildExecutorDecision.d.ts +12 -0
  201. package/dist/dts/ChildExecutorDecision.d.ts.map +1 -1
  202. package/dist/dts/Chunk.d.ts +791 -0
  203. package/dist/dts/Chunk.d.ts.map +1 -1
  204. package/dist/dts/Config.d.ts +174 -0
  205. package/dist/dts/Config.d.ts.map +1 -1
  206. package/dist/dts/ConfigError.d.ts +16 -0
  207. package/dist/dts/ConfigError.d.ts.map +1 -1
  208. package/dist/dts/ConfigProvider.d.ts +84 -0
  209. package/dist/dts/ConfigProvider.d.ts.map +1 -1
  210. package/dist/dts/ConfigProviderPathPatch.d.ts +32 -0
  211. package/dist/dts/ConfigProviderPathPatch.d.ts.map +1 -1
  212. package/dist/dts/Console.d.ts +24 -0
  213. package/dist/dts/Console.d.ts.map +1 -1
  214. package/dist/dts/Context.d.ts +234 -3
  215. package/dist/dts/Context.d.ts.map +1 -1
  216. package/dist/dts/Cron.d.ts +12 -0
  217. package/dist/dts/Cron.d.ts.map +1 -1
  218. package/dist/dts/Data.d.ts +165 -0
  219. package/dist/dts/Data.d.ts.map +1 -1
  220. package/dist/dts/DateTime.d.ts +878 -0
  221. package/dist/dts/DateTime.d.ts.map +1 -1
  222. package/dist/dts/Deferred.d.ts +171 -1
  223. package/dist/dts/Deferred.d.ts.map +1 -1
  224. package/dist/dts/Differ.d.ts +78 -0
  225. package/dist/dts/Differ.d.ts.map +1 -1
  226. package/dist/dts/Duration.d.ts +130 -0
  227. package/dist/dts/Duration.d.ts.map +1 -1
  228. package/dist/dts/Effect.d.ts +4350 -13
  229. package/dist/dts/Effect.d.ts.map +1 -1
  230. package/dist/dts/Either.d.ts +620 -0
  231. package/dist/dts/Either.d.ts.map +1 -1
  232. package/dist/dts/Equivalence.d.ts +24 -0
  233. package/dist/dts/Equivalence.d.ts.map +1 -1
  234. package/dist/dts/ExecutionStrategy.d.ts +14 -0
  235. package/dist/dts/ExecutionStrategy.d.ts.map +1 -1
  236. package/dist/dts/Exit.d.ts +252 -0
  237. package/dist/dts/Exit.d.ts.map +1 -1
  238. package/dist/dts/Fiber.d.ts +182 -0
  239. package/dist/dts/Fiber.d.ts.map +1 -1
  240. package/dist/dts/FiberHandle.d.ts +42 -0
  241. package/dist/dts/FiberHandle.d.ts.map +1 -1
  242. package/dist/dts/FiberId.d.ts +24 -0
  243. package/dist/dts/FiberId.d.ts.map +1 -1
  244. package/dist/dts/FiberMap.d.ts +102 -0
  245. package/dist/dts/FiberMap.d.ts.map +1 -1
  246. package/dist/dts/FiberRef.d.ts +80 -0
  247. package/dist/dts/FiberRef.d.ts.map +1 -1
  248. package/dist/dts/FiberRefs.d.ts +84 -0
  249. package/dist/dts/FiberRefs.d.ts.map +1 -1
  250. package/dist/dts/FiberRefsPatch.d.ts +30 -0
  251. package/dist/dts/FiberRefsPatch.d.ts.map +1 -1
  252. package/dist/dts/FiberSet.d.ts +38 -0
  253. package/dist/dts/FiberSet.d.ts.map +1 -1
  254. package/dist/dts/Function.d.ts +144 -28
  255. package/dist/dts/Function.d.ts.map +1 -1
  256. package/dist/dts/GroupBy.d.ts +38 -0
  257. package/dist/dts/GroupBy.d.ts.map +1 -1
  258. package/dist/dts/Hash.d.ts +8 -0
  259. package/dist/dts/Hash.d.ts.map +1 -1
  260. package/dist/dts/HashMap.d.ts +315 -0
  261. package/dist/dts/HashMap.d.ts.map +1 -1
  262. package/dist/dts/HashSet.d.ts +284 -0
  263. package/dist/dts/HashSet.d.ts.map +1 -1
  264. package/dist/dts/Inspectable.d.ts +15 -0
  265. package/dist/dts/Inspectable.d.ts.map +1 -1
  266. package/dist/dts/Iterable.d.ts +454 -0
  267. package/dist/dts/Iterable.d.ts.map +1 -1
  268. package/dist/dts/KeyedPool.d.ts +34 -0
  269. package/dist/dts/KeyedPool.d.ts.map +1 -1
  270. package/dist/dts/Layer.d.ts +460 -5
  271. package/dist/dts/Layer.d.ts.map +1 -1
  272. package/dist/dts/List.d.ts +430 -0
  273. package/dist/dts/List.d.ts.map +1 -1
  274. package/dist/dts/LogLevel.d.ts +46 -0
  275. package/dist/dts/LogLevel.d.ts.map +1 -1
  276. package/dist/dts/Logger.d.ts +194 -0
  277. package/dist/dts/Logger.d.ts.map +1 -1
  278. package/dist/dts/Mailbox.d.ts +16 -0
  279. package/dist/dts/Mailbox.d.ts.map +1 -1
  280. package/dist/dts/ManagedRuntime.d.ts +41 -2
  281. package/dist/dts/ManagedRuntime.d.ts.map +1 -1
  282. package/dist/dts/MergeDecision.d.ts +8 -0
  283. package/dist/dts/MergeDecision.d.ts.map +1 -1
  284. package/dist/dts/MergeState.d.ts +8 -0
  285. package/dist/dts/MergeState.d.ts.map +1 -1
  286. package/dist/dts/MergeStrategy.d.ts +12 -0
  287. package/dist/dts/MergeStrategy.d.ts.map +1 -1
  288. package/dist/dts/Metric.d.ts +410 -0
  289. package/dist/dts/Metric.d.ts.map +1 -1
  290. package/dist/dts/MetricHook.d.ts +24 -0
  291. package/dist/dts/MetricHook.d.ts.map +1 -1
  292. package/dist/dts/MetricKey.d.ts +48 -0
  293. package/dist/dts/MetricKey.d.ts.map +1 -1
  294. package/dist/dts/MetricPolling.d.ts +40 -0
  295. package/dist/dts/MetricPolling.d.ts.map +1 -1
  296. package/dist/dts/MetricState.d.ts +16 -0
  297. package/dist/dts/MetricState.d.ts.map +1 -1
  298. package/dist/dts/Micro.d.ts +1110 -0
  299. package/dist/dts/Micro.d.ts.map +1 -1
  300. package/dist/dts/MutableHashMap.d.ts +50 -0
  301. package/dist/dts/MutableHashMap.d.ts.map +1 -1
  302. package/dist/dts/MutableHashSet.d.ts +24 -0
  303. package/dist/dts/MutableHashSet.d.ts.map +1 -1
  304. package/dist/dts/MutableList.d.ts +36 -0
  305. package/dist/dts/MutableList.d.ts.map +1 -1
  306. package/dist/dts/MutableQueue.d.ts +62 -0
  307. package/dist/dts/MutableQueue.d.ts.map +1 -1
  308. package/dist/dts/MutableRef.d.ts +56 -0
  309. package/dist/dts/MutableRef.d.ts.map +1 -1
  310. package/dist/dts/Number.d.ts +474 -0
  311. package/dist/dts/Number.d.ts.map +1 -1
  312. package/dist/dts/Option.d.ts +1019 -0
  313. package/dist/dts/Option.d.ts.map +1 -1
  314. package/dist/dts/Order.d.ts +24 -0
  315. package/dist/dts/Order.d.ts.map +1 -1
  316. package/dist/dts/Ordering.d.ts +66 -0
  317. package/dist/dts/Ordering.d.ts.map +1 -1
  318. package/dist/dts/Pipeable.d.ts +21 -21
  319. package/dist/dts/Pipeable.d.ts.map +1 -1
  320. package/dist/dts/Pool.d.ts +37 -1
  321. package/dist/dts/Pool.d.ts.map +1 -1
  322. package/dist/dts/Predicate.d.ts +513 -0
  323. package/dist/dts/Predicate.d.ts.map +1 -1
  324. package/dist/dts/PubSub.d.ts +28 -0
  325. package/dist/dts/PubSub.d.ts.map +1 -1
  326. package/dist/dts/Queue.d.ts +106 -2
  327. package/dist/dts/Queue.d.ts.map +1 -1
  328. package/dist/dts/RcMap.d.ts +70 -0
  329. package/dist/dts/RcMap.d.ts.map +1 -1
  330. package/dist/dts/Readable.d.ts +16 -0
  331. package/dist/dts/Readable.d.ts.map +1 -1
  332. package/dist/dts/Record.d.ts +800 -0
  333. package/dist/dts/Record.d.ts.map +1 -1
  334. package/dist/dts/RedBlackTree.d.ts +300 -0
  335. package/dist/dts/RedBlackTree.d.ts.map +1 -1
  336. package/dist/dts/Ref.d.ts +88 -0
  337. package/dist/dts/Ref.d.ts.map +1 -1
  338. package/dist/dts/RegExp.d.ts +12 -2
  339. package/dist/dts/RegExp.d.ts.map +1 -1
  340. package/dist/dts/Request.d.ts +76 -0
  341. package/dist/dts/Request.d.ts.map +1 -1
  342. package/dist/dts/RequestResolver.d.ts +144 -0
  343. package/dist/dts/RequestResolver.d.ts.map +1 -1
  344. package/dist/dts/Resource.d.ts +21 -1
  345. package/dist/dts/Resource.d.ts.map +1 -1
  346. package/dist/dts/Runtime.d.ts +126 -0
  347. package/dist/dts/Runtime.d.ts.map +1 -1
  348. package/dist/dts/RuntimeFlags.d.ts +100 -0
  349. package/dist/dts/RuntimeFlags.d.ts.map +1 -1
  350. package/dist/dts/RuntimeFlagsPatch.d.ts +112 -0
  351. package/dist/dts/RuntimeFlagsPatch.d.ts.map +1 -1
  352. package/dist/dts/STM.d.ts +1090 -0
  353. package/dist/dts/STM.d.ts.map +1 -1
  354. package/dist/dts/Schedule.d.ts +704 -0
  355. package/dist/dts/Schedule.d.ts.map +1 -1
  356. package/dist/dts/ScheduleInterval.d.ts +68 -0
  357. package/dist/dts/ScheduleInterval.d.ts.map +1 -1
  358. package/dist/dts/ScheduleIntervals.d.ts +50 -0
  359. package/dist/dts/ScheduleIntervals.d.ts.map +1 -1
  360. package/dist/dts/Scope.d.ts +36 -0
  361. package/dist/dts/Scope.d.ts.map +1 -1
  362. package/dist/dts/ScopedRef.d.ts +43 -1
  363. package/dist/dts/ScopedRef.d.ts.map +1 -1
  364. package/dist/dts/Sink.d.ts +464 -0
  365. package/dist/dts/Sink.d.ts.map +1 -1
  366. package/dist/dts/SortedMap.d.ts +76 -0
  367. package/dist/dts/SortedMap.d.ts.map +1 -1
  368. package/dist/dts/SortedSet.d.ts +142 -0
  369. package/dist/dts/SortedSet.d.ts.map +1 -1
  370. package/dist/dts/Stream.d.ts +4998 -1
  371. package/dist/dts/Stream.d.ts.map +1 -1
  372. package/dist/dts/StreamHaltStrategy.d.ts +12 -0
  373. package/dist/dts/StreamHaltStrategy.d.ts.map +1 -1
  374. package/dist/dts/String.d.ts +200 -0
  375. package/dist/dts/String.d.ts.map +1 -1
  376. package/dist/dts/Struct.d.ts +84 -0
  377. package/dist/dts/Struct.d.ts.map +1 -1
  378. package/dist/dts/Subscribable.d.ts +16 -0
  379. package/dist/dts/Subscribable.d.ts.map +1 -1
  380. package/dist/dts/SubscriptionRef.d.ts +152 -0
  381. package/dist/dts/SubscriptionRef.d.ts.map +1 -1
  382. package/dist/dts/SynchronizedRef.d.ts +152 -0
  383. package/dist/dts/SynchronizedRef.d.ts.map +1 -1
  384. package/dist/dts/TArray.d.ts +426 -0
  385. package/dist/dts/TArray.d.ts.map +1 -1
  386. package/dist/dts/TDeferred.d.ts +24 -0
  387. package/dist/dts/TDeferred.d.ts.map +1 -1
  388. package/dist/dts/TMap.d.ts +366 -0
  389. package/dist/dts/TMap.d.ts.map +1 -1
  390. package/dist/dts/TPriorityQueue.d.ts +60 -0
  391. package/dist/dts/TPriorityQueue.d.ts.map +1 -1
  392. package/dist/dts/TPubSub.d.ts +28 -0
  393. package/dist/dts/TPubSub.d.ts.map +1 -1
  394. package/dist/dts/TQueue.d.ts +108 -0
  395. package/dist/dts/TQueue.d.ts.map +1 -1
  396. package/dist/dts/TReentrantLock.d.ts +36 -0
  397. package/dist/dts/TReentrantLock.d.ts.map +1 -1
  398. package/dist/dts/TRef.d.ts +88 -0
  399. package/dist/dts/TRef.d.ts.map +1 -1
  400. package/dist/dts/TSemaphore.d.ts +40 -0
  401. package/dist/dts/TSemaphore.d.ts.map +1 -1
  402. package/dist/dts/TSet.d.ts +254 -0
  403. package/dist/dts/TSet.d.ts.map +1 -1
  404. package/dist/dts/Take.d.ts +56 -0
  405. package/dist/dts/Take.d.ts.map +1 -1
  406. package/dist/dts/TestAnnotationMap.d.ts.map +1 -1
  407. package/dist/dts/TestClock.d.ts.map +1 -1
  408. package/dist/dts/TestServices.d.ts.map +1 -1
  409. package/dist/dts/Trie.d.ts +906 -0
  410. package/dist/dts/Trie.d.ts.map +1 -1
  411. package/dist/dts/Tuple.d.ts +203 -0
  412. package/dist/dts/Tuple.d.ts.map +1 -1
  413. package/dist/dts/Types.d.ts +39 -0
  414. package/dist/dts/Types.d.ts.map +1 -1
  415. package/dist/dts/Unify.d.ts +26 -13
  416. package/dist/dts/Unify.d.ts.map +1 -1
  417. package/dist/dts/UpstreamPullRequest.d.ts +12 -0
  418. package/dist/dts/UpstreamPullRequest.d.ts.map +1 -1
  419. package/dist/dts/UpstreamPullStrategy.d.ts +12 -0
  420. package/dist/dts/UpstreamPullStrategy.d.ts.map +1 -1
  421. package/dist/dts/Utils.d.ts.map +1 -1
  422. package/dist/dts/internal/core.d.ts.map +1 -1
  423. package/dist/dts/internal/hashMap.d.ts.map +1 -1
  424. package/dist/dts/internal/layer.d.ts.map +1 -1
  425. package/dist/dts/internal/managedRuntime/circular.d.ts +2 -0
  426. package/dist/dts/internal/managedRuntime/circular.d.ts.map +1 -0
  427. package/dist/dts/internal/stream.d.ts.map +1 -1
  428. package/dist/esm/Array.js +21 -0
  429. package/dist/esm/Array.js.map +1 -1
  430. package/dist/esm/BigDecimal.js +6 -3
  431. package/dist/esm/BigDecimal.js.map +1 -1
  432. package/dist/esm/BigInt.js.map +1 -1
  433. package/dist/esm/Boolean.js.map +1 -1
  434. package/dist/esm/Cause.js.map +1 -1
  435. package/dist/esm/Channel.js.map +1 -1
  436. package/dist/esm/ChildExecutorDecision.js.map +1 -1
  437. package/dist/esm/Chunk.js +4 -1
  438. package/dist/esm/Chunk.js.map +1 -1
  439. package/dist/esm/Config.js.map +1 -1
  440. package/dist/esm/ConfigError.js.map +1 -1
  441. package/dist/esm/ConfigProvider.js.map +1 -1
  442. package/dist/esm/ConfigProviderPathPatch.js.map +1 -1
  443. package/dist/esm/Console.js.map +1 -1
  444. package/dist/esm/Context.js.map +1 -1
  445. package/dist/esm/Cron.js +4 -1
  446. package/dist/esm/Cron.js.map +1 -1
  447. package/dist/esm/Data.js.map +1 -1
  448. package/dist/esm/DateTime.js +6 -0
  449. package/dist/esm/DateTime.js.map +1 -1
  450. package/dist/esm/Deferred.js.map +1 -1
  451. package/dist/esm/Differ.js.map +1 -1
  452. package/dist/esm/Duration.js +4 -1
  453. package/dist/esm/Duration.js.map +1 -1
  454. package/dist/esm/Effect.js +116 -30
  455. package/dist/esm/Effect.js.map +1 -1
  456. package/dist/esm/Either.js.map +1 -1
  457. package/dist/esm/Equivalence.js.map +1 -1
  458. package/dist/esm/ExecutionStrategy.js.map +1 -1
  459. package/dist/esm/Exit.js.map +1 -1
  460. package/dist/esm/Fiber.js.map +1 -1
  461. package/dist/esm/FiberHandle.js +3 -0
  462. package/dist/esm/FiberHandle.js.map +1 -1
  463. package/dist/esm/FiberId.js.map +1 -1
  464. package/dist/esm/FiberMap.js +3 -0
  465. package/dist/esm/FiberMap.js.map +1 -1
  466. package/dist/esm/FiberRef.js.map +1 -1
  467. package/dist/esm/FiberRefs.js.map +1 -1
  468. package/dist/esm/FiberRefsPatch.js.map +1 -1
  469. package/dist/esm/FiberSet.js +3 -0
  470. package/dist/esm/FiberSet.js.map +1 -1
  471. package/dist/esm/Function.js.map +1 -1
  472. package/dist/esm/GroupBy.js.map +1 -1
  473. package/dist/esm/Hash.js.map +1 -1
  474. package/dist/esm/HashMap.js.map +1 -1
  475. package/dist/esm/HashSet.js.map +1 -1
  476. package/dist/esm/Inspectable.js +14 -0
  477. package/dist/esm/Inspectable.js.map +1 -1
  478. package/dist/esm/Iterable.js.map +1 -1
  479. package/dist/esm/KeyedPool.js.map +1 -1
  480. package/dist/esm/Layer.js.map +1 -1
  481. package/dist/esm/List.js +7 -1
  482. package/dist/esm/List.js.map +1 -1
  483. package/dist/esm/LogLevel.js.map +1 -1
  484. package/dist/esm/Logger.js.map +1 -1
  485. package/dist/esm/Mailbox.js.map +1 -1
  486. package/dist/esm/ManagedRuntime.js +15 -0
  487. package/dist/esm/ManagedRuntime.js.map +1 -1
  488. package/dist/esm/MergeDecision.js.map +1 -1
  489. package/dist/esm/MergeState.js.map +1 -1
  490. package/dist/esm/MergeStrategy.js.map +1 -1
  491. package/dist/esm/Metric.js.map +1 -1
  492. package/dist/esm/MetricHook.js.map +1 -1
  493. package/dist/esm/MetricKey.js.map +1 -1
  494. package/dist/esm/MetricPolling.js.map +1 -1
  495. package/dist/esm/MetricState.js.map +1 -1
  496. package/dist/esm/Micro.js +7 -1
  497. package/dist/esm/Micro.js.map +1 -1
  498. package/dist/esm/MutableHashMap.js +4 -1
  499. package/dist/esm/MutableHashMap.js.map +1 -1
  500. package/dist/esm/MutableHashSet.js +4 -1
  501. package/dist/esm/MutableHashSet.js.map +1 -1
  502. package/dist/esm/MutableList.js +4 -1
  503. package/dist/esm/MutableList.js.map +1 -1
  504. package/dist/esm/MutableQueue.js +4 -1
  505. package/dist/esm/MutableQueue.js.map +1 -1
  506. package/dist/esm/MutableRef.js +4 -1
  507. package/dist/esm/MutableRef.js.map +1 -1
  508. package/dist/esm/Number.js.map +1 -1
  509. package/dist/esm/Option.js.map +1 -1
  510. package/dist/esm/Order.js.map +1 -1
  511. package/dist/esm/Ordering.js.map +1 -1
  512. package/dist/esm/Pipeable.js.map +1 -1
  513. package/dist/esm/Pool.js.map +1 -1
  514. package/dist/esm/Predicate.js +15 -0
  515. package/dist/esm/Predicate.js.map +1 -1
  516. package/dist/esm/PubSub.js.map +1 -1
  517. package/dist/esm/Queue.js.map +1 -1
  518. package/dist/esm/RcMap.js.map +1 -1
  519. package/dist/esm/Readable.js.map +1 -1
  520. package/dist/esm/Record.js.map +1 -1
  521. package/dist/esm/RedBlackTree.js.map +1 -1
  522. package/dist/esm/Ref.js.map +1 -1
  523. package/dist/esm/RegExp.js +16 -0
  524. package/dist/esm/RegExp.js.map +1 -1
  525. package/dist/esm/Request.js.map +1 -1
  526. package/dist/esm/RequestResolver.js.map +1 -1
  527. package/dist/esm/Resource.js.map +1 -1
  528. package/dist/esm/Runtime.js.map +1 -1
  529. package/dist/esm/RuntimeFlags.js.map +1 -1
  530. package/dist/esm/RuntimeFlagsPatch.js.map +1 -1
  531. package/dist/esm/STM.js.map +1 -1
  532. package/dist/esm/Schedule.js.map +1 -1
  533. package/dist/esm/ScheduleInterval.js.map +1 -1
  534. package/dist/esm/ScheduleIntervals.js.map +1 -1
  535. package/dist/esm/Scheduler.js.map +1 -1
  536. package/dist/esm/Scope.js.map +1 -1
  537. package/dist/esm/ScopedRef.js.map +1 -1
  538. package/dist/esm/Sink.js.map +1 -1
  539. package/dist/esm/SortedMap.js +4 -1
  540. package/dist/esm/SortedMap.js.map +1 -1
  541. package/dist/esm/SortedSet.js +4 -1
  542. package/dist/esm/SortedSet.js.map +1 -1
  543. package/dist/esm/Stream.js +14 -0
  544. package/dist/esm/Stream.js.map +1 -1
  545. package/dist/esm/StreamHaltStrategy.js.map +1 -1
  546. package/dist/esm/String.js.map +1 -1
  547. package/dist/esm/Struct.js.map +1 -1
  548. package/dist/esm/Subscribable.js.map +1 -1
  549. package/dist/esm/SubscriptionRef.js.map +1 -1
  550. package/dist/esm/SynchronizedRef.js.map +1 -1
  551. package/dist/esm/TArray.js.map +1 -1
  552. package/dist/esm/TDeferred.js.map +1 -1
  553. package/dist/esm/TMap.js.map +1 -1
  554. package/dist/esm/TPriorityQueue.js.map +1 -1
  555. package/dist/esm/TPubSub.js.map +1 -1
  556. package/dist/esm/TQueue.js.map +1 -1
  557. package/dist/esm/TReentrantLock.js.map +1 -1
  558. package/dist/esm/TRef.js.map +1 -1
  559. package/dist/esm/TSemaphore.js.map +1 -1
  560. package/dist/esm/TSet.js.map +1 -1
  561. package/dist/esm/Take.js.map +1 -1
  562. package/dist/esm/TestAnnotationMap.js.map +1 -1
  563. package/dist/esm/TestClock.js.map +1 -1
  564. package/dist/esm/TestServices.js.map +1 -1
  565. package/dist/esm/Trie.js.map +1 -1
  566. package/dist/esm/Tuple.js +19 -0
  567. package/dist/esm/Tuple.js.map +1 -1
  568. package/dist/esm/Unify.js.map +1 -1
  569. package/dist/esm/UpstreamPullRequest.js.map +1 -1
  570. package/dist/esm/UpstreamPullStrategy.js.map +1 -1
  571. package/dist/esm/Utils.js +1 -14
  572. package/dist/esm/Utils.js.map +1 -1
  573. package/dist/esm/internal/cause.js +4 -1
  574. package/dist/esm/internal/cause.js.map +1 -1
  575. package/dist/esm/internal/context.js +7 -2
  576. package/dist/esm/internal/context.js.map +1 -1
  577. package/dist/esm/internal/core-effect.js.map +1 -1
  578. package/dist/esm/internal/core.js +14 -2
  579. package/dist/esm/internal/core.js.map +1 -1
  580. package/dist/esm/internal/effect/circular.js +5 -1
  581. package/dist/esm/internal/effect/circular.js.map +1 -1
  582. package/dist/esm/internal/fiberId.js +10 -1
  583. package/dist/esm/internal/fiberId.js.map +1 -1
  584. package/dist/esm/internal/hashMap.js +4 -1
  585. package/dist/esm/internal/hashMap.js.map +1 -1
  586. package/dist/esm/internal/hashSet.js +4 -1
  587. package/dist/esm/internal/hashSet.js.map +1 -1
  588. package/dist/esm/internal/layer.js +32 -18
  589. package/dist/esm/internal/layer.js.map +1 -1
  590. package/dist/esm/internal/mailbox.js +3 -0
  591. package/dist/esm/internal/mailbox.js.map +1 -1
  592. package/dist/esm/internal/managedRuntime/circular.js +4 -0
  593. package/dist/esm/internal/managedRuntime/circular.js.map +1 -0
  594. package/dist/esm/internal/managedRuntime.js +21 -8
  595. package/dist/esm/internal/managedRuntime.js.map +1 -1
  596. package/dist/esm/internal/option.js +4 -1
  597. package/dist/esm/internal/option.js.map +1 -1
  598. package/dist/esm/internal/pool.js +6 -1
  599. package/dist/esm/internal/pool.js.map +1 -1
  600. package/dist/esm/internal/redBlackTree.js +4 -1
  601. package/dist/esm/internal/redBlackTree.js.map +1 -1
  602. package/dist/esm/internal/resource.js +15 -5
  603. package/dist/esm/internal/resource.js.map +1 -1
  604. package/dist/esm/internal/runtime.js +4 -1
  605. package/dist/esm/internal/runtime.js.map +1 -1
  606. package/dist/esm/internal/scopedRef.js +11 -8
  607. package/dist/esm/internal/scopedRef.js.map +1 -1
  608. package/dist/esm/internal/stm/core.js +1 -2
  609. package/dist/esm/internal/stm/core.js.map +1 -1
  610. package/dist/esm/internal/stream.js +9 -0
  611. package/dist/esm/internal/stream.js.map +1 -1
  612. package/dist/esm/internal/trie.js +4 -1
  613. package/dist/esm/internal/trie.js.map +1 -1
  614. package/dist/esm/internal/version.js +1 -1
  615. package/package.json +1 -1
  616. package/src/Array.ts +2791 -40
  617. package/src/BigDecimal.ts +589 -19
  618. package/src/BigInt.ts +516 -16
  619. package/src/Boolean.ts +241 -8
  620. package/src/Cause.ts +177 -1
  621. package/src/Channel.ts +766 -49
  622. package/src/ChildExecutorDecision.ts +12 -0
  623. package/src/Chunk.ts +822 -5
  624. package/src/Config.ts +187 -8
  625. package/src/ConfigError.ts +16 -0
  626. package/src/ConfigProvider.ts +89 -1
  627. package/src/ConfigProviderPathPatch.ts +32 -0
  628. package/src/Console.ts +37 -8
  629. package/src/Context.ts +234 -3
  630. package/src/Cron.ts +16 -1
  631. package/src/Data.ts +165 -0
  632. package/src/DateTime.ts +1012 -50
  633. package/src/Deferred.ts +171 -1
  634. package/src/Differ.ts +89 -27
  635. package/src/Duration.ts +160 -17
  636. package/src/Effect.ts +4717 -164
  637. package/src/Either.ts +650 -34
  638. package/src/Equivalence.ts +24 -0
  639. package/src/ExecutionStrategy.ts +29 -10
  640. package/src/Exit.ts +252 -0
  641. package/src/Fiber.ts +182 -0
  642. package/src/FiberHandle.ts +45 -0
  643. package/src/FiberId.ts +24 -0
  644. package/src/FiberMap.ts +147 -21
  645. package/src/FiberRef.ts +80 -0
  646. package/src/FiberRefs.ts +84 -0
  647. package/src/FiberRefsPatch.ts +35 -1
  648. package/src/FiberSet.ts +41 -0
  649. package/src/Function.ts +416 -31
  650. package/src/GroupBy.ts +38 -0
  651. package/src/Hash.ts +8 -0
  652. package/src/HashMap.ts +316 -0
  653. package/src/HashSet.ts +284 -0
  654. package/src/Inspectable.ts +22 -0
  655. package/src/Iterable.ts +456 -6
  656. package/src/KeyedPool.ts +34 -0
  657. package/src/Layer.ts +475 -38
  658. package/src/List.ts +483 -4
  659. package/src/LogLevel.ts +46 -0
  660. package/src/Logger.ts +195 -4
  661. package/src/Mailbox.ts +16 -0
  662. package/src/ManagedRuntime.ts +46 -2
  663. package/src/MergeDecision.ts +8 -0
  664. package/src/MergeState.ts +8 -0
  665. package/src/MergeStrategy.ts +25 -8
  666. package/src/Metric.ts +426 -15
  667. package/src/MetricHook.ts +24 -0
  668. package/src/MetricKey.ts +62 -8
  669. package/src/MetricPolling.ts +42 -6
  670. package/src/MetricState.ts +16 -0
  671. package/src/Micro.ts +1223 -61
  672. package/src/MutableHashMap.ts +109 -2
  673. package/src/MutableHashSet.ts +28 -1
  674. package/src/MutableList.ts +40 -1
  675. package/src/MutableQueue.ts +66 -1
  676. package/src/MutableRef.ts +60 -1
  677. package/src/Number.ts +500 -16
  678. package/src/Option.ts +1042 -16
  679. package/src/Order.ts +24 -0
  680. package/src/Ordering.ts +66 -0
  681. package/src/Pipeable.ts +224 -21
  682. package/src/Pool.ts +42 -1
  683. package/src/Predicate.ts +514 -0
  684. package/src/PubSub.ts +28 -0
  685. package/src/Queue.ts +106 -2
  686. package/src/RcMap.ts +70 -0
  687. package/src/Readable.ts +18 -7
  688. package/src/Record.ts +814 -40
  689. package/src/RedBlackTree.ts +305 -1
  690. package/src/Ref.ts +88 -0
  691. package/src/RegExp.ts +17 -0
  692. package/src/Request.ts +76 -0
  693. package/src/RequestResolver.ts +145 -4
  694. package/src/Resource.ts +22 -1
  695. package/src/Runtime.ts +134 -2
  696. package/src/RuntimeFlags.ts +100 -0
  697. package/src/RuntimeFlagsPatch.ts +112 -0
  698. package/src/STM.ts +1107 -11
  699. package/src/Schedule.ts +704 -0
  700. package/src/ScheduleInterval.ts +68 -0
  701. package/src/ScheduleIntervals.ts +50 -0
  702. package/src/Scheduler.ts +2 -0
  703. package/src/Scope.ts +36 -0
  704. package/src/ScopedRef.ts +44 -1
  705. package/src/Sink.ts +464 -0
  706. package/src/SortedMap.ts +80 -1
  707. package/src/SortedSet.ts +147 -4
  708. package/src/Stream.ts +5041 -54
  709. package/src/StreamHaltStrategy.ts +29 -12
  710. package/src/String.ts +200 -0
  711. package/src/Struct.ts +86 -7
  712. package/src/Subscribable.ts +16 -0
  713. package/src/SubscriptionRef.ts +159 -11
  714. package/src/SynchronizedRef.ts +169 -8
  715. package/src/TArray.ts +431 -1
  716. package/src/TDeferred.ts +24 -0
  717. package/src/TMap.ts +381 -12
  718. package/src/TPriorityQueue.ts +60 -0
  719. package/src/TPubSub.ts +28 -0
  720. package/src/TQueue.ts +108 -0
  721. package/src/TReentrantLock.ts +36 -0
  722. package/src/TRef.ts +88 -0
  723. package/src/TSemaphore.ts +40 -0
  724. package/src/TSet.ts +280 -12
  725. package/src/Take.ts +56 -0
  726. package/src/TestAnnotationMap.ts +45 -1
  727. package/src/TestClock.ts +6 -0
  728. package/src/TestServices.ts +66 -0
  729. package/src/Trie.ts +906 -0
  730. package/src/Tuple.ts +223 -8
  731. package/src/Types.ts +41 -0
  732. package/src/Unify.ts +28 -17
  733. package/src/UpstreamPullRequest.ts +12 -0
  734. package/src/UpstreamPullStrategy.ts +12 -0
  735. package/src/Utils.ts +1 -15
  736. package/src/internal/cause.ts +4 -1
  737. package/src/internal/context.ts +7 -2
  738. package/src/internal/core-effect.ts +7 -7
  739. package/src/internal/core.ts +14 -2
  740. package/src/internal/effect/circular.ts +8 -2
  741. package/src/internal/fiberId.ts +10 -1
  742. package/src/internal/hashMap.ts +4 -1
  743. package/src/internal/hashSet.ts +4 -1
  744. package/src/internal/layer.ts +105 -38
  745. package/src/internal/mailbox.ts +3 -0
  746. package/src/internal/managedRuntime/circular.ts +6 -0
  747. package/src/internal/managedRuntime.ts +36 -22
  748. package/src/internal/option.ts +4 -1
  749. package/src/internal/pool.ts +7 -1
  750. package/src/internal/redBlackTree.ts +4 -1
  751. package/src/internal/resource.ts +16 -5
  752. package/src/internal/runtime.ts +4 -1
  753. package/src/internal/scopedRef.ts +12 -8
  754. package/src/internal/stm/core.ts +2 -3
  755. package/src/internal/stream.ts +27 -0
  756. package/src/internal/trie.ts +4 -1
  757. package/src/internal/version.ts +1 -1
package/src/Context.ts CHANGED
@@ -29,7 +29,6 @@ export type TagTypeId = typeof TagTypeId
29
29
  * @category models
30
30
  */
31
31
  export interface Tag<in out Id, in out Value> extends Pipeable, Inspectable {
32
- readonly _tag: "Tag"
33
32
  readonly _op: "Tag"
34
33
  readonly Service: Value
35
34
  readonly Identifier: Id
@@ -85,13 +84,13 @@ export declare namespace Tag {
85
84
  /**
86
85
  * @since 2.0.0
87
86
  */
88
- export type Service<T extends Tag<any, any> | TagClassShape<any, any>> = T extends Tag<any, infer A> ? A
87
+ export type Service<T extends Tag<any, any> | TagClassShape<any, any>> = T extends Tag<any, any> ? T["Service"]
89
88
  : T extends TagClassShape<any, infer A> ? A
90
89
  : never
91
90
  /**
92
91
  * @since 2.0.0
93
92
  */
94
- export type Identifier<T extends Tag<any, any> | TagClassShape<any, any>> = T extends Tag<infer A, any> ? A
93
+ export type Identifier<T extends Tag<any, any> | TagClassShape<any, any>> = T extends Tag<any, any> ? T["Identifier"]
95
94
  : T extends TagClassShape<any, any> ? T
96
95
  : never
97
96
  }
@@ -226,10 +225,52 @@ export const make: <T extends Tag<any, any>>(tag: T, service: Tag.Service<T>) =>
226
225
  * @since 2.0.0
227
226
  */
228
227
  export const add: {
228
+ /**
229
+ * Adds a service to a given `Context`.
230
+ *
231
+ * @example
232
+ * import { Context, pipe } from "effect"
233
+ *
234
+ * const Port = Context.GenericTag<{ PORT: number }>("Port")
235
+ * const Timeout = Context.GenericTag<{ TIMEOUT: number }>("Timeout")
236
+ *
237
+ * const someContext = Context.make(Port, { PORT: 8080 })
238
+ *
239
+ * const Services = pipe(
240
+ * someContext,
241
+ * Context.add(Timeout, { TIMEOUT: 5000 })
242
+ * )
243
+ *
244
+ * assert.deepStrictEqual(Context.get(Services, Port), { PORT: 8080 })
245
+ * assert.deepStrictEqual(Context.get(Services, Timeout), { TIMEOUT: 5000 })
246
+ *
247
+ * @since 2.0.0
248
+ */
229
249
  <T extends Tag<any, any>>(
230
250
  tag: T,
231
251
  service: Tag.Service<T>
232
252
  ): <Services>(self: Context<Services>) => Context<Services | Tag.Identifier<T>>
253
+ /**
254
+ * Adds a service to a given `Context`.
255
+ *
256
+ * @example
257
+ * import { Context, pipe } from "effect"
258
+ *
259
+ * const Port = Context.GenericTag<{ PORT: number }>("Port")
260
+ * const Timeout = Context.GenericTag<{ TIMEOUT: number }>("Timeout")
261
+ *
262
+ * const someContext = Context.make(Port, { PORT: 8080 })
263
+ *
264
+ * const Services = pipe(
265
+ * someContext,
266
+ * Context.add(Timeout, { TIMEOUT: 5000 })
267
+ * )
268
+ *
269
+ * assert.deepStrictEqual(Context.get(Services, Port), { PORT: 8080 })
270
+ * assert.deepStrictEqual(Context.get(Services, Timeout), { TIMEOUT: 5000 })
271
+ *
272
+ * @since 2.0.0
273
+ */
233
274
  <Services, T extends Tag<any, any>>(
234
275
  self: Context<Services>,
235
276
  tag: T,
@@ -260,7 +301,51 @@ export const add: {
260
301
  * @category getters
261
302
  */
262
303
  export const get: {
304
+ /**
305
+ * Get a service from the context that corresponds to the given tag.
306
+ *
307
+ * @param self - The `Context` to search for the service.
308
+ * @param tag - The `Tag` of the service to retrieve.
309
+ *
310
+ * @example
311
+ * import { pipe, Context } from "effect"
312
+ *
313
+ * const Port = Context.GenericTag<{ PORT: number }>("Port")
314
+ * const Timeout = Context.GenericTag<{ TIMEOUT: number }>("Timeout")
315
+ *
316
+ * const Services = pipe(
317
+ * Context.make(Port, { PORT: 8080 }),
318
+ * Context.add(Timeout, { TIMEOUT: 5000 })
319
+ * )
320
+ *
321
+ * assert.deepStrictEqual(Context.get(Services, Timeout), { TIMEOUT: 5000 })
322
+ *
323
+ * @since 2.0.0
324
+ * @category getters
325
+ */
263
326
  <Services, T extends ValidTagsById<Services>>(tag: T): (self: Context<Services>) => Tag.Service<T>
327
+ /**
328
+ * Get a service from the context that corresponds to the given tag.
329
+ *
330
+ * @param self - The `Context` to search for the service.
331
+ * @param tag - The `Tag` of the service to retrieve.
332
+ *
333
+ * @example
334
+ * import { pipe, Context } from "effect"
335
+ *
336
+ * const Port = Context.GenericTag<{ PORT: number }>("Port")
337
+ * const Timeout = Context.GenericTag<{ TIMEOUT: number }>("Timeout")
338
+ *
339
+ * const Services = pipe(
340
+ * Context.make(Port, { PORT: 8080 }),
341
+ * Context.add(Timeout, { TIMEOUT: 5000 })
342
+ * )
343
+ *
344
+ * assert.deepStrictEqual(Context.get(Services, Timeout), { TIMEOUT: 5000 })
345
+ *
346
+ * @since 2.0.0
347
+ * @category getters
348
+ */
264
349
  <Services, T extends ValidTagsById<Services>>(self: Context<Services>, tag: T): Tag.Service<T>
265
350
  } = internal.get
266
351
 
@@ -272,7 +357,21 @@ export const get: {
272
357
  * @category getters
273
358
  */
274
359
  export const getOrElse: {
360
+ /**
361
+ * Get a service from the context that corresponds to the given tag, or
362
+ * use the fallback value.
363
+ *
364
+ * @since 3.7.0
365
+ * @category getters
366
+ */
275
367
  <S, I, B>(tag: Tag<I, S>, orElse: LazyArg<B>): <Services>(self: Context<Services>) => S | B
368
+ /**
369
+ * Get a service from the context that corresponds to the given tag, or
370
+ * use the fallback value.
371
+ *
372
+ * @since 3.7.0
373
+ * @category getters
374
+ */
276
375
  <Services, S, I, B>(self: Context<Services>, tag: Tag<I, S>, orElse: LazyArg<B>): S | B
277
376
  } = internal.getOrElse
278
377
 
@@ -300,7 +399,53 @@ export const getOrElse: {
300
399
  * @category unsafe
301
400
  */
302
401
  export const unsafeGet: {
402
+ /**
403
+ * Get a service from the context that corresponds to the given tag.
404
+ * This function is unsafe because if the tag is not present in the context, a runtime error will be thrown.
405
+ *
406
+ * For a safer version see {@link getOption}.
407
+ *
408
+ * @param self - The `Context` to search for the service.
409
+ * @param tag - The `Tag` of the service to retrieve.
410
+ *
411
+ * @example
412
+ * import { Context } from "effect"
413
+ *
414
+ * const Port = Context.GenericTag<{ PORT: number }>("Port")
415
+ * const Timeout = Context.GenericTag<{ TIMEOUT: number }>("Timeout")
416
+ *
417
+ * const Services = Context.make(Port, { PORT: 8080 })
418
+ *
419
+ * assert.deepStrictEqual(Context.unsafeGet(Services, Port), { PORT: 8080 })
420
+ * assert.throws(() => Context.unsafeGet(Services, Timeout))
421
+ *
422
+ * @since 2.0.0
423
+ * @category unsafe
424
+ */
303
425
  <S, I>(tag: Tag<I, S>): <Services>(self: Context<Services>) => S
426
+ /**
427
+ * Get a service from the context that corresponds to the given tag.
428
+ * This function is unsafe because if the tag is not present in the context, a runtime error will be thrown.
429
+ *
430
+ * For a safer version see {@link getOption}.
431
+ *
432
+ * @param self - The `Context` to search for the service.
433
+ * @param tag - The `Tag` of the service to retrieve.
434
+ *
435
+ * @example
436
+ * import { Context } from "effect"
437
+ *
438
+ * const Port = Context.GenericTag<{ PORT: number }>("Port")
439
+ * const Timeout = Context.GenericTag<{ TIMEOUT: number }>("Timeout")
440
+ *
441
+ * const Services = Context.make(Port, { PORT: 8080 })
442
+ *
443
+ * assert.deepStrictEqual(Context.unsafeGet(Services, Port), { PORT: 8080 })
444
+ * assert.throws(() => Context.unsafeGet(Services, Timeout))
445
+ *
446
+ * @since 2.0.0
447
+ * @category unsafe
448
+ */
304
449
  <Services, S, I>(self: Context<Services>, tag: Tag<I, S>): S
305
450
  } = internal.unsafeGet
306
451
 
@@ -326,7 +471,49 @@ export const unsafeGet: {
326
471
  * @category getters
327
472
  */
328
473
  export const getOption: {
474
+ /**
475
+ * Get the value associated with the specified tag from the context wrapped in an `Option` object. If the tag is not
476
+ * found, the `Option` object will be `None`.
477
+ *
478
+ * @param self - The `Context` to search for the service.
479
+ * @param tag - The `Tag` of the service to retrieve.
480
+ *
481
+ * @example
482
+ * import { Context, Option } from "effect"
483
+ *
484
+ * const Port = Context.GenericTag<{ PORT: number }>("Port")
485
+ * const Timeout = Context.GenericTag<{ TIMEOUT: number }>("Timeout")
486
+ *
487
+ * const Services = Context.make(Port, { PORT: 8080 })
488
+ *
489
+ * assert.deepStrictEqual(Context.getOption(Services, Port), Option.some({ PORT: 8080 }))
490
+ * assert.deepStrictEqual(Context.getOption(Services, Timeout), Option.none())
491
+ *
492
+ * @since 2.0.0
493
+ * @category getters
494
+ */
329
495
  <S, I>(tag: Tag<I, S>): <Services>(self: Context<Services>) => Option<S>
496
+ /**
497
+ * Get the value associated with the specified tag from the context wrapped in an `Option` object. If the tag is not
498
+ * found, the `Option` object will be `None`.
499
+ *
500
+ * @param self - The `Context` to search for the service.
501
+ * @param tag - The `Tag` of the service to retrieve.
502
+ *
503
+ * @example
504
+ * import { Context, Option } from "effect"
505
+ *
506
+ * const Port = Context.GenericTag<{ PORT: number }>("Port")
507
+ * const Timeout = Context.GenericTag<{ TIMEOUT: number }>("Timeout")
508
+ *
509
+ * const Services = Context.make(Port, { PORT: 8080 })
510
+ *
511
+ * assert.deepStrictEqual(Context.getOption(Services, Port), Option.some({ PORT: 8080 }))
512
+ * assert.deepStrictEqual(Context.getOption(Services, Timeout), Option.none())
513
+ *
514
+ * @since 2.0.0
515
+ * @category getters
516
+ */
330
517
  <Services, S, I>(self: Context<Services>, tag: Tag<I, S>): Option<S>
331
518
  } = internal.getOption
332
519
 
@@ -353,7 +540,51 @@ export const getOption: {
353
540
  * @since 2.0.0
354
541
  */
355
542
  export const merge: {
543
+ /**
544
+ * Merges two `Context`s, returning a new `Context` containing the services of both.
545
+ *
546
+ * @param self - The first `Context` to merge.
547
+ * @param that - The second `Context` to merge.
548
+ *
549
+ * @example
550
+ * import { Context } from "effect"
551
+ *
552
+ * const Port = Context.GenericTag<{ PORT: number }>("Port")
553
+ * const Timeout = Context.GenericTag<{ TIMEOUT: number }>("Timeout")
554
+ *
555
+ * const firstContext = Context.make(Port, { PORT: 8080 })
556
+ * const secondContext = Context.make(Timeout, { TIMEOUT: 5000 })
557
+ *
558
+ * const Services = Context.merge(firstContext, secondContext)
559
+ *
560
+ * assert.deepStrictEqual(Context.get(Services, Port), { PORT: 8080 })
561
+ * assert.deepStrictEqual(Context.get(Services, Timeout), { TIMEOUT: 5000 })
562
+ *
563
+ * @since 2.0.0
564
+ */
356
565
  <R1>(that: Context<R1>): <Services>(self: Context<Services>) => Context<R1 | Services>
566
+ /**
567
+ * Merges two `Context`s, returning a new `Context` containing the services of both.
568
+ *
569
+ * @param self - The first `Context` to merge.
570
+ * @param that - The second `Context` to merge.
571
+ *
572
+ * @example
573
+ * import { Context } from "effect"
574
+ *
575
+ * const Port = Context.GenericTag<{ PORT: number }>("Port")
576
+ * const Timeout = Context.GenericTag<{ TIMEOUT: number }>("Timeout")
577
+ *
578
+ * const firstContext = Context.make(Port, { PORT: 8080 })
579
+ * const secondContext = Context.make(Timeout, { TIMEOUT: 5000 })
580
+ *
581
+ * const Services = Context.merge(firstContext, secondContext)
582
+ *
583
+ * assert.deepStrictEqual(Context.get(Services, Port), { PORT: 8080 })
584
+ * assert.deepStrictEqual(Context.get(Services, Timeout), { TIMEOUT: 5000 })
585
+ *
586
+ * @since 2.0.0
587
+ */
357
588
  <Services, R1>(self: Context<Services>, that: Context<R1>): Context<Services | R1>
358
589
  } = internal.merge
359
590
 
package/src/Cron.ts CHANGED
@@ -7,7 +7,7 @@ import * as Equal from "./Equal.js"
7
7
  import * as equivalence from "./Equivalence.js"
8
8
  import { dual, pipe } from "./Function.js"
9
9
  import * as Hash from "./Hash.js"
10
- import { format, type Inspectable, NodeInspectSymbol } from "./Inspectable.js"
10
+ import { DenoInspectSymbol, format, type Inspectable, NodeInspectSymbol } from "./Inspectable.js"
11
11
  import * as N from "./Number.js"
12
12
  import { type Pipeable, pipeArguments } from "./Pipeable.js"
13
13
  import { hasProperty } from "./Predicate.js"
@@ -67,6 +67,9 @@ const CronProto: Omit<Cron, "minutes" | "hours" | "days" | "months" | "weekdays"
67
67
  weekdays: Arr.fromIterable(this.weekdays)
68
68
  }
69
69
  },
70
+ [DenoInspectSymbol](this: Cron) {
71
+ return this.toJSON()
72
+ },
70
73
  [NodeInspectSymbol](this: Cron) {
71
74
  return this.toJSON()
72
75
  },
@@ -370,7 +373,19 @@ const restrictionsEquals = (self: ReadonlySet<number>, that: ReadonlySet<number>
370
373
  * @category predicates
371
374
  */
372
375
  export const equals: {
376
+ /**
377
+ * Checks if two `Cron`s are equal.
378
+ *
379
+ * @since 2.0.0
380
+ * @category predicates
381
+ */
373
382
  (that: Cron): (self: Cron) => boolean
383
+ /**
384
+ * Checks if two `Cron`s are equal.
385
+ *
386
+ * @since 2.0.0
387
+ * @category predicates
388
+ */
374
389
  (self: Cron, that: Cron): boolean
375
390
  } = dual(2, (self: Cron, that: Cron): boolean => Equivalence(self, that))
376
391
 
package/src/Data.ts CHANGED
@@ -430,6 +430,39 @@ export declare namespace TaggedEnum {
430
430
  * @since 2.0.0
431
431
  */
432
432
  export const taggedEnum: {
433
+ /**
434
+ * Create a constructor for a tagged union of `Data` structs.
435
+ *
436
+ * You can also pass a `TaggedEnum.WithGenerics` if you want to add generics to
437
+ * the constructor.
438
+ *
439
+ * @example
440
+ * import { Data } from "effect"
441
+ *
442
+ * const { BadRequest, NotFound } = Data.taggedEnum<
443
+ * | { readonly _tag: "BadRequest"; readonly status: 400; readonly message: string }
444
+ * | { readonly _tag: "NotFound"; readonly status: 404; readonly message: string }
445
+ * >()
446
+ *
447
+ * const notFound = NotFound({ status: 404, message: "Not Found" })
448
+ *
449
+ * @example
450
+ * import { Data } from "effect"
451
+ *
452
+ * type MyResult<E, A> = Data.TaggedEnum<{
453
+ * Failure: { readonly error: E }
454
+ * Success: { readonly value: A }
455
+ * }>
456
+ * interface MyResultDefinition extends Data.TaggedEnum.WithGenerics<2> {
457
+ * readonly taggedEnum: MyResult<this["A"], this["B"]>
458
+ * }
459
+ * const { Failure, Success } = Data.taggedEnum<MyResultDefinition>()
460
+ *
461
+ * const success = Success({ value: 1 })
462
+ *
463
+ * @category constructors
464
+ * @since 2.0.0
465
+ */
433
466
  <Z extends TaggedEnum.WithGenerics<1>>(): Types.Simplify<
434
467
  {
435
468
  readonly [Tag in Z["taggedEnum"]["_tag"]]: <A>(
@@ -442,6 +475,39 @@ export const taggedEnum: {
442
475
  } & TaggedEnum.GenericMatchers<Z>
443
476
  >
444
477
 
478
+ /**
479
+ * Create a constructor for a tagged union of `Data` structs.
480
+ *
481
+ * You can also pass a `TaggedEnum.WithGenerics` if you want to add generics to
482
+ * the constructor.
483
+ *
484
+ * @example
485
+ * import { Data } from "effect"
486
+ *
487
+ * const { BadRequest, NotFound } = Data.taggedEnum<
488
+ * | { readonly _tag: "BadRequest"; readonly status: 400; readonly message: string }
489
+ * | { readonly _tag: "NotFound"; readonly status: 404; readonly message: string }
490
+ * >()
491
+ *
492
+ * const notFound = NotFound({ status: 404, message: "Not Found" })
493
+ *
494
+ * @example
495
+ * import { Data } from "effect"
496
+ *
497
+ * type MyResult<E, A> = Data.TaggedEnum<{
498
+ * Failure: { readonly error: E }
499
+ * Success: { readonly value: A }
500
+ * }>
501
+ * interface MyResultDefinition extends Data.TaggedEnum.WithGenerics<2> {
502
+ * readonly taggedEnum: MyResult<this["A"], this["B"]>
503
+ * }
504
+ * const { Failure, Success } = Data.taggedEnum<MyResultDefinition>()
505
+ *
506
+ * const success = Success({ value: 1 })
507
+ *
508
+ * @category constructors
509
+ * @since 2.0.0
510
+ */
445
511
  <Z extends TaggedEnum.WithGenerics<2>>(): Types.Simplify<
446
512
  {
447
513
  readonly [Tag in Z["taggedEnum"]["_tag"]]: <A, B>(
@@ -454,6 +520,39 @@ export const taggedEnum: {
454
520
  } & TaggedEnum.GenericMatchers<Z>
455
521
  >
456
522
 
523
+ /**
524
+ * Create a constructor for a tagged union of `Data` structs.
525
+ *
526
+ * You can also pass a `TaggedEnum.WithGenerics` if you want to add generics to
527
+ * the constructor.
528
+ *
529
+ * @example
530
+ * import { Data } from "effect"
531
+ *
532
+ * const { BadRequest, NotFound } = Data.taggedEnum<
533
+ * | { readonly _tag: "BadRequest"; readonly status: 400; readonly message: string }
534
+ * | { readonly _tag: "NotFound"; readonly status: 404; readonly message: string }
535
+ * >()
536
+ *
537
+ * const notFound = NotFound({ status: 404, message: "Not Found" })
538
+ *
539
+ * @example
540
+ * import { Data } from "effect"
541
+ *
542
+ * type MyResult<E, A> = Data.TaggedEnum<{
543
+ * Failure: { readonly error: E }
544
+ * Success: { readonly value: A }
545
+ * }>
546
+ * interface MyResultDefinition extends Data.TaggedEnum.WithGenerics<2> {
547
+ * readonly taggedEnum: MyResult<this["A"], this["B"]>
548
+ * }
549
+ * const { Failure, Success } = Data.taggedEnum<MyResultDefinition>()
550
+ *
551
+ * const success = Success({ value: 1 })
552
+ *
553
+ * @category constructors
554
+ * @since 2.0.0
555
+ */
457
556
  <Z extends TaggedEnum.WithGenerics<3>>(): Types.Simplify<
458
557
  {
459
558
  readonly [Tag in Z["taggedEnum"]["_tag"]]: <A, B, C>(
@@ -466,6 +565,39 @@ export const taggedEnum: {
466
565
  } & TaggedEnum.GenericMatchers<Z>
467
566
  >
468
567
 
568
+ /**
569
+ * Create a constructor for a tagged union of `Data` structs.
570
+ *
571
+ * You can also pass a `TaggedEnum.WithGenerics` if you want to add generics to
572
+ * the constructor.
573
+ *
574
+ * @example
575
+ * import { Data } from "effect"
576
+ *
577
+ * const { BadRequest, NotFound } = Data.taggedEnum<
578
+ * | { readonly _tag: "BadRequest"; readonly status: 400; readonly message: string }
579
+ * | { readonly _tag: "NotFound"; readonly status: 404; readonly message: string }
580
+ * >()
581
+ *
582
+ * const notFound = NotFound({ status: 404, message: "Not Found" })
583
+ *
584
+ * @example
585
+ * import { Data } from "effect"
586
+ *
587
+ * type MyResult<E, A> = Data.TaggedEnum<{
588
+ * Failure: { readonly error: E }
589
+ * Success: { readonly value: A }
590
+ * }>
591
+ * interface MyResultDefinition extends Data.TaggedEnum.WithGenerics<2> {
592
+ * readonly taggedEnum: MyResult<this["A"], this["B"]>
593
+ * }
594
+ * const { Failure, Success } = Data.taggedEnum<MyResultDefinition>()
595
+ *
596
+ * const success = Success({ value: 1 })
597
+ *
598
+ * @category constructors
599
+ * @since 2.0.0
600
+ */
469
601
  <Z extends TaggedEnum.WithGenerics<4>>(): Types.Simplify<
470
602
  {
471
603
  readonly [Tag in Z["taggedEnum"]["_tag"]]: <A, B, C, D>(
@@ -478,6 +610,39 @@ export const taggedEnum: {
478
610
  } & TaggedEnum.GenericMatchers<Z>
479
611
  >
480
612
 
613
+ /**
614
+ * Create a constructor for a tagged union of `Data` structs.
615
+ *
616
+ * You can also pass a `TaggedEnum.WithGenerics` if you want to add generics to
617
+ * the constructor.
618
+ *
619
+ * @example
620
+ * import { Data } from "effect"
621
+ *
622
+ * const { BadRequest, NotFound } = Data.taggedEnum<
623
+ * | { readonly _tag: "BadRequest"; readonly status: 400; readonly message: string }
624
+ * | { readonly _tag: "NotFound"; readonly status: 404; readonly message: string }
625
+ * >()
626
+ *
627
+ * const notFound = NotFound({ status: 404, message: "Not Found" })
628
+ *
629
+ * @example
630
+ * import { Data } from "effect"
631
+ *
632
+ * type MyResult<E, A> = Data.TaggedEnum<{
633
+ * Failure: { readonly error: E }
634
+ * Success: { readonly value: A }
635
+ * }>
636
+ * interface MyResultDefinition extends Data.TaggedEnum.WithGenerics<2> {
637
+ * readonly taggedEnum: MyResult<this["A"], this["B"]>
638
+ * }
639
+ * const { Failure, Success } = Data.taggedEnum<MyResultDefinition>()
640
+ *
641
+ * const success = Success({ value: 1 })
642
+ *
643
+ * @category constructors
644
+ * @since 2.0.0
645
+ */
481
646
  <A extends { readonly _tag: string }>(): TaggedEnum.Constructor<A>
482
647
  } = () =>
483
648
  new Proxy({}, {