effect 3.10.18 → 3.11.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 (448) hide show
  1. package/dist/cjs/Array.js +206 -0
  2. package/dist/cjs/Array.js.map +1 -1
  3. package/dist/cjs/BigDecimal.js +181 -24
  4. package/dist/cjs/BigDecimal.js.map +1 -1
  5. package/dist/cjs/BigInt.js +54 -0
  6. package/dist/cjs/BigInt.js.map +1 -1
  7. package/dist/cjs/Boolean.js +24 -0
  8. package/dist/cjs/Boolean.js.map +1 -1
  9. package/dist/cjs/Brand.js +4 -0
  10. package/dist/cjs/Brand.js.map +1 -1
  11. package/dist/cjs/Channel.js +44 -4
  12. package/dist/cjs/Channel.js.map +1 -1
  13. package/dist/cjs/Chunk.js +8 -0
  14. package/dist/cjs/Chunk.js.map +1 -1
  15. package/dist/cjs/Config.js +10 -1
  16. package/dist/cjs/Config.js.map +1 -1
  17. package/dist/cjs/Context.js +50 -1
  18. package/dist/cjs/Context.js.map +1 -1
  19. package/dist/cjs/Cron.js +81 -67
  20. package/dist/cjs/Cron.js.map +1 -1
  21. package/dist/cjs/Data.js +14 -0
  22. package/dist/cjs/Data.js.map +1 -1
  23. package/dist/cjs/DateTime.js +178 -664
  24. package/dist/cjs/DateTime.js.map +1 -1
  25. package/dist/cjs/Duration.js +2 -0
  26. package/dist/cjs/Duration.js.map +1 -1
  27. package/dist/cjs/Effect.js +296 -4
  28. package/dist/cjs/Effect.js.map +1 -1
  29. package/dist/cjs/Either.js +38 -2
  30. package/dist/cjs/Either.js.map +1 -1
  31. package/dist/cjs/FiberHandle.js +6 -0
  32. package/dist/cjs/FiberHandle.js.map +1 -1
  33. package/dist/cjs/FiberMap.js +6 -0
  34. package/dist/cjs/FiberMap.js.map +1 -1
  35. package/dist/cjs/FiberSet.js +6 -0
  36. package/dist/cjs/FiberSet.js.map +1 -1
  37. package/dist/cjs/Function.js +34 -0
  38. package/dist/cjs/Function.js.map +1 -1
  39. package/dist/cjs/GlobalValue.js +2 -0
  40. package/dist/cjs/GlobalValue.js.map +1 -1
  41. package/dist/cjs/HashMap.js.map +1 -1
  42. package/dist/cjs/Inspectable.js +8 -4
  43. package/dist/cjs/Inspectable.js.map +1 -1
  44. package/dist/cjs/Iterable.js +18 -0
  45. package/dist/cjs/Iterable.js.map +1 -1
  46. package/dist/cjs/JSONSchema.js.map +1 -1
  47. package/dist/cjs/List.js +4 -0
  48. package/dist/cjs/List.js.map +1 -1
  49. package/dist/cjs/Logger.js +26 -0
  50. package/dist/cjs/Logger.js.map +1 -1
  51. package/dist/cjs/Mailbox.js +2 -0
  52. package/dist/cjs/Mailbox.js.map +1 -1
  53. package/dist/cjs/ManagedRuntime.js +2 -0
  54. package/dist/cjs/ManagedRuntime.js.map +1 -1
  55. package/dist/cjs/Metric.js +10 -0
  56. package/dist/cjs/Metric.js.map +1 -1
  57. package/dist/cjs/Micro.js +1104 -1069
  58. package/dist/cjs/Micro.js.map +1 -1
  59. package/dist/cjs/Number.js +44 -0
  60. package/dist/cjs/Number.js.map +1 -1
  61. package/dist/cjs/Option.js +70 -0
  62. package/dist/cjs/Option.js.map +1 -1
  63. package/dist/cjs/Order.js +2 -0
  64. package/dist/cjs/Order.js.map +1 -1
  65. package/dist/cjs/Ordering.js +4 -0
  66. package/dist/cjs/Ordering.js.map +1 -1
  67. package/dist/cjs/Predicate.js +68 -0
  68. package/dist/cjs/Predicate.js.map +1 -1
  69. package/dist/cjs/Random.js +4 -0
  70. package/dist/cjs/Random.js.map +1 -1
  71. package/dist/cjs/RateLimiter.js +4 -0
  72. package/dist/cjs/RateLimiter.js.map +1 -1
  73. package/dist/cjs/RcMap.js +2 -0
  74. package/dist/cjs/RcMap.js.map +1 -1
  75. package/dist/cjs/RcRef.js +2 -0
  76. package/dist/cjs/RcRef.js.map +1 -1
  77. package/dist/cjs/Record.js +56 -0
  78. package/dist/cjs/Record.js.map +1 -1
  79. package/dist/cjs/Redacted.js +8 -0
  80. package/dist/cjs/Redacted.js.map +1 -1
  81. package/dist/cjs/RegExp.js +4 -0
  82. package/dist/cjs/RegExp.js.map +1 -1
  83. package/dist/cjs/Request.js +4 -0
  84. package/dist/cjs/Request.js.map +1 -1
  85. package/dist/cjs/RequestResolver.js +2 -0
  86. package/dist/cjs/RequestResolver.js.map +1 -1
  87. package/dist/cjs/Runtime.js +6 -0
  88. package/dist/cjs/Runtime.js.map +1 -1
  89. package/dist/cjs/STM.js.map +1 -1
  90. package/dist/cjs/Schema.js +91 -8
  91. package/dist/cjs/Schema.js.map +1 -1
  92. package/dist/cjs/Sink.js +9 -1
  93. package/dist/cjs/Sink.js.map +1 -1
  94. package/dist/cjs/Stream.js +179 -7
  95. package/dist/cjs/Stream.js.map +1 -1
  96. package/dist/cjs/String.js +62 -0
  97. package/dist/cjs/String.js.map +1 -1
  98. package/dist/cjs/Struct.js +12 -0
  99. package/dist/cjs/Struct.js.map +1 -1
  100. package/dist/cjs/Symbol.js +2 -0
  101. package/dist/cjs/Symbol.js.map +1 -1
  102. package/dist/cjs/Trie.js +56 -0
  103. package/dist/cjs/Trie.js.map +1 -1
  104. package/dist/cjs/Tuple.js +18 -0
  105. package/dist/cjs/Tuple.js.map +1 -1
  106. package/dist/cjs/Utils.js +7 -1
  107. package/dist/cjs/Utils.js.map +1 -1
  108. package/dist/cjs/internal/channel/channelExecutor.js +5 -9
  109. package/dist/cjs/internal/channel/channelExecutor.js.map +1 -1
  110. package/dist/cjs/internal/channel.js +156 -130
  111. package/dist/cjs/internal/channel.js.map +1 -1
  112. package/dist/cjs/internal/config.js +13 -4
  113. package/dist/cjs/internal/config.js.map +1 -1
  114. package/dist/cjs/internal/context.js +46 -3
  115. package/dist/cjs/internal/context.js.map +1 -1
  116. package/dist/cjs/internal/dateTime.js +747 -0
  117. package/dist/cjs/internal/dateTime.js.map +1 -0
  118. package/dist/cjs/internal/fiberRuntime.js +34 -11
  119. package/dist/cjs/internal/fiberRuntime.js.map +1 -1
  120. package/dist/cjs/internal/groupBy.js +9 -3
  121. package/dist/cjs/internal/groupBy.js.map +1 -1
  122. package/dist/cjs/internal/layer.js +1 -1
  123. package/dist/cjs/internal/layer.js.map +1 -1
  124. package/dist/cjs/internal/mailbox.js +1 -1
  125. package/dist/cjs/internal/mailbox.js.map +1 -1
  126. package/dist/cjs/internal/sink.js +25 -21
  127. package/dist/cjs/internal/sink.js.map +1 -1
  128. package/dist/cjs/internal/stream.js +70 -71
  129. package/dist/cjs/internal/stream.js.map +1 -1
  130. package/dist/cjs/internal/version.js +1 -1
  131. package/dist/cjs/internal/version.js.map +1 -1
  132. package/dist/dts/Array.d.ts +534 -0
  133. package/dist/dts/Array.d.ts.map +1 -1
  134. package/dist/dts/BigDecimal.d.ts +172 -1
  135. package/dist/dts/BigDecimal.d.ts.map +1 -1
  136. package/dist/dts/BigInt.d.ts +114 -0
  137. package/dist/dts/BigInt.d.ts.map +1 -1
  138. package/dist/dts/Boolean.d.ts +56 -0
  139. package/dist/dts/Boolean.d.ts.map +1 -1
  140. package/dist/dts/Brand.d.ts +6 -0
  141. package/dist/dts/Brand.d.ts.map +1 -1
  142. package/dist/dts/Channel.d.ts +66 -5
  143. package/dist/dts/Channel.d.ts.map +1 -1
  144. package/dist/dts/Chunk.d.ts +30 -0
  145. package/dist/dts/Chunk.d.ts.map +1 -1
  146. package/dist/dts/Config.d.ts +25 -1
  147. package/dist/dts/Config.d.ts.map +1 -1
  148. package/dist/dts/Context.d.ts +155 -0
  149. package/dist/dts/Context.d.ts.map +1 -1
  150. package/dist/dts/Cron.d.ts +21 -6
  151. package/dist/dts/Cron.d.ts.map +1 -1
  152. package/dist/dts/Data.d.ts +26 -0
  153. package/dist/dts/Data.d.ts.map +1 -1
  154. package/dist/dts/DateTime.d.ts +192 -49
  155. package/dist/dts/DateTime.d.ts.map +1 -1
  156. package/dist/dts/Duration.d.ts +2 -0
  157. package/dist/dts/Duration.d.ts.map +1 -1
  158. package/dist/dts/Effect.d.ts +658 -1
  159. package/dist/dts/Effect.d.ts.map +1 -1
  160. package/dist/dts/Either.d.ts +84 -2
  161. package/dist/dts/Either.d.ts.map +1 -1
  162. package/dist/dts/FiberHandle.d.ts +6 -0
  163. package/dist/dts/FiberHandle.d.ts.map +1 -1
  164. package/dist/dts/FiberMap.d.ts +6 -0
  165. package/dist/dts/FiberMap.d.ts.map +1 -1
  166. package/dist/dts/FiberSet.d.ts +6 -0
  167. package/dist/dts/FiberSet.d.ts.map +1 -1
  168. package/dist/dts/Function.d.ts +50 -0
  169. package/dist/dts/Function.d.ts.map +1 -1
  170. package/dist/dts/GlobalValue.d.ts +2 -0
  171. package/dist/dts/GlobalValue.d.ts.map +1 -1
  172. package/dist/dts/HashMap.d.ts +6 -0
  173. package/dist/dts/HashMap.d.ts.map +1 -1
  174. package/dist/dts/Inspectable.d.ts.map +1 -1
  175. package/dist/dts/Iterable.d.ts +26 -0
  176. package/dist/dts/Iterable.d.ts.map +1 -1
  177. package/dist/dts/JSONSchema.d.ts +1 -0
  178. package/dist/dts/JSONSchema.d.ts.map +1 -1
  179. package/dist/dts/List.d.ts +20 -0
  180. package/dist/dts/List.d.ts.map +1 -1
  181. package/dist/dts/Logger.d.ts +34 -0
  182. package/dist/dts/Logger.d.ts.map +1 -1
  183. package/dist/dts/Mailbox.d.ts +2 -0
  184. package/dist/dts/Mailbox.d.ts.map +1 -1
  185. package/dist/dts/ManagedRuntime.d.ts +2 -0
  186. package/dist/dts/ManagedRuntime.d.ts.map +1 -1
  187. package/dist/dts/Metric.d.ts +18 -0
  188. package/dist/dts/Metric.d.ts.map +1 -1
  189. package/dist/dts/Micro.d.ts +880 -863
  190. package/dist/dts/Micro.d.ts.map +1 -1
  191. package/dist/dts/Number.d.ts +104 -0
  192. package/dist/dts/Number.d.ts.map +1 -1
  193. package/dist/dts/Option.d.ts +142 -0
  194. package/dist/dts/Option.d.ts.map +1 -1
  195. package/dist/dts/Order.d.ts +2 -0
  196. package/dist/dts/Order.d.ts.map +1 -1
  197. package/dist/dts/Ordering.d.ts +8 -0
  198. package/dist/dts/Ordering.d.ts.map +1 -1
  199. package/dist/dts/Predicate.d.ts +104 -0
  200. package/dist/dts/Predicate.d.ts.map +1 -1
  201. package/dist/dts/Random.d.ts +4 -0
  202. package/dist/dts/Random.d.ts.map +1 -1
  203. package/dist/dts/RateLimiter.d.ts +4 -0
  204. package/dist/dts/RateLimiter.d.ts.map +1 -1
  205. package/dist/dts/RcMap.d.ts +6 -0
  206. package/dist/dts/RcMap.d.ts.map +1 -1
  207. package/dist/dts/RcRef.d.ts +2 -0
  208. package/dist/dts/RcRef.d.ts.map +1 -1
  209. package/dist/dts/Record.d.ts +136 -0
  210. package/dist/dts/Record.d.ts.map +1 -1
  211. package/dist/dts/Redacted.d.ts +8 -0
  212. package/dist/dts/Redacted.d.ts.map +1 -1
  213. package/dist/dts/RegExp.d.ts +4 -0
  214. package/dist/dts/RegExp.d.ts.map +1 -1
  215. package/dist/dts/Request.d.ts +4 -0
  216. package/dist/dts/Request.d.ts.map +1 -1
  217. package/dist/dts/RequestResolver.d.ts +6 -0
  218. package/dist/dts/RequestResolver.d.ts.map +1 -1
  219. package/dist/dts/Runtime.d.ts +18 -0
  220. package/dist/dts/Runtime.d.ts.map +1 -1
  221. package/dist/dts/STM.d.ts +2 -0
  222. package/dist/dts/STM.d.ts.map +1 -1
  223. package/dist/dts/Schema.d.ts +90 -0
  224. package/dist/dts/Schema.d.ts.map +1 -1
  225. package/dist/dts/Sink.d.ts +8 -0
  226. package/dist/dts/Sink.d.ts.map +1 -1
  227. package/dist/dts/Stream.d.ts +394 -32
  228. package/dist/dts/Stream.d.ts.map +1 -1
  229. package/dist/dts/String.d.ts +94 -0
  230. package/dist/dts/String.d.ts.map +1 -1
  231. package/dist/dts/Struct.d.ts +24 -0
  232. package/dist/dts/Struct.d.ts.map +1 -1
  233. package/dist/dts/Symbol.d.ts +2 -0
  234. package/dist/dts/Symbol.d.ts.map +1 -1
  235. package/dist/dts/Trie.d.ts +132 -0
  236. package/dist/dts/Trie.d.ts.map +1 -1
  237. package/dist/dts/Tuple.d.ts +42 -0
  238. package/dist/dts/Tuple.d.ts.map +1 -1
  239. package/dist/dts/Types.d.ts +24 -0
  240. package/dist/dts/Types.d.ts.map +1 -1
  241. package/dist/dts/Utils.d.ts +4 -0
  242. package/dist/dts/Utils.d.ts.map +1 -1
  243. package/dist/dts/internal/context.d.ts +1 -1
  244. package/dist/dts/internal/context.d.ts.map +1 -1
  245. package/dist/dts/internal/dateTime.d.ts +2 -0
  246. package/dist/dts/internal/dateTime.d.ts.map +1 -0
  247. package/dist/dts/internal/fiberRuntime.d.ts.map +1 -1
  248. package/dist/dts/internal/stream.d.ts.map +1 -1
  249. package/dist/esm/Array.js +208 -0
  250. package/dist/esm/Array.js.map +1 -1
  251. package/dist/esm/BigDecimal.js +175 -20
  252. package/dist/esm/BigDecimal.js.map +1 -1
  253. package/dist/esm/BigInt.js +54 -0
  254. package/dist/esm/BigInt.js.map +1 -1
  255. package/dist/esm/Boolean.js +24 -0
  256. package/dist/esm/Boolean.js.map +1 -1
  257. package/dist/esm/Brand.js +4 -0
  258. package/dist/esm/Brand.js.map +1 -1
  259. package/dist/esm/Channel.js +42 -2
  260. package/dist/esm/Channel.js.map +1 -1
  261. package/dist/esm/Chunk.js +8 -0
  262. package/dist/esm/Chunk.js.map +1 -1
  263. package/dist/esm/Config.js +9 -0
  264. package/dist/esm/Config.js.map +1 -1
  265. package/dist/esm/Context.js +49 -0
  266. package/dist/esm/Context.js.map +1 -1
  267. package/dist/esm/Cron.js +81 -67
  268. package/dist/esm/Cron.js.map +1 -1
  269. package/dist/esm/Data.js +16 -0
  270. package/dist/esm/Data.js.map +1 -1
  271. package/dist/esm/DateTime.js +176 -627
  272. package/dist/esm/DateTime.js.map +1 -1
  273. package/dist/esm/Duration.js +2 -0
  274. package/dist/esm/Duration.js.map +1 -1
  275. package/dist/esm/Effect.js +297 -0
  276. package/dist/esm/Effect.js.map +1 -1
  277. package/dist/esm/Either.js +40 -2
  278. package/dist/esm/Either.js.map +1 -1
  279. package/dist/esm/FiberHandle.js +6 -0
  280. package/dist/esm/FiberHandle.js.map +1 -1
  281. package/dist/esm/FiberMap.js +6 -0
  282. package/dist/esm/FiberMap.js.map +1 -1
  283. package/dist/esm/FiberSet.js +6 -0
  284. package/dist/esm/FiberSet.js.map +1 -1
  285. package/dist/esm/Function.js +34 -0
  286. package/dist/esm/Function.js.map +1 -1
  287. package/dist/esm/GlobalValue.js +2 -0
  288. package/dist/esm/GlobalValue.js.map +1 -1
  289. package/dist/esm/HashMap.js.map +1 -1
  290. package/dist/esm/Inspectable.js +8 -4
  291. package/dist/esm/Inspectable.js.map +1 -1
  292. package/dist/esm/Iterable.js +18 -0
  293. package/dist/esm/Iterable.js.map +1 -1
  294. package/dist/esm/JSONSchema.js.map +1 -1
  295. package/dist/esm/List.js +4 -0
  296. package/dist/esm/List.js.map +1 -1
  297. package/dist/esm/Logger.js +26 -0
  298. package/dist/esm/Logger.js.map +1 -1
  299. package/dist/esm/Mailbox.js +2 -0
  300. package/dist/esm/Mailbox.js.map +1 -1
  301. package/dist/esm/ManagedRuntime.js +2 -0
  302. package/dist/esm/ManagedRuntime.js.map +1 -1
  303. package/dist/esm/Metric.js +10 -0
  304. package/dist/esm/Metric.js.map +1 -1
  305. package/dist/esm/Micro.js +1077 -1037
  306. package/dist/esm/Micro.js.map +1 -1
  307. package/dist/esm/Number.js +44 -0
  308. package/dist/esm/Number.js.map +1 -1
  309. package/dist/esm/Option.js +72 -0
  310. package/dist/esm/Option.js.map +1 -1
  311. package/dist/esm/Order.js +2 -0
  312. package/dist/esm/Order.js.map +1 -1
  313. package/dist/esm/Ordering.js +4 -0
  314. package/dist/esm/Ordering.js.map +1 -1
  315. package/dist/esm/Predicate.js +68 -0
  316. package/dist/esm/Predicate.js.map +1 -1
  317. package/dist/esm/Random.js +4 -0
  318. package/dist/esm/Random.js.map +1 -1
  319. package/dist/esm/RateLimiter.js +4 -0
  320. package/dist/esm/RateLimiter.js.map +1 -1
  321. package/dist/esm/RcMap.js +2 -0
  322. package/dist/esm/RcMap.js.map +1 -1
  323. package/dist/esm/RcRef.js +2 -0
  324. package/dist/esm/RcRef.js.map +1 -1
  325. package/dist/esm/Record.js +56 -0
  326. package/dist/esm/Record.js.map +1 -1
  327. package/dist/esm/Redacted.js +8 -0
  328. package/dist/esm/Redacted.js.map +1 -1
  329. package/dist/esm/RegExp.js +4 -0
  330. package/dist/esm/RegExp.js.map +1 -1
  331. package/dist/esm/Request.js +4 -0
  332. package/dist/esm/Request.js.map +1 -1
  333. package/dist/esm/RequestResolver.js +2 -0
  334. package/dist/esm/RequestResolver.js.map +1 -1
  335. package/dist/esm/Runtime.js +6 -0
  336. package/dist/esm/Runtime.js.map +1 -1
  337. package/dist/esm/STM.js.map +1 -1
  338. package/dist/esm/Schema.js +88 -0
  339. package/dist/esm/Schema.js.map +1 -1
  340. package/dist/esm/Sink.js +8 -0
  341. package/dist/esm/Sink.js.map +1 -1
  342. package/dist/esm/Stream.js +183 -5
  343. package/dist/esm/Stream.js.map +1 -1
  344. package/dist/esm/String.js +62 -0
  345. package/dist/esm/String.js.map +1 -1
  346. package/dist/esm/Struct.js +12 -0
  347. package/dist/esm/Struct.js.map +1 -1
  348. package/dist/esm/Symbol.js +2 -0
  349. package/dist/esm/Symbol.js.map +1 -1
  350. package/dist/esm/Trie.js +56 -0
  351. package/dist/esm/Trie.js.map +1 -1
  352. package/dist/esm/Tuple.js +22 -0
  353. package/dist/esm/Tuple.js.map +1 -1
  354. package/dist/esm/Utils.js +5 -0
  355. package/dist/esm/Utils.js.map +1 -1
  356. package/dist/esm/internal/channel/channelExecutor.js +5 -7
  357. package/dist/esm/internal/channel/channelExecutor.js.map +1 -1
  358. package/dist/esm/internal/channel.js +152 -129
  359. package/dist/esm/internal/channel.js.map +1 -1
  360. package/dist/esm/internal/config.js +11 -3
  361. package/dist/esm/internal/config.js.map +1 -1
  362. package/dist/esm/internal/context.js +42 -2
  363. package/dist/esm/internal/context.js.map +1 -1
  364. package/dist/esm/internal/dateTime.js +704 -0
  365. package/dist/esm/internal/dateTime.js.map +1 -0
  366. package/dist/esm/internal/fiberRuntime.js +31 -9
  367. package/dist/esm/internal/fiberRuntime.js.map +1 -1
  368. package/dist/esm/internal/groupBy.js +9 -3
  369. package/dist/esm/internal/groupBy.js.map +1 -1
  370. package/dist/esm/internal/layer.js +1 -1
  371. package/dist/esm/internal/layer.js.map +1 -1
  372. package/dist/esm/internal/mailbox.js +1 -1
  373. package/dist/esm/internal/mailbox.js.map +1 -1
  374. package/dist/esm/internal/sink.js +23 -20
  375. package/dist/esm/internal/sink.js.map +1 -1
  376. package/dist/esm/internal/stream.js +66 -69
  377. package/dist/esm/internal/stream.js.map +1 -1
  378. package/dist/esm/internal/version.js +1 -1
  379. package/dist/esm/internal/version.js.map +1 -1
  380. package/package.json +1 -1
  381. package/src/Array.ts +534 -0
  382. package/src/BigDecimal.ts +247 -21
  383. package/src/BigInt.ts +114 -0
  384. package/src/Boolean.ts +56 -0
  385. package/src/Brand.ts +6 -0
  386. package/src/Channel.ts +81 -5
  387. package/src/Chunk.ts +32 -0
  388. package/src/Config.ts +26 -1
  389. package/src/Context.ts +163 -0
  390. package/src/Cron.ts +91 -68
  391. package/src/Data.ts +26 -0
  392. package/src/DateTime.ts +307 -757
  393. package/src/Duration.ts +2 -0
  394. package/src/Effect.ts +910 -1
  395. package/src/Either.ts +84 -2
  396. package/src/FiberHandle.ts +6 -0
  397. package/src/FiberMap.ts +6 -0
  398. package/src/FiberSet.ts +6 -0
  399. package/src/Function.ts +50 -0
  400. package/src/GlobalValue.ts +2 -0
  401. package/src/HashMap.ts +6 -0
  402. package/src/Inspectable.ts +11 -7
  403. package/src/Iterable.ts +26 -0
  404. package/src/JSONSchema.ts +1 -0
  405. package/src/List.ts +24 -0
  406. package/src/Logger.ts +34 -0
  407. package/src/Mailbox.ts +2 -0
  408. package/src/ManagedRuntime.ts +2 -0
  409. package/src/Metric.ts +18 -0
  410. package/src/Micro.ts +2007 -1745
  411. package/src/Number.ts +104 -0
  412. package/src/Option.ts +142 -0
  413. package/src/Order.ts +2 -0
  414. package/src/Ordering.ts +8 -0
  415. package/src/Predicate.ts +104 -0
  416. package/src/Random.ts +4 -0
  417. package/src/RateLimiter.ts +4 -0
  418. package/src/RcMap.ts +6 -0
  419. package/src/RcRef.ts +2 -0
  420. package/src/Record.ts +136 -0
  421. package/src/Redacted.ts +8 -0
  422. package/src/RegExp.ts +4 -0
  423. package/src/Request.ts +4 -0
  424. package/src/RequestResolver.ts +6 -0
  425. package/src/Runtime.ts +18 -0
  426. package/src/STM.ts +2 -0
  427. package/src/Schema.ts +124 -0
  428. package/src/Sink.ts +11 -0
  429. package/src/Stream.ts +399 -44
  430. package/src/String.ts +94 -0
  431. package/src/Struct.ts +24 -0
  432. package/src/Symbol.ts +2 -0
  433. package/src/Trie.ts +132 -0
  434. package/src/Tuple.ts +42 -0
  435. package/src/Types.ts +24 -0
  436. package/src/Utils.ts +8 -0
  437. package/src/internal/channel/channelExecutor.ts +37 -33
  438. package/src/internal/channel.ts +504 -467
  439. package/src/internal/config.ts +18 -6
  440. package/src/internal/context.ts +56 -4
  441. package/src/internal/dateTime.ts +1126 -0
  442. package/src/internal/fiberRuntime.ts +35 -16
  443. package/src/internal/groupBy.ts +13 -22
  444. package/src/internal/layer.ts +5 -8
  445. package/src/internal/mailbox.ts +6 -4
  446. package/src/internal/sink.ts +55 -35
  447. package/src/internal/stream.ts +299 -299
  448. package/src/internal/version.ts +1 -1
