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
@@ -0,0 +1,2 @@
1
+ /*! n2words/bn-BD v5.0.0 | MIT License | github.com/forzagreen/n2words */
2
+ var e,n;e=this,n=function(e){"use strict";function n(e){let[n,r]=e.toLowerCase().split("e");const t=parseInt(r,10);let i="";"-"===n[0]&&(i="-",n=n.slice(1));const s=n.indexOf("."),o=-1===s?n:n.slice(0,s)+n.slice(s+1),u=(-1===s?n.length:s)+t;return u>=o.length?i+o+"0".repeat(u-o.length):u<=0?i+"0."+"0".repeat(-u)+o:i+o.slice(0,u)+"."+o.slice(u)}function r(e){const r=e.toString();return t(r)?n(r):r}function t(e){return e.includes("e")||e.includes("E")}function i(e){const n="-"===e[0];n&&(e=e.slice(1));const r=e.indexOf(".");if(-1===r)return{isNegative:n,integerPart:BigInt(e)};const t=e.slice(0,r)||"0",i=e.slice(r+1);return{isNegative:n,integerPart:BigInt(t),decimalPart:i}}function s(e){let r=e.trim();if(0===r.length||Number.isNaN(Number(r)))throw new RangeError(`Invalid currency format: "${e}"`);t(r)&&(r=n(r));const i="-"===r[0];i&&(r=r.slice(1));const s=r.indexOf(".");if(-1===s)return{isNegative:i,dollars:BigInt(r),cents:0n};const o=r.slice(0,s)||"0",u=(r.slice(s+1)+"00").slice(0,2);return{isNegative:i,dollars:BigInt(o),cents:BigInt(u)}}const o="শূন্য",u="মাইনাস",a=["","প্রথম","দ্বিতীয়","তৃতীয়","চতুর্থ","পঞ্চম","ষষ্ঠ"],c=["শূন্য","এক","দুই","তিন","চার","পাঁচ","ছয়","সাত","আট","নয়","দশ","এগারো","বারো","তেরো","চৌদ্দ","পনেরো","ষোল","সতেরো","আঠারো","উনিশ","বিশ","একুশ","বাইশ","তেইশ","চব্বিশ","পঁচিশ","ছাব্বিশ","সাতাশ","আঠাশ","উনত্রিশ","ত্রিশ","একত্রিশ","বত্রিশ","তেত্রিশ","চৌত্রিশ","পঁয়ত্রিশ","ছত্রিশ","সাঁইত্রিশ","আটত্রিশ","উনচল্লিশ","চল্লিশ","একচল্লিশ","বেয়াল্লিশ","তেতাল্লিশ","চুয়াল্লিশ","পঁয়তাল্লিশ","ছেচল্লিশ","সাতচল্লিশ","আটচল্লিশ","উনপঞ্চাশ","পঞ্চাশ","একান্ন","বাহান্ন","তিপ্পান্ন","চুয়ান্ন","পঞ্চান্ন","ছাপ্পান্ন","সাতান্ন","আটান্ন","উনষাট","ষাট","একষট্টি","বাষট্টি","তেষট্টি","চৌষট্টি","পঁয়ষট্টি","ছেষট্টি","সাতষট্টি","আটষট্টি","ঊনসত্তর","সত্তর","একাত্তর","বাহাত্তর","তেহাত্তর","চুয়াত্তর","পঁচাত্তর","ছিয়াত্তর","সাতাত্তর","আটাত্তর","উনআশি","আশি","একাশি","বিরাশি","তিরাশি","চুরাশি","পঁচাশি","ছিয়াশি","সাতাশি","আটাশি","উননব্বই","নব্বই","একানব্বই","বিরানব্বই","তিরানব্বই","চুরানব্বই","পঁচানব্বই","ছিয়ানব্বই","সাতানব্বই","আটানব্বই","নিরানব্বই"],g=["","হাজার","লাখ","কোটি","আরব","খরব","নীল","পদ্ম","শঙ্খ"];function l(e){if(0===e)return"";if(e<100)return c[e];const n=Math.trunc(e/100),r=e%100;return 0===r?c[n]+" শত":c[n]+" শত "+c[r]}function f(e){if(0n===e)return o;if(e<1000n)return l(Number(e));const n=[];n.push(Number(e%1000n));let r=e/1000n;for(;r>0n;)n.push(Number(r%100n)),r/=100n;const t=[];for(let e=n.length-1;e>=0;e--){const r=n[e];0!==r&&(t.push(0===e?l(r):c[r]),e>0&&g[e]&&t.push(g[e]))}return t.join(" ")}const d={bnBD:function(e){const r=function(e){const r=typeof e;if("bigint"===r){if(e<=0n)throw new RangeError("Ordinals must be positive integers");return e}if("number"===r){if(!Number.isFinite(e))throw new RangeError("Ordinals must be finite numbers");if(!Number.isInteger(e))throw new RangeError("Ordinals must be whole numbers");if(e<=0)throw new RangeError("Ordinals must be positive integers");return BigInt(e)}if("string"===r)return function(e){const r=e.trim();if(0===r.length)throw new RangeError("Ordinals cannot be empty strings");if("-"===r[0])throw new RangeError("Ordinals cannot be negative");if(r.includes("."))throw new RangeError("Ordinals must be whole numbers");if(t(r)){const e=n(r);if(e.includes("."))throw new RangeError("Ordinals must be whole numbers");const t=BigInt(e);if(t<=0n)throw new RangeError("Ordinals must be positive integers");return t}try{const e=BigInt(r);if(e<=0n)throw new RangeError("Ordinals must be positive integers");return e}catch(n){if(n instanceof RangeError)throw n;throw new RangeError(`Invalid ordinal format: "${e}"`)}}(e);throw new TypeError(`Invalid value type: expected number, string, or bigint, received ${r}`)}(e);return(i=r)>=1n&&i<=6n?a[Number(i)]:f(i)+"তম";var i}},b={bnBD:function(e){const{isNegative:n,dollars:t,cents:i}=function(e){const n=typeof e;if("bigint"===n)return e<0n?{isNegative:!0,dollars:-e,cents:0n}:{isNegative:!1,dollars:e,cents:0n};if("number"===n){if(!Number.isFinite(e))throw new RangeError("Currency must be a finite number");return Number.isSafeInteger(e)?e<0?{isNegative:!0,dollars:BigInt(-e),cents:0n}:{isNegative:!1,dollars:BigInt(e),cents:0n}:s(r(e))}if("string"===n)return s(e);throw new TypeError(`Invalid value type: expected number, string, or bigint, received ${n}`)}(e);let o="";return n&&(o=u+" "),(t>0n||0n===i)&&(o+=f(t)+" টাকা"),i>0n&&(t>0n&&(o+=" "),o+=f(i)+" পয়সা"),o}};e.bnBD=function(e){const{isNegative:s,integerPart:a,decimalPart:c}=function(e){const s=typeof e;if("bigint"===s)return e<0n?{isNegative:!0,integerPart:-e}:{isNegative:!1,integerPart:e};if("number"===s){if(!Number.isFinite(e))throw new RangeError("Number must be finite (NaN and Infinity are not supported)");return Number.isSafeInteger(e)?e<0?{isNegative:!0,integerPart:BigInt(-e)}:{isNegative:!1,integerPart:BigInt(e)}:i(r(e))}if("string"===s)return i(function(e){const r=e.trim();if(0===r.length||Number.isNaN(Number(r)))throw new RangeError(`Invalid number format: "${e}"`);return t(r)?n(r):r}(e));throw new TypeError(`Invalid value type: expected number, string, or bigint, received ${s}`)}(e);let g="";return s&&(g=u+" "),g+=f(a),c&&(g+=" দশমিক "+function(e){let n="",r=0;for(;r<e.length&&"0"===e[r];)n&&(n+=" "),n+=o,r++;const t=e.slice(r);return t&&(n&&(n+=" "),n+=f(BigInt(t))),n}(c)),g},e.currency=b,e.ordinal=d},"object"==typeof exports&&"undefined"!=typeof module?n(exports):"function"==typeof define&&define.amd?define(["exports"],n):n((e="undefined"!=typeof globalThis?globalThis:e||self).n2words=e.n2words||{});
package/dist/cs-CZ.js ADDED
@@ -0,0 +1,2 @@
1
+ /*! n2words/cs-CZ v5.0.0 | MIT License | github.com/forzagreen/n2words */
2
+ function t(t){let[n,e]=t.toLowerCase().split("e");const r=parseInt(e,10);let i="";"-"===n[0]&&(i="-",n=n.slice(1));const s=n.indexOf("."),o=-1===s?n:n.slice(0,s)+n.slice(s+1),u=(-1===s?n.length:s)+r;return u>=o.length?i+o+"0".repeat(u-o.length):u<=0?i+"0."+"0".repeat(-u)+o:i+o.slice(0,u)+"."+o.slice(u)}function n(n){const r=n.toString();return e(r)?t(r):r}function e(t){return t.includes("e")||t.includes("E")}function r(t){const n="-"===t[0];n&&(t=t.slice(1));const e=t.indexOf(".");if(-1===e)return{isNegative:n,integerPart:BigInt(t)};const r=t.slice(0,e)||"0",i=t.slice(e+1);return{isNegative:n,integerPart:BigInt(r),decimalPart:i}}function i(n){let r=n.trim();if(0===r.length||Number.isNaN(Number(r)))throw new RangeError(`Invalid currency format: "${n}"`);e(r)&&(r=t(r));const i="-"===r[0];i&&(r=r.slice(1));const s=r.indexOf(".");if(-1===s)return{isNegative:i,dollars:BigInt(r),cents:0n};const o=r.slice(0,s)||"0",u=(r.slice(s+1)+"00").slice(0,2);return{isNegative:i,dollars:BigInt(o),cents:BigInt(u)}}const s=["","jedna","dva","tři","čtyři","pět","šest","sedm","osm","devět"],o=["deset","jedenáct","dvanáct","třináct","čtrnáct","patnáct","šestnáct","sedmnáct","osmnáct","devatenáct"],u=["","","dvacet","třicet","čtyřicet","padesát","šedesát","sedmdesát","osmdesát","devadesát"],c=["","sto","dvě stě","tři sta","čtyři sta","pět set","šest set","sedm set","osm set","devět set"],a={1:["tisíc","tisíce","tisíc"],2:["milion","miliony","milionů"],3:["miliarda","miliardy","miliard"],4:["bilion","biliony","bilionů"],5:["biliarda","biliardy","biliard"],6:["trilion","triliony","trilionů"],7:["triliarda","triliardy","triliard"],8:["kvadrilion","kvadriliony","kvadrilionů"],9:["kvadriliarda","kvadriliardy","kvadriliard"]},l="nula",d="mínus",f=["","první","druhý","třetí","čtvrtý","pátý","šestý","sedmý","osmý","devátý"],g=["desátý","jedenáctý","dvanáctý","třináctý","čtrnáctý","patnáctý","šestnáctý","sedmnáctý","osmnáctý","devatenáctý"],m=["","","dvacátý","třicátý","čtyřicátý","padesátý","šedesátý","sedmdesátý","osmdesátý","devadesátý"],b=["","stý","dvoustý","třístý","čtyřstý","pětistý","šestistý","sedmistý","osmistý","devítistý"],h=["tisící","miliontý","miliardtý","biliontý"],v=["koruna","koruny","korun"],p=["haléř","haléře","haléřů"];function N(t){if(0===t)return"";const n=t%10,e=Math.trunc(t/10)%10,r=Math.trunc(t/100),i=[];return r>0&&i.push(c[r]),1===e?i.push(o[n]):e>=2?(i.push(u[e]),n>0&&i.push(s[n])):n>0&&i.push(s[n]),i.join(" ")}function w(t){if(0===t)return"";const n=t%10,e=Math.trunc(t/10)%10,r=Math.trunc(t/100),i=[];return r>0&&i.push(c[r]),1===e?i.push(o[n]):e>=2?(i.push(u[e]),n>0&&i.push(s[n])):n>0&&i.push(s[n]),i.join(" ")}function y(t,n){if(1n===t)return n[0];const e=t%10n,r=t%100n;return e>=2n&&e<=4n&&(r<10n||r>20n)?n[1]:n[2]}function I(t){if(0n===t)return l;if(t<1000n)return N(Number(t));if(t<1000000n){const n=t/1000n,e=Number(t%1000n),r=y(n,a[1]);let i;return i=1n===n?r:N(Number(n))+" "+r,e>0&&(i+=" "+w(e)),i}return function(t){const n=[];let e=t;for(;e>0n;)n.push(e%1000n),e/=1000n;let r="";for(let t=n.length-1;t>=0;t--){const e=n[t];if(0n!==e)if(r&&(r+=" "),0===t)r+=w(Number(e));else{const n=a[t];if(n){const t=y(e,n);r+=1n===e?t:N(Number(e))+" "+t}else r+=N(Number(e))}}return r}(t)}function E(i){const{isNegative:s,integerPart:o,decimalPart:u}=function(i){const s=typeof i;if("bigint"===s)return i<0n?{isNegative:!0,integerPart:-i}:{isNegative:!1,integerPart:i};if("number"===s){if(!Number.isFinite(i))throw new RangeError("Number must be finite (NaN and Infinity are not supported)");return Number.isSafeInteger(i)?i<0?{isNegative:!0,integerPart:BigInt(-i)}:{isNegative:!1,integerPart:BigInt(i)}:r(n(i))}if("string"===s)return r(function(n){const r=n.trim();if(0===r.length||Number.isNaN(Number(r)))throw new RangeError(`Invalid number format: "${n}"`);return e(r)?t(r):r}(i));throw new TypeError(`Invalid value type: expected number, string, or bigint, received ${s}`)}(i);let c="";if(s&&(c=d+" "),c+=I(o),u){const t=function(t){return 0n===t||1n===t?"celá":t>=2n&&t<=4n?"celé":"celých"}(o);c+=" "+t+" "+function(t){let n="",e=0;for(;e<t.length&&"0"===t[e];)n&&(n+=" "),n+=l,e++;const r=t.slice(e);return r&&(n&&(n+=" "),n+=I(BigInt(r))),n}(u)}return c}function R(t){if(0===t)return"";const n=t%10,e=Math.trunc(t/10);return 0===e?f[n]:1===e?g[n]:0===n?m[e]:u[e]+" "+f[n]}function B(t){if(t<100n)return R(Number(t));if(t<1000n){const n=Number(t),e=Math.trunc(n/100),r=n%100;return 0===r?b[e]:c[e]+" "+R(r)}if(t<1000000n){const n=Number(t/1000n),e=Number(t%1000n);if(0===e)return 1===n?h[0]:N(n)+" "+h[0];const r=y(BigInt(n),a[1]),i=1===n?"":N(n)+" ";return(1===n?"tisíc":i+r)+" "+B(BigInt(e))}return function(t){const n=[];let e=t;for(;e>0n;)n.push(e%1000n),e/=1000n;let r=0;for(let t=0;t<n.length;t++)0n!==n[t]&&(r=t);const i=[];for(let t=n.length-1;t>=0;t--){const e=n[t];if(0n===e)continue;const s=t===r;if(0===t)i.push(s?B(e):w(Number(e)));else if(s)i.push(1n===e?h[t-1]||a[t][0]:N(Number(e))+" "+(h[t-1]||a[t][0]));else{const n=a[t];if(n){const t=y(e,n);i.push(1n===e?t:N(Number(e))+" "+t)}}}return i.join(" ")}(t)}function O(n){return B(function(n){const r=typeof n;if("bigint"===r){if(n<=0n)throw new RangeError("Ordinals must be positive integers");return n}if("number"===r){if(!Number.isFinite(n))throw new RangeError("Ordinals must be finite numbers");if(!Number.isInteger(n))throw new RangeError("Ordinals must be whole numbers");if(n<=0)throw new RangeError("Ordinals must be positive integers");return BigInt(n)}if("string"===r)return function(n){const r=n.trim();if(0===r.length)throw new RangeError("Ordinals cannot be empty strings");if("-"===r[0])throw new RangeError("Ordinals cannot be negative");if(r.includes("."))throw new RangeError("Ordinals must be whole numbers");if(e(r)){const n=t(r);if(n.includes("."))throw new RangeError("Ordinals must be whole numbers");const e=BigInt(n);if(e<=0n)throw new RangeError("Ordinals must be positive integers");return e}try{const t=BigInt(r);if(t<=0n)throw new RangeError("Ordinals must be positive integers");return t}catch(t){if(t instanceof RangeError)throw t;throw new RangeError(`Invalid ordinal format: "${n}"`)}}(n);throw new TypeError(`Invalid value type: expected number, string, or bigint, received ${r}`)}(n))}function k(t){const{isNegative:e,dollars:r,cents:s}=function(t){const e=typeof t;if("bigint"===e)return t<0n?{isNegative:!0,dollars:-t,cents:0n}:{isNegative:!1,dollars:t,cents:0n};if("number"===e){if(!Number.isFinite(t))throw new RangeError("Currency must be a finite number");return Number.isSafeInteger(t)?t<0?{isNegative:!0,dollars:BigInt(-t),cents:0n}:{isNegative:!1,dollars:BigInt(t),cents:0n}:i(n(t))}if("string"===e)return i(t);throw new TypeError(`Invalid value type: expected number, string, or bigint, received ${e}`)}(t);let o="";return e&&(o=d+" "),(r>0n||0n===s)&&(o+=I(r),o+=" "+y(r,v)),s>0n&&(r>0n&&(o+=" "),o+=I(s),o+=" "+y(s,p)),o}export{E as toCardinal,k as toCurrency,O as toOrdinal};
@@ -0,0 +1,2 @@
1
+ /*! n2words/cs-CZ v5.0.0 | MIT License | github.com/forzagreen/n2words */
2
+ var t,n;t=this,n=function(t){"use strict";function n(t){let[n,e]=t.toLowerCase().split("e");const r=parseInt(e,10);let i="";"-"===n[0]&&(i="-",n=n.slice(1));const s=n.indexOf("."),o=-1===s?n:n.slice(0,s)+n.slice(s+1),u=(-1===s?n.length:s)+r;return u>=o.length?i+o+"0".repeat(u-o.length):u<=0?i+"0."+"0".repeat(-u)+o:i+o.slice(0,u)+"."+o.slice(u)}function e(t){const e=t.toString();return r(e)?n(e):e}function r(t){return t.includes("e")||t.includes("E")}function i(t){const n="-"===t[0];n&&(t=t.slice(1));const e=t.indexOf(".");if(-1===e)return{isNegative:n,integerPart:BigInt(t)};const r=t.slice(0,e)||"0",i=t.slice(e+1);return{isNegative:n,integerPart:BigInt(r),decimalPart:i}}function s(t){let e=t.trim();if(0===e.length||Number.isNaN(Number(e)))throw new RangeError(`Invalid currency format: "${t}"`);r(e)&&(e=n(e));const i="-"===e[0];i&&(e=e.slice(1));const s=e.indexOf(".");if(-1===s)return{isNegative:i,dollars:BigInt(e),cents:0n};const o=e.slice(0,s)||"0",u=(e.slice(s+1)+"00").slice(0,2);return{isNegative:i,dollars:BigInt(o),cents:BigInt(u)}}const o=["","jedna","dva","tři","čtyři","pět","šest","sedm","osm","devět"],u=["deset","jedenáct","dvanáct","třináct","čtrnáct","patnáct","šestnáct","sedmnáct","osmnáct","devatenáct"],c=["","","dvacet","třicet","čtyřicet","padesát","šedesát","sedmdesát","osmdesát","devadesát"],a=["","sto","dvě stě","tři sta","čtyři sta","pět set","šest set","sedm set","osm set","devět set"],l={1:["tisíc","tisíce","tisíc"],2:["milion","miliony","milionů"],3:["miliarda","miliardy","miliard"],4:["bilion","biliony","bilionů"],5:["biliarda","biliardy","biliard"],6:["trilion","triliony","trilionů"],7:["triliarda","triliardy","triliard"],8:["kvadrilion","kvadriliony","kvadrilionů"],9:["kvadriliarda","kvadriliardy","kvadriliard"]},d="nula",f="mínus",g=["","první","druhý","třetí","čtvrtý","pátý","šestý","sedmý","osmý","devátý"],m=["desátý","jedenáctý","dvanáctý","třináctý","čtrnáctý","patnáctý","šestnáctý","sedmnáctý","osmnáctý","devatenáctý"],b=["","","dvacátý","třicátý","čtyřicátý","padesátý","šedesátý","sedmdesátý","osmdesátý","devadesátý"],h=["","stý","dvoustý","třístý","čtyřstý","pětistý","šestistý","sedmistý","osmistý","devítistý"],v=["tisící","miliontý","miliardtý","biliontý"],p=["koruna","koruny","korun"],N=["haléř","haléře","haléřů"];function w(t){if(0===t)return"";const n=t%10,e=Math.trunc(t/10)%10,r=Math.trunc(t/100),i=[];return r>0&&i.push(a[r]),1===e?i.push(u[n]):e>=2?(i.push(c[e]),n>0&&i.push(o[n])):n>0&&i.push(o[n]),i.join(" ")}function y(t){if(0===t)return"";const n=t%10,e=Math.trunc(t/10)%10,r=Math.trunc(t/100),i=[];return r>0&&i.push(a[r]),1===e?i.push(u[n]):e>=2?(i.push(c[e]),n>0&&i.push(o[n])):n>0&&i.push(o[n]),i.join(" ")}function I(t,n){if(1n===t)return n[0];const e=t%10n,r=t%100n;return e>=2n&&e<=4n&&(r<10n||r>20n)?n[1]:n[2]}function E(t){if(0n===t)return d;if(t<1000n)return w(Number(t));if(t<1000000n){const n=t/1000n,e=Number(t%1000n),r=I(n,l[1]);let i;return i=1n===n?r:w(Number(n))+" "+r,e>0&&(i+=" "+y(e)),i}return function(t){const n=[];let e=t;for(;e>0n;)n.push(e%1000n),e/=1000n;let r="";for(let t=n.length-1;t>=0;t--){const e=n[t];if(0n!==e)if(r&&(r+=" "),0===t)r+=y(Number(e));else{const n=l[t];if(n){const t=I(e,n);r+=1n===e?t:w(Number(e))+" "+t}else r+=w(Number(e))}}return r}(t)}function R(t){if(0===t)return"";const n=t%10,e=Math.trunc(t/10);return 0===e?g[n]:1===e?m[n]:0===n?b[e]:c[e]+" "+g[n]}function B(t){if(t<100n)return R(Number(t));if(t<1000n){const n=Number(t),e=Math.trunc(n/100),r=n%100;return 0===r?h[e]:a[e]+" "+R(r)}if(t<1000000n){const n=Number(t/1000n),e=Number(t%1000n);if(0===e)return 1===n?v[0]:w(n)+" "+v[0];const r=I(BigInt(n),l[1]),i=1===n?"":w(n)+" ";return(1===n?"tisíc":i+r)+" "+B(BigInt(e))}return function(t){const n=[];let e=t;for(;e>0n;)n.push(e%1000n),e/=1000n;let r=0;for(let t=0;t<n.length;t++)0n!==n[t]&&(r=t);const i=[];for(let t=n.length-1;t>=0;t--){const e=n[t];if(0n===e)continue;const s=t===r;if(0===t)i.push(s?B(e):y(Number(e)));else if(s)i.push(1n===e?v[t-1]||l[t][0]:w(Number(e))+" "+(v[t-1]||l[t][0]));else{const n=l[t];if(n){const t=I(e,n);i.push(1n===e?t:w(Number(e))+" "+t)}}}return i.join(" ")}(t)}const O={csCZ:function(t){return B(function(t){const e=typeof t;if("bigint"===e){if(t<=0n)throw new RangeError("Ordinals must be positive integers");return t}if("number"===e){if(!Number.isFinite(t))throw new RangeError("Ordinals must be finite numbers");if(!Number.isInteger(t))throw new RangeError("Ordinals must be whole numbers");if(t<=0)throw new RangeError("Ordinals must be positive integers");return BigInt(t)}if("string"===e)return function(t){const e=t.trim();if(0===e.length)throw new RangeError("Ordinals cannot be empty strings");if("-"===e[0])throw new RangeError("Ordinals cannot be negative");if(e.includes("."))throw new RangeError("Ordinals must be whole numbers");if(r(e)){const t=n(e);if(t.includes("."))throw new RangeError("Ordinals must be whole numbers");const r=BigInt(t);if(r<=0n)throw new RangeError("Ordinals must be positive integers");return r}try{const t=BigInt(e);if(t<=0n)throw new RangeError("Ordinals must be positive integers");return t}catch(n){if(n instanceof RangeError)throw n;throw new RangeError(`Invalid ordinal format: "${t}"`)}}(t);throw new TypeError(`Invalid value type: expected number, string, or bigint, received ${e}`)}(t))}},k={csCZ:function(t){const{isNegative:n,dollars:r,cents:i}=function(t){const n=typeof t;if("bigint"===n)return t<0n?{isNegative:!0,dollars:-t,cents:0n}:{isNegative:!1,dollars:t,cents:0n};if("number"===n){if(!Number.isFinite(t))throw new RangeError("Currency must be a finite number");return Number.isSafeInteger(t)?t<0?{isNegative:!0,dollars:BigInt(-t),cents:0n}:{isNegative:!1,dollars:BigInt(t),cents:0n}:s(e(t))}if("string"===n)return s(t);throw new TypeError(`Invalid value type: expected number, string, or bigint, received ${n}`)}(t);let o="";return n&&(o=f+" "),(r>0n||0n===i)&&(o+=E(r),o+=" "+I(r,p)),i>0n&&(r>0n&&(o+=" "),o+=E(i),o+=" "+I(i,N)),o}};t.csCZ=function(t){const{isNegative:s,integerPart:o,decimalPart:u}=function(t){const s=typeof t;if("bigint"===s)return t<0n?{isNegative:!0,integerPart:-t}:{isNegative:!1,integerPart:t};if("number"===s){if(!Number.isFinite(t))throw new RangeError("Number must be finite (NaN and Infinity are not supported)");return Number.isSafeInteger(t)?t<0?{isNegative:!0,integerPart:BigInt(-t)}:{isNegative:!1,integerPart:BigInt(t)}:i(e(t))}if("string"===s)return i(function(t){const e=t.trim();if(0===e.length||Number.isNaN(Number(e)))throw new RangeError(`Invalid number format: "${t}"`);return r(e)?n(e):e}(t));throw new TypeError(`Invalid value type: expected number, string, or bigint, received ${s}`)}(t);let c="";if(s&&(c=f+" "),c+=E(o),u){const t=function(t){return 0n===t||1n===t?"celá":t>=2n&&t<=4n?"celé":"celých"}(o);c+=" "+t+" "+function(t){let n="",e=0;for(;e<t.length&&"0"===t[e];)n&&(n+=" "),n+=d,e++;const r=t.slice(e);return r&&(n&&(n+=" "),n+=E(BigInt(r))),n}(u)}return c},t.currency=k,t.ordinal=O},"object"==typeof exports&&"undefined"!=typeof module?n(exports):"function"==typeof define&&define.amd?define(["exports"],n):n((t="undefined"!=typeof globalThis?globalThis:t||self).n2words=t.n2words||{});
package/dist/da-DK.js ADDED
@@ -0,0 +1,2 @@
1
+ /*! n2words/da-DK v5.0.0 | MIT License | github.com/forzagreen/n2words */
2
+ function e(e){let[n,t]=e.toLowerCase().split("e");const r=parseInt(t,10);let i="";"-"===n[0]&&(i="-",n=n.slice(1));const s=n.indexOf("."),o=-1===s?n:n.slice(0,s)+n.slice(s+1),u=(-1===s?n.length:s)+r;return u>=o.length?i+o+"0".repeat(u-o.length):u<=0?i+"0."+"0".repeat(-u)+o:i+o.slice(0,u)+"."+o.slice(u)}function n(n){const r=n.toString();return t(r)?e(r):r}function t(e){return e.includes("e")||e.includes("E")}function r(e){const n="-"===e[0];n&&(e=e.slice(1));const t=e.indexOf(".");if(-1===t)return{isNegative:n,integerPart:BigInt(e)};const r=e.slice(0,t)||"0",i=e.slice(t+1);return{isNegative:n,integerPart:BigInt(r),decimalPart:i}}function i(n){let r=n.trim();if(0===r.length||Number.isNaN(Number(r)))throw new RangeError(`Invalid currency format: "${n}"`);t(r)&&(r=e(r));const i="-"===r[0];i&&(r=r.slice(1));const s=r.indexOf(".");if(-1===s)return{isNegative:i,dollars:BigInt(r),cents:0n};const o=r.slice(0,s)||"0",u=(r.slice(s+1)+"00").slice(0,2);return{isNegative:i,dollars:BigInt(o),cents:BigInt(u)}}const s=["","et","to","tre","fire","fem","seks","syv","otte","ni"],o=["","en","to","tre","fire","fem","seks","syv","otte","ni"],u=["ti","elleve","tolv","tretten","fjorten","femten","seksten","sytten","atten","nitten"],l=["","","tyve","tredive","fyrre","halvtreds","treds","halvfjerds","firs","halvfems"],a="tusind",g="nul",c="minus",f=["millioner","millarder","billioner","billarder","trillioner","trillarder","quadrillioner","quadrillarder"],d={1:"første",2:"anden",3:"tredje",4:"fjerde",5:"femte",6:"sjette",7:"syvende",8:"ottende",9:"niende",10:"tiende",11:"ellevte",12:"tolvte"};function h(e){if(0===e)return"";const n=e%10,t=Math.trunc(e/10)%10,r=Math.trunc(e/100),i=[];r>0&&i.push(s[r]+"hundrede");const a=e%100;return 0===a||i.push(a<10?s[n]:a<20?u[n]:0===n?l[t]:o[n]+"og"+l[t]),2===i.length?i[0]+" og "+i[1]:i[0]||""}function m(e){if(0n===e)return g;if(e<1000n)return h(Number(e));if(e<1000000n){const n=Number(e/1000n),t=Number(e%1000n);let r=h(n)+a;return t>0&&(r+="e og "+h(t)),r}return function(e){const n=e.toString(),t=n.length,r=[],i=t%3;let s=0;for(i>0&&(r.push(Number(n.slice(0,i))),s=i);s<t;)r.push(Number(n.slice(s,s+3))),s+=3;const o=[];let u=r.length-1;for(let e=0;e<r.length;e++){const n=r[e];if(0!==n){const e=h(n);if(0===u)o.push({word:e,type:"units"});else if(1===u)o.push({word:e+a,type:"thousand"});else{let t=e;1===n&&(t="en"),o.push({word:t+" "+f[u-2],type:"million"})}}u--}return function(e){if(0===e.length)return g;if(1===e.length)return e[0].word;const n=[];for(let t=0;t<e.length;t++){const r=e[t],i=e[t+1];"thousand"===r.type&&i&&"units"===i.type?(n.push(r.word+"e og "+i.word),t++):"million"===r.type?(n.length>0&&n.push(" "),n.push(r.word),i&&n.push(" ")):(n.length>0&&!n[n.length-1].endsWith(" ")&&n.push(" "),n.push(r.word))}return n.join("")}(o)}(e)}function b(i){const{isNegative:s,integerPart:o,decimalPart:u}=function(i){const s=typeof i;if("bigint"===s)return i<0n?{isNegative:!0,integerPart:-i}:{isNegative:!1,integerPart:i};if("number"===s){if(!Number.isFinite(i))throw new RangeError("Number must be finite (NaN and Infinity are not supported)");return Number.isSafeInteger(i)?i<0?{isNegative:!0,integerPart:BigInt(-i)}:{isNegative:!1,integerPart:BigInt(i)}:r(n(i))}if("string"===s)return r(function(n){const r=n.trim();if(0===r.length||Number.isNaN(Number(r)))throw new RangeError(`Invalid number format: "${n}"`);return t(r)?e(r):r}(i));throw new TypeError(`Invalid value type: expected number, string, or bigint, received ${s}`)}(i);let l="";return s&&(l=c+" "),l+=m(o),u&&(l+=" komma "+function(e){let n="",t=0;for(;t<e.length&&"0"===e[t];)n&&(n+=" "),n+=g,t++;const r=e.slice(t);return r&&(n&&(n+=" "),n+=m(BigInt(r))),n}(u)),l}function w(n){const r=function(n){const r=typeof n;if("bigint"===r){if(n<=0n)throw new RangeError("Ordinals must be positive integers");return n}if("number"===r){if(!Number.isFinite(n))throw new RangeError("Ordinals must be finite numbers");if(!Number.isInteger(n))throw new RangeError("Ordinals must be whole numbers");if(n<=0)throw new RangeError("Ordinals must be positive integers");return BigInt(n)}if("string"===r)return function(n){const r=n.trim();if(0===r.length)throw new RangeError("Ordinals cannot be empty strings");if("-"===r[0])throw new RangeError("Ordinals cannot be negative");if(r.includes("."))throw new RangeError("Ordinals must be whole numbers");if(t(r)){const n=e(r);if(n.includes("."))throw new RangeError("Ordinals must be whole numbers");const t=BigInt(n);if(t<=0n)throw new RangeError("Ordinals must be positive integers");return t}try{const e=BigInt(r);if(e<=0n)throw new RangeError("Ordinals must be positive integers");return e}catch(e){if(e instanceof RangeError)throw e;throw new RangeError(`Invalid ordinal format: "${n}"`)}}(n);throw new TypeError(`Invalid value type: expected number, string, or bigint, received ${r}`)}(n);return(i=r)>=1n&&i<=12n?d[Number(i)]:m(i)+"de";var i}function v(e){const{isNegative:t,dollars:r,cents:s}=function(e){const t=typeof e;if("bigint"===t)return e<0n?{isNegative:!0,dollars:-e,cents:0n}:{isNegative:!1,dollars:e,cents:0n};if("number"===t){if(!Number.isFinite(e))throw new RangeError("Currency must be a finite number");return Number.isSafeInteger(e)?e<0?{isNegative:!0,dollars:BigInt(-e),cents:0n}:{isNegative:!1,dollars:BigInt(e),cents:0n}:i(n(e))}if("string"===t)return i(e);throw new TypeError(`Invalid value type: expected number, string, or bigint, received ${t}`)}(e);let o="";return t&&(o=c+" "),(r>0n||0n===s)&&(o+=1n===r?"en krone":m(r)+" kroner"),s>0n&&(r>0n&&(o+=" og "),o+=m(s)+" øre"),o}export{b as toCardinal,v as toCurrency,w as toOrdinal};
@@ -0,0 +1,2 @@
1
+ /*! n2words/da-DK v5.0.0 | MIT License | github.com/forzagreen/n2words */
2
+ var e,n;e=this,n=function(e){"use strict";function n(e){let[n,t]=e.toLowerCase().split("e");const r=parseInt(t,10);let i="";"-"===n[0]&&(i="-",n=n.slice(1));const s=n.indexOf("."),o=-1===s?n:n.slice(0,s)+n.slice(s+1),u=(-1===s?n.length:s)+r;return u>=o.length?i+o+"0".repeat(u-o.length):u<=0?i+"0."+"0".repeat(-u)+o:i+o.slice(0,u)+"."+o.slice(u)}function t(e){const t=e.toString();return r(t)?n(t):t}function r(e){return e.includes("e")||e.includes("E")}function i(e){const n="-"===e[0];n&&(e=e.slice(1));const t=e.indexOf(".");if(-1===t)return{isNegative:n,integerPart:BigInt(e)};const r=e.slice(0,t)||"0",i=e.slice(t+1);return{isNegative:n,integerPart:BigInt(r),decimalPart:i}}function s(e){let t=e.trim();if(0===t.length||Number.isNaN(Number(t)))throw new RangeError(`Invalid currency format: "${e}"`);r(t)&&(t=n(t));const i="-"===t[0];i&&(t=t.slice(1));const s=t.indexOf(".");if(-1===s)return{isNegative:i,dollars:BigInt(t),cents:0n};const o=t.slice(0,s)||"0",u=(t.slice(s+1)+"00").slice(0,2);return{isNegative:i,dollars:BigInt(o),cents:BigInt(u)}}const o=["","et","to","tre","fire","fem","seks","syv","otte","ni"],u=["","en","to","tre","fire","fem","seks","syv","otte","ni"],l=["ti","elleve","tolv","tretten","fjorten","femten","seksten","sytten","atten","nitten"],a=["","","tyve","tredive","fyrre","halvtreds","treds","halvfjerds","firs","halvfems"],c="tusind",f="nul",g="minus",d=["millioner","millarder","billioner","billarder","trillioner","trillarder","quadrillioner","quadrillarder"],h={1:"første",2:"anden",3:"tredje",4:"fjerde",5:"femte",6:"sjette",7:"syvende",8:"ottende",9:"niende",10:"tiende",11:"ellevte",12:"tolvte"};function m(e){if(0===e)return"";const n=e%10,t=Math.trunc(e/10)%10,r=Math.trunc(e/100),i=[];r>0&&i.push(o[r]+"hundrede");const s=e%100;return 0===s||i.push(s<10?o[n]:s<20?l[n]:0===n?a[t]:u[n]+"og"+a[t]),2===i.length?i[0]+" og "+i[1]:i[0]||""}function b(e){if(0n===e)return f;if(e<1000n)return m(Number(e));if(e<1000000n){const n=Number(e/1000n),t=Number(e%1000n);let r=m(n)+c;return t>0&&(r+="e og "+m(t)),r}return function(e){const n=e.toString(),t=n.length,r=[],i=t%3;let s=0;for(i>0&&(r.push(Number(n.slice(0,i))),s=i);s<t;)r.push(Number(n.slice(s,s+3))),s+=3;const o=[];let u=r.length-1;for(let e=0;e<r.length;e++){const n=r[e];if(0!==n){const e=m(n);if(0===u)o.push({word:e,type:"units"});else if(1===u)o.push({word:e+c,type:"thousand"});else{let t=e;1===n&&(t="en"),o.push({word:t+" "+d[u-2],type:"million"})}}u--}return function(e){if(0===e.length)return f;if(1===e.length)return e[0].word;const n=[];for(let t=0;t<e.length;t++){const r=e[t],i=e[t+1];"thousand"===r.type&&i&&"units"===i.type?(n.push(r.word+"e og "+i.word),t++):"million"===r.type?(n.length>0&&n.push(" "),n.push(r.word),i&&n.push(" ")):(n.length>0&&!n[n.length-1].endsWith(" ")&&n.push(" "),n.push(r.word))}return n.join("")}(o)}(e)}const w={daDK:function(e){const t=function(e){const t=typeof e;if("bigint"===t){if(e<=0n)throw new RangeError("Ordinals must be positive integers");return e}if("number"===t){if(!Number.isFinite(e))throw new RangeError("Ordinals must be finite numbers");if(!Number.isInteger(e))throw new RangeError("Ordinals must be whole numbers");if(e<=0)throw new RangeError("Ordinals must be positive integers");return BigInt(e)}if("string"===t)return function(e){const t=e.trim();if(0===t.length)throw new RangeError("Ordinals cannot be empty strings");if("-"===t[0])throw new RangeError("Ordinals cannot be negative");if(t.includes("."))throw new RangeError("Ordinals must be whole numbers");if(r(t)){const e=n(t);if(e.includes("."))throw new RangeError("Ordinals must be whole numbers");const r=BigInt(e);if(r<=0n)throw new RangeError("Ordinals must be positive integers");return r}try{const e=BigInt(t);if(e<=0n)throw new RangeError("Ordinals must be positive integers");return e}catch(n){if(n instanceof RangeError)throw n;throw new RangeError(`Invalid ordinal format: "${e}"`)}}(e);throw new TypeError(`Invalid value type: expected number, string, or bigint, received ${t}`)}(e);return(i=t)>=1n&&i<=12n?h[Number(i)]:b(i)+"de";var i}};e.currency={daDK:function(e){const{isNegative:n,dollars:r,cents:i}=function(e){const n=typeof e;if("bigint"===n)return e<0n?{isNegative:!0,dollars:-e,cents:0n}:{isNegative:!1,dollars:e,cents:0n};if("number"===n){if(!Number.isFinite(e))throw new RangeError("Currency must be a finite number");return Number.isSafeInteger(e)?e<0?{isNegative:!0,dollars:BigInt(-e),cents:0n}:{isNegative:!1,dollars:BigInt(e),cents:0n}:s(t(e))}if("string"===n)return s(e);throw new TypeError(`Invalid value type: expected number, string, or bigint, received ${n}`)}(e);let o="";return n&&(o=g+" "),(r>0n||0n===i)&&(o+=1n===r?"en krone":b(r)+" kroner"),i>0n&&(r>0n&&(o+=" og "),o+=b(i)+" øre"),o}},e.daDK=function(e){const{isNegative:s,integerPart:o,decimalPart:u}=function(e){const s=typeof e;if("bigint"===s)return e<0n?{isNegative:!0,integerPart:-e}:{isNegative:!1,integerPart:e};if("number"===s){if(!Number.isFinite(e))throw new RangeError("Number must be finite (NaN and Infinity are not supported)");return Number.isSafeInteger(e)?e<0?{isNegative:!0,integerPart:BigInt(-e)}:{isNegative:!1,integerPart:BigInt(e)}:i(t(e))}if("string"===s)return i(function(e){const t=e.trim();if(0===t.length||Number.isNaN(Number(t)))throw new RangeError(`Invalid number format: "${e}"`);return r(t)?n(t):t}(e));throw new TypeError(`Invalid value type: expected number, string, or bigint, received ${s}`)}(e);let l="";return s&&(l=g+" "),l+=b(o),u&&(l+=" komma "+function(e){let n="",t=0;for(;t<e.length&&"0"===e[t];)n&&(n+=" "),n+=f,t++;const r=e.slice(t);return r&&(n&&(n+=" "),n+=b(BigInt(r))),n}(u)),l},e.ordinal=w},"object"==typeof exports&&"undefined"!=typeof module?n(exports):"function"==typeof define&&define.amd?define(["exports"],n):n((e="undefined"!=typeof globalThis?globalThis:e||self).n2words=e.n2words||{});
package/dist/de-DE.js ADDED
@@ -0,0 +1,2 @@
1
+ /*! n2words/de-DE v5.0.0 | MIT License | github.com/forzagreen/n2words */
2
+ function e(e){let[n,t]=e.toLowerCase().split("e");const r=parseInt(t,10);let i="";"-"===n[0]&&(i="-",n=n.slice(1));const s=n.indexOf("."),l=-1===s?n:n.slice(0,s)+n.slice(s+1),o=(-1===s?n.length:s)+r;return o>=l.length?i+l+"0".repeat(o-l.length):o<=0?i+"0."+"0".repeat(-o)+l:i+l.slice(0,o)+"."+l.slice(o)}function n(n){const r=n.toString();return t(r)?e(r):r}function t(e){return e.includes("e")||e.includes("E")}function r(e){const n="-"===e[0];n&&(e=e.slice(1));const t=e.indexOf(".");if(-1===t)return{isNegative:n,integerPart:BigInt(e)};const r=e.slice(0,t)||"0",i=e.slice(t+1);return{isNegative:n,integerPart:BigInt(r),decimalPart:i}}function i(n){let r=n.trim();if(0===r.length||Number.isNaN(Number(r)))throw new RangeError(`Invalid currency format: "${n}"`);t(r)&&(r=e(r));const i="-"===r[0];i&&(r=r.slice(1));const s=r.indexOf(".");if(-1===s)return{isNegative:i,dollars:BigInt(r),cents:0n};const l=r.slice(0,s)||"0",o=(r.slice(s+1)+"00").slice(0,2);return{isNegative:i,dollars:BigInt(l),cents:BigInt(o)}}const s=["","eins","zwei","drei","vier","fünf","sechs","sieben","acht","neun"],l="ein",o=["zehn","elf","zwölf","dreizehn","vierzehn","fünfzehn","sechzehn","siebzehn","achtzehn","neunzehn"],u=["","","zwanzig","dreißig","vierzig","fünfzig","sechzig","siebzig","achtzig","neunzig"],c=["tausend","Million","Milliarde","Billion","Billiarde","Trillion","Trilliarde","Quadrillion","Quadrilliarde"],a=["tausend","Millionen","Milliarden","Billionen","Billiarden","Trillionen","Trilliarden","Quadrillionen","Quadrilliarden"],f="hundert",g="null",h="minus",d=["","erste","zweite","dritte","vierte","fünfte","sechste","siebte","achte","neunte"],b=["zehnte","elfte","zwölfte","dreizehnte","vierzehnte","fünfzehnte","sechzehnte","siebzehnte","achtzehnte","neunzehnte"],w=["","","zwanzigste","dreißigste","vierzigste","fünfzigste","sechzigste","siebzigste","achtzigste","neunzigste"],m="ste";function v(e){if(0===e)return"";const n=e%10,t=Math.trunc(e/10)%10,r=Math.trunc(e/100);let i="";return r>0&&(i+=(1===r?l:s[r])+f),1===t?i+=o[n]:t>=2&&n>0?i+=(1===n?l:s[n])+"und"+u[t]:t>=2?i+=u[t]:n>0&&(i+=s[n]),i}function p(e){if(0===e)return"";if(1===e)return l;const n=e%10,t=Math.trunc(e/10)%10,r=Math.trunc(e/100);let i="";return r>0&&(i+=(1===r?l:s[r])+f),1===t?i+=o[n]:t>=2&&n>0?i+=(1===n?l:s[n])+"und"+u[t]:t>=2?i+=u[t]:(n>0&&r>0||n>0)&&(i+=s[n]),i}function N(e){if(0n===e)return g;if(e<1000n)return v(Number(e));if(e<1000000n){const n=Number(e/1000n),t=Number(e%1000n);let r=p(n)+c[0];return t>0&&(r+=v(t)),r}return function(e){const n=e.toString(),t=n.length,r=[],i=t%3;let s=0;for(i>0&&(r.push(Number(n.slice(0,i))),s=i);s<t;)r.push(Number(n.slice(s,s+3))),s+=3;const l=[];let o=r.length-1;for(let e=0;e<r.length;e++){const n=r[e];if(0!==n)if(0===o)l.push({words:v(n),isScale:!1,scaleLevel:0});else if(1===o){const e=p(n);l.push({words:e+c[0],isScale:!1,scaleLevel:1})}else{let e;e=1===n?"eine":v(n);const t=1===n?c[o-1]:a[o-1];l.push({words:e,isScale:!1,scaleLevel:o}),l.push({words:t,isScale:!0,scaleLevel:o})}o--}return z(l)}(e)}function z(e){if(0===e.length)return g;let n="";for(let t=0;t<e.length;t++){const r=e[t],i=t>0?e[t-1]:null;t>0&&(r.isScale||i&&i.isScale)&&(n+=" "),n+=r.words}return n}function I(i){const{isNegative:s,integerPart:l,decimalPart:o}=function(i){const s=typeof i;if("bigint"===s)return i<0n?{isNegative:!0,integerPart:-i}:{isNegative:!1,integerPart:i};if("number"===s){if(!Number.isFinite(i))throw new RangeError("Number must be finite (NaN and Infinity are not supported)");return Number.isSafeInteger(i)?i<0?{isNegative:!0,integerPart:BigInt(-i)}:{isNegative:!1,integerPart:BigInt(i)}:r(n(i))}if("string"===s)return r(function(n){const r=n.trim();if(0===r.length||Number.isNaN(Number(r)))throw new RangeError(`Invalid number format: "${n}"`);return t(r)?e(r):r}(i));throw new TypeError(`Invalid value type: expected number, string, or bigint, received ${s}`)}(i);let u="";return s&&(u=h+" "),u+=N(l),o&&(u+=" komma "+function(e){let n="",t=0;for(;t<e.length&&"0"===e[t];)n&&(n+=" "),n+=g,t++;const r=e.slice(t);return r&&(n&&(n+=" "),n+=N(BigInt(r))),n}(o)),u}function E(e,n){if(0===e)return"";const t=e%10,r=Math.trunc(e/10)%10,i=Math.trunc(e/100);let o="";return i>0&&(o+=(1===i?l:s[i])+f),1===r?o+=b[t]:r>=2&&t>0?o+=(1===t?l:s[t])+"und"+w[r]:r>=2?o+=w[r]:t>0&&(o+=d[t]),i>0&&0===r&&0===t&&(o+=m),o}function y(n){return function(e){if(e<1000n)return E(Number(e));if(e<1000000n){const n=Number(e/1000n),t=Number(e%1000n);return 0===t?p(n)+c[0]+m:p(n)+c[0]+E(t)}return function(e){const n=e.toString(),t=n.length,r=[],i=t%3;let s=0;for(i>0&&(r.push(Number(n.slice(0,i))),s=i);s<t;)r.push(Number(n.slice(s,s+3))),s+=3;let l=0;for(let e=r.length-1;e>=0;e--)if(0!==r[e]){l=e;break}const o=[];let u=r.length-1;for(let e=0;e<r.length;e++){const n=r[e],t=e===l;if(0!==n)if(0===u)o.push({words:E(n),isScale:!1,scaleLevel:0});else if(1===u){const e=p(n);o.push(t?{words:e+c[0]+m,isScale:!1,scaleLevel:1}:{words:e+c[0],isScale:!1,scaleLevel:1})}else{let e;e=1===n?"eine":v(n);const r=1===n?c[u-1]:a[u-1];o.push({words:e,isScale:!1,scaleLevel:u}),o.push(t?{words:r+m,isScale:!0,scaleLevel:u}:{words:r,isScale:!0,scaleLevel:u})}u--}return z(o)}(e)}(function(n){const r=typeof n;if("bigint"===r){if(n<=0n)throw new RangeError("Ordinals must be positive integers");return n}if("number"===r){if(!Number.isFinite(n))throw new RangeError("Ordinals must be finite numbers");if(!Number.isInteger(n))throw new RangeError("Ordinals must be whole numbers");if(n<=0)throw new RangeError("Ordinals must be positive integers");return BigInt(n)}if("string"===r)return function(n){const r=n.trim();if(0===r.length)throw new RangeError("Ordinals cannot be empty strings");if("-"===r[0])throw new RangeError("Ordinals cannot be negative");if(r.includes("."))throw new RangeError("Ordinals must be whole numbers");if(t(r)){const n=e(r);if(n.includes("."))throw new RangeError("Ordinals must be whole numbers");const t=BigInt(n);if(t<=0n)throw new RangeError("Ordinals must be positive integers");return t}try{const e=BigInt(r);if(e<=0n)throw new RangeError("Ordinals must be positive integers");return e}catch(e){if(e instanceof RangeError)throw e;throw new RangeError(`Invalid ordinal format: "${n}"`)}}(n);throw new TypeError(`Invalid value type: expected number, string, or bigint, received ${r}`)}(n))}function B(e,t){t=function(e){if(void 0===e)return{};if(function(e){if(null===e||"object"!=typeof e)return!1;const n=Object.getPrototypeOf(e);return null===n||n===Object.prototype}(e))return e;throw new TypeError("Invalid options: expected plain object or undefined, got "+typeof e)}(t);const{isNegative:r,dollars:s,cents:o}=function(e){const t=typeof e;if("bigint"===t)return e<0n?{isNegative:!0,dollars:-e,cents:0n}:{isNegative:!1,dollars:e,cents:0n};if("number"===t){if(!Number.isFinite(e))throw new RangeError("Currency must be a finite number");return Number.isSafeInteger(e)?e<0?{isNegative:!0,dollars:BigInt(-e),cents:0n}:{isNegative:!1,dollars:BigInt(e),cents:0n}:i(n(e))}if("string"===t)return i(e);throw new TypeError(`Invalid value type: expected number, string, or bigint, received ${t}`)}(e),{and:u=!0}=t;let c="";return r&&(c=h+" "),(s>0n||0n===o)&&(c+=1n===s?l:N(s),c+=" Euro"),o>0n&&(s>0n&&(c+=u?" und ":" "),c+=1n===o?l:N(o),c+=" Cent"),c}export{I as toCardinal,B as toCurrency,y as toOrdinal};
@@ -0,0 +1,2 @@
1
+ /*! n2words/de-DE v5.0.0 | MIT License | github.com/forzagreen/n2words */
2
+ var e,n;e=this,n=function(e){"use strict";function n(e){let[n,t]=e.toLowerCase().split("e");const r=parseInt(t,10);let i="";"-"===n[0]&&(i="-",n=n.slice(1));const s=n.indexOf("."),o=-1===s?n:n.slice(0,s)+n.slice(s+1),l=(-1===s?n.length:s)+r;return l>=o.length?i+o+"0".repeat(l-o.length):l<=0?i+"0."+"0".repeat(-l)+o:i+o.slice(0,l)+"."+o.slice(l)}function t(e){const t=e.toString();return r(t)?n(t):t}function r(e){return e.includes("e")||e.includes("E")}function i(e){const n="-"===e[0];n&&(e=e.slice(1));const t=e.indexOf(".");if(-1===t)return{isNegative:n,integerPart:BigInt(e)};const r=e.slice(0,t)||"0",i=e.slice(t+1);return{isNegative:n,integerPart:BigInt(r),decimalPart:i}}function s(e){let t=e.trim();if(0===t.length||Number.isNaN(Number(t)))throw new RangeError(`Invalid currency format: "${e}"`);r(t)&&(t=n(t));const i="-"===t[0];i&&(t=t.slice(1));const s=t.indexOf(".");if(-1===s)return{isNegative:i,dollars:BigInt(t),cents:0n};const o=t.slice(0,s)||"0",l=(t.slice(s+1)+"00").slice(0,2);return{isNegative:i,dollars:BigInt(o),cents:BigInt(l)}}const o=["","eins","zwei","drei","vier","fünf","sechs","sieben","acht","neun"],l="ein",u=["zehn","elf","zwölf","dreizehn","vierzehn","fünfzehn","sechzehn","siebzehn","achtzehn","neunzehn"],c=["","","zwanzig","dreißig","vierzig","fünfzig","sechzig","siebzig","achtzig","neunzig"],a=["tausend","Million","Milliarde","Billion","Billiarde","Trillion","Trilliarde","Quadrillion","Quadrilliarde"],f=["tausend","Millionen","Milliarden","Billionen","Billiarden","Trillionen","Trilliarden","Quadrillionen","Quadrilliarden"],g="hundert",d="null",h="minus",b=["","erste","zweite","dritte","vierte","fünfte","sechste","siebte","achte","neunte"],w=["zehnte","elfte","zwölfte","dreizehnte","vierzehnte","fünfzehnte","sechzehnte","siebzehnte","achtzehnte","neunzehnte"],m=["","","zwanzigste","dreißigste","vierzigste","fünfzigste","sechzigste","siebzigste","achtzigste","neunzigste"],p="ste";function v(e){if(0===e)return"";const n=e%10,t=Math.trunc(e/10)%10,r=Math.trunc(e/100);let i="";return r>0&&(i+=(1===r?l:o[r])+g),1===t?i+=u[n]:t>=2&&n>0?i+=(1===n?l:o[n])+"und"+c[t]:t>=2?i+=c[t]:n>0&&(i+=o[n]),i}function N(e){if(0===e)return"";if(1===e)return l;const n=e%10,t=Math.trunc(e/10)%10,r=Math.trunc(e/100);let i="";return r>0&&(i+=(1===r?l:o[r])+g),1===t?i+=u[n]:t>=2&&n>0?i+=(1===n?l:o[n])+"und"+c[t]:t>=2?i+=c[t]:(n>0&&r>0||n>0)&&(i+=o[n]),i}function z(e){if(0n===e)return d;if(e<1000n)return v(Number(e));if(e<1000000n){const n=Number(e/1000n),t=Number(e%1000n);let r=N(n)+a[0];return t>0&&(r+=v(t)),r}return function(e){const n=e.toString(),t=n.length,r=[],i=t%3;let s=0;for(i>0&&(r.push(Number(n.slice(0,i))),s=i);s<t;)r.push(Number(n.slice(s,s+3))),s+=3;const o=[];let l=r.length-1;for(let e=0;e<r.length;e++){const n=r[e];if(0!==n)if(0===l)o.push({words:v(n),isScale:!1,scaleLevel:0});else if(1===l){const e=N(n);o.push({words:e+a[0],isScale:!1,scaleLevel:1})}else{let e;e=1===n?"eine":v(n);const t=1===n?a[l-1]:f[l-1];o.push({words:e,isScale:!1,scaleLevel:l}),o.push({words:t,isScale:!0,scaleLevel:l})}l--}return E(o)}(e)}function E(e){if(0===e.length)return d;let n="";for(let t=0;t<e.length;t++){const r=e[t],i=t>0?e[t-1]:null;t>0&&(r.isScale||i&&i.isScale)&&(n+=" "),n+=r.words}return n}function I(e,n){if(0===e)return"";const t=e%10,r=Math.trunc(e/10)%10,i=Math.trunc(e/100);let s="";return i>0&&(s+=(1===i?l:o[i])+g),1===r?s+=w[t]:r>=2&&t>0?s+=(1===t?l:o[t])+"und"+m[r]:r>=2?s+=m[r]:t>0&&(s+=b[t]),i>0&&0===r&&0===t&&(s+=p),s}const y={deDE:function(e){return function(e){if(e<1000n)return I(Number(e));if(e<1000000n){const n=Number(e/1000n),t=Number(e%1000n);return 0===t?N(n)+a[0]+p:N(n)+a[0]+I(t)}return function(e){const n=e.toString(),t=n.length,r=[],i=t%3;let s=0;for(i>0&&(r.push(Number(n.slice(0,i))),s=i);s<t;)r.push(Number(n.slice(s,s+3))),s+=3;let o=0;for(let e=r.length-1;e>=0;e--)if(0!==r[e]){o=e;break}const l=[];let u=r.length-1;for(let e=0;e<r.length;e++){const n=r[e],t=e===o;if(0!==n)if(0===u)l.push({words:I(n),isScale:!1,scaleLevel:0});else if(1===u){const e=N(n);l.push(t?{words:e+a[0]+p,isScale:!1,scaleLevel:1}:{words:e+a[0],isScale:!1,scaleLevel:1})}else{let e;e=1===n?"eine":v(n);const r=1===n?a[u-1]:f[u-1];l.push({words:e,isScale:!1,scaleLevel:u}),l.push(t?{words:r+p,isScale:!0,scaleLevel:u}:{words:r,isScale:!0,scaleLevel:u})}u--}return E(l)}(e)}(function(e){const t=typeof e;if("bigint"===t){if(e<=0n)throw new RangeError("Ordinals must be positive integers");return e}if("number"===t){if(!Number.isFinite(e))throw new RangeError("Ordinals must be finite numbers");if(!Number.isInteger(e))throw new RangeError("Ordinals must be whole numbers");if(e<=0)throw new RangeError("Ordinals must be positive integers");return BigInt(e)}if("string"===t)return function(e){const t=e.trim();if(0===t.length)throw new RangeError("Ordinals cannot be empty strings");if("-"===t[0])throw new RangeError("Ordinals cannot be negative");if(t.includes("."))throw new RangeError("Ordinals must be whole numbers");if(r(t)){const e=n(t);if(e.includes("."))throw new RangeError("Ordinals must be whole numbers");const r=BigInt(e);if(r<=0n)throw new RangeError("Ordinals must be positive integers");return r}try{const e=BigInt(t);if(e<=0n)throw new RangeError("Ordinals must be positive integers");return e}catch(n){if(n instanceof RangeError)throw n;throw new RangeError(`Invalid ordinal format: "${e}"`)}}(e);throw new TypeError(`Invalid value type: expected number, string, or bigint, received ${t}`)}(e))}};e.currency={deDE:function(e,n){n=function(e){if(void 0===e)return{};if(function(e){if(null===e||"object"!=typeof e)return!1;const n=Object.getPrototypeOf(e);return null===n||n===Object.prototype}(e))return e;throw new TypeError("Invalid options: expected plain object or undefined, got "+typeof e)}(n);const{isNegative:r,dollars:i,cents:o}=function(e){const n=typeof e;if("bigint"===n)return e<0n?{isNegative:!0,dollars:-e,cents:0n}:{isNegative:!1,dollars:e,cents:0n};if("number"===n){if(!Number.isFinite(e))throw new RangeError("Currency must be a finite number");return Number.isSafeInteger(e)?e<0?{isNegative:!0,dollars:BigInt(-e),cents:0n}:{isNegative:!1,dollars:BigInt(e),cents:0n}:s(t(e))}if("string"===n)return s(e);throw new TypeError(`Invalid value type: expected number, string, or bigint, received ${n}`)}(e),{and:u=!0}=n;let c="";return r&&(c=h+" "),(i>0n||0n===o)&&(c+=1n===i?l:z(i),c+=" Euro"),o>0n&&(i>0n&&(c+=u?" und ":" "),c+=1n===o?l:z(o),c+=" Cent"),c}},e.deDE=function(e){const{isNegative:s,integerPart:o,decimalPart:l}=function(e){const s=typeof e;if("bigint"===s)return e<0n?{isNegative:!0,integerPart:-e}:{isNegative:!1,integerPart:e};if("number"===s){if(!Number.isFinite(e))throw new RangeError("Number must be finite (NaN and Infinity are not supported)");return Number.isSafeInteger(e)?e<0?{isNegative:!0,integerPart:BigInt(-e)}:{isNegative:!1,integerPart:BigInt(e)}:i(t(e))}if("string"===s)return i(function(e){const t=e.trim();if(0===t.length||Number.isNaN(Number(t)))throw new RangeError(`Invalid number format: "${e}"`);return r(t)?n(t):t}(e));throw new TypeError(`Invalid value type: expected number, string, or bigint, received ${s}`)}(e);let u="";return s&&(u=h+" "),u+=z(o),l&&(u+=" komma "+function(e){let n="",t=0;for(;t<e.length&&"0"===e[t];)n&&(n+=" "),n+=d,t++;const r=e.slice(t);return r&&(n&&(n+=" "),n+=z(BigInt(r))),n}(l)),u},e.ordinal=y},"object"==typeof exports&&"undefined"!=typeof module?n(exports):"function"==typeof define&&define.amd?define(["exports"],n):n((e="undefined"!=typeof globalThis?globalThis:e||self).n2words=e.n2words||{});
package/dist/el-GR.js ADDED
@@ -0,0 +1,2 @@
1
+ /*! n2words/el-GR v5.0.0 | MIT License | github.com/forzagreen/n2words */
2
+ function n(n){let[e,r]=n.toLowerCase().split("e");const t=parseInt(r,10);let i="";"-"===e[0]&&(i="-",e=e.slice(1));const s=e.indexOf("."),o=-1===s?e:e.slice(0,s)+e.slice(s+1),u=(-1===s?e.length:s)+t;return u>=o.length?i+o+"0".repeat(u-o.length):u<=0?i+"0."+"0".repeat(-u)+o:i+o.slice(0,u)+"."+o.slice(u)}function e(e){const t=e.toString();return r(t)?n(t):t}function r(n){return n.includes("e")||n.includes("E")}function t(n){const e="-"===n[0];e&&(n=n.slice(1));const r=n.indexOf(".");if(-1===r)return{isNegative:e,integerPart:BigInt(n)};const t=n.slice(0,r)||"0",i=n.slice(r+1);return{isNegative:e,integerPart:BigInt(t),decimalPart:i}}function i(e){let t=e.trim();if(0===t.length||Number.isNaN(Number(t)))throw new RangeError(`Invalid currency format: "${e}"`);r(t)&&(t=n(t));const i="-"===t[0];i&&(t=t.slice(1));const s=t.indexOf(".");if(-1===s)return{isNegative:i,dollars:BigInt(t),cents:0n};const o=t.slice(0,s)||"0",u=(t.slice(s+1)+"00").slice(0,2);return{isNegative:i,dollars:BigInt(o),cents:BigInt(u)}}const s=["","ένα","δύο","τρία","τέσσερα","πέντε","έξι","επτά","οκτώ","εννέα"],o=["δέκα","έντεκα","δώδεκα","δεκατρία","δεκατέσσερα","δεκαπέντε","δεκαέξι","δεκαεπτά","δεκαοκτώ","δεκαεννέα"],u=["","","είκοσι","τριάντα","σαράντα","πενήντα","εξήντα","εβδομήντα","ογδόντα","ενενήντα"],c=["","εκατό","διακόσια","τριακόσια","τετρακόσια","πεντακόσια","εξακόσια","επτακόσια","οκτακόσια","εννιακόσια"],a="χίλια",f="μηδέν",g="μείον",l=["εκατομμύριο","δισεκατομμύριο","τρισεκατομμύριο"],m=["","πρώτος","δεύτερος","τρίτος","τέταρτος","πέμπτος","έκτος","έβδομος","όγδοος","ένατος"],b=["δέκατος","ενδέκατος","δωδέκατος","δέκατος τρίτος","δέκατος τέταρτος","δέκατος πέμπτος","δέκατος έκτος","δέκατος έβδομος","δέκατος όγδοος","δέκατος ένατος"],h=["","","εικοστός","τριακοστός","τεσσαρακοστός","πεντηκοστός","εξηκοστός","εβδομηκοστός","ογδοηκοστός","ενενηκοστός"],N=["","εκατοστός","διακοσιοστός","τριακοσιοστός","τετρακοσιοστός","πεντακοσιοστός","εξακοσιοστός","επτακοσιοστός","οκτακοσιοστός","εννιακοσιοστός"],d="χιλιοστός",w="εκατομμυριοστός",p=["ευρώ","ευρώ"],v=["λεπτό","λεπτά"];function I(n){if(0===n)return"";const e=n%10,r=Math.trunc(n/10)%10,t=Math.trunc(n/100),i=[];t>0&&i.push(c[t]);const a=n%100;return 0===a||i.push(a<10?s[e]:a<20?o[e]:0===e?u[r]:u[r]+" "+s[e]),i.join(" ")}function E(n){if(0n===n)return f;if(n<1000n)return I(Number(n));if(n<1000000n){const e=Number(n/1000n),r=Number(n%1000n);let t;return t=1===e?a:I(e)+" "+a,r>0&&(t+=" "+I(r)),t}return function(n){const e=n.toString(),r=e.length,t=[],i=r%3;let s=0;for(i>0&&(t.push(Number(e.slice(0,i))),s=i);s<r;)t.push(Number(e.slice(s,s+3))),s+=3;const o=[];let u=t.length-1;for(let n=0;n<t.length;n++){const e=t[n];if(0!==e){const n=I(e);if(0===u)o.push(n);else if(1===u)o.push(1===e?a:n+" "+a);else{const r=l[u-2];o.push(1===e?r:n+" "+r)}}u--}return o.join(" ")}(n)}function R(i){const{isNegative:o,integerPart:u,decimalPart:c}=function(i){const s=typeof i;if("bigint"===s)return i<0n?{isNegative:!0,integerPart:-i}:{isNegative:!1,integerPart:i};if("number"===s){if(!Number.isFinite(i))throw new RangeError("Number must be finite (NaN and Infinity are not supported)");return Number.isSafeInteger(i)?i<0?{isNegative:!0,integerPart:BigInt(-i)}:{isNegative:!1,integerPart:BigInt(i)}:t(e(i))}if("string"===s)return t(function(e){const t=e.trim();if(0===t.length||Number.isNaN(Number(t)))throw new RangeError(`Invalid number format: "${e}"`);return r(t)?n(t):t}(i));throw new TypeError(`Invalid value type: expected number, string, or bigint, received ${s}`)}(i);let a="";return o&&(a=g+" "),a+=E(u),c&&(a+=" κόμμα "+function(n){const e=[];for(const r of n){const n=parseInt(r,10);e.push(0===n?f:s[n])}return e.join(" ")}(c)),a}function y(n){if(0===n)return"";if(n<10)return m[n];if(n<20)return b[n-10];const e=n%10,r=Math.trunc(n/10);return 0===e?h[r]:h[r]+" "+m[e]}function O(n){if(0n===n)return"";if(1n===n)return m[1];if(n<100n)return y(Number(n));if(n<1000n){const e=Number(n/100n),r=Number(n%100n);return 0===r?N[e]:c[e]+" "+y(r)}if(n<1000000n){const e=Number(n/1000n),r=Number(n%1000n);if(0===r)return 1===e?d:I(e)+" "+d;let t;if(t=1===e?a:I(e)+" "+a,r<100)return t+" "+y(r);const i=Math.trunc(r/100),s=r%100;return 0===s?t+" "+N[i]:t+" "+c[i]+" "+y(s)}const e=Number(n/1000000n),r=n%1000000n;if(0n===r)return 1===e?w:I(e)+" "+w;let t;return t=1===e?l[0]:I(e)+" "+l[0],t+" "+O(r)}function B(e){return O(function(e){const t=typeof e;if("bigint"===t){if(e<=0n)throw new RangeError("Ordinals must be positive integers");return e}if("number"===t){if(!Number.isFinite(e))throw new RangeError("Ordinals must be finite numbers");if(!Number.isInteger(e))throw new RangeError("Ordinals must be whole numbers");if(e<=0)throw new RangeError("Ordinals must be positive integers");return BigInt(e)}if("string"===t)return function(e){const t=e.trim();if(0===t.length)throw new RangeError("Ordinals cannot be empty strings");if("-"===t[0])throw new RangeError("Ordinals cannot be negative");if(t.includes("."))throw new RangeError("Ordinals must be whole numbers");if(r(t)){const e=n(t);if(e.includes("."))throw new RangeError("Ordinals must be whole numbers");const r=BigInt(e);if(r<=0n)throw new RangeError("Ordinals must be positive integers");return r}try{const n=BigInt(t);if(n<=0n)throw new RangeError("Ordinals must be positive integers");return n}catch(n){if(n instanceof RangeError)throw n;throw new RangeError(`Invalid ordinal format: "${e}"`)}}(e);throw new TypeError(`Invalid value type: expected number, string, or bigint, received ${t}`)}(e))}function P(n){const{isNegative:r,dollars:t,cents:s}=function(n){const r=typeof n;if("bigint"===r)return n<0n?{isNegative:!0,dollars:-n,cents:0n}:{isNegative:!1,dollars:n,cents:0n};if("number"===r){if(!Number.isFinite(n))throw new RangeError("Currency must be a finite number");return Number.isSafeInteger(n)?n<0?{isNegative:!0,dollars:BigInt(-n),cents:0n}:{isNegative:!1,dollars:BigInt(n),cents:0n}:i(e(n))}if("string"===r)return i(n);throw new TypeError(`Invalid value type: expected number, string, or bigint, received ${r}`)}(n),o=[];if(r&&o.push(g),t>0n||0n===s){const n=E(t);o.push(n+" "+(1n===t?p[0]:p[1]))}if(s>0n){const n=E(s);o.push(n+" "+(1n===s?v[0]:v[1]))}return o.join(" ")}export{R as toCardinal,P as toCurrency,B as toOrdinal};
@@ -0,0 +1,2 @@
1
+ /*! n2words/el-GR v5.0.0 | MIT License | github.com/forzagreen/n2words */
2
+ var n,e;n=this,e=function(n){"use strict";function e(n){let[e,r]=n.toLowerCase().split("e");const t=parseInt(r,10);let i="";"-"===e[0]&&(i="-",e=e.slice(1));const s=e.indexOf("."),o=-1===s?e:e.slice(0,s)+e.slice(s+1),u=(-1===s?e.length:s)+t;return u>=o.length?i+o+"0".repeat(u-o.length):u<=0?i+"0."+"0".repeat(-u)+o:i+o.slice(0,u)+"."+o.slice(u)}function r(n){const r=n.toString();return t(r)?e(r):r}function t(n){return n.includes("e")||n.includes("E")}function i(n){const e="-"===n[0];e&&(n=n.slice(1));const r=n.indexOf(".");if(-1===r)return{isNegative:e,integerPart:BigInt(n)};const t=n.slice(0,r)||"0",i=n.slice(r+1);return{isNegative:e,integerPart:BigInt(t),decimalPart:i}}function s(n){let r=n.trim();if(0===r.length||Number.isNaN(Number(r)))throw new RangeError(`Invalid currency format: "${n}"`);t(r)&&(r=e(r));const i="-"===r[0];i&&(r=r.slice(1));const s=r.indexOf(".");if(-1===s)return{isNegative:i,dollars:BigInt(r),cents:0n};const o=r.slice(0,s)||"0",u=(r.slice(s+1)+"00").slice(0,2);return{isNegative:i,dollars:BigInt(o),cents:BigInt(u)}}const o=["","ένα","δύο","τρία","τέσσερα","πέντε","έξι","επτά","οκτώ","εννέα"],u=["δέκα","έντεκα","δώδεκα","δεκατρία","δεκατέσσερα","δεκαπέντε","δεκαέξι","δεκαεπτά","δεκαοκτώ","δεκαεννέα"],c=["","","είκοσι","τριάντα","σαράντα","πενήντα","εξήντα","εβδομήντα","ογδόντα","ενενήντα"],a=["","εκατό","διακόσια","τριακόσια","τετρακόσια","πεντακόσια","εξακόσια","επτακόσια","οκτακόσια","εννιακόσια"],f="χίλια",l="μηδέν",g="μείον",b=["εκατομμύριο","δισεκατομμύριο","τρισεκατομμύριο"],m=["","πρώτος","δεύτερος","τρίτος","τέταρτος","πέμπτος","έκτος","έβδομος","όγδοος","ένατος"],d=["δέκατος","ενδέκατος","δωδέκατος","δέκατος τρίτος","δέκατος τέταρτος","δέκατος πέμπτος","δέκατος έκτος","δέκατος έβδομος","δέκατος όγδοος","δέκατος ένατος"],h=["","","εικοστός","τριακοστός","τεσσαρακοστός","πεντηκοστός","εξηκοστός","εβδομηκοστός","ογδοηκοστός","ενενηκοστός"],w=["","εκατοστός","διακοσιοστός","τριακοσιοστός","τετρακοσιοστός","πεντακοσιοστός","εξακοσιοστός","επτακοσιοστός","οκτακοσιοστός","εννιακοσιοστός"],p="χιλιοστός",N="εκατομμυριοστός",v=["ευρώ","ευρώ"],I=["λεπτό","λεπτά"];function E(n){if(0===n)return"";const e=n%10,r=Math.trunc(n/10)%10,t=Math.trunc(n/100),i=[];t>0&&i.push(a[t]);const s=n%100;return 0===s||i.push(s<10?o[e]:s<20?u[e]:0===e?c[r]:c[r]+" "+o[e]),i.join(" ")}function y(n){if(0n===n)return l;if(n<1000n)return E(Number(n));if(n<1000000n){const e=Number(n/1000n),r=Number(n%1000n);let t;return t=1===e?f:E(e)+" "+f,r>0&&(t+=" "+E(r)),t}return function(n){const e=n.toString(),r=e.length,t=[],i=r%3;let s=0;for(i>0&&(t.push(Number(e.slice(0,i))),s=i);s<r;)t.push(Number(e.slice(s,s+3))),s+=3;const o=[];let u=t.length-1;for(let n=0;n<t.length;n++){const e=t[n];if(0!==e){const n=E(e);if(0===u)o.push(n);else if(1===u)o.push(1===e?f:n+" "+f);else{const r=b[u-2];o.push(1===e?r:n+" "+r)}}u--}return o.join(" ")}(n)}function R(n){if(0===n)return"";if(n<10)return m[n];if(n<20)return d[n-10];const e=n%10,r=Math.trunc(n/10);return 0===e?h[r]:h[r]+" "+m[e]}function O(n){if(0n===n)return"";if(1n===n)return m[1];if(n<100n)return R(Number(n));if(n<1000n){const e=Number(n/100n),r=Number(n%100n);return 0===r?w[e]:a[e]+" "+R(r)}if(n<1000000n){const e=Number(n/1000n),r=Number(n%1000n);if(0===r)return 1===e?p:E(e)+" "+p;let t;if(t=1===e?f:E(e)+" "+f,r<100)return t+" "+R(r);const i=Math.trunc(r/100),s=r%100;return 0===s?t+" "+w[i]:t+" "+a[i]+" "+R(s)}const e=Number(n/1000000n),r=n%1000000n;if(0n===r)return 1===e?N:E(e)+" "+N;let t;return t=1===e?b[0]:E(e)+" "+b[0],t+" "+O(r)}const B={elGR:function(n){return O(function(n){const r=typeof n;if("bigint"===r){if(n<=0n)throw new RangeError("Ordinals must be positive integers");return n}if("number"===r){if(!Number.isFinite(n))throw new RangeError("Ordinals must be finite numbers");if(!Number.isInteger(n))throw new RangeError("Ordinals must be whole numbers");if(n<=0)throw new RangeError("Ordinals must be positive integers");return BigInt(n)}if("string"===r)return function(n){const r=n.trim();if(0===r.length)throw new RangeError("Ordinals cannot be empty strings");if("-"===r[0])throw new RangeError("Ordinals cannot be negative");if(r.includes("."))throw new RangeError("Ordinals must be whole numbers");if(t(r)){const n=e(r);if(n.includes("."))throw new RangeError("Ordinals must be whole numbers");const t=BigInt(n);if(t<=0n)throw new RangeError("Ordinals must be positive integers");return t}try{const n=BigInt(r);if(n<=0n)throw new RangeError("Ordinals must be positive integers");return n}catch(e){if(e instanceof RangeError)throw e;throw new RangeError(`Invalid ordinal format: "${n}"`)}}(n);throw new TypeError(`Invalid value type: expected number, string, or bigint, received ${r}`)}(n))}};n.currency={elGR:function(n){const{isNegative:e,dollars:t,cents:i}=function(n){const e=typeof n;if("bigint"===e)return n<0n?{isNegative:!0,dollars:-n,cents:0n}:{isNegative:!1,dollars:n,cents:0n};if("number"===e){if(!Number.isFinite(n))throw new RangeError("Currency must be a finite number");return Number.isSafeInteger(n)?n<0?{isNegative:!0,dollars:BigInt(-n),cents:0n}:{isNegative:!1,dollars:BigInt(n),cents:0n}:s(r(n))}if("string"===e)return s(n);throw new TypeError(`Invalid value type: expected number, string, or bigint, received ${e}`)}(n),o=[];if(e&&o.push(g),t>0n||0n===i){const n=y(t);o.push(n+" "+(1n===t?v[0]:v[1]))}if(i>0n){const n=y(i);o.push(n+" "+(1n===i?I[0]:I[1]))}return o.join(" ")}},n.elGR=function(n){const{isNegative:s,integerPart:u,decimalPart:c}=function(n){const s=typeof n;if("bigint"===s)return n<0n?{isNegative:!0,integerPart:-n}:{isNegative:!1,integerPart:n};if("number"===s){if(!Number.isFinite(n))throw new RangeError("Number must be finite (NaN and Infinity are not supported)");return Number.isSafeInteger(n)?n<0?{isNegative:!0,integerPart:BigInt(-n)}:{isNegative:!1,integerPart:BigInt(n)}:i(r(n))}if("string"===s)return i(function(n){const r=n.trim();if(0===r.length||Number.isNaN(Number(r)))throw new RangeError(`Invalid number format: "${n}"`);return t(r)?e(r):r}(n));throw new TypeError(`Invalid value type: expected number, string, or bigint, received ${s}`)}(n);let a="";return s&&(a=g+" "),a+=y(u),c&&(a+=" κόμμα "+function(n){const e=[];for(const r of n){const n=parseInt(r,10);e.push(0===n?l:o[n])}return e.join(" ")}(c)),a},n.ordinal=B},"object"==typeof exports&&"undefined"!=typeof module?e(exports):"function"==typeof define&&define.amd?define(["exports"],e):e((n="undefined"!=typeof globalThis?globalThis:n||self).n2words=n.n2words||{});
package/dist/en-AU.js ADDED
@@ -0,0 +1,2 @@
1
+ /*! n2words/en-AU v5.0.0 | MIT License | github.com/forzagreen/n2words */
2
+ function e(e){let[n,t]=e.toLowerCase().split("e");const r=parseInt(t,10);let i="";"-"===n[0]&&(i="-",n=n.slice(1));const o=n.indexOf("."),s=-1===o?n:n.slice(0,o)+n.slice(o+1),u=(-1===o?n.length:o)+r;return u>=s.length?i+s+"0".repeat(u-s.length):u<=0?i+"0."+"0".repeat(-u)+s:i+s.slice(0,u)+"."+s.slice(u)}function n(n){const r=n.toString();return t(r)?e(r):r}function t(e){return e.includes("e")||e.includes("E")}function r(e){const n="-"===e[0];n&&(e=e.slice(1));const t=e.indexOf(".");if(-1===t)return{isNegative:n,integerPart:BigInt(e)};const r=e.slice(0,t)||"0",i=e.slice(t+1);return{isNegative:n,integerPart:BigInt(r),decimalPart:i}}function i(n){let r=n.trim();if(0===r.length||Number.isNaN(Number(r)))throw new RangeError(`Invalid currency format: "${n}"`);t(r)&&(r=e(r));const i="-"===r[0];i&&(r=r.slice(1));const o=r.indexOf(".");if(-1===o)return{isNegative:i,dollars:BigInt(r),cents:0n};const s=r.slice(0,o)||"0",u=(r.slice(o+1)+"00").slice(0,2);return{isNegative:i,dollars:BigInt(s),cents:BigInt(u)}}const o=["","one","two","three","four","five","six","seven","eight","nine"],s=["ten","eleven","twelve","thirteen","fourteen","fifteen","sixteen","seventeen","eighteen","nineteen"],u=["","","twenty","thirty","forty","fifty","sixty","seventy","eighty","ninety"],l=["thousand","million","billion","trillion","quadrillion","quintillion","sextillion","septillion","octillion","nonillion","decillion","undecillion","duodecillion","tredecillion","quattuordecillion","quindecillion","sexdecillion","septendecillion","octodecillion","novemdecillion","vigintillion"],c="hundred",a="zero",f="minus",d=["","first","second","third","fourth","fifth","sixth","seventh","eighth","ninth"],g=["tenth","eleventh","twelfth","thirteenth","fourteenth","fifteenth","sixteenth","seventeenth","eighteenth","nineteenth"],h=["","","twentieth","thirtieth","fortieth","fiftieth","sixtieth","seventieth","eightieth","ninetieth"],w={word:"",hasHundred:!1};function b(e){if(0===e)return w.word="",w.hasHundred=!1,w;const n=e%10,t=Math.trunc(e/10)%10,r=Math.trunc(e/100);let i="";return 1===t?i=s[n]:t>=2?i=n>0?u[t]+"-"+o[n]:u[t]:n>0&&(i=o[n]),r>0?(w.word=i?o[r]+" "+c+" and "+i:o[r]+" "+c,w.hasHundred=!0):(w.word=i,w.hasHundred=!1),w}function m(e){if(0n===e)return a;if(e<1000n)return b(Number(e)).word;if(e<1000000n){const n=Number(e/1000n),t=Number(e%1000n),{word:r}=b(n);let i=r+" "+l[0];if(t>0){const{word:e,hasHundred:n}=b(t);i+=n?" "+e:" and "+e}return i}return function(e){const n=[];let t=e;for(;t>0n;)n.push(Number(t%1000n)),t/=1000n;let r=-1;for(let e=0;e<n.length;e++)if(0!==n[e]){r=e;break}let i="",o=!1;for(let e=n.length-1;e>=0;e--){const t=n[e];if(0===t)continue;const{word:s,hasHundred:u}=b(t);i&&e===r&&o&&!u&&(i+=" and"),i&&(i+=" "),i+=s,e>0?(i+=" "+l[e-1],o=!0):o=!1}return i}(e)}function v(i){const{isNegative:o,integerPart:s,decimalPart:u}=function(i){const o=typeof i;if("bigint"===o)return i<0n?{isNegative:!0,integerPart:-i}:{isNegative:!1,integerPart:i};if("number"===o){if(!Number.isFinite(i))throw new RangeError("Number must be finite (NaN and Infinity are not supported)");return Number.isSafeInteger(i)?i<0?{isNegative:!0,integerPart:BigInt(-i)}:{isNegative:!1,integerPart:BigInt(i)}:r(n(i))}if("string"===o)return r(function(n){const r=n.trim();if(0===r.length||Number.isNaN(Number(r)))throw new RangeError(`Invalid number format: "${n}"`);return t(r)?e(r):r}(i));throw new TypeError(`Invalid value type: expected number, string, or bigint, received ${o}`)}(i);let l="";return o&&(l=f+" "),l+=m(s),u&&(l+=" point "+function(e){let n="",t=0;for(;t<e.length&&"0"===e[t];)n&&(n+=" "),n+=a,t++;const r=e.slice(t);return r&&(n&&(n+=" "),n+=m(BigInt(r))),n}(u)),l}function N(e){const n=e%10,t=Math.trunc(e/10)%10,r=Math.trunc(e/100);let i="";return 1===t?i=g[n]:t>=2?i=n>0?u[t]+"-"+d[n]:h[t]:n>0&&(i=d[n]),r>0?i?o[r]+" "+c+" "+i:o[r]+" hundredth":i}function p(n){return function(e){if(e<1000n)return N(Number(e));if(e<1000000n){const n=Number(e/1000n),t=Number(e%1000n);if(0===t)return b(n).word+" "+l[0]+"th";const{word:r}=b(n);return r+" "+l[0]+" "+N(t)}return function(e){const n=[];let t=e;for(;t>0n;)n.push(Number(t%1000n)),t/=1000n;let r=0;for(let e=0;e<n.length;e++)if(0!==n[e]){r=e;break}let i="";for(let e=n.length-1;e>=0;e--){const t=n[e];0!==t&&(i&&(i+=" "),e===r?i+=0===e?N(t):b(t).word+" "+l[e-1]+"th":(i+=b(t).word,e>0&&(i+=" "+l[e-1])))}return i}(e)}(function(n){const r=typeof n;if("bigint"===r){if(n<=0n)throw new RangeError("Ordinals must be positive integers");return n}if("number"===r){if(!Number.isFinite(n))throw new RangeError("Ordinals must be finite numbers");if(!Number.isInteger(n))throw new RangeError("Ordinals must be whole numbers");if(n<=0)throw new RangeError("Ordinals must be positive integers");return BigInt(n)}if("string"===r)return function(n){const r=n.trim();if(0===r.length)throw new RangeError("Ordinals cannot be empty strings");if("-"===r[0])throw new RangeError("Ordinals cannot be negative");if(r.includes("."))throw new RangeError("Ordinals must be whole numbers");if(t(r)){const n=e(r);if(n.includes("."))throw new RangeError("Ordinals must be whole numbers");const t=BigInt(n);if(t<=0n)throw new RangeError("Ordinals must be positive integers");return t}try{const e=BigInt(r);if(e<=0n)throw new RangeError("Ordinals must be positive integers");return e}catch(e){if(e instanceof RangeError)throw e;throw new RangeError(`Invalid ordinal format: "${n}"`)}}(n);throw new TypeError(`Invalid value type: expected number, string, or bigint, received ${r}`)}(n))}function y(e,t){t=function(e){if(void 0===e)return{};if(function(e){if(null===e||"object"!=typeof e)return!1;const n=Object.getPrototypeOf(e);return null===n||n===Object.prototype}(e))return e;throw new TypeError("Invalid options: expected plain object or undefined, got "+typeof e)}(t);const{isNegative:r,dollars:o,cents:s}=function(e){const t=typeof e;if("bigint"===t)return e<0n?{isNegative:!0,dollars:-e,cents:0n}:{isNegative:!1,dollars:e,cents:0n};if("number"===t){if(!Number.isFinite(e))throw new RangeError("Currency must be a finite number");return Number.isSafeInteger(e)?e<0?{isNegative:!0,dollars:BigInt(-e),cents:0n}:{isNegative:!1,dollars:BigInt(e),cents:0n}:i(n(e))}if("string"===t)return i(e);throw new TypeError(`Invalid value type: expected number, string, or bigint, received ${t}`)}(e),{and:u=!0}=t;let l="";return r&&(l=f+" "),(o>0n||0n===s)&&(l+=m(o),l+=" "+(1n===o?"dollar":"dollars")),s>0n&&(o>0n&&(l+=u?" and ":" "),l+=m(s),l+=" "+(1n===s?"cent":"cents")),l}export{v as toCardinal,y as toCurrency,p as toOrdinal};
@@ -0,0 +1,2 @@
1
+ /*! n2words/en-AU v5.0.0 | MIT License | github.com/forzagreen/n2words */
2
+ var e,n;e=this,n=function(e){"use strict";function n(e){let[n,t]=e.toLowerCase().split("e");const r=parseInt(t,10);let i="";"-"===n[0]&&(i="-",n=n.slice(1));const o=n.indexOf("."),s=-1===o?n:n.slice(0,o)+n.slice(o+1),u=(-1===o?n.length:o)+r;return u>=s.length?i+s+"0".repeat(u-s.length):u<=0?i+"0."+"0".repeat(-u)+s:i+s.slice(0,u)+"."+s.slice(u)}function t(e){const t=e.toString();return r(t)?n(t):t}function r(e){return e.includes("e")||e.includes("E")}function i(e){const n="-"===e[0];n&&(e=e.slice(1));const t=e.indexOf(".");if(-1===t)return{isNegative:n,integerPart:BigInt(e)};const r=e.slice(0,t)||"0",i=e.slice(t+1);return{isNegative:n,integerPart:BigInt(r),decimalPart:i}}function o(e){let t=e.trim();if(0===t.length||Number.isNaN(Number(t)))throw new RangeError(`Invalid currency format: "${e}"`);r(t)&&(t=n(t));const i="-"===t[0];i&&(t=t.slice(1));const o=t.indexOf(".");if(-1===o)return{isNegative:i,dollars:BigInt(t),cents:0n};const s=t.slice(0,o)||"0",u=(t.slice(o+1)+"00").slice(0,2);return{isNegative:i,dollars:BigInt(s),cents:BigInt(u)}}const s=["","one","two","three","four","five","six","seven","eight","nine"],u=["ten","eleven","twelve","thirteen","fourteen","fifteen","sixteen","seventeen","eighteen","nineteen"],l=["","","twenty","thirty","forty","fifty","sixty","seventy","eighty","ninety"],c=["thousand","million","billion","trillion","quadrillion","quintillion","sextillion","septillion","octillion","nonillion","decillion","undecillion","duodecillion","tredecillion","quattuordecillion","quindecillion","sexdecillion","septendecillion","octodecillion","novemdecillion","vigintillion"],f="hundred",a="zero",d="minus",g=["","first","second","third","fourth","fifth","sixth","seventh","eighth","ninth"],h=["tenth","eleventh","twelfth","thirteenth","fourteenth","fifteenth","sixteenth","seventeenth","eighteenth","nineteenth"],w=["","","twentieth","thirtieth","fortieth","fiftieth","sixtieth","seventieth","eightieth","ninetieth"],b={word:"",hasHundred:!1};function m(e){if(0===e)return b.word="",b.hasHundred=!1,b;const n=e%10,t=Math.trunc(e/10)%10,r=Math.trunc(e/100);let i="";return 1===t?i=u[n]:t>=2?i=n>0?l[t]+"-"+s[n]:l[t]:n>0&&(i=s[n]),r>0?(b.word=i?s[r]+" "+f+" and "+i:s[r]+" "+f,b.hasHundred=!0):(b.word=i,b.hasHundred=!1),b}function v(e){if(0n===e)return a;if(e<1000n)return m(Number(e)).word;if(e<1000000n){const n=Number(e/1000n),t=Number(e%1000n),{word:r}=m(n);let i=r+" "+c[0];if(t>0){const{word:e,hasHundred:n}=m(t);i+=n?" "+e:" and "+e}return i}return function(e){const n=[];let t=e;for(;t>0n;)n.push(Number(t%1000n)),t/=1000n;let r=-1;for(let e=0;e<n.length;e++)if(0!==n[e]){r=e;break}let i="",o=!1;for(let e=n.length-1;e>=0;e--){const t=n[e];if(0===t)continue;const{word:s,hasHundred:u}=m(t);i&&e===r&&o&&!u&&(i+=" and"),i&&(i+=" "),i+=s,e>0?(i+=" "+c[e-1],o=!0):o=!1}return i}(e)}function p(e){const n=e%10,t=Math.trunc(e/10)%10,r=Math.trunc(e/100);let i="";return 1===t?i=h[n]:t>=2?i=n>0?l[t]+"-"+g[n]:w[t]:n>0&&(i=g[n]),r>0?i?s[r]+" "+f+" "+i:s[r]+" hundredth":i}const N={enAU:function(e){return function(e){if(e<1000n)return p(Number(e));if(e<1000000n){const n=Number(e/1000n),t=Number(e%1000n);if(0===t)return m(n).word+" "+c[0]+"th";const{word:r}=m(n);return r+" "+c[0]+" "+p(t)}return function(e){const n=[];let t=e;for(;t>0n;)n.push(Number(t%1000n)),t/=1000n;let r=0;for(let e=0;e<n.length;e++)if(0!==n[e]){r=e;break}let i="";for(let e=n.length-1;e>=0;e--){const t=n[e];0!==t&&(i&&(i+=" "),e===r?i+=0===e?p(t):m(t).word+" "+c[e-1]+"th":(i+=m(t).word,e>0&&(i+=" "+c[e-1])))}return i}(e)}(function(e){const t=typeof e;if("bigint"===t){if(e<=0n)throw new RangeError("Ordinals must be positive integers");return e}if("number"===t){if(!Number.isFinite(e))throw new RangeError("Ordinals must be finite numbers");if(!Number.isInteger(e))throw new RangeError("Ordinals must be whole numbers");if(e<=0)throw new RangeError("Ordinals must be positive integers");return BigInt(e)}if("string"===t)return function(e){const t=e.trim();if(0===t.length)throw new RangeError("Ordinals cannot be empty strings");if("-"===t[0])throw new RangeError("Ordinals cannot be negative");if(t.includes("."))throw new RangeError("Ordinals must be whole numbers");if(r(t)){const e=n(t);if(e.includes("."))throw new RangeError("Ordinals must be whole numbers");const r=BigInt(e);if(r<=0n)throw new RangeError("Ordinals must be positive integers");return r}try{const e=BigInt(t);if(e<=0n)throw new RangeError("Ordinals must be positive integers");return e}catch(n){if(n instanceof RangeError)throw n;throw new RangeError(`Invalid ordinal format: "${e}"`)}}(e);throw new TypeError(`Invalid value type: expected number, string, or bigint, received ${t}`)}(e))}};e.currency={enAU:function(e,n){n=function(e){if(void 0===e)return{};if(function(e){if(null===e||"object"!=typeof e)return!1;const n=Object.getPrototypeOf(e);return null===n||n===Object.prototype}(e))return e;throw new TypeError("Invalid options: expected plain object or undefined, got "+typeof e)}(n);const{isNegative:r,dollars:i,cents:s}=function(e){const n=typeof e;if("bigint"===n)return e<0n?{isNegative:!0,dollars:-e,cents:0n}:{isNegative:!1,dollars:e,cents:0n};if("number"===n){if(!Number.isFinite(e))throw new RangeError("Currency must be a finite number");return Number.isSafeInteger(e)?e<0?{isNegative:!0,dollars:BigInt(-e),cents:0n}:{isNegative:!1,dollars:BigInt(e),cents:0n}:o(t(e))}if("string"===n)return o(e);throw new TypeError(`Invalid value type: expected number, string, or bigint, received ${n}`)}(e),{and:u=!0}=n;let l="";return r&&(l=d+" "),(i>0n||0n===s)&&(l+=v(i),l+=" "+(1n===i?"dollar":"dollars")),s>0n&&(i>0n&&(l+=u?" and ":" "),l+=v(s),l+=" "+(1n===s?"cent":"cents")),l}},e.enAU=function(e){const{isNegative:o,integerPart:s,decimalPart:u}=function(e){const o=typeof e;if("bigint"===o)return e<0n?{isNegative:!0,integerPart:-e}:{isNegative:!1,integerPart:e};if("number"===o){if(!Number.isFinite(e))throw new RangeError("Number must be finite (NaN and Infinity are not supported)");return Number.isSafeInteger(e)?e<0?{isNegative:!0,integerPart:BigInt(-e)}:{isNegative:!1,integerPart:BigInt(e)}:i(t(e))}if("string"===o)return i(function(e){const t=e.trim();if(0===t.length||Number.isNaN(Number(t)))throw new RangeError(`Invalid number format: "${e}"`);return r(t)?n(t):t}(e));throw new TypeError(`Invalid value type: expected number, string, or bigint, received ${o}`)}(e);let l="";return o&&(l=d+" "),l+=v(s),u&&(l+=" point "+function(e){let n="",t=0;for(;t<e.length&&"0"===e[t];)n&&(n+=" "),n+=a,t++;const r=e.slice(t);return r&&(n&&(n+=" "),n+=v(BigInt(r))),n}(u)),l},e.ordinal=N},"object"==typeof exports&&"undefined"!=typeof module?n(exports):"function"==typeof define&&define.amd?define(["exports"],n):n((e="undefined"!=typeof globalThis?globalThis:e||self).n2words=e.n2words||{});
package/dist/en-BD.js ADDED
@@ -0,0 +1,2 @@
1
+ /*! n2words/en-BD v5.0.0 | MIT License | github.com/forzagreen/n2words */
2
+ function e(e){let[n,t]=e.toLowerCase().split("e");const r=parseInt(t,10);let i="";"-"===n[0]&&(i="-",n=n.slice(1));const s=n.indexOf("."),o=-1===s?n:n.slice(0,s)+n.slice(s+1),u=(-1===s?n.length:s)+r;return u>=o.length?i+o+"0".repeat(u-o.length):u<=0?i+"0."+"0".repeat(-u)+o:i+o.slice(0,u)+"."+o.slice(u)}function n(n){const r=n.toString();return t(r)?e(r):r}function t(e){return e.includes("e")||e.includes("E")}function r(e){const n="-"===e[0];n&&(e=e.slice(1));const t=e.indexOf(".");if(-1===t)return{isNegative:n,integerPart:BigInt(e)};const r=e.slice(0,t)||"0",i=e.slice(t+1);return{isNegative:n,integerPart:BigInt(r),decimalPart:i}}function i(n){let r=n.trim();if(0===r.length||Number.isNaN(Number(r)))throw new RangeError(`Invalid currency format: "${n}"`);t(r)&&(r=e(r));const i="-"===r[0];i&&(r=r.slice(1));const s=r.indexOf(".");if(-1===s)return{isNegative:i,dollars:BigInt(r),cents:0n};const o=r.slice(0,s)||"0",u=(r.slice(s+1)+"00").slice(0,2);return{isNegative:i,dollars:BigInt(o),cents:BigInt(u)}}const s=["","one","two","three","four","five","six","seven","eight","nine"],o=["ten","eleven","twelve","thirteen","fourteen","fifteen","sixteen","seventeen","eighteen","nineteen"],u=["","","twenty","thirty","forty","fifty","sixty","seventy","eighty","ninety"],a=["thousand","lakh","crore","arab","kharab","neel","padma","shankh"],c="hundred",f="zero",h="minus",l=["","first","second","third","fourth","fifth","sixth","seventh","eighth","ninth"],g=["tenth","eleventh","twelfth","thirteenth","fourteenth","fifteenth","sixteenth","seventeenth","eighteenth","nineteenth"],d=["","","twentieth","thirtieth","fortieth","fiftieth","sixtieth","seventieth","eightieth","ninetieth"],w={word:"",hasHundred:!1};function b(e){if(0===e)return w.word="",w.hasHundred=!1,w;const n=e%10,t=Math.trunc(e/10)%10,r=Math.trunc(e/100);let i="";return 1===t?i=o[n]:t>=2?i=n>0?u[t]+"-"+s[n]:u[t]:n>0&&(i=s[n]),r>0?(w.word=i?s[r]+" "+c+" and "+i:s[r]+" "+c,w.hasHundred=!0):(w.word=i,w.hasHundred=!1),w}function p(e){if(0===e)return"";const n=e%10,t=Math.trunc(e/10);return 1===t?o[n]:t>=2?n>0?u[t]+"-"+s[n]:u[t]:s[n]}function m(e){if(0n===e)return f;if(e<1000n)return b(Number(e)).word;const n=[];n.push(Number(e%1000n));let t=e/1000n;for(;t>0n;)n.push(Number(t%100n)),t/=100n;const r=[];for(let e=n.length-1;e>=0;e--){const t=n[e];if(0!==t)if(0===e){const{word:e,hasHundred:n}=b(t);r.length>0&&!n&&r.push("and"),r.push(e)}else r.push(p(t)),a[e-1]&&r.push(a[e-1])}return r.join(" ")}function v(i){const{isNegative:s,integerPart:o,decimalPart:u}=function(i){const s=typeof i;if("bigint"===s)return i<0n?{isNegative:!0,integerPart:-i}:{isNegative:!1,integerPart:i};if("number"===s){if(!Number.isFinite(i))throw new RangeError("Number must be finite (NaN and Infinity are not supported)");return Number.isSafeInteger(i)?i<0?{isNegative:!0,integerPart:BigInt(-i)}:{isNegative:!1,integerPart:BigInt(i)}:r(n(i))}if("string"===s)return r(function(n){const r=n.trim();if(0===r.length||Number.isNaN(Number(r)))throw new RangeError(`Invalid number format: "${n}"`);return t(r)?e(r):r}(i));throw new TypeError(`Invalid value type: expected number, string, or bigint, received ${s}`)}(i);let a="";return s&&(a=h+" "),a+=m(o),u&&(a+=" point "+function(e){let n="",t=0;for(;t<e.length&&"0"===e[t];)n&&(n+=" "),n+=f,t++;const r=e.slice(t);return r&&(n&&(n+=" "),n+=m(BigInt(r))),n}(u)),a}function N(e){const n=e%10,t=Math.trunc(e/10)%10,r=Math.trunc(e/100);let i="";return 1===t?i=g[n]:t>=2?i=n>0?u[t]+"-"+l[n]:d[t]:n>0&&(i=l[n]),r>0?i?s[r]+" "+c+" "+i:s[r]+" hundredth":i}function y(n){return function(e){if(e<1000n)return N(Number(e));const n=[];n.push(Number(e%1000n));let t=e/1000n;for(;t>0n;)n.push(Number(t%100n)),t/=100n;let r=0;for(let e=0;e<n.length;e++)if(0!==n[e]){r=e;break}const i=[];for(let e=n.length-1;e>=0;e--){const t=n[e];0!==t&&(e===r?0===e?i.push(N(t)):(i.push(p(t)),i.push(a[e-1]+"th")):0===e?i.push(b(t).word):(i.push(p(t)),i.push(a[e-1])))}return i.join(" ")}(function(n){const r=typeof n;if("bigint"===r){if(n<=0n)throw new RangeError("Ordinals must be positive integers");return n}if("number"===r){if(!Number.isFinite(n))throw new RangeError("Ordinals must be finite numbers");if(!Number.isInteger(n))throw new RangeError("Ordinals must be whole numbers");if(n<=0)throw new RangeError("Ordinals must be positive integers");return BigInt(n)}if("string"===r)return function(n){const r=n.trim();if(0===r.length)throw new RangeError("Ordinals cannot be empty strings");if("-"===r[0])throw new RangeError("Ordinals cannot be negative");if(r.includes("."))throw new RangeError("Ordinals must be whole numbers");if(t(r)){const n=e(r);if(n.includes("."))throw new RangeError("Ordinals must be whole numbers");const t=BigInt(n);if(t<=0n)throw new RangeError("Ordinals must be positive integers");return t}try{const e=BigInt(r);if(e<=0n)throw new RangeError("Ordinals must be positive integers");return e}catch(e){if(e instanceof RangeError)throw e;throw new RangeError(`Invalid ordinal format: "${n}"`)}}(n);throw new TypeError(`Invalid value type: expected number, string, or bigint, received ${r}`)}(n))}function I(e,t){t=function(e){if(void 0===e)return{};if(function(e){if(null===e||"object"!=typeof e)return!1;const n=Object.getPrototypeOf(e);return null===n||n===Object.prototype}(e))return e;throw new TypeError("Invalid options: expected plain object or undefined, got "+typeof e)}(t);const{isNegative:r,dollars:s,cents:o}=function(e){const t=typeof e;if("bigint"===t)return e<0n?{isNegative:!0,dollars:-e,cents:0n}:{isNegative:!1,dollars:e,cents:0n};if("number"===t){if(!Number.isFinite(e))throw new RangeError("Currency must be a finite number");return Number.isSafeInteger(e)?e<0?{isNegative:!0,dollars:BigInt(-e),cents:0n}:{isNegative:!1,dollars:BigInt(e),cents:0n}:i(n(e))}if("string"===t)return i(e);throw new TypeError(`Invalid value type: expected number, string, or bigint, received ${t}`)}(e),{and:u=!0}=t;let a="";return r&&(a=h+" "),(s>0n||0n===o)&&(a+=m(s),a+=" taka"),o>0n&&(s>0n&&(a+=u?" and ":" "),a+=m(o),a+=" "+(1n===o?"paisa":"paise")),a}export{v as toCardinal,I as toCurrency,y as toOrdinal};
@@ -0,0 +1,2 @@
1
+ /*! n2words/en-BD v5.0.0 | MIT License | github.com/forzagreen/n2words */
2
+ var e,n;e=this,n=function(e){"use strict";function n(e){let[n,t]=e.toLowerCase().split("e");const r=parseInt(t,10);let i="";"-"===n[0]&&(i="-",n=n.slice(1));const o=n.indexOf("."),s=-1===o?n:n.slice(0,o)+n.slice(o+1),u=(-1===o?n.length:o)+r;return u>=s.length?i+s+"0".repeat(u-s.length):u<=0?i+"0."+"0".repeat(-u)+s:i+s.slice(0,u)+"."+s.slice(u)}function t(e){const t=e.toString();return r(t)?n(t):t}function r(e){return e.includes("e")||e.includes("E")}function i(e){const n="-"===e[0];n&&(e=e.slice(1));const t=e.indexOf(".");if(-1===t)return{isNegative:n,integerPart:BigInt(e)};const r=e.slice(0,t)||"0",i=e.slice(t+1);return{isNegative:n,integerPart:BigInt(r),decimalPart:i}}function o(e){let t=e.trim();if(0===t.length||Number.isNaN(Number(t)))throw new RangeError(`Invalid currency format: "${e}"`);r(t)&&(t=n(t));const i="-"===t[0];i&&(t=t.slice(1));const o=t.indexOf(".");if(-1===o)return{isNegative:i,dollars:BigInt(t),cents:0n};const s=t.slice(0,o)||"0",u=(t.slice(o+1)+"00").slice(0,2);return{isNegative:i,dollars:BigInt(s),cents:BigInt(u)}}const s=["","one","two","three","four","five","six","seven","eight","nine"],u=["ten","eleven","twelve","thirteen","fourteen","fifteen","sixteen","seventeen","eighteen","nineteen"],a=["","","twenty","thirty","forty","fifty","sixty","seventy","eighty","ninety"],f=["thousand","lakh","crore","arab","kharab","neel","padma","shankh"],c="hundred",h="zero",l="minus",g=["","first","second","third","fourth","fifth","sixth","seventh","eighth","ninth"],d=["tenth","eleventh","twelfth","thirteenth","fourteenth","fifteenth","sixteenth","seventeenth","eighteenth","nineteenth"],b=["","","twentieth","thirtieth","fortieth","fiftieth","sixtieth","seventieth","eightieth","ninetieth"],p={word:"",hasHundred:!1};function w(e){if(0===e)return p.word="",p.hasHundred=!1,p;const n=e%10,t=Math.trunc(e/10)%10,r=Math.trunc(e/100);let i="";return 1===t?i=u[n]:t>=2?i=n>0?a[t]+"-"+s[n]:a[t]:n>0&&(i=s[n]),r>0?(p.word=i?s[r]+" "+c+" and "+i:s[r]+" "+c,p.hasHundred=!0):(p.word=i,p.hasHundred=!1),p}function m(e){if(0===e)return"";const n=e%10,t=Math.trunc(e/10);return 1===t?u[n]:t>=2?n>0?a[t]+"-"+s[n]:a[t]:s[n]}function v(e){if(0n===e)return h;if(e<1000n)return w(Number(e)).word;const n=[];n.push(Number(e%1000n));let t=e/1000n;for(;t>0n;)n.push(Number(t%100n)),t/=100n;const r=[];for(let e=n.length-1;e>=0;e--){const t=n[e];if(0!==t)if(0===e){const{word:e,hasHundred:n}=w(t);r.length>0&&!n&&r.push("and"),r.push(e)}else r.push(m(t)),f[e-1]&&r.push(f[e-1])}return r.join(" ")}function N(e){const n=e%10,t=Math.trunc(e/10)%10,r=Math.trunc(e/100);let i="";return 1===t?i=d[n]:t>=2?i=n>0?a[t]+"-"+g[n]:b[t]:n>0&&(i=g[n]),r>0?i?s[r]+" "+c+" "+i:s[r]+" hundredth":i}const y={enBD:function(e){return function(e){if(e<1000n)return N(Number(e));const n=[];n.push(Number(e%1000n));let t=e/1000n;for(;t>0n;)n.push(Number(t%100n)),t/=100n;let r=0;for(let e=0;e<n.length;e++)if(0!==n[e]){r=e;break}const i=[];for(let e=n.length-1;e>=0;e--){const t=n[e];0!==t&&(e===r?0===e?i.push(N(t)):(i.push(m(t)),i.push(f[e-1]+"th")):0===e?i.push(w(t).word):(i.push(m(t)),i.push(f[e-1])))}return i.join(" ")}(function(e){const t=typeof e;if("bigint"===t){if(e<=0n)throw new RangeError("Ordinals must be positive integers");return e}if("number"===t){if(!Number.isFinite(e))throw new RangeError("Ordinals must be finite numbers");if(!Number.isInteger(e))throw new RangeError("Ordinals must be whole numbers");if(e<=0)throw new RangeError("Ordinals must be positive integers");return BigInt(e)}if("string"===t)return function(e){const t=e.trim();if(0===t.length)throw new RangeError("Ordinals cannot be empty strings");if("-"===t[0])throw new RangeError("Ordinals cannot be negative");if(t.includes("."))throw new RangeError("Ordinals must be whole numbers");if(r(t)){const e=n(t);if(e.includes("."))throw new RangeError("Ordinals must be whole numbers");const r=BigInt(e);if(r<=0n)throw new RangeError("Ordinals must be positive integers");return r}try{const e=BigInt(t);if(e<=0n)throw new RangeError("Ordinals must be positive integers");return e}catch(n){if(n instanceof RangeError)throw n;throw new RangeError(`Invalid ordinal format: "${e}"`)}}(e);throw new TypeError(`Invalid value type: expected number, string, or bigint, received ${t}`)}(e))}};e.currency={enBD:function(e,n){n=function(e){if(void 0===e)return{};if(function(e){if(null===e||"object"!=typeof e)return!1;const n=Object.getPrototypeOf(e);return null===n||n===Object.prototype}(e))return e;throw new TypeError("Invalid options: expected plain object or undefined, got "+typeof e)}(n);const{isNegative:r,dollars:i,cents:s}=function(e){const n=typeof e;if("bigint"===n)return e<0n?{isNegative:!0,dollars:-e,cents:0n}:{isNegative:!1,dollars:e,cents:0n};if("number"===n){if(!Number.isFinite(e))throw new RangeError("Currency must be a finite number");return Number.isSafeInteger(e)?e<0?{isNegative:!0,dollars:BigInt(-e),cents:0n}:{isNegative:!1,dollars:BigInt(e),cents:0n}:o(t(e))}if("string"===n)return o(e);throw new TypeError(`Invalid value type: expected number, string, or bigint, received ${n}`)}(e),{and:u=!0}=n;let a="";return r&&(a=l+" "),(i>0n||0n===s)&&(a+=v(i),a+=" taka"),s>0n&&(i>0n&&(a+=u?" and ":" "),a+=v(s),a+=" "+(1n===s?"paisa":"paise")),a}},e.enBD=function(e){const{isNegative:o,integerPart:s,decimalPart:u}=function(e){const o=typeof e;if("bigint"===o)return e<0n?{isNegative:!0,integerPart:-e}:{isNegative:!1,integerPart:e};if("number"===o){if(!Number.isFinite(e))throw new RangeError("Number must be finite (NaN and Infinity are not supported)");return Number.isSafeInteger(e)?e<0?{isNegative:!0,integerPart:BigInt(-e)}:{isNegative:!1,integerPart:BigInt(e)}:i(t(e))}if("string"===o)return i(function(e){const t=e.trim();if(0===t.length||Number.isNaN(Number(t)))throw new RangeError(`Invalid number format: "${e}"`);return r(t)?n(t):t}(e));throw new TypeError(`Invalid value type: expected number, string, or bigint, received ${o}`)}(e);let a="";return o&&(a=l+" "),a+=v(s),u&&(a+=" point "+function(e){let n="",t=0;for(;t<e.length&&"0"===e[t];)n&&(n+=" "),n+=h,t++;const r=e.slice(t);return r&&(n&&(n+=" "),n+=v(BigInt(r))),n}(u)),a},e.ordinal=y},"object"==typeof exports&&"undefined"!=typeof module?n(exports):"function"==typeof define&&define.amd?define(["exports"],n):n((e="undefined"!=typeof globalThis?globalThis:e||self).n2words=e.n2words||{});
package/dist/en-CA.js ADDED
@@ -0,0 +1,2 @@
1
+ /*! n2words/en-CA v5.0.0 | MIT License | github.com/forzagreen/n2words */
2
+ function e(e){let[n,t]=e.toLowerCase().split("e");const r=parseInt(t,10);let i="";"-"===n[0]&&(i="-",n=n.slice(1));const o=n.indexOf("."),s=-1===o?n:n.slice(0,o)+n.slice(o+1),u=(-1===o?n.length:o)+r;return u>=s.length?i+s+"0".repeat(u-s.length):u<=0?i+"0."+"0".repeat(-u)+s:i+s.slice(0,u)+"."+s.slice(u)}function n(n){const r=n.toString();return t(r)?e(r):r}function t(e){return e.includes("e")||e.includes("E")}function r(e){const n="-"===e[0];n&&(e=e.slice(1));const t=e.indexOf(".");if(-1===t)return{isNegative:n,integerPart:BigInt(e)};const r=e.slice(0,t)||"0",i=e.slice(t+1);return{isNegative:n,integerPart:BigInt(r),decimalPart:i}}function i(n){let r=n.trim();if(0===r.length||Number.isNaN(Number(r)))throw new RangeError(`Invalid currency format: "${n}"`);t(r)&&(r=e(r));const i="-"===r[0];i&&(r=r.slice(1));const o=r.indexOf(".");if(-1===o)return{isNegative:i,dollars:BigInt(r),cents:0n};const s=r.slice(0,o)||"0",u=(r.slice(o+1)+"00").slice(0,2);return{isNegative:i,dollars:BigInt(s),cents:BigInt(u)}}function o(e){if(void 0===e)return{};if(function(e){if(null===e||"object"!=typeof e)return!1;const n=Object.getPrototypeOf(e);return null===n||n===Object.prototype}(e))return e;throw new TypeError("Invalid options: expected plain object or undefined, got "+typeof e)}const s=["","one","two","three","four","five","six","seven","eight","nine"],u=["ten","eleven","twelve","thirteen","fourteen","fifteen","sixteen","seventeen","eighteen","nineteen"],l=["","","twenty","thirty","forty","fifty","sixty","seventy","eighty","ninety"],c=["thousand","million","billion","trillion","quadrillion","quintillion","sextillion","septillion","octillion","nonillion","decillion","undecillion","duodecillion","tredecillion","quattuordecillion","quindecillion","sexdecillion","septendecillion","octodecillion","novemdecillion","vigintillion"],a="hundred",f="zero",d="minus",g=["","first","second","third","fourth","fifth","sixth","seventh","eighth","ninth"],h=["tenth","eleventh","twelfth","thirteenth","fourteenth","fifteenth","sixteenth","seventeenth","eighteenth","nineteenth"],w=["","","twentieth","thirtieth","fortieth","fiftieth","sixtieth","seventieth","eightieth","ninetieth"],b={word:"",hasHundred:!1};function m(e,n){if(0===e)return b.word="",b.hasHundred=!1,b;const t=e%10,r=Math.trunc(e/10)%10,i=Math.trunc(e/100);let o="";return 1===r?o=u[t]:r>=2?o=t>0?l[r]+"-"+s[t]:l[r]:t>0&&(o=s[t]),i>0?(b.word=o?s[i]+" "+a+(n?" and ":" ")+o:s[i]+" "+a,b.hasHundred=!0):(b.word=o,b.hasHundred=!1),b}function v(e,n,t){if(0n===e)return f;if(e<1000n)return m(Number(e),t).word;if(n&&e>=1100n&&e<=9999n){const n=Number(e),r=Math.trunc(n/100),i=n%100,{word:o}=m(r,t);let s=o+" "+a;if(i>0){const{word:e}=m(i,t);t&&(s+=" and"),s+=" "+e}return s}if(e<1000000n){const n=Number(e/1000n),r=Number(e%1000n),{word:i}=m(n,t);let o=i+" "+c[0];if(r>0){const{word:e,hasHundred:n}=m(r,t);t&&!n&&(o+=" and"),o+=" "+e}return o}return function(e,n){const t=[];let r=e;for(;r>0n;)t.push(Number(r%1000n)),r/=1000n;let i=-1;if(n)for(let e=0;e<t.length;e++)if(0!==t[e]){i=e;break}let o="",s=!1;for(let e=t.length-1;e>=0;e--){const r=t[e];if(0===r)continue;const{word:u,hasHundred:l}=m(r,n);n&&o&&e===i&&s&&!l&&(o+=" and"),o&&(o+=" "),o+=u,e>0?(o+=" "+c[e-1],s=!0):s=!1}return o}(e,t)}function N(i,s){s=o(s);const{isNegative:u,integerPart:l,decimalPart:c}=function(i){const o=typeof i;if("bigint"===o)return i<0n?{isNegative:!0,integerPart:-i}:{isNegative:!1,integerPart:i};if("number"===o){if(!Number.isFinite(i))throw new RangeError("Number must be finite (NaN and Infinity are not supported)");return Number.isSafeInteger(i)?i<0?{isNegative:!0,integerPart:BigInt(-i)}:{isNegative:!1,integerPart:BigInt(i)}:r(n(i))}if("string"===o)return r(function(n){const r=n.trim();if(0===r.length||Number.isNaN(Number(r)))throw new RangeError(`Invalid number format: "${n}"`);return t(r)?e(r):r}(i));throw new TypeError(`Invalid value type: expected number, string, or bigint, received ${o}`)}(i),{hundredPairing:a=!1,and:g=!0}=s;let h="";return u&&(h=d+" "),h+=v(l,a,g),c&&(h+=" point "+function(e,n){let t="",r=0;for(;r<e.length&&"0"===e[r];)t&&(t+=" "),t+=f,r++;const i=e.slice(r);return i&&(t&&(t+=" "),t+=v(BigInt(i),!1,n)),t}(c,g)),h}function p(e){const n=e%10,t=Math.trunc(e/10)%10,r=Math.trunc(e/100);let i="";return 1===t?i=h[n]:t>=2?i=n>0?l[t]+"-"+g[n]:w[t]:n>0&&(i=g[n]),r>0?i?s[r]+" "+a+" "+i:s[r]+" hundredth":i}function y(n){return function(e){if(e<1000n)return p(Number(e));if(e<1000000n){const n=Number(e/1000n),t=Number(e%1000n);if(0===t)return m(n,!1).word+" "+c[0]+"th";const{word:r}=m(n,!1);return r+" "+c[0]+" "+p(t)}return function(e){const n=[];let t=e;for(;t>0n;)n.push(Number(t%1000n)),t/=1000n;let r=0;for(let e=0;e<n.length;e++)if(0!==n[e]){r=e;break}let i="";for(let e=n.length-1;e>=0;e--){const t=n[e];0!==t&&(i&&(i+=" "),e===r?i+=0===e?p(t):m(t,!1).word+" "+c[e-1]+"th":(i+=m(t,!1).word,e>0&&(i+=" "+c[e-1])))}return i}(e)}(function(n){const r=typeof n;if("bigint"===r){if(n<=0n)throw new RangeError("Ordinals must be positive integers");return n}if("number"===r){if(!Number.isFinite(n))throw new RangeError("Ordinals must be finite numbers");if(!Number.isInteger(n))throw new RangeError("Ordinals must be whole numbers");if(n<=0)throw new RangeError("Ordinals must be positive integers");return BigInt(n)}if("string"===r)return function(n){const r=n.trim();if(0===r.length)throw new RangeError("Ordinals cannot be empty strings");if("-"===r[0])throw new RangeError("Ordinals cannot be negative");if(r.includes("."))throw new RangeError("Ordinals must be whole numbers");if(t(r)){const n=e(r);if(n.includes("."))throw new RangeError("Ordinals must be whole numbers");const t=BigInt(n);if(t<=0n)throw new RangeError("Ordinals must be positive integers");return t}try{const e=BigInt(r);if(e<=0n)throw new RangeError("Ordinals must be positive integers");return e}catch(e){if(e instanceof RangeError)throw e;throw new RangeError(`Invalid ordinal format: "${n}"`)}}(n);throw new TypeError(`Invalid value type: expected number, string, or bigint, received ${r}`)}(n))}function I(e,t){t=o(t);const{isNegative:r,dollars:s,cents:u}=function(e){const t=typeof e;if("bigint"===t)return e<0n?{isNegative:!0,dollars:-e,cents:0n}:{isNegative:!1,dollars:e,cents:0n};if("number"===t){if(!Number.isFinite(e))throw new RangeError("Currency must be a finite number");return Number.isSafeInteger(e)?e<0?{isNegative:!0,dollars:BigInt(-e),cents:0n}:{isNegative:!1,dollars:BigInt(e),cents:0n}:i(n(e))}if("string"===t)return i(e);throw new TypeError(`Invalid value type: expected number, string, or bigint, received ${t}`)}(e),{and:l=!0}=t;let c="";return r&&(c=d+" "),(s>0n||0n===u)&&(c+=v(s,!1,!1),c+=" "+(1n===s?"dollar":"dollars")),u>0n&&(s>0n&&(c+=l?" and ":" "),c+=v(u,!1,!1),c+=" "+(1n===u?"cent":"cents")),c}export{N as toCardinal,I as toCurrency,y as toOrdinal};
@@ -0,0 +1,2 @@
1
+ /*! n2words/en-CA v5.0.0 | MIT License | github.com/forzagreen/n2words */
2
+ var e,n;e=this,n=function(e){"use strict";function n(e){let[n,t]=e.toLowerCase().split("e");const r=parseInt(t,10);let i="";"-"===n[0]&&(i="-",n=n.slice(1));const o=n.indexOf("."),s=-1===o?n:n.slice(0,o)+n.slice(o+1),u=(-1===o?n.length:o)+r;return u>=s.length?i+s+"0".repeat(u-s.length):u<=0?i+"0."+"0".repeat(-u)+s:i+s.slice(0,u)+"."+s.slice(u)}function t(e){const t=e.toString();return r(t)?n(t):t}function r(e){return e.includes("e")||e.includes("E")}function i(e){const n="-"===e[0];n&&(e=e.slice(1));const t=e.indexOf(".");if(-1===t)return{isNegative:n,integerPart:BigInt(e)};const r=e.slice(0,t)||"0",i=e.slice(t+1);return{isNegative:n,integerPart:BigInt(r),decimalPart:i}}function o(e){let t=e.trim();if(0===t.length||Number.isNaN(Number(t)))throw new RangeError(`Invalid currency format: "${e}"`);r(t)&&(t=n(t));const i="-"===t[0];i&&(t=t.slice(1));const o=t.indexOf(".");if(-1===o)return{isNegative:i,dollars:BigInt(t),cents:0n};const s=t.slice(0,o)||"0",u=(t.slice(o+1)+"00").slice(0,2);return{isNegative:i,dollars:BigInt(s),cents:BigInt(u)}}function s(e){if(void 0===e)return{};if(function(e){if(null===e||"object"!=typeof e)return!1;const n=Object.getPrototypeOf(e);return null===n||n===Object.prototype}(e))return e;throw new TypeError("Invalid options: expected plain object or undefined, got "+typeof e)}const u=["","one","two","three","four","five","six","seven","eight","nine"],l=["ten","eleven","twelve","thirteen","fourteen","fifteen","sixteen","seventeen","eighteen","nineteen"],c=["","","twenty","thirty","forty","fifty","sixty","seventy","eighty","ninety"],f=["thousand","million","billion","trillion","quadrillion","quintillion","sextillion","septillion","octillion","nonillion","decillion","undecillion","duodecillion","tredecillion","quattuordecillion","quindecillion","sexdecillion","septendecillion","octodecillion","novemdecillion","vigintillion"],a="hundred",d="zero",g="minus",h=["","first","second","third","fourth","fifth","sixth","seventh","eighth","ninth"],w=["tenth","eleventh","twelfth","thirteenth","fourteenth","fifteenth","sixteenth","seventeenth","eighteenth","nineteenth"],b=["","","twentieth","thirtieth","fortieth","fiftieth","sixtieth","seventieth","eightieth","ninetieth"],m={word:"",hasHundred:!1};function v(e,n){if(0===e)return m.word="",m.hasHundred=!1,m;const t=e%10,r=Math.trunc(e/10)%10,i=Math.trunc(e/100);let o="";return 1===r?o=l[t]:r>=2?o=t>0?c[r]+"-"+u[t]:c[r]:t>0&&(o=u[t]),i>0?(m.word=o?u[i]+" "+a+(n?" and ":" ")+o:u[i]+" "+a,m.hasHundred=!0):(m.word=o,m.hasHundred=!1),m}function p(e,n,t){if(0n===e)return d;if(e<1000n)return v(Number(e),t).word;if(n&&e>=1100n&&e<=9999n){const n=Number(e),r=Math.trunc(n/100),i=n%100,{word:o}=v(r,t);let s=o+" "+a;if(i>0){const{word:e}=v(i,t);t&&(s+=" and"),s+=" "+e}return s}if(e<1000000n){const n=Number(e/1000n),r=Number(e%1000n),{word:i}=v(n,t);let o=i+" "+f[0];if(r>0){const{word:e,hasHundred:n}=v(r,t);t&&!n&&(o+=" and"),o+=" "+e}return o}return function(e,n){const t=[];let r=e;for(;r>0n;)t.push(Number(r%1000n)),r/=1000n;let i=-1;if(n)for(let e=0;e<t.length;e++)if(0!==t[e]){i=e;break}let o="",s=!1;for(let e=t.length-1;e>=0;e--){const r=t[e];if(0===r)continue;const{word:u,hasHundred:l}=v(r,n);n&&o&&e===i&&s&&!l&&(o+=" and"),o&&(o+=" "),o+=u,e>0?(o+=" "+f[e-1],s=!0):s=!1}return o}(e,t)}function N(e){const n=e%10,t=Math.trunc(e/10)%10,r=Math.trunc(e/100);let i="";return 1===t?i=w[n]:t>=2?i=n>0?c[t]+"-"+h[n]:b[t]:n>0&&(i=h[n]),r>0?i?u[r]+" "+a+" "+i:u[r]+" hundredth":i}const y={enCA:function(e){return function(e){if(e<1000n)return N(Number(e));if(e<1000000n){const n=Number(e/1000n),t=Number(e%1000n);if(0===t)return v(n,!1).word+" "+f[0]+"th";const{word:r}=v(n,!1);return r+" "+f[0]+" "+N(t)}return function(e){const n=[];let t=e;for(;t>0n;)n.push(Number(t%1000n)),t/=1000n;let r=0;for(let e=0;e<n.length;e++)if(0!==n[e]){r=e;break}let i="";for(let e=n.length-1;e>=0;e--){const t=n[e];0!==t&&(i&&(i+=" "),e===r?i+=0===e?N(t):v(t,!1).word+" "+f[e-1]+"th":(i+=v(t,!1).word,e>0&&(i+=" "+f[e-1])))}return i}(e)}(function(e){const t=typeof e;if("bigint"===t){if(e<=0n)throw new RangeError("Ordinals must be positive integers");return e}if("number"===t){if(!Number.isFinite(e))throw new RangeError("Ordinals must be finite numbers");if(!Number.isInteger(e))throw new RangeError("Ordinals must be whole numbers");if(e<=0)throw new RangeError("Ordinals must be positive integers");return BigInt(e)}if("string"===t)return function(e){const t=e.trim();if(0===t.length)throw new RangeError("Ordinals cannot be empty strings");if("-"===t[0])throw new RangeError("Ordinals cannot be negative");if(t.includes("."))throw new RangeError("Ordinals must be whole numbers");if(r(t)){const e=n(t);if(e.includes("."))throw new RangeError("Ordinals must be whole numbers");const r=BigInt(e);if(r<=0n)throw new RangeError("Ordinals must be positive integers");return r}try{const e=BigInt(t);if(e<=0n)throw new RangeError("Ordinals must be positive integers");return e}catch(n){if(n instanceof RangeError)throw n;throw new RangeError(`Invalid ordinal format: "${e}"`)}}(e);throw new TypeError(`Invalid value type: expected number, string, or bigint, received ${t}`)}(e))}};e.currency={enCA:function(e,n){n=s(n);const{isNegative:r,dollars:i,cents:u}=function(e){const n=typeof e;if("bigint"===n)return e<0n?{isNegative:!0,dollars:-e,cents:0n}:{isNegative:!1,dollars:e,cents:0n};if("number"===n){if(!Number.isFinite(e))throw new RangeError("Currency must be a finite number");return Number.isSafeInteger(e)?e<0?{isNegative:!0,dollars:BigInt(-e),cents:0n}:{isNegative:!1,dollars:BigInt(e),cents:0n}:o(t(e))}if("string"===n)return o(e);throw new TypeError(`Invalid value type: expected number, string, or bigint, received ${n}`)}(e),{and:l=!0}=n;let c="";return r&&(c=g+" "),(i>0n||0n===u)&&(c+=p(i,!1,!1),c+=" "+(1n===i?"dollar":"dollars")),u>0n&&(i>0n&&(c+=l?" and ":" "),c+=p(u,!1,!1),c+=" "+(1n===u?"cent":"cents")),c}},e.enCA=function(e,o){o=s(o);const{isNegative:u,integerPart:l,decimalPart:c}=function(e){const o=typeof e;if("bigint"===o)return e<0n?{isNegative:!0,integerPart:-e}:{isNegative:!1,integerPart:e};if("number"===o){if(!Number.isFinite(e))throw new RangeError("Number must be finite (NaN and Infinity are not supported)");return Number.isSafeInteger(e)?e<0?{isNegative:!0,integerPart:BigInt(-e)}:{isNegative:!1,integerPart:BigInt(e)}:i(t(e))}if("string"===o)return i(function(e){const t=e.trim();if(0===t.length||Number.isNaN(Number(t)))throw new RangeError(`Invalid number format: "${e}"`);return r(t)?n(t):t}(e));throw new TypeError(`Invalid value type: expected number, string, or bigint, received ${o}`)}(e),{hundredPairing:f=!1,and:a=!0}=o;let h="";return u&&(h=g+" "),h+=p(l,f,a),c&&(h+=" point "+function(e,n){let t="",r=0;for(;r<e.length&&"0"===e[r];)t&&(t+=" "),t+=d,r++;const i=e.slice(r);return i&&(t&&(t+=" "),t+=p(BigInt(i),!1,n)),t}(c,a)),h},e.ordinal=y},"object"==typeof exports&&"undefined"!=typeof module?n(exports):"function"==typeof define&&define.amd?define(["exports"],n):n((e="undefined"!=typeof globalThis?globalThis:e||self).n2words=e.n2words||{});
package/dist/en-GB.js ADDED
@@ -0,0 +1,2 @@
1
+ /*! n2words/en-GB v5.0.0 | MIT License | github.com/forzagreen/n2words */
2
+ function e(e){let[n,t]=e.toLowerCase().split("e");const r=parseInt(t,10);let i="";"-"===n[0]&&(i="-",n=n.slice(1));const o=n.indexOf("."),s=-1===o?n:n.slice(0,o)+n.slice(o+1),u=(-1===o?n.length:o)+r;return u>=s.length?i+s+"0".repeat(u-s.length):u<=0?i+"0."+"0".repeat(-u)+s:i+s.slice(0,u)+"."+s.slice(u)}function n(n){const r=n.toString();return t(r)?e(r):r}function t(e){return e.includes("e")||e.includes("E")}function r(e){const n="-"===e[0];n&&(e=e.slice(1));const t=e.indexOf(".");if(-1===t)return{isNegative:n,integerPart:BigInt(e)};const r=e.slice(0,t)||"0",i=e.slice(t+1);return{isNegative:n,integerPart:BigInt(r),decimalPart:i}}function i(n){let r=n.trim();if(0===r.length||Number.isNaN(Number(r)))throw new RangeError(`Invalid currency format: "${n}"`);t(r)&&(r=e(r));const i="-"===r[0];i&&(r=r.slice(1));const o=r.indexOf(".");if(-1===o)return{isNegative:i,dollars:BigInt(r),cents:0n};const s=r.slice(0,o)||"0",u=(r.slice(o+1)+"00").slice(0,2);return{isNegative:i,dollars:BigInt(s),cents:BigInt(u)}}const o=["","one","two","three","four","five","six","seven","eight","nine"],s=["ten","eleven","twelve","thirteen","fourteen","fifteen","sixteen","seventeen","eighteen","nineteen"],u=["","","twenty","thirty","forty","fifty","sixty","seventy","eighty","ninety"],l=["thousand","million","billion","trillion","quadrillion","quintillion","sextillion","septillion","octillion","nonillion","decillion","undecillion","duodecillion","tredecillion","quattuordecillion","quindecillion","sexdecillion","septendecillion","octodecillion","novemdecillion","vigintillion"],c="hundred",a="zero",f="minus",d=["","first","second","third","fourth","fifth","sixth","seventh","eighth","ninth"],g=["tenth","eleventh","twelfth","thirteenth","fourteenth","fifteenth","sixteenth","seventeenth","eighteenth","nineteenth"],h=["","","twentieth","thirtieth","fortieth","fiftieth","sixtieth","seventieth","eightieth","ninetieth"],w={word:"",hasHundred:!1};function b(e){if(0===e)return w.word="",w.hasHundred=!1,w;const n=e%10,t=Math.trunc(e/10)%10,r=Math.trunc(e/100);let i="";return 1===t?i=s[n]:t>=2?i=n>0?u[t]+"-"+o[n]:u[t]:n>0&&(i=o[n]),r>0?(w.word=i?o[r]+" "+c+" and "+i:o[r]+" "+c,w.hasHundred=!0):(w.word=i,w.hasHundred=!1),w}function m(e){if(0n===e)return a;if(e<1000n)return b(Number(e)).word;if(e<1000000n){const n=Number(e/1000n),t=Number(e%1000n),{word:r}=b(n);let i=r+" "+l[0];if(t>0){const{word:e,hasHundred:n}=b(t);i+=n?" "+e:" and "+e}return i}return function(e){const n=[];let t=e;for(;t>0n;)n.push(Number(t%1000n)),t/=1000n;let r=-1;for(let e=0;e<n.length;e++)if(0!==n[e]){r=e;break}let i="",o=!1;for(let e=n.length-1;e>=0;e--){const t=n[e];if(0===t)continue;const{word:s,hasHundred:u}=b(t);i&&e===r&&o&&!u&&(i+=" and"),i&&(i+=" "),i+=s,e>0?(i+=" "+l[e-1],o=!0):o=!1}return i}(e)}function v(i){const{isNegative:o,integerPart:s,decimalPart:u}=function(i){const o=typeof i;if("bigint"===o)return i<0n?{isNegative:!0,integerPart:-i}:{isNegative:!1,integerPart:i};if("number"===o){if(!Number.isFinite(i))throw new RangeError("Number must be finite (NaN and Infinity are not supported)");return Number.isSafeInteger(i)?i<0?{isNegative:!0,integerPart:BigInt(-i)}:{isNegative:!1,integerPart:BigInt(i)}:r(n(i))}if("string"===o)return r(function(n){const r=n.trim();if(0===r.length||Number.isNaN(Number(r)))throw new RangeError(`Invalid number format: "${n}"`);return t(r)?e(r):r}(i));throw new TypeError(`Invalid value type: expected number, string, or bigint, received ${o}`)}(i);let l="";return o&&(l=f+" "),l+=m(s),u&&(l+=" point "+function(e){let n="",t=0;for(;t<e.length&&"0"===e[t];)n&&(n+=" "),n+=a,t++;const r=e.slice(t);return r&&(n&&(n+=" "),n+=m(BigInt(r))),n}(u)),l}function p(e){const n=e%10,t=Math.trunc(e/10)%10,r=Math.trunc(e/100);let i="";return 1===t?i=g[n]:t>=2?i=n>0?u[t]+"-"+d[n]:h[t]:n>0&&(i=d[n]),r>0?i?o[r]+" "+c+" "+i:o[r]+" hundredth":i}function N(n){return function(e){if(e<1000n)return p(Number(e));if(e<1000000n){const n=Number(e/1000n),t=Number(e%1000n);if(0===t)return b(n).word+" "+l[0]+"th";const{word:r}=b(n);return r+" "+l[0]+" "+p(t)}return function(e){const n=[];let t=e;for(;t>0n;)n.push(Number(t%1000n)),t/=1000n;let r=0;for(let e=0;e<n.length;e++)if(0!==n[e]){r=e;break}let i="";for(let e=n.length-1;e>=0;e--){const t=n[e];0!==t&&(i&&(i+=" "),e===r?i+=0===e?p(t):b(t).word+" "+l[e-1]+"th":(i+=b(t).word,e>0&&(i+=" "+l[e-1])))}return i}(e)}(function(n){const r=typeof n;if("bigint"===r){if(n<=0n)throw new RangeError("Ordinals must be positive integers");return n}if("number"===r){if(!Number.isFinite(n))throw new RangeError("Ordinals must be finite numbers");if(!Number.isInteger(n))throw new RangeError("Ordinals must be whole numbers");if(n<=0)throw new RangeError("Ordinals must be positive integers");return BigInt(n)}if("string"===r)return function(n){const r=n.trim();if(0===r.length)throw new RangeError("Ordinals cannot be empty strings");if("-"===r[0])throw new RangeError("Ordinals cannot be negative");if(r.includes("."))throw new RangeError("Ordinals must be whole numbers");if(t(r)){const n=e(r);if(n.includes("."))throw new RangeError("Ordinals must be whole numbers");const t=BigInt(n);if(t<=0n)throw new RangeError("Ordinals must be positive integers");return t}try{const e=BigInt(r);if(e<=0n)throw new RangeError("Ordinals must be positive integers");return e}catch(e){if(e instanceof RangeError)throw e;throw new RangeError(`Invalid ordinal format: "${n}"`)}}(n);throw new TypeError(`Invalid value type: expected number, string, or bigint, received ${r}`)}(n))}function y(e,t){t=function(e){if(void 0===e)return{};if(function(e){if(null===e||"object"!=typeof e)return!1;const n=Object.getPrototypeOf(e);return null===n||n===Object.prototype}(e))return e;throw new TypeError("Invalid options: expected plain object or undefined, got "+typeof e)}(t);const{isNegative:r,dollars:o,cents:s}=function(e){const t=typeof e;if("bigint"===t)return e<0n?{isNegative:!0,dollars:-e,cents:0n}:{isNegative:!1,dollars:e,cents:0n};if("number"===t){if(!Number.isFinite(e))throw new RangeError("Currency must be a finite number");return Number.isSafeInteger(e)?e<0?{isNegative:!0,dollars:BigInt(-e),cents:0n}:{isNegative:!1,dollars:BigInt(e),cents:0n}:i(n(e))}if("string"===t)return i(e);throw new TypeError(`Invalid value type: expected number, string, or bigint, received ${t}`)}(e),{and:u=!0}=t;let l="";return r&&(l=f+" "),(o>0n||0n===s)&&(l+=m(o),l+=" "+(1n===o?"pound":"pounds")),s>0n&&(o>0n&&(l+=u?" and ":" "),l+=m(s),l+=" "+(1n===s?"penny":"pence")),l}export{v as toCardinal,y as toCurrency,N as toOrdinal};
@@ -0,0 +1,2 @@
1
+ /*! n2words/en-GB v5.0.0 | MIT License | github.com/forzagreen/n2words */
2
+ var e,n;e=this,n=function(e){"use strict";function n(e){let[n,t]=e.toLowerCase().split("e");const r=parseInt(t,10);let i="";"-"===n[0]&&(i="-",n=n.slice(1));const o=n.indexOf("."),s=-1===o?n:n.slice(0,o)+n.slice(o+1),u=(-1===o?n.length:o)+r;return u>=s.length?i+s+"0".repeat(u-s.length):u<=0?i+"0."+"0".repeat(-u)+s:i+s.slice(0,u)+"."+s.slice(u)}function t(e){const t=e.toString();return r(t)?n(t):t}function r(e){return e.includes("e")||e.includes("E")}function i(e){const n="-"===e[0];n&&(e=e.slice(1));const t=e.indexOf(".");if(-1===t)return{isNegative:n,integerPart:BigInt(e)};const r=e.slice(0,t)||"0",i=e.slice(t+1);return{isNegative:n,integerPart:BigInt(r),decimalPart:i}}function o(e){let t=e.trim();if(0===t.length||Number.isNaN(Number(t)))throw new RangeError(`Invalid currency format: "${e}"`);r(t)&&(t=n(t));const i="-"===t[0];i&&(t=t.slice(1));const o=t.indexOf(".");if(-1===o)return{isNegative:i,dollars:BigInt(t),cents:0n};const s=t.slice(0,o)||"0",u=(t.slice(o+1)+"00").slice(0,2);return{isNegative:i,dollars:BigInt(s),cents:BigInt(u)}}const s=["","one","two","three","four","five","six","seven","eight","nine"],u=["ten","eleven","twelve","thirteen","fourteen","fifteen","sixteen","seventeen","eighteen","nineteen"],l=["","","twenty","thirty","forty","fifty","sixty","seventy","eighty","ninety"],c=["thousand","million","billion","trillion","quadrillion","quintillion","sextillion","septillion","octillion","nonillion","decillion","undecillion","duodecillion","tredecillion","quattuordecillion","quindecillion","sexdecillion","septendecillion","octodecillion","novemdecillion","vigintillion"],f="hundred",a="zero",d="minus",g=["","first","second","third","fourth","fifth","sixth","seventh","eighth","ninth"],h=["tenth","eleventh","twelfth","thirteenth","fourteenth","fifteenth","sixteenth","seventeenth","eighteenth","nineteenth"],w=["","","twentieth","thirtieth","fortieth","fiftieth","sixtieth","seventieth","eightieth","ninetieth"],b={word:"",hasHundred:!1};function m(e){if(0===e)return b.word="",b.hasHundred=!1,b;const n=e%10,t=Math.trunc(e/10)%10,r=Math.trunc(e/100);let i="";return 1===t?i=u[n]:t>=2?i=n>0?l[t]+"-"+s[n]:l[t]:n>0&&(i=s[n]),r>0?(b.word=i?s[r]+" "+f+" and "+i:s[r]+" "+f,b.hasHundred=!0):(b.word=i,b.hasHundred=!1),b}function p(e){if(0n===e)return a;if(e<1000n)return m(Number(e)).word;if(e<1000000n){const n=Number(e/1000n),t=Number(e%1000n),{word:r}=m(n);let i=r+" "+c[0];if(t>0){const{word:e,hasHundred:n}=m(t);i+=n?" "+e:" and "+e}return i}return function(e){const n=[];let t=e;for(;t>0n;)n.push(Number(t%1000n)),t/=1000n;let r=-1;for(let e=0;e<n.length;e++)if(0!==n[e]){r=e;break}let i="",o=!1;for(let e=n.length-1;e>=0;e--){const t=n[e];if(0===t)continue;const{word:s,hasHundred:u}=m(t);i&&e===r&&o&&!u&&(i+=" and"),i&&(i+=" "),i+=s,e>0?(i+=" "+c[e-1],o=!0):o=!1}return i}(e)}function v(e){const n=e%10,t=Math.trunc(e/10)%10,r=Math.trunc(e/100);let i="";return 1===t?i=h[n]:t>=2?i=n>0?l[t]+"-"+g[n]:w[t]:n>0&&(i=g[n]),r>0?i?s[r]+" "+f+" "+i:s[r]+" hundredth":i}const N={enGB:function(e){return function(e){if(e<1000n)return v(Number(e));if(e<1000000n){const n=Number(e/1000n),t=Number(e%1000n);if(0===t)return m(n).word+" "+c[0]+"th";const{word:r}=m(n);return r+" "+c[0]+" "+v(t)}return function(e){const n=[];let t=e;for(;t>0n;)n.push(Number(t%1000n)),t/=1000n;let r=0;for(let e=0;e<n.length;e++)if(0!==n[e]){r=e;break}let i="";for(let e=n.length-1;e>=0;e--){const t=n[e];0!==t&&(i&&(i+=" "),e===r?i+=0===e?v(t):m(t).word+" "+c[e-1]+"th":(i+=m(t).word,e>0&&(i+=" "+c[e-1])))}return i}(e)}(function(e){const t=typeof e;if("bigint"===t){if(e<=0n)throw new RangeError("Ordinals must be positive integers");return e}if("number"===t){if(!Number.isFinite(e))throw new RangeError("Ordinals must be finite numbers");if(!Number.isInteger(e))throw new RangeError("Ordinals must be whole numbers");if(e<=0)throw new RangeError("Ordinals must be positive integers");return BigInt(e)}if("string"===t)return function(e){const t=e.trim();if(0===t.length)throw new RangeError("Ordinals cannot be empty strings");if("-"===t[0])throw new RangeError("Ordinals cannot be negative");if(t.includes("."))throw new RangeError("Ordinals must be whole numbers");if(r(t)){const e=n(t);if(e.includes("."))throw new RangeError("Ordinals must be whole numbers");const r=BigInt(e);if(r<=0n)throw new RangeError("Ordinals must be positive integers");return r}try{const e=BigInt(t);if(e<=0n)throw new RangeError("Ordinals must be positive integers");return e}catch(n){if(n instanceof RangeError)throw n;throw new RangeError(`Invalid ordinal format: "${e}"`)}}(e);throw new TypeError(`Invalid value type: expected number, string, or bigint, received ${t}`)}(e))}};e.currency={enGB:function(e,n){n=function(e){if(void 0===e)return{};if(function(e){if(null===e||"object"!=typeof e)return!1;const n=Object.getPrototypeOf(e);return null===n||n===Object.prototype}(e))return e;throw new TypeError("Invalid options: expected plain object or undefined, got "+typeof e)}(n);const{isNegative:r,dollars:i,cents:s}=function(e){const n=typeof e;if("bigint"===n)return e<0n?{isNegative:!0,dollars:-e,cents:0n}:{isNegative:!1,dollars:e,cents:0n};if("number"===n){if(!Number.isFinite(e))throw new RangeError("Currency must be a finite number");return Number.isSafeInteger(e)?e<0?{isNegative:!0,dollars:BigInt(-e),cents:0n}:{isNegative:!1,dollars:BigInt(e),cents:0n}:o(t(e))}if("string"===n)return o(e);throw new TypeError(`Invalid value type: expected number, string, or bigint, received ${n}`)}(e),{and:u=!0}=n;let l="";return r&&(l=d+" "),(i>0n||0n===s)&&(l+=p(i),l+=" "+(1n===i?"pound":"pounds")),s>0n&&(i>0n&&(l+=u?" and ":" "),l+=p(s),l+=" "+(1n===s?"penny":"pence")),l}},e.enGB=function(e){const{isNegative:o,integerPart:s,decimalPart:u}=function(e){const o=typeof e;if("bigint"===o)return e<0n?{isNegative:!0,integerPart:-e}:{isNegative:!1,integerPart:e};if("number"===o){if(!Number.isFinite(e))throw new RangeError("Number must be finite (NaN and Infinity are not supported)");return Number.isSafeInteger(e)?e<0?{isNegative:!0,integerPart:BigInt(-e)}:{isNegative:!1,integerPart:BigInt(e)}:i(t(e))}if("string"===o)return i(function(e){const t=e.trim();if(0===t.length||Number.isNaN(Number(t)))throw new RangeError(`Invalid number format: "${e}"`);return r(t)?n(t):t}(e));throw new TypeError(`Invalid value type: expected number, string, or bigint, received ${o}`)}(e);let l="";return o&&(l=d+" "),l+=p(s),u&&(l+=" point "+function(e){let n="",t=0;for(;t<e.length&&"0"===e[t];)n&&(n+=" "),n+=a,t++;const r=e.slice(t);return r&&(n&&(n+=" "),n+=p(BigInt(r))),n}(u)),l},e.ordinal=N},"object"==typeof exports&&"undefined"!=typeof module?n(exports):"function"==typeof define&&define.amd?define(["exports"],n):n((e="undefined"!=typeof globalThis?globalThis:e||self).n2words=e.n2words||{});
package/dist/en-GH.js ADDED
@@ -0,0 +1,2 @@
1
+ /*! n2words/en-GH v5.0.0 | MIT License | github.com/forzagreen/n2words */
2
+ function e(e){let[n,t]=e.toLowerCase().split("e");const r=parseInt(t,10);let i="";"-"===n[0]&&(i="-",n=n.slice(1));const o=n.indexOf("."),s=-1===o?n:n.slice(0,o)+n.slice(o+1),u=(-1===o?n.length:o)+r;return u>=s.length?i+s+"0".repeat(u-s.length):u<=0?i+"0."+"0".repeat(-u)+s:i+s.slice(0,u)+"."+s.slice(u)}function n(n){const r=n.toString();return t(r)?e(r):r}function t(e){return e.includes("e")||e.includes("E")}function r(e){const n="-"===e[0];n&&(e=e.slice(1));const t=e.indexOf(".");if(-1===t)return{isNegative:n,integerPart:BigInt(e)};const r=e.slice(0,t)||"0",i=e.slice(t+1);return{isNegative:n,integerPart:BigInt(r),decimalPart:i}}function i(n){let r=n.trim();if(0===r.length||Number.isNaN(Number(r)))throw new RangeError(`Invalid currency format: "${n}"`);t(r)&&(r=e(r));const i="-"===r[0];i&&(r=r.slice(1));const o=r.indexOf(".");if(-1===o)return{isNegative:i,dollars:BigInt(r),cents:0n};const s=r.slice(0,o)||"0",u=(r.slice(o+1)+"00").slice(0,2);return{isNegative:i,dollars:BigInt(s),cents:BigInt(u)}}const o=["","one","two","three","four","five","six","seven","eight","nine"],s=["ten","eleven","twelve","thirteen","fourteen","fifteen","sixteen","seventeen","eighteen","nineteen"],u=["","","twenty","thirty","forty","fifty","sixty","seventy","eighty","ninety"],l=["thousand","million","billion","trillion","quadrillion","quintillion","sextillion","septillion","octillion","nonillion","decillion","undecillion","duodecillion","tredecillion","quattuordecillion","quindecillion","sexdecillion","septendecillion","octodecillion","novemdecillion","vigintillion"],c="hundred",a="zero",f="minus",d=["","first","second","third","fourth","fifth","sixth","seventh","eighth","ninth"],g=["tenth","eleventh","twelfth","thirteenth","fourteenth","fifteenth","sixteenth","seventeenth","eighteenth","nineteenth"],h=["","","twentieth","thirtieth","fortieth","fiftieth","sixtieth","seventieth","eightieth","ninetieth"],w={word:"",hasHundred:!1};function b(e){if(0===e)return w.word="",w.hasHundred=!1,w;const n=e%10,t=Math.trunc(e/10)%10,r=Math.trunc(e/100);let i="";return 1===t?i=s[n]:t>=2?i=n>0?u[t]+"-"+o[n]:u[t]:n>0&&(i=o[n]),r>0?(w.word=i?o[r]+" "+c+" and "+i:o[r]+" "+c,w.hasHundred=!0):(w.word=i,w.hasHundred=!1),w}function m(e){if(0n===e)return a;if(e<1000n)return b(Number(e)).word;if(e<1000000n){const n=Number(e/1000n),t=Number(e%1000n),{word:r}=b(n);let i=r+" "+l[0];if(t>0){const{word:e,hasHundred:n}=b(t);i+=n?" "+e:" and "+e}return i}return function(e){const n=[];let t=e;for(;t>0n;)n.push(Number(t%1000n)),t/=1000n;let r=-1;for(let e=0;e<n.length;e++)if(0!==n[e]){r=e;break}let i="",o=!1;for(let e=n.length-1;e>=0;e--){const t=n[e];if(0===t)continue;const{word:s,hasHundred:u}=b(t);i&&e===r&&o&&!u&&(i+=" and"),i&&(i+=" "),i+=s,e>0?(i+=" "+l[e-1],o=!0):o=!1}return i}(e)}function v(i){const{isNegative:o,integerPart:s,decimalPart:u}=function(i){const o=typeof i;if("bigint"===o)return i<0n?{isNegative:!0,integerPart:-i}:{isNegative:!1,integerPart:i};if("number"===o){if(!Number.isFinite(i))throw new RangeError("Number must be finite (NaN and Infinity are not supported)");return Number.isSafeInteger(i)?i<0?{isNegative:!0,integerPart:BigInt(-i)}:{isNegative:!1,integerPart:BigInt(i)}:r(n(i))}if("string"===o)return r(function(n){const r=n.trim();if(0===r.length||Number.isNaN(Number(r)))throw new RangeError(`Invalid number format: "${n}"`);return t(r)?e(r):r}(i));throw new TypeError(`Invalid value type: expected number, string, or bigint, received ${o}`)}(i);let l="";return o&&(l=f+" "),l+=m(s),u&&(l+=" point "+function(e){let n="",t=0;for(;t<e.length&&"0"===e[t];)n&&(n+=" "),n+=a,t++;const r=e.slice(t);return r&&(n&&(n+=" "),n+=m(BigInt(r))),n}(u)),l}function p(e){const n=e%10,t=Math.trunc(e/10)%10,r=Math.trunc(e/100);let i="";return 1===t?i=g[n]:t>=2?i=n>0?u[t]+"-"+d[n]:h[t]:n>0&&(i=d[n]),r>0?i?o[r]+" "+c+" "+i:o[r]+" hundredth":i}function N(n){return function(e){if(e<1000n)return p(Number(e));if(e<1000000n){const n=Number(e/1000n),t=Number(e%1000n);if(0===t)return b(n).word+" "+l[0]+"th";const{word:r}=b(n);return r+" "+l[0]+" "+p(t)}return function(e){const n=[];let t=e;for(;t>0n;)n.push(Number(t%1000n)),t/=1000n;let r=0;for(let e=0;e<n.length;e++)if(0!==n[e]){r=e;break}let i="";for(let e=n.length-1;e>=0;e--){const t=n[e];0!==t&&(i&&(i+=" "),e===r?i+=0===e?p(t):b(t).word+" "+l[e-1]+"th":(i+=b(t).word,e>0&&(i+=" "+l[e-1])))}return i}(e)}(function(n){const r=typeof n;if("bigint"===r){if(n<=0n)throw new RangeError("Ordinals must be positive integers");return n}if("number"===r){if(!Number.isFinite(n))throw new RangeError("Ordinals must be finite numbers");if(!Number.isInteger(n))throw new RangeError("Ordinals must be whole numbers");if(n<=0)throw new RangeError("Ordinals must be positive integers");return BigInt(n)}if("string"===r)return function(n){const r=n.trim();if(0===r.length)throw new RangeError("Ordinals cannot be empty strings");if("-"===r[0])throw new RangeError("Ordinals cannot be negative");if(r.includes("."))throw new RangeError("Ordinals must be whole numbers");if(t(r)){const n=e(r);if(n.includes("."))throw new RangeError("Ordinals must be whole numbers");const t=BigInt(n);if(t<=0n)throw new RangeError("Ordinals must be positive integers");return t}try{const e=BigInt(r);if(e<=0n)throw new RangeError("Ordinals must be positive integers");return e}catch(e){if(e instanceof RangeError)throw e;throw new RangeError(`Invalid ordinal format: "${n}"`)}}(n);throw new TypeError(`Invalid value type: expected number, string, or bigint, received ${r}`)}(n))}function y(e,t){t=function(e){if(void 0===e)return{};if(function(e){if(null===e||"object"!=typeof e)return!1;const n=Object.getPrototypeOf(e);return null===n||n===Object.prototype}(e))return e;throw new TypeError("Invalid options: expected plain object or undefined, got "+typeof e)}(t);const{isNegative:r,dollars:o,cents:s}=function(e){const t=typeof e;if("bigint"===t)return e<0n?{isNegative:!0,dollars:-e,cents:0n}:{isNegative:!1,dollars:e,cents:0n};if("number"===t){if(!Number.isFinite(e))throw new RangeError("Currency must be a finite number");return Number.isSafeInteger(e)?e<0?{isNegative:!0,dollars:BigInt(-e),cents:0n}:{isNegative:!1,dollars:BigInt(e),cents:0n}:i(n(e))}if("string"===t)return i(e);throw new TypeError(`Invalid value type: expected number, string, or bigint, received ${t}`)}(e),{and:u=!0}=t;let l="";return r&&(l=f+" "),(o>0n||0n===s)&&(l+=m(o),l+=" "+(1n===o?"cedi":"cedis")),s>0n&&(o>0n&&(l+=u?" and ":" "),l+=m(s),l+=" "+(1n===s?"pesewa":"pesewas")),l}export{v as toCardinal,y as toCurrency,N as toOrdinal};
@@ -0,0 +1,2 @@
1
+ /*! n2words/en-GH v5.0.0 | MIT License | github.com/forzagreen/n2words */
2
+ var e,n;e=this,n=function(e){"use strict";function n(e){let[n,t]=e.toLowerCase().split("e");const r=parseInt(t,10);let i="";"-"===n[0]&&(i="-",n=n.slice(1));const o=n.indexOf("."),s=-1===o?n:n.slice(0,o)+n.slice(o+1),u=(-1===o?n.length:o)+r;return u>=s.length?i+s+"0".repeat(u-s.length):u<=0?i+"0."+"0".repeat(-u)+s:i+s.slice(0,u)+"."+s.slice(u)}function t(e){const t=e.toString();return r(t)?n(t):t}function r(e){return e.includes("e")||e.includes("E")}function i(e){const n="-"===e[0];n&&(e=e.slice(1));const t=e.indexOf(".");if(-1===t)return{isNegative:n,integerPart:BigInt(e)};const r=e.slice(0,t)||"0",i=e.slice(t+1);return{isNegative:n,integerPart:BigInt(r),decimalPart:i}}function o(e){let t=e.trim();if(0===t.length||Number.isNaN(Number(t)))throw new RangeError(`Invalid currency format: "${e}"`);r(t)&&(t=n(t));const i="-"===t[0];i&&(t=t.slice(1));const o=t.indexOf(".");if(-1===o)return{isNegative:i,dollars:BigInt(t),cents:0n};const s=t.slice(0,o)||"0",u=(t.slice(o+1)+"00").slice(0,2);return{isNegative:i,dollars:BigInt(s),cents:BigInt(u)}}const s=["","one","two","three","four","five","six","seven","eight","nine"],u=["ten","eleven","twelve","thirteen","fourteen","fifteen","sixteen","seventeen","eighteen","nineteen"],l=["","","twenty","thirty","forty","fifty","sixty","seventy","eighty","ninety"],c=["thousand","million","billion","trillion","quadrillion","quintillion","sextillion","septillion","octillion","nonillion","decillion","undecillion","duodecillion","tredecillion","quattuordecillion","quindecillion","sexdecillion","septendecillion","octodecillion","novemdecillion","vigintillion"],f="hundred",a="zero",d="minus",g=["","first","second","third","fourth","fifth","sixth","seventh","eighth","ninth"],h=["tenth","eleventh","twelfth","thirteenth","fourteenth","fifteenth","sixteenth","seventeenth","eighteenth","nineteenth"],w=["","","twentieth","thirtieth","fortieth","fiftieth","sixtieth","seventieth","eightieth","ninetieth"],b={word:"",hasHundred:!1};function m(e){if(0===e)return b.word="",b.hasHundred=!1,b;const n=e%10,t=Math.trunc(e/10)%10,r=Math.trunc(e/100);let i="";return 1===t?i=u[n]:t>=2?i=n>0?l[t]+"-"+s[n]:l[t]:n>0&&(i=s[n]),r>0?(b.word=i?s[r]+" "+f+" and "+i:s[r]+" "+f,b.hasHundred=!0):(b.word=i,b.hasHundred=!1),b}function p(e){if(0n===e)return a;if(e<1000n)return m(Number(e)).word;if(e<1000000n){const n=Number(e/1000n),t=Number(e%1000n),{word:r}=m(n);let i=r+" "+c[0];if(t>0){const{word:e,hasHundred:n}=m(t);i+=n?" "+e:" and "+e}return i}return function(e){const n=[];let t=e;for(;t>0n;)n.push(Number(t%1000n)),t/=1000n;let r=-1;for(let e=0;e<n.length;e++)if(0!==n[e]){r=e;break}let i="",o=!1;for(let e=n.length-1;e>=0;e--){const t=n[e];if(0===t)continue;const{word:s,hasHundred:u}=m(t);i&&e===r&&o&&!u&&(i+=" and"),i&&(i+=" "),i+=s,e>0?(i+=" "+c[e-1],o=!0):o=!1}return i}(e)}function v(e){const n=e%10,t=Math.trunc(e/10)%10,r=Math.trunc(e/100);let i="";return 1===t?i=h[n]:t>=2?i=n>0?l[t]+"-"+g[n]:w[t]:n>0&&(i=g[n]),r>0?i?s[r]+" "+f+" "+i:s[r]+" hundredth":i}const N={enGH:function(e){return function(e){if(e<1000n)return v(Number(e));if(e<1000000n){const n=Number(e/1000n),t=Number(e%1000n);if(0===t)return m(n).word+" "+c[0]+"th";const{word:r}=m(n);return r+" "+c[0]+" "+v(t)}return function(e){const n=[];let t=e;for(;t>0n;)n.push(Number(t%1000n)),t/=1000n;let r=0;for(let e=0;e<n.length;e++)if(0!==n[e]){r=e;break}let i="";for(let e=n.length-1;e>=0;e--){const t=n[e];0!==t&&(i&&(i+=" "),e===r?i+=0===e?v(t):m(t).word+" "+c[e-1]+"th":(i+=m(t).word,e>0&&(i+=" "+c[e-1])))}return i}(e)}(function(e){const t=typeof e;if("bigint"===t){if(e<=0n)throw new RangeError("Ordinals must be positive integers");return e}if("number"===t){if(!Number.isFinite(e))throw new RangeError("Ordinals must be finite numbers");if(!Number.isInteger(e))throw new RangeError("Ordinals must be whole numbers");if(e<=0)throw new RangeError("Ordinals must be positive integers");return BigInt(e)}if("string"===t)return function(e){const t=e.trim();if(0===t.length)throw new RangeError("Ordinals cannot be empty strings");if("-"===t[0])throw new RangeError("Ordinals cannot be negative");if(t.includes("."))throw new RangeError("Ordinals must be whole numbers");if(r(t)){const e=n(t);if(e.includes("."))throw new RangeError("Ordinals must be whole numbers");const r=BigInt(e);if(r<=0n)throw new RangeError("Ordinals must be positive integers");return r}try{const e=BigInt(t);if(e<=0n)throw new RangeError("Ordinals must be positive integers");return e}catch(n){if(n instanceof RangeError)throw n;throw new RangeError(`Invalid ordinal format: "${e}"`)}}(e);throw new TypeError(`Invalid value type: expected number, string, or bigint, received ${t}`)}(e))}};e.currency={enGH:function(e,n){n=function(e){if(void 0===e)return{};if(function(e){if(null===e||"object"!=typeof e)return!1;const n=Object.getPrototypeOf(e);return null===n||n===Object.prototype}(e))return e;throw new TypeError("Invalid options: expected plain object or undefined, got "+typeof e)}(n);const{isNegative:r,dollars:i,cents:s}=function(e){const n=typeof e;if("bigint"===n)return e<0n?{isNegative:!0,dollars:-e,cents:0n}:{isNegative:!1,dollars:e,cents:0n};if("number"===n){if(!Number.isFinite(e))throw new RangeError("Currency must be a finite number");return Number.isSafeInteger(e)?e<0?{isNegative:!0,dollars:BigInt(-e),cents:0n}:{isNegative:!1,dollars:BigInt(e),cents:0n}:o(t(e))}if("string"===n)return o(e);throw new TypeError(`Invalid value type: expected number, string, or bigint, received ${n}`)}(e),{and:u=!0}=n;let l="";return r&&(l=d+" "),(i>0n||0n===s)&&(l+=p(i),l+=" "+(1n===i?"cedi":"cedis")),s>0n&&(i>0n&&(l+=u?" and ":" "),l+=p(s),l+=" "+(1n===s?"pesewa":"pesewas")),l}},e.enGH=function(e){const{isNegative:o,integerPart:s,decimalPart:u}=function(e){const o=typeof e;if("bigint"===o)return e<0n?{isNegative:!0,integerPart:-e}:{isNegative:!1,integerPart:e};if("number"===o){if(!Number.isFinite(e))throw new RangeError("Number must be finite (NaN and Infinity are not supported)");return Number.isSafeInteger(e)?e<0?{isNegative:!0,integerPart:BigInt(-e)}:{isNegative:!1,integerPart:BigInt(e)}:i(t(e))}if("string"===o)return i(function(e){const t=e.trim();if(0===t.length||Number.isNaN(Number(t)))throw new RangeError(`Invalid number format: "${e}"`);return r(t)?n(t):t}(e));throw new TypeError(`Invalid value type: expected number, string, or bigint, received ${o}`)}(e);let l="";return o&&(l=d+" "),l+=p(s),u&&(l+=" point "+function(e){let n="",t=0;for(;t<e.length&&"0"===e[t];)n&&(n+=" "),n+=a,t++;const r=e.slice(t);return r&&(n&&(n+=" "),n+=p(BigInt(r))),n}(u)),l},e.ordinal=N},"object"==typeof exports&&"undefined"!=typeof module?n(exports):"function"==typeof define&&define.amd?define(["exports"],n):n((e="undefined"!=typeof globalThis?globalThis:e||self).n2words=e.n2words||{});
package/dist/en-IE.js ADDED
@@ -0,0 +1,2 @@
1
+ /*! n2words/en-IE v5.0.0 | MIT License | github.com/forzagreen/n2words */
2
+ function e(e){let[n,t]=e.toLowerCase().split("e");const r=parseInt(t,10);let i="";"-"===n[0]&&(i="-",n=n.slice(1));const o=n.indexOf("."),s=-1===o?n:n.slice(0,o)+n.slice(o+1),u=(-1===o?n.length:o)+r;return u>=s.length?i+s+"0".repeat(u-s.length):u<=0?i+"0."+"0".repeat(-u)+s:i+s.slice(0,u)+"."+s.slice(u)}function n(n){const r=n.toString();return t(r)?e(r):r}function t(e){return e.includes("e")||e.includes("E")}function r(e){const n="-"===e[0];n&&(e=e.slice(1));const t=e.indexOf(".");if(-1===t)return{isNegative:n,integerPart:BigInt(e)};const r=e.slice(0,t)||"0",i=e.slice(t+1);return{isNegative:n,integerPart:BigInt(r),decimalPart:i}}function i(n){let r=n.trim();if(0===r.length||Number.isNaN(Number(r)))throw new RangeError(`Invalid currency format: "${n}"`);t(r)&&(r=e(r));const i="-"===r[0];i&&(r=r.slice(1));const o=r.indexOf(".");if(-1===o)return{isNegative:i,dollars:BigInt(r),cents:0n};const s=r.slice(0,o)||"0",u=(r.slice(o+1)+"00").slice(0,2);return{isNegative:i,dollars:BigInt(s),cents:BigInt(u)}}const o=["","one","two","three","four","five","six","seven","eight","nine"],s=["ten","eleven","twelve","thirteen","fourteen","fifteen","sixteen","seventeen","eighteen","nineteen"],u=["","","twenty","thirty","forty","fifty","sixty","seventy","eighty","ninety"],l=["thousand","million","billion","trillion","quadrillion","quintillion","sextillion","septillion","octillion","nonillion","decillion","undecillion","duodecillion","tredecillion","quattuordecillion","quindecillion","sexdecillion","septendecillion","octodecillion","novemdecillion","vigintillion"],c="hundred",a="zero",f="minus",d=["","first","second","third","fourth","fifth","sixth","seventh","eighth","ninth"],g=["tenth","eleventh","twelfth","thirteenth","fourteenth","fifteenth","sixteenth","seventeenth","eighteenth","nineteenth"],h=["","","twentieth","thirtieth","fortieth","fiftieth","sixtieth","seventieth","eightieth","ninetieth"],w={word:"",hasHundred:!1};function b(e){if(0===e)return w.word="",w.hasHundred=!1,w;const n=e%10,t=Math.trunc(e/10)%10,r=Math.trunc(e/100);let i="";return 1===t?i=s[n]:t>=2?i=n>0?u[t]+"-"+o[n]:u[t]:n>0&&(i=o[n]),r>0?(w.word=i?o[r]+" "+c+" and "+i:o[r]+" "+c,w.hasHundred=!0):(w.word=i,w.hasHundred=!1),w}function m(e){if(0n===e)return a;if(e<1000n)return b(Number(e)).word;if(e<1000000n){const n=Number(e/1000n),t=Number(e%1000n),{word:r}=b(n);let i=r+" "+l[0];if(t>0){const{word:e,hasHundred:n}=b(t);i+=n?" "+e:" and "+e}return i}return function(e){const n=[];let t=e;for(;t>0n;)n.push(Number(t%1000n)),t/=1000n;let r=-1;for(let e=0;e<n.length;e++)if(0!==n[e]){r=e;break}let i="",o=!1;for(let e=n.length-1;e>=0;e--){const t=n[e];if(0===t)continue;const{word:s,hasHundred:u}=b(t);i&&e===r&&o&&!u&&(i+=" and"),i&&(i+=" "),i+=s,e>0?(i+=" "+l[e-1],o=!0):o=!1}return i}(e)}function v(i){const{isNegative:o,integerPart:s,decimalPart:u}=function(i){const o=typeof i;if("bigint"===o)return i<0n?{isNegative:!0,integerPart:-i}:{isNegative:!1,integerPart:i};if("number"===o){if(!Number.isFinite(i))throw new RangeError("Number must be finite (NaN and Infinity are not supported)");return Number.isSafeInteger(i)?i<0?{isNegative:!0,integerPart:BigInt(-i)}:{isNegative:!1,integerPart:BigInt(i)}:r(n(i))}if("string"===o)return r(function(n){const r=n.trim();if(0===r.length||Number.isNaN(Number(r)))throw new RangeError(`Invalid number format: "${n}"`);return t(r)?e(r):r}(i));throw new TypeError(`Invalid value type: expected number, string, or bigint, received ${o}`)}(i);let l="";return o&&(l=f+" "),l+=m(s),u&&(l+=" point "+function(e){let n="",t=0;for(;t<e.length&&"0"===e[t];)n&&(n+=" "),n+=a,t++;const r=e.slice(t);return r&&(n&&(n+=" "),n+=m(BigInt(r))),n}(u)),l}function N(e){const n=e%10,t=Math.trunc(e/10)%10,r=Math.trunc(e/100);let i="";return 1===t?i=g[n]:t>=2?i=n>0?u[t]+"-"+d[n]:h[t]:n>0&&(i=d[n]),r>0?i?o[r]+" "+c+" "+i:o[r]+" hundredth":i}function p(n){return function(e){if(e<1000n)return N(Number(e));if(e<1000000n){const n=Number(e/1000n),t=Number(e%1000n);if(0===t)return b(n).word+" "+l[0]+"th";const{word:r}=b(n);return r+" "+l[0]+" "+N(t)}return function(e){const n=[];let t=e;for(;t>0n;)n.push(Number(t%1000n)),t/=1000n;let r=0;for(let e=0;e<n.length;e++)if(0!==n[e]){r=e;break}let i="";for(let e=n.length-1;e>=0;e--){const t=n[e];0!==t&&(i&&(i+=" "),e===r?i+=0===e?N(t):b(t).word+" "+l[e-1]+"th":(i+=b(t).word,e>0&&(i+=" "+l[e-1])))}return i}(e)}(function(n){const r=typeof n;if("bigint"===r){if(n<=0n)throw new RangeError("Ordinals must be positive integers");return n}if("number"===r){if(!Number.isFinite(n))throw new RangeError("Ordinals must be finite numbers");if(!Number.isInteger(n))throw new RangeError("Ordinals must be whole numbers");if(n<=0)throw new RangeError("Ordinals must be positive integers");return BigInt(n)}if("string"===r)return function(n){const r=n.trim();if(0===r.length)throw new RangeError("Ordinals cannot be empty strings");if("-"===r[0])throw new RangeError("Ordinals cannot be negative");if(r.includes("."))throw new RangeError("Ordinals must be whole numbers");if(t(r)){const n=e(r);if(n.includes("."))throw new RangeError("Ordinals must be whole numbers");const t=BigInt(n);if(t<=0n)throw new RangeError("Ordinals must be positive integers");return t}try{const e=BigInt(r);if(e<=0n)throw new RangeError("Ordinals must be positive integers");return e}catch(e){if(e instanceof RangeError)throw e;throw new RangeError(`Invalid ordinal format: "${n}"`)}}(n);throw new TypeError(`Invalid value type: expected number, string, or bigint, received ${r}`)}(n))}function y(e,t){t=function(e){if(void 0===e)return{};if(function(e){if(null===e||"object"!=typeof e)return!1;const n=Object.getPrototypeOf(e);return null===n||n===Object.prototype}(e))return e;throw new TypeError("Invalid options: expected plain object or undefined, got "+typeof e)}(t);const{isNegative:r,dollars:o,cents:s}=function(e){const t=typeof e;if("bigint"===t)return e<0n?{isNegative:!0,dollars:-e,cents:0n}:{isNegative:!1,dollars:e,cents:0n};if("number"===t){if(!Number.isFinite(e))throw new RangeError("Currency must be a finite number");return Number.isSafeInteger(e)?e<0?{isNegative:!0,dollars:BigInt(-e),cents:0n}:{isNegative:!1,dollars:BigInt(e),cents:0n}:i(n(e))}if("string"===t)return i(e);throw new TypeError(`Invalid value type: expected number, string, or bigint, received ${t}`)}(e),{and:u=!0}=t;let l="";return r&&(l=f+" "),(o>0n||0n===s)&&(l+=m(o),l+=" euro"),s>0n&&(o>0n&&(l+=u?" and ":" "),l+=m(s),l+=" "+(1n===s?"cent":"cents")),l}export{v as toCardinal,y as toCurrency,p as toOrdinal};
@@ -0,0 +1,2 @@
1
+ /*! n2words/en-IE v5.0.0 | MIT License | github.com/forzagreen/n2words */
2
+ var e,n;e=this,n=function(e){"use strict";function n(e){let[n,t]=e.toLowerCase().split("e");const r=parseInt(t,10);let i="";"-"===n[0]&&(i="-",n=n.slice(1));const o=n.indexOf("."),s=-1===o?n:n.slice(0,o)+n.slice(o+1),u=(-1===o?n.length:o)+r;return u>=s.length?i+s+"0".repeat(u-s.length):u<=0?i+"0."+"0".repeat(-u)+s:i+s.slice(0,u)+"."+s.slice(u)}function t(e){const t=e.toString();return r(t)?n(t):t}function r(e){return e.includes("e")||e.includes("E")}function i(e){const n="-"===e[0];n&&(e=e.slice(1));const t=e.indexOf(".");if(-1===t)return{isNegative:n,integerPart:BigInt(e)};const r=e.slice(0,t)||"0",i=e.slice(t+1);return{isNegative:n,integerPart:BigInt(r),decimalPart:i}}function o(e){let t=e.trim();if(0===t.length||Number.isNaN(Number(t)))throw new RangeError(`Invalid currency format: "${e}"`);r(t)&&(t=n(t));const i="-"===t[0];i&&(t=t.slice(1));const o=t.indexOf(".");if(-1===o)return{isNegative:i,dollars:BigInt(t),cents:0n};const s=t.slice(0,o)||"0",u=(t.slice(o+1)+"00").slice(0,2);return{isNegative:i,dollars:BigInt(s),cents:BigInt(u)}}const s=["","one","two","three","four","five","six","seven","eight","nine"],u=["ten","eleven","twelve","thirteen","fourteen","fifteen","sixteen","seventeen","eighteen","nineteen"],l=["","","twenty","thirty","forty","fifty","sixty","seventy","eighty","ninety"],c=["thousand","million","billion","trillion","quadrillion","quintillion","sextillion","septillion","octillion","nonillion","decillion","undecillion","duodecillion","tredecillion","quattuordecillion","quindecillion","sexdecillion","septendecillion","octodecillion","novemdecillion","vigintillion"],f="hundred",a="zero",d="minus",g=["","first","second","third","fourth","fifth","sixth","seventh","eighth","ninth"],h=["tenth","eleventh","twelfth","thirteenth","fourteenth","fifteenth","sixteenth","seventeenth","eighteenth","nineteenth"],w=["","","twentieth","thirtieth","fortieth","fiftieth","sixtieth","seventieth","eightieth","ninetieth"],b={word:"",hasHundred:!1};function m(e){if(0===e)return b.word="",b.hasHundred=!1,b;const n=e%10,t=Math.trunc(e/10)%10,r=Math.trunc(e/100);let i="";return 1===t?i=u[n]:t>=2?i=n>0?l[t]+"-"+s[n]:l[t]:n>0&&(i=s[n]),r>0?(b.word=i?s[r]+" "+f+" and "+i:s[r]+" "+f,b.hasHundred=!0):(b.word=i,b.hasHundred=!1),b}function v(e){if(0n===e)return a;if(e<1000n)return m(Number(e)).word;if(e<1000000n){const n=Number(e/1000n),t=Number(e%1000n),{word:r}=m(n);let i=r+" "+c[0];if(t>0){const{word:e,hasHundred:n}=m(t);i+=n?" "+e:" and "+e}return i}return function(e){const n=[];let t=e;for(;t>0n;)n.push(Number(t%1000n)),t/=1000n;let r=-1;for(let e=0;e<n.length;e++)if(0!==n[e]){r=e;break}let i="",o=!1;for(let e=n.length-1;e>=0;e--){const t=n[e];if(0===t)continue;const{word:s,hasHundred:u}=m(t);i&&e===r&&o&&!u&&(i+=" and"),i&&(i+=" "),i+=s,e>0?(i+=" "+c[e-1],o=!0):o=!1}return i}(e)}function p(e){const n=e%10,t=Math.trunc(e/10)%10,r=Math.trunc(e/100);let i="";return 1===t?i=h[n]:t>=2?i=n>0?l[t]+"-"+g[n]:w[t]:n>0&&(i=g[n]),r>0?i?s[r]+" "+f+" "+i:s[r]+" hundredth":i}const N={enIE:function(e){return function(e){if(e<1000n)return p(Number(e));if(e<1000000n){const n=Number(e/1000n),t=Number(e%1000n);if(0===t)return m(n).word+" "+c[0]+"th";const{word:r}=m(n);return r+" "+c[0]+" "+p(t)}return function(e){const n=[];let t=e;for(;t>0n;)n.push(Number(t%1000n)),t/=1000n;let r=0;for(let e=0;e<n.length;e++)if(0!==n[e]){r=e;break}let i="";for(let e=n.length-1;e>=0;e--){const t=n[e];0!==t&&(i&&(i+=" "),e===r?i+=0===e?p(t):m(t).word+" "+c[e-1]+"th":(i+=m(t).word,e>0&&(i+=" "+c[e-1])))}return i}(e)}(function(e){const t=typeof e;if("bigint"===t){if(e<=0n)throw new RangeError("Ordinals must be positive integers");return e}if("number"===t){if(!Number.isFinite(e))throw new RangeError("Ordinals must be finite numbers");if(!Number.isInteger(e))throw new RangeError("Ordinals must be whole numbers");if(e<=0)throw new RangeError("Ordinals must be positive integers");return BigInt(e)}if("string"===t)return function(e){const t=e.trim();if(0===t.length)throw new RangeError("Ordinals cannot be empty strings");if("-"===t[0])throw new RangeError("Ordinals cannot be negative");if(t.includes("."))throw new RangeError("Ordinals must be whole numbers");if(r(t)){const e=n(t);if(e.includes("."))throw new RangeError("Ordinals must be whole numbers");const r=BigInt(e);if(r<=0n)throw new RangeError("Ordinals must be positive integers");return r}try{const e=BigInt(t);if(e<=0n)throw new RangeError("Ordinals must be positive integers");return e}catch(n){if(n instanceof RangeError)throw n;throw new RangeError(`Invalid ordinal format: "${e}"`)}}(e);throw new TypeError(`Invalid value type: expected number, string, or bigint, received ${t}`)}(e))}};e.currency={enIE:function(e,n){n=function(e){if(void 0===e)return{};if(function(e){if(null===e||"object"!=typeof e)return!1;const n=Object.getPrototypeOf(e);return null===n||n===Object.prototype}(e))return e;throw new TypeError("Invalid options: expected plain object or undefined, got "+typeof e)}(n);const{isNegative:r,dollars:i,cents:s}=function(e){const n=typeof e;if("bigint"===n)return e<0n?{isNegative:!0,dollars:-e,cents:0n}:{isNegative:!1,dollars:e,cents:0n};if("number"===n){if(!Number.isFinite(e))throw new RangeError("Currency must be a finite number");return Number.isSafeInteger(e)?e<0?{isNegative:!0,dollars:BigInt(-e),cents:0n}:{isNegative:!1,dollars:BigInt(e),cents:0n}:o(t(e))}if("string"===n)return o(e);throw new TypeError(`Invalid value type: expected number, string, or bigint, received ${n}`)}(e),{and:u=!0}=n;let l="";return r&&(l=d+" "),(i>0n||0n===s)&&(l+=v(i),l+=" euro"),s>0n&&(i>0n&&(l+=u?" and ":" "),l+=v(s),l+=" "+(1n===s?"cent":"cents")),l}},e.enIE=function(e){const{isNegative:o,integerPart:s,decimalPart:u}=function(e){const o=typeof e;if("bigint"===o)return e<0n?{isNegative:!0,integerPart:-e}:{isNegative:!1,integerPart:e};if("number"===o){if(!Number.isFinite(e))throw new RangeError("Number must be finite (NaN and Infinity are not supported)");return Number.isSafeInteger(e)?e<0?{isNegative:!0,integerPart:BigInt(-e)}:{isNegative:!1,integerPart:BigInt(e)}:i(t(e))}if("string"===o)return i(function(e){const t=e.trim();if(0===t.length||Number.isNaN(Number(t)))throw new RangeError(`Invalid number format: "${e}"`);return r(t)?n(t):t}(e));throw new TypeError(`Invalid value type: expected number, string, or bigint, received ${o}`)}(e);let l="";return o&&(l=d+" "),l+=v(s),u&&(l+=" point "+function(e){let n="",t=0;for(;t<e.length&&"0"===e[t];)n&&(n+=" "),n+=a,t++;const r=e.slice(t);return r&&(n&&(n+=" "),n+=v(BigInt(r))),n}(u)),l},e.ordinal=N},"object"==typeof exports&&"undefined"!=typeof module?n(exports):"function"==typeof define&&define.amd?define(["exports"],n):n((e="undefined"!=typeof globalThis?globalThis:e||self).n2words=e.n2words||{});
package/dist/en-IN.js ADDED
@@ -0,0 +1,2 @@
1
+ /*! n2words/en-IN v5.0.0 | MIT License | github.com/forzagreen/n2words */
2
+ function e(e){let[n,t]=e.toLowerCase().split("e");const r=parseInt(t,10);let i="";"-"===n[0]&&(i="-",n=n.slice(1));const s=n.indexOf("."),o=-1===s?n:n.slice(0,s)+n.slice(s+1),u=(-1===s?n.length:s)+r;return u>=o.length?i+o+"0".repeat(u-o.length):u<=0?i+"0."+"0".repeat(-u)+o:i+o.slice(0,u)+"."+o.slice(u)}function n(n){const r=n.toString();return t(r)?e(r):r}function t(e){return e.includes("e")||e.includes("E")}function r(e){const n="-"===e[0];n&&(e=e.slice(1));const t=e.indexOf(".");if(-1===t)return{isNegative:n,integerPart:BigInt(e)};const r=e.slice(0,t)||"0",i=e.slice(t+1);return{isNegative:n,integerPart:BigInt(r),decimalPart:i}}function i(n){let r=n.trim();if(0===r.length||Number.isNaN(Number(r)))throw new RangeError(`Invalid currency format: "${n}"`);t(r)&&(r=e(r));const i="-"===r[0];i&&(r=r.slice(1));const s=r.indexOf(".");if(-1===s)return{isNegative:i,dollars:BigInt(r),cents:0n};const o=r.slice(0,s)||"0",u=(r.slice(s+1)+"00").slice(0,2);return{isNegative:i,dollars:BigInt(o),cents:BigInt(u)}}const s=["","one","two","three","four","five","six","seven","eight","nine"],o=["ten","eleven","twelve","thirteen","fourteen","fifteen","sixteen","seventeen","eighteen","nineteen"],u=["","","twenty","thirty","forty","fifty","sixty","seventy","eighty","ninety"],a=["thousand","lakh","crore","arab","kharab","neel","padma","shankh"],c="hundred",f="zero",h="minus",l=["","first","second","third","fourth","fifth","sixth","seventh","eighth","ninth"],g=["tenth","eleventh","twelfth","thirteenth","fourteenth","fifteenth","sixteenth","seventeenth","eighteenth","nineteenth"],d=["","","twentieth","thirtieth","fortieth","fiftieth","sixtieth","seventieth","eightieth","ninetieth"],w={word:"",hasHundred:!1};function b(e){if(0===e)return w.word="",w.hasHundred=!1,w;const n=e%10,t=Math.trunc(e/10)%10,r=Math.trunc(e/100);let i="";return 1===t?i=o[n]:t>=2?i=n>0?u[t]+"-"+s[n]:u[t]:n>0&&(i=s[n]),r>0?(w.word=i?s[r]+" "+c+" and "+i:s[r]+" "+c,w.hasHundred=!0):(w.word=i,w.hasHundred=!1),w}function p(e){if(0===e)return"";const n=e%10,t=Math.trunc(e/10);return 1===t?o[n]:t>=2?n>0?u[t]+"-"+s[n]:u[t]:s[n]}function m(e){if(0n===e)return f;if(e<1000n)return b(Number(e)).word;const n=[];n.push(Number(e%1000n));let t=e/1000n;for(;t>0n;)n.push(Number(t%100n)),t/=100n;const r=[];for(let e=n.length-1;e>=0;e--){const t=n[e];if(0!==t)if(0===e){const{word:e,hasHundred:n}=b(t);r.length>0&&!n&&r.push("and"),r.push(e)}else r.push(p(t)),a[e-1]&&r.push(a[e-1])}return r.join(" ")}function v(i){const{isNegative:s,integerPart:o,decimalPart:u}=function(i){const s=typeof i;if("bigint"===s)return i<0n?{isNegative:!0,integerPart:-i}:{isNegative:!1,integerPart:i};if("number"===s){if(!Number.isFinite(i))throw new RangeError("Number must be finite (NaN and Infinity are not supported)");return Number.isSafeInteger(i)?i<0?{isNegative:!0,integerPart:BigInt(-i)}:{isNegative:!1,integerPart:BigInt(i)}:r(n(i))}if("string"===s)return r(function(n){const r=n.trim();if(0===r.length||Number.isNaN(Number(r)))throw new RangeError(`Invalid number format: "${n}"`);return t(r)?e(r):r}(i));throw new TypeError(`Invalid value type: expected number, string, or bigint, received ${s}`)}(i);let a="";return s&&(a=h+" "),a+=m(o),u&&(a+=" point "+function(e){let n="",t=0;for(;t<e.length&&"0"===e[t];)n&&(n+=" "),n+=f,t++;const r=e.slice(t);return r&&(n&&(n+=" "),n+=m(BigInt(r))),n}(u)),a}function N(e){const n=e%10,t=Math.trunc(e/10)%10,r=Math.trunc(e/100);let i="";return 1===t?i=g[n]:t>=2?i=n>0?u[t]+"-"+l[n]:d[t]:n>0&&(i=l[n]),r>0?i?s[r]+" "+c+" "+i:s[r]+" hundredth":i}function y(n){return function(e){if(e<1000n)return N(Number(e));const n=[];n.push(Number(e%1000n));let t=e/1000n;for(;t>0n;)n.push(Number(t%100n)),t/=100n;let r=0;for(let e=0;e<n.length;e++)if(0!==n[e]){r=e;break}const i=[];for(let e=n.length-1;e>=0;e--){const t=n[e];0!==t&&(e===r?0===e?i.push(N(t)):(i.push(p(t)),i.push(a[e-1]+"th")):0===e?i.push(b(t).word):(i.push(p(t)),i.push(a[e-1])))}return i.join(" ")}(function(n){const r=typeof n;if("bigint"===r){if(n<=0n)throw new RangeError("Ordinals must be positive integers");return n}if("number"===r){if(!Number.isFinite(n))throw new RangeError("Ordinals must be finite numbers");if(!Number.isInteger(n))throw new RangeError("Ordinals must be whole numbers");if(n<=0)throw new RangeError("Ordinals must be positive integers");return BigInt(n)}if("string"===r)return function(n){const r=n.trim();if(0===r.length)throw new RangeError("Ordinals cannot be empty strings");if("-"===r[0])throw new RangeError("Ordinals cannot be negative");if(r.includes("."))throw new RangeError("Ordinals must be whole numbers");if(t(r)){const n=e(r);if(n.includes("."))throw new RangeError("Ordinals must be whole numbers");const t=BigInt(n);if(t<=0n)throw new RangeError("Ordinals must be positive integers");return t}try{const e=BigInt(r);if(e<=0n)throw new RangeError("Ordinals must be positive integers");return e}catch(e){if(e instanceof RangeError)throw e;throw new RangeError(`Invalid ordinal format: "${n}"`)}}(n);throw new TypeError(`Invalid value type: expected number, string, or bigint, received ${r}`)}(n))}function I(e,t){t=function(e){if(void 0===e)return{};if(function(e){if(null===e||"object"!=typeof e)return!1;const n=Object.getPrototypeOf(e);return null===n||n===Object.prototype}(e))return e;throw new TypeError("Invalid options: expected plain object or undefined, got "+typeof e)}(t);const{isNegative:r,dollars:s,cents:o}=function(e){const t=typeof e;if("bigint"===t)return e<0n?{isNegative:!0,dollars:-e,cents:0n}:{isNegative:!1,dollars:e,cents:0n};if("number"===t){if(!Number.isFinite(e))throw new RangeError("Currency must be a finite number");return Number.isSafeInteger(e)?e<0?{isNegative:!0,dollars:BigInt(-e),cents:0n}:{isNegative:!1,dollars:BigInt(e),cents:0n}:i(n(e))}if("string"===t)return i(e);throw new TypeError(`Invalid value type: expected number, string, or bigint, received ${t}`)}(e),{and:u=!0}=t;let a="";return r&&(a=h+" "),(s>0n||0n===o)&&(a+=m(s),a+=" "+(1n===s?"rupee":"rupees")),o>0n&&(s>0n&&(a+=u?" and ":" "),a+=m(o),a+=" "+(1n===o?"paisa":"paise")),a}export{v as toCardinal,I as toCurrency,y as toOrdinal};
@@ -0,0 +1,2 @@
1
+ /*! n2words/en-IN v5.0.0 | MIT License | github.com/forzagreen/n2words */
2
+ var e,n;e=this,n=function(e){"use strict";function n(e){let[n,t]=e.toLowerCase().split("e");const r=parseInt(t,10);let i="";"-"===n[0]&&(i="-",n=n.slice(1));const o=n.indexOf("."),s=-1===o?n:n.slice(0,o)+n.slice(o+1),u=(-1===o?n.length:o)+r;return u>=s.length?i+s+"0".repeat(u-s.length):u<=0?i+"0."+"0".repeat(-u)+s:i+s.slice(0,u)+"."+s.slice(u)}function t(e){const t=e.toString();return r(t)?n(t):t}function r(e){return e.includes("e")||e.includes("E")}function i(e){const n="-"===e[0];n&&(e=e.slice(1));const t=e.indexOf(".");if(-1===t)return{isNegative:n,integerPart:BigInt(e)};const r=e.slice(0,t)||"0",i=e.slice(t+1);return{isNegative:n,integerPart:BigInt(r),decimalPart:i}}function o(e){let t=e.trim();if(0===t.length||Number.isNaN(Number(t)))throw new RangeError(`Invalid currency format: "${e}"`);r(t)&&(t=n(t));const i="-"===t[0];i&&(t=t.slice(1));const o=t.indexOf(".");if(-1===o)return{isNegative:i,dollars:BigInt(t),cents:0n};const s=t.slice(0,o)||"0",u=(t.slice(o+1)+"00").slice(0,2);return{isNegative:i,dollars:BigInt(s),cents:BigInt(u)}}const s=["","one","two","three","four","five","six","seven","eight","nine"],u=["ten","eleven","twelve","thirteen","fourteen","fifteen","sixteen","seventeen","eighteen","nineteen"],a=["","","twenty","thirty","forty","fifty","sixty","seventy","eighty","ninety"],f=["thousand","lakh","crore","arab","kharab","neel","padma","shankh"],c="hundred",h="zero",l="minus",g=["","first","second","third","fourth","fifth","sixth","seventh","eighth","ninth"],d=["tenth","eleventh","twelfth","thirteenth","fourteenth","fifteenth","sixteenth","seventeenth","eighteenth","nineteenth"],p=["","","twentieth","thirtieth","fortieth","fiftieth","sixtieth","seventieth","eightieth","ninetieth"],b={word:"",hasHundred:!1};function w(e){if(0===e)return b.word="",b.hasHundred=!1,b;const n=e%10,t=Math.trunc(e/10)%10,r=Math.trunc(e/100);let i="";return 1===t?i=u[n]:t>=2?i=n>0?a[t]+"-"+s[n]:a[t]:n>0&&(i=s[n]),r>0?(b.word=i?s[r]+" "+c+" and "+i:s[r]+" "+c,b.hasHundred=!0):(b.word=i,b.hasHundred=!1),b}function m(e){if(0===e)return"";const n=e%10,t=Math.trunc(e/10);return 1===t?u[n]:t>=2?n>0?a[t]+"-"+s[n]:a[t]:s[n]}function v(e){if(0n===e)return h;if(e<1000n)return w(Number(e)).word;const n=[];n.push(Number(e%1000n));let t=e/1000n;for(;t>0n;)n.push(Number(t%100n)),t/=100n;const r=[];for(let e=n.length-1;e>=0;e--){const t=n[e];if(0!==t)if(0===e){const{word:e,hasHundred:n}=w(t);r.length>0&&!n&&r.push("and"),r.push(e)}else r.push(m(t)),f[e-1]&&r.push(f[e-1])}return r.join(" ")}function N(e){const n=e%10,t=Math.trunc(e/10)%10,r=Math.trunc(e/100);let i="";return 1===t?i=d[n]:t>=2?i=n>0?a[t]+"-"+g[n]:p[t]:n>0&&(i=g[n]),r>0?i?s[r]+" "+c+" "+i:s[r]+" hundredth":i}const y={enIN:function(e){return function(e){if(e<1000n)return N(Number(e));const n=[];n.push(Number(e%1000n));let t=e/1000n;for(;t>0n;)n.push(Number(t%100n)),t/=100n;let r=0;for(let e=0;e<n.length;e++)if(0!==n[e]){r=e;break}const i=[];for(let e=n.length-1;e>=0;e--){const t=n[e];0!==t&&(e===r?0===e?i.push(N(t)):(i.push(m(t)),i.push(f[e-1]+"th")):0===e?i.push(w(t).word):(i.push(m(t)),i.push(f[e-1])))}return i.join(" ")}(function(e){const t=typeof e;if("bigint"===t){if(e<=0n)throw new RangeError("Ordinals must be positive integers");return e}if("number"===t){if(!Number.isFinite(e))throw new RangeError("Ordinals must be finite numbers");if(!Number.isInteger(e))throw new RangeError("Ordinals must be whole numbers");if(e<=0)throw new RangeError("Ordinals must be positive integers");return BigInt(e)}if("string"===t)return function(e){const t=e.trim();if(0===t.length)throw new RangeError("Ordinals cannot be empty strings");if("-"===t[0])throw new RangeError("Ordinals cannot be negative");if(t.includes("."))throw new RangeError("Ordinals must be whole numbers");if(r(t)){const e=n(t);if(e.includes("."))throw new RangeError("Ordinals must be whole numbers");const r=BigInt(e);if(r<=0n)throw new RangeError("Ordinals must be positive integers");return r}try{const e=BigInt(t);if(e<=0n)throw new RangeError("Ordinals must be positive integers");return e}catch(n){if(n instanceof RangeError)throw n;throw new RangeError(`Invalid ordinal format: "${e}"`)}}(e);throw new TypeError(`Invalid value type: expected number, string, or bigint, received ${t}`)}(e))}};e.currency={enIN:function(e,n){n=function(e){if(void 0===e)return{};if(function(e){if(null===e||"object"!=typeof e)return!1;const n=Object.getPrototypeOf(e);return null===n||n===Object.prototype}(e))return e;throw new TypeError("Invalid options: expected plain object or undefined, got "+typeof e)}(n);const{isNegative:r,dollars:i,cents:s}=function(e){const n=typeof e;if("bigint"===n)return e<0n?{isNegative:!0,dollars:-e,cents:0n}:{isNegative:!1,dollars:e,cents:0n};if("number"===n){if(!Number.isFinite(e))throw new RangeError("Currency must be a finite number");return Number.isSafeInteger(e)?e<0?{isNegative:!0,dollars:BigInt(-e),cents:0n}:{isNegative:!1,dollars:BigInt(e),cents:0n}:o(t(e))}if("string"===n)return o(e);throw new TypeError(`Invalid value type: expected number, string, or bigint, received ${n}`)}(e),{and:u=!0}=n;let a="";return r&&(a=l+" "),(i>0n||0n===s)&&(a+=v(i),a+=" "+(1n===i?"rupee":"rupees")),s>0n&&(i>0n&&(a+=u?" and ":" "),a+=v(s),a+=" "+(1n===s?"paisa":"paise")),a}},e.enIN=function(e){const{isNegative:o,integerPart:s,decimalPart:u}=function(e){const o=typeof e;if("bigint"===o)return e<0n?{isNegative:!0,integerPart:-e}:{isNegative:!1,integerPart:e};if("number"===o){if(!Number.isFinite(e))throw new RangeError("Number must be finite (NaN and Infinity are not supported)");return Number.isSafeInteger(e)?e<0?{isNegative:!0,integerPart:BigInt(-e)}:{isNegative:!1,integerPart:BigInt(e)}:i(t(e))}if("string"===o)return i(function(e){const t=e.trim();if(0===t.length||Number.isNaN(Number(t)))throw new RangeError(`Invalid number format: "${e}"`);return r(t)?n(t):t}(e));throw new TypeError(`Invalid value type: expected number, string, or bigint, received ${o}`)}(e);let a="";return o&&(a=l+" "),a+=v(s),u&&(a+=" point "+function(e){let n="",t=0;for(;t<e.length&&"0"===e[t];)n&&(n+=" "),n+=h,t++;const r=e.slice(t);return r&&(n&&(n+=" "),n+=v(BigInt(r))),n}(u)),a},e.ordinal=y},"object"==typeof exports&&"undefined"!=typeof module?n(exports):"function"==typeof define&&define.amd?define(["exports"],n):n((e="undefined"!=typeof globalThis?globalThis:e||self).n2words=e.n2words||{});
package/dist/en-KE.js ADDED
@@ -0,0 +1,2 @@
1
+ /*! n2words/en-KE v5.0.0 | MIT License | github.com/forzagreen/n2words */
2
+ function e(e){let[n,t]=e.toLowerCase().split("e");const r=parseInt(t,10);let i="";"-"===n[0]&&(i="-",n=n.slice(1));const o=n.indexOf("."),s=-1===o?n:n.slice(0,o)+n.slice(o+1),u=(-1===o?n.length:o)+r;return u>=s.length?i+s+"0".repeat(u-s.length):u<=0?i+"0."+"0".repeat(-u)+s:i+s.slice(0,u)+"."+s.slice(u)}function n(n){const r=n.toString();return t(r)?e(r):r}function t(e){return e.includes("e")||e.includes("E")}function r(e){const n="-"===e[0];n&&(e=e.slice(1));const t=e.indexOf(".");if(-1===t)return{isNegative:n,integerPart:BigInt(e)};const r=e.slice(0,t)||"0",i=e.slice(t+1);return{isNegative:n,integerPart:BigInt(r),decimalPart:i}}function i(n){let r=n.trim();if(0===r.length||Number.isNaN(Number(r)))throw new RangeError(`Invalid currency format: "${n}"`);t(r)&&(r=e(r));const i="-"===r[0];i&&(r=r.slice(1));const o=r.indexOf(".");if(-1===o)return{isNegative:i,dollars:BigInt(r),cents:0n};const s=r.slice(0,o)||"0",u=(r.slice(o+1)+"00").slice(0,2);return{isNegative:i,dollars:BigInt(s),cents:BigInt(u)}}const o=["","one","two","three","four","five","six","seven","eight","nine"],s=["ten","eleven","twelve","thirteen","fourteen","fifteen","sixteen","seventeen","eighteen","nineteen"],u=["","","twenty","thirty","forty","fifty","sixty","seventy","eighty","ninety"],l=["thousand","million","billion","trillion","quadrillion","quintillion","sextillion","septillion","octillion","nonillion","decillion","undecillion","duodecillion","tredecillion","quattuordecillion","quindecillion","sexdecillion","septendecillion","octodecillion","novemdecillion","vigintillion"],c="hundred",a="zero",f="minus",d=["","first","second","third","fourth","fifth","sixth","seventh","eighth","ninth"],g=["tenth","eleventh","twelfth","thirteenth","fourteenth","fifteenth","sixteenth","seventeenth","eighteenth","nineteenth"],h=["","","twentieth","thirtieth","fortieth","fiftieth","sixtieth","seventieth","eightieth","ninetieth"],w={word:"",hasHundred:!1};function b(e){if(0===e)return w.word="",w.hasHundred=!1,w;const n=e%10,t=Math.trunc(e/10)%10,r=Math.trunc(e/100);let i="";return 1===t?i=s[n]:t>=2?i=n>0?u[t]+"-"+o[n]:u[t]:n>0&&(i=o[n]),r>0?(w.word=i?o[r]+" "+c+" and "+i:o[r]+" "+c,w.hasHundred=!0):(w.word=i,w.hasHundred=!1),w}function m(e){if(0n===e)return a;if(e<1000n)return b(Number(e)).word;if(e<1000000n){const n=Number(e/1000n),t=Number(e%1000n),{word:r}=b(n);let i=r+" "+l[0];if(t>0){const{word:e,hasHundred:n}=b(t);i+=n?" "+e:" and "+e}return i}return function(e){const n=[];let t=e;for(;t>0n;)n.push(Number(t%1000n)),t/=1000n;let r=-1;for(let e=0;e<n.length;e++)if(0!==n[e]){r=e;break}let i="",o=!1;for(let e=n.length-1;e>=0;e--){const t=n[e];if(0===t)continue;const{word:s,hasHundred:u}=b(t);i&&e===r&&o&&!u&&(i+=" and"),i&&(i+=" "),i+=s,e>0?(i+=" "+l[e-1],o=!0):o=!1}return i}(e)}function v(i){const{isNegative:o,integerPart:s,decimalPart:u}=function(i){const o=typeof i;if("bigint"===o)return i<0n?{isNegative:!0,integerPart:-i}:{isNegative:!1,integerPart:i};if("number"===o){if(!Number.isFinite(i))throw new RangeError("Number must be finite (NaN and Infinity are not supported)");return Number.isSafeInteger(i)?i<0?{isNegative:!0,integerPart:BigInt(-i)}:{isNegative:!1,integerPart:BigInt(i)}:r(n(i))}if("string"===o)return r(function(n){const r=n.trim();if(0===r.length||Number.isNaN(Number(r)))throw new RangeError(`Invalid number format: "${n}"`);return t(r)?e(r):r}(i));throw new TypeError(`Invalid value type: expected number, string, or bigint, received ${o}`)}(i);let l="";return o&&(l=f+" "),l+=m(s),u&&(l+=" point "+function(e){let n="",t=0;for(;t<e.length&&"0"===e[t];)n&&(n+=" "),n+=a,t++;const r=e.slice(t);return r&&(n&&(n+=" "),n+=m(BigInt(r))),n}(u)),l}function N(e){const n=e%10,t=Math.trunc(e/10)%10,r=Math.trunc(e/100);let i="";return 1===t?i=g[n]:t>=2?i=n>0?u[t]+"-"+d[n]:h[t]:n>0&&(i=d[n]),r>0?i?o[r]+" "+c+" "+i:o[r]+" hundredth":i}function p(n){return function(e){if(e<1000n)return N(Number(e));if(e<1000000n){const n=Number(e/1000n),t=Number(e%1000n);if(0===t)return b(n).word+" "+l[0]+"th";const{word:r}=b(n);return r+" "+l[0]+" "+N(t)}return function(e){const n=[];let t=e;for(;t>0n;)n.push(Number(t%1000n)),t/=1000n;let r=0;for(let e=0;e<n.length;e++)if(0!==n[e]){r=e;break}let i="";for(let e=n.length-1;e>=0;e--){const t=n[e];0!==t&&(i&&(i+=" "),e===r?i+=0===e?N(t):b(t).word+" "+l[e-1]+"th":(i+=b(t).word,e>0&&(i+=" "+l[e-1])))}return i}(e)}(function(n){const r=typeof n;if("bigint"===r){if(n<=0n)throw new RangeError("Ordinals must be positive integers");return n}if("number"===r){if(!Number.isFinite(n))throw new RangeError("Ordinals must be finite numbers");if(!Number.isInteger(n))throw new RangeError("Ordinals must be whole numbers");if(n<=0)throw new RangeError("Ordinals must be positive integers");return BigInt(n)}if("string"===r)return function(n){const r=n.trim();if(0===r.length)throw new RangeError("Ordinals cannot be empty strings");if("-"===r[0])throw new RangeError("Ordinals cannot be negative");if(r.includes("."))throw new RangeError("Ordinals must be whole numbers");if(t(r)){const n=e(r);if(n.includes("."))throw new RangeError("Ordinals must be whole numbers");const t=BigInt(n);if(t<=0n)throw new RangeError("Ordinals must be positive integers");return t}try{const e=BigInt(r);if(e<=0n)throw new RangeError("Ordinals must be positive integers");return e}catch(e){if(e instanceof RangeError)throw e;throw new RangeError(`Invalid ordinal format: "${n}"`)}}(n);throw new TypeError(`Invalid value type: expected number, string, or bigint, received ${r}`)}(n))}function y(e,t){t=function(e){if(void 0===e)return{};if(function(e){if(null===e||"object"!=typeof e)return!1;const n=Object.getPrototypeOf(e);return null===n||n===Object.prototype}(e))return e;throw new TypeError("Invalid options: expected plain object or undefined, got "+typeof e)}(t);const{isNegative:r,dollars:o,cents:s}=function(e){const t=typeof e;if("bigint"===t)return e<0n?{isNegative:!0,dollars:-e,cents:0n}:{isNegative:!1,dollars:e,cents:0n};if("number"===t){if(!Number.isFinite(e))throw new RangeError("Currency must be a finite number");return Number.isSafeInteger(e)?e<0?{isNegative:!0,dollars:BigInt(-e),cents:0n}:{isNegative:!1,dollars:BigInt(e),cents:0n}:i(n(e))}if("string"===t)return i(e);throw new TypeError(`Invalid value type: expected number, string, or bigint, received ${t}`)}(e),{and:u=!0}=t;let l="";return r&&(l=f+" "),(o>0n||0n===s)&&(l+=m(o),l+=" "+(1n===o?"shilling":"shillings")),s>0n&&(o>0n&&(l+=u?" and ":" "),l+=m(s),l+=" "+(1n===s?"cent":"cents")),l}export{v as toCardinal,y as toCurrency,p as toOrdinal};