@lakuna/umath 4.0.2 → 4.0.4
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.
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BigNumber.d.ts","sourceRoot":"","sources":["../../src/utility/BigNumber.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,MAAM,MAAM,UAAU,GAAG,UAAU,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC;AAE1D;;;GAGG;AACH,MAAM,MAAM,aAAa,GAAG,UAAU,GAAG,SAAS,CAAC;AAEnD;;;GAGG;AACH,MAAM,CAAC,OAAO,OAAO,SAAS;IAC7B,qCAAqC;IAC9B,QAAQ,EAAE,MAAM,CAAC;IAExB,oCAAoC;IAC7B,OAAO,EAAE,MAAM,CAAC;IAEvB;;;;OAIG;gBAEF,QAAQ,GAAE,QAAQ,CAAC,aAAa,CAAK,EACrC,OAAO,GAAE,QAAQ,CAAC,aAAa,CAAK;
|
|
1
|
+
{"version":3,"file":"BigNumber.d.ts","sourceRoot":"","sources":["../../src/utility/BigNumber.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,MAAM,MAAM,UAAU,GAAG,UAAU,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC;AAE1D;;;GAGG;AACH,MAAM,MAAM,aAAa,GAAG,UAAU,GAAG,SAAS,CAAC;AAEnD;;;GAGG;AACH,MAAM,CAAC,OAAO,OAAO,SAAS;IAC7B,qCAAqC;IAC9B,QAAQ,EAAE,MAAM,CAAC;IAExB,oCAAoC;IAC7B,OAAO,EAAE,MAAM,CAAC;IAEvB;;;;OAIG;gBAEF,QAAQ,GAAE,QAAQ,CAAC,aAAa,CAAK,EACrC,OAAO,GAAE,QAAQ,CAAC,aAAa,CAAK;IAkCrC;;;;OAIG;IACI,GAAG,CAAC,CAAC,EAAE,QAAQ,CAAC,aAAa,CAAC,GAAG,IAAI;IAY5C;;;;OAIG;IACI,MAAM,CAAC,CAAC,EAAE,QAAQ,CAAC,aAAa,CAAC,GAAG,IAAI;IAY/C;;;;OAIG;IACI,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,aAAa,CAAC,GAAG,IAAI;IAYjD;;;;OAIG;IACI,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,aAAa,CAAC,GAAG,IAAI;IAYjD;;;OAGG;IACI,QAAQ,IAAI,MAAM;IAOzB;;;OAGG;IACI,QAAQ,IAAI,MAAM;CAsBzB"}
|
|
@@ -17,14 +17,14 @@ export default class BigNumber {
|
|
|
17
17
|
if (divisor === 0) {
|
|
18
18
|
throw new Error("Cannot divide by zero.");
|
|
19
19
|
}
|
|
20
|
-
if (BigNumber.
|
|
20
|
+
if (BigNumber.test(dividend)) {
|
|
21
21
|
this.dividend = dividend.dividend;
|
|
22
22
|
this.divisor = dividend.divisor;
|
|
23
23
|
this.divide(divisor);
|
|
24
24
|
return;
|
|
25
25
|
}
|
|
26
26
|
this.dividend = BigInt(dividend);
|
|
27
|
-
if (BigNumber.
|
|
27
|
+
if (BigNumber.test(divisor)) {
|
|
28
28
|
this.divisor = 1n;
|
|
29
29
|
this.divide(divisor);
|
|
30
30
|
return;
|
|
@@ -36,7 +36,7 @@ export default class BigNumber {
|
|
|
36
36
|
* Utility function for narrowing `Readonly<BigNumberLike>` to `Readonly<BigNumber>` or `BigIntLike`, since `Readonly` breaks the type narrowing for TypeScript.
|
|
37
37
|
* @internal
|
|
38
38
|
*/
|
|
39
|
-
static
|
|
39
|
+
static test(value) {
|
|
40
40
|
return value instanceof BigNumber;
|
|
41
41
|
}
|
|
42
42
|
/**
|
|
@@ -45,7 +45,7 @@ export default class BigNumber {
|
|
|
45
45
|
* @returns This number.
|
|
46
46
|
*/
|
|
47
47
|
add(n) {
|
|
48
|
-
if (BigNumber.
|
|
48
|
+
if (BigNumber.test(n)) {
|
|
49
49
|
this.dividend = this.dividend * n.divisor + n.dividend * this.divisor;
|
|
50
50
|
this.divisor *= n.divisor;
|
|
51
51
|
}
|
|
@@ -61,7 +61,7 @@ export default class BigNumber {
|
|
|
61
61
|
* @returns This number.
|
|
62
62
|
*/
|
|
63
63
|
divide(n) {
|
|
64
|
-
if (BigNumber.
|
|
64
|
+
if (BigNumber.test(n)) {
|
|
65
65
|
this.dividend *= n.divisor;
|
|
66
66
|
this.divisor *= n.dividend;
|
|
67
67
|
}
|
|
@@ -77,7 +77,7 @@ export default class BigNumber {
|
|
|
77
77
|
* @returns This number.
|
|
78
78
|
*/
|
|
79
79
|
multiply(n) {
|
|
80
|
-
if (BigNumber.
|
|
80
|
+
if (BigNumber.test(n)) {
|
|
81
81
|
this.dividend *= n.dividend;
|
|
82
82
|
this.divisor *= n.divisor;
|
|
83
83
|
}
|
|
@@ -93,7 +93,7 @@ export default class BigNumber {
|
|
|
93
93
|
* @returns This number.
|
|
94
94
|
*/
|
|
95
95
|
subtract(n) {
|
|
96
|
-
if (BigNumber.
|
|
96
|
+
if (BigNumber.test(n)) {
|
|
97
97
|
this.dividend = this.dividend * n.divisor - n.dividend * this.divisor;
|
|
98
98
|
this.divisor *= n.divisor;
|
|
99
99
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BigNumber.js","sourceRoot":"","sources":["../../src/utility/BigNumber.ts"],"names":[],"mappings":"AAAA,OAAO,qBAAqB,MAAM,wCAAwC,CAAC;AAc3E;;;GAGG;AACH,MAAM,CAAC,OAAO,OAAO,SAAS;IAC7B,qCAAqC;IAC9B,QAAQ,CAAS;IAExB,oCAAoC;IAC7B,OAAO,CAAS;IAEvB;;;;OAIG;IACH,YACC,WAAoC,CAAC,EACrC,UAAmC,CAAC;QAEpC,IAAI,OAAO,KAAK,CAAC,EAAE,CAAC;YACnB,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;QAC3C,CAAC;QAED,IAAI,SAAS,CAAC,
|
|
1
|
+
{"version":3,"file":"BigNumber.js","sourceRoot":"","sources":["../../src/utility/BigNumber.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -13,7 +13,6 @@
|
|
|
13
13
|
"@eslint/js": "^10.0.1",
|
|
14
14
|
"@types/eslint": "^9.6.1",
|
|
15
15
|
"@types/eslint-config-prettier": "^6.11.3",
|
|
16
|
-
"@types/node": "^25.5.0",
|
|
17
16
|
"eslint": "^10.1.0",
|
|
18
17
|
"eslint-config-prettier": "^10.1.8",
|
|
19
18
|
"eslint-plugin-perfectionist": "^5.7.0",
|
|
@@ -21,8 +20,8 @@
|
|
|
21
20
|
"eslint-plugin-tsdoc": "^0.5.2",
|
|
22
21
|
"prettier": "^3.8.1",
|
|
23
22
|
"typedoc": "^0.28.18",
|
|
24
|
-
"typescript": "^
|
|
25
|
-
"typescript-eslint": "^8.
|
|
23
|
+
"typescript": "^6.0.2",
|
|
24
|
+
"typescript-eslint": "^8.58.0"
|
|
26
25
|
},
|
|
27
26
|
"exports": {
|
|
28
27
|
".": "./dist/index.js",
|
|
@@ -56,12 +55,12 @@
|
|
|
56
55
|
"scripts": {
|
|
57
56
|
"build": "tsc",
|
|
58
57
|
"doc": "typedoc",
|
|
59
|
-
"fix": "eslint
|
|
60
|
-
"lint": "eslint
|
|
58
|
+
"fix": "eslint --fix",
|
|
59
|
+
"lint": "eslint",
|
|
61
60
|
"test": "node --test"
|
|
62
61
|
},
|
|
63
62
|
"sideEffects": false,
|
|
64
63
|
"type": "module",
|
|
65
64
|
"typings": "./dist/index.d.ts",
|
|
66
|
-
"version": "4.0.
|
|
65
|
+
"version": "4.0.4"
|
|
67
66
|
}
|
package/src/utility/BigNumber.ts
CHANGED
|
@@ -36,7 +36,7 @@ export default class BigNumber {
|
|
|
36
36
|
throw new Error("Cannot divide by zero.");
|
|
37
37
|
}
|
|
38
38
|
|
|
39
|
-
if (BigNumber.
|
|
39
|
+
if (BigNumber.test(dividend)) {
|
|
40
40
|
this.dividend = dividend.dividend;
|
|
41
41
|
this.divisor = dividend.divisor;
|
|
42
42
|
this.divide(divisor);
|
|
@@ -44,7 +44,7 @@ export default class BigNumber {
|
|
|
44
44
|
}
|
|
45
45
|
|
|
46
46
|
this.dividend = BigInt(dividend);
|
|
47
|
-
if (BigNumber.
|
|
47
|
+
if (BigNumber.test(divisor)) {
|
|
48
48
|
this.divisor = 1n;
|
|
49
49
|
this.divide(divisor);
|
|
50
50
|
return;
|
|
@@ -58,7 +58,9 @@ export default class BigNumber {
|
|
|
58
58
|
* Utility function for narrowing `Readonly<BigNumberLike>` to `Readonly<BigNumber>` or `BigIntLike`, since `Readonly` breaks the type narrowing for TypeScript.
|
|
59
59
|
* @internal
|
|
60
60
|
*/
|
|
61
|
-
private static
|
|
61
|
+
private static test(
|
|
62
|
+
value: unknown
|
|
63
|
+
): value is BigNumber | Readonly<BigNumber> {
|
|
62
64
|
return value instanceof BigNumber;
|
|
63
65
|
}
|
|
64
66
|
|
|
@@ -68,7 +70,7 @@ export default class BigNumber {
|
|
|
68
70
|
* @returns This number.
|
|
69
71
|
*/
|
|
70
72
|
public add(n: Readonly<BigNumberLike>): this {
|
|
71
|
-
if (BigNumber.
|
|
73
|
+
if (BigNumber.test(n)) {
|
|
72
74
|
this.dividend = this.dividend * n.divisor + n.dividend * this.divisor;
|
|
73
75
|
this.divisor *= n.divisor;
|
|
74
76
|
} else {
|
|
@@ -85,7 +87,7 @@ export default class BigNumber {
|
|
|
85
87
|
* @returns This number.
|
|
86
88
|
*/
|
|
87
89
|
public divide(n: Readonly<BigNumberLike>): this {
|
|
88
|
-
if (BigNumber.
|
|
90
|
+
if (BigNumber.test(n)) {
|
|
89
91
|
this.dividend *= n.divisor;
|
|
90
92
|
this.divisor *= n.dividend;
|
|
91
93
|
} else {
|
|
@@ -102,7 +104,7 @@ export default class BigNumber {
|
|
|
102
104
|
* @returns This number.
|
|
103
105
|
*/
|
|
104
106
|
public multiply(n: Readonly<BigNumberLike>): this {
|
|
105
|
-
if (BigNumber.
|
|
107
|
+
if (BigNumber.test(n)) {
|
|
106
108
|
this.dividend *= n.dividend;
|
|
107
109
|
this.divisor *= n.divisor;
|
|
108
110
|
} else {
|
|
@@ -119,7 +121,7 @@ export default class BigNumber {
|
|
|
119
121
|
* @returns This number.
|
|
120
122
|
*/
|
|
121
123
|
public subtract(n: Readonly<BigNumberLike>): this {
|
|
122
|
-
if (BigNumber.
|
|
124
|
+
if (BigNumber.test(n)) {
|
|
123
125
|
this.dividend = this.dividend * n.divisor - n.dividend * this.divisor;
|
|
124
126
|
this.divisor *= n.divisor;
|
|
125
127
|
} else {
|