n2words 1.24.0 → 3.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 (280) hide show
  1. package/CHANGELOG.md +49 -0
  2. package/README.md +183 -156
  3. package/dist/languages/am-Latn.js +3 -0
  4. package/dist/languages/am-Latn.js.map +1 -0
  5. package/dist/languages/am.js +3 -0
  6. package/dist/languages/am.js.map +1 -0
  7. package/dist/languages/ar.js +3 -2
  8. package/dist/languages/ar.js.map +1 -1
  9. package/dist/languages/az.js +3 -2
  10. package/dist/languages/az.js.map +1 -1
  11. package/dist/languages/bn.js +3 -2
  12. package/dist/languages/bn.js.map +1 -1
  13. package/dist/languages/cs.js +3 -2
  14. package/dist/languages/cs.js.map +1 -1
  15. package/dist/languages/da.js +3 -2
  16. package/dist/languages/da.js.map +1 -1
  17. package/dist/languages/de.js +3 -2
  18. package/dist/languages/de.js.map +1 -1
  19. package/dist/languages/el.js +3 -2
  20. package/dist/languages/el.js.map +1 -1
  21. package/dist/languages/en.js +3 -2
  22. package/dist/languages/en.js.map +1 -1
  23. package/dist/languages/es.js +3 -2
  24. package/dist/languages/es.js.map +1 -1
  25. package/dist/languages/fa.js +3 -2
  26. package/dist/languages/fa.js.map +1 -1
  27. package/dist/languages/fi.js +3 -0
  28. package/dist/languages/fi.js.map +1 -0
  29. package/dist/languages/fil.js +3 -2
  30. package/dist/languages/fil.js.map +1 -1
  31. package/dist/languages/fr-BE.js +3 -2
  32. package/dist/languages/fr-BE.js.map +1 -1
  33. package/dist/languages/fr.js +3 -2
  34. package/dist/languages/fr.js.map +1 -1
  35. package/dist/languages/gu.js +3 -2
  36. package/dist/languages/gu.js.map +1 -1
  37. package/dist/languages/ha.js +3 -0
  38. package/dist/languages/ha.js.map +1 -0
  39. package/dist/languages/hbo.js +3 -0
  40. package/dist/languages/hbo.js.map +1 -0
  41. package/dist/languages/he.js +3 -2
  42. package/dist/languages/he.js.map +1 -1
  43. package/dist/languages/hi.js +3 -2
  44. package/dist/languages/hi.js.map +1 -1
  45. package/dist/languages/hr.js +3 -2
  46. package/dist/languages/hr.js.map +1 -1
  47. package/dist/languages/hu.js +3 -2
  48. package/dist/languages/hu.js.map +1 -1
  49. package/dist/languages/id.js +3 -2
  50. package/dist/languages/id.js.map +1 -1
  51. package/dist/languages/it.js +3 -2
  52. package/dist/languages/it.js.map +1 -1
  53. package/dist/languages/ja.js +3 -2
  54. package/dist/languages/ja.js.map +1 -1
  55. package/dist/languages/kn.js +3 -2
  56. package/dist/languages/kn.js.map +1 -1
  57. package/dist/languages/ko.js +3 -2
  58. package/dist/languages/ko.js.map +1 -1
  59. package/dist/languages/lt.js +3 -2
  60. package/dist/languages/lt.js.map +1 -1
  61. package/dist/languages/lv.js +3 -2
  62. package/dist/languages/lv.js.map +1 -1
  63. package/dist/languages/mr.js +3 -2
  64. package/dist/languages/mr.js.map +1 -1
  65. package/dist/languages/ms.js +3 -2
  66. package/dist/languages/ms.js.map +1 -1
  67. package/dist/languages/nb.js +3 -2
  68. package/dist/languages/nb.js.map +1 -1
  69. package/dist/languages/nl.js +3 -2
  70. package/dist/languages/nl.js.map +1 -1
  71. package/dist/languages/pa.js +3 -0
  72. package/dist/languages/pa.js.map +1 -0
  73. package/dist/languages/pl.js +3 -2
  74. package/dist/languages/pl.js.map +1 -1
  75. package/dist/languages/pt.js +3 -2
  76. package/dist/languages/pt.js.map +1 -1
  77. package/dist/languages/ro.js +3 -2
  78. package/dist/languages/ro.js.map +1 -1
  79. package/dist/languages/ru.js +3 -2
  80. package/dist/languages/ru.js.map +1 -1
  81. package/dist/languages/sr-Cyrl.js +3 -0
  82. package/dist/languages/sr-Cyrl.js.map +1 -0
  83. package/dist/languages/sr-Latn.js +3 -2
  84. package/dist/languages/sr-Latn.js.map +1 -1
  85. package/dist/languages/sv.js +3 -2
  86. package/dist/languages/sv.js.map +1 -1
  87. package/dist/languages/sw.js +3 -2
  88. package/dist/languages/sw.js.map +1 -1
  89. package/dist/languages/ta.js +3 -2
  90. package/dist/languages/ta.js.map +1 -1
  91. package/dist/languages/te.js +3 -2
  92. package/dist/languages/te.js.map +1 -1
  93. package/dist/languages/th.js +3 -2
  94. package/dist/languages/th.js.map +1 -1
  95. package/dist/languages/tr.js +3 -2
  96. package/dist/languages/tr.js.map +1 -1
  97. package/dist/languages/uk.js +3 -2
  98. package/dist/languages/uk.js.map +1 -1
  99. package/dist/languages/ur.js +3 -2
  100. package/dist/languages/ur.js.map +1 -1
  101. package/dist/languages/vi.js +3 -2
  102. package/dist/languages/vi.js.map +1 -1
  103. package/dist/languages/zh-Hans.js +3 -2
  104. package/dist/languages/zh-Hans.js.map +1 -1
  105. package/dist/languages/zh-Hant.js +3 -0
  106. package/dist/languages/zh-Hant.js.map +1 -0
  107. package/dist/n2words.js +3 -2
  108. package/dist/n2words.js.map +1 -1
  109. package/lib/languages/am-Latn.d.ts +7 -0
  110. package/lib/languages/am-Latn.js +164 -0
  111. package/lib/languages/am.d.ts +7 -0
  112. package/lib/languages/am.js +164 -0
  113. package/lib/languages/ar.d.ts +17 -0
  114. package/lib/languages/ar.js +171 -209
  115. package/lib/languages/az.d.ts +7 -0
  116. package/lib/languages/az.js +167 -49
  117. package/lib/languages/bn.d.ts +7 -0
  118. package/lib/languages/bn.js +142 -123
  119. package/lib/languages/cs.d.ts +18 -0
  120. package/lib/languages/cs.js +303 -176
  121. package/lib/languages/da.d.ts +14 -0
  122. package/lib/languages/da.js +267 -139
  123. package/lib/languages/de.d.ts +17 -0
  124. package/lib/languages/de.js +310 -113
  125. package/lib/languages/el.d.ts +14 -0
  126. package/lib/languages/el.js +225 -98
  127. package/lib/languages/en.d.ts +17 -0
  128. package/lib/languages/en.js +235 -102
  129. package/lib/languages/es.d.ts +21 -0
  130. package/lib/languages/es.js +307 -125
  131. package/lib/languages/fa.d.ts +7 -0
  132. package/lib/languages/fa.js +115 -108
  133. package/lib/languages/fi.d.ts +14 -0
  134. package/lib/languages/fi.js +245 -0
  135. package/lib/languages/fil.d.ts +7 -0
  136. package/lib/languages/fil.js +199 -139
  137. package/lib/languages/fr-BE.d.ts +11 -0
  138. package/lib/languages/fr-BE.js +287 -48
  139. package/lib/languages/fr.d.ts +21 -0
  140. package/lib/languages/fr.js +343 -119
  141. package/lib/languages/gu.d.ts +7 -0
  142. package/lib/languages/gu.js +125 -144
  143. package/lib/languages/ha.d.ts +7 -0
  144. package/lib/languages/ha.js +230 -0
  145. package/lib/languages/hbo.d.ts +13 -0
  146. package/lib/languages/hbo.js +300 -0
  147. package/lib/languages/he.d.ts +13 -0
  148. package/lib/languages/he.js +230 -283
  149. package/lib/languages/hi.d.ts +7 -0
  150. package/lib/languages/hi.js +142 -123
  151. package/lib/languages/hr.d.ts +11 -0
  152. package/lib/languages/hr.js +190 -129
  153. package/lib/languages/hu.d.ts +7 -0
  154. package/lib/languages/hu.js +194 -133
  155. package/lib/languages/id.d.ts +7 -0
  156. package/lib/languages/id.js +167 -140
  157. package/lib/languages/it.d.ts +19 -0
  158. package/lib/languages/it.js +337 -108
  159. package/lib/languages/ja.d.ts +17 -0
  160. package/lib/languages/ja.js +224 -155
  161. package/lib/languages/kn.d.ts +7 -0
  162. package/lib/languages/kn.js +128 -62
  163. package/lib/languages/ko.d.ts +14 -0
  164. package/lib/languages/ko.js +250 -70
  165. package/lib/languages/lt.d.ts +18 -0
  166. package/lib/languages/lt.js +287 -148
  167. package/lib/languages/lv.d.ts +18 -0
  168. package/lib/languages/lv.js +291 -123
  169. package/lib/languages/mr.d.ts +7 -0
  170. package/lib/languages/mr.js +125 -144
  171. package/lib/languages/ms.d.ts +7 -0
  172. package/lib/languages/ms.js +171 -112
  173. package/lib/languages/nb.d.ts +14 -0
  174. package/lib/languages/nb.js +275 -100
  175. package/lib/languages/nl.d.ts +26 -0
  176. package/lib/languages/nl.js +307 -174
  177. package/lib/languages/pa.d.ts +7 -0
  178. package/lib/languages/pa.js +163 -0
  179. package/lib/languages/pl.d.ts +22 -0
  180. package/lib/languages/pl.js +299 -158
  181. package/lib/languages/pt.d.ts +17 -0
  182. package/lib/languages/pt.js +279 -120
  183. package/lib/languages/ro.d.ts +18 -0
  184. package/lib/languages/ro.js +214 -337
  185. package/lib/languages/ru.d.ts +11 -0
  186. package/lib/languages/ru.js +219 -95
  187. package/lib/languages/sr-Cyrl.d.ts +11 -0
  188. package/lib/languages/sr-Cyrl.js +215 -0
  189. package/lib/languages/sr-Latn.d.ts +11 -0
  190. package/lib/languages/sr-Latn.js +190 -132
  191. package/lib/languages/sv.d.ts +14 -0
  192. package/lib/languages/sv.js +280 -103
  193. package/lib/languages/sw.d.ts +7 -0
  194. package/lib/languages/sw.js +135 -103
  195. package/lib/languages/ta.d.ts +7 -0
  196. package/lib/languages/ta.js +133 -205
  197. package/lib/languages/te.d.ts +7 -0
  198. package/lib/languages/te.js +148 -213
  199. package/lib/languages/th.d.ts +7 -0
  200. package/lib/languages/th.js +139 -101
  201. package/lib/languages/tr.d.ts +18 -0
  202. package/lib/languages/tr.js +246 -66
  203. package/lib/languages/uk.d.ts +11 -0
  204. package/lib/languages/uk.js +197 -101
  205. package/lib/languages/ur.d.ts +7 -0
  206. package/lib/languages/ur.js +160 -123
  207. package/lib/languages/vi.d.ts +17 -0
  208. package/lib/languages/vi.js +287 -164
  209. package/lib/languages/zh-Hans.d.ts +11 -0
  210. package/lib/languages/zh-Hans.js +159 -142
  211. package/lib/languages/zh-Hant.d.ts +11 -0
  212. package/lib/languages/zh-Hant.js +202 -0
  213. package/lib/n2words.d.ts +53 -0
  214. package/lib/n2words.js +91 -227
  215. package/lib/utils/is-plain-object.d.ts +13 -0
  216. package/lib/utils/is-plain-object.js +17 -0
  217. package/lib/utils/parse-numeric.d.ts +17 -0
  218. package/lib/utils/parse-numeric.js +108 -0
  219. package/lib/utils/validate-options.d.ts +8 -0
  220. package/lib/utils/validate-options.js +16 -0
  221. package/package.json +118 -67
  222. package/dist/languages/pa-Guru.js +0 -2
  223. package/dist/languages/pa-Guru.js.map +0 -1
  224. package/lib/classes/abstract-language.js +0 -261
  225. package/lib/classes/greedy-scale-language.js +0 -195
  226. package/lib/classes/slavic-language.js +0 -251
  227. package/lib/classes/south-asian-language.js +0 -161
  228. package/lib/classes/turkic-language.js +0 -63
  229. package/lib/languages/pa-Guru.js +0 -126
  230. package/typings/classes/abstract-language.d.ts +0 -144
  231. package/typings/classes/greedy-scale-language.d.ts +0 -148
  232. package/typings/classes/slavic-language.d.ts +0 -145
  233. package/typings/classes/south-asian-language.d.ts +0 -101
  234. package/typings/classes/turkic-language.d.ts +0 -42
  235. package/typings/languages/ar.d.ts +0 -93
  236. package/typings/languages/az.d.ts +0 -25
  237. package/typings/languages/bn.d.ts +0 -1
  238. package/typings/languages/cs.d.ts +0 -120
  239. package/typings/languages/da.d.ts +0 -53
  240. package/typings/languages/de.d.ts +0 -26
  241. package/typings/languages/el.d.ts +0 -11
  242. package/typings/languages/en.d.ts +0 -30
  243. package/typings/languages/es.d.ts +0 -43
  244. package/typings/languages/fa.d.ts +0 -81
  245. package/typings/languages/fil.d.ts +0 -12
  246. package/typings/languages/fr-BE.d.ts +0 -41
  247. package/typings/languages/fr.d.ts +0 -43
  248. package/typings/languages/gu.d.ts +0 -12
  249. package/typings/languages/he.d.ts +0 -197
  250. package/typings/languages/hi.d.ts +0 -1
  251. package/typings/languages/hr.d.ts +0 -110
  252. package/typings/languages/hu.d.ts +0 -37
  253. package/typings/languages/id.d.ts +0 -69
  254. package/typings/languages/it.d.ts +0 -51
  255. package/typings/languages/ja.d.ts +0 -58
  256. package/typings/languages/kn.d.ts +0 -11
  257. package/typings/languages/ko.d.ts +0 -25
  258. package/typings/languages/lt.d.ts +0 -110
  259. package/typings/languages/lv.d.ts +0 -99
  260. package/typings/languages/mr.d.ts +0 -12
  261. package/typings/languages/ms.d.ts +0 -37
  262. package/typings/languages/nb.d.ts +0 -27
  263. package/typings/languages/nl.d.ts +0 -65
  264. package/typings/languages/pa-Guru.d.ts +0 -1
  265. package/typings/languages/pl.d.ts +0 -116
  266. package/typings/languages/pt.d.ts +0 -39
  267. package/typings/languages/ro.d.ts +0 -229
  268. package/typings/languages/ru.d.ts +0 -108
  269. package/typings/languages/sr-Latn.d.ts +0 -98
  270. package/typings/languages/sv.d.ts +0 -30
  271. package/typings/languages/sw.d.ts +0 -1
  272. package/typings/languages/ta.d.ts +0 -1
  273. package/typings/languages/te.d.ts +0 -1
  274. package/typings/languages/th.d.ts +0 -1
  275. package/typings/languages/tr.d.ts +0 -46
  276. package/typings/languages/uk.d.ts +0 -117
  277. package/typings/languages/ur.d.ts +0 -1
  278. package/typings/languages/vi.d.ts +0 -116
  279. package/typings/languages/zh-Hans.d.ts +0 -57
  280. package/typings/n2words.d.ts +0 -177