package/src/Context.ts CHANGED
@@ -45,6 +45,38 @@ export interface Tag<in out Id, in out Value> extends Pipeable, Inspectable {
45
45
  [Unify.ignoreSymbol]?: TagUnifyIgnore
46
46
  }
47
47
 
48
+ const ReferenceTypeId: unique symbol = internal.ReferenceTypeId
49
+
50
+ /**
51
+ * @since 3.11.0
52
+ * @category symbol
53
+ */
54
+ export type ReferenceTypeId = typeof ReferenceTypeId
55
+
56
+ /**
57
+ * @since 3.11.0
58
+ * @category models
59
+ */
60
+ export interface Reference<in out Id, in out Value> extends Pipeable, Inspectable {
61
+ readonly [ReferenceTypeId]: ReferenceTypeId
62
+ readonly defaultValue: () => Value
63
+
64
+ readonly _op: "Tag"
65
+ readonly Service: Value
66
+ readonly Identifier: Id
67
+ readonly [TagTypeId]: {
68
+ readonly _Service: Types.Invariant<Value>
69
+ readonly _Identifier: Types.Invariant<Id>
70
+ }
71
+ of(self: Value): Value
72
+ context(self: Value): Context<Id>
73
+ readonly stack?: string | undefined
74
+ readonly key: string
75
+ [Unify.typeSymbol]?: unknown
76
+ [Unify.unifySymbol]?: TagUnify<this>
77
+ [Unify.ignoreSymbol]?: TagUnifyIgnore
78
+ }
79
+
48
80
  /**
49
81
  * @since 2.0.0
50
82
  * @category models
@@ -63,6 +95,14 @@ export interface TagClass<Self, Id, Type> extends Tag<Self, Type> {
63
95
  new(_: never): TagClassShape<Id, Type>
64
96
  }
65
97
 
98
+ /**
99
+ * @since 3.11.0
100
+ * @category models
101
+ */
102
+ export interface ReferenceClass<Self, Id, Type> extends Reference<Self, Type> {
103
+ new(_: never): TagClassShape<Id, Type>
104
+ }
105
+
66
106
  /**
67
107
  * @category models
68
108
  * @since 2.0.0
@@ -101,9 +141,11 @@ export declare namespace Tag {
101
141
  * @param key - A key that will be used to compare tags.
102
142
  *
103
143
  * @example
144
+ * ```ts
104
145
  * import { Context } from "effect"
105
146
  *
106
147
  * assert.strictEqual(Context.GenericTag("PORT").key === Context.GenericTag("PORT").key, true)
148
+ * ```
107
149
  *
108
150
  * @since 2.0.0
109
151
  * @category constructors
@@ -148,9 +190,11 @@ export const unsafeMake: <Services>(unsafeMap: Map<string, any>) => Context<Serv
148
190
  * @param input - The value to be checked if it is a `Context`.
149
191
  *
150
192
  * @example
193
+ * ```ts
151
194
  * import { Context } from "effect"
152
195
  *
153
196
  * assert.strictEqual(Context.isContext(Context.empty()), true)
197
+ * ```
154
198
  *
155
199
  * @since 2.0.0
156
200
  * @category guards
@@ -163,22 +207,36 @@ export const isContext: (input: unknown) => input is Context<never> = internal.i
163
207
  * @param input - The value to be checked if it is a `Tag`.
164
208
  *
165
209
  * @example
210
+ * ```ts
166
211
  * import { Context } from "effect"
167
212
  *
168
213
  * assert.strictEqual(Context.isTag(Context.GenericTag("Tag")), true)
214
+ * ```
169
215
  *
170
216
  * @since 2.0.0
171
217
  * @category guards
172
218
  */
