mathjs 9.4.5 → 10.0.0
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 +35 -0
- package/bin/cli.js +0 -0
- package/docs/expressions/syntax.md +46 -43
- package/docs/reference/functions/format.md +5 -2
- package/docs/reference/functions/parser.md +4 -4
- package/docs/reference/functions/setCartesian.md +3 -1
- package/lib/browser/math.js +5 -5
- package/lib/browser/math.js.map +1 -1
- package/lib/cjs/constants.js +1 -1
- package/lib/cjs/core/function/config.js +1 -1
- package/lib/cjs/core/function/import.js +2 -1
- package/lib/cjs/entry/dependenciesAny/dependenciesParserClass.generated.js +2 -2
- package/lib/cjs/entry/dependenciesAny.generated.js +999 -999
- package/lib/cjs/entry/dependenciesNumber/dependenciesParserClass.generated.js +2 -2
- package/lib/cjs/entry/dependenciesNumber.generated.js +581 -581
- package/lib/cjs/entry/impureFunctionsAny.generated.js +314 -313
- package/lib/cjs/entry/impureFunctionsNumber.generated.js +223 -222
- package/lib/cjs/entry/mainAny.js +8 -8
- package/lib/cjs/entry/mainNumber.js +8 -8
- package/lib/cjs/entry/pureFunctionsAny.generated.js +1100 -1100
- package/lib/cjs/entry/pureFunctionsNumber.generated.js +375 -375
- package/lib/cjs/entry/typeChecks.js +12 -12
- package/lib/cjs/expression/Parser.js +6 -5
- package/lib/cjs/expression/embeddedDocs/function/set/setCartesian.js +1 -1
- package/lib/cjs/expression/function/parser.js +4 -4
- package/lib/cjs/expression/node/OperatorNode.js +9 -6
- package/lib/cjs/expression/operators.js +1 -1
- package/lib/cjs/expression/parse.js +42 -6
- package/lib/cjs/factoriesAny.js +660 -660
- package/lib/cjs/factoriesNumber.js +268 -237
- package/lib/cjs/function/set/setCartesian.js +3 -1
- package/lib/cjs/function/string/format.js +5 -2
- package/lib/cjs/header.js +2 -2
- package/lib/cjs/plain/bignumber/arithmetic.js +2 -2
- package/lib/cjs/plain/number/arithmetic.js +10 -10
- package/lib/cjs/plain/number/constants.js +1 -1
- package/lib/cjs/plain/number/logical.js +1 -1
- package/lib/cjs/plain/number/probability.js +2 -1
- package/lib/cjs/plain/number/trigonometry.js +1 -1
- package/lib/cjs/plain/number/utils.js +1 -1
- package/lib/cjs/type/unit/physicalConstants.js +1 -1
- package/lib/cjs/utils/array.js +14 -14
- package/lib/cjs/utils/bignumber/bitwise.js +1 -1
- package/lib/cjs/utils/customs.js +5 -5
- package/lib/cjs/utils/factory.js +3 -3
- package/lib/cjs/utils/function.js +1 -1
- package/lib/cjs/utils/is.js +23 -23
- package/lib/cjs/utils/latex.js +2 -1
- package/lib/cjs/utils/map.js +3 -3
- package/lib/cjs/utils/noop.js +1 -1
- package/lib/cjs/utils/number.js +10 -6
- package/lib/cjs/utils/object.js +8 -8
- package/lib/cjs/utils/snapshot.js +1 -1
- package/lib/cjs/utils/string.js +2 -2
- package/lib/cjs/version.js +1 -1
- package/lib/esm/core/function/import.js +2 -1
- package/lib/esm/entry/dependenciesAny/dependenciesParserClass.generated.js +2 -2
- package/lib/esm/entry/dependenciesAny.generated.js +270 -270
- package/lib/esm/entry/dependenciesNumber/dependenciesParserClass.generated.js +2 -2
- package/lib/esm/entry/dependenciesNumber.generated.js +163 -163
- package/lib/esm/entry/impureFunctionsAny.generated.js +301 -301
- package/lib/esm/entry/impureFunctionsNumber.generated.js +211 -211
- package/lib/esm/entry/pureFunctionsAny.generated.js +816 -816
- package/lib/esm/entry/pureFunctionsNumber.generated.js +234 -234
- package/lib/esm/expression/Parser.js +6 -5
- package/lib/esm/expression/embeddedDocs/function/set/setCartesian.js +1 -1
- package/lib/esm/expression/function/parser.js +4 -4
- package/lib/esm/expression/node/OperatorNode.js +9 -6
- package/lib/esm/expression/parse.js +42 -6
- package/lib/esm/function/set/setCartesian.js +3 -1
- package/lib/esm/function/string/format.js +5 -2
- package/lib/esm/version.js +1 -1
- package/package.json +16 -16
- package/types/index.d.ts +281 -77
| @@ -1,10 +1,10 @@ | |
| 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 = [' | 
| 4 | 
            +
            var dependencies = ['evaluate'];
         | 
| 5 5 | 
             
            export var createParserClass = /* #__PURE__ */factory(name, dependencies, _ref => {
         | 
| 6 6 | 
             
              var {
         | 
| 7 | 
            -
                 | 
| 7 | 
            +
                evaluate
         | 
| 8 8 | 
             
              } = _ref;
         | 
| 9 9 |  | 
| 10 10 | 
             
              /**
         | 
| @@ -37,7 +37,7 @@ export var createParserClass = /* #__PURE__ */factory(name, dependencies, _ref = | |
| 37 37 | 
             
               *    // define variables and functions
         | 
| 38 38 | 
             
               *    parser.evaluate('x = 7 / 2')              // 3.5
         | 
| 39 39 | 
             
               *    parser.evaluate('x + 3')                  // 6.5
         | 
| 40 | 
            -
               *    parser.evaluate(' | 
| 40 | 
            +
               *    parser.evaluate('f(x, y) = x^y')          // f(x, y)
         | 
| 41 41 | 
             
               *    parser.evaluate('f(2, 3)')                // 8
         | 
| 42 42 | 
             
               *
         | 
| 43 43 | 
             
               *    // get and set variables and functions
         | 
| @@ -74,14 +74,15 @@ export var createParserClass = /* #__PURE__ */factory(name, dependencies, _ref = | |
| 74 74 | 
             
              Parser.prototype.isParser = true;
         | 
| 75 75 | 
             
              /**
         | 
| 76 76 | 
             
               * Parse and evaluate the given expression
         | 
| 77 | 
            -
               * @param {string} expr   A string containing an expression, | 
| 77 | 
            +
               * @param {string | string[]} expr   A string containing an expression,
         | 
| 78 | 
            +
               *                                   for example "2+3", or a list with expressions
         | 
| 78 79 | 
             
               * @return {*} result     The result, or undefined when the expression was empty
         | 
| 79 80 | 
             
               * @throws {Error}
         | 
| 80 81 | 
             
               */
         | 
| 81 82 |  | 
| 82 83 | 
             
              Parser.prototype.evaluate = function (expr) {
         | 
| 83 84 | 
             
                // TODO: validate arguments
         | 
| 84 | 
            -
                return  | 
| 85 | 
            +
                return evaluate(expr, this.scope);
         | 
| 85 86 | 
             
              };
         | 
| 86 87 | 
             
              /**
         | 
| 87 88 | 
             
               * Get a variable (a function or variable) by name from the parsers scope.
         | 
| @@ -2,7 +2,7 @@ export var setCartesianDocs = { | |
| 2 2 | 
             
              name: 'setCartesian',
         | 
| 3 3 | 
             
              category: 'Set',
         | 
| 4 4 | 
             
              syntax: ['setCartesian(set1, set2)'],
         | 
| 5 | 
            -
              description: 'Create the cartesian product of two (multi)sets. Multi-dimension arrays will be converted to single-dimension arrays before the operation.',
         | 
| 5 | 
            +
              description: 'Create the cartesian product of two (multi)sets. Multi-dimension arrays will be converted to single-dimension arrays and the values will be sorted in ascending order before the operation.',
         | 
| 6 6 | 
             
              examples: ['setCartesian([1, 2], [3, 4])'],
         | 
| 7 7 | 
             
              seealso: ['setUnion', 'setIntersect', 'setDifference', 'setPowerset']
         | 
| 8 8 | 
             
            };
         | 
| @@ -25,10 +25,10 @@ export var createParser = /* #__PURE__ */factory(name, dependencies, _ref => { | |
| 25 25 | 
             
               *     const d = parser.evaluate('cos(45 deg)')     // 0.7071067811865476
         | 
| 26 26 | 
             
               *
         | 
| 27 27 | 
             
               *     // define variables and functions
         | 
| 28 | 
            -
               *     parser.evaluate('x = 7 / 2') | 
| 29 | 
            -
               *     parser.evaluate('x + 3') | 
| 30 | 
            -
               *     parser.evaluate(' | 
| 31 | 
            -
               *     parser.evaluate('f(2, 3)') | 
| 28 | 
            +
               *     parser.evaluate('x = 7 / 2')             // 3.5
         | 
| 29 | 
            +
               *     parser.evaluate('x + 3')                 // 6.5
         | 
| 30 | 
            +
               *     parser.evaluate('f(x, y) = x^y')         // f(x, y)
         | 
| 31 | 
            +
               *     parser.evaluate('f(2, 3)')               // 8
         | 
| 32 32 | 
             
               *
         | 
| 33 33 | 
             
               *     // get and set variables and functions
         | 
| 34 34 | 
             
               *     const x = parser.get('x')                // 7
         | 
| @@ -21,8 +21,9 @@ export var createOperatorNode = /* #__PURE__ */factory(name, dependencies, _ref | |
| 21 21 | 
             
               * @param {string} fn           Function name, for example 'add'
         | 
| 22 22 | 
             
               * @param {Node[]} args         Operator arguments
         | 
| 23 23 | 
             
               * @param {boolean} [implicit]  Is this an implicit multiplication?
         | 
| 24 | 
            +
               * @param {boolean} [isPercentage] Is this an percentage Operation?
         | 
| 24 25 | 
             
               */
         | 
| 25 | 
            -
              function OperatorNode(op, fn, args, implicit) {
         | 
| 26 | 
            +
              function OperatorNode(op, fn, args, implicit, isPercentage) {
         | 
| 26 27 | 
             
                if (!(this instanceof OperatorNode)) {
         | 
| 27 28 | 
             
                  throw new SyntaxError('Constructor must be called with the new operator');
         | 
| 28 29 | 
             
                } // validate input
         | 
| @@ -41,6 +42,7 @@ export var createOperatorNode = /* #__PURE__ */factory(name, dependencies, _ref | |
| 41 42 | 
             
                }
         | 
| 42 43 |  | 
| 43 44 | 
             
                this.implicit = implicit === true;
         | 
| 45 | 
            +
                this.isPercentage = isPercentage === true;
         | 
| 44 46 | 
             
                this.op = op;
         | 
| 45 47 | 
             
                this.fn = fn;
         | 
| 46 48 | 
             
                this.args = args || [];
         | 
| @@ -123,7 +125,7 @@ export var createOperatorNode = /* #__PURE__ */factory(name, dependencies, _ref | |
| 123 125 | 
             
                  args[i] = this._ifNode(callback(this.args[i], 'args[' + i + ']', this));
         | 
| 124 126 | 
             
                }
         | 
| 125 127 |  | 
| 126 | 
            -
                return new OperatorNode(this.op, this.fn, args, this.implicit);
         | 
| 128 | 
            +
                return new OperatorNode(this.op, this.fn, args, this.implicit, this.isPercentage);
         | 
| 127 129 | 
             
              };
         | 
| 128 130 | 
             
              /**
         | 
| 129 131 | 
             
               * Create a clone of this node, a shallow copy
         | 
| @@ -132,7 +134,7 @@ export var createOperatorNode = /* #__PURE__ */factory(name, dependencies, _ref | |
| 132 134 |  | 
| 133 135 |  | 
| 134 136 | 
             
              OperatorNode.prototype.clone = function () {
         | 
| 135 | 
            -
                return new OperatorNode(this.op, this.fn, this.args.slice(0), this.implicit);
         | 
| 137 | 
            +
                return new OperatorNode(this.op, this.fn, this.args.slice(0), this.implicit, this.isPercentage);
         | 
| 136 138 | 
             
              };
         | 
| 137 139 | 
             
              /**
         | 
| 138 140 | 
             
               * Check whether this is an unary OperatorNode:
         | 
| @@ -466,20 +468,21 @@ export var createOperatorNode = /* #__PURE__ */factory(name, dependencies, _ref | |
| 466 468 | 
             
                  op: this.op,
         | 
| 467 469 | 
             
                  fn: this.fn,
         | 
| 468 470 | 
             
                  args: this.args,
         | 
| 469 | 
            -
                  implicit: this.implicit
         | 
| 471 | 
            +
                  implicit: this.implicit,
         | 
| 472 | 
            +
                  isPercentage: this.isPercentage
         | 
| 470 473 | 
             
                };
         | 
| 471 474 | 
             
              };
         | 
| 472 475 | 
             
              /**
         | 
| 473 476 | 
             
               * Instantiate an OperatorNode from its JSON representation
         | 
| 474 477 | 
             
               * @param {Object} json  An object structured like
         | 
| 475 | 
            -
               *                       `{"mathjs": "OperatorNode", "op": "+", "fn": "add", "args": [...], "implicit": false}`,
         | 
| 478 | 
            +
               *                       `{"mathjs": "OperatorNode", "op": "+", "fn": "add", "args": [...], "implicit": false, "isPercentage":false}`,
         | 
| 476 479 | 
             
               *                       where mathjs is optional
         | 
| 477 480 | 
             
               * @returns {OperatorNode}
         | 
| 478 481 | 
             
               */
         | 
| 479 482 |  | 
| 480 483 |  | 
| 481 484 | 
             
              OperatorNode.fromJSON = function (json) {
         | 
| 482 | 
            -
                return new OperatorNode(json.op, json.fn, json.args, json.implicit);
         | 
| 485 | 
            +
                return new OperatorNode(json.op, json.fn, json.args, json.implicit, json.isPercentage);
         | 
| 483 486 | 
             
              };
         | 
| 484 487 | 
             
              /**
         | 
| 485 488 | 
             
               * Get HTML representation.
         | 
| @@ -1006,7 +1006,14 @@ export var createParse = /* #__PURE__ */factory(name, dependencies, _ref => { | |
| 1006 1006 | 
             
                  name = state.token;
         | 
| 1007 1007 | 
             
                  fn = operators[name];
         | 
| 1008 1008 | 
             
                  getTokenSkipNewline(state);
         | 
| 1009 | 
            -
                   | 
| 1009 | 
            +
                  var rightNode = parseMultiplyDivide(state);
         | 
| 1010 | 
            +
             | 
| 1011 | 
            +
                  if (rightNode.isPercentage) {
         | 
| 1012 | 
            +
                    params = [node, new OperatorNode('*', 'multiply', [node, rightNode])];
         | 
| 1013 | 
            +
                  } else {
         | 
| 1014 | 
            +
                    params = [node, rightNode];
         | 
| 1015 | 
            +
                  }
         | 
| 1016 | 
            +
             | 
| 1010 1017 | 
             
                  node = new OperatorNode(name, fn, params);
         | 
| 1011 1018 | 
             
                }
         | 
| 1012 1019 |  | 
| @@ -1027,9 +1034,7 @@ export var createParse = /* #__PURE__ */factory(name, dependencies, _ref => { | |
| 1027 1034 | 
             
                  '*': 'multiply',
         | 
| 1028 1035 | 
             
                  '.*': 'dotMultiply',
         | 
| 1029 1036 | 
             
                  '/': 'divide',
         | 
| 1030 | 
            -
                  './': 'dotDivide' | 
| 1031 | 
            -
                  '%': 'mod',
         | 
| 1032 | 
            -
                  mod: 'mod'
         | 
| 1037 | 
            +
                  './': 'dotDivide'
         | 
| 1033 1038 | 
             
                };
         | 
| 1034 1039 |  | 
| 1035 1040 | 
             
                while (true) {
         | 
| @@ -1087,7 +1092,7 @@ export var createParse = /* #__PURE__ */factory(name, dependencies, _ref => { | |
| 1087 1092 |  | 
| 1088 1093 |  | 
| 1089 1094 | 
             
              function parseRule2(state) {
         | 
| 1090 | 
            -
                var node =  | 
| 1095 | 
            +
                var node = parsePercentage(state);
         | 
| 1091 1096 | 
             
                var last = node;
         | 
| 1092 1097 | 
             
                var tokenStates = [];
         | 
| 1093 1098 |  | 
| @@ -1109,7 +1114,7 @@ export var createParse = /* #__PURE__ */factory(name, dependencies, _ref => { | |
| 1109 1114 | 
             
                        _extends(state, tokenStates.pop());
         | 
| 1110 1115 |  | 
| 1111 1116 | 
             
                        tokenStates.pop();
         | 
| 1112 | 
            -
                        last =  | 
| 1117 | 
            +
                        last = parsePercentage(state);
         | 
| 1113 1118 | 
             
                        node = new OperatorNode('/', 'divide', [node, last]);
         | 
| 1114 1119 | 
             
                      } else {
         | 
| 1115 1120 | 
             
                        // Not a match, so rewind
         | 
| @@ -1132,6 +1137,37 @@ export var createParse = /* #__PURE__ */factory(name, dependencies, _ref => { | |
| 1132 1137 |  | 
| 1133 1138 | 
             
                return node;
         | 
| 1134 1139 | 
             
              }
         | 
| 1140 | 
            +
              /**
         | 
| 1141 | 
            +
               * percentage or mod
         | 
| 1142 | 
            +
               * @return {Node} node
         | 
| 1143 | 
            +
               * @private
         | 
| 1144 | 
            +
               */
         | 
| 1145 | 
            +
             | 
| 1146 | 
            +
             | 
| 1147 | 
            +
              function parsePercentage(state) {
         | 
| 1148 | 
            +
                var node, name, fn, params;
         | 
| 1149 | 
            +
                node = parseUnary(state);
         | 
| 1150 | 
            +
                var operators = {
         | 
| 1151 | 
            +
                  '%': 'mod',
         | 
| 1152 | 
            +
                  mod: 'mod'
         | 
| 1153 | 
            +
                };
         | 
| 1154 | 
            +
             | 
| 1155 | 
            +
                while (hasOwnProperty(operators, state.token)) {
         | 
| 1156 | 
            +
                  name = state.token;
         | 
| 1157 | 
            +
                  fn = operators[name];
         | 
| 1158 | 
            +
                  getTokenSkipNewline(state);
         | 
| 1159 | 
            +
             | 
| 1160 | 
            +
                  if (name === '%' && state.tokenType === TOKENTYPE.DELIMITER && state.token !== '(') {
         | 
| 1161 | 
            +
                    // If the expression contains only %, then treat that as /100
         | 
| 1162 | 
            +
                    node = new OperatorNode('/', 'divide', [node, new ConstantNode(100)], false, true);
         | 
| 1163 | 
            +
                  } else {
         | 
| 1164 | 
            +
                    params = [node, parseUnary(state)];
         | 
| 1165 | 
            +
                    node = new OperatorNode(name, fn, params);
         | 
| 1166 | 
            +
                  }
         | 
| 1167 | 
            +
                }
         | 
| 1168 | 
            +
             | 
| 1169 | 
            +
                return node;
         | 
| 1170 | 
            +
              }
         | 
| 1135 1171 | 
             
              /**
         | 
| 1136 1172 | 
             
               * Unary plus and minus, and logical and bitwise not
         | 
| 1137 1173 | 
             
               * @return {Node} node
         | 
| @@ -14,7 +14,8 @@ export var createSetCartesian = /* #__PURE__ */factory(name, dependencies, _ref | |
| 14 14 |  | 
| 15 15 | 
             
              /**
         | 
| 16 16 | 
             
               * Create the cartesian product of two (multi)sets.
         | 
| 17 | 
            -
               * Multi-dimension arrays will be converted to single-dimension arrays | 
| 17 | 
            +
               * Multi-dimension arrays will be converted to single-dimension arrays
         | 
| 18 | 
            +
               * and the values will be sorted in ascending order before the operation.
         | 
| 18 19 | 
             
               *
         | 
| 19 20 | 
             
               * Syntax:
         | 
| 20 21 | 
             
               *
         | 
| @@ -23,6 +24,7 @@ export var createSetCartesian = /* #__PURE__ */factory(name, dependencies, _ref | |
| 23 24 | 
             
               * Examples:
         | 
| 24 25 | 
             
               *
         | 
| 25 26 | 
             
               *    math.setCartesian([1, 2], [3, 4])        // returns [[1, 3], [1, 4], [2, 3], [2, 4]]
         | 
| 27 | 
            +
               *    math.setCartesian([4, 3], [2, 1])        // returns [[3, 1], [3, 2], [4, 1], [4, 2]]
         | 
| 26 28 | 
             
               *
         | 
| 27 29 | 
             
               * See also:
         | 
| 28 30 | 
             
               *
         | 
| @@ -52,8 +52,11 @@ export var createFormat = /* #__PURE__ */factory(name, dependencies, _ref => { | |
| 52 52 | 
             
               *      For example format(-1, {notation: 'hex', wordSize: 8}) === '0xffi8'.
         | 
| 53 53 | 
             
               *      Default value is undefined.
         | 
| 54 54 | 
             
               *    - `precision: number`
         | 
| 55 | 
            -
               *       | 
| 56 | 
            -
               *       | 
| 55 | 
            +
               *      Limit the number of digits of the formatted value.
         | 
| 56 | 
            +
               *      For regular numbers, must be a number between 0 and 16.
         | 
| 57 | 
            +
               *      For bignumbers, the maximum depends on the configured precision,
         | 
| 58 | 
            +
               *      see function `config()`.
         | 
| 59 | 
            +
               *      In case of notations 'exponential', 'engineering', and 'auto', `precision`
         | 
| 57 60 | 
             
               *      defines the total number of significant digits returned.
         | 
| 58 61 | 
             
               *      In case of notation 'fixed', `precision` defines the number of
         | 
| 59 62 | 
             
               *      significant digits after the decimal point.
         | 
    
        package/lib/esm/version.js
    CHANGED
    
    | @@ -1,2 +1,2 @@ | |
| 1 | 
            -
            export var version = ' | 
| 1 | 
            +
            export var version = '10.0.0'; // Note: This file is automatically generated when building math.js.
         | 
| 2 2 | 
             
            // Changes made in this file will be overwritten.
         | 
    
        package/package.json
    CHANGED
    
    | @@ -1,6 +1,6 @@ | |
| 1 1 | 
             
            {
         | 
| 2 2 | 
             
              "name": "mathjs",
         | 
| 3 | 
            -
              "version": " | 
| 3 | 
            +
              "version": "10.0.0",
         | 
| 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,7 +25,7 @@ | |
| 25 25 | 
             
                "unit"
         | 
| 26 26 | 
             
              ],
         | 
| 27 27 | 
             
              "dependencies": {
         | 
| 28 | 
            -
                "@babel/runtime": "^7. | 
| 28 | 
            +
                "@babel/runtime": "^7.16.0",
         | 
| 29 29 | 
             
                "complex.js": "^2.0.15",
         | 
| 30 30 | 
             
                "decimal.js": "^10.3.1",
         | 
| 31 31 | 
             
                "escape-latex": "^1.2.0",
         | 
| @@ -36,28 +36,28 @@ | |
| 36 36 | 
             
                "typed-function": "^2.0.0"
         | 
| 37 37 | 
             
              },
         | 
| 38 38 | 
             
              "devDependencies": {
         | 
| 39 | 
            -
                "@babel/core": "7. | 
| 40 | 
            -
                "@babel/plugin-transform-object-assign": "7. | 
| 41 | 
            -
                "@babel/plugin-transform-runtime": "7. | 
| 42 | 
            -
                "@babel/preset-env": "7. | 
| 43 | 
            -
                "@babel/register": "7. | 
| 44 | 
            -
                "babel-loader": "8.2. | 
| 39 | 
            +
                "@babel/core": "7.16.0",
         | 
| 40 | 
            +
                "@babel/plugin-transform-object-assign": "7.16.0",
         | 
| 41 | 
            +
                "@babel/plugin-transform-runtime": "7.16.0",
         | 
| 42 | 
            +
                "@babel/preset-env": "7.16.0",
         | 
| 43 | 
            +
                "@babel/register": "7.16.0",
         | 
| 44 | 
            +
                "babel-loader": "8.2.3",
         | 
| 45 45 | 
             
                "benchmark": "2.1.4",
         | 
| 46 46 | 
             
                "codecov": "3.8.3",
         | 
| 47 | 
            -
                "core-js": "3. | 
| 47 | 
            +
                "core-js": "3.19.1",
         | 
| 48 48 | 
             
                "del": "6.0.0",
         | 
| 49 | 
            -
                "dtslint": "4. | 
| 49 | 
            +
                "dtslint": "4.2.0",
         | 
| 50 50 | 
             
                "expr-eval": "2.0.2",
         | 
| 51 51 | 
             
                "fancy-log": "1.3.3",
         | 
| 52 | 
            -
                "glob": "7. | 
| 52 | 
            +
                "glob": "7.2.0",
         | 
| 53 53 | 
             
                "gulp": "4.0.2",
         | 
| 54 54 | 
             
                "gulp-babel": "8.0.0",
         | 
| 55 55 | 
             
                "handlebars": "4.7.7",
         | 
| 56 56 | 
             
                "istanbul": "0.4.5",
         | 
| 57 | 
            -
                "jsep": "1.0 | 
| 58 | 
            -
                "karma": "6.3. | 
| 57 | 
            +
                "jsep": "1.2.0",
         | 
| 58 | 
            +
                "karma": "6.3.7",
         | 
| 59 59 | 
             
                "karma-browserstack-launcher": "1.6.0",
         | 
| 60 | 
            -
                "karma-firefox-launcher": "2.1. | 
| 60 | 
            +
                "karma-firefox-launcher": "2.1.2",
         | 
| 61 61 | 
             
                "karma-mocha": "2.0.1",
         | 
| 62 62 | 
             
                "karma-mocha-reporter": "2.2.5",
         | 
| 63 63 | 
             
                "karma-webpack": "4.0.2",
         | 
| @@ -72,9 +72,9 @@ | |
| 72 72 | 
             
                "numericjs": "1.2.6",
         | 
| 73 73 | 
             
                "nyc": "15.1.0",
         | 
| 74 74 | 
             
                "pad-right": "0.2.2",
         | 
| 75 | 
            -
                "standard": "16.0. | 
| 75 | 
            +
                "standard": "16.0.4",
         | 
| 76 76 | 
             
                "sylvester": "0.0.21",
         | 
| 77 | 
            -
                "typescript": "4.4. | 
| 77 | 
            +
                "typescript": "4.4.4",
         | 
| 78 78 | 
             
                "webpack": "4.46.0",
         | 
| 79 79 | 
             
                "zeros": "1.0.0"
         | 
| 80 80 | 
             
              },
         |