mathjs 13.2.0 → 13.2.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (32) hide show
  1. package/HISTORY.md +13 -1
  2. package/lib/browser/math.js +1 -1
  3. package/lib/browser/math.js.LICENSE.txt +2 -9
  4. package/lib/browser/math.js.map +1 -1
  5. package/lib/cjs/core/function/typed.js +1 -1
  6. package/lib/cjs/entry/dependenciesAny/dependenciesParserClass.generated.js +2 -0
  7. package/lib/cjs/entry/dependenciesAny/dependenciesSimplify.generated.js +0 -18
  8. package/lib/cjs/entry/dependenciesNumber/dependenciesParserClass.generated.js +2 -0
  9. package/lib/cjs/entry/dependenciesNumber/dependenciesSimplify.generated.js +0 -14
  10. package/lib/cjs/entry/impureFunctionsAny.generated.js +2 -12
  11. package/lib/cjs/entry/impureFunctionsNumber.generated.js +2 -10
  12. package/lib/cjs/expression/Parser.js +21 -2
  13. package/lib/cjs/expression/parse.js +1 -1
  14. package/lib/cjs/function/algebra/simplify.js +2 -13
  15. package/lib/cjs/header.js +2 -2
  16. package/lib/cjs/type/matrix/MatrixIndex.js +3 -0
  17. package/lib/cjs/type/resultset/ResultSet.js +1 -1
  18. package/lib/cjs/version.js +1 -1
  19. package/lib/esm/core/function/typed.js +1 -1
  20. package/lib/esm/entry/dependenciesAny/dependenciesParserClass.generated.js +2 -0
  21. package/lib/esm/entry/dependenciesAny/dependenciesSimplify.generated.js +0 -18
  22. package/lib/esm/entry/dependenciesNumber/dependenciesParserClass.generated.js +2 -0
  23. package/lib/esm/entry/dependenciesNumber/dependenciesSimplify.generated.js +0 -14
  24. package/lib/esm/entry/impureFunctionsAny.generated.js +2 -12
  25. package/lib/esm/entry/impureFunctionsNumber.generated.js +2 -10
  26. package/lib/esm/expression/Parser.js +21 -2
  27. package/lib/esm/expression/parse.js +1 -1
  28. package/lib/esm/function/algebra/simplify.js +2 -13
  29. package/lib/esm/type/matrix/MatrixIndex.js +3 -0
  30. package/lib/esm/type/resultset/ResultSet.js +1 -1
  31. package/lib/esm/version.js +1 -1
  32. package/package.json +17 -17
@@ -157,11 +157,10 @@ export var Help = createHelpClass({
157
157
  evaluate
158
158
  });
159
159
  export var Parser = createParserClass({
160
- evaluate
160
+ evaluate,
161
+ parse
161
162
  });
