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
@@ -23,6 +23,7 @@ import * as order from "./Order.js";
23
23
  import { pipeArguments } from "./Pipeable.js";
24
24
  import { hasProperty } from "./Predicate.js";
25
25
  const DEFAULT_PRECISION = 100;
26
+ const FINITE_INT_REGEX = /^[+-]?\d+$/;
26
27
  /**
27
28
  * @since 2.0.0
28
29
  * @category symbols
@@ -101,10 +102,12 @@ const zero = /*#__PURE__*/unsafeMakeNormalized(bigint0, 0);
101
102
  * @param self - The `BigDecimal` to normalize.
102
103
  *
103
104
  * @example
105
+ * ```ts
104
106
  * import { normalize, make, unsafeFromString } from "effect/BigDecimal"
105
107
  *
106
108
  * assert.deepStrictEqual(normalize(unsafeFromString("123.00000")), normalize(make(123n, 0)))
107
109
  * assert.deepStrictEqual(normalize(unsafeFromString("12300000")), normalize(make(123n, -5)))
110
+ * ```
108
111
  *
109
112
  * @since 2.0.0
110
113
  * @category scaling
@@ -161,9 +164,11 @@ export const scale = /*#__PURE__*/dual(2, (self, scale) => {
161
164
  * @param that - The second operand.
162
165
  *
163
166
  * @example
167
+ * ```ts
164
168
  * import { sum, unsafeFromString } from "effect/BigDecimal"
165
169
  *
166
170
  * assert.deepStrictEqual(sum(unsafeFromString("2"), unsafeFromString("3")), unsafeFromString("5"))
171
+ * ```
167
172
  *
168
173
  * @since 2.0.0
169
174
  * @category math
@@ -190,9 +195,11 @@ export const sum = /*#__PURE__*/dual(2, (self, that) => {
190
195
  * @param that - The second operand.
191
196
  *
192
197
  * @example
198
+ * ```ts
193
199
  * import { multiply, unsafeFromString } from "effect/BigDecimal"
194
200
  *
195
201
  * assert.deepStrictEqual(multiply(unsafeFromString("2"), unsafeFromString("3")), unsafeFromString("6"))
202
+ * ```
196
203
  *
197
204
  * @since 2.0.0
198
205
  * @category math
@@ -210,9 +217,11 @@ export const multiply = /*#__PURE__*/dual(2, (self, that) => {
210
217
  * @param that - The second operand.
211
218
  *
212
219
  * @example
220
+ * ```ts
213
221
  * import { subtract, unsafeFromString } from "effect/BigDecimal"
214
222
  *
215
223
  * assert.deepStrictEqual(subtract(unsafeFromString("2"), unsafeFromString("3")), unsafeFromString("-1"))
224
+ * ```
216
225
  *
217
226
  * @since 2.0.0
218
227
  * @category math
@@ -296,11 +305,13 @@ export const roundTerminal = n => {
296
305
  * @param that - The divisor operand.
297
306
  *
298
307
  * @example
308
+ * ```ts
299
309
  * import { BigDecimal, Option } from "effect"
300
310
  *
301
311
  * assert.deepStrictEqual(BigDecimal.divide(BigDecimal.unsafeFromString("6"), BigDecimal.unsafeFromString("3")), Option.some(BigDecimal.unsafeFromString("2")))
302
312
  * assert.deepStrictEqual(BigDecimal.divide(BigDecimal.unsafeFromString("6"), BigDecimal.unsafeFromString("4")), Option.some(BigDecimal.unsafeFromString("1.5")))
303
313
  * assert.deepStrictEqual(BigDecimal.divide(BigDecimal.unsafeFromString("6"), BigDecimal.unsafeFromString("0")), Option.none())
314
+ * ```
304
315
  *
305
316
  * @since 2.0.0
306
317
  * @category math
@@ -330,10 +341,12 @@ export const divide = /*#__PURE__*/dual(2, (self, that) => {
330
341
  * @param that - The divisor operand.as
331
342
  *
332
343
  * @example
344
+ * ```ts
333
345
  * import { unsafeDivide, unsafeFromString } from "effect/BigDecimal"
334
346
  *
335
347
  * assert.deepStrictEqual(unsafeDivide(unsafeFromString("6"), unsafeFromString("3")), unsafeFromString("2"))
336
348
  * assert.deepStrictEqual(unsafeDivide(unsafeFromString("6"), unsafeFromString("4")), unsafeFromString("1.5"))
349
+ * ```
337
350
  *
338
351
  * @since 2.0.0
339
352
  * @category math
@@ -375,11 +388,13 @@ export const Order = /*#__PURE__*/order.make((self, that) => {
375
388
  * @param that - The second argument.
376
389
  *
377
390
  * @example
391
+ * ```ts
378
392
  * import { lessThan, unsafeFromString } from "effect/BigDecimal"
379
393
  *
380
394
  * assert.deepStrictEqual(lessThan(unsafeFromString("2"), unsafeFromString("3")), true)
381
395
  * assert.deepStrictEqual(lessThan(unsafeFromString("3"), unsafeFromString("3")), false)
382
396
  * assert.deepStrictEqual(lessThan(unsafeFromString("4"), unsafeFromString("3")), false)
397
+ * ```
383
398
  *
384
399
  * @since 2.0.0
385
400
  * @category predicates
@@ -392,11 +407,13 @@ export const lessThan = /*#__PURE__*/order.lessThan(Order);
392
407
  * @param that - The second `BigDecimal` to compare with.
393
408
  *
394
409
  * @example
410
+ * ```ts
395
411
  * import { lessThanOrEqualTo, unsafeFromString } from "effect/BigDecimal"
396
412
  *
397
413
  * assert.deepStrictEqual(lessThanOrEqualTo(unsafeFromString("2"), unsafeFromString("3")), true)
398
414
  * assert.deepStrictEqual(lessThanOrEqualTo(unsafeFromString("3"), unsafeFromString("3")), true)
399
415
  * assert.deepStrictEqual(lessThanOrEqualTo(unsafeFromString("4"), unsafeFromString("3")), false)
416
+ * ```
400
417
  *
401
418
  * @since 2.0.0
402
419
  * @category predicates
@@ -409,11 +426,13 @@ export const lessThanOrEqualTo = /*#__PURE__*/order.lessThanOrEqualTo(Order);
409
426
  * @param that - The second argument.
410
427
  *
411
428
  * @example
429
+ * ```ts
412
430
  * import { greaterThan, unsafeFromString } from "effect/BigDecimal"
413
431
  *
414
432
  * assert.deepStrictEqual(greaterThan(unsafeFromString("2"), unsafeFromString("3")), false)
415
433
  * assert.deepStrictEqual(greaterThan(unsafeFromString("3"), unsafeFromString("3")), false)
416
434
  * assert.deepStrictEqual(greaterThan(unsafeFromString("4"), unsafeFromString("3")), true)
435
+ * ```
417
436
  *
418
437
  * @since 2.0.0
419
438
  * @category predicates
@@ -426,11 +445,13 @@ export const greaterThan = /*#__PURE__*/order.greaterThan(Order);
426
445
  * @param that - The second `BigDecimal` to compare with.
427
446
  *
428
447
  * @example
448
+ * ```ts
429
449
  * import { greaterThanOrEqualTo, unsafeFromString } from "effect/BigDecimal"
430
450
  *
431
451
  * assert.deepStrictEqual(greaterThanOrEqualTo(unsafeFromString("2"), unsafeFromString("3")), false)
432
452
  * assert.deepStrictEqual(greaterThanOrEqualTo(unsafeFromString("3"), unsafeFromString("3")), true)
433
453
  * assert.deepStrictEqual(greaterThanOrEqualTo(unsafeFromString("4"), unsafeFromString("3")), true)
454
+ * ```
434
455
  *
435
456
  * @since 2.0.0
436
457
  * @category predicates
@@ -444,6 +465,7 @@ export const greaterThanOrEqualTo = /*#__PURE__*/order.greaterThanOrEqualTo(Orde
444
465
  * @param maximum - The `maximum` value to check.
445
466
  *
446
467
  * @example
468
+ * ```ts
447
469
  * import { BigDecimal } from "effect"
448
470
  *
449
471
  * const between = BigDecimal.between({
@@ -454,6 +476,7 @@ export const greaterThanOrEqualTo = /*#__PURE__*/order.greaterThanOrEqualTo(Orde
454
476
  * assert.deepStrictEqual(between(BigDecimal.unsafeFromString("3")), true)
455
477
  * assert.deepStrictEqual(between(BigDecimal.unsafeFromString("0")), false)
456
478
  * assert.deepStrictEqual(between(BigDecimal.unsafeFromString("6")), false)
479
+ * ```
457
480
  *
458
481
  * @since 2.0.0
459
482
  * @category predicates
@@ -471,6 +494,7 @@ export const between = /*#__PURE__*/order.between(Order);
471
494
  * @param maximum - The upper end of the range.
472
495
  *
473
496
  * @example
497
+ * ```ts
474
498
  * import { BigDecimal } from "effect"
475
499
  *
476
500
  * const clamp = BigDecimal.clamp({
@@ -481,6 +505,7 @@ export const between = /*#__PURE__*/order.between(Order);
481
505
  * assert.deepStrictEqual(clamp(BigDecimal.unsafeFromString("3")), BigDecimal.unsafeFromString("3"))
482
506
  * assert.deepStrictEqual(clamp(BigDecimal.unsafeFromString("0")), BigDecimal.unsafeFromString("1"))
483
507
  * assert.deepStrictEqual(clamp(BigDecimal.unsafeFromString("6")), BigDecimal.unsafeFromString("5"))
508
+ * ```
484
509
  *
485
510
  * @since 2.0.0
486
511
  * @category math
@@ -493,9 +518,11 @@ export const clamp = /*#__PURE__*/order.clamp(Order);
493
518
  * @param that - The second `BigDecimal`.
494
519
  *
495
520
  * @example
521
+ * ```ts
496
522
  * import { min, unsafeFromString } from "effect/BigDecimal"
497
523
  *
498
524
  * assert.deepStrictEqual(min(unsafeFromString("2"), unsafeFromString("3")), unsafeFromString("2"))
525
+ * ```
499
526
  *
500
527
  * @since 2.0.0
501
528
  * @category math
@@ -508,9 +535,11 @@ export const min = /*#__PURE__*/order.min(Order);
508
535
  * @param that - The second `BigDecimal`.
509
536
  *
510
537
  * @example
538
+ * ```ts
511
539
  * import { max, unsafeFromString } from "effect/BigDecimal"
512
540
  *
513
541
  * assert.deepStrictEqual(max(unsafeFromString("2"), unsafeFromString("3")), unsafeFromString("3"))
542
+ * ```
514
543
  *
515
544
  * @since 2.0.0
516
545
  * @category math
@@ -522,11 +551,13 @@ export const max = /*#__PURE__*/order.max(Order);
522
551
  * @param n - The `BigDecimal` to determine the sign of.
523
552
  *
524
553
  * @example
554
+ * ```ts
525
555
  * import { sign, unsafeFromString } from "effect/BigDecimal"
526
556
  *
527
557
  * assert.deepStrictEqual(sign(unsafeFromString("-5")), -1)
528
558
  * assert.deepStrictEqual(sign(unsafeFromString("0")), 0)
529
559
  * assert.deepStrictEqual(sign(unsafeFromString("5")), 1)
560
+ * ```
530
561
  *
531
562
  * @since 2.0.0
532
563
  * @category math
@@ -538,11 +569,13 @@ export const sign = n => n.value === bigint0 ? 0 : n.value < bigint0 ? -1 : 1;
538
569
  * @param n - The `BigDecimal` to determine the absolute value of.
539
570
  *
540
571
  * @example
572
+ * ```ts
541
573
  * import { abs, unsafeFromString } from "effect/BigDecimal"
542
574
  *
543
575
  * assert.deepStrictEqual(abs(unsafeFromString("-5")), unsafeFromString("5"))
544
576
  * assert.deepStrictEqual(abs(unsafeFromString("0")), unsafeFromString("0"))
545
577
  * assert.deepStrictEqual(abs(unsafeFromString("5")), unsafeFromString("5"))
578
+ * ```
546
579
  *
547
580
  * @since 2.0.0
548
581
  * @category math
@@ -554,10 +587,12 @@ export const abs = n => n.value < bigint0 ? make(-n.value, n.scale) : n;
554
587
  * @param n - The `BigDecimal` to negate.
555
588
  *
556
589
  * @example
590
+ * ```ts
557
591
  * import { negate, unsafeFromString } from "effect/BigDecimal"
558
592
  *
559
593
  * assert.deepStrictEqual(negate(unsafeFromString("3")), unsafeFromString("-3"))
560
594
  * assert.deepStrictEqual(negate(unsafeFromString("-6")), unsafeFromString("6"))
595
+ * ```
561
596
  *
562
597
  * @since 2.0.0
563
598
  * @category math
@@ -572,11 +607,13 @@ export const negate = n => make(-n.value, n.scale);
572
607
  * @param divisor - The divisor.
573
608
  *
574
609
  * @example
610
+ * ```ts
575
611
  * import { BigDecimal, Option } from "effect"
576
612
  *
577
613
  * assert.deepStrictEqual(BigDecimal.remainder(BigDecimal.unsafeFromString("2"), BigDecimal.unsafeFromString("2")), Option.some(BigDecimal.unsafeFromString("0")))
578
614
  * assert.deepStrictEqual(BigDecimal.remainder(BigDecimal.unsafeFromString("3"), BigDecimal.unsafeFromString("2")), Option.some(BigDecimal.unsafeFromString("1")))
579
615
  * assert.deepStrictEqual(BigDecimal.remainder(BigDecimal.unsafeFromString("-4"), BigDecimal.unsafeFromString("2")), Option.some(BigDecimal.unsafeFromString("0")))
616
+ * ```
580
617
  *
581
618
  * @since 2.0.0
582
619
  * @category math
@@ -597,11 +634,13 @@ export const remainder = /*#__PURE__*/dual(2, (self, divisor) => {
597
634
  * @param divisor - The divisor.
598
635
  *
599
636
  * @example
637
+ * ```ts
600
638
  * import { unsafeRemainder, unsafeFromString } from "effect/BigDecimal"
601
639
  *
602
640
  * assert.deepStrictEqual(unsafeRemainder(unsafeFromString("2"), unsafeFromString("2")), unsafeFromString("0"))
603
641
  * assert.deepStrictEqual(unsafeRemainder(unsafeFromString("3"), unsafeFromString("2")), unsafeFromString("1"))
604
642
  * assert.deepStrictEqual(unsafeRemainder(unsafeFromString("-4"), unsafeFromString("2")), unsafeFromString("0"))
643
+ * ```
605
644
  *
606
645
  * @since 2.0.0
607
646
  * @category math
@@ -648,20 +687,68 @@ export const fromBigInt = n => make(n, 0);
648
687
  * It is not recommended to convert a floating point number to a decimal directly,
649
688
  * as the floating point representation may be unexpected.
650
689
  *
690
+ * Throws a `RangeError` if the number is not finite (`NaN`, `+Infinity` or `-Infinity`).
691
+ *
651
692
  * @param value - The `number` value to create a `BigDecimal` from.
652
693
  *
653
694
  * @example
695
+ * ```ts
654
696
  * import { fromNumber, make } from "effect/BigDecimal"
655
697
  *
656
698
  * assert.deepStrictEqual(fromNumber(123), make(123n, 0))
657
699
  * assert.deepStrictEqual(fromNumber(123.456), make(123456n, 3))
700
+ * ```
701
+ *
702
+ * @since 3.11.0
703
+ * @category constructors
704
+ */
705
+ export const unsafeFromNumber = n => Option.getOrThrowWith(safeFromNumber(n), () => new RangeError(`Number must be finite, got ${n}`));
706
+ /**
707
+ * Creates a `BigDecimal` from a `number` value.
708
+ *
709
+ * It is not recommended to convert a floating point number to a decimal directly,
710
+ * as the floating point representation may be unexpected.
711
+ *
712
+ * Throws a `RangeError` if the number is not finite (`NaN`, `+Infinity` or `-Infinity`).
713
+ *
714
+ * @param value - The `number` value to create a `BigDecimal` from.
658
715
  *
659
716
  * @since 2.0.0
660
717
  * @category constructors
718
+ * @deprecated Use {@link unsafeFromNumber} instead.
661
719
  */
662
- export const fromNumber = n => {
663
- const [lead, trail = ""] = `${n}`.split(".");
664
- return make(BigInt(`${lead}${trail}`), trail.length);
720
+ export const fromNumber = unsafeFromNumber;
721
+ /**
722
+ * Creates a `BigDecimal` from a `number` value.
723
+ *
724
+ * It is not recommended to convert a floating point number to a decimal directly,
725
+ * as the floating point representation may be unexpected.
726
+ *
727
+ * Returns `None` if the number is not finite (`NaN`, `+Infinity` or `-Infinity`).
728
+ *
729
+ * @param n - The `number` value to create a `BigDecimal` from.
730
+ *
731
+ * @example
732
+ * import { BigDecimal, Option } from "effect"
733
+ *
734
+ * assert.deepStrictEqual(BigDecimal.safeFromNumber(123), Option.some(BigDecimal.make(123n, 0)))
735
+ * assert.deepStrictEqual(BigDecimal.safeFromNumber(123.456), Option.some(BigDecimal.make(123456n, 3)))
736
+ * assert.deepStrictEqual(BigDecimal.safeFromNumber(Infinity), Option.none())
737
+ *
738
+ * @since 3.11.0
739
+ * @category constructors
740
+ */
741
+ export const safeFromNumber = n => {
742
+ // TODO: Rename this to `fromNumber` after removing the current, unsafe implementation of `fromNumber`.
743
+ if (!Number.isFinite(n)) {
744
+ return Option.none();
745
+ }
746
+ const string = `${n}`;
747
+ if (string.includes("e")) {
748
+ return fromString(string);
749
+ }
750
+ const [lead, trail = ""] = string.split(".");
751
+ return Option.some(make(BigInt(`${lead}${trail}`), trail.length));
665
752
  };
666
753
  /**
667
754
  * Parses a numerical `string` into a `BigDecimal`.
@@ -669,33 +756,52 @@ export const fromNumber = n => {
669
756
  * @param s - The `string` to parse.
670
757
  *
671
758
  * @example
759
+ * ```ts
672
760
  * import { BigDecimal, Option } from "effect"
673
761
  *
674
762
  * assert.deepStrictEqual(BigDecimal.fromString("123"), Option.some(BigDecimal.make(123n, 0)))
675
763
  * assert.deepStrictEqual(BigDecimal.fromString("123.456"), Option.some(BigDecimal.make(123456n, 3)))
676
764
  * assert.deepStrictEqual(BigDecimal.fromString("123.abc"), Option.none())
765
+ * ```
677
766
  *
678
767
  * @since 2.0.0
679
768
  * @category constructors
680
769
  */
681
770
  export const fromString = s => {
771
+ if (s === "") {
772
+ return Option.some(zero);
773
+ }
774
+ let base;
775
+ let exp;
776
+ const seperator = s.search(/[eE]/);
777
+ if (seperator !== -1) {
778
+ const trail = s.slice(seperator + 1);
779
+ base = s.slice(0, seperator);
780
+ exp = Number(trail);
781
+ if (base === "" || !Number.isSafeInteger(exp) || !FINITE_INT_REGEX.test(trail)) {
782
+ return Option.none();
783
+ }
784
+ } else {
785
+ base = s;
786
+ exp = 0;
787
+ }
682
788
  let digits;
683
- let scale;
684
- const dot = s.search(/\./);
789
+ let offset;
790
+ const dot = base.search(/\./);
685
791
  if (dot !== -1) {
686
- const lead = s.slice(0, dot);
687
- const trail = s.slice(dot + 1);
792
+ const lead = base.slice(0, dot);
793
+ const trail = base.slice(dot + 1);
688
794
  digits = `${lead}${trail}`;
689
- scale = trail.length;
795
+ offset = trail.length;
690
796
  } else {
691
- digits = s;
692
- scale = 0;
797
+ digits = base;
798
+ offset = 0;
693
799
  }
694
- if (digits === "") {
695
- // TODO: This mimics the BigInt constructor behavior. Should this be `Option.none()`?
696
- return Option.some(zero);
800
+ if (!FINITE_INT_REGEX.test(digits)) {
801
+ return Option.none();
697
802
  }
698
- if (!/^(?:\+|-)?\d+$/.test(digits)) {
803
+ const scale = offset - exp;
804
+ if (!Number.isSafeInteger(scale)) {
699
805
  return Option.none();
700
806
  }
701
807
  return Option.some(make(BigInt(digits), scale));
@@ -706,11 +812,13 @@ export const fromString = s => {
706
812
  * @param s - The `string` to parse.
707
813
  *
708
814
  * @example
815
+ * ```ts
709
816
  * import { unsafeFromString, make } from "effect/BigDecimal"
710
817
  *
711
818
  * assert.deepStrictEqual(unsafeFromString("123"), make(123n, 0))
712
819
  * assert.deepStrictEqual(unsafeFromString("123.456"), make(123456n, 3))
713
820
  * assert.throws(() => unsafeFromString("123.abc"))
821
+ * ```
714
822
  *
715
823
  * @since 2.0.0
716
824
  * @category constructors
@@ -719,28 +827,37 @@ export const unsafeFromString = s => Option.getOrThrowWith(fromString(s), () =>
719
827
  /**
720
828
  * Formats a given `BigDecimal` as a `string`.
721
829
  *
722
- * @param normalized - The `BigDecimal` to format.
830
+ * If the scale of the `BigDecimal` is greater than or equal to 16, the `BigDecimal` will
831
+ * be formatted in scientific notation.
832
+ *
833
+ * @param n - The `BigDecimal` to format.
723
834
  *
724
835
  * @example
836
+ * ```ts
725
837
  * import { format, unsafeFromString } from "effect/BigDecimal"
726
838
  *
727
839
  * assert.deepStrictEqual(format(unsafeFromString("-5")), "-5")
728
840
  * assert.deepStrictEqual(format(unsafeFromString("123.456")), "123.456")
729
841
  * assert.deepStrictEqual(format(unsafeFromString("-0.00000123")), "-0.00000123")
842
+ * ```
730
843
  *
731
844
  * @since 2.0.0
732
845
  * @category conversions
733
846
  */
734
847
  export const format = n => {
735
- const negative = n.value < bigint0;
736
- const absolute = negative ? `${n.value}`.substring(1) : `${n.value}`;
848
+ const normalized = normalize(n);
849
+ if (Math.abs(normalized.scale) >= 16) {
850
+ return toExponential(normalized);
851
+ }
852
+ const negative = normalized.value < bigint0;
853
+ const absolute = negative ? `${normalized.value}`.substring(1) : `${normalized.value}`;
737
854
  let before;
738
855
  let after;
739
- if (n.scale >= absolute.length) {
856
+ if (normalized.scale >= absolute.length) {
740
857
  before = "0";
741
- after = "0".repeat(n.scale - absolute.length) + absolute;
858
+ after = "0".repeat(normalized.scale - absolute.length) + absolute;
742
859
  } else {
743
- const location = absolute.length - n.scale;
860
+ const location = absolute.length - normalized.scale;
744
861
  if (location > absolute.length) {
745
862
  const zeros = location - absolute.length;
746
863
  before = `${absolute}${"0".repeat(zeros)}`;
@@ -753,6 +870,34 @@ export const format = n => {
753
870
  const complete = after === "" ? before : `${before}.${after}`;
754
871
  return negative ? `-${complete}` : complete;
755
872
  };
873
+ /**
874
+ * Formats a given `BigDecimal` as a `string` in scientific notation.
875
+ *
876
+ * @param n - The `BigDecimal` to format.
877
+ *
878
+ * @example
879
+ * import { toExponential, make } from "effect/BigDecimal"
880
+ *
881
+ * assert.deepStrictEqual(toExponential(make(123456n, -5)), "1.23456e+10")
882
+ *
883
+ * @since 3.11.0
884
+ * @category conversions
885
+ */
886
+ export const toExponential = n => {
887
+ if (isZero(n)) {
888
+ return "0e+0";
889
+ }
890
+ const normalized = normalize(n);
891
+ const digits = `${abs(normalized).value}`;
892
+ const head = digits.slice(0, 1);
893
+ const tail = digits.slice(1);
894
+ let output = `${isNegative(normalized) ? "-" : ""}${head}`;
895
+ if (tail !== "") {
896
+ output += `.${tail}`;
897
+ }
898
+ const exp = tail.length - normalized.scale;
899
+ return `${output}e${exp >= 0 ? "+" : ""}${exp}`;
900
+ };
756
901
  /**
757
902
  * Converts a `BigDecimal` to a `number`.
758
903
  *
@@ -761,9 +906,11 @@ export const format = n => {
761
906
  * @param n - The `BigDecimal` to convert.
762
907
  *
763
908
  * @example
909
+ * ```ts
764
910
  * import { unsafeToNumber, unsafeFromString } from "effect/BigDecimal"
765
911
  *
766
912
  * assert.deepStrictEqual(unsafeToNumber(unsafeFromString("123.456")), 123.456)
913
+ * ```
767
914
  *
768
915
  * @since 2.0.0
769
916
  * @category conversions
@@ -775,11 +922,13 @@ export const unsafeToNumber = n => Number(format(n));
775
922
  * @param n - The `BigDecimal` to check.
776
923
  *
777
924
  * @example
925
+ * ```ts
778
926
  * import { isInteger, unsafeFromString } from "effect/BigDecimal"
779
927
  *
780
928
  * assert.deepStrictEqual(isInteger(unsafeFromString("0")), true)
781
929
  * assert.deepStrictEqual(isInteger(unsafeFromString("1")), true)
782
930
  * assert.deepStrictEqual(isInteger(unsafeFromString("1.1")), false)
931
+ * ```
783
932
  *
784
933
  * @since 2.0.0
785
934
  * @category predicates
@@ -791,10 +940,12 @@ export const isInteger = n => normalize(n).scale <= 0;
791
940
  * @param n - The `BigDecimal` to check.
792
941
  *
793
942
  * @example
943
+ * ```ts
794
944
  * import { isZero, unsafeFromString } from "effect/BigDecimal"
795
945
  *
796
946
  * assert.deepStrictEqual(isZero(unsafeFromString("0")), true)
797
947
  * assert.deepStrictEqual(isZero(unsafeFromString("1")), false)
948
+ * ```
798
949
  *
799
950
  * @since 2.0.0
800
951
  * @category predicates
@@ -806,11 +957,13 @@ export const isZero = n => n.value === bigint0;
806
957
  * @param n - The `BigDecimal` to check.
807
958
  *
808
959
  * @example
960
+ * ```ts
809
961
  * import { isNegative, unsafeFromString } from "effect/BigDecimal"
810
962
  *
811
963
  * assert.deepStrictEqual(isNegative(unsafeFromString("-1")), true)
812
964
  * assert.deepStrictEqual(isNegative(unsafeFromString("0")), false)
813
965
  * assert.deepStrictEqual(isNegative(unsafeFromString("1")), false)
966
+ * ```
814
967
  *
815
968
  * @since 2.0.0
816
969
  * @category predicates
@@ -822,11 +975,13 @@ export const isNegative = n => n.value < bigint0;
822
975
  * @param n - The `BigDecimal` to check.
823
976
  *
824
977
  * @example
978
+ * ```ts
825
979
  * import { isPositive, unsafeFromString } from "effect/BigDecimal"
826
980
  *
827
981
  * assert.deepStrictEqual(isPositive(unsafeFromString("-1")), false)
828
982
  * assert.deepStrictEqual(isPositive(unsafeFromString("0")), false)
829
983
  * assert.deepStrictEqual(isPositive(unsafeFromString("1")), true)
984
+ * ```
830
985
  *
831
986
  * @since 2.0.0
832
987
  * @category predicates
@@ -1 +1 @@
1
- {"version":3,"file":"BigDecimal.js","names":["Equal","equivalence","dual","pipe","Hash","NodeInspectSymbol","Option","order","pipeArguments","hasProperty","DEFAULT_PRECISION","TypeId","Symbol","for","BigDecimalProto","symbol","normalized","normalize","hash","value","combine","number","scale","cached","that","isBigDecimal","equals","toString","format","toJSON","_id","String","arguments","u","make","o","Object","create","unsafeMakeNormalized","bigint0","bigint10","RangeError","BigInt","bigint1","zero","self","undefined","digits","trail","i","length","substring","sum","multiply","subtract","divideWithPrecision","num","den","precision","numNegative","denNegative","negateResult","quotient","remainder","count","q","r","roundTerminal","n","pos","Number","divide","none","some","unsafeDivide","Order","scmp","sign","bigint","lessThan","lessThanOrEqualTo","greaterThan","greaterThanOrEqualTo","between","clamp","min","max","abs","negate","divisor","Math","unsafeRemainder","Equivalence","fromBigInt","fromNumber","lead","split","fromString","s","dot","search","slice","test","unsafeFromString","getOrThrowWith","Error","negative","absolute","before","after","repeat","location","zeros","complete","unsafeToNumber","isInteger","isZero","isNegative","isPositive"],"sources":["../../src/BigDecimal.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"BigDecimal.js","names":["Equal","equivalence","dual","pipe","Hash","NodeInspectSymbol","Option","order","pipeArguments","hasProperty","DEFAULT_PRECISION","FINITE_INT_REGEX","TypeId","Symbol","for","BigDecimalProto","symbol","normalized","normalize","hash","value","combine","number","scale","cached","that","isBigDecimal","equals","toString","format","toJSON","_id","String","arguments","u","make","o","Object","create","unsafeMakeNormalized","bigint0","bigint10","RangeError","BigInt","bigint1","zero","self","undefined","digits","trail","i","length","substring","sum","multiply","subtract","divideWithPrecision","num","den","precision","numNegative","denNegative","negateResult","quotient","remainder","count","q","r","roundTerminal","n","pos","Number","divide","none","some","unsafeDivide","Order","scmp","sign","bigint","lessThan","lessThanOrEqualTo","greaterThan","greaterThanOrEqualTo","between","clamp","min","max","abs","negate","divisor","Math","unsafeRemainder","Equivalence","fromBigInt","unsafeFromNumber","getOrThrowWith","safeFromNumber","fromNumber","isFinite","string","includes","fromString","lead","split","s","base","exp","seperator","search","slice","isSafeInteger","test","offset","dot","unsafeFromString","Error","toExponential","negative","absolute","before","after","repeat","location","zeros","complete","isZero","head","tail","output","isNegative","unsafeToNumber","isInteger","isPositive"],"sources":["../../src/BigDecimal.ts"],"sourcesContent":[null],"mappings":"AAAA;;;;;;;;;;;;;;;AAgBA,OAAO,KAAKA,KAAK,MAAM,YAAY;AACnC,OAAO,KAAKC,WAAW,MAAM,kBAAkB;AAC/C,SAASC,IAAI,EAAEC,IAAI,QAAQ,eAAe;AAC1C,OAAO,KAAKC,IAAI,MAAM,WAAW;AACjC,SAA2BC,iBAAiB,QAAQ,kBAAkB;AACtE,OAAO,KAAKC,MAAM,MAAM,aAAa;AACrC,OAAO,KAAKC,KAAK,MAAM,YAAY;AAEnC,SAAwBC,aAAa,QAAQ,eAAe;AAC5D,SAASC,WAAW,QAAQ,gBAAgB;AAE5C,MAAMC,iBAAiB,GAAG,GAAG;AAC7B,MAAMC,gBAAgB,GAAG,YAAY;AAErC;;;;AAIA,OAAO,MAAMC,MAAM,gBAAkBC,MAAM,CAACC,GAAG,CAAC,mBAAmB,CAAC;AAoBpE,MAAMC,eAAe,GAAuD;EAC1E,CAACH,MAAM,GAAGA,MAAM;EAChB,CAACR,IAAI,CAACY,MAAM,IAAC;IACX,MAAMC,UAAU,GAAGC,SAAS,CAAC,IAAI,CAAC;IAClC,OAAOf,IAAI,CACTC,IAAI,CAACe,IAAI,CAACF,UAAU,CAACG,KAAK,CAAC,EAC3BhB,IAAI,CAACiB,OAAO,CAACjB,IAAI,CAACkB,MAAM,CAACL,UAAU,CAACM,KAAK,CAAC,CAAC,EAC3CnB,IAAI,CAACoB,MAAM,CAAC,IAAI,CAAC,CAClB;EACH,CAAC;EACD,CAACxB,KAAK,CAACgB,MAAM,EAAoBS,IAAa;IAC5C,OAAOC,YAAY,CAACD,IAAI,CAAC,IAAIE,MAAM,CAAC,IAAI,EAAEF,IAAI,CAAC;EACjD,CAAC;EACDG,QAAQA,CAAA;IACN,OAAO,cAAcC,MAAM,CAAC,IAAI,CAAC,GAAG;EACtC,CAAC;EACDC,MAAMA,CAAA;IACJ,OAAO;MACLC,GAAG,EAAE,YAAY;MACjBX,KAAK,EAAEY,MAAM,CAAC,IAAI,CAACZ,KAAK,CAAC;MACzBG,KAAK,EAAE,IAAI,CAACA;KACb;EACH,CAAC;EACD,CAAClB,iBAAiB,IAAC;IACjB,OAAO,IAAI,CAACyB,MAAM,EAAE;EACtB,CAAC;EACD3B,IAAIA,CAAA;IACF,OAAOK,aAAa,CAAC,IAAI,EAAEyB,SAAS,CAAC;EACvC;CACQ;AAEV;;;;;;;;AAQA,OAAO,MAAMP,YAAY,GAAIQ,CAAU,IAAsBzB,WAAW,CAACyB,CAAC,EAAEtB,MAAM,CAAC;AAEnF;;;;;;;;;AASA,OAAO,MAAMuB,IAAI,GAAGA,CAACf,KAAa,EAAEG,KAAa,KAAgB;EAC/D,MAAMa,CAAC,GAAGC,MAAM,CAACC,MAAM,CAACvB,eAAe,CAAC;EACxCqB,CAAC,CAAChB,KAAK,GAAGA,KAAK;EACfgB,CAAC,CAACb,KAAK,GAAGA,KAAK;EACf,OAAOa,CAAC;AACV,CAAC;AAED;;;;;AAKA,OAAO,MAAMG,oBAAoB,GAAGA,CAACnB,KAAa,EAAEG,KAAa,KAAgB;EAC/E,IAAIH,KAAK,KAAKoB,OAAO,IAAIpB,KAAK,GAAGqB,QAAQ,KAAKD,OAAO,EAAE;IACrD,MAAM,IAAIE,UAAU,CAAC,0BAA0B,CAAC;EAClD;EAEA,MAAMN,CAAC,GAAGD,IAAI,CAACf,KAAK,EAAEG,KAAK,CAAC;EAC5Ba,CAAC,CAACnB,UAAU,GAAGmB,CAAC;EAChB,OAAOA,CAAC;AACV,CAAC;AAED,MAAMI,OAAO,gBAAGG,MAAM,CAAC,CAAC,CAAC;AACzB,MAAMC,OAAO,gBAAGD,MAAM,CAAC,CAAC,CAAC;AACzB,MAAMF,QAAQ,gBAAGE,MAAM,CAAC,EAAE,CAAC;AAC3B,MAAME,IAAI,gBAAGN,oBAAoB,CAACC,OAAO,EAAE,CAAC,CAAC;AAE7C;;;;;;;;;;;;;;;;AAgBA,OAAO,MAAMtB,SAAS,GAAI4B,IAAgB,IAAgB;EACxD,IAAIA,IAAI,CAAC7B,UAAU,KAAK8B,SAAS,EAAE;IACjC,IAAID,IAAI,CAAC1B,KAAK,KAAKoB,OAAO,EAAE;MAC1BM,IAAI,CAAC7B,UAAU,GAAG4B,IAAI;IACxB,CAAC,MAAM;MACL,MAAMG,MAAM,GAAG,GAAGF,IAAI,CAAC1B,KAAK,EAAE;MAE9B,IAAI6B,KAAK,GAAG,CAAC;MACb,KAAK,IAAIC,CAAC,GAAGF,MAAM,CAACG,MAAM,GAAG,CAAC,EAAED,CAAC,IAAI,CAAC,EAAEA,CAAC,EAAE,EAAE;QAC3C,IAAIF,MAAM,CAACE,CAAC,CAAC,KAAK,GAAG,EAAE;UACrBD,KAAK,EAAE;QACT,CAAC,MAAM;UACL;QACF;MACF;MAEA,IAAIA,KAAK,KAAK,CAAC,EAAE;QACfH,IAAI,CAAC7B,UAAU,GAAG6B,IAAI;MACxB;MAEA,MAAM1B,KAAK,GAAGuB,MAAM,CAACK,MAAM,CAACI,SAAS,CAAC,CAAC,EAAEJ,MAAM,CAACG,MAAM,GAAGF,KAAK,CAAC,CAAC;MAChE,MAAM1B,KAAK,GAAGuB,IAAI,CAACvB,KAAK,GAAG0B,KAAK;MAChCH,IAAI,CAAC7B,UAAU,GAAGsB,oBAAoB,CAACnB,KAAK,EAAEG,KAAK,CAAC;IACtD;EACF;EAEA,OAAOuB,IAAI,CAAC7B,UAAU;AACxB,CAAC;AAED;;;;;;;;;;;;AAYA,OAAO,MAAMM,KAAK,gBA2BdrB,IAAI,CAAC,CAAC,EAAE,CAAC4C,IAAgB,EAAEvB,KAAa,KAAgB;EAC1D,IAAIA,KAAK,GAAGuB,IAAI,CAACvB,KAAK,EAAE;IACtB,OAAOY,IAAI,CAACW,IAAI,CAAC1B,KAAK,GAAGqB,QAAQ,IAAIE,MAAM,CAACpB,KAAK,GAAGuB,IAAI,CAACvB,KAAK,CAAC,EAAEA,KAAK,CAAC;EACzE;EAEA,IAAIA,KAAK,GAAGuB,IAAI,CAACvB,KAAK,EAAE;IACtB,OAAOY,IAAI,CAACW,IAAI,CAAC1B,KAAK,GAAGqB,QAAQ,IAAIE,MAAM,CAACG,IAAI,CAACvB,KAAK,GAAGA,KAAK,CAAC,EAAEA,KAAK,CAAC;EACzE;EAEA,OAAOuB,IAAI;AACb,CAAC,CAAC;AAEF;;;;;;;;;;;;;;;;AAgBA,OAAO,MAAMO,GAAG,gBAmCZnD,IAAI,CAAC,CAAC,EAAE,CAAC4C,IAAgB,EAAErB,IAAgB,KAAgB;EAC7D,IAAIA,IAAI,CAACL,KAAK,KAAKoB,OAAO,EAAE;IAC1B,OAAOM,IAAI;EACb;EAEA,IAAIA,IAAI,CAAC1B,KAAK,KAAKoB,OAAO,EAAE;IAC1B,OAAOf,IAAI;EACb;EAEA,IAAIqB,IAAI,CAACvB,KAAK,GAAGE,IAAI,CAACF,KAAK,EAAE;IAC3B,OAAOY,IAAI,CAACZ,KAAK,CAACE,IAAI,EAAEqB,IAAI,CAACvB,KAAK,CAAC,CAACH,KAAK,GAAG0B,IAAI,CAAC1B,KAAK,EAAE0B,IAAI,CAACvB,KAAK,CAAC;EACrE;EAEA,IAAIuB,IAAI,CAACvB,KAAK,GAAGE,IAAI,CAACF,KAAK,EAAE;IAC3B,OAAOY,IAAI,CAACZ,KAAK,CAACuB,IAAI,EAAErB,IAAI,CAACF,KAAK,CAAC,CAACH,KAAK,GAAGK,IAAI,CAACL,KAAK,EAAEK,IAAI,CAACF,KAAK,CAAC;EACrE;EAEA,OAAOY,IAAI,CAACW,IAAI,CAAC1B,KAAK,GAAGK,IAAI,CAACL,KAAK,EAAE0B,IAAI,CAACvB,KAAK,CAAC;AAClD,CAAC,CAAC;AAEF;;;;;;;;;;;;;;;;AAgBA,OAAO,MAAM+B,QAAQ,gBAmCjBpD,IAAI,CAAC,CAAC,EAAE,CAAC4C,IAAgB,EAAErB,IAAgB,KAAgB;EAC7D,IAAIA,IAAI,CAACL,KAAK,KAAKoB,OAAO,IAAIM,IAAI,CAAC1B,KAAK,KAAKoB,OAAO,EAAE;IACpD,OAAOK,IAAI;EACb;EAEA,OAAOV,IAAI,CAACW,IAAI,CAAC1B,KAAK,GAAGK,IAAI,CAACL,KAAK,EAAE0B,IAAI,CAACvB,KAAK,GAAGE,IAAI,CAACF,KAAK,CAAC;AAC/D,CAAC,CAAC;AAEF;;;;;;;;;;;;;;;;AAgBA,OAAO,MAAMgC,QAAQ,gBAmCjBrD,IAAI,CAAC,CAAC,EAAE,CAAC4C,IAAgB,EAAErB,IAAgB,KAAgB;EAC7D,IAAIA,IAAI,CAACL,KAAK,KAAKoB,OAAO,EAAE;IAC1B,OAAOM,IAAI;EACb;EAEA,IAAIA,IAAI,CAAC1B,KAAK,KAAKoB,OAAO,EAAE;IAC1B,OAAOL,IAAI,CAAC,CAACV,IAAI,CAACL,KAAK,EAAEK,IAAI,CAACF,KAAK,CAAC;EACtC;EAEA,IAAIuB,IAAI,CAACvB,KAAK,GAAGE,IAAI,CAACF,KAAK,EAAE;IAC3B,OAAOY,IAAI,CAACW,IAAI,CAAC1B,KAAK,GAAGG,KAAK,CAACE,IAAI,EAAEqB,IAAI,CAACvB,KAAK,CAAC,CAACH,KAAK,EAAE0B,IAAI,CAACvB,KAAK,CAAC;EACrE;EAEA,IAAIuB,IAAI,CAACvB,KAAK,GAAGE,IAAI,CAACF,KAAK,EAAE;IAC3B,OAAOY,IAAI,CAACZ,KAAK,CAACuB,IAAI,EAAErB,IAAI,CAACF,KAAK,CAAC,CAACH,KAAK,GAAGK,IAAI,CAACL,KAAK,EAAEK,IAAI,CAACF,KAAK,CAAC;EACrE;EAEA,OAAOY,IAAI,CAACW,IAAI,CAAC1B,KAAK,GAAGK,IAAI,CAACL,KAAK,EAAE0B,IAAI,CAACvB,KAAK,CAAC;AAClD,CAAC,CAAC;AAEF;;;AAGA,MAAMiC,mBAAmB,GAAGA,CAC1BC,GAAW,EACXC,GAAW,EACXnC,KAAa,EACboC,SAAiB,KACH;EACd,MAAMC,WAAW,GAAGH,GAAG,GAAGjB,OAAO;EACjC,MAAMqB,WAAW,GAAGH,GAAG,GAAGlB,OAAO;EACjC,MAAMsB,YAAY,GAAGF,WAAW,KAAKC,WAAW;EAEhDJ,GAAG,GAAGG,WAAW,GAAG,CAACH,GAAG,GAAGA,GAAG;EAC9BC,GAAG,GAAGG,WAAW,GAAG,CAACH,GAAG,GAAGA,GAAG;EAE9B;EACA,OAAOD,GAAG,GAAGC,GAAG,EAAE;IAChBD,GAAG,IAAIhB,QAAQ;IACflB,KAAK,EAAE;EACT;EAEA;EACA,IAAIwC,QAAQ,GAAGN,GAAG,GAAGC,GAAG;EACxB,IAAIM,SAAS,GAAGP,GAAG,GAAGC,GAAG;EAEzB,IAAIM,SAAS,KAAKxB,OAAO,EAAE;IACzB;IACA,OAAOL,IAAI,CAAC2B,YAAY,GAAG,CAACC,QAAQ,GAAGA,QAAQ,EAAExC,KAAK,CAAC;EACzD;EAEA;EACA,IAAI0C,KAAK,GAAG,GAAGF,QAAQ,EAAE,CAACZ,MAAM;EAEhC;EACAa,SAAS,IAAIvB,QAAQ;EACrB,OAAOuB,SAAS,KAAKxB,OAAO,IAAIyB,KAAK,GAAGN,SAAS,EAAE;IACjD,MAAMO,CAAC,GAAGF,SAAS,GAAGN,GAAG;IACzB,MAAMS,CAAC,GAAGH,SAAS,GAAGN,GAAG;IACzBK,QAAQ,GAAGA,QAAQ,GAAGtB,QAAQ,GAAGyB,CAAC;IAClCF,SAAS,GAAGG,CAAC,GAAG1B,QAAQ;IAExBwB,KAAK,EAAE;IACP1C,KAAK,EAAE;EACT;EAEA,IAAIyC,SAAS,KAAKxB,OAAO,EAAE;IACzB;IACAuB,QAAQ,IAAIK,aAAa,CAACJ,SAAS,GAAGN,GAAG,CAAC;EAC5C;EAEA,OAAOvB,IAAI,CAAC2B,YAAY,GAAG,CAACC,QAAQ,GAAGA,QAAQ,EAAExC,KAAK,CAAC;AACzD,CAAC;AAED;;;;;;;;;AASA,OAAO,MAAM6C,aAAa,GAAIC,CAAS,IAAY;EACjD,MAAMC,GAAG,GAAGD,CAAC,IAAI7B,OAAO,GAAG,CAAC,GAAG,CAAC;EAChC,OAAO+B,MAAM,CAAC,GAAGF,CAAC,EAAE,CAACC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG9B,OAAO,GAAGI,OAAO;AACpD,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;AAuBA,OAAO,MAAM4B,MAAM,gBAiDftE,IAAI,CAAC,CAAC,EAAE,CAAC4C,IAAgB,EAAErB,IAAgB,KAA+B;EAC5E,IAAIA,IAAI,CAACL,KAAK,KAAKoB,OAAO,EAAE;IAC1B,OAAOlC,MAAM,CAACmE,IAAI,EAAE;EACtB;EAEA,IAAI3B,IAAI,CAAC1B,KAAK,KAAKoB,OAAO,EAAE;IAC1B,OAAOlC,MAAM,CAACoE,IAAI,CAAC7B,IAAI,CAAC;EAC1B;EAEA,MAAMtB,KAAK,GAAGuB,IAAI,CAACvB,KAAK,GAAGE,IAAI,CAACF,KAAK;EACrC,IAAIuB,IAAI,CAAC1B,KAAK,KAAKK,IAAI,CAACL,KAAK,EAAE;IAC7B,OAAOd,MAAM,CAACoE,IAAI,CAACvC,IAAI,CAACS,OAAO,EAAErB,KAAK,CAAC,CAAC;EAC1C;EAEA,OAAOjB,MAAM,CAACoE,IAAI,CAAClB,mBAAmB,CAACV,IAAI,CAAC1B,KAAK,EAAEK,IAAI,CAACL,KAAK,EAAEG,KAAK,EAAEb,iBAAiB,CAAC,CAAC;AAC3F,CAAC,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;AAsBA,OAAO,MAAMiE,YAAY,gBA+CrBzE,IAAI,CAAC,CAAC,EAAE,CAAC4C,IAAgB,EAAErB,IAAgB,KAAgB;EAC7D,IAAIA,IAAI,CAACL,KAAK,KAAKoB,OAAO,EAAE;IAC1B,MAAM,IAAIE,UAAU,CAAC,kBAAkB,CAAC;EAC1C;EAEA,IAAII,IAAI,CAAC1B,KAAK,KAAKoB,OAAO,EAAE;IAC1B,OAAOK,IAAI;EACb;EAEA,MAAMtB,KAAK,GAAGuB,IAAI,CAACvB,KAAK,GAAGE,IAAI,CAACF,KAAK;EACrC,IAAIuB,IAAI,CAAC1B,KAAK,KAAKK,IAAI,CAACL,KAAK,EAAE;IAC7B,OAAOe,IAAI,CAACS,OAAO,EAAErB,KAAK,CAAC;EAC7B;EACA,OAAOiC,mBAAmB,CAACV,IAAI,CAAC1B,KAAK,EAAEK,IAAI,CAACL,KAAK,EAAEG,KAAK,EAAEb,iBAAiB,CAAC;AAC9E,CAAC,CAAC;AAEF;;;;AAIA,OAAO,MAAMkE,KAAK,gBAA4BrE,KAAK,CAAC4B,IAAI,CAAC,CAACW,IAAI,EAAErB,IAAI,KAAI;EACtE,MAAMoD,IAAI,GAAGtE,KAAK,CAACe,MAAM,CAACwD,IAAI,CAAChC,IAAI,CAAC,EAAEgC,IAAI,CAACrD,IAAI,CAAC,CAAC;EACjD,IAAIoD,IAAI,KAAK,CAAC,EAAE;IACd,OAAOA,IAAI;EACb;EAEA,IAAI/B,IAAI,CAACvB,KAAK,GAAGE,IAAI,CAACF,KAAK,EAAE;IAC3B,OAAOhB,KAAK,CAACwE,MAAM,CAACjC,IAAI,CAAC1B,KAAK,EAAEG,KAAK,CAACE,IAAI,EAAEqB,IAAI,CAACvB,KAAK,CAAC,CAACH,KAAK,CAAC;EAChE;EAEA,IAAI0B,IAAI,CAACvB,KAAK,GAAGE,IAAI,CAACF,KAAK,EAAE;IAC3B,OAAOhB,KAAK,CAACwE,MAAM,CAACxD,KAAK,CAACuB,IAAI,EAAErB,IAAI,CAACF,KAAK,CAAC,CAACH,KAAK,EAAEK,IAAI,CAACL,KAAK,CAAC;EAChE;EAEA,OAAOb,KAAK,CAACwE,MAAM,CAACjC,IAAI,CAAC1B,KAAK,EAAEK,IAAI,CAACL,KAAK,CAAC;AAC7C,CAAC,CAAC;AAEF;;;;;;;;;;;;;;;;;;AAkBA,OAAO,MAAM4D,QAAQ,gBAuCjBzE,KAAK,CAACyE,QAAQ,CAACJ,KAAK,CAAC;AAEzB;;;;;;;;;;;;;;;;;;AAkBA,OAAO,MAAMK,iBAAiB,gBAuC1B1E,KAAK,CAAC0E,iBAAiB,CAACL,KAAK,CAAC;AAElC;;;;;;;;;;;;;;;;;;AAkBA,OAAO,MAAMM,WAAW,gBAuCpB3E,KAAK,CAAC2E,WAAW,CAACN,KAAK,CAAC;AAE5B;;;;;;;;;;;;;;;;;;AAkBA,OAAO,MAAMO,oBAAoB,gBAuC7B5E,KAAK,CAAC4E,oBAAoB,CAACP,KAAK,CAAC;AAErC;;;;;;;;;;;;;;;;;;;;;;;;AAwBA,OAAO,MAAMQ,OAAO,gBA8DhB7E,KAAK,CAAC6E,OAAO,CAACR,KAAK,CAAC;AAExB;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA4BA,OAAO,MAAMS,KAAK,gBAsEd9E,KAAK,CAAC8E,KAAK,CAACT,KAAK,CAAC;AAEtB;;;;;;;;;;;;;;;;AAgBA,OAAO,MAAMU,GAAG,gBAmCZ/E,KAAK,CAAC+E,GAAG,CAACV,KAAK,CAAC;AAEpB;;;;;;;;;;;;;;;;AAgBA,OAAO,MAAMW,GAAG,gBAmCZhF,KAAK,CAACgF,GAAG,CAACX,KAAK,CAAC;AAEpB;;;;;;;;;;;;;;;;;AAiBA,OAAO,MAAME,IAAI,GAAIT,CAAa,IAAeA,CAAC,CAACjD,KAAK,KAAKoB,OAAO,GAAG,CAAC,GAAG6B,CAAC,CAACjD,KAAK,GAAGoB,OAAO,GAAG,CAAC,CAAC,GAAG,CAAC;AAErG;;;;;;;;;;;;;;;;;AAiBA,OAAO,MAAMgD,GAAG,GAAInB,CAAa,IAAiBA,CAAC,CAACjD,KAAK,GAAGoB,OAAO,GAAGL,IAAI,CAAC,CAACkC,CAAC,CAACjD,KAAK,EAAEiD,CAAC,CAAC9C,KAAK,CAAC,GAAG8C,CAAC;AAEjG;;;;;;;;;;;;;;;;AAgBA,OAAO,MAAMoB,MAAM,GAAIpB,CAAa,IAAiBlC,IAAI,CAAC,CAACkC,CAAC,CAACjD,KAAK,EAAEiD,CAAC,CAAC9C,KAAK,CAAC;AAE5E;;;;;;;;;;;;;;;;;;;;AAoBA,OAAO,MAAMyC,SAAS,gBA2ClB9D,IAAI,CAAC,CAAC,EAAE,CAAC4C,IAAgB,EAAE4C,OAAmB,KAA+B;EAC/E,IAAIA,OAAO,CAACtE,KAAK,KAAKoB,OAAO,EAAE;IAC7B,OAAOlC,MAAM,CAACmE,IAAI,EAAE;EACtB;EAEA,MAAMc,GAAG,GAAGI,IAAI,CAACJ,GAAG,CAACzC,IAAI,CAACvB,KAAK,EAAEmE,OAAO,CAACnE,KAAK,CAAC;EAC/C,OAAOjB,MAAM,CAACoE,IAAI,CAACvC,IAAI,CAACZ,KAAK,CAACuB,IAAI,EAAEyC,GAAG,CAAC,CAACnE,KAAK,GAAGG,KAAK,CAACmE,OAAO,EAAEH,GAAG,CAAC,CAACnE,KAAK,EAAEmE,GAAG,CAAC,CAAC;AACnF,CAAC,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;AAoBA,OAAO,MAAMK,eAAe,gBA2CxB1F,IAAI,CAAC,CAAC,EAAE,CAAC4C,IAAgB,EAAE4C,OAAmB,KAAgB;EAChE,IAAIA,OAAO,CAACtE,KAAK,KAAKoB,OAAO,EAAE;IAC7B,MAAM,IAAIE,UAAU,CAAC,kBAAkB,CAAC;EAC1C;EAEA,MAAM6C,GAAG,GAAGI,IAAI,CAACJ,GAAG,CAACzC,IAAI,CAACvB,KAAK,EAAEmE,OAAO,CAACnE,KAAK,CAAC;EAC/C,OAAOY,IAAI,CAACZ,KAAK,CAACuB,IAAI,EAAEyC,GAAG,CAAC,CAACnE,KAAK,GAAGG,KAAK,CAACmE,OAAO,EAAEH,GAAG,CAAC,CAACnE,KAAK,EAAEmE,GAAG,CAAC;AACtE,CAAC,CAAC;AAEF;;;;AAIA,OAAO,MAAMM,WAAW,gBAAwC5F,WAAW,CAACkC,IAAI,CAAC,CAACW,IAAI,EAAErB,IAAI,KAAI;EAC9F,IAAIqB,IAAI,CAACvB,KAAK,GAAGE,IAAI,CAACF,KAAK,EAAE;IAC3B,OAAOA,KAAK,CAACE,IAAI,EAAEqB,IAAI,CAACvB,KAAK,CAAC,CAACH,KAAK,KAAK0B,IAAI,CAAC1B,KAAK;EACrD;EAEA,IAAI0B,IAAI,CAACvB,KAAK,GAAGE,IAAI,CAACF,KAAK,EAAE;IAC3B,OAAOA,KAAK,CAACuB,IAAI,EAAErB,IAAI,CAACF,KAAK,CAAC,CAACH,KAAK,KAAKK,IAAI,CAACL,KAAK;EACrD;EAEA,OAAO0B,IAAI,CAAC1B,KAAK,KAAKK,IAAI,CAACL,KAAK;AAClC,CAAC,CAAC;AAEF;;;;;;AAMA,OAAO,MAAMO,MAAM,gBAefzB,IAAI,CAAC,CAAC,EAAE,CAAC4C,IAAgB,EAAErB,IAAgB,KAAcoE,WAAW,CAAC/C,IAAI,EAAErB,IAAI,CAAC,CAAC;AAErF;;;;;;;;AAQA,OAAO,MAAMqE,UAAU,GAAIzB,CAAS,IAAiBlC,IAAI,CAACkC,CAAC,EAAE,CAAC,CAAC;AAE/D;;;;;;;;;;;;;;;;;;;;;AAqBA,OAAO,MAAM0B,gBAAgB,GAAI1B,CAAS,IACxC/D,MAAM,CAAC0F,cAAc,CAACC,cAAc,CAAC5B,CAAC,CAAC,EAAE,MAAM,IAAI3B,UAAU,CAAC,8BAA8B2B,CAAC,EAAE,CAAC,CAAC;AAEnG;;;;;;;;;;;;;;AAcA,OAAO,MAAM6B,UAAU,GAA8BH,gBAAgB;AAErE;;;;;;;;;;;;;;;;;;;;AAoBA,OAAO,MAAME,cAAc,GAAI5B,CAAS,IAA+B;EACrE;EACA,IAAI,CAACE,MAAM,CAAC4B,QAAQ,CAAC9B,CAAC,CAAC,EAAE;IACvB,OAAO/D,MAAM,CAACmE,IAAI,EAAE;EACtB;EAEA,MAAM2B,MAAM,GAAG,GAAG/B,CAAC,EAAE;EACrB,IAAI+B,MAAM,CAACC,QAAQ,CAAC,GAAG,CAAC,EAAE;IACxB,OAAOC,UAAU,CAACF,MAAM,CAAC;EAC3B;EAEA,MAAM,CAACG,IAAI,EAAEtD,KAAK,GAAG,EAAE,CAAC,GAAGmD,MAAM,CAACI,KAAK,CAAC,GAAG,CAAC;EAC5C,OAAOlG,MAAM,CAACoE,IAAI,CAACvC,IAAI,CAACQ,MAAM,CAAC,GAAG4D,IAAI,GAAGtD,KAAK,EAAE,CAAC,EAAEA,KAAK,CAACE,MAAM,CAAC,CAAC;AACnE,CAAC;AAED;;;;;;;;;;;;;;;;;AAiBA,OAAO,MAAMmD,UAAU,GAAIG,CAAS,IAA+B;EACjE,IAAIA,CAAC,KAAK,EAAE,EAAE;IACZ,OAAOnG,MAAM,CAACoE,IAAI,CAAC7B,IAAI,CAAC;EAC1B;EAEA,IAAI6D,IAAY;EAChB,IAAIC,GAAW;EACf,MAAMC,SAAS,GAAGH,CAAC,CAACI,MAAM,CAAC,MAAM,CAAC;EAClC,IAAID,SAAS,KAAK,CAAC,CAAC,EAAE;IACpB,MAAM3D,KAAK,GAAGwD,CAAC,CAACK,KAAK,CAACF,SAAS,GAAG,CAAC,CAAC;IACpCF,IAAI,GAAGD,CAAC,CAACK,KAAK,CAAC,CAAC,EAAEF,SAAS,CAAC;IAC5BD,GAAG,GAAGpC,MAAM,CAACtB,KAAK,CAAC;IACnB,IAAIyD,IAAI,KAAK,EAAE,IAAI,CAACnC,MAAM,CAACwC,aAAa,CAACJ,GAAG,CAAC,IAAI,CAAChG,gBAAgB,CAACqG,IAAI,CAAC/D,KAAK,CAAC,EAAE;MAC9E,OAAO3C,MAAM,CAACmE,IAAI,EAAE;IACtB;EACF,CAAC,MAAM;IACLiC,IAAI,GAAGD,CAAC;IACRE,GAAG,GAAG,CAAC;EACT;EAEA,IAAI3D,MAAc;EAClB,IAAIiE,MAAc;EAClB,MAAMC,GAAG,GAAGR,IAAI,CAACG,MAAM,CAAC,IAAI,CAAC;EAC7B,IAAIK,GAAG,KAAK,CAAC,CAAC,EAAE;IACd,MAAMX,IAAI,GAAGG,IAAI,CAACI,KAAK,CAAC,CAAC,EAAEI,GAAG,CAAC;IAC/B,MAAMjE,KAAK,GAAGyD,IAAI,CAACI,KAAK,CAACI,GAAG,GAAG,CAAC,CAAC;IACjClE,MAAM,GAAG,GAAGuD,IAAI,GAAGtD,KAAK,EAAE;IAC1BgE,MAAM,GAAGhE,KAAK,CAACE,MAAM;EACvB,CAAC,MAAM;IACLH,MAAM,GAAG0D,IAAI;IACbO,MAAM,GAAG,CAAC;EACZ;EAEA,IAAI,CAACtG,gBAAgB,CAACqG,IAAI,CAAChE,MAAM,CAAC,EAAE;IAClC,OAAO1C,MAAM,CAACmE,IAAI,EAAE;EACtB;EAEA,MAAMlD,KAAK,GAAG0F,MAAM,GAAGN,GAAG;EAC1B,IAAI,CAACpC,MAAM,CAACwC,aAAa,CAACxF,KAAK,CAAC,EAAE;IAChC,OAAOjB,MAAM,CAACmE,IAAI,EAAE;EACtB;EAEA,OAAOnE,MAAM,CAACoE,IAAI,CAACvC,IAAI,CAACQ,MAAM,CAACK,MAAM,CAAC,EAAEzB,KAAK,CAAC,CAAC;AACjD,CAAC;AAED;;;;;;;;;;;;;;;;;AAiBA,OAAO,MAAM4F,gBAAgB,GAAIV,CAAS,IACxCnG,MAAM,CAAC0F,cAAc,CAACM,UAAU,CAACG,CAAC,CAAC,EAAE,MAAM,IAAIW,KAAK,CAAC,0BAA0B,CAAC,CAAC;AAEnF;;;;;;;;;;;;;;;;;;;;AAoBA,OAAO,MAAMvF,MAAM,GAAIwC,CAAa,IAAY;EAC9C,MAAMpD,UAAU,GAAGC,SAAS,CAACmD,CAAC,CAAC;EAC/B,IAAIsB,IAAI,CAACH,GAAG,CAACvE,UAAU,CAACM,KAAK,CAAC,IAAI,EAAE,EAAE;IACpC,OAAO8F,aAAa,CAACpG,UAAU,CAAC;EAClC;EAEA,MAAMqG,QAAQ,GAAGrG,UAAU,CAACG,KAAK,GAAGoB,OAAO;EAC3C,MAAM+E,QAAQ,GAAGD,QAAQ,GAAG,GAAGrG,UAAU,CAACG,KAAK,EAAE,CAACgC,SAAS,CAAC,CAAC,CAAC,GAAG,GAAGnC,UAAU,CAACG,KAAK,EAAE;EAEtF,IAAIoG,MAAc;EAClB,IAAIC,KAAa;EAEjB,IAAIxG,UAAU,CAACM,KAAK,IAAIgG,QAAQ,CAACpE,MAAM,EAAE;IACvCqE,MAAM,GAAG,GAAG;IACZC,KAAK,GAAG,GAAG,CAACC,MAAM,CAACzG,UAAU,CAACM,KAAK,GAAGgG,QAAQ,CAACpE,MAAM,CAAC,GAAGoE,QAAQ;EACnE,CAAC,MAAM;IACL,MAAMI,QAAQ,GAAGJ,QAAQ,CAACpE,MAAM,GAAGlC,UAAU,CAACM,KAAK;IACnD,IAAIoG,QAAQ,GAAGJ,QAAQ,CAACpE,MAAM,EAAE;MAC9B,MAAMyE,KAAK,GAAGD,QAAQ,GAAGJ,QAAQ,CAACpE,MAAM;MACxCqE,MAAM,GAAG,GAAGD,QAAQ,GAAG,GAAG,CAACG,MAAM,CAACE,KAAK,CAAC,EAAE;MAC1CH,KAAK,GAAG,EAAE;IACZ,CAAC,MAAM;MACLA,KAAK,GAAGF,QAAQ,CAACT,KAAK,CAACa,QAAQ,CAAC;MAChCH,MAAM,GAAGD,QAAQ,CAACT,KAAK,CAAC,CAAC,EAAEa,QAAQ,CAAC;IACtC;EACF;EAEA,MAAME,QAAQ,GAAGJ,KAAK,KAAK,EAAE,GAAGD,MAAM,GAAG,GAAGA,MAAM,IAAIC,KAAK,EAAE;EAC7D,OAAOH,QAAQ,GAAG,IAAIO,QAAQ,EAAE,GAAGA,QAAQ;AAC7C,CAAC;AAED;;;;;;;;;;;;;AAaA,OAAO,MAAMR,aAAa,GAAIhD,CAAa,IAAY;EACrD,IAAIyD,MAAM,CAACzD,CAAC,CAAC,EAAE;IACb,OAAO,MAAM;EACf;EAEA,MAAMpD,UAAU,GAAGC,SAAS,CAACmD,CAAC,CAAC;EAC/B,MAAMrB,MAAM,GAAG,GAAGwC,GAAG,CAACvE,UAAU,CAAC,CAACG,KAAK,EAAE;EACzC,MAAM2G,IAAI,GAAG/E,MAAM,CAAC8D,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;EAC/B,MAAMkB,IAAI,GAAGhF,MAAM,CAAC8D,KAAK,CAAC,CAAC,CAAC;EAE5B,IAAImB,MAAM,GAAG,GAAGC,UAAU,CAACjH,UAAU,CAAC,GAAG,GAAG,GAAG,EAAE,GAAG8G,IAAI,EAAE;EAC1D,IAAIC,IAAI,KAAK,EAAE,EAAE;IACfC,MAAM,IAAI,IAAID,IAAI,EAAE;EACtB;EAEA,MAAMrB,GAAG,GAAGqB,IAAI,CAAC7E,MAAM,GAAGlC,UAAU,CAACM,KAAK;EAC1C,OAAO,GAAG0G,MAAM,IAAItB,GAAG,IAAI,CAAC,GAAG,GAAG,GAAG,EAAE,GAAGA,GAAG,EAAE;AACjD,CAAC;AAED;;;;;;;;;;;;;;;;;AAiBA,OAAO,MAAMwB,cAAc,GAAI9D,CAAa,IAAaE,MAAM,CAAC1C,MAAM,CAACwC,CAAC,CAAC,CAAC;AAE1E;;;;;;;;;;;;;;;;;AAiBA,OAAO,MAAM+D,SAAS,GAAI/D,CAAa,IAAcnD,SAAS,CAACmD,CAAC,CAAC,CAAC9C,KAAK,IAAI,CAAC;AAE5E;;;;;;;;;;;;;;;;AAgBA,OAAO,MAAMuG,MAAM,GAAIzD,CAAa,IAAcA,CAAC,CAACjD,KAAK,KAAKoB,OAAO;AAErE;;;;;;;;;;;;;;;;;AAiBA,OAAO,MAAM0F,UAAU,GAAI7D,CAAa,IAAcA,CAAC,CAACjD,KAAK,GAAGoB,OAAO;AAEvE;;;;;;;;;;;;;;;;;AAiBA,OAAO,MAAM6F,UAAU,GAAIhE,CAAa,IAAcA,CAAC,CAACjD,KAAK,GAAGoB,OAAO","ignoreList":[]}