mathjs 11.3.0 → 11.3.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.
- package/HISTORY.md +17 -1
- package/README.md +1 -1
- package/lib/browser/math.js +1 -1
- package/lib/browser/math.js.LICENSE.txt +2 -2
- package/lib/browser/math.js.map +1 -1
- package/lib/cjs/expression/node/FunctionAssignmentNode.js +21 -0
- package/lib/cjs/header.js +2 -2
- package/lib/cjs/type/unit/Unit.js +9 -14
- package/lib/cjs/utils/map.js +8 -6
- package/lib/cjs/version.js +1 -1
- package/lib/esm/expression/node/FunctionAssignmentNode.js +9 -0
- package/lib/esm/type/unit/Unit.js +9 -14
- package/lib/esm/version.js +1 -1
- package/package.json +12 -12
- package/types/index.d.ts +108 -49
- package/types/index.ts +0 -2330
- package/types/tsconfig.json +0 -23
|
@@ -18,6 +18,9 @@ var _array = require("../../utils/array.js");
|
|
|
18
18
|
var _latex = require("../../utils/latex.js");
|
|
19
19
|
var _operators = require("../operators.js");
|
|
20
20
|
var _factory = require("../../utils/factory.js");
|
|
21
|
+
function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; }
|
|
22
|
+
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
23
|
+
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
|
|
21
24
|
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2["default"])(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2["default"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2["default"])(this, result); }; }
|
|
22
25
|
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
|
|
23
26
|
var name = 'FunctionAssignmentNode';
|
|
@@ -69,6 +72,24 @@ var createFunctionAssignmentNode = /* #__PURE__ */(0, _factory.factory)(name, de
|
|
|
69
72
|
if (_keywords.keywords.has(name)) {
|
|
70
73
|
throw new Error('Illegal function name, "' + name + '" is a reserved keyword');
|
|
71
74
|
}
|
|
75
|
+
var paramNames = new Set();
|
|
76
|
+
var _iterator = _createForOfIteratorHelper(params),
|
|
77
|
+
_step;
|
|
78
|
+
try {
|
|
79
|
+
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
80
|
+
var param = _step.value;
|
|
81
|
+
var _name = typeof param === 'string' ? param : param.name;
|
|
82
|
+
if (paramNames.has(_name)) {
|
|
83
|
+
throw new Error("Duplicate parameter name \"".concat(_name, "\""));
|
|
84
|
+
} else {
|
|
85
|
+
paramNames.add(_name);
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
} catch (err) {
|
|
89
|
+
_iterator.e(err);
|
|
90
|
+
} finally {
|
|
91
|
+
_iterator.f();
|
|
92
|
+
}
|
|
72
93
|
_this.name = name;
|
|
73
94
|
_this.params = params.map(function (param) {
|
|
74
95
|
return param && param.name || param;
|
package/lib/cjs/header.js
CHANGED
|
@@ -6,8 +6,8 @@
|
|
|
6
6
|
* It features real and complex numbers, units, matrices, a large set of
|
|
7
7
|
* mathematical functions, and a flexible expression parser.
|
|
8
8
|
*
|
|
9
|
-
* @version 11.3.
|
|
10
|
-
* @date 2022-10-
|
|
9
|
+
* @version 11.3.2
|
|
10
|
+
* @date 2022-10-25
|
|
11
11
|
*
|
|
12
12
|
* @license
|
|
13
13
|
* Copyright (C) 2013-2022 Jos de Jong <wjosdejong@gmail.com>
|
|
@@ -2753,56 +2753,56 @@ var createUnitClass = /* #__PURE__ */(0, _factory.factory)(name, dependencies, f
|
|
|
2753
2753
|
K: {
|
|
2754
2754
|
name: 'K',
|
|
2755
2755
|
base: BASE_UNITS.TEMPERATURE,
|
|
2756
|
-
prefixes: PREFIXES.
|
|
2756
|
+
prefixes: PREFIXES.SHORT,
|
|
2757
2757
|
value: 1,
|
|
2758
2758
|
offset: 0
|
|
2759
2759
|
},
|
|
2760
2760
|
degC: {
|
|
2761
2761
|
name: 'degC',
|
|
2762
2762
|
base: BASE_UNITS.TEMPERATURE,
|
|
2763
|
-
prefixes: PREFIXES.
|
|
2763
|
+
prefixes: PREFIXES.SHORT,
|
|
2764
2764
|
value: 1,
|
|
2765
2765
|
offset: 273.15
|
|
2766
2766
|
},
|
|
2767
2767
|
degF: {
|
|
2768
2768
|
name: 'degF',
|
|
2769
2769
|
base: BASE_UNITS.TEMPERATURE,
|
|
2770
|
-
prefixes: PREFIXES.
|
|
2770
|
+
prefixes: PREFIXES.SHORT,
|
|
2771
2771
|
value: 1 / 1.8,
|
|
2772
2772
|
offset: 459.67
|
|
2773
2773
|
},
|
|
2774
2774
|
degR: {
|
|
2775
2775
|
name: 'degR',
|
|
2776
2776
|
base: BASE_UNITS.TEMPERATURE,
|
|
2777
|
-
prefixes: PREFIXES.
|
|
2777
|
+
prefixes: PREFIXES.SHORT,
|
|
2778
2778
|
value: 1 / 1.8,
|
|
2779
2779
|
offset: 0
|
|
2780
2780
|
},
|
|
2781
2781
|
kelvin: {
|
|
2782
2782
|
name: 'kelvin',
|
|
2783
2783
|
base: BASE_UNITS.TEMPERATURE,
|
|
2784
|
-
prefixes: PREFIXES.
|
|
2784
|
+
prefixes: PREFIXES.LONG,
|
|
2785
2785
|
value: 1,
|
|
2786
2786
|
offset: 0
|
|
2787
2787
|
},
|
|
2788
2788
|
celsius: {
|
|
2789
2789
|
name: 'celsius',
|
|
2790
2790
|
base: BASE_UNITS.TEMPERATURE,
|
|
2791
|
-
prefixes: PREFIXES.
|
|
2791
|
+
prefixes: PREFIXES.LONG,
|
|
2792
2792
|
value: 1,
|
|
2793
2793
|
offset: 273.15
|
|
2794
2794
|
},
|
|
2795
2795
|
fahrenheit: {
|
|
2796
2796
|
name: 'fahrenheit',
|
|
2797
2797
|
base: BASE_UNITS.TEMPERATURE,
|
|
2798
|
-
prefixes: PREFIXES.
|
|
2798
|
+
prefixes: PREFIXES.LONG,
|
|
2799
2799
|
value: 1 / 1.8,
|
|
2800
2800
|
offset: 459.67
|
|
2801
2801
|
},
|
|
2802
2802
|
rankine: {
|
|
2803
2803
|
name: 'rankine',
|
|
2804
2804
|
base: BASE_UNITS.TEMPERATURE,
|
|
2805
|
-
prefixes: PREFIXES.
|
|
2805
|
+
prefixes: PREFIXES.LONG,
|
|
2806
2806
|
value: 1 / 1.8,
|
|
2807
2807
|
offset: 0
|
|
2808
2808
|
},
|
|
@@ -3677,14 +3677,9 @@ var createUnitClass = /* #__PURE__ */(0, _factory.factory)(name, dependencies, f
|
|
|
3677
3677
|
* base unit, the name of the newly create base unit. Otherwise, this property
|
|
3678
3678
|
* has no effect.
|
|
3679
3679
|
*
|
|
3680
|
-
* @param {Object} options (optional) An object containing any of the following
|
|
3681
|
-
* properties:
|
|
3682
|
-
* - override {boolean} Whether this unit should be allowed to override existing
|
|
3683
|
-
* units.
|
|
3684
|
-
*
|
|
3685
3680
|
* @return {Unit}
|
|
3686
3681
|
*/
|
|
3687
|
-
Unit.createUnitSingle = function (name, obj
|
|
3682
|
+
Unit.createUnitSingle = function (name, obj) {
|
|
3688
3683
|
if (typeof obj === 'undefined' || obj === null) {
|
|
3689
3684
|
obj = {};
|
|
3690
3685
|
}
|
package/lib/cjs/utils/map.js
CHANGED
|
@@ -24,7 +24,8 @@ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len
|
|
|
24
24
|
* forwarding on to the SafeProperty functions. Over time, the codebase
|
|
25
25
|
* will stop using this method, as all objects will be Maps, rather than
|
|
26
26
|
* more security prone objects.
|
|
27
|
-
*/
|
|
27
|
+
*/
|
|
28
|
+
var ObjectWrappingMap = /*#__PURE__*/function () {
|
|
28
29
|
function ObjectWrappingMap(object) {
|
|
29
30
|
(0, _classCallCheck2["default"])(this, ObjectWrappingMap);
|
|
30
31
|
this.wrappedObject = object;
|
|
@@ -52,11 +53,12 @@ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len
|
|
|
52
53
|
}
|
|
53
54
|
}]);
|
|
54
55
|
return ObjectWrappingMap;
|
|
55
|
-
}();
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
56
|
+
}();
|
|
57
|
+
/**
|
|
58
|
+
* Creates an empty map, or whatever your platform's polyfill is.
|
|
59
|
+
*
|
|
60
|
+
* @returns an empty Map or Map like object.
|
|
61
|
+
*/
|
|
60
62
|
exports.ObjectWrappingMap = ObjectWrappingMap;
|
|
61
63
|
function createEmptyMap() {
|
|
62
64
|
return new Map();
|
package/lib/cjs/version.js
CHANGED
|
@@ -4,7 +4,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.version = void 0;
|
|
7
|
-
var version = '11.3.
|
|
7
|
+
var version = '11.3.2';
|
|
8
8
|
// Note: This file is automatically generated when building math.js.
|
|
9
9
|
// Changes made in this file will be overwritten.
|
|
10
10
|
exports.version = version;
|
|
@@ -53,6 +53,15 @@ export var createFunctionAssignmentNode = /* #__PURE__ */factory(name, dependenc
|
|
|
53
53
|
if (keywords.has(name)) {
|
|
54
54
|
throw new Error('Illegal function name, "' + name + '" is a reserved keyword');
|
|
55
55
|
}
|
|
56
|
+
var paramNames = new Set();
|
|
57
|
+
for (var param of params) {
|
|
58
|
+
var _name = typeof param === 'string' ? param : param.name;
|
|
59
|
+
if (paramNames.has(_name)) {
|
|
60
|
+
throw new Error("Duplicate parameter name \"".concat(_name, "\""));
|
|
61
|
+
} else {
|
|
62
|
+
paramNames.add(_name);
|
|
63
|
+
}
|
|
64
|
+
}
|
|
56
65
|
this.name = name;
|
|
57
66
|
this.params = params.map(function (param) {
|
|
58
67
|
return param && param.name || param;
|
|
@@ -2739,56 +2739,56 @@ export var createUnitClass = /* #__PURE__ */factory(name, dependencies, _ref =>
|
|
|
2739
2739
|
K: {
|
|
2740
2740
|
name: 'K',
|
|
2741
2741
|
base: BASE_UNITS.TEMPERATURE,
|
|
2742
|
-
prefixes: PREFIXES.
|
|
2742
|
+
prefixes: PREFIXES.SHORT,
|
|
2743
2743
|
value: 1,
|
|
2744
2744
|
offset: 0
|
|
2745
2745
|
},
|
|
2746
2746
|
degC: {
|
|
2747
2747
|
name: 'degC',
|
|
2748
2748
|
base: BASE_UNITS.TEMPERATURE,
|
|
2749
|
-
prefixes: PREFIXES.
|
|
2749
|
+
prefixes: PREFIXES.SHORT,
|
|
2750
2750
|
value: 1,
|
|
2751
2751
|
offset: 273.15
|
|
2752
2752
|
},
|
|
2753
2753
|
degF: {
|
|
2754
2754
|
name: 'degF',
|
|
2755
2755
|
base: BASE_UNITS.TEMPERATURE,
|
|
2756
|
-
prefixes: PREFIXES.
|
|
2756
|
+
prefixes: PREFIXES.SHORT,
|
|
2757
2757
|
value: 1 / 1.8,
|
|
2758
2758
|
offset: 459.67
|
|
2759
2759
|
},
|
|
2760
2760
|
degR: {
|
|
2761
2761
|
name: 'degR',
|
|
2762
2762
|
base: BASE_UNITS.TEMPERATURE,
|
|
2763
|
-
prefixes: PREFIXES.
|
|
2763
|
+
prefixes: PREFIXES.SHORT,
|
|
2764
2764
|
value: 1 / 1.8,
|
|
2765
2765
|
offset: 0
|
|
2766
2766
|
},
|
|
2767
2767
|
kelvin: {
|
|
2768
2768
|
name: 'kelvin',
|
|
2769
2769
|
base: BASE_UNITS.TEMPERATURE,
|
|
2770
|
-
prefixes: PREFIXES.
|
|
2770
|
+
prefixes: PREFIXES.LONG,
|
|
2771
2771
|
value: 1,
|
|
2772
2772
|
offset: 0
|
|
2773
2773
|
},
|
|
2774
2774
|
celsius: {
|
|
2775
2775
|
name: 'celsius',
|
|
2776
2776
|
base: BASE_UNITS.TEMPERATURE,
|
|
2777
|
-
prefixes: PREFIXES.
|
|
2777
|
+
prefixes: PREFIXES.LONG,
|
|
2778
2778
|
value: 1,
|
|
2779
2779
|
offset: 273.15
|
|
2780
2780
|
},
|
|
2781
2781
|
fahrenheit: {
|
|
2782
2782
|
name: 'fahrenheit',
|
|
2783
2783
|
base: BASE_UNITS.TEMPERATURE,
|
|
2784
|
-
prefixes: PREFIXES.
|
|
2784
|
+
prefixes: PREFIXES.LONG,
|
|
2785
2785
|
value: 1 / 1.8,
|
|
2786
2786
|
offset: 459.67
|
|
2787
2787
|
},
|
|
2788
2788
|
rankine: {
|
|
2789
2789
|
name: 'rankine',
|
|
2790
2790
|
base: BASE_UNITS.TEMPERATURE,
|
|
2791
|
-
prefixes: PREFIXES.
|
|
2791
|
+
prefixes: PREFIXES.LONG,
|
|
2792
2792
|
value: 1 / 1.8,
|
|
2793
2793
|
offset: 0
|
|
2794
2794
|
},
|
|
@@ -3663,14 +3663,9 @@ export var createUnitClass = /* #__PURE__ */factory(name, dependencies, _ref =>
|
|
|
3663
3663
|
* base unit, the name of the newly create base unit. Otherwise, this property
|
|
3664
3664
|
* has no effect.
|
|
3665
3665
|
*
|
|
3666
|
-
* @param {Object} options (optional) An object containing any of the following
|
|
3667
|
-
* properties:
|
|
3668
|
-
* - override {boolean} Whether this unit should be allowed to override existing
|
|
3669
|
-
* units.
|
|
3670
|
-
*
|
|
3671
3666
|
* @return {Unit}
|
|
3672
3667
|
*/
|
|
3673
|
-
Unit.createUnitSingle = function (name, obj
|
|
3668
|
+
Unit.createUnitSingle = function (name, obj) {
|
|
3674
3669
|
if (typeof obj === 'undefined' || obj === null) {
|
|
3675
3670
|
obj = {};
|
|
3676
3671
|
}
|
package/lib/esm/version.js
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "mathjs",
|
|
3
|
-
"version": "11.3.
|
|
3
|
+
"version": "11.3.2",
|
|
4
4
|
"description": "Math.js is an extensive math library for JavaScript and Node.js. It features a flexible expression parser with support for symbolic computation, comes with a large set of built-in functions and constants, and offers an integrated solution to work with different data types like numbers, big numbers, complex numbers, fractions, units, and matrices.",
|
|
5
5
|
"author": "Jos de Jong <wjosdejong@gmail.com> (https://github.com/josdejong)",
|
|
6
6
|
"homepage": "https://mathjs.org",
|
|
@@ -27,7 +27,7 @@
|
|
|
27
27
|
"dependencies": {
|
|
28
28
|
"@babel/runtime": "^7.19.4",
|
|
29
29
|
"complex.js": "^2.1.1",
|
|
30
|
-
"decimal.js": "^10.4.
|
|
30
|
+
"decimal.js": "^10.4.2",
|
|
31
31
|
"escape-latex": "^1.2.0",
|
|
32
32
|
"fraction.js": "^4.2.0",
|
|
33
33
|
"javascript-natural-sort": "^0.7.1",
|
|
@@ -36,31 +36,31 @@
|
|
|
36
36
|
"typed-function": "^4.1.0"
|
|
37
37
|
},
|
|
38
38
|
"devDependencies": {
|
|
39
|
-
"@babel/core": "7.19.
|
|
39
|
+
"@babel/core": "7.19.6",
|
|
40
40
|
"@babel/plugin-transform-object-assign": "7.18.6",
|
|
41
|
-
"@babel/plugin-transform-runtime": "7.19.
|
|
41
|
+
"@babel/plugin-transform-runtime": "7.19.6",
|
|
42
42
|
"@babel/preset-env": "7.19.4",
|
|
43
43
|
"@babel/register": "7.18.9",
|
|
44
44
|
"@types/assert": "1.5.6",
|
|
45
45
|
"@types/mocha": "10.0.0",
|
|
46
|
-
"@typescript-eslint/eslint-plugin": "5.
|
|
47
|
-
"@typescript-eslint/parser": "5.
|
|
46
|
+
"@typescript-eslint/eslint-plugin": "5.41.0",
|
|
47
|
+
"@typescript-eslint/parser": "5.41.0",
|
|
48
48
|
"assert": "2.0.0",
|
|
49
49
|
"babel-loader": "8.2.5",
|
|
50
50
|
"benchmark": "2.1.4",
|
|
51
51
|
"codecov": "3.8.3",
|
|
52
|
-
"core-js": "3.
|
|
52
|
+
"core-js": "3.26.0",
|
|
53
53
|
"del": "6.1.1",
|
|
54
54
|
"dtslint": "4.2.1",
|
|
55
|
-
"eslint": "8.
|
|
55
|
+
"eslint": "8.26.0",
|
|
56
56
|
"eslint-config-prettier": "8.5.0",
|
|
57
57
|
"eslint-config-standard": "17.0.0",
|
|
58
58
|
"eslint-plugin-import": "2.26.0",
|
|
59
59
|
"eslint-plugin-mocha": "10.1.0",
|
|
60
60
|
"eslint-plugin-n": "15.3.0",
|
|
61
61
|
"eslint-plugin-prettier": "4.2.1",
|
|
62
|
-
"eslint-plugin-promise": "6.
|
|
63
|
-
"expect-type": "0.
|
|
62
|
+
"eslint-plugin-promise": "6.1.1",
|
|
63
|
+
"expect-type": "0.15.0",
|
|
64
64
|
"expr-eval": "2.0.2",
|
|
65
65
|
"fancy-log": "2.0.0",
|
|
66
66
|
"glob": "8.0.3",
|
|
@@ -77,7 +77,7 @@
|
|
|
77
77
|
"karma-webpack": "5.0.0",
|
|
78
78
|
"math-expression-evaluator": "1.4.0",
|
|
79
79
|
"mkdirp": "1.0.4",
|
|
80
|
-
"mocha": "10.
|
|
80
|
+
"mocha": "10.1.0",
|
|
81
81
|
"mocha-junit-reporter": "2.1.0",
|
|
82
82
|
"ndarray": "1.0.19",
|
|
83
83
|
"ndarray-determinant": "1.0.0",
|
|
@@ -162,7 +162,7 @@
|
|
|
162
162
|
"test:all": "npm run test:src && npm run test:generated && npm run test:node && npm run test:types",
|
|
163
163
|
"test:browser": "karma start test/browser-test-config/local-karma.js",
|
|
164
164
|
"test:browserstack": "karma start test/browser-test-config/browserstack-karma.js",
|
|
165
|
-
"test:types": "
|
|
165
|
+
"test:types": " tsc -p ./tsconfig.json && node --loader ts-node/esm ./test/typescript-tests/testTypes.ts",
|
|
166
166
|
"coverage": "nyc --reporter=lcov --reporter=text-summary mocha test/unit-tests && echo \"\nDetailed coverage report is available at ./coverage/lcov-report/index.html\"",
|
|
167
167
|
"prepublishOnly": "npm run test:all && npm run lint",
|
|
168
168
|
"update-authors": "node ./tools/update-authors.js"
|
package/types/index.d.ts
CHANGED
|
@@ -165,119 +165,159 @@ declare namespace math {
|
|
|
165
165
|
new (): MathNode
|
|
166
166
|
}
|
|
167
167
|
|
|
168
|
-
interface AccessorNode extends MathNode {
|
|
168
|
+
interface AccessorNode<TObject extends MathNode = MathNode> extends MathNode {
|
|
169
169
|
type: 'AccessorNode'
|
|
170
170
|
isAccessorNode: true
|
|
171
|
-
object:
|
|
171
|
+
object: TObject
|
|
172
172
|
index: IndexNode
|
|
173
173
|
name: string
|
|
174
174
|
}
|
|
175
175
|
interface AccessorNodeCtor {
|
|
176
|
-
new
|
|
176
|
+
new <TObject extends MathNode = MathNode>(
|
|
177
|
+
object: TObject,
|
|
178
|
+
index: IndexNode
|
|
179
|
+
): AccessorNode<TObject>
|
|
177
180
|
}
|
|
178
181
|
|
|
179
|
-
interface ArrayNode extends MathNode {
|
|
182
|
+
interface ArrayNode<TItems extends MathNode[] = MathNode[]> extends MathNode {
|
|
180
183
|
type: 'ArrayNode'
|
|
181
184
|
isArrayNode: true
|
|
182
|
-
items:
|
|
185
|
+
items: TItems
|
|
183
186
|
}
|
|
184
187
|
interface ArrayNodeCtor {
|
|
185
|
-
new
|
|
188
|
+
new <TItems extends MathNode[] = MathNode[]>(
|
|
189
|
+
items: MathNode[]
|
|
190
|
+
): ArrayNode<TItems>
|
|
186
191
|
}
|
|
187
192
|
|
|
188
|
-
interface AssignmentNode extends MathNode
|
|
193
|
+
interface AssignmentNode<TValue extends MathNode = MathNode>
|
|
194
|
+
extends MathNode {
|
|
189
195
|
type: 'AssignmentNode'
|
|
190
196
|
isAssignmentNode: true
|
|
191
197
|
object: SymbolNode | AccessorNode
|
|
192
198
|
index: IndexNode | null
|
|
193
|
-
value:
|
|
199
|
+
value: TValue
|
|
194
200
|
name: string
|
|
195
201
|
}
|
|
196
202
|
interface AssignmentNodeCtor {
|
|
197
|
-
new
|
|
198
|
-
|
|
203
|
+
new <TValue extends MathNode = MathNode>(
|
|
204
|
+
object: SymbolNode,
|
|
205
|
+
value: TValue
|
|
206
|
+
): AssignmentNode<TValue>
|
|
207
|
+
new <TValue extends MathNode = MathNode>(
|
|
199
208
|
object: SymbolNode | AccessorNode,
|
|
200
209
|
index: IndexNode,
|
|
201
|
-
value:
|
|
202
|
-
): AssignmentNode
|
|
210
|
+
value: TValue
|
|
211
|
+
): AssignmentNode<TValue>
|
|
203
212
|
}
|
|
204
213
|
|
|
205
|
-
interface BlockNode extends MathNode {
|
|
214
|
+
interface BlockNode<TNode extends MathNode = MathNode> extends MathNode {
|
|
206
215
|
type: 'BlockNode'
|
|
207
216
|
isBlockNode: true
|
|
208
|
-
blocks: Array<{ node:
|
|
217
|
+
blocks: Array<{ node: TNode; visible: boolean }>
|
|
209
218
|
}
|
|
210
219
|
interface BlockNodeCtor {
|
|
211
|
-
new (
|
|
212
|
-
arr: Array<{ node:
|
|
220
|
+
new <TNode extends MathNode = MathNode>(
|
|
221
|
+
arr: Array<{ node: TNode } | { node: TNode; visible: boolean }>
|
|
213
222
|
): BlockNode
|
|
214
223
|
}
|
|
215
224
|
|
|
216
|
-
interface ConditionalNode
|
|
225
|
+
interface ConditionalNode<
|
|
226
|
+
TCond extends MathNode = MathNode,
|
|
227
|
+
TTrueNode extends MathNode = MathNode,
|
|
228
|
+
TFalseNode extends MathNode = MathNode
|
|
229
|
+
> extends MathNode {
|
|
217
230
|
type: 'ConditionalNode'
|
|
218
231
|
isConditionalNode: boolean
|
|
219
|
-
condition:
|
|
220
|
-
trueExpr:
|
|
221
|
-
falseExpr:
|
|
232
|
+
condition: TCond
|
|
233
|
+
trueExpr: TTrueNode
|
|
234
|
+
falseExpr: TFalseNode
|
|
222
235
|
}
|
|
223
236
|
interface ConditionalNodeCtor {
|
|
224
|
-
new
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
237
|
+
new <
|
|
238
|
+
TCond extends MathNode = MathNode,
|
|
239
|
+
TTrueNode extends MathNode = MathNode,
|
|
240
|
+
TFalseNode extends MathNode = MathNode
|
|
241
|
+
>(
|
|
242
|
+
condition: TCond,
|
|
243
|
+
trueExpr: TTrueNode,
|
|
244
|
+
falseExpr: TFalseNode
|
|
228
245
|
): ConditionalNode
|
|
229
246
|
}
|
|
230
247
|
|
|
231
|
-
interface ConstantNode extends
|
|
248
|
+
interface ConstantNode<TValue extends string | number = number>
|
|
249
|
+
extends MathNode {
|
|
232
250
|
type: 'ConstantNode'
|
|
233
251
|
isConstantNode: true
|
|
234
252
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
235
|
-
value:
|
|
253
|
+
value: TValue
|
|
236
254
|
}
|
|
237
255
|
|
|
238
256
|
interface ConstantNodeCtor {
|
|
239
|
-
new
|
|
257
|
+
new <TValue extends string | number = string>(
|
|
258
|
+
value: TValue
|
|
259
|
+
): ConstantNode<TValue>
|
|
240
260
|
}
|
|
241
261
|
|
|
242
|
-
interface FunctionAssignmentNode extends MathNode
|
|
262
|
+
interface FunctionAssignmentNode<TExpr extends MathNode = MathNode>
|
|
263
|
+
extends MathNode {
|
|
243
264
|
type: 'FunctionAssignmentNode'
|
|
244
265
|
isFunctionAssignmentNode: true
|
|
245
266
|
name: string
|
|
246
267
|
params: string[]
|
|
247
|
-
expr:
|
|
268
|
+
expr: TExpr
|
|
248
269
|
}
|
|
249
270
|
interface FunctionAssignmentNodeCtor {
|
|
250
|
-
new
|
|
271
|
+
new <TExpr extends MathNode = MathNode>(
|
|
272
|
+
name: string,
|
|
273
|
+
params: string[],
|
|
274
|
+
expr: TExpr
|
|
275
|
+
): FunctionAssignmentNode<TExpr>
|
|
251
276
|
}
|
|
252
277
|
|
|
253
|
-
interface FunctionNode
|
|
278
|
+
interface FunctionNode<
|
|
279
|
+
TFn = SymbolNode,
|
|
280
|
+
TArgs extends MathNode[] = MathNode[]
|
|
281
|
+
> extends MathNode {
|
|
254
282
|
type: 'FunctionNode'
|
|
255
283
|
isFunctionNode: true
|
|
256
|
-
fn:
|
|
257
|
-
args:
|
|
284
|
+
fn: TFn
|
|
285
|
+
args: TArgs
|
|
258
286
|
}
|
|
259
287
|
interface FunctionNodeCtor {
|
|
260
|
-
new
|
|
288
|
+
new <TFn = SymbolNode, TArgs extends MathNode[] = MathNode[]>(
|
|
289
|
+
fn: TFn,
|
|
290
|
+
args: SymbolNode
|
|
291
|
+
): FunctionNode<TransferFunction, TArgs>
|
|
292
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
293
|
+
onUndefinedFunction: (name: string) => any
|
|
261
294
|
}
|
|
262
295
|
|
|
263
|
-
interface IndexNode extends MathNode {
|
|
296
|
+
interface IndexNode<TDims extends MathNode[] = MathNode[]> extends MathNode {
|
|
264
297
|
type: 'IndexNode'
|
|
265
298
|
isIndexNode: true
|
|
266
|
-
dimensions:
|
|
299
|
+
dimensions: TDims
|
|
267
300
|
dotNotation: boolean
|
|
268
301
|
}
|
|
269
302
|
interface IndexNodeCtor {
|
|
270
|
-
new (dimensions:
|
|
271
|
-
new
|
|
303
|
+
new <TDims extends MathNode[] = MathNode[]>(dimensions: TDims): IndexNode
|
|
304
|
+
new <TDims extends MathNode[] = MathNode[]>(
|
|
305
|
+
dimensions: TDims,
|
|
306
|
+
dotNotation: boolean
|
|
307
|
+
): IndexNode<TDims>
|
|
272
308
|
}
|
|
273
309
|
|
|
274
|
-
interface ObjectNode
|
|
310
|
+
interface ObjectNode<
|
|
311
|
+
TProps extends Record<string, MathNode> = Record<string, MathNode>
|
|
312
|
+
> extends MathNode {
|
|
275
313
|
type: 'ObjectNode'
|
|
276
314
|
isObjectNode: true
|
|
277
|
-
properties:
|
|
315
|
+
properties: TProps
|
|
278
316
|
}
|
|
279
317
|
interface ObjectNodeCtor {
|
|
280
|
-
new
|
|
318
|
+
new <TProps extends Record<string, MathNode> = Record<string, MathNode>>(
|
|
319
|
+
properties: TProps
|
|
320
|
+
): ObjectNode<TProps>
|
|
281
321
|
}
|
|
282
322
|
|
|
283
323
|
type OperatorNodeMap = {
|
|
@@ -355,25 +395,41 @@ declare namespace math {
|
|
|
355
395
|
): ParenthesisNode<TContent>
|
|
356
396
|
}
|
|
357
397
|
|
|
358
|
-
interface RangeNode
|
|
398
|
+
interface RangeNode<
|
|
399
|
+
TStart extends MathNode = MathNode,
|
|
400
|
+
TEnd extends MathNode = MathNode,
|
|
401
|
+
TStep extends MathNode = MathNode
|
|
402
|
+
> extends MathNode {
|
|
359
403
|
type: 'RangeNode'
|
|
360
404
|
isRangeNode: true
|
|
361
|
-
start:
|
|
362
|
-
end:
|
|
363
|
-
step:
|
|
405
|
+
start: TStart
|
|
406
|
+
end: TEnd
|
|
407
|
+
step: TStep | null
|
|
364
408
|
}
|
|
365
409
|
interface RangeNodeCtor {
|
|
366
|
-
new
|
|
410
|
+
new <
|
|
411
|
+
TStart extends MathNode = MathNode,
|
|
412
|
+
TEnd extends MathNode = MathNode,
|
|
413
|
+
TStep extends MathNode = MathNode
|
|
414
|
+
>(
|
|
415
|
+
start: TStart,
|
|
416
|
+
end: TEnd,
|
|
417
|
+
step?: TStep
|
|
418
|
+
): RangeNode<TStart, TEnd, TStep>
|
|
367
419
|
}
|
|
368
420
|
|
|
369
|
-
interface RelationalNode extends MathNode
|
|
421
|
+
interface RelationalNode<TParams extends MathNode[] = MathNode[]>
|
|
422
|
+
extends MathNode {
|
|
370
423
|
type: 'RelationalNode'
|
|
371
424
|
isRelationalNode: true
|
|
372
425
|
conditionals: string[]
|
|
373
|
-
params:
|
|
426
|
+
params: TParams
|
|
374
427
|
}
|
|
375
428
|
interface RelationalNodeCtor {
|
|
376
|
-
new
|
|
429
|
+
new <TParams extends MathNode[] = MathNode[]>(
|
|
430
|
+
conditionals: string[],
|
|
431
|
+
params: TParams
|
|
432
|
+
): RelationalNode<TParams>
|
|
377
433
|
}
|
|
378
434
|
|
|
379
435
|
interface SymbolNode extends MathNode {
|
|
@@ -383,6 +439,8 @@ declare namespace math {
|
|
|
383
439
|
}
|
|
384
440
|
interface SymbolNodeCtor {
|
|
385
441
|
new (name: string): SymbolNode
|
|
442
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
443
|
+
onUndefinedSymbol: (name: string) => any
|
|
386
444
|
}
|
|
387
445
|
|
|
388
446
|
/**
|
|
@@ -3840,6 +3898,7 @@ declare namespace math {
|
|
|
3840
3898
|
prefixes?: string
|
|
3841
3899
|
offset?: number
|
|
3842
3900
|
aliases?: string[]
|
|
3901
|
+
baseName?: string
|
|
3843
3902
|
}
|
|
3844
3903
|
|
|
3845
3904
|
// eslint-disable-next-line @typescript-eslint/no-empty-interface
|