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
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.unsafeToNumber = exports.unsafeRemainder = exports.unsafeMakeNormalized = exports.unsafeFromString = exports.unsafeDivide = exports.sum = exports.subtract = exports.sign = exports.scale = exports.roundTerminal = exports.remainder = exports.normalize = exports.negate = exports.multiply = exports.min = exports.max = exports.make = exports.lessThanOrEqualTo = exports.lessThan = exports.isZero = exports.isPositive = exports.isNegative = exports.isInteger = exports.isBigDecimal = exports.greaterThanOrEqualTo = exports.greaterThan = exports.fromString = exports.fromNumber = exports.fromBigInt = exports.format = exports.equals = exports.divide = exports.clamp = exports.between = exports.abs = exports.TypeId = exports.Order = exports.Equivalence = void 0;
6
+ exports.unsafeToNumber = exports.unsafeRemainder = exports.unsafeMakeNormalized = exports.unsafeFromString = exports.unsafeFromNumber = exports.unsafeDivide = exports.toExponential = exports.sum = exports.subtract = exports.sign = exports.scale = exports.safeFromNumber = exports.roundTerminal = exports.remainder = exports.normalize = exports.negate = exports.multiply = exports.min = exports.max = exports.make = exports.lessThanOrEqualTo = exports.lessThan = exports.isZero = exports.isPositive = exports.isNegative = exports.isInteger = exports.isBigDecimal = exports.greaterThanOrEqualTo = exports.greaterThan = exports.fromString = exports.fromNumber = exports.fromBigInt = exports.format = exports.equals = exports.divide = exports.clamp = exports.between = exports.abs = exports.TypeId = exports.Order = exports.Equivalence = void 0;
7
7
  var Equal = _interopRequireWildcard(require("./Equal.js"));
8
8
  var equivalence = _interopRequireWildcard(require("./Equivalence.js"));
9
9
  var _Function = require("./Function.js");
@@ -32,6 +32,7 @@ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e;
32
32
  */
33
33
 
34
34
  const DEFAULT_PRECISION = 100;
35
+ const FINITE_INT_REGEX = /^[+-]?\d+$/;
35
36
  /**
36
37
  * @since 2.0.0
37
38
  * @category symbols
@@ -113,10 +114,12 @@ const zero = /*#__PURE__*/unsafeMakeNormalized(bigint0, 0);
113
114
  * @param self - The `BigDecimal` to normalize.
114
115
  *
115
116
  * @example
117
+ * ```ts
116
118
  * import { normalize, make, unsafeFromString } from "effect/BigDecimal"
117
119
  *
118
120
  * assert.deepStrictEqual(normalize(unsafeFromString("123.00000")), normalize(make(123n, 0)))
119
121
  * assert.deepStrictEqual(normalize(unsafeFromString("12300000")), normalize(make(123n, -5)))
122
+ * ```
120
123
  *
121
124
  * @since 2.0.0
122
125
  * @category scaling
