n2words 3.1.0 → 4.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 (482) hide show
  1. package/CHANGELOG.md +44 -0
  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-PT.js +2 -0
  113. package/dist/pt-PT.umd.js +2 -0
  114. package/dist/ro-RO.js +2 -0
  115. package/dist/ro-RO.umd.js +2 -0
  116. package/dist/ru-RU.js +2 -0
  117. package/dist/ru-RU.umd.js +2 -0
  118. package/dist/sr-Cyrl-RS.js +2 -0
  119. package/dist/sr-Cyrl-RS.umd.js +2 -0
  120. package/dist/sr-Latn-RS.js +2 -0
  121. package/dist/sr-Latn-RS.umd.js +2 -0
  122. package/dist/sv-SE.js +2 -0
  123. package/dist/sv-SE.umd.js +2 -0
  124. package/dist/sw-KE.js +2 -0
  125. package/dist/sw-KE.umd.js +2 -0
  126. package/dist/ta-IN.js +2 -0
  127. package/dist/ta-IN.umd.js +2 -0
  128. package/dist/te-IN.js +2 -0
  129. package/dist/te-IN.umd.js +2 -0
  130. package/dist/th-TH.js +2 -0
  131. package/dist/th-TH.umd.js +2 -0
  132. package/dist/tr-TR.js +2 -0
  133. package/dist/tr-TR.umd.js +2 -0
  134. package/dist/uk-UA.js +2 -0
  135. package/dist/uk-UA.umd.js +2 -0
  136. package/dist/ur-PK.js +2 -0
  137. package/dist/ur-PK.umd.js +2 -0
  138. package/dist/vi-VN.js +2 -0
  139. package/dist/vi-VN.umd.js +2 -0
  140. package/dist/yo-NG.js +2 -0
  141. package/dist/yo-NG.umd.js +2 -0
  142. package/dist/zh-Hans-CN.js +2 -0
  143. package/dist/zh-Hans-CN.umd.js +2 -0
  144. package/dist/zh-Hant-TW.js +2 -0
  145. package/dist/zh-Hant-TW.umd.js +2 -0
  146. package/package.json +47 -82
  147. package/src/am-ET.d.ts +40 -0
  148. package/src/am-ET.js +269 -0
  149. package/src/am-Latn-ET.d.ts +35 -0
  150. package/src/am-Latn-ET.js +264 -0
  151. package/src/ar-SA.d.ts +49 -0
  152. package/{lib/languages/ar.js → src/ar-SA.js} +177 -15
  153. package/src/az-AZ.d.ts +37 -0
  154. package/src/az-AZ.js +312 -0
  155. package/src/bn-BD.d.ts +36 -0
  156. package/{lib/languages/bn.js → src/bn-BD.js} +110 -6
  157. package/src/cs-CZ.d.ts +49 -0
  158. package/{lib/languages/cs.js → src/cs-CZ.js} +240 -14
  159. package/src/da-DK.d.ts +44 -0
  160. package/{lib/languages/da.js → src/da-DK.js} +131 -11
  161. package/src/de-DE.d.ts +57 -0
  162. package/src/de-DE.js +603 -0
  163. package/src/el-GR.d.ts +40 -0
  164. package/src/el-GR.js +418 -0
  165. package/src/en-AU.d.ts +47 -0
  166. package/src/en-AU.js +423 -0
  167. package/src/en-BD.d.ts +49 -0
  168. package/src/en-BD.js +415 -0
  169. package/src/en-CA.d.ts +63 -0
  170. package/src/en-CA.js +518 -0
  171. package/src/en-GB.d.ts +56 -0
  172. package/src/en-GB.js +469 -0
  173. package/src/en-GH.d.ts +11 -0
  174. package/src/en-GH.js +345 -0
  175. package/src/en-IE.d.ts +56 -0
  176. package/src/en-IE.js +479 -0
  177. package/src/en-IN.d.ts +49 -0
  178. package/src/en-IN.js +415 -0
  179. package/src/en-KE.d.ts +11 -0
  180. package/src/en-KE.js +345 -0
  181. package/src/en-MY.d.ts +11 -0
  182. package/src/en-MY.js +347 -0
  183. package/src/en-NG.d.ts +56 -0
  184. package/src/en-NG.js +479 -0
  185. package/src/en-NZ.d.ts +11 -0
  186. package/{lib/languages/en.js → src/en-NZ.js} +164 -31
  187. package/src/en-PH.d.ts +11 -0
  188. package/src/en-PH.js +345 -0
  189. package/src/en-PK.d.ts +49 -0
  190. package/src/en-PK.js +415 -0
  191. package/src/en-SG.d.ts +11 -0
  192. package/src/en-SG.js +345 -0
  193. package/src/en-US.d.ts +63 -0
  194. package/src/en-US.js +516 -0
  195. package/src/en-ZA.d.ts +56 -0
  196. package/src/en-ZA.js +478 -0
  197. package/src/es-ES.d.ts +65 -0
  198. package/src/es-ES.js +541 -0
  199. package/src/es-MX.d.ts +58 -0
  200. package/{lib/languages/es.js → src/es-MX.js} +228 -18
  201. package/src/es-US.d.ts +58 -0
  202. package/src/es-US.js +446 -0
  203. package/src/fa-IR.d.ts +38 -0
  204. package/src/fa-IR.js +246 -0
  205. package/src/fi-FI.d.ts +46 -0
  206. package/{lib/languages/fi.js → src/fi-FI.js} +152 -11
  207. package/src/fil-PH.d.ts +37 -0
  208. package/{lib/languages/fil.js → src/fil-PH.js} +144 -8
  209. package/src/fr-BE.d.ts +49 -0
  210. package/{lib/languages → src}/fr-BE.js +175 -13
  211. package/src/fr-FR.d.ts +63 -0
  212. package/{lib/languages/fr.js → src/fr-FR.js} +182 -16
  213. package/src/gu-IN.d.ts +35 -0
  214. package/{lib/languages/gu.js → src/gu-IN.js} +115 -6
  215. package/src/ha-NG.d.ts +37 -0
  216. package/{lib/languages/ha.js → src/ha-NG.js} +107 -8
  217. package/src/hbo-IL.d.ts +39 -0
  218. package/{lib/languages/hbo.js → src/hbo-IL.js} +211 -19
  219. package/src/he-IL.d.ts +37 -0
  220. package/src/he-IL.js +537 -0
  221. package/src/hi-IN.d.ts +36 -0
  222. package/{lib/languages/hi.js → src/hi-IN.js} +116 -6
  223. package/src/hr-HR.d.ts +42 -0
  224. package/src/hr-HR.js +463 -0
  225. package/src/hu-HU.d.ts +38 -0
  226. package/{lib/languages/hu.js → src/hu-HU.js} +164 -6
  227. package/src/id-ID.d.ts +38 -0
  228. package/{lib/languages/id.js → src/id-ID.js} +99 -8
  229. package/src/it-IT.d.ts +59 -0
  230. package/{lib/languages/it.js → src/it-IT.js} +179 -15
  231. package/src/ja-JP.d.ts +49 -0
  232. package/{lib/languages/ja.js → src/ja-JP.js} +111 -12
  233. package/src/ka-GE.d.ts +44 -0
  234. package/{lib/languages/ka.js → src/ka-GE.js} +113 -11
  235. package/src/kn-IN.d.ts +35 -0
  236. package/{lib/languages/kn.js → src/kn-IN.js} +115 -6
  237. package/src/ko-KR.d.ts +45 -0
  238. package/{lib/languages/ko.js → src/ko-KR.js} +94 -12
  239. package/src/lt-LT.d.ts +49 -0
  240. package/src/lt-LT.js +543 -0
  241. package/src/lv-LV.d.ts +49 -0
  242. package/src/lv-LV.js +595 -0
  243. package/src/mr-IN.d.ts +36 -0
  244. package/{lib/languages/mr.js → src/mr-IN.js} +116 -6
  245. package/src/ms-MY.d.ts +37 -0
  246. package/{lib/languages/ms.js → src/ms-MY.js} +111 -8
  247. package/src/nb-NO.d.ts +44 -0
  248. package/{lib/languages/nb.js → src/nb-NO.js} +153 -11
  249. package/src/nl-NL.d.ts +54 -0
  250. package/{lib/languages/nl.js → src/nl-NL.js} +260 -18
  251. package/src/pa-IN.d.ts +36 -0
  252. package/{lib/languages/pa.js → src/pa-IN.js} +116 -6
  253. package/src/pl-PL.d.ts +55 -0
  254. package/src/pl-PL.js +585 -0
  255. package/src/pt-PT.d.ts +45 -0
  256. package/{lib/languages/pt.js → src/pt-PT.js} +234 -12
  257. package/src/ro-RO.d.ts +44 -0
  258. package/{lib/languages/ro.js → src/ro-RO.js} +212 -18
  259. package/src/ru-RU.d.ts +50 -0
  260. package/src/ru-RU.js +535 -0
  261. package/src/sr-Cyrl-RS.d.ts +49 -0
  262. package/src/sr-Cyrl-RS.js +503 -0
  263. package/src/sr-Latn-RS.d.ts +49 -0
  264. package/src/sr-Latn-RS.js +503 -0
  265. package/src/sv-SE.d.ts +44 -0
  266. package/{lib/languages/sv.js → src/sv-SE.js} +136 -11
  267. package/src/sw-KE.d.ts +37 -0
  268. package/{lib/languages/sw.js → src/sw-KE.js} +117 -6
  269. package/src/ta-IN.d.ts +35 -0
  270. package/{lib/languages/ta.js → src/ta-IN.js} +109 -6
  271. package/src/te-IN.d.ts +35 -0
  272. package/{lib/languages/te.js → src/te-IN.js} +115 -6
  273. package/src/th-TH.d.ts +38 -0
  274. package/{lib/languages/th.js → src/th-TH.js} +99 -6
  275. package/src/tr-TR.d.ts +48 -0
  276. package/{lib/languages/tr.js → src/tr-TR.js} +168 -23
  277. package/src/uk-UA.d.ts +42 -0
  278. package/src/uk-UA.js +463 -0
  279. package/src/ur-PK.d.ts +36 -0
  280. package/{lib/languages/ur.js → src/ur-PK.js} +116 -6
  281. package/src/utils/expand-scientific.d.ts +32 -0
  282. package/src/utils/expand-scientific.js +65 -0
  283. package/src/utils/parse-cardinal.d.ts +14 -0
  284. package/{lib/utils/parse-numeric.js → src/utils/parse-cardinal.js} +14 -44
  285. package/src/utils/parse-currency.d.ts +14 -0
  286. package/src/utils/parse-currency.js +91 -0
  287. package/src/utils/parse-ordinal.d.ts +10 -0
  288. package/src/utils/parse-ordinal.js +103 -0
  289. package/src/vi-VN.d.ts +48 -0
  290. package/{lib/languages/vi.js → src/vi-VN.js} +102 -11
  291. package/src/yo-NG.d.ts +37 -0
  292. package/{lib/languages/yo.js → src/yo-NG.js} +109 -9
  293. package/src/zh-Hans-CN.d.ts +48 -0
  294. package/{lib/languages/zh-Hans.js → src/zh-Hans-CN.js} +140 -8
  295. package/src/zh-Hant-TW.d.ts +50 -0
  296. package/{lib/languages/zh-Hant.js → src/zh-Hant-TW.js} +139 -8
  297. package/dist/languages/am-Latn.js +0 -3
  298. package/dist/languages/am-Latn.js.map +0 -1
  299. package/dist/languages/am.js +0 -3
  300. package/dist/languages/am.js.map +0 -1
  301. package/dist/languages/ar.js +0 -3
  302. package/dist/languages/ar.js.map +0 -1
  303. package/dist/languages/az.js +0 -3
  304. package/dist/languages/az.js.map +0 -1
  305. package/dist/languages/bn.js +0 -3
  306. package/dist/languages/bn.js.map +0 -1
  307. package/dist/languages/cs.js +0 -3
  308. package/dist/languages/cs.js.map +0 -1
  309. package/dist/languages/da.js +0 -3
  310. package/dist/languages/da.js.map +0 -1
  311. package/dist/languages/de.js +0 -3
  312. package/dist/languages/de.js.map +0 -1
  313. package/dist/languages/el.js +0 -3
  314. package/dist/languages/el.js.map +0 -1
  315. package/dist/languages/en.js +0 -3
  316. package/dist/languages/en.js.map +0 -1
  317. package/dist/languages/es.js +0 -3
  318. package/dist/languages/es.js.map +0 -1
  319. package/dist/languages/fa.js +0 -3
  320. package/dist/languages/fa.js.map +0 -1
  321. package/dist/languages/fi.js +0 -3
  322. package/dist/languages/fi.js.map +0 -1
  323. package/dist/languages/fil.js +0 -3
  324. package/dist/languages/fil.js.map +0 -1
  325. package/dist/languages/fr-BE.js +0 -3
  326. package/dist/languages/fr-BE.js.map +0 -1
  327. package/dist/languages/fr.js +0 -3
  328. package/dist/languages/fr.js.map +0 -1
  329. package/dist/languages/gu.js +0 -3
  330. package/dist/languages/gu.js.map +0 -1
  331. package/dist/languages/ha.js +0 -3
  332. package/dist/languages/ha.js.map +0 -1
  333. package/dist/languages/hbo.js +0 -3
  334. package/dist/languages/hbo.js.map +0 -1
  335. package/dist/languages/he.js +0 -3
  336. package/dist/languages/he.js.map +0 -1
  337. package/dist/languages/hi.js +0 -3
  338. package/dist/languages/hi.js.map +0 -1
  339. package/dist/languages/hr.js +0 -3
  340. package/dist/languages/hr.js.map +0 -1
  341. package/dist/languages/hu.js +0 -3
  342. package/dist/languages/hu.js.map +0 -1
  343. package/dist/languages/id.js +0 -3
  344. package/dist/languages/id.js.map +0 -1
  345. package/dist/languages/it.js +0 -3
  346. package/dist/languages/it.js.map +0 -1
  347. package/dist/languages/ja.js +0 -3
  348. package/dist/languages/ja.js.map +0 -1
  349. package/dist/languages/ka.js +0 -3
  350. package/dist/languages/ka.js.map +0 -1
  351. package/dist/languages/kn.js +0 -3
  352. package/dist/languages/kn.js.map +0 -1
  353. package/dist/languages/ko.js +0 -3
  354. package/dist/languages/ko.js.map +0 -1
  355. package/dist/languages/lt.js +0 -3
  356. package/dist/languages/lt.js.map +0 -1
  357. package/dist/languages/lv.js +0 -3
  358. package/dist/languages/lv.js.map +0 -1
  359. package/dist/languages/mr.js +0 -3
  360. package/dist/languages/mr.js.map +0 -1
  361. package/dist/languages/ms.js +0 -3
  362. package/dist/languages/ms.js.map +0 -1
  363. package/dist/languages/nb.js +0 -3
  364. package/dist/languages/nb.js.map +0 -1
  365. package/dist/languages/nl.js +0 -3
  366. package/dist/languages/nl.js.map +0 -1
  367. package/dist/languages/pa.js +0 -3
  368. package/dist/languages/pa.js.map +0 -1
  369. package/dist/languages/pl.js +0 -3
  370. package/dist/languages/pl.js.map +0 -1
  371. package/dist/languages/pt.js +0 -3
  372. package/dist/languages/pt.js.map +0 -1
  373. package/dist/languages/ro.js +0 -3
  374. package/dist/languages/ro.js.map +0 -1
  375. package/dist/languages/ru.js +0 -3
  376. package/dist/languages/ru.js.map +0 -1
  377. package/dist/languages/sr-Cyrl.js +0 -3
  378. package/dist/languages/sr-Cyrl.js.map +0 -1
  379. package/dist/languages/sr-Latn.js +0 -3
  380. package/dist/languages/sr-Latn.js.map +0 -1
  381. package/dist/languages/sv.js +0 -3
  382. package/dist/languages/sv.js.map +0 -1
  383. package/dist/languages/sw.js +0 -3
  384. package/dist/languages/sw.js.map +0 -1
  385. package/dist/languages/ta.js +0 -3
  386. package/dist/languages/ta.js.map +0 -1
  387. package/dist/languages/te.js +0 -3
  388. package/dist/languages/te.js.map +0 -1
  389. package/dist/languages/th.js +0 -3
  390. package/dist/languages/th.js.map +0 -1
  391. package/dist/languages/tr.js +0 -3
  392. package/dist/languages/tr.js.map +0 -1
  393. package/dist/languages/uk.js +0 -3
  394. package/dist/languages/uk.js.map +0 -1
  395. package/dist/languages/ur.js +0 -3
  396. package/dist/languages/ur.js.map +0 -1
  397. package/dist/languages/vi.js +0 -3
  398. package/dist/languages/vi.js.map +0 -1
  399. package/dist/languages/yo.js +0 -3
  400. package/dist/languages/yo.js.map +0 -1
  401. package/dist/languages/zh-Hans.js +0 -3
  402. package/dist/languages/zh-Hans.js.map +0 -1
  403. package/dist/languages/zh-Hant.js +0 -3
  404. package/dist/languages/zh-Hant.js.map +0 -1
  405. package/dist/n2words.js +0 -3
  406. package/dist/n2words.js.map +0 -1
  407. package/lib/languages/am-Latn.d.ts +0 -7
  408. package/lib/languages/am-Latn.js +0 -159
  409. package/lib/languages/am.d.ts +0 -7
  410. package/lib/languages/am.js +0 -159
  411. package/lib/languages/ar.d.ts +0 -17
  412. package/lib/languages/az.d.ts +0 -7
  413. package/lib/languages/az.js +0 -171
  414. package/lib/languages/bn.d.ts +0 -7
  415. package/lib/languages/cs.d.ts +0 -18
  416. package/lib/languages/da.d.ts +0 -14
  417. package/lib/languages/de.d.ts +0 -17
  418. package/lib/languages/de.js +0 -320
  419. package/lib/languages/el.d.ts +0 -14
  420. package/lib/languages/el.js +0 -236
  421. package/lib/languages/en.d.ts +0 -17
  422. package/lib/languages/es.d.ts +0 -21
  423. package/lib/languages/fa.d.ts +0 -7
  424. package/lib/languages/fa.js +0 -134
  425. package/lib/languages/fi.d.ts +0 -14
  426. package/lib/languages/fil.d.ts +0 -7
  427. package/lib/languages/fr-BE.d.ts +0 -11
  428. package/lib/languages/fr.d.ts +0 -21
  429. package/lib/languages/gu.d.ts +0 -7
  430. package/lib/languages/ha.d.ts +0 -7
  431. package/lib/languages/hbo.d.ts +0 -13
  432. package/lib/languages/he.d.ts +0 -13
  433. package/lib/languages/he.js +0 -265
  434. package/lib/languages/hi.d.ts +0 -7
  435. package/lib/languages/hr.d.ts +0 -11
  436. package/lib/languages/hr.js +0 -224
  437. package/lib/languages/hu.d.ts +0 -7
  438. package/lib/languages/id.d.ts +0 -7
  439. package/lib/languages/it.d.ts +0 -19
  440. package/lib/languages/ja.d.ts +0 -17
  441. package/lib/languages/ka.d.ts +0 -17
  442. package/lib/languages/kn.d.ts +0 -7
  443. package/lib/languages/ko.d.ts +0 -14
  444. package/lib/languages/lt.d.ts +0 -18
  445. package/lib/languages/lt.js +0 -301
  446. package/lib/languages/lv.d.ts +0 -18
  447. package/lib/languages/lv.js +0 -312
  448. package/lib/languages/mr.d.ts +0 -7
  449. package/lib/languages/ms.d.ts +0 -7
  450. package/lib/languages/nb.d.ts +0 -14
  451. package/lib/languages/nl.d.ts +0 -26
  452. package/lib/languages/pa.d.ts +0 -7
  453. package/lib/languages/pl.d.ts +0 -22
  454. package/lib/languages/pl.js +0 -317
  455. package/lib/languages/pt.d.ts +0 -17
  456. package/lib/languages/ro.d.ts +0 -18
  457. package/lib/languages/ru.d.ts +0 -11
  458. package/lib/languages/ru.js +0 -245
  459. package/lib/languages/sr-Cyrl.d.ts +0 -11
  460. package/lib/languages/sr-Cyrl.js +0 -221
  461. package/lib/languages/sr-Latn.d.ts +0 -11
  462. package/lib/languages/sr-Latn.js +0 -221
  463. package/lib/languages/sv.d.ts +0 -14
  464. package/lib/languages/sw.d.ts +0 -7
  465. package/lib/languages/ta.d.ts +0 -7
  466. package/lib/languages/te.d.ts +0 -7
  467. package/lib/languages/th.d.ts +0 -7
  468. package/lib/languages/tr.d.ts +0 -18
  469. package/lib/languages/uk.d.ts +0 -11
  470. package/lib/languages/uk.js +0 -224
  471. package/lib/languages/ur.d.ts +0 -7
  472. package/lib/languages/vi.d.ts +0 -17
  473. package/lib/languages/yo.d.ts +0 -7
  474. package/lib/languages/zh-Hans.d.ts +0 -11
  475. package/lib/languages/zh-Hant.d.ts +0 -11
  476. package/lib/n2words.d.ts +0 -55
  477. package/lib/n2words.js +0 -126
  478. package/lib/utils/parse-numeric.d.ts +0 -17
  479. /package/{lib → src}/utils/is-plain-object.d.ts +0 -0
  480. /package/{lib → src}/utils/is-plain-object.js +0 -0
  481. /package/{lib → src}/utils/validate-options.d.ts +0 -0
  482. /package/{lib → src}/utils/validate-options.js +0 -0
