n2words 5.1.0 → 5.1.2

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 (229) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/dist/am-ET.js +1 -1
  3. package/dist/am-ET.umd.js +1 -1
  4. package/dist/am-Latn-ET.js +1 -1
  5. package/dist/am-Latn-ET.umd.js +1 -1
  6. package/dist/ar-SA.js +1 -1
  7. package/dist/ar-SA.umd.js +1 -1
  8. package/dist/az-AZ.js +1 -1
  9. package/dist/az-AZ.umd.js +1 -1
  10. package/dist/bn-BD.js +1 -1
  11. package/dist/bn-BD.umd.js +1 -1
  12. package/dist/cs-CZ.js +1 -1
  13. package/dist/cs-CZ.umd.js +1 -1
  14. package/dist/da-DK.js +1 -1
  15. package/dist/da-DK.umd.js +1 -1
  16. package/dist/de-DE.js +1 -1
  17. package/dist/de-DE.umd.js +1 -1
  18. package/dist/el-GR.js +1 -1
  19. package/dist/el-GR.umd.js +1 -1
  20. package/dist/en-AU.js +1 -1
  21. package/dist/en-AU.umd.js +1 -1
  22. package/dist/en-BD.js +1 -1
  23. package/dist/en-BD.umd.js +1 -1
  24. package/dist/en-CA.js +1 -1
  25. package/dist/en-CA.umd.js +1 -1
  26. package/dist/en-GB.js +1 -1
  27. package/dist/en-GB.umd.js +1 -1
  28. package/dist/en-GH.js +1 -1
  29. package/dist/en-GH.umd.js +1 -1
  30. package/dist/en-IE.js +1 -1
  31. package/dist/en-IE.umd.js +1 -1
  32. package/dist/en-IN.js +1 -1
  33. package/dist/en-IN.umd.js +1 -1
  34. package/dist/en-KE.js +1 -1
  35. package/dist/en-KE.umd.js +1 -1
  36. package/dist/en-MY.js +1 -1
  37. package/dist/en-MY.umd.js +1 -1
  38. package/dist/en-NG.js +1 -1
  39. package/dist/en-NG.umd.js +1 -1
  40. package/dist/en-NZ.js +1 -1
  41. package/dist/en-NZ.umd.js +1 -1
  42. package/dist/en-PH.js +1 -1
  43. package/dist/en-PH.umd.js +1 -1
  44. package/dist/en-PK.js +1 -1
  45. package/dist/en-PK.umd.js +1 -1
  46. package/dist/en-SG.js +1 -1
  47. package/dist/en-SG.umd.js +1 -1
  48. package/dist/en-US.js +1 -1
  49. package/dist/en-US.umd.js +1 -1
  50. package/dist/en-ZA.js +1 -1
  51. package/dist/en-ZA.umd.js +1 -1
  52. package/dist/es-ES.js +1 -1
  53. package/dist/es-ES.umd.js +1 -1
  54. package/dist/es-MX.js +1 -1
  55. package/dist/es-MX.umd.js +1 -1
  56. package/dist/es-US.js +1 -1
  57. package/dist/es-US.umd.js +1 -1
  58. package/dist/fa-IR.js +1 -1
  59. package/dist/fa-IR.umd.js +1 -1
  60. package/dist/fi-FI.js +1 -1
  61. package/dist/fi-FI.umd.js +1 -1
  62. package/dist/fil-PH.js +1 -1
  63. package/dist/fil-PH.umd.js +1 -1
  64. package/dist/fr-BE.js +1 -1
  65. package/dist/fr-BE.umd.js +1 -1
  66. package/dist/fr-FR.js +1 -1
  67. package/dist/fr-FR.umd.js +1 -1
  68. package/dist/gu-IN.js +1 -1
  69. package/dist/gu-IN.umd.js +1 -1
  70. package/dist/ha-NG.js +1 -1
  71. package/dist/ha-NG.umd.js +1 -1
  72. package/dist/hbo-IL.js +1 -1
  73. package/dist/hbo-IL.umd.js +1 -1
  74. package/dist/he-IL.js +1 -1
  75. package/dist/he-IL.umd.js +1 -1
  76. package/dist/hi-IN.js +1 -1
  77. package/dist/hi-IN.umd.js +1 -1
  78. package/dist/hr-HR.js +2 -2
  79. package/dist/hr-HR.umd.js +2 -2
  80. package/dist/hu-HU.js +1 -1
  81. package/dist/hu-HU.umd.js +1 -1
  82. package/dist/id-ID.js +1 -1
  83. package/dist/id-ID.umd.js +1 -1
  84. package/dist/it-IT.js +1 -1
  85. package/dist/it-IT.umd.js +1 -1
  86. package/dist/ja-JP.js +1 -1
  87. package/dist/ja-JP.umd.js +1 -1
  88. package/dist/ka-GE.js +1 -1
  89. package/dist/ka-GE.umd.js +1 -1
  90. package/dist/kn-IN.js +1 -1
  91. package/dist/kn-IN.umd.js +1 -1
  92. package/dist/ko-KR.js +1 -1
  93. package/dist/ko-KR.umd.js +1 -1
  94. package/dist/lt-LT.js +1 -1
  95. package/dist/lt-LT.umd.js +1 -1
  96. package/dist/lv-LV.js +1 -1
  97. package/dist/lv-LV.umd.js +1 -1
  98. package/dist/mr-IN.js +1 -1
  99. package/dist/mr-IN.umd.js +1 -1
  100. package/dist/ms-MY.js +1 -1
  101. package/dist/ms-MY.umd.js +1 -1
  102. package/dist/nb-NO.js +1 -1
  103. package/dist/nb-NO.umd.js +1 -1
  104. package/dist/nl-NL.js +1 -1
  105. package/dist/nl-NL.umd.js +1 -1
  106. package/dist/pa-IN.js +1 -1
  107. package/dist/pa-IN.umd.js +1 -1
  108. package/dist/pl-PL.js +1 -1
  109. package/dist/pl-PL.umd.js +1 -1
  110. package/dist/pt-BR.js +1 -1
  111. package/dist/pt-BR.umd.js +1 -1
  112. package/dist/pt-PT.js +1 -1
  113. package/dist/pt-PT.umd.js +1 -1
  114. package/dist/ro-RO.js +1 -1
  115. package/dist/ro-RO.umd.js +1 -1
  116. package/dist/ru-RU.js +1 -1
  117. package/dist/ru-RU.umd.js +1 -1
  118. package/dist/sr-Cyrl-RS.js +2 -2
  119. package/dist/sr-Cyrl-RS.umd.js +2 -2
  120. package/dist/sr-Latn-RS.js +2 -2
  121. package/dist/sr-Latn-RS.umd.js +2 -2
  122. package/dist/sv-SE.js +1 -1
  123. package/dist/sv-SE.umd.js +1 -1
  124. package/dist/sw-KE.js +1 -1
  125. package/dist/sw-KE.umd.js +1 -1
  126. package/dist/ta-IN.js +1 -1
  127. package/dist/ta-IN.umd.js +1 -1
  128. package/dist/te-IN.js +1 -1
  129. package/dist/te-IN.umd.js +1 -1
  130. package/dist/th-TH.js +1 -1
  131. package/dist/th-TH.umd.js +1 -1
  132. package/dist/tr-TR.js +1 -1
  133. package/dist/tr-TR.umd.js +1 -1
  134. package/dist/uk-UA.js +1 -1
  135. package/dist/uk-UA.umd.js +1 -1
  136. package/dist/ur-PK.js +1 -1
  137. package/dist/ur-PK.umd.js +1 -1
  138. package/dist/vi-VN.js +1 -1
  139. package/dist/vi-VN.umd.js +1 -1
  140. package/dist/yo-NG.js +1 -1
  141. package/dist/yo-NG.umd.js +1 -1
  142. package/dist/zh-Hans-CN.js +1 -1
  143. package/dist/zh-Hans-CN.umd.js +1 -1
  144. package/dist/zh-Hant-TW.js +1 -1
  145. package/dist/zh-Hant-TW.umd.js +1 -1
  146. package/package.json +17 -17
  147. package/src/am-ET.d.ts +19 -6
  148. package/src/am-Latn-ET.d.ts +19 -6
  149. package/src/ar-SA.d.ts +46 -32
  150. package/src/az-AZ.d.ts +17 -6
  151. package/src/bn-BD.d.ts +18 -6
  152. package/src/cs-CZ.d.ts +19 -6
  153. package/src/da-DK.d.ts +19 -6
  154. package/src/de-DE.d.ts +30 -16
  155. package/src/el-GR.d.ts +18 -6
  156. package/src/en-AU.d.ts +27 -16
  157. package/src/en-BD.d.ts +28 -16
  158. package/src/en-CA.d.ts +46 -25
  159. package/src/en-GB.d.ts +28 -16
  160. package/src/en-GH.d.ts +35 -16
  161. package/src/en-IE.d.ts +38 -16
  162. package/src/en-IN.d.ts +28 -16
  163. package/src/en-KE.d.ts +35 -16
  164. package/src/en-MY.d.ts +38 -16
  165. package/src/en-NG.d.ts +38 -16
  166. package/src/en-NZ.d.ts +35 -16
  167. package/src/en-PH.d.ts +35 -16
  168. package/src/en-PK.d.ts +28 -16
  169. package/src/en-SG.d.ts +35 -16
  170. package/src/en-US.d.ts +44 -25
  171. package/src/en-ZA.d.ts +37 -16
  172. package/src/es-ES.d.ts +61 -42
  173. package/src/es-MX.d.ts +61 -42
  174. package/src/es-US.d.ts +61 -42
  175. package/src/fa-IR.d.ts +17 -6
  176. package/src/fi-FI.d.ts +19 -6
  177. package/src/fil-PH.d.ts +18 -6
  178. package/src/fr-BE.d.ts +35 -23
  179. package/src/fr-FR.d.ts +36 -23
  180. package/src/gu-IN.d.ts +19 -6
  181. package/src/ha-NG.d.ts +21 -6
  182. package/src/hbo-IL.d.ts +30 -17
  183. package/src/he-IL.d.ts +24 -11
  184. package/src/hi-IN.d.ts +19 -6
  185. package/src/hr-HR.d.ts +28 -15
  186. package/src/hr-HR.js +8 -6
  187. package/src/hu-HU.d.ts +18 -6
  188. package/src/id-ID.d.ts +18 -6
  189. package/src/it-IT.d.ts +30 -16
  190. package/src/ja-JP.d.ts +18 -6
  191. package/src/ka-GE.d.ts +20 -6
  192. package/src/kn-IN.d.ts +19 -6
  193. package/src/ko-KR.d.ts +18 -6
  194. package/src/lt-LT.d.ts +27 -15
  195. package/src/lv-LV.d.ts +28 -15
  196. package/src/mr-IN.d.ts +19 -6
  197. package/src/ms-MY.d.ts +18 -6
  198. package/src/nb-NO.d.ts +18 -6
  199. package/src/nl-NL.d.ts +42 -27
  200. package/src/pa-IN.d.ts +18 -6
  201. package/src/pl-PL.d.ts +28 -15
  202. package/src/pt-BR.d.ts +34 -21
  203. package/src/pt-PT.d.ts +29 -16
  204. package/src/ro-RO.d.ts +27 -15
  205. package/src/ru-RU.d.ts +38 -26
  206. package/src/sr-Cyrl-RS.d.ts +40 -26
  207. package/src/sr-Cyrl-RS.js +6 -5
  208. package/src/sr-Latn-RS.d.ts +40 -26
  209. package/src/sr-Latn-RS.js +6 -5
  210. package/src/sv-SE.d.ts +19 -6
  211. package/src/sw-KE.d.ts +17 -6
  212. package/src/ta-IN.d.ts +21 -6
  213. package/src/te-IN.d.ts +19 -6
  214. package/src/th-TH.d.ts +19 -6
  215. package/src/tr-TR.d.ts +22 -11
  216. package/src/uk-UA.d.ts +27 -15
  217. package/src/ur-PK.d.ts +18 -6
  218. package/src/utils/check-max.d.ts +1 -1
  219. package/src/utils/expand-scientific.d.ts +3 -3
  220. package/src/utils/is-plain-object.d.ts +1 -1
  221. package/src/utils/parse-cardinal.d.ts +7 -1
  222. package/src/utils/parse-currency.d.ts +6 -1
  223. package/src/utils/parse-ordinal.d.ts +6 -1
  224. package/src/utils/resolve-options.d.ts +1 -1
  225. package/src/utils/scale.d.ts +22 -22
  226. package/src/vi-VN.d.ts +17 -6
  227. package/src/yo-NG.d.ts +24 -6
  228. package/src/zh-Hans-CN.d.ts +46 -34
  229. package/src/zh-Hant-TW.d.ts +50 -34
