n2words 1.24.0 → 2.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 (349) hide show
  1. package/README.md +285 -156
  2. package/dist/ArabicConverter.js +3 -0
  3. package/dist/ArabicConverter.js.map +1 -0
  4. package/dist/AzerbaijaniConverter.js +3 -0
  5. package/dist/AzerbaijaniConverter.js.map +1 -0
  6. package/dist/BanglaConverter.js +3 -0
  7. package/dist/BanglaConverter.js.map +1 -0
  8. package/dist/BiblicalHebrewConverter.js +3 -0
  9. package/dist/BiblicalHebrewConverter.js.map +1 -0
  10. package/dist/CroatianConverter.js +3 -0
  11. package/dist/CroatianConverter.js.map +1 -0
  12. package/dist/CzechConverter.js +3 -0
  13. package/dist/CzechConverter.js.map +1 -0
  14. package/dist/DanishConverter.js +3 -0
  15. package/dist/DanishConverter.js.map +1 -0
  16. package/dist/DutchConverter.js +3 -0
  17. package/dist/DutchConverter.js.map +1 -0
  18. package/dist/EnglishConverter.js +3 -0
  19. package/dist/EnglishConverter.js.map +1 -0
  20. package/dist/FilipinoConverter.js +3 -0
  21. package/dist/FilipinoConverter.js.map +1 -0
  22. package/dist/FrenchBelgiumConverter.js +3 -0
  23. package/dist/FrenchBelgiumConverter.js.map +1 -0
  24. package/dist/FrenchConverter.js +3 -0
  25. package/dist/FrenchConverter.js.map +1 -0
  26. package/dist/GermanConverter.js +3 -0
  27. package/dist/GermanConverter.js.map +1 -0
  28. package/dist/GreekConverter.js +3 -0
  29. package/dist/GreekConverter.js.map +1 -0
  30. package/dist/GujaratiConverter.js +3 -0
  31. package/dist/GujaratiConverter.js.map +1 -0
  32. package/dist/HebrewConverter.js +3 -0
  33. package/dist/HebrewConverter.js.map +1 -0
  34. package/dist/HindiConverter.js +3 -0
  35. package/dist/HindiConverter.js.map +1 -0
  36. package/dist/HungarianConverter.js +3 -0
  37. package/dist/HungarianConverter.js.map +1 -0
  38. package/dist/IndonesianConverter.js +3 -0
  39. package/dist/IndonesianConverter.js.map +1 -0
  40. package/dist/ItalianConverter.js +3 -0
  41. package/dist/ItalianConverter.js.map +1 -0
  42. package/dist/JapaneseConverter.js +3 -0
  43. package/dist/JapaneseConverter.js.map +1 -0
  44. package/dist/KannadaConverter.js +3 -0
  45. package/dist/KannadaConverter.js.map +1 -0
  46. package/dist/KoreanConverter.js +3 -0
  47. package/dist/KoreanConverter.js.map +1 -0
  48. package/dist/LatvianConverter.js +3 -0
  49. package/dist/LatvianConverter.js.map +1 -0
  50. package/dist/LithuanianConverter.js +3 -0
  51. package/dist/LithuanianConverter.js.map +1 -0
  52. package/dist/MalayConverter.js +3 -0
  53. package/dist/MalayConverter.js.map +1 -0
  54. package/dist/MarathiConverter.js +3 -0
  55. package/dist/MarathiConverter.js.map +1 -0
  56. package/dist/NorwegianBokmalConverter.js +3 -0
  57. package/dist/NorwegianBokmalConverter.js.map +1 -0
  58. package/dist/PersianConverter.js +3 -0
  59. package/dist/PersianConverter.js.map +1 -0
  60. package/dist/PolishConverter.js +3 -0
  61. package/dist/PolishConverter.js.map +1 -0
  62. package/dist/PortugueseConverter.js +3 -0
  63. package/dist/PortugueseConverter.js.map +1 -0
  64. package/dist/PunjabiConverter.js +3 -0
  65. package/dist/PunjabiConverter.js.map +1 -0
  66. package/dist/RomanianConverter.js +3 -0
  67. package/dist/RomanianConverter.js.map +1 -0
  68. package/dist/RussianConverter.js +3 -0
  69. package/dist/RussianConverter.js.map +1 -0
  70. package/dist/SerbianCyrillicConverter.js +3 -0
  71. package/dist/SerbianCyrillicConverter.js.map +1 -0
  72. package/dist/SerbianLatinConverter.js +3 -0
  73. package/dist/SerbianLatinConverter.js.map +1 -0
  74. package/dist/SimplifiedChineseConverter.js +3 -0
  75. package/dist/SimplifiedChineseConverter.js.map +1 -0
  76. package/dist/SpanishConverter.js +3 -0
  77. package/dist/SpanishConverter.js.map +1 -0
  78. package/dist/SwahiliConverter.js +3 -0
  79. package/dist/SwahiliConverter.js.map +1 -0
  80. package/dist/SwedishConverter.js +3 -0
  81. package/dist/SwedishConverter.js.map +1 -0
  82. package/dist/TamilConverter.js +3 -0
  83. package/dist/TamilConverter.js.map +1 -0
  84. package/dist/TeluguConverter.js +3 -0
  85. package/dist/TeluguConverter.js.map +1 -0
  86. package/dist/ThaiConverter.js +3 -0
  87. package/dist/ThaiConverter.js.map +1 -0
  88. package/dist/TraditionalChineseConverter.js +3 -0
  89. package/dist/TraditionalChineseConverter.js.map +1 -0
  90. package/dist/TurkishConverter.js +3 -0
  91. package/dist/TurkishConverter.js.map +1 -0
  92. package/dist/UkrainianConverter.js +3 -0
  93. package/dist/UkrainianConverter.js.map +1 -0
  94. package/dist/UrduConverter.js +3 -0
  95. package/dist/UrduConverter.js.map +1 -0
  96. package/dist/VietnameseConverter.js +3 -0
  97. package/dist/VietnameseConverter.js.map +1 -0
  98. package/dist/n2words.js +3 -2
  99. package/dist/n2words.js.map +1 -1
  100. package/lib/classes/abstract-language.d.ts +178 -0
  101. package/lib/classes/abstract-language.js +192 -185
  102. package/lib/classes/greedy-scale-language.d.ts +109 -0
  103. package/lib/classes/greedy-scale-language.js +96 -90
  104. package/lib/classes/slavic-language.d.ts +148 -0
  105. package/lib/classes/slavic-language.js +136 -106
  106. package/lib/classes/south-asian-language.d.ts +70 -0
  107. package/lib/classes/south-asian-language.js +58 -65
  108. package/lib/classes/turkic-language.d.ts +26 -0
  109. package/lib/classes/turkic-language.js +22 -26
  110. package/lib/languages/ar.d.ts +30 -0
  111. package/lib/languages/ar.js +49 -133
  112. package/lib/languages/az.d.ts +12 -0
  113. package/lib/languages/az.js +7 -23
  114. package/lib/languages/bn.d.ts +11 -0
  115. package/lib/languages/bn.js +12 -7
  116. package/lib/languages/cs.d.ts +88 -0
  117. package/lib/languages/cs.js +44 -113
  118. package/lib/languages/da.d.ts +15 -0
  119. package/lib/languages/da.js +40 -87
  120. package/lib/languages/de.d.ts +14 -0
  121. package/lib/languages/de.js +34 -68
  122. package/lib/languages/el.d.ts +14 -0
  123. package/lib/languages/el.js +22 -48
  124. package/lib/languages/en.d.ts +16 -0
  125. package/lib/languages/en.js +22 -59
  126. package/lib/languages/es.d.ts +15 -0
  127. package/lib/languages/es.js +49 -81
  128. package/lib/languages/fa.d.ts +47 -0
  129. package/lib/languages/fa.js +90 -73
  130. package/lib/languages/fil.d.ts +16 -0
  131. package/lib/languages/fil.js +35 -76
  132. package/lib/languages/fr-BE.d.ts +11 -0
  133. package/lib/languages/fr-BE.js +15 -51
  134. package/lib/languages/fr.d.ts +15 -0
  135. package/lib/languages/fr.js +33 -72
  136. package/lib/languages/gu.d.ts +11 -0
  137. package/lib/languages/gu.js +10 -34
  138. package/lib/languages/hbo.d.ts +113 -0
  139. package/lib/languages/hbo.js +251 -0
  140. package/lib/languages/he.d.ts +80 -0
  141. package/lib/languages/he.js +41 -164
  142. package/lib/languages/hi.d.ts +11 -0
  143. package/lib/languages/hi.js +12 -7
  144. package/lib/languages/hr.d.ts +80 -0
  145. package/lib/languages/hr.js +51 -95
  146. package/lib/languages/hu.d.ts +22 -0
  147. package/lib/languages/hu.js +35 -53
  148. package/lib/languages/id.d.ts +37 -0
  149. package/lib/languages/id.js +29 -44
  150. package/lib/languages/it.d.ts +37 -0
  151. package/lib/languages/it.js +36 -52
  152. package/lib/languages/ja.d.ts +17 -0
  153. package/lib/languages/ja.js +22 -75
  154. package/lib/languages/kn.d.ts +11 -0
  155. package/lib/languages/kn.js +10 -39
  156. package/lib/languages/ko.d.ts +14 -0
  157. package/lib/languages/ko.js +17 -45
  158. package/lib/languages/lt.d.ts +70 -0
  159. package/lib/languages/lt.js +28 -63
  160. package/lib/languages/lv.d.ts +70 -0
  161. package/lib/languages/lv.js +35 -58
  162. package/lib/languages/mr.d.ts +11 -0
  163. package/lib/languages/mr.js +10 -34
  164. package/lib/languages/ms.d.ts +31 -0
  165. package/lib/languages/ms.js +24 -20
  166. package/lib/languages/nb.d.ts +12 -0
  167. package/lib/languages/nb.js +36 -56
  168. package/lib/languages/nl.d.ts +16 -0
  169. package/lib/languages/nl.js +58 -109
  170. package/lib/languages/pa.d.ts +11 -0
  171. package/lib/languages/{pa-Guru.js → pa.js} +12 -7
  172. package/lib/languages/pl.d.ts +80 -0
  173. package/lib/languages/pl.js +26 -105
  174. package/lib/languages/pt.d.ts +29 -0
  175. package/lib/languages/pt.js +29 -64
  176. package/lib/languages/ro.d.ts +158 -0
  177. package/lib/languages/ro.js +60 -167
  178. package/lib/languages/ru.d.ts +85 -0
  179. package/lib/languages/ru.js +17 -37
  180. package/lib/languages/sr-Cyrl.d.ts +80 -0
  181. package/lib/languages/sr-Cyrl.js +113 -0
  182. package/lib/languages/sr-Latn.d.ts +80 -0
  183. package/lib/languages/sr-Latn.js +54 -98
  184. package/lib/languages/sv.d.ts +14 -0
  185. package/lib/languages/sv.js +26 -63
  186. package/lib/languages/sw.d.ts +39 -0
  187. package/lib/languages/sw.js +26 -21
  188. package/lib/languages/ta.d.ts +20 -0
  189. package/lib/languages/ta.js +26 -26
  190. package/lib/languages/te.d.ts +22 -0
  191. package/lib/languages/te.js +28 -38
  192. package/lib/languages/th.d.ts +17 -0
  193. package/lib/languages/th.js +25 -31
  194. package/lib/languages/tr.d.ts +12 -0
  195. package/lib/languages/tr.js +11 -38
  196. package/lib/languages/uk.d.ts +85 -0
  197. package/lib/languages/uk.js +18 -44
  198. package/lib/languages/ur.d.ts +11 -0
  199. package/lib/languages/ur.js +12 -7
  200. package/lib/languages/vi.d.ts +72 -0
  201. package/lib/languages/vi.js +25 -71
  202. package/lib/languages/zh-Hans.d.ts +21 -0
  203. package/lib/languages/zh-Hans.js +33 -87
  204. package/lib/languages/zh-Hant.d.ts +21 -0
  205. package/lib/languages/zh-Hant.js +111 -0
  206. package/lib/n2words.d.ts +209 -0
  207. package/lib/n2words.js +474 -191
  208. package/package.json +106 -67
  209. package/dist/languages/ar.js +0 -2
  210. package/dist/languages/ar.js.map +0 -1
  211. package/dist/languages/az.js +0 -2
  212. package/dist/languages/az.js.map +0 -1
  213. package/dist/languages/bn.js +0 -2
  214. package/dist/languages/bn.js.map +0 -1
  215. package/dist/languages/cs.js +0 -2
  216. package/dist/languages/cs.js.map +0 -1
  217. package/dist/languages/da.js +0 -2
  218. package/dist/languages/da.js.map +0 -1
  219. package/dist/languages/de.js +0 -2
  220. package/dist/languages/de.js.map +0 -1
  221. package/dist/languages/el.js +0 -2
  222. package/dist/languages/el.js.map +0 -1
  223. package/dist/languages/en.js +0 -2
  224. package/dist/languages/en.js.map +0 -1
  225. package/dist/languages/es.js +0 -2
  226. package/dist/languages/es.js.map +0 -1
  227. package/dist/languages/fa.js +0 -2
  228. package/dist/languages/fa.js.map +0 -1
  229. package/dist/languages/fil.js +0 -2
  230. package/dist/languages/fil.js.map +0 -1
  231. package/dist/languages/fr-BE.js +0 -2
  232. package/dist/languages/fr-BE.js.map +0 -1
  233. package/dist/languages/fr.js +0 -2
  234. package/dist/languages/fr.js.map +0 -1
  235. package/dist/languages/gu.js +0 -2
  236. package/dist/languages/gu.js.map +0 -1
  237. package/dist/languages/he.js +0 -2
  238. package/dist/languages/he.js.map +0 -1
  239. package/dist/languages/hi.js +0 -2
  240. package/dist/languages/hi.js.map +0 -1
  241. package/dist/languages/hr.js +0 -2
  242. package/dist/languages/hr.js.map +0 -1
  243. package/dist/languages/hu.js +0 -2
  244. package/dist/languages/hu.js.map +0 -1
  245. package/dist/languages/id.js +0 -2
  246. package/dist/languages/id.js.map +0 -1
  247. package/dist/languages/it.js +0 -2
  248. package/dist/languages/it.js.map +0 -1
  249. package/dist/languages/ja.js +0 -2
  250. package/dist/languages/ja.js.map +0 -1
  251. package/dist/languages/kn.js +0 -2
  252. package/dist/languages/kn.js.map +0 -1
  253. package/dist/languages/ko.js +0 -2
  254. package/dist/languages/ko.js.map +0 -1
  255. package/dist/languages/lt.js +0 -2
  256. package/dist/languages/lt.js.map +0 -1
  257. package/dist/languages/lv.js +0 -2
  258. package/dist/languages/lv.js.map +0 -1
  259. package/dist/languages/mr.js +0 -2
  260. package/dist/languages/mr.js.map +0 -1
  261. package/dist/languages/ms.js +0 -2
  262. package/dist/languages/ms.js.map +0 -1
  263. package/dist/languages/nb.js +0 -2
  264. package/dist/languages/nb.js.map +0 -1
  265. package/dist/languages/nl.js +0 -2
  266. package/dist/languages/nl.js.map +0 -1
  267. package/dist/languages/pa-Guru.js +0 -2
  268. package/dist/languages/pa-Guru.js.map +0 -1
  269. package/dist/languages/pl.js +0 -2
  270. package/dist/languages/pl.js.map +0 -1
  271. package/dist/languages/pt.js +0 -2
  272. package/dist/languages/pt.js.map +0 -1
  273. package/dist/languages/ro.js +0 -2
  274. package/dist/languages/ro.js.map +0 -1
  275. package/dist/languages/ru.js +0 -2
  276. package/dist/languages/ru.js.map +0 -1
  277. package/dist/languages/sr-Latn.js +0 -2
  278. package/dist/languages/sr-Latn.js.map +0 -1
  279. package/dist/languages/sv.js +0 -2
  280. package/dist/languages/sv.js.map +0 -1
  281. package/dist/languages/sw.js +0 -2
  282. package/dist/languages/sw.js.map +0 -1
  283. package/dist/languages/ta.js +0 -2
  284. package/dist/languages/ta.js.map +0 -1
  285. package/dist/languages/te.js +0 -2
  286. package/dist/languages/te.js.map +0 -1
  287. package/dist/languages/th.js +0 -2
  288. package/dist/languages/th.js.map +0 -1
  289. package/dist/languages/tr.js +0 -2
  290. package/dist/languages/tr.js.map +0 -1
  291. package/dist/languages/uk.js +0 -2
  292. package/dist/languages/uk.js.map +0 -1
  293. package/dist/languages/ur.js +0 -2
  294. package/dist/languages/ur.js.map +0 -1
  295. package/dist/languages/vi.js +0 -2
  296. package/dist/languages/vi.js.map +0 -1
  297. package/dist/languages/zh-Hans.js +0 -2
  298. package/dist/languages/zh-Hans.js.map +0 -1
  299. package/typings/classes/abstract-language.d.ts +0 -144
  300. package/typings/classes/greedy-scale-language.d.ts +0 -148
  301. package/typings/classes/slavic-language.d.ts +0 -145
  302. package/typings/classes/south-asian-language.d.ts +0 -101
  303. package/typings/classes/turkic-language.d.ts +0 -42
  304. package/typings/languages/ar.d.ts +0 -93
  305. package/typings/languages/az.d.ts +0 -25
  306. package/typings/languages/bn.d.ts +0 -1
  307. package/typings/languages/cs.d.ts +0 -120
  308. package/typings/languages/da.d.ts +0 -53
  309. package/typings/languages/de.d.ts +0 -26
  310. package/typings/languages/el.d.ts +0 -11
  311. package/typings/languages/en.d.ts +0 -30
  312. package/typings/languages/es.d.ts +0 -43
  313. package/typings/languages/fa.d.ts +0 -81
  314. package/typings/languages/fil.d.ts +0 -12
  315. package/typings/languages/fr-BE.d.ts +0 -41
  316. package/typings/languages/fr.d.ts +0 -43
  317. package/typings/languages/gu.d.ts +0 -12
  318. package/typings/languages/he.d.ts +0 -197
  319. package/typings/languages/hi.d.ts +0 -1
  320. package/typings/languages/hr.d.ts +0 -110
  321. package/typings/languages/hu.d.ts +0 -37
  322. package/typings/languages/id.d.ts +0 -69
  323. package/typings/languages/it.d.ts +0 -51
  324. package/typings/languages/ja.d.ts +0 -58
  325. package/typings/languages/kn.d.ts +0 -11
  326. package/typings/languages/ko.d.ts +0 -25
  327. package/typings/languages/lt.d.ts +0 -110
  328. package/typings/languages/lv.d.ts +0 -99
  329. package/typings/languages/mr.d.ts +0 -12
  330. package/typings/languages/ms.d.ts +0 -37
  331. package/typings/languages/nb.d.ts +0 -27
  332. package/typings/languages/nl.d.ts +0 -65
  333. package/typings/languages/pa-Guru.d.ts +0 -1
  334. package/typings/languages/pl.d.ts +0 -116
  335. package/typings/languages/pt.d.ts +0 -39
  336. package/typings/languages/ro.d.ts +0 -229
  337. package/typings/languages/ru.d.ts +0 -108
  338. package/typings/languages/sr-Latn.d.ts +0 -98
  339. package/typings/languages/sv.d.ts +0 -30
  340. package/typings/languages/sw.d.ts +0 -1
  341. package/typings/languages/ta.d.ts +0 -1
  342. package/typings/languages/te.d.ts +0 -1
  343. package/typings/languages/th.d.ts +0 -1
  344. package/typings/languages/tr.d.ts +0 -46
  345. package/typings/languages/uk.d.ts +0 -117
  346. package/typings/languages/ur.d.ts +0 -1
  347. package/typings/languages/vi.d.ts +0 -116
  348. package/typings/languages/zh-Hans.d.ts +0 -57
  349. package/typings/n2words.d.ts +0 -177