@@ -1,7 +1,7 @@
1
1
  /**
2
- * Dutch language converter - Functional Implementation
2
+ * Dutch (Netherlands) language converter
3
3
  *
4
- * Self-contained module with its own input validation, ready for subpath exports.
4
+ * CLDR: nl-NL | Dutch as used in the Netherlands
5
5
  *
6
6
  * Dutch-specific rules:
7
7
  * - Inverted tens-ones: eenentwintig (one-and-twenty)
@@ -13,8 +13,10 @@
13
13
  * - Long scale with -ard forms
14
14
  */
15
15
 
16
- import { parseNumericValue } from '../utils/parse-numeric.js'
17
- import { validateOptions } from '../utils/validate-options.js'
16
+ import { parseCardinalValue } from './utils/parse-cardinal.js'
17
+ import { parseCurrencyValue } from './utils/parse-currency.js'
18
+ import { parseOrdinalValue } from './utils/parse-ordinal.js'
19
+ import { validateOptions } from './utils/validate-options.js'
18
20
 
19
21
  // ============================================================================
20
22
  // Vocabulary (module-level constants)
@@ -33,6 +35,12 @@ const ZERO = 'nul'
33
35
  const NEGATIVE = 'min'
34
36
  const DECIMAL_SEP = 'komma'
