mathjs 13.2.0 → 13.2.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 (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",