@@ -174,9 +177,11 @@ const scale = exports.scale = /*#__PURE__*/(0, _Function.dual)(2, (self, scale)
174
177
  * @param that - The second operand.
175
178
  *
176
179
  * @example
180
+ * ```ts
177
181
  * import { sum, unsafeFromString } from "effect/BigDecimal"
178
182
  *
179
183
  * assert.deepStrictEqual(sum(unsafeFromString("2"), unsafeFromString("3")), unsafeFromString("5"))
184
+ * ```
180
185
  *
181
186
  * @since 2.0.0
182
187
  * @category math
@@ -203,9 +208,11 @@ const sum = exports.sum = /*#__PURE__*/(0, _Function.dual)(2, (self, that) => {
203
208
  * @param that - The second operand.
204
209
  *
205
210
  * @example
211
+ * ```ts
206
212
  * import { multiply, unsafeFromString } from "effect/BigDecimal"
207
213
  *
208
214
  * assert.deepStrictEqual(multiply(unsafeFromString("2"), unsafeFromString("3")), unsafeFromString("6"))
215
+ * ```
209
216
  *
210
217
  * @since 2.0.0
211
218
  * @category math
@@ -223,9 +230,11 @@ const multiply = exports.multiply = /*#__PURE__*/(0, _Function.dual)(2, (self, t
223
230
  * @param that - The second operand.
224
231
  *
225
232
  * @example
233
+ * ```ts
226
234
  * import { subtract, unsafeFromString } from "effect/BigDecimal"
227
235
  *
228
236
  * assert.deepStrictEqual(subtract(unsafeFromString("2"), unsafeFromString("3")), unsafeFromString("-1"))
237
+ * ```
229
238
  *
230
239
  * @since 2.0.0
231
240
  * @category math
@@ -309,11 +318,13 @@ const roundTerminal = n => {
309
318
  * @param that - The divisor operand.
310
319
  *
311
320
  * @example
321
+ * ```ts
312
322
  * import { BigDecimal, Option } from "effect"
313
323
  *
314
324
  * assert.deepStrictEqual(BigDecimal.divide(BigDecimal.unsafeFromString("6"), BigDecimal.unsafeFromString("3")), Option.some(BigDecimal.unsafeFromString("2")))
315
325
  * assert.deepStrictEqual(BigDecimal.divide(BigDecimal.unsafeFromString("6"), BigDecimal.unsafeFromString("4")), Option.some(BigDecimal.unsafeFromString("1.5")))
316
326
  * assert.deepStrictEqual(BigDecimal.divide(BigDecimal.unsafeFromString("6"), BigDecimal.unsafeFromString("0")), Option.none())
327
+ * ```
317
328
  *
318
329
  * @since 2.0.0
319
330
  * @category math
@@ -344,10 +355,12 @@ const divide = exports.divide = /*#__PURE__*/(0, _Function.dual)(2, (self, that)
344
355
  * @param that - The divisor operand.as
345
356
  *
346
357
  * @example
358
+ * ```ts
347
359
  * import { unsafeDivide, unsafeFromString } from "effect/BigDecimal"
348
360
  *
349
361
  * assert.deepStrictEqual(unsafeDivide(unsafeFromString("6"), unsafeFromString("3")), unsafeFromString("2"))
350
362
  * assert.deepStrictEqual(unsafeDivide(unsafeFromString("6"), unsafeFromString("4")), unsafeFromString("1.5"))
363
+ * ```
351
364
  *
352
365
  * @since 2.0.0
353
366
  * @category math
@@ -389,11 +402,13 @@ const Order = exports.Order = /*#__PURE__*/order.make((self, that) => {
389
402
  * @param that - The second argument.
390
403
  *
391
404
  * @example
405
+ * ```ts
392
406
  * import { lessThan, unsafeFromString } from "effect/BigDecimal"
393
407
  *
394
408
  * assert.deepStrictEqual(lessThan(unsafeFromString("2"), unsafeFromString("3")), true)
395
409
  * assert.deepStrictEqual(lessThan(unsafeFromString("3"), unsafeFromString("3")), false)
396
410
  * assert.deepStrictEqual(lessThan(unsafeFromString("4"), unsafeFromString("3")), false)
411
+ * ```
397
412
  *
398
413
  * @since 2.0.0
399
414
  * @category predicates
@@ -406,11 +421,13 @@ const lessThan = exports.lessThan = /*#__PURE__*/order.lessThan(Order);
406
421
  * @param that - The second `BigDecimal` to compare with.
407
422
  *
408
423
  * @example
424
+ * ```ts
409
425
  * import { lessThanOrEqualTo, unsafeFromString } from "effect/BigDecimal"
410
426
  *
411
427
  * assert.deepStrictEqual(lessThanOrEqualTo(unsafeFromString("2"), unsafeFromString("3")), true)
412
428
  * assert.deepStrictEqual(lessThanOrEqualTo(unsafeFromString("3"), unsafeFromString("3")), true)
413
429
  * assert.deepStrictEqual(lessThanOrEqualTo(unsafeFromString("4"), unsafeFromString("3")), false)
430
+ * ```
414
431
  *
415
432
  * @since 2.0.0
416
433
  * @category predicates
@@ -423,11 +440,13 @@ const lessThanOrEqualTo = exports.lessThanOrEqualTo = /*#__PURE__*/order.lessTha
423
440
  * @param that - The second argument.
424
441
  *
425
442
  * @example
443
+ * ```ts
426
444
  * import { greaterThan, unsafeFromString } from "effect/BigDecimal"
427
445
  *
428
446
  * assert.deepStrictEqual(greaterThan(unsafeFromString("2"), unsafeFromString("3")), false)
429
447
  * assert.deepStrictEqual(greaterThan(unsafeFromString("3"), unsafeFromString("3")), false)
430
448
  * assert.deepStrictEqual(greaterThan(unsafeFromString("4"), unsafeFromString("3")), true)
449
+ * ```
431
450
  *
432
451
  * @since 2.0.0
433
452
  * @category predicates
@@ -440,11 +459,13 @@ const greaterThan = exports.greaterThan = /*#__PURE__*/order.greaterThan(Order);
440
459
  * @param that - The second `BigDecimal` to compare with.
441
460
  *
442
461
  * @example
462
+ * ```ts
443
463
  * import { greaterThanOrEqualTo, unsafeFromString } from "effect/BigDecimal"
444
464
  *
445
465
  * assert.deepStrictEqual(greaterThanOrEqualTo(unsafeFromString("2"), unsafeFromString("3")), false)
446
466
  * assert.deepStrictEqual(greaterThanOrEqualTo(unsafeFromString("3"), unsafeFromString("3")), true)
447
467
  * assert.deepStrictEqual(greaterThanOrEqualTo(unsafeFromString("4"), unsafeFromString("3")), true)
468
+ * ```
448
469
  *
449
470
  * @since 2.0.0
450
471
  * @category predicates
@@ -458,6 +479,7 @@ const greaterThanOrEqualTo = exports.greaterThanOrEqualTo = /*#__PURE__*/order.g
458
479
  * @param maximum - The `maximum` value to check.
459
480
  *
460
481
  * @example
482
+ * ```ts
461
483
  * import { BigDecimal } from "effect"
462
484
  *
463
485
  * const between = BigDecimal.between({
@@ -468,6 +490,7 @@ const greaterThanOrEqualTo = exports.greaterThanOrEqualTo = /*#__PURE__*/order.g
468
490
  * assert.deepStrictEqual(between(BigDecimal.unsafeFromString("3")), true)
469
491
  * assert.deepStrictEqual(between(BigDecimal.unsafeFromString("0")), false)
470
492
  * assert.deepStrictEqual(between(BigDecimal.unsafeFromString("6")), false)
493
+ * ```
471
494
  *
472
495
  * @since 2.0.0
473
496
  * @category predicates
@@ -485,6 +508,7 @@ const between = exports.between = /*#__PURE__*/order.between(Order);
485
508
  * @param maximum - The upper end of the range.
486
509
  *
487
510
  * @example
511
+ * ```ts
488
512
  * import { BigDecimal } from "effect"
489
513
  *
490
514
  * const clamp = BigDecimal.clamp({
@@ -495,6 +519,7 @@ const between = exports.between = /*#__PURE__*/order.between(Order);
495
519
  * assert.deepStrictEqual(clamp(BigDecimal.unsafeFromString("3")), BigDecimal.unsafeFromString("3"))
496
520
  * assert.deepStrictEqual(clamp(BigDecimal.unsafeFromString("0")), BigDecimal.unsafeFromString("1"))
497
521
  * assert.deepStrictEqual(clamp(BigDecimal.unsafeFromString("6")), BigDecimal.unsafeFromString("5"))
522
+ * ```
498
523
  *
499
524
  * @since 2.0.0
500
525
  * @category math
@@ -507,9 +532,11 @@ const clamp = exports.clamp = /*#__PURE__*/order.clamp(Order);
507
532
  * @param that - The second `BigDecimal`.
508
533
  *
509
534
  * @example
535
+ * ```ts
510
536
  * import { min, unsafeFromString } from "effect/BigDecimal"
511
537
  *
512
538
  * assert.deepStrictEqual(min(unsafeFromString("2"), unsafeFromString("3")), unsafeFromString("2"))
539
+ * ```
513
540
  *
514
541
  * @since 2.0.0
515
542
  * @category math
@@ -522,9 +549,11 @@ const min = exports.min = /*#__PURE__*/order.min(Order);
522
549
  * @param that - The second `BigDecimal`.
523
550
  *
524
551
  * @example
552
+ * ```ts
525
553
  * import { max, unsafeFromString } from "effect/BigDecimal"
526
554
  *
527
555
  * assert.deepStrictEqual(max(unsafeFromString("2"), unsafeFromString("3")), unsafeFromString("3"))
556
+ * ```
528
557
  *
529
558
  * @since 2.0.0
530
559
  * @category math
@@ -536,11 +565,13 @@ const max = exports.max = /*#__PURE__*/order.max(Order);
536
565
  * @param n - The `BigDecimal` to determine the sign of.
537
566
  *
538
567
  * @example
568
+ * ```ts
539
569
  * import { sign, unsafeFromString } from "effect/BigDecimal"
540
570
  *
541
571
  * assert.deepStrictEqual(sign(unsafeFromString("-5")), -1)
542
572
  * assert.deepStrictEqual(sign(unsafeFromString("0")), 0)
543
573
  * assert.deepStrictEqual(sign(unsafeFromString("5")), 1)
574
+ * ```
544
575
  *
545
576
  * @since 2.0.0
546
577
  * @category math
@@ -552,11 +583,13 @@ const sign = n => n.value === bigint0 ? 0 : n.value < bigint0 ? -1 : 1;
552
583
  * @param n - The `BigDecimal` to determine the absolute value of.
553
584
  *
554
585
  * @example
586
+ * ```ts
555
587
  * import { abs, unsafeFromString } from "effect/BigDecimal"
556
588
  *
557
589
  * assert.deepStrictEqual(abs(unsafeFromString("-5")), unsafeFromString("5"))
558
590
  * assert.deepStrictEqual(abs(unsafeFromString("0")), unsafeFromString("0"))
559
591
  * assert.deepStrictEqual(abs(unsafeFromString("5")), unsafeFromString("5"))
592
+ * ```
560
593
  *
561
594
  * @since 2.0.0
562
595
  * @category math
@@ -569,10 +602,12 @@ const abs = n => n.value < bigint0 ? make(-n.value, n.scale) : n;
569
602
  * @param n - The `BigDecimal` to negate.
570
603
  *
571
604
  * @example
605
+ * ```ts
572
606
  * import { negate, unsafeFromString } from "effect/BigDecimal"
573
607
  *
574
608
  * assert.deepStrictEqual(negate(unsafeFromString("3")), unsafeFromString("-3"))
575
609
  * assert.deepStrictEqual(negate(unsafeFromString("-6")), unsafeFromString("6"))
610
+ * ```
576
611
  *
577
612
  * @since 2.0.0
578
613
  * @category math
@@ -588,11 +623,13 @@ const negate = n => make(-n.value, n.scale);
588
623
  * @param divisor - The divisor.
589
624
  *
590
625
  * @example
626
+ * ```ts
591
627
  * import { BigDecimal, Option } from "effect"
592
628
  *
593
629
  * assert.deepStrictEqual(BigDecimal.remainder(BigDecimal.unsafeFromString("2"), BigDecimal.unsafeFromString("2")), Option.some(BigDecimal.unsafeFromString("0")))
594
630
  * assert.deepStrictEqual(BigDecimal.remainder(BigDecimal.unsafeFromString("3"), BigDecimal.unsafeFromString("2")), Option.some(BigDecimal.unsafeFromString("1")))
595
631
  * assert.deepStrictEqual(BigDecimal.remainder(BigDecimal.unsafeFromString("-4"), BigDecimal.unsafeFromString("2")), Option.some(BigDecimal.unsafeFromString("0")))
632
+ * ```
596
633
  *
597
634
  * @since 2.0.0
598
635
  * @category math
@@ -614,11 +651,13 @@ const remainder = exports.remainder = /*#__PURE__*/(0, _Function.dual)(2, (self,
614
651
  * @param divisor - The divisor.
615
652
  *
616
653
  * @example
654
+ * ```ts
617
655
  * import { unsafeRemainder, unsafeFromString } from "effect/BigDecimal"
618
656
  *
619
657
  * assert.deepStrictEqual(unsafeRemainder(unsafeFromString("2"), unsafeFromString("2")), unsafeFromString("0"))
620
658
  * assert.deepStrictEqual(unsafeRemainder(unsafeFromString("3"), unsafeFromString("2")), unsafeFromString("1"))
621
659
  * assert.deepStrictEqual(unsafeRemainder(unsafeFromString("-4"), unsafeFromString("2")), unsafeFromString("0"))
660
+ * ```
622
661
  *
623
662
  * @since 2.0.0
624
663
  * @category math
@@ -665,21 +704,70 @@ const fromBigInt = n => make(n, 0);
665
704
  * It is not recommended to convert a floating point number to a decimal directly,
666
705
  * as the floating point representation may be unexpected.
667
706
  *
707
+ * Throws a `RangeError` if the number is not finite (`NaN`, `+Infinity` or `-Infinity`).
708
+ *
668
709
  * @param value - The `number` value to create a `BigDecimal` from.
669
710
  *
670
711
  * @example
712
+ * ```ts
671
713
  * import { fromNumber, make } from "effect/BigDecimal"
672
714
  *
673
715
  * assert.deepStrictEqual(fromNumber(123), make(123n, 0))
674
716
  * assert.deepStrictEqual(fromNumber(123.456), make(123456n, 3))
717
+ * ```
675
718
  *
676
- * @since 2.0.0
719
+ * @since 3.11.0
677
720
  * @category constructors
678
721
  */
679
722
  exports.fromBigInt = fromBigInt;
680
- const fromNumber = n => {
681
- const [lead, trail = ""] = `${n}`.split(".");
682
- return make(BigInt(`${lead}${trail}`), trail.length);
723
+ const unsafeFromNumber = n => Option.getOrThrowWith(safeFromNumber(n), () => new RangeError(`Number must be finite, got ${n}`));
724
+ /**
725
+ * Creates a `BigDecimal` from a `number` value.
726
+ *
727
+ * It is not recommended to convert a floating point number to a decimal directly,
728
+ * as the floating point representation may be unexpected.
729
+ *
730
+ * Throws a `RangeError` if the number is not finite (`NaN`, `+Infinity` or `-Infinity`).
731
+ *
732
+ * @param value - The `number` value to create a `BigDecimal` from.
733
+ *
734
+ * @since 2.0.0
735
+ * @category constructors
736
+ * @deprecated Use {@link unsafeFromNumber} instead.
737
+ */
738
+ exports.unsafeFromNumber = unsafeFromNumber;
739
+ const fromNumber = exports.fromNumber = unsafeFromNumber;
740
+ /**
741
+ * Creates a `BigDecimal` from a `number` value.
742
+ *
743
+ * It is not recommended to convert a floating point number to a decimal directly,
744
+ * as the floating point representation may be unexpected.
745
+ *
746
+ * Returns `None` if the number is not finite (`NaN`, `+Infinity` or `-Infinity`).
747
+ *
748
+ * @param n - The `number` value to create a `BigDecimal` from.
749
+ *
750
+ * @example
751
+ * import { BigDecimal, Option } from "effect"
752
+ *
753
+ * assert.deepStrictEqual(BigDecimal.safeFromNumber(123), Option.some(BigDecimal.make(123n, 0)))
754
+ * assert.deepStrictEqual(BigDecimal.safeFromNumber(123.456), Option.some(BigDecimal.make(123456n, 3)))
755
+ * assert.deepStrictEqual(BigDecimal.safeFromNumber(Infinity), Option.none())
756
+ *
757
+ * @since 3.11.0
758
+ * @category constructors
759
+ */
760
+ const safeFromNumber = n => {
761
+ // TODO: Rename this to `fromNumber` after removing the current, unsafe implementation of `fromNumber`.
762
+ if (!Number.isFinite(n)) {
763
+ return Option.none();
764
+ }
765
+ const string = `${n}`;
766
+ if (string.includes("e")) {
767
+ return fromString(string);
768
+ }
769
+ const [lead, trail = ""] = string.split(".");
770
+ return Option.some(make(BigInt(`${lead}${trail}`), trail.length));
683
771
  };
684
772
  /**
685
773
  * Parses a numerical `string` into a `BigDecimal`.
@@ -687,34 +775,53 @@ const fromNumber = n => {
687
775
  * @param s - The `string` to parse.
688
776
  *
689
777
  * @example
778
+ * ```ts
690
779
  * import { BigDecimal, Option } from "effect"
691
780
  *
692
781
  * assert.deepStrictEqual(BigDecimal.fromString("123"), Option.some(BigDecimal.make(123n, 0)))
693
782
  * assert.deepStrictEqual(BigDecimal.fromString("123.456"), Option.some(BigDecimal.make(123456n, 3)))
694
783
  * assert.deepStrictEqual(BigDecimal.fromString("123.abc"), Option.none())
784
+ * ```
695
785
  *
696
786
  * @since 2.0.0
697
787
  * @category constructors
698
788
  */
699
- exports.fromNumber = fromNumber;
789
+ exports.safeFromNumber = safeFromNumber;
700
790
  const fromString = s => {
791
+ if (s === "") {
792
+ return Option.some(zero);
793
+ }
794
+ let base;
795
+ let exp;
796
+ const seperator = s.search(/[eE]/);
797
+ if (seperator !== -1) {
798
+ const trail = s.slice(seperator + 1);
799
+ base = s.slice(0, seperator);
800
+ exp = Number(trail);
801
+ if (base === "" || !Number.isSafeInteger(exp) || !FINITE_INT_REGEX.test(trail)) {
802
+ return Option.none();
803
+ }
804
+ } else {
805
+ base = s;
806
+ exp = 0;
807
+ }
701
808
  let digits;
702
- let scale;
703
- const dot = s.search(/\./);
809
+ let offset;
810
+ const dot = base.search(/\./);
704
811
  if (dot !== -1) {
705
- const lead = s.slice(0, dot);
706
- const trail = s.slice(dot + 1);
812
+ const lead = base.slice(0, dot);
813
+ const trail = base.slice(dot + 1);
707
814
  digits = `${lead}${trail}`;
708
- scale = trail.length;
815
+ offset = trail.length;
709
816
  } else {
710
- digits = s;
711
- scale = 0;
817
+ digits = base;
818
+ offset = 0;
712
819
  }
713
- if (digits === "") {
714
- // TODO: This mimics the BigInt constructor behavior. Should this be `Option.none()`?
715
- return Option.some(zero);
820
+ if (!FINITE_INT_REGEX.test(digits)) {
821
+ return Option.none();
716
822
  }
717
- if (!/^(?:\+|-)?\d+$/.test(digits)) {
823
+ const scale = offset - exp;
824
+ if (!Number.isSafeInteger(scale)) {
718
825
  return Option.none();
719
826
  }
720
827
  return Option.some(make(BigInt(digits), scale));
@@ -725,11 +832,13 @@ const fromString = s => {
725
832
  * @param s - The `string` to parse.
726
833
  *
727
834
  * @example
835
+ * ```ts
728
836
  * import { unsafeFromString, make } from "effect/BigDecimal"
729
837
  *
730
838
  * assert.deepStrictEqual(unsafeFromString("123"), make(123n, 0))
731
839
  * assert.deepStrictEqual(unsafeFromString("123.456"), make(123456n, 3))
732
840
  * assert.throws(() => unsafeFromString("123.abc"))
841
+ * ```
733
842
  *
734
843
  * @since 2.0.0
735
844
  * @category constructors
@@ -739,29 +848,38 @@ const unsafeFromString = s => Option.getOrThrowWith(fromString(s), () => new Err
739
848
  /**
740
849
  * Formats a given `BigDecimal` as a `string`.
741
850
  *
742
- * @param normalized - The `BigDecimal` to format.
851
+ * If the scale of the `BigDecimal` is greater than or equal to 16, the `BigDecimal` will
852
+ * be formatted in scientific notation.
853
+ *
854
+ * @param n - The `BigDecimal` to format.
743
855
  *
744
856
  * @example
857
+ * ```ts
745
858
  * import { format, unsafeFromString } from "effect/BigDecimal"
746
859
  *
747
860
  * assert.deepStrictEqual(format(unsafeFromString("-5")), "-5")
748
861
  * assert.deepStrictEqual(format(unsafeFromString("123.456")), "123.456")
749
862
  * assert.deepStrictEqual(format(unsafeFromString("-0.00000123")), "-0.00000123")
863
+ * ```
750
864
  *
751
865
  * @since 2.0.0
752
866
  * @category conversions
753
867
  */
754
868
  exports.unsafeFromString = unsafeFromString;
755
869
  const format = n => {
756
- const negative = n.value < bigint0;
757
- const absolute = negative ? `${n.value}`.substring(1) : `${n.value}`;
870
+ const normalized = normalize(n);
871
+ if (Math.abs(normalized.scale) >= 16) {
872
+ return toExponential(normalized);
873
+ }
874
+ const negative = normalized.value < bigint0;
875
+ const absolute = negative ? `${normalized.value}`.substring(1) : `${normalized.value}`;
758
876
  let before;
759
877
  let after;
760
- if (n.scale >= absolute.length) {
878
+ if (normalized.scale >= absolute.length) {
761
879
  before = "0";
762
- after = "0".repeat(n.scale - absolute.length) + absolute;
880
+ after = "0".repeat(normalized.scale - absolute.length) + absolute;
763
881
  } else {
764
- const location = absolute.length - n.scale;
882
+ const location = absolute.length - normalized.scale;
765
883
  if (location > absolute.length) {
766
884
  const zeros = location - absolute.length;
767
885
  before = `${absolute}${"0".repeat(zeros)}`;
@@ -774,6 +892,35 @@ const format = n => {
774
892
  const complete = after === "" ? before : `${before}.${after}`;
775
893
  return negative ? `-${complete}` : complete;
776
894
  };
895
+ /**
896
+ * Formats a given `BigDecimal` as a `string` in scientific notation.
897
+ *
898
+ * @param n - The `BigDecimal` to format.
899
+ *
900
+ * @example
901
+ * import { toExponential, make } from "effect/BigDecimal"
902
+ *
903
+ * assert.deepStrictEqual(toExponential(make(123456n, -5)), "1.23456e+10")
904
+ *
905
+ * @since 3.11.0
906
+ * @category conversions
907
+ */
908
+ exports.format = format;
909
+ const toExponential = n => {
910
+ if (isZero(n)) {
911
+ return "0e+0";
912
+ }
913
+ const normalized = normalize(n);
914
+ const digits = `${abs(normalized).value}`;
915
+ const head = digits.slice(0, 1);
916
+ const tail = digits.slice(1);
917
+ let output = `${isNegative(normalized) ? "-" : ""}${head}`;
918
+ if (tail !== "") {
919
+ output += `.${tail}`;
920
+ }
921
+ const exp = tail.length - normalized.scale;
922
+ return `${output}e${exp >= 0 ? "+" : ""}${exp}`;
923
+ };
777
924
  /**
778
925
  * Converts a `BigDecimal` to a `number`.
779
926
  *
@@ -782,14 +929,16 @@ const format = n => {
782
929
  * @param n - The `BigDecimal` to convert.
783
930
  *
784
931
  * @example
932
+ * ```ts
785
933
  * import { unsafeToNumber, unsafeFromString } from "effect/BigDecimal"
786
934
  *
787
935
  * assert.deepStrictEqual(unsafeToNumber(unsafeFromString("123.456")), 123.456)
936
+ * ```
788
937
  *
789
938
  * @since 2.0.0
790
939
  * @category conversions
791
940
  */
792
- exports.format = format;
941
+ exports.toExponential = toExponential;
793
942
  const unsafeToNumber = n => Number(format(n));
794
943
  /**
795
944
  * Checks if a given `BigDecimal` is an integer.
@@ -797,11 +946,13 @@ const unsafeToNumber = n => Number(format(n));
797
946
  * @param n - The `BigDecimal` to check.
798
947
  *
799
948
  * @example
949
+ * ```ts
800
950
  * import { isInteger, unsafeFromString } from "effect/BigDecimal"
801
951
  *
802
952
  * assert.deepStrictEqual(isInteger(unsafeFromString("0")), true)
803
953
  * assert.deepStrictEqual(isInteger(unsafeFromString("1")), true)
804
954
  * assert.deepStrictEqual(isInteger(unsafeFromString("1.1")), false)
955
+ * ```
805
956
  *
806
957
  * @since 2.0.0
807
958
  * @category predicates
@@ -814,10 +965,12 @@ const isInteger = n => normalize(n).scale <= 0;
814
965
  * @param n - The `BigDecimal` to check.
815
966
  *
816
967
  * @example
968
+ * ```ts
817
969
  * import { isZero, unsafeFromString } from "effect/BigDecimal"
818
970
  *
819
971
  * assert.deepStrictEqual(isZero(unsafeFromString("0")), true)
820
972
  * assert.deepStrictEqual(isZero(unsafeFromString("1")), false)
973
+ * ```
821
974
  *
822
975
  * @since 2.0.0
823
976
  * @category predicates
@@ -830,11 +983,13 @@ const isZero = n => n.value === bigint0;
830
983
  * @param n - The `BigDecimal` to check.
831
984
  *
832
985
  * @example
986
+ * ```ts
833
987
  * import { isNegative, unsafeFromString } from "effect/BigDecimal"
834
988
  *
835
989
  * assert.deepStrictEqual(isNegative(unsafeFromString("-1")), true)
836
990
  * assert.deepStrictEqual(isNegative(unsafeFromString("0")), false)
837
991
  * assert.deepStrictEqual(isNegative(unsafeFromString("1")), false)
992
+ * ```
838
993
  *
839
994
  * @since 2.0.0
840
995
  * @category predicates
@@ -847,11 +1002,13 @@ const isNegative = n => n.value < bigint0;
847
1002
  * @param n - The `BigDecimal` to check.
848
1003
  *
849
1004
  * @example
1005
+ * ```ts
850
1006
  * import { isPositive, unsafeFromString } from "effect/BigDecimal"
851
1007
  *
852
1008
  * assert.deepStrictEqual(isPositive(unsafeFromString("-1")), false)
853
1009
  * assert.deepStrictEqual(isPositive(unsafeFromString("0")), false)
854
1010
  * assert.deepStrictEqual(isPositive(unsafeFromString("1")), true)
1011
+ * ```
855
1012
  *
856
1013
  * @since 2.0.0
857
1014
  * @category predicates
@@ -1 +1 @@
1
- {"version":3,"file":"BigDecimal.js","names":["Equal","_interopRequireWildcard","require","equivalence","_Function","Hash","_Inspectable","Option","order","_Pipeable","_Predicate","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","DEFAULT_PRECISION","TypeId","exports","Symbol","for","BigDecimalProto","symbol","normalized","normalize","pipe","hash","value","combine","number","scale","cached","that","isBigDecimal","equals","toString","format","toJSON","_id","String","NodeInspectSymbol","pipeArguments","arguments","hasProperty","make","o","create","unsafeMakeNormalized","bigint0","bigint10","RangeError","BigInt","bigint1","zero","self","undefined","digits","trail","length","substring","dual","sum","multiply","subtract","divideWithPrecision","num","den","precision","numNegative","denNegative","negateResult","quotient","remainder","count","q","roundTerminal","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":";;;;;;AAgBA,IAAAA,KAAA,GAAAC,uBAAA,CAAAC,OAAA;AACA,IAAAC,WAAA,GAAAF,uBAAA,CAAAC,OAAA;AACA,IAAAE,SAAA,GAAAF,OAAA;AACA,IAAAG,IAAA,GAAAJ,uBAAA,CAAAC,OAAA;AACA,IAAAI,YAAA,GAAAJ,OAAA;AACA,IAAAK,MAAA,GAAAN,uBAAA,CAAAC,OAAA;AACA,IAAAM,KAAA,GAAAP,uBAAA,CAAAC,OAAA;AAEA,IAAAO,SAAA,GAAAP,OAAA;AACA,IAAAQ,UAAA,GAAAR,OAAA;AAA4C,SAAAS,yBAAAC,CAAA,6BAAAC,OAAA,mBAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAF,wBAAA,YAAAA,CAAAC,CAAA,WAAAA,CAAA,GAAAG,CAAA,GAAAD,CAAA,KAAAF,CAAA;AAAA,SAAAX,wBAAAW,CAAA,EAAAE,CAAA,SAAAA,CAAA,IAAAF,CAAA,IAAAA,CAAA,CAAAI,UAAA,SAAAJ,CAAA,eAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,WAAAK,OAAA,EAAAL,CAAA,QAAAG,CAAA,GAAAJ,wBAAA,CAAAG,CAAA,OAAAC,CAAA,IAAAA,CAAA,CAAAG,GAAA,CAAAN,CAAA,UAAAG,CAAA,CAAAI,GAAA,CAAAP,CAAA,OAAAQ,CAAA,KAAAC,SAAA,UAAAC,CAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,CAAA,IAAAd,CAAA,oBAAAc,CAAA,OAAAC,cAAA,CAAAC,IAAA,CAAAhB,CAAA,EAAAc,CAAA,SAAAG,CAAA,GAAAP,CAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAb,CAAA,EAAAc,CAAA,UAAAG,CAAA,KAAAA,CAAA,CAAAV,GAAA,IAAAU,CAAA,CAAAC,GAAA,IAAAP,MAAA,CAAAC,cAAA,CAAAJ,CAAA,EAAAM,CAAA,EAAAG,CAAA,IAAAT,CAAA,CAAAM,CAAA,IAAAd,CAAA,CAAAc,CAAA,YAAAN,CAAA,CAAAH,OAAA,GAAAL,CAAA,EAAAG,CAAA,IAAAA,CAAA,CAAAe,GAAA,CAAAlB,CAAA,EAAAQ,CAAA,GAAAA,CAAA;AAzB5C;;;;;;;;;;;;;;;;AA2BA,MAAMW,iBAAiB,GAAG,GAAG;AAE7B;;;;AAIO,MAAMC,MAAM,GAAAC,OAAA,CAAAD,MAAA,gBAAkBE,MAAM,CAACC,GAAG,CAAC,mBAAmB,CAAC;AAoBpE,MAAMC,eAAe,GAAuD;EAC1E,CAACJ,MAAM,GAAGA,MAAM;EAChB,CAAC3B,IAAI,CAACgC,MAAM,IAAC;IACX,MAAMC,UAAU,GAAGC,SAAS,CAAC,IAAI,CAAC;IAClC,OAAO,IAAAC,cAAI,EACTnC,IAAI,CAACoC,IAAI,CAACH,UAAU,CAACI,KAAK,CAAC,EAC3BrC,IAAI,CAACsC,OAAO,CAACtC,IAAI,CAACuC,MAAM,CAACN,UAAU,CAACO,KAAK,CAAC,CAAC,EAC3CxC,IAAI,CAACyC,MAAM,CAAC,IAAI,CAAC,CAClB;EACH,CAAC;EACD,CAAC9C,KAAK,CAACqC,MAAM,EAAoBU,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,CAACU,8BAAiB,IAAC;IACjB,OAAO,IAAI,CAACH,MAAM,EAAE;EACtB,CAAC;EACDZ,IAAIA,CAAA;IACF,OAAO,IAAAgB,uBAAa,EAAC,IAAI,EAAEC,SAAS,CAAC;EACvC;CACQ;AAEV;;;;;;;;AAQO,MAAMT,YAAY,GAAItB,CAAU,IAAsB,IAAAgC,sBAAW,EAAChC,CAAC,EAAEM,MAAM,CAAC;AAEnF;;;;;;;;;AAAAC,OAAA,CAAAe,YAAA,GAAAA,YAAA;AASO,MAAMW,IAAI,GAAGA,CAACjB,KAAa,EAAEG,KAAa,KAAgB;EAC/D,MAAMe,CAAC,GAAGrC,MAAM,CAACsC,MAAM,CAACzB,eAAe,CAAC;EACxCwB,CAAC,CAAClB,KAAK,GAAGA,KAAK;EACfkB,CAAC,CAACf,KAAK,GAAGA,KAAK;EACf,OAAOe,CAAC;AACV,CAAC;AAED;;;;;AAAA3B,OAAA,CAAA0B,IAAA,GAAAA,IAAA;AAKO,MAAMG,oBAAoB,GAAGA,CAACpB,KAAa,EAAEG,KAAa,KAAgB;EAC/E,IAAIH,KAAK,KAAKqB,OAAO,IAAIrB,KAAK,GAAGsB,QAAQ,KAAKD,OAAO,EAAE;IACrD,MAAM,IAAIE,UAAU,CAAC,0BAA0B,CAAC;EAClD;EAEA,MAAML,CAAC,GAAGD,IAAI,CAACjB,KAAK,EAAEG,KAAK,CAAC;EAC5Be,CAAC,CAACtB,UAAU,GAAGsB,CAAC;EAChB,OAAOA,CAAC;AACV,CAAC;AAAA3B,OAAA,CAAA6B,oBAAA,GAAAA,oBAAA;AAED,MAAMC,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;;;;;;;;;;;;;;AAcO,MAAMxB,SAAS,GAAI8B,IAAgB,IAAgB;EACxD,IAAIA,IAAI,CAAC/B,UAAU,KAAKgC,SAAS,EAAE;IACjC,IAAID,IAAI,CAAC3B,KAAK,KAAKqB,OAAO,EAAE;MAC1BM,IAAI,CAAC/B,UAAU,GAAG8B,IAAI;IACxB,CAAC,MAAM;MACL,MAAMG,MAAM,GAAG,GAAGF,IAAI,CAAC3B,KAAK,EAAE;MAE9B,IAAI8B,KAAK,GAAG,CAAC;MACb,KAAK,IAAI3C,CAAC,GAAG0C,MAAM,CAACE,MAAM,GAAG,CAAC,EAAE5C,CAAC,IAAI,CAAC,EAAEA,CAAC,EAAE,EAAE;QAC3C,IAAI0C,MAAM,CAAC1C,CAAC,CAAC,KAAK,GAAG,EAAE;UACrB2C,KAAK,EAAE;QACT,CAAC,MAAM;UACL;QACF;MACF;MAEA,IAAIA,KAAK,KAAK,CAAC,EAAE;QACfH,IAAI,CAAC/B,UAAU,GAAG+B,IAAI;MACxB;MAEA,MAAM3B,KAAK,GAAGwB,MAAM,CAACK,MAAM,CAACG,SAAS,CAAC,CAAC,EAAEH,MAAM,CAACE,MAAM,GAAGD,KAAK,CAAC,CAAC;MAChE,MAAM3B,KAAK,GAAGwB,IAAI,CAACxB,KAAK,GAAG2B,KAAK;MAChCH,IAAI,CAAC/B,UAAU,GAAGwB,oBAAoB,CAACpB,KAAK,EAAEG,KAAK,CAAC;IACtD;EACF;EAEA,OAAOwB,IAAI,CAAC/B,UAAU;AACxB,CAAC;AAED;;;;;;;;;;;;AAAAL,OAAA,CAAAM,SAAA,GAAAA,SAAA;AAYO,MAAMM,KAAK,GAAAZ,OAAA,CAAAY,KAAA,gBA2Bd,IAAA8B,cAAI,EAAC,CAAC,EAAE,CAACN,IAAgB,EAAExB,KAAa,KAAgB;EAC1D,IAAIA,KAAK,GAAGwB,IAAI,CAACxB,KAAK,EAAE;IACtB,OAAOc,IAAI,CAACU,IAAI,CAAC3B,KAAK,GAAGsB,QAAQ,IAAIE,MAAM,CAACrB,KAAK,GAAGwB,IAAI,CAACxB,KAAK,CAAC,EAAEA,KAAK,CAAC;EACzE;EAEA,IAAIA,KAAK,GAAGwB,IAAI,CAACxB,KAAK,EAAE;IACtB,OAAOc,IAAI,CAACU,IAAI,CAAC3B,KAAK,GAAGsB,QAAQ,IAAIE,MAAM,CAACG,IAAI,CAACxB,KAAK,GAAGA,KAAK,CAAC,EAAEA,KAAK,CAAC;EACzE;EAEA,OAAOwB,IAAI;AACb,CAAC,CAAC;AAEF;;;;;;;;;;;;;;AAcO,MAAMO,GAAG,GAAA3C,OAAA,CAAA2C,GAAA,gBA+BZ,IAAAD,cAAI,EAAC,CAAC,EAAE,CAACN,IAAgB,EAAEtB,IAAgB,KAAgB;EAC7D,IAAIA,IAAI,CAACL,KAAK,KAAKqB,OAAO,EAAE;IAC1B,OAAOM,IAAI;EACb;EAEA,IAAIA,IAAI,CAAC3B,KAAK,KAAKqB,OAAO,EAAE;IAC1B,OAAOhB,IAAI;EACb;EAEA,IAAIsB,IAAI,CAACxB,KAAK,GAAGE,IAAI,CAACF,KAAK,EAAE;IAC3B,OAAOc,IAAI,CAACd,KAAK,CAACE,IAAI,EAAEsB,IAAI,CAACxB,KAAK,CAAC,CAACH,KAAK,GAAG2B,IAAI,CAAC3B,KAAK,EAAE2B,IAAI,CAACxB,KAAK,CAAC;EACrE;EAEA,IAAIwB,IAAI,CAACxB,KAAK,GAAGE,IAAI,CAACF,KAAK,EAAE;IAC3B,OAAOc,IAAI,CAACd,KAAK,CAACwB,IAAI,EAAEtB,IAAI,CAACF,KAAK,CAAC,CAACH,KAAK,GAAGK,IAAI,CAACL,KAAK,EAAEK,IAAI,CAACF,KAAK,CAAC;EACrE;EAEA,OAAOc,IAAI,CAACU,IAAI,CAAC3B,KAAK,GAAGK,IAAI,CAACL,KAAK,EAAE2B,IAAI,CAACxB,KAAK,CAAC;AAClD,CAAC,CAAC;AAEF;;;;;;;;;;;;;;AAcO,MAAMgC,QAAQ,GAAA5C,OAAA,CAAA4C,QAAA,gBA+BjB,IAAAF,cAAI,EAAC,CAAC,EAAE,CAACN,IAAgB,EAAEtB,IAAgB,KAAgB;EAC7D,IAAIA,IAAI,CAACL,KAAK,KAAKqB,OAAO,IAAIM,IAAI,CAAC3B,KAAK,KAAKqB,OAAO,EAAE;IACpD,OAAOK,IAAI;EACb;EAEA,OAAOT,IAAI,CAACU,IAAI,CAAC3B,KAAK,GAAGK,IAAI,CAACL,KAAK,EAAE2B,IAAI,CAACxB,KAAK,GAAGE,IAAI,CAACF,KAAK,CAAC;AAC/D,CAAC,CAAC;AAEF;;;;;;;;;;;;;;AAcO,MAAMiC,QAAQ,GAAA7C,OAAA,CAAA6C,QAAA,gBA+BjB,IAAAH,cAAI,EAAC,CAAC,EAAE,CAACN,IAAgB,EAAEtB,IAAgB,KAAgB;EAC7D,IAAIA,IAAI,CAACL,KAAK,KAAKqB,OAAO,EAAE;IAC1B,OAAOM,IAAI;EACb;EAEA,IAAIA,IAAI,CAAC3B,KAAK,KAAKqB,OAAO,EAAE;IAC1B,OAAOJ,IAAI,CAAC,CAACZ,IAAI,CAACL,KAAK,EAAEK,IAAI,CAACF,KAAK,CAAC;EACtC;EAEA,IAAIwB,IAAI,CAACxB,KAAK,GAAGE,IAAI,CAACF,KAAK,EAAE;IAC3B,OAAOc,IAAI,CAACU,IAAI,CAAC3B,KAAK,GAAGG,KAAK,CAACE,IAAI,EAAEsB,IAAI,CAACxB,KAAK,CAAC,CAACH,KAAK,EAAE2B,IAAI,CAACxB,KAAK,CAAC;EACrE;EAEA,IAAIwB,IAAI,CAACxB,KAAK,GAAGE,IAAI,CAACF,KAAK,EAAE;IAC3B,OAAOc,IAAI,CAACd,KAAK,CAACwB,IAAI,EAAEtB,IAAI,CAACF,KAAK,CAAC,CAACH,KAAK,GAAGK,IAAI,CAACL,KAAK,EAAEK,IAAI,CAACF,KAAK,CAAC;EACrE;EAEA,OAAOc,IAAI,CAACU,IAAI,CAAC3B,KAAK,GAAGK,IAAI,CAACL,KAAK,EAAE2B,IAAI,CAACxB,KAAK,CAAC;AAClD,CAAC,CAAC;AAEF;;;AAGA,MAAMkC,mBAAmB,GAAGA,CAC1BC,GAAW,EACXC,GAAW,EACXpC,KAAa,EACbqC,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;IACfnB,KAAK,EAAE;EACT;EAEA;EACA,IAAIyC,QAAQ,GAAGN,GAAG,GAAGC,GAAG;EACxB,IAAIM,SAAS,GAAGP,GAAG,GAAGC,GAAG;EAEzB,IAAIM,SAAS,KAAKxB,OAAO,EAAE;IACzB;IACA,OAAOJ,IAAI,CAAC0B,YAAY,GAAG,CAACC,QAAQ,GAAGA,QAAQ,EAAEzC,KAAK,CAAC;EACzD;EAEA;EACA,IAAI2C,KAAK,GAAG,GAAGF,QAAQ,EAAE,CAACb,MAAM;EAEhC;EACAc,SAAS,IAAIvB,QAAQ;EACrB,OAAOuB,SAAS,KAAKxB,OAAO,IAAIyB,KAAK,GAAGN,SAAS,EAAE;IACjD,MAAMO,CAAC,GAAGF,SAAS,GAAGN,GAAG;IACzB,MAAMnE,CAAC,GAAGyE,SAAS,GAAGN,GAAG;IACzBK,QAAQ,GAAGA,QAAQ,GAAGtB,QAAQ,GAAGyB,CAAC;IAClCF,SAAS,GAAGzE,CAAC,GAAGkD,QAAQ;IAExBwB,KAAK,EAAE;IACP3C,KAAK,EAAE;EACT;EAEA,IAAI0C,SAAS,KAAKxB,OAAO,EAAE;IACzB;IACAuB,QAAQ,IAAII,aAAa,CAACH,SAAS,GAAGN,GAAG,CAAC;EAC5C;EAEA,OAAOtB,IAAI,CAAC0B,YAAY,GAAG,CAACC,QAAQ,GAAGA,QAAQ,EAAEzC,KAAK,CAAC;AACzD,CAAC;AAED;;;;;;;;;AASO,MAAM6C,aAAa,GAAItE,CAAS,IAAY;EACjD,MAAMuE,GAAG,GAAGvE,CAAC,IAAI2C,OAAO,GAAG,CAAC,GAAG,CAAC;EAChC,OAAO6B,MAAM,CAAC,GAAGxE,CAAC,EAAE,CAACuE,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG5B,OAAO,GAAGI,OAAO;AACpD,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;AAAAlC,OAAA,CAAAyD,aAAA,GAAAA,aAAA;AAqBO,MAAMG,MAAM,GAAA5D,OAAA,CAAA4D,MAAA,gBA6Cf,IAAAlB,cAAI,EAAC,CAAC,EAAE,CAACN,IAAgB,EAAEtB,IAAgB,KAA+B;EAC5E,IAAIA,IAAI,CAACL,KAAK,KAAKqB,OAAO,EAAE;IAC1B,OAAOxD,MAAM,CAACuF,IAAI,EAAE;EACtB;EAEA,IAAIzB,IAAI,CAAC3B,KAAK,KAAKqB,OAAO,EAAE;IAC1B,OAAOxD,MAAM,CAACwF,IAAI,CAAC3B,IAAI,CAAC;EAC1B;EAEA,MAAMvB,KAAK,GAAGwB,IAAI,CAACxB,KAAK,GAAGE,IAAI,CAACF,KAAK;EACrC,IAAIwB,IAAI,CAAC3B,KAAK,KAAKK,IAAI,CAACL,KAAK,EAAE;IAC7B,OAAOnC,MAAM,CAACwF,IAAI,CAACpC,IAAI,CAACQ,OAAO,EAAEtB,KAAK,CAAC,CAAC;EAC1C;EAEA,OAAOtC,MAAM,CAACwF,IAAI,CAAChB,mBAAmB,CAACV,IAAI,CAAC3B,KAAK,EAAEK,IAAI,CAACL,KAAK,EAAEG,KAAK,EAAEd,iBAAiB,CAAC,CAAC;AAC3F,CAAC,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;AAoBO,MAAMiE,YAAY,GAAA/D,OAAA,CAAA+D,YAAA,gBA2CrB,IAAArB,cAAI,EAAC,CAAC,EAAE,CAACN,IAAgB,EAAEtB,IAAgB,KAAgB;EAC7D,IAAIA,IAAI,CAACL,KAAK,KAAKqB,OAAO,EAAE;IAC1B,MAAM,IAAIE,UAAU,CAAC,kBAAkB,CAAC;EAC1C;EAEA,IAAII,IAAI,CAAC3B,KAAK,KAAKqB,OAAO,EAAE;IAC1B,OAAOK,IAAI;EACb;EAEA,MAAMvB,KAAK,GAAGwB,IAAI,CAACxB,KAAK,GAAGE,IAAI,CAACF,KAAK;EACrC,IAAIwB,IAAI,CAAC3B,KAAK,KAAKK,IAAI,CAACL,KAAK,EAAE;IAC7B,OAAOiB,IAAI,CAACQ,OAAO,EAAEtB,KAAK,CAAC;EAC7B;EACA,OAAOkC,mBAAmB,CAACV,IAAI,CAAC3B,KAAK,EAAEK,IAAI,CAACL,KAAK,EAAEG,KAAK,EAAEd,iBAAiB,CAAC;AAC9E,CAAC,CAAC;AAEF;;;;AAIO,MAAMkE,KAAK,GAAAhE,OAAA,CAAAgE,KAAA,gBAA4BzF,KAAK,CAACmD,IAAI,CAAC,CAACU,IAAI,EAAEtB,IAAI,KAAI;EACtE,MAAMmD,IAAI,GAAG1F,KAAK,CAACoC,MAAM,CAACuD,IAAI,CAAC9B,IAAI,CAAC,EAAE8B,IAAI,CAACpD,IAAI,CAAC,CAAC;EACjD,IAAImD,IAAI,KAAK,CAAC,EAAE;IACd,OAAOA,IAAI;EACb;EAEA,IAAI7B,IAAI,CAACxB,KAAK,GAAGE,IAAI,CAACF,KAAK,EAAE;IAC3B,OAAOrC,KAAK,CAAC4F,MAAM,CAAC/B,IAAI,CAAC3B,KAAK,EAAEG,KAAK,CAACE,IAAI,EAAEsB,IAAI,CAACxB,KAAK,CAAC,CAACH,KAAK,CAAC;EAChE;EAEA,IAAI2B,IAAI,CAACxB,KAAK,GAAGE,IAAI,CAACF,KAAK,EAAE;IAC3B,OAAOrC,KAAK,CAAC4F,MAAM,CAACvD,KAAK,CAACwB,IAAI,EAAEtB,IAAI,CAACF,KAAK,CAAC,CAACH,KAAK,EAAEK,IAAI,CAACL,KAAK,CAAC;EAChE;EAEA,OAAOlC,KAAK,CAAC4F,MAAM,CAAC/B,IAAI,CAAC3B,KAAK,EAAEK,IAAI,CAACL,KAAK,CAAC;AAC7C,CAAC,CAAC;AAEF;;;;;;;;;;;;;;;;AAgBO,MAAM2D,QAAQ,GAAApE,OAAA,CAAAoE,QAAA,gBAmCjB7F,KAAK,CAAC6F,QAAQ,CAACJ,KAAK,CAAC;AAEzB;;;;;;;;;;;;;;;;AAgBO,MAAMK,iBAAiB,GAAArE,OAAA,CAAAqE,iBAAA,gBAmC1B9F,KAAK,CAAC8F,iBAAiB,CAACL,KAAK,CAAC;AAElC;;;;;;;;;;;;;;;;AAgBO,MAAMM,WAAW,GAAAtE,OAAA,CAAAsE,WAAA,gBAmCpB/F,KAAK,CAAC+F,WAAW,CAACN,KAAK,CAAC;AAE5B;;;;;;;;;;;;;;;;AAgBO,MAAMO,oBAAoB,GAAAvE,OAAA,CAAAuE,oBAAA,gBAmC7BhG,KAAK,CAACgG,oBAAoB,CAACP,KAAK,CAAC;AAErC;;;;;;;;;;;;;;;;;;;;;;AAsBO,MAAMQ,OAAO,GAAAxE,OAAA,CAAAwE,OAAA,gBA0DhBjG,KAAK,CAACiG,OAAO,CAACR,KAAK,CAAC;AAExB;;;;;;;;;;;;;;;;;;;;;;;;;;AA0BO,MAAMS,KAAK,GAAAzE,OAAA,CAAAyE,KAAA,gBAkEdlG,KAAK,CAACkG,KAAK,CAACT,KAAK,CAAC;AAEtB;;;;;;;;;;;;;;AAcO,MAAMU,GAAG,GAAA1E,OAAA,CAAA0E,GAAA,gBA+BZnG,KAAK,CAACmG,GAAG,CAACV,KAAK,CAAC;AAEpB;;;;;;;;;;;;;;AAcO,MAAMW,GAAG,GAAA3E,OAAA,CAAA2E,GAAA,gBA+BZpG,KAAK,CAACoG,GAAG,CAACX,KAAK,CAAC;AAEpB;;;;;;;;;;;;;;;AAeO,MAAME,IAAI,GAAI/E,CAAa,IAAeA,CAAC,CAACsB,KAAK,KAAKqB,OAAO,GAAG,CAAC,GAAG3C,CAAC,CAACsB,KAAK,GAAGqB,OAAO,GAAG,CAAC,CAAC,GAAG,CAAC;AAErG;;;;;;;;;;;;;;;AAAA9B,OAAA,CAAAkE,IAAA,GAAAA,IAAA;AAeO,MAAMU,GAAG,GAAIzF,CAAa,IAAiBA,CAAC,CAACsB,KAAK,GAAGqB,OAAO,GAAGJ,IAAI,CAAC,CAACvC,CAAC,CAACsB,KAAK,EAAEtB,CAAC,CAACyB,KAAK,CAAC,GAAGzB,CAAC;AAEjG;;;;;;;;;;;;;;AAAAa,OAAA,CAAA4E,GAAA,GAAAA,GAAA;AAcO,MAAMC,MAAM,GAAI1F,CAAa,IAAiBuC,IAAI,CAAC,CAACvC,CAAC,CAACsB,KAAK,EAAEtB,CAAC,CAACyB,KAAK,CAAC;AAE5E;;;;;;;;;;;;;;;;;;AAAAZ,OAAA,CAAA6E,MAAA,GAAAA,MAAA;AAkBO,MAAMvB,SAAS,GAAAtD,OAAA,CAAAsD,SAAA,gBAuClB,IAAAZ,cAAI,EAAC,CAAC,EAAE,CAACN,IAAgB,EAAE0C,OAAmB,KAA+B;EAC/E,IAAIA,OAAO,CAACrE,KAAK,KAAKqB,OAAO,EAAE;IAC7B,OAAOxD,MAAM,CAACuF,IAAI,EAAE;EACtB;EAEA,MAAMc,GAAG,GAAGI,IAAI,CAACJ,GAAG,CAACvC,IAAI,CAACxB,KAAK,EAAEkE,OAAO,CAAClE,KAAK,CAAC;EAC/C,OAAOtC,MAAM,CAACwF,IAAI,CAACpC,IAAI,CAACd,KAAK,CAACwB,IAAI,EAAEuC,GAAG,CAAC,CAAClE,KAAK,GAAGG,KAAK,CAACkE,OAAO,EAAEH,GAAG,CAAC,CAAClE,KAAK,EAAEkE,GAAG,CAAC,CAAC;AACnF,CAAC,CAAC;AAEF;;;;;;;;;;;;;;;;;;AAkBO,MAAMK,eAAe,GAAAhF,OAAA,CAAAgF,eAAA,gBAuCxB,IAAAtC,cAAI,EAAC,CAAC,EAAE,CAACN,IAAgB,EAAE0C,OAAmB,KAAgB;EAChE,IAAIA,OAAO,CAACrE,KAAK,KAAKqB,OAAO,EAAE;IAC7B,MAAM,IAAIE,UAAU,CAAC,kBAAkB,CAAC;EAC1C;EAEA,MAAM2C,GAAG,GAAGI,IAAI,CAACJ,GAAG,CAACvC,IAAI,CAACxB,KAAK,EAAEkE,OAAO,CAAClE,KAAK,CAAC;EAC/C,OAAOc,IAAI,CAACd,KAAK,CAACwB,IAAI,EAAEuC,GAAG,CAAC,CAAClE,KAAK,GAAGG,KAAK,CAACkE,OAAO,EAAEH,GAAG,CAAC,CAAClE,KAAK,EAAEkE,GAAG,CAAC;AACtE,CAAC,CAAC;AAEF;;;;AAIO,MAAMM,WAAW,GAAAjF,OAAA,CAAAiF,WAAA,gBAAwC/G,WAAW,CAACwD,IAAI,CAAC,CAACU,IAAI,EAAEtB,IAAI,KAAI;EAC9F,IAAIsB,IAAI,CAACxB,KAAK,GAAGE,IAAI,CAACF,KAAK,EAAE;IAC3B,OAAOA,KAAK,CAACE,IAAI,EAAEsB,IAAI,CAACxB,KAAK,CAAC,CAACH,KAAK,KAAK2B,IAAI,CAAC3B,KAAK;EACrD;EAEA,IAAI2B,IAAI,CAACxB,KAAK,GAAGE,IAAI,CAACF,KAAK,EAAE;IAC3B,OAAOA,KAAK,CAACwB,IAAI,EAAEtB,IAAI,CAACF,KAAK,CAAC,CAACH,KAAK,KAAKK,IAAI,CAACL,KAAK;EACrD;EAEA,OAAO2B,IAAI,CAAC3B,KAAK,KAAKK,IAAI,CAACL,KAAK;AAClC,CAAC,CAAC;AAEF;;;;;;AAMO,MAAMO,MAAM,GAAAhB,OAAA,CAAAgB,MAAA,gBAef,IAAA0B,cAAI,EAAC,CAAC,EAAE,CAACN,IAAgB,EAAEtB,IAAgB,KAAcmE,WAAW,CAAC7C,IAAI,EAAEtB,IAAI,CAAC,CAAC;AAErF;;;;;;;;AAQO,MAAMoE,UAAU,GAAI/F,CAAS,IAAiBuC,IAAI,CAACvC,CAAC,EAAE,CAAC,CAAC;AAE/D;;;;;;;;;;;;;;;;;AAAAa,OAAA,CAAAkF,UAAA,GAAAA,UAAA;AAiBO,MAAMC,UAAU,GAAIhG,CAAS,IAAgB;EAClD,MAAM,CAACiG,IAAI,EAAE7C,KAAK,GAAG,EAAE,CAAC,GAAG,GAAGpD,CAAC,EAAE,CAACkG,KAAK,CAAC,GAAG,CAAC;EAC5C,OAAO3D,IAAI,CAACO,MAAM,CAAC,GAAGmD,IAAI,GAAG7C,KAAK,EAAE,CAAC,EAAEA,KAAK,CAACC,MAAM,CAAC;AACtD,CAAC;AAED;;;;;;;;;;;;;;;AAAAxC,OAAA,CAAAmF,UAAA,GAAAA,UAAA;AAeO,MAAMG,UAAU,GAAIC,CAAS,IAA+B;EACjE,IAAIjD,MAAc;EAClB,IAAI1B,KAAa;EAEjB,MAAM4E,GAAG,GAAGD,CAAC,CAACE,MAAM,CAAC,IAAI,CAAC;EAC1B,IAAID,GAAG,KAAK,CAAC,CAAC,EAAE;IACd,MAAMJ,IAAI,GAAGG,CAAC,CAACG,KAAK,CAAC,CAAC,EAAEF,GAAG,CAAC;IAC5B,MAAMjD,KAAK,GAAGgD,CAAC,CAACG,KAAK,CAACF,GAAG,GAAG,CAAC,CAAC;IAC9BlD,MAAM,GAAG,GAAG8C,IAAI,GAAG7C,KAAK,EAAE;IAC1B3B,KAAK,GAAG2B,KAAK,CAACC,MAAM;EACtB,CAAC,MAAM;IACLF,MAAM,GAAGiD,CAAC;IACV3E,KAAK,GAAG,CAAC;EACX;EAEA,IAAI0B,MAAM,KAAK,EAAE,EAAE;IACjB;IACA,OAAOhE,MAAM,CAACwF,IAAI,CAAC3B,IAAI,CAAC;EAC1B;EAEA,IAAI,CAAC,gBAAgB,CAACwD,IAAI,CAACrD,MAAM,CAAC,EAAE;IAClC,OAAOhE,MAAM,CAACuF,IAAI,EAAE;EACtB;EAEA,OAAOvF,MAAM,CAACwF,IAAI,CAACpC,IAAI,CAACO,MAAM,CAACK,MAAM,CAAC,EAAE1B,KAAK,CAAC,CAAC;AACjD,CAAC;AAED;;;;;;;;;;;;;;;AAAAZ,OAAA,CAAAsF,UAAA,GAAAA,UAAA;AAeO,MAAMM,gBAAgB,GAAIL,CAAS,IACxCjH,MAAM,CAACuH,cAAc,CAACP,UAAU,CAACC,CAAC,CAAC,EAAE,MAAM,IAAIO,KAAK,CAAC,0BAA0B,CAAC,CAAC;AAEnF;;;;;;;;;;;;;;;AAAA9F,OAAA,CAAA4F,gBAAA,GAAAA,gBAAA;AAeO,MAAM1E,MAAM,GAAI/B,CAAa,IAAY;EAC9C,MAAM4G,QAAQ,GAAG5G,CAAC,CAACsB,KAAK,GAAGqB,OAAO;EAClC,MAAMkE,QAAQ,GAAGD,QAAQ,GAAG,GAAG5G,CAAC,CAACsB,KAAK,EAAE,CAACgC,SAAS,CAAC,CAAC,CAAC,GAAG,GAAGtD,CAAC,CAACsB,KAAK,EAAE;EAEpE,IAAIwF,MAAc;EAClB,IAAIC,KAAa;EAEjB,IAAI/G,CAAC,CAACyB,KAAK,IAAIoF,QAAQ,CAACxD,MAAM,EAAE;IAC9ByD,MAAM,GAAG,GAAG;IACZC,KAAK,GAAG,GAAG,CAACC,MAAM,CAAChH,CAAC,CAACyB,KAAK,GAAGoF,QAAQ,CAACxD,MAAM,CAAC,GAAGwD,QAAQ;EAC1D,CAAC,MAAM;IACL,MAAMI,QAAQ,GAAGJ,QAAQ,CAACxD,MAAM,GAAGrD,CAAC,CAACyB,KAAK;IAC1C,IAAIwF,QAAQ,GAAGJ,QAAQ,CAACxD,MAAM,EAAE;MAC9B,MAAM6D,KAAK,GAAGD,QAAQ,GAAGJ,QAAQ,CAACxD,MAAM;MACxCyD,MAAM,GAAG,GAAGD,QAAQ,GAAG,GAAG,CAACG,MAAM,CAACE,KAAK,CAAC,EAAE;MAC1CH,KAAK,GAAG,EAAE;IACZ,CAAC,MAAM;MACLA,KAAK,GAAGF,QAAQ,CAACN,KAAK,CAACU,QAAQ,CAAC;MAChCH,MAAM,GAAGD,QAAQ,CAACN,KAAK,CAAC,CAAC,EAAEU,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;;;;;;;;;;;;;;;AAAAtG,OAAA,CAAAkB,MAAA,GAAAA,MAAA;AAeO,MAAMqF,cAAc,GAAIpH,CAAa,IAAawE,MAAM,CAACzC,MAAM,CAAC/B,CAAC,CAAC,CAAC;AAE1E;;;;;;;;;;;;;;;AAAAa,OAAA,CAAAuG,cAAA,GAAAA,cAAA;AAeO,MAAMC,SAAS,GAAIrH,CAAa,IAAcmB,SAAS,CAACnB,CAAC,CAAC,CAACyB,KAAK,IAAI,CAAC;AAE5E;;;;;;;;;;;;;;AAAAZ,OAAA,CAAAwG,SAAA,GAAAA,SAAA;AAcO,MAAMC,MAAM,GAAItH,CAAa,IAAcA,CAAC,CAACsB,KAAK,KAAKqB,OAAO;AAErE;;;;;;;;;;;;;;;AAAA9B,OAAA,CAAAyG,MAAA,GAAAA,MAAA;AAeO,MAAMC,UAAU,GAAIvH,CAAa,IAAcA,CAAC,CAACsB,KAAK,GAAGqB,OAAO;AAEvE;;;;;;;;;;;;;;;AAAA9B,OAAA,CAAA0G,UAAA,GAAAA,UAAA;AAeO,MAAMC,UAAU,GAAIxH,CAAa,IAAcA,CAAC,CAACsB,KAAK,GAAGqB,OAAO;AAAA9B,OAAA,CAAA2G,UAAA,GAAAA,UAAA","ignoreList":[]}
1
+ {"version":3,"file":"BigDecimal.js","names":["Equal","_interopRequireWildcard","require","equivalence","_Function","Hash","_Inspectable","Option","order","_Pipeable","_Predicate","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","DEFAULT_PRECISION","FINITE_INT_REGEX","TypeId","exports","Symbol","for","BigDecimalProto","symbol","normalized","normalize","pipe","hash","value","combine","number","scale","cached","that","isBigDecimal","equals","toString","format","toJSON","_id","String","NodeInspectSymbol","pipeArguments","arguments","hasProperty","make","o","create","unsafeMakeNormalized","bigint0","bigint10","RangeError","BigInt","bigint1","zero","self","undefined","digits","trail","length","substring","dual","sum","multiply","subtract","divideWithPrecision","num","den","precision","numNegative","denNegative","negateResult","quotient","remainder","count","q","roundTerminal","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":"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","ignoreList":[]}