mathjs 13.2.1 → 13.2.3

Sign up to get free protection for your applications and to get access to all the features.
@@ -1041,7 +1041,7 @@ const createParse = exports.createParse = /* #__PURE__ */(0, _factory.factory)(n
1041
1041
  getTokenSkipNewline(state);
1042
1042
 
1043
1043
  // Match the "symbol" part of the pattern, or a left parenthesis
1044
- if (state.tokenType === TOKENTYPE.SYMBOL || state.token === '(') {
1044
+ if (state.tokenType === TOKENTYPE.SYMBOL || state.token === '(' || state.token === 'in') {
1045
1045
  // We've matched the pattern "number / number symbol".
1046
1046
  // Rewind once and build the "number / number" node; the symbol will be consumed later
1047
1047
  (0, _extends2.default)(state, tokenStates.pop());
@@ -16,6 +16,13 @@ const createFilter = exports.createFilter = /* #__PURE__ */(0, _factory.factory)
16
16
  /**
17
17
  * Filter the items in an array or one dimensional matrix.
18
18
  *
19
+ * The callback is invoked with three arguments: the current value,
20
+ * the current index, and the matrix operated upon.
21
+ * Note that because the matrix/array might be
22
+ * multidimensional, the "index" argument is always an array of numbers giving
23
+ * the index in each dimension. This is true even for vectors: the "index"
24
+ * argument is an array of length 1, rather than simply a number.
25
+ *
19
26
  * Syntax:
20
27
  *
21
28
  * math.filter(x, test)
@@ -16,6 +16,13 @@ const createForEach = exports.createForEach = /* #__PURE__ */(0, _factory.factor
16
16
  /**
17
17
  * Iterate over all elements of a matrix/array, and executes the given callback function.
18
18
  *
19
+ * The callback is invoked with three arguments: the current value,
20
+ * the current index, and the matrix operated upon.
21
+ * Note that because the matrix/array might be
22
+ * multidimensional, the "index" argument is always an array of numbers giving
23
+ * the index in each dimension. This is true even for vectors: the "index"
24
+ * argument is an array of length 1, rather than simply a number.
25
+ *
19
26
  * Syntax:
20
27
  *
21
28
  * math.forEach(x, callback)
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 13.2.1
10
- * @date 2024-11-06
9
+ * @version 13.2.3
10
+ * @date 2024-11-20
11
11
  *
12
12
  * @license
13
13
  * Copyright (C) 2013-2024 Jos de Jong <wjosdejong@gmail.com>
@@ -56,6 +56,10 @@ function clone(x) {
56
56
  if ((0, _is.isObject)(x)) {
57
57
  return mapObject(x, clone);
58
58
  }
59
+ if (type === 'function') {
60
+ // we assume that the function is immutable
61
+ return x;
62
+ }
59
63
  throw new TypeError(`Cannot clone: unknown type of value (value: ${x})`);
60
64
  }
61
65
 
@@ -4,6 +4,6 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.version = void 0;
7
- const version = exports.version = '13.2.1';
7
+ const version = exports.version = '13.2.3';
8
8
  // Note: This file is automatically generated when building math.js.
9
9
  // Changes made in this file will be overwritten.
@@ -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());
@@ -10,6 +10,13 @@ export var createFilter = /* #__PURE__ */factory(name, dependencies, _ref => {
10
10
  /**
11
11
  * Filter the items in an array or one dimensional matrix.
12
12
  *
13
+ * The callback is invoked with three arguments: the current value,
14
+ * the current index, and the matrix operated upon.
15
+ * Note that because the matrix/array might be
16
+ * multidimensional, the "index" argument is always an array of numbers giving
17
+ * the index in each dimension. This is true even for vectors: the "index"
18
+ * argument is an array of length 1, rather than simply a number.
19
+ *
13
20
  * Syntax:
14
21
  *
15
22
  * math.filter(x, test)
@@ -10,6 +10,13 @@ export var createForEach = /* #__PURE__ */factory(name, dependencies, _ref => {
10
10
  /**
11
11
  * Iterate over all elements of a matrix/array, and executes the given callback function.
12
12
  *
13
+ * The callback is invoked with three arguments: the current value,
14
+ * the current index, and the matrix operated upon.
15
+ * Note that because the matrix/array might be
16
+ * multidimensional, the "index" argument is always an array of numbers giving
17
+ * the index in each dimension. This is true even for vectors: the "index"
18
+ * argument is an array of length 1, rather than simply a number.
19
+ *
13
20
  * Syntax:
14
21
  *
15
22
  * math.forEach(x, callback)
@@ -37,6 +37,10 @@ export function clone(x) {
37
37
  if (isObject(x)) {
38
38
  return mapObject(x, clone);
39
39
  }
40
+ if (type === 'function') {
41
+ // we assume that the function is immutable
42
+ return x;
43
+ }
40
44
  throw new TypeError("Cannot clone: unknown type of value (value: ".concat(x, ")"));
41
45
  }
42
46
 
@@ -1,3 +1,3 @@
1
- export var version = '13.2.1';
1
+ export var version = '13.2.3';
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.1",
3
+ "version": "13.2.3",
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",
@@ -69,7 +69,7 @@
69
69
  "gulp": "5.0.0",
70
70
  "gulp-babel": "8.0.0",
71
71
  "handlebars": "4.7.8",
72
- "jsep": "1.3.9",
72
+ "jsep": "1.4.0",
73
73
  "karma": "6.4.4",
74
74
  "karma-browserstack-launcher": "1.6.0",
75
75
  "karma-firefox-launcher": "2.1.3",
package/types/index.d.ts CHANGED
@@ -1940,8 +1940,7 @@ export interface MathJsInstance extends MathJsFactory {
1940
1940
  | ((
1941
1941
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
1942
1942
  value: any,
1943
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
1944
- index: any,
1943
+ index: number[],
1945
1944
  matrix: MathCollection | string[]
1946
1945
  ) => boolean)
1947
1946
  | RegExp
@@ -1965,7 +1964,7 @@ export interface MathJsInstance extends MathJsFactory {
1965
1964
  forEach<T extends MathCollection>(
1966
1965
  x: T,
1967
1966
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
1968
- callback: (value: any, index: any, matrix: T) => void
1967
+ callback: (value: any, index: number[], matrix: T) => void
1969
1968
  ): void
1970
1969
 
1971
1970
  /**
@@ -5714,8 +5713,7 @@ export interface MathJsChain<TValue> {
5714
5713
  | ((
5715
5714
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
5716
5715
  value: any,
5717
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
5718
- index: any,
5716
+ index: number[],
5719
5717
  matrix: MathCollection | string[]
5720
5718
  ) => boolean)
5721
5719
  | RegExp
@@ -5734,7 +5732,7 @@ export interface MathJsChain<TValue> {
5734
5732
  forEach<T extends MathCollection>(
5735
5733
  this: MathJsChain<T>,
5736
5734
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
5737
- callback: (value: any, index: any, matrix: T) => void
5735
+ callback: (value: any, index: number[], matrix: T) => void
5738
5736
  ): void
5739
5737
 
5740
5738
  /**
@@ -5764,7 +5762,7 @@ export interface MathJsChain<TValue> {
5764
5762
  map<T extends MathCollection>(
5765
5763
  this: MathJsChain<T>,
5766
5764
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
5767
- callback: (value: any, index: any, matrix: T) => MathType | string
5765
+ callback: (value: any, index: number[], matrix: T) => MathType | string
5768
5766
  ): MathJsChain<T>
5769
5767
 
5770
5768
  /**