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/Record.ts CHANGED
@@ -69,10 +69,12 @@ export const empty = <K extends string | symbol = never, V = never>(): Record<
69
69
  * @param self - record to test for emptiness.
70
70
  *
71
71
  * @example
72
+ * ```ts
72
73
  * import { isEmptyRecord } from "effect/Record"
73
74
  *
74
75
  * assert.deepStrictEqual(isEmptyRecord({}), true);
75
76
  * assert.deepStrictEqual(isEmptyRecord({ a: 3 }), false);
77
+ * ```
76
78
  *
77
79
  * @category guards
78
80
  * @since 2.0.0
@@ -86,10 +88,12 @@ export const isEmptyRecord = <K extends string, A>(self: Record<K, A>): self is
86
88
  * @param self - record to test for emptiness.
87
89
  *
88
90
  * @example
91
+ * ```ts
89
92
  * import { isEmptyReadonlyRecord } from "effect/Record"
90
93
  *
91
94
  * assert.deepStrictEqual(isEmptyReadonlyRecord({}), true);
92
95
  * assert.deepStrictEqual(isEmptyReadonlyRecord({ a: 3 }), false);
96
+ * ```
93
97
  *
94
98
  * @category guards
95
99
  * @since 2.0.0
@@ -106,6 +110,7 @@ export const isEmptyReadonlyRecord: <K extends string, A>(
106
110
  * @param f - A projection function that maps values of the iterable to a tuple of a key and a value.
107
111
  *
108
112
  * @example
113
+ * ```ts
109
114
  * import { fromIterableWith } from "effect/Record"
110
115
  *
111
116
  * const input = [1, 2, 3, 4]
@@ -114,6 +119,7 @@ export const isEmptyReadonlyRecord: <K extends string, A>(
114
119
  * fromIterableWith(input, a => [String(a), a * 2]),
115
120
  * { '1': 2, '2': 4, '3': 6, '4': 8 }
116
121
  * )
122
+ * ```
117
123
  *
118
124
  * @category constructors
119
125
  * @since 2.0.0
@@ -127,6 +133,7 @@ export const fromIterableWith: {
127
133
  * @param f - A projection function that maps values of the iterable to a tuple of a key and a value.
128
134
  *
129
135
  * @example
136
+ * ```ts
130
137
  * import { fromIterableWith } from "effect/Record"
131
138
  *
132
139
  * const input = [1, 2, 3, 4]
@@ -135,6 +142,7 @@ export const fromIterableWith: {
135
142
  * fromIterableWith(input, a => [String(a), a * 2]),
136
143
  * { '1': 2, '2': 4, '3': 6, '4': 8 }
137
144
  * )
145
+ * ```
138
146
  *
139
147
  * @category constructors
140
148
  * @since 2.0.0
@@ -150,6 +158,7 @@ export const fromIterableWith: {
150
158
  * @param f - A projection function that maps values of the iterable to a tuple of a key and a value.
151
159
  *
152
160
  * @example
161
+ * ```ts
153
162
  * import { fromIterableWith } from "effect/Record"
154
163
  *
155
164
  * const input = [1, 2, 3, 4]
@@ -158,6 +167,7 @@ export const fromIterableWith: {
158
167
  * fromIterableWith(input, a => [String(a), a * 2]),
159
168
  * { '1': 2, '2': 4, '3': 6, '4': 8 }
160
169
  * )
170
+ * ```
161
171
  *
162
172
  * @category constructors
163
173
  * @since 2.0.0
@@ -188,6 +198,7 @@ export const fromIterableWith: {
188
198
  * @param f - A function that extracts the key for each element.
189
199
  *
190
200
  * @example
201
+ * ```ts
191
202
  * import { fromIterableBy } from "effect/Record"
192
203
  *
193
204
  * const users = [
@@ -202,6 +213,7 @@ export const fromIterableWith: {
202
213
  * "1": { id: "1", name: "name1" }
203
214
  * }
204
215
  * )
216
+ * ```
205
217
  *
206
218
  * @category constructors
207
219
  * @since 2.0.0
@@ -220,11 +232,13 @@ export const fromIterableBy = <A, K extends string | symbol>(
220
232
  * @param self - The iterable of key-value pairs.
221
233
  *
222
234
  * @example
235
+ * ```ts
223
236
  * import { fromEntries } from "effect/Record"
224
237
  *
225
238
  * const input: Array<[string, number]> = [["a", 1], ["b", 2]]
226
239
  *
227
240
  * assert.deepStrictEqual(fromEntries(input), { a: 1, b: 2 })
241
+ * ```
228
242
  *
229
243
  * @since 2.0.0
230
244
  * @category constructors
@@ -240,10 +254,12 @@ export const fromEntries: <Entry extends readonly [string | symbol, any]>(
240
254
  * @param f - The custom mapping function to apply to each key/value of the record.
241
255
  *
242
256
  * @example
257
+ * ```ts
243
258
  * import { collect } from "effect/Record"
244
259
  *
245
260
  * const x = { a: 1, b: 2, c: 3 }
246
261
  * assert.deepStrictEqual(collect(x, (key, n) => [key, n]), [["a", 1], ["b", 2], ["c", 3]])
262
+ * ```
247
263
  *
248
264
  * @category conversions
249
265
  * @since 2.0.0
@@ -256,10 +272,12 @@ export const collect: {
256
272
  * @param f - The custom mapping function to apply to each key/value of the record.
257
273
  *
258
274
  * @example
275
+ * ```ts
259
276
  * import { collect } from "effect/Record"
260
277
  *
261
278
  * const x = { a: 1, b: 2, c: 3 }
262
279
  * assert.deepStrictEqual(collect(x, (key, n) => [key, n]), [["a", 1], ["b", 2], ["c", 3]])
280
+ * ```
263
281
  *
264
282
  * @category conversions
265
283
  * @since 2.0.0
@@ -272,10 +290,12 @@ export const collect: {
272
290
  * @param f - The custom mapping function to apply to each key/value of the record.
273
291
  *
274
292
  * @example
293
+ * ```ts
275
294
  * import { collect } from "effect/Record"
276
295
  *
277
296
  * const x = { a: 1, b: 2, c: 3 }
278
297
  * assert.deepStrictEqual(collect(x, (key, n) => [key, n]), [["a", 1], ["b", 2], ["c", 3]])
298
+ * ```
279
299
  *
280
300
  * @category conversions
281
301
  * @since 2.0.0
@@ -298,10 +318,12 @@ export const collect: {
298
318
  * @param self - The record to transform.
299
319
  *
300
320
  * @example
321
+ * ```ts
301
322
  * import { toEntries } from "effect/Record"
302
323
  *
303
324
  * const x = { a: 1, b: 2, c: 3 }
304
325
  * assert.deepStrictEqual(toEntries(x), [["a", 1], ["b", 2], ["c", 3]])
326
+ * ```
305
327
  *
306
328
  * @category conversions
307
329
  * @since 2.0.0
@@ -317,9 +339,11 @@ export const toEntries: <K extends string, A>(self: ReadonlyRecord<K, A>) => Arr
317
339
  * @param self - A record to calculate the number of key/value pairs in.
318
340
  *
319
341
  * @example
342
+ * ```ts
320
343
  * import { size } from "effect/Record";
321
344
  *
322
345
  * assert.deepStrictEqual(size({ a: "a", b: 1, c: true }), 3);
346
+ * ```
323
347
  *
324
348
  * @since 2.0.0
325
349
  */
@@ -332,10 +356,12 @@ export const size = <K extends string, A>(self: ReadonlyRecord<K, A>): number =>
332
356
  * @param key - the key to look for in the record.
333
357
  *
334
358
  * @example
359
+ * ```ts
335
360
  * import { empty, has } from "effect/Record"
336
361
  *
337
362
  * assert.deepStrictEqual(has({ a: 1, b: 2 }, "a"), true);
338
363
  * assert.deepStrictEqual(has(empty<string>(), "c"), false);
364
+ * ```
339
365
  *
340
366
  * @since 2.0.0
341
367
  */
@@ -347,10 +373,12 @@ export const has: {
347
373
  * @param key - the key to look for in the record.
348
374
  *
349
375
  * @example
376
+ * ```ts
350
377
  * import { empty, has } from "effect/Record"
351
378
  *
352
379
  * assert.deepStrictEqual(has({ a: 1, b: 2 }, "a"), true);
353
380
  * assert.deepStrictEqual(has(empty<string>(), "c"), false);
381
+ * ```
354
382
  *
355
383
  * @since 2.0.0
356
384
  */
@@ -362,10 +390,12 @@ export const has: {
362
390
  * @param key - the key to look for in the record.
363
391
  *
364
392
  * @example
393
+ * ```ts
365
394
  * import { empty, has } from "effect/Record"
366
395
  *
367
396
  * assert.deepStrictEqual(has({ a: 1, b: 2 }, "a"), true);
368
397
  * assert.deepStrictEqual(has(empty<string>(), "c"), false);
398
+ * ```
369
399
  *
370
400
  * @since 2.0.0
371
401
  */
@@ -385,12 +415,14 @@ export const has: {
385
415
  * @param key - Key to retrieve from record.
386
416
  *
387
417
  * @example
418
+ * ```ts
388
419
  * import { Record as R, Option } from "effect"
389
420
  *
390
421
  * const person: Record<string, unknown> = { name: "John Doe", age: 35 }
391
422
  *
392
423
  * assert.deepStrictEqual(R.get(person, "name"), Option.some("John Doe"))
393
424
  * assert.deepStrictEqual(R.get(person, "email"), Option.none())
425
+ * ```
394
426
  *
395
427
  * @since 2.0.0
396
428
  */
@@ -402,12 +434,14 @@ export const get: {
402
434
  * @param key - Key to retrieve from record.
403
435
  *
404
436
  * @example
437
+ * ```ts
405
438
  * import { Record as R, Option } from "effect"
406
439
  *
407
440
  * const person: Record<string, unknown> = { name: "John Doe", age: 35 }
408
441
  *
409
442
  * assert.deepStrictEqual(R.get(person, "name"), Option.some("John Doe"))
410
443
  * assert.deepStrictEqual(R.get(person, "email"), Option.none())
444
+ * ```
411
445
  *
412
446
  * @since 2.0.0
413
447
  */
@@ -419,12 +453,14 @@ export const get: {
419
453
  * @param key - Key to retrieve from record.
420
454
  *
421
455
  * @example
456
+ * ```ts
422
457
  * import { Record as R, Option } from "effect"
423
458
  *
424
459
  * const person: Record<string, unknown> = { name: "John Doe", age: 35 }
425
460
  *
426
461
  * assert.deepStrictEqual(R.get(person, "name"), Option.some("John Doe"))
427
462
  * assert.deepStrictEqual(R.get(person, "email"), Option.none())
463
+ * ```
428
464
  *
429
465
  * @since 2.0.0
430
466
  */
@@ -444,6 +480,7 @@ export const get: {
444
480
  * @param f - The function to apply to the element.
445
481
  *
446
482
  * @example
483
+ * ```ts
447
484
  * import { Record as R } from "effect"
448
485
  *
449
486
  * const f = (x: number) => x * 2
@@ -456,6 +493,7 @@ export const get: {
456
493
  * R.modify({ a: 3 } as Record<string, number>, 'b', f),
457
494
  * { a: 3 }
458
495
  * )
496
+ * ```
459
497
  *
460
498
  * @since 2.0.0
461
499
  */
@@ -469,6 +507,7 @@ export const modify: {
469
507
  * @param f - The function to apply to the element.
470
508
  *
471
509
  * @example
510
+ * ```ts
472
511
  * import { Record as R } from "effect"
473
512
  *
474
513
  * const f = (x: number) => x * 2
@@ -481,6 +520,7 @@ export const modify: {
481
520
  * R.modify({ a: 3 } as Record<string, number>, 'b', f),
482
521
  * { a: 3 }
483
522
  * )
523
+ * ```
484
524
  *
485
525
  * @since 2.0.0
486
526
  */
@@ -494,6 +534,7 @@ export const modify: {
494
534
  * @param f - The function to apply to the element.
495
535
  *
496
536
  * @example
537
+ * ```ts
497
538
  * import { Record as R } from "effect"
498
539
  *
499
540
  * const f = (x: number) => x * 2
@@ -506,6 +547,7 @@ export const modify: {
506
547
  * R.modify({ a: 3 } as Record<string, number>, 'b', f),
507
548
  * { a: 3 }
508
549
  * )
550
+ * ```
509
551
  *
510
552
  * @since 2.0.0
511
553
  */
@@ -529,6 +571,7 @@ export const modify: {
529
571
  * @param f - The function to apply to the element.
530
572
  *
531
573
  * @example
574
+ * ```ts
532
575
  * import { Record as R, Option } from "effect"
533
576
  *
534
577
  * const f = (x: number) => x * 2
@@ -541,6 +584,7 @@ export const modify: {
541
584
  * R.modifyOption({ a: 3 } as Record<string, number>, 'b', f),
542
585
  * Option.none()
543
586
  * )
587
+ * ```
544
588
  *
545
589
  * @since 2.0.0
546
590
  */
@@ -554,6 +598,7 @@ export const modifyOption: {
554
598
  * @param f - The function to apply to the element.
555
599
  *
556
600
  * @example
601
+ * ```ts
557
602
  * import { Record as R, Option } from "effect"
558
603
  *
559
604
  * const f = (x: number) => x * 2
@@ -566,6 +611,7 @@ export const modifyOption: {
566
611
  * R.modifyOption({ a: 3 } as Record<string, number>, 'b', f),
567
612
  * Option.none()
568
613
  * )
614
+ * ```
569
615
  *
570
616
  * @since 2.0.0
571
617
  */
@@ -582,6 +628,7 @@ export const modifyOption: {
582
628
  * @param f - The function to apply to the element.
583
629
  *
584
630
  * @example
631
+ * ```ts
585
632
  * import { Record as R, Option } from "effect"
586
633
  *
587
634
  * const f = (x: number) => x * 2
@@ -594,6 +641,7 @@ export const modifyOption: {
594
641
  * R.modifyOption({ a: 3 } as Record<string, number>, 'b', f),
595
642
  * Option.none()
596
643
  * )
644
+ * ```
597
645
  *
598
646
  * @since 2.0.0
599
647
  */
@@ -624,6 +672,7 @@ export const modifyOption: {
624
672
  * @param b - The new value to replace the existing value with.
625
673
  *
626
674
  * @example
675
+ * ```ts
627
676
  * import { Record, Option } from "effect"
628
677
  *
629
678
  * assert.deepStrictEqual(
@@ -631,6 +680,7 @@ export const modifyOption: {
631
680
  * Option.some({ a: 10, b: 2, c: 3 })
632
681
  * )
633
682
  * assert.deepStrictEqual(Record.replaceOption(Record.empty<string>(), 'a', 10), Option.none())
683
+ * ```
634
684
  *
635
685
  * @since 2.0.0
636
686
  */
@@ -643,6 +693,7 @@ export const replaceOption: {
643
693
  * @param b - The new value to replace the existing value with.
644
694
  *
645
695
  * @example
696
+ * ```ts
646
697
  * import { Record, Option } from "effect"
647
698
  *
648
699
  * assert.deepStrictEqual(
@@ -650,6 +701,7 @@ export const replaceOption: {
650
701
  * Option.some({ a: 10, b: 2, c: 3 })
651
702
  * )
652
703
  * assert.deepStrictEqual(Record.replaceOption(Record.empty<string>(), 'a', 10), Option.none())
704
+ * ```
653
705
  *
654
706
  * @since 2.0.0
655
707
  */
@@ -665,6 +717,7 @@ export const replaceOption: {
665
717
  * @param b - The new value to replace the existing value with.
666
718
  *
667
719
  * @example
720
+ * ```ts
668
721
  * import { Record, Option } from "effect"
669
722
  *
670
723
  * assert.deepStrictEqual(
@@ -672,6 +725,7 @@ export const replaceOption: {
672
725
  * Option.some({ a: 10, b: 2, c: 3 })
673
726
  * )
674
727
  * assert.deepStrictEqual(Record.replaceOption(Record.empty<string>(), 'a', 10), Option.none())
728
+ * ```
675
729
  *
676
730
  * @since 2.0.0
677
731
  */
@@ -693,9 +747,11 @@ export const replaceOption: {
693
747
  * @param key - the key to remove from the record.
694
748
  *
695
749
  * @example
750
+ * ```ts
696
751
  * import { remove } from "effect/Record"
697
752
  *
698
753
  * assert.deepStrictEqual(remove({ a: 1, b: 2 }, "a"), { b: 2 })
754
+ * ```
699
755
  *
700
756
  * @since 2.0.0
701
757
  */
@@ -708,9 +764,11 @@ export const remove: {
708
764
  * @param key - the key to remove from the record.
709
765
  *
710
766
  * @example
767
+ * ```ts
711
768
  * import { remove } from "effect/Record"
712
769
  *
713
770
  * assert.deepStrictEqual(remove({ a: 1, b: 2 }, "a"), { b: 2 })
771
+ * ```
714
772
  *
715
773
  * @since 2.0.0
716
774
  */
@@ -723,9 +781,11 @@ export const remove: {
723
781
  * @param key - the key to remove from the record.
724
782
  *
725
783
  * @example
784
+ * ```ts
726
785
  * import { remove } from "effect/Record"
727
786
  *
728
787
  * assert.deepStrictEqual(remove({ a: 1, b: 2 }, "a"), { b: 2 })
788
+ * ```
729
789
  *
730
790
  * @since 2.0.0
731
791
  */
@@ -751,10 +811,12 @@ export const remove: {
751
811
  * @param key - The key of the property to retrieve.
752
812
  *
753
813
  * @example
814
+ * ```ts
754
815
  * import { Record as R, Option } from "effect"
755
816
  *
756
817
  * assert.deepStrictEqual(R.pop({ a: 1, b: 2 }, "a"), Option.some([1, { b: 2 }]))
757
818
  * assert.deepStrictEqual(R.pop({ a: 1, b: 2 } as Record<string, number>, "c"), Option.none())
819
+ * ```
758
820
  *
759
821
  * @category record
760
822
  * @since 2.0.0
@@ -769,10 +831,12 @@ export const pop: {
769
831
  * @param key - The key of the property to retrieve.
770
832
  *
771
833
  * @example
834
+ * ```ts
772
835
  * import { Record as R, Option } from "effect"
773
836
  *
774
837
  * assert.deepStrictEqual(R.pop({ a: 1, b: 2 }, "a"), Option.some([1, { b: 2 }]))
775
838
  * assert.deepStrictEqual(R.pop({ a: 1, b: 2 } as Record<string, number>, "c"), Option.none())
839
+ * ```
776
840
  *
777
841
  * @category record
778
842
  * @since 2.0.0
@@ -789,10 +853,12 @@ export const pop: {
789
853
  * @param key - The key of the property to retrieve.
790
854
  *
791
855
  * @example
856
+ * ```ts
792
857
  * import { Record as R, Option } from "effect"
793
858
  *
794
859
  * assert.deepStrictEqual(R.pop({ a: 1, b: 2 }, "a"), Option.some([1, { b: 2 }]))
795
860
  * assert.deepStrictEqual(R.pop({ a: 1, b: 2 } as Record<string, number>, "c"), Option.none())
861
+ * ```
796
862
  *
797
863
  * @category record
798
864
  * @since 2.0.0
@@ -814,6 +880,7 @@ export const pop: {
814
880
  * @param f - A transformation function that will be applied to each of the values in the record.
815
881
  *
816
882
  * @example
883
+ * ```ts
817
884
  * import { map } from "effect/Record"
818
885
  *
819
886
  * const f = (n: number) => `-${n}`
@@ -823,6 +890,7 @@ export const pop: {
823
890
  * const g = (n: number, key: string) => `${key.toUpperCase()}-${n}`
824
891
  *
825
892
  * assert.deepStrictEqual(map({ a: 3, b: 5 }, g), { a: "A-3", b: "B-5" })
893
+ * ```
826
894
  *
827
895
  * @category mapping
828
896
  * @since 2.0.0
@@ -835,6 +903,7 @@ export const map: {
835
903
  * @param f - A transformation function that will be applied to each of the values in the record.
836
904
  *
837
905
  * @example
906
+ * ```ts
838
907
  * import { map } from "effect/Record"
839
908
  *
840
909
  * const f = (n: number) => `-${n}`
@@ -844,6 +913,7 @@ export const map: {
844
913
  * const g = (n: number, key: string) => `${key.toUpperCase()}-${n}`
845
914
  *
846
915
  * assert.deepStrictEqual(map({ a: 3, b: 5 }, g), { a: "A-3", b: "B-5" })
916
+ * ```
847
917
  *
848
918
  * @category mapping
849
919
  * @since 2.0.0
@@ -856,6 +926,7 @@ export const map: {
856
926
  * @param f - A transformation function that will be applied to each of the values in the record.
857
927
  *
858
928
  * @example
929
+ * ```ts
859
930
  * import { map } from "effect/Record"
860
931
  *
861
932
  * const f = (n: number) => `-${n}`
@@ -865,6 +936,7 @@ export const map: {
865
936
  * const g = (n: number, key: string) => `${key.toUpperCase()}-${n}`
866
937
  *
867
938
  * assert.deepStrictEqual(map({ a: 3, b: 5 }, g), { a: "A-3", b: "B-5" })
939
+ * ```
868
940
  *
869
941
  * @category mapping
870
942
  * @since 2.0.0
@@ -885,9 +957,11 @@ export const map: {
885
957
  * Maps the keys of a `ReadonlyRecord` while preserving the corresponding values.
886
958
  *
887
959
  * @example
960
+ * ```ts
888
961
  * import { mapKeys } from "effect/Record"
889
962
  *
890
963
  * assert.deepStrictEqual(mapKeys({ a: 3, b: 5 }, (key) => key.toUpperCase()), { A: 3, B: 5 })
964
+ * ```
891
965
  *
892
966
  * @category mapping
893
967
  * @since 2.0.0
@@ -897,9 +971,11 @@ export const mapKeys: {
897
971
  * Maps the keys of a `ReadonlyRecord` while preserving the corresponding values.
898
972
  *
899
973
  * @example
974
+ * ```ts
900
975
  * import { mapKeys } from "effect/Record"
901
976
  *
902
977
  * assert.deepStrictEqual(mapKeys({ a: 3, b: 5 }, (key) => key.toUpperCase()), { A: 3, B: 5 })
978
+ * ```
903
979
  *
904
980
  * @category mapping
905
981
  * @since 2.0.0
@@ -909,9 +985,11 @@ export const mapKeys: {
909
985
  * Maps the keys of a `ReadonlyRecord` while preserving the corresponding values.
910
986
  *
911
987
  * @example
988
+ * ```ts
912
989
  * import { mapKeys } from "effect/Record"
913
990
  *
914
991
  * assert.deepStrictEqual(mapKeys({ a: 3, b: 5 }, (key) => key.toUpperCase()), { A: 3, B: 5 })
992
+ * ```
915
993
  *
916
994
  * @category mapping
917
995
  * @since 2.0.0
@@ -936,9 +1014,11 @@ export const mapKeys: {
936
1014
  * Maps entries of a `ReadonlyRecord` using the provided function, allowing modification of both keys and corresponding values.
937
1015
  *
938
1016
  * @example
1017
+ * ```ts
939
1018
  * import { mapEntries } from "effect/Record"
940
1019
  *
941
1020
  * assert.deepStrictEqual(mapEntries({ a: 3, b: 5 }, (a, key) => [key.toUpperCase(), a + 1]), { A: 4, B: 6 })
1021
+ * ```
942
1022
  *
943
1023
  * @category mapping
944
1024
  * @since 2.0.0
@@ -948,9 +1028,11 @@ export const mapEntries: {
948
1028
  * Maps entries of a `ReadonlyRecord` using the provided function, allowing modification of both keys and corresponding values.
949
1029
  *
950
1030
  * @example
1031
+ * ```ts
951
1032
  * import { mapEntries } from "effect/Record"
952
1033
  *
953
1034
  * assert.deepStrictEqual(mapEntries({ a: 3, b: 5 }, (a, key) => [key.toUpperCase(), a + 1]), { A: 4, B: 6 })
1035
+ * ```
954
1036
  *
955
1037
  * @category mapping
956
1038
  * @since 2.0.0
@@ -962,9 +1044,11 @@ export const mapEntries: {
962
1044
  * Maps entries of a `ReadonlyRecord` using the provided function, allowing modification of both keys and corresponding values.
963
1045
  *
964
1046
  * @example
1047
+ * ```ts
965
1048
  * import { mapEntries } from "effect/Record"
966
1049
  *
967
1050
  * assert.deepStrictEqual(mapEntries({ a: 3, b: 5 }, (a, key) => [key.toUpperCase(), a + 1]), { A: 4, B: 6 })
1051
+ * ```
968
1052
  *
969
1053
  * @category mapping
970
1054
  * @since 2.0.0
@@ -993,11 +1077,13 @@ export const mapEntries: {
993
1077
  * @param f - The transformation function.
994
1078
  *
995
1079
  * @example
1080
+ * ```ts
996
1081
  * import { Record, Option } from "effect"
997
1082
  *
998
1083
  * const x = { a: 1, b: 2, c: 3 }
999
1084
  * const f = (a: number, key: string) => a > 2 ? Option.some(a * 2) : Option.none()
1000
1085
  * assert.deepStrictEqual(Record.filterMap(x, f), { c: 6 })
1086
+ * ```
1001
1087
  *
1002
1088
  * @since 2.0.0
1003
1089
  */
@@ -1010,11 +1096,13 @@ export const filterMap: {
1010
1096
  * @param f - The transformation function.
1011
1097
  *
1012
1098
  * @example
1099
+ * ```ts
1013
1100
  * import { Record, Option } from "effect"
1014
1101
  *
1015
1102
  * const x = { a: 1, b: 2, c: 3 }
1016
1103
  * const f = (a: number, key: string) => a > 2 ? Option.some(a * 2) : Option.none()
1017
1104
  * assert.deepStrictEqual(Record.filterMap(x, f), { c: 6 })
1105
+ * ```
1018
1106
  *
1019
1107
  * @since 2.0.0
1020
1108
  */
@@ -1029,11 +1117,13 @@ export const filterMap: {
1029
1117
  * @param f - The transformation function.
1030
1118
  *
1031
1119
  * @example
1120
+ * ```ts
1032
1121
  * import { Record, Option } from "effect"
1033
1122
  *
1034
1123
  * const x = { a: 1, b: 2, c: 3 }
1035
1124
  * const f = (a: number, key: string) => a > 2 ? Option.some(a * 2) : Option.none()
1036
1125
  * assert.deepStrictEqual(Record.filterMap(x, f), { c: 6 })
1126
+ * ```
1037
1127
  *
1038
1128
  * @since 2.0.0
1039
1129
  */
@@ -1065,10 +1155,12 @@ export const filterMap: {
1065
1155
  * @param predicate - A function that returns a `boolean` value to determine if the entry should be included in the new record.
1066
1156
  *
1067
1157
  * @example
1158
+ * ```ts
1068
1159
  * import { filter } from "effect/Record"
1069
1160
  *
1070
1161
  * const x = { a: 1, b: 2, c: 3, d: 4 }
1071
1162
  * assert.deepStrictEqual(filter(x, (n) => n > 2), { c: 3, d: 4 })
1163
+ * ```
1072
1164
  *
1073
1165
  * @category filtering
1074
1166
  * @since 2.0.0
@@ -1081,10 +1173,12 @@ export const filter: {
1081
1173
  * @param predicate - A function that returns a `boolean` value to determine if the entry should be included in the new record.
1082
1174
  *
1083
1175
  * @example
1176
+ * ```ts
1084
1177
  * import { filter } from "effect/Record"
1085
1178
  *
1086
1179
  * const x = { a: 1, b: 2, c: 3, d: 4 }
1087
1180
  * assert.deepStrictEqual(filter(x, (n) => n > 2), { c: 3, d: 4 })
1181
+ * ```
1088
1182
  *
1089
1183
  * @category filtering
1090
1184
  * @since 2.0.0
@@ -1099,10 +1193,12 @@ export const filter: {
1099
1193
  * @param predicate - A function that returns a `boolean` value to determine if the entry should be included in the new record.
1100
1194
  *
1101
1195
  * @example
1196
+ * ```ts
1102
1197
  * import { filter } from "effect/Record"
1103
1198
  *
1104
1199
  * const x = { a: 1, b: 2, c: 3, d: 4 }
1105
1200
  * assert.deepStrictEqual(filter(x, (n) => n > 2), { c: 3, d: 4 })
1201
+ * ```
1106
1202
  *
1107
1203
  * @category filtering
1108
1204
  * @since 2.0.0
@@ -1117,10 +1213,12 @@ export const filter: {
1117
1213
  * @param predicate - A function that returns a `boolean` value to determine if the entry should be included in the new record.
1118
1214
  *
1119
1215
  * @example
1216
+ * ```ts
1120
1217
  * import { filter } from "effect/Record"
1121
1218
  *
1122
1219
  * const x = { a: 1, b: 2, c: 3, d: 4 }
1123
1220
  * assert.deepStrictEqual(filter(x, (n) => n > 2), { c: 3, d: 4 })
1221
+ * ```
1124
1222
  *
1125
1223
  * @category filtering
1126
1224
  * @since 2.0.0
@@ -1136,10 +1234,12 @@ export const filter: {
1136
1234
  * @param predicate - A function that returns a `boolean` value to determine if the entry should be included in the new record.
1137
1235
  *
1138
1236
  * @example
1237
+ * ```ts
1139
1238
  * import { filter } from "effect/Record"
1140
1239
  *
1141
1240
  * const x = { a: 1, b: 2, c: 3, d: 4 }
1142
1241
  * assert.deepStrictEqual(filter(x, (n) => n > 2), { c: 3, d: 4 })
1242
+ * ```
1143
1243
  *
1144
1244
  * @category filtering
1145
1245
  * @since 2.0.0
@@ -1170,12 +1270,14 @@ export const filter: {
1170
1270
  * @param self - A record with `Option` values.
1171
1271
  *
1172
1272
  * @example
1273
+ * ```ts
1173
1274
  * import { Record, Option } from "effect"
1174
1275
  *
1175
1276
  * assert.deepStrictEqual(
1176
1277
  * Record.getSomes({ a: Option.some(1), b: Option.none(), c: Option.some(2) }),
1177
1278
  * { a: 1, c: 2 }
1178
1279
  * )
1280
+ * ```
1179
1281
  *
1180
1282
  * @category filtering
1181
1283
  * @since 2.0.0
@@ -1190,12 +1292,14 @@ export const getSomes: <K extends string, A>(
1190
1292
  * Given a record with `Either` values, returns a new record containing only the `Left` values, preserving the original keys.
1191
1293
  *
1192
1294
  * @example
1295
+ * ```ts
1193
1296
  * import { Record, Either } from "effect"
1194
1297
  *
1195
1298
  * assert.deepStrictEqual(
1196
1299
  * Record.getLefts({ a: Either.right(1), b: Either.left("err"), c: Either.right(2) }),
1197
1300
  * { b: "err" }
1198
1301
  * )
1302
+ * ```
1199
1303
  *
1200
1304
  * @category filtering
1201
1305
  * @since 2.0.0
@@ -1218,12 +1322,14 @@ export const getLefts = <K extends string, R, L>(
1218
1322
  * Given a record with `Either` values, returns a new record containing only the `Right` values, preserving the original keys.
1219
1323
  *
1220
1324
  * @example
1325
+ * ```ts
1221
1326
  * import { Record, Either } from "effect"
1222
1327
  *
1223
1328
  * assert.deepStrictEqual(
1224
1329
  * Record.getRights({ a: Either.right(1), b: Either.left("err"), c: Either.right(2) }),
1225
1330
  * { a: 1, c: 2 }
1226
1331
  * )
1332
+ * ```
1227
1333
  *
1228
1334
  * @category filtering
1229
1335
  * @since 2.0.0
@@ -1249,11 +1355,13 @@ export const getRights = <K extends string, R, L>(
1249
1355
  * @param f - The predicate function to apply to each element.
1250
1356
  *
1251
1357
  * @example
1358
+ * ```ts
1252
1359
  * import { Record, Either } from "effect"
1253
1360
  *
1254
1361
  * const x = { a: 1, b: 2, c: 3 }
1255
1362
  * const f = (n: number) => (n % 2 === 0 ? Either.right(n) : Either.left(n))
1256
1363
  * assert.deepStrictEqual(Record.partitionMap(x, f), [{ a: 1, c: 3 }, { b: 2}])
1364
+ * ```
1257
1365
  *
1258
1366
  * @category filtering
1259
1367
  * @since 2.0.0
@@ -1266,11 +1374,13 @@ export const partitionMap: {
1266
1374
  * @param f - The predicate function to apply to each element.
1267
1375
  *
1268
1376
  * @example
1377
+ * ```ts
1269
1378
  * import { Record, Either } from "effect"
1270
1379
  *
1271
1380
  * const x = { a: 1, b: 2, c: 3 }
1272
1381
  * const f = (n: number) => (n % 2 === 0 ? Either.right(n) : Either.left(n))
1273
1382
  * assert.deepStrictEqual(Record.partitionMap(x, f), [{ a: 1, c: 3 }, { b: 2}])
1383
+ * ```
1274
1384
  *
1275
1385
  * @category filtering
1276
1386
  * @since 2.0.0
@@ -1285,11 +1395,13 @@ export const partitionMap: {
1285
1395
  * @param f - The predicate function to apply to each element.
1286
1396
  *
1287
1397
  * @example
1398
+ * ```ts
1288
1399
  * import { Record, Either } from "effect"
1289
1400
  *
1290
1401
  * const x = { a: 1, b: 2, c: 3 }
1291
1402
  * const f = (n: number) => (n % 2 === 0 ? Either.right(n) : Either.left(n))
1292
1403
  * assert.deepStrictEqual(Record.partitionMap(x, f), [{ a: 1, c: 3 }, { b: 2}])
1404
+ * ```
1293
1405
  *
1294
1406
  * @category filtering
1295
1407
  * @since 2.0.0
@@ -1325,12 +1437,14 @@ export const partitionMap: {
1325
1437
  * @param self - the record to partition.
1326
1438
  *
1327
1439
  * @example
1440
+ * ```ts
1328
1441
  * import { Record, Either } from "effect"
1329
1442
  *
1330
1443
  * assert.deepStrictEqual(
1331
1444
  * Record.separate({ a: Either.left("e"), b: Either.right(1) }),
1332
1445
  * [{ a: "e" }, { b: 1 }]
1333
1446
  * )
1447
+ * ```
1334
1448
  *
1335
1449
  * @category filtering
1336
1450
  * @since 2.0.0
@@ -1346,12 +1460,14 @@ export const separate: <K extends string, A, B>(
1346
1460
  * @param predicate - The partitioning function to determine the partitioning of each value of the record.
1347
1461
  *
1348
1462
  * @example
1463
+ * ```ts
1349
1464
  * import { partition } from "effect/Record"
1350
1465
  *
1351
1466
  * assert.deepStrictEqual(
1352
1467
  * partition({ a: 1, b: 3 }, (n) => n > 2),
1353
1468
  * [{ a: 1 }, { b: 3 }]
1354
1469
  * )
1470
+ * ```
1355
1471
  *
1356
1472
  * @category filtering
1357
1473
  * @since 2.0.0
@@ -1364,12 +1480,14 @@ export const partition: {
1364
1480
  * @param predicate - The partitioning function to determine the partitioning of each value of the record.
1365
1481
  *
1366
1482
  * @example
1483
+ * ```ts
1367
1484
  * import { partition } from "effect/Record"
1368
1485
  *
1369
1486
  * assert.deepStrictEqual(
1370
1487
  * partition({ a: 1, b: 3 }, (n) => n > 2),
1371
1488
  * [{ a: 1 }, { b: 3 }]
1372
1489
  * )
1490
+ * ```
1373
1491
  *
1374
1492
  * @category filtering
1375
1493
  * @since 2.0.0
@@ -1387,12 +1505,14 @@ export const partition: {
1387
1505
  * @param predicate - The partitioning function to determine the partitioning of each value of the record.
1388
1506
  *
1389
1507
  * @example
1508
+ * ```ts
1390
1509
  * import { partition } from "effect/Record"
1391
1510
  *
1392
1511
  * assert.deepStrictEqual(
1393
1512
  * partition({ a: 1, b: 3 }, (n) => n > 2),
1394
1513
  * [{ a: 1 }, { b: 3 }]
1395
1514
  * )
1515
+ * ```
1396
1516
  *
1397
1517
  * @category filtering
1398
1518
  * @since 2.0.0
@@ -1407,12 +1527,14 @@ export const partition: {
1407
1527
  * @param predicate - The partitioning function to determine the partitioning of each value of the record.
1408
1528
  *
1409
1529
  * @example
1530
+ * ```ts
1410
1531
  * import { partition } from "effect/Record"
1411
1532
  *
1412
1533
  * assert.deepStrictEqual(
1413
1534
  * partition({ a: 1, b: 3 }, (n) => n > 2),
1414
1535
  * [{ a: 1 }, { b: 3 }]
1415
1536
  * )
1537
+ * ```
1416
1538
  *
1417
1539
  * @category filtering
1418
1540
  * @since 2.0.0
@@ -1428,12 +1550,14 @@ export const partition: {
1428
1550
  * @param predicate - The partitioning function to determine the partitioning of each value of the record.
1429
1551
  *
1430
1552
  * @example
1553
+ * ```ts
1431
1554
  * import { partition } from "effect/Record"
1432
1555
  *
1433
1556
  * assert.deepStrictEqual(
1434
1557
  * partition({ a: 1, b: 3 }, (n) => n > 2),
1435
1558
  * [{ a: 1 }, { b: 3 }]
1436
1559
  * )
1560
+ * ```
1437
1561
  *
1438
1562
  * @category filtering
1439
1563
  * @since 2.0.0
@@ -1488,10 +1612,12 @@ export const values = <K extends string, A>(self: ReadonlyRecord<K, A>): Array<A
1488
1612
  * @param values - The value you want to associate with the key.
1489
1613
  *
1490
1614
  * @example
1615
+ * ```ts
1491
1616
  * import { set } from "effect/Record"
1492
1617
  *
1493
1618
  * assert.deepStrictEqual(set("a", 5)({ a: 1, b: 2 }), { a: 5, b: 2 });
1494
1619
  * assert.deepStrictEqual(set("c", 5)({ a: 1, b: 2 }), { a: 1, b: 2, c: 5 });
1620
+ * ```
1495
1621
  *
1496
1622
  * @since 2.0.0
1497
1623
  */
@@ -1504,10 +1630,12 @@ export const set: {
1504
1630
  * @param values - The value you want to associate with the key.
1505
1631
  *
1506
1632
  * @example
1633
+ * ```ts
1507
1634
  * import { set } from "effect/Record"
1508
1635
  *
1509
1636
  * assert.deepStrictEqual(set("a", 5)({ a: 1, b: 2 }), { a: 5, b: 2 });
1510
1637
  * assert.deepStrictEqual(set("c", 5)({ a: 1, b: 2 }), { a: 1, b: 2, c: 5 });
1638
+ * ```
1511
1639
  *
1512
1640
  * @since 2.0.0
1513
1641
  */
@@ -1523,10 +1651,12 @@ export const set: {
1523
1651
  * @param values - The value you want to associate with the key.
1524
1652
  *
1525
1653
  * @example
1654
+ * ```ts
1526
1655
  * import { set } from "effect/Record"
1527
1656
  *
1528
1657
  * assert.deepStrictEqual(set("a", 5)({ a: 1, b: 2 }), { a: 5, b: 2 });
1529
1658
  * assert.deepStrictEqual(set("c", 5)({ a: 1, b: 2 }), { a: 1, b: 2, c: 5 });
1659
+ * ```
1530
1660
  *
1531
1661
  * @since 2.0.0
1532
1662
  */
@@ -1555,10 +1685,12 @@ export const set: {
1555
1685
  * @param value - The new value to associate with the key.
1556
1686
  *
1557
1687
  * @example
1688
+ * ```ts
1558
1689
  * import { Record } from "effect"
1559
1690
  *
1560
1691
  * assert.deepStrictEqual(Record.replace("a", 3)({ a: 1, b: 2 }), { a: 3, b: 2 });
1561
1692
  * assert.deepStrictEqual(Record.replace("c", 3)({ a: 1, b: 2 }), { a: 1, b: 2 });
1693
+ * ```
1562
1694
  *
1563
1695
  * @since 2.0.0
1564
1696
  */
@@ -1572,10 +1704,12 @@ export const replace: {
1572
1704
  * @param value - The new value to associate with the key.
1573
1705
  *
1574
1706
  * @example
1707
+ * ```ts
1575
1708
  * import { Record } from "effect"
1576
1709
  *
1577
1710
  * assert.deepStrictEqual(Record.replace("a", 3)({ a: 1, b: 2 }), { a: 3, b: 2 });
1578
1711
  * assert.deepStrictEqual(Record.replace("c", 3)({ a: 1, b: 2 }), { a: 1, b: 2 });
1712
+ * ```
1579
1713
  *
1580
1714
  * @since 2.0.0
1581
1715
  */
@@ -1589,10 +1723,12 @@ export const replace: {
1589
1723
  * @param value - The new value to associate with the key.
1590
1724
  *
1591
1725
  * @example
1726
+ * ```ts
1592
1727
  * import { Record } from "effect"
1593
1728
  *
1594
1729
  * assert.deepStrictEqual(Record.replace("a", 3)({ a: 1, b: 2 }), { a: 3, b: 2 });
1595
1730
  * assert.deepStrictEqual(Record.replace("c", 3)({ a: 1, b: 2 }), { a: 1, b: 2 });
1731
+ * ```
1596
1732
  *
1597
1733
  * @since 2.0.0
1598
1734
  */