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/en-NG.d.ts ADDED
@@ -0,0 +1,56 @@
1
+ /**
2
+ * Converts a numeric value to Nigerian English words.
3
+ *
4
+ * This is the main public API. It accepts any valid numeric input
5
+ * (number, string, or bigint) and handles parsing internally.
6
+ *
7
+ * @param {number | string | bigint} value - The numeric value to convert
8
+ * @returns {string} The number in English words
9
+ * @throws {TypeError} If value is not a valid numeric type
10
+ * @throws {Error} If value is not a valid number format
11
+ *
12
+ * @example
13
+ * toCardinal(42) // 'forty-two'
14
+ * toCardinal(-3.14) // 'minus three point fourteen'
15
+ * toCardinal('1000000') // 'one million'
16
+ */
17
+ export function toCardinal(value: number | string | bigint): string;
18
+ /**
19
+ * Converts a numeric value to Nigerian English ordinal words.
20
+ *
21
+ * @param {number | string | bigint} value - The numeric value to convert (must be a positive integer)
22
+ * @returns {string} The number as ordinal words (e.g., "first", "forty-second")
23
+ * @throws {TypeError} If value is not a valid numeric type
24
+ * @throws {RangeError} If value is negative, zero, or has a decimal part
25
+ *
26
+ * @example
27
+ * toOrdinal(1) // 'first'
28
+ * toOrdinal(2) // 'second'
29
+ * toOrdinal(3) // 'third'
30
+ * toOrdinal(21) // 'twenty-first'
31
+ * toOrdinal(42) // 'forty-second'
32
+ * toOrdinal(100) // 'one hundredth'
33
+ * toOrdinal(101) // 'one hundred first'
34
+ * toOrdinal(1000) // 'one thousandth'
35
+ */
36
+ export function toOrdinal(value: number | string | bigint): string;
37
+ /**
38
+ * Converts a numeric value to Nigerian English currency words.
39
+ *
40
+ * @param {number | string | bigint} value - The currency amount to convert
41
+ * @param {Object} [options] - Optional configuration
42
+ * @param {boolean} [options.and=true] - Use "and" between naira and kobo (e.g., "one naira and fifty kobo")
43
+ * @returns {string} The amount in Nigerian English currency words
44
+ * @throws {TypeError} If value is not a valid numeric type
45
+ * @throws {Error} If value is not a valid number format
46
+ *
47
+ * @example
48
+ * toCurrency(42.50) // 'forty-two naira and fifty kobo'
49
+ * toCurrency(1) // 'one naira'
50
+ * toCurrency(0.99) // 'ninety-nine kobo'
51
+ * toCurrency(0.01) // 'one kobo'
52
+ * toCurrency(42.50, { and: false }) // 'forty-two naira fifty kobo'
53
+ */
54
+ export function toCurrency(value: number | string | bigint, options?: {
55
+ and?: boolean | undefined;
56
+ }): string;
package/src/en-NG.js ADDED
@@ -0,0 +1,479 @@
1
+ /**
2
+ * Nigerian English language converter
3
+ *
4
+ * CLDR: en-NG | English as used in Nigeria
5
+ *
6
+ * Exports:
7
+ * - toCardinal(value) - Cardinal numbers: 42 → "forty-two"
8
+ * - toOrdinal(value) - Ordinal numbers: 42 → "forty-second"
9
+ * - toCurrency(value, options?) - Currency: 42.50 → "forty-two naira and fifty kobo"
10
+ *
11
+ * Nigerian English conventions:
12
+ * - Follows British English style
13
+ * - "and" after hundreds: "one hundred and twenty-three"
14
+ * - "and" before final segment: "one million and one"
15
+ * - Hyphenated tens-ones: "twenty-one", "forty-two"
16
+ * - Western numbering system (short scale: billion = 10^9)
17
+ * - Currency: Nigerian Naira (NGN) - naira (singular/plural), kobo (singular/plural)
18
+ *
19
+ * Note: In Nigerian English, both "naira" and "kobo" are typically invariable
20
+ * (same for singular and plural).
21
+ */
22
+
23
+ import { parseCardinalValue } from './utils/parse-cardinal.js'
24
+ import { parseCurrencyValue } from './utils/parse-currency.js'
25
+ import { parseOrdinalValue } from './utils/parse-ordinal.js'
26
+ import { validateOptions } from './utils/validate-options.js'
27
+
28
+ // ============================================================================
29
+ // Vocabulary (module-level constants)
30
+ // ============================================================================
31
+
32
+ const ONES = ['', 'one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight', 'nine']
33
+ const TEENS = ['ten', 'eleven', 'twelve', 'thirteen', 'fourteen', 'fifteen', 'sixteen', 'seventeen', 'eighteen', 'nineteen']
34
+ const TENS = ['', '', 'twenty', 'thirty', 'forty', 'fifty', 'sixty', 'seventy', 'eighty', 'ninety']
35
+
36
+ const SCALES = [
37
+ 'thousand', 'million', 'billion', 'trillion', 'quadrillion',
38
+ 'quintillion', 'sextillion', 'septillion', 'octillion', 'nonillion',
39
+ 'decillion', 'undecillion', 'duodecillion', 'tredecillion', 'quattuordecillion',
40
+ 'quindecillion', 'sexdecillion', 'septendecillion', 'octodecillion', 'novemdecillion',
41
+ 'vigintillion'
42
+ ]
43
+
44
+ const HUNDRED = 'hundred'
45
+ const ZERO = 'zero'
46
+ const NEGATIVE = 'minus'
47
+ const DECIMAL_SEP = 'point'
48
+
49
+ // Ordinal vocabulary
50
+ const ORDINAL_ONES = ['', 'first', 'second', 'third', 'fourth', 'fifth', 'sixth', 'seventh', 'eighth', 'ninth']
51
+ const ORDINAL_TEENS = ['tenth', 'eleventh', 'twelfth', 'thirteenth', 'fourteenth', 'fifteenth', 'sixteenth', 'seventeenth', 'eighteenth', 'nineteenth']
52
+ const ORDINAL_TENS = ['', '', 'twentieth', 'thirtieth', 'fortieth', 'fiftieth', 'sixtieth', 'seventieth', 'eightieth', 'ninetieth']
53
+
54
+ // Currency vocabulary (Nigerian Naira - invariable)
55
+ const NAIRA = 'naira'
56
+ const KOBO = 'kobo'
57
+
58
+ // ============================================================================
59
+ // Segment Building
60
+ // ============================================================================
61
+
62
+ // Reusable result object to avoid allocation per call
63
+ const segmentResult = { word: '', hasHundred: false }
64
+
65
+ /**
66
+ * Builds words for a 0-999 segment.
67
+ *
68
+ * @param {number} n - Number 0-999
69
+ * @returns {{ word: string, hasHundred: boolean }}
70
+ */
71
+ function buildSegment (n) {
72
+ if (n === 0) {
73
+ segmentResult.word = ''
74
+ segmentResult.hasHundred = false
75
+ return segmentResult
76
+ }
77
+
78
+ const ones = n % 10
79
+ const tens = Math.trunc(n / 10) % 10
80
+ const hundreds = Math.trunc(n / 100)
81
+
82
+ // Build tens-ones part first
83
+ let tensOnes = ''
84
+ if (tens === 1) {
85
+ tensOnes = TEENS[ones]
86
+ } else if (tens >= 2) {
87
+ tensOnes = ones > 0 ? TENS[tens] + '-' + ONES[ones] : TENS[tens]
88
+ } else if (ones > 0) {
89
+ tensOnes = ONES[ones]
90
+ }
91
+
92
+ // Hundreds place
93
+ if (hundreds > 0) {
94
+ if (tensOnes) {
95
+ segmentResult.word = ONES[hundreds] + ' ' + HUNDRED + ' and ' + tensOnes
96
+ } else {
97
+ segmentResult.word = ONES[hundreds] + ' ' + HUNDRED
98
+ }
99
+ segmentResult.hasHundred = true
100
+ } else {
101
+ segmentResult.word = tensOnes
102
+ segmentResult.hasHundred = false
103
+ }
104
+
105
+ return segmentResult
106
+ }
107
+
108
+ // ============================================================================
109
+ // Conversion Functions
110
+ // ============================================================================
111
+
112
+ /**
113
+ * Converts a non-negative integer to English words.
114
+ *
115
+ * @param {bigint} n - Non-negative integer to convert
116
+ * @returns {string} English words
117
+ */
118
+ function integerToWords (n) {
119
+ if (n === 0n) return ZERO
120
+
121
+ // Fast path: numbers < 1000
122
+ if (n < 1000n) {
123
+ return buildSegment(Number(n)).word
124
+ }
125
+
126
+ // Fast path: numbers < 1,000,000
127
+ if (n < 1_000_000n) {
128
+ const thousands = Number(n / 1000n)
129
+ const remainder = Number(n % 1000n)
130
+
131
+ const { word: thousandsWord } = buildSegment(thousands)
132
+ let result = thousandsWord + ' ' + SCALES[0]
133
+
134
+ if (remainder > 0) {
135
+ const { word: remainderWord, hasHundred } = buildSegment(remainder)
136
+ result += hasHundred ? ' ' + remainderWord : ' and ' + remainderWord
137
+ }
138
+
139
+ return result
140
+ }
141
+
142
+ // For numbers >= 1,000,000, use scale decomposition
143
+ return buildLargeNumberWords(n)
144
+ }
145
+
146
+ /**
147
+ * Builds words for numbers >= 1,000,000.
148
+ * Uses BigInt division for faster segment extraction.
149
+ *
150
+ * @param {bigint} n - Number >= 1,000,000
151
+ * @returns {string} English words
152
+ */
153
+ function buildLargeNumberWords (n) {
154
+ // Extract segments using BigInt division
155
+ // Segments are stored least-significant first (index 0 = ones, 1 = thousands, etc.)
156
+ const segments = []
157
+ let temp = n
158
+ while (temp > 0n) {
159
+ segments.push(Number(temp % 1000n))
160
+ temp = temp / 1000n
161
+ }
162
+
163
+ // Find the first (smallest index) non-zero segment - this is processed last
164
+ let firstNonZeroIdx = -1
165
+ for (let i = 0; i < segments.length; i++) {
166
+ if (segments[i] !== 0) {
167
+ firstNonZeroIdx = i
168
+ break
169
+ }
170
+ }
171
+
172
+ // Build result string (process from most-significant to least)
173
+ let result = ''
174
+ let prevWasScale = false
175
+
176
+ for (let i = segments.length - 1; i >= 0; i--) {
177
+ const segment = segments[i]
178
+ if (segment === 0) continue
179
+
180
+ const { word, hasHundred } = buildSegment(segment)
181
+ const isLastSegment = (i === firstNonZeroIdx)
182
+
183
+ // Add "and" only before FINAL segment if it follows scale and doesn't have hundred
184
+ if (result && isLastSegment && prevWasScale && !hasHundred) {
185
+ result += ' and'
186
+ }
187
+
188
+ // Add segment word
189
+ if (result) result += ' '
190
+ result += word
191
+
192
+ // Add scale word (i=0 is units, i=1 is thousands, etc.)
193
+ if (i > 0) {
194
+ result += ' ' + SCALES[i - 1]
195
+ prevWasScale = true
196
+ } else {
197
+ prevWasScale = false
198
+ }
199
+ }
200
+
201
+ return result
202
+ }
203
+
204
+ /**
205
+ * Converts decimal digits to English words.
206
+ *
207
+ * @param {string} decimalPart - Decimal digits (without the point)
208
+ * @returns {string} English words for decimal part
209
+ */
210
+ function decimalPartToWords (decimalPart) {
211
+ let result = ''
212
+
213
+ // Handle leading zeros
214
+ let i = 0
215
+ while (i < decimalPart.length && decimalPart[i] === '0') {
216
+ if (result) result += ' '
217
+ result += ZERO
218
+ i++
219
+ }
220
+
221
+ // Convert remainder as a single number
222
+ const remainder = decimalPart.slice(i)
223
+ if (remainder) {
224
+ if (result) result += ' '
225
+ result += integerToWords(BigInt(remainder))
226
+ }
227
+
228
+ return result
229
+ }
230
+
231
+ /**
232
+ * Converts a numeric value to Nigerian English words.
233
+ *
234
+ * This is the main public API. It accepts any valid numeric input
235
+ * (number, string, or bigint) and handles parsing internally.
236
+ *
237
+ * @param {number | string | bigint} value - The numeric value to convert
238
+ * @returns {string} The number in English words
239
+ * @throws {TypeError} If value is not a valid numeric type
240
+ * @throws {Error} If value is not a valid number format
241
+ *
242
+ * @example
243
+ * toCardinal(42) // 'forty-two'
244
+ * toCardinal(-3.14) // 'minus three point fourteen'
245
+ * toCardinal('1000000') // 'one million'
246
+ */
247
+ function toCardinal (value) {
248
+ const { isNegative, integerPart, decimalPart } = parseCardinalValue(value)
249
+
250
+ let result = ''
251
+
252
+ if (isNegative) {
253
+ result = NEGATIVE + ' '
254
+ }
255
+
256
+ result += integerToWords(integerPart)
257
+
258
+ if (decimalPart) {
259
+ result += ' ' + DECIMAL_SEP + ' ' + decimalPartToWords(decimalPart)
260
+ }
261
+
262
+ return result
263
+ }
264
+
265
+ // ============================================================================
266
+ // ORDINAL: toOrdinal(value)
267
+ // ============================================================================
268
+
269
+ /**
270
+ * Builds ordinal words for a 0-999 segment (final segment only).
271
+ * Returns ordinal form: "first", "twenty-third", "one hundred forty-fifth"
272
+ *
273
+ * @param {number} n - Number 0-999
274
+ * @returns {string} Ordinal words for this segment
275
+ */
276
+ function buildOrdinalSegment (n) {
277
+ const ones = n % 10
278
+ const tens = Math.trunc(n / 10) % 10
279
+ const hundreds = Math.trunc(n / 100)
280
+
281
+ // Build ordinal for tens-ones portion
282
+ let tensOnesOrdinal = ''
283
+ if (tens === 1) {
284
+ // Teens: 10-19 → "tenth" through "nineteenth"
285
+ tensOnesOrdinal = ORDINAL_TEENS[ones]
286
+ } else if (tens >= 2) {
287
+ if (ones > 0) {
288
+ // Compound: "twenty-first", "thirty-second", etc.
289
+ tensOnesOrdinal = TENS[tens] + '-' + ORDINAL_ONES[ones]
290
+ } else {
291
+ // Round tens: "twentieth", "thirtieth", etc.
292
+ tensOnesOrdinal = ORDINAL_TENS[tens]
293
+ }
294
+ } else if (ones > 0) {
295
+ // Single digit: "first", "second", etc.
296
+ tensOnesOrdinal = ORDINAL_ONES[ones]
297
+ }
298
+
299
+ // Hundreds place
300
+ if (hundreds > 0) {
301
+ if (tensOnesOrdinal) {
302
+ // "one hundred twenty-first"
303
+ return ONES[hundreds] + ' ' + HUNDRED + ' ' + tensOnesOrdinal
304
+ } else {
305
+ // "one hundredth", "two hundredth", etc.
306
+ return ONES[hundreds] + ' hundredth'
307
+ }
308
+ }
309
+
310
+ return tensOnesOrdinal
311
+ }
312
+
313
+ /**
314
+ * Converts a positive integer to ordinal words.
315
+ * Generates ordinals directly without string manipulation.
316
+ *
317
+ * @param {bigint} n - Positive integer to convert
318
+ * @returns {string} Ordinal English words
319
+ */
320
+ function integerToOrdinal (n) {
321
+ // Fast path: numbers < 1000
322
+ if (n < 1000n) {
323
+ return buildOrdinalSegment(Number(n))
324
+ }
325
+
326
+ // Fast path: numbers < 1,000,000
327
+ if (n < 1_000_000n) {
328
+ const thousands = Number(n / 1000n)
329
+ const remainder = Number(n % 1000n)
330
+
331
+ if (remainder === 0) {
332
+ // Exact thousands: "one thousandth", "five thousandth"
333
+ return buildSegment(thousands).word + ' ' + SCALES[0] + 'th'
334
+ }
335
+
336
+ // Has remainder: cardinal thousands + ordinal remainder
337
+ const { word: thousandsWord } = buildSegment(thousands)
338
+ return thousandsWord + ' ' + SCALES[0] + ' ' + buildOrdinalSegment(remainder)
339
+ }
340
+
341
+ // For numbers >= 1,000,000, use scale decomposition
342
+ return buildLargeOrdinal(n)
343
+ }
344
+
345
+ /**
346
+ * Builds ordinal words for numbers >= 1,000,000.
347
+ * All segments except the final one are cardinal; final segment is ordinal.
348
+ *
349
+ * @param {bigint} n - Number >= 1,000,000
350
+ * @returns {string} Ordinal English words
351
+ */
352
+ function buildLargeOrdinal (n) {
353
+ // Extract segments (least-significant first)
354
+ const segments = []
355
+ let temp = n
356
+ while (temp > 0n) {
357
+ segments.push(Number(temp % 1000n))
358
+ temp = temp / 1000n
359
+ }
360
+
361
+ // Find the lowest non-zero segment (this gets ordinal treatment)
362
+ let lowestNonZeroIdx = 0
363
+ for (let i = 0; i < segments.length; i++) {
364
+ if (segments[i] !== 0) {
365
+ lowestNonZeroIdx = i
366
+ break
367
+ }
368
+ }
369
+
370
+ // Build result (most-significant to least)
371
+ let result = ''
372
+
373
+ for (let i = segments.length - 1; i >= 0; i--) {
374
+ const segment = segments[i]
375
+ if (segment === 0) continue
376
+
377
+ const isLowestSegment = (i === lowestNonZeroIdx)
378
+
379
+ if (result) result += ' '
380
+
381
+ if (isLowestSegment) {
382
+ // Final non-zero segment gets ordinal treatment
383
+ if (i === 0) {
384
+ // Units position: use ordinal segment
385
+ result += buildOrdinalSegment(segment)
386
+ } else {
387
+ // Scale position with no remainder below: "one millionth"
388
+ result += buildSegment(segment).word + ' ' + SCALES[i - 1] + 'th'
389
+ }
390
+ } else {
391
+ // Non-final segments are cardinal
392
+ result += buildSegment(segment).word
393
+ if (i > 0) {
394
+ result += ' ' + SCALES[i - 1]
395
+ }
396
+ }
397
+ }
398
+
399
+ return result
400
+ }
401
+
402
+ /**
403
+ * Converts a numeric value to Nigerian English ordinal words.
404
+ *
405
+ * @param {number | string | bigint} value - The numeric value to convert (must be a positive integer)
406
+ * @returns {string} The number as ordinal words (e.g., "first", "forty-second")
407
+ * @throws {TypeError} If value is not a valid numeric type
408
+ * @throws {RangeError} If value is negative, zero, or has a decimal part
409
+ *
410
+ * @example
411
+ * toOrdinal(1) // 'first'
412
+ * toOrdinal(2) // 'second'
413
+ * toOrdinal(3) // 'third'
414
+ * toOrdinal(21) // 'twenty-first'
415
+ * toOrdinal(42) // 'forty-second'
416
+ * toOrdinal(100) // 'one hundredth'
417
+ * toOrdinal(101) // 'one hundred first'
418
+ * toOrdinal(1000) // 'one thousandth'
419
+ */
420
+ function toOrdinal (value) {
421
+ const integerPart = parseOrdinalValue(value)
422
+ return integerToOrdinal(integerPart)
423
+ }
424
+
425
+ // ============================================================================
426
+ // CURRENCY: toCurrency(value, options?)
427
+ // ============================================================================
428
+
429
+ /**
430
+ * Converts a numeric value to Nigerian English currency words.
431
+ *
432
+ * @param {number | string | bigint} value - The currency amount to convert
433
+ * @param {Object} [options] - Optional configuration
434
+ * @param {boolean} [options.and=true] - Use "and" between naira and kobo (e.g., "one naira and fifty kobo")
435
+ * @returns {string} The amount in Nigerian English currency words
436
+ * @throws {TypeError} If value is not a valid numeric type
437
+ * @throws {Error} If value is not a valid number format
438
+ *
439
+ * @example
440
+ * toCurrency(42.50) // 'forty-two naira and fifty kobo'
441
+ * toCurrency(1) // 'one naira'
442
+ * toCurrency(0.99) // 'ninety-nine kobo'
443
+ * toCurrency(0.01) // 'one kobo'
444
+ * toCurrency(42.50, { and: false }) // 'forty-two naira fifty kobo'
445
+ */
446
+ function toCurrency (value, options) {
447
+ options = validateOptions(options)
448
+ const { isNegative, dollars: naira, cents: kobo } = parseCurrencyValue(value)
449
+ const { and: useAnd = true } = options
450
+
451
+ // Build result
452
+ let result = ''
453
+ if (isNegative) result = NEGATIVE + ' '
454
+
455
+ // Naira part (show if non-zero, or if no kobo)
456
+ // Note: In Nigerian English, "naira" is invariable (same singular/plural)
457
+ if (naira > 0n || kobo === 0n) {
458
+ result += integerToWords(naira)
459
+ result += ' ' + NAIRA
460
+ }
461
+
462
+ // Kobo part
463
+ // Note: In Nigerian English, "kobo" is invariable (same singular/plural)
464
+ if (kobo > 0n) {
465
+ if (naira > 0n) {
466
+ result += useAnd ? ' and ' : ' '
467
+ }
468
+ result += integerToWords(kobo)
469
+ result += ' ' + KOBO
470
+ }
471
+
472
+ return result
473
+ }
474
+
475
+ // ============================================================================
476
+ // Public API
477
+ // ============================================================================
478
+
479
+ export { toCardinal, toOrdinal, toCurrency }
package/src/en-NZ.d.ts ADDED
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Converts a numeric value to New Zealand English words.
3
+ *
4
+ * @param {number | string | bigint} value - The numeric value to convert
5
+ * @returns {string} The number in English words
6
+ * @throws {TypeError} If value is not a valid numeric type
7
+ * @throws {Error} If value is not a valid number format
8
+ */
9
+ export function toCardinal(value: number | string | bigint): string;
10
+ export function toOrdinal(value: any): string;
11
+ export function toCurrency(value: any, options: any): string;