@@ -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';
@@ -1,37 +0,0 @@
1
- /**
2
- * Converts a number to Hungarian cardinal (written) form.
3
- *
4
- * @param {number|string|bigint} value The number to convert.
5
- * @param {Object} [options] Conversion options (see Hungarian class options).
6
- * @returns {string} The number expressed in Hungarian 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); // 'negyvenkettő'
12
- * convertToWords(21); // 'huszonegy'
13
- */
14
- export default function convertToWords(value: number | string | bigint, options?: any): string;
15
- /**
16
- * Hungarian language converter.
17
- *
18
- * Converts numbers to Hungarian words following Hungarian conventions:
19
- * - Agglutinative structure for compound numbers
20
- * - No spaces between tens and units (e.g., "huszonegy" = twenty-one)
21
- * - Special handling for "egy" (one) - often omitted as multiplier
22
- * - Vowel harmony in compound words
23
- *
24
- * Features:
25
- * - Compact number representations (húsz, harminc, negyven)
26
- * - Pre-composed twenties (huszonegy through huszonkilenc)
27
- * - "egész" as decimal separator (meaning "whole")
28
- * - Support for very large numbers (up to quadrilliards)
29
- */
30
- export class Hungarian extends GreedyScaleLanguage {
31
- tensToCardinal(number: any): string;
32
- hundredsToCardinal(number: any): string;
33
- thousandsToCardinal(number: any): string;
34
- bigNumberToCardinal(number: any): string;
35
- convertWholePart(number: any, zeroWord?: string): string;
36
- }
37
- import GreedyScaleLanguage from '../classes/greedy-scale-language.js';
@@ -1,69 +0,0 @@
1
- /**
2
- * Converts a number to Indonesian 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 Indonesian 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
- * Indonesian language converter.
13
- *
14
- * Converts numbers to Indonesian words following Indonesian conventions:
15
- * - Simple base-10 structure
16
- * - "Se-" prefix for one (e.g., "seratus" = one hundred, "seribu" = one thousand)
17
- * - Space-separated number components
18
- * - Straightforward grouping by thousands
19
- *
20
- * Key Features:
21
- * - Base number mapping (base) for single digits 0-9
22
- * - Magnitude scale (thousands) mapping powers of 10 to Indonesian words
23
- * - Group-based algorithm:
24
- * 1. Split number into groups of 3 digits
25
- * 2. For each group, convert ones/tens/hundreds using base and naming rules
26
- * 3. Apply "se-" prefix for 1 (seratus, seribu, sejuta)
27
- * 4. Combine with magnitude words
28
- * 5. Join all parts with spaces
29
- * - Regular patterns (puluh for tens, ratus for hundreds, ribu for thousands)
30
- * - Clear grouping: ribu (10³), juta (10⁶), miliar (10⁹), triliun (10¹²)
31
- *
32
- * Features:
33
- * - "Se-" prefix usage for singular units
34
- * - Support for very large numbers (up to decillions)
35
- */
36
- export class Indonesian extends AbstractLanguage {
37
- base: {
38
- 0: any[];
39
- 1: string[];
40
- 2: string[];
41
- 3: string[];
42
- 4: string[];
43
- 5: string[];
44
- 6: string[];
45
- 7: string[];
46
- 8: string[];
47
- 9: string[];
48
- };
49
- thousands: {
50
- 3: string;
51
- 6: string;
52
- 9: string;
53
- 12: string;
54
- 15: string;
55
- 18: string;
56
- 21: string;
57
- 24: string;
58
- 27: string;
59
- 30: string;
60
- 33: string;
61
- };
62
- splitBy3(number: any): any[][];
63
- spell(blocks: any): any[];
64
- getHundreds(number: any): any[];
65
- getTens(number: any): any;
66
- join(wordBlocks: any): string;
67
- convertWholePart(number: any): string;
68
- }
69
- import AbstractLanguage from '../classes/abstract-language.js';