173
219
  export const isTag: (input: unknown) => input is Tag<any, any> = internal.isTag
174
220
 
221
+ /**
222
+ * Checks if the provided argument is a `Reference`.
223
+ *
224
+ * @param input - The value to be checked if it is a `Reference`.
225
+ * @since 3.11.0
226
+ * @category guards
227
+ * @experimental
228
+ */
229
+ export const isReference: (u: unknown) => u is Reference<any, any> = internal.isReference
230
+
175
231
  /**
176
232
  * Returns an empty `Context`.
177
233
  *
178
234
  * @example
235
+ * ```ts
179
236
  * import { Context } from "effect"
180
237
  *
181
238
  * assert.strictEqual(Context.isContext(Context.empty()), true)
239
+ * ```
182
240
  *
183
241
  * @since 2.0.0
184
242
  * @category constructors
@@ -189,6 +247,7 @@ export const empty: () => Context<never> = internal.empty
189
247
  * Creates a new `Context` with a single service associated to the tag.
190
248
  *
191
249
  * @example
250
+ * ```ts
192
251
  * import { Context } from "effect"
193
252
  *
194
253
  * const Port = Context.GenericTag<{ PORT: number }>("Port")
@@ -196,6 +255,7 @@ export const empty: () => Context<never> = internal.empty
196
255
  * const Services = Context.make(Port, { PORT: 8080 })
197
256
  *
198
257
  * assert.deepStrictEqual(Context.get(Services, Port), { PORT: 8080 })
258
+ * ```
199
259
  *
200
260
  * @since 2.0.0
201
261
  * @category constructors
@@ -207,6 +267,7 @@ export const make: <T extends Tag<any, any>>(tag: T, service: Tag.Service<T>) =>
207
267
  * Adds a service to a given `Context`.
208
268
  *
209
269
  * @example
270
+ * ```ts
210
271
  * import { Context, pipe } from "effect"
211
272
  *
212
273
  * const Port = Context.GenericTag<{ PORT: number }>("Port")
@@ -221,6 +282,7 @@ export const make: <T extends Tag<any, any>>(tag: T, service: Tag.Service<T>) =>
221
282
  *
222
283
  * assert.deepStrictEqual(Context.get(Services, Port), { PORT: 8080 })
223
284
  * assert.deepStrictEqual(Context.get(Services, Timeout), { TIMEOUT: 5000 })
285
+ * ```
224
286
  *
225
287
  * @since 2.0.0
226
288
  */