package/src/hbo-IL.d.ts CHANGED
@@ -1,26 +1,38 @@
1
- export const cardinalMax: bigint;
2
- export const ordinalMax: bigint;
3
- export const currencyMax: bigint;
4
1
  /**
5
- * @typedef {object} CardinalOptions
6
- * @property {('masculine'|'feminine')} [gender] - Grammatical gender
7
- * @property {string} [andWord] - Custom conjunction word
2
+ * Biblical Hebrew (Israel) language converter
3
+ *
4
+ * CLDR: hbo-IL | Biblical/Ancient Hebrew
5
+ *
6
+ * Key features:
7
+ * - Gender agreement (masculine default, feminine via option)
8
+ * - Dual forms for 2, 200, 2000
9
+ * - Special 1-9 thousands construct state
10
+ * - "ו" (ve) conjunction rules vary by position
11
+ * - Per-digit decimal reading
8
12
  */
9
- /** @type {Required<CardinalOptions>} */
10
- export const cardinalDefaults: Required<CardinalOptions>;
11
- /** @type {{ gender: ReadonlyArray<Required<CardinalOptions>['gender']> }} */
12
- export const cardinalValues: {
13
- gender: ReadonlyArray<Required<CardinalOptions>["gender"]>;
14
- };
13
+ export declare const cardinalMax: bigint;
14
+ export declare const ordinalMax: bigint;
15
+ export declare const currencyMax: bigint;
15
16
  export type CardinalOptions = {
16
17
  /**
17
18
  * - Grammatical gender
18
19
  */
19
- gender?: "feminine" | "masculine" | undefined;
20
+ gender?: ('masculine' | 'feminine');
20
21
  /**
21
22
  * - Custom conjunction word
22
23
  */
23
- andWord?: string | undefined;
24
+ andWord?: string;
25
+ };
26
+ /**
27
+ * @typedef {object} CardinalOptions
28
+ * @property {('masculine'|'feminine')} [gender] - Grammatical gender
29
+ * @property {string} [andWord] - Custom conjunction word
30
+ */
31
+ /** @type {Required<CardinalOptions>} */
32
+ export declare const cardinalDefaults: Required<CardinalOptions>;
33
+ /** @type {{ gender: ReadonlyArray<Required<CardinalOptions>['gender']> }} */
34
+ export declare const cardinalValues: {
35
+ gender: ReadonlyArray<Required<CardinalOptions>['gender']>;
24
36
  };