@@ -1,53 +0,0 @@
1
- /**
2
- * Converts a number to Danish cardinal (written) form.
3
- *
4
- * @param {number|string|bigint} value The number to convert.
5
- * @param {Object} [options] Conversion options (see Danish class options).
6
- * @param {boolean} [options.ordFlag=false] Enable ordinal number conversion.
7
- * @returns {string} The number expressed in Danish words.
8
- * @throws {TypeError} If value is NaN or invalid type.
9
- * @throws {Error} If value is an invalid number string.
10
- *
11
- * @example
12
- * convertToWords(25); // 'femogtyve' (five-and-twenty)
13
- * convertToWords(50); // 'halvtreds' (half-third-times-twenty)
14
- */
15
- export default function convertToWords(value: number | string | bigint, options?: {
16
- ordFlag?: boolean;
17
- }): string;
18
- /**
19
- * @typedef {Object} DanishOptions
20
- * @property {boolean} [ordFlag=false] Enable ordinal number conversion.
21
- */
22
- /**
23
- * Danish language converter.
24
- *
25
- * GreedyScaleLanguage with Danish-specific extensions:
26
- * - Unique vigesimal (base-20) number system for 50-90
27
- * - Special composition rules ("og" for "and" between units and tens)
28
- * - Reverse digit order (e.g., "fem-og-tyve" = five-and-twenty = 25)
29
- * - Support for ordinal numbers via ordFlag option
30
- *
31
- * Key Features:
32
- * - Vigesimal tens: halvtreds (50), treds (60), halvfjerds (70), firs (80), halvfems (90)
33
- * - Units-before-tens pattern (e.g., "tre-og-tyve" = 23)
34
- * - "et" prefix for hundreds/thousands (not "en")
35
- * - Optional ordinal number conversion via ordFlag option
36
- * - Inline merge logic tailored for Danish ordering
37
- */
38
- export class Danish extends GreedyScaleLanguage {
39
- /**
40
- * Initializes the Danish converter with language-specific options.
41
- *
42
- * @param {DanishOptions} [options={}] Configuration options.
43
- */
44
- constructor({ ordFlag }?: DanishOptions);
45
- ordFlag: boolean;
46
- }
47
- export type DanishOptions = {
48
- /**
49
- * Enable ordinal number conversion.
50
- */
51
- ordFlag?: boolean;
52
- };
53
- import GreedyScaleLanguage from '../classes/greedy-scale-language.js';
@@ -1,26 +0,0 @@
1
- /**
2
- * Converts a number to German cardinal (written) form.
3
- *
4
- * @param {number|string|bigint} value The number to convert.
5
- * @param {Object} [options] Conversion options (see German class options).
6
- * @returns {string} The number expressed in German words.
7
- * @throws {TypeError} If value is NaN or invalid type.
8
- * @throws {Error} If value is an invalid number string.
9
- *
10
- * @example
11
- * convertToWords(42); // 'zweiundvierzig'
12
- * convertToWords('1.5'); // 'eins komma fünf'
13
- */
14
- export default function convertToWords(value: number | string | bigint, options?: any): string;
15
- /**
16
- * German language converter.
17
- *
18
- * Handles German grammatical features:
19
- * - "eins" vs "ein" and "eine" forms for 1
20
- * - Compound words without separators (e.g., "einundzwanzig" = 21)
21
- * - Million/Billion pluralization
22
- * - Special characters (e.g., "ü", "ö", "ß")
23
- */
24
- export class German extends GreedyScaleLanguage {
25
- }
26
- import GreedyScaleLanguage from '../classes/greedy-scale-language.js';
@@ -1,11 +0,0 @@
1
- /**
2
- * Converts a number to its word representation in Greek.
3
- * @param {number|string|bigint} value - The number to convert
4
- * @param {Object} [options={}] - Conversion options
5
- * @returns {string} The word representation of the number
6
- * @example
7
- * convertToWords(42) // 'σαράντα δύο'
8
- * convertToWords(1000) // 'χίλια'
9
- * convertToWords(2000) // 'δύο χίλια'
10
- */
11
- export default function convertToWords(value: number | string | bigint, options?: any): string;
@@ -1,30 +0,0 @@
1
- /**
2
- * Converts a number to English cardinal (written) form.
3
- *
4
- * @param {number|string|bigint} value The number to convert.
5
- * @param {Object} [options] Conversion options (see English class options).
6
- * @returns {string} The number expressed in English words.
7
- * @throws {TypeError} If value is NaN or invalid type.
8
- * @throws {Error} If value is an invalid number string.
9
- *
10
- * @example
11
- * convertToWords(42); // 'forty-two'
12
- * convertToWords('1.5'); // 'one point five'
13
- */
14
- export default function convertToWords(value: number | string | bigint, options?: any): string;
15
- /**
16
- * English language converter.
17
- *
18
- * Converts numbers to English words, supporting:
19
- * - Negative numbers (prepended with "minus")
20
- * - Decimal numbers (word "point" between whole and fractional parts)
21
- * - Numbers up to octillions
22
- *
23
- * Merge rules:
24
- * - Hyphenated for compound tens (e.g., "twenty-three")
25
- * - "and" after hundreds (e.g., "one hundred and one")
26
- * - Space-separated for larger composites (e.g., "one thousand twenty-three")
27
- */
28
- export class English extends GreedyScaleLanguage {
29
- }
30
- import GreedyScaleLanguage from '../classes/greedy-scale-language.js';
@@ -1,43 +0,0 @@
1
- /**
2
- * Converts a number to Spanish cardinal (written) form.
3
- *
4
- * @param {number|string|bigint} value The number to convert.
5
- * @param {Object} [options] Conversion options (see ES class).
6
- * @returns {string} The number expressed in Spanish words.
7
- * @throws {TypeError} If value is NaN or invalid type.
8
- * @throws {Error} If value is an invalid number string.
9
- *
10
- * @example
11
- * convertToWords(42, { lang: 'es' }); // 'cuarenta y dos'
12
- * convertToWords(100, { lang: 'es' }); // 'cien'
13
- */
14
- export default function convertToWords(value: number | string | bigint, options?: any): string;
15
- /**
16
- * @typedef {Object} SpanishOptions
17
- * @property {string} [genderStem='o'] Masculine 'o' or feminine 'a' ending.
18
- */
19
- /**
20
- * Spanish language converter.
21
- *
22
- * Handles Spanish grammatical features:
23
- * - Gender agreement for numbers (masculine by default, feminine via `genderStem`)
24
- * - "y" (and) between tens and units (e.g., "veinte y uno")
25
- * - Special forms for hundreds (e.g., "cien", "ciento", "doscientos")
26
- * - Million pluralization
27
- */
28
- export class Spanish extends GreedyScaleLanguage {
29
- /**
30
- * Initializes the Spanish converter.
31
- *
32
- * @param {SpanishOptions} [options={}] Configuration options.
33
- */
34
- constructor({ genderStem }?: SpanishOptions);
35
- genderStem: string;
36
- }
37
- export type SpanishOptions = {
38
- /**
39
- * Masculine 'o' or feminine 'a' ending.
40
- */
41
- genderStem?: string;
42
- };
43
- import GreedyScaleLanguage from '../classes/greedy-scale-language.js';
@@ -1,81 +0,0 @@
1
- /**
2
- * Converts a number to Persian cardinal (written) form.
3
- *
4
- * @param {number|string|bigint} value The number to convert.
5
- * @param {Object} [options={}] Configuration options.
6
- * @returns {string} The number expressed in Persian words.
7
- * @throws {TypeError} If value is NaN or invalid type.
8
- * @throws {Error} If value is an invalid number string.
9
- */
10
- export default function convertToWords(value: number | string | bigint, options?: any): string;
11
- /**
12
- * Persian (Farsi) language converter.
13
- *
14
- * Converts numbers to Persian words using Persian-Arabic numerals:
15
- * - Right-to-left script orientation
16
- * - Base-10 decimal system with Persian number words
17
- * - Conjunction "و" (va/and) for compound numbers
18
- * - Traditional Persian number naming conventions
19
- *
20
- * Key Features:
21
- * - Named number lookup table (namedNumbers) for direct mapping 0-999
22
- * - Group-based algorithm for numbers >= 1000:
23
- * 1. Split into groups of 3 digits
24
- * 2. Convert each group to words using named table or recursion
25
- * 3. Append magnitude word (هزار/میلیون/میلیارد)
26
- * 4. Join with "و" (and) conjunction
27
- * - Special compound forms (دویست for 200, سیصد for 300)
28
- * - Proper Persian grammatical structure
29
- * - Support for large numbers (thousands, millions, billions, trillions)
30
- *
31
- * Features:
32
- * - Native Persian digits and words
33
- * - Special compound forms (e.g., دویست for 200, سیصد for 300)
34
- * - Support for large numbers (thousands, millions)
35
- * - Proper Persian grammatical structure
36
- */
37
- export class Farsi extends AbstractLanguage {
38
- namedNumbers: {
39
- 0: string;
40
- 1: string;
41
- 2: string;
42
- 3: string;
43
- 4: string;
44
- 5: string;
45
- 6: string;
46
- 7: string;
47
- 8: string;
48
- 9: string;
49
- 10: string;
50
- 11: string;
51
- 12: string;
52
- 13: string;
53
- 14: string;
54
- 15: string;
55
- 16: string;
56
- 17: string;
57
- 18: string;
58
- 19: string;
59
- 20: string;
60
- 30: string;
61
- 40: string;
62
- 50: string;
63
- 60: string;
64
- 70: string;
65
- 80: string;
66
- 90: string;
67
- 100: string;
68
- 200: string;
69
- 300: string;
70
- 400: string;
71
- 500: string;
72
- 600: string;
73
- 700: string;
74
- 800: string;
75
- 900: string;
76
- 1000: string;
77
- 1000000: string;
78
- };
79
- convertWholePart(number: any): any;
80
- }
81
- import AbstractLanguage from '../classes/abstract-language.js';
@@ -1,12 +0,0 @@
1
- /**
2
- * Convert a number to Filipino words
3
- *
4
- * @param {number|string|bigint} value - The number to convert
5
- * @param {Object} [options={}] - Conversion options
6
- * @returns {string} The Filipino word representation
7
- * @example
8
- * convertToWords(42) // 'apatnapu dalawa'
9
- * convertToWords(1000) // 'isang libo'
10
- * convertToWords(123456) // 'isang daang dalawampung tatlong libong apat na daang limampung anim'
11
- */
12
- export default function convertToWords(value: number | string | bigint, options?: any): string;
@@ -1,41 +0,0 @@
1
- /**
2
- * Converts a number to Belgian French cardinal (written) form.
3
- *
4
- * @param {number|string|bigint} value The number to convert.
5
- * @param {Object} [options={}] Configuration options.
6
- * @param {boolean} [options.withHyphenSeparator=false] Use hyphens (true) instead of spaces (false) in compounds.
7
- * @returns {string} The number expressed in Belgian French words.
8
- * @throws {TypeError} If value is NaN or invalid type.
9
- * @throws {Error} If value is an invalid number string.
10
- */
11
- export default function convertToWords(value: number | string | bigint, options?: {
12
- withHyphenSeparator?: boolean;
13
- }): string;
14
- /**
15
- * @typedef {Object} BelgianFrenchOptions
16
- * @property {boolean} [withHyphenSeparator=false] Use hyphens (true) instead of spaces (false) in compounds.
17
- */
18
- /**
19
- * Belgian French language converter.
20
- *
21
- * Extends the French converter with Belgian French regional variant:
22
- * - Uses "septante" (70) instead of "soixante-dix"
23
- * - Uses "nonante" (90) instead of "quatre-vingt-dix"
24
- * - Maintains standard French "quatre-vingts" for 80
25
- * - More regular and logical number system than standard French
26
- *
27
- * Features:
28
- * - Regional number word variations (septante, nonante)
29
- * - Simplified tens naming (no complex arithmetic)
30
- * - Inherits all other French grammar rules from FR class
31
- * - Same pluralization and hyphenation patterns as standard French
32
- */
33
- export class BelgianFrench extends French {
34
- }
35
- export type BelgianFrenchOptions = {
36
- /**
37
- * Use hyphens (true) instead of spaces (false) in compounds.
38
- */
39
- withHyphenSeparator?: boolean;
40
- };
41
- import { French } from './fr.js';
@@ -1,43 +0,0 @@
1
- /**
2
- * Converts a number to French cardinal (written) form.
3
- *
4
- * @param {number|string|bigint} value The number to convert.
5
- * @param {Object} [options] Conversion options (see FR class).
6
- * @returns {string} The number expressed in French words.
7
- * @throws {TypeError} If value is NaN or invalid type.
8
- * @throws {Error} If value is an invalid number string.
9
- *
10
- * @example
11
- * convertToWords(42, { lang: 'fr' }); // 'quarante-deux'
12
- * convertToWords(81, { lang: 'fr' }); // 'quatre-vingt-un'
13
- */
14
- export default function convertToWords(value: number | string | bigint, options?: any): string;
15
- /**
16
- * @typedef {Object} FrenchOptions
17
- * @property {boolean} [withHyphenSeparator=false] Use hyphens (true) instead of spaces (false) in compounds.
18
- */
19
- /**
20
- * French language converter.
21
- *
22
- * Special handling:
23
- * - Pluralization of "cent" (hundred) and other words
24
- * - "et" (and) before odd numbers in tens place
25
- * - Hyphenation for compound numbers
26
- * - Regional number word variations
27
- */
28
- export class French extends GreedyScaleLanguage {
29
- /**
30
- * Initializes the French converter with language-specific options.
31
- *
32
- * @param {FrenchOptions} [options={}] Configuration options.
33
- */
34
- constructor({ withHyphenSeparator }?: FrenchOptions);
35
- withHyphenSeparator: boolean;
36
- }
37
- export type FrenchOptions = {
38
- /**
39
- * Use hyphens (true) instead of spaces (false) in compounds.
40
- */
41
- withHyphenSeparator?: boolean;
42
- };
43
- import GreedyScaleLanguage from '../classes/greedy-scale-language.js';
@@ -1,12 +0,0 @@
1
- /**
2
- * Convert a number to Gujarati words
3
- *
4
- * @param {number|string|bigint} value - The number to convert
5
- * @param {Object} [options={}] - Conversion options
6
- * @returns {string} The Gujarati word representation
7
- * @example
8
- * convertToWords(42) // 'બેતાળીસ'
9
- * convertToWords(1000) // 'એક હજાર'
10
- * convertToWords(100000) // 'એક લાખ'
11
- */
12
- export default function convertToWords(value: number | string | bigint, options?: any): string;
@@ -1,197 +0,0 @@
1
- /**
2
- * Converts a number to Hebrew cardinal (written) form.
3
- *
4
- * @param {number|string|bigint} value The number to convert.
5
- * @param {HebrewOptions} [options={}] Configuration options.
6
- * @returns {string} The number expressed in Hebrew words.
7
- * @throws {TypeError} If value is NaN or invalid type.
8
- * @throws {Error} If value is an invalid number string.
9
- */
10
- export default function convertToWords(value: number | string | bigint, options?: HebrewOptions): string;
11
- /**
12
- * @typedef {Object} HebrewOptions
13
- * @property {string} [and='ו'] Conjunction character (typically 'ו' for and).
14
- * @property {boolean} [biblical=false] Use biblical scale words instead of modern ones.
15
- * @property {boolean} [feminine=false] Use feminine forms for numbers.
16
- */
17
- /**
18
- * Hebrew language converter.
19
- *
20
- * Implements Hebrew number words using the Slavic language pattern:
21
- * - Hebrew alphabet and right-to-left text
22
- * - Hebrew number words (אחת, שתים, שלוש, ארבע...)
23
- * - Feminine number forms (default in Hebrew)
24
- * - Optional "ve" (ו, "and") conjunction between number groups
25
- *
26
- * Key Features:
27
- * - Three-form pluralization system shared across Slavic languages
28
- * * Form 1 (singular): 1 (e.g., "אלף")
29
- * * Form 2 (few): 2-4, 22-24, 32-34... excluding teens (e.g., "אלפים")
30
- * * Form 3 (many): all other numbers (e.g., "אלף")
31
- * - Chunk-based decomposition (splits into groups of 3 digits: ones, thousands, millions, etc.)
32
- * - Large number handling via thousands[] array with indexed [singular, few, many] forms
33
- *
34
- * Features:
35
- * - Right-to-left text orientation
36
- * - Feminine grammatical gender for numbers
37
- * - Three-form pluralization (similar to Slavic pattern)
38
- * - Conjunction control via "and" option
39
- *
40
- * Inherits from SlavicLanguage for complex pluralization algorithms.
41
- */
42
- export class Hebrew extends SlavicLanguage {
43
- /**
44
- * Initializes the Hebrew converter with language-specific options.
45
- *
46
- * @param {HebrewOptions} [options={}] Configuration options.
47
- */
48
- constructor({ and, biblical, feminine }?: HebrewOptions);
49
- ones: {
50
- 1: string;
51
- 2: string;
52
- 3: string;
53
- 4: string;
54
- 5: string;
55
- 6: string;
56
- 7: string;
57
- 8: string;
58
- 9: string;
59
- };
60
- tens: {
61
- 0: string;
62
- 1: string;
63
- 2: string;
64
- 3: string;
65
- 4: string;
66
- 5: string;
67
- 6: string;
68
- 7: string;
69
- 8: string;
70
- 9: string;
71
- };
72
- twenties: {
73
- 2: string;
74
- 3: string;
75
- 4: string;
76
- 5: string;
77
- 6: string;
78
- 7: string;
79
- 8: string;
80
- 9: string;
81
- };
82
- hundreds: {
83
- 1: string;
84
- 2: string;
85
- 3: string;
86
- };
87
- thousands: {
88
- 1: string;
89
- 2: string;
90
- 3: string;
91
- 4: string;
92
- 5: string;
93
- 6: string;
94
- 7: string;
95
- 8: string;
96
- 9: string;
97
- };
98
- scale: {
99
- 1: string;
100
- 2: string;
101
- 3: string;
102
- 4: string;
103
- 5: string;
104
- 6: string;
105
- };
106
- scalePlural: {
107
- 1: string;
108
- 2: string;
109
- 3: string;
110
- 4: string;
111
- 5: string;
112
- 6: string;
113
- };
114
- biblicalOnes: {
115
- 1: string;
116
- 2: string;
117
- 3: string;
118
- 4: string;
119
- 5: string;
120
- 6: string;
121
- 7: string;
122
- 8: string;
123
- 9: string;
124
- };
125
- biblicalTens: {
126
- 0: string;
127
- 1: string;
128
- 2: string;
129
- 3: string;
130
- 4: string;
131
- 5: string;
132
- 6: string;
133
- 7: string;
134
- 8: string;
135
- 9: string;
136
- };
137
- biblicalTwenties: {
138
- 2: string;
139
- 3: string;
140
- 4: string;
141
- 5: string;
142
- 6: string;
143
- 7: string;
144
- 8: string;
145
- 9: string;
146
- };
147
- biblicalHundreds: {
148
- 1: string;
149
- 2: string;
150
- 3: string;
151
- };
152
- biblicalThousands: {
153
- 1: string;
154
- 2: string;
155
- 3: string;
156
- 4: string;
157
- 5: string;
158
- 6: string;
159
- 7: string;
160
- 8: string;
161
- 9: string;
162
- };
163
- biblicalScale: {
164
- 1: string;
165
- 2: string;
166
- 3: string;
167
- 4: string;
168
- 5: string;
169
- 6: string;
170
- };
171
- biblicalScalePlural: {
172
- 1: string;
173
- 2: string;
174
- 3: string;
175
- 4: string;
176
- 5: string;
177
- 6: string;
178
- };
179
- and: string;
180
- biblical: boolean;
181
- convertWholePart(number: any): string;
182
- }
183
- export type HebrewOptions = {
184
- /**
185
- * Conjunction character (typically 'ו' for and).
186
- */
187
- and?: string;
188
- /**
189
- * Use biblical scale words instead of modern ones.
190
- */
191
- biblical?: boolean;
192
- /**
193
- * Use feminine forms for numbers.
194
- */
195
- feminine?: boolean;
196
- };
197
- import SlavicLanguage from '../classes/slavic-language.js';
@@ -1 +0,0 @@
1
- export default function convertToWords(value: any, options?: {}): string;
@@ -1,110 +0,0 @@
1
- /**
2
- * Converts a number to Croatian cardinal (written) form.
3
- *
4
- * @param {number|string|bigint} value The number to convert.
5
- * @param {Object} [options={}] Configuration options.
6
- * @param {boolean} [options.feminine=false] Use feminine forms for numbers.
7
- * @returns {string} The number expressed in Croatian words.
8
- * @throws {TypeError} If value is NaN or invalid type.
9
- * @throws {Error} If value is an invalid number string.
10
- */
11
- export default function convertToWords(value: number | string | bigint, options?: {
12
- feminine?: boolean;
13
- }): string;
14
- /**
15
- * @typedef {Object} SlavicOptions
16
- * @property {boolean} [feminine=false] Use feminine forms for numbers.
17
- */
18
- /**
19
- * Croatian language converter.
20
- *
21
- * Implements Croatian number words using the Slavic language pattern:
22
- * - Croatian number words (jedan/jedna, dva/dvije, tri, četiri...)
23
- * - Gender-aware forms (masculine/feminine)
24
- * - Slavic three-form pluralization (tisuća/tisuće/tisuća)
25
- * - Croatian-specific declension endings
26
- *
27
- * Key Features:
28
- * - Three-form pluralization system shared across Slavic languages
29
- * * Form 1 (singular): 1 (e.g., "tisuća")
30
- * * Form 2 (few): 2-4, 22-24, 32-34... excluding teens (e.g., "tisuće")
31
- * * Form 3 (many): all other numbers (e.g., "tisuća")
32
- * - Chunk-based decomposition (splits into groups of 3 digits: ones, thousands, millions, etc.)
33
- * - Large number handling via thousands[] array with indexed [singular, few, many] forms
34
- * - Gender-specific number forms for 1 and 2 (masculine/feminine dual forms)
35
- *
36
- * Features:
37
- * - Dual gender forms for 1 and 2 (jedan/jedna, dva/dvije)
38
- * - Latin script orthography
39
- * - Similar structure to Serbian
40
- *
41
- * Inherits from SlavicLanguage for complex pluralization algorithms.
42
- */
43
- export class Croatian extends SlavicLanguage {
44
- ones: {
45
- 1: string[];
46
- 2: string[];
47
- 3: string[];
48
- 4: string[];
49
- 5: string[];
50
- 6: string[];
51
- 7: string[];
52
- 8: string[];
53
- 9: string[];
54
- };
55
- tens: {
56
- 0: string;
57
- 1: string;
58
- 2: string;
59
- 3: string;
60
- 4: string;
61
- 5: string;
62
- 6: string;
63
- 7: string;
64
- 8: string;
65
- 9: string;
66
- };
67
- twenties: {
68
- 2: string;
69
- 3: string;
70
- 4: string;
71
- 5: string;
72
- 6: string;
73
- 7: string;
74
- 8: string;
75
- 9: string;
76
- };
77
- hundreds: {
78
- 1: string;
79
- 2: string;
80
- 3: string;
81
- 4: string;
82
- 5: string;
83
- 6: string;
84
- 7: string;
85
- 8: string;
86
- 9: string;
87
- };
88
- SCALE: {
89
- 0: (string | boolean)[];
90
- 1: (string | boolean)[];
91
- 2: (string | boolean)[];
92
- 3: (string | boolean)[];
93
- 4: (string | boolean)[];
94
- 5: (string | boolean)[];
95
- 6: (string | boolean)[];
96
- 7: (string | boolean)[];
97
- 8: (string | boolean)[];
98
- 9: (string | boolean)[];
99
- 10: (string | boolean)[];
100
- };
101
- pluralize(n: any, forms: any): any;
102
- convertWholePart(number: any): string;
103
- }
104
- export type SlavicOptions = {
105
- /**
106
- * Use feminine forms for numbers.
107
- */
108
- feminine?: boolean;
109
- };
110
- import SlavicLanguage from '../classes/slavic-language.js';