n2words 1.16.4 → 1.17.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.
package/lib/i18n/lt.d.ts CHANGED
@@ -7,6 +7,62 @@
7
7
  */
8
8
  export default function _default(value: number | string, options?: object): string;
9
9
  export class N2WordsLT extends N2WordsRU {
10
+ ones: {
11
+ 1: string;
12
+ 2: string;
13
+ 3: string;
14
+ 4: string;
15
+ 5: string;
16
+ 6: string;
17
+ 7: string;
18
+ 8: string;
19
+ 9: string;
20
+ };
21
+ onesFeminine: {
22
+ 1: string;
23
+ 2: string;
24
+ 3: string;
25
+ 4: string;
26
+ 5: string;
27
+ 6: string;
28
+ 7: string;
29
+ 8: string;
30
+ 9: string;
31
+ };
32
+ tens: {
33
+ 0: string;
34
+ 1: string;
35
+ 2: string;
36
+ 3: string;
37
+ 4: string;
38
+ 5: string;
39
+ 6: string;
40
+ 7: string;
41
+ 8: string;
42
+ 9: string;
43
+ };
44
+ twenties: {
45
+ 2: string;
46
+ 3: string;
47
+ 4: string;
48
+ 5: string;
49
+ 6: string;
50
+ 7: string;
51
+ 8: string;
52
+ 9: string;
53
+ };
10
54
  hundreds: string[];
55
+ thousands: {
56
+ 1: string[];
57
+ 2: string[];
58
+ 3: string[];
59
+ 4: string[];
60
+ 5: string[];
61
+ 6: string[];
62
+ 7: string[];
63
+ 8: string[];
64
+ 9: string[];
65
+ 10: string[];
66
+ };
11
67
  }
12
68
  import { N2WordsRU } from './ru.js';
package/lib/i18n/lt.js CHANGED
@@ -65,11 +65,13 @@ export class N2WordsLT extends N2WordsRU {
65
65
  };
66
66
 
67
67
  constructor(options) {
68
- super(Object.assign({
68
+ options = Object.assign({
69
69
  negativeWord: 'minus',
70
70
  separatorWord: 'kablelis',
71
71
  zero: 'nulis'
72
- }, options));
72
+ }, options);
73
+
74
+ super(options);
73
75
  }
74
76
 
