n2words 3.1.0 → 5.0.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 (486) hide show
  1. package/CHANGELOG.md +51 -40
  2. package/LICENSE +1 -1
  3. package/README.md +64 -184
  4. package/dist/am-ET.js +2 -0
  5. package/dist/am-ET.umd.js +2 -0
  6. package/dist/am-Latn-ET.js +2 -0
  7. package/dist/am-Latn-ET.umd.js +2 -0
  8. package/dist/ar-SA.js +2 -0
  9. package/dist/ar-SA.umd.js +2 -0
  10. package/dist/az-AZ.js +2 -0
  11. package/dist/az-AZ.umd.js +2 -0
  12. package/dist/bn-BD.js +2 -0
  13. package/dist/bn-BD.umd.js +2 -0
  14. package/dist/cs-CZ.js +2 -0
  15. package/dist/cs-CZ.umd.js +2 -0
  16. package/dist/da-DK.js +2 -0
  17. package/dist/da-DK.umd.js +2 -0
  18. package/dist/de-DE.js +2 -0
  19. package/dist/de-DE.umd.js +2 -0
  20. package/dist/el-GR.js +2 -0
  21. package/dist/el-GR.umd.js +2 -0
  22. package/dist/en-AU.js +2 -0
  23. package/dist/en-AU.umd.js +2 -0
  24. package/dist/en-BD.js +2 -0
  25. package/dist/en-BD.umd.js +2 -0
  26. package/dist/en-CA.js +2 -0
  27. package/dist/en-CA.umd.js +2 -0
  28. package/dist/en-GB.js +2 -0
  29. package/dist/en-GB.umd.js +2 -0
  30. package/dist/en-GH.js +2 -0
  31. package/dist/en-GH.umd.js +2 -0
  32. package/dist/en-IE.js +2 -0
  33. package/dist/en-IE.umd.js +2 -0
  34. package/dist/en-IN.js +2 -0
  35. package/dist/en-IN.umd.js +2 -0
  36. package/dist/en-KE.js +2 -0
  37. package/dist/en-KE.umd.js +2 -0
  38. package/dist/en-MY.js +2 -0
  39. package/dist/en-MY.umd.js +2 -0
  40. package/dist/en-NG.js +2 -0
  41. package/dist/en-NG.umd.js +2 -0
  42. package/dist/en-NZ.js +2 -0
  43. package/dist/en-NZ.umd.js +2 -0
  44. package/dist/en-PH.js +2 -0
  45. package/dist/en-PH.umd.js +2 -0
  46. package/dist/en-PK.js +2 -0
  47. package/dist/en-PK.umd.js +2 -0
  48. package/dist/en-SG.js +2 -0
  49. package/dist/en-SG.umd.js +2 -0
  50. package/dist/en-US.js +2 -0
  51. package/dist/en-US.umd.js +2 -0
  52. package/dist/en-ZA.js +2 -0
  53. package/dist/en-ZA.umd.js +2 -0
  54. package/dist/es-ES.js +2 -0
  55. package/dist/es-ES.umd.js +2 -0
  56. package/dist/es-MX.js +2 -0
  57. package/dist/es-MX.umd.js +2 -0
  58. package/dist/es-US.js +2 -0
  59. package/dist/es-US.umd.js +2 -0
  60. package/dist/fa-IR.js +2 -0
  61. package/dist/fa-IR.umd.js +2 -0
  62. package/dist/fi-FI.js +2 -0
  63. package/dist/fi-FI.umd.js +2 -0
  64. package/dist/fil-PH.js +2 -0
  65. package/dist/fil-PH.umd.js +2 -0
  66. package/dist/fr-BE.js +2 -0
  67. package/dist/fr-BE.umd.js +2 -0
  68. package/dist/fr-FR.js +2 -0
  69. package/dist/fr-FR.umd.js +2 -0
  70. package/dist/gu-IN.js +2 -0
  71. package/dist/gu-IN.umd.js +2 -0
  72. package/dist/ha-NG.js +2 -0
  73. package/dist/ha-NG.umd.js +2 -0
  74. package/dist/hbo-IL.js +2 -0
  75. package/dist/hbo-IL.umd.js +2 -0
  76. package/dist/he-IL.js +2 -0
  77. package/dist/he-IL.umd.js +2 -0
  78. package/dist/hi-IN.js +2 -0
  79. package/dist/hi-IN.umd.js +2 -0
  80. package/dist/hr-HR.js +2 -0
  81. package/dist/hr-HR.umd.js +2 -0
  82. package/dist/hu-HU.js +2 -0
  83. package/dist/hu-HU.umd.js +2 -0
  84. package/dist/id-ID.js +2 -0
  85. package/dist/id-ID.umd.js +2 -0
  86. package/dist/it-IT.js +2 -0
  87. package/dist/it-IT.umd.js +2 -0
  88. package/dist/ja-JP.js +2 -0
  89. package/dist/ja-JP.umd.js +2 -0
  90. package/dist/ka-GE.js +2 -0
  91. package/dist/ka-GE.umd.js +2 -0
  92. package/dist/kn-IN.js +2 -0
  93. package/dist/kn-IN.umd.js +2 -0
  94. package/dist/ko-KR.js +2 -0
  95. package/dist/ko-KR.umd.js +2 -0
  96. package/dist/lt-LT.js +2 -0
  97. package/dist/lt-LT.umd.js +2 -0
  98. package/dist/lv-LV.js +2 -0
  99. package/dist/lv-LV.umd.js +2 -0
  100. package/dist/mr-IN.js +2 -0
  101. package/dist/mr-IN.umd.js +2 -0
  102. package/dist/ms-MY.js +2 -0
  103. package/dist/ms-MY.umd.js +2 -0
  104. package/dist/nb-NO.js +2 -0
  105. package/dist/nb-NO.umd.js +2 -0
  106. package/dist/nl-NL.js +2 -0
  107. package/dist/nl-NL.umd.js +2 -0
  108. package/dist/pa-IN.js +2 -0
  109. package/dist/pa-IN.umd.js +2 -0
  110. package/dist/pl-PL.js +2 -0
  111. package/dist/pl-PL.umd.js +2 -0
  112. package/dist/pt-BR.js +2 -0
  113. package/dist/pt-BR.umd.js +2 -0
  114. package/dist/pt-PT.js +2 -0
  115. package/dist/pt-PT.umd.js +2 -0
  116. package/dist/ro-RO.js +2 -0
  117. package/dist/ro-RO.umd.js +2 -0
  118. package/dist/ru-RU.js +2 -0
  119. package/dist/ru-RU.umd.js +2 -0
  120. package/dist/sr-Cyrl-RS.js +2 -0
  121. package/dist/sr-Cyrl-RS.umd.js +2 -0
  122. package/dist/sr-Latn-RS.js +2 -0
  123. package/dist/sr-Latn-RS.umd.js +2 -0
  124. package/dist/sv-SE.js +2 -0
  125. package/dist/sv-SE.umd.js +2 -0
  126. package/dist/sw-KE.js +2 -0
  127. package/dist/sw-KE.umd.js +2 -0
  128. package/dist/ta-IN.js +2 -0
  129. package/dist/ta-IN.umd.js +2 -0
  130. package/dist/te-IN.js +2 -0
  131. package/dist/te-IN.umd.js +2 -0
  132. package/dist/th-TH.js +2 -0
  133. package/dist/th-TH.umd.js +2 -0
  134. package/dist/tr-TR.js +2 -0
  135. package/dist/tr-TR.umd.js +2 -0
  136. package/dist/uk-UA.js +2 -0
  137. package/dist/uk-UA.umd.js +2 -0
  138. package/dist/ur-PK.js +2 -0
  139. package/dist/ur-PK.umd.js +2 -0
  140. package/dist/vi-VN.js +2 -0
  141. package/dist/vi-VN.umd.js +2 -0
  142. package/dist/yo-NG.js +2 -0
  143. package/dist/yo-NG.umd.js +2 -0
  144. package/dist/zh-Hans-CN.js +2 -0
  145. package/dist/zh-Hans-CN.umd.js +2 -0
  146. package/dist/zh-Hant-TW.js +2 -0
  147. package/dist/zh-Hant-TW.umd.js +2 -0
  148. package/package.json +61 -88
  149. package/src/am-ET.d.ts +40 -0
  150. package/src/am-ET.js +269 -0
  151. package/src/am-Latn-ET.d.ts +35 -0
  152. package/src/am-Latn-ET.js +264 -0
  153. package/src/ar-SA.d.ts +49 -0
  154. package/{lib/languages/ar.js → src/ar-SA.js} +177 -15
  155. package/src/az-AZ.d.ts +37 -0
  156. package/src/az-AZ.js +312 -0
  157. package/src/bn-BD.d.ts +36 -0
  158. package/{lib/languages/bn.js → src/bn-BD.js} +110 -6
  159. package/src/cs-CZ.d.ts +49 -0
  160. package/{lib/languages/cs.js → src/cs-CZ.js} +240 -14
  161. package/src/da-DK.d.ts +44 -0
  162. package/{lib/languages/da.js → src/da-DK.js} +131 -11
  163. package/src/de-DE.d.ts +57 -0
  164. package/src/de-DE.js +603 -0
  165. package/src/el-GR.d.ts +40 -0
  166. package/src/el-GR.js +418 -0
  167. package/src/en-AU.d.ts +47 -0
  168. package/src/en-AU.js +423 -0
  169. package/src/en-BD.d.ts +49 -0
  170. package/src/en-BD.js +415 -0
  171. package/src/en-CA.d.ts +63 -0
  172. package/src/en-CA.js +518 -0
  173. package/src/en-GB.d.ts +56 -0
  174. package/src/en-GB.js +469 -0
  175. package/src/en-GH.d.ts +11 -0
  176. package/src/en-GH.js +345 -0
  177. package/src/en-IE.d.ts +56 -0
  178. package/src/en-IE.js +479 -0
  179. package/src/en-IN.d.ts +49 -0
  180. package/src/en-IN.js +415 -0
  181. package/src/en-KE.d.ts +11 -0
  182. package/src/en-KE.js +345 -0
  183. package/src/en-MY.d.ts +11 -0
  184. package/src/en-MY.js +347 -0
  185. package/src/en-NG.d.ts +56 -0
  186. package/src/en-NG.js +479 -0
  187. package/src/en-NZ.d.ts +11 -0
  188. package/{lib/languages/en.js → src/en-NZ.js} +164 -31
  189. package/src/en-PH.d.ts +11 -0
  190. package/src/en-PH.js +345 -0
  191. package/src/en-PK.d.ts +49 -0
  192. package/src/en-PK.js +415 -0
  193. package/src/en-SG.d.ts +11 -0
  194. package/src/en-SG.js +345 -0
  195. package/src/en-US.d.ts +63 -0
  196. package/src/en-US.js +516 -0
  197. package/src/en-ZA.d.ts +56 -0
  198. package/src/en-ZA.js +478 -0
  199. package/src/es-ES.d.ts +65 -0
  200. package/src/es-ES.js +541 -0
  201. package/src/es-MX.d.ts +58 -0
  202. package/{lib/languages/es.js → src/es-MX.js} +228 -18
  203. package/src/es-US.d.ts +58 -0
  204. package/src/es-US.js +446 -0
  205. package/src/fa-IR.d.ts +38 -0
  206. package/src/fa-IR.js +246 -0
  207. package/src/fi-FI.d.ts +46 -0
  208. package/{lib/languages/fi.js → src/fi-FI.js} +152 -11
  209. package/src/fil-PH.d.ts +37 -0
  210. package/{lib/languages/fil.js → src/fil-PH.js} +144 -8
  211. package/src/fr-BE.d.ts +49 -0
  212. package/{lib/languages → src}/fr-BE.js +175 -13
  213. package/src/fr-FR.d.ts +63 -0
  214. package/{lib/languages/fr.js → src/fr-FR.js} +182 -16
  215. package/src/gu-IN.d.ts +35 -0
  216. package/{lib/languages/gu.js → src/gu-IN.js} +115 -6
  217. package/src/ha-NG.d.ts +37 -0
  218. package/{lib/languages/ha.js → src/ha-NG.js} +107 -8
  219. package/src/hbo-IL.d.ts +39 -0
  220. package/{lib/languages/hbo.js → src/hbo-IL.js} +211 -19
  221. package/src/he-IL.d.ts +37 -0
  222. package/src/he-IL.js +537 -0
  223. package/src/hi-IN.d.ts +36 -0
  224. package/{lib/languages/hi.js → src/hi-IN.js} +116 -6
  225. package/src/hr-HR.d.ts +42 -0
  226. package/src/hr-HR.js +463 -0
  227. package/src/hu-HU.d.ts +38 -0
  228. package/{lib/languages/hu.js → src/hu-HU.js} +164 -6
  229. package/src/id-ID.d.ts +38 -0
  230. package/{lib/languages/id.js → src/id-ID.js} +99 -8
  231. package/src/it-IT.d.ts +59 -0
  232. package/{lib/languages/it.js → src/it-IT.js} +179 -15
  233. package/src/ja-JP.d.ts +49 -0
  234. package/{lib/languages/ja.js → src/ja-JP.js} +111 -12
  235. package/src/ka-GE.d.ts +44 -0
  236. package/{lib/languages/ka.js → src/ka-GE.js} +113 -11
  237. package/src/kn-IN.d.ts +35 -0
  238. package/{lib/languages/kn.js → src/kn-IN.js} +115 -6
  239. package/src/ko-KR.d.ts +45 -0
  240. package/{lib/languages/ko.js → src/ko-KR.js} +94 -12
  241. package/src/lt-LT.d.ts +49 -0
  242. package/src/lt-LT.js +543 -0
  243. package/src/lv-LV.d.ts +49 -0
  244. package/src/lv-LV.js +595 -0
  245. package/src/mr-IN.d.ts +36 -0
  246. package/{lib/languages/mr.js → src/mr-IN.js} +116 -6
  247. package/src/ms-MY.d.ts +37 -0
  248. package/{lib/languages/ms.js → src/ms-MY.js} +111 -8
  249. package/src/nb-NO.d.ts +44 -0
  250. package/{lib/languages/nb.js → src/nb-NO.js} +153 -11
  251. package/src/nl-NL.d.ts +54 -0
  252. package/{lib/languages/nl.js → src/nl-NL.js} +260 -18
  253. package/src/pa-IN.d.ts +36 -0
  254. package/{lib/languages/pa.js → src/pa-IN.js} +116 -6
  255. package/src/pl-PL.d.ts +55 -0
  256. package/src/pl-PL.js +585 -0
  257. package/src/pt-BR.d.ts +31 -0
  258. package/src/pt-BR.js +534 -0
  259. package/src/pt-PT.d.ts +45 -0
  260. package/{lib/languages/pt.js → src/pt-PT.js} +234 -12
  261. package/src/ro-RO.d.ts +44 -0
  262. package/{lib/languages/ro.js → src/ro-RO.js} +212 -18
  263. package/src/ru-RU.d.ts +50 -0
  264. package/src/ru-RU.js +535 -0
  265. package/src/sr-Cyrl-RS.d.ts +49 -0
  266. package/src/sr-Cyrl-RS.js +503 -0
  267. package/src/sr-Latn-RS.d.ts +49 -0
  268. package/src/sr-Latn-RS.js +503 -0
  269. package/src/sv-SE.d.ts +44 -0
  270. package/{lib/languages/sv.js → src/sv-SE.js} +136 -11
  271. package/src/sw-KE.d.ts +37 -0
  272. package/{lib/languages/sw.js → src/sw-KE.js} +117 -6
  273. package/src/ta-IN.d.ts +35 -0
  274. package/{lib/languages/ta.js → src/ta-IN.js} +109 -6
  275. package/src/te-IN.d.ts +35 -0
  276. package/{lib/languages/te.js → src/te-IN.js} +115 -6
  277. package/src/th-TH.d.ts +38 -0
  278. package/{lib/languages/th.js → src/th-TH.js} +99 -6
  279. package/src/tr-TR.d.ts +48 -0
  280. package/{lib/languages/tr.js → src/tr-TR.js} +168 -23
  281. package/src/uk-UA.d.ts +42 -0
  282. package/src/uk-UA.js +463 -0
  283. package/src/ur-PK.d.ts +36 -0
  284. package/{lib/languages/ur.js → src/ur-PK.js} +116 -6
  285. package/src/utils/expand-scientific.d.ts +32 -0
  286. package/src/utils/expand-scientific.js +65 -0
  287. package/src/utils/parse-cardinal.d.ts +14 -0
  288. package/{lib/utils/parse-numeric.js → src/utils/parse-cardinal.js} +14 -44
  289. package/src/utils/parse-currency.d.ts +14 -0
  290. package/src/utils/parse-currency.js +91 -0
  291. package/src/utils/parse-ordinal.d.ts +10 -0
  292. package/src/utils/parse-ordinal.js +103 -0
  293. package/src/vi-VN.d.ts +48 -0
  294. package/{lib/languages/vi.js → src/vi-VN.js} +102 -11
  295. package/src/yo-NG.d.ts +37 -0
  296. package/{lib/languages/yo.js → src/yo-NG.js} +109 -9
  297. package/src/zh-Hans-CN.d.ts +48 -0
  298. package/{lib/languages/zh-Hans.js → src/zh-Hans-CN.js} +140 -8
  299. package/src/zh-Hant-TW.d.ts +50 -0
  300. package/{lib/languages/zh-Hant.js → src/zh-Hant-TW.js} +139 -8
  301. package/dist/languages/am-Latn.js +0 -3
  302. package/dist/languages/am-Latn.js.map +0 -1
  303. package/dist/languages/am.js +0 -3
  304. package/dist/languages/am.js.map +0 -1
  305. package/dist/languages/ar.js +0 -3
  306. package/dist/languages/ar.js.map +0 -1
  307. package/dist/languages/az.js +0 -3
  308. package/dist/languages/az.js.map +0 -1
  309. package/dist/languages/bn.js +0 -3
  310. package/dist/languages/bn.js.map +0 -1
  311. package/dist/languages/cs.js +0 -3
  312. package/dist/languages/cs.js.map +0 -1
  313. package/dist/languages/da.js +0 -3
  314. package/dist/languages/da.js.map +0 -1
  315. package/dist/languages/de.js +0 -3
  316. package/dist/languages/de.js.map +0 -1
  317. package/dist/languages/el.js +0 -3
  318. package/dist/languages/el.js.map +0 -1
  319. package/dist/languages/en.js +0 -3
  320. package/dist/languages/en.js.map +0 -1
  321. package/dist/languages/es.js +0 -3
  322. package/dist/languages/es.js.map +0 -1
  323. package/dist/languages/fa.js +0 -3
  324. package/dist/languages/fa.js.map +0 -1
  325. package/dist/languages/fi.js +0 -3
  326. package/dist/languages/fi.js.map +0 -1
  327. package/dist/languages/fil.js +0 -3
  328. package/dist/languages/fil.js.map +0 -1
  329. package/dist/languages/fr-BE.js +0 -3
  330. package/dist/languages/fr-BE.js.map +0 -1
  331. package/dist/languages/fr.js +0 -3
  332. package/dist/languages/fr.js.map +0 -1
  333. package/dist/languages/gu.js +0 -3
  334. package/dist/languages/gu.js.map +0 -1
  335. package/dist/languages/ha.js +0 -3
  336. package/dist/languages/ha.js.map +0 -1
  337. package/dist/languages/hbo.js +0 -3
  338. package/dist/languages/hbo.js.map +0 -1
  339. package/dist/languages/he.js +0 -3
  340. package/dist/languages/he.js.map +0 -1
  341. package/dist/languages/hi.js +0 -3
  342. package/dist/languages/hi.js.map +0 -1
  343. package/dist/languages/hr.js +0 -3
  344. package/dist/languages/hr.js.map +0 -1
  345. package/dist/languages/hu.js +0 -3
  346. package/dist/languages/hu.js.map +0 -1
  347. package/dist/languages/id.js +0 -3
  348. package/dist/languages/id.js.map +0 -1
  349. package/dist/languages/it.js +0 -3
  350. package/dist/languages/it.js.map +0 -1
  351. package/dist/languages/ja.js +0 -3
  352. package/dist/languages/ja.js.map +0 -1
  353. package/dist/languages/ka.js +0 -3
  354. package/dist/languages/ka.js.map +0 -1
  355. package/dist/languages/kn.js +0 -3
  356. package/dist/languages/kn.js.map +0 -1
  357. package/dist/languages/ko.js +0 -3
  358. package/dist/languages/ko.js.map +0 -1
  359. package/dist/languages/lt.js +0 -3
  360. package/dist/languages/lt.js.map +0 -1
  361. package/dist/languages/lv.js +0 -3
  362. package/dist/languages/lv.js.map +0 -1
  363. package/dist/languages/mr.js +0 -3
  364. package/dist/languages/mr.js.map +0 -1
  365. package/dist/languages/ms.js +0 -3
  366. package/dist/languages/ms.js.map +0 -1
  367. package/dist/languages/nb.js +0 -3
  368. package/dist/languages/nb.js.map +0 -1
  369. package/dist/languages/nl.js +0 -3
  370. package/dist/languages/nl.js.map +0 -1
  371. package/dist/languages/pa.js +0 -3
  372. package/dist/languages/pa.js.map +0 -1
  373. package/dist/languages/pl.js +0 -3
  374. package/dist/languages/pl.js.map +0 -1
  375. package/dist/languages/pt.js +0 -3
  376. package/dist/languages/pt.js.map +0 -1
  377. package/dist/languages/ro.js +0 -3
  378. package/dist/languages/ro.js.map +0 -1
  379. package/dist/languages/ru.js +0 -3
  380. package/dist/languages/ru.js.map +0 -1
  381. package/dist/languages/sr-Cyrl.js +0 -3
  382. package/dist/languages/sr-Cyrl.js.map +0 -1
  383. package/dist/languages/sr-Latn.js +0 -3
  384. package/dist/languages/sr-Latn.js.map +0 -1
  385. package/dist/languages/sv.js +0 -3
  386. package/dist/languages/sv.js.map +0 -1
  387. package/dist/languages/sw.js +0 -3
  388. package/dist/languages/sw.js.map +0 -1
  389. package/dist/languages/ta.js +0 -3
  390. package/dist/languages/ta.js.map +0 -1
  391. package/dist/languages/te.js +0 -3
  392. package/dist/languages/te.js.map +0 -1
  393. package/dist/languages/th.js +0 -3
  394. package/dist/languages/th.js.map +0 -1
  395. package/dist/languages/tr.js +0 -3
  396. package/dist/languages/tr.js.map +0 -1
  397. package/dist/languages/uk.js +0 -3
  398. package/dist/languages/uk.js.map +0 -1
  399. package/dist/languages/ur.js +0 -3
  400. package/dist/languages/ur.js.map +0 -1
  401. package/dist/languages/vi.js +0 -3
  402. package/dist/languages/vi.js.map +0 -1
  403. package/dist/languages/yo.js +0 -3
  404. package/dist/languages/yo.js.map +0 -1
  405. package/dist/languages/zh-Hans.js +0 -3
  406. package/dist/languages/zh-Hans.js.map +0 -1
  407. package/dist/languages/zh-Hant.js +0 -3
  408. package/dist/languages/zh-Hant.js.map +0 -1
  409. package/dist/n2words.js +0 -3
  410. package/dist/n2words.js.map +0 -1
  411. package/lib/languages/am-Latn.d.ts +0 -7
  412. package/lib/languages/am-Latn.js +0 -159
  413. package/lib/languages/am.d.ts +0 -7
  414. package/lib/languages/am.js +0 -159
  415. package/lib/languages/ar.d.ts +0 -17
  416. package/lib/languages/az.d.ts +0 -7
  417. package/lib/languages/az.js +0 -171
  418. package/lib/languages/bn.d.ts +0 -7
  419. package/lib/languages/cs.d.ts +0 -18
  420. package/lib/languages/da.d.ts +0 -14
  421. package/lib/languages/de.d.ts +0 -17
  422. package/lib/languages/de.js +0 -320
  423. package/lib/languages/el.d.ts +0 -14
  424. package/lib/languages/el.js +0 -236
  425. package/lib/languages/en.d.ts +0 -17
  426. package/lib/languages/es.d.ts +0 -21
  427. package/lib/languages/fa.d.ts +0 -7
  428. package/lib/languages/fa.js +0 -134
  429. package/lib/languages/fi.d.ts +0 -14
  430. package/lib/languages/fil.d.ts +0 -7
  431. package/lib/languages/fr-BE.d.ts +0 -11
  432. package/lib/languages/fr.d.ts +0 -21
  433. package/lib/languages/gu.d.ts +0 -7
  434. package/lib/languages/ha.d.ts +0 -7
  435. package/lib/languages/hbo.d.ts +0 -13
  436. package/lib/languages/he.d.ts +0 -13
  437. package/lib/languages/he.js +0 -265
  438. package/lib/languages/hi.d.ts +0 -7
  439. package/lib/languages/hr.d.ts +0 -11
  440. package/lib/languages/hr.js +0 -224
  441. package/lib/languages/hu.d.ts +0 -7
  442. package/lib/languages/id.d.ts +0 -7
  443. package/lib/languages/it.d.ts +0 -19
  444. package/lib/languages/ja.d.ts +0 -17
  445. package/lib/languages/ka.d.ts +0 -17
  446. package/lib/languages/kn.d.ts +0 -7
  447. package/lib/languages/ko.d.ts +0 -14
  448. package/lib/languages/lt.d.ts +0 -18
  449. package/lib/languages/lt.js +0 -301
  450. package/lib/languages/lv.d.ts +0 -18
  451. package/lib/languages/lv.js +0 -312
  452. package/lib/languages/mr.d.ts +0 -7
  453. package/lib/languages/ms.d.ts +0 -7
  454. package/lib/languages/nb.d.ts +0 -14
  455. package/lib/languages/nl.d.ts +0 -26
  456. package/lib/languages/pa.d.ts +0 -7
  457. package/lib/languages/pl.d.ts +0 -22
  458. package/lib/languages/pl.js +0 -317
  459. package/lib/languages/pt.d.ts +0 -17
  460. package/lib/languages/ro.d.ts +0 -18
  461. package/lib/languages/ru.d.ts +0 -11
  462. package/lib/languages/ru.js +0 -245
  463. package/lib/languages/sr-Cyrl.d.ts +0 -11
  464. package/lib/languages/sr-Cyrl.js +0 -221
  465. package/lib/languages/sr-Latn.d.ts +0 -11
  466. package/lib/languages/sr-Latn.js +0 -221
  467. package/lib/languages/sv.d.ts +0 -14
  468. package/lib/languages/sw.d.ts +0 -7
  469. package/lib/languages/ta.d.ts +0 -7
  470. package/lib/languages/te.d.ts +0 -7
  471. package/lib/languages/th.d.ts +0 -7
  472. package/lib/languages/tr.d.ts +0 -18
  473. package/lib/languages/uk.d.ts +0 -11
  474. package/lib/languages/uk.js +0 -224
  475. package/lib/languages/ur.d.ts +0 -7
  476. package/lib/languages/vi.d.ts +0 -17
  477. package/lib/languages/yo.d.ts +0 -7
  478. package/lib/languages/zh-Hans.d.ts +0 -11
  479. package/lib/languages/zh-Hant.d.ts +0 -11
  480. package/lib/n2words.d.ts +0 -55
  481. package/lib/n2words.js +0 -126
  482. package/lib/utils/parse-numeric.d.ts +0 -17
  483. /package/{lib → src}/utils/is-plain-object.d.ts +0 -0
  484. /package/{lib → src}/utils/is-plain-object.js +0 -0
  485. /package/{lib → src}/utils/validate-options.d.ts +0 -0
  486. /package/{lib → src}/utils/validate-options.js +0 -0