@@ -229,6 +291,7 @@ export const add: {
229
291
  * Adds a service to a given `Context`.
230
292
  *
231
293
  * @example
294
+ * ```ts
232
295
  * import { Context, pipe } from "effect"
233
296
  *
234
297
  * const Port = Context.GenericTag<{ PORT: number }>("Port")
@@ -243,6 +306,7 @@ export const add: {
243
306
  *
244
307
  * assert.deepStrictEqual(Context.get(Services, Port), { PORT: 8080 })
245
308
  * assert.deepStrictEqual(Context.get(Services, Timeout), { TIMEOUT: 5000 })
309
+ * ```
246
310
  *
247
311
  * @since 2.0.0
248
312
  */
@@ -254,6 +318,7 @@ export const add: {
254
318
  * Adds a service to a given `Context`.
255
319
  *
256
320
  * @example
321
+ * ```ts
257
322
  * import { Context, pipe } from "effect"
258
323
  *
259
324
  * const Port = Context.GenericTag<{ PORT: number }>("Port")
@@ -268,6 +333,7 @@ export const add: {
268
333
  *
269
334
  * assert.deepStrictEqual(Context.get(Services, Port), { PORT: 8080 })
270
335
  * assert.deepStrictEqual(Context.get(Services, Timeout), { TIMEOUT: 5000 })
336
+ * ```
271
337
  *
272
338
  * @since 2.0.0
273
339
  */
@@ -285,6 +351,7 @@ export const add: {
285
351
  * @param tag - The `Tag` of the service to retrieve.
286
352
  *
287
353
  * @example
354
+ * ```ts
288
355
  * import { pipe, Context } from "effect"
289
356
  *
290
357
  * const Port = Context.GenericTag<{ PORT: number }>("Port")
@@ -296,6 +363,7 @@ export const add: {
296
363
  * )
297
364
  *
298
365
  * assert.deepStrictEqual(Context.get(Services, Timeout), { TIMEOUT: 5000 })
366
+ * ```
299
367
  *
300
368
  * @since 2.0.0
301
369
  * @category getters
@@ -308,6 +376,32 @@ export const get: {
308
376
  * @param tag - The `Tag` of the service to retrieve.
309
377
  *
310
378
  * @example
379
+ * ```ts
380
+ * import { pipe, Context } from "effect"
381
+ *
382
+ * const Port = Context.GenericTag<{ PORT: number }>("Port")
383
+ * const Timeout = Context.GenericTag<{ TIMEOUT: number }>("Timeout")
384
+ *
385
+ * const Services = pipe(
386
+ * Context.make(Port, { PORT: 8080 }),
387
+ * Context.add(Timeout, { TIMEOUT: 5000 })
388
+ * )
389
+ *
390
+ * assert.deepStrictEqual(Context.get(Services, Timeout), { TIMEOUT: 5000 })
391
+ * ```
392
+ *
393
+ * @since 2.0.0
394
+ * @category getters
395
+ */
396
+ <I, S>(tag: Reference<I, S>): <Services>(self: Context<Services>) => S
397
+ /**
398
+ * Get a service from the context that corresponds to the given tag.
399
+ *
400
+ * @param self - The `Context` to search for the service.
401
+ * @param tag - The `Tag` of the service to retrieve.
402
+ *
403
+ * @example
404
+ * ```ts
311
405
  * import { pipe, Context } from "effect"
312
406
  *
313
407
  * const Port = Context.GenericTag<{ PORT: number }>("Port")
@@ -319,6 +413,7 @@ export const get: {
319
413
  * )
320
414
  *
321
415
  * assert.deepStrictEqual(Context.get(Services, Timeout), { TIMEOUT: 5000 })
416
+ * ```
322
417
  *
323
418
  * @since 2.0.0
324
419
  * @category getters
@@ -331,6 +426,7 @@ export const get: {
331
426
  * @param tag - The `Tag` of the service to retrieve.
332
427
  *
333
428
  * @example
429
+ * ```ts
334
430
  * import { pipe, Context } from "effect"
335
431
  *
336
432
  * const Port = Context.GenericTag<{ PORT: number }>("Port")
@@ -342,6 +438,32 @@ export const get: {
342
438
  * )
343
439
  *
344
440
  * assert.deepStrictEqual(Context.get(Services, Timeout), { TIMEOUT: 5000 })
441
+ * ```
442
+ *
443
+ * @since 2.0.0
444
+ * @category getters
445
+ */
446
+ <Services, I, S>(self: Context<Services>, tag: Reference<I, S>): S
447
+ /**
448
+ * Get a service from the context that corresponds to the given tag.
449
+ *
450
+ * @param self - The `Context` to search for the service.
451
+ * @param tag - The `Tag` of the service to retrieve.
452
+ *
453
+ * @example
454
+ * ```ts
455
+ * import { pipe, Context } from "effect"
456
+ *
457
+ * const Port = Context.GenericTag<{ PORT: number }>("Port")
458
+ * const Timeout = Context.GenericTag<{ TIMEOUT: number }>("Timeout")
459
+ *
460
+ * const Services = pipe(
461
+ * Context.make(Port, { PORT: 8080 }),
462
+ * Context.add(Timeout, { TIMEOUT: 5000 })
463
+ * )
464
+ *
465
+ * assert.deepStrictEqual(Context.get(Services, Timeout), { TIMEOUT: 5000 })
466
+ * ```
345
467
  *
346
468
  * @since 2.0.0
347
469
  * @category getters
@@ -385,6 +507,7 @@ export const getOrElse: {
385
507
  * @param tag - The `Tag` of the service to retrieve.
386
508
  *
387
509
  * @example
510
+ * ```ts
388
511
  * import { Context } from "effect"
389
512
  *
390
513
  * const Port = Context.GenericTag<{ PORT: number }>("Port")
@@ -394,6 +517,7 @@ export const getOrElse: {
394
517
  *
395
518
  * assert.deepStrictEqual(Context.unsafeGet(Services, Port), { PORT: 8080 })
396
519
  * assert.throws(() => Context.unsafeGet(Services, Timeout))
520
+ * ```
397
521
  *
398
522
  * @since 2.0.0
399
523
  * @category unsafe
@@ -409,6 +533,7 @@ export const unsafeGet: {
409
533
  * @param tag - The `Tag` of the service to retrieve.
410
534
  *
411
535
  * @example
536
+ * ```ts
412
537
  * import { Context } from "effect"
413
538
  *
414
539
  * const Port = Context.GenericTag<{ PORT: number }>("Port")
@@ -418,6 +543,7 @@ export const unsafeGet: {
418
543
  *
419
544
  * assert.deepStrictEqual(Context.unsafeGet(Services, Port), { PORT: 8080 })
420
545
  * assert.throws(() => Context.unsafeGet(Services, Timeout))
546
+ * ```
421
547
  *
422
548
  * @since 2.0.0
423
549
  * @category unsafe
@@ -433,6 +559,7 @@ export const unsafeGet: {
433
559
  * @param tag - The `Tag` of the service to retrieve.
434
560
  *
435
561
  * @example
562
+ * ```ts
436
563
  * import { Context } from "effect"
437
564
  *
438
565
  * const Port = Context.GenericTag<{ PORT: number }>("Port")
@@ -442,6 +569,7 @@ export const unsafeGet: {
442
569
  *
443
570
  * assert.deepStrictEqual(Context.unsafeGet(Services, Port), { PORT: 8080 })
444
571
  * assert.throws(() => Context.unsafeGet(Services, Timeout))
572
+ * ```
445
573
  *
446
574
  * @since 2.0.0
447
575
  * @category unsafe
@@ -457,6 +585,7 @@ export const unsafeGet: {
457
585
  * @param tag - The `Tag` of the service to retrieve.
458
586
  *
459
587
  * @example
588
+ * ```ts
460
589
  * import { Context, Option } from "effect"
461
590
  *
462
591
  * const Port = Context.GenericTag<{ PORT: number }>("Port")
@@ -466,6 +595,7 @@ export const unsafeGet: {
466
595
  *
467
596
  * assert.deepStrictEqual(Context.getOption(Services, Port), Option.some({ PORT: 8080 }))
468
597
  * assert.deepStrictEqual(Context.getOption(Services, Timeout), Option.none())
598
+ * ```
469
599
  *
470
600
  * @since 2.0.0
471
601
  * @category getters
@@ -479,6 +609,7 @@ export const getOption: {
479
609
  * @param tag - The `Tag` of the service to retrieve.
480
610
  *
481
611
  * @example
612
+ * ```ts
482
613
  * import { Context, Option } from "effect"
483
614
  *
484
615
  * const Port = Context.GenericTag<{ PORT: number }>("Port")
@@ -488,6 +619,7 @@ export const getOption: {
488
619
  *
489
620
  * assert.deepStrictEqual(Context.getOption(Services, Port), Option.some({ PORT: 8080 }))
490
621
  * assert.deepStrictEqual(Context.getOption(Services, Timeout), Option.none())
622
+ * ```
491
623
  *
492
624
  * @since 2.0.0
493
625
  * @category getters
@@ -501,6 +633,7 @@ export const getOption: {
501
633
  * @param tag - The `Tag` of the service to retrieve.
502
634
  *
503
635
  * @example
636
+ * ```ts
504
637
  * import { Context, Option } from "effect"
505
638
  *
506
639
  * const Port = Context.GenericTag<{ PORT: number }>("Port")
@@ -510,6 +643,7 @@ export const getOption: {
510
643
  *
511
644
  * assert.deepStrictEqual(Context.getOption(Services, Port), Option.some({ PORT: 8080 }))
512
645
  * assert.deepStrictEqual(Context.getOption(Services, Timeout), Option.none())
646
+ * ```
513
647
  *
514
648
  * @since 2.0.0
515
649
  * @category getters
@@ -524,6 +658,7 @@ export const getOption: {
524
658
  * @param that - The second `Context` to merge.
525
659
  *
526
660
  * @example
661
+ * ```ts
527
662
  * import { Context } from "effect"
528
663
  *
529
664
  * const Port = Context.GenericTag<{ PORT: number }>("Port")
@@ -536,6 +671,7 @@ export const getOption: {
536
671
  *
537
672
  * assert.deepStrictEqual(Context.get(Services, Port), { PORT: 8080 })
538
673
  * assert.deepStrictEqual(Context.get(Services, Timeout), { TIMEOUT: 5000 })
674
+ * ```
539
675
  *
540
676
  * @since 2.0.0
541
677
  */
@@ -547,6 +683,7 @@ export const merge: {
547
683
  * @param that - The second `Context` to merge.
548
684
  *
549
685
  * @example
686
+ * ```ts
550
687
  * import { Context } from "effect"
551
688
  *
552
689
  * const Port = Context.GenericTag<{ PORT: number }>("Port")
@@ -559,6 +696,7 @@ export const merge: {
559
696
  *
560
697
  * assert.deepStrictEqual(Context.get(Services, Port), { PORT: 8080 })
561
698
  * assert.deepStrictEqual(Context.get(Services, Timeout), { TIMEOUT: 5000 })
699
+ * ```
562
700
  *
563
701
  * @since 2.0.0
564
702
  */
@@ -570,6 +708,7 @@ export const merge: {
570
708
  * @param that - The second `Context` to merge.
571
709
  *
572
710
  * @example
711
+ * ```ts
573
712
  * import { Context } from "effect"
574
713
  *
575
714
  * const Port = Context.GenericTag<{ PORT: number }>("Port")
@@ -582,6 +721,7 @@ export const merge: {
582
721
  *
583
722
  * assert.deepStrictEqual(Context.get(Services, Port), { PORT: 8080 })
584
723
  * assert.deepStrictEqual(Context.get(Services, Timeout), { TIMEOUT: 5000 })
724
+ * ```
585
725
  *
586
726
  * @since 2.0.0
587
727
  */
@@ -595,6 +735,7 @@ export const merge: {
595
735
  * @param tags - The list of `Tag`s to be included in the new `Context`.
596
736
  *
597
737
  * @example
738
+ * ```ts
598
739
  * import { pipe, Context, Option } from "effect"
599
740
  *
600
741
  * const Port = Context.GenericTag<{ PORT: number }>("Port")
@@ -609,6 +750,7 @@ export const merge: {
609
750
  *
610
751
  * assert.deepStrictEqual(Context.getOption(Services, Port), Option.some({ PORT: 8080 }))
611
752
  * assert.deepStrictEqual(Context.getOption(Services, Timeout), Option.none())
753
+ * ```
612
754
  *
613
755
  * @since 2.0.0
614
756
  */
@@ -626,6 +768,7 @@ export const omit: <Services, S extends Array<ValidTagsById<Services>>>(
626
768
 
627
769
  /**
628
770
  * @example
771
+ * ```ts
629
772
  * import { Context, Layer } from "effect"
630
773
  *
631
774
  * class MyTag extends Context.Tag("MyTag")<
@@ -634,8 +777,28 @@ export const omit: <Services, S extends Array<ValidTagsById<Services>>>(
634
777
  * >() {
635
778
  * static Live = Layer.succeed(this, { myNum: 108 })
636
779
  * }
780
+ * ```
637
781
  *
638
782
  * @since 2.0.0
639
783
  * @category constructors
640
784
  */
641
785
  export const Tag: <const Id extends string>(id: Id) => <Self, Shape>() => TagClass<Self, Id, Shape> = internal.Tag
786
+
787
+ /**
788
+ * @example
789
+ * import { Context, Layer } from "effect"
790
+ *
791
+ * class MyTag extends Context.Reference<MyTag>()("MyTag", {
792
+ * defaultValue: () => ({ myNum: 108 })
793
+ * }) {
794
+ * static Live = Layer.succeed(this, { myNum: 108 })
795
+ * }
796
+ *
797
+ * @since 3.11.0
798
+ * @category constructors
799
+ * @experimental
800
+ */
801
+ export const Reference: <Self>() => <const Id extends string, Service>(
802
+ id: Id,
803
+ options: { readonly defaultValue: () => Service }
804
+ ) => ReferenceClass<Self, Id, Service> = internal.Reference