75
77
  pluralize(n, forms) {
package/lib/i18n/lv.d.ts CHANGED
@@ -7,6 +7,51 @@
7
7
  */
8
8
  export default function _default(value: number | string, options?: object): string;
9
9
  export class N2WordsLV extends N2WordsRU {
10
+ ones: {
11
+ 1: string;
12
+ 2: string;
13
+ 3: string;
14
+ 4: string;
15
+ 5: string;
16
+ 6: string;
17
+ 7: string;
18
+ 8: string;
19
+ 9: string;
20
+ };
21
+ tens: {
22
+ 0: string;
23
+ 1: string;
24
+ 2: string;
25
+ 3: string;
26
+ 4: string;
27
+ 5: string;
28
+ 6: string;
29
+ 7: string;
30
+ 8: string;
31
+ 9: string;
32
+ };
33
+ twenties: {
34
+ 2: string;
35
+ 3: string;
36
+ 4: string;
37
+ 5: string;
38
+ 6: string;
39
+ 7: string;
40
+ 8: string;
41
+ 9: string;
42
+ };
10
43
  hundreds: string[];
44
+ thousands: {
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
+ 10: string[];
55
+ };
11
56
  }
12
57
  import { N2WordsRU } from './ru.js';
package/lib/i18n/lv.js CHANGED
@@ -53,11 +53,13 @@ export class N2WordsLV extends N2WordsRU {
53
53
  };
54
54
 
55
55
  constructor(options) {
56
- super(Object.assign({
56
+ options = Object.assign({
57
57
  negativeWord: 'mīnus',
58
58
  separatorWord: 'komats',
59
59
  zero: 'nulle'
60
- }, options));
60
+ }, options);
61
+
62
+ super(options);
61
63
  }
62
64
 
63
65
  pluralize(n, forms) {
package/lib/i18n/no.js CHANGED
@@ -2,11 +2,13 @@ import BaseLanguage from '../classes/BaseLanguage.js';
2
2
 
3
3
  export class N2WordsNO extends BaseLanguage {
4
4
  constructor(options) {
5
- super(Object.assign({
5
+ options = Object.assign({
6
6
  negativeWord: 'minus',
7
7
  separatorWord: 'komma',
8
8
  zero: 'null'
9
- }, options), [
9
+ }, options);
10
+
11
+ super(options, [
10
12
  [1000000000000000000000000000000000n, 'quintillard'],
11
13
  [1000000000000000000000000000000n, 'quintillion'],
12
14
  [1000000000000000000000000000n, 'quadrillard'],
package/lib/i18n/pl.d.ts CHANGED
@@ -7,5 +7,61 @@
7
7
  */
8
8
  export default function _default(value: number | string, options?: object): string;
9
9
  export class N2WordsPL extends N2WordsRU {
10
+ ones: {
11
+ 1: string;
12
+ 2: string;
13
+ 3: string;
14
+ 4: string;
15
+ 5: string;
16
+ 6: string;
17
+ 7: string;
18
+ 8: string;
19
+ 9: string;
20
+ };
21
+ tens: {
22
+ 0: string;
23
+ 1: string;
24
+ 2: string;
25
+ 3: string;
26
+ 4: string;
27
+ 5: string;
28
+ 6: string;
29
+ 7: string;
30
+ 8: string;
31
+ 9: string;
32
+ };
33
+ twenties: {
34
+ 2: string;
35
+ 3: string;
36
+ 4: string;
37
+ 5: string;
38
+ 6: string;
39
+ 7: string;
40
+ 8: string;
41
+ 9: string;
42
+ };
43
+ hundreds: {
44
+ 1: string;
45
+ 2: string;
46
+ 3: string;
47
+ 4: string;
48
+ 5: string;
49
+ 6: string;
50
+ 7: string;
51
+ 8: string;
52
+ 9: string;
53
+ };
54
+ thousands: {
55
+ 1: string[];
56
+ 2: string[];
57
+ 3: string[];
58
+ 4: string[];
59
+ 5: string[];
60
+ 6: string[];
61
+ 7: string[];
62
+ 8: string[];
63
+ 9: string[];
64
+ 10: string[];
65
+ };
10
66
  }
11
67
  import { N2WordsRU } from './ru.js';
package/lib/i18n/pl.js CHANGED
@@ -63,11 +63,13 @@ export class N2WordsPL extends N2WordsRU {
63
63
  };
64
64
 
65
65
  constructor(options) {
66
- super(Object.assign({
66
+ options = Object.assign({
67
67
  negativeWord: 'minus',
68
68
  separatorWord: 'przecinek',
69
69
  zero: 'zero'
70
- }, options));
70
+ }, options);
71
+
72
+ super(options);
71
73
  }
72
74
 
73
75
  pluralize(n, forms) {
package/lib/i18n/pt.js CHANGED
@@ -14,11 +14,13 @@ export class N2WordsPT extends BaseLanguage {
14
14
  };
15
15
 
16
16
  constructor(options) {
17
- super(Object.assign({
17
+ options = Object.assign({
18
18
  negativeWord: 'menos',
19
19
  separatorWord: 'vírgula',
20
20
  zero: 'zero'
21
- }, options), [
21
+ }, options);
22
+
23
+ super(options, [
22
24
  [1000000000000000000000000n, 'quatrilião'],
23
25
  [1000000000000000000n, 'trilião'],
24
26
  [1000000000000n, 'bilião'],
package/lib/i18n/ru.d.ts CHANGED
@@ -8,76 +8,22 @@
8
8
  export default function _default(value: number | string, options?: object): string;
9
9
  export class N2WordsRU extends AbstractLanguage {
10
10
  constructor(options: any);
11
- feminine: any;
12
- ones: {
13
- 1: string;
14
- 2: string;
15
- 3: string;
16
- 4: string;
17
- 5: string;
18
- 6: string;
19
- 7: string;
20
- 8: string;
21
- 9: string;
22
- };
23
- onesFeminine: {
24
- 1: string;
25
- 2: string;
26
- 3: string;
27
- 4: string;
28
- 5: string;
29
- 6: string;
30
- 7: string;
31
- 8: string;
32
- 9: string;
33
- };
34
- tens: {
35
- 0: string;
36
- 1: string;
37
- 2: string;
38
- 3: string;
39
- 4: string;
40
- 5: string;
41
- 6: string;
42
- 7: string;
43
- 8: string;
44
- 9: string;
45
- };
46
- twenties: {
47
- 2: string;
48
- 3: string;
49
- 4: string;
50
- 5: string;
51
- 6: string;
52
- 7: string;
53
- 8: string;
54
- 9: string;
55
- };
56
- hundreds: {
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
- thousands: {
68
- 1: string[];
69
- 2: string[];
70
- 3: string[];
71
- 4: string[];
72
- 5: string[];
73
- 6: string[];
74
- 7: string[];
75
- 8: string[];
76
- 9: string[];
77
- 10: string[];
78
- };
11
+ /** @type {boolean} */
12
+ feminine: boolean;
13
+ /** @type {object} */
14
+ ones: object;
15
+ /** @type {object} */
16
+ onesFeminine: object;
17
+ /** @type {object} */
18
+ tens: object;
19
+ /** @type {object} */
20
+ twenties: object;
21
+ /** @type {object} */
22
+ hundreds: object;
23
+ /** @type {object} */
24
+ thousands: object;
79
25
  toCardinal(number: any): string;
80
- splitByX(n: any, x: any, formatInt?: boolean): any[];
26
+ splitByX(n: any, x: any): bigint[];
81
27
  getDigits(value: any): bigint[];
82
28
  pluralize(n: any, forms: any): any;
83
29
  }
package/lib/i18n/ru.js CHANGED
@@ -1,8 +1,10 @@
1
1
  import AbstractLanguage from '../classes/AbstractLanguage.js';
2
2
 
3
3
  export class N2WordsRU extends AbstractLanguage {
4
+ /** @type {boolean} */
4
5
  feminine;
5
6
 
7
+ /** @type {object} */
6
8
  ones = {
7
9
  1: 'один',
8
10
  2: 'два',
@@ -15,6 +17,7 @@ export class N2WordsRU extends AbstractLanguage {
15
17
  9: 'девять'
16
18
  };
17
19
 
20
+ /** @type {object} */
18
21
  onesFeminine = {
19
22
  1: 'одна',
20
23
  2: 'две',
@@ -27,6 +30,7 @@ export class N2WordsRU extends AbstractLanguage {
27
30
  9: 'девять'
28
31
  };
29
32
 
33
+ /** @type {object} */
30
34
  tens = {
31
35
  0: 'десять',
32
36
  1: 'одиннадцать',
@@ -40,6 +44,7 @@ export class N2WordsRU extends AbstractLanguage {
40
44
  9: 'девятнадцать'
41
45
  };
42
46
 
47
+ /** @type {object} */
43
48
  twenties = {
44
49
  2: 'двадцать',
45
50
  3: 'тридцать',
@@ -51,6 +56,7 @@ export class N2WordsRU extends AbstractLanguage {
51
56
  9: 'девяносто'
52
57
  };
53
58
 
59
+ /** @type {object} */
54
60
  hundreds = {
55
61
  1: 'сто',
56
62
  2: 'двести',
@@ -63,6 +69,7 @@ export class N2WordsRU extends AbstractLanguage {
63
69
  9: 'девятьсот'
64
70
  };
65
71
 
72
+ /** @type {object} */
66
73
  thousands = {
67
74
  1: ['тысяча', 'тысячи', 'тысяч'], // 10^ 3
68
75
  2: ['миллион', 'миллиона', 'миллионов'], // 10^ 6
@@ -77,15 +84,14 @@ export class N2WordsRU extends AbstractLanguage {
77
84
  };
78
85
 
79
86
  constructor(options) {
80
- super(Object.assign({
87
+ options = Object.assign({
81
88
  negativeWord: 'минус',
82
89
  separatorWord: 'запятая',
83
- zero: 'ноль'
84
- }, options));
90
+ zero: 'ноль',
91
+ feminine: false
92
+ }, options);
85
93
 
86
- options = Object.assign({
87
- feminine: false,
88
- });
94
+ super(options);
89
95
 
90
96
  this.feminine = options.feminine;
91
97
  }
@@ -135,7 +141,7 @@ export class N2WordsRU extends AbstractLanguage {
135
141
  return words.join(' ');
136
142
  }
137
143
 
138
- splitByX(n, x, formatInt = true) {
144
+ splitByX(n, x) {
139
145
  const results = [];
140
146
  const l = n.length;
141
147
  let result;
@@ -146,28 +152,16 @@ export class N2WordsRU extends AbstractLanguage {
146
152
  if (start > 0) {
147
153
  result = n.slice(0, start);
148
154
 
149
- if (formatInt) {
150
- results.push(BigInt(result));
151
- } else {
152
- results.push(result);
153
- }
155
+ results.push(BigInt(result));
154
156
  }
155
157
 
156
158
  for (let i = start; i < l; i += x) {
157
159
  result = n.slice(i, i + x);
158
160
 
159
- if (formatInt) {
160
- results.push(BigInt(result));
161
- } else {
162
- results.push(result);
163
- }
161
+ results.push(BigInt(result));
164
162
  }
165
163
  } else {
166
- if (formatInt) {
167
- results.push(BigInt(n));
168
- } else {
169
- results.push(n);
170
- }
164
+ results.push(BigInt(n));
171
165
  }
172
166
 
173
167
  return results;
package/lib/i18n/sr.d.ts CHANGED
@@ -18,18 +18,39 @@ export class N2WordsSR extends N2WordsRU {
18
18
  8: string[];
19
19
  9: string[];
20
20
  };
21
- SCALE: {
22
- 0: (string | boolean)[];
23
- 1: (string | boolean)[];
24
- 2: (string | boolean)[];
25
- 3: (string | boolean)[];
26
- 4: (string | boolean)[];
27
- 5: (string | boolean)[];
28
- 6: (string | boolean)[];
29
- 7: (string | boolean)[];
30
- 8: (string | boolean)[];
31
- 9: (string | boolean)[];
32
- 10: (string | boolean)[];
21
+ tens: {
22
+ 0: string;
23
+ 1: string;
24
+ 2: string;
25
+ 3: string;
26
+ 4: string;
27
+ 5: string;
28
+ 6: string;
29
+ 7: string;
30
+ 8: string;
31
+ 9: string;
33
32
  };
33
+ twenties: {
34
+ 2: string;
35
+ 3: string;
36
+ 4: string;
37
+ 5: string;
38
+ 6: string;
39
+ 7: string;
40
+ 8: string;
41
+ 9: string;
42
+ };
43
+ hundreds: {
44
+ 1: string;
45
+ 2: string;
46
+ 3: string;
47
+ 4: string;
48
+ 5: string;
49
+ 6: string;
50
+ 7: string;
51
+ 8: string;
52
+ 9: string;
53
+ };
54
+ SCALE: (string | boolean)[][];
34
55
  }
35
56
  import { N2WordsRU } from './ru.js';
package/lib/i18n/sr.js CHANGED
@@ -49,19 +49,19 @@ export class N2WordsSR extends N2WordsRU {
49
49
  9: 'devetsto'
50
50
  };
51
51
 
52
- SCALE = {
53
- 0: ['', '', '', false],
54
- 1: ['hiljada', 'hiljade', 'hiljada', true], // 10 ^ 3
55
- 2: ['milion', 'miliona', 'miliona', false], // 10 ^ 6
56
- 3: ['milijarda', 'milijarde', 'milijarda', false], // 10 ^ 9
57
- 4: ['bilion', 'biliona', 'biliona', false], // 10 ^ 12
58
- 5: ['bilijarda', 'bilijarde', 'bilijarda', false], // 10 ^ 15
59
- 6: ['trilion', 'triliona', 'triliona', false], // 10 ^ 18
60
- 7: ['trilijarda', 'trilijarde', 'trilijarda', false], // 10 ^ 21
61
- 8: ['kvadrilion', 'kvadriliona', 'kvadriliona', false], // 10 ^ 24
62
- 9: ['kvadrilijarda', 'kvadrilijarde', 'kvadrilijarda', false], // 10 ^ 27
63
- 10: ['kvintilion', 'kvintiliona', 'kvintiliona', false], // 10 ^ 30
64
- };
52
+ SCALE = [
53
+ ['', '', '', false],
54
+ ['hiljada', 'hiljade', 'hiljada', true], // 10 ^ 3
55
+ ['milion', 'miliona', 'miliona', false], // 10 ^ 6
56
+ ['milijarda', 'milijarde', 'milijarda', false], // 10 ^ 9
57
+ ['bilion', 'biliona', 'biliona', false], // 10 ^ 12
58
+ ['bilijarda', 'bilijarde', 'bilijarda', false], // 10 ^ 15
59
+ ['trilion', 'triliona', 'triliona', false], // 10 ^ 18
60
+ ['trilijarda', 'trilijarde', 'trilijarda', false], // 10 ^ 21
61
+ ['kvadrilion', 'kvadriliona', 'kvadriliona', false], // 10 ^ 24
62
+ ['kvadrilijarda', 'kvadrilijarde', 'kvadrilijarda', false], // 10 ^ 27
63
+ ['kvintilion', 'kvintiliona', 'kvintiliona', false], // 10 ^ 30
64
+ ];
65
65
 
66
66
  constructor(options) {
67
67
  super(Object.assign({
package/lib/i18n/uk.d.ts CHANGED
@@ -7,5 +7,72 @@
7
7
  */
8
8
  export default function _default(value: number | string, options?: object): string;
9
9
  export class N2WordsUK extends N2WordsRU {
10
+ ones: {
11
+ 1: string;
12
+ 2: string;
13
+ 3: string;
14
+ 4: string;
15
+ 5: string;
16
+ 6: string;
17
+ 7: string;
18
+ 8: string;
19
+ 9: string;
20
+ };
21
+ onesFeminine: {
22
+ 1: string;
23
+ 2: string;
24
+ 3: string;
25
+ 4: string;
26
+ 5: string;
27
+ 6: string;
28
+ 7: string;
29
+ 8: string;
30
+ 9: string;
31
+ };
32
+ tens: {
33
+ 0: string;
34
+ 1: string;
35
+ 2: string;
36
+ 3: string;
37
+ 4: string;
38
+ 5: string;
39
+ 6: string;
40
+ 7: string;
41
+ 8: string;
42
+ 9: string;
43
+ };
44
+ twenties: {
45
+ 2: string;
46
+ 3: string;
47
+ 4: string;
48
+ 5: string;
49
+ 6: string;
50
+ 7: string;
51
+ 8: string;
52
+ 9: string;
53
+ };
54
+ hundreds: {
55
+ 1: string;
56
+ 2: string;
57
+ 3: string;
58
+ 4: string;
59
+ 5: string;
60
+ 6: string;
61
+ 7: string;
62
+ 8: string;
63
+ 9: string;
64
+ };
65
+ thousands: {
66
+ 1: string[];
67
+ 2: string[];
68
+ 3: string[];
69
+ 4: string[];
70
+ 5: string[];
71
+ 6: string[];
72
+ 7: string[];
73
+ 8: string[];
74
+ 9: string[];
75
+ 10: string[];
76
+ };
10
77
  }
11
78
  import { N2WordsRU } from './ru.js';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "n2words",
3
- "version": "1.16.4",
3
+ "version": "1.17.0",
4
4
  "description": "n2words converts a numerical number into a written one, supports 27 languages and has zero dependencies.",
5
5
  "keywords": [
6
6
  "n2words",
@@ -65,9 +65,9 @@
65
65
  "scripts": {
66
66
  "bench": "node bench.js",
67
67
  "build": "webpack --config webpack.config.js --progress",
68
- "build:types": "npx -p typescript tsc lib/n2words.js dist/n2words.js --target esnext --module nodenext --declaration --allowJs --emitDeclarationOnly",
68
+ "build:types": "npx -p typescript tsc lib/n2words.js dist/n2words.js --target es6 --module esnext --allowJs --declaration --emitDeclarationOnly",
69
69
  "coverage": "c8 ava",
70
- "lint": "eslint --config .eslintrc.json lib/ test/ bench.js",
70
+ "lint": "eslint --config .eslintrc.json lib/ test/ examples/ bench.js",
71
71
  "test": "ava --verbose",
72
72
  "test:cjs": "ava --verbose test/import.cjs",
73
73
  "test:core": "ava --verbose test/core.js",
@@ -91,25 +91,26 @@
91
91
  ]
92
92
  },
93
93
  "devDependencies": {
94
- "@babel/core": "^7.22.1",
95
- "@babel/preset-env": "^7.22.4",
96
- "ava": "^5.3.0",
97
- "babel-loader": "^9.1.2",
94
+ "@babel/core": "^7.22.11",
95
+ "@babel/preset-env": "^7.22.10",
96
+ "ava": "^5.3.1",
97
+ "babel-loader": "^9.1.3",
98
98
  "benchmark": "^2.1.4",
99
- "c8": "^7.14.0",
100
- "chromedriver": "^114.0.1",
101
- "core-js": "^3.30.2",
102
- "eslint": "^8.42.0",
99
+ "c8": "^8.0.1",
100
+ "chalk": "^5.3.0",
101
+ "chromedriver": "^116.0.0",
102
+ "core-js": "^3.32.1",
103
+ "eslint": "^8.48.0",
103
104
  "eslint-plugin-ava": "^14.0.0",
104
- "eslint-plugin-import": "^2.27.5",
105
- "eslint-plugin-jsdoc": "^46.2.5",
105
+ "eslint-plugin-import": "^2.28.1",
106
+ "eslint-plugin-jsdoc": "^46.5.0",
106
107
  "eslint-plugin-node": "^11.1.0",
107
108
  "microtime": "^3.1.1",
108
- "selenium-webdriver": "^4.9.2",
109
- "webpack": "^5.85.1",
110
- "webpack-cli": "^5.1.3"
109
+ "selenium-webdriver": "^4.11.1",
110
+ "webpack": "^5.88.2",
111
+ "webpack-cli": "^5.1.4"
111
112
  },
112
113
  "engines": {
113
- "node": "16 || >=18"
114
+ "node": "16 || 18 || >=20"
114
115
  }
115
116
  }