35
37
 
38
+ // Currency vocabulary (Euro)
39
+ const EURO = 'euro'
40
+ const EUROS = 'euro' // Euro doesn't pluralize in Dutch
41
+ const CENT = 'cent'
42
+ const CENTEN = 'cent' // Cent doesn't pluralize in written currency
43
+
36
44
  // ============================================================================
37
45
  // Segment Building
38
46
  // ============================================================================
@@ -47,8 +55,8 @@ function buildSegment (n, withAnd) {
47
55
  if (n === 0) return ''
48
56
 
49
57
  const ones = n % 10
50
- const tens = Math.floor(n / 10) % 10
51
- const hundreds = Math.floor(n / 100)
58
+ const tens = Math.trunc(n / 10) % 10
59
+ const hundreds = Math.trunc(n / 100)
52
60
  const tensOnes = n % 100
53
61
 
54
62
  let result = ''
@@ -284,20 +292,23 @@ function decimalPartToWords (decimalPart, options) {
284
292
  * @throws {Error} If value is not a valid number format
285
293
  *
286
294
  * @example
287
- * toWords(21) // 'eenentwintig'
288
- * toWords(1) // 'één'
289
- * toWords(1, {accentOne: false}) // 'een'
290
- * toWords(1104) // 'elfhonderd vier'
295
+ * toCardinal(21) // 'eenentwintig'
296
+ * toCardinal(1) // 'één'
297
+ * toCardinal(1, {accentOne: false}) // 'een'
298
+ * toCardinal(1104) // 'elfhonderd vier'
291
299
  */
292
- function toWords (value, options) {
300
+ function toCardinal (value, options) {
293
301
  options = validateOptions(options)
294
- const { isNegative, integerPart, decimalPart } = parseNumericValue(value)
302
+ const { isNegative, integerPart, decimalPart } = parseCardinalValue(value)
295
303
 
296
- const opts = {
297
- accentOne: options.accentOne !== false, // default true
298
- includeOptionalAnd: options.includeOptionalAnd || false,
299
- noHundredPairing: options.noHundredPairing || false
300
- }
304
+ // Apply option defaults
305
+ const {
306
+ accentOne = true,
307
+ includeOptionalAnd = false,
308
+ noHundredPairing = false
309
+ } = options
310
+
311
+ const opts = { accentOne, includeOptionalAnd, noHundredPairing }
301
312
 
302
313
  let result = ''
303
314
 
@@ -314,8 +325,239 @@ function toWords (value, options) {
314
325
  return result
315
326
  }
316
327
 
328
+ // ============================================================================
329
+ // Ordinal Functions
330
+ // ============================================================================
331
+
332
+ // Ordinal forms for 1-9
333
+ const ORDINAL_ONES = ['', 'eerste', 'tweede', 'derde', 'vierde', 'vijfde', 'zesde', 'zevende', 'achtste', 'negende']
334
+
335
+ /**
336
+ * Converts a small cardinal to ordinal.
337
+ * Rules: 1-19 add -de (except eerste, derde, achtste), 20+ add -ste
338
+ *
339
+ * @param {string} cardinalWord - Cardinal word
340
+ * @param {number} n - The number value (0-99)
341
+ * @returns {string} Ordinal word
342
+ */
343
+ function smallCardinalToOrdinal (cardinalWord, n) {
344
+ // Special cases for 1-9
345
+ if (n >= 1 && n <= 9) return ORDINAL_ONES[n]
346
+
347
+ // 10-19: add -de or -e if ends in d
348
+ if (n < 20) {
349
+ if (cardinalWord.endsWith('d')) {
350
+ return cardinalWord + 'e'
351
+ }
352
+ return cardinalWord + 'de'
353
+ }
354
+
355
+ // 20+: add -ste
356
+ return cardinalWord + 'ste'
357
+ }
358
+
359
+ /**
360
+ * Builds ordinal words for 0-999.
361
+ *
362
+ * @param {number} n - Number 0-999
363
+ * @returns {string} Dutch ordinal words
364
+ */
365
+ function buildOrdinalSegment (n) {
366
+ if (n === 0) return ''
367
+
368
+ const hundreds = Math.trunc(n / 100)
369
+ const tensOnes = n % 100
370
+
371
+ // Simple cases: 1-99
372
+ if (hundreds === 0) {
373
+ const cardinalWord = buildSegment(n, false)
374
+ return smallCardinalToOrdinal(cardinalWord, n)
375
+ }
376
+
377
+ // Hundreds: need to build prefix + ordinal suffix
378
+ let prefix = ''
379
+ if (hundreds === 1) {
380
+ prefix = HUNDRED
381
+ } else {
382
+ prefix = ONES[hundreds] + HUNDRED
383
+ }
384
+
385
+ if (tensOnes === 0) {
386
+ // Exact hundred: honderdste, tweehonderdste
387
+ return prefix + 'ste'
388
+ }
389
+
390
+ // Hundreds + remainder: honderd eerste, tweehonderd drieëntwintigste
391
+ // Dutch ordinals with hundreds use a space before the ordinal part
392
+ const ordinalPart = smallCardinalToOrdinal(buildSegment(tensOnes, false), tensOnes)
393
+ return prefix + ' ' + ordinalPart
394
+ }
395
+
396
+ /**
397
+ * Converts a number to Dutch ordinal words.
398
+ *
399
+ * @param {number | string | bigint} value - The number to convert
400
+ * @returns {string} Dutch ordinal words
401
+ *
402
+ * @example
403
+ * toOrdinal(1) // 'eerste'
404
+ * toOrdinal(21) // 'eenentwintigste'
405
+ * toOrdinal(100) // 'honderdste'
406
+ */
407
+ function toOrdinal (value) {
408
+ const n = parseOrdinalValue(value)
409
+
410
+ // Fast path: 1-9
411
+ if (n < 10n) return ORDINAL_ONES[Number(n)]
412
+
413
+ // Fast path: 10-99
414
+ if (n < 100n) {
415
+ const cardinalWord = buildSegment(Number(n), false)
416
+ return smallCardinalToOrdinal(cardinalWord, Number(n))
417
+ }
418
+
419
+ // Fast path: 100-999
420
+ if (n < 1000n) {
421
+ return buildOrdinalSegment(Number(n))
422
+ }
423
+
424
+ // Large numbers: build with cardinal then convert last segment
425
+ return buildLargeOrdinal(n)
426
+ }
427
+
428
+ /**
429
+ * Builds ordinal words for large numbers.
430
+ *
431
+ * @param {bigint} n - Non-negative integer >= 1000
432
+ * @returns {string} Dutch ordinal words
433
+ */
434
+ function buildLargeOrdinal (n) {
435
+ // Extract segments
436
+ const segments = []
437
+ let temp = n
438
+ while (temp > 0n) {
439
+ segments.push(Number(temp % 1000n))
440
+ temp = temp / 1000n
441
+ }
442
+
443
+ // Find the lowest non-zero segment
444
+ let lowestNonZeroIdx = 0
445
+ for (let i = 0; i < segments.length; i++) {
446
+ if (segments[i] !== 0) {
447
+ lowestNonZeroIdx = i
448
+ break
449
+ }
450
+ }
451
+
452
+ // Scale ordinal words
453
+ const SCALE_ORDINAL = ['', 'duizendste', 'miljoenste', 'miljardste', 'biljoenste', 'biljardste', 'triljoenste']
454
+
455
+ let result = ''
456
+
457
+ for (let i = segments.length - 1; i >= 0; i--) {
458
+ const segment = segments[i]
459
+ if (segment === 0) continue
460
+
461
+ if (result) result += ' '
462
+
463
+ if (i === lowestNonZeroIdx) {
464
+ // Last non-zero segment gets ordinal form
465
+ if (i === 0) {
466
+ // Units segment: use ordinal segment builder
467
+ result += buildOrdinalSegment(segment)
468
+ } else if (segment === 1 && i > 0) {
469
+ // Exact scale: duizendste, miljoenste, etc.
470
+ if (i === 1) {
471
+ result += SCALE_ORDINAL[i]
472
+ } else {
473
+ result += 'een ' + SCALE_ORDINAL[i]
474
+ }
475
+ } else {
476
+ // Segment + scale ordinal
477
+ if (i === 1) {
478
+ result += buildSegment(segment, false) + SCALE_ORDINAL[i]
479
+ } else {
480
+ result += buildSegment(segment, false) + ' ' + SCALE_ORDINAL[i]
481
+ }
482
+ }
483
+ } else {
484
+ // Higher segments use cardinal form
485
+ if (i === 1) {
486
+ if (segment === 1) {
487
+ result += SCALES[0]
488
+ } else {
489
+ result += buildSegment(segment, false) + SCALES[0]
490
+ }
491
+ } else {
492
+ const scaleWord = SCALES[i - 1]
493
+ if (segment === 1) {
494
+ result += 'een ' + scaleWord
495
+ } else {
496
+ result += buildSegment(segment, false) + ' ' + scaleWord
497
+ }
498
+ }
499
+ }
500
+ }
501
+
502
+ return result
503
+ }
504
+
505
+ // ============================================================================
506
+ // Currency Functions
507
+ // ============================================================================
508
+
509
+ /**
510
+ * Converts a number to Dutch currency words (Euro).
511
+ *
512
+ * @param {number | string | bigint} value - The amount to convert
513
+ * @param {Object} [options]
514
+ * @param {boolean} [options.and=true] - Include "en" between euros and cents
515
+ * @returns {string} Dutch currency words
516
+ *
517
+ * @example
518
+ * toCurrency(42.50) // 'tweeënveertig euro en vijftig cent'
519
+ * toCurrency(1) // 'één euro'
520
+ * toCurrency(0.01) // 'één cent'
521
+ */
522
+ function toCurrency (value, options) {
523
+ options = validateOptions(options)
524
+ const { isNegative, dollars: euros, cents } = parseCurrencyValue(value)
525
+ const { and = true } = options
526
+
527
+ let result = ''
528
+
529
+ if (isNegative) {
530
+ result = NEGATIVE + ' '
531
+ }
532
+
533
+ const hasEuros = euros > 0n
534
+ const hasCents = cents > 0n
535
+
536
+ if (!hasEuros && !hasCents) {
537
+ return ZERO + ' ' + EUROS
538
+ }
539
+
540
+ // Use accentOne: true for currency (één euro, één cent)
541
+ const opts = { accentOne: true, includeOptionalAnd: false, noHundredPairing: true }
542
+
543
+ if (hasEuros) {
544
+ const euroWords = integerToWords(euros, opts)
545
+ result += euroWords + ' ' + (euros === 1n ? EURO : EUROS)
546
+ }
547
+
548
+ if (hasCents) {
549
+ if (hasEuros) {
550
+ result += and ? ' en ' : ' '
551
+ }
552
+ const centWords = integerToWords(cents, opts)
553
+ result += centWords + ' ' + (cents === 1n ? CENT : CENTEN)
554
+ }
555
+
556
+ return result
557
+ }
558
+
317
559
  // ============================================================================
318
560
  // Public API
319
561
  // ============================================================================
320
562
 
321
- export { toWords }
563
+ export { toCardinal, toOrdinal, toCurrency }
package/src/pa-IN.d.ts ADDED
@@ -0,0 +1,36 @@
1
+ /**
2
+ * Converts a numeric value to Punjabi words.
3
+ *
4
+ * @param {number | string | bigint} value - The numeric value to convert
5
+ * @returns {string} The number in Punjabi words
6
+ */
7
+ export function toCardinal(value: number | string | bigint): string;
8
+ /**
9
+ * Converts a numeric value to Punjabi 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 Punjabi currency words (Indian Rupee).
25
+ *
26
+ * @param {number | string | bigint} value - The currency amount to convert
27
+ * @returns {string} The amount in Punjabi 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;
@@ -1,7 +1,7 @@
1
1
  /**
2
- * Punjabi language converter - Functional Implementation
2
+ * Punjabi (India) language converter
3
3
  *
4
- * Self-contained module with its own input validation, ready for subpath exports.
4
+ * CLDR: pa-IN | Punjabi (Gurmukhi) as used in India
5
5
  *
6
6
  * Key features:
7
7
  * - Indian numbering system (ਹਜ਼ਾਰ, ਲੱਖ, ਕਰੋੜ)
@@ -10,7 +10,9 @@
10
10
  * - Complete word forms for 0-99
11
11
  */
12
12
 
13
- import { parseNumericValue } from '../utils/parse-numeric.js'
13
+ import { parseCardinalValue } from './utils/parse-cardinal.js'
14
+ import { parseCurrencyValue } from './utils/parse-currency.js'
15
+ import { parseOrdinalValue } from './utils/parse-ordinal.js'
14
16
 
15
17
  // ============================================================================
16
18
  // Vocabulary
@@ -21,6 +23,28 @@ const NEGATIVE = 'ਮਾਇਨਸ'
21
23
  const DECIMAL_SEP = 'ਦਸ਼ਮਲਵ'
22
24
  const HUNDRED = 'ਸੌ'
23
25
 
26
+ // ============================================================================
27
+ // Ordinal Vocabulary
28
+ // ============================================================================
29
+
30
+ // Ordinal suffix (adds to cardinal for numbers >= 7)
31
+ const ORDINAL_SUFFIX = 'ਵਾਂ'
32
+
33
+ // Special ordinals for first few numbers (1-6 have irregular forms)
34
+ const ORDINAL_SPECIAL = ['', 'ਪਹਿਲਾ', 'ਦੂਜਾ', 'ਤੀਜਾ', 'ਚੌਥਾ', 'ਪੰਜਵਾਂ', 'ਛੇਵਾਂ']
35
+
36
+ // ============================================================================
37
+ // Currency Vocabulary (Indian Rupee)
38
+ // ============================================================================
39
+
40
+ // Rupee: singular/plural
41
+ const RUPEE = 'ਰੁਪਇਆ'
42
+ const RUPEES = 'ਰੁਪਏ'
43
+
44
+ // Paisa: singular/plural
45
+ const PAISA = 'ਪੈਸਾ'
46
+ const PAISE = 'ਪੈਸੇ'
47
+
24
48
  const BELOW_HUNDRED = [
25
49
  'ਸਿਫ਼ਰ', 'ਇੱਕ', 'ਦੋ', 'ਤਿੰਨ', 'ਚਾਰ', 'ਪੰਜ', 'ਛੇ', 'ਸੱਤ', 'ਅੱਠ', 'ਨੌਂ',
26
50
  'ਦੱਸ', 'ਗਿਆਰਾਂ', 'ਬਾਰਾਂ', 'ਤੇਰਾਂ', 'ਚੌਦਾਂ', 'ਪੰਦਰਾਂ', 'ਸੋਲਾਂ', 'ਸਤਾਰਾਂ', 'ਅਠਾਰਾਂ', 'ਉੱਨੀ',
@@ -133,8 +157,8 @@ function decimalPartToWords (decimalPart) {
133
157
  * @param {number | string | bigint} value - The numeric value to convert
134
158
  * @returns {string} The number in Punjabi words
135
159
  */
136
- function toWords (value) {
137
- const { isNegative, integerPart, decimalPart } = parseNumericValue(value)
160
+ function toCardinal (value) {
161
+ const { isNegative, integerPart, decimalPart } = parseCardinalValue(value)
138
162
 
139
163
  let result = ''
140
164
 
@@ -151,8 +175,94 @@ function toWords (value) {
151
175
  return result
152
176
  }
153
177
 
178
+ // ============================================================================
179
+ // ORDINAL: toOrdinal(value)
180
+ // ============================================================================
181
+
182
+ /**
183
+ * Converts a positive integer to Punjabi ordinal words.
184
+ *
185
+ * Punjabi ordinals: First 6 are irregular, then add -ਵਾਂ suffix.
186
+ *
187
+ * @param {bigint} n - Positive integer to convert
188
+ * @returns {string} Punjabi ordinal words
189
+ */
190
+ function integerToOrdinal (n) {
191
+ // Special ordinals for 1-6
192
+ if (n >= 1n && n <= 6n) {
193
+ return ORDINAL_SPECIAL[Number(n)]
194
+ }
195
+
196
+ // For 7 and above, add suffix to cardinal
197
+ const cardinal = integerToWords(n)
198
+ return cardinal + ORDINAL_SUFFIX
199
+ }
200
+
201
+ /**
202
+ * Converts a numeric value to Punjabi ordinal words.
203
+ *
204
+ * @param {number | string | bigint} value - The numeric value to convert (positive integer)
205
+ * @returns {string} The number as ordinal words
206
+ * @throws {TypeError} If value is not a valid numeric type
207
+ * @throws {RangeError} If value is negative, zero, or has a decimal part
208
+ *
209
+ * @example
210
+ * toOrdinal(1) // 'ਪਹਿਲਾ'
211
+ * toOrdinal(2) // 'ਦੂਜਾ'
212
+ * toOrdinal(3) // 'ਤੀਜਾ'
213
+ * toOrdinal(10) // 'ਦੱਸਵਾਂ'
214
+ */
215
+ function toOrdinal (value) {
216
+ const integerPart = parseOrdinalValue(value)
217
+ return integerToOrdinal(integerPart)
218
+ }
219
+
220
+ // ============================================================================
221
+ // CURRENCY: toCurrency(value, options?)
222
+ // ============================================================================
223
+
224
+ /**
225
+ * Converts a numeric value to Punjabi currency words (Indian Rupee).
226
+ *
227
+ * @param {number | string | bigint} value - The currency amount to convert
228
+ * @returns {string} The amount in Punjabi currency words
229
+ * @throws {TypeError} If value is not a valid numeric type
230
+ * @throws {Error} If value is not a valid number format
231
+ *
232
+ * @example
233
+ * toCurrency(42.50) // 'ਬਿਆਲੀ ਰੁਪਏ ਪੰਜਾਹ ਪੈਸੇ'
234
+ * toCurrency(1) // 'ਇੱਕ ਰੁਪਇਆ'
235
+ * toCurrency(0.01) // 'ਇੱਕ ਪੈਸਾ'
236
+ */
237
+ function toCurrency (value) {
238
+ const { isNegative, dollars: rupees, cents: paise } = parseCurrencyValue(value)
239
+
240
+ // Build result
241
+ let result = ''
242
+ if (isNegative) result = NEGATIVE + ' '
243
+
244
+ // Rupees part - show if non-zero, or if no paise
245
+ if (rupees > 0n || paise === 0n) {
246
+ result += integerToWords(rupees)
247
+ // Singular for 1 rupee, plural otherwise
248
+ result += ' ' + (rupees === 1n ? RUPEE : RUPEES)
249
+ }
250
+
251
+ // Paise part
252
+ if (paise > 0n) {
253
+ if (rupees > 0n) {
254
+ result += ' '
255
+ }
256
+ result += integerToWords(paise)
257
+ // Singular for 1 paisa, plural otherwise
258
+ result += ' ' + (paise === 1n ? PAISA : PAISE)
259
+ }
260
+
261
+ return result
262
+ }
263
+
154
264
  // ============================================================================
155
265
  // Exports
156
266
  // ============================================================================
157
267
 
158
- export { toWords }
268
+ export { toCardinal, toOrdinal, toCurrency }
package/src/pl-PL.d.ts ADDED
@@ -0,0 +1,55 @@
1
+ /**
2
+ * Converts a numeric value to Polish 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
+ * @param {Object} [options] - Conversion options
9
+ * @param {string} [options.gender='masculine'] - Gender for numbers < 1000
10
+ * @returns {string} The number in Polish words
11
+ * @throws {TypeError} If value is not a valid numeric type
12
+ * @throws {Error} If value is not a valid number format
13
+ *
14
+ * @example
15
+ * toCardinal(1) // 'jeden'
16
+ * toCardinal(1, { gender: 'feminine' }) // 'jedna'
17
+ * toCardinal(1000) // 'tysiąc'
18
+ * toCardinal(2000) // 'dwa tysiące'
19
+ */
20
+ export function toCardinal(value: number | string | bigint, options?: {
21
+ gender?: string | undefined;
22
+ }): string;
23
+ /**
24
+ * Converts a numeric value to Polish ordinal words (masculine nominative).
25
+ *
26
+ * @param {number | string | bigint} value - The numeric value to convert (must be a positive integer)
27
+ * @returns {string} The number as ordinal words (e.g., "pierwszy", "czterdziesty drugi")
28
+ * @throws {TypeError} If value is not a valid numeric type
29
+ * @throws {RangeError} If value is negative, zero, or has a decimal part
30
+ *
31
+ * @example
32
+ * toOrdinal(1) // 'pierwszy'
33
+ * toOrdinal(2) // 'drugi'
34
+ * toOrdinal(3) // 'trzeci'
35
+ * toOrdinal(21) // 'dwudziesty pierwszy'
36
+ * toOrdinal(42) // 'czterdziesty drugi'
37
+ * toOrdinal(100) // 'setny'
38
+ * toOrdinal(1000) // 'tysięczny'
39
+ */
40
+ export function toOrdinal(value: number | string | bigint): string;
41
+ /**
42
+ * Converts a numeric value to Polish currency words (Polish Złoty).
43
+ *
44
+ * @param {number | string | bigint} value - The currency amount to convert
45
+ * @returns {string} The amount in Polish currency words
46
+ * @throws {TypeError} If value is not a valid numeric type
47
+ * @throws {Error} If value is not a valid number format
48
+ *
49
+ * @example
50
+ * toCurrency(42) // 'czterdzieści dwa złote'
51
+ * toCurrency(1) // 'jeden złoty'
52
+ * toCurrency(1.50) // 'jeden złoty pięćdziesiąt groszy'
53
+ * toCurrency(-5) // 'minus pięć złotych'
54
+ */
55
+ export function toCurrency(value: number | string | bigint): string;