package/src/he-IL.js ADDED
@@ -0,0 +1,537 @@
1
+ /**
2
+ * Modern Hebrew (Israel) language converter
3
+ *
4
+ * CLDR: he-IL | Modern Hebrew as used in Israel
5
+ *
6
+ * Key features:
7
+ * - Feminine grammatical forms (default in Modern Hebrew)
8
+ * - Dual forms for 2, 200, 2000
9
+ * - Special 1-9 thousands construct state
10
+ * - "ו" (ve) conjunction rules vary by position
11
+ * - Per-digit decimal reading
12
+ */
13
+
14
+ import { parseCardinalValue } from './utils/parse-cardinal.js'
15
+ import { parseCurrencyValue } from './utils/parse-currency.js'
16
+ import { parseOrdinalValue } from './utils/parse-ordinal.js'
17
+ import { validateOptions } from './utils/validate-options.js'
18
+
19
+ // ============================================================================
20
+ // Vocabulary (arrays for indexed access - faster than object property lookup)
21
+ // ============================================================================
22
+
23
+ // Feminine forms (default in Modern Hebrew) - index 0 unused
24
+ const ONES = ['', 'אחת', 'שתים', 'שלש', 'ארבע', 'חמש', 'שש', 'שבע', 'שמונה', 'תשע']
25
+ const TEENS = ['עשר', 'אחת עשרה', 'שתים עשרה', 'שלש עשרה', 'ארבע עשרה', 'חמש עשרה', 'שש עשרה', 'שבע עשרה', 'שמונה עשרה', 'תשע עשרה']
26
+ const TENS = ['', '', 'עשרים', 'שלשים', 'ארבעים', 'חמישים', 'ששים', 'שבעים', 'שמונים', 'תשעים']
27
+ const HUNDREDS = ['', 'מאה', 'מאתיים', 'שלש מאות', 'ארבע מאות', 'חמש מאות', 'שש מאות', 'שבע מאות', 'שמונה מאות', 'תשע מאות']
28
+
29
+ // Special forms for 1-9 thousand (index 0 unused)
30
+ const THOUSANDS_SPECIAL = ['', 'אלף', 'אלפיים', 'שלשת אלפים', 'ארבעת אלפים', 'חמשת אלפים', 'ששת אלפים', 'שבעת אלפים', 'שמונת אלפים', 'תשעת אלפים']
31
+
32
+ // Scale words (index 1 = thousands, 2 = millions, etc.)
33
+ const SCALE = ['', 'אלף', 'מיליון', 'מיליארד', 'טריליון', 'קוודרליון', 'קווינטיליון']
34
+ const SCALE_PLURAL = ['', 'אלפים', 'מיליונים', 'מיליארדים', 'טריליונים', 'קוודרליונים', 'קווינטיליונים']
35
+
36
+ const ZERO = 'אפס'
37
+ const NEGATIVE = 'מינוס'
38
+ const DECIMAL_SEP = 'נקודה'
39
+
40
+ // Masculine forms for currency and ordinals
41
+ const ONES_MASC = ['', 'אחד', 'שניים', 'שלשה', 'ארבעה', 'חמשה', 'ששה', 'שבעה', 'שמונה', 'תשעה']
42
+
43
+ // Ordinal forms (masculine, used by default)
44
+ const ORDINAL_ONES = ['', 'ראשון', 'שני', 'שלישי', 'רביעי', 'חמישי', 'שישי', 'שביעי', 'שמיני', 'תשיעי']
45
+ const ORDINAL_TEENS = ['עשירי', 'אחד עשר', 'שנים עשר', 'שלשה עשר', 'ארבעה עשר', 'חמשה עשר', 'ששה עשר', 'שבעה עשר', 'שמונה עשר', 'תשעה עשר']
46
+ const ORDINAL_TENS = ['', '', 'עשרים', 'שלשים', 'ארבעים', 'חמישים', 'ששים', 'שבעים', 'שמונים', 'תשעים']
47
+ const ORDINAL_HUNDRED = 'מאה'
48
+
49
+ // Currency (New Israeli Shekel)
50
+ const SHEKEL_SINGULAR = 'שקל'
51
+ const SHEKEL_PLURAL = 'שקלים'
52
+ const AGORA_SINGULAR = 'אגורה'
53
+ const AGORA_PLURAL = 'אגורות'
54
+
55
+ // ============================================================================
56
+ // Segment Building
57
+ // ============================================================================
58
+
59
+ /**
60
+ * Builds segment word for scale segments (thousands, millions, etc.).
61
+ * "ו" is added before tens and ones when following hundreds.
62
+ */
63
+ function buildScaleSegment (n, andWord) {
64
+ if (n === 0) return ''
65
+
66
+ const ones = n % 10
67
+ const tens = Math.trunc(n / 10) % 10
68
+ const hundreds = Math.trunc(n / 100)
69
+
70
+ let result = ''
71
+
72
+ // Hundreds
73
+ if (hundreds > 0) {
74
+ result = HUNDREDS[hundreds]
75
+ }
76
+
77
+ // Tens and ones
78
+ if (tens === 1) {
79
+ // Teens (10-19)
80
+ const teenWord = TEENS[ones]
81
+ if (result) {
82
+ result += ' ' + andWord + teenWord
83
+ } else {
84
+ result = teenWord
85
+ }
86
+ } else {
87
+ // Tens (20-90)
88
+ if (tens >= 2) {
89
+ if (result) {
90
+ result += ' ' + andWord + TENS[tens]
91
+ } else {
92
+ result = TENS[tens]
93
+ }
94
+ }
95
+
96
+ // Ones
97
+ if (ones > 0) {
98
+ if (result) {
99
+ result += ' ' + andWord + ONES[ones]
100
+ } else {
101
+ result = ONES[ones]
102
+ }
103
+ }
104
+ }
105
+
106
+ return result
107
+ }
108
+
109
+ /**
110
+ * Builds segment word for units segment (no scale word).
111
+ * "ו" is only added before the final ones digit.
112
+ */
113
+ function buildUnitsSegment (n, andWord) {
114
+ if (n === 0) return ''
115
+
116
+ const ones = n % 10
117
+ const tens = Math.trunc(n / 10) % 10
118
+ const hundreds = Math.trunc(n / 100)
119
+
120
+ let result = ''
121
+
122
+ // Hundreds
123
+ if (hundreds > 0) {
124
+ result = HUNDREDS[hundreds]
125
+ }
126
+
127
+ // Tens (no conjunction)
128
+ if (tens === 1) {
129
+ // Teens (10-19)
130
+ if (result) {
131
+ result += ' ' + TEENS[ones]
132
+ } else {
133
+ result = TEENS[ones]
134
+ }
135
+ } else {
136
+ if (tens >= 2) {
137
+ if (result) {
138
+ result += ' ' + TENS[tens]
139
+ } else {
140
+ result = TENS[tens]
141
+ }
142
+ }
143
+
144
+ // Ones - conjunction only here
145
+ if (ones > 0) {
146
+ if (result) {
147
+ result += ' ' + andWord + ONES[ones]
148
+ } else {
149
+ result = ONES[ones]
150
+ }
151
+ }
152
+ }
153
+
154
+ return result
155
+ }
156
+
157
+ // ============================================================================
158
+ // Conversion Functions
159
+ // ============================================================================
160
+
161
+ /**
162
+ * Converts a non-negative integer to Hebrew words.
163
+ *
164
+ * @param {bigint} n - Non-negative integer to convert
165
+ * @param {string} andWord - Conjunction word
166
+ * @returns {string} Hebrew words
167
+ */
168
+ function integerToWords (n, andWord) {
169
+ if (n === 0n) return ZERO
170
+
171
+ // Fast path: numbers < 1000
172
+ if (n < 1000n) {
173
+ return buildUnitsSegment(Number(n), andWord)
174
+ }
175
+
176
+ // Extract segments using BigInt modulo
177
+ const segments = []
178
+ let temp = n
179
+ while (temp > 0n) {
180
+ segments.push(Number(temp % 1000n))
181
+ temp = temp / 1000n
182
+ }
183
+
184
+ // Build result string directly
185
+ let result = ''
186
+
187
+ for (let i = segments.length - 1; i >= 0; i--) {
188
+ const segment = segments[i]
189
+ if (segment === 0) continue
190
+
191
+ if (i === 0) {
192
+ // Units segment (no scale word)
193
+ const segmentWord = buildUnitsSegment(segment, andWord)
194
+ if (result) {
195
+ // Add "ו" before single-digit units when following scale words
196
+ if (segment <= 9) {
197
+ result += ' ' + andWord + segmentWord
198
+ } else {
199
+ result += ' ' + segmentWord
200
+ }
201
+ } else {
202
+ result = segmentWord
203
+ }
204
+ } else if (i === 1) {
205
+ // Thousands - special handling for 1-9
206
+ if (segment <= 9) {
207
+ if (result) result += ' '
208
+ result += THOUSANDS_SPECIAL[segment]
209
+ } else {
210
+ const segmentWord = buildScaleSegment(segment, andWord)
211
+ if (result) result += ' '
212
+ result += segmentWord + ' ' + SCALE[1]
213
+ }
214
+ } else {
215
+ // Millions and above
216
+ if (segment === 1) {
217
+ if (result) result += ' '
218
+ result += SCALE[i]
219
+ } else {
220
+ const segmentWord = buildScaleSegment(segment, andWord)
221
+ if (result) result += ' '
222
+ result += segmentWord + ' ' + SCALE_PLURAL[i]
223
+ }
224
+ }
225
+ }
226
+
227
+ return result
228
+ }
229
+
230
+ /**
231
+ * Converts decimal digits to Hebrew words (digit by digit).
232
+ *
233
+ * @param {string} decimalPart - Decimal digits (without the point)
234
+ * @returns {string} Hebrew words for decimal part
235
+ */
236
+ function decimalPartToWords (decimalPart) {
237
+ let result = ''
238
+
239
+ for (let i = 0; i < decimalPart.length; i++) {
240
+ const d = parseInt(decimalPart[i], 10)
241
+ if (result) result += ' '
242
+ result += d === 0 ? ZERO : ONES[d]
243
+ }
244
+
245
+ return result
246
+ }
247
+
248
+ /**
249
+ * Converts a numeric value to Modern Hebrew words.
250
+ *
251
+ * @param {number | string | bigint} value - The numeric value to convert
252
+ * @param {Object} [options] - Optional configuration
253
+ * @param {string} [options.andWord='ו'] - Custom conjunction word
254
+ * @returns {string} The number in Modern Hebrew words
255
+ */
256
+ function toCardinal (value, options) {
257
+ options = validateOptions(options)
258
+ const { isNegative, integerPart, decimalPart } = parseCardinalValue(value)
259
+
260
+ // Apply option defaults
261
+ const { andWord = 'ו' } = options
262
+
263
+ let result = ''
264
+
265
+ if (isNegative) {
266
+ result = NEGATIVE + ' '
267
+ }
268
+
269
+ result += integerToWords(integerPart, andWord)
270
+
271
+ if (decimalPart) {
272
+ result += ' ' + DECIMAL_SEP + ' ' + decimalPartToWords(decimalPart)
273
+ }
274
+
275
+ return result
276
+ }
277
+
278
+ // ============================================================================
279
+ // Ordinal Functions
280
+ // ============================================================================
281
+
282
+ /**
283
+ * Builds ordinal for tens and ones (0-99).
284
+ *
285
+ * @param {number} n - Number 0-99
286
+ * @returns {string} Ordinal word
287
+ */
288
+ function buildOrdinalTensOnes (n) {
289
+ if (n === 0) return ''
290
+ if (n < 10) return ORDINAL_ONES[n]
291
+ if (n < 20) return ORDINAL_TEENS[n - 10]
292
+
293
+ const ones = n % 10
294
+ const tens = Math.trunc(n / 10)
295
+
296
+ if (ones === 0) {
297
+ // Round tens: "עשרים וראשון" (twentieth = twenty and first)
298
+ return ORDINAL_TENS[tens] + ' ו' + ORDINAL_ONES[1]
299
+ }
300
+ // For compound ordinals, only the last part is ordinal
301
+ return ORDINAL_TENS[tens] + ' ו' + ORDINAL_ONES[ones]
302
+ }
303
+
304
+ /**
305
+ * Converts a non-negative integer to Hebrew ordinal words.
306
+ *
307
+ * @param {bigint} n - Non-negative integer to convert
308
+ * @returns {string} Hebrew ordinal words
309
+ */
310
+ function integerToOrdinal (n) {
311
+ if (n === 0n) return ''
312
+ if (n === 1n) return ORDINAL_ONES[1]
313
+
314
+ // Numbers < 100
315
+ if (n < 100n) {
316
+ return buildOrdinalTensOnes(Number(n))
317
+ }
318
+
319
+ // Numbers < 1000
320
+ if (n < 1000n) {
321
+ const hundreds = Number(n / 100n)
322
+ const remainder = Number(n % 100n)
323
+
324
+ let result
325
+ if (hundreds === 1) {
326
+ if (remainder === 0) {
327
+ return ORDINAL_HUNDRED
328
+ }
329
+ result = HUNDREDS[hundreds]
330
+ } else {
331
+ if (remainder === 0) {
332
+ return HUNDREDS[hundreds]
333
+ }
334
+ result = HUNDREDS[hundreds]
335
+ }
336
+
337
+ return result + ' ' + buildOrdinalTensOnes(remainder)
338
+ }
339
+
340
+ // Numbers < 1,000,000
341
+ if (n < 1_000_000n) {
342
+ const thousands = Number(n / 1000n)
343
+ const remainder = Number(n % 1000n)
344
+
345
+ if (remainder === 0) {
346
+ if (thousands <= 9) {
347
+ return THOUSANDS_SPECIAL[thousands]
348
+ }
349
+ return buildScaleSegment(thousands, 'ו') + ' ' + SCALE[1]
350
+ }
351
+
352
+ // Cardinal thousands + ordinal remainder
353
+ let result
354
+ if (thousands <= 9) {
355
+ result = THOUSANDS_SPECIAL[thousands]
356
+ } else {
357
+ result = buildScaleSegment(thousands, 'ו') + ' ' + SCALE[1]
358
+ }
359
+
360
+ if (remainder < 100) {
361
+ return result + ' ' + buildOrdinalTensOnes(remainder)
362
+ }
363
+
364
+ const remHundreds = Math.trunc(remainder / 100)
365
+ const remTensOnes = remainder % 100
366
+
367
+ if (remTensOnes === 0) {
368
+ return result + ' ' + HUNDREDS[remHundreds]
369
+ }
370
+ return result + ' ' + HUNDREDS[remHundreds] + ' ' + buildOrdinalTensOnes(remTensOnes)
371
+ }
372
+
373
+ // Numbers >= 1,000,000
374
+ const millions = Number(n / 1_000_000n)
375
+ const remainder = n % 1_000_000n
376
+
377
+ if (remainder === 0n) {
378
+ if (millions === 1) {
379
+ return SCALE[2]
380
+ }
381
+ return buildScaleSegment(millions, 'ו') + ' ' + SCALE_PLURAL[2]
382
+ }
383
+
384
+ // Cardinal millions + ordinal remainder
385
+ let result
386
+ if (millions === 1) {
387
+ result = SCALE[2]
388
+ } else {
389
+ result = buildScaleSegment(millions, 'ו') + ' ' + SCALE_PLURAL[2]
390
+ }
391
+
392
+ return result + ' ' + integerToOrdinal(remainder)
393
+ }
394
+
395
+ /**
396
+ * Converts a numeric value to Hebrew ordinal words.
397
+ *
398
+ * @param {number | string | bigint} value - The numeric value to convert
399
+ * @returns {string} The ordinal in Hebrew words
400
+ * @throws {TypeError} If value is not a valid numeric type
401
+ * @throws {Error} If value is not a positive integer
402
+ *
403
+ * @example
404
+ * toOrdinal(1) // 'ראשון'
405
+ * toOrdinal(21) // 'עשרים וראשון'
406
+ */
407
+ function toOrdinal (value) {
408
+ const n = parseOrdinalValue(value)
409
+ return integerToOrdinal(n)
410
+ }
411
+
412
+ // ============================================================================
413
+ // Currency Functions
414
+ // ============================================================================
415
+
416
+ /**
417
+ * Builds segment word for currency (masculine forms).
418
+ */
419
+ function buildCurrencySegment (n) {
420
+ if (n === 0) return ''
421
+
422
+ const ones = n % 10
423
+ const tens = Math.trunc(n / 10) % 10
424
+ const hundreds = Math.trunc(n / 100)
425
+
426
+ let result = ''
427
+
428
+ // Hundreds
429
+ if (hundreds > 0) {
430
+ result = HUNDREDS[hundreds]
431
+ }
432
+
433
+ // Tens and ones
434
+ if (tens === 1) {
435
+ // Teens (10-19)
436
+ const teenWord = TEENS[ones]
437
+ if (result) {
438
+ result += ' ' + teenWord
439
+ } else {
440
+ result = teenWord
441
+ }
442
+ } else {
443
+ // Tens (20-90)
444
+ if (tens >= 2) {
445
+ if (result) {
446
+ result += ' ' + TENS[tens]
447
+ } else {
448
+ result = TENS[tens]
449
+ }
450
+ }
451
+
452
+ // Ones - masculine form for currency
453
+ if (ones > 0) {
454
+ if (result) {
455
+ result += ' ו' + ONES_MASC[ones]
456
+ } else {
457
+ result = ONES_MASC[ones]
458
+ }
459
+ }
460
+ }
461
+
462
+ return result
463
+ }
464
+
465
+ /**
466
+ * Converts a non-negative integer to Hebrew currency words (masculine).
467
+ *
468
+ * @param {bigint} n - Non-negative integer to convert
469
+ * @returns {string} Hebrew words (masculine form)
470
+ */
471
+ function integerToCurrencyWords (n) {
472
+ if (n === 0n) return ZERO
473
+
474
+ // Fast path: numbers < 1000
475
+ if (n < 1000n) {
476
+ return buildCurrencySegment(Number(n))
477
+ }
478
+
479
+ // Use general integerToWords but with masculine forms embedded in segment builder
480
+ // For simplicity, use the cardinal form which defaults to feminine
481
+ // However, for currency we need masculine - this is a simplification
482
+ return integerToWords(n, 'ו')
483
+ }
484
+
485
+ /**
486
+ * Converts a numeric value to Hebrew New Israeli Shekel currency words.
487
+ *
488
+ * @param {number | string | bigint} value - The numeric value to convert
489
+ * @returns {string} The currency in Hebrew words
490
+ * @throws {TypeError} If value is not a valid numeric type
491
+ * @throws {Error} If value is not a valid number format
492
+ *
493
+ * @example
494
+ * toCurrency(1) // 'שקל אחד'
495
+ * toCurrency(2.50) // 'שניים שקלים חמישים אגורות'
496
+ */
497
+ function toCurrency (value) {
498
+ const { isNegative, dollars, cents } = parseCurrencyValue(value)
499
+
500
+ const parts = []
501
+
502
+ if (isNegative) {
503
+ parts.push(NEGATIVE)
504
+ }
505
+
506
+ // Shekels (masculine)
507
+ if (dollars > 0n || cents === 0n) {
508
+ if (dollars === 1n) {
509
+ parts.push(SHEKEL_SINGULAR + ' ' + ONES_MASC[1])
510
+ } else if (dollars === 2n) {
511
+ parts.push(ONES_MASC[2] + ' ' + SHEKEL_PLURAL)
512
+ } else {
513
+ const shekelWord = integerToCurrencyWords(dollars)
514
+ const shekelForm = SHEKEL_PLURAL
515
+ parts.push(shekelWord + ' ' + shekelForm)
516
+ }
517
+ }
518
+
519
+ // Agorot (feminine)
520
+ if (cents > 0n) {
521
+ const centNum = Number(cents)
522
+ if (centNum === 1) {
523
+ parts.push(AGORA_SINGULAR + ' ' + ONES[1])
524
+ } else {
525
+ const centWord = integerToWords(cents, 'ו')
526
+ parts.push(centWord + ' ' + AGORA_PLURAL)
527
+ }
528
+ }
529
+
530
+ return parts.join(' ')
531
+ }
532
+
533
+ // ============================================================================
534
+ // Exports
535
+ // ============================================================================
536
+
537
+ export { toCardinal, toOrdinal, toCurrency }
package/src/hi-IN.d.ts ADDED
@@ -0,0 +1,36 @@
1
+ /**
2
+ * Converts a numeric value to Hindi words.
3
+ *
4
+ * @param {number | string | bigint} value - The numeric value to convert
5
+ * @returns {string} The number in Hindi words
6
+ */
7
+ export function toCardinal(value: number | string | bigint): string;
8
+ /**
9
+ * Converts a numeric value to Hindi ordinal words.
10
+ *
11
+ * @param {number | string | bigint} value - The numeric value to convert (positive integer)
12
+ * @returns {string} The number as ordinal words
13
+ * @throws {TypeError} If value is not a valid numeric type
14
+ * @throws {RangeError} If value is negative, zero, or has a decimal part
15
+ *
16
+ * @example
17
+ * toOrdinal(1) // 'पहला'
18
+ * toOrdinal(2) // 'दूसरा'
19
+ * toOrdinal(3) // 'तीसरा'
20
+ * toOrdinal(10) // 'दसवाँ'
21
+ */
22
+ export function toOrdinal(value: number | string | bigint): string;
23
+ /**
24
+ * Converts a numeric value to Hindi currency words (Indian Rupee).
25
+ *
26
+ * @param {number | string | bigint} value - The currency amount to convert
27
+ * @returns {string} The amount in Hindi currency words
28
+ * @throws {TypeError} If value is not a valid numeric type
29
+ * @throws {Error} If value is not a valid number format
30
+ *
31
+ * @example
32
+ * toCurrency(42.50) // 'बयालीस रुपये पचास पैसे'
33
+ * toCurrency(1) // 'एक रुपया'
34
+ * toCurrency(0.01) // 'एक पैसा'
35
+ */
36
+ export function toCurrency(value: number | string | bigint): string;