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
@@ -1,224 +0,0 @@
1
- /**
2
- * Ukrainian language converter - Functional Implementation
3
- *
4
- * Self-contained module with its own input validation, ready for subpath exports.
5
- *
6
- * Key features:
7
- * - Three-form pluralization (one/few/many)
8
- * - Gender: thousands are feminine, millions+ are masculine
9
- * - Irregular hundreds
10
- * - Long scale naming
11
- */
12
-
13
- import { parseNumericValue } from '../utils/parse-numeric.js'
14
- import { validateOptions } from '../utils/validate-options.js'
15
-
16
- // ============================================================================
17
- // Vocabulary
18
- // ============================================================================
19
-
20
- const ONES_MASC = ['', 'один', 'два', 'три', 'чотири', 'п\'ять', 'шiсть', 'сiм', 'вiсiм', 'дев\'ять']
21
- const ONES_FEM = ['', 'одна', 'двi', 'три', 'чотири', 'п\'ять', 'шiсть', 'сiм', 'вiсiм', 'дев\'ять']
22
-
23
- const TEENS = ['десять', 'одинадцять', 'дванадцять', 'тринадцять', 'чотирнадцять', 'п\'ятнадцять', 'шiстнадцять', 'сiмнадцять', 'вiсiмнадцять', 'дев\'ятнадцять']
24
- const TENS = ['', '', 'двадцять', 'тридцять', 'сорок', 'п\'ятдесят', 'шiстдесят', 'сiмдесят', 'вiсiмдесят', 'дев\'яносто']
25
-
26
- // Irregular hundreds
27
- const HUNDREDS = ['', 'сто', 'двiстi', 'триста', 'чотириста', 'п\'ятсот', 'шiстсот', 'сiмсот', 'вiсiмсот', 'дев\'ятсот']
28
-
29
- const ZERO = 'нуль'
30
- const NEGATIVE = 'мiнус'
31
- const DECIMAL_SEP = 'кома'
32
-
33
- // Scale words: [singular, few, many]
34
- // Thousands (index 0) are feminine, rest are masculine
35
- const SCALE_FORMS = [
36
- ['тисяча', 'тисячi', 'тисяч'],
37
- ['мiльйон', 'мiльйони', 'мiльйонiв'],
38
- ['мiльярд', 'мiльярди', 'мiльярдiв'],
39
- ['трильйон', 'трильйони', 'трильйонiв'],
40
- ['квадрильйон', 'квадрильйони', 'квадрильйонiв'],
41
- ['квiнтильйон', 'квiнтильйони', 'квiнтильйонiв'],
42
- ['секстильйон', 'секстильйони', 'секстильйонiв'],
43
- ['септильйон', 'септильйони', 'септильйонiв'],
44
- ['октильйон', 'октильйони', 'октильйонiв']
45
- ]
46
-
47
- // ============================================================================
48
- // Segment Building
49
- // ============================================================================
50
-
51
- function pluralize (n, forms) {
52
- const num = typeof n === 'bigint' ? Number(n) : n
53
- const lastDigit = num % 10
54
- const lastTwoDigits = num % 100
55
-
56
- if (lastTwoDigits >= 11 && lastTwoDigits <= 19) {
57
- return forms[2]
58
- }
59
-
60
- if (lastDigit === 1) return forms[0]
61
- if (lastDigit >= 2 && lastDigit <= 4) return forms[1]
62
- return forms[2]
63
- }
64
-
65
- function buildSegmentMasc (n) {
66
- if (n === 0) return ''
67
-
68
- const onesDigit = n % 10
69
- const tensDigit = Math.floor(n / 10) % 10
70
- const hundredsDigit = Math.floor(n / 100)
71
-
72
- const parts = []
73
-
74
- if (hundredsDigit > 0) {
75
- parts.push(HUNDREDS[hundredsDigit])
76
- }
77
-
78
- if (tensDigit > 1) {
79
- parts.push(TENS[tensDigit])
80
- }
81
-
82
- if (tensDigit === 1) {
83
- parts.push(TEENS[onesDigit])
84
- } else if (onesDigit > 0) {
85
- parts.push(ONES_MASC[onesDigit])
86
- }
87
-
88
- return parts.join(' ')
89
- }
90
-
91
- function buildSegmentFem (n) {
92
- if (n === 0) return ''
93
-
94
- const onesDigit = n % 10
95
- const tensDigit = Math.floor(n / 10) % 10
96
- const hundredsDigit = Math.floor(n / 100)
97
-
98
- const parts = []
99
-
100
- if (hundredsDigit > 0) {
101
- parts.push(HUNDREDS[hundredsDigit])
102
- }
103
-
104
- if (tensDigit > 1) {
105
- parts.push(TENS[tensDigit])
106
- }
107
-
108
- if (tensDigit === 1) {
109
- parts.push(TEENS[onesDigit])
110
- } else if (onesDigit > 0) {
111
- parts.push(ONES_FEM[onesDigit])
112
- }
113
-
114
- return parts.join(' ')
115
- }
116
-
117
- // ============================================================================
118
- // Conversion Functions
119
- // ============================================================================
120
-
121
- function integerToWords (n, options = {}) {
122
- if (n === 0n) return ZERO
123
-
124
- if (n < 1000n) {
125
- return options.gender === 'feminine' ? buildSegmentFem(Number(n)) : buildSegmentMasc(Number(n))
126
- }
127
-
128
- return buildLargeNumberWords(n, options)
129
- }
130
-
131
- function buildLargeNumberWords (n, options) {
132
- const numStr = n.toString()
133
- const len = numStr.length
134
-
135
- const segments = []
136
- const segmentSize = 3
137
-
138
- const remainderLen = len % segmentSize
139
- let pos = 0
140
- if (remainderLen > 0) {
141
- segments.push(Number(numStr.slice(0, remainderLen)))
142
- pos = remainderLen
143
- }
144
- while (pos < len) {
145
- segments.push(Number(numStr.slice(pos, pos + segmentSize)))
146
- pos += segmentSize
147
- }
148
-
149
- const parts = []
150
- let scaleIndex = segments.length - 1
151
-
152
- for (let i = 0; i < segments.length; i++) {
153
- const segment = segments[i]
154
-
155
- if (segment !== 0) {
156
- if (scaleIndex === 0) {
157
- parts.push(options.gender === 'feminine' ? buildSegmentFem(segment) : buildSegmentMasc(segment))
158
- } else {
159
- const scaleForms = SCALE_FORMS[scaleIndex - 1]
160
- const scaleWord = pluralize(segment, scaleForms)
161
- // Thousands (scaleIndex=1) are feminine, others masculine
162
- const isFeminine = scaleIndex === 1
163
- const segmentWord = isFeminine ? buildSegmentFem(segment) : buildSegmentMasc(segment)
164
- parts.push(segmentWord + ' ' + scaleWord)
165
- }
166
- }
167
-
168
- scaleIndex--
169
- }
170
-
171
- return parts.join(' ')
172
- }
173
-
174
- function decimalPartToWords (decimalPart, options) {
175
- let result = ''
176
- let i = 0
177
-
178
- while (i < decimalPart.length && decimalPart[i] === '0') {
179
- if (result) result += ' '
180
- result += ZERO
181
- i++
182
- }
183
-
184
- const remainder = decimalPart.slice(i)
185
- if (remainder) {
186
- if (result) result += ' '
187
- result += integerToWords(BigInt(remainder), options)
188
- }
189
-
190
- return result
191
- }
192
-
193
- /**
194
- * Converts a numeric value to Ukrainian words.
195
- *
196
- * @param {number | string | bigint} value - The numeric value to convert
197
- * @param {Object} [options] - Optional configuration
198
- * @param {('masculine'|'feminine')} [options.gender='masculine'] - Grammatical gender
199
- * @returns {string} The number in Ukrainian words
200
- */
201
- function toWords (value, options) {
202
- options = validateOptions(options)
203
- const { isNegative, integerPart, decimalPart } = parseNumericValue(value)
204
-
205
- let result = ''
206
-
207
- if (isNegative) {
208
- result = NEGATIVE + ' '
209
- }
210
-
211
- result += integerToWords(integerPart, options)
212
-
213
- if (decimalPart) {
214
- result += ' ' + DECIMAL_SEP + ' ' + decimalPartToWords(decimalPart, options)
215
- }
216
-
217
- return result
218
- }
219
-
220
- // ============================================================================
221
- // Exports
222
- // ============================================================================
223
-
224
- export { toWords }
@@ -1,7 +0,0 @@
1
- /**
2
- * Converts a numeric value to Urdu words.
3
- *
4
- * @param {number | string | bigint} value - The numeric value to convert
5
- * @returns {string} The number in Urdu words
6
- */
7
- export function toWords(value: number | string | bigint): string;
@@ -1,17 +0,0 @@
1
- /**
2
- * Converts a numeric value to Vietnamese 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 Vietnamese 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
- * toWords(42) // 'bốn mươi hai'
14
- * toWords(101) // 'một trăm lẻ một'
15
- * toWords(1000000) // 'một triệu'
16
- */
17
- export function toWords(value: number | string | bigint): string;
@@ -1,7 +0,0 @@
1
- /**
2
- * Converts a numeric value to Yoruba words.
3
- *
4
- * @param {number | string | bigint} value - The numeric value to convert
5
- * @returns {string} The number in Yoruba words
6
- */
7
- export function toWords(value: number | string | bigint): string;
@@ -1,11 +0,0 @@
1
- /**
2
- * Converts a numeric value to Simplified Chinese words.
3
- *
4
- * @param {number | string | bigint} value - The numeric value to convert
5
- * @param {Object} [options] - Optional configuration
6
- * @param {boolean} [options.formal=true] - Use formal/financial numerals
7
- * @returns {string} The number in Simplified Chinese words
8
- */
9
- export function toWords(value: number | string | bigint, options?: {
10
- formal?: boolean | undefined;
11
- }): string;
@@ -1,11 +0,0 @@
1
- /**
2
- * Converts a numeric value to Traditional Chinese words.
3
- *
4
- * @param {number | string | bigint} value - The numeric value to convert
5
- * @param {Object} [options] - Optional configuration
6
- * @param {boolean} [options.formal=true] - Use formal/financial numerals
7
- * @returns {string} The number in Traditional Chinese words
8
- */
9
- export function toWords(value: number | string | bigint, options?: {
10
- formal?: boolean | undefined;
11
- }): string;
package/lib/n2words.d.ts DELETED
@@ -1,55 +0,0 @@
1
- import { toWords as am } from './languages/am.js';
2
- import { toWords as amLatn } from './languages/am-Latn.js';
3
- import { toWords as ar } from './languages/ar.js';
4
- import { toWords as az } from './languages/az.js';
5
- import { toWords as bn } from './languages/bn.js';
6
- import { toWords as cs } from './languages/cs.js';
7
- import { toWords as da } from './languages/da.js';
8
- import { toWords as de } from './languages/de.js';
9
- import { toWords as el } from './languages/el.js';
10
- import { toWords as en } from './languages/en.js';
11
- import { toWords as es } from './languages/es.js';
12
- import { toWords as fa } from './languages/fa.js';
13
- import { toWords as fi } from './languages/fi.js';
14
- import { toWords as fil } from './languages/fil.js';
15
- import { toWords as fr } from './languages/fr.js';
16
- import { toWords as frBE } from './languages/fr-BE.js';
17
- import { toWords as gu } from './languages/gu.js';
18
- import { toWords as ha } from './languages/ha.js';
19
- import { toWords as hbo } from './languages/hbo.js';
20
- import { toWords as he } from './languages/he.js';
21
- import { toWords as hi } from './languages/hi.js';
22
- import { toWords as hr } from './languages/hr.js';
23
- import { toWords as hu } from './languages/hu.js';
24
- import { toWords as id } from './languages/id.js';
25
- import { toWords as it } from './languages/it.js';
26
- import { toWords as ja } from './languages/ja.js';
27
- import { toWords as ka } from './languages/ka.js';
28
- import { toWords as kn } from './languages/kn.js';
29
- import { toWords as ko } from './languages/ko.js';
30
- import { toWords as lt } from './languages/lt.js';
31
- import { toWords as lv } from './languages/lv.js';
32
- import { toWords as mr } from './languages/mr.js';
33
- import { toWords as ms } from './languages/ms.js';
34
- import { toWords as nb } from './languages/nb.js';
35
- import { toWords as nl } from './languages/nl.js';
36
- import { toWords as pa } from './languages/pa.js';
37
- import { toWords as pl } from './languages/pl.js';
38
- import { toWords as pt } from './languages/pt.js';
39
- import { toWords as ro } from './languages/ro.js';
40
- import { toWords as ru } from './languages/ru.js';
41
- import { toWords as srCyrl } from './languages/sr-Cyrl.js';
42
- import { toWords as srLatn } from './languages/sr-Latn.js';
43
- import { toWords as sv } from './languages/sv.js';
44
- import { toWords as sw } from './languages/sw.js';
45
- import { toWords as ta } from './languages/ta.js';
46
- import { toWords as te } from './languages/te.js';
47
- import { toWords as th } from './languages/th.js';
48
- import { toWords as tr } from './languages/tr.js';
49
- import { toWords as uk } from './languages/uk.js';
50
- import { toWords as ur } from './languages/ur.js';
51
- import { toWords as vi } from './languages/vi.js';
52
- import { toWords as yo } from './languages/yo.js';
53
- import { toWords as zhHans } from './languages/zh-Hans.js';
54
- import { toWords as zhHant } from './languages/zh-Hant.js';
55
- export { am, amLatn, ar, az, bn, cs, da, de, el, en, es, fa, fi, fil, fr, frBE, gu, ha, hbo, he, hi, hr, hu, id, it, ja, ka, kn, ko, lt, lv, mr, ms, nb, nl, pa, pl, pt, ro, ru, srCyrl, srLatn, sv, sw, ta, te, th, tr, uk, ur, vi, yo, zhHans, zhHant };
package/lib/n2words.js DELETED
@@ -1,126 +0,0 @@
1
- /**
2
- * n2words - Number to words converter
3
- *
4
- * This module re-exports all language converters as named exports.
5
- * Each export is a `toWords(value, options?)` function.
6
- *
7
- * Export names use normalized BCP 47 codes (hyphens → camelCase):
8
- * - `en`, `fr`, `de` (simple codes unchanged)
9
- * - `zhHans` (zh-Hans), `frBE` (fr-BE), `srCyrl` (sr-Cyrl)
10
- *
11
- * Imports and exports are alphabetically sorted by normalized name.
12
- *
13
- * @module n2words
14
- */
15
-
16
- import { toWords as am } from './languages/am.js'
17
- import { toWords as amLatn } from './languages/am-Latn.js'
18
- import { toWords as ar } from './languages/ar.js'
19
- import { toWords as az } from './languages/az.js'
20
- import { toWords as bn } from './languages/bn.js'
21
- import { toWords as cs } from './languages/cs.js'
22
- import { toWords as da } from './languages/da.js'
23
- import { toWords as de } from './languages/de.js'
24
- import { toWords as el } from './languages/el.js'
25
- import { toWords as en } from './languages/en.js'
26
- import { toWords as es } from './languages/es.js'
27
- import { toWords as fa } from './languages/fa.js'
28
- import { toWords as fi } from './languages/fi.js'
29
- import { toWords as fil } from './languages/fil.js'
30
- import { toWords as fr } from './languages/fr.js'
31
- import { toWords as frBE } from './languages/fr-BE.js'
32
- import { toWords as gu } from './languages/gu.js'
33
- import { toWords as ha } from './languages/ha.js'
34
- import { toWords as hbo } from './languages/hbo.js'
35
- import { toWords as he } from './languages/he.js'
36
- import { toWords as hi } from './languages/hi.js'
37
- import { toWords as hr } from './languages/hr.js'
38
- import { toWords as hu } from './languages/hu.js'
39
- import { toWords as id } from './languages/id.js'
40
- import { toWords as it } from './languages/it.js'
41
- import { toWords as ja } from './languages/ja.js'
42
- import { toWords as ka } from './languages/ka.js'
43
- import { toWords as kn } from './languages/kn.js'
44
- import { toWords as ko } from './languages/ko.js'
45
- import { toWords as lt } from './languages/lt.js'
46
- import { toWords as lv } from './languages/lv.js'
47
- import { toWords as mr } from './languages/mr.js'
48
- import { toWords as ms } from './languages/ms.js'
49
- import { toWords as nb } from './languages/nb.js'
50
- import { toWords as nl } from './languages/nl.js'
51
- import { toWords as pa } from './languages/pa.js'
52
- import { toWords as pl } from './languages/pl.js'
53
- import { toWords as pt } from './languages/pt.js'
54
- import { toWords as ro } from './languages/ro.js'
55
- import { toWords as ru } from './languages/ru.js'
56
- import { toWords as srCyrl } from './languages/sr-Cyrl.js'
57
- import { toWords as srLatn } from './languages/sr-Latn.js'
58
- import { toWords as sv } from './languages/sv.js'
59
- import { toWords as sw } from './languages/sw.js'
60
- import { toWords as ta } from './languages/ta.js'
61
- import { toWords as te } from './languages/te.js'
62
- import { toWords as th } from './languages/th.js'
63
- import { toWords as tr } from './languages/tr.js'
64
- import { toWords as uk } from './languages/uk.js'
65
- import { toWords as ur } from './languages/ur.js'
66
- import { toWords as vi } from './languages/vi.js'
67
- import { toWords as yo } from './languages/yo.js'
68
- import { toWords as zhHans } from './languages/zh-Hans.js'
69
- import { toWords as zhHant } from './languages/zh-Hant.js'
70
-
71
- export {
72
- am,
73
- amLatn,
74
- ar,
75
- az,
76
- bn,
77
- cs,
78
- da,
79
- de,
80
- el,
81
- en,
82
- es,
83
- fa,
84
- fi,
85
- fil,
86
- fr,
87
- frBE,
88
- gu,
89
- ha,
90
- hbo,
91
- he,
92
- hi,
93
- hr,
94
- hu,
95
- id,
96
- it,
97
- ja,
98
- ka,
99
- kn,
100
- ko,
101
- lt,
102
- lv,
103
- mr,
104
- ms,
105
- nb,
106
- nl,
107
- pa,
108
- pl,
109
- pt,
110
- ro,
111
- ru,
112
- srCyrl,
113
- srLatn,
114
- sv,
115
- sw,
116
- ta,
117
- te,
118
- th,
119
- tr,
120
- uk,
121
- ur,
122
- vi,
123
- yo,
124
- zhHans,
125
- zhHant
126
- }
@@ -1,17 +0,0 @@
1
- /**
2
- * Numeric value parsing utility.
3
- * Transforms user input (number, string, or bigint) into normalized components.
4
- * @module parse-numeric
5
- */
6
- /**
7
- * Parses a numeric value into its components.
8
- * @param {number|string|bigint} value
9
- * @returns {{isNegative: boolean, integerPart: bigint, decimalPart?: string}}
10
- * @throws {TypeError} If value is not number, string, or bigint
11
- * @throws {Error} If value is not a valid number format
12
- */
13
- export function parseNumericValue(value: number | string | bigint): {
14
- isNegative: boolean;
15
- integerPart: bigint;
16
- decimalPart?: string;
17
- };
File without changes
File without changes
File without changes
File without changes