@konker.dev/tiny-money-fp 0.0.3

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 (755) hide show
  1. package/LICENSE +15 -0
  2. package/README.md +7 -0
  3. package/dist/Money/Money.d.ts +50 -0
  4. package/dist/Money/Money.d.ts.map +1 -0
  5. package/dist/Money/Money.js +62 -0
  6. package/dist/Money/Money.js.map +1 -0
  7. package/dist/Money/Money.test.d.ts +2 -0
  8. package/dist/Money/Money.test.d.ts.map +1 -0
  9. package/dist/Money/Money.test.js +73 -0
  10. package/dist/Money/Money.test.js.map +1 -0
  11. package/dist/Money/add.d.ts +17 -0
  12. package/dist/Money/add.d.ts.map +1 -0
  13. package/dist/Money/add.js +22 -0
  14. package/dist/Money/add.js.map +1 -0
  15. package/dist/Money/add.test.d.ts +2 -0
  16. package/dist/Money/add.test.d.ts.map +1 -0
  17. package/dist/Money/add.test.js +58 -0
  18. package/dist/Money/add.test.js.map +1 -0
  19. package/dist/Money/div.d.ts +14 -0
  20. package/dist/Money/div.d.ts.map +1 -0
  21. package/dist/Money/div.js +16 -0
  22. package/dist/Money/div.js.map +1 -0
  23. package/dist/Money/div.test.d.ts +2 -0
  24. package/dist/Money/div.test.d.ts.map +1 -0
  25. package/dist/Money/div.test.js +43 -0
  26. package/dist/Money/div.test.js.map +1 -0
  27. package/dist/Money/from-number.d.ts +15 -0
  28. package/dist/Money/from-number.d.ts.map +1 -0
  29. package/dist/Money/from-number.js +18 -0
  30. package/dist/Money/from-number.js.map +1 -0
  31. package/dist/Money/from-number.test.d.ts +2 -0
  32. package/dist/Money/from-number.test.d.ts.map +1 -0
  33. package/dist/Money/from-number.test.js +56 -0
  34. package/dist/Money/from-number.test.js.map +1 -0
  35. package/dist/Money/index.d.ts +12 -0
  36. package/dist/Money/index.d.ts.map +1 -0
  37. package/dist/Money/index.js +8 -0
  38. package/dist/Money/index.js.map +1 -0
  39. package/dist/Money/mul.d.ts +14 -0
  40. package/dist/Money/mul.d.ts.map +1 -0
  41. package/dist/Money/mul.js +16 -0
  42. package/dist/Money/mul.js.map +1 -0
  43. package/dist/Money/mul.test.d.ts +2 -0
  44. package/dist/Money/mul.test.d.ts.map +1 -0
  45. package/dist/Money/mul.test.js +39 -0
  46. package/dist/Money/mul.test.js.map +1 -0
  47. package/dist/Money/sub.d.ts +17 -0
  48. package/dist/Money/sub.d.ts.map +1 -0
  49. package/dist/Money/sub.js +22 -0
  50. package/dist/Money/sub.js.map +1 -0
  51. package/dist/Money/sub.test.d.ts +2 -0
  52. package/dist/Money/sub.test.d.ts.map +1 -0
  53. package/dist/Money/sub.test.js +58 -0
  54. package/dist/Money/sub.test.js.map +1 -0
  55. package/dist/Money/sum.d.ts +16 -0
  56. package/dist/Money/sum.d.ts.map +1 -0
  57. package/dist/Money/sum.js +25 -0
  58. package/dist/Money/sum.js.map +1 -0
  59. package/dist/Money/sum.test.d.ts +2 -0
  60. package/dist/Money/sum.test.d.ts.map +1 -0
  61. package/dist/Money/sum.test.js +61 -0
  62. package/dist/Money/sum.test.js.map +1 -0
  63. package/dist/currency/Currency.d.ts +20 -0
  64. package/dist/currency/Currency.d.ts.map +1 -0
  65. package/dist/currency/Currency.js +4 -0
  66. package/dist/currency/Currency.js.map +1 -0
  67. package/dist/currency/defs/AED.d.ts +15 -0
  68. package/dist/currency/defs/AED.d.ts.map +1 -0
  69. package/dist/currency/defs/AED.js +27 -0
  70. package/dist/currency/defs/AED.js.map +1 -0
  71. package/dist/currency/defs/AFN.d.ts +15 -0
  72. package/dist/currency/defs/AFN.d.ts.map +1 -0
  73. package/dist/currency/defs/AFN.js +27 -0
  74. package/dist/currency/defs/AFN.js.map +1 -0
  75. package/dist/currency/defs/ALL.d.ts +15 -0
  76. package/dist/currency/defs/ALL.d.ts.map +1 -0
  77. package/dist/currency/defs/ALL.js +27 -0
  78. package/dist/currency/defs/ALL.js.map +1 -0
  79. package/dist/currency/defs/AMD.d.ts +15 -0
  80. package/dist/currency/defs/AMD.d.ts.map +1 -0
  81. package/dist/currency/defs/AMD.js +27 -0
  82. package/dist/currency/defs/AMD.js.map +1 -0
  83. package/dist/currency/defs/ANG.d.ts +15 -0
  84. package/dist/currency/defs/ANG.d.ts.map +1 -0
  85. package/dist/currency/defs/ANG.js +27 -0
  86. package/dist/currency/defs/ANG.js.map +1 -0
  87. package/dist/currency/defs/AOA.d.ts +15 -0
  88. package/dist/currency/defs/AOA.d.ts.map +1 -0
  89. package/dist/currency/defs/AOA.js +27 -0
  90. package/dist/currency/defs/AOA.js.map +1 -0
  91. package/dist/currency/defs/ARS.d.ts +15 -0
  92. package/dist/currency/defs/ARS.d.ts.map +1 -0
  93. package/dist/currency/defs/ARS.js +27 -0
  94. package/dist/currency/defs/ARS.js.map +1 -0
  95. package/dist/currency/defs/AUD.d.ts +15 -0
  96. package/dist/currency/defs/AUD.d.ts.map +1 -0
  97. package/dist/currency/defs/AUD.js +27 -0
  98. package/dist/currency/defs/AUD.js.map +1 -0
  99. package/dist/currency/defs/AWG.d.ts +15 -0
  100. package/dist/currency/defs/AWG.d.ts.map +1 -0
  101. package/dist/currency/defs/AWG.js +27 -0
  102. package/dist/currency/defs/AWG.js.map +1 -0
  103. package/dist/currency/defs/AZN.d.ts +15 -0
  104. package/dist/currency/defs/AZN.d.ts.map +1 -0
  105. package/dist/currency/defs/AZN.js +27 -0
  106. package/dist/currency/defs/AZN.js.map +1 -0
  107. package/dist/currency/defs/BAM.d.ts +15 -0
  108. package/dist/currency/defs/BAM.d.ts.map +1 -0
  109. package/dist/currency/defs/BAM.js +27 -0
  110. package/dist/currency/defs/BAM.js.map +1 -0
  111. package/dist/currency/defs/BBD.d.ts +15 -0
  112. package/dist/currency/defs/BBD.d.ts.map +1 -0
  113. package/dist/currency/defs/BBD.js +27 -0
  114. package/dist/currency/defs/BBD.js.map +1 -0
  115. package/dist/currency/defs/BDT.d.ts +15 -0
  116. package/dist/currency/defs/BDT.d.ts.map +1 -0
  117. package/dist/currency/defs/BDT.js +27 -0
  118. package/dist/currency/defs/BDT.js.map +1 -0
  119. package/dist/currency/defs/BGN.d.ts +15 -0
  120. package/dist/currency/defs/BGN.d.ts.map +1 -0
  121. package/dist/currency/defs/BGN.js +27 -0
  122. package/dist/currency/defs/BGN.js.map +1 -0
  123. package/dist/currency/defs/BHD.d.ts +15 -0
  124. package/dist/currency/defs/BHD.d.ts.map +1 -0
  125. package/dist/currency/defs/BHD.js +27 -0
  126. package/dist/currency/defs/BHD.js.map +1 -0
  127. package/dist/currency/defs/BIF.d.ts +14 -0
  128. package/dist/currency/defs/BIF.d.ts.map +1 -0
  129. package/dist/currency/defs/BIF.js +23 -0
  130. package/dist/currency/defs/BIF.js.map +1 -0
  131. package/dist/currency/defs/BMD.d.ts +15 -0
  132. package/dist/currency/defs/BMD.d.ts.map +1 -0
  133. package/dist/currency/defs/BMD.js +27 -0
  134. package/dist/currency/defs/BMD.js.map +1 -0
  135. package/dist/currency/defs/BND.d.ts +15 -0
  136. package/dist/currency/defs/BND.d.ts.map +1 -0
  137. package/dist/currency/defs/BND.js +27 -0
  138. package/dist/currency/defs/BND.js.map +1 -0
  139. package/dist/currency/defs/BOB.d.ts +15 -0
  140. package/dist/currency/defs/BOB.d.ts.map +1 -0
  141. package/dist/currency/defs/BOB.js +27 -0
  142. package/dist/currency/defs/BOB.js.map +1 -0
  143. package/dist/currency/defs/BRL.d.ts +15 -0
  144. package/dist/currency/defs/BRL.d.ts.map +1 -0
  145. package/dist/currency/defs/BRL.js +27 -0
  146. package/dist/currency/defs/BRL.js.map +1 -0
  147. package/dist/currency/defs/BSD.d.ts +15 -0
  148. package/dist/currency/defs/BSD.d.ts.map +1 -0
  149. package/dist/currency/defs/BSD.js +27 -0
  150. package/dist/currency/defs/BSD.js.map +1 -0
  151. package/dist/currency/defs/BTN.d.ts +15 -0
  152. package/dist/currency/defs/BTN.d.ts.map +1 -0
  153. package/dist/currency/defs/BTN.js +27 -0
  154. package/dist/currency/defs/BTN.js.map +1 -0
  155. package/dist/currency/defs/BWP.d.ts +15 -0
  156. package/dist/currency/defs/BWP.d.ts.map +1 -0
  157. package/dist/currency/defs/BWP.js +27 -0
  158. package/dist/currency/defs/BWP.js.map +1 -0
  159. package/dist/currency/defs/BYN.d.ts +15 -0
  160. package/dist/currency/defs/BYN.d.ts.map +1 -0
  161. package/dist/currency/defs/BYN.js +27 -0
  162. package/dist/currency/defs/BYN.js.map +1 -0
  163. package/dist/currency/defs/BZD.d.ts +15 -0
  164. package/dist/currency/defs/BZD.d.ts.map +1 -0
  165. package/dist/currency/defs/BZD.js +27 -0
  166. package/dist/currency/defs/BZD.js.map +1 -0
  167. package/dist/currency/defs/CAD.d.ts +15 -0
  168. package/dist/currency/defs/CAD.d.ts.map +1 -0
  169. package/dist/currency/defs/CAD.js +27 -0
  170. package/dist/currency/defs/CAD.js.map +1 -0
  171. package/dist/currency/defs/CDF.d.ts +15 -0
  172. package/dist/currency/defs/CDF.d.ts.map +1 -0
  173. package/dist/currency/defs/CDF.js +27 -0
  174. package/dist/currency/defs/CDF.js.map +1 -0
  175. package/dist/currency/defs/CHF.d.ts +15 -0
  176. package/dist/currency/defs/CHF.d.ts.map +1 -0
  177. package/dist/currency/defs/CHF.js +27 -0
  178. package/dist/currency/defs/CHF.js.map +1 -0
  179. package/dist/currency/defs/CLP.d.ts +14 -0
  180. package/dist/currency/defs/CLP.d.ts.map +1 -0
  181. package/dist/currency/defs/CLP.js +23 -0
  182. package/dist/currency/defs/CLP.js.map +1 -0
  183. package/dist/currency/defs/CNY.d.ts +15 -0
  184. package/dist/currency/defs/CNY.d.ts.map +1 -0
  185. package/dist/currency/defs/CNY.js +27 -0
  186. package/dist/currency/defs/CNY.js.map +1 -0
  187. package/dist/currency/defs/COP.d.ts +15 -0
  188. package/dist/currency/defs/COP.d.ts.map +1 -0
  189. package/dist/currency/defs/COP.js +27 -0
  190. package/dist/currency/defs/COP.js.map +1 -0
  191. package/dist/currency/defs/CRC.d.ts +15 -0
  192. package/dist/currency/defs/CRC.d.ts.map +1 -0
  193. package/dist/currency/defs/CRC.js +27 -0
  194. package/dist/currency/defs/CRC.js.map +1 -0
  195. package/dist/currency/defs/CUC.d.ts +15 -0
  196. package/dist/currency/defs/CUC.d.ts.map +1 -0
  197. package/dist/currency/defs/CUC.js +27 -0
  198. package/dist/currency/defs/CUC.js.map +1 -0
  199. package/dist/currency/defs/CUP.d.ts +15 -0
  200. package/dist/currency/defs/CUP.d.ts.map +1 -0
  201. package/dist/currency/defs/CUP.js +27 -0
  202. package/dist/currency/defs/CUP.js.map +1 -0
  203. package/dist/currency/defs/CVE.d.ts +15 -0
  204. package/dist/currency/defs/CVE.d.ts.map +1 -0
  205. package/dist/currency/defs/CVE.js +27 -0
  206. package/dist/currency/defs/CVE.js.map +1 -0
  207. package/dist/currency/defs/CZK.d.ts +15 -0
  208. package/dist/currency/defs/CZK.d.ts.map +1 -0
  209. package/dist/currency/defs/CZK.js +27 -0
  210. package/dist/currency/defs/CZK.js.map +1 -0
  211. package/dist/currency/defs/DJF.d.ts +14 -0
  212. package/dist/currency/defs/DJF.d.ts.map +1 -0
  213. package/dist/currency/defs/DJF.js +23 -0
  214. package/dist/currency/defs/DJF.js.map +1 -0
  215. package/dist/currency/defs/DKK.d.ts +15 -0
  216. package/dist/currency/defs/DKK.d.ts.map +1 -0
  217. package/dist/currency/defs/DKK.js +27 -0
  218. package/dist/currency/defs/DKK.js.map +1 -0
  219. package/dist/currency/defs/DOP.d.ts +15 -0
  220. package/dist/currency/defs/DOP.d.ts.map +1 -0
  221. package/dist/currency/defs/DOP.js +27 -0
  222. package/dist/currency/defs/DOP.js.map +1 -0
  223. package/dist/currency/defs/DZD.d.ts +15 -0
  224. package/dist/currency/defs/DZD.d.ts.map +1 -0
  225. package/dist/currency/defs/DZD.js +27 -0
  226. package/dist/currency/defs/DZD.js.map +1 -0
  227. package/dist/currency/defs/EGP.d.ts +15 -0
  228. package/dist/currency/defs/EGP.d.ts.map +1 -0
  229. package/dist/currency/defs/EGP.js +27 -0
  230. package/dist/currency/defs/EGP.js.map +1 -0
  231. package/dist/currency/defs/ERN.d.ts +15 -0
  232. package/dist/currency/defs/ERN.d.ts.map +1 -0
  233. package/dist/currency/defs/ERN.js +27 -0
  234. package/dist/currency/defs/ERN.js.map +1 -0
  235. package/dist/currency/defs/ETB.d.ts +15 -0
  236. package/dist/currency/defs/ETB.d.ts.map +1 -0
  237. package/dist/currency/defs/ETB.js +27 -0
  238. package/dist/currency/defs/ETB.js.map +1 -0
  239. package/dist/currency/defs/EUR.d.ts +15 -0
  240. package/dist/currency/defs/EUR.d.ts.map +1 -0
  241. package/dist/currency/defs/EUR.js +27 -0
  242. package/dist/currency/defs/EUR.js.map +1 -0
  243. package/dist/currency/defs/FJD.d.ts +15 -0
  244. package/dist/currency/defs/FJD.d.ts.map +1 -0
  245. package/dist/currency/defs/FJD.js +27 -0
  246. package/dist/currency/defs/FJD.js.map +1 -0
  247. package/dist/currency/defs/FKP.d.ts +15 -0
  248. package/dist/currency/defs/FKP.d.ts.map +1 -0
  249. package/dist/currency/defs/FKP.js +27 -0
  250. package/dist/currency/defs/FKP.js.map +1 -0
  251. package/dist/currency/defs/GBP.d.ts +15 -0
  252. package/dist/currency/defs/GBP.d.ts.map +1 -0
  253. package/dist/currency/defs/GBP.js +27 -0
  254. package/dist/currency/defs/GBP.js.map +1 -0
  255. package/dist/currency/defs/GEL.d.ts +15 -0
  256. package/dist/currency/defs/GEL.d.ts.map +1 -0
  257. package/dist/currency/defs/GEL.js +27 -0
  258. package/dist/currency/defs/GEL.js.map +1 -0
  259. package/dist/currency/defs/GHS.d.ts +15 -0
  260. package/dist/currency/defs/GHS.d.ts.map +1 -0
  261. package/dist/currency/defs/GHS.js +27 -0
  262. package/dist/currency/defs/GHS.js.map +1 -0
  263. package/dist/currency/defs/GIP.d.ts +15 -0
  264. package/dist/currency/defs/GIP.d.ts.map +1 -0
  265. package/dist/currency/defs/GIP.js +27 -0
  266. package/dist/currency/defs/GIP.js.map +1 -0
  267. package/dist/currency/defs/GMD.d.ts +15 -0
  268. package/dist/currency/defs/GMD.d.ts.map +1 -0
  269. package/dist/currency/defs/GMD.js +27 -0
  270. package/dist/currency/defs/GMD.js.map +1 -0
  271. package/dist/currency/defs/GNF.d.ts +14 -0
  272. package/dist/currency/defs/GNF.d.ts.map +1 -0
  273. package/dist/currency/defs/GNF.js +23 -0
  274. package/dist/currency/defs/GNF.js.map +1 -0
  275. package/dist/currency/defs/GTQ.d.ts +15 -0
  276. package/dist/currency/defs/GTQ.d.ts.map +1 -0
  277. package/dist/currency/defs/GTQ.js +27 -0
  278. package/dist/currency/defs/GTQ.js.map +1 -0
  279. package/dist/currency/defs/GYD.d.ts +15 -0
  280. package/dist/currency/defs/GYD.d.ts.map +1 -0
  281. package/dist/currency/defs/GYD.js +27 -0
  282. package/dist/currency/defs/GYD.js.map +1 -0
  283. package/dist/currency/defs/HKD.d.ts +15 -0
  284. package/dist/currency/defs/HKD.d.ts.map +1 -0
  285. package/dist/currency/defs/HKD.js +27 -0
  286. package/dist/currency/defs/HKD.js.map +1 -0
  287. package/dist/currency/defs/HNL.d.ts +15 -0
  288. package/dist/currency/defs/HNL.d.ts.map +1 -0
  289. package/dist/currency/defs/HNL.js +27 -0
  290. package/dist/currency/defs/HNL.js.map +1 -0
  291. package/dist/currency/defs/HTG.d.ts +15 -0
  292. package/dist/currency/defs/HTG.d.ts.map +1 -0
  293. package/dist/currency/defs/HTG.js +27 -0
  294. package/dist/currency/defs/HTG.js.map +1 -0
  295. package/dist/currency/defs/HUF.d.ts +15 -0
  296. package/dist/currency/defs/HUF.d.ts.map +1 -0
  297. package/dist/currency/defs/HUF.js +27 -0
  298. package/dist/currency/defs/HUF.js.map +1 -0
  299. package/dist/currency/defs/IDR.d.ts +15 -0
  300. package/dist/currency/defs/IDR.d.ts.map +1 -0
  301. package/dist/currency/defs/IDR.js +27 -0
  302. package/dist/currency/defs/IDR.js.map +1 -0
  303. package/dist/currency/defs/ILS.d.ts +15 -0
  304. package/dist/currency/defs/ILS.d.ts.map +1 -0
  305. package/dist/currency/defs/ILS.js +27 -0
  306. package/dist/currency/defs/ILS.js.map +1 -0
  307. package/dist/currency/defs/INR.d.ts +15 -0
  308. package/dist/currency/defs/INR.d.ts.map +1 -0
  309. package/dist/currency/defs/INR.js +27 -0
  310. package/dist/currency/defs/INR.js.map +1 -0
  311. package/dist/currency/defs/IQD.d.ts +15 -0
  312. package/dist/currency/defs/IQD.d.ts.map +1 -0
  313. package/dist/currency/defs/IQD.js +27 -0
  314. package/dist/currency/defs/IQD.js.map +1 -0
  315. package/dist/currency/defs/IRR.d.ts +15 -0
  316. package/dist/currency/defs/IRR.d.ts.map +1 -0
  317. package/dist/currency/defs/IRR.js +27 -0
  318. package/dist/currency/defs/IRR.js.map +1 -0
  319. package/dist/currency/defs/ISK.d.ts +14 -0
  320. package/dist/currency/defs/ISK.d.ts.map +1 -0
  321. package/dist/currency/defs/ISK.js +23 -0
  322. package/dist/currency/defs/ISK.js.map +1 -0
  323. package/dist/currency/defs/JMD.d.ts +15 -0
  324. package/dist/currency/defs/JMD.d.ts.map +1 -0
  325. package/dist/currency/defs/JMD.js +27 -0
  326. package/dist/currency/defs/JMD.js.map +1 -0
  327. package/dist/currency/defs/JOD.d.ts +15 -0
  328. package/dist/currency/defs/JOD.d.ts.map +1 -0
  329. package/dist/currency/defs/JOD.js +27 -0
  330. package/dist/currency/defs/JOD.js.map +1 -0
  331. package/dist/currency/defs/JPY.d.ts +14 -0
  332. package/dist/currency/defs/JPY.d.ts.map +1 -0
  333. package/dist/currency/defs/JPY.js +23 -0
  334. package/dist/currency/defs/JPY.js.map +1 -0
  335. package/dist/currency/defs/KES.d.ts +15 -0
  336. package/dist/currency/defs/KES.d.ts.map +1 -0
  337. package/dist/currency/defs/KES.js +27 -0
  338. package/dist/currency/defs/KES.js.map +1 -0
  339. package/dist/currency/defs/KGS.d.ts +15 -0
  340. package/dist/currency/defs/KGS.d.ts.map +1 -0
  341. package/dist/currency/defs/KGS.js +27 -0
  342. package/dist/currency/defs/KGS.js.map +1 -0
  343. package/dist/currency/defs/KHR.d.ts +15 -0
  344. package/dist/currency/defs/KHR.d.ts.map +1 -0
  345. package/dist/currency/defs/KHR.js +27 -0
  346. package/dist/currency/defs/KHR.js.map +1 -0
  347. package/dist/currency/defs/KMF.d.ts +14 -0
  348. package/dist/currency/defs/KMF.d.ts.map +1 -0
  349. package/dist/currency/defs/KMF.js +23 -0
  350. package/dist/currency/defs/KMF.js.map +1 -0
  351. package/dist/currency/defs/KPW.d.ts +15 -0
  352. package/dist/currency/defs/KPW.d.ts.map +1 -0
  353. package/dist/currency/defs/KPW.js +27 -0
  354. package/dist/currency/defs/KPW.js.map +1 -0
  355. package/dist/currency/defs/KRW.d.ts +14 -0
  356. package/dist/currency/defs/KRW.d.ts.map +1 -0
  357. package/dist/currency/defs/KRW.js +23 -0
  358. package/dist/currency/defs/KRW.js.map +1 -0
  359. package/dist/currency/defs/KWD.d.ts +15 -0
  360. package/dist/currency/defs/KWD.d.ts.map +1 -0
  361. package/dist/currency/defs/KWD.js +27 -0
  362. package/dist/currency/defs/KWD.js.map +1 -0
  363. package/dist/currency/defs/KYD.d.ts +15 -0
  364. package/dist/currency/defs/KYD.d.ts.map +1 -0
  365. package/dist/currency/defs/KYD.js +27 -0
  366. package/dist/currency/defs/KYD.js.map +1 -0
  367. package/dist/currency/defs/KZT.d.ts +15 -0
  368. package/dist/currency/defs/KZT.d.ts.map +1 -0
  369. package/dist/currency/defs/KZT.js +27 -0
  370. package/dist/currency/defs/KZT.js.map +1 -0
  371. package/dist/currency/defs/LAK.d.ts +15 -0
  372. package/dist/currency/defs/LAK.d.ts.map +1 -0
  373. package/dist/currency/defs/LAK.js +27 -0
  374. package/dist/currency/defs/LAK.js.map +1 -0
  375. package/dist/currency/defs/LBP.d.ts +15 -0
  376. package/dist/currency/defs/LBP.d.ts.map +1 -0
  377. package/dist/currency/defs/LBP.js +27 -0
  378. package/dist/currency/defs/LBP.js.map +1 -0
  379. package/dist/currency/defs/LKR.d.ts +15 -0
  380. package/dist/currency/defs/LKR.d.ts.map +1 -0
  381. package/dist/currency/defs/LKR.js +27 -0
  382. package/dist/currency/defs/LKR.js.map +1 -0
  383. package/dist/currency/defs/LRD.d.ts +15 -0
  384. package/dist/currency/defs/LRD.d.ts.map +1 -0
  385. package/dist/currency/defs/LRD.js +27 -0
  386. package/dist/currency/defs/LRD.js.map +1 -0
  387. package/dist/currency/defs/LSL.d.ts +15 -0
  388. package/dist/currency/defs/LSL.d.ts.map +1 -0
  389. package/dist/currency/defs/LSL.js +27 -0
  390. package/dist/currency/defs/LSL.js.map +1 -0
  391. package/dist/currency/defs/LYD.d.ts +15 -0
  392. package/dist/currency/defs/LYD.d.ts.map +1 -0
  393. package/dist/currency/defs/LYD.js +27 -0
  394. package/dist/currency/defs/LYD.js.map +1 -0
  395. package/dist/currency/defs/MAD.d.ts +15 -0
  396. package/dist/currency/defs/MAD.d.ts.map +1 -0
  397. package/dist/currency/defs/MAD.js +27 -0
  398. package/dist/currency/defs/MAD.js.map +1 -0
  399. package/dist/currency/defs/MDL.d.ts +15 -0
  400. package/dist/currency/defs/MDL.d.ts.map +1 -0
  401. package/dist/currency/defs/MDL.js +27 -0
  402. package/dist/currency/defs/MDL.js.map +1 -0
  403. package/dist/currency/defs/MGA.d.ts +15 -0
  404. package/dist/currency/defs/MGA.d.ts.map +1 -0
  405. package/dist/currency/defs/MGA.js +27 -0
  406. package/dist/currency/defs/MGA.js.map +1 -0
  407. package/dist/currency/defs/MKD.d.ts +15 -0
  408. package/dist/currency/defs/MKD.d.ts.map +1 -0
  409. package/dist/currency/defs/MKD.js +27 -0
  410. package/dist/currency/defs/MKD.js.map +1 -0
  411. package/dist/currency/defs/MMK.d.ts +15 -0
  412. package/dist/currency/defs/MMK.d.ts.map +1 -0
  413. package/dist/currency/defs/MMK.js +27 -0
  414. package/dist/currency/defs/MMK.js.map +1 -0
  415. package/dist/currency/defs/MNT.d.ts +15 -0
  416. package/dist/currency/defs/MNT.d.ts.map +1 -0
  417. package/dist/currency/defs/MNT.js +27 -0
  418. package/dist/currency/defs/MNT.js.map +1 -0
  419. package/dist/currency/defs/MOP.d.ts +15 -0
  420. package/dist/currency/defs/MOP.d.ts.map +1 -0
  421. package/dist/currency/defs/MOP.js +27 -0
  422. package/dist/currency/defs/MOP.js.map +1 -0
  423. package/dist/currency/defs/MRU.d.ts +15 -0
  424. package/dist/currency/defs/MRU.d.ts.map +1 -0
  425. package/dist/currency/defs/MRU.js +27 -0
  426. package/dist/currency/defs/MRU.js.map +1 -0
  427. package/dist/currency/defs/MUR.d.ts +15 -0
  428. package/dist/currency/defs/MUR.d.ts.map +1 -0
  429. package/dist/currency/defs/MUR.js +27 -0
  430. package/dist/currency/defs/MUR.js.map +1 -0
  431. package/dist/currency/defs/MVR.d.ts +15 -0
  432. package/dist/currency/defs/MVR.d.ts.map +1 -0
  433. package/dist/currency/defs/MVR.js +27 -0
  434. package/dist/currency/defs/MVR.js.map +1 -0
  435. package/dist/currency/defs/MWK.d.ts +15 -0
  436. package/dist/currency/defs/MWK.d.ts.map +1 -0
  437. package/dist/currency/defs/MWK.js +27 -0
  438. package/dist/currency/defs/MWK.js.map +1 -0
  439. package/dist/currency/defs/MXN.d.ts +15 -0
  440. package/dist/currency/defs/MXN.d.ts.map +1 -0
  441. package/dist/currency/defs/MXN.js +27 -0
  442. package/dist/currency/defs/MXN.js.map +1 -0
  443. package/dist/currency/defs/MYR.d.ts +15 -0
  444. package/dist/currency/defs/MYR.d.ts.map +1 -0
  445. package/dist/currency/defs/MYR.js +27 -0
  446. package/dist/currency/defs/MYR.js.map +1 -0
  447. package/dist/currency/defs/MZN.d.ts +15 -0
  448. package/dist/currency/defs/MZN.d.ts.map +1 -0
  449. package/dist/currency/defs/MZN.js +27 -0
  450. package/dist/currency/defs/MZN.js.map +1 -0
  451. package/dist/currency/defs/NAD.d.ts +15 -0
  452. package/dist/currency/defs/NAD.d.ts.map +1 -0
  453. package/dist/currency/defs/NAD.js +27 -0
  454. package/dist/currency/defs/NAD.js.map +1 -0
  455. package/dist/currency/defs/NGN.d.ts +15 -0
  456. package/dist/currency/defs/NGN.d.ts.map +1 -0
  457. package/dist/currency/defs/NGN.js +27 -0
  458. package/dist/currency/defs/NGN.js.map +1 -0
  459. package/dist/currency/defs/NIO.d.ts +15 -0
  460. package/dist/currency/defs/NIO.d.ts.map +1 -0
  461. package/dist/currency/defs/NIO.js +27 -0
  462. package/dist/currency/defs/NIO.js.map +1 -0
  463. package/dist/currency/defs/NOK.d.ts +15 -0
  464. package/dist/currency/defs/NOK.d.ts.map +1 -0
  465. package/dist/currency/defs/NOK.js +27 -0
  466. package/dist/currency/defs/NOK.js.map +1 -0
  467. package/dist/currency/defs/NPR.d.ts +15 -0
  468. package/dist/currency/defs/NPR.d.ts.map +1 -0
  469. package/dist/currency/defs/NPR.js +27 -0
  470. package/dist/currency/defs/NPR.js.map +1 -0
  471. package/dist/currency/defs/NZD.d.ts +15 -0
  472. package/dist/currency/defs/NZD.d.ts.map +1 -0
  473. package/dist/currency/defs/NZD.js +27 -0
  474. package/dist/currency/defs/NZD.js.map +1 -0
  475. package/dist/currency/defs/OMR.d.ts +15 -0
  476. package/dist/currency/defs/OMR.d.ts.map +1 -0
  477. package/dist/currency/defs/OMR.js +27 -0
  478. package/dist/currency/defs/OMR.js.map +1 -0
  479. package/dist/currency/defs/PAB.d.ts +15 -0
  480. package/dist/currency/defs/PAB.d.ts.map +1 -0
  481. package/dist/currency/defs/PAB.js +27 -0
  482. package/dist/currency/defs/PAB.js.map +1 -0
  483. package/dist/currency/defs/PEN.d.ts +15 -0
  484. package/dist/currency/defs/PEN.d.ts.map +1 -0
  485. package/dist/currency/defs/PEN.js +27 -0
  486. package/dist/currency/defs/PEN.js.map +1 -0
  487. package/dist/currency/defs/PGK.d.ts +15 -0
  488. package/dist/currency/defs/PGK.d.ts.map +1 -0
  489. package/dist/currency/defs/PGK.js +27 -0
  490. package/dist/currency/defs/PGK.js.map +1 -0
  491. package/dist/currency/defs/PHP.d.ts +15 -0
  492. package/dist/currency/defs/PHP.d.ts.map +1 -0
  493. package/dist/currency/defs/PHP.js +27 -0
  494. package/dist/currency/defs/PHP.js.map +1 -0
  495. package/dist/currency/defs/PKR.d.ts +15 -0
  496. package/dist/currency/defs/PKR.d.ts.map +1 -0
  497. package/dist/currency/defs/PKR.js +27 -0
  498. package/dist/currency/defs/PKR.js.map +1 -0
  499. package/dist/currency/defs/PLN.d.ts +15 -0
  500. package/dist/currency/defs/PLN.d.ts.map +1 -0
  501. package/dist/currency/defs/PLN.js +27 -0
  502. package/dist/currency/defs/PLN.js.map +1 -0
  503. package/dist/currency/defs/PYG.d.ts +14 -0
  504. package/dist/currency/defs/PYG.d.ts.map +1 -0
  505. package/dist/currency/defs/PYG.js +23 -0
  506. package/dist/currency/defs/PYG.js.map +1 -0
  507. package/dist/currency/defs/QAR.d.ts +15 -0
  508. package/dist/currency/defs/QAR.d.ts.map +1 -0
  509. package/dist/currency/defs/QAR.js +27 -0
  510. package/dist/currency/defs/QAR.js.map +1 -0
  511. package/dist/currency/defs/RON.d.ts +15 -0
  512. package/dist/currency/defs/RON.d.ts.map +1 -0
  513. package/dist/currency/defs/RON.js +27 -0
  514. package/dist/currency/defs/RON.js.map +1 -0
  515. package/dist/currency/defs/RSD.d.ts +15 -0
  516. package/dist/currency/defs/RSD.d.ts.map +1 -0
  517. package/dist/currency/defs/RSD.js +27 -0
  518. package/dist/currency/defs/RSD.js.map +1 -0
  519. package/dist/currency/defs/RUB.d.ts +15 -0
  520. package/dist/currency/defs/RUB.d.ts.map +1 -0
  521. package/dist/currency/defs/RUB.js +27 -0
  522. package/dist/currency/defs/RUB.js.map +1 -0
  523. package/dist/currency/defs/RWF.d.ts +14 -0
  524. package/dist/currency/defs/RWF.d.ts.map +1 -0
  525. package/dist/currency/defs/RWF.js +23 -0
  526. package/dist/currency/defs/RWF.js.map +1 -0
  527. package/dist/currency/defs/SAR.d.ts +15 -0
  528. package/dist/currency/defs/SAR.d.ts.map +1 -0
  529. package/dist/currency/defs/SAR.js +27 -0
  530. package/dist/currency/defs/SAR.js.map +1 -0
  531. package/dist/currency/defs/SBD.d.ts +15 -0
  532. package/dist/currency/defs/SBD.d.ts.map +1 -0
  533. package/dist/currency/defs/SBD.js +27 -0
  534. package/dist/currency/defs/SBD.js.map +1 -0
  535. package/dist/currency/defs/SCR.d.ts +15 -0
  536. package/dist/currency/defs/SCR.d.ts.map +1 -0
  537. package/dist/currency/defs/SCR.js +27 -0
  538. package/dist/currency/defs/SCR.js.map +1 -0
  539. package/dist/currency/defs/SDG.d.ts +15 -0
  540. package/dist/currency/defs/SDG.d.ts.map +1 -0
  541. package/dist/currency/defs/SDG.js +27 -0
  542. package/dist/currency/defs/SDG.js.map +1 -0
  543. package/dist/currency/defs/SEK.d.ts +15 -0
  544. package/dist/currency/defs/SEK.d.ts.map +1 -0
  545. package/dist/currency/defs/SEK.js +27 -0
  546. package/dist/currency/defs/SEK.js.map +1 -0
  547. package/dist/currency/defs/SGD.d.ts +15 -0
  548. package/dist/currency/defs/SGD.d.ts.map +1 -0
  549. package/dist/currency/defs/SGD.js +27 -0
  550. package/dist/currency/defs/SGD.js.map +1 -0
  551. package/dist/currency/defs/SHP.d.ts +15 -0
  552. package/dist/currency/defs/SHP.d.ts.map +1 -0
  553. package/dist/currency/defs/SHP.js +27 -0
  554. package/dist/currency/defs/SHP.js.map +1 -0
  555. package/dist/currency/defs/SOS.d.ts +15 -0
  556. package/dist/currency/defs/SOS.d.ts.map +1 -0
  557. package/dist/currency/defs/SOS.js +27 -0
  558. package/dist/currency/defs/SOS.js.map +1 -0
  559. package/dist/currency/defs/SRD.d.ts +15 -0
  560. package/dist/currency/defs/SRD.d.ts.map +1 -0
  561. package/dist/currency/defs/SRD.js +27 -0
  562. package/dist/currency/defs/SRD.js.map +1 -0
  563. package/dist/currency/defs/SSP.d.ts +15 -0
  564. package/dist/currency/defs/SSP.d.ts.map +1 -0
  565. package/dist/currency/defs/SSP.js +27 -0
  566. package/dist/currency/defs/SSP.js.map +1 -0
  567. package/dist/currency/defs/STN.d.ts +15 -0
  568. package/dist/currency/defs/STN.d.ts.map +1 -0
  569. package/dist/currency/defs/STN.js +27 -0
  570. package/dist/currency/defs/STN.js.map +1 -0
  571. package/dist/currency/defs/SVC.d.ts +15 -0
  572. package/dist/currency/defs/SVC.d.ts.map +1 -0
  573. package/dist/currency/defs/SVC.js +27 -0
  574. package/dist/currency/defs/SVC.js.map +1 -0
  575. package/dist/currency/defs/SYP.d.ts +15 -0
  576. package/dist/currency/defs/SYP.d.ts.map +1 -0
  577. package/dist/currency/defs/SYP.js +27 -0
  578. package/dist/currency/defs/SYP.js.map +1 -0
  579. package/dist/currency/defs/SZL.d.ts +15 -0
  580. package/dist/currency/defs/SZL.d.ts.map +1 -0
  581. package/dist/currency/defs/SZL.js +27 -0
  582. package/dist/currency/defs/SZL.js.map +1 -0
  583. package/dist/currency/defs/THB.d.ts +15 -0
  584. package/dist/currency/defs/THB.d.ts.map +1 -0
  585. package/dist/currency/defs/THB.js +27 -0
  586. package/dist/currency/defs/THB.js.map +1 -0
  587. package/dist/currency/defs/TJS.d.ts +15 -0
  588. package/dist/currency/defs/TJS.d.ts.map +1 -0
  589. package/dist/currency/defs/TJS.js +27 -0
  590. package/dist/currency/defs/TJS.js.map +1 -0
  591. package/dist/currency/defs/TMT.d.ts +15 -0
  592. package/dist/currency/defs/TMT.d.ts.map +1 -0
  593. package/dist/currency/defs/TMT.js +27 -0
  594. package/dist/currency/defs/TMT.js.map +1 -0
  595. package/dist/currency/defs/TND.d.ts +15 -0
  596. package/dist/currency/defs/TND.d.ts.map +1 -0
  597. package/dist/currency/defs/TND.js +27 -0
  598. package/dist/currency/defs/TND.js.map +1 -0
  599. package/dist/currency/defs/TOP.d.ts +15 -0
  600. package/dist/currency/defs/TOP.d.ts.map +1 -0
  601. package/dist/currency/defs/TOP.js +27 -0
  602. package/dist/currency/defs/TOP.js.map +1 -0
  603. package/dist/currency/defs/TRY.d.ts +15 -0
  604. package/dist/currency/defs/TRY.d.ts.map +1 -0
  605. package/dist/currency/defs/TRY.js +27 -0
  606. package/dist/currency/defs/TRY.js.map +1 -0
  607. package/dist/currency/defs/TTD.d.ts +15 -0
  608. package/dist/currency/defs/TTD.d.ts.map +1 -0
  609. package/dist/currency/defs/TTD.js +27 -0
  610. package/dist/currency/defs/TTD.js.map +1 -0
  611. package/dist/currency/defs/TWD.d.ts +15 -0
  612. package/dist/currency/defs/TWD.d.ts.map +1 -0
  613. package/dist/currency/defs/TWD.js +27 -0
  614. package/dist/currency/defs/TWD.js.map +1 -0
  615. package/dist/currency/defs/TZS.d.ts +15 -0
  616. package/dist/currency/defs/TZS.d.ts.map +1 -0
  617. package/dist/currency/defs/TZS.js +27 -0
  618. package/dist/currency/defs/TZS.js.map +1 -0
  619. package/dist/currency/defs/UAH.d.ts +15 -0
  620. package/dist/currency/defs/UAH.d.ts.map +1 -0
  621. package/dist/currency/defs/UAH.js +27 -0
  622. package/dist/currency/defs/UAH.js.map +1 -0
  623. package/dist/currency/defs/UGX.d.ts +14 -0
  624. package/dist/currency/defs/UGX.d.ts.map +1 -0
  625. package/dist/currency/defs/UGX.js +23 -0
  626. package/dist/currency/defs/UGX.js.map +1 -0
  627. package/dist/currency/defs/USD.d.ts +15 -0
  628. package/dist/currency/defs/USD.d.ts.map +1 -0
  629. package/dist/currency/defs/USD.js +27 -0
  630. package/dist/currency/defs/USD.js.map +1 -0
  631. package/dist/currency/defs/UYU.d.ts +15 -0
  632. package/dist/currency/defs/UYU.d.ts.map +1 -0
  633. package/dist/currency/defs/UYU.js +27 -0
  634. package/dist/currency/defs/UYU.js.map +1 -0
  635. package/dist/currency/defs/UZS.d.ts +15 -0
  636. package/dist/currency/defs/UZS.d.ts.map +1 -0
  637. package/dist/currency/defs/UZS.js +27 -0
  638. package/dist/currency/defs/UZS.js.map +1 -0
  639. package/dist/currency/defs/VED.d.ts +15 -0
  640. package/dist/currency/defs/VED.d.ts.map +1 -0
  641. package/dist/currency/defs/VED.js +27 -0
  642. package/dist/currency/defs/VED.js.map +1 -0
  643. package/dist/currency/defs/VES.d.ts +15 -0
  644. package/dist/currency/defs/VES.d.ts.map +1 -0
  645. package/dist/currency/defs/VES.js +27 -0
  646. package/dist/currency/defs/VES.js.map +1 -0
  647. package/dist/currency/defs/VND.d.ts +14 -0
  648. package/dist/currency/defs/VND.d.ts.map +1 -0
  649. package/dist/currency/defs/VND.js +23 -0
  650. package/dist/currency/defs/VND.js.map +1 -0
  651. package/dist/currency/defs/VUV.d.ts +14 -0
  652. package/dist/currency/defs/VUV.d.ts.map +1 -0
  653. package/dist/currency/defs/VUV.js +23 -0
  654. package/dist/currency/defs/VUV.js.map +1 -0
  655. package/dist/currency/defs/WST.d.ts +15 -0
  656. package/dist/currency/defs/WST.d.ts.map +1 -0
  657. package/dist/currency/defs/WST.js +27 -0
  658. package/dist/currency/defs/WST.js.map +1 -0
  659. package/dist/currency/defs/XAF.d.ts +14 -0
  660. package/dist/currency/defs/XAF.d.ts.map +1 -0
  661. package/dist/currency/defs/XAF.js +23 -0
  662. package/dist/currency/defs/XAF.js.map +1 -0
  663. package/dist/currency/defs/XCD.d.ts +15 -0
  664. package/dist/currency/defs/XCD.d.ts.map +1 -0
  665. package/dist/currency/defs/XCD.js +27 -0
  666. package/dist/currency/defs/XCD.js.map +1 -0
  667. package/dist/currency/defs/XOF.d.ts +14 -0
  668. package/dist/currency/defs/XOF.d.ts.map +1 -0
  669. package/dist/currency/defs/XOF.js +23 -0
  670. package/dist/currency/defs/XOF.js.map +1 -0
  671. package/dist/currency/defs/XPF.d.ts +14 -0
  672. package/dist/currency/defs/XPF.d.ts.map +1 -0
  673. package/dist/currency/defs/XPF.js +23 -0
  674. package/dist/currency/defs/XPF.js.map +1 -0
  675. package/dist/currency/defs/YER.d.ts +15 -0
  676. package/dist/currency/defs/YER.d.ts.map +1 -0
  677. package/dist/currency/defs/YER.js +27 -0
  678. package/dist/currency/defs/YER.js.map +1 -0
  679. package/dist/currency/defs/ZAR.d.ts +15 -0
  680. package/dist/currency/defs/ZAR.d.ts.map +1 -0
  681. package/dist/currency/defs/ZAR.js +27 -0
  682. package/dist/currency/defs/ZAR.js.map +1 -0
  683. package/dist/currency/defs/ZMW.d.ts +15 -0
  684. package/dist/currency/defs/ZMW.d.ts.map +1 -0
  685. package/dist/currency/defs/ZMW.js +27 -0
  686. package/dist/currency/defs/ZMW.js.map +1 -0
  687. package/dist/currency/defs/index.d.ts +156 -0
  688. package/dist/currency/defs/index.d.ts.map +1 -0
  689. package/dist/currency/defs/index.js +157 -0
  690. package/dist/currency/defs/index.js.map +1 -0
  691. package/dist/currency/index.d.ts +3 -0
  692. package/dist/currency/index.d.ts.map +1 -0
  693. package/dist/currency/index.js +3 -0
  694. package/dist/currency/index.js.map +1 -0
  695. package/dist/currency/lookup.d.ts +6 -0
  696. package/dist/currency/lookup.d.ts.map +1 -0
  697. package/dist/currency/lookup.js +19 -0
  698. package/dist/currency/lookup.js.map +1 -0
  699. package/dist/currency/lookup.test.d.ts +2 -0
  700. package/dist/currency/lookup.test.d.ts.map +1 -0
  701. package/dist/currency/lookup.test.js +24 -0
  702. package/dist/currency/lookup.test.js.map +1 -0
  703. package/dist/index.d.ts +13 -0
  704. package/dist/index.d.ts.map +1 -0
  705. package/dist/index.js +5 -0
  706. package/dist/index.js.map +1 -0
  707. package/dist/lib/NonNegativeRational.d.ts +121 -0
  708. package/dist/lib/NonNegativeRational.d.ts.map +1 -0
  709. package/dist/lib/NonNegativeRational.js +149 -0
  710. package/dist/lib/NonNegativeRational.js.map +1 -0
  711. package/dist/lib/NonNegativeRational.test.d.ts +2 -0
  712. package/dist/lib/NonNegativeRational.test.d.ts.map +1 -0
  713. package/dist/lib/NonNegativeRational.test.js +347 -0
  714. package/dist/lib/NonNegativeRational.test.js.map +1 -0
  715. package/dist/lib/helpers.d.ts +29 -0
  716. package/dist/lib/helpers.d.ts.map +1 -0
  717. package/dist/lib/helpers.js +35 -0
  718. package/dist/lib/helpers.js.map +1 -0
  719. package/dist/lib/helpers.test.d.ts +2 -0
  720. package/dist/lib/helpers.test.d.ts.map +1 -0
  721. package/dist/lib/helpers.test.js +39 -0
  722. package/dist/lib/helpers.test.js.map +1 -0
  723. package/dist/lib/number.d.ts +54 -0
  724. package/dist/lib/number.d.ts.map +1 -0
  725. package/dist/lib/number.js +70 -0
  726. package/dist/lib/number.js.map +1 -0
  727. package/dist/lib/number.test.d.ts +2 -0
  728. package/dist/lib/number.test.d.ts.map +1 -0
  729. package/dist/lib/number.test.js +82 -0
  730. package/dist/lib/number.test.js.map +1 -0
  731. package/dist/scripts/generate-currency-defs/data/currency-block-list.d.ts +2 -0
  732. package/dist/scripts/generate-currency-defs/data/currency-block-list.d.ts.map +1 -0
  733. package/dist/scripts/generate-currency-defs/data/currency-block-list.js +16 -0
  734. package/dist/scripts/generate-currency-defs/data/currency-block-list.js.map +1 -0
  735. package/dist/scripts/generate-currency-defs/data/currency-check-list.d.ts +2 -0
  736. package/dist/scripts/generate-currency-defs/data/currency-check-list.d.ts.map +1 -0
  737. package/dist/scripts/generate-currency-defs/data/currency-check-list.js +67 -0
  738. package/dist/scripts/generate-currency-defs/data/currency-check-list.js.map +1 -0
  739. package/dist/scripts/generate-currency-defs/data/currency-unit-names.d.ts +2 -0
  740. package/dist/scripts/generate-currency-defs/data/currency-unit-names.d.ts.map +1 -0
  741. package/dist/scripts/generate-currency-defs/data/currency-unit-names.js +683 -0
  742. package/dist/scripts/generate-currency-defs/data/currency-unit-names.js.map +1 -0
  743. package/dist/scripts/generate-currency-defs/helpers.d.ts +17 -0
  744. package/dist/scripts/generate-currency-defs/helpers.d.ts.map +1 -0
  745. package/dist/scripts/generate-currency-defs/helpers.js +52 -0
  746. package/dist/scripts/generate-currency-defs/helpers.js.map +1 -0
  747. package/dist/scripts/generate-currency-defs/helpers.test.d.ts +2 -0
  748. package/dist/scripts/generate-currency-defs/helpers.test.d.ts.map +1 -0
  749. package/dist/scripts/generate-currency-defs/helpers.test.js +74 -0
  750. package/dist/scripts/generate-currency-defs/helpers.test.js.map +1 -0
  751. package/dist/scripts/generate-currency-defs/index.d.ts +5 -0
  752. package/dist/scripts/generate-currency-defs/index.d.ts.map +1 -0
  753. package/dist/scripts/generate-currency-defs/index.js +92 -0
  754. package/dist/scripts/generate-currency-defs/index.js.map +1 -0
  755. package/package.json +784 -0