25
37
  /**
26
38
  * Converts a numeric value to Biblical Hebrew words.
@@ -28,7 +40,7 @@ export type CardinalOptions = {
28
40
  * @param {CardinalOptions} [options] - Optional configuration
29
41
  * @returns {string} The number in Biblical Hebrew words
30
42
  */
31
- export function toCardinal(value: number | string | bigint, options?: CardinalOptions): string;
43
+ declare function toCardinal(value: number | string | bigint, options?: CardinalOptions): string;
32
44
  /**
33
45
  * Converts a numeric value to Biblical Hebrew ordinal words.
34
46
  * @param {number | string | bigint} value - The numeric value to convert
@@ -39,7 +51,7 @@ export function toCardinal(value: number | string | bigint, options?: CardinalOp
39
51
  * toOrdinal(1) // 'ראשון'
40
52
  * toOrdinal(21) // 'עשרים וראשון'
41
53
  */
42
- export function toOrdinal(value: number | string | bigint): string;
54
+ declare function toOrdinal(value: number | string | bigint): string;
43
55
  /**
44
56
  * Converts a numeric value to Biblical Hebrew Shekel currency words.
45
57
  * @param {number | string | bigint} value - The numeric value to convert
@@ -50,4 +62,5 @@ export function toOrdinal(value: number | string | bigint): string;
50
62
  * toCurrency(1) // 'שקל אחד'
51
63
  * toCurrency(2.50) // 'שניים שקלים חמישים גרות'
52
64
  */
53
- export function toCurrency(value: number | string | bigint): string;
65
+ declare function toCurrency(value: number | string | bigint): string;
66
+ export { toCardinal, toOrdinal, toCurrency };
package/src/he-IL.d.ts CHANGED
@@ -1,25 +1,37 @@
1
- export const cardinalMax: bigint;
2
- export const ordinalMax: bigint;
3
- export const currencyMax: bigint;
4
1
  /**
5
- * @typedef {object} CardinalOptions
6
- * @property {string} [andWord] - Custom conjunction word
2
+ * Modern Hebrew (Israel) language converter
3
+ *
4
+ * CLDR: he-IL | Modern Hebrew as used in Israel
5
+ *
6
+ * Key features:
7
+ * - Feminine grammatical forms (default in Modern Hebrew)
8
+ * - Dual forms for 2, 200, 2000
9
+ * - Special 1-9 thousands construct state
10
+ * - "ו" (ve) conjunction rules vary by position
11
+ * - Per-digit decimal reading
7
12
  */