162
163
  export var simplify = createSimplify({
163
- bignumber,
164
- fraction,
165
164
  AccessorNode,
166
165
  ArrayNode,
167
166
  ConstantNode,
@@ -171,20 +170,11 @@ export var simplify = createSimplify({
171
170
  OperatorNode,
172
171
  ParenthesisNode,
173
172
  SymbolNode,
174
- add,
175
- config,
176
- divide,
177
173
  equal,
178
- isZero,
179
- mathWithTransform,
180
- matrix,
181
- multiply,
182
174
  parse,
183
- pow,
184
175
  resolve,
185
176
  simplifyConstant,
186
177
  simplifyCore,
187
- subtract,
188
178
  typed
189
179
  });
190
180
  export var symbolicEqual = createSymbolicEqual({
@@ -154,7 +154,8 @@ export var Help = createHelpClass({
154
154
  evaluate
155
155
  });
156
156
  export var Parser = createParserClass({
157
- evaluate
157
+ evaluate,
158
+ parse
158
159
  });
159
160
  export var simplify = createSimplify({
160
161
  AccessorNode,
@@ -166,20 +167,11 @@ export var simplify = createSimplify({
166
167
  OperatorNode,
167
168
  ParenthesisNode,
168
169
  SymbolNode,
169
- add,
170
- config,
171
- divide,
172
170
  equal,
173
- isZero,
174
- mathWithTransform,
175
- matrix,
176
- multiply,
177
171
  parse,
178
- pow,
179
172
  resolve,
180
173
  simplifyConstant,
181
174
  simplifyCore,
182
- subtract,
183
175
  typed
184
176
  });
185
177
  export var derivative = createDerivative({
@@ -1,10 +1,11 @@
1
1
  import { factory } from '../utils/factory.js';
2
2
  import { createEmptyMap, toObject } from '../utils/map.js';
3
3
  var name = 'Parser';
4
- var dependencies = ['evaluate'];
4
+ var dependencies = ['evaluate', 'parse'];
5
5
  export var createParserClass = /* #__PURE__ */factory(name, dependencies, _ref => {
6
6
  var {
7
- evaluate
7
+ evaluate,
8
+ parse
8
9
  } = _ref;
9
10
  /**
10
11
  * @constructor Parser
@@ -110,6 +111,21 @@ export var createParserClass = /* #__PURE__ */factory(name, dependencies, _ref =
110
111
  Parser.prototype.getAllAsMap = function () {
111
112
  return this.scope;
112
113
  };
114
+ function isValidVariableName(name) {
115
+ if (name.length === 0) {
116
+ return false;
117
+ }
118
+ for (var i = 0; i < name.length; i++) {
119
+ var cPrev = name.charAt(i - 1);
120
+ var c = name.charAt(i);
121
+ var cNext = name.charAt(i + 1);
122
+ var valid = parse.isAlpha(c, cPrev, cNext) || i > 0 && parse.isDigit(c);
123
+ if (!valid) {
124
+ return false;
125
+ }
126
+ }
127
+ return true;
128
+ }
113
129
 
114
130
  /**
115
131
  * Set a symbol (a function or variable) by name from the parsers scope.
@@ -117,6 +133,9 @@ export var createParserClass = /* #__PURE__ */factory(name, dependencies, _ref =
117
133
  * @param {* | undefined} value
118
134
  */
119
135
  Parser.prototype.set = function (name, value) {
136
+ if (!isValidVariableName(name)) {
137
+ throw new Error("Invalid variable name: '".concat(name, "'. Variable names must follow the specified rules."));
138
+ }
120
139
  this.scope.set(name, value);
121
140
  return value;
122
141
  };
@@ -1034,7 +1034,7 @@ export var createParse = /* #__PURE__ */factory(name, dependencies, _ref => {
1034
1034
  getTokenSkipNewline(state);
1035
1035
 
1036
1036
  // Match the "symbol" part of the pattern, or a left parenthesis
1037
- if (state.tokenType === TOKENTYPE.SYMBOL || state.token === '(') {
1037
+ if (state.tokenType === TOKENTYPE.SYMBOL || state.token === '(' || state.token === 'in') {
1038
1038
  // We've matched the pattern "number / number symbol".
1039
1039
  // Rewind once and build the "number / number" node; the symbol will be consumed later
1040
1040
  _extends(state, tokenStates.pop());
@@ -5,26 +5,15 @@ import { createUtil } from './simplify/util.js';
5
5
  import { hasOwnProperty } from '../../utils/object.js';
6
6
  import { createEmptyMap, createMap } from '../../utils/map.js';
7
7
  var name = 'simplify';
8
- var dependencies = ['config', 'typed', 'parse', 'add', 'subtract', 'multiply', 'divide', 'pow', 'isZero', 'equal', 'resolve', 'simplifyConstant', 'simplifyCore', '?fraction', '?bignumber', 'mathWithTransform', 'matrix', 'AccessorNode', 'ArrayNode', 'ConstantNode', 'FunctionNode', 'IndexNode', 'ObjectNode', 'OperatorNode', 'ParenthesisNode', 'SymbolNode'];
8
+ var dependencies = ['typed', 'parse', 'equal', 'resolve', 'simplifyConstant', 'simplifyCore', 'AccessorNode', 'ArrayNode', 'ConstantNode', 'FunctionNode', 'IndexNode', 'ObjectNode', 'OperatorNode', 'ParenthesisNode', 'SymbolNode'];
9
9
  export var createSimplify = /* #__PURE__ */factory(name, dependencies, _ref => {
10
10
  var {
11
- config,
12
11
  typed,
13
12
  parse,
14
- add,
15
- subtract,
16
- multiply,
17
- divide,
18
- pow,
19
- isZero,
20
13
  equal,
21
14
  resolve,
22
15
  simplifyConstant,
23
16
  simplifyCore,
24
- fraction,
25
- bignumber,
26
- mathWithTransform,
27
- matrix,
28
17
  AccessorNode,
29
18
  ArrayNode,
30
19
  ConstantNode,
@@ -189,7 +178,7 @@ export var createSimplify = /* #__PURE__ */factory(name, dependencies, _ref => {
189
178
  simplify.realContext = realContext;
190
179
  simplify.positiveContext = positiveContext;
191
180
  function removeParens(node) {
192
- return node.transform(function (node, path, parent) {
181
+ return node.transform(function (node) {
193
182
  return isParenthesisNode(node) ? removeParens(node.content) : node;
194
183
  });
195
184
  }
@@ -180,6 +180,9 @@ export var createIndexClass = /* #__PURE__ */factory(name, dependencies, _ref =>
180
180
  * @returns {Range | null} range
181
181
  */
182
182
  Index.prototype.dimension = function (dim) {
183
+ if (typeof dim !== 'number') {
184
+ return null;
185
+ }
183
186
  return this._dimensions[dim] || null;
184
187
  };
185
188
 
@@ -36,7 +36,7 @@ export var createResultSet = /* #__PURE__ */factory(name, dependencies, () => {
36
36
  * @returns {string} string
37
37
  */
38
38
  ResultSet.prototype.toString = function () {
39
- return '[' + this.entries.join(', ') + ']';
39
+ return '[' + this.entries.map(String).join(', ') + ']';
40
40
  };
41
41
 
42
42
  /**
@@ -1,3 +1,3 @@
1
- export var version = '13.2.0';
1
+ export var version = '13.2.2';
2
2
  // Note: This file is automatically generated when building math.js.
3
3
  // Changes made in this file will be overwritten.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "mathjs",
3
- "version": "13.2.0",
3
+ "version": "13.2.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",
@@ -25,8 +25,8 @@
25
25
  "unit"
26
26
  ],
27
27
  "dependencies": {
28
- "@babel/runtime": "^7.25.6",
29
- "complex.js": "^2.1.1",
28
+ "@babel/runtime": "^7.25.7",
29
+ "complex.js": "^2.2.5",
30
30
  "decimal.js": "^10.4.3",
31
31
  "escape-latex": "^1.2.0",
32
32
  "fraction.js": "^4.3.7",
@@ -36,14 +36,14 @@
36
36
  "typed-function": "^4.2.1"
37
37
  },
38
38
  "devDependencies": {
39
- "@babel/core": "7.25.2",
40
- "@babel/plugin-transform-object-assign": "7.24.7",
41
- "@babel/plugin-transform-optional-catch-binding": "7.24.7",
42
- "@babel/plugin-transform-runtime": "7.25.4",
43
- "@babel/preset-env": "7.25.4",
44
- "@babel/register": "7.24.6",
45
- "@types/assert": "1.5.10",
46
- "@types/mocha": "10.0.8",
39
+ "@babel/core": "7.26.0",
40
+ "@babel/plugin-transform-object-assign": "7.25.9",
41
+ "@babel/plugin-transform-optional-catch-binding": "7.25.9",
42
+ "@babel/plugin-transform-runtime": "7.25.9",
43
+ "@babel/preset-env": "7.26.0",
44
+ "@babel/register": "7.25.9",
45
+ "@types/assert": "1.5.11",
46
+ "@types/mocha": "10.0.9",
47
47
  "@typescript-eslint/eslint-plugin": "7.16.1",
48
48
  "@typescript-eslint/parser": "7.16.1",
49
49
  "assert": "2.1.0",
@@ -51,18 +51,18 @@
51
51
  "benchmark": "2.1.4",
52
52
  "c8": "10.1.2",
53
53
  "codecov": "3.8.3",
54
- "core-js": "3.38.1",
55
- "del": "7.1.0",
54
+ "core-js": "3.39.0",
55
+ "del": "8.0.0",
56
56
  "dtslint": "4.2.1",
57
57
  "eslint": "8.57.0",
58
58
  "eslint-config-prettier": "9.1.0",
59
59
  "eslint-config-standard": "17.1.0",
60
- "eslint-plugin-import": "2.30.0",
60
+ "eslint-plugin-import": "2.31.0",
61
61
  "eslint-plugin-mocha": "10.5.0",
62
62
  "eslint-plugin-n": "16.6.2",
63
63
  "eslint-plugin-prettier": "5.2.1",
64
64
  "eslint-plugin-promise": "6.6.0",
65
- "expect-type": "0.20.0",
65
+ "expect-type": "1.1.0",
66
66
  "expr-eval": "2.0.2",
67
67
  "fancy-log": "2.0.0",
68
68
  "glob": "11.0.0",
@@ -77,7 +77,7 @@
77
77
  "karma-mocha-reporter": "2.2.5",
78
78
  "karma-webpack": "5.0.1",
79
79
  "mkdirp": "3.0.1",
80
- "mocha": "10.7.3",
80
+ "mocha": "10.8.2",
81
81
  "mocha-junit-reporter": "2.2.1",
82
82
  "ndarray": "1.0.19",
83
83
  "ndarray-determinant": "1.0.0",
@@ -92,7 +92,7 @@
92
92
  "sylvester": "0.0.21",
93
93
  "ts-node": "10.9.2",
94
94
  "typescript": "5.5.4",
95
- "webpack": "5.95.0",
95
+ "webpack": "5.96.1",
96
96
  "zeros": "1.0.0"
97
97
  },
98
98
  "type": "module",