@@ -0,0 +1,347 @@
1
+ import { Effect } from 'effect';
2
+ import { describe, expect, it, vi } from 'vitest';
3
+ import * as unit from './NonNegativeRational.js';
4
+ import { NAT_ONE } from './number.js';
5
+ describe('NonNegativeRational', () => {
6
+ describe('constructor', () => {
7
+ it('should create a NonNegativeRational with valid positive integers', () => {
8
+ const rational = unit.NonNegativeRational(123, 456);
9
+ expect(rational).toMatchObject({
10
+ n: 123,
11
+ d: 456,
12
+ });
13
+ });
14
+ it('should create a NonNegativeRational with zero', () => {
15
+ const rational = unit.NonNegativeRational(0, 456);
16
+ expect(rational).toMatchObject({
17
+ n: 0,
18
+ d: 456,
19
+ });
20
+ });
21
+ });
22
+ describe('fromNumberPair', () => {
23
+ it('should create a NonNegativeRational with valid number inputs', () => {
24
+ expect(Effect.runSync(unit.fromNumberPair(123, 456))).toStrictEqual(unit.NonNegativeRational(123, 456));
25
+ });
26
+ it('should create a NonNegativeRational with valid string inputs', () => {
27
+ expect(Effect.runSync(unit.fromNumberPair('123', '456'))).toStrictEqual(unit.NonNegativeRational(123, 456));
28
+ });
29
+ it('should create a NonNegativeRational with mixed string and number inputs', () => {
30
+ expect(Effect.runSync(unit.fromNumberPair(123, '456'))).toStrictEqual(unit.NonNegativeRational(123, 456));
31
+ expect(Effect.runSync(unit.fromNumberPair('123', 456))).toStrictEqual(unit.NonNegativeRational(123, 456));
32
+ });
33
+ it('should create a NonNegativeRational with zero numerator', () => {
34
+ expect(Effect.runSync(unit.fromNumberPair(0, 456))).toStrictEqual(unit.NonNegativeRational(0, 456));
35
+ expect(Effect.runSync(unit.fromNumberPair('0', '456'))).toStrictEqual(unit.NonNegativeRational(0, 456));
36
+ });
37
+ it('should return an error for negative numerator', () => {
38
+ expect(() => Effect.runSync(unit.fromNumberPair(-123, 456))).toThrow('Expected a non-negative number');
39
+ expect(() => Effect.runSync(unit.fromNumberPair('-123', '456'))).toThrow('Expected a non-negative number');
40
+ });
41
+ it('should return an error for zero denominator', () => {
42
+ expect(() => Effect.runSync(unit.fromNumberPair(123, 0))).toThrow('Expected a positive number');
43
+ expect(() => Effect.runSync(unit.fromNumberPair('123', '0'))).toThrow('Expected a positive number');
44
+ });
45
+ it('should return an error for negative denominator', () => {
46
+ expect(() => Effect.runSync(unit.fromNumberPair(123, -456))).toThrow('Expected a positive number');
47
+ expect(() => Effect.runSync(unit.fromNumberPair('123', '-456'))).toThrow('Expected a positive number');
48
+ });
49
+ // it('should return an error for NonNegativeInteger parse error', () => {
50
+ // vi.spyOn(Schema, 'decode').mockReturnValueOnce(() => Effect.fail(new Error('Boom!')));
51
+ //
52
+ // expect(() => Effect.runSync(unit.fromNumberPair(123, 456))).toThrow('Boom!');
53
+ // });
54
+ });
55
+ describe('fromNonNegativeIntegerString', () => {
56
+ it('should convert integer strings correctly', () => {
57
+ expect(Effect.runSync(unit.fromNonNegativeIntegerString('5'))).toStrictEqual(unit.NonNegativeRational(5, NAT_ONE));
58
+ expect(Effect.runSync(unit.fromNonNegativeIntegerString('0'))).toStrictEqual(unit.NonNegativeRational(0, NAT_ONE));
59
+ });
60
+ it('should fail on invalid input', () => {
61
+ expect(() => Effect.runSync(unit.fromNonNegativeIntegerString('1.2'))).toThrow('Expected an integer');
62
+ });
63
+ });
64
+ describe('fromNonNegativeFloatString', () => {
65
+ it('should convert decimal numbers correctly', () => {
66
+ expect(Effect.runSync(unit.fromNonNegativeFloatString('1.2'))).toStrictEqual(unit.NonNegativeRational(12, 10));
67
+ expect(Effect.runSync(unit.fromNonNegativeFloatString('1.23'))).toStrictEqual(unit.NonNegativeRational(123, 100));
68
+ expect(Effect.runSync(unit.fromNonNegativeFloatString('1.234'))).toStrictEqual(unit.NonNegativeRational(1234, 1000));
69
+ expect(Effect.runSync(unit.fromNonNegativeFloatString('123.456'))).toStrictEqual(unit.NonNegativeRational(123456, 1000));
70
+ expect(Effect.runSync(unit.fromNonNegativeFloatString('0.001'))).toStrictEqual(unit.NonNegativeRational(1, 1000));
71
+ });
72
+ it('should fail on invalid input', () => {
73
+ expect(() => Effect.runSync(unit.fromNonNegativeFloatString('12'))).toThrow('Expected a float string');
74
+ });
75
+ });
76
+ describe('fromNonNegativeNumber', () => {
77
+ it('should convert decimal numbers correctly', () => {
78
+ expect(Effect.runSync(unit.fromNonNegativeNumber(1.2))).toStrictEqual(unit.NonNegativeRational(12, 10));
79
+ expect(Effect.runSync(unit.fromNonNegativeNumber(1.23))).toStrictEqual(unit.NonNegativeRational(123, 100));
80
+ expect(Effect.runSync(unit.fromNonNegativeNumber(1.234))).toStrictEqual(unit.NonNegativeRational(1234, 1000));
81
+ expect(Effect.runSync(unit.fromNonNegativeNumber(123.456))).toStrictEqual(unit.NonNegativeRational(123456, 1000));
82
+ expect(Effect.runSync(unit.fromNonNegativeNumber(0.001))).toStrictEqual(unit.NonNegativeRational(1, 1000));
83
+ });
84
+ it('should convert decimal number with float error', () => {
85
+ expect(Effect.runSync(unit.fromNonNegativeNumber(1.11))).toStrictEqual(unit.NonNegativeRational(111, 100));
86
+ });
87
+ it('should convert integer numbers correctly', () => {
88
+ expect(Effect.runSync(unit.fromNonNegativeNumber(5))).toStrictEqual(unit.NonNegativeRational(5, 1));
89
+ expect(Effect.runSync(unit.fromNonNegativeNumber(0))).toStrictEqual(unit.NonNegativeRational(0, 1));
90
+ });
91
+ it('should handle string inputs', () => {
92
+ expect(Effect.runSync(unit.fromNonNegativeNumber('7.89'))).toStrictEqual(unit.NonNegativeRational(789, 100));
93
+ expect(Effect.runSync(unit.fromNonNegativeNumber('.89'))).toStrictEqual(unit.NonNegativeRational(89, 100));
94
+ });
95
+ it('should return an error for negative numbers', () => {
96
+ expect(() => Effect.runSync(unit.fromNonNegativeNumber(-1.23))).toThrow('Expected a non-negative number');
97
+ });
98
+ });
99
+ describe('toLowestCommonDenominator', () => {
100
+ it('should convert two rationals to the lowest common denominator', () => {
101
+ const a = unit.NonNegativeRational(2, 3);
102
+ const b = unit.NonNegativeRational(5, 7);
103
+ const [lcdA, lcdB, lcd] = Effect.runSync(unit.getLowestCommonDenominator(a, b));
104
+ expect(lcd).toEqual(21); // LCM of 3 and 7 is 21
105
+ expect(lcdA).toStrictEqual(unit.NonNegativeRational(14, 21)); // 2/3 * 7/7 = 14/21
106
+ expect(lcdB).toStrictEqual(unit.NonNegativeRational(15, 21)); // 5/7 * 3/3 = 15/21
107
+ });
108
+ it('should handle rationals with the same denominator', () => {
109
+ const a = unit.NonNegativeRational(2, 5);
110
+ const b = unit.NonNegativeRational(3, 5);
111
+ const [lcdA, lcdB, lcd] = Effect.runSync(unit.getLowestCommonDenominator(a, b));
112
+ expect(lcd).toEqual(5); // LCM of 5 and 5 is 5
113
+ expect(lcdA).toStrictEqual(unit.NonNegativeRational(2, 5)); // No change needed
114
+ expect(lcdB).toStrictEqual(unit.NonNegativeRational(3, 5)); // No change needed
115
+ });
116
+ it('should handle when one denominator is a multiple of the other', () => {
117
+ const a = unit.NonNegativeRational(2, 4);
118
+ const b = unit.NonNegativeRational(3, 8);
119
+ const [lcdA, lcdB, lcd] = Effect.runSync(unit.getLowestCommonDenominator(a, b));
120
+ expect(lcd).toEqual(8); // LCM of 4 and 8 is 8
121
+ expect(lcdA).toStrictEqual(unit.NonNegativeRational(4, 8)); // 2/4 * 2/2 = 4/8
122
+ expect(lcdB).toStrictEqual(unit.NonNegativeRational(3, 8)); // No change needed
123
+ });
124
+ it('should handle zero numerators', () => {
125
+ const a = unit.NonNegativeRational(0, 3);
126
+ const b = unit.NonNegativeRational(5, 7);
127
+ const [lcdA, lcdB, lcd] = Effect.runSync(unit.getLowestCommonDenominator(a, b));
128
+ expect(lcd).toEqual(21); // LCM of 3 and 7 is 21
129
+ expect(lcdA).toStrictEqual(unit.NonNegativeRational(0, 21)); // 0/3 * 7/7 = 0/21
130
+ expect(lcdB).toStrictEqual(unit.NonNegativeRational(15, 21)); // 5/7 * 3/3 = 15/21
131
+ // Both numerators are zero
132
+ const c = unit.NonNegativeRational(0, 4);
133
+ const d = unit.NonNegativeRational(0, 6);
134
+ const [lcdC, lcdD, lcdCD] = Effect.runSync(unit.getLowestCommonDenominator(c, d));
135
+ expect(lcdCD).toEqual(12); // LCM of 4 and 6 is 12
136
+ expect(lcdC).toStrictEqual(unit.NonNegativeRational(0, 12)); // 0/4 * 3/3 = 0/12
137
+ expect(lcdD).toStrictEqual(unit.NonNegativeRational(0, 12)); // 0/6 * 2/2 = 0/12
138
+ });
139
+ it('should handle large denominators', () => {
140
+ const a = unit.NonNegativeRational(7, 360);
141
+ const b = unit.NonNegativeRational(13, 420);
142
+ const [lcdA, lcdB, lcd] = Effect.runSync(unit.getLowestCommonDenominator(a, b));
143
+ expect(lcd).toEqual(2520); // LCM of 360 and 420 is 2520
144
+ expect(lcdA).toStrictEqual(unit.NonNegativeRational(49, 2520)); // 7/360 * 7/7 = 49/2520
145
+ expect(lcdB).toStrictEqual(unit.NonNegativeRational(78, 2520)); // 13/420 * 6/6 = 78/2520
146
+ });
147
+ it('should handle rationals that are already in lowest form', () => {
148
+ // Create two rationals that already have the LCD
149
+ const lcd = 12;
150
+ const a = unit.NonNegativeRational(5, lcd);
151
+ const b = unit.NonNegativeRational(7, lcd);
152
+ const [lcdA, lcdB, resultLcd] = Effect.runSync(unit.getLowestCommonDenominator(a, b));
153
+ expect(resultLcd).toEqual(lcd);
154
+ expect(lcdA).toStrictEqual(a); // Should be unchanged
155
+ expect(lcdB).toStrictEqual(b); // Should be unchanged
156
+ });
157
+ // it('ARTIFICIAL: should fail as expected given a NatParse error', () => {
158
+ // vi.spyOn(number, 'Nat').mockReturnValueOnce(Effect.fail(new Error('Boom!')));
159
+ //
160
+ // const a = unit.NonNegativeRational(2 as NonNegativeInteger, 3 as Nat);
161
+ // const b = unit.NonNegativeRational(5 as NonNegativeInteger, 7 as Nat);
162
+ // const actual = unit.getLowestCommonDenominator(a, b);
163
+ //
164
+ // expect(() => Effect.runSync(actual)).toThrow('Boom!');
165
+ // });
166
+ // it('ARTIFICIAL: should fail as expected given a NatParse error', () => {
167
+ // vi.spyOn(number, 'Nat')
168
+ // .mockReturnValueOnce(Effect.succeed(7 as Nat))
169
+ // .mockReturnValueOnce(Effect.fail(new Error('Kaboom!')));
170
+ //
171
+ // const a = unit.NonNegativeRational(2 as NonNegativeInteger, 3 as Nat);
172
+ // const b = unit.NonNegativeRational(5 as NonNegativeInteger, 7 as Nat);
173
+ // const actual = unit.getLowestCommonDenominator(a, b);
174
+ //
175
+ // expect(() => Effect.runSync(actual)).toThrow('Kaboom!');
176
+ // });
177
+ //
178
+ // it('ARTIFICIAL: should fail as expected given a bad mul calculation', () => {
179
+ // vi.spyOn(number, 'lcm').mockReturnValueOnce(Effect.succeed(3 as Nat));
180
+ //
181
+ // const a = unit.NonNegativeRational(2 as NonNegativeInteger, 3 as Nat);
182
+ // const b = unit.NonNegativeRational(5 as NonNegativeInteger, 7 as Nat);
183
+ // const actual = unit.getLowestCommonDenominator(a, b);
184
+ //
185
+ // expect(() => Effect.runSync(actual)).toThrow('invalid_type');
186
+ // });
187
+ //
188
+ // it.skip('ARTIFICIAL: should fail as expected given a bad mul calculation', () => {
189
+ // vi.spyOn(unit, 'mul')
190
+ // .mockReturnValueOnce(Effect.succeed(unit.NonNegativeRational(14 as NonNegativeInteger, 21 as Nat)))
191
+ // .mockReturnValueOnce(Effect.fail(new Error('Kaboom!')));
192
+ //
193
+ // const a = unit.NonNegativeRational(2 as NonNegativeInteger, 3 as Nat);
194
+ // const b = unit.NonNegativeRational(5 as NonNegativeInteger, 7 as Nat);
195
+ // const actual = unit.getLowestCommonDenominator(a, b);
196
+ //
197
+ // expect(() => Effect.runSync(actual)).toThrow('Kaboom!');
198
+ // });
199
+ });
200
+ describe('reciprocal', () => {
201
+ it('should work as expected with non-zero values', () => {
202
+ const x = unit.NonNegativeRational(123, 456);
203
+ expect(Effect.runSync(unit.reciprocal(x))).toStrictEqual(unit.NonNegativeRational(456, 123));
204
+ });
205
+ it('should fail with zero', () => {
206
+ const x = unit.NonNegativeRational(0, 456);
207
+ expect(() => Effect.runSync(unit.reciprocal(x))).toThrow('Expected a positive number');
208
+ });
209
+ });
210
+ describe('mul', () => {
211
+ it('should multiply two rationals correctly', () => {
212
+ const a = unit.NonNegativeRational(2, 3);
213
+ const b = unit.NonNegativeRational(4, 5);
214
+ expect(Effect.runSync(unit.mul(a, b))).toStrictEqual(unit.NonNegativeRational(8, 15));
215
+ });
216
+ it('should handle zero in numerator', () => {
217
+ const a = unit.NonNegativeRational(0, 3);
218
+ const b = unit.NonNegativeRational(4, 5);
219
+ expect(Effect.runSync(unit.mul(a, b))).toStrictEqual(unit.NonNegativeRational(0, 15));
220
+ });
221
+ });
222
+ describe('mulNat', () => {
223
+ it('should multiply a rational by a natural number', () => {
224
+ const a = unit.NonNegativeRational(2, 3);
225
+ expect(Effect.runSync(unit.mulNat(a, 4))).toStrictEqual(unit.NonNegativeRational(8, 3));
226
+ });
227
+ it('should handle zero in numerator', () => {
228
+ const a = unit.NonNegativeRational(0, 3);
229
+ expect(Effect.runSync(unit.mulNat(a, 4))).toStrictEqual(unit.NonNegativeRational(0, 3));
230
+ });
231
+ });
232
+ describe('mulNonNegativeNumber', () => {
233
+ it('should multiply a rational by a non-negative number', () => {
234
+ const a = unit.NonNegativeRational(2, 3);
235
+ // 1.5 is converted to 15/10, so the result is (2/3) * (15/10) = 30/30
236
+ expect(Effect.runSync(unit.mulNonNegativeNumber(a, 1.5))).toStrictEqual(unit.NonNegativeRational(30, 30));
237
+ });
238
+ it('should handle zero in either operand', () => {
239
+ const a = unit.NonNegativeRational(2, 3);
240
+ // 0 is converted to 0/1, so the result is (2/3) * (0/1) = 0/3
241
+ expect(Effect.runSync(unit.mulNonNegativeNumber(a, 0))).toStrictEqual(unit.NonNegativeRational(0, 3));
242
+ const b = unit.NonNegativeRational(0, 3);
243
+ // 1.5 is converted to 15/10, so the result is (0/3) * (15/10) = 0/30
244
+ expect(Effect.runSync(unit.mulNonNegativeNumber(b, 1.5))).toStrictEqual(unit.NonNegativeRational(0, 30));
245
+ });
246
+ });
247
+ describe('div', () => {
248
+ it('should divide two rationals correctly', () => {
249
+ const a = unit.NonNegativeRational(2, 3);
250
+ const b = unit.NonNegativeRational(4, 5);
251
+ expect(Effect.runSync(unit.div(a, b))).toStrictEqual(unit.NonNegativeRational(10, 12));
252
+ });
253
+ it('should handle zero in numerator of first operand', () => {
254
+ const a = unit.NonNegativeRational(0, 3);
255
+ const b = unit.NonNegativeRational(4, 5);
256
+ expect(Effect.runSync(unit.div(a, b))).toStrictEqual(unit.NonNegativeRational(0, 12));
257
+ });
258
+ it('should throw when dividing by zero', () => {
259
+ const a = unit.NonNegativeRational(2, 3);
260
+ const b = unit.NonNegativeRational(0, 5);
261
+ expect(() => Effect.runSync(unit.div(a, b))).toThrow('Expected a positive number');
262
+ });
263
+ });
264
+ describe('divNat', () => {
265
+ it('should divide a rational by a natural number', () => {
266
+ const a = unit.NonNegativeRational(2, 3);
267
+ expect(Effect.runSync(unit.divNat(a, 4))).toStrictEqual(unit.NonNegativeRational(2, 12));
268
+ });
269
+ it('should handle zero in numerator', () => {
270
+ const a = unit.NonNegativeRational(0, 3);
271
+ expect(Effect.runSync(unit.divNat(a, 4))).toStrictEqual(unit.NonNegativeRational(0, 12));
272
+ });
273
+ });
274
+ describe('divNonNegativeNumber', () => {
275
+ it('should divide a rational by a non-negative number', () => {
276
+ const a = unit.NonNegativeRational(2, 3);
277
+ // 0.5 is converted to 5/10, so the result is (2/3) / (5/10) = (2/3) * (10/5) = 20/15
278
+ expect(Effect.runSync(unit.divNonNegativeNumber(a, 0.5))).toStrictEqual(unit.NonNegativeRational(20, 15));
279
+ });
280
+ it('should handle zero in numerator', () => {
281
+ const a = unit.NonNegativeRational(0, 3);
282
+ // 0.5 is converted to 5/10, so the result is (0/3) / (5/10) = (0/3) * (10/5) = 0/15
283
+ expect(Effect.runSync(unit.divNonNegativeNumber(a, 0.5))).toStrictEqual(unit.NonNegativeRational(0, 15));
284
+ });
285
+ it('should throw when dividing by zero', () => {
286
+ const a = unit.NonNegativeRational(2, 3);
287
+ expect(() => Effect.runSync(unit.divNonNegativeNumber(a, 0))).toThrow('Expected a positive number');
288
+ });
289
+ });
290
+ describe('add', () => {
291
+ it('should add two rationals correctly', () => {
292
+ const a = unit.NonNegativeRational(1, 2);
293
+ const b = unit.NonNegativeRational(1, 3);
294
+ expect(Effect.runSync(unit.add(a, b))).toStrictEqual(unit.NonNegativeRational(5, 6));
295
+ });
296
+ it('should add two rationals correctly', () => {
297
+ const a = unit.NonNegativeRational(150, 5);
298
+ const b = unit.NonNegativeRational(150, 3);
299
+ expect(Effect.runSync(unit.add(a, b))).toStrictEqual(unit.NonNegativeRational(1200, 15));
300
+ });
301
+ it('should handle zero in one operand', () => {
302
+ const a = unit.NonNegativeRational(1, 2);
303
+ const b = unit.NonNegativeRational(0, 3);
304
+ expect(Effect.runSync(unit.add(a, b))).toStrictEqual(unit.NonNegativeRational(3, 6));
305
+ });
306
+ it('should handle zero in both operands', () => {
307
+ const a = unit.NonNegativeRational(0, 2);
308
+ const b = unit.NonNegativeRational(0, 3);
309
+ expect(Effect.runSync(unit.add(a, b))).toStrictEqual(unit.NonNegativeRational(0, 6));
310
+ });
311
+ it.skip('ARTIFICIAL: should fail as expected given a toLowestCommonDenominator error', () => {
312
+ vi.spyOn(unit, 'getLowestCommonDenominator').mockReturnValueOnce(Effect.fail(new Error('Boom!')));
313
+ const a = unit.NonNegativeRational(1, 2);
314
+ const b = unit.NonNegativeRational(1, 3);
315
+ expect(() => Effect.runSync(unit.add(a, b))).toThrow('Boom!');
316
+ });
317
+ });
318
+ describe('sub', () => {
319
+ it('should subtract two rationals correctly', () => {
320
+ const a = unit.NonNegativeRational(3, 4);
321
+ const b = unit.NonNegativeRational(1, 4);
322
+ expect(Effect.runSync(unit.sub(a, b))).toStrictEqual(unit.NonNegativeRational(2, 4));
323
+ });
324
+ it('should handle equal values', () => {
325
+ const a = unit.NonNegativeRational(1, 2);
326
+ const b = unit.NonNegativeRational(1, 2);
327
+ expect(Effect.runSync(unit.sub(a, b))).toStrictEqual(unit.NonNegativeRational(0, 2));
328
+ });
329
+ it('should handle zero in subtrahend', () => {
330
+ const a = unit.NonNegativeRational(1, 2);
331
+ const b = unit.NonNegativeRational(0, 3);
332
+ expect(Effect.runSync(unit.sub(a, b))).toStrictEqual(unit.NonNegativeRational(3, 6));
333
+ });
334
+ it('should throw when result would be negative', () => {
335
+ const a = unit.NonNegativeRational(1, 4);
336
+ const b = unit.NonNegativeRational(3, 4);
337
+ expect(() => Effect.runSync(unit.sub(a, b))).toThrow('Expected a non-negative number');
338
+ });
339
+ it.skip('ARTIFICIAL: should fail as expected given a toLowestCommonDenominator error', () => {
340
+ vi.spyOn(unit, 'getLowestCommonDenominator').mockReturnValueOnce(Effect.fail(new Error('Boom!')));
341
+ const a = unit.NonNegativeRational(1, 2);
342
+ const b = unit.NonNegativeRational(1, 3);
343
+ expect(() => Effect.runSync(unit.sub(a, b))).toThrow('Boom!');
344
+ });
345
+ });
346
+ });
347
+ //# sourceMappingURL=NonNegativeRational.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NonNegativeRational.test.js","sourceRoot":"","sources":["../../src/lib/NonNegativeRational.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAElD,OAAO,KAAK,IAAI,MAAM,0BAA0B,CAAC;AACjD,OAAO,EAAY,OAAO,EAA2B,MAAM,aAAa,CAAC;AAEzE,QAAQ,CAAC,qBAAqB,EAAE,GAAG,EAAE;IACnC,QAAQ,CAAC,aAAa,EAAE,GAAG,EAAE;QAC3B,EAAE,CAAC,kEAAkE,EAAE,GAAG,EAAE;YAC1E,MAAM,QAAQ,GAAG,IAAI,CAAC,mBAAmB,CAAC,GAAyB,EAAE,GAAU,CAAC,CAAC;YACjF,MAAM,CAAC,QAAQ,CAAC,CAAC,aAAa,CAAC;gBAC7B,CAAC,EAAE,GAAG;gBACN,CAAC,EAAE,GAAG;aACP,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,+CAA+C,EAAE,GAAG,EAAE;YACvD,MAAM,QAAQ,GAAG,IAAI,CAAC,mBAAmB,CAAC,CAAuB,EAAE,GAAU,CAAC,CAAC;YAC/E,MAAM,CAAC,QAAQ,CAAC,CAAC,aAAa,CAAC;gBAC7B,CAAC,EAAE,CAAC;gBACJ,CAAC,EAAE,GAAG;aACP,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,gBAAgB,EAAE,GAAG,EAAE;QAC9B,EAAE,CAAC,8DAA8D,EAAE,GAAG,EAAE;YACtE,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,aAAa,CACjE,IAAI,CAAC,mBAAmB,CAAC,GAAyB,EAAE,GAAU,CAAC,CAChE,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,8DAA8D,EAAE,GAAG,EAAE;YACtE,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,aAAa,CACrE,IAAI,CAAC,mBAAmB,CAAC,GAAyB,EAAE,GAAU,CAAC,CAChE,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,yEAAyE,EAAE,GAAG,EAAE;YACjF,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,aAAa,CACnE,IAAI,CAAC,mBAAmB,CAAC,GAAyB,EAAE,GAAU,CAAC,CAChE,CAAC;YACF,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,aAAa,CACnE,IAAI,CAAC,mBAAmB,CAAC,GAAyB,EAAE,GAAU,CAAC,CAChE,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,yDAAyD,EAAE,GAAG,EAAE;YACjE,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,aAAa,CAC/D,IAAI,CAAC,mBAAmB,CAAC,CAAuB,EAAE,GAAU,CAAC,CAC9D,CAAC;YACF,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,aAAa,CACnE,IAAI,CAAC,mBAAmB,CAAC,CAAuB,EAAE,GAAU,CAAC,CAC9D,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,+CAA+C,EAAE,GAAG,EAAE;YACvD,MAAM,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,gCAAgC,CAAC,CAAC;YAEvG,MAAM,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,gCAAgC,CAAC,CAAC;QAC7G,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,6CAA6C,EAAE,GAAG,EAAE;YACrD,MAAM,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,4BAA4B,CAAC,CAAC;YAEhG,MAAM,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,4BAA4B,CAAC,CAAC;QACtG,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,iDAAiD,EAAE,GAAG,EAAE;YACzD,MAAM,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,4BAA4B,CAAC,CAAC;YAEnG,MAAM,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,4BAA4B,CAAC,CAAC;QACzG,CAAC,CAAC,CAAC;QAEH,0EAA0E;QAC1E,2FAA2F;QAC3F,EAAE;QACF,kFAAkF;QAClF,MAAM;IACR,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,8BAA8B,EAAE,GAAG,EAAE;QAC5C,EAAE,CAAC,0CAA0C,EAAE,GAAG,EAAE;YAClD,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,4BAA4B,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,aAAa,CAC1E,IAAI,CAAC,mBAAmB,CAAC,CAAuB,EAAE,OAAO,CAAC,CAC3D,CAAC;YACF,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,4BAA4B,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,aAAa,CAC1E,IAAI,CAAC,mBAAmB,CAAC,CAAuB,EAAE,OAAO,CAAC,CAC3D,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,8BAA8B,EAAE,GAAG,EAAE;YACtC,MAAM,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,4BAA4B,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAC;QACxG,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,4BAA4B,EAAE,GAAG,EAAE;QAC1C,EAAE,CAAC,0CAA0C,EAAE,GAAG,EAAE;YAClD,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,0BAA0B,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,aAAa,CAC1E,IAAI,CAAC,mBAAmB,CAAC,EAAwB,EAAE,EAAS,CAAC,CAC9D,CAAC;YACF,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,0BAA0B,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,aAAa,CAC3E,IAAI,CAAC,mBAAmB,CAAC,GAAyB,EAAE,GAAU,CAAC,CAChE,CAAC;YACF,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,0BAA0B,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,aAAa,CAC5E,IAAI,CAAC,mBAAmB,CAAC,IAA0B,EAAE,IAAW,CAAC,CAClE,CAAC;YACF,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,0BAA0B,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,aAAa,CAC9E,IAAI,CAAC,mBAAmB,CAAC,MAA4B,EAAE,IAAW,CAAC,CACpE,CAAC;YACF,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,0BAA0B,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,aAAa,CAC5E,IAAI,CAAC,mBAAmB,CAAC,CAAuB,EAAE,IAAW,CAAC,CAC/D,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,8BAA8B,EAAE,GAAG,EAAE;YACtC,MAAM,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,0BAA0B,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,yBAAyB,CAAC,CAAC;QACzG,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,uBAAuB,EAAE,GAAG,EAAE;QACrC,EAAE,CAAC,0CAA0C,EAAE,GAAG,EAAE;YAClD,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,aAAa,CACnE,IAAI,CAAC,mBAAmB,CAAC,EAAwB,EAAE,EAAS,CAAC,CAC9D,CAAC;YACF,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,aAAa,CACpE,IAAI,CAAC,mBAAmB,CAAC,GAAyB,EAAE,GAAU,CAAC,CAChE,CAAC;YACF,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,aAAa,CACrE,IAAI,CAAC,mBAAmB,CAAC,IAA0B,EAAE,IAAW,CAAC,CAClE,CAAC;YACF,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,aAAa,CACvE,IAAI,CAAC,mBAAmB,CAAC,MAA4B,EAAE,IAAW,CAAC,CACpE,CAAC;YACF,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,aAAa,CACrE,IAAI,CAAC,mBAAmB,CAAC,CAAuB,EAAE,IAAW,CAAC,CAC/D,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,gDAAgD,EAAE,GAAG,EAAE;YACxD,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,aAAa,CACpE,IAAI,CAAC,mBAAmB,CAAC,GAAyB,EAAE,GAAU,CAAC,CAChE,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,0CAA0C,EAAE,GAAG,EAAE;YAClD,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,CACjE,IAAI,CAAC,mBAAmB,CAAC,CAAuB,EAAE,CAAQ,CAAC,CAC5D,CAAC;YACF,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,CACjE,IAAI,CAAC,mBAAmB,CAAC,CAAuB,EAAE,CAAQ,CAAC,CAC5D,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,6BAA6B,EAAE,GAAG,EAAE;YACrC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,aAAa,CACtE,IAAI,CAAC,mBAAmB,CAAC,GAAyB,EAAE,GAAU,CAAC,CAChE,CAAC;YAEF,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,aAAa,CACrE,IAAI,CAAC,mBAAmB,CAAC,EAAwB,EAAE,GAAU,CAAC,CAC/D,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,6CAA6C,EAAE,GAAG,EAAE;YACrD,MAAM,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,gCAAgC,CAAC,CAAC;QAC5G,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,2BAA2B,EAAE,GAAG,EAAE;QACzC,EAAE,CAAC,+DAA+D,EAAE,GAAG,EAAE;YACvE,MAAM,CAAC,GAAG,IAAI,CAAC,mBAAmB,CAAC,CAAuB,EAAE,CAAQ,CAAC,CAAC;YACtE,MAAM,CAAC,GAAG,IAAI,CAAC,mBAAmB,CAAC,CAAuB,EAAE,CAAQ,CAAC,CAAC;YACtE,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YAEhF,MAAM,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,uBAAuB;YAChD,MAAM,CAAC,IAAI,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,mBAAmB,CAAC,EAAwB,EAAE,EAAS,CAAC,CAAC,CAAC,CAAC,oBAAoB;YAC/G,MAAM,CAAC,IAAI,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,mBAAmB,CAAC,EAAwB,EAAE,EAAS,CAAC,CAAC,CAAC,CAAC,oBAAoB;QACjH,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,mDAAmD,EAAE,GAAG,EAAE;YAC3D,MAAM,CAAC,GAAG,IAAI,CAAC,mBAAmB,CAAC,CAAuB,EAAE,CAAQ,CAAC,CAAC;YACtE,MAAM,CAAC,GAAG,IAAI,CAAC,mBAAmB,CAAC,CAAuB,EAAE,CAAQ,CAAC,CAAC;YACtE,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YAEhF,MAAM,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,sBAAsB;YAC9C,MAAM,CAAC,IAAI,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAuB,EAAE,CAAQ,CAAC,CAAC,CAAC,CAAC,mBAAmB;YAC5G,MAAM,CAAC,IAAI,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAuB,EAAE,CAAQ,CAAC,CAAC,CAAC,CAAC,mBAAmB;QAC9G,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,+DAA+D,EAAE,GAAG,EAAE;YACvE,MAAM,CAAC,GAAG,IAAI,CAAC,mBAAmB,CAAC,CAAuB,EAAE,CAAQ,CAAC,CAAC;YACtE,MAAM,CAAC,GAAG,IAAI,CAAC,mBAAmB,CAAC,CAAuB,EAAE,CAAQ,CAAC,CAAC;YACtE,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YAEhF,MAAM,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,sBAAsB;YAC9C,MAAM,CAAC,IAAI,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAuB,EAAE,CAAQ,CAAC,CAAC,CAAC,CAAC,kBAAkB;YAC3G,MAAM,CAAC,IAAI,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAuB,EAAE,CAAQ,CAAC,CAAC,CAAC,CAAC,mBAAmB;QAC9G,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,+BAA+B,EAAE,GAAG,EAAE;YACvC,MAAM,CAAC,GAAG,IAAI,CAAC,mBAAmB,CAAC,CAAuB,EAAE,CAAQ,CAAC,CAAC;YACtE,MAAM,CAAC,GAAG,IAAI,CAAC,mBAAmB,CAAC,CAAuB,EAAE,CAAQ,CAAC,CAAC;YACtE,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YAEhF,MAAM,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,uBAAuB;YAChD,MAAM,CAAC,IAAI,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAuB,EAAE,EAAS,CAAC,CAAC,CAAC,CAAC,mBAAmB;YAC7G,MAAM,CAAC,IAAI,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,mBAAmB,CAAC,EAAwB,EAAE,EAAS,CAAC,CAAC,CAAC,CAAC,oBAAoB;YAE/G,2BAA2B;YAC3B,MAAM,CAAC,GAAG,IAAI,CAAC,mBAAmB,CAAC,CAAuB,EAAE,CAAQ,CAAC,CAAC;YACtE,MAAM,CAAC,GAAG,IAAI,CAAC,mBAAmB,CAAC,CAAuB,EAAE,CAAQ,CAAC,CAAC;YACtE,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YAElF,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,uBAAuB;YAClD,MAAM,CAAC,IAAI,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAuB,EAAE,EAAS,CAAC,CAAC,CAAC,CAAC,mBAAmB;YAC7G,MAAM,CAAC,IAAI,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAuB,EAAE,EAAS,CAAC,CAAC,CAAC,CAAC,mBAAmB;QAC/G,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,kCAAkC,EAAE,GAAG,EAAE;YAC1C,MAAM,CAAC,GAAG,IAAI,CAAC,mBAAmB,CAAC,CAAuB,EAAE,GAAU,CAAC,CAAC;YACxE,MAAM,CAAC,GAAG,IAAI,CAAC,mBAAmB,CAAC,EAAwB,EAAE,GAAU,CAAC,CAAC;YACzE,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YAEhF,MAAM,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,6BAA6B;YACxD,MAAM,CAAC,IAAI,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,mBAAmB,CAAC,EAAwB,EAAE,IAAW,CAAC,CAAC,CAAC,CAAC,wBAAwB;YACrH,MAAM,CAAC,IAAI,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,mBAAmB,CAAC,EAAwB,EAAE,IAAW,CAAC,CAAC,CAAC,CAAC,yBAAyB;QACxH,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,yDAAyD,EAAE,GAAG,EAAE;YACjE,iDAAiD;YACjD,MAAM,GAAG,GAAG,EAAE,CAAC;YACf,MAAM,CAAC,GAAG,IAAI,CAAC,mBAAmB,CAAC,CAAuB,EAAE,GAAU,CAAC,CAAC;YACxE,MAAM,CAAC,GAAG,IAAI,CAAC,mBAAmB,CAAC,CAAuB,EAAE,GAAU,CAAC,CAAC;YACxE,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,SAAS,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YAEtF,MAAM,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YAC/B,MAAM,CAAC,IAAI,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,sBAAsB;YACrD,MAAM,CAAC,IAAI,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,sBAAsB;QACvD,CAAC,CAAC,CAAC;QAEH,2EAA2E;QAC3E,kFAAkF;QAClF,EAAE;QACF,2EAA2E;QAC3E,2EAA2E;QAC3E,0DAA0D;QAC1D,EAAE;QACF,2DAA2D;QAC3D,MAAM;QAEN,2EAA2E;QAC3E,4BAA4B;QAC5B,qDAAqD;QACrD,+DAA+D;QAC/D,EAAE;QACF,2EAA2E;QAC3E,2EAA2E;QAC3E,0DAA0D;QAC1D,EAAE;QACF,6DAA6D;QAC7D,MAAM;QACN,EAAE;QACF,gFAAgF;QAChF,2EAA2E;QAC3E,EAAE;QACF,2EAA2E;QAC3E,2EAA2E;QAC3E,0DAA0D;QAC1D,EAAE;QACF,kEAAkE;QAClE,MAAM;QACN,EAAE;QACF,qFAAqF;QACrF,0BAA0B;QAC1B,0GAA0G;QAC1G,+DAA+D;QAC/D,EAAE;QACF,2EAA2E;QAC3E,2EAA2E;QAC3E,0DAA0D;QAC1D,EAAE;QACF,6DAA6D;QAC7D,MAAM;IACR,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,YAAY,EAAE,GAAG,EAAE;QAC1B,EAAE,CAAC,8CAA8C,EAAE,GAAG,EAAE;YACtD,MAAM,CAAC,GAAG,IAAI,CAAC,mBAAmB,CAAC,GAAyB,EAAE,GAAU,CAAC,CAAC;YAC1E,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,CACtD,IAAI,CAAC,mBAAmB,CAAC,GAAyB,EAAE,GAAU,CAAC,CAChE,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,uBAAuB,EAAE,GAAG,EAAE;YAC/B,MAAM,CAAC,GAAG,IAAI,CAAC,mBAAmB,CAAC,CAAuB,EAAE,GAAU,CAAC,CAAC;YACxE,MAAM,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,4BAA4B,CAAC,CAAC;QACzF,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,KAAK,EAAE,GAAG,EAAE;QACnB,EAAE,CAAC,yCAAyC,EAAE,GAAG,EAAE;YACjD,MAAM,CAAC,GAAG,IAAI,CAAC,mBAAmB,CAAC,CAAuB,EAAE,CAAQ,CAAC,CAAC;YACtE,MAAM,CAAC,GAAG,IAAI,CAAC,mBAAmB,CAAC,CAAuB,EAAE,CAAQ,CAAC,CAAC;YACtE,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,CAClD,IAAI,CAAC,mBAAmB,CAAC,CAAuB,EAAE,EAAS,CAAC,CAC7D,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,iCAAiC,EAAE,GAAG,EAAE;YACzC,MAAM,CAAC,GAAG,IAAI,CAAC,mBAAmB,CAAC,CAAuB,EAAE,CAAQ,CAAC,CAAC;YACtE,MAAM,CAAC,GAAG,IAAI,CAAC,mBAAmB,CAAC,CAAuB,EAAE,CAAQ,CAAC,CAAC;YACtE,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,CAClD,IAAI,CAAC,mBAAmB,CAAC,CAAuB,EAAE,EAAS,CAAC,CAC7D,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,QAAQ,EAAE,GAAG,EAAE;QACtB,EAAE,CAAC,gDAAgD,EAAE,GAAG,EAAE;YACxD,MAAM,CAAC,GAAG,IAAI,CAAC,mBAAmB,CAAC,CAAuB,EAAE,CAAQ,CAAC,CAAC;YACtE,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,CAAQ,CAAC,CAAC,CAAC,CAAC,aAAa,CAC5D,IAAI,CAAC,mBAAmB,CAAC,CAAuB,EAAE,CAAQ,CAAC,CAC5D,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,iCAAiC,EAAE,GAAG,EAAE;YACzC,MAAM,CAAC,GAAG,IAAI,CAAC,mBAAmB,CAAC,CAAuB,EAAE,CAAQ,CAAC,CAAC;YACtE,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,CAAQ,CAAC,CAAC,CAAC,CAAC,aAAa,CAC5D,IAAI,CAAC,mBAAmB,CAAC,CAAuB,EAAE,CAAQ,CAAC,CAC5D,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,sBAAsB,EAAE,GAAG,EAAE;QACpC,EAAE,CAAC,qDAAqD,EAAE,GAAG,EAAE;YAC7D,MAAM,CAAC,GAAG,IAAI,CAAC,mBAAmB,CAAC,CAAuB,EAAE,CAAQ,CAAC,CAAC;YACtE,sEAAsE;YACtE,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,aAAa,CACrE,IAAI,CAAC,mBAAmB,CAAC,EAAwB,EAAE,EAAS,CAAC,CAC9D,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,sCAAsC,EAAE,GAAG,EAAE;YAC9C,MAAM,CAAC,GAAG,IAAI,CAAC,mBAAmB,CAAC,CAAuB,EAAE,CAAQ,CAAC,CAAC;YACtE,8DAA8D;YAC9D,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,CACnE,IAAI,CAAC,mBAAmB,CAAC,CAAuB,EAAE,CAAQ,CAAC,CAC5D,CAAC;YAEF,MAAM,CAAC,GAAG,IAAI,CAAC,mBAAmB,CAAC,CAAuB,EAAE,CAAQ,CAAC,CAAC;YACtE,qEAAqE;YACrE,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,aAAa,CACrE,IAAI,CAAC,mBAAmB,CAAC,CAAuB,EAAE,EAAS,CAAC,CAC7D,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,KAAK,EAAE,GAAG,EAAE;QACnB,EAAE,CAAC,uCAAuC,EAAE,GAAG,EAAE;YAC/C,MAAM,CAAC,GAAG,IAAI,CAAC,mBAAmB,CAAC,CAAuB,EAAE,CAAQ,CAAC,CAAC;YACtE,MAAM,CAAC,GAAG,IAAI,CAAC,mBAAmB,CAAC,CAAuB,EAAE,CAAQ,CAAC,CAAC;YACtE,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,CAClD,IAAI,CAAC,mBAAmB,CAAC,EAAwB,EAAE,EAAS,CAAC,CAC9D,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,kDAAkD,EAAE,GAAG,EAAE;YAC1D,MAAM,CAAC,GAAG,IAAI,CAAC,mBAAmB,CAAC,CAAuB,EAAE,CAAQ,CAAC,CAAC;YACtE,MAAM,CAAC,GAAG,IAAI,CAAC,mBAAmB,CAAC,CAAuB,EAAE,CAAQ,CAAC,CAAC;YACtE,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,CAClD,IAAI,CAAC,mBAAmB,CAAC,CAAuB,EAAE,EAAS,CAAC,CAC7D,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,oCAAoC,EAAE,GAAG,EAAE;YAC5C,MAAM,CAAC,GAAG,IAAI,CAAC,mBAAmB,CAAC,CAAuB,EAAE,CAAQ,CAAC,CAAC;YACtE,MAAM,CAAC,GAAG,IAAI,CAAC,mBAAmB,CAAC,CAAuB,EAAE,CAAQ,CAAC,CAAC;YACtE,MAAM,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,4BAA4B,CAAC,CAAC;QACrF,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,QAAQ,EAAE,GAAG,EAAE;QACtB,EAAE,CAAC,8CAA8C,EAAE,GAAG,EAAE;YACtD,MAAM,CAAC,GAAG,IAAI,CAAC,mBAAmB,CAAC,CAAuB,EAAE,CAAQ,CAAC,CAAC;YACtE,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,CAAQ,CAAC,CAAC,CAAC,CAAC,aAAa,CAC5D,IAAI,CAAC,mBAAmB,CAAC,CAAuB,EAAE,EAAS,CAAC,CAC7D,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,iCAAiC,EAAE,GAAG,EAAE;YACzC,MAAM,CAAC,GAAG,IAAI,CAAC,mBAAmB,CAAC,CAAuB,EAAE,CAAQ,CAAC,CAAC;YACtE,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,CAAQ,CAAC,CAAC,CAAC,CAAC,aAAa,CAC5D,IAAI,CAAC,mBAAmB,CAAC,CAAuB,EAAE,EAAS,CAAC,CAC7D,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,sBAAsB,EAAE,GAAG,EAAE;QACpC,EAAE,CAAC,mDAAmD,EAAE,GAAG,EAAE;YAC3D,MAAM,CAAC,GAAG,IAAI,CAAC,mBAAmB,CAAC,CAAuB,EAAE,CAAQ,CAAC,CAAC;YACtE,qFAAqF;YACrF,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,aAAa,CACrE,IAAI,CAAC,mBAAmB,CAAC,EAAwB,EAAE,EAAS,CAAC,CAC9D,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,iCAAiC,EAAE,GAAG,EAAE;YACzC,MAAM,CAAC,GAAG,IAAI,CAAC,mBAAmB,CAAC,CAAuB,EAAE,CAAQ,CAAC,CAAC;YACtE,oFAAoF;YACpF,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,aAAa,CACrE,IAAI,CAAC,mBAAmB,CAAC,CAAuB,EAAE,EAAS,CAAC,CAC7D,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,oCAAoC,EAAE,GAAG,EAAE;YAC5C,MAAM,CAAC,GAAG,IAAI,CAAC,mBAAmB,CAAC,CAAuB,EAAE,CAAQ,CAAC,CAAC;YACtE,MAAM,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,4BAA4B,CAAC,CAAC;QACtG,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,KAAK,EAAE,GAAG,EAAE;QACnB,EAAE,CAAC,oCAAoC,EAAE,GAAG,EAAE;YAC5C,MAAM,CAAC,GAAG,IAAI,CAAC,mBAAmB,CAAC,CAAuB,EAAE,CAAQ,CAAC,CAAC;YACtE,MAAM,CAAC,GAAG,IAAI,CAAC,mBAAmB,CAAC,CAAuB,EAAE,CAAQ,CAAC,CAAC;YACtE,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAuB,EAAE,CAAQ,CAAC,CAAC,CAAC;QACpH,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,oCAAoC,EAAE,GAAG,EAAE;YAC5C,MAAM,CAAC,GAAG,IAAI,CAAC,mBAAmB,CAAC,GAAyB,EAAE,CAAQ,CAAC,CAAC;YACxE,MAAM,CAAC,GAAG,IAAI,CAAC,mBAAmB,CAAC,GAAyB,EAAE,CAAQ,CAAC,CAAC;YACxE,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,CAClD,IAAI,CAAC,mBAAmB,CAAC,IAA0B,EAAE,EAAS,CAAC,CAChE,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,mCAAmC,EAAE,GAAG,EAAE;YAC3C,MAAM,CAAC,GAAG,IAAI,CAAC,mBAAmB,CAAC,CAAuB,EAAE,CAAQ,CAAC,CAAC;YACtE,MAAM,CAAC,GAAG,IAAI,CAAC,mBAAmB,CAAC,CAAuB,EAAE,CAAQ,CAAC,CAAC;YACtE,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAuB,EAAE,CAAQ,CAAC,CAAC,CAAC;QACpH,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,qCAAqC,EAAE,GAAG,EAAE;YAC7C,MAAM,CAAC,GAAG,IAAI,CAAC,mBAAmB,CAAC,CAAuB,EAAE,CAAQ,CAAC,CAAC;YACtE,MAAM,CAAC,GAAG,IAAI,CAAC,mBAAmB,CAAC,CAAuB,EAAE,CAAQ,CAAC,CAAC;YAEtE,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAuB,EAAE,CAAQ,CAAC,CAAC,CAAC;QACpH,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,IAAI,CAAC,6EAA6E,EAAE,GAAG,EAAE;YAC1F,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,4BAA4B,CAAC,CAAC,mBAAmB,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;YAElG,MAAM,CAAC,GAAG,IAAI,CAAC,mBAAmB,CAAC,CAAuB,EAAE,CAAQ,CAAC,CAAC;YACtE,MAAM,CAAC,GAAG,IAAI,CAAC,mBAAmB,CAAC,CAAuB,EAAE,CAAQ,CAAC,CAAC;YACtE,MAAM,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAChE,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,KAAK,EAAE,GAAG,EAAE;QACnB,EAAE,CAAC,yCAAyC,EAAE,GAAG,EAAE;YACjD,MAAM,CAAC,GAAG,IAAI,CAAC,mBAAmB,CAAC,CAAuB,EAAE,CAAQ,CAAC,CAAC;YACtE,MAAM,CAAC,GAAG,IAAI,CAAC,mBAAmB,CAAC,CAAuB,EAAE,CAAQ,CAAC,CAAC;YACtE,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAuB,EAAE,CAAQ,CAAC,CAAC,CAAC;QACpH,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,4BAA4B,EAAE,GAAG,EAAE;YACpC,MAAM,CAAC,GAAG,IAAI,CAAC,mBAAmB,CAAC,CAAuB,EAAE,CAAQ,CAAC,CAAC;YACtE,MAAM,CAAC,GAAG,IAAI,CAAC,mBAAmB,CAAC,CAAuB,EAAE,CAAQ,CAAC,CAAC;YACtE,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAuB,EAAE,CAAQ,CAAC,CAAC,CAAC;QACpH,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,kCAAkC,EAAE,GAAG,EAAE;YAC1C,MAAM,CAAC,GAAG,IAAI,CAAC,mBAAmB,CAAC,CAAuB,EAAE,CAAQ,CAAC,CAAC;YACtE,MAAM,CAAC,GAAG,IAAI,CAAC,mBAAmB,CAAC,CAAuB,EAAE,CAAQ,CAAC,CAAC;YACtE,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAuB,EAAE,CAAQ,CAAC,CAAC,CAAC;QACpH,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,4CAA4C,EAAE,GAAG,EAAE;YACpD,MAAM,CAAC,GAAG,IAAI,CAAC,mBAAmB,CAAC,CAAuB,EAAE,CAAQ,CAAC,CAAC;YACtE,MAAM,CAAC,GAAG,IAAI,CAAC,mBAAmB,CAAC,CAAuB,EAAE,CAAQ,CAAC,CAAC;YACtE,MAAM,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,gCAAgC,CAAC,CAAC;QACzF,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,IAAI,CAAC,6EAA6E,EAAE,GAAG,EAAE;YAC1F,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,4BAA4B,CAAC,CAAC,mBAAmB,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;YAElG,MAAM,CAAC,GAAG,IAAI,CAAC,mBAAmB,CAAC,CAAuB,EAAE,CAAQ,CAAC,CAAC;YACtE,MAAM,CAAC,GAAG,IAAI,CAAC,mBAAmB,CAAC,CAAuB,EAAE,CAAQ,CAAC,CAAC;YACtE,MAAM,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAChE,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1,29 @@
1
+ import { Effect } from 'effect';
2
+ import type { NonNegativeRational } from './NonNegativeRational.js';
3
+ import type { NonNegativeInteger } from './number.js';
4
+ /**
5
+ * Converts a number to a scaled rational value
6
+ *
7
+ * @param n - The number to convert
8
+ * @param scale - The scale factor to apply
9
+ * @returns A Result containing either the scaled rational value or an error
10
+ */
11
+ export declare function toScaledRationalValue(n: number, scale: NonNegativeRational): Effect.Effect<NonNegativeRational, Error>;
12
+ /**
13
+ * Converts a rational value to a string with specified decimal places
14
+ *
15
+ * @param rationalValue - The rational value to convert
16
+ * @param decimals - The number of decimal places to include
17
+ * @returns A string representation of the rational value
18
+ */
19
+ export declare function toValueString(rationalValue: NonNegativeRational, decimals: NonNegativeInteger): string;
20
+ /**
21
+ * Converts a scaled rational value to an unscaled string representation
22
+ *
23
+ * @param value - The scaled rational value
24
+ * @param scale - The scale factor to remove
25
+ * @param decimals - The number of decimal places to include
26
+ * @returns A Result containing either the unscaled string value or an error
27
+ */
28
+ export declare function toUnScaledValueString(value: NonNegativeRational, scale: NonNegativeRational, decimals: NonNegativeInteger): Effect.Effect<string, Error>;
29
+ //# sourceMappingURL=helpers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../src/lib/helpers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAQ,MAAM,QAAQ,CAAC;AAEtC,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAEpE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAEtD;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CACnC,CAAC,EAAE,MAAM,EACT,KAAK,EAAE,mBAAmB,GACzB,MAAM,CAAC,MAAM,CAAC,mBAAmB,EAAE,KAAK,CAAC,CAE3C;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,aAAa,EAAE,mBAAmB,EAAE,QAAQ,EAAE,kBAAkB,GAAG,MAAM,CAGtG;AAED;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,mBAAmB,EAC1B,KAAK,EAAE,mBAAmB,EAC1B,QAAQ,EAAE,kBAAkB,GAC3B,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAO9B"}
@@ -0,0 +1,35 @@
1
+ import { Effect, pipe } from 'effect';
2
+ import { mul, mulNonNegativeNumber, reciprocal } from './NonNegativeRational.js';
3
+ /**
4
+ * Converts a number to a scaled rational value
5
+ *
6
+ * @param n - The number to convert
7
+ * @param scale - The scale factor to apply
8
+ * @returns A Result containing either the scaled rational value or an error
9
+ */
10
+ export function toScaledRationalValue(n, scale) {
11
+ return mulNonNegativeNumber(scale, n);
12
+ }
13
+ /**
14
+ * Converts a rational value to a string with specified decimal places
15
+ *
16
+ * @param rationalValue - The rational value to convert
17
+ * @param decimals - The number of decimal places to include
18
+ * @returns A string representation of the rational value
19
+ */
20
+ export function toValueString(rationalValue, decimals) {
21
+ const value = rationalValue.n / rationalValue.d;
22
+ return value.toFixed(decimals);
23
+ }
24
+ /**
25
+ * Converts a scaled rational value to an unscaled string representation
26
+ *
27
+ * @param value - The scaled rational value
28
+ * @param scale - The scale factor to remove
29
+ * @param decimals - The number of decimal places to include
30
+ * @returns A Result containing either the unscaled string value or an error
31
+ */
32
+ export function toUnScaledValueString(value, scale, decimals) {
33
+ return pipe(reciprocal(scale), Effect.flatMap((reciprocalScale) => mul(value, reciprocalScale)), Effect.map((unScaledValue) => unScaledValue.n / unScaledValue.d), Effect.map((unitValue) => unitValue.toFixed(decimals)));
34
+ }
35
+ //# sourceMappingURL=helpers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../src/lib/helpers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAGtC,OAAO,EAAE,GAAG,EAAE,oBAAoB,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAGjF;;;;;;GAMG;AACH,MAAM,UAAU,qBAAqB,CACnC,CAAS,EACT,KAA0B;IAE1B,OAAO,oBAAoB,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;AACxC,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,aAAa,CAAC,aAAkC,EAAE,QAA4B;IAC5F,MAAM,KAAK,GAAG,aAAa,CAAC,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC;IAChD,OAAO,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;AACjC,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,qBAAqB,CACnC,KAA0B,EAC1B,KAA0B,EAC1B,QAA4B;IAE5B,OAAO,IAAI,CACT,UAAU,CAAC,KAAK,CAAC,EACjB,MAAM,CAAC,OAAO,CAAC,CAAC,eAAe,EAAE,EAAE,CAAC,GAAG,CAAC,KAAK,EAAE,eAAe,CAAC,CAAC,EAChE,MAAM,CAAC,GAAG,CAAC,CAAC,aAAa,EAAE,EAAE,CAAC,aAAa,CAAC,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC,EAChE,MAAM,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CACvD,CAAC;AACJ,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=helpers.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"helpers.test.d.ts","sourceRoot":"","sources":["../../src/lib/helpers.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,39 @@
1
+ import { Effect } from 'effect';
2
+ import { describe, expect, it } from 'vitest';
3
+ import * as unit from './helpers.js';
4
+ import * as NonNegativeRational from './NonNegativeRational.js';
5
+ describe('helpers', () => {
6
+ describe('toScaledRationalValue', () => {
7
+ it('should work as expected', () => {
8
+ expect(Effect.runSync(unit.toScaledRationalValue(1.23, NonNegativeRational.NonNegativeRational(100, 1)))).toStrictEqual(NonNegativeRational.NonNegativeRational(12300, 100));
9
+ expect(Effect.runSync(unit.toScaledRationalValue(1.11, NonNegativeRational.NonNegativeRational(100, 1)))).toStrictEqual(NonNegativeRational.NonNegativeRational(11100, 100));
10
+ expect(Effect.runSync(unit.toScaledRationalValue(123, NonNegativeRational.NonNegativeRational(100, 1)))).toStrictEqual(NonNegativeRational.NonNegativeRational(12300, 1));
11
+ });
12
+ it('should work as expected in the invalid case where the scale gives a float', () => {
13
+ expect(Effect.runSync(unit.toScaledRationalValue(123, NonNegativeRational.NonNegativeRational(1, 100)))).toStrictEqual(NonNegativeRational.NonNegativeRational(123, 100));
14
+ });
15
+ });
16
+ describe('toValueString', () => {
17
+ it('should work as expected', () => {
18
+ expect(unit.toValueString(Effect.runSync(NonNegativeRational.fromNonNegativeNumber(1.23)), 2)).toEqual('1.23');
19
+ expect(unit.toValueString(Effect.runSync(NonNegativeRational.fromNonNegativeNumber(123)), 2)).toEqual('123.00');
20
+ expect(unit.toValueString(Effect.runSync(NonNegativeRational.fromNonNegativeNumber(0)), 2)).toEqual('0.00');
21
+ });
22
+ });
23
+ describe('toUnScaledValueString', () => {
24
+ const TEST_SCALE = NonNegativeRational.NonNegativeRational(100, 1);
25
+ it('should work as expected', () => {
26
+ const v1 = Effect.runSync(NonNegativeRational.fromNonNegativeNumber(123));
27
+ expect(Effect.runSync(unit.toUnScaledValueString(v1, TEST_SCALE, 2))).toEqual('1.23');
28
+ const v2 = Effect.runSync(NonNegativeRational.fromNonNegativeNumber(12300));
29
+ expect(Effect.runSync(unit.toUnScaledValueString(v2, TEST_SCALE, 2))).toEqual('123.00');
30
+ const v3 = Effect.runSync(NonNegativeRational.fromNonNegativeNumber(123));
31
+ expect(() => Effect.runSync(unit.toUnScaledValueString(v3, NonNegativeRational.NonNegativeRational(0, 1), 2))).toThrow('Expected a positive number');
32
+ });
33
+ it('should work as expected in the invalid case where the scale gives a float', () => {
34
+ const v1 = Effect.runSync(NonNegativeRational.fromNonNegativeNumber(1));
35
+ expect(Effect.runSync(unit.toUnScaledValueString(v1, TEST_SCALE, 2))).toEqual('0.01');
36
+ });
37
+ });
38
+ });
39
+ //# sourceMappingURL=helpers.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"helpers.test.js","sourceRoot":"","sources":["../../src/lib/helpers.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,54 @@
1
+ import { Schema } from 'effect';
2
+ import * as Effect from 'effect/Effect';
3
+ export declare const NumericInt: Schema.filter<Schema.transform<Schema.Union<[typeof Schema.String, typeof Schema.Number]>, typeof Schema.Number>>;
4
+ /**
5
+ * An Effect schema for non-negative integers
6
+ */
7
+ export declare const NonNegativeInteger: Schema.brand<Schema.filter<Schema.filter<Schema.transform<Schema.Union<[typeof Schema.String, typeof Schema.Number]>, typeof Schema.Number>>>, "NonNegativeInteger">;
8
+ export type NonNegativeInteger = Schema.Schema.Type<typeof NonNegativeInteger>;
9
+ /** Constant representing zero as a non-negative integer */
10
+ export declare const ZERO: number & import("effect/Brand").Brand<"NonNegativeInteger">;
11
+ /** Constant representing one as a non-negative integer */
12
+ export declare const ONE: number & import("effect/Brand").Brand<"NonNegativeInteger">;
13
+ /** Constant representing two as a non-negative integer */
14
+ export declare const TWO: number & import("effect/Brand").Brand<"NonNegativeInteger">;
15
+ /** Constant representing three as a non-negative integer */
16
+ export declare const THREE: number & import("effect/Brand").Brand<"NonNegativeInteger">;
17
+ /**
18
+ * An Effect schema for natural numbers (positive integers)
19
+ */
20
+ export declare const Nat: Schema.brand<Schema.brand<Schema.filter<Schema.filter<Schema.transform<Schema.Union<[typeof Schema.String, typeof Schema.Number]>, typeof Schema.Number>>>, "NonNegativeInteger">, "Nat">;
21
+ export type Nat = Schema.Schema.Type<typeof Nat>;
22
+ /** Constant representing one as a natural number */
23
+ export declare const NAT_ONE: number & import("effect/Brand").Brand<"NonNegativeInteger"> & import("effect/Brand").Brand<"Nat">;
24
+ /** Constant representing one hundred as a natural number */
25
+ export declare const NAT_ONE_HUNDRED: number & import("effect/Brand").Brand<"NonNegativeInteger"> & import("effect/Brand").Brand<"Nat">;
26
+ /** Constant representing one thousand as a natural number */
27
+ export declare const NAT_ONE_THOUSAND: number & import("effect/Brand").Brand<"NonNegativeInteger"> & import("effect/Brand").Brand<"Nat">;
28
+ /**
29
+ * An Effect schema for positive numbers
30
+ */
31
+ export declare const PositiveNumber: Schema.brand<Schema.filter<Schema.transform<Schema.Union<[typeof Schema.String, typeof Schema.Number]>, typeof Schema.Number>>, "PositiveNumber">;
32
+ export type PositiveNumber = Schema.Schema.Type<typeof PositiveNumber>;
33
+ /**
34
+ * An Effect schema for non-negative numbers
35
+ */
36
+ export declare const NonNegativeNumber: Schema.brand<Schema.brand<Schema.filter<Schema.transform<Schema.Union<[typeof Schema.String, typeof Schema.Number]>, typeof Schema.Number>>, "PositiveNumber">, "NonNegativeNumber">;
37
+ export type NonNegativeNumber = Schema.Schema.Type<typeof NonNegativeNumber>;
38
+ /**
39
+ * Calculates the greatest common divisor of two numbers
40
+ *
41
+ * @param x - First number
42
+ * @param y - Second number
43
+ * @returns The greatest common divisor as a natural number
44
+ */
45
+ export declare function gcd(x: number, y: number): Effect.Effect<Nat, Error>;
46
+ /**
47
+ * Calculates the least common multiple of two numbers
48
+ *
49
+ * @param x - First number
50
+ * @param y - Second number
51
+ * @returns The least common multiple as a natural number
52
+ */
53
+ export declare function lcm(x: number, y: number): Effect.Effect<Nat, Error>;
54
+ //# sourceMappingURL=number.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"number.d.ts","sourceRoot":"","sources":["../../src/lib/number.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,MAAM,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAiBxC,eAAO,MAAM,UAAU,mHAA6B,CAAC;AAErD;;GAEG;AACH,eAAO,MAAM,kBAAkB,sKAE9B,CAAC;AACF,MAAM,MAAM,kBAAkB,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAE/E,2DAA2D;AAC3D,eAAO,MAAM,IAAI,6DAA2C,CAAC;AAC7D,0DAA0D;AAC1D,eAAO,MAAM,GAAG,6DAA2C,CAAC;AAC5D,0DAA0D;AAC1D,eAAO,MAAM,GAAG,6DAA2C,CAAC;AAC5D,4DAA4D;AAC5D,eAAO,MAAM,KAAK,6DAA2C,CAAC;AAE9D;;GAEG;AACH,eAAO,MAAM,GAAG,2LAEY,CAAC;AAC7B,MAAM,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC;AAEjD,oDAAoD;AACpD,eAAO,MAAM,OAAO,mGAA4B,CAAC;AACjD,4DAA4D;AAC5D,eAAO,MAAM,eAAe,mGAA8B,CAAC;AAC3D,6DAA6D;AAC7D,eAAO,MAAM,gBAAgB,mGAA+B,CAAC;AAE7D;;GAEG;AACH,eAAO,MAAM,cAAc,mJAA2E,CAAC;AACvG,MAAM,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,cAAc,CAAC,CAAC;AAEvE;;GAEG;AACH,eAAO,MAAM,iBAAiB,sLAEY,CAAC;AAC3C,MAAM,MAAM,iBAAiB,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAE7E;;;;;;GAMG;AACH,wBAAgB,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,CAEnE;AAED;;;;;;GAMG;AACH,wBAAgB,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,CAMnE"}