8
- /** @type {Required<CardinalOptions>} */
9
- export const cardinalDefaults: Required<CardinalOptions>;
13
+ export declare const cardinalMax: bigint;
14
+ export declare const ordinalMax: bigint;
15
+ export declare const currencyMax: bigint;
10
16
  export type CardinalOptions = {
11
17
  /**
12
18
  * - Custom conjunction word
13
19
  */
14
- andWord?: string | undefined;
20
+ andWord?: string;
15
21
  };
22
+ /**
23
+ * @typedef {object} CardinalOptions
24
+ * @property {string} [andWord] - Custom conjunction word
25
+ */
26
+ /** @type {Required<CardinalOptions>} */
27
+ export declare const cardinalDefaults: Required<CardinalOptions>;
16
28
  /**
17
29
  * Converts a numeric value to Modern Hebrew words.
18
30
  * @param {number | string | bigint} value - The numeric value to convert
19
31
  * @param {CardinalOptions} [options] - Optional configuration
20
32
  * @returns {string} The number in Modern Hebrew words
21
33
  */
22
- export function toCardinal(value: number | string | bigint, options?: CardinalOptions): string;
34
+ declare function toCardinal(value: number | string | bigint, options?: CardinalOptions): string;
23
35
  /**
24
36
  * Converts a numeric value to Hebrew ordinal words.
25
37
  * @param {number | string | bigint} value - The numeric value to convert
@@ -30,7 +42,7 @@ export function toCardinal(value: number | string | bigint, options?: CardinalOp
30
42
  * toOrdinal(1) // 'ראשון'
31
43
  * toOrdinal(21) // 'עשרים וראשון'
32
44
  */
33
- export function toOrdinal(value: number | string | bigint): string;
45
+ declare function toOrdinal(value: number | string | bigint): string;
34
46
  /**
35
47
  * Converts a numeric value to Hebrew New Israeli Shekel currency words.
36
48
  * @param {number | string | bigint} value - The numeric value to convert
@@ -41,4 +53,5 @@ export function toOrdinal(value: number | string | bigint): string;
41
53
  * toCurrency(1) // 'שקל אחד'
42
54
  * toCurrency(2.50) // 'שניים שקלים חמישים אגורות'
43
55
  */
44
- export function toCurrency(value: number | string | bigint): string;
56
+ declare function toCurrency(value: number | string | bigint): string;
57
+ export { toCardinal, toOrdinal, toCurrency };
package/src/hi-IN.d.ts CHANGED
@@ -1,12 +1,24 @@
1
- export const cardinalMax: bigint;
2
- export const ordinalMax: bigint;
3
- export const currencyMax: bigint;
1
+ /**
2
+ * Hindi (India) language converter
3
+ *
4
+ * CLDR: hi-IN | Hindi as used in India
5
+ *
6
+ * Key features:
7
+ * - Indian numbering system (हज़ार, लाख, करोड़)
8
+ * - Devanagari script
9
+ * - 3-2-2 grouping pattern (last 3 digits, then groups of 2)
10
+ * - Complete word forms for 0-99
11
+ * - BigInt modulo for efficient segment extraction
12
+ */
13
+ export declare const cardinalMax: bigint;
14
+ export declare const ordinalMax: bigint;
15
+ export declare const currencyMax: bigint;
4
16
  /**
5
17
  * Converts a numeric value to Hindi words.
6
18
  * @param {number | string | bigint} value - The numeric value to convert
7
19
  * @returns {string} The number in Hindi words
8
20
  */
9
- export function toCardinal(value: number | string | bigint): string;
21
+ declare function toCardinal(value: number | string | bigint): string;
10
22
  /**
11
23
  * Converts a numeric value to Hindi ordinal words.
12
24
  * @param {number | string | bigint} value - The numeric value to convert (positive integer)
@@ -19,7 +31,7 @@ export function toCardinal(value: number | string | bigint): string;
19
31
  * toOrdinal(3) // 'तीसरा'
20
32
  * toOrdinal(10) // 'दसवाँ'
21
33
  */
22
- export function toOrdinal(value: number | string | bigint): string;
34
+ declare function toOrdinal(value: number | string | bigint): string;
23
35
  /**
24
36
  * Converts a numeric value to Hindi currency words (Indian Rupee).
25
37
  * @param {number | string | bigint} value - The currency amount to convert
@@ -31,4 +43,5 @@ export function toOrdinal(value: number | string | bigint): string;
31
43
  * toCurrency(1) // 'एक रुपया'
32
44
  * toCurrency(0.01) // 'एक पैसा'
33
45
  */
34
- export function toCurrency(value: number | string | bigint): string;
46
+ declare function toCurrency(value: number | string | bigint): string;
47
+ export { toCardinal, toOrdinal, toCurrency };
package/src/hr-HR.d.ts CHANGED
@@ -1,21 +1,33 @@
1
- export const cardinalMax: bigint;
2
- export const ordinalMax: bigint;
3
- export const currencyMax: bigint;
4
1
  /**
5
- * @typedef {object} CardinalOptions
6
- * @property {('masculine'|'feminine')} [gender] - Grammatical gender
2
+ * Croatian (Croatia) language converter
3
+ *
4
+ * CLDR: hr-HR | Croatian as used in Croatia
5
+ *
6
+ * Key features:
7
+ * - Three-form pluralization (one/few/many)
8
+ * - Gender by scale word: tisuća and the -arda forms (milijarda, bilijarda, ...)
9
+ * are feminine; the -un forms (milijun, bilijun, ...) are masculine
10
+ * - Irregular hundreds (dvjesto, tristo, etc.)
11
+ * - Long scale naming with -ard forms
7
12
  */
8
- /** @type {Required<CardinalOptions>} */
9
- export const cardinalDefaults: Required<CardinalOptions>;
10
- /** @type {{ gender: ReadonlyArray<Required<CardinalOptions>['gender']> }} */
11
- export const cardinalValues: {
12
- gender: ReadonlyArray<Required<CardinalOptions>["gender"]>;
13
- };
13
+ export declare const cardinalMax: bigint;
14
+ export declare const ordinalMax: bigint;
15
+ export declare const currencyMax: bigint;
14
16
  export type CardinalOptions = {
15
17
  /**
16
18
  * - Grammatical gender
17
19
  */
18
- gender?: "feminine" | "masculine" | undefined;
20
+ gender?: ('masculine' | 'feminine');
21
+ };
22
+ /**
23
+ * @typedef {object} CardinalOptions
24
+ * @property {('masculine'|'feminine')} [gender] - Grammatical gender
25
+ */
26
+ /** @type {Required<CardinalOptions>} */
27
+ export declare const cardinalDefaults: Required<CardinalOptions>;
28
+ /** @type {{ gender: ReadonlyArray<Required<CardinalOptions>['gender']> }} */
29
+ export declare const cardinalValues: {
30
+ gender: ReadonlyArray<Required<CardinalOptions>['gender']>;
19
31
  };
20
32
  /**
21
33
  * Converts a numeric value to Croatian words.
@@ -23,7 +35,7 @@ export type CardinalOptions = {
23
35
  * @param {CardinalOptions} [options] - Optional configuration
24
36
  * @returns {string} The number in Croatian words
25
37
  */
26
- export function toCardinal(value: number | string | bigint, options?: CardinalOptions): string;
38
+ declare function toCardinal(value: number | string | bigint, options?: CardinalOptions): string;
27
39
  /**
28
40
  * Converts a numeric value to Croatian ordinal words (masculine nominative).
29
41
  * @param {number | string | bigint} value - The numeric value to convert (must be a positive integer)
@@ -37,7 +49,7 @@ export function toCardinal(value: number | string | bigint, options?: CardinalOp
37
49
  * toOrdinal(100) // 'stoti'
38
50
  * toOrdinal(1000) // 'tisućiti'
39
51
  */
40
- export function toOrdinal(value: number | string | bigint): string;
52
+ declare function toOrdinal(value: number | string | bigint): string;
41
53
  /**
42
54
  * Converts a numeric value to Croatian currency words (Euro).
43
55
  * @param {number | string | bigint} value - The currency amount to convert
@@ -50,4 +62,5 @@ export function toOrdinal(value: number | string | bigint): string;
50
62
  * toCurrency(1.50) // 'jedan euro pedeset centi'
51
63
  * toCurrency(-5) // 'minus pet eura'
52
64
  */
53
- export function toCurrency(value: number | string | bigint): string;
65
+ declare function toCurrency(value: number | string | bigint): string;
66
+ export { toCardinal, toOrdinal, toCurrency };
package/src/hr-HR.js CHANGED
@@ -5,7 +5,8 @@
5
5
  *
6
6
  * Key features:
7
7
  * - Three-form pluralization (one/few/many)
8
- * - Gender: thousands are feminine, millions+ are masculine
8
+ * - Gender by scale word: tisuća and the -arda forms (milijarda, bilijarda, ...)
9
+ * are feminine; the -un forms (milijun, bilijun, ...) are masculine
9
10
  * - Irregular hundreds (dvjesto, tristo, etc.)
10
11
  * - Long scale naming with -ard forms
11
12
  */
@@ -63,7 +64,8 @@ const EURO_FORMS = ['euro', 'eura', 'eura']
63
64
  const CENT_FORMS = ['cent', 'centa', 'centi']
64
65
 
65
66
  // Scale words: [singular, few, many]
66
- // Thousands (index 0) are feminine, rest are masculine
67
+ // Indexed [scaleIndex - 1]; odd scales (tisuća, milijarda, bilijarda, ...) are
68
+ // feminine, the -un forms (milijun, bilijun, ...) masculine
67
69
  const SCALE_FORMS = [
68
70
  ['tisuća', 'tisuće', 'tisuća'],
69
71
  ['milijun', 'milijuna', 'milijuna'],
@@ -221,8 +223,8 @@ function buildLargeNumberWords(n, gender) {
221
223
  else {
222
224
  const scaleForms = SCALE_FORMS[scaleIndex - 1]
223
225
  const scaleWord = pluralize(segment, scaleForms)
224
- // Thousands (scaleIndex=1) are feminine, others masculine
225
- const isFeminine = scaleIndex === 1
226
+ // tisuća and the -arda forms (milijarda, bilijarda, ...) are feminine; -un words masculine
227
+ const isFeminine = scaleIndex % 2 === 1
226
228
  const segmentWord = isFeminine ? buildSegmentFem(segment) : buildSegmentMasc(segment)
227
229
  parts.push(segmentWord + ' ' + scaleWord)
228
230
  }
@@ -429,7 +431,7 @@ function buildLargeOrdinal(n) {
429
431
  parts.push(ORDINAL_SCALES[scaleIndex - 1])
430
432
  }
431
433
  else {
432
- const isFeminine = scaleIndex === 1
434
+ const isFeminine = scaleIndex % 2 === 1 // feminine at odd scales (tisuća, milijarda, ...)
433
435
  const segmentWord = isFeminine ? buildSegmentFem(segment) : buildSegmentMasc(segment)
434
436
  parts.push(segmentWord + ' ' + ORDINAL_SCALES[scaleIndex - 1])
435
437
  }
@@ -437,7 +439,7 @@ function buildLargeOrdinal(n) {
437
439
  else {
438
440
  const scaleForms = SCALE_FORMS[scaleIndex - 1]
439
441
  const scaleWord = pluralize(segment, scaleForms)
440
- const isFeminine = scaleIndex === 1
442
+ const isFeminine = scaleIndex % 2 === 1
441
443
  const segmentWord = isFeminine ? buildSegmentFem(segment) : buildSegmentMasc(segment)
442
444
  parts.push(segmentWord + ' ' + scaleWord)
443
445
  }
package/src/hu-HU.d.ts CHANGED
@@ -1,12 +1,23 @@
1
- export const cardinalMax: null;
2
- export const ordinalMax: null;
3
- export const currencyMax: null;
1
+ /**
2
+ * Hungarian (Hungary) language converter
3
+ *
4
+ * CLDR: hu-HU | Hungarian as used in Hungary
5
+ *
6
+ * Key features:
7
+ * - Agglutinative structure (no spaces between compound parts)
8
+ * - Special handling for "egy" (one) omission
9
+ * - Pre-composed twenties (huszonegy through huszonkilenc)
10
+ * - "két" instead of "kettő" in compound forms
11
+ */
12
+ export declare const cardinalMax: null;
13
+ export declare const ordinalMax: null;
14
+ export declare const currencyMax: null;
4
15
  /**
5
16
  * Converts a numeric value to Hungarian words.
6
17
  * @param {number | string | bigint} value - The numeric value to convert
7
18
  * @returns {string} The number in Hungarian words
8
19
  */
9
- export function toCardinal(value: number | string | bigint): string;
20
+ declare function toCardinal(value: number | string | bigint): string;
10
21
  /**
11
22
  * Converts a numeric value to Hungarian ordinal words.
12
23
  * @param {number | string | bigint} value - The numeric value to convert (positive integer)
@@ -18,7 +29,7 @@ export function toCardinal(value: number | string | bigint): string;
18
29
  * toOrdinal(2) // 'második'
19
30
  * toOrdinal(21) // 'huszonegyedik'
20
31
  */
21
- export function toOrdinal(value: number | string | bigint): string;
32
+ declare function toOrdinal(value: number | string | bigint): string;
22
33
  /**
23
34
  * Converts a numeric value to Hungarian currency words (Hungarian Forint).
24
35
  *
@@ -33,4 +44,5 @@ export function toOrdinal(value: number | string | bigint): string;
33
44
  * toCurrency(1.50) // 'egy forint ötven fillér'
34
45
  * toCurrency(-5) // 'mínusz öt forint'
35
46
  */
36
- export function toCurrency(value: number | string | bigint): string;
47
+ declare function toCurrency(value: number | string | bigint): string;
48
+ export { toCardinal, toOrdinal, toCurrency };
package/src/id-ID.d.ts CHANGED
@@ -1,12 +1,23 @@
1
- export const cardinalMax: bigint;
2
- export const ordinalMax: bigint;
3
- export const currencyMax: bigint;
1
+ /**
2
+ * Indonesian (Indonesia) language converter
3
+ *
4
+ * CLDR: id-ID | Indonesian as used in Indonesia
5
+ *
6
+ * Key features:
7
+ * - "Se-" prefix for 100 (seratus) and 1000 (seribu)
8
+ * - Regular patterns (puluh for tens, ratus for hundreds)
9
+ * - Teens with "belas" suffix
10
+ * - Indonesian uses "satu juta" (not "sejuta") for millions+
11
+ */
12
+ export declare const cardinalMax: bigint;
13
+ export declare const ordinalMax: bigint;
14
+ export declare const currencyMax: bigint;
4
15
  /**
5
16
  * Converts a numeric value to Indonesian words.
6
17
  * @param {number | string | bigint} value - The numeric value to convert
7
18
  * @returns {string} The number in Indonesian words
8
19
  */
9
- export function toCardinal(value: number | string | bigint): string;
20
+ declare function toCardinal(value: number | string | bigint): string;
10
21
  /**
11
22
  * Converts a numeric value to Indonesian ordinal words.
12
23
  * @param {number | string | bigint} value - The numeric value to convert (positive integer)
@@ -18,7 +29,7 @@ export function toCardinal(value: number | string | bigint): string;
18
29
  * toOrdinal(2) // 'kedua'
19
30
  * toOrdinal(10) // 'kesepuluh'
20
31
  */
21
- export function toOrdinal(value: number | string | bigint): string;
32
+ declare function toOrdinal(value: number | string | bigint): string;
22
33
  /**
23
34
  * Converts a numeric value to Indonesian currency words (Rupiah).
24
35
  *
@@ -33,4 +44,5 @@ export function toOrdinal(value: number | string | bigint): string;
33
44
  * toCurrency(1000) // 'seribu rupiah'
34
45
  * toCurrency(-5) // 'min lima rupiah'
35
46
  */
36
- export function toCurrency(value: number | string | bigint): string;
47
+ declare function toCurrency(value: number | string | bigint): string;
48
+ export { toCardinal, toOrdinal, toCurrency };
package/src/it-IT.d.ts CHANGED
@@ -1,18 +1,19 @@
1
- export const cardinalMax: bigint;
2
- export const ordinalMax: bigint;
3
- export const currencyMax: bigint;
4
1
  /**
5
- * @typedef {object} CurrencyOptions
6
- * @property {boolean} [and] - Use "e" between euros and centesimi
2
+ * Italian (Italy) language converter
3
+ *
4
+ * CLDR: it-IT | Italian as used in Italy
5
+ *
6
+ * Italian-specific rules:
7
+ * - Concatenation without spaces within segments ("ventotto" not "venti otto")
8
+ * - Phonetic vowel elision: "venti" + "otto" → "ventotto"
9
+ * - Accent on final "tre" in compounds: "ventitré"
10
+ * - mille/mila alternation for thousands
11
+ * - Scale words: milione/milioni, miliardo/miliardi, etc.
12
+ * - "e" connector before simple final remainder
7
13
  */
8
- /** @type {Required<CurrencyOptions>} */
9
- export const currencyDefaults: Required<CurrencyOptions>;
10
- export type CurrencyOptions = {
11
- /**
12
- * - Use "e" between euros and centesimi
13
- */
14
- and?: boolean | undefined;
15
- };
14
+ export declare const cardinalMax: bigint;
15
+ export declare const ordinalMax: bigint;
16
+ export declare const currencyMax: bigint;
16
17
  /**
17
18
  * Converts a numeric value to Italian words.
18
19
  *
@@ -29,7 +30,7 @@ export type CurrencyOptions = {
29
30
  * toCardinal(2000) // 'duemila'
30
31
  * toCardinal(1000000) // 'un milione'
31
32
  */
32
- export function toCardinal(value: number | string | bigint): string;
33
+ declare function toCardinal(value: number | string | bigint): string;
33
34
  /**
34
35
  * Converts a numeric value to Italian ordinal words.
35
36
  *
@@ -47,7 +48,19 @@ export function toCardinal(value: number | string | bigint): string;
47
48
  * toOrdinal(100) // 'centesimo'
48
49
  * toOrdinal(1000) // 'millesimo'
49
50
  */
50
- export function toOrdinal(value: number | string | bigint): string;
51
+ declare function toOrdinal(value: number | string | bigint): string;
52
+ export type CurrencyOptions = {
53
+ /**
54
+ * - Use "e" between euros and centesimi
55
+ */
56
+ and?: boolean;
57
+ };
58
+ /**
59
+ * @typedef {object} CurrencyOptions
60
+ * @property {boolean} [and] - Use "e" between euros and centesimi
61
+ */
62
+ /** @type {Required<CurrencyOptions>} */
63
+ export declare const currencyDefaults: Required<CurrencyOptions>;
51
64
  /**
52
65
  * Converts a numeric value to Italian currency words (Euro).
53
66
  * @param {number | string | bigint} value - The currency amount to convert
@@ -62,4 +75,5 @@ export function toOrdinal(value: number | string | bigint): string;
62
75
  * toCurrency(0.01) // 'un centesimo'
63
76
  * toCurrency(42.50, { and: false }) // 'quarantadue euro cinquanta centesimi'
64
77
  */
65
- export function toCurrency(value: number | string | bigint, options?: CurrencyOptions): string;
78
+ declare function toCurrency(value: number | string | bigint, options?: CurrencyOptions): string;
79
+ export { toCardinal, toOrdinal, toCurrency };
package/src/ja-JP.d.ts CHANGED
@@ -1,6 +1,17 @@
1
- export const cardinalMax: bigint;
2
- export const ordinalMax: bigint;
3
- export const currencyMax: bigint;
1
+ /**
2
+ * Japanese (Japan) language converter
3
+ *
4
+ * CLDR: ja-JP | Japanese as used in Japan
5
+ *
6
+ * Japanese-specific rules:
7
+ * - Myriad (万-based) grouping: 4 digits per segment instead of 3
8
+ * - 一 omission: Omit "一" before 十, 百, 千 but NOT before 万 and higher scales
9
+ * - Kanji numerals: 零一二三四五六七八九
10
+ * - No spaces between characters
11
+ */
12
+ export declare const cardinalMax: bigint;
13
+ export declare const ordinalMax: bigint;
14
+ export declare const currencyMax: bigint;
4
15
  /**
5
16
  * Converts a numeric value to Japanese words.
6
17
  *
@@ -15,7 +26,7 @@ export const currencyMax: bigint;
15
26
  * toCardinal(10000) // '一万'
16
27
  * toCardinal(100000000) // '一億'
17
28
  */
18
- export function toCardinal(value: number | string | bigint): string;
29
+ declare function toCardinal(value: number | string | bigint): string;
19
30
  /**
20
31
  * Converts a numeric value to Japanese ordinal words.
21
32
  * @param {number | string | bigint} value - The numeric value to convert (positive integer)
@@ -27,7 +38,7 @@ export function toCardinal(value: number | string | bigint): string;
27
38
  * toOrdinal(10) // '第十'
28
39
  * toOrdinal(100) // '第百'
29
40
  */
30
- export function toOrdinal(value: number | string | bigint): string;
41
+ declare function toOrdinal(value: number | string | bigint): string;
31
42
  /**
32
43
  * Converts a numeric value to Japanese currency words (Yen).
33
44
  *
@@ -43,4 +54,5 @@ export function toOrdinal(value: number | string | bigint): string;
43
54
  * toCurrency(0.50) // '五十銭'
44
55
  * toCurrency(42.50) // '四十二円五十銭'
45
56
  */
46
- export function toCurrency(value: number | string | bigint): string;
57
+ declare function toCurrency(value: number | string | bigint): string;
58
+ export { toCardinal, toOrdinal, toCurrency };
package/src/ka-GE.d.ts CHANGED
@@ -1,6 +1,19 @@
1
- export const cardinalMax: bigint;
2
- export const ordinalMax: bigint;
3
- export const currencyMax: bigint;
1
+ /**
2
+ * Georgian (Georgia) language converter
3
+ *
4
+ * CLDR: ka-GE | Georgian as used in Georgia
5
+ *
6
+ * Georgian-specific rules:
7
+ * - Vigesimal (base-20) system for 20-99
8
+ * - 40 = ორმოცი (2×20), 60 = სამოცი (3×20), 80 = ოთხმოცი (4×20)
9
+ * - 30/50/70/90 use "და" + "ათი": ოცდაათი (20+10), ორმოცდაათი (40+10)
10
+ * - Compound numbers use "და" (da = "and") connector
11
+ * - Hundreds: unit prefix + ას (ორასი = 200)
12
+ * - Short scale for large numbers (მილიონი, მილიარდი, ტრილიონი)
13
+ */
14
+ export declare const cardinalMax: bigint;
15
+ export declare const ordinalMax: bigint;
16
+ export declare const currencyMax: bigint;
4
17
  /**
5
18
  * Converts a numeric value to Georgian words.
6
19
  *
@@ -15,7 +28,7 @@ export const currencyMax: bigint;
15
28
  * toCardinal(100) // 'ასი'
16
29
  * toCardinal(1000) // 'ათასი'
17
30
  */
18
- export function toCardinal(value: number | string | bigint): string;
31
+ declare function toCardinal(value: number | string | bigint): string;
19
32
  /**
20
33
  * Converts a numeric value to Georgian ordinal words.
21
34
  * @param {number | string | bigint} value - The numeric value to convert
@@ -27,7 +40,7 @@ export function toCardinal(value: number | string | bigint): string;
27
40
  * toOrdinal(10) // 'მეათე'
28
41
  * toOrdinal(21) // 'მეოცდაერთე'
29
42
  */
30
- export function toOrdinal(value: number | string | bigint): string;
43
+ declare function toOrdinal(value: number | string | bigint): string;
31
44
  /**
32
45
  * Converts a numeric value to Georgian Lari currency words.
33
46
  * @param {number | string | bigint} value - The numeric value to convert
@@ -38,4 +51,5 @@ export function toOrdinal(value: number | string | bigint): string;
38
51
  * toCurrency(1) // 'ერთი ლარი'
39
52
  * toCurrency(2.50) // 'ორი ლარი ორმოცდაათი თეთრი'
40
53
  */
41
- export function toCurrency(value: number | string | bigint): string;
54
+ declare function toCurrency(value: number | string | bigint): string;
55
+ export { toCardinal, toOrdinal, toCurrency };
package/src/kn-IN.d.ts CHANGED
@@ -1,12 +1,24 @@
1
- export const cardinalMax: bigint;
2
- export const ordinalMax: bigint;
3
- export const currencyMax: bigint;
1
+ /**
2
+ * Kannada (India) language converter
3
+ *
4
+ * CLDR: kn-IN | Kannada as used in India
5
+ *
6
+ * Key features:
7
+ * - Indian numbering system (ಸಾವಿರ, ಲಕ್ಷ, ಕೋಟಿ)
8
+ * - Kannada script
9
+ * - 3-2-2 grouping pattern (last 3 digits, then groups of 2)
10
+ * - Complete word forms for 0-99
11
+ * - Per-digit decimal reading
12
+ */
13
+ export declare const cardinalMax: bigint;
14
+ export declare const ordinalMax: bigint;
15
+ export declare const currencyMax: bigint;
4
16
  /**
5
17
  * Converts a numeric value to Kannada words.
6
18
  * @param {number | string | bigint} value - The numeric value to convert
7
19
  * @returns {string} The number in Kannada words
8
20
  */
9
- export function toCardinal(value: number | string | bigint): string;
21
+ declare function toCardinal(value: number | string | bigint): string;
10
22
  /**
11
23
  * Converts a numeric value to Kannada ordinal words.
12
24
  * @param {number | string | bigint} value - The numeric value to convert (positive integer)
@@ -18,7 +30,7 @@ export function toCardinal(value: number | string | bigint): string;
18
30
  * toOrdinal(2) // 'ಎರಡನೇ'
19
31
  * toOrdinal(10) // 'ಹತ್ತುನೇ'
20
32
  */
21
- export function toOrdinal(value: number | string | bigint): string;
33
+ declare function toOrdinal(value: number | string | bigint): string;
22
34
  /**
23
35
  * Converts a numeric value to Kannada currency words (Indian Rupee).
24
36
  * @param {number | string | bigint} value - The currency amount to convert
@@ -30,4 +42,5 @@ export function toOrdinal(value: number | string | bigint): string;
30
42
  * toCurrency(1) // 'ಒಂದು ರೂಪಾಯಿ'
31
43
  * toCurrency(0.01) // 'ಒಂದು ಪೈಸೆ'
32
44
  */
33
- export function toCurrency(value: number | string | bigint): string;
45
+ declare function toCurrency(value: number | string | bigint): string;
46
+ export { toCardinal, toOrdinal, toCurrency };
package/src/ko-KR.d.ts CHANGED
@@ -1,6 +1,17 @@
1
- export const cardinalMax: bigint;
2
- export const ordinalMax: bigint;
3
- export const currencyMax: bigint;
1
+ /**
2
+ * Korean (South Korea) language converter
3
+ *
4
+ * CLDR: ko-KR | Korean as used in South Korea
5
+ *
6
+ * Key features:
7
+ * - Myriad-based (만) grouping - 4 digits
8
+ * - Implicit '일' (one) omission before scale words
9
+ * - Space separation after 만+ scales
10
+ * - Hangul numerals
11
+ */
12
+ export declare const cardinalMax: bigint;
13
+ export declare const ordinalMax: bigint;
14
+ export declare const currencyMax: bigint;
4
15
  /**
5
16
  * Converts a numeric value to Korean words.
6
17
  * @param {number | string | bigint} value - The numeric value to convert
@@ -12,7 +23,7 @@ export const currencyMax: bigint;
12
23
  * toCardinal(10000) // '만'
13
24
  * toCardinal(1000000) // '백만'
14
25
  */
15
- export function toCardinal(value: number | string | bigint): string;
26
+ declare function toCardinal(value: number | string | bigint): string;
16
27
  /**
17
28
  * Converts a numeric value to Korean ordinal words.
18
29
  * @param {number | string | bigint} value - The numeric value to convert (positive integer)
@@ -24,7 +35,7 @@ export function toCardinal(value: number | string | bigint): string;
24
35
  * toOrdinal(2) // '제이'
25
36
  * toOrdinal(10) // '제십'
26
37
  */
27
- export function toOrdinal(value: number | string | bigint): string;
38
+ declare function toOrdinal(value: number | string | bigint): string;
28
39
  /**
29
40
  * Converts a numeric value to Korean currency words (Won).
30
41
  *
@@ -39,4 +50,5 @@ export function toOrdinal(value: number | string | bigint): string;
39
50
  * toCurrency(1000) // '천원'
40
51
  * toCurrency(-5) // '마이너스 오원'
41
52
  */
42
- export function toCurrency(value: number | string | bigint): string;
53
+ declare function toCurrency(value: number | string | bigint): string;
54
+ export { toCardinal, toOrdinal, toCurrency };