diff --git a/.eslintrc.cjs b/.eslintrc.cjs index 2131022afe..fb66ab5c16 100644 --- a/.eslintrc.cjs +++ b/.eslintrc.cjs @@ -2,7 +2,8 @@ module.exports = { env: { browser: true, es2021: true, - node: true + node: true, + mocha: true }, extends: ['eslint:recommended'], parserOptions: { diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index ada97edb25..c58d04c216 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -13,7 +13,7 @@ jobs: strategy: matrix: - node-version: [18.x, 20.x] + node-version: [18.x, 20.x, 22.x] steps: - uses: actions/checkout@v4 diff --git a/examples/advanced/convert_fraction_to_bignumber.js b/examples/advanced/convert_fraction_to_bignumber.js index d3903cde1d..c9f124a5e7 100644 --- a/examples/advanced/convert_fraction_to_bignumber.js +++ b/examples/advanced/convert_fraction_to_bignumber.js @@ -13,7 +13,7 @@ // Create an empty math.js instance, with only typed // (every instance contains `import` and `config` also out of the box) -const { create, typedDependencies, all } = require('../..') +import { create, typedDependencies, all } from '../../lib/esm/index.js' const math = create({ typedDependencies }) @@ -30,7 +30,7 @@ math.config({ number: 'Fraction' }) // this conversion: // - must be inserted in the conversions list before the conversion Fraction -> number // - must be added to the conversions before loading functions into math.js -math.typed.conversions.unshift({ +math.typed.addConversion({ from: 'Fraction', to: 'BigNumber', convert: function (fraction) { diff --git a/examples/advanced/custom_argument_parsing.js b/examples/advanced/custom_argument_parsing.js index 19198b8df3..27d7492018 100644 --- a/examples/advanced/custom_argument_parsing.js +++ b/examples/advanced/custom_argument_parsing.js @@ -7,7 +7,7 @@ * will be invoked with unevaluated arguments, allowing the function * to process the arguments in a customized way. */ -const { create, all } = require('../..') +import { create, all } from '../../lib/esm/index.js' const math = create(all) /** diff --git a/examples/advanced/custom_datatype.js b/examples/advanced/custom_datatype.js index ea83d3beaf..52bd2bc6c6 100644 --- a/examples/advanced/custom_datatype.js +++ b/examples/advanced/custom_datatype.js @@ -1,7 +1,8 @@ // This example demonstrates importing a custom data type, // and extending an existing function (add) with support for this data type. -const { create, factory, all } = require('../..') +import { all, create, factory } from '../../lib/esm/index.js' + const math = create(all) // factory function which defines a new data type CustomValue diff --git a/examples/advanced/custom_evaluate_using_factories.js b/examples/advanced/custom_evaluate_using_factories.js index 0d423658fc..a96ea40e37 100644 --- a/examples/advanced/custom_evaluate_using_factories.js +++ b/examples/advanced/custom_evaluate_using_factories.js @@ -1,7 +1,7 @@ // we use the number only implementation in order to not pull in // the `Unit` class for example. when using as library, -// use require('mathjs/number') -const { create, evaluateDependencies, factory } = require('../../lib/cjs/number.js') +// use import 'mathjs/number' +import { create, evaluateDependencies, factory } from '../../lib/esm/number.js' // custom implementations of all functions you want to support const add = (a, b) => a + b diff --git a/examples/advanced/custom_evaluate_using_import.js b/examples/advanced/custom_evaluate_using_import.js index 34e5583b25..6e7d976ce4 100644 --- a/examples/advanced/custom_evaluate_using_import.js +++ b/examples/advanced/custom_evaluate_using_import.js @@ -1,7 +1,7 @@ // we use the number only implementation in order to not pull in // the `Unit` class for example. when using as library, // use require('mathjs/number') -const { create, evaluateDependencies } = require('../../lib/cjs/number.js') +import { create, evaluateDependencies } from '../../lib/esm/number.js' // custom implementations of all functions you want to support const add = (a, b) => a + b diff --git a/examples/advanced/custom_loading.mjs b/examples/advanced/custom_loading.js similarity index 95% rename from examples/advanced/custom_loading.mjs rename to examples/advanced/custom_loading.js index 9024dc215a..f522d0a83c 100644 --- a/examples/advanced/custom_loading.mjs +++ b/examples/advanced/custom_loading.js @@ -1,9 +1,9 @@ import { - create, - fractionDependencies, addDependencies, + create, divideDependencies, - formatDependencies + formatDependencies, + fractionDependencies } from '../../lib/esm/index.js' const config = { diff --git a/examples/advanced/custom_relational_functions.js b/examples/advanced/custom_relational_functions.js index fbcb2ab967..1558f381db 100644 --- a/examples/advanced/custom_relational_functions.js +++ b/examples/advanced/custom_relational_functions.js @@ -1,4 +1,4 @@ -const { create, all, factory } = require('../..') +import { all, create, factory } from '../../lib/esm/index.js' // First let's see what the default behavior is: // strings are compared by their numerical value diff --git a/examples/advanced/custom_scope_objects.js b/examples/advanced/custom_scope_objects.js index 2114d04491..5ca6cd18cc 100644 --- a/examples/advanced/custom_scope_objects.js +++ b/examples/advanced/custom_scope_objects.js @@ -1,4 +1,4 @@ -const { create, all } = require('../..') +import { all, create } from '../../lib/esm/index.js' const math = create(all) diff --git a/examples/advanced/expression_trees.js b/examples/advanced/expression_trees.js index eaa956bd57..47ee87a84e 100644 --- a/examples/advanced/expression_trees.js +++ b/examples/advanced/expression_trees.js @@ -1,4 +1,4 @@ -const { parse, ConstantNode } = require('../..') +import { parse, ConstantNode } from '../../lib/esm/index.js' // Filter an expression tree console.log('Filter all symbol nodes "x" in the expression "x^2 + x/4 + 3*y"') diff --git a/examples/advanced/function_transform.js b/examples/advanced/function_transform.js index ae212f2178..82432c7773 100644 --- a/examples/advanced/function_transform.js +++ b/examples/advanced/function_transform.js @@ -6,7 +6,7 @@ * *transform* for the function. A transform is a function wrapping around a * function to be transformed or completely replaces a function. */ -const { create, all } = require('../..') +import { all, create } from '../../lib/esm/index.js' const math = create(all) // create a function diff --git a/examples/advanced/more_secure_eval.js b/examples/advanced/more_secure_eval.js index 46329ba7c3..6d4534fd74 100644 --- a/examples/advanced/more_secure_eval.js +++ b/examples/advanced/more_secure_eval.js @@ -18,7 +18,7 @@ // functionality, these functions can be disabled, as demonstrated in this // example. -const { create, all } = require('../..') +import { all, create } from '../../lib/esm/index.js' const math = create(all) const limitedEvaluate = math.evaluate diff --git a/examples/advanced/use_bigint.js b/examples/advanced/use_bigint.js index 79780fad90..fe4f3a0c5e 100644 --- a/examples/advanced/use_bigint.js +++ b/examples/advanced/use_bigint.js @@ -2,8 +2,7 @@ // in mathjs. It's just a proof of concept, for full support you will // have to defined more functions and define conversions from and to // other data types. - -const { create, all, factory } = require('../..') +import { all, create, factory } from '../../lib/esm/index.js' const math = create(all) // we can also add conversions here from number or string to BigInt diff --git a/examples/algebra.js b/examples/algebra.js index 080c47d9ad..bd8b88ae87 100644 --- a/examples/algebra.js +++ b/examples/algebra.js @@ -3,9 +3,7 @@ // math.js has support for symbolic computation (CAS). It can parse // expressions in an expression tree and do algebraic operations like // simplification and derivation on this tree. - -// load math.js (using node.js) -const { simplify, parse, derivative } = require('..') +import { simplify, parse, derivative } from '../lib/esm/index.js' // simplify an expression console.log('simplify expressions') diff --git a/examples/basic_usage.js b/examples/basic_usage.js index 82af46df48..ae5b25d6ec 100644 --- a/examples/basic_usage.js +++ b/examples/basic_usage.js @@ -1,30 +1,45 @@ // basic usage - -// load math.js (using node.js) -const math = require('..') +import { + add, + atan2, + chain, + derivative, + e, + evaluate, + format, + log, + matrix, + multiply, + pi, + pow, + round, + sqrt, + subtract, + unit +} from '../lib/esm/index.js' // functions and constants console.log('functions and constants') -print(math.round(math.e, 3)) // 2.718 -print(math.atan2(3, -3) / math.pi) // 0.75 -print(math.log(10000, 10)) // 4 -print(math.sqrt(-4)) // 2i -print(math.pow([[-1, 2], [3, 1]], 2)) // [[7, 0], [0, 7]] -print(math.derivative('x^2 + x', 'x')) // 2 * x + 1 +print(round(e, 3)) // 2.718 +print(atan2(3, -3) / pi) // 0.75 +print(log(10000, 10)) // 4 +print(sqrt(-4)) // 2i +print(pow([[-1, 2], [3, 1]], 2)) // [[7, 0], [0, 7]] +print(derivative('x^2 + x', 'x')) // 2 * x + 1 console.log() // expressions console.log('expressions') -print(math.evaluate('1.2 * (2 + 4.5)')) // 7.8 -print(math.evaluate('12.7 cm to inch')) // 5 inch -print(math.evaluate('sin(45 deg) ^ 2')) // 0.5 -print(math.evaluate('9 / 3 + 2i')) // 3 + 2i -print(math.evaluate('det([-1, 2; 3, 1])')) // -7 +print(evaluate('1.2 * (2 + 4.5)')) // 7.8 +print(evaluate('12.7 cm to inch')) // 5 inch +print(evaluate('sin(45 deg) ^ 2')) // 0.5 +print(evaluate('9 / 3 + 2i')) // 3 + 2i +print(evaluate('det([-1, 2; 3, 1])')) // -7 console.log() // chained operations console.log('chained operations') -const a = math.chain(3) +const a = chain(3) .add(4) .multiply(2) .done() @@ -33,10 +48,10 @@ console.log() // mixed use of different data types in functions console.log('mixed use of data types') -print(math.add(4, [5, 6])) // number + Array, [9, 10] -print(math.multiply(math.unit('5 mm'), 3)) // Unit * number, 15 mm -print(math.subtract([2, 3, 4], 5)) // Array - number, [-3, -2, -1] -print(math.add(math.matrix([2, 3]), [4, 5])) // Matrix + Array, [6, 8] +print(add(4, [5, 6])) // number + Array, [9, 10] +print(multiply(unit('5 mm'), 3)) // Unit * number, 15 mm +print(subtract([2, 3, 4], 5)) // Array - number, [-3, -2, -1] +print(add(matrix([2, 3]), [4, 5])) // Matrix + Array, [6, 8] console.log() /** @@ -45,5 +60,5 @@ console.log() */ function print (value) { const precision = 14 - console.log(math.format(value, precision)) + console.log(format(value, precision)) } diff --git a/examples/bignumbers.js b/examples/bignumbers.js index bebc210fb3..29c882998d 100644 --- a/examples/bignumbers.js +++ b/examples/bignumbers.js @@ -1,8 +1,5 @@ -/* eslint-disable no-loss-of-precision */ - // BigNumbers - -const { create, all } = require('..') +import { create, all } from '../lib/esm/index.js' // configure the default type of numbers as BigNumbers const config = { diff --git a/examples/chaining.js b/examples/chaining.js index a46f9dd4e7..1ac60f9911 100644 --- a/examples/chaining.js +++ b/examples/chaining.js @@ -1,18 +1,16 @@ // chaining - -// load math.js (using node.js) -const math = require('..') +import { chain, format, index, pi } from '../lib/esm/index.js' // create a chained operation using the function `chain(value)` // end a chain using done(). Let's calculate (3 + 4) * 2 -const a = math.chain(3) +const a = chain(3) .add(4) .multiply(2) .done() print(a) // 14 // Another example, calculate square(sin(pi / 4)) -const b = math.chain(math.pi) +const b = chain(pi) .divide(4) .sin() .square() @@ -23,25 +21,25 @@ print(b) // 0.5 // these are demonstrated in the following examples // toString will return a string representation of the chain's value -const chain = math.chain(2).divide(3) -const str = chain.toString() +const myChain = chain(2).divide(3) +const str = myChain.toString() print(str) // "0.6666666666666666" // a chain has a function .valueOf(), which returns the value hold by the chain. // This allows using it in regular operations. The function valueOf() acts the // same as function done(). -print(chain.valueOf()) // 0.66666666666667 -print(chain + 2) // 2.6666666666667 +print(myChain.valueOf()) // 0.66666666666667 +print(myChain + 2) // 2.6666666666667 // the function subset can be used to get or replace sub matrices const array = [[1, 2], [3, 4]] -const v = math.chain(array) - .subset(math.index(1, 0)) +const v = chain(array) + .subset(index(1, 0)) .done() print(v) // 3 -const m = math.chain(array) - .subset(math.index(0, 0), 8) +const m = chain(array) + .subset(index(0, 0), 8) .multiply(3) .done() print(m) // [[24, 6], [9, 12]] @@ -52,5 +50,5 @@ print(m) // [[24, 6], [9, 12]] */ function print (value) { const precision = 14 - console.log(math.format(value, precision)) + console.log(format(value, precision)) } diff --git a/examples/complex_numbers.js b/examples/complex_numbers.js index 7480002308..8e4976161a 100644 --- a/examples/complex_numbers.js +++ b/examples/complex_numbers.js @@ -1,7 +1,5 @@ // complex numbers - -// load js (using node.js) -const { complex, add, multiply, sin, sqrt, pi, equal, sort, format } = require('..') +import { complex, add, multiply, sin, sqrt, pi, equal, sort, format } from '../lib/esm/index.js' // create a complex number with a numeric real and complex part console.log('create and manipulate complex numbers') diff --git a/examples/expressions.js b/examples/expressions.js index 2f8500b3d5..0d2b955723 100644 --- a/examples/expressions.js +++ b/examples/expressions.js @@ -1,16 +1,14 @@ /** * Expressions can be evaluated in various ways: * - * 1. using the function math.evaluate - * 2. using the function math.parse + * 1. using the function evaluate + * 2. using the function parse * 3. using a parser. A parser contains functions evaluate and parse, * and keeps a scope with assigned variables in memory */ +import { compile, evaluate, format, parse, parser } from '../lib/esm/index.js' -// load math.js (using node.js) -const math = require('..') - -// 1. using the function math.evaluate +// 1. using the function evaluate // // Function `evaluate` accepts a single expression or an array with // expressions as first argument, and has an optional second argument @@ -21,14 +19,14 @@ console.log('1. USING FUNCTION MATH.EVAL') // evaluate expressions console.log('\nevaluate expressions') -print(math.evaluate('sqrt(3^2 + 4^2)')) // 5 -print(math.evaluate('sqrt(-4)')) // 2i -print(math.evaluate('2 inch to cm')) // 5.08 cm -print(math.evaluate('cos(45 deg)')) // 0.70711 +print(evaluate('sqrt(3^2 + 4^2)')) // 5 +print(evaluate('sqrt(-4)')) // 2i +print(evaluate('2 inch to cm')) // 5.08 cm +print(evaluate('cos(45 deg)')) // 0.70711 // evaluate multiple expressions at once console.log('\nevaluate multiple expressions at once') -print(math.evaluate([ +print(evaluate([ 'f = 3', 'g = 4', 'f * g' @@ -42,27 +40,27 @@ const scope = { } // variables can be read from the scope -print(math.evaluate('a * b', scope)) // 12 +print(evaluate('a * b', scope)) // 12 // variable assignments are written to the scope -print(math.evaluate('c = 2.3 + 4.5', scope)) // 6.8 +print(evaluate('c = 2.3 + 4.5', scope)) // 6.8 print(scope.c) // 6.8 // scope can contain both variables and functions scope.hello = function (name) { return 'hello, ' + name + '!' } -print(math.evaluate('hello("hero")', scope)) // "hello, hero!" +print(evaluate('hello("hero")', scope)) // "hello, hero!" // define a function as an expression -const f = math.evaluate('f(x) = x ^ a', scope) +const f = evaluate('f(x) = x ^ a', scope) print(f(2)) // 8 print(scope.f(2)) // 8 -// 2. using function math.parse +// 2. using function parse // -// Function `math.parse` parses expressions into a node tree. The syntax is -// similar to function `math.evaluate`. +// Function `parse` parses expressions into a node tree. The syntax is +// similar to function `evaluate`. // Function `parse` accepts a single expression or an array with // expressions as first argument. The function returns a node tree, which // then can be compiled against math, and then evaluated against an (optional @@ -72,7 +70,7 @@ console.log('\n2. USING FUNCTION MATH.PARSE') // parse an expression console.log('\nparse an expression into a node tree') -const node1 = math.parse('sqrt(3^2 + 4^2)') +const node1 = parse('sqrt(3^2 + 4^2)') print(node1.toString()) // "sqrt((3 ^ 2) + (4 ^ 2))" // compile and evaluate the compiled code @@ -81,7 +79,7 @@ print(node1.evaluate()) // 5 // provide a scope console.log('\nprovide a scope') -const node2 = math.parse('x^a') +const node2 = parse('x^a') const code2 = node2.compile() print(node2.toString()) // "x ^ a" const scope2 = { @@ -94,10 +92,10 @@ print(code2.evaluate(scope2)) // 9 scope2.a = 3 print(code2.evaluate(scope2)) // 27 -// 3. using function math.compile +// 3. using function compile // -// Function `math.compile` compiles expressions into a node tree. The syntax is -// similar to function `math.evaluate`. +// Function `compile` compiles expressions into a node tree. The syntax is +// similar to function `evaluate`. // Function `compile` accepts a single expression or an array with // expressions as first argument, and returns an object with a function evaluate // to evaluate the compiled expression. On evaluation, an optional scope can @@ -107,14 +105,14 @@ console.log('\n3. USING FUNCTION MATH.COMPILE') // parse an expression console.log('\ncompile an expression') -const code3 = math.compile('sqrt(3^2 + 4^2)') +const code3 = compile('sqrt(3^2 + 4^2)') // evaluate the compiled code print(code3.evaluate()) // 5 // provide a scope for the variable assignment console.log('\nprovide a scope') -const code4 = math.compile('a = a + 3') +const code4 = compile('a = a + 3') const scope3 = { a: 7 } @@ -123,60 +121,60 @@ print(scope3.a) // 10 // 4. using a parser // -// In addition to the static functions `math.evaluate` and `math.parse`, math.js +// In addition to the static functions `evaluate` and `parse`, js // contains a parser with functions `evaluate` and `parse`, which automatically // keeps a scope with assigned variables in memory. The parser also contains // some convenience methods to get, set, and remove variables from memory. console.log('\n4. USING A PARSER') -const parser = math.parser() +const myParser = parser() // evaluate with parser console.log('\nevaluate expressions') -print(parser.evaluate('sqrt(3^2 + 4^2)')) // 5 -print(parser.evaluate('sqrt(-4)')) // 2i -print(parser.evaluate('2 inch to cm')) // 5.08 cm -print(parser.evaluate('cos(45 deg)')) // 0.70710678118655 +print(myParser.evaluate('sqrt(3^2 + 4^2)')) // 5 +print(myParser.evaluate('sqrt(-4)')) // 2i +print(myParser.evaluate('2 inch to cm')) // 5.08 cm +print(myParser.evaluate('cos(45 deg)')) // 0.70710678118655 // define variables and functions console.log('\ndefine variables and functions') -print(parser.evaluate('x = 7 / 2')) // 3.5 -print(parser.evaluate('x + 3')) // 6.5 -print(parser.evaluate('f2(x, y) = x^y')) // f2(x, y) -print(parser.evaluate('f2(2, 3)')) // 8 +print(myParser.evaluate('x = 7 / 2')) // 3.5 +print(myParser.evaluate('x + 3')) // 6.5 +print(myParser.evaluate('f2(x, y) = x^y')) // f2(x, y) +print(myParser.evaluate('f2(2, 3)')) // 8 // manipulate matrices // Note that matrix indexes in the expression parser are one-based with the -// upper-bound included. On a JavaScript level however, math.js uses zero-based +// upper-bound included. On a JavaScript level however, js uses zero-based // indexes with an excluded upper-bound. console.log('\nmanipulate matrices') -print(parser.evaluate('k = [1, 2; 3, 4]')) // [[1, 2], [3, 4]] -print(parser.evaluate('l = zeros(2, 2)')) // [[0, 0], [0, 0]] -print(parser.evaluate('l[1, 1:2] = [5, 6]')) // [5, 6] -print(parser.evaluate('l')) // [[5, 6], [0, 0]] -print(parser.evaluate('l[2, :] = [7, 8]')) // [7, 8] -print(parser.evaluate('l')) // [[5, 6], [7, 8]] -print(parser.evaluate('m = k * l')) // [[19, 22], [43, 50]] -print(parser.evaluate('n = m[2, 1]')) // 43 -print(parser.evaluate('n = m[:, 1]')) // [[19], [43]] +print(myParser.evaluate('k = [1, 2; 3, 4]')) // [[1, 2], [3, 4]] +print(myParser.evaluate('l = zeros(2, 2)')) // [[0, 0], [0, 0]] +print(myParser.evaluate('l[1, 1:2] = [5, 6]')) // [5, 6] +print(myParser.evaluate('l')) // [[5, 6], [0, 0]] +print(myParser.evaluate('l[2, :] = [7, 8]')) // [7, 8] +print(myParser.evaluate('l')) // [[5, 6], [7, 8]] +print(myParser.evaluate('m = k * l')) // [[19, 22], [43, 50]] +print(myParser.evaluate('n = m[2, 1]')) // 43 +print(myParser.evaluate('n = m[:, 1]')) // [[19], [43]] // get and set variables and functions console.log('\nget and set variables and function in the scope of the parser') -const x = parser.get('x') +const x = myParser.get('x') console.log('x =', x) // x = 3.5 -const f2 = parser.get('f2') -console.log('f2 =', math.format(f2)) // f2 = f2(x, y) +const f2 = myParser.get('f2') +console.log('f2 =', format(f2)) // f2 = f2(x, y) const h = f2(3, 3) console.log('h =', h) // h = 27 -parser.set('i', 500) -print(parser.evaluate('i / 2')) // 250 -parser.set('hello', function (name) { +myParser.set('i', 500) +print(myParser.evaluate('i / 2')) // 250 +myParser.set('hello', function (name) { return 'hello, ' + name + '!' }) -print(parser.evaluate('hello("hero")')) // "hello, hero!" +print(myParser.evaluate('hello("hero")')) // "hello, hero!" // clear defined functions and variables -parser.clear() +myParser.clear() /** * Helper function to output a value in the console. Value will be formatted. @@ -184,5 +182,5 @@ parser.clear() */ function print (value) { const precision = 14 - console.log(math.format(value, precision)) + console.log(format(value, precision)) } diff --git a/examples/fractions.js b/examples/fractions.js index 73aed71bd8..4e5fa5a598 100644 --- a/examples/fractions.js +++ b/examples/fractions.js @@ -1,7 +1,5 @@ // Fractions - -// load math.js (using node.js) -const { create, all } = require('..') +import { create, all } from '../lib/esm/index.js' // configure the default type of numbers as Fractions const config = { diff --git a/examples/import.js b/examples/import.js index 351cc096b1..c25806be91 100644 --- a/examples/import.js +++ b/examples/import.js @@ -3,9 +3,7 @@ * `import` function. The function `import` accepts a module name or an object * containing functions and variables. */ - -// load math.js (using node.js) -const { create, all } = require('..') +import { create, all } from '../lib/esm/index.js' const math = create(all) /** diff --git a/examples/matrices.js b/examples/matrices.js index 95ec0c0779..b4cf03407b 100644 --- a/examples/matrices.js +++ b/examples/matrices.js @@ -1,14 +1,12 @@ // matrices - -// load math.js (using node.js) -const math = require('..') +import { diag, factorial, format, index, map, matrix, multiply, ones, range, sqrt } from '../lib/esm/index.js' // create matrices and arrays. a matrix is just a wrapper around an Array, // providing some handy utilities. console.log('create a matrix') -const a = math.matrix([1, 4, 9, 16, 25]) +const a = matrix([1, 4, 9, 16, 25]) print(a) // [1, 4, 9, 16, 25] -const b = math.matrix(math.ones([2, 3])) +const b = matrix(ones([2, 3])) print(b) // [[1, 1, 1], [1, 1, 1]] print(b.size()) // [2, 3] @@ -23,43 +21,43 @@ console.log() // perform operations with matrices console.log('perform operations') -print(math.sqrt(a)) // [1, 2, 3, 4, 5] +print(map(a, sqrt)) // [1, 2, 3, 4, 5] const c = [1, 2, 3, 4, 5] -print(math.factorial(c)) // [1, 2, 6, 24, 120] +print(factorial(c)) // [1, 2, 6, 24, 120] console.log() // create and manipulate matrices. Arrays and Matrices can be used mixed. console.log('manipulate matrices') const d = [[1, 2], [3, 4]] print(d) // [[1, 2], [3, 4]] -const e = math.matrix([[5, 6], [1, 1]]) +const e = matrix([[5, 6], [1, 1]]) print(e) // [[5, 6], [1, 1]] // set a submatrix // Matrix indexes are zero-based. -e.subset(math.index(1, [0, 1]), [[7, 8]]) +e.subset(index(1, [0, 1]), [[7, 8]]) print(e) // [[5, 6], [7, 8]] -const f = math.multiply(d, e) +const f = multiply(d, e) print(f) // [[19, 22], [43, 50]] -const g = f.subset(math.index(1, 0)) +const g = f.subset(index(1, 0)) print(g) // 43 console.log() // get a sub matrix // Matrix indexes are zero-based. console.log('get a sub matrix') -const h = math.diag(math.range(1, 4)) +const h = diag(range(1, 4)) print(h) // [[1, 0, 0], [0, 2, 0], [0, 0, 3]] -print(h.subset(math.index([1, 2], [1, 2]))) // [[2, 0], [0, 3]] -const i = math.range(1, 6) +print(h.subset(index([1, 2], [1, 2]))) // [[2, 0], [0, 3]] +const i = range(1, 6) print(i) // [1, 2, 3, 4, 5] -print(i.subset(math.index(math.range(1, 4)))) // [2, 3, 4] +print(i.subset(index(range(1, 4)))) // [2, 3, 4] console.log() // replace a single value in a matrix // this will mutate the matrix console.log('set and get a value') -const p = math.matrix([[1, 2], [3, 4]]) +const p = matrix([[1, 2], [3, 4]]) p.set([0, 1], 5) print(p) // [[1, 5], [3, 4]] const p21 = p.get([1, 0]) @@ -68,7 +66,7 @@ console.log() // resize a multi dimensional matrix console.log('resizing a matrix') -const j = math.matrix() +const j = matrix() let defaultValue = 0 j.resize([2, 2, 2], defaultValue) print(j) // [[[0, 0], [0, 0]], [[0, 0], [0, 0]]] @@ -81,24 +79,24 @@ console.log() // setting a value outside the matrices range will resize the matrix. // new elements will be initialized with zero. console.log('set a value outside a matrices range') -const k = math.matrix() -k.subset(math.index(2), 6) +const k = matrix() +k.subset(index(2), 6) print(k) // [0, 0, 6] console.log() console.log('set a value outside a matrices range, setting other new entries to null') -const m = math.matrix() +const m = matrix() defaultValue = null -m.subset(math.index(2), 6, defaultValue) +m.subset(index(2), 6, defaultValue) print(m) // [null, null, 6] console.log() // create ranges console.log('create ranges') -print(math.range(1, 6)) // [1, 2, 3, 4, 5] -print(math.range(0, 18, 3)) // [0, 3, 6, 9, 12, 15] -print(math.range('2:-1:-3')) // [2, 1, 0, -1, -2] -print(math.factorial(math.range('1:6'))) // [1, 2, 6, 24, 120] +print(range(1, 6)) // [1, 2, 3, 4, 5] +print(range(0, 18, 3)) // [0, 3, 6, 9, 12, 15] +print(range('2:-1:-3')) // [2, 1, 0, -1, -2] +print(factorial(range('1:6'))) // [1, 2, 6, 24, 120] console.log() /** @@ -107,5 +105,5 @@ console.log() */ function print (value) { const precision = 14 - console.log(math.format(value, precision)) + console.log(format(value, precision)) } diff --git a/examples/objects.js b/examples/objects.js index 5140ac2290..7efb35f534 100644 --- a/examples/objects.js +++ b/examples/objects.js @@ -1,7 +1,5 @@ // objects - -// load math.js (using node.js) -const { evaluate, format } = require('..') +import { evaluate, format } from '../lib/esm/index.js' // create an object. Keys can be symbols or strings print(evaluate('{x: 2 + 1, y: 4}')) // {"x": 3, "y": 4} diff --git a/examples/package.json b/examples/package.json deleted file mode 100644 index 5bbefffbab..0000000000 --- a/examples/package.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "type": "commonjs" -} diff --git a/examples/serialization.js b/examples/serialization.js index a7a52bbd67..43610c7f33 100644 --- a/examples/serialization.js +++ b/examples/serialization.js @@ -1,5 +1,5 @@ -// load math.js (using node.js) -const { complex, replacer, reviver, typeOf } = require('..') +// serialization +import { complex, replacer, reviver, typeOf } from '../lib/esm/index.js' // serialize a math.js data type into a JSON string // the replacer function is needed to correctly stringify a value like Infinity diff --git a/examples/sparse_matrices.js b/examples/sparse_matrices.js index 4eecb78384..eda8d04295 100644 --- a/examples/sparse_matrices.js +++ b/examples/sparse_matrices.js @@ -1,5 +1,5 @@ -// load math.js (using node.js) -const { identity, multiply, transpose, complex } = require('..') +// Sparse matrices +import { identity, multiply, transpose, complex } from '../lib/esm/index.js' // create a sparse matrix console.log('creating a 1000x1000 sparse matrix...') diff --git a/examples/units.js b/examples/units.js index 99756b0fa7..036c7b9b56 100644 --- a/examples/units.js +++ b/examples/units.js @@ -1,68 +1,66 @@ // units - -// load math.js (using node.js) -const math = require('..') +import { add, cross, divide, evaluate, format as _format, multiply, number, pow, to, unit } from '../lib/esm/index.js' // units can be created by providing a value and unit name, or by providing // a string with a valued unit. console.log('create units') -const a = math.unit(45, 'cm') -const b = math.unit('0.1m') +const a = unit(45, 'cm') +const b = unit('0.1m') print(a) // 45 cm print(b) // 0.1 m console.log() // units can be added, subtracted, and multiplied or divided by numbers and by other units console.log('perform operations') -print(math.add(a, b)) // 55 cm -print(math.multiply(b, 2)) // 0.2 m -print(math.divide(math.unit('1 m'), math.unit('1 s'))) // 1 m / s -print(math.pow(math.unit('12 in'), 3)) // 1728 in^3 +print(add(a, b)) // 55 cm +print(multiply(b, 2)) // 0.2 m +print(divide(unit('1 m'), unit('1 s'))) // 1 m / s +print(pow(unit('12 in'), 3)) // 1728 in^3 console.log() // units can be converted to a specific type, or to a number console.log('convert to another type or to a number') -print(b.to('cm')) // 10 cm Alternatively: math.to(b, 'cm') -print(math.to(b, 'inch')) // 3.9370078740157 inch +print(b.to('cm')) // 10 cm Alternatively: to(b, 'cm') +print(to(b, 'inch')) // 3.9370078740157 inch print(b.toNumber('cm')) // 10 -print(math.number(b, 'cm')) // 10 +print(number(b, 'cm')) // 10 console.log() // the expression parser supports units too console.log('parse expressions') -print(math.evaluate('2 inch to cm')) // 5.08 cm -print(math.evaluate('cos(45 deg)')) // 0.70710678118655 -print(math.evaluate('90 km/h to m/s')) // 25 m / s +print(evaluate('2 inch to cm')) // 5.08 cm +print(evaluate('cos(45 deg)')) // 0.70710678118655 +print(evaluate('90 km/h to m/s')) // 25 m / s console.log() // convert a unit to a number // A second parameter with the unit for the exported number must be provided -print(math.evaluate('number(5 cm, mm)')) // number, 50 +print(evaluate('number(5 cm, mm)')) // number, 50 console.log() // simplify units console.log('simplify units') -print(math.evaluate('100000 N / m^2')) // 100 kPa -print(math.evaluate('9.81 m/s^2 * 100 kg * 40 m')) // 39.24 kJ +print(evaluate('100000 N / m^2')) // 100 kPa +print(evaluate('9.81 m/s^2 * 100 kg * 40 m')) // 39.24 kJ console.log() // example engineering calculations console.log('compute molar volume of ideal gas at 65 Fahrenheit, 14.7 psi in L/mol') -const Rg = math.unit('8.314 N m / (mol K)') -const T = math.unit('65 degF') -const P = math.unit('14.7 psi') -const v = math.divide(math.multiply(Rg, T), P) +const Rg = unit('8.314 N m / (mol K)') +const T = unit('65 degF') +const P = unit('14.7 psi') +const v = divide(multiply(Rg, T), P) console.log('gas constant (Rg) = ', format(Rg)) console.log('P = ' + format(P)) console.log('T = ' + format(T)) -console.log('v = Rg * T / P = ' + format(math.to(v, 'L/mol'))) +console.log('v = Rg * T / P = ' + format(to(v, 'L/mol'))) // 23.910432393453 L / mol console.log() console.log('compute speed of fluid flowing out of hole in a container') -const g = math.unit('9.81 m / s^2') -const h = math.unit('1 m') -const v2 = math.pow(math.multiply(2, math.multiply(g, h)), 0.5) // Can also use math.sqrt +const g = unit('9.81 m / s^2') +const h = unit('1 m') +const v2 = pow(multiply(2, multiply(g, h)), 0.5) // Can also use sqrt console.log('g = ' + format(g)) console.log('h = ' + format(h)) console.log('v = (2 g h) ^ 0.5 = ' + format(v2)) @@ -71,19 +69,19 @@ console.log() console.log('electrical power consumption:') const expr1 = '460 V * 20 A * 30 days to kWh' -console.log(expr1 + ' = ' + math.evaluate(expr1)) // 6624 kWh +console.log(expr1 + ' = ' + evaluate(expr1)) // 6624 kWh console.log() console.log('circuit design:') const expr2 = '24 V / (6 mA)' -console.log(expr2 + ' = ' + math.evaluate(expr2)) // 4 kohm +console.log(expr2 + ' = ' + evaluate(expr2)) // 4 kohm console.log() console.log('operations on arrays:') -const B = math.evaluate('[1, 0, 0] T') -const v3 = math.evaluate('[0, 1, 0] m/s') -const q = math.evaluate('1 C') -const F = math.multiply(q, math.cross(v3, B)) +const B = evaluate('[1, 0, 0] T') +const v3 = evaluate('[0, 1, 0] m/s') +const q = evaluate('1 C') +const F = multiply(q, cross(v3, B)) console.log('B (magnetic field strength) = ' + format(B)) // [1 T, 0 T, 0 T] console.log('v (particle velocity) = ' + format(v3)) // [0 m / s, 1 m / s, 0 m / s] console.log('q (particle charge) = ' + format(q)) // 1 C @@ -104,5 +102,5 @@ function print (value) { */ function format (value) { const precision = 14 - return math.format(value, precision) + return _format(value, precision) } diff --git a/gulpfile.cjs b/gulpfile.js similarity index 87% rename from gulpfile.cjs rename to gulpfile.js index ed9f0df3a9..d7f116bb45 100644 --- a/gulpfile.cjs +++ b/gulpfile.js @@ -1,15 +1,17 @@ -// @ts-nocheck -const fs = require('fs') -const path = require('path') -const gulp = require('gulp') -const del = require('del') -const log = require('fancy-log') -const webpack = require('webpack') -const babel = require('gulp-babel') -const { mkdirp } = require('mkdirp') -const docgenerator = require('./tools/docgenerator') -const entryGenerator = require('./tools/entryGenerator') -const validateAsciiChars = require('./tools/validateAsciiChars') +import fs from 'node:fs' +import { fileURLToPath } from 'node:url' +import path from 'node:path' +import gulp from 'gulp' +import { deleteAsync } from 'del' +import log from 'fancy-log' +import webpack from 'webpack' +import babel from 'gulp-babel' +import { mkdirp } from 'mkdirp' +import { cleanup, iteratePath } from './tools/docgenerator.js' +import { generateEntryFiles } from './tools/entryGenerator.js' +import { getAllFiles, validateChars } from './tools/validateAsciiChars.js' + +const __dirname = path.dirname(fileURLToPath(import.meta.url)) const SRC_DIR = path.join(__dirname, '/src') const BUNDLE_ENTRY = `${SRC_DIR}/defaultInstance.js` @@ -188,8 +190,8 @@ function validateAscii (done) { const Reset = '\x1b[0m' const BgRed = '\x1b[41m' - validateAsciiChars.getAllFiles(SRC_DIR) - .map(validateAsciiChars.validateChars) + getAllFiles(SRC_DIR) + .map(validateChars) .forEach(function (invalidChars) { invalidChars.forEach(function (res) { console.log(res.insideComment ? '' : BgRed, @@ -216,14 +218,14 @@ async function generateDocs (done) { throw new Error('No function names found, is the doc generator broken?') } - docgenerator.cleanup(REF_DEST, REF_ROOT) - docgenerator.iteratePath(functionNames, REF_SRC, REF_DEST, REF_ROOT) + cleanup(REF_DEST, REF_ROOT) + iteratePath(functionNames, REF_SRC, REF_DEST, REF_ROOT) done() } -function generateEntryFiles (done) { - entryGenerator.generateEntryFiles().then(() => { +function generateEntryFilesCallback (done) { + generateEntryFiles().then(() => { done() }) } @@ -233,8 +235,8 @@ function generateEntryFiles (done) { * * @returns {Promise | *} */ -function clean () { - return del([ +async function clean () { + await deleteAsync([ // legacy compiled files './es/', @@ -272,10 +274,10 @@ gulp.task('watch', function watch () { gulp.task('default', gulp.series( clean, updateVersionFile, - generateEntryFiles, + generateEntryFilesCallback, compileCommonJs, compileEntryFiles, - compileESModules, // Must be after generateEntryFiles + compileESModules, // Must be after generateEntryFilesCallback writeCompiledHeader, bundle, generateDocs diff --git a/package-lock.json b/package-lock.json index 0238619dbe..cebd724262 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,7 +1,7 @@ { "name": "mathjs", "version": "12.4.2", - "lockfileVersion": 2, + "lockfileVersion": 3, "requires": true, "packages": { "": { @@ -9,7 +9,7 @@ "version": "12.4.2", "license": "Apache-2.0", "dependencies": { - "@babel/runtime": "^7.24.4", + "@babel/runtime": "^7.24.5", "complex.js": "^2.1.1", "decimal.js": "^10.4.3", "escape-latex": "^1.2.0", @@ -23,10 +23,10 @@ "mathjs": "bin/cli.js" }, "devDependencies": { - "@babel/core": "7.24.4", + "@babel/core": "7.24.5", "@babel/plugin-transform-object-assign": "7.24.1", "@babel/plugin-transform-runtime": "7.24.3", - "@babel/preset-env": "7.24.4", + "@babel/preset-env": "7.24.5", "@babel/register": "7.23.7", "@types/assert": "1.5.10", "@types/mocha": "10.0.6", @@ -37,8 +37,8 @@ "benchmark": "2.1.4", "c8": "9.1.0", "codecov": "3.8.3", - "core-js": "3.37.0", - "del": "6.1.1", + "core-js": "3.37.1", + "del": "7.1.0", "dtslint": "4.2.1", "eslint": "8.57.0", "eslint-config-prettier": "9.1.0", @@ -51,7 +51,7 @@ "expect-type": "0.19.0", "expr-eval": "2.0.2", "fancy-log": "2.0.0", - "glob": "8.1.0", + "glob": "10.3.15", "gulp": "5.0.0", "gulp-babel": "8.0.0", "handlebars": "4.7.8", @@ -85,39 +85,14 @@ "node": ">= 18" } }, - "github.com:ChristopherChudzicki/eslint-config-standard-with-typescript.git": { - "extraneous": true - }, - "node_modules/@aashutoshrathi/word-wrap": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz", - "integrity": "sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/@ampproject/remapping": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.0.tgz", - "integrity": "sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==", - "dev": true, - "dependencies": { - "@jridgewell/gen-mapping": "^0.1.0", - "@jridgewell/trace-mapping": "^0.3.9" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@ampproject/remapping/node_modules/@jridgewell/gen-mapping": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz", - "integrity": "sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", + "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", "dev": true, "dependencies": { - "@jridgewell/set-array": "^1.0.0", - "@jridgewell/sourcemap-codec": "^1.4.10" + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" }, "engines": { "node": ">=6.0.0" @@ -146,21 +121,21 @@ } }, "node_modules/@babel/core": { - "version": "7.24.4", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.24.4.tgz", - "integrity": "sha512-MBVlMXP+kkl5394RBLSxxk/iLTeVGuXTV3cIDXavPpMMqnSnt6apKgan/U8O3USWZCWZT/TbgfEpKa4uMgN4Dg==", + "version": "7.24.5", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.24.5.tgz", + "integrity": "sha512-tVQRucExLQ02Boi4vdPp49svNGcfL2GhdTCT9aldhXgCJVAI21EtRfBettiuLUwce/7r6bFdgs6JFkcdTiFttA==", "dev": true, "dependencies": { "@ampproject/remapping": "^2.2.0", "@babel/code-frame": "^7.24.2", - "@babel/generator": "^7.24.4", + "@babel/generator": "^7.24.5", "@babel/helper-compilation-targets": "^7.23.6", - "@babel/helper-module-transforms": "^7.23.3", - "@babel/helpers": "^7.24.4", - "@babel/parser": "^7.24.4", + "@babel/helper-module-transforms": "^7.24.5", + "@babel/helpers": "^7.24.5", + "@babel/parser": "^7.24.5", "@babel/template": "^7.24.0", - "@babel/traverse": "^7.24.1", - "@babel/types": "^7.24.0", + "@babel/traverse": "^7.24.5", + "@babel/types": "^7.24.5", "convert-source-map": "^2.0.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", @@ -175,28 +150,13 @@ "url": "https://opencollective.com/babel" } }, - "node_modules/@babel/core/node_modules/convert-source-map": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", - "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", - "dev": true - }, - "node_modules/@babel/core/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, "node_modules/@babel/generator": { - "version": "7.24.4", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.24.4.tgz", - "integrity": "sha512-Xd6+v6SnjWVx/nus+y0l1sxMOTOMBkyL4+BIdbALyatQnAe/SRVjANeDPSCYaX+i1iJmuGSKf3Z+E+V/va1Hvw==", + "version": "7.24.5", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.24.5.tgz", + "integrity": "sha512-x32i4hEXvr+iI0NEoEfDKzlemF8AmtOP8CcrRaEcpzysWuoEb1KknpcvMsHKPONoKZiDuItklgWhB18xEhr9PA==", "dev": true, "dependencies": { - "@babel/types": "^7.24.0", + "@babel/types": "^7.24.5", "@jridgewell/gen-mapping": "^0.3.5", "@jridgewell/trace-mapping": "^0.3.25", "jsesc": "^2.5.1" @@ -245,44 +205,20 @@ "node": ">=6.9.0" } }, - "node_modules/@babel/helper-compilation-targets/node_modules/lru-cache": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", - "dev": true, - "dependencies": { - "yallist": "^3.0.2" - } - }, - "node_modules/@babel/helper-compilation-targets/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/@babel/helper-compilation-targets/node_modules/yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", - "dev": true - }, "node_modules/@babel/helper-create-class-features-plugin": { - "version": "7.24.4", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.24.4.tgz", - "integrity": "sha512-lG75yeuUSVu0pIcbhiYMXBXANHrpUPaOfu7ryAzskCgKUHuAxRQI5ssrtmF0X9UXldPlvT0XM/A4F44OXRt6iQ==", + "version": "7.24.5", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.24.5.tgz", + "integrity": "sha512-uRc4Cv8UQWnE4NXlYTIIdM7wfFkOqlFztcC/gVXDKohKoVB3OyonfelUBaJzSwpBntZ2KYGF/9S7asCHsXwW6g==", "dev": true, "dependencies": { "@babel/helper-annotate-as-pure": "^7.22.5", "@babel/helper-environment-visitor": "^7.22.20", "@babel/helper-function-name": "^7.23.0", - "@babel/helper-member-expression-to-functions": "^7.23.0", + "@babel/helper-member-expression-to-functions": "^7.24.5", "@babel/helper-optimise-call-expression": "^7.22.5", "@babel/helper-replace-supers": "^7.24.1", "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", - "@babel/helper-split-export-declaration": "^7.22.6", + "@babel/helper-split-export-declaration": "^7.24.5", "semver": "^6.3.1" }, "engines": { @@ -292,15 +228,6 @@ "@babel/core": "^7.0.0" } }, - "node_modules/@babel/helper-create-class-features-plugin/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, "node_modules/@babel/helper-create-regexp-features-plugin": { "version": "7.22.15", "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.22.15.tgz", @@ -318,19 +245,10 @@ "@babel/core": "^7.0.0" } }, - "node_modules/@babel/helper-create-regexp-features-plugin/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, "node_modules/@babel/helper-define-polyfill-provider": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.1.tgz", - "integrity": "sha512-o7SDgTJuvx5vLKD6SFvkydkSMBvahDKGiNJzG22IZYXhiqoe9efY7zocICBgzHV4IRg5wdgl2nEL/tulKIEIbA==", + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.2.tgz", + "integrity": "sha512-LV76g+C502biUK6AyZ3LK10vDpDyCzZnhZFXkH1L75zHPj68+qc8Zfpx2th+gzwA2MzyK+1g/3EPl62yFnVttQ==", "dev": true, "dependencies": { "@babel/helper-compilation-targets": "^7.22.6", @@ -378,12 +296,12 @@ } }, "node_modules/@babel/helper-member-expression-to-functions": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.23.0.tgz", - "integrity": "sha512-6gfrPwh7OuT6gZyJZvd6WbTfrqAo7vm4xCzAXOusKqq/vWdKXphTpj5klHKNmRUU6/QRGlBsyU9mAIPaWHlqJA==", + "version": "7.24.5", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.24.5.tgz", + "integrity": "sha512-4owRteeihKWKamtqg4JmWSsEZU445xpFRXPEwp44HbgbxdWlUV1b4Agg4lkA806Lil5XM/e+FJyS0vj5T6vmcA==", "dev": true, "dependencies": { - "@babel/types": "^7.23.0" + "@babel/types": "^7.24.5" }, "engines": { "node": ">=6.9.0" @@ -402,16 +320,16 @@ } }, "node_modules/@babel/helper-module-transforms": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.23.3.tgz", - "integrity": "sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==", + "version": "7.24.5", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.24.5.tgz", + "integrity": "sha512-9GxeY8c2d2mdQUP1Dye0ks3VDyIMS98kt/llQ2nUId8IsWqTF0l1LkSX0/uP7l7MCDrzXS009Hyhe2gzTiGW8A==", "dev": true, "dependencies": { "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-module-imports": "^7.22.15", - "@babel/helper-simple-access": "^7.22.5", - "@babel/helper-split-export-declaration": "^7.22.6", - "@babel/helper-validator-identifier": "^7.22.20" + "@babel/helper-module-imports": "^7.24.3", + "@babel/helper-simple-access": "^7.24.5", + "@babel/helper-split-export-declaration": "^7.24.5", + "@babel/helper-validator-identifier": "^7.24.5" }, "engines": { "node": ">=6.9.0" @@ -433,9 +351,9 @@ } }, "node_modules/@babel/helper-plugin-utils": { - "version": "7.24.0", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.0.tgz", - "integrity": "sha512-9cUznXMG0+FxRuJfvL82QlTqIzhVW9sL0KjMPHhAOOvpQGL8QtdxnBKILjBqxlHyliz0yCa1G903ZXI/FuHy2w==", + "version": "7.24.5", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.5.tgz", + "integrity": "sha512-xjNLDopRzW2o6ba0gKbkZq5YWEBaK3PCyTOY1K2P/O07LGMhMqlMXPxwN4S5/RhWuCobT8z0jrlKGlYmeR1OhQ==", "dev": true, "engines": { "node": ">=6.9.0" @@ -476,12 +394,12 @@ } }, "node_modules/@babel/helper-simple-access": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz", - "integrity": "sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==", + "version": "7.24.5", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.24.5.tgz", + "integrity": "sha512-uH3Hmf5q5n7n8mz7arjUlDOCbttY/DW4DYhE6FUsjKJ/oYC1kQQUvwEQWxRwUpX9qQKRXeqLwWxrqilMrf32sQ==", "dev": true, "dependencies": { - "@babel/types": "^7.22.5" + "@babel/types": "^7.24.5" }, "engines": { "node": ">=6.9.0" @@ -500,30 +418,30 @@ } }, "node_modules/@babel/helper-split-export-declaration": { - "version": "7.22.6", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz", - "integrity": "sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==", + "version": "7.24.5", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.24.5.tgz", + "integrity": "sha512-5CHncttXohrHk8GWOFCcCl4oRD9fKosWlIRgWm4ql9VYioKm52Mk2xsmoohvm7f3JoiLSM5ZgJuRaf5QZZYd3Q==", "dev": true, "dependencies": { - "@babel/types": "^7.22.5" + "@babel/types": "^7.24.5" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-string-parser": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.23.4.tgz", - "integrity": "sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ==", + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.24.1.tgz", + "integrity": "sha512-2ofRCjnnA9y+wk8b9IAREroeUP02KHp431N2mhKniy2yKIDKpbrHv9eXwm8cBeWQYcJmzv5qKCu65P47eCF7CQ==", "dev": true, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-validator-identifier": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz", - "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==", + "version": "7.24.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.5.tgz", + "integrity": "sha512-3q93SSKX2TWCG30M2G2kwaKeTYgEUp5Snjuj8qm729SObL6nbtUldAi37qbxkD5gg3xnBio+f9nqpSepGZMvxA==", "dev": true, "engines": { "node": ">=6.9.0" @@ -539,40 +457,40 @@ } }, "node_modules/@babel/helper-wrap-function": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.22.20.tgz", - "integrity": "sha512-pms/UwkOpnQe/PDAEdV/d7dVCoBbB+R4FvYoHGZz+4VPcg7RtYy2KP7S2lbuWM6FCSgob5wshfGESbC/hzNXZw==", + "version": "7.24.5", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.24.5.tgz", + "integrity": "sha512-/xxzuNvgRl4/HLNKvnFwdhdgN3cpLxgLROeLDl83Yx0AJ1SGvq1ak0OszTOjDfiB8Vx03eJbeDWh9r+jCCWttw==", "dev": true, "dependencies": { - "@babel/helper-function-name": "^7.22.5", - "@babel/template": "^7.22.15", - "@babel/types": "^7.22.19" + "@babel/helper-function-name": "^7.23.0", + "@babel/template": "^7.24.0", + "@babel/types": "^7.24.5" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helpers": { - "version": "7.24.4", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.24.4.tgz", - "integrity": "sha512-FewdlZbSiwaVGlgT1DPANDuCHaDMiOo+D/IDYRFYjHOuv66xMSJ7fQwwODwRNAPkADIO/z1EoF/l2BCWlWABDw==", + "version": "7.24.5", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.24.5.tgz", + "integrity": "sha512-CiQmBMMpMQHwM5m01YnrM6imUG1ebgYJ+fAIW4FZe6m4qHTPaRHti+R8cggAwkdz4oXhtO4/K9JWlh+8hIfR2Q==", "dev": true, "dependencies": { "@babel/template": "^7.24.0", - "@babel/traverse": "^7.24.1", - "@babel/types": "^7.24.0" + "@babel/traverse": "^7.24.5", + "@babel/types": "^7.24.5" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/highlight": { - "version": "7.24.2", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.2.tgz", - "integrity": "sha512-Yac1ao4flkTxTteCDZLEvdxg2fZfz1v8M4QpaGypq/WPDqg3ijHYbDfs+LG5hvzSoqaSZ9/Z9lKSP3CjZjv+pA==", + "version": "7.24.5", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.5.tgz", + "integrity": "sha512-8lLmua6AVh/8SLJRRVD6V8p73Hir9w5mJrhE+IPpILG31KKlI9iz5zmBYKcWPS59qSfgP9RaSBQSHHE81WKuEw==", "dev": true, "dependencies": { - "@babel/helper-validator-identifier": "^7.22.20", + "@babel/helper-validator-identifier": "^7.24.5", "chalk": "^2.4.2", "js-tokens": "^4.0.0", "picocolors": "^1.0.0" @@ -582,9 +500,9 @@ } }, "node_modules/@babel/parser": { - "version": "7.24.4", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.4.tgz", - "integrity": "sha512-zTvEBcghmeBma9QIGunWevvBAp4/Qu9Bdq+2k0Ot4fVMD6v3dsC9WOcRSKk7tRRyBM/53yKMJko9xOatGQAwSg==", + "version": "7.24.5", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.5.tgz", + "integrity": "sha512-EOv5IK8arwh3LI47dz1b0tKUb/1uhHAnHJOrjgtQMIpu1uXd9mlFrJg9IUgGUgZ41Ch0K8REPTYpO7B76b4vJg==", "dev": true, "bin": { "parser": "bin/babel-parser.js" @@ -594,13 +512,13 @@ } }, "node_modules/@babel/plugin-bugfix-firefox-class-in-computed-class-key": { - "version": "7.24.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-firefox-class-in-computed-class-key/-/plugin-bugfix-firefox-class-in-computed-class-key-7.24.4.tgz", - "integrity": "sha512-qpl6vOOEEzTLLcsuqYYo8yDtrTocmu2xkGvgNebvPjT9DTtfFYGmgDqY+rBYXNlqL4s9qLDn6xkrJv4RxAPiTA==", + "version": "7.24.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-firefox-class-in-computed-class-key/-/plugin-bugfix-firefox-class-in-computed-class-key-7.24.5.tgz", + "integrity": "sha512-LdXRi1wEMTrHVR4Zc9F8OewC3vdm5h4QB6L71zy6StmYeqGi1b3ttIO8UC+BfZKcH9jdr4aI249rBkm+3+YvHw==", "dev": true, "dependencies": { "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-plugin-utils": "^7.24.0" + "@babel/helper-plugin-utils": "^7.24.5" }, "engines": { "node": ">=6.9.0" @@ -970,12 +888,12 @@ } }, "node_modules/@babel/plugin-transform-block-scoping": { - "version": "7.24.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.24.4.tgz", - "integrity": "sha512-nIFUZIpGKDf9O9ttyRXpHFpKC+X3Y5mtshZONuEUYBomAKoM4y029Jr+uB1bHGPhNmK8YXHevDtKDOLmtRrp6g==", + "version": "7.24.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.24.5.tgz", + "integrity": "sha512-sMfBc3OxghjC95BkYrYocHL3NaOplrcaunblzwXhGmlPwpmfsxr4vK+mBBt49r+S240vahmv+kUxkeKgs+haCw==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.0" + "@babel/helper-plugin-utils": "^7.24.5" }, "engines": { "node": ">=6.9.0" @@ -1018,18 +936,18 @@ } }, "node_modules/@babel/plugin-transform-classes": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.24.1.tgz", - "integrity": "sha512-ZTIe3W7UejJd3/3R4p7ScyyOoafetUShSf4kCqV0O7F/RiHxVj/wRaRnQlrGwflvcehNA8M42HkAiEDYZu2F1Q==", + "version": "7.24.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.24.5.tgz", + "integrity": "sha512-gWkLP25DFj2dwe9Ck8uwMOpko4YsqyfZJrOmqqcegeDYEbp7rmn4U6UQZNj08UF6MaX39XenSpKRCvpDRBtZ7Q==", "dev": true, "dependencies": { "@babel/helper-annotate-as-pure": "^7.22.5", "@babel/helper-compilation-targets": "^7.23.6", "@babel/helper-environment-visitor": "^7.22.20", "@babel/helper-function-name": "^7.23.0", - "@babel/helper-plugin-utils": "^7.24.0", + "@babel/helper-plugin-utils": "^7.24.5", "@babel/helper-replace-supers": "^7.24.1", - "@babel/helper-split-export-declaration": "^7.22.6", + "@babel/helper-split-export-declaration": "^7.24.5", "globals": "^11.1.0" }, "engines": { @@ -1056,12 +974,12 @@ } }, "node_modules/@babel/plugin-transform-destructuring": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.24.1.tgz", - "integrity": "sha512-ow8jciWqNxR3RYbSNVuF4U2Jx130nwnBnhRw6N6h1bOejNkABmcI5X5oz29K4alWX7vf1C+o6gtKXikzRKkVdw==", + "version": "7.24.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.24.5.tgz", + "integrity": "sha512-SZuuLyfxvsm+Ah57I/i1HVjveBENYK9ue8MJ7qkc7ndoNjqquJiElzA7f5yaAXjyW2hKojosOTAQQRX50bPSVg==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.0" + "@babel/helper-plugin-utils": "^7.24.5" }, "engines": { "node": ">=6.9.0" @@ -1390,15 +1308,15 @@ } }, "node_modules/@babel/plugin-transform-object-rest-spread": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.24.1.tgz", - "integrity": "sha512-XjD5f0YqOtebto4HGISLNfiNMTTs6tbkFf2TOqJlYKYmbo+mN9Dnpl4SRoofiziuOWMIyq3sZEUqLo3hLITFEA==", + "version": "7.24.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.24.5.tgz", + "integrity": "sha512-7EauQHszLGM3ay7a161tTQH7fj+3vVM/gThlz5HpFtnygTxjrlvoeq7MPVA1Vy9Q555OB8SnAOsMkLShNkkrHA==", "dev": true, "dependencies": { "@babel/helper-compilation-targets": "^7.23.6", - "@babel/helper-plugin-utils": "^7.24.0", + "@babel/helper-plugin-utils": "^7.24.5", "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-transform-parameters": "^7.24.1" + "@babel/plugin-transform-parameters": "^7.24.5" }, "engines": { "node": ">=6.9.0" @@ -1440,12 +1358,12 @@ } }, "node_modules/@babel/plugin-transform-optional-chaining": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.24.1.tgz", - "integrity": "sha512-n03wmDt+987qXwAgcBlnUUivrZBPZ8z1plL0YvgQalLm+ZE5BMhGm94jhxXtA1wzv1Cu2aaOv1BM9vbVttrzSg==", + "version": "7.24.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.24.5.tgz", + "integrity": "sha512-xWCkmwKT+ihmA6l7SSTpk8e4qQl/274iNbSKRRS8mpqFR32ksy36+a+LWY8OXCCEefF8WFlnOHVsaDI2231wBg==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.0", + "@babel/helper-plugin-utils": "^7.24.5", "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", "@babel/plugin-syntax-optional-chaining": "^7.8.3" }, @@ -1457,12 +1375,12 @@ } }, "node_modules/@babel/plugin-transform-parameters": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.24.1.tgz", - "integrity": "sha512-8Jl6V24g+Uw5OGPeWNKrKqXPDw2YDjLc53ojwfMcKwlEoETKU9rU0mHUtcg9JntWI/QYzGAXNWEcVHZ+fR+XXg==", + "version": "7.24.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.24.5.tgz", + "integrity": "sha512-9Co00MqZ2aoky+4j2jhofErthm6QVLKbpQrvz20c3CH9KQCLHyNB+t2ya4/UrRpQGR+Wrwjg9foopoeSdnHOkA==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.0" + "@babel/helper-plugin-utils": "^7.24.5" }, "engines": { "node": ">=6.9.0" @@ -1488,14 +1406,14 @@ } }, "node_modules/@babel/plugin-transform-private-property-in-object": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.24.1.tgz", - "integrity": "sha512-pTHxDVa0BpUbvAgX3Gat+7cSciXqUcY9j2VZKTbSB6+VQGpNgNO9ailxTGHSXlqOnX1Hcx1Enme2+yv7VqP9bg==", + "version": "7.24.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.24.5.tgz", + "integrity": "sha512-JM4MHZqnWR04jPMujQDTBVRnqxpLLpx2tkn7iPn+Hmsc0Gnb79yvRWOkvqFOx3Z7P7VxiRIR22c4eGSNj87OBQ==", "dev": true, "dependencies": { "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-create-class-features-plugin": "^7.24.1", - "@babel/helper-plugin-utils": "^7.24.0", + "@babel/helper-create-class-features-plugin": "^7.24.5", + "@babel/helper-plugin-utils": "^7.24.5", "@babel/plugin-syntax-private-property-in-object": "^7.14.5" }, "engines": { @@ -1571,15 +1489,6 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-runtime/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, "node_modules/@babel/plugin-transform-shorthand-properties": { "version": "7.24.1", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.24.1.tgz", @@ -1642,12 +1551,12 @@ } }, "node_modules/@babel/plugin-transform-typeof-symbol": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.24.1.tgz", - "integrity": "sha512-CBfU4l/A+KruSUoW+vTQthwcAdwuqbpRNB8HQKlZABwHRhsdHZ9fezp4Sn18PeAlYxTNiLMlx4xUBV3AWfg1BA==", + "version": "7.24.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.24.5.tgz", + "integrity": "sha512-UTGnhYVZtTAjdwOTzT+sCyXmTn8AhaxOS/MjG9REclZ6ULHWF9KoCZur0HSGU7hk8PdBFKKbYe6+gqdXWz84Jg==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.0" + "@babel/helper-plugin-utils": "^7.24.5" }, "engines": { "node": ">=6.9.0" @@ -1720,16 +1629,16 @@ } }, "node_modules/@babel/preset-env": { - "version": "7.24.4", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.24.4.tgz", - "integrity": "sha512-7Kl6cSmYkak0FK/FXjSEnLJ1N9T/WA2RkMhu17gZ/dsxKJUuTYNIylahPTzqpLyJN4WhDif8X0XK1R8Wsguo/A==", + "version": "7.24.5", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.24.5.tgz", + "integrity": "sha512-UGK2ifKtcC8i5AI4cH+sbLLuLc2ktYSFJgBAXorKAsHUZmrQ1q6aQ6i3BvU24wWs2AAKqQB6kq3N9V9Gw1HiMQ==", "dev": true, "dependencies": { "@babel/compat-data": "^7.24.4", "@babel/helper-compilation-targets": "^7.23.6", - "@babel/helper-plugin-utils": "^7.24.0", + "@babel/helper-plugin-utils": "^7.24.5", "@babel/helper-validator-option": "^7.23.5", - "@babel/plugin-bugfix-firefox-class-in-computed-class-key": "^7.24.4", + "@babel/plugin-bugfix-firefox-class-in-computed-class-key": "^7.24.5", "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.24.1", "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.24.1", "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^7.24.1", @@ -1756,12 +1665,12 @@ "@babel/plugin-transform-async-generator-functions": "^7.24.3", "@babel/plugin-transform-async-to-generator": "^7.24.1", "@babel/plugin-transform-block-scoped-functions": "^7.24.1", - "@babel/plugin-transform-block-scoping": "^7.24.4", + "@babel/plugin-transform-block-scoping": "^7.24.5", "@babel/plugin-transform-class-properties": "^7.24.1", "@babel/plugin-transform-class-static-block": "^7.24.4", - "@babel/plugin-transform-classes": "^7.24.1", + "@babel/plugin-transform-classes": "^7.24.5", "@babel/plugin-transform-computed-properties": "^7.24.1", - "@babel/plugin-transform-destructuring": "^7.24.1", + "@babel/plugin-transform-destructuring": "^7.24.5", "@babel/plugin-transform-dotall-regex": "^7.24.1", "@babel/plugin-transform-duplicate-keys": "^7.24.1", "@babel/plugin-transform-dynamic-import": "^7.24.1", @@ -1781,13 +1690,13 @@ "@babel/plugin-transform-new-target": "^7.24.1", "@babel/plugin-transform-nullish-coalescing-operator": "^7.24.1", "@babel/plugin-transform-numeric-separator": "^7.24.1", - "@babel/plugin-transform-object-rest-spread": "^7.24.1", + "@babel/plugin-transform-object-rest-spread": "^7.24.5", "@babel/plugin-transform-object-super": "^7.24.1", "@babel/plugin-transform-optional-catch-binding": "^7.24.1", - "@babel/plugin-transform-optional-chaining": "^7.24.1", - "@babel/plugin-transform-parameters": "^7.24.1", + "@babel/plugin-transform-optional-chaining": "^7.24.5", + "@babel/plugin-transform-parameters": "^7.24.5", "@babel/plugin-transform-private-methods": "^7.24.1", - "@babel/plugin-transform-private-property-in-object": "^7.24.1", + "@babel/plugin-transform-private-property-in-object": "^7.24.5", "@babel/plugin-transform-property-literals": "^7.24.1", "@babel/plugin-transform-regenerator": "^7.24.1", "@babel/plugin-transform-reserved-words": "^7.24.1", @@ -1795,7 +1704,7 @@ "@babel/plugin-transform-spread": "^7.24.1", "@babel/plugin-transform-sticky-regex": "^7.24.1", "@babel/plugin-transform-template-literals": "^7.24.1", - "@babel/plugin-transform-typeof-symbol": "^7.24.1", + "@babel/plugin-transform-typeof-symbol": "^7.24.5", "@babel/plugin-transform-unicode-escapes": "^7.24.1", "@babel/plugin-transform-unicode-property-regex": "^7.24.1", "@babel/plugin-transform-unicode-regex": "^7.24.1", @@ -1814,15 +1723,6 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/preset-env/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, "node_modules/@babel/preset-modules": { "version": "0.1.6-no-external-plugins", "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz", @@ -1863,9 +1763,9 @@ "dev": true }, "node_modules/@babel/runtime": { - "version": "7.24.4", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.24.4.tgz", - "integrity": "sha512-dkxf7+hn8mFBwKjs9bvBlArzLVxVbS8usaPUDd5p2a9JCL9tB8OaOVN1isD4+Xyk4ns89/xeOmbQvgdK7IIVdA==", + "version": "7.24.5", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.24.5.tgz", + "integrity": "sha512-Nms86NXrsaeU9vbBJKni6gXiEXZ4CVpYVzEjDH9Sb8vmZ3UljyA1GSOJl/6LGPO8EHLuSF9H+IxNXHPX8QHJ4g==", "dependencies": { "regenerator-runtime": "^0.14.0" }, @@ -1888,19 +1788,19 @@ } }, "node_modules/@babel/traverse": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.24.1.tgz", - "integrity": "sha512-xuU6o9m68KeqZbQuDt2TcKSxUw/mrsvavlEqQ1leZ/B+C9tk6E4sRWy97WaXgvq5E+nU3cXMxv3WKOCanVMCmQ==", + "version": "7.24.5", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.24.5.tgz", + "integrity": "sha512-7aaBLeDQ4zYcUFDUD41lJc1fG8+5IU9DaNSJAgal866FGvmD5EbWQgnEC6kO1gGLsX0esNkfnJSndbTXA3r7UA==", "dev": true, "dependencies": { - "@babel/code-frame": "^7.24.1", - "@babel/generator": "^7.24.1", + "@babel/code-frame": "^7.24.2", + "@babel/generator": "^7.24.5", "@babel/helper-environment-visitor": "^7.22.20", "@babel/helper-function-name": "^7.23.0", "@babel/helper-hoist-variables": "^7.22.5", - "@babel/helper-split-export-declaration": "^7.22.6", - "@babel/parser": "^7.24.1", - "@babel/types": "^7.24.0", + "@babel/helper-split-export-declaration": "^7.24.5", + "@babel/parser": "^7.24.5", + "@babel/types": "^7.24.5", "debug": "^4.3.1", "globals": "^11.1.0" }, @@ -1909,13 +1809,13 @@ } }, "node_modules/@babel/types": { - "version": "7.24.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.0.tgz", - "integrity": "sha512-+j7a5c253RfKh8iABBhywc8NSfP5LURe7Uh4qpsh6jc+aLJguvmIUBdjSdEMQv2bENrCR5MfRdjGo7vzS/ob7w==", + "version": "7.24.5", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.5.tgz", + "integrity": "sha512-6mQNsaLeXTw0nxYUYu+NSa4Hx4BlF1x1x8/PMFbiR+GBSr+2DkECc69b8hgy2frEodNcvPffeH8YfWd3LI6jhQ==", "dev": true, "dependencies": { - "@babel/helper-string-parser": "^7.23.4", - "@babel/helper-validator-identifier": "^7.22.20", + "@babel/helper-string-parser": "^7.24.1", + "@babel/helper-validator-identifier": "^7.24.5", "to-fast-properties": "^2.0.0" }, "engines": { @@ -1960,26 +1860,44 @@ } }, "node_modules/@definitelytyped/header-parser": { - "version": "0.0.85", - "resolved": "https://registry.npmjs.org/@definitelytyped/header-parser/-/header-parser-0.0.85.tgz", - "integrity": "sha512-fH37Yt5VjBKFu/2rFzn6xrjkASaIEqjED77V7vxb8JFCalTvGhiPpTrWzfp2EjK0Lhd8bkCZhRpYoW8GKatcdA==", + "version": "0.2.9", + "resolved": "https://registry.npmjs.org/@definitelytyped/header-parser/-/header-parser-0.2.9.tgz", + "integrity": "sha512-1Un7VpVtBgI4yL9ik9MJmfoDSbSSy81k3BA52KNUiY7ZIQrEB3Lz6SYdcAttyj5BwOn9vIHUmlFoqI0AcuDWnw==", "dev": true, "dependencies": { - "@definitelytyped/typescript-versions": "^0.0.85", - "@types/parsimmon": "^1.10.1", - "parsimmon": "^1.13.0" + "@definitelytyped/typescript-versions": "0.1.1", + "@definitelytyped/utils": "0.1.6", + "semver": "^7.5.4" + }, + "engines": { + "node": ">=18.18.0" + } + }, + "node_modules/@definitelytyped/header-parser/node_modules/semver": { + "version": "7.6.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", + "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" } }, "node_modules/@definitelytyped/typescript-versions": { - "version": "0.0.85", - "resolved": "https://registry.npmjs.org/@definitelytyped/typescript-versions/-/typescript-versions-0.0.85.tgz", - "integrity": "sha512-+yHqi887UMZ4TlLBkA2QcYNP/EZSKGKSAFJtSWY6J5DiBQq3k0yLN1yTfbLonQ52IBenI1iJo/4ePr5A3co5ZQ==", - "dev": true + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@definitelytyped/typescript-versions/-/typescript-versions-0.1.1.tgz", + "integrity": "sha512-ku6f6K/bYW39K1UyAXcg9wYPcU3ojg8NbygnGrJK78Pyu+4aflaO34gk5f92aUrqJHr8fFG6gg4IjJZCPd5wxg==", + "dev": true, + "engines": { + "node": ">=18.18.0" + } }, "node_modules/@definitelytyped/utils": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/@definitelytyped/utils/-/utils-0.1.5.tgz", - "integrity": "sha512-DwWL7/wwmK9Oe0zPYTYX3KBv6m92+tCxX8cD/K/wyEv4kfZerW21xNFzOFiwrpmtg6ghCMmvoeklvJ120B5v5A==", + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/@definitelytyped/utils/-/utils-0.1.6.tgz", + "integrity": "sha512-QRA3Gr2jfQcPoN35yLexdW/JCoYNNLSLX0xKMa+y28nZXyv+9RVr+UruoYiyxtwcf+W3b49X2I8fGYIlzoGw6w==", "dev": true, "dependencies": { "@qiwi/npm-registry-client": "^8.9.1", @@ -1987,7 +1905,7 @@ "cachedir": "^2.0.0", "charm": "^1.0.2", "minimatch": "^9.0.3", - "tar": "^6.2.0", + "tar": "^6.2.1", "tar-stream": "^3.1.6", "which": "^4.0.0" }, @@ -1995,52 +1913,13 @@ "node": ">=18.18.0" } }, - "node_modules/@definitelytyped/utils/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/@definitelytyped/utils/node_modules/isexe": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-3.1.1.tgz", - "integrity": "sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==", - "dev": true, - "engines": { - "node": ">=16" - } - }, - "node_modules/@definitelytyped/utils/node_modules/minimatch": { - "version": "9.0.3", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", - "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", - "dev": true, - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/@definitelytyped/utils/node_modules/which": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/which/-/which-4.0.0.tgz", - "integrity": "sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg==", + "node_modules/@definitelytyped/utils/node_modules/@types/node": { + "version": "18.19.33", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.19.33.tgz", + "integrity": "sha512-NR9+KrpSajr2qBVp/Yt5TU/rp+b5Mayi3+OlMlcg2cVCfRmcG5PWZ7S4+MG9PZ5gWBoc9Pd0BKSRViuBCRPu0A==", "dev": true, "dependencies": { - "isexe": "^3.1.1" - }, - "bin": { - "node-which": "bin/which.js" - }, - "engines": { - "node": "^16.13.0 || >=18.0.0" + "undici-types": "~5.26.4" } }, "node_modules/@eslint-community/eslint-utils": { @@ -2096,10 +1975,20 @@ "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", "dev": true }, + "node_modules/@eslint/eslintrc/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, "node_modules/@eslint/eslintrc/node_modules/globals": { - "version": "13.23.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.23.0.tgz", - "integrity": "sha512-XAmF0RjlrjY23MA51q3HltdlGxUpXPvg0GioKiD9X6HD28iMjo2dKC8Vqwm7lne4GNr78+RHTfliktR6ZH09wA==", + "version": "13.24.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", + "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", "dev": true, "dependencies": { "type-fest": "^0.20.2" @@ -2123,6 +2012,30 @@ "js-yaml": "bin/js-yaml.js" } }, + "node_modules/@eslint/eslintrc/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/@eslint/eslintrc/node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/@eslint/js": { "version": "8.57.0", "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.0.tgz", @@ -2167,6 +2080,28 @@ "node": ">=10.10.0" } }, + "node_modules/@humanwhocodes/config-array/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/@humanwhocodes/config-array/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, "node_modules/@humanwhocodes/module-importer": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", @@ -2181,21 +2116,117 @@ } }, "node_modules/@humanwhocodes/object-schema": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.2.tgz", - "integrity": "sha512-6EwiSjwWYP7pTckG6I5eyFANjPhmPjUX9JRLUSfNPC7FX7zK9gyZAfUEaECL6ALTpGX5AjnBq3C9XmVWPitNpw==", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz", + "integrity": "sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==", "dev": true }, - "node_modules/@istanbuljs/schema": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", - "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", + "node_modules/@isaacs/cliui": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", + "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", "dev": true, + "dependencies": { + "string-width": "^5.1.2", + "string-width-cjs": "npm:string-width@^4.2.0", + "strip-ansi": "^7.0.1", + "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", + "wrap-ansi": "^8.1.0", + "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" + }, "engines": { - "node": ">=8" + "node": ">=12" } }, - "node_modules/@jridgewell/gen-mapping": { + "node_modules/@isaacs/cliui/node_modules/ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", + "dev": true + }, + "node_modules/@isaacs/cliui/node_modules/string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "dev": true, + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@isaacs/cliui/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dev": true, + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/wrap-ansi": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/@istanbuljs/schema": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", + "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jridgewell/gen-mapping": { "version": "0.3.5", "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", @@ -2210,9 +2241,9 @@ } }, "node_modules/@jridgewell/resolve-uri": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", - "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", "dev": true, "engines": { "node": ">=6.0.0" @@ -2228,19 +2259,19 @@ } }, "node_modules/@jridgewell/source-map": { - "version": "0.3.5", - "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.5.tgz", - "integrity": "sha512-UTYAUj/wviwdsMfzoSJspJxbkH5o1snzwX0//0ENX1u/55kkZZkcTZP6u9bwKGkv+dkk9at4m1Cpt0uY80kcpQ==", + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.6.tgz", + "integrity": "sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==", "dev": true, "dependencies": { - "@jridgewell/gen-mapping": "^0.3.0", - "@jridgewell/trace-mapping": "^0.3.9" + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25" } }, "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.4.14", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", - "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==", + "version": "1.4.15", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", + "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", "dev": true }, "node_modules/@jridgewell/trace-mapping": { @@ -2288,10 +2319,20 @@ "node": ">= 8" } }, + "node_modules/@pkgjs/parseargs": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", + "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", + "dev": true, + "optional": true, + "engines": { + "node": ">=14" + } + }, "node_modules/@pkgr/core": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/@pkgr/core/-/core-0.1.0.tgz", - "integrity": "sha512-Zwq5OCzuwJC2jwqmpEQt7Ds1DTi6BWSwoGkbb1n9pO3hzb35BoJELx7c0T23iDkBGkh2e7tvOtjF3tr3OaQHDQ==", + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@pkgr/core/-/core-0.1.1.tgz", + "integrity": "sha512-cq8o4cWH0ibXh9VGi5P20Tu9XF/0fFXl9EUinr9QfTM7a7p0oTA4iJRCQWppXR1Pg8dSM0UCItCkPwsk9qWWYA==", "dev": true, "engines": { "node": "^12.20.0 || ^14.18.0 || >=16.0.0" @@ -2322,65 +2363,16 @@ "npmlog": "2 || ^3.1.0 || ^4.0.0" } }, - "node_modules/@qiwi/npm-registry-client/node_modules/concat-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-2.0.0.tgz", - "integrity": "sha512-MWufYdFw53ccGjCA+Ol7XJYpAlW6/prSMzuPOTRnJGcGzuhLn4Scrz7qf6o8bROZ514ltazcIFJZevcfbo0x7A==", - "dev": true, - "engines": [ - "node >= 6.0" - ], - "dependencies": { - "buffer-from": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^3.0.2", - "typedarray": "^0.0.6" - } - }, - "node_modules/@qiwi/npm-registry-client/node_modules/readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "dev": true, - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/@qiwi/npm-registry-client/node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/@qiwi/npm-registry-client/node_modules/ssri": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-8.0.1.tgz", - "integrity": "sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ==", + "node_modules/@qiwi/npm-registry-client/node_modules/semver": { + "version": "7.6.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", + "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", "dev": true, - "dependencies": { - "minipass": "^3.1.1" + "bin": { + "semver": "bin/semver.js" }, "engines": { - "node": ">= 8" + "node": ">=10" } }, "node_modules/@sinonjs/commons": { @@ -2428,9 +2420,9 @@ "dev": true }, "node_modules/@socket.io/component-emitter": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@socket.io/component-emitter/-/component-emitter-3.1.0.tgz", - "integrity": "sha512-+9jVqKhRSpsc591z5vX+X5Yyw+he/HCB4iQ/RYxw35CEPaY1gnsNE43nf9n9AaYjAQrTiI/mOwKUKdUs9vf7Xg==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@socket.io/component-emitter/-/component-emitter-3.1.2.tgz", + "integrity": "sha512-9BCxFwvbGg/RsZK9tjXd8s4UcwR0MWeFQ1XEKIQVVvAGJyINdrqKMcTRyLoK8Rse1GjzLV9cwjWV1olXRWEXVA==", "dev": true }, "node_modules/@tootallnate/once": { @@ -2443,27 +2435,27 @@ } }, "node_modules/@tsconfig/node10": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.8.tgz", - "integrity": "sha512-6XFfSQmMgq0CFLY1MslA/CPUfhIL919M1rMsa5lP2P097N2Wd1sSX0tx1u4olM16fLNhtHZpRhedZJphNJqmZg==", + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.11.tgz", + "integrity": "sha512-DcRjDCujK/kCk/cUe8Xz8ZSpm8mS3mNNpta+jGCA6USEDfktlNvm1+IuZ9eTcDbNk41BHwpHHeW+N1lKCz4zOw==", "dev": true }, "node_modules/@tsconfig/node12": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.9.tgz", - "integrity": "sha512-/yBMcem+fbvhSREH+s14YJi18sp7J9jpuhYByADT2rypfajMZZN4WQ6zBGgBKp53NKmqI36wFYDb3yaMPurITw==", + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz", + "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==", "dev": true }, "node_modules/@tsconfig/node14": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.1.tgz", - "integrity": "sha512-509r2+yARFfHHE7T6Puu2jjkoycftovhXRqW328PDXTVGKihlb1P8Z9mMZH04ebyajfRY7dedfGynlrFHJUQCg==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz", + "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==", "dev": true }, "node_modules/@tsconfig/node16": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.2.tgz", - "integrity": "sha512-eZxlbI8GZscaGS7kkc/trHTT5xgrjH3/1n2JDwusC9iahPKWMRvRjJSAN5mCXviuTGQ/lHnhvv8Q1YTpnfz9gA==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.4.tgz", + "integrity": "sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==", "dev": true }, "node_modules/@types/assert": { @@ -2488,9 +2480,9 @@ } }, "node_modules/@types/eslint": { - "version": "8.4.5", - "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.4.5.tgz", - "integrity": "sha512-dhsC09y1gpJWnK+Ff4SGvCuSnk9DaU0BJZSzOwa6GVSg65XtTugLBITDAAzRU5duGBoXBHpdR/9jHGxJjNflJQ==", + "version": "8.56.10", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.56.10.tgz", + "integrity": "sha512-Shavhk87gCtY2fhXDctcfS3e6FdxWkCx1iUZ9eEUbh7rTqlZT0/IzOkCOVt0fCjcFuZ9FPYfuezTBImfHCDBGQ==", "dev": true, "dependencies": { "@types/estree": "*", @@ -2498,9 +2490,9 @@ } }, "node_modules/@types/eslint-scope": { - "version": "3.7.4", - "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.4.tgz", - "integrity": "sha512-9K4zoImiZc3HlIp6AVUDE4CWYx22a+lhSZMYNpbjW04+YF0KWj4pJXnEMjdnFTiQibFFmElcsasJXDbdI/EPhA==", + "version": "3.7.7", + "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.7.tgz", + "integrity": "sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==", "dev": true, "dependencies": { "@types/eslint": "*", @@ -2514,9 +2506,9 @@ "dev": true }, "node_modules/@types/istanbul-lib-coverage": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz", - "integrity": "sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==", + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz", + "integrity": "sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==", "dev": true }, "node_modules/@types/json-schema": { @@ -2538,20 +2530,14 @@ "dev": true }, "node_modules/@types/node": { - "version": "18.19.13", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.19.13.tgz", - "integrity": "sha512-kgnbRDj8ioDyGxoiaXsiu1Ybm/K14ajCgMOkwiqpHrnF7d7QiYRoRqHIpglMMs3DwXinlK4qJ8TZGlj4hfleJg==", + "version": "20.12.12", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.12.12.tgz", + "integrity": "sha512-eWLDGF/FOSPtAvEqeRAQ4C8LSA7M1I7i0ky1I8U7kD1J5ITyW3AsRhQrKVoWf5pFKZ2kILsEGJhsI9r93PYnOw==", "dev": true, "dependencies": { "undici-types": "~5.26.4" } }, - "node_modules/@types/parsimmon": { - "version": "1.10.6", - "resolved": "https://registry.npmjs.org/@types/parsimmon/-/parsimmon-1.10.6.tgz", - "integrity": "sha512-FwAQwMRbkhx0J6YELkwIpciVzCcgEqXEbIrIn3a2P5d3kGEHQ3wVhlN3YdVepYP+bZzCYO6OjmD4o9TGOZ40rA==", - "dev": true - }, "node_modules/@types/semver": { "version": "7.5.8", "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.8.tgz", @@ -2594,13 +2580,10 @@ } }, "node_modules/@typescript-eslint/eslint-plugin/node_modules/semver": { - "version": "7.6.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", - "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", + "version": "7.6.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", + "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, "bin": { "semver": "bin/semver.js" }, @@ -2721,38 +2704,11 @@ } } }, - "node_modules/@typescript-eslint/typescript-estree/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch": { - "version": "9.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz", - "integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==", - "dev": true, - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, "node_modules/@typescript-eslint/typescript-estree/node_modules/semver": { - "version": "7.6.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", - "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", + "version": "7.6.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", + "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, "bin": { "semver": "bin/semver.js" }, @@ -2786,13 +2742,10 @@ } }, "node_modules/@typescript-eslint/utils/node_modules/semver": { - "version": "7.6.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", - "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", + "version": "7.6.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", + "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, "bin": { "semver": "bin/semver.js" }, @@ -2995,9 +2948,9 @@ } }, "node_modules/acorn": { - "version": "8.10.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.10.0.tgz", - "integrity": "sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==", + "version": "8.11.3", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz", + "integrity": "sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==", "dev": true, "bin": { "acorn": "bin/acorn" @@ -3025,9 +2978,9 @@ } }, "node_modules/acorn-walk": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", - "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==", + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.2.tgz", + "integrity": "sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A==", "dev": true, "engines": { "node": ">=0.4.0" @@ -3046,16 +2999,19 @@ } }, "node_modules/aggregate-error": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", - "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-4.0.1.tgz", + "integrity": "sha512-0poP0T7el6Vq3rstR8Mn4V/IQrpBLO6POkUSrN7RhyY+GF/InCFShQzsQ39T25gkHhLgSLByyAz+Kjb+c2L98w==", "dev": true, "dependencies": { - "clean-stack": "^2.0.0", - "indent-string": "^4.0.0" + "clean-stack": "^4.0.0", + "indent-string": "^5.0.0" }, "engines": { - "node": ">=8" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/ajv": { @@ -3092,15 +3048,15 @@ } }, "node_modules/ajv-formats/node_modules/ajv": { - "version": "8.11.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz", - "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==", + "version": "8.13.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.13.0.tgz", + "integrity": "sha512-PRA911Blj99jR5RMeTunVbNXMF6Lp4vZXnk5GQjcnUWUTsrXtekg/pnmFFI2u/I36Y/2bITGS30GZCXei6uNkA==", "dev": true, "dependencies": { - "fast-deep-equal": "^3.1.1", + "fast-deep-equal": "^3.1.3", "json-schema-traverse": "^1.0.0", "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" + "uri-js": "^4.4.1" }, "funding": { "type": "github", @@ -3123,24 +3079,21 @@ } }, "node_modules/ansi-colors": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-1.1.0.tgz", - "integrity": "sha512-SFKX67auSNoVR38N3L+nvsPjOE0bybKTYbkf5tRvushrAPQ9V75huw0ZxBkKVeRU9kqH3d6HA4xTckbwZ4ixmA==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", + "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", "dev": true, - "dependencies": { - "ansi-wrap": "^0.1.0" - }, "engines": { - "node": ">=0.10.0" + "node": ">=6" } }, "node_modules/ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", "dev": true, "engines": { - "node": ">=0.10.0" + "node": ">=8" } }, "node_modules/ansi-styles": { @@ -3158,7 +3111,7 @@ "node_modules/ansi-wrap": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/ansi-wrap/-/ansi-wrap-0.1.0.tgz", - "integrity": "sha1-qCJQ3bABXponyoLoLqYDu/pF768=", + "integrity": "sha512-ZyznvL8k/FZeQHr2T6LzcJ/+vBApDnMNZvfVFy3At0knswWd6rJ3/0Hhmpu8oqa6C92npmozs890sX9Dl6q+Qw==", "dev": true, "engines": { "node": ">=0.10.0" @@ -3188,6 +3141,7 @@ "version": "1.1.7", "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.7.tgz", "integrity": "sha512-nxwy40TuMiUGqMyRHgCSWZ9FM4VAoRP4xUYSTv5ImRog+h9yISPbVH7H8fASCIzYn9wlEv4zvFL7uKDMCFQm3g==", + "deprecated": "This package is no longer supported.", "dev": true, "optional": true, "dependencies": { @@ -3195,6 +3149,46 @@ "readable-stream": "^2.0.6" } }, + "node_modules/are-we-there-yet/node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true, + "optional": true + }, + "node_modules/are-we-there-yet/node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dev": true, + "optional": true, + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/are-we-there-yet/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true, + "optional": true + }, + "node_modules/are-we-there-yet/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "optional": true, + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, "node_modules/arg": { "version": "4.1.3", "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", @@ -3213,7 +3207,8 @@ "node_modules/argv": { "version": "0.0.2", "resolved": "https://registry.npmjs.org/argv/-/argv-0.0.2.tgz", - "integrity": "sha1-7L0W+JSbFXGDcRsb2jNPN4QBhas=", + "integrity": "sha512-dEamhpPEwRUBpLNHeuCm/v+g0anFByHahxodVO/BbAarHVBBg2MccCwf9K+o1Pof+2btdnkJelYVUWjW/VrATw==", + "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.", "dev": true, "engines": { "node": ">=0.6.10" @@ -3222,7 +3217,7 @@ "node_modules/arr-diff": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", - "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", + "integrity": "sha512-YVIQ82gZPGBebQV/a8dar4AitzCQs0jjXwMPZllpXMaGjXPYVUawSxQrRsjhjupyVxEvbHgUmIhKVlND+j02kA==", "dev": true, "engines": { "node": ">=0.10.0" @@ -3231,20 +3226,23 @@ "node_modules/arr-union": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", - "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", + "integrity": "sha512-sKpyeERZ02v1FeCZT8lrfJq5u6goHCtpTAzPwJYe7c8SPFOboNjNg1vz2L4VTn9T4PQxEx13TbXLmYUcS6Ug7Q==", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/array-buffer-byte-length": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz", - "integrity": "sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.1.tgz", + "integrity": "sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", - "is-array-buffer": "^3.0.1" + "call-bind": "^1.0.5", + "is-array-buffer": "^3.0.4" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -3260,15 +3258,16 @@ } }, "node_modules/array-includes": { - "version": "3.1.7", - "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.7.tgz", - "integrity": "sha512-dlcsNBIiWhPkHdOEEKnehA+RNUWDc4UqFtnIXU4uuYDPtA4LDkr7qip2p0VvFAEXNDr0yWZ9PJyIRiGjRLQzwQ==", + "version": "3.1.8", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.8.tgz", + "integrity": "sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "get-intrinsic": "^1.2.1", + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-object-atoms": "^1.0.0", + "get-intrinsic": "^1.2.4", "is-string": "^1.0.7" }, "engines": { @@ -3297,16 +3296,17 @@ } }, "node_modules/array.prototype.findlastindex": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.3.tgz", - "integrity": "sha512-LzLoiOMAxvy+Gd3BAq3B7VeIgPdo+Q8hthvKtXybMvRV0jrXfJM/t8mw7nNlpEcVlVUnCnM2KSX4XU5HmpodOA==", + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.5.tgz", + "integrity": "sha512-zfETvRFA8o7EiNn++N5f/kaCw221hrpGsDmcpndVupkPzEc1Wuf3VgC0qby1BbHs7f5DVYjgtEU2LLh5bqeGfQ==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "es-shim-unscopables": "^1.0.0", - "get-intrinsic": "^1.2.1" + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "es-shim-unscopables": "^1.0.2" }, "engines": { "node": ">= 0.4" @@ -3352,17 +3352,18 @@ } }, "node_modules/arraybuffer.prototype.slice": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.2.tgz", - "integrity": "sha512-yMBKppFur/fbHu9/6USUe03bZ4knMYiwFBcyiaXB8Go0qNehwX6inYPzK9U0NeQvGxKthcmHcaR8P5MStSRBAw==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.3.tgz", + "integrity": "sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==", "dev": true, "dependencies": { - "array-buffer-byte-length": "^1.0.0", - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "get-intrinsic": "^1.2.1", - "is-array-buffer": "^3.0.2", + "array-buffer-byte-length": "^1.0.1", + "call-bind": "^1.0.5", + "define-properties": "^1.2.1", + "es-abstract": "^1.22.3", + "es-errors": "^1.2.1", + "get-intrinsic": "^1.2.3", + "is-array-buffer": "^3.0.4", "is-shared-array-buffer": "^1.0.2" }, "engines": { @@ -3397,7 +3398,7 @@ "node_modules/assert-plus": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "integrity": "sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==", "dev": true, "engines": { "node": ">=0.8" @@ -3406,7 +3407,7 @@ "node_modules/assign-symbols": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", - "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=", + "integrity": "sha512-Q+JC7Whu8HhmTdBph/Tq59IoRtoy6KAm5zzPv00WdujX82lbAL8K7WVjne7vdCsAmbF4AYaDOPyO3k0kl8qIrw==", "dev": true, "engines": { "node": ">=0.10.0" @@ -3441,15 +3442,18 @@ "node_modules/asynckit": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", "dev": true }, "node_modules/available-typed-arrays": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz", - "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==", + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", + "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==", "dev": true, - "engines": { + "dependencies": { + "possible-typed-array-names": "^1.0.0" + }, + "engines": { "node": ">= 0.4" }, "funding": { @@ -3459,28 +3463,28 @@ "node_modules/aws-sign2": { "version": "0.7.0", "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", - "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=", + "integrity": "sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA==", "dev": true, "engines": { "node": "*" } }, "node_modules/aws4": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz", - "integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==", + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.13.0.tgz", + "integrity": "sha512-3AungXC4I8kKsS9PuS4JH2nc+0bVY/mjgrephHTIi8fpEeGsTHBUJeosp0Wc1myYMElmD0B3Oc4XL/HVJ4PV2g==", "dev": true }, "node_modules/b4a": { - "version": "1.6.4", - "resolved": "https://registry.npmjs.org/b4a/-/b4a-1.6.4.tgz", - "integrity": "sha512-fpWrvyVHEKyeEvbKZTVOeZF3VSKKWtJxFIxX/jaVPf+cLbGUSitjb49pHLqPV2BUNNZ0LcoeEGfE/YCpyDYHIw==", + "version": "1.6.6", + "resolved": "https://registry.npmjs.org/b4a/-/b4a-1.6.6.tgz", + "integrity": "sha512-5Tk1HLk6b6ctmjIkAcU/Ujv/1WqiDl0F0JdRCR80VsOcUlHcu7pWeWRlOqQLHfDEsVx9YH/aif5AG4ehoCtTmg==", "dev": true }, "node_modules/babel-code-frame": { "version": "6.26.0", "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", - "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", + "integrity": "sha512-XqYMR2dfdGMW+hd0IUZ2PwK+fGeFkOxZJ0wY+JaQAHzt1Zx8LcvpiZD2NiGkEG8qx0CfkAOr5xt76d1e8vG90g==", "dev": true, "dependencies": { "chalk": "^1.1.3", @@ -3488,10 +3492,19 @@ "js-tokens": "^3.0.2" } }, + "node_modules/babel-code-frame/node_modules/ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/babel-code-frame/node_modules/ansi-styles": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "integrity": "sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==", "dev": true, "engines": { "node": ">=0.10.0" @@ -3500,7 +3513,7 @@ "node_modules/babel-code-frame/node_modules/chalk": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "integrity": "sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==", "dev": true, "dependencies": { "ansi-styles": "^2.2.1", @@ -3516,13 +3529,25 @@ "node_modules/babel-code-frame/node_modules/js-tokens": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", - "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=", + "integrity": "sha512-RjTcuD4xjtthQkaWH7dFlH85L+QaVtSoOyGdZ3g6HFhS9dFNDfLyqgm2NFe2X6cQpeFmt0452FJjFG5UameExg==", "dev": true }, + "node_modules/babel-code-frame/node_modules/strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==", + "dev": true, + "dependencies": { + "ansi-regex": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/babel-code-frame/node_modules/supports-color": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "integrity": "sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==", "dev": true, "engines": { "node": ">=0.8.0" @@ -3659,28 +3684,19 @@ } }, "node_modules/babel-plugin-polyfill-corejs2": { - "version": "0.4.10", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.10.tgz", - "integrity": "sha512-rpIuu//y5OX6jVU+a5BCn1R5RSZYWAl2Nar76iwaOdycqb6JPxediskWFMMl7stfwNJR4b7eiQvh5fB5TEQJTQ==", + "version": "0.4.11", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.11.tgz", + "integrity": "sha512-sMEJ27L0gRHShOh5G54uAAPaiCOygY/5ratXuiyb2G46FmlSpc9eFCzYVyDiPxfNbwzA7mYahmjQc5q+CZQ09Q==", "dev": true, "dependencies": { "@babel/compat-data": "^7.22.6", - "@babel/helper-define-polyfill-provider": "^0.6.1", + "@babel/helper-define-polyfill-provider": "^0.6.2", "semver": "^6.3.1" }, "peerDependencies": { "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" } }, - "node_modules/babel-plugin-polyfill-corejs2/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, "node_modules/babel-plugin-polyfill-corejs3": { "version": "0.10.4", "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.10.4.tgz", @@ -3695,12 +3711,12 @@ } }, "node_modules/babel-plugin-polyfill-regenerator": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.1.tgz", - "integrity": "sha512-JfTApdE++cgcTWjsiCQlLyFBMbTUft9ja17saCc93lgV33h4tuCVj7tlvu//qpLwaG+3yEz7/KhahGrUMkVq9g==", + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.2.tgz", + "integrity": "sha512-2R25rQZWP63nGwaAswvDazbPXfrM3HwVoBXK6HcqeKrSrL/JqcC/rDcf95l4r7LXLyxDXc8uQDa064GubtCABg==", "dev": true, "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.6.1" + "@babel/helper-define-polyfill-provider": "^0.6.2" }, "peerDependencies": { "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" @@ -3721,11 +3737,18 @@ } }, "node_modules/balanced-match": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", "dev": true }, + "node_modules/bare-events": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/bare-events/-/bare-events-2.2.2.tgz", + "integrity": "sha512-h7z00dWdG0PYOQEvChhOSWvOfkIKsdZGkWr083FgN/HyoQuebSew/cgirYqh9SCuy/hRvxc5Vy6Fw8xAmYHLkQ==", + "dev": true, + "optional": true + }, "node_modules/base64-js": { "version": "1.5.1", "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", @@ -3758,7 +3781,7 @@ "node_modules/bcrypt-pbkdf": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", - "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", + "integrity": "sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==", "dev": true, "dependencies": { "tweetnacl": "^0.14.3" @@ -3767,7 +3790,7 @@ "node_modules/benchmark": { "version": "2.1.4", "resolved": "https://registry.npmjs.org/benchmark/-/benchmark-2.1.4.tgz", - "integrity": "sha1-CfPeMckWQl1JjMLuVloOvzwqVik=", + "integrity": "sha512-l9MlfN4M1K/H2fbhfMy3B7vJd6AGKJVQn2h6Sg/Yx+KckoUA7ewS5Vv6TjSq18ooE1kS9hhAlQRH3AkXIh/aOQ==", "dev": true, "dependencies": { "lodash": "^4.17.4", @@ -3789,7 +3812,7 @@ "node_modules/bit-twiddle": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/bit-twiddle/-/bit-twiddle-1.0.2.tgz", - "integrity": "sha1-DGwfq+KyPRcXPZpht7cJPrnhdp4=", + "integrity": "sha512-B9UhK0DKFZhoTFcfvAzhqsjStvGJp9vYWf3+6SNTtdSQnvIgfkHbgHrg/e4+TH71N2GDu8tpmCVoyfrL1d7ntA==", "dev": true }, "node_modules/bl": { @@ -3803,20 +3826,6 @@ "readable-stream": "^3.4.0" } }, - "node_modules/bl/node_modules/readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", - "dev": true, - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, "node_modules/body-parser": { "version": "1.20.2", "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.2.tgz", @@ -3853,44 +3862,16 @@ "node_modules/body-parser/node_modules/ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", "dev": true }, - "node_modules/body-parser/node_modules/on-finished": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", - "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", - "dev": true, - "dependencies": { - "ee-first": "1.1.1" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/body-parser/node_modules/qs": { - "version": "6.11.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", - "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", - "dev": true, - "dependencies": { - "side-channel": "^1.0.4" - }, - "engines": { - "node": ">=0.6" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", "dev": true, "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" + "balanced-match": "^1.0.0" } }, "node_modules/braces": { @@ -3953,71 +3934,29 @@ } }, "node_modules/browserstack-local": { - "version": "1.4.8", - "resolved": "https://registry.npmjs.org/browserstack-local/-/browserstack-local-1.4.8.tgz", - "integrity": "sha512-s+mc3gTOJwELdLWi4qFVKtGwMbb5JWsR+JxKlMaJkRJxoZ0gg3WREgPxAN0bm6iU5+S4Bi0sz0oxBRZT8BiNsQ==", + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/browserstack-local/-/browserstack-local-1.5.5.tgz", + "integrity": "sha512-jKne7yosrMcptj3hqxp36TP9k0ZW2sCqhyurX24rUL4G3eT7OLgv+CSQN8iq5dtkv5IK+g+v8fWvsiC/S9KxMg==", "dev": true, "dependencies": { - "https-proxy-agent": "^4.0.0", + "agent-base": "^6.0.2", + "https-proxy-agent": "^5.0.1", "is-running": "^2.1.0", "ps-tree": "=1.2.0", "temp-fs": "^0.9.9" } }, - "node_modules/browserstack-local/node_modules/agent-base": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-5.1.1.tgz", - "integrity": "sha512-TMeqbNl2fMW0nMjTEPOwe3J/PRFP4vqeoNuQMG0HlMrtm5QxKqdvAkZ1pRBQ/ulIyDD5Yq0nJ7YbdD8ey0TO3g==", - "dev": true, - "engines": { - "node": ">= 6.0.0" - } - }, "node_modules/browserstack-local/node_modules/https-proxy-agent": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-4.0.0.tgz", - "integrity": "sha512-zoDhWrkR3of1l9QAL8/scJZyLu8j/gBkcwcaQOZh7Gyh/+uJQzGVETdgT30akuwkpL8HTRfssqI3BZuV18teDg==", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", + "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", "dev": true, "dependencies": { - "agent-base": "5", + "agent-base": "6", "debug": "4" }, "engines": { - "node": ">= 6.0.0" - } - }, - "node_modules/browserstack/node_modules/agent-base": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.3.0.tgz", - "integrity": "sha512-salcGninV0nPrwpGNn4VTXBb1SOuXQBiqbrNXoeizJsHrsL6ERFM2Ne3JUSBWRE6aeNJI2ROP/WEEIDUiDe3cg==", - "dev": true, - "dependencies": { - "es6-promisify": "^5.0.0" - }, - "engines": { - "node": ">= 4.0.0" - } - }, - "node_modules/browserstack/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/browserstack/node_modules/https-proxy-agent": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-2.2.4.tgz", - "integrity": "sha512-OmvfoQ53WLjtA9HeYP9RNrWMJzzAz1JGaSFr1nijg0PVR1JaD/xbJq1mdEIIlxGpXp9eSe/O2LgU9DJmTPd0Eg==", - "dev": true, - "dependencies": { - "agent-base": "^4.3.0", - "debug": "^3.1.0" - }, - "engines": { - "node": ">= 4.5.0" + "node": ">= 6" } }, "node_modules/buffer": { @@ -4045,25 +3984,43 @@ } }, "node_modules/buffer-from": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", - "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", "dev": true }, "node_modules/builtin-modules": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", - "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.3.0.tgz", + "integrity": "sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==", "dev": true, "engines": { - "node": ">=0.10.0" + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/builtins": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/builtins/-/builtins-1.0.3.tgz", - "integrity": "sha1-y5T662HIaWRR2zZTThQi+U8K7og=", - "dev": true + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/builtins/-/builtins-5.1.0.tgz", + "integrity": "sha512-SW9lzGTLvWTP1AY8xeAMZimqDrIaSdLQUcVr9DMef51niJ022Ri87SwRRKYm4A6iHfkPaiVUu/Duw2Wc4J7kKg==", + "dev": true, + "dependencies": { + "semver": "^7.0.0" + } + }, + "node_modules/builtins/node_modules/semver": { + "version": "7.6.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", + "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } }, "node_modules/bytes": { "version": "3.1.2", @@ -4099,62 +4056,48 @@ "node": ">=14.14.0" } }, - "node_modules/c8/node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/c8/node_modules/cliui": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", - "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", + "node_modules/cachedir": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/cachedir/-/cachedir-2.4.0.tgz", + "integrity": "sha512-9EtFOZR8g22CL7BWjJ9BUx1+A/djkofnyW3aOXZORNW2kxoUpx2h+uN2cOqwPmFhnpVmxg+KW2OjOSgChTEvsQ==", "dev": true, - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.1", - "wrap-ansi": "^7.0.0" - }, "engines": { - "node": ">=12" + "node": ">=6" } }, - "node_modules/c8/node_modules/find-up": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "node_modules/call-bind": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz", + "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==", "dev": true, "dependencies": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "set-function-length": "^1.2.1" }, "engines": { - "node": ">=10" + "node": ">= 0.4" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/c8/node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", "dev": true, "engines": { - "node": ">=8" + "node": ">=6" } }, - "node_modules/c8/node_modules/locate-path": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "node_modules/camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", "dev": true, - "dependencies": { - "p-locate": "^5.0.0" - }, "engines": { "node": ">=10" }, @@ -4162,182 +4105,59 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/c8/node_modules/p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "node_modules/caniuse-lite": { + "version": "1.0.30001620", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001620.tgz", + "integrity": "sha512-WJvYsOjd1/BYUY6SNGUosK9DUidBPDTnOARHp3fSmFO1ekdxaY6nKRttEVrfMmYi80ctS0kz1wiWmm14fVc3ew==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ] + }, + "node_modules/caseless": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", + "integrity": "sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==", + "dev": true + }, + "node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", "dev": true, "dependencies": { - "yocto-queue": "^0.1.0" + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" }, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=4" } }, - "node_modules/c8/node_modules/p-locate": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "node_modules/charenc": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/charenc/-/charenc-0.0.2.tgz", + "integrity": "sha512-yrLQ/yVUFXkzg7EDQsPieE/53+0RlaWTs+wBrvW36cyilJ2SaDWfl4Yj7MtLTXleV9uEKefbAGUPv2/iWSooRA==", "dev": true, - "dependencies": { - "p-limit": "^3.0.2" - }, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/c8/node_modules/path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/c8/node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/c8/node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/c8/node_modules/yargs": { - "version": "17.7.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", - "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", - "dev": true, - "dependencies": { - "cliui": "^8.0.1", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.3", - "y18n": "^5.0.5", - "yargs-parser": "^21.1.1" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/c8/node_modules/yargs-parser": { - "version": "21.1.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", - "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", - "dev": true, - "engines": { - "node": ">=12" - } - }, - "node_modules/cachedir": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/cachedir/-/cachedir-2.4.0.tgz", - "integrity": "sha512-9EtFOZR8g22CL7BWjJ9BUx1+A/djkofnyW3aOXZORNW2kxoUpx2h+uN2cOqwPmFhnpVmxg+KW2OjOSgChTEvsQ==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/call-bind": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", - "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", - "dev": true, - "dependencies": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/caniuse-lite": { - "version": "1.0.30001605", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001605.tgz", - "integrity": "sha512-nXwGlFWo34uliI9z3n6Qc0wZaf7zaZWA1CPZ169La5mV3I/gem7bst0vr5XQH5TJXZIMfDeZyOrZnSlVzKxxHQ==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/caniuse-lite" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ] - }, - "node_modules/caseless": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", - "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", - "dev": true - }, - "node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/charenc": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/charenc/-/charenc-0.0.2.tgz", - "integrity": "sha512-yrLQ/yVUFXkzg7EDQsPieE/53+0RlaWTs+wBrvW36cyilJ2SaDWfl4Yj7MtLTXleV9uEKefbAGUPv2/iWSooRA==", - "dev": true, - "engines": { - "node": "*" + "node": "*" } }, "node_modules/charm": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/charm/-/charm-1.0.2.tgz", - "integrity": "sha1-it02cVOm2aWBMxBSxAkJkdqZXjU=", + "integrity": "sha512-wqW3VdPnlSWT4eRiYX+hcs+C6ViBPUWk1qTCd+37qw9kEm/a5n2qcyQDMBWvSYKN/ctqZzeXNQaeBjOetJJUkw==", "dev": true, "dependencies": { "inherits": "^2.0.1" @@ -4367,6 +4187,18 @@ "fsevents": "~2.3.2" } }, + "node_modules/chokidar/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, "node_modules/chownr": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", @@ -4377,79 +4209,53 @@ } }, "node_modules/chrome-trace-event": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.2.tgz", - "integrity": "sha512-9e/zx1jw7B4CO+c/RXoCsfg/x1AfUBioy4owYH0bJprEYAx5hRFLRhWBqHAG57D0ZM4H7vxbP7bPe0VwhQRYDQ==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz", + "integrity": "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==", "dev": true, - "dependencies": { - "tslib": "^1.9.0" - }, "engines": { "node": ">=6.0" } }, "node_modules/clean-stack": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", - "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/cliui": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", - "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-4.2.0.tgz", + "integrity": "sha512-LYv6XPxoyODi36Dp976riBtSY27VmFo+MKqEU9QCCWyTrdEPDog+RWA7xQWHi6Vbp61j5c4cdzzX1NidnwtUWg==", "dev": true, "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" - } - }, - "node_modules/cliui/node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, + "escape-string-regexp": "5.0.0" + }, "engines": { - "node": ">=8" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/cliui/node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "node_modules/clean-stack/node_modules/escape-string-regexp": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", + "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==", "dev": true, "engines": { - "node": ">=8" - } - }, - "node_modules/cliui/node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" + "node": ">=12" }, - "engines": { - "node": ">=8" + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/cliui/node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "node_modules/cliui": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", "dev": true, "dependencies": { - "ansi-regex": "^5.0.1" + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" }, "engines": { - "node": ">=8" + "node": ">=12" } }, "node_modules/clone": { @@ -4484,7 +4290,7 @@ "node_modules/code-point-at": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", - "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", + "integrity": "sha512-RpAVKQA5T63xEj6/giIbUEtZwJ4UFIc3ZtvEkiaUERylqe8xb5IvqcgOurZLahv93CLKfxcw5YI+DZcUBRyLXA==", "dev": true, "optional": true, "engines": { @@ -4495,6 +4301,7 @@ "version": "3.8.3", "resolved": "https://registry.npmjs.org/codecov/-/codecov-3.8.3.tgz", "integrity": "sha512-Y8Hw+V3HgR7V71xWH2vQ9lyS358CbGCldWlJFR0JirqoGtOoas3R3/OclRTvgUYFK29mmJICDPauVKmpqbwhOA==", + "deprecated": "https://about.codecov.io/blog/codecov-uploader-deprecation-plan/", "dev": true, "dependencies": { "argv": "0.0.2", @@ -4510,19 +4317,6 @@ "node": ">=4.0" } }, - "node_modules/codecov/node_modules/js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", - "dev": true, - "dependencies": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, "node_modules/color-convert": { "version": "1.9.3", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", @@ -4535,7 +4329,7 @@ "node_modules/color-name": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", "dev": true }, "node_modules/color-support": { @@ -4580,7 +4374,7 @@ "node_modules/commondir": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", - "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", + "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==", "dev": true }, "node_modules/complex.js": { @@ -4598,9 +4392,24 @@ "node_modules/concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", "dev": true }, + "node_modules/concat-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-2.0.0.tgz", + "integrity": "sha512-MWufYdFw53ccGjCA+Ol7XJYpAlW6/prSMzuPOTRnJGcGzuhLn4Scrz7qf6o8bROZ514ltazcIFJZevcfbo0x7A==", + "dev": true, + "engines": [ + "node >= 6.0" + ], + "dependencies": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^3.0.2", + "typedarray": "^0.0.6" + } + }, "node_modules/connect": { "version": "3.7.0", "resolved": "https://registry.npmjs.org/connect/-/connect-3.7.0.tgz", @@ -4628,13 +4437,13 @@ "node_modules/connect/node_modules/ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", "dev": true }, "node_modules/console-control-strings": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", - "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=", + "integrity": "sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==", "dev": true, "optional": true }, @@ -4648,13 +4457,10 @@ } }, "node_modules/convert-source-map": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz", - "integrity": "sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==", - "dev": true, - "dependencies": { - "safe-buffer": "~5.1.1" - } + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "dev": true }, "node_modules/cookie": { "version": "0.4.2", @@ -4688,9 +4494,9 @@ } }, "node_modules/core-js": { - "version": "3.37.0", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.37.0.tgz", - "integrity": "sha512-fu5vHevQ8ZG4og+LXug8ulUtVxjOcEYvifJr7L5Bfq9GOztVqsKd9/59hUk2ZSbCrS3BqUr3EpaYGIYzq7g3Ug==", + "version": "3.37.1", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.37.1.tgz", + "integrity": "sha512-Xn6qmxrQZyB0FFY8E3bgRXei3lWDJHhvI+u0q9TKIYM49G8pAr0FgnnrFRAmsbptZL1yxRADVXn+x5AGsbBfyw==", "dev": true, "hasInstallScript": true, "funding": { @@ -4699,9 +4505,9 @@ } }, "node_modules/core-js-compat": { - "version": "3.36.1", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.36.1.tgz", - "integrity": "sha512-Dk997v9ZCt3X/npqzyGdTlq6t7lDBhZwGvV94PKzDArjp7BTRm7WlDAXYd/OWdeFHO8OChQYRJNJvUCqCbrtKA==", + "version": "3.37.1", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.37.1.tgz", + "integrity": "sha512-9TNiImhKvQqSUkOvk/mMRZzOANTiEVC7WaBNhHcKM7x+/5E1l5NvsysR19zuDQScE8k+kfQXWRN3AtS/eOSHpg==", "dev": true, "dependencies": { "browserslist": "^4.23.0" @@ -4714,7 +4520,7 @@ "node_modules/core-util-is": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", + "integrity": "sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==", "dev": true }, "node_modules/cors": { @@ -4750,6 +4556,12 @@ "node": ">= 8" } }, + "node_modules/cross-spawn/node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true + }, "node_modules/cross-spawn/node_modules/which": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", @@ -4777,13 +4589,13 @@ "node_modules/custom-event": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/custom-event/-/custom-event-1.0.1.tgz", - "integrity": "sha1-XQKkaFCt8bSjF5RqOSj8y1v9BCU=", + "integrity": "sha512-GAj5FOq0Hd+RsCGVJxZuKaIDXDf3h6GQoNEjFgbLLI/trgtavwUbSnZ5pVfg27DVCaWjIohryS0JFwIJyT2cMg==", "dev": true }, "node_modules/cwise-compiler": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/cwise-compiler/-/cwise-compiler-1.1.3.tgz", - "integrity": "sha1-9NZnQQ6FDToxOn0tt7HlBbsDTMU=", + "integrity": "sha512-WXlK/m+Di8DMMcCjcWr4i+XzcQra9eCdXIJrgh4TUgh0pIS/yJduLxS9JgefsHJ/YVLdgPtXm9r62W92MvanEQ==", "dev": true, "dependencies": { "uniq": "^1.0.0" @@ -4792,7 +4604,7 @@ "node_modules/dashdash": { "version": "1.14.1", "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", - "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", + "integrity": "sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g==", "dev": true, "dependencies": { "assert-plus": "^1.0.0" @@ -4801,25 +4613,76 @@ "node": ">=0.10" } }, - "node_modules/date-format": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/date-format/-/date-format-4.0.3.tgz", - "integrity": "sha512-7P3FyqDcfeznLZp2b+OMitV9Sz2lUnsT87WaTat9nVwqsBkTzPG3lPLNwW3en6F4pHUiWzr6vb8CLhjdK9bcxQ==", + "node_modules/data-view-buffer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.1.tgz", + "integrity": "sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA==", "dev": true, + "dependencies": { + "call-bind": "^1.0.6", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" + }, "engines": { - "node": ">=4.0" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "node_modules/data-view-byte-length": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/data-view-byte-length/-/data-view-byte-length-1.0.1.tgz", + "integrity": "sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ==", "dev": true, "dependencies": { - "ms": "2.1.2" + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" }, "engines": { - "node": ">=6.0" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/data-view-byte-offset": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/data-view-byte-offset/-/data-view-byte-offset-1.0.0.tgz", + "integrity": "sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.6", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/date-format": { + "version": "4.0.14", + "resolved": "https://registry.npmjs.org/date-format/-/date-format-4.0.14.tgz", + "integrity": "sha512-39BOQLs9ZjKh0/patS9nrT8wc3ioX3/eA/zgbKNopnF2wCqJEoxywwwElATYvRsXdnOxA/OQeQoFZ3rFjVajhg==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" }, "peerDependenciesMeta": { "supports-color": { @@ -4828,12 +4691,15 @@ } }, "node_modules/decamelize": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-4.0.0.tgz", + "integrity": "sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==", "dev": true, "engines": { - "node": ">=0.10.0" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/decimal.js": { @@ -4848,17 +4714,20 @@ "dev": true }, "node_modules/define-data-property": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.0.tgz", - "integrity": "sha512-UzGwzcjyv3OtAvolTj1GoyNYzfFR+iqbGjcnBEENZVCpM4/Ng1yhGNvS3lR/xDS74Tb2wGG9WzNSNIOS9UVb2g==", + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", + "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", "dev": true, "dependencies": { - "get-intrinsic": "^1.2.1", - "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.0" + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "gopd": "^1.0.1" }, "engines": { "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, "node_modules/define-properties": { @@ -4879,22 +4748,65 @@ } }, "node_modules/del": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/del/-/del-6.1.1.tgz", - "integrity": "sha512-ua8BhapfP0JUJKC/zV9yHHDW/rDoDxP4Zhn3AkA6/xT6gY7jYXJiaeyBZznYVujhZZET+UgcbZiQ7sN3WqcImg==", + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/del/-/del-7.1.0.tgz", + "integrity": "sha512-v2KyNk7efxhlyHpjEvfyxaAihKKK0nWCuf6ZtqZcFFpQRG0bJ12Qsr0RpvsICMjAAZ8DOVCxrlqpxISlMHC4Kg==", "dev": true, "dependencies": { - "globby": "^11.0.1", - "graceful-fs": "^4.2.4", - "is-glob": "^4.0.1", - "is-path-cwd": "^2.2.0", - "is-path-inside": "^3.0.2", - "p-map": "^4.0.0", + "globby": "^13.1.2", + "graceful-fs": "^4.2.10", + "is-glob": "^4.0.3", + "is-path-cwd": "^3.0.0", + "is-path-inside": "^4.0.0", + "p-map": "^5.5.0", "rimraf": "^3.0.2", - "slash": "^3.0.0" + "slash": "^4.0.0" }, "engines": { - "node": ">=10" + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/del/node_modules/globby": { + "version": "13.2.2", + "resolved": "https://registry.npmjs.org/globby/-/globby-13.2.2.tgz", + "integrity": "sha512-Y1zNGV+pzQdh7H39l9zgB4PJqjRNqydvdYCDG4HFXM4XuvSaQQlEc91IU1yALL8gUTDomgBAfz3XJdmUS+oo0w==", + "dev": true, + "dependencies": { + "dir-glob": "^3.0.1", + "fast-glob": "^3.3.0", + "ignore": "^5.2.4", + "merge2": "^1.4.1", + "slash": "^4.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/del/node_modules/is-path-inside": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-4.0.0.tgz", + "integrity": "sha512-lJJV/5dYS+RcL8uQdBDW9c9uWFLLBNRyFhnAKXw5tVqLlKZ4RMGZKv+YQ/IA3OhD+RpbJa1LLFM1FQPGyIXvOA==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/del/node_modules/slash": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz", + "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==", + "dev": true, + "engines": { + "node": ">=12" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -4903,7 +4815,7 @@ "node_modules/delayed-stream": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", "dev": true, "engines": { "node": ">=0.4.0" @@ -4912,7 +4824,7 @@ "node_modules/delegates": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", - "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=", + "integrity": "sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==", "dev": true, "optional": true }, @@ -4947,13 +4859,13 @@ "node_modules/di": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/di/-/di-0.0.1.tgz", - "integrity": "sha1-gGZJMmzqp8qjMG112YXqJ0i6kTw=", + "integrity": "sha512-uJaamHkagcZtHPqCIHZxnFrXlunQXgBOsZSUOWwFw31QJCAbyTBoHMW75YOTur5ZNx8pIeAKgf6GWIgaqqiLhA==", "dev": true }, "node_modules/diff": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz", - "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz", + "integrity": "sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==", "dev": true, "engines": { "node": ">=0.3.1" @@ -4986,7 +4898,7 @@ "node_modules/dom-serialize": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/dom-serialize/-/dom-serialize-2.2.1.tgz", - "integrity": "sha1-ViromZ9Evl6jB29UGdzVnrQ6yVs=", + "integrity": "sha512-Yra4DbvoW7/Z6LBN560ZwXMjoNOSAN2wRsKFGc4iBeso+mpIA6qj1vfdf9HpMaKAqG6wXTy+1SYEzmNpKXOSsQ==", "dev": true, "dependencies": { "custom-event": "~1.0.0", @@ -4996,9 +4908,9 @@ } }, "node_modules/dts-critic": { - "version": "3.3.8", - "resolved": "https://registry.npmjs.org/dts-critic/-/dts-critic-3.3.8.tgz", - "integrity": "sha512-7kBza3f+RV/3hVCQ9yIskkrC+49kzDDM7qogbBFgLQCiGOLmUhpjE9FSw2iOWLVyeLagRNj7SmxAhD2SizJ49w==", + "version": "3.3.11", + "resolved": "https://registry.npmjs.org/dts-critic/-/dts-critic-3.3.11.tgz", + "integrity": "sha512-HMO2f9AO7ge44YO8OK18f+cxm/IaE1CFuyNFbfJRCEbyazWj5X5wWDF6W4CGdo5Ax0ILYVfJ7L/rOwuUN1fzWw==", "dev": true, "dependencies": { "@definitelytyped/header-parser": "latest", @@ -5015,15 +4927,6 @@ "typescript": "*" } }, - "node_modules/dts-critic/node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, "node_modules/dts-critic/node_modules/ansi-styles": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", @@ -5077,6 +4980,15 @@ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, + "node_modules/dts-critic/node_modules/decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/dts-critic/node_modules/find-up": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", @@ -5090,15 +5002,6 @@ "node": ">=8" } }, - "node_modules/dts-critic/node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, "node_modules/dts-critic/node_modules/locate-path": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", @@ -5111,74 +5014,33 @@ "node": ">=8" } }, - "node_modules/dts-critic/node_modules/p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "node_modules/dts-critic/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", "dev": true, "dependencies": { - "p-limit": "^2.2.0" + "p-try": "^2.0.0" }, "engines": { - "node": ">=8" - } - }, - "node_modules/dts-critic/node_modules/path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/dts-critic/node_modules/require-main-filename": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", - "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", - "dev": true - }, - "node_modules/dts-critic/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/dts-critic/node_modules/string-width": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz", - "integrity": "sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==", - "dev": true, - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.0" + "node": ">=6" }, - "engines": { - "node": ">=8" + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/dts-critic/node_modules/strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "node_modules/dts-critic/node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", "dev": true, "dependencies": { - "ansi-regex": "^5.0.0" + "p-limit": "^2.2.0" }, "engines": { "node": ">=8" } }, - "node_modules/dts-critic/node_modules/which-module": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", - "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", - "dev": true - }, "node_modules/dts-critic/node_modules/wrap-ansi": { "version": "6.2.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", @@ -5261,15 +5123,6 @@ "typescript": ">= 3.0.0-dev || >= 3.1.0-dev || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.7.0-dev || >= 3.8.0-dev || >= 3.9.0-dev || >= 4.0.0-dev" } }, - "node_modules/dtslint/node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, "node_modules/dtslint/node_modules/ansi-styles": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", @@ -5323,6 +5176,15 @@ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, + "node_modules/dtslint/node_modules/decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/dtslint/node_modules/find-up": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", @@ -5336,15 +5198,6 @@ "node": ">=8" } }, - "node_modules/dtslint/node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, "node_modules/dtslint/node_modules/locate-path": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", @@ -5357,74 +5210,33 @@ "node": ">=8" } }, - "node_modules/dtslint/node_modules/p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "node_modules/dtslint/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", "dev": true, "dependencies": { - "p-limit": "^2.2.0" + "p-try": "^2.0.0" }, "engines": { - "node": ">=8" - } - }, - "node_modules/dtslint/node_modules/path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/dtslint/node_modules/require-main-filename": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", - "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", - "dev": true - }, - "node_modules/dtslint/node_modules/string-width": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz", - "integrity": "sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==", - "dev": true, - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.0" + "node": ">=6" }, - "engines": { - "node": ">=8" + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/dtslint/node_modules/strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "node_modules/dtslint/node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", "dev": true, "dependencies": { - "ansi-regex": "^5.0.0" + "p-limit": "^2.2.0" }, "engines": { "node": ">=8" } }, - "node_modules/dtslint/node_modules/strip-json-comments": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", - "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/dtslint/node_modules/which-module": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", - "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", - "dev": true - }, "node_modules/dtslint/node_modules/wrap-ansi": { "version": "6.2.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", @@ -5483,7 +5295,7 @@ "node_modules/dup": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/dup/-/dup-1.0.0.tgz", - "integrity": "sha1-UfxaxoX4GWRp3wuQXpNLIK9bQCk=", + "integrity": "sha512-Bz5jxMMC0wgp23Zm15ip1x8IhYRqJvF3nFC0UInJUDkN1z4uNPk9jTnfCUJXbOGiQ1JbXLQsiV41Fb+HXcj5BA==", "dev": true }, "node_modules/duplexer": { @@ -5514,10 +5326,16 @@ "node": ">=0.10.0" } }, + "node_modules/eastasianwidth": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", + "dev": true + }, "node_modules/ecc-jsbn": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", - "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", + "integrity": "sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw==", "dev": true, "dependencies": { "jsbn": "~0.1.0", @@ -5527,13 +5345,13 @@ "node_modules/ee-first": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=", + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==", "dev": true }, "node_modules/electron-to-chromium": { - "version": "1.4.727", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.727.tgz", - "integrity": "sha512-brpv4KTeC4g0Fx2FeIKytLd4UGn1zBQq5Lauy7zEWT9oqkaj5mgsxblEZIAOf1HHLlXxzr6adGViiBy5Z39/CA==", + "version": "1.4.776", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.776.tgz", + "integrity": "sha512-s694bi3+gUzlliqxjPHpa9NRTlhzTgB34aan+pVKZmOTGy2xoZXl+8E1B8i5p5rtev3PKMK/H4asgNejC+YHNg==", "dev": true }, "node_modules/emoji-regex": { @@ -5545,7 +5363,7 @@ "node_modules/encodeurl": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", "dev": true, "engines": { "node": ">= 0.8" @@ -5591,9 +5409,9 @@ } }, "node_modules/enhanced-resolve": { - "version": "5.16.0", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.16.0.tgz", - "integrity": "sha512-O+QWCviPNSSLAD9Ucn8Awv+poAkqn3T1XY5/N7kR7rQO9yfSGWkYZDwpJ+iKF7B8rxaQKWngSqACpgzeapSyoA==", + "version": "5.16.1", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.16.1.tgz", + "integrity": "sha512-4U5pNsuDl0EhuZpq46M5xPslstkviJuhrdobaRDBk2Jy2KO37FDAJl4lb2KlNabxT0m4MTK2UHNrsAcphE8nyw==", "dev": true, "dependencies": { "graceful-fs": "^4.2.4", @@ -5606,54 +5424,61 @@ "node_modules/ent": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/ent/-/ent-2.2.0.tgz", - "integrity": "sha1-6WQhkyWiHQX0RGai9obtbOX13R0=", + "integrity": "sha512-GHrMyVZQWvTIdDtpiEXdHZnFQKzeO09apj8Cbl4pKWy4i0Oprcq17usfDt5aO63swf0JOeMWjWQE/LzgSRuWpA==", "dev": true }, "node_modules/es-abstract": { - "version": "1.22.2", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.22.2.tgz", - "integrity": "sha512-YoxfFcDmhjOgWPWsV13+2RNjq1F6UQnfs+8TftwNqtzlmFzEXvlUwdrNrYeaizfjQzRMxkZ6ElWMOJIFKdVqwA==", - "dev": true, - "dependencies": { - "array-buffer-byte-length": "^1.0.0", - "arraybuffer.prototype.slice": "^1.0.2", - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.2", - "es-set-tostringtag": "^2.0.1", + "version": "1.23.3", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.23.3.tgz", + "integrity": "sha512-e+HfNH61Bj1X9/jLc5v1owaLYuHdeHHSQlkhCBiTK8rBvKaULl/beGMxwrMXjpYrv4pz22BlY570vVePA2ho4A==", + "dev": true, + "dependencies": { + "array-buffer-byte-length": "^1.0.1", + "arraybuffer.prototype.slice": "^1.0.3", + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.7", + "data-view-buffer": "^1.0.1", + "data-view-byte-length": "^1.0.1", + "data-view-byte-offset": "^1.0.0", + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "es-set-tostringtag": "^2.0.3", "es-to-primitive": "^1.2.1", "function.prototype.name": "^1.1.6", - "get-intrinsic": "^1.2.1", - "get-symbol-description": "^1.0.0", + "get-intrinsic": "^1.2.4", + "get-symbol-description": "^1.0.2", "globalthis": "^1.0.3", "gopd": "^1.0.1", - "has": "^1.0.3", - "has-property-descriptors": "^1.0.0", - "has-proto": "^1.0.1", + "has-property-descriptors": "^1.0.2", + "has-proto": "^1.0.3", "has-symbols": "^1.0.3", - "internal-slot": "^1.0.5", - "is-array-buffer": "^3.0.2", + "hasown": "^2.0.2", + "internal-slot": "^1.0.7", + "is-array-buffer": "^3.0.4", "is-callable": "^1.2.7", - "is-negative-zero": "^2.0.2", + "is-data-view": "^1.0.1", + "is-negative-zero": "^2.0.3", "is-regex": "^1.1.4", - "is-shared-array-buffer": "^1.0.2", + "is-shared-array-buffer": "^1.0.3", "is-string": "^1.0.7", - "is-typed-array": "^1.1.12", + "is-typed-array": "^1.1.13", "is-weakref": "^1.0.2", - "object-inspect": "^1.12.3", + "object-inspect": "^1.13.1", "object-keys": "^1.1.1", - "object.assign": "^4.1.4", - "regexp.prototype.flags": "^1.5.1", - "safe-array-concat": "^1.0.1", - "safe-regex-test": "^1.0.0", - "string.prototype.trim": "^1.2.8", - "string.prototype.trimend": "^1.0.7", - "string.prototype.trimstart": "^1.0.7", - "typed-array-buffer": "^1.0.0", - "typed-array-byte-length": "^1.0.0", - "typed-array-byte-offset": "^1.0.0", - "typed-array-length": "^1.0.4", + "object.assign": "^4.1.5", + "regexp.prototype.flags": "^1.5.2", + "safe-array-concat": "^1.1.2", + "safe-regex-test": "^1.0.3", + "string.prototype.trim": "^1.2.9", + "string.prototype.trimend": "^1.0.8", + "string.prototype.trimstart": "^1.0.8", + "typed-array-buffer": "^1.0.2", + "typed-array-byte-length": "^1.0.1", + "typed-array-byte-offset": "^1.0.2", + "typed-array-length": "^1.0.6", "unbox-primitive": "^1.0.2", - "which-typed-array": "^1.1.11" + "which-typed-array": "^1.1.15" }, "engines": { "node": ">= 0.4" @@ -5662,33 +5487,66 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/es-module-lexer": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.3.0.tgz", - "integrity": "sha512-vZK7T0N2CBmBOixhmjdqx2gWVbFZ4DXZ/NyRMZVlJXPa7CyFS+/a4QQsDGDQy9ZfEzxFuNEsMLeQJnKP2p5/JA==", - "dev": true - }, + "node_modules/es-define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz", + "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.2.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-module-lexer": { + "version": "1.5.3", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.5.3.tgz", + "integrity": "sha512-i1gCgmR9dCl6Vil6UKPI/trA69s08g/syhiDK9TG0Nf1RJjjFI+AzoWW7sPufzkgYAn861skuCwJa0pIIHYxvg==", + "dev": true + }, + "node_modules/es-object-atoms": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.0.0.tgz", + "integrity": "sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==", + "dev": true, + "dependencies": { + "es-errors": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/es-set-tostringtag": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.1.tgz", - "integrity": "sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg==", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.3.tgz", + "integrity": "sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==", "dev": true, "dependencies": { - "get-intrinsic": "^1.1.3", - "has": "^1.0.3", - "has-tostringtag": "^1.0.0" + "get-intrinsic": "^1.2.4", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.1" }, "engines": { "node": ">= 0.4" } }, "node_modules/es-shim-unscopables": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz", - "integrity": "sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.2.tgz", + "integrity": "sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==", "dev": true, "dependencies": { - "has": "^1.0.3" + "hasown": "^2.0.0" } }, "node_modules/es-to-primitive": { @@ -5717,16 +5575,16 @@ "node_modules/es6-promisify": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/es6-promisify/-/es6-promisify-5.0.0.tgz", - "integrity": "sha1-UQnWLz5W6pZ8S2NQWu8IKRyKUgM=", + "integrity": "sha512-C+d6UdsYDk0lMebHNR4S2NybQMMngAOnOwYBQjTOiv0MkoJMP0Myw2mgpDLBcpfCmRLxyFqYhS/CfOENq4SJhQ==", "dev": true, "dependencies": { "es6-promise": "^4.0.3" } }, "node_modules/escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz", + "integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==", "dev": true, "engines": { "node": ">=6" @@ -5735,7 +5593,7 @@ "node_modules/escape-html": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=", + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==", "dev": true }, "node_modules/escape-latex": { @@ -5746,7 +5604,7 @@ "node_modules/escape-string-regexp": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", "dev": true, "engines": { "node": ">=0.8.0" @@ -5808,10 +5666,13 @@ } }, "node_modules/eslint-compat-utils": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/eslint-compat-utils/-/eslint-compat-utils-0.1.2.tgz", - "integrity": "sha512-Jia4JDldWnFNIru1Ehx1H5s9/yxiRHY/TimCuUc0jNexew3cF1gI6CYZil1ociakfWO3rRqFjl1mskBblB3RYg==", + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/eslint-compat-utils/-/eslint-compat-utils-0.5.0.tgz", + "integrity": "sha512-dc6Y8tzEcSYZMHa+CMPLi/hyo1FzNeonbhJL7Ol0ccuKQkwopJcJBA9YL/xmMTLU1eKigXo9vj9nALElWYSowg==", "dev": true, + "dependencies": { + "semver": "^7.5.4" + }, "engines": { "node": ">=12" }, @@ -5819,6 +5680,18 @@ "eslint": ">=6.0.0" } }, + "node_modules/eslint-compat-utils/node_modules/semver": { + "version": "7.6.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", + "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/eslint-config-prettier": { "version": "9.1.0", "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-9.1.0.tgz", @@ -5881,9 +5754,9 @@ } }, "node_modules/eslint-module-utils": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.8.0.tgz", - "integrity": "sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==", + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.8.1.tgz", + "integrity": "sha512-rXDXR3h7cs7dy9RNpUlQf80nX31XWJEyGq1tRMo+6GsO5VmTe4UTwtmonAD4ZkAsrfMVDA2wlGJ3790Ys+D49Q==", "dev": true, "dependencies": { "debug": "^3.2.7" @@ -5907,14 +5780,14 @@ } }, "node_modules/eslint-plugin-es-x": { - "version": "7.5.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-es-x/-/eslint-plugin-es-x-7.5.0.tgz", - "integrity": "sha512-ODswlDSO0HJDzXU0XvgZ3lF3lS3XAZEossh15Q2UHjwrJggWeBoKqqEsLTZLXl+dh5eOAozG0zRcYtuE35oTuQ==", + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-es-x/-/eslint-plugin-es-x-7.6.0.tgz", + "integrity": "sha512-I0AmeNgevgaTR7y2lrVCJmGYF0rjoznpDvqV/kIkZSZbZ8Rw3eu4cGlvBBULScfkSOCzqKbff5LR4CNrV7mZHA==", "dev": true, "dependencies": { "@eslint-community/eslint-utils": "^4.1.2", "@eslint-community/regexpp": "^4.6.0", - "eslint-compat-utils": "^0.1.2" + "eslint-compat-utils": "^0.5.0" }, "engines": { "node": "^14.18.0 || >=16.0.0" @@ -5957,6 +5830,16 @@ "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8" } }, + "node_modules/eslint-plugin-import/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, "node_modules/eslint-plugin-import/node_modules/debug": { "version": "3.2.7", "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", @@ -5978,13 +5861,16 @@ "node": ">=0.10.0" } }, - "node_modules/eslint-plugin-import/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "node_modules/eslint-plugin-import/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dev": true, - "bin": { - "semver": "bin/semver.js" + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" } }, "node_modules/eslint-plugin-mocha": { @@ -6047,13 +5933,14 @@ "eslint": ">=7.0.0" } }, - "node_modules/eslint-plugin-n/node_modules/builtins": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/builtins/-/builtins-5.0.1.tgz", - "integrity": "sha512-qwVpFEHNfhYJIzNRBvd2C1kyo6jz3ZSMPyyuR47OPdiKWlbYnZNyDWuyR175qDnAJLiCo5fBBqPb3RiXgWlkOQ==", + "node_modules/eslint-plugin-n/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "dev": true, "dependencies": { - "semver": "^7.0.0" + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" } }, "node_modules/eslint-plugin-n/node_modules/globals": { @@ -6071,14 +5958,23 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/eslint-plugin-n/node_modules/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "node_modules/eslint-plugin-n/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dev": true, "dependencies": { - "lru-cache": "^6.0.0" + "brace-expansion": "^1.1.7" }, + "engines": { + "node": "*" + } + }, + "node_modules/eslint-plugin-n/node_modules/semver": { + "version": "7.6.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", + "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", + "dev": true, "bin": { "semver": "bin/semver.js" }, @@ -6129,25 +6025,19 @@ } }, "node_modules/eslint-scope": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", - "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", + "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", "dev": true, "dependencies": { "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" + "estraverse": "^5.2.0" }, "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/eslint-scope/node_modules/estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", - "dev": true, - "engines": { - "node": ">=4.0" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" } }, "node_modules/eslint-utils": { @@ -6189,15 +6079,6 @@ "url": "https://opencollective.com/eslint" } }, - "node_modules/eslint/node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, "node_modules/eslint/node_modules/ansi-styles": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", @@ -6219,10 +6100,20 @@ "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", "dev": true }, + "node_modules/eslint/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, "node_modules/eslint/node_modules/chalk": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", - "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "dependencies": { "ansi-styles": "^4.1.0", @@ -6265,54 +6156,10 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/eslint/node_modules/eslint-scope": { - "version": "7.2.2", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", - "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", - "dev": true, - "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^5.2.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/eslint/node_modules/find-up": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", - "dev": true, - "dependencies": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/eslint/node_modules/glob-parent": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", - "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", - "dev": true, - "dependencies": { - "is-glob": "^4.0.3" - }, - "engines": { - "node": ">=10.13.0" - } - }, "node_modules/eslint/node_modules/globals": { - "version": "13.20.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.20.0.tgz", - "integrity": "sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==", + "version": "13.24.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", + "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", "dev": true, "dependencies": { "type-fest": "^0.20.2" @@ -6345,70 +6192,16 @@ "js-yaml": "bin/js-yaml.js" } }, - "node_modules/eslint/node_modules/locate-path": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", - "dev": true, - "dependencies": { - "p-locate": "^5.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/eslint/node_modules/p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "dev": true, - "dependencies": { - "yocto-queue": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/eslint/node_modules/p-locate": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", - "dev": true, - "dependencies": { - "p-limit": "^3.0.2" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/eslint/node_modules/path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/eslint/node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "node_modules/eslint/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dev": true, "dependencies": { - "ansi-regex": "^5.0.1" + "brace-expansion": "^1.1.7" }, "engines": { - "node": ">=8" + "node": "*" } }, "node_modules/eslint/node_modules/supports-color": { @@ -6498,7 +6291,7 @@ "node_modules/event-stream": { "version": "3.3.4", "resolved": "https://registry.npmjs.org/event-stream/-/event-stream-3.3.4.tgz", - "integrity": "sha1-SrTJoPWlTbkzi0w02Gv86PSzVXE=", + "integrity": "sha512-QHpkERcGsR0T7Qm3HNJSyXKEEj8AHNxkY3PK8TS2KJvQ7NiSHe3DDpwVKKtoYprL/AreyzFBeIkBIWChAqn60g==", "dev": true, "dependencies": { "duplexer": "~0.1.1", @@ -6561,7 +6354,7 @@ "node_modules/extend-shallow": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "integrity": "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==", "dev": true, "dependencies": { "assign-symbols": "^1.0.0", @@ -6571,22 +6364,10 @@ "node": ">=0.10.0" } }, - "node_modules/extend-shallow/node_modules/is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dev": true, - "dependencies": { - "is-plain-object": "^2.0.4" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/extsprintf": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", - "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", + "integrity": "sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g==", "dev": true, "engines": [ "node >=0.6.0" @@ -6611,9 +6392,9 @@ "dev": true }, "node_modules/fast-diff": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.2.0.tgz", - "integrity": "sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.3.0.tgz", + "integrity": "sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==", "dev": true }, "node_modules/fast-fifo": { @@ -6623,9 +6404,9 @@ "dev": true }, "node_modules/fast-glob": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.0.tgz", - "integrity": "sha512-ChDuvbOypPuNjO8yIDf36x7BlZX1smcUMTTcyoIjycexOxd6DFsKsg21qVBzEmr3G7fUKIRy2/psii+CIUt7FA==", + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", + "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", "dev": true, "dependencies": { "@nodelib/fs.stat": "^2.0.2", @@ -6638,25 +6419,34 @@ "node": ">=8.6.0" } }, - "node_modules/fast-json-stable-stringify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", - "dev": true - }, - "node_modules/fast-levenshtein": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-3.0.0.tgz", - "integrity": "sha512-hKKNajm46uNmTlhHSyZkmToAc56uZJwYq7yrciZjqOxnlfQwERDQJmHPUp7m1m9wx8vgOe8IaCKZ5Kv2k1DdCQ==", + "node_modules/fast-glob/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", "dev": true, "dependencies": { - "fastest-levenshtein": "^1.0.7" + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" } }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "dev": true + }, "node_modules/fast-url-parser": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/fast-url-parser/-/fast-url-parser-1.1.3.tgz", - "integrity": "sha1-9K8+qfNNiicc9YrSs3WfQx8LMY0=", + "integrity": "sha512-5jOCVXADYNuRkKFzNJ0dCCewsZiYo0dz8QNYljkOpFC6r2U4OBmKtvm/Tsuh4w1YYdDqDb31a8TVhBJ2OJKdqQ==", "dev": true, "dependencies": { "punycode": "^1.3.2" @@ -6665,7 +6455,7 @@ "node_modules/fast-url-parser/node_modules/punycode": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", + "integrity": "sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==", "dev": true }, "node_modules/fastest-levenshtein": { @@ -6678,9 +6468,9 @@ } }, "node_modules/fastq": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", - "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", + "version": "1.17.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", + "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", "dev": true, "dependencies": { "reusify": "^1.0.4" @@ -6699,9 +6489,9 @@ } }, "node_modules/fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", "dev": true, "dependencies": { "to-regex-range": "^5.0.1" @@ -6740,9 +6530,21 @@ "node_modules/finalhandler/node_modules/ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", "dev": true }, + "node_modules/finalhandler/node_modules/on-finished": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", + "integrity": "sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww==", + "dev": true, + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, "node_modules/find-cache-dir": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz", @@ -6758,15 +6560,19 @@ } }, "node_modules/find-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", "dev": true, "dependencies": { - "locate-path": "^3.0.0" + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" }, "engines": { - "node": ">=6" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/findup-sync": { @@ -6828,12 +6634,13 @@ } }, "node_modules/flat-cache": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", - "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz", + "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==", "dev": true, "dependencies": { - "flatted": "^3.1.0", + "flatted": "^3.2.9", + "keyv": "^4.5.3", "rimraf": "^3.0.2" }, "engines": { @@ -6841,9 +6648,9 @@ } }, "node_modules/flatted": { - "version": "3.2.5", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.5.tgz", - "integrity": "sha512-WIWGi2L3DyTUvUrwRKgGi9TwxQMUEqPOPQBVi71R96jZXJdFskXEmf54BoZaS1kknGODoIGASGEzBUYdyMCBJg==", + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.1.tgz", + "integrity": "sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==", "dev": true }, "node_modules/follow-redirects": { @@ -6912,22 +6719,10 @@ "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/foreground-child/node_modules/signal-exit": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", - "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", - "dev": true, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, "node_modules/forever-agent": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", - "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", + "integrity": "sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw==", "dev": true, "engines": { "node": "*" @@ -6962,7 +6757,7 @@ "node_modules/from": { "version": "0.1.7", "resolved": "https://registry.npmjs.org/from/-/from-0.1.7.tgz", - "integrity": "sha1-g8YK/Fi5xWmXAH7Rp2izqzA6RP4=", + "integrity": "sha512-twe20eF1OxVxp/ML/kq2p1uc6KvFK/+vs8WjEbeKmV2He22MKm7YF2ANIt+EOqhJ5L3K/SuuPhk0hWQDjOM23g==", "dev": true }, "node_modules/fs-extra": { @@ -7004,7 +6799,7 @@ "node_modules/fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", "dev": true }, "node_modules/fsevents": { @@ -7060,7 +6855,8 @@ "node_modules/gauge": { "version": "2.7.4", "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", - "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", + "integrity": "sha512-14x4kjc6lkD3ltw589k0NrPD6cCNTD6CWoVUNpB85+DrtONoZn+Rug6xZU5RvSC4+TZPxA5AnBibQYAvZn41Hg==", + "deprecated": "This package is no longer supported.", "dev": true, "optional": true, "dependencies": { @@ -7074,6 +6870,64 @@ "wide-align": "^1.1.0" } }, + "node_modules/gauge/node_modules/ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", + "dev": true, + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/gauge/node_modules/is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha512-1pqUqRjkhPJ9miNq9SwMfdvi6lBJcd6eFxvfaivQhaH3SgisfiuudvFntdKOmxuee/77l+FPjKrQjWvmPjWrRw==", + "dev": true, + "optional": true, + "dependencies": { + "number-is-nan": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/gauge/node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "dev": true, + "optional": true + }, + "node_modules/gauge/node_modules/string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha512-0XsVpQLnVCXHJfyEs8tC0zpTVIr5PKKsQtkT29IwupnPTjtPmQ3xT/4yCREF9hYkV/3M3kzcUTSAZT6a6h81tw==", + "dev": true, + "optional": true, + "dependencies": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/gauge/node_modules/strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==", + "dev": true, + "optional": true, + "dependencies": { + "ansi-regex": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/gensync": { "version": "1.0.0-beta.2", "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", @@ -7093,28 +6947,33 @@ } }, "node_modules/get-intrinsic": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.1.tgz", - "integrity": "sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw==", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz", + "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", "dev": true, "dependencies": { - "function-bind": "^1.1.1", - "has": "^1.0.3", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", "has-proto": "^1.0.1", - "has-symbols": "^1.0.3" + "has-symbols": "^1.0.3", + "hasown": "^2.0.0" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/get-symbol-description": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", - "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.2.tgz", + "integrity": "sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.1" + "call-bind": "^1.0.5", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.4" }, "engines": { "node": ">= 0.4" @@ -7124,9 +6983,9 @@ } }, "node_modules/get-tsconfig": { - "version": "4.7.0", - "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.7.0.tgz", - "integrity": "sha512-pmjiZ7xtB8URYm74PlGJozDNyhvsVLUcpBa8DZBG3bWHwaHa9bPiRpiSfovw+fjhwONSCWKRyk+JQHEGZmMrzw==", + "version": "4.7.5", + "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.7.5.tgz", + "integrity": "sha512-ZCuZCnlqNzjb4QprAzXKdpp/gh6KTxSJuw3IBsPnV/7fV4NxC9ckB+vPTt8w7fJA0TaSD7c55BR47JD6MEDyDw==", "dev": true, "dependencies": { "resolve-pkg-maps": "^1.0.0" @@ -7138,47 +6997,50 @@ "node_modules/getpass": { "version": "0.1.7", "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", - "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", + "integrity": "sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng==", "dev": true, "dependencies": { "assert-plus": "^1.0.0" } }, "node_modules/glob": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", - "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", + "version": "10.3.15", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.15.tgz", + "integrity": "sha512-0c6RlJt1TICLyvJYIApxb8GsXoai0KUP7AxKKAtsYXdgJR1mGEUa7DgwShbdk1nly0PYoZj01xd4hzbq3fsjpw==", "dev": true, "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^5.0.1", - "once": "^1.3.0" + "foreground-child": "^3.1.0", + "jackspeak": "^2.3.6", + "minimatch": "^9.0.1", + "minipass": "^7.0.4", + "path-scurry": "^1.11.0" + }, + "bin": { + "glob": "dist/esm/bin.mjs" }, "engines": { - "node": ">=12" + "node": ">=16 || 14 >=14.18" }, "funding": { "url": "https://github.com/sponsors/isaacs" } }, "node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", "dev": true, "dependencies": { - "is-glob": "^4.0.1" + "is-glob": "^4.0.3" }, "engines": { - "node": ">= 6" + "node": ">=10.13.0" } }, "node_modules/glob-stream": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/glob-stream/-/glob-stream-8.0.1.tgz", - "integrity": "sha512-gkw+JQajGXmzky/Lil3/tQ+p96YKkqJwxiakKgfDGpNBNFHxklnK2nPmYukEW6n8/HmcAfeSvT6xCdRafidwZQ==", + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/glob-stream/-/glob-stream-8.0.2.tgz", + "integrity": "sha512-R8z6eTB55t3QeZMmU1C+Gv+t5UnNRkA55c5yo67fAVfxODxieTwsjNG7utxS/73NdP1NbDgCrhVEg2h00y4fFw==", "dev": true, "dependencies": { "@gulpjs/to-absolute-glob": "^4.0.0", @@ -7188,25 +7050,12 @@ "is-glob": "^4.0.3", "is-negated-glob": "^1.0.0", "normalize-path": "^3.0.0", - "now-and-later": "^3.0.0", "streamx": "^2.12.5" }, "engines": { "node": ">=10.13.0" } }, - "node_modules/glob-stream/node_modules/glob-parent": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", - "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", - "dev": true, - "dependencies": { - "is-glob": "^4.0.3" - }, - "engines": { - "node": ">=10.13.0" - } - }, "node_modules/glob-to-regexp": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", @@ -7226,25 +7075,13 @@ "node": ">= 10.13.0" } }, - "node_modules/glob/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/glob/node_modules/minimatch": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", - "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", + "node_modules/glob/node_modules/minipass": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.1.tgz", + "integrity": "sha512-UZ7eQ+h8ywIRAW1hIEl2AqdwzJucU/Kp59+8kkZeSvafXhZjul247BvIJjEVFVeON6d7lM46XX1HXCduKAS8VA==", "dev": true, - "dependencies": { - "brace-expansion": "^2.0.1" - }, "engines": { - "node": ">=10" + "node": ">=16 || 14 >=14.17" } }, "node_modules/global-modules": { @@ -7277,6 +7114,24 @@ "node": ">=0.10.0" } }, + "node_modules/global-prefix/node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true + }, + "node_modules/global-prefix/node_modules/which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" + } + }, "node_modules/globals": { "version": "11.12.0", "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", @@ -7287,12 +7142,13 @@ } }, "node_modules/globalthis": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz", - "integrity": "sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.4.tgz", + "integrity": "sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==", "dev": true, "dependencies": { - "define-properties": "^1.1.3" + "define-properties": "^1.2.1", + "gopd": "^1.0.1" }, "engines": { "node": ">= 0.4" @@ -7419,15 +7275,6 @@ "node": ">=10.13.0" } }, - "node_modules/gulp-cli/node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, "node_modules/gulp-cli/node_modules/ansi-styles": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", @@ -7459,6 +7306,17 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, + "node_modules/gulp-cli/node_modules/cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "dev": true, + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, "node_modules/gulp-cli/node_modules/color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", @@ -7486,51 +7344,43 @@ "node": ">=8" } }, - "node_modules/gulp-cli/node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/gulp-cli/node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "node_modules/gulp-cli/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" + "has-flag": "^4.0.0" }, "engines": { "node": ">=8" } }, - "node_modules/gulp-cli/node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "node_modules/gulp-cli/node_modules/yargs": { + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", "dev": true, "dependencies": { - "ansi-regex": "^5.0.1" + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" }, "engines": { - "node": ">=8" + "node": ">=10" } }, - "node_modules/gulp-cli/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "node_modules/gulp-cli/node_modules/yargs-parser": { + "version": "20.2.9", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, "engines": { - "node": ">=8" + "node": ">=10" } }, "node_modules/gulplog": { @@ -7566,19 +7416,10 @@ "uglify-js": "^3.1.4" } }, - "node_modules/handlebars/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/har-schema": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", - "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", + "integrity": "sha512-Oqluz6zhGX8cyRaTQlFMPw80bSJVG2x/cFb8ZPhUILGgHka9SsokCCOQgpveePerqidZOrT14ipqfJb7ILcW5Q==", "dev": true, "engines": { "node": ">=4" @@ -7598,22 +7439,10 @@ "node": ">=6" } }, - "node_modules/has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "dev": true, - "dependencies": { - "function-bind": "^1.1.1" - }, - "engines": { - "node": ">= 0.4.0" - } - }, "node_modules/has-ansi": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", - "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", + "integrity": "sha512-C8vBJ8DwUCx19vhm7urhTuUsr4/IyP6l4VzNQDv+ryHQObW3TTTp9yB68WpYgRe2bbaGuZ/se74IqFeVnMnLZg==", "dev": true, "dependencies": { "ansi-regex": "^2.0.0" @@ -7622,6 +7451,15 @@ "node": ">=0.10.0" } }, + "node_modules/has-ansi/node_modules/ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/has-bigints": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", @@ -7634,28 +7472,28 @@ "node_modules/has-flag": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", "dev": true, "engines": { "node": ">=4" } }, "node_modules/has-property-descriptors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", - "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", + "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", "dev": true, "dependencies": { - "get-intrinsic": "^1.1.1" + "es-define-property": "^1.0.0" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/has-proto": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz", - "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz", + "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==", "dev": true, "engines": { "node": ">= 0.4" @@ -7677,12 +7515,12 @@ } }, "node_modules/has-tostringtag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", - "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", + "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", "dev": true, "dependencies": { - "has-symbols": "^1.0.2" + "has-symbols": "^1.0.3" }, "engines": { "node": ">= 0.4" @@ -7694,14 +7532,14 @@ "node_modules/has-unicode": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", - "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=", + "integrity": "sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==", "dev": true, "optional": true }, "node_modules/hasown": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.0.tgz", - "integrity": "sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", "dev": true, "dependencies": { "function-bind": "^1.1.2" @@ -7732,9 +7570,33 @@ } }, "node_modules/hosted-git-info": { - "version": "2.8.9", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", - "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz", + "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/hosted-git-info/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/hosted-git-info/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", "dev": true }, "node_modules/html-escaper": { @@ -7799,7 +7661,7 @@ "node_modules/http-signature": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", - "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", + "integrity": "sha512-CAbnr6Rz4CYQkLYUtSNXxQPUH2gK8f3iWexVlsnMeD+GjlsQ0Xsy1cOX+mN3dtxYomRy21CiOzU8Uhw6OwncEQ==", "dev": true, "dependencies": { "assert-plus": "^1.0.0", @@ -7812,16 +7674,37 @@ } }, "node_modules/https-proxy-agent": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz", - "integrity": "sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==", + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-2.2.4.tgz", + "integrity": "sha512-OmvfoQ53WLjtA9HeYP9RNrWMJzzAz1JGaSFr1nijg0PVR1JaD/xbJq1mdEIIlxGpXp9eSe/O2LgU9DJmTPd0Eg==", "dev": true, "dependencies": { - "agent-base": "6", - "debug": "4" + "agent-base": "^4.3.0", + "debug": "^3.1.0" }, "engines": { - "node": ">= 6" + "node": ">= 4.5.0" + } + }, + "node_modules/https-proxy-agent/node_modules/agent-base": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.3.0.tgz", + "integrity": "sha512-salcGninV0nPrwpGNn4VTXBb1SOuXQBiqbrNXoeizJsHrsL6ERFM2Ne3JUSBWRE6aeNJI2ROP/WEEIDUiDe3cg==", + "dev": true, + "dependencies": { + "es6-promisify": "^5.0.0" + }, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/https-proxy-agent/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "dependencies": { + "ms": "^2.1.1" } }, "node_modules/iconv-lite": { @@ -7874,6 +7757,28 @@ "minimatch": "^3.0.4" } }, + "node_modules/ignore-walk/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/ignore-walk/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, "node_modules/import-fresh": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", @@ -7893,25 +7798,28 @@ "node_modules/imurmurhash": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", "dev": true, "engines": { "node": ">=0.8.19" } }, "node_modules/indent-string": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", - "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-5.0.0.tgz", + "integrity": "sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg==", "dev": true, "engines": { - "node": ">=8" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/inflight": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", "dev": true, "dependencies": { "once": "^1.3.0", @@ -7931,13 +7839,13 @@ "dev": true }, "node_modules/internal-slot": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.5.tgz", - "integrity": "sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ==", + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.7.tgz", + "integrity": "sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==", "dev": true, "dependencies": { - "get-intrinsic": "^1.2.0", - "has": "^1.0.3", + "es-errors": "^1.3.0", + "hasown": "^2.0.0", "side-channel": "^1.0.4" }, "engines": { @@ -7956,7 +7864,7 @@ "node_modules/iota-array": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/iota-array/-/iota-array-1.0.0.tgz", - "integrity": "sha1-ge9X/l0FgUzVjCSDYyqZwwoOgIc=", + "integrity": "sha512-pZ2xT+LOHckCatGQ3DcG/a+QuEqvoxqkiL7tvE8nn3uuu+f6i1TtpB5/FtWFbxUuVr5PZCx8KskuGatbJDXOWA==", "dev": true }, "node_modules/is-absolute": { @@ -7989,14 +7897,16 @@ } }, "node_modules/is-array-buffer": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.2.tgz", - "integrity": "sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==", + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.4.tgz", + "integrity": "sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==", "dev": true, "dependencies": { "call-bind": "^1.0.2", - "get-intrinsic": "^1.2.0", - "is-typed-array": "^1.1.10" + "get-intrinsic": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -8063,18 +7973,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/is-builtin-module/node_modules/builtin-modules": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.3.0.tgz", - "integrity": "sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==", - "dev": true, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/is-callable": { "version": "1.2.7", "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", @@ -8099,11 +7997,29 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/is-data-view": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-data-view/-/is-data-view-1.0.1.tgz", + "integrity": "sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w==", + "dev": true, + "dependencies": { + "is-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-date-object": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.2.tgz", - "integrity": "sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g==", + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", + "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, "engines": { "node": ">= 0.4" }, @@ -8126,26 +8042,34 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "dependencies": { + "is-plain-object": "^2.0.4" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/is-extglob": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/is-fullwidth-code-point": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", "dev": true, - "optional": true, - "dependencies": { - "number-is-nan": "^1.0.0" - }, "engines": { - "node": ">=0.10.0" + "node": ">=8" } }, "node_modules/is-generator-function": { @@ -8201,9 +8125,9 @@ } }, "node_modules/is-negative-zero": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", - "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.3.tgz", + "integrity": "sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==", "dev": true, "engines": { "node": ">= 0.4" @@ -8237,12 +8161,15 @@ } }, "node_modules/is-path-cwd": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz", - "integrity": "sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-3.0.0.tgz", + "integrity": "sha512-kyiNFFLU0Ampr6SDZitD/DwUo4Zs1nSdnygUBqsu3LooL00Qvb5j+UnvApUn/TTj1J3OuE6BTdQ5rudKmU2ZaA==", "dev": true, "engines": { - "node": ">=6" + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/is-path-inside": { @@ -8306,16 +8233,19 @@ "node_modules/is-running": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-running/-/is-running-2.1.0.tgz", - "integrity": "sha1-MKc/9cw4VOT8JUkICen1q/jeCeA=", + "integrity": "sha512-mjJd3PujZMl7j+D395WTIO5tU5RIDBfVSRtRR4VOJou3H66E38UjbjvDGh3slJzPuolsb+yQFqwHNNdyp5jg3w==", "dev": true }, "node_modules/is-shared-array-buffer": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz", - "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.3.tgz", + "integrity": "sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==", "dev": true, "dependencies": { - "call-bind": "^1.0.2" + "call-bind": "^1.0.7" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -8337,12 +8267,12 @@ } }, "node_modules/is-symbol": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz", - "integrity": "sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", + "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", "dev": true, "dependencies": { - "has-symbols": "^1.0.1" + "has-symbols": "^1.0.2" }, "engines": { "node": ">= 0.4" @@ -8352,12 +8282,12 @@ } }, "node_modules/is-typed-array": { - "version": "1.1.12", - "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.12.tgz", - "integrity": "sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg==", + "version": "1.1.13", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.13.tgz", + "integrity": "sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==", "dev": true, "dependencies": { - "which-typed-array": "^1.1.11" + "which-typed-array": "^1.1.14" }, "engines": { "node": ">= 0.4" @@ -8369,7 +8299,7 @@ "node_modules/is-typedarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", + "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==", "dev": true }, "node_modules/is-unc-path": { @@ -8439,15 +8369,15 @@ } }, "node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", "dev": true }, "node_modules/isbinaryfile": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-4.0.8.tgz", - "integrity": "sha512-53h6XFniq77YdW+spoRrebh0mnmTxRPTlcuIArO57lmMdq4uBKFKaeTjnb92oYWrSn/LVL+LT+Hap2tFQj8V+w==", + "version": "4.0.10", + "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-4.0.10.tgz", + "integrity": "sha512-iHrqe5shvBUcFbmZq9zOQHBoeOhZJu6RQGrDpBgenUm/Am+F3JM2MgQj+rK3Z601fzrL5gLZWtAPH2OBaSVcyw==", "dev": true, "engines": { "node": ">= 8.0.0" @@ -8457,15 +8387,18 @@ } }, "node_modules/isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", - "dev": true + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-3.1.1.tgz", + "integrity": "sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==", + "dev": true, + "engines": { + "node": ">=16" + } }, "node_modules/isobject": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", "dev": true, "engines": { "node": ">=0.10.0" @@ -8474,13 +8407,13 @@ "node_modules/isstream": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", - "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", + "integrity": "sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g==", "dev": true }, "node_modules/istanbul-lib-coverage": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz", - "integrity": "sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==", + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz", + "integrity": "sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==", "dev": true, "engines": { "node": ">=8" @@ -8525,13 +8458,10 @@ } }, "node_modules/istanbul-lib-report/node_modules/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "version": "7.6.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", + "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, "bin": { "semver": "bin/semver.js" }, @@ -8552,9 +8482,9 @@ } }, "node_modules/istanbul-reports": { - "version": "3.1.6", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.6.tgz", - "integrity": "sha512-TLgnMkKg3iTDsQ9PbPTdpfAK2DzjF9mqUG7RMgcQl8oFjad8ob4laGxv5XV5U9MAfx8D6tSJiUyuAwzLicaxlg==", + "version": "3.1.7", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.7.tgz", + "integrity": "sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==", "dev": true, "dependencies": { "html-escaper": "^2.0.0", @@ -8564,10 +8494,28 @@ "node": ">=8" } }, + "node_modules/jackspeak": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.3.6.tgz", + "integrity": "sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==", + "dev": true, + "dependencies": { + "@isaacs/cliui": "^8.0.2" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + }, + "optionalDependencies": { + "@pkgjs/parseargs": "^0.11.0" + } + }, "node_modules/javascript-natural-sort": { "version": "0.7.1", "resolved": "https://registry.npmjs.org/javascript-natural-sort/-/javascript-natural-sort-0.7.1.tgz", - "integrity": "sha1-+eIwPUUH9tdDVac2ZNFED7Wg71k=" + "integrity": "sha512-nO6jcEfZWQXDhOiBtG2KvKyEptz7RVbpGP4vTD2hLBdmNQSsCiicO2Ioinv6UI4y9ukqnBpy+XZ9H6uLNgJTlw==" }, "node_modules/jest-worker": { "version": "27.5.1", @@ -8614,9 +8562,9 @@ "dev": true }, "node_modules/js-yaml": { - "version": "3.14.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.0.tgz", - "integrity": "sha512-/4IbIeHcD9VMHFqDR/gQ7EdZdLimOvW2DdcxFjdyyZ9NsbS+ccrXqVWDtab/lRl5AlUqmpBx8EhPaWR+OtY17A==", + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", "dev": true, "dependencies": { "argparse": "^1.0.7", @@ -8629,7 +8577,7 @@ "node_modules/jsbn": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", - "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", + "integrity": "sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==", "dev": true }, "node_modules/jsep": { @@ -8653,6 +8601,12 @@ "node": ">=4" } }, + "node_modules/json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", + "dev": true + }, "node_modules/json-parse-even-better-errors": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", @@ -8672,24 +8626,33 @@ "dev": true }, "node_modules/json-stable-stringify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz", - "integrity": "sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8=", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.1.1.tgz", + "integrity": "sha512-SU/971Kt5qVQfJpyDveVhQ/vya+5hvrjClFOcr8c0Fq5aODJjMwutrOfCU+eCnVD5gpx1Q3fEqkyom77zH1iIg==", "dev": true, "dependencies": { - "jsonify": "~0.0.0" + "call-bind": "^1.0.5", + "isarray": "^2.0.5", + "jsonify": "^0.0.1", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, "node_modules/json-stable-stringify-without-jsonify": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", - "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", "dev": true }, "node_modules/json-stringify-safe": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", + "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==", "dev": true }, "node_modules/json5": { @@ -8707,19 +8670,19 @@ "node_modules/jsonfile": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", - "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", + "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", "dev": true, "optionalDependencies": { "graceful-fs": "^4.1.6" } }, "node_modules/jsonify": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz", - "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=", + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.1.tgz", + "integrity": "sha512-2/Ki0GcmuqSrgFyelQq9M05y7PS0mEwuIzrf3f1fPqkVDVRvZrPZtVSMHxdgo8Aq0sxAOb/cr2aqqA3LeWHVPg==", "dev": true, - "engines": { - "node": "*" + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, "node_modules/jsprim": { @@ -8805,6 +8768,12 @@ "which": "^3.0.0" } }, + "node_modules/karma-firefox-launcher/node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true + }, "node_modules/karma-firefox-launcher/node_modules/which": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/which/-/which-3.0.1.tgz", @@ -8855,7 +8824,7 @@ "node_modules/karma-mocha-reporter/node_modules/strip-ansi": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "integrity": "sha512-4XaJ2zQdCzROZDivEVIDPkcQn8LMFSa8kj8Gxb/Lnwzv9A8VctNZ+lfivC/sV3ivW8ElJTERXZoPBRrZKkNKow==", "dev": true, "dependencies": { "ansi-regex": "^3.0.0" @@ -8881,6 +8850,16 @@ "webpack": "^5.0.0" } }, + "node_modules/karma-webpack/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, "node_modules/karma-webpack/node_modules/glob": { "version": "7.2.3", "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", @@ -8913,28 +8892,25 @@ "node": "*" } }, - "node_modules/karma-webpack/node_modules/minimatch": { - "version": "9.0.3", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", - "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", + "node_modules/karma/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "dev": true, "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" } }, - "node_modules/karma-webpack/node_modules/minimatch/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "node_modules/karma/node_modules/cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", "dev": true, "dependencies": { - "balanced-match": "^1.0.0" + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" } }, "node_modules/karma/node_modules/glob": { @@ -8957,25 +8933,64 @@ "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/karma/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, "node_modules/karma/node_modules/mkdirp": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", - "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", "dev": true, "dependencies": { - "minimist": "^1.2.5" + "minimist": "^1.2.6" }, "bin": { "mkdirp": "bin/cmd.js" } }, - "node_modules/karma/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "node_modules/karma/node_modules/yargs": { + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", "dev": true, + "dependencies": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + }, "engines": { - "node": ">=0.10.0" + "node": ">=10" + } + }, + "node_modules/karma/node_modules/yargs-parser": { + "version": "20.2.9", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/keyv": { + "version": "4.5.4", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", + "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", + "dev": true, + "dependencies": { + "json-buffer": "3.0.1" } }, "node_modules/kind-of": { @@ -9055,16 +9070,18 @@ } }, "node_modules/locate-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", "dev": true, "dependencies": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" + "p-locate": "^5.0.0" }, "engines": { - "node": ">=6" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/lodash": { @@ -9104,31 +9121,28 @@ } }, "node_modules/log4js": { - "version": "6.4.1", - "resolved": "https://registry.npmjs.org/log4js/-/log4js-6.4.1.tgz", - "integrity": "sha512-iUiYnXqAmNKiIZ1XSAitQ4TmNs8CdZYTAWINARF3LjnsLN8tY5m0vRwd6uuWj/yNY0YHxeZodnbmxKFUOM2rMg==", + "version": "6.9.1", + "resolved": "https://registry.npmjs.org/log4js/-/log4js-6.9.1.tgz", + "integrity": "sha512-1somDdy9sChrr9/f4UlzhdaGfDR2c/SaD2a4T7qEkG4jTS57/B3qmnjLYePwQ8cqWnUHZI0iAKxMBpCZICiZ2g==", "dev": true, "dependencies": { - "date-format": "^4.0.3", - "debug": "^4.3.3", - "flatted": "^3.2.4", + "date-format": "^4.0.14", + "debug": "^4.3.4", + "flatted": "^3.2.7", "rfdc": "^1.3.0", - "streamroller": "^3.0.2" + "streamroller": "^3.1.5" }, "engines": { "node": ">=8.0" } }, "node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", "dev": true, "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" + "yallist": "^3.0.2" } }, "node_modules/make-dir": { @@ -9144,6 +9158,15 @@ "node": ">=6" } }, + "node_modules/make-dir/node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "dev": true, + "bin": { + "semver": "bin/semver" + } + }, "node_modules/make-error": { "version": "1.3.6", "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", @@ -9162,7 +9185,7 @@ "node_modules/map-stream": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/map-stream/-/map-stream-0.1.0.tgz", - "integrity": "sha1-5WqpTEyAVaFkBKBnS3jyFffI4ZQ=", + "integrity": "sha512-CkYQrPYZfWnu/DAmVCpTSX/xHpKZ80eKh2lAkyA6AJTef6bW+6JpbQZN5rofum7da+SyN1bi5ctTm+lTfcCW3g==", "dev": true }, "node_modules/md5": { @@ -9179,7 +9202,7 @@ "node_modules/media-typer": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", - "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=", + "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", "dev": true, "engines": { "node": ">= 0.6" @@ -9214,9 +9237,9 @@ } }, "node_modules/mime": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/mime/-/mime-2.5.2.tgz", - "integrity": "sha512-tqkh47FzKeCPD2PUiPB6pkbMzsCasjxAfC62/Wap5qrUWcb+sFasXUC5I3gYM5iBM8v/Qpn4UK0x+j0iHyFPDg==", + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz", + "integrity": "sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==", "dev": true, "bin": { "mime": "cli.js" @@ -9247,27 +9270,33 @@ } }, "node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "version": "9.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz", + "integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==", "dev": true, "dependencies": { - "brace-expansion": "^1.1.7" + "brace-expansion": "^2.0.1" }, "engines": { - "node": "*" + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, "node_modules/minimist": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", - "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==", - "dev": true + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, "node_modules/minipass": { - "version": "3.1.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.1.6.tgz", - "integrity": "sha512-rty5kpw9/z8SX9dmxblFA6edItUmwJgMeYDZRrwlIVN27i8gysGbznJwUggw2V/FVqFSDdWy040ZPS811DYAqQ==", + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", "dev": true, "dependencies": { "yallist": "^4.0.0" @@ -9276,6 +9305,12 @@ "node": ">=8" } }, + "node_modules/minipass/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, "node_modules/minizlib": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", @@ -9289,6 +9324,12 @@ "node": ">= 8" } }, + "node_modules/minizlib/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, "node_modules/mkdirp": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-3.0.1.tgz", @@ -9355,36 +9396,6 @@ "mocha": ">=2.2.5" } }, - "node_modules/mocha-junit-reporter/node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/mocha-junit-reporter/node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/mocha/node_modules/ansi-colors": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", - "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", - "dev": true, - "engines": { - "node": ">=6" - } - }, "node_modules/mocha/node_modules/ansi-styles": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", @@ -9406,15 +9417,6 @@ "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", "dev": true }, - "node_modules/mocha/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0" - } - }, "node_modules/mocha/node_modules/chalk": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", @@ -9470,6 +9472,17 @@ "fsevents": "~2.3.2" } }, + "node_modules/mocha/node_modules/cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "dev": true, + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, "node_modules/mocha/node_modules/color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", @@ -9488,15 +9501,6 @@ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, - "node_modules/mocha/node_modules/diff": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz", - "integrity": "sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==", - "dev": true, - "engines": { - "node": ">=0.3.1" - } - }, "node_modules/mocha/node_modules/escape-string-regexp": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", @@ -9509,20 +9513,35 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/mocha/node_modules/find-up": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "node_modules/mocha/node_modules/glob": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", + "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", "dev": true, "dependencies": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^5.0.1", + "once": "^1.3.0" }, "engines": { - "node": ">=10" + "node": ">=12" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/mocha/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" } }, "node_modules/mocha/node_modules/has-flag": { @@ -9546,21 +9565,6 @@ "js-yaml": "bin/js-yaml.js" } }, - "node_modules/mocha/node_modules/locate-path": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", - "dev": true, - "dependencies": { - "p-locate": "^5.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/mocha/node_modules/log-symbols": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", @@ -9595,45 +9599,18 @@ "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", "dev": true }, - "node_modules/mocha/node_modules/p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "dev": true, - "dependencies": { - "yocto-queue": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/mocha/node_modules/p-locate": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "node_modules/mocha/node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", "dev": true, - "dependencies": { - "p-limit": "^3.0.2" - }, "engines": { - "node": ">=10" + "node": ">=8" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/mocha/node_modules/path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true, - "engines": { - "node": ">=8" - } - }, "node_modules/mocha/node_modules/supports-color": { "version": "8.1.1", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", @@ -9649,10 +9626,28 @@ "url": "https://github.com/chalk/supports-color?sponsor=1" } }, - "node_modules/mocha/node_modules/yargs-parser": { - "version": "20.2.4", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz", - "integrity": "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==", + "node_modules/mocha/node_modules/yargs": { + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "dev": true, + "dependencies": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/mocha/node_modules/yargs-parser": { + "version": "20.2.4", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz", + "integrity": "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==", "dev": true, "engines": { "node": ">=10" @@ -9676,7 +9671,7 @@ "node_modules/natural-compare": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", "dev": true }, "node_modules/ndarray": { @@ -9692,13 +9687,13 @@ "node_modules/ndarray-crout-decomposition": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/ndarray-crout-decomposition/-/ndarray-crout-decomposition-1.1.0.tgz", - "integrity": "sha1-Z/tkPt6v6uhe3M29dFr30ua94Xo=", + "integrity": "sha512-jcww9T/4thrVvBDCk5PivUScolTW1Lu6QWzvrxHMHAhZzTUzznvT/U/xfn40EfseiITLkHlST/0df5pn2yQHUQ==", "dev": true }, "node_modules/ndarray-determinant": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/ndarray-determinant/-/ndarray-determinant-1.0.0.tgz", - "integrity": "sha1-3Vc0W89PnhTvTDfYscUuUWrASB4=", + "integrity": "sha512-fJUlUhFZHwKP0lFsF2Si14dnkXBoiqKVzlv2nsUAcycsjjpuUkJGF0SXLHbRgl1wI6sgordV4P86bJ4ulcR6Yw==", "dev": true, "dependencies": { "ndarray-crout-decomposition": "^1.1.0", @@ -9710,7 +9705,7 @@ "node_modules/ndarray-diagonal": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/ndarray-diagonal/-/ndarray-diagonal-1.0.0.tgz", - "integrity": "sha1-wXwkBc2MkVo8KKguoQANz7Kjjlg=", + "integrity": "sha512-r+LgakWgIt9xiRES42fwP6nc3pn4DjGSrs+OCPqiVTxtzCJ2L31KFypcHplSXG008j0IWZt6bx1+ZRbx+aQkfA==", "dev": true, "dependencies": { "ndarray": "^1.0.15" @@ -9719,13 +9714,13 @@ "node_modules/ndarray-gemm": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/ndarray-gemm/-/ndarray-gemm-1.0.0.tgz", - "integrity": "sha1-POWbMc9eIkPIZfBpQ/e0cUz7se4=", + "integrity": "sha512-LSAzu9dFrQHGImnO/14EtKuRsxQwyehtYg56mxajTB2XnJ4eVx90Dq+xP2x9lyH4PLPtVnZMhGrvnHiIxtGysw==", "dev": true }, "node_modules/ndarray-ops": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/ndarray-ops/-/ndarray-ops-1.2.2.tgz", - "integrity": "sha1-WeiNLDKn7ryxvGkPrhQVeVV6YU4=", + "integrity": "sha512-BppWAFRjMYF7N/r6Ie51q6D4fs0iiGmeXIACKY66fLpnwIui3Wc3CXiD/30mgLbDjPpSLrsqcp3Z62+IcHZsDw==", "dev": true, "dependencies": { "cwise-compiler": "^1.0.0" @@ -9734,7 +9729,7 @@ "node_modules/ndarray-pack": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/ndarray-pack/-/ndarray-pack-1.2.1.tgz", - "integrity": "sha1-jK6+qqJNXs9w/4YCBjeXfajuWFo=", + "integrity": "sha512-51cECUJMT0rUZNQa09EoKsnFeDL4x2dHRT0VR5U2H5ZgEcm95ZDWcMA5JShroXjHOejmAD/fg8+H+OvUnVXz2g==", "dev": true, "dependencies": { "cwise-compiler": "^1.1.2", @@ -9744,7 +9739,7 @@ "node_modules/ndarray-scratch": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/ndarray-scratch/-/ndarray-scratch-1.2.0.tgz", - "integrity": "sha1-YwRjbWLrqT20cnrBPGkzQdulDgE=", + "integrity": "sha512-a4pASwB1jQyJcKLYrwrladVfDZDUGc78qLJZbHyb1Q4rhte0URhzc6ALQpBcauwgov0sXLwZz3vYH5jKAhSMIg==", "dev": true, "dependencies": { "ndarray": "^1.0.14", @@ -9781,9 +9776,9 @@ } }, "node_modules/node-fetch": { - "version": "2.6.7", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", - "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", + "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", "dev": true, "dependencies": { "whatwg-url": "^5.0.0" @@ -9807,15 +9802,30 @@ "dev": true }, "node_modules/normalize-package-data": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", - "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.3.tgz", + "integrity": "sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==", "dev": true, "dependencies": { - "hosted-git-info": "^2.1.4", - "resolve": "^1.10.0", - "semver": "2 || 3 || 4 || 5", + "hosted-git-info": "^4.0.1", + "is-core-module": "^2.5.0", + "semver": "^7.3.4", "validate-npm-package-license": "^3.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/normalize-package-data/node_modules/semver": { + "version": "7.6.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", + "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" } }, "node_modules/normalize-path": { @@ -9853,26 +9863,11 @@ "node": ">=10" } }, - "node_modules/npm-package-arg/node_modules/hosted-git-info": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz", - "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/npm-package-arg/node_modules/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "version": "7.6.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", + "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, "bin": { "semver": "bin/semver.js" }, @@ -9884,6 +9879,7 @@ "version": "4.1.2", "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz", "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", + "deprecated": "This package is no longer supported.", "dev": true, "optional": true, "dependencies": { @@ -9896,7 +9892,7 @@ "node_modules/number-is-nan": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", - "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", + "integrity": "sha512-4jbtZXNAsfZbAHiiqjLPBiCl16dES1zI4Hpzzxw61Tk+loF+sBDBKx1ICKKKwIqQ7M0mFn1TmkN7euSncWgHiQ==", "dev": true, "optional": true, "engines": { @@ -9906,7 +9902,7 @@ "node_modules/numericjs": { "version": "1.2.6", "resolved": "https://registry.npmjs.org/numericjs/-/numericjs-1.2.6.tgz", - "integrity": "sha1-wNryXEvLIuBDv4NEP5856LM2eYs=", + "integrity": "sha512-AbumaZGCaoXy0Fn231zqrFbQ1b6yUX5WD2Ve5jvD1hJbIYaCKFsG7XPFz5M8+O5rqdxI6Ms5+TQL8ZeSdN5FdA==", "dev": true }, "node_modules/oauth-sign": { @@ -9921,29 +9917,29 @@ "node_modules/object-assign": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/object-inspect": { - "version": "1.12.3", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz", - "integrity": "sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==", + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz", + "integrity": "sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==", "dev": true, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/object-is": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.5.tgz", - "integrity": "sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==", + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.6.tgz", + "integrity": "sha512-F8cZ+KfGlSGi09lJT7/Nd6KJZ9ygtvYC0/UYYLI9nmQKLMnydpB9yvbv9K1uSkEu7FU9vYPmVwLg328tX+ot3Q==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3" + "call-bind": "^1.0.7", + "define-properties": "^1.2.1" }, "engines": { "node": ">= 0.4" @@ -9962,13 +9958,13 @@ } }, "node_modules/object.assign": { - "version": "4.1.4", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz", - "integrity": "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==", + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.5.tgz", + "integrity": "sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", + "call-bind": "^1.0.5", + "define-properties": "^1.2.1", "has-symbols": "^1.0.3", "object-keys": "^1.1.1" }, @@ -9995,14 +9991,15 @@ } }, "node_modules/object.fromentries": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.7.tgz", - "integrity": "sha512-UPbPHML6sL8PI/mOqPwsH4G6iyXcCGzLin8KvEPenOZN5lpCNBZZQ+V62vdjB1mQHrmqGQt5/OJzemUA+KJmEA==", + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.8.tgz", + "integrity": "sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1" + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-object-atoms": "^1.0.0" }, "engines": { "node": ">= 0.4" @@ -10012,15 +10009,17 @@ } }, "node_modules/object.groupby": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/object.groupby/-/object.groupby-1.0.1.tgz", - "integrity": "sha512-HqaQtqLnp/8Bn4GL16cj+CUYbnpe1bh0TtEaWvybszDG4tgxCJuRpV8VGuvNaI1fAnI4lUJzDG55MXcOH4JZcQ==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/object.groupby/-/object.groupby-1.0.3.tgz", + "integrity": "sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "get-intrinsic": "^1.2.1" + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2" + }, + "engines": { + "node": ">= 0.4" } }, "node_modules/object.pick": { @@ -10036,14 +10035,14 @@ } }, "node_modules/object.values": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.7.tgz", - "integrity": "sha512-aU6xnDFYT3x17e/f0IiiwlGPTy2jzMySGfUB4fq6z7CV8l85CWHDk5ErhyhpfDHhrOMwGFhSQkhMGHaIotA6Ng==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.2.0.tgz", + "integrity": "sha512-yBYjY9QX2hnRmZHAjG/f13MzmBzxzYgQhFrke06TTyKY5zSTEqkOeukBzIdVA3j3ulu8Qa3MbVFShV7T2RmGtQ==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1" + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" }, "engines": { "node": ">= 0.4" @@ -10053,9 +10052,9 @@ } }, "node_modules/on-finished": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", - "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", "dev": true, "dependencies": { "ee-first": "1.1.1" @@ -10067,72 +10066,69 @@ "node_modules/once": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", "dev": true, "dependencies": { "wrappy": "1" } }, "node_modules/optionator": { - "version": "0.9.3", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz", - "integrity": "sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==", + "version": "0.9.4", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", + "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==", "dev": true, "dependencies": { - "@aashutoshrathi/word-wrap": "^1.2.3", "deep-is": "^0.1.3", "fast-levenshtein": "^2.0.6", "levn": "^0.4.1", "prelude-ls": "^1.2.1", - "type-check": "^0.4.0" + "type-check": "^0.4.0", + "word-wrap": "^1.2.5" }, "engines": { "node": ">= 0.8.0" } }, - "node_modules/optionator/node_modules/fast-levenshtein": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", - "dev": true - }, "node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", "dev": true, "dependencies": { - "p-try": "^2.0.0" + "yocto-queue": "^0.1.0" }, "engines": { - "node": ">=6" + "node": ">=10" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/p-locate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", - "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", "dev": true, "dependencies": { - "p-limit": "^2.0.0" + "p-limit": "^3.0.2" }, "engines": { - "node": ">=6" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/p-map": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", - "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-5.5.0.tgz", + "integrity": "sha512-VFqfGDHlx87K66yZrNdI4YGtD70IRyd+zSvgks6mzHPRNkoKy+9EKP4SFC77/vTTQYmRmti7dvqC+m5jBrBAcg==", "dev": true, "dependencies": { - "aggregate-error": "^3.0.0" + "aggregate-error": "^4.0.0" }, "engines": { - "node": ">=10" + "node": ">=12" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -10150,7 +10146,7 @@ "node_modules/pad-right": { "version": "0.2.2", "resolved": "https://registry.npmjs.org/pad-right/-/pad-right-0.2.2.tgz", - "integrity": "sha1-b7ySQEXSRPKiokRQMGDTv8YAl3Q=", + "integrity": "sha512-4cy8M95ioIGolCoMmm2cMntGR1lPLEbOMzOKu8bzjuJP6JpzEMQcDHmh7hHLYGgob+nKe1YHFMaG4V59HQa89g==", "dev": true, "dependencies": { "repeat-string": "^1.5.2" @@ -10203,25 +10199,19 @@ "node": ">= 0.8" } }, - "node_modules/parsimmon": { - "version": "1.18.0", - "resolved": "https://registry.npmjs.org/parsimmon/-/parsimmon-1.18.0.tgz", - "integrity": "sha512-EtVsGuQfDgwGgXzsSDe+5egRPwbcgKRd/omQ1L3Oj2pHy0gYqd+Q7zrBIQ7P/BN6DWUP9vV45HIgZHCmssdzMg==", - "dev": true - }, "node_modules/path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", "dev": true, "engines": { - "node": ">=4" + "node": ">=8" } }, "node_modules/path-is-absolute": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", "dev": true, "engines": { "node": ">=0.10.0" @@ -10263,6 +10253,40 @@ "node": ">=0.10.0" } }, + "node_modules/path-scurry": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", + "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", + "dev": true, + "dependencies": { + "lru-cache": "^10.2.0", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" + }, + "engines": { + "node": ">=16 || 14 >=14.18" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/path-scurry/node_modules/lru-cache": { + "version": "10.2.2", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.2.tgz", + "integrity": "sha512-9hp3Vp2/hFQUiIwKo8XCeFVnrg8Pk3TYNPIR7tJADKi5YfcF7vEaK7avFHTlSy3kOKYaJQaalfEo6YuXdceBOQ==", + "dev": true, + "engines": { + "node": "14 || >=16.14" + } + }, + "node_modules/path-scurry/node_modules/minipass": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.1.tgz", + "integrity": "sha512-UZ7eQ+h8ywIRAW1hIEl2AqdwzJucU/Kp59+8kkZeSvafXhZjul247BvIJjEVFVeON6d7lM46XX1HXCduKAS8VA==", + "dev": true, + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, "node_modules/path-to-regexp": { "version": "6.2.2", "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-6.2.2.tgz", @@ -10281,7 +10305,7 @@ "node_modules/pause-stream": { "version": "0.0.11", "resolved": "https://registry.npmjs.org/pause-stream/-/pause-stream-0.0.11.tgz", - "integrity": "sha1-/lo0sMvOErWqaitAPuLnO2AvFEU=", + "integrity": "sha512-e3FBlXLmN/D1S+zHzanP4E/4Z60oFAa3O051qt1pxa7DEJWKAyil6upYVXCWadEnuoqa4Pkc9oUx9zsxYeRv8A==", "dev": true, "dependencies": { "through": "~2.3" @@ -10290,13 +10314,13 @@ "node_modules/performance-now": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", - "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=", + "integrity": "sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==", "dev": true }, "node_modules/picocolors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.1.tgz", + "integrity": "sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==", "dev": true }, "node_modules/picomatch": { @@ -10341,6 +10365,67 @@ "node": ">=6" } }, + "node_modules/pkg-dir/node_modules/find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "dev": true, + "dependencies": { + "locate-path": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/pkg-dir/node_modules/locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "dev": true, + "dependencies": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/pkg-dir/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/pkg-dir/node_modules/p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "dev": true, + "dependencies": { + "p-limit": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/pkg-dir/node_modules/path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==", + "dev": true, + "engines": { + "node": ">=4" + } + }, "node_modules/platform": { "version": "1.3.6", "resolved": "https://registry.npmjs.org/platform/-/platform-1.3.6.tgz", @@ -10362,6 +10447,27 @@ "node": ">= 0.10" } }, + "node_modules/plugin-error/node_modules/ansi-colors": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-1.1.0.tgz", + "integrity": "sha512-SFKX67auSNoVR38N3L+nvsPjOE0bybKTYbkf5tRvushrAPQ9V75huw0ZxBkKVeRU9kqH3d6HA4xTckbwZ4ixmA==", + "dev": true, + "dependencies": { + "ansi-wrap": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/possible-typed-array-names": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.0.0.tgz", + "integrity": "sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/prelude-ls": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", @@ -10401,7 +10507,7 @@ "node_modules/process": { "version": "0.11.10", "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", - "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=", + "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==", "dev": true, "engines": { "node": ">= 0.6.0" @@ -10429,15 +10535,15 @@ } }, "node_modules/psl": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz", - "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==", + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz", + "integrity": "sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==", "dev": true }, "node_modules/punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", "dev": true, "engines": { "node": ">=6" @@ -10446,7 +10552,7 @@ "node_modules/q": { "version": "1.5.1", "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", - "integrity": "sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=", + "integrity": "sha512-kV/CThkXo6xyFEZUugw/+pIOywXcDbFYgSct5cT3gqlbkBE1SJdwy6UQoZvodiWF/ckQLZyDE/Bu1M6gVu5lVw==", "dev": true, "engines": { "node": ">=0.6.0", @@ -10463,12 +10569,18 @@ } }, "node_modules/qs": { - "version": "6.5.3", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.3.tgz", - "integrity": "sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==", + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", + "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", "dev": true, + "dependencies": { + "side-channel": "^1.0.4" + }, "engines": { "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, "node_modules/queue-microtask": { @@ -10537,18 +10649,17 @@ } }, "node_modules/readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", "dev": true, "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" } }, "node_modules/readdirp": { @@ -10582,9 +10693,9 @@ "dev": true }, "node_modules/regenerate-unicode-properties": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.0.tgz", - "integrity": "sha512-d1VudCLoIGitcU/hEg2QqvyGZQmdC0Lf8BqdOMXGFSvJP4bNV1+XqbPQeHHLD51Jh4QJJ225dlIFvY4Ly6MXmQ==", + "version": "10.1.1", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.1.tgz", + "integrity": "sha512-X007RyZLsCJVVrjgEFVpLUTZwyOZk3oiL75ZcuYjlIWd6rNJtOjkBwQc5AsRrpbKVkxN6sklw/k/9m2jJYOf8Q==", "dev": true, "dependencies": { "regenerate": "^1.4.2" @@ -10608,14 +10719,15 @@ } }, "node_modules/regexp.prototype.flags": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.1.tgz", - "integrity": "sha512-sy6TXMN+hnP/wMy+ISxg3krXx7BAtWVO4UouuCN/ziM9UEne0euamVNafDfvC83bRNr95y0V5iijeDQFUNpvrg==", + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.2.tgz", + "integrity": "sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "set-function-name": "^2.0.0" + "call-bind": "^1.0.6", + "define-properties": "^1.2.1", + "es-errors": "^1.3.0", + "set-function-name": "^2.0.1" }, "engines": { "node": ">= 0.4" @@ -10671,7 +10783,7 @@ "node_modules/repeat-string": { "version": "1.6.1", "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", - "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", + "integrity": "sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w==", "dev": true, "engines": { "node": ">=0.10" @@ -10727,10 +10839,19 @@ "node": ">= 6" } }, + "node_modules/request/node_modules/qs": { + "version": "6.5.3", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.3.tgz", + "integrity": "sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==", + "dev": true, + "engines": { + "node": ">=0.6" + } + }, "node_modules/require-directory": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", "dev": true, "engines": { "node": ">=0.10.0" @@ -10745,11 +10866,17 @@ "node": ">=0.10.0" } }, - "node_modules/requires-port": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", - "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=", - "dev": true + "node_modules/require-main-filename": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", + "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", + "dev": true + }, + "node_modules/requires-port": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", + "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==", + "dev": true }, "node_modules/resolve": { "version": "1.22.8", @@ -10814,7 +10941,7 @@ "node_modules/retry": { "version": "0.12.0", "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", - "integrity": "sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs=", + "integrity": "sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==", "dev": true, "engines": { "node": ">= 4" @@ -10831,9 +10958,9 @@ } }, "node_modules/rfdc": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.3.0.tgz", - "integrity": "sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA==", + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.3.1.tgz", + "integrity": "sha512-r5a3l5HzYlIC68TpmYKlxWjmOP6wiPJ1vWv2HeLhNsRZMrCkxeqxiHlQ21oXmQ4F3SiryXBHhAD7JZqvOJjFmg==", "dev": true }, "node_modules/rimraf": { @@ -10851,6 +10978,16 @@ "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/rimraf/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, "node_modules/rimraf/node_modules/glob": { "version": "7.2.3", "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", @@ -10871,6 +11008,18 @@ "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/rimraf/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, "node_modules/run-parallel": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", @@ -10895,13 +11044,13 @@ } }, "node_modules/safe-array-concat": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.0.1.tgz", - "integrity": "sha512-6XbUAseYE2KtOuGueyeobCySj9L4+66Tn6KQMOPQJrAJEowYKW/YR/MGJZl7FdydUdaFu4LYyDZjxf4/Nmo23Q==", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.2.tgz", + "integrity": "sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.2.1", + "call-bind": "^1.0.7", + "get-intrinsic": "^1.2.4", "has-symbols": "^1.0.3", "isarray": "^2.0.5" }, @@ -10912,28 +11061,39 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/safe-array-concat/node_modules/isarray": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", - "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", - "dev": true - }, "node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] }, "node_modules/safe-regex-test": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.0.tgz", - "integrity": "sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.3.tgz", + "integrity": "sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.3", + "call-bind": "^1.0.6", + "es-errors": "^1.3.0", "is-regex": "^1.1.4" }, + "engines": { + "node": ">= 0.4" + }, "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -10945,15 +11105,15 @@ "dev": true }, "node_modules/schema-utils": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz", - "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.2.0.tgz", + "integrity": "sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw==", "dev": true, "dependencies": { "@types/json-schema": "^7.0.9", - "ajv": "^8.8.0", + "ajv": "^8.9.0", "ajv-formats": "^2.1.1", - "ajv-keywords": "^5.0.0" + "ajv-keywords": "^5.1.0" }, "engines": { "node": ">= 12.13.0" @@ -10964,15 +11124,15 @@ } }, "node_modules/schema-utils/node_modules/ajv": { - "version": "8.11.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz", - "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==", + "version": "8.13.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.13.0.tgz", + "integrity": "sha512-PRA911Blj99jR5RMeTunVbNXMF6Lp4vZXnk5GQjcnUWUTsrXtekg/pnmFFI2u/I36Y/2bITGS30GZCXei6uNkA==", "dev": true, "dependencies": { - "fast-deep-equal": "^3.1.1", + "fast-deep-equal": "^3.1.3", "json-schema-traverse": "^1.0.0", "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" + "uri-js": "^4.4.1" }, "funding": { "type": "github", @@ -11003,12 +11163,12 @@ "integrity": "sha512-8OwmbklUNzwezjGInmZ+2clQmExQPvomqjL7LFqOYqtmuxRgQYqOD3mHaU+MvZn5FLUeVxVfQjwLZW/n/JFuqg==" }, "node_modules/semver": { - "version": "5.7.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", - "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true, "bin": { - "semver": "bin/semver" + "semver": "bin/semver.js" } }, "node_modules/semver-greatest-satisfied-range": { @@ -11035,18 +11195,36 @@ "node_modules/set-blocking": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", + "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==", "dev": true }, + "node_modules/set-function-length": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", + "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", + "dev": true, + "dependencies": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/set-function-name": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.1.tgz", - "integrity": "sha512-tMNCiqYVkXIZgc2Hnoy2IvC/f8ezc5koaRFkCjrpWzGpCd3qbZXPzVy9MAZzK1ch/X0jvSkojys3oqJN0qCmdA==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.2.tgz", + "integrity": "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==", "dev": true, "dependencies": { - "define-data-property": "^1.0.1", + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", "functions-have-names": "^1.2.3", - "has-property-descriptors": "^1.0.0" + "has-property-descriptors": "^1.0.2" }, "engines": { "node": ">= 0.4" @@ -11092,25 +11270,34 @@ } }, "node_modules/side-channel": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", - "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz", + "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==", "dev": true, "dependencies": { - "call-bind": "^1.0.0", - "get-intrinsic": "^1.0.2", - "object-inspect": "^1.9.0" + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.4", + "object-inspect": "^1.13.1" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/signal-exit": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", "dev": true, - "optional": true + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } }, "node_modules/sinon": { "version": "17.0.1", @@ -11172,16 +11359,16 @@ "node_modules/slide": { "version": "1.1.6", "resolved": "https://registry.npmjs.org/slide/-/slide-1.1.6.tgz", - "integrity": "sha1-VusCfWW00tzmyy4tMsTUr8nh1wc=", + "integrity": "sha512-NwrtjCg+lZoqhFU8fOwl4ay2ei8PaqCBOUV3/ektPY9trO1yQ1oXEfmHAhKArUVUr/hOHvy5f6AdP17dCM0zMw==", "dev": true, "engines": { "node": "*" } }, "node_modules/socket.io": { - "version": "4.7.4", - "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-4.7.4.tgz", - "integrity": "sha512-DcotgfP1Zg9iP/dH9zvAQcWrE0TtbMVwXmlV4T4mqsvY+gw+LqUGPfx2AoVyRk0FLME+GQhufDMyacFmw7ksqw==", + "version": "4.7.5", + "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-4.7.5.tgz", + "integrity": "sha512-DmeAkF6cwM9jSfmp6Dr/5/mfMwb5Z5qRrSXLpo3Fq5SqyU8CMF15jIN4ZhfSwu35ksM1qmHZDQ/DK5XTccSTvA==", "dev": true, "dependencies": { "accepts": "~1.3.4", @@ -11220,9 +11407,9 @@ } }, "node_modules/source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true, "engines": { "node": ">=0.10.0" @@ -11238,15 +11425,6 @@ "source-map": "^0.6.0" } }, - "node_modules/source-map-support/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/sparkles": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/sparkles/-/sparkles-2.1.0.tgz", @@ -11257,9 +11435,9 @@ } }, "node_modules/spdx-correct": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", - "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz", + "integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==", "dev": true, "dependencies": { "spdx-expression-parse": "^3.0.0", @@ -11267,9 +11445,9 @@ } }, "node_modules/spdx-exceptions": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", - "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==", + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.5.0.tgz", + "integrity": "sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==", "dev": true }, "node_modules/spdx-expression-parse": { @@ -11283,15 +11461,15 @@ } }, "node_modules/spdx-license-ids": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.6.tgz", - "integrity": "sha512-+orQK83kyMva3WyPf59k1+Y525csj5JejicWut55zeTWANuN17qSiSLUXWtzHeNWORSvT7GLDJ/E/XiIWoXBTw==", + "version": "3.0.17", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.17.tgz", + "integrity": "sha512-sh8PWc/ftMqAAdFiBu6Fy6JUOYjqDJBJvIhpfDMyHrr0Rbp5liZqd4TjtQ/RgfLjKFZb+LMx5hpml5qOWy0qvg==", "dev": true }, "node_modules/split": { "version": "0.3.3", "resolved": "https://registry.npmjs.org/split/-/split-0.3.3.tgz", - "integrity": "sha1-zQ7qXmOiEd//frDwkcQTPi0N0o8=", + "integrity": "sha512-wD2AeVmxXRBoX44wAycgjVpMhvbwdI2aZjCkvfNcH1YqHQvJVa1duWc73OyVGJUc05fhFaTZeQ/PYsrmyH0JVA==", "dev": true, "dependencies": { "through": "2" @@ -11303,13 +11481,13 @@ "node_modules/sprintf-js": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", "dev": true }, "node_modules/sshpk": { - "version": "1.17.0", - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.17.0.tgz", - "integrity": "sha512-/9HIEs1ZXGhSPE8X6Ccm7Nam1z8KcoCqPdI7ecm1N33EzAetWahvQWVqLZtaZQ+IDKX4IyA2o0gBzqIMkAagHQ==", + "version": "1.18.0", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.18.0.tgz", + "integrity": "sha512-2p2KJZTSqQ/I3+HX42EpYOa2l3f8Erv8MWKsy2I9uf4wA7yFIkXRffYdsx86y6z4vHtV8u7g+pPlr8/4ouAxsQ==", "dev": true, "dependencies": { "asn1": "~0.2.3", @@ -11331,10 +11509,22 @@ "node": ">=0.10.0" } }, + "node_modules/ssri": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-8.0.1.tgz", + "integrity": "sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ==", + "dev": true, + "dependencies": { + "minipass": "^3.1.1" + }, + "engines": { + "node": ">= 8" + } + }, "node_modules/statuses": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", - "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=", + "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==", "dev": true, "engines": { "node": ">= 0.6" @@ -11343,7 +11533,7 @@ "node_modules/stream-combiner": { "version": "0.0.4", "resolved": "https://registry.npmjs.org/stream-combiner/-/stream-combiner-0.0.4.tgz", - "integrity": "sha1-TV5DPBhSYd3mI8o/RMWGvPXErRQ=", + "integrity": "sha512-rT00SPnTVyRsaSz5zgSPma/aHSOic5U1prhYdRy5HS2kTZviFpmDgzilbtsJsxiroqACmayynDN/9VzIbX5DOw==", "dev": true, "dependencies": { "duplexer": "~0.1.1" @@ -11374,97 +11564,94 @@ "dev": true }, "node_modules/streamroller": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/streamroller/-/streamroller-3.0.2.tgz", - "integrity": "sha512-ur6y5S5dopOaRXBuRIZ1u6GC5bcEXHRZKgfBjfCglMhmIf+roVCECjvkEYzNQOXIN2/JPnkMPW/8B3CZoKaEPA==", + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/streamroller/-/streamroller-3.1.5.tgz", + "integrity": "sha512-KFxaM7XT+irxvdqSP1LGLgNWbYN7ay5owZ3r/8t77p+EtSUAfUgtl7be3xtqtOmGUl9K9YPO2ca8133RlTjvKw==", "dev": true, "dependencies": { - "date-format": "^4.0.3", - "debug": "^4.1.1", - "fs-extra": "^10.0.0" + "date-format": "^4.0.14", + "debug": "^4.3.4", + "fs-extra": "^8.1.0" }, "engines": { "node": ">=8.0" } }, "node_modules/streamroller/node_modules/fs-extra": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.0.0.tgz", - "integrity": "sha512-C5owb14u9eJwizKGdchcDUQeFtlSHHthBk8pbX9Vc1PFZrLombudjDnNns88aYslCyF6IY5SUw3Roz6xShcEIQ==", + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", + "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", "dev": true, "dependencies": { "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" }, "engines": { - "node": ">=12" + "node": ">=6 <7 || >=8" } }, - "node_modules/streamroller/node_modules/jsonfile": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", - "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "node_modules/streamx": { + "version": "2.16.1", + "resolved": "https://registry.npmjs.org/streamx/-/streamx-2.16.1.tgz", + "integrity": "sha512-m9QYj6WygWyWa3H1YY69amr4nVgy61xfjys7xO7kviL5rfIEc2naf+ewFiOA+aEJD7y0JO3h2GoiUv4TDwEGzQ==", "dev": true, "dependencies": { - "universalify": "^2.0.0" + "fast-fifo": "^1.1.0", + "queue-tick": "^1.0.1" }, "optionalDependencies": { - "graceful-fs": "^4.1.6" - } - }, - "node_modules/streamroller/node_modules/universalify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", - "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", - "dev": true, - "engines": { - "node": ">= 10.0.0" + "bare-events": "^2.2.0" } }, - "node_modules/streamx": { - "version": "2.15.5", - "resolved": "https://registry.npmjs.org/streamx/-/streamx-2.15.5.tgz", - "integrity": "sha512-9thPGMkKC2GctCzyCUjME3yR03x2xNo0GPKGkRw2UMYN+gqWa9uqpyNWhmsNCutU5zHmkUum0LsCRQTXUgUCAg==", + "node_modules/string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", "dev": true, "dependencies": { - "fast-fifo": "^1.1.0", - "queue-tick": "^1.0.1" + "safe-buffer": "~5.2.0" } }, - "node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "dev": true, "dependencies": { - "safe-buffer": "~5.1.0" + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" } }, - "node_modules/string-width": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "node_modules/string-width-cjs": { + "name": "string-width", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "dev": true, - "optional": true, "dependencies": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" }, "engines": { - "node": ">=0.10.0" + "node": ">=8" } }, "node_modules/string.prototype.trim": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.8.tgz", - "integrity": "sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ==", + "version": "1.2.9", + "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.9.tgz", + "integrity": "sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1" + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.0", + "es-object-atoms": "^1.0.0" }, "engines": { "node": ">= 0.4" @@ -11474,61 +11661,83 @@ } }, "node_modules/string.prototype.trimend": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.7.tgz", - "integrity": "sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA==", + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.8.tgz", + "integrity": "sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1" + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/string.prototype.trimstart": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.7.tgz", - "integrity": "sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg==", + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz", + "integrity": "sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1" + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dev": true, "dependencies": { - "ansi-regex": "^2.0.0" + "ansi-regex": "^5.0.1" }, "engines": { - "node": ">=0.10.0" + "node": ">=8" } }, - "node_modules/strip-json-comments": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "node_modules/strip-ansi-cjs": { + "name": "strip-ansi", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, "engines": { "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/strip-json-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" } }, "node_modules/stubs": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/stubs/-/stubs-3.0.0.tgz", - "integrity": "sha1-6NK6H6nJBXAwPAMLaQD31fiavls=", + "integrity": "sha512-PdHt7hHUJKxvTCgbKX9C1V/ftOcjJQgz8BZwNfV5c4B6dcGqlpelTbJ999jBGZ2jYiPAwcX5dP6oBwVlBlUbxw==", "dev": true }, "node_modules/supports-color": { @@ -11564,20 +11773,10 @@ "semver": "^6.3.0" } }, - "node_modules/sver/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true, - "optional": true, - "bin": { - "semver": "bin/semver.js" - } - }, "node_modules/sylvester": { "version": "0.0.21", "resolved": "https://registry.npmjs.org/sylvester/-/sylvester-0.0.21.tgz", - "integrity": "sha1-KYexzivS84sNzio0OIiEv6RADqc=", + "integrity": "sha512-yUT0ukFkFEt4nb+NY+n2ag51aS/u9UHXoZw+A4jgD77/jzZsBoSDHuqysrVCBC4CYR4TYvUJq54ONpXgDBH8tA==", "dev": true, "engines": { "node": ">=0.2.6" @@ -11599,12 +11798,6 @@ "url": "https://opencollective.com/unts" } }, - "node_modules/synckit/node_modules/tslib": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", - "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==", - "dev": true - }, "node_modules/tapable": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", @@ -11615,9 +11808,9 @@ } }, "node_modules/tar": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/tar/-/tar-6.2.0.tgz", - "integrity": "sha512-/Wo7DcT0u5HUV486xg675HtjNd3BXZ6xDbzsCUZPt5iw8bTQ63bP0Raut3mvro9u+CUyq7YQd8Cx55fsZXxqLQ==", + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/tar/-/tar-6.2.1.tgz", + "integrity": "sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==", "dev": true, "dependencies": { "chownr": "^2.0.0", @@ -11632,9 +11825,9 @@ } }, "node_modules/tar-stream": { - "version": "3.1.6", - "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-3.1.6.tgz", - "integrity": "sha512-B/UyjYwPpMBv+PaFSWAmtYjwdrlEaZQEhMIBFNC5oEG8lpiW8XjcSdmEaClj28ArfKScKHs2nshz3k2le6crsg==", + "version": "3.1.7", + "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-3.1.7.tgz", + "integrity": "sha512-qJj60CXt7IU1Ffyc3NJMjh6EkuCFej46zUqJ4J7pqYlThyd9bO0XBTmcOIhSzZJVWfsLks0+nle/j538YAW9RQ==", "dev": true, "dependencies": { "b4a": "^1.6.4", @@ -11663,6 +11856,12 @@ "node": ">=10" } }, + "node_modules/tar/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, "node_modules/teeny-request": { "version": "7.1.1", "resolved": "https://registry.npmjs.org/teeny-request/-/teeny-request-7.1.1.tgz", @@ -11679,6 +11878,19 @@ "node": ">=10" } }, + "node_modules/teeny-request/node_modules/https-proxy-agent": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", + "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", + "dev": true, + "dependencies": { + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, "node_modules/teeny-request/node_modules/uuid": { "version": "8.3.2", "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", @@ -11700,7 +11912,7 @@ "node_modules/temp-fs": { "version": "0.9.9", "resolved": "https://registry.npmjs.org/temp-fs/-/temp-fs-0.9.9.tgz", - "integrity": "sha1-gHFzBDeHByDpQxUy/igUNk+IA9c=", + "integrity": "sha512-WfecDCR1xC9b0nsrzSaxPf3ZuWeWLUWblW4vlDQAa1biQaKHiImHnJfeQocQe/hXKMcolRzgkcVX/7kK4zoWbw==", "dev": true, "dependencies": { "rimraf": "~2.5.2" @@ -11709,6 +11921,16 @@ "node": ">=0.8.0" } }, + "node_modules/temp-fs/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, "node_modules/temp-fs/node_modules/glob": { "version": "7.2.3", "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", @@ -11729,10 +11951,22 @@ "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/temp-fs/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, "node_modules/temp-fs/node_modules/rimraf": { "version": "2.5.4", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.5.4.tgz", - "integrity": "sha1-loAAk8vxoMhr2VtGJUZ1NcKd+gQ=", + "integrity": "sha512-Lw7SHMjssciQb/rRz7JyPIy9+bbUshEucPoLRvWqy09vC5zQixl8Uet+Zl+SROBB/JMWHJRdCk1qdxNWHNMvlQ==", "dev": true, "dependencies": { "glob": "^7.0.5" @@ -11742,9 +11976,9 @@ } }, "node_modules/terser": { - "version": "5.27.0", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.27.0.tgz", - "integrity": "sha512-bi1HRwVRskAjheeYl291n3JC4GgO/Ty4z1nVs5AAsmonJulGxpSektecnNedrwK9C7vpvVtcX3cw00VSLt7U2A==", + "version": "5.31.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.31.0.tgz", + "integrity": "sha512-Q1JFAoUKE5IMfI4Z/lkE/E6+SwgzO+x4tq4v1AyBLRj8VSYvRO6A/rQrPg1yud4g0En9EKI1TvFRF2tQFcoUkg==", "dev": true, "dependencies": { "@jridgewell/source-map": "^0.3.3", @@ -11834,6 +12068,16 @@ "node": ">=8" } }, + "node_modules/test-exclude/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, "node_modules/test-exclude/node_modules/glob": { "version": "7.2.3", "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", @@ -11854,16 +12098,28 @@ "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/test-exclude/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, "node_modules/text-table": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", "dev": true }, "node_modules/through": { "version": "2.3.8", "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", + "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==", "dev": true }, "node_modules/through2": { @@ -11876,27 +12132,60 @@ "xtend": "~4.0.1" } }, + "node_modules/through2/node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true + }, + "node_modules/through2/node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dev": true, + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/through2/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, + "node_modules/through2/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, "node_modules/tiny-emitter": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/tiny-emitter/-/tiny-emitter-2.1.0.tgz", "integrity": "sha512-NB6Dk1A9xgQPMoGqC5CVXn123gWyte215ONT5Pp5a0yt4nlEoO1ZWeCwpncaekPHXO60i47ihFnZPiRPjRMq4Q==" }, "node_modules/tmp": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz", - "integrity": "sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==", + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.3.tgz", + "integrity": "sha512-nZD7m9iCPC5g0pYmcaxogYKggSfLsdxl8of3Q/oIbqCqLLIO9IAF0GWjX1z9NZRHPiXv8Wex4yDCaZsgEw0Y8w==", "dev": true, - "dependencies": { - "rimraf": "^3.0.0" - }, "engines": { - "node": ">=8.17.0" + "node": ">=14.14" } }, "node_modules/to-fast-properties": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", + "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", "dev": true, "engines": { "node": ">=4" @@ -11951,7 +12240,7 @@ "node_modules/tr46": { "version": "0.0.3", "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", "dev": true }, "node_modules/ts-api-utils": { @@ -12042,19 +12331,10 @@ "json5": "lib/cli.js" } }, - "node_modules/tsconfig-paths/node_modules/strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", - "dev": true, - "engines": { - "node": ">=4" - } - }, "node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", + "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==", "dev": true }, "node_modules/tslint": { @@ -12087,6 +12367,34 @@ "typescript": ">=2.1.0 || >=2.1.0-dev || >=2.2.0-dev || >=2.3.0-dev || >=2.4.0-dev || >=2.5.0-dev || >=2.6.0-dev || >=2.7.0-dev || >=2.8.0-dev || >=2.9.0-dev || >=3.0.0-dev || >= 3.1.0-dev || >= 3.2.0-dev" } }, + "node_modules/tslint/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/tslint/node_modules/builtin-modules": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", + "integrity": "sha512-wxXCdllwGhI2kCC0MnvTGYTMvnVZTvqgypkiTI8Pa5tcz2i6VqsqwYGgqwXji+4RgCzms6EajE4IxiUH6HH8nQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/tslint/node_modules/diff": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz", + "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==", + "dev": true, + "engines": { + "node": ">=0.3.1" + } + }, "node_modules/tslint/node_modules/glob": { "version": "7.2.3", "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", @@ -12107,18 +12415,45 @@ "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/tslint/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, "node_modules/tslint/node_modules/mkdirp": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", - "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", "dev": true, "dependencies": { - "minimist": "^1.2.5" + "minimist": "^1.2.6" }, "bin": { "mkdirp": "bin/cmd.js" } }, + "node_modules/tslint/node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "dev": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/tslint/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + }, "node_modules/tsutils": { "version": "2.29.0", "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-2.29.0.tgz", @@ -12131,10 +12466,16 @@ "typescript": ">=2.1.0 || >=2.1.0-dev || >=2.2.0-dev || >=2.3.0-dev || >=2.4.0-dev || >=2.5.0-dev || >=2.6.0-dev || >=2.7.0-dev || >=2.8.0-dev || >=2.9.0-dev || >= 3.0.0-dev || >= 3.1.0-dev" } }, + "node_modules/tsutils/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + }, "node_modules/tunnel-agent": { "version": "0.6.0", "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", - "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", + "integrity": "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==", "dev": true, "dependencies": { "safe-buffer": "^5.0.1" @@ -12146,7 +12487,7 @@ "node_modules/tweetnacl": { "version": "0.14.5", "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", - "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", + "integrity": "sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==", "dev": true }, "node_modules/type-check": { @@ -12196,29 +12537,30 @@ } }, "node_modules/typed-array-buffer": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.0.tgz", - "integrity": "sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.2.tgz", + "integrity": "sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.2.1", - "is-typed-array": "^1.1.10" + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "is-typed-array": "^1.1.13" }, "engines": { "node": ">= 0.4" } }, "node_modules/typed-array-byte-length": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.0.tgz", - "integrity": "sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.1.tgz", + "integrity": "sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", + "call-bind": "^1.0.7", "for-each": "^0.3.3", - "has-proto": "^1.0.1", - "is-typed-array": "^1.1.10" + "gopd": "^1.0.1", + "has-proto": "^1.0.3", + "is-typed-array": "^1.1.13" }, "engines": { "node": ">= 0.4" @@ -12228,16 +12570,17 @@ } }, "node_modules/typed-array-byte-offset": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.0.tgz", - "integrity": "sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.2.tgz", + "integrity": "sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA==", "dev": true, "dependencies": { - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.2", + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.7", "for-each": "^0.3.3", - "has-proto": "^1.0.1", - "is-typed-array": "^1.1.10" + "gopd": "^1.0.1", + "has-proto": "^1.0.3", + "is-typed-array": "^1.1.13" }, "engines": { "node": ">= 0.4" @@ -12247,14 +12590,20 @@ } }, "node_modules/typed-array-length": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.4.tgz", - "integrity": "sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==", + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.6.tgz", + "integrity": "sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", + "call-bind": "^1.0.7", "for-each": "^0.3.3", - "is-typed-array": "^1.1.9" + "gopd": "^1.0.1", + "has-proto": "^1.0.3", + "is-typed-array": "^1.1.13", + "possible-typed-array-names": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -12271,7 +12620,7 @@ "node_modules/typedarray": { "version": "0.0.6", "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", - "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", + "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==", "dev": true }, "node_modules/typedarray-pool": { @@ -12298,9 +12647,9 @@ } }, "node_modules/ua-parser-js": { - "version": "0.7.35", - "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.35.tgz", - "integrity": "sha512-veRf7dawaj9xaWEu9HoTVn5Pggtc/qj+kqTOFvNiN1l0YdxwC1kvel57UCjThjGa3BHBihE8/UJAHI+uQHmd/g==", + "version": "0.7.37", + "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.37.tgz", + "integrity": "sha512-xV8kqRKM+jhMvcHWUKthV9fNebIzrNy//2O9ZwWcfiBFR5f25XVZPLlEajk/sf3Ra15V92isyQqnIEXRDaZWEA==", "dev": true, "funding": [ { @@ -12310,6 +12659,10 @@ { "type": "paypal", "url": "https://paypal.me/faisalman" + }, + { + "type": "github", + "url": "https://github.com/sponsors/faisalman" } ], "engines": { @@ -12317,9 +12670,9 @@ } }, "node_modules/uglify-js": { - "version": "3.13.0", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.13.0.tgz", - "integrity": "sha512-TWYSWa9T2pPN4DIJYbU9oAjQx+5qdV5RUDxwARg8fmJZrD/V27Zj0JngW5xg1DFz42G0uDYl2XhzF6alSzD62w==", + "version": "3.17.4", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.17.4.tgz", + "integrity": "sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g==", "dev": true, "optional": true, "bin": { @@ -12377,6 +12730,15 @@ "node": ">= 10.13.0" } }, + "node_modules/undertaker/node_modules/fast-levenshtein": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-3.0.0.tgz", + "integrity": "sha512-hKKNajm46uNmTlhHSyZkmToAc56uZJwYq7yrciZjqOxnlfQwERDQJmHPUp7m1m9wx8vgOe8IaCKZ5Kv2k1DdCQ==", + "dev": true, + "dependencies": { + "fastest-levenshtein": "^1.0.7" + } + }, "node_modules/undici-types": { "version": "5.26.5", "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", @@ -12426,7 +12788,7 @@ "node_modules/uniq": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/uniq/-/uniq-1.0.1.tgz", - "integrity": "sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8=", + "integrity": "sha512-Gw+zz50YNKPDKXs+9d+aKAjVwpjNwqzvNpLigIruT4HA9lMZNdMqs9x07kKHB/L9WRzqp4+DlTU5s4wG2esdoA==", "dev": true }, "node_modules/universalify": { @@ -12441,16 +12803,16 @@ "node_modules/unpipe": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=", + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", "dev": true, "engines": { "node": ">= 0.8" } }, "node_modules/update-browserslist-db": { - "version": "1.0.13", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz", - "integrity": "sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==", + "version": "1.0.16", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.16.tgz", + "integrity": "sha512-KVbTxlBYlckhF5wgfyZXTWnMn7MMZjMu9XG8bPlliUOP9ThaF4QnhP8qrjrH7DRzHfSk0oQv1wToW+iA5GajEQ==", "dev": true, "funding": [ { @@ -12467,8 +12829,8 @@ } ], "dependencies": { - "escalade": "^3.1.1", - "picocolors": "^1.0.0" + "escalade": "^3.1.2", + "picocolors": "^1.0.1" }, "bin": { "update-browserslist-db": "cli.js" @@ -12478,9 +12840,9 @@ } }, "node_modules/uri-js": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.0.tgz", - "integrity": "sha512-B0yRTzYdUCCn9n+F4+Gh4yIDtMQcaJsmYBDsTSG8g/OejKBodLQ2IHfN3bM7jUsRXndopT7OIXWdYqc1fjmV6g==", + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", "dev": true, "dependencies": { "punycode": "^2.1.0" @@ -12511,13 +12873,13 @@ "node_modules/util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", "dev": true }, "node_modules/utils-merge": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", - "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=", + "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", "dev": true, "engines": { "node": ">= 0.4.0" @@ -12540,14 +12902,14 @@ "dev": true }, "node_modules/v8-to-istanbul": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.0.1.tgz", - "integrity": "sha512-74Y4LqY74kLE6IFyIjPtkSTWzUZmj8tdHT9Ii/26dvQ6K9Dl2NbEfj0XgU2sHCtKgt5VupqhlO/5aWuqS+IY1w==", + "version": "9.2.0", + "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.2.0.tgz", + "integrity": "sha512-/EH/sDgxU2eGxajKdwLCDmQ4FWq+kpi3uCmBGpw1xJtnAxEjlD8j8PEiGWpCIMIs3ciNAgH0d3TTJiUkYzyZjA==", "dev": true, "dependencies": { "@jridgewell/trace-mapping": "^0.3.12", "@types/istanbul-lib-coverage": "^2.0.1", - "convert-source-map": "^1.6.0" + "convert-source-map": "^2.0.0" }, "engines": { "node": ">=10.12.0" @@ -12575,12 +12937,18 @@ "node_modules/validate-npm-package-name": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-3.0.0.tgz", - "integrity": "sha1-X6kS2B630MdK/BQN5zF/DKffQ34=", + "integrity": "sha512-M6w37eVCMMouJ9V/sdPGnC5H4uDr73/+xdq0FBLO3TFFX1+7wiUY6Es328NN+y43tmY+doUdN9g9J21vqB7iLw==", "dev": true, "dependencies": { "builtins": "^1.0.3" } }, + "node_modules/validate-npm-package-name/node_modules/builtins": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/builtins/-/builtins-1.0.3.tgz", + "integrity": "sha512-uYBjakWipfaO/bXI7E8rq6kpwHRZK5cNYrUv2OzZSI/FvmdMyXJ2tG9dKcjEC5YHmHpUAwsargWIZNWdxb/bnQ==", + "dev": true + }, "node_modules/value-or-function": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/value-or-function/-/value-or-function-4.0.0.tgz", @@ -12602,7 +12970,7 @@ "node_modules/verror": { "version": "1.10.0", "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", - "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", + "integrity": "sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw==", "dev": true, "engines": [ "node >=0.6.0" @@ -12696,21 +13064,24 @@ "node": ">=10.13.0" } }, - "node_modules/vinyl-sourcemap/node_modules/convert-source-map": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", - "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", - "dev": true - }, "node_modules/vinyl-sourcemaps-apply": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/vinyl-sourcemaps-apply/-/vinyl-sourcemaps-apply-0.2.1.tgz", - "integrity": "sha1-q2VJ1h0XLCsbh75cUI0jnI74dwU=", + "integrity": "sha512-+oDh3KYZBoZC8hfocrbrxbLUeaYtQK7J5WU5Br9VqWqmCll3tFJqKp97GC9GmMsVIL0qnx2DgEDVxdo5EZ5sSw==", "dev": true, "dependencies": { "source-map": "^0.5.1" } }, + "node_modules/vinyl-sourcemaps-apply/node_modules/source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/vinyl/node_modules/replace-ext": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-2.0.0.tgz", @@ -12723,7 +13094,7 @@ "node_modules/void-elements": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/void-elements/-/void-elements-2.0.1.tgz", - "integrity": "sha1-wGavtYK7HLQSjWDqkjkulNXp2+w=", + "integrity": "sha512-qZKX4RnBzH2ugr8Lxa7x+0V6XD9Sb/ouARtiasEQCHB1EVU4NXtmHsDDrx1dO4ne5fc3J6EW05BP1Dl0z0iung==", "dev": true, "engines": { "node": ">=0.10.0" @@ -12745,7 +13116,7 @@ "node_modules/webidl-conversions": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE=", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", "dev": true }, "node_modules/webpack": { @@ -12813,10 +13184,32 @@ "node": ">=10.13.0" } }, + "node_modules/webpack/node_modules/eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "dev": true, + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/webpack/node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, "node_modules/webpack/node_modules/schema-utils": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.2.0.tgz", - "integrity": "sha512-0zTyLGyDJYd/MBxG1AhJkKa6fpEBds4OQO2ut0w7OYG+ZGhGea09lijvzsqegYSik88zc7cUtIlnnO+/BvD6gQ==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", + "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", "dev": true, "dependencies": { "@types/json-schema": "^7.0.8", @@ -12834,7 +13227,7 @@ "node_modules/whatwg-url": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha1-lmRU6HZUYuN2RNNib2dCzotwll0=", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", "dev": true, "dependencies": { "tr46": "~0.0.3", @@ -12842,15 +13235,18 @@ } }, "node_modules/which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/which/-/which-4.0.0.tgz", + "integrity": "sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg==", "dev": true, "dependencies": { - "isexe": "^2.0.0" + "isexe": "^3.1.1" }, "bin": { - "which": "bin/which" + "node-which": "bin/which.js" + }, + "engines": { + "node": "^16.13.0 || >=18.0.0" } }, "node_modules/which-boxed-primitive": { @@ -12869,17 +13265,23 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/which-module": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.1.tgz", + "integrity": "sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==", + "dev": true + }, "node_modules/which-typed-array": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.11.tgz", - "integrity": "sha512-qe9UWWpkeG5yzZ0tNYxDmd7vo58HDBc39mZ0xWWpolAGADdFOzkfamWLDxkOWcvHQKVmdTyQdLD4NOfjLWTKew==", + "version": "1.1.15", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.15.tgz", + "integrity": "sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==", "dev": true, "dependencies": { - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.2", + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.7", "for-each": "^0.3.3", "gopd": "^1.0.1", - "has-tostringtag": "^1.0.0" + "has-tostringtag": "^1.0.2" }, "engines": { "node": ">= 0.4" @@ -12889,19 +13291,28 @@ } }, "node_modules/wide-align": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz", - "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==", + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz", + "integrity": "sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==", "dev": true, "optional": true, "dependencies": { - "string-width": "^1.0.2 || 2" + "string-width": "^1.0.2 || 2 || 3 || 4" + } + }, + "node_modules/word-wrap": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", + "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", + "dev": true, + "engines": { + "node": ">=0.10.0" } }, "node_modules/wordwrap": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", - "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=", + "integrity": "sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==", "dev": true }, "node_modules/workerpool": { @@ -12927,16 +13338,25 @@ "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, - "node_modules/wrap-ansi/node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "node_modules/wrap-ansi-cjs": { + "name": "wrap-ansi", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, "engines": { - "node": ">=8" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, - "node_modules/wrap-ansi/node_modules/ansi-styles": { + "node_modules/wrap-ansi-cjs/node_modules/ansi-styles": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", @@ -12951,7 +13371,7 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/wrap-ansi/node_modules/color-convert": { + "node_modules/wrap-ansi-cjs/node_modules/color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", @@ -12963,51 +13383,49 @@ "node": ">=7.0.0" } }, - "node_modules/wrap-ansi/node_modules/color-name": { + "node_modules/wrap-ansi-cjs/node_modules/color-name": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, - "node_modules/wrap-ansi/node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/wrap-ansi/node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "node_modules/wrap-ansi/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" + "color-convert": "^2.0.1" }, "engines": { "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/wrap-ansi/node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "node_modules/wrap-ansi/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "dependencies": { - "ansi-regex": "^5.0.1" + "color-name": "~1.1.4" }, "engines": { - "node": ">=8" + "node": ">=7.0.0" } }, + "node_modules/wrap-ansi/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, "node_modules/wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", "dev": true }, "node_modules/ws": { @@ -13056,36 +13474,36 @@ } }, "node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", "dev": true }, "node_modules/yargs": { - "version": "16.2.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", - "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "version": "17.7.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", "dev": true, "dependencies": { - "cliui": "^7.0.2", + "cliui": "^8.0.1", "escalade": "^3.1.1", "get-caller-file": "^2.0.5", "require-directory": "^2.1.1", - "string-width": "^4.2.0", + "string-width": "^4.2.3", "y18n": "^5.0.5", - "yargs-parser": "^20.2.2" + "yargs-parser": "^21.1.1" }, "engines": { - "node": ">=10" + "node": ">=12" } }, "node_modules/yargs-parser": { - "version": "20.2.9", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", - "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", "dev": true, "engines": { - "node": ">=10" + "node": ">=12" } }, "node_modules/yargs-unparser": { @@ -13103,74 +13521,6 @@ "node": ">=10" } }, - "node_modules/yargs-unparser/node_modules/camelcase": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.2.0.tgz", - "integrity": "sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/yargs-unparser/node_modules/decamelize": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-4.0.0.tgz", - "integrity": "sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/yargs/node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/yargs/node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/yargs/node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/yargs/node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/yn": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", @@ -13195,9826 +13545,9 @@ "node_modules/zeros": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/zeros/-/zeros-1.0.0.tgz", - "integrity": "sha1-ZOLYPA2o0yKqTLiCSXsxt9wzpUA=", - "dev": true, - "dependencies": { - "ndarray": "^1.0.16" - } - } - }, - "dependencies": { - "@aashutoshrathi/word-wrap": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz", - "integrity": "sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==", - "dev": true - }, - "@ampproject/remapping": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.0.tgz", - "integrity": "sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==", - "dev": true, - "requires": { - "@jridgewell/gen-mapping": "^0.1.0", - "@jridgewell/trace-mapping": "^0.3.9" - }, - "dependencies": { - "@jridgewell/gen-mapping": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz", - "integrity": "sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==", - "dev": true, - "requires": { - "@jridgewell/set-array": "^1.0.0", - "@jridgewell/sourcemap-codec": "^1.4.10" - } - } - } - }, - "@babel/code-frame": { - "version": "7.24.2", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.2.tgz", - "integrity": "sha512-y5+tLQyV8pg3fsiln67BVLD1P13Eg4lh5RW9mF0zUuvLrv9uIQ4MCL+CRT+FTsBlBjcIan6PGsLcBN0m3ClUyQ==", - "dev": true, - "requires": { - "@babel/highlight": "^7.24.2", - "picocolors": "^1.0.0" - } - }, - "@babel/compat-data": { - "version": "7.24.4", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.24.4.tgz", - "integrity": "sha512-vg8Gih2MLK+kOkHJp4gBEIkyaIi00jgWot2D9QOmmfLC8jINSOzmCLta6Bvz/JSBCqnegV0L80jhxkol5GWNfQ==", - "dev": true - }, - "@babel/core": { - "version": "7.24.4", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.24.4.tgz", - "integrity": "sha512-MBVlMXP+kkl5394RBLSxxk/iLTeVGuXTV3cIDXavPpMMqnSnt6apKgan/U8O3USWZCWZT/TbgfEpKa4uMgN4Dg==", - "dev": true, - "requires": { - "@ampproject/remapping": "^2.2.0", - "@babel/code-frame": "^7.24.2", - "@babel/generator": "^7.24.4", - "@babel/helper-compilation-targets": "^7.23.6", - "@babel/helper-module-transforms": "^7.23.3", - "@babel/helpers": "^7.24.4", - "@babel/parser": "^7.24.4", - "@babel/template": "^7.24.0", - "@babel/traverse": "^7.24.1", - "@babel/types": "^7.24.0", - "convert-source-map": "^2.0.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.2.3", - "semver": "^6.3.1" - }, - "dependencies": { - "convert-source-map": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", - "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", - "dev": true - }, - "semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true - } - } - }, - "@babel/generator": { - "version": "7.24.4", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.24.4.tgz", - "integrity": "sha512-Xd6+v6SnjWVx/nus+y0l1sxMOTOMBkyL4+BIdbALyatQnAe/SRVjANeDPSCYaX+i1iJmuGSKf3Z+E+V/va1Hvw==", - "dev": true, - "requires": { - "@babel/types": "^7.24.0", - "@jridgewell/gen-mapping": "^0.3.5", - "@jridgewell/trace-mapping": "^0.3.25", - "jsesc": "^2.5.1" - } - }, - "@babel/helper-annotate-as-pure": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.22.5.tgz", - "integrity": "sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==", - "dev": true, - "requires": { - "@babel/types": "^7.22.5" - } - }, - "@babel/helper-builder-binary-assignment-operator-visitor": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.22.15.tgz", - "integrity": "sha512-QkBXwGgaoC2GtGZRoma6kv7Szfv06khvhFav67ZExau2RaXzy8MpHSMO2PNoP2XtmQphJQRHFfg77Bq731Yizw==", - "dev": true, - "requires": { - "@babel/types": "^7.22.15" - } - }, - "@babel/helper-compilation-targets": { - "version": "7.23.6", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.23.6.tgz", - "integrity": "sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==", - "dev": true, - "requires": { - "@babel/compat-data": "^7.23.5", - "@babel/helper-validator-option": "^7.23.5", - "browserslist": "^4.22.2", - "lru-cache": "^5.1.1", - "semver": "^6.3.1" - }, - "dependencies": { - "lru-cache": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", - "dev": true, - "requires": { - "yallist": "^3.0.2" - } - }, - "semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true - }, - "yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", - "dev": true - } - } - }, - "@babel/helper-create-class-features-plugin": { - "version": "7.24.4", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.24.4.tgz", - "integrity": "sha512-lG75yeuUSVu0pIcbhiYMXBXANHrpUPaOfu7ryAzskCgKUHuAxRQI5ssrtmF0X9UXldPlvT0XM/A4F44OXRt6iQ==", - "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-function-name": "^7.23.0", - "@babel/helper-member-expression-to-functions": "^7.23.0", - "@babel/helper-optimise-call-expression": "^7.22.5", - "@babel/helper-replace-supers": "^7.24.1", - "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", - "@babel/helper-split-export-declaration": "^7.22.6", - "semver": "^6.3.1" - }, - "dependencies": { - "semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true - } - } - }, - "@babel/helper-create-regexp-features-plugin": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.22.15.tgz", - "integrity": "sha512-29FkPLFjn4TPEa3RE7GpW+qbE8tlsu3jntNYNfcGsc49LphF1PQIiD+vMZ1z1xVOKt+93khA9tc2JBs3kBjA7w==", + "integrity": "sha512-lZ+3mqJ62wAi1NVoGB9f9iF6TvfI23YlnAwj4yUnzY8VhOrazhPKCMNrlwVf57Qz0kW9ybuXUVjYmyFrgk+r8g==", "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "^7.22.5", - "regexpu-core": "^5.3.1", - "semver": "^6.3.1" - }, "dependencies": { - "semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true - } - } - }, - "@babel/helper-define-polyfill-provider": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.1.tgz", - "integrity": "sha512-o7SDgTJuvx5vLKD6SFvkydkSMBvahDKGiNJzG22IZYXhiqoe9efY7zocICBgzHV4IRg5wdgl2nEL/tulKIEIbA==", - "dev": true, - "requires": { - "@babel/helper-compilation-targets": "^7.22.6", - "@babel/helper-plugin-utils": "^7.22.5", - "debug": "^4.1.1", - "lodash.debounce": "^4.0.8", - "resolve": "^1.14.2" - } - }, - "@babel/helper-environment-visitor": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz", - "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==", - "dev": true - }, - "@babel/helper-function-name": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz", - "integrity": "sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==", - "dev": true, - "requires": { - "@babel/template": "^7.22.15", - "@babel/types": "^7.23.0" - } - }, - "@babel/helper-hoist-variables": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz", - "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==", - "dev": true, - "requires": { - "@babel/types": "^7.22.5" - } - }, - "@babel/helper-member-expression-to-functions": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.23.0.tgz", - "integrity": "sha512-6gfrPwh7OuT6gZyJZvd6WbTfrqAo7vm4xCzAXOusKqq/vWdKXphTpj5klHKNmRUU6/QRGlBsyU9mAIPaWHlqJA==", - "dev": true, - "requires": { - "@babel/types": "^7.23.0" - } - }, - "@babel/helper-module-imports": { - "version": "7.24.3", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.24.3.tgz", - "integrity": "sha512-viKb0F9f2s0BCS22QSF308z/+1YWKV/76mwt61NBzS5izMzDPwdq1pTrzf+Li3npBWX9KdQbkeCt1jSAM7lZqg==", - "dev": true, - "requires": { - "@babel/types": "^7.24.0" - } - }, - "@babel/helper-module-transforms": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.23.3.tgz", - "integrity": "sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==", - "dev": true, - "requires": { - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-module-imports": "^7.22.15", - "@babel/helper-simple-access": "^7.22.5", - "@babel/helper-split-export-declaration": "^7.22.6", - "@babel/helper-validator-identifier": "^7.22.20" - } - }, - "@babel/helper-optimise-call-expression": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.22.5.tgz", - "integrity": "sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==", - "dev": true, - "requires": { - "@babel/types": "^7.22.5" - } - }, - "@babel/helper-plugin-utils": { - "version": "7.24.0", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.0.tgz", - "integrity": "sha512-9cUznXMG0+FxRuJfvL82QlTqIzhVW9sL0KjMPHhAOOvpQGL8QtdxnBKILjBqxlHyliz0yCa1G903ZXI/FuHy2w==", - "dev": true - }, - "@babel/helper-remap-async-to-generator": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.22.20.tgz", - "integrity": "sha512-pBGyV4uBqOns+0UvhsTO8qgl8hO89PmiDYv+/COyp1aeMcmfrfruz+/nCMFiYyFF/Knn0yfrC85ZzNFjembFTw==", - "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-wrap-function": "^7.22.20" - } - }, - "@babel/helper-replace-supers": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.24.1.tgz", - "integrity": "sha512-QCR1UqC9BzG5vZl8BMicmZ28RuUBnHhAMddD8yHFHDRH9lLTZ9uUPehX8ctVPT8l0TKblJidqcgUUKGVrePleQ==", - "dev": true, - "requires": { - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-member-expression-to-functions": "^7.23.0", - "@babel/helper-optimise-call-expression": "^7.22.5" - } - }, - "@babel/helper-simple-access": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz", - "integrity": "sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==", - "dev": true, - "requires": { - "@babel/types": "^7.22.5" - } - }, - "@babel/helper-skip-transparent-expression-wrappers": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.22.5.tgz", - "integrity": "sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==", - "dev": true, - "requires": { - "@babel/types": "^7.22.5" - } - }, - "@babel/helper-split-export-declaration": { - "version": "7.22.6", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz", - "integrity": "sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==", - "dev": true, - "requires": { - "@babel/types": "^7.22.5" - } - }, - "@babel/helper-string-parser": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.23.4.tgz", - "integrity": "sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ==", - "dev": true - }, - "@babel/helper-validator-identifier": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz", - "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==", - "dev": true - }, - "@babel/helper-validator-option": { - "version": "7.23.5", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.23.5.tgz", - "integrity": "sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==", - "dev": true - }, - "@babel/helper-wrap-function": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.22.20.tgz", - "integrity": "sha512-pms/UwkOpnQe/PDAEdV/d7dVCoBbB+R4FvYoHGZz+4VPcg7RtYy2KP7S2lbuWM6FCSgob5wshfGESbC/hzNXZw==", - "dev": true, - "requires": { - "@babel/helper-function-name": "^7.22.5", - "@babel/template": "^7.22.15", - "@babel/types": "^7.22.19" - } - }, - "@babel/helpers": { - "version": "7.24.4", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.24.4.tgz", - "integrity": "sha512-FewdlZbSiwaVGlgT1DPANDuCHaDMiOo+D/IDYRFYjHOuv66xMSJ7fQwwODwRNAPkADIO/z1EoF/l2BCWlWABDw==", - "dev": true, - "requires": { - "@babel/template": "^7.24.0", - "@babel/traverse": "^7.24.1", - "@babel/types": "^7.24.0" - } - }, - "@babel/highlight": { - "version": "7.24.2", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.2.tgz", - "integrity": "sha512-Yac1ao4flkTxTteCDZLEvdxg2fZfz1v8M4QpaGypq/WPDqg3ijHYbDfs+LG5hvzSoqaSZ9/Z9lKSP3CjZjv+pA==", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.22.20", - "chalk": "^2.4.2", - "js-tokens": "^4.0.0", - "picocolors": "^1.0.0" - } - }, - "@babel/parser": { - "version": "7.24.4", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.4.tgz", - "integrity": "sha512-zTvEBcghmeBma9QIGunWevvBAp4/Qu9Bdq+2k0Ot4fVMD6v3dsC9WOcRSKk7tRRyBM/53yKMJko9xOatGQAwSg==", - "dev": true - }, - "@babel/plugin-bugfix-firefox-class-in-computed-class-key": { - "version": "7.24.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-firefox-class-in-computed-class-key/-/plugin-bugfix-firefox-class-in-computed-class-key-7.24.4.tgz", - "integrity": "sha512-qpl6vOOEEzTLLcsuqYYo8yDtrTocmu2xkGvgNebvPjT9DTtfFYGmgDqY+rBYXNlqL4s9qLDn6xkrJv4RxAPiTA==", - "dev": true, - "requires": { - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-plugin-utils": "^7.24.0" - } - }, - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.24.1.tgz", - "integrity": "sha512-y4HqEnkelJIOQGd+3g1bTeKsA5c6qM7eOn7VggGVbBc0y8MLSKHacwcIE2PplNlQSj0PqS9rrXL/nkPVK+kUNg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.24.0" - } - }, - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.24.1.tgz", - "integrity": "sha512-Hj791Ii4ci8HqnaKHAlLNs+zaLXb0EzSDhiAWp5VNlyvCNymYfacs64pxTxbH1znW/NcArSmwpmG9IKE/TUVVQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.24.0", - "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", - "@babel/plugin-transform-optional-chaining": "^7.24.1" - } - }, - "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.24.1.tgz", - "integrity": "sha512-m9m/fXsXLiHfwdgydIFnpk+7jlVbnvlK5B2EKiPdLUb6WX654ZaaEWJUjk8TftRbZpK0XibovlLWX4KIZhV6jw==", - "dev": true, - "requires": { - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-plugin-utils": "^7.24.0" - } - }, - "@babel/plugin-proposal-private-property-in-object": { - "version": "7.21.0-placeholder-for-preset-env.2", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz", - "integrity": "sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==", - "dev": true, - "requires": {} - }, - "@babel/plugin-syntax-async-generators": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", - "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-class-properties": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", - "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.12.13" - } - }, - "@babel/plugin-syntax-class-static-block": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", - "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-syntax-dynamic-import": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", - "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-export-namespace-from": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz", - "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.3" - } - }, - "@babel/plugin-syntax-import-assertions": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.24.1.tgz", - "integrity": "sha512-IuwnI5XnuF189t91XbxmXeCDz3qs6iDRO7GJ++wcfgeXNs/8FmIlKcpDSXNVyuLQxlwvskmI3Ct73wUODkJBlQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.24.0" - } - }, - "@babel/plugin-syntax-import-attributes": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.24.1.tgz", - "integrity": "sha512-zhQTMH0X2nVLnb04tz+s7AMuasX8U0FnpE+nHTOhSOINjWMnopoZTxtIKsd45n4GQ/HIZLyfIpoul8e2m0DnRA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.24.0" - } - }, - "@babel/plugin-syntax-import-meta": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", - "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-syntax-json-strings": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", - "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-logical-assignment-operators": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", - "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-syntax-nullish-coalescing-operator": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", - "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-numeric-separator": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", - "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-syntax-object-rest-spread": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", - "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-optional-catch-binding": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", - "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-optional-chaining": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", - "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-private-property-in-object": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", - "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-syntax-top-level-await": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", - "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-syntax-unicode-sets-regex": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz", - "integrity": "sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==", - "dev": true, - "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" - } - }, - "@babel/plugin-transform-arrow-functions": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.24.1.tgz", - "integrity": "sha512-ngT/3NkRhsaep9ck9uj2Xhv9+xB1zShY3tM3g6om4xxCELwCDN4g4Aq5dRn48+0hasAql7s2hdBOysCfNpr4fw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.24.0" - } - }, - "@babel/plugin-transform-async-generator-functions": { - "version": "7.24.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.24.3.tgz", - "integrity": "sha512-Qe26CMYVjpQxJ8zxM1340JFNjZaF+ISWpr1Kt/jGo+ZTUzKkfw/pphEWbRCb+lmSM6k/TOgfYLvmbHkUQ0asIg==", - "dev": true, - "requires": { - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-plugin-utils": "^7.24.0", - "@babel/helper-remap-async-to-generator": "^7.22.20", - "@babel/plugin-syntax-async-generators": "^7.8.4" - } - }, - "@babel/plugin-transform-async-to-generator": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.24.1.tgz", - "integrity": "sha512-AawPptitRXp1y0n4ilKcGbRYWfbbzFWz2NqNu7dacYDtFtz0CMjG64b3LQsb3KIgnf4/obcUL78hfaOS7iCUfw==", - "dev": true, - "requires": { - "@babel/helper-module-imports": "^7.24.1", - "@babel/helper-plugin-utils": "^7.24.0", - "@babel/helper-remap-async-to-generator": "^7.22.20" - } - }, - "@babel/plugin-transform-block-scoped-functions": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.24.1.tgz", - "integrity": "sha512-TWWC18OShZutrv9C6mye1xwtam+uNi2bnTOCBUd5sZxyHOiWbU6ztSROofIMrK84uweEZC219POICK/sTYwfgg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.24.0" - } - }, - "@babel/plugin-transform-block-scoping": { - "version": "7.24.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.24.4.tgz", - "integrity": "sha512-nIFUZIpGKDf9O9ttyRXpHFpKC+X3Y5mtshZONuEUYBomAKoM4y029Jr+uB1bHGPhNmK8YXHevDtKDOLmtRrp6g==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.24.0" - } - }, - "@babel/plugin-transform-class-properties": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.24.1.tgz", - "integrity": "sha512-OMLCXi0NqvJfORTaPQBwqLXHhb93wkBKZ4aNwMl6WtehO7ar+cmp+89iPEQPqxAnxsOKTaMcs3POz3rKayJ72g==", - "dev": true, - "requires": { - "@babel/helper-create-class-features-plugin": "^7.24.1", - "@babel/helper-plugin-utils": "^7.24.0" - } - }, - "@babel/plugin-transform-class-static-block": { - "version": "7.24.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.24.4.tgz", - "integrity": "sha512-B8q7Pz870Hz/q9UgP8InNpY01CSLDSCyqX7zcRuv3FcPl87A2G17lASroHWaCtbdIcbYzOZ7kWmXFKbijMSmFg==", - "dev": true, - "requires": { - "@babel/helper-create-class-features-plugin": "^7.24.4", - "@babel/helper-plugin-utils": "^7.24.0", - "@babel/plugin-syntax-class-static-block": "^7.14.5" - } - }, - "@babel/plugin-transform-classes": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.24.1.tgz", - "integrity": "sha512-ZTIe3W7UejJd3/3R4p7ScyyOoafetUShSf4kCqV0O7F/RiHxVj/wRaRnQlrGwflvcehNA8M42HkAiEDYZu2F1Q==", - "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-compilation-targets": "^7.23.6", - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-function-name": "^7.23.0", - "@babel/helper-plugin-utils": "^7.24.0", - "@babel/helper-replace-supers": "^7.24.1", - "@babel/helper-split-export-declaration": "^7.22.6", - "globals": "^11.1.0" - } - }, - "@babel/plugin-transform-computed-properties": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.24.1.tgz", - "integrity": "sha512-5pJGVIUfJpOS+pAqBQd+QMaTD2vCL/HcePooON6pDpHgRp4gNRmzyHTPIkXntwKsq3ayUFVfJaIKPw2pOkOcTw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.24.0", - "@babel/template": "^7.24.0" - } - }, - "@babel/plugin-transform-destructuring": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.24.1.tgz", - "integrity": "sha512-ow8jciWqNxR3RYbSNVuF4U2Jx130nwnBnhRw6N6h1bOejNkABmcI5X5oz29K4alWX7vf1C+o6gtKXikzRKkVdw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.24.0" - } - }, - "@babel/plugin-transform-dotall-regex": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.24.1.tgz", - "integrity": "sha512-p7uUxgSoZwZ2lPNMzUkqCts3xlp8n+o05ikjy7gbtFJSt9gdU88jAmtfmOxHM14noQXBxfgzf2yRWECiNVhTCw==", - "dev": true, - "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.22.15", - "@babel/helper-plugin-utils": "^7.24.0" - } - }, - "@babel/plugin-transform-duplicate-keys": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.24.1.tgz", - "integrity": "sha512-msyzuUnvsjsaSaocV6L7ErfNsa5nDWL1XKNnDePLgmz+WdU4w/J8+AxBMrWfi9m4IxfL5sZQKUPQKDQeeAT6lA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.24.0" - } - }, - "@babel/plugin-transform-dynamic-import": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.24.1.tgz", - "integrity": "sha512-av2gdSTyXcJVdI+8aFZsCAtR29xJt0S5tas+Ef8NvBNmD1a+N/3ecMLeMBgfcK+xzsjdLDT6oHt+DFPyeqUbDA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.24.0", - "@babel/plugin-syntax-dynamic-import": "^7.8.3" - } - }, - "@babel/plugin-transform-exponentiation-operator": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.24.1.tgz", - "integrity": "sha512-U1yX13dVBSwS23DEAqU+Z/PkwE9/m7QQy8Y9/+Tdb8UWYaGNDYwTLi19wqIAiROr8sXVum9A/rtiH5H0boUcTw==", - "dev": true, - "requires": { - "@babel/helper-builder-binary-assignment-operator-visitor": "^7.22.15", - "@babel/helper-plugin-utils": "^7.24.0" - } - }, - "@babel/plugin-transform-export-namespace-from": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.24.1.tgz", - "integrity": "sha512-Ft38m/KFOyzKw2UaJFkWG9QnHPG/Q/2SkOrRk4pNBPg5IPZ+dOxcmkK5IyuBcxiNPyyYowPGUReyBvrvZs7IlQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.24.0", - "@babel/plugin-syntax-export-namespace-from": "^7.8.3" - } - }, - "@babel/plugin-transform-for-of": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.24.1.tgz", - "integrity": "sha512-OxBdcnF04bpdQdR3i4giHZNZQn7cm8RQKcSwA17wAAqEELo1ZOwp5FFgeptWUQXFyT9kwHo10aqqauYkRZPCAg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.24.0", - "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5" - } - }, - "@babel/plugin-transform-function-name": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.24.1.tgz", - "integrity": "sha512-BXmDZpPlh7jwicKArQASrj8n22/w6iymRnvHYYd2zO30DbE277JO20/7yXJT3QxDPtiQiOxQBbZH4TpivNXIxA==", - "dev": true, - "requires": { - "@babel/helper-compilation-targets": "^7.23.6", - "@babel/helper-function-name": "^7.23.0", - "@babel/helper-plugin-utils": "^7.24.0" - } - }, - "@babel/plugin-transform-json-strings": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.24.1.tgz", - "integrity": "sha512-U7RMFmRvoasscrIFy5xA4gIp8iWnWubnKkKuUGJjsuOH7GfbMkB+XZzeslx2kLdEGdOJDamEmCqOks6e8nv8DQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.24.0", - "@babel/plugin-syntax-json-strings": "^7.8.3" - } - }, - "@babel/plugin-transform-literals": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.24.1.tgz", - "integrity": "sha512-zn9pwz8U7nCqOYIiBaOxoQOtYmMODXTJnkxG4AtX8fPmnCRYWBOHD0qcpwS9e2VDSp1zNJYpdnFMIKb8jmwu6g==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.24.0" - } - }, - "@babel/plugin-transform-logical-assignment-operators": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.24.1.tgz", - "integrity": "sha512-OhN6J4Bpz+hIBqItTeWJujDOfNP+unqv/NJgyhlpSqgBTPm37KkMmZV6SYcOj+pnDbdcl1qRGV/ZiIjX9Iy34w==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.24.0", - "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" - } - }, - "@babel/plugin-transform-member-expression-literals": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.24.1.tgz", - "integrity": "sha512-4ojai0KysTWXzHseJKa1XPNXKRbuUrhkOPY4rEGeR+7ChlJVKxFa3H3Bz+7tWaGKgJAXUWKOGmltN+u9B3+CVg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.24.0" - } - }, - "@babel/plugin-transform-modules-amd": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.24.1.tgz", - "integrity": "sha512-lAxNHi4HVtjnHd5Rxg3D5t99Xm6H7b04hUS7EHIXcUl2EV4yl1gWdqZrNzXnSrHveL9qMdbODlLF55mvgjAfaQ==", - "dev": true, - "requires": { - "@babel/helper-module-transforms": "^7.23.3", - "@babel/helper-plugin-utils": "^7.24.0" - } - }, - "@babel/plugin-transform-modules-commonjs": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.24.1.tgz", - "integrity": "sha512-szog8fFTUxBfw0b98gEWPaEqF42ZUD/T3bkynW/wtgx2p/XCP55WEsb+VosKceRSd6njipdZvNogqdtI4Q0chw==", - "dev": true, - "requires": { - "@babel/helper-module-transforms": "^7.23.3", - "@babel/helper-plugin-utils": "^7.24.0", - "@babel/helper-simple-access": "^7.22.5" - } - }, - "@babel/plugin-transform-modules-systemjs": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.24.1.tgz", - "integrity": "sha512-mqQ3Zh9vFO1Tpmlt8QPnbwGHzNz3lpNEMxQb1kAemn/erstyqw1r9KeOlOfo3y6xAnFEcOv2tSyrXfmMk+/YZA==", - "dev": true, - "requires": { - "@babel/helper-hoist-variables": "^7.22.5", - "@babel/helper-module-transforms": "^7.23.3", - "@babel/helper-plugin-utils": "^7.24.0", - "@babel/helper-validator-identifier": "^7.22.20" - } - }, - "@babel/plugin-transform-modules-umd": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.24.1.tgz", - "integrity": "sha512-tuA3lpPj+5ITfcCluy6nWonSL7RvaG0AOTeAuvXqEKS34lnLzXpDb0dcP6K8jD0zWZFNDVly90AGFJPnm4fOYg==", - "dev": true, - "requires": { - "@babel/helper-module-transforms": "^7.23.3", - "@babel/helper-plugin-utils": "^7.24.0" - } - }, - "@babel/plugin-transform-named-capturing-groups-regex": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.22.5.tgz", - "integrity": "sha512-YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ==", - "dev": true, - "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5" - } - }, - "@babel/plugin-transform-new-target": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.24.1.tgz", - "integrity": "sha512-/rurytBM34hYy0HKZQyA0nHbQgQNFm4Q/BOc9Hflxi2X3twRof7NaE5W46j4kQitm7SvACVRXsa6N/tSZxvPug==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.24.0" - } - }, - "@babel/plugin-transform-nullish-coalescing-operator": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.24.1.tgz", - "integrity": "sha512-iQ+caew8wRrhCikO5DrUYx0mrmdhkaELgFa+7baMcVuhxIkN7oxt06CZ51D65ugIb1UWRQ8oQe+HXAVM6qHFjw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.24.0", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" - } - }, - "@babel/plugin-transform-numeric-separator": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.24.1.tgz", - "integrity": "sha512-7GAsGlK4cNL2OExJH1DzmDeKnRv/LXq0eLUSvudrehVA5Rgg4bIrqEUW29FbKMBRT0ztSqisv7kjP+XIC4ZMNw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.24.0", - "@babel/plugin-syntax-numeric-separator": "^7.10.4" - } - }, - "@babel/plugin-transform-object-assign": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-assign/-/plugin-transform-object-assign-7.24.1.tgz", - "integrity": "sha512-I1kctor9iKtupb7jv7FyjApHCuKLBKCblVAeHVK9PB6FW7GI0ac6RtobC3MwwJy8CZ1JxuhQmnbrsqI5G8hAIg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.24.0" - } - }, - "@babel/plugin-transform-object-rest-spread": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.24.1.tgz", - "integrity": "sha512-XjD5f0YqOtebto4HGISLNfiNMTTs6tbkFf2TOqJlYKYmbo+mN9Dnpl4SRoofiziuOWMIyq3sZEUqLo3hLITFEA==", - "dev": true, - "requires": { - "@babel/helper-compilation-targets": "^7.23.6", - "@babel/helper-plugin-utils": "^7.24.0", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-transform-parameters": "^7.24.1" - } - }, - "@babel/plugin-transform-object-super": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.24.1.tgz", - "integrity": "sha512-oKJqR3TeI5hSLRxudMjFQ9re9fBVUU0GICqM3J1mi8MqlhVr6hC/ZN4ttAyMuQR6EZZIY6h/exe5swqGNNIkWQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.24.0", - "@babel/helper-replace-supers": "^7.24.1" - } - }, - "@babel/plugin-transform-optional-catch-binding": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.24.1.tgz", - "integrity": "sha512-oBTH7oURV4Y+3EUrf6cWn1OHio3qG/PVwO5J03iSJmBg6m2EhKjkAu/xuaXaYwWW9miYtvbWv4LNf0AmR43LUA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.24.0", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" - } - }, - "@babel/plugin-transform-optional-chaining": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.24.1.tgz", - "integrity": "sha512-n03wmDt+987qXwAgcBlnUUivrZBPZ8z1plL0YvgQalLm+ZE5BMhGm94jhxXtA1wzv1Cu2aaOv1BM9vbVttrzSg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.24.0", - "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", - "@babel/plugin-syntax-optional-chaining": "^7.8.3" - } - }, - "@babel/plugin-transform-parameters": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.24.1.tgz", - "integrity": "sha512-8Jl6V24g+Uw5OGPeWNKrKqXPDw2YDjLc53ojwfMcKwlEoETKU9rU0mHUtcg9JntWI/QYzGAXNWEcVHZ+fR+XXg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.24.0" - } - }, - "@babel/plugin-transform-private-methods": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.24.1.tgz", - "integrity": "sha512-tGvisebwBO5em4PaYNqt4fkw56K2VALsAbAakY0FjTYqJp7gfdrgr7YX76Or8/cpik0W6+tj3rZ0uHU9Oil4tw==", - "dev": true, - "requires": { - "@babel/helper-create-class-features-plugin": "^7.24.1", - "@babel/helper-plugin-utils": "^7.24.0" - } - }, - "@babel/plugin-transform-private-property-in-object": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.24.1.tgz", - "integrity": "sha512-pTHxDVa0BpUbvAgX3Gat+7cSciXqUcY9j2VZKTbSB6+VQGpNgNO9ailxTGHSXlqOnX1Hcx1Enme2+yv7VqP9bg==", - "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-create-class-features-plugin": "^7.24.1", - "@babel/helper-plugin-utils": "^7.24.0", - "@babel/plugin-syntax-private-property-in-object": "^7.14.5" - } - }, - "@babel/plugin-transform-property-literals": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.24.1.tgz", - "integrity": "sha512-LetvD7CrHmEx0G442gOomRr66d7q8HzzGGr4PMHGr+5YIm6++Yke+jxj246rpvsbyhJwCLxcTn6zW1P1BSenqA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.24.0" - } - }, - "@babel/plugin-transform-regenerator": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.24.1.tgz", - "integrity": "sha512-sJwZBCzIBE4t+5Q4IGLaaun5ExVMRY0lYwos/jNecjMrVCygCdph3IKv0tkP5Fc87e/1+bebAmEAGBfnRD+cnw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.24.0", - "regenerator-transform": "^0.15.2" - } - }, - "@babel/plugin-transform-reserved-words": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.24.1.tgz", - "integrity": "sha512-JAclqStUfIwKN15HrsQADFgeZt+wexNQ0uLhuqvqAUFoqPMjEcFCYZBhq0LUdz6dZK/mD+rErhW71fbx8RYElg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.24.0" - } - }, - "@babel/plugin-transform-runtime": { - "version": "7.24.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.24.3.tgz", - "integrity": "sha512-J0BuRPNlNqlMTRJ72eVptpt9VcInbxO6iP3jaxr+1NPhC0UkKL+6oeX6VXMEYdADnuqmMmsBspt4d5w8Y/TCbQ==", - "dev": true, - "requires": { - "@babel/helper-module-imports": "^7.24.3", - "@babel/helper-plugin-utils": "^7.24.0", - "babel-plugin-polyfill-corejs2": "^0.4.10", - "babel-plugin-polyfill-corejs3": "^0.10.1", - "babel-plugin-polyfill-regenerator": "^0.6.1", - "semver": "^6.3.1" - }, - "dependencies": { - "semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true - } - } - }, - "@babel/plugin-transform-shorthand-properties": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.24.1.tgz", - "integrity": "sha512-LyjVB1nsJ6gTTUKRjRWx9C1s9hE7dLfP/knKdrfeH9UPtAGjYGgxIbFfx7xyLIEWs7Xe1Gnf8EWiUqfjLhInZA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.24.0" - } - }, - "@babel/plugin-transform-spread": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.24.1.tgz", - "integrity": "sha512-KjmcIM+fxgY+KxPVbjelJC6hrH1CgtPmTvdXAfn3/a9CnWGSTY7nH4zm5+cjmWJybdcPSsD0++QssDsjcpe47g==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.24.0", - "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5" - } - }, - "@babel/plugin-transform-sticky-regex": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.24.1.tgz", - "integrity": "sha512-9v0f1bRXgPVcPrngOQvLXeGNNVLc8UjMVfebo9ka0WF3/7+aVUHmaJVT3sa0XCzEFioPfPHZiOcYG9qOsH63cw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.24.0" - } - }, - "@babel/plugin-transform-template-literals": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.24.1.tgz", - "integrity": "sha512-WRkhROsNzriarqECASCNu/nojeXCDTE/F2HmRgOzi7NGvyfYGq1NEjKBK3ckLfRgGc6/lPAqP0vDOSw3YtG34g==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.24.0" - } - }, - "@babel/plugin-transform-typeof-symbol": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.24.1.tgz", - "integrity": "sha512-CBfU4l/A+KruSUoW+vTQthwcAdwuqbpRNB8HQKlZABwHRhsdHZ9fezp4Sn18PeAlYxTNiLMlx4xUBV3AWfg1BA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.24.0" - } - }, - "@babel/plugin-transform-unicode-escapes": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.24.1.tgz", - "integrity": "sha512-RlkVIcWT4TLI96zM660S877E7beKlQw7Ig+wqkKBiWfj0zH5Q4h50q6er4wzZKRNSYpfo6ILJ+hrJAGSX2qcNw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.24.0" - } - }, - "@babel/plugin-transform-unicode-property-regex": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.24.1.tgz", - "integrity": "sha512-Ss4VvlfYV5huWApFsF8/Sq0oXnGO+jB+rijFEFugTd3cwSObUSnUi88djgR5528Csl0uKlrI331kRqe56Ov2Ng==", - "dev": true, - "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.22.15", - "@babel/helper-plugin-utils": "^7.24.0" - } - }, - "@babel/plugin-transform-unicode-regex": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.24.1.tgz", - "integrity": "sha512-2A/94wgZgxfTsiLaQ2E36XAOdcZmGAaEEgVmxQWwZXWkGhvoHbaqXcKnU8zny4ycpu3vNqg0L/PcCiYtHtA13g==", - "dev": true, - "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.22.15", - "@babel/helper-plugin-utils": "^7.24.0" - } - }, - "@babel/plugin-transform-unicode-sets-regex": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.24.1.tgz", - "integrity": "sha512-fqj4WuzzS+ukpgerpAoOnMfQXwUHFxXUZUE84oL2Kao2N8uSlvcpnAidKASgsNgzZHBsHWvcm8s9FPWUhAb8fA==", - "dev": true, - "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.22.15", - "@babel/helper-plugin-utils": "^7.24.0" - } - }, - "@babel/preset-env": { - "version": "7.24.4", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.24.4.tgz", - "integrity": "sha512-7Kl6cSmYkak0FK/FXjSEnLJ1N9T/WA2RkMhu17gZ/dsxKJUuTYNIylahPTzqpLyJN4WhDif8X0XK1R8Wsguo/A==", - "dev": true, - "requires": { - "@babel/compat-data": "^7.24.4", - "@babel/helper-compilation-targets": "^7.23.6", - "@babel/helper-plugin-utils": "^7.24.0", - "@babel/helper-validator-option": "^7.23.5", - "@babel/plugin-bugfix-firefox-class-in-computed-class-key": "^7.24.4", - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.24.1", - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.24.1", - "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^7.24.1", - "@babel/plugin-proposal-private-property-in-object": "7.21.0-placeholder-for-preset-env.2", - "@babel/plugin-syntax-async-generators": "^7.8.4", - "@babel/plugin-syntax-class-properties": "^7.12.13", - "@babel/plugin-syntax-class-static-block": "^7.14.5", - "@babel/plugin-syntax-dynamic-import": "^7.8.3", - "@babel/plugin-syntax-export-namespace-from": "^7.8.3", - "@babel/plugin-syntax-import-assertions": "^7.24.1", - "@babel/plugin-syntax-import-attributes": "^7.24.1", - "@babel/plugin-syntax-import-meta": "^7.10.4", - "@babel/plugin-syntax-json-strings": "^7.8.3", - "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", - "@babel/plugin-syntax-numeric-separator": "^7.10.4", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", - "@babel/plugin-syntax-optional-chaining": "^7.8.3", - "@babel/plugin-syntax-private-property-in-object": "^7.14.5", - "@babel/plugin-syntax-top-level-await": "^7.14.5", - "@babel/plugin-syntax-unicode-sets-regex": "^7.18.6", - "@babel/plugin-transform-arrow-functions": "^7.24.1", - "@babel/plugin-transform-async-generator-functions": "^7.24.3", - "@babel/plugin-transform-async-to-generator": "^7.24.1", - "@babel/plugin-transform-block-scoped-functions": "^7.24.1", - "@babel/plugin-transform-block-scoping": "^7.24.4", - "@babel/plugin-transform-class-properties": "^7.24.1", - "@babel/plugin-transform-class-static-block": "^7.24.4", - "@babel/plugin-transform-classes": "^7.24.1", - "@babel/plugin-transform-computed-properties": "^7.24.1", - "@babel/plugin-transform-destructuring": "^7.24.1", - "@babel/plugin-transform-dotall-regex": "^7.24.1", - "@babel/plugin-transform-duplicate-keys": "^7.24.1", - "@babel/plugin-transform-dynamic-import": "^7.24.1", - "@babel/plugin-transform-exponentiation-operator": "^7.24.1", - "@babel/plugin-transform-export-namespace-from": "^7.24.1", - "@babel/plugin-transform-for-of": "^7.24.1", - "@babel/plugin-transform-function-name": "^7.24.1", - "@babel/plugin-transform-json-strings": "^7.24.1", - "@babel/plugin-transform-literals": "^7.24.1", - "@babel/plugin-transform-logical-assignment-operators": "^7.24.1", - "@babel/plugin-transform-member-expression-literals": "^7.24.1", - "@babel/plugin-transform-modules-amd": "^7.24.1", - "@babel/plugin-transform-modules-commonjs": "^7.24.1", - "@babel/plugin-transform-modules-systemjs": "^7.24.1", - "@babel/plugin-transform-modules-umd": "^7.24.1", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.22.5", - "@babel/plugin-transform-new-target": "^7.24.1", - "@babel/plugin-transform-nullish-coalescing-operator": "^7.24.1", - "@babel/plugin-transform-numeric-separator": "^7.24.1", - "@babel/plugin-transform-object-rest-spread": "^7.24.1", - "@babel/plugin-transform-object-super": "^7.24.1", - "@babel/plugin-transform-optional-catch-binding": "^7.24.1", - "@babel/plugin-transform-optional-chaining": "^7.24.1", - "@babel/plugin-transform-parameters": "^7.24.1", - "@babel/plugin-transform-private-methods": "^7.24.1", - "@babel/plugin-transform-private-property-in-object": "^7.24.1", - "@babel/plugin-transform-property-literals": "^7.24.1", - "@babel/plugin-transform-regenerator": "^7.24.1", - "@babel/plugin-transform-reserved-words": "^7.24.1", - "@babel/plugin-transform-shorthand-properties": "^7.24.1", - "@babel/plugin-transform-spread": "^7.24.1", - "@babel/plugin-transform-sticky-regex": "^7.24.1", - "@babel/plugin-transform-template-literals": "^7.24.1", - "@babel/plugin-transform-typeof-symbol": "^7.24.1", - "@babel/plugin-transform-unicode-escapes": "^7.24.1", - "@babel/plugin-transform-unicode-property-regex": "^7.24.1", - "@babel/plugin-transform-unicode-regex": "^7.24.1", - "@babel/plugin-transform-unicode-sets-regex": "^7.24.1", - "@babel/preset-modules": "0.1.6-no-external-plugins", - "babel-plugin-polyfill-corejs2": "^0.4.10", - "babel-plugin-polyfill-corejs3": "^0.10.4", - "babel-plugin-polyfill-regenerator": "^0.6.1", - "core-js-compat": "^3.31.0", - "semver": "^6.3.1" - }, - "dependencies": { - "semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true - } - } - }, - "@babel/preset-modules": { - "version": "0.1.6-no-external-plugins", - "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz", - "integrity": "sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/types": "^7.4.4", - "esutils": "^2.0.2" - } - }, - "@babel/register": { - "version": "7.23.7", - "resolved": "https://registry.npmjs.org/@babel/register/-/register-7.23.7.tgz", - "integrity": "sha512-EjJeB6+kvpk+Y5DAkEAmbOBEFkh9OASx0huoEkqYTFxAZHzOAX2Oh5uwAUuL2rUddqfM0SA+KPXV2TbzoZ2kvQ==", - "dev": true, - "requires": { - "clone-deep": "^4.0.1", - "find-cache-dir": "^2.0.0", - "make-dir": "^2.1.0", - "pirates": "^4.0.6", - "source-map-support": "^0.5.16" - } - }, - "@babel/regjsgen": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/@babel/regjsgen/-/regjsgen-0.8.0.tgz", - "integrity": "sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==", - "dev": true - }, - "@babel/runtime": { - "version": "7.24.4", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.24.4.tgz", - "integrity": "sha512-dkxf7+hn8mFBwKjs9bvBlArzLVxVbS8usaPUDd5p2a9JCL9tB8OaOVN1isD4+Xyk4ns89/xeOmbQvgdK7IIVdA==", - "requires": { - "regenerator-runtime": "^0.14.0" - } - }, - "@babel/template": { - "version": "7.24.0", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.24.0.tgz", - "integrity": "sha512-Bkf2q8lMB0AFpX0NFEqSbx1OkTHf0f+0j82mkw+ZpzBnkk7e9Ql0891vlfgi+kHwOk8tQjiQHpqh4LaSa0fKEA==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.23.5", - "@babel/parser": "^7.24.0", - "@babel/types": "^7.24.0" - } - }, - "@babel/traverse": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.24.1.tgz", - "integrity": "sha512-xuU6o9m68KeqZbQuDt2TcKSxUw/mrsvavlEqQ1leZ/B+C9tk6E4sRWy97WaXgvq5E+nU3cXMxv3WKOCanVMCmQ==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.24.1", - "@babel/generator": "^7.24.1", - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-function-name": "^7.23.0", - "@babel/helper-hoist-variables": "^7.22.5", - "@babel/helper-split-export-declaration": "^7.22.6", - "@babel/parser": "^7.24.1", - "@babel/types": "^7.24.0", - "debug": "^4.3.1", - "globals": "^11.1.0" - } - }, - "@babel/types": { - "version": "7.24.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.0.tgz", - "integrity": "sha512-+j7a5c253RfKh8iABBhywc8NSfP5LURe7Uh4qpsh6jc+aLJguvmIUBdjSdEMQv2bENrCR5MfRdjGo7vzS/ob7w==", - "dev": true, - "requires": { - "@babel/helper-string-parser": "^7.23.4", - "@babel/helper-validator-identifier": "^7.22.20", - "to-fast-properties": "^2.0.0" - } - }, - "@bcoe/v8-coverage": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", - "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", - "dev": true - }, - "@colors/colors": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz", - "integrity": "sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==", - "dev": true - }, - "@cspotcode/source-map-support": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", - "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==", - "dev": true, - "requires": { - "@jridgewell/trace-mapping": "0.3.9" - }, - "dependencies": { - "@jridgewell/trace-mapping": { - "version": "0.3.9", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", - "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", - "dev": true, - "requires": { - "@jridgewell/resolve-uri": "^3.0.3", - "@jridgewell/sourcemap-codec": "^1.4.10" - } - } - } - }, - "@definitelytyped/header-parser": { - "version": "0.0.85", - "resolved": "https://registry.npmjs.org/@definitelytyped/header-parser/-/header-parser-0.0.85.tgz", - "integrity": "sha512-fH37Yt5VjBKFu/2rFzn6xrjkASaIEqjED77V7vxb8JFCalTvGhiPpTrWzfp2EjK0Lhd8bkCZhRpYoW8GKatcdA==", - "dev": true, - "requires": { - "@definitelytyped/typescript-versions": "^0.0.85", - "@types/parsimmon": "^1.10.1", - "parsimmon": "^1.13.0" - } - }, - "@definitelytyped/typescript-versions": { - "version": "0.0.85", - "resolved": "https://registry.npmjs.org/@definitelytyped/typescript-versions/-/typescript-versions-0.0.85.tgz", - "integrity": "sha512-+yHqi887UMZ4TlLBkA2QcYNP/EZSKGKSAFJtSWY6J5DiBQq3k0yLN1yTfbLonQ52IBenI1iJo/4ePr5A3co5ZQ==", - "dev": true - }, - "@definitelytyped/utils": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/@definitelytyped/utils/-/utils-0.1.5.tgz", - "integrity": "sha512-DwWL7/wwmK9Oe0zPYTYX3KBv6m92+tCxX8cD/K/wyEv4kfZerW21xNFzOFiwrpmtg6ghCMmvoeklvJ120B5v5A==", - "dev": true, - "requires": { - "@qiwi/npm-registry-client": "^8.9.1", - "@types/node": "^18.19.7", - "cachedir": "^2.0.0", - "charm": "^1.0.2", - "minimatch": "^9.0.3", - "tar": "^6.2.0", - "tar-stream": "^3.1.6", - "which": "^4.0.0" - }, - "dependencies": { - "brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, - "requires": { - "balanced-match": "^1.0.0" - } - }, - "isexe": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-3.1.1.tgz", - "integrity": "sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==", - "dev": true - }, - "minimatch": { - "version": "9.0.3", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", - "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", - "dev": true, - "requires": { - "brace-expansion": "^2.0.1" - } - }, - "which": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/which/-/which-4.0.0.tgz", - "integrity": "sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg==", - "dev": true, - "requires": { - "isexe": "^3.1.1" - } - } - } - }, - "@eslint-community/eslint-utils": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", - "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", - "dev": true, - "requires": { - "eslint-visitor-keys": "^3.3.0" - } - }, - "@eslint-community/regexpp": { - "version": "4.10.0", - "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.10.0.tgz", - "integrity": "sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==", - "dev": true - }, - "@eslint/eslintrc": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz", - "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==", - "dev": true, - "requires": { - "ajv": "^6.12.4", - "debug": "^4.3.2", - "espree": "^9.6.0", - "globals": "^13.19.0", - "ignore": "^5.2.0", - "import-fresh": "^3.2.1", - "js-yaml": "^4.1.0", - "minimatch": "^3.1.2", - "strip-json-comments": "^3.1.1" - }, - "dependencies": { - "argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true - }, - "globals": { - "version": "13.23.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.23.0.tgz", - "integrity": "sha512-XAmF0RjlrjY23MA51q3HltdlGxUpXPvg0GioKiD9X6HD28iMjo2dKC8Vqwm7lne4GNr78+RHTfliktR6ZH09wA==", - "dev": true, - "requires": { - "type-fest": "^0.20.2" - } - }, - "js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "dev": true, - "requires": { - "argparse": "^2.0.1" - } - } - } - }, - "@eslint/js": { - "version": "8.57.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.0.tgz", - "integrity": "sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==", - "dev": true - }, - "@gulpjs/messages": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@gulpjs/messages/-/messages-1.1.0.tgz", - "integrity": "sha512-Ys9sazDatyTgZVb4xPlDufLweJ/Os2uHWOv+Caxvy2O85JcnT4M3vc73bi8pdLWlv3fdWQz3pdI9tVwo8rQQSg==", - "dev": true - }, - "@gulpjs/to-absolute-glob": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@gulpjs/to-absolute-glob/-/to-absolute-glob-4.0.0.tgz", - "integrity": "sha512-kjotm7XJrJ6v+7knhPaRgaT6q8F8K2jiafwYdNHLzmV0uGLuZY43FK6smNSHUPrhq5kX2slCUy+RGG/xGqmIKA==", - "dev": true, - "requires": { - "is-negated-glob": "^1.0.0" - } - }, - "@humanwhocodes/config-array": { - "version": "0.11.14", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.14.tgz", - "integrity": "sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==", - "dev": true, - "requires": { - "@humanwhocodes/object-schema": "^2.0.2", - "debug": "^4.3.1", - "minimatch": "^3.0.5" - } - }, - "@humanwhocodes/module-importer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", - "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", - "dev": true - }, - "@humanwhocodes/object-schema": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.2.tgz", - "integrity": "sha512-6EwiSjwWYP7pTckG6I5eyFANjPhmPjUX9JRLUSfNPC7FX7zK9gyZAfUEaECL6ALTpGX5AjnBq3C9XmVWPitNpw==", - "dev": true - }, - "@istanbuljs/schema": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", - "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", - "dev": true - }, - "@jridgewell/gen-mapping": { - "version": "0.3.5", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", - "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", - "dev": true, - "requires": { - "@jridgewell/set-array": "^1.2.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.24" - } - }, - "@jridgewell/resolve-uri": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", - "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", - "dev": true - }, - "@jridgewell/set-array": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", - "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", - "dev": true - }, - "@jridgewell/source-map": { - "version": "0.3.5", - "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.5.tgz", - "integrity": "sha512-UTYAUj/wviwdsMfzoSJspJxbkH5o1snzwX0//0ENX1u/55kkZZkcTZP6u9bwKGkv+dkk9at4m1Cpt0uY80kcpQ==", - "dev": true, - "requires": { - "@jridgewell/gen-mapping": "^0.3.0", - "@jridgewell/trace-mapping": "^0.3.9" - } - }, - "@jridgewell/sourcemap-codec": { - "version": "1.4.14", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", - "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==", - "dev": true - }, - "@jridgewell/trace-mapping": { - "version": "0.3.25", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", - "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", - "dev": true, - "requires": { - "@jridgewell/resolve-uri": "^3.1.0", - "@jridgewell/sourcemap-codec": "^1.4.14" - } - }, - "@nodelib/fs.scandir": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", - "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", - "dev": true, - "requires": { - "@nodelib/fs.stat": "2.0.5", - "run-parallel": "^1.1.9" - } - }, - "@nodelib/fs.stat": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", - "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", - "dev": true - }, - "@nodelib/fs.walk": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", - "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", - "dev": true, - "requires": { - "@nodelib/fs.scandir": "2.1.5", - "fastq": "^1.6.0" - } - }, - "@pkgr/core": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/@pkgr/core/-/core-0.1.0.tgz", - "integrity": "sha512-Zwq5OCzuwJC2jwqmpEQt7Ds1DTi6BWSwoGkbb1n9pO3hzb35BoJELx7c0T23iDkBGkh2e7tvOtjF3tr3OaQHDQ==", - "dev": true - }, - "@qiwi/npm-registry-client": { - "version": "8.9.1", - "resolved": "https://registry.npmjs.org/@qiwi/npm-registry-client/-/npm-registry-client-8.9.1.tgz", - "integrity": "sha512-rZF+mG+NfijR0SHphhTLHRr4aM4gtfdwoAMY6we2VGQam8vkN1cxGG1Lg/Llrj8Dd0Mu6VjdFQRyMMRZxtZR2A==", - "dev": true, - "requires": { - "concat-stream": "^2.0.0", - "graceful-fs": "^4.2.4", - "normalize-package-data": "~1.0.1 || ^2.0.0 || ^3.0.0", - "npm-package-arg": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^8.0.0", - "npmlog": "2 || ^3.1.0 || ^4.0.0", - "once": "^1.4.0", - "request": "^2.88.2", - "retry": "^0.12.0", - "safe-buffer": "^5.2.1", - "semver": "2 >=2.2.1 || 3.x || 4 || 5 || 7", - "slide": "^1.1.6", - "ssri": "^8.0.0" - }, - "dependencies": { - "concat-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-2.0.0.tgz", - "integrity": "sha512-MWufYdFw53ccGjCA+Ol7XJYpAlW6/prSMzuPOTRnJGcGzuhLn4Scrz7qf6o8bROZ514ltazcIFJZevcfbo0x7A==", - "dev": true, - "requires": { - "buffer-from": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^3.0.2", - "typedarray": "^0.0.6" - } - }, - "readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - }, - "safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "dev": true - }, - "ssri": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-8.0.1.tgz", - "integrity": "sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ==", - "dev": true, - "requires": { - "minipass": "^3.1.1" - } - } - } - }, - "@sinonjs/commons": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.1.tgz", - "integrity": "sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==", - "dev": true, - "requires": { - "type-detect": "4.0.8" - } - }, - "@sinonjs/fake-timers": { - "version": "11.2.2", - "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-11.2.2.tgz", - "integrity": "sha512-G2piCSxQ7oWOxwGSAyFHfPIsyeJGXYtc6mFbnFA+kRXkiEnTl8c/8jul2S329iFBnDI9HGoeWWAZvuvOkZccgw==", - "dev": true, - "requires": { - "@sinonjs/commons": "^3.0.0" - } - }, - "@sinonjs/samsam": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/@sinonjs/samsam/-/samsam-8.0.0.tgz", - "integrity": "sha512-Bp8KUVlLp8ibJZrnvq2foVhP0IVX2CIprMJPK0vqGqgrDa0OHVKeZyBykqskkrdxV6yKBPmGasO8LVjAKR3Gew==", - "dev": true, - "requires": { - "@sinonjs/commons": "^2.0.0", - "lodash.get": "^4.4.2", - "type-detect": "^4.0.8" - }, - "dependencies": { - "@sinonjs/commons": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-2.0.0.tgz", - "integrity": "sha512-uLa0j859mMrg2slwQYdO/AkrOfmH+X6LTVmNTS9CqexuE2IvVORIkSpJLqePAbEnKJ77aMmCwr1NUZ57120Xcg==", - "dev": true, - "requires": { - "type-detect": "4.0.8" - } - } - } - }, - "@sinonjs/text-encoding": { - "version": "0.7.2", - "resolved": "https://registry.npmjs.org/@sinonjs/text-encoding/-/text-encoding-0.7.2.tgz", - "integrity": "sha512-sXXKG+uL9IrKqViTtao2Ws6dy0znu9sOaP1di/jKGW1M6VssO8vlpXCQcpZ+jisQ1tTFAC5Jo/EOzFbggBagFQ==", - "dev": true - }, - "@socket.io/component-emitter": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@socket.io/component-emitter/-/component-emitter-3.1.0.tgz", - "integrity": "sha512-+9jVqKhRSpsc591z5vX+X5Yyw+he/HCB4iQ/RYxw35CEPaY1gnsNE43nf9n9AaYjAQrTiI/mOwKUKdUs9vf7Xg==", - "dev": true - }, - "@tootallnate/once": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz", - "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==", - "dev": true - }, - "@tsconfig/node10": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.8.tgz", - "integrity": "sha512-6XFfSQmMgq0CFLY1MslA/CPUfhIL919M1rMsa5lP2P097N2Wd1sSX0tx1u4olM16fLNhtHZpRhedZJphNJqmZg==", - "dev": true - }, - "@tsconfig/node12": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.9.tgz", - "integrity": "sha512-/yBMcem+fbvhSREH+s14YJi18sp7J9jpuhYByADT2rypfajMZZN4WQ6zBGgBKp53NKmqI36wFYDb3yaMPurITw==", - "dev": true - }, - "@tsconfig/node14": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.1.tgz", - "integrity": "sha512-509r2+yARFfHHE7T6Puu2jjkoycftovhXRqW328PDXTVGKihlb1P8Z9mMZH04ebyajfRY7dedfGynlrFHJUQCg==", - "dev": true - }, - "@tsconfig/node16": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.2.tgz", - "integrity": "sha512-eZxlbI8GZscaGS7kkc/trHTT5xgrjH3/1n2JDwusC9iahPKWMRvRjJSAN5mCXviuTGQ/lHnhvv8Q1YTpnfz9gA==", - "dev": true - }, - "@types/assert": { - "version": "1.5.10", - "resolved": "https://registry.npmjs.org/@types/assert/-/assert-1.5.10.tgz", - "integrity": "sha512-qEO+AUgYab7GVbeDDgUNCU3o0aZUoIMpNAe+w5LDbRxfxQX7vQAdDgwj1AroX+i8KaV56FWg0srXlSZROnsrIQ==", - "dev": true - }, - "@types/cookie": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/@types/cookie/-/cookie-0.4.1.tgz", - "integrity": "sha512-XW/Aa8APYr6jSVVA1y/DEIZX0/GMKLEVekNG727R8cs56ahETkRAy/3DR7+fJyh7oUgGwNQaRfXCun0+KbWY7Q==", - "dev": true - }, - "@types/cors": { - "version": "2.8.17", - "resolved": "https://registry.npmjs.org/@types/cors/-/cors-2.8.17.tgz", - "integrity": "sha512-8CGDvrBj1zgo2qE+oS3pOCyYNqCPryMWY2bGfwA0dcfopWGgxs+78df0Rs3rc9THP4JkOhLsAa+15VdpAqkcUA==", - "dev": true, - "requires": { - "@types/node": "*" - } - }, - "@types/eslint": { - "version": "8.4.5", - "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.4.5.tgz", - "integrity": "sha512-dhsC09y1gpJWnK+Ff4SGvCuSnk9DaU0BJZSzOwa6GVSg65XtTugLBITDAAzRU5duGBoXBHpdR/9jHGxJjNflJQ==", - "dev": true, - "requires": { - "@types/estree": "*", - "@types/json-schema": "*" - } - }, - "@types/eslint-scope": { - "version": "3.7.4", - "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.4.tgz", - "integrity": "sha512-9K4zoImiZc3HlIp6AVUDE4CWYx22a+lhSZMYNpbjW04+YF0KWj4pJXnEMjdnFTiQibFFmElcsasJXDbdI/EPhA==", - "dev": true, - "requires": { - "@types/eslint": "*", - "@types/estree": "*" - } - }, - "@types/estree": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz", - "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==", - "dev": true - }, - "@types/istanbul-lib-coverage": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz", - "integrity": "sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==", - "dev": true - }, - "@types/json-schema": { - "version": "7.0.15", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", - "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", - "dev": true - }, - "@types/json5": { - "version": "0.0.29", - "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", - "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", - "dev": true - }, - "@types/mocha": { - "version": "10.0.6", - "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-10.0.6.tgz", - "integrity": "sha512-dJvrYWxP/UcXm36Qn36fxhUKu8A/xMRXVT2cliFF1Z7UA9liG5Psj3ezNSZw+5puH2czDXRLcXQxf8JbJt0ejg==", - "dev": true - }, - "@types/node": { - "version": "18.19.13", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.19.13.tgz", - "integrity": "sha512-kgnbRDj8ioDyGxoiaXsiu1Ybm/K14ajCgMOkwiqpHrnF7d7QiYRoRqHIpglMMs3DwXinlK4qJ8TZGlj4hfleJg==", - "dev": true, - "requires": { - "undici-types": "~5.26.4" - } - }, - "@types/parsimmon": { - "version": "1.10.6", - "resolved": "https://registry.npmjs.org/@types/parsimmon/-/parsimmon-1.10.6.tgz", - "integrity": "sha512-FwAQwMRbkhx0J6YELkwIpciVzCcgEqXEbIrIn3a2P5d3kGEHQ3wVhlN3YdVepYP+bZzCYO6OjmD4o9TGOZ40rA==", - "dev": true - }, - "@types/semver": { - "version": "7.5.8", - "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.8.tgz", - "integrity": "sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==", - "dev": true - }, - "@typescript-eslint/eslint-plugin": { - "version": "7.7.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-7.7.1.tgz", - "integrity": "sha512-KwfdWXJBOviaBVhxO3p5TJiLpNuh2iyXyjmWN0f1nU87pwyvfS0EmjC6ukQVYVFJd/K1+0NWGPDXiyEyQorn0Q==", - "dev": true, - "requires": { - "@eslint-community/regexpp": "^4.10.0", - "@typescript-eslint/scope-manager": "7.7.1", - "@typescript-eslint/type-utils": "7.7.1", - "@typescript-eslint/utils": "7.7.1", - "@typescript-eslint/visitor-keys": "7.7.1", - "debug": "^4.3.4", - "graphemer": "^1.4.0", - "ignore": "^5.3.1", - "natural-compare": "^1.4.0", - "semver": "^7.6.0", - "ts-api-utils": "^1.3.0" - }, - "dependencies": { - "semver": { - "version": "7.6.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", - "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - } - } - }, - "@typescript-eslint/parser": { - "version": "7.7.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-7.7.1.tgz", - "integrity": "sha512-vmPzBOOtz48F6JAGVS/kZYk4EkXao6iGrD838sp1w3NQQC0W8ry/q641KU4PrG7AKNAf56NOcR8GOpH8l9FPCw==", - "dev": true, - "requires": { - "@typescript-eslint/scope-manager": "7.7.1", - "@typescript-eslint/types": "7.7.1", - "@typescript-eslint/typescript-estree": "7.7.1", - "@typescript-eslint/visitor-keys": "7.7.1", - "debug": "^4.3.4" - } - }, - "@typescript-eslint/scope-manager": { - "version": "7.7.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.7.1.tgz", - "integrity": "sha512-PytBif2SF+9SpEUKynYn5g1RHFddJUcyynGpztX3l/ik7KmZEv19WCMhUBkHXPU9es/VWGD3/zg3wg90+Dh2rA==", - "dev": true, - "requires": { - "@typescript-eslint/types": "7.7.1", - "@typescript-eslint/visitor-keys": "7.7.1" - } - }, - "@typescript-eslint/type-utils": { - "version": "7.7.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-7.7.1.tgz", - "integrity": "sha512-ZksJLW3WF7o75zaBPScdW1Gbkwhd/lyeXGf1kQCxJaOeITscoSl0MjynVvCzuV5boUz/3fOI06Lz8La55mu29Q==", - "dev": true, - "requires": { - "@typescript-eslint/typescript-estree": "7.7.1", - "@typescript-eslint/utils": "7.7.1", - "debug": "^4.3.4", - "ts-api-utils": "^1.3.0" - } - }, - "@typescript-eslint/types": { - "version": "7.7.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.7.1.tgz", - "integrity": "sha512-AmPmnGW1ZLTpWa+/2omPrPfR7BcbUU4oha5VIbSbS1a1Tv966bklvLNXxp3mrbc+P2j4MNOTfDffNsk4o0c6/w==", - "dev": true - }, - "@typescript-eslint/typescript-estree": { - "version": "7.7.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-7.7.1.tgz", - "integrity": "sha512-CXe0JHCXru8Fa36dteXqmH2YxngKJjkQLjxzoj6LYwzZ7qZvgsLSc+eqItCrqIop8Vl2UKoAi0StVWu97FQZIQ==", - "dev": true, - "requires": { - "@typescript-eslint/types": "7.7.1", - "@typescript-eslint/visitor-keys": "7.7.1", - "debug": "^4.3.4", - "globby": "^11.1.0", - "is-glob": "^4.0.3", - "minimatch": "^9.0.4", - "semver": "^7.6.0", - "ts-api-utils": "^1.3.0" - }, - "dependencies": { - "brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, - "requires": { - "balanced-match": "^1.0.0" - } - }, - "minimatch": { - "version": "9.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz", - "integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==", - "dev": true, - "requires": { - "brace-expansion": "^2.0.1" - } - }, - "semver": { - "version": "7.6.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", - "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - } - } - }, - "@typescript-eslint/utils": { - "version": "7.7.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-7.7.1.tgz", - "integrity": "sha512-QUvBxPEaBXf41ZBbaidKICgVL8Hin0p6prQDu6bbetWo39BKbWJxRsErOzMNT1rXvTll+J7ChrbmMCXM9rsvOQ==", - "dev": true, - "requires": { - "@eslint-community/eslint-utils": "^4.4.0", - "@types/json-schema": "^7.0.15", - "@types/semver": "^7.5.8", - "@typescript-eslint/scope-manager": "7.7.1", - "@typescript-eslint/types": "7.7.1", - "@typescript-eslint/typescript-estree": "7.7.1", - "semver": "^7.6.0" - }, - "dependencies": { - "semver": { - "version": "7.6.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", - "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - } - } - }, - "@typescript-eslint/visitor-keys": { - "version": "7.7.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.7.1.tgz", - "integrity": "sha512-gBL3Eq25uADw1LQ9kVpf3hRM+DWzs0uZknHYK3hq4jcTPqVCClHGDnB6UUUV2SFeBeA4KWHWbbLqmbGcZ4FYbw==", - "dev": true, - "requires": { - "@typescript-eslint/types": "7.7.1", - "eslint-visitor-keys": "^3.4.3" - } - }, - "@ungap/structured-clone": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", - "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==", - "dev": true - }, - "@webassemblyjs/ast": { - "version": "1.12.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.12.1.tgz", - "integrity": "sha512-EKfMUOPRRUTy5UII4qJDGPpqfwjOmZ5jeGFwid9mnoqIFK+e0vqoi1qH56JpmZSzEL53jKnNzScdmftJyG5xWg==", - "dev": true, - "requires": { - "@webassemblyjs/helper-numbers": "1.11.6", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6" - } - }, - "@webassemblyjs/floating-point-hex-parser": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.6.tgz", - "integrity": "sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw==", - "dev": true - }, - "@webassemblyjs/helper-api-error": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.6.tgz", - "integrity": "sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q==", - "dev": true - }, - "@webassemblyjs/helper-buffer": { - "version": "1.12.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.12.1.tgz", - "integrity": "sha512-nzJwQw99DNDKr9BVCOZcLuJJUlqkJh+kVzVl6Fmq/tI5ZtEyWT1KZMyOXltXLZJmDtvLCDgwsyrkohEtopTXCw==", - "dev": true - }, - "@webassemblyjs/helper-numbers": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.6.tgz", - "integrity": "sha512-vUIhZ8LZoIWHBohiEObxVm6hwP034jwmc9kuq5GdHZH0wiLVLIPcMCdpJzG4C11cHoQ25TFIQj9kaVADVX7N3g==", - "dev": true, - "requires": { - "@webassemblyjs/floating-point-hex-parser": "1.11.6", - "@webassemblyjs/helper-api-error": "1.11.6", - "@xtuc/long": "4.2.2" - } - }, - "@webassemblyjs/helper-wasm-bytecode": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.6.tgz", - "integrity": "sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA==", - "dev": true - }, - "@webassemblyjs/helper-wasm-section": { - "version": "1.12.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.12.1.tgz", - "integrity": "sha512-Jif4vfB6FJlUlSbgEMHUyk1j234GTNG9dBJ4XJdOySoj518Xj0oGsNi59cUQF4RRMS9ouBUxDDdyBVfPTypa5g==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.12.1", - "@webassemblyjs/helper-buffer": "1.12.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6", - "@webassemblyjs/wasm-gen": "1.12.1" - } - }, - "@webassemblyjs/ieee754": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.6.tgz", - "integrity": "sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg==", - "dev": true, - "requires": { - "@xtuc/ieee754": "^1.2.0" - } - }, - "@webassemblyjs/leb128": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.6.tgz", - "integrity": "sha512-m7a0FhE67DQXgouf1tbN5XQcdWoNgaAuoULHIfGFIEVKA6tu/edls6XnIlkmS6FrXAquJRPni3ZZKjw6FSPjPQ==", - "dev": true, - "requires": { - "@xtuc/long": "4.2.2" - } - }, - "@webassemblyjs/utf8": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.6.tgz", - "integrity": "sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA==", - "dev": true - }, - "@webassemblyjs/wasm-edit": { - "version": "1.12.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.12.1.tgz", - "integrity": "sha512-1DuwbVvADvS5mGnXbE+c9NfA8QRcZ6iKquqjjmR10k6o+zzsRVesil54DKexiowcFCPdr/Q0qaMgB01+SQ1u6g==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.12.1", - "@webassemblyjs/helper-buffer": "1.12.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6", - "@webassemblyjs/helper-wasm-section": "1.12.1", - "@webassemblyjs/wasm-gen": "1.12.1", - "@webassemblyjs/wasm-opt": "1.12.1", - "@webassemblyjs/wasm-parser": "1.12.1", - "@webassemblyjs/wast-printer": "1.12.1" - } - }, - "@webassemblyjs/wasm-gen": { - "version": "1.12.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.12.1.tgz", - "integrity": "sha512-TDq4Ojh9fcohAw6OIMXqiIcTq5KUXTGRkVxbSo1hQnSy6lAM5GSdfwWeSxpAo0YzgsgF182E/U0mDNhuA0tW7w==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.12.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6", - "@webassemblyjs/ieee754": "1.11.6", - "@webassemblyjs/leb128": "1.11.6", - "@webassemblyjs/utf8": "1.11.6" - } - }, - "@webassemblyjs/wasm-opt": { - "version": "1.12.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.12.1.tgz", - "integrity": "sha512-Jg99j/2gG2iaz3hijw857AVYekZe2SAskcqlWIZXjji5WStnOpVoat3gQfT/Q5tb2djnCjBtMocY/Su1GfxPBg==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.12.1", - "@webassemblyjs/helper-buffer": "1.12.1", - "@webassemblyjs/wasm-gen": "1.12.1", - "@webassemblyjs/wasm-parser": "1.12.1" - } - }, - "@webassemblyjs/wasm-parser": { - "version": "1.12.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.12.1.tgz", - "integrity": "sha512-xikIi7c2FHXysxXe3COrVUPSheuBtpcfhbpFj4gmu7KRLYOzANztwUU0IbsqvMqzuNK2+glRGWCEqZo1WCLyAQ==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.12.1", - "@webassemblyjs/helper-api-error": "1.11.6", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6", - "@webassemblyjs/ieee754": "1.11.6", - "@webassemblyjs/leb128": "1.11.6", - "@webassemblyjs/utf8": "1.11.6" - } - }, - "@webassemblyjs/wast-printer": { - "version": "1.12.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.12.1.tgz", - "integrity": "sha512-+X4WAlOisVWQMikjbcvY2e0rwPsKQ9F688lksZhBcPycBBuii3O7m8FACbDMWDojpAqvjIncrG8J0XHKyQfVeA==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.12.1", - "@xtuc/long": "4.2.2" - } - }, - "@xtuc/ieee754": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", - "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", - "dev": true - }, - "@xtuc/long": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", - "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", - "dev": true - }, - "accepts": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", - "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", - "dev": true, - "requires": { - "mime-types": "~2.1.34", - "negotiator": "0.6.3" - } - }, - "acorn": { - "version": "8.10.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.10.0.tgz", - "integrity": "sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==", - "dev": true - }, - "acorn-import-assertions": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.9.0.tgz", - "integrity": "sha512-cmMwop9x+8KFhxvKrKfPYmN6/pKTYYHBqLa0DfvVZcKMJWNyWLnaqND7dx/qn66R7ewM1UX5XMaDVP5wlVTaVA==", - "dev": true, - "requires": {} - }, - "acorn-jsx": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", - "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", - "dev": true, - "requires": {} - }, - "acorn-walk": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", - "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==", - "dev": true - }, - "agent-base": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", - "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", - "dev": true, - "requires": { - "debug": "4" - } - }, - "aggregate-error": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", - "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", - "dev": true, - "requires": { - "clean-stack": "^2.0.0", - "indent-string": "^4.0.0" - } - }, - "ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "requires": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, - "ajv-formats": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", - "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", - "dev": true, - "requires": { - "ajv": "^8.0.0" - }, - "dependencies": { - "ajv": { - "version": "8.11.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz", - "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==", - "dev": true, - "requires": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - } - }, - "json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "dev": true - } - } - }, - "ajv-keywords": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", - "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", - "dev": true, - "requires": {} - }, - "ansi-colors": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-1.1.0.tgz", - "integrity": "sha512-SFKX67auSNoVR38N3L+nvsPjOE0bybKTYbkf5tRvushrAPQ9V75huw0ZxBkKVeRU9kqH3d6HA4xTckbwZ4ixmA==", - "dev": true, - "requires": { - "ansi-wrap": "^0.1.0" - } - }, - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "dev": true - }, - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "ansi-wrap": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/ansi-wrap/-/ansi-wrap-0.1.0.tgz", - "integrity": "sha1-qCJQ3bABXponyoLoLqYDu/pF768=", - "dev": true - }, - "anymatch": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", - "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", - "dev": true, - "requires": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - } - }, - "aproba": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", - "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", - "dev": true, - "optional": true - }, - "are-we-there-yet": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.7.tgz", - "integrity": "sha512-nxwy40TuMiUGqMyRHgCSWZ9FM4VAoRP4xUYSTv5ImRog+h9yISPbVH7H8fASCIzYn9wlEv4zvFL7uKDMCFQm3g==", - "dev": true, - "optional": true, - "requires": { - "delegates": "^1.0.0", - "readable-stream": "^2.0.6" - } - }, - "arg": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", - "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", - "dev": true - }, - "argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dev": true, - "requires": { - "sprintf-js": "~1.0.2" - } - }, - "argv": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/argv/-/argv-0.0.2.tgz", - "integrity": "sha1-7L0W+JSbFXGDcRsb2jNPN4QBhas=", - "dev": true - }, - "arr-diff": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", - "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", - "dev": true - }, - "arr-union": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", - "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", - "dev": true - }, - "array-buffer-byte-length": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz", - "integrity": "sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "is-array-buffer": "^3.0.1" - } - }, - "array-each": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/array-each/-/array-each-1.0.1.tgz", - "integrity": "sha512-zHjL5SZa68hkKHBFBK6DJCTtr9sfTCPCaph/L7tMSLcTFgy+zX7E+6q5UArbtOtMBCtxdICpfTCspRse+ywyXA==", - "dev": true - }, - "array-includes": { - "version": "3.1.7", - "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.7.tgz", - "integrity": "sha512-dlcsNBIiWhPkHdOEEKnehA+RNUWDc4UqFtnIXU4uuYDPtA4LDkr7qip2p0VvFAEXNDr0yWZ9PJyIRiGjRLQzwQ==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "get-intrinsic": "^1.2.1", - "is-string": "^1.0.7" - } - }, - "array-slice": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/array-slice/-/array-slice-1.1.0.tgz", - "integrity": "sha512-B1qMD3RBP7O8o0H2KbrXDyB0IccejMF15+87Lvlor12ONPRHP6gTjXMNkt/d3ZuOGbAe66hFmaCfECI24Ufp6w==", - "dev": true - }, - "array-union": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", - "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", - "dev": true - }, - "array.prototype.findlastindex": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.3.tgz", - "integrity": "sha512-LzLoiOMAxvy+Gd3BAq3B7VeIgPdo+Q8hthvKtXybMvRV0jrXfJM/t8mw7nNlpEcVlVUnCnM2KSX4XU5HmpodOA==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "es-shim-unscopables": "^1.0.0", - "get-intrinsic": "^1.2.1" - } - }, - "array.prototype.flat": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.2.tgz", - "integrity": "sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "es-shim-unscopables": "^1.0.0" - } - }, - "array.prototype.flatmap": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.2.tgz", - "integrity": "sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "es-shim-unscopables": "^1.0.0" - } - }, - "arraybuffer.prototype.slice": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.2.tgz", - "integrity": "sha512-yMBKppFur/fbHu9/6USUe03bZ4knMYiwFBcyiaXB8Go0qNehwX6inYPzK9U0NeQvGxKthcmHcaR8P5MStSRBAw==", - "dev": true, - "requires": { - "array-buffer-byte-length": "^1.0.0", - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "get-intrinsic": "^1.2.1", - "is-array-buffer": "^3.0.2", - "is-shared-array-buffer": "^1.0.2" - } - }, - "asn1": { - "version": "0.2.6", - "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz", - "integrity": "sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==", - "dev": true, - "requires": { - "safer-buffer": "~2.1.0" - } - }, - "assert": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/assert/-/assert-2.1.0.tgz", - "integrity": "sha512-eLHpSK/Y4nhMJ07gDaAzoX/XAKS8PSaojml3M0DM4JpV1LAi5JOJ/p6H/XWrl8L+DzVEvVCW1z3vWAaB9oTsQw==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "is-nan": "^1.3.2", - "object-is": "^1.1.5", - "object.assign": "^4.1.4", - "util": "^0.12.5" - } - }, - "assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", - "dev": true - }, - "assign-symbols": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", - "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=", - "dev": true - }, - "async-done": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/async-done/-/async-done-2.0.0.tgz", - "integrity": "sha512-j0s3bzYq9yKIVLKGE/tWlCpa3PfFLcrDZLTSVdnnCTGagXuXBJO4SsY9Xdk/fQBirCkH4evW5xOeJXqlAQFdsw==", - "dev": true, - "requires": { - "end-of-stream": "^1.4.4", - "once": "^1.4.0", - "stream-exhaust": "^1.0.2" - } - }, - "async-settle": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/async-settle/-/async-settle-2.0.0.tgz", - "integrity": "sha512-Obu/KE8FurfQRN6ODdHN9LuXqwC+JFIM9NRyZqJJ4ZfLJmIYN9Rg0/kb+wF70VV5+fJusTMQlJ1t5rF7J/ETdg==", - "dev": true, - "requires": { - "async-done": "^2.0.0" - } - }, - "asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", - "dev": true - }, - "available-typed-arrays": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz", - "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==", - "dev": true - }, - "aws-sign2": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", - "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=", - "dev": true - }, - "aws4": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz", - "integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==", - "dev": true - }, - "b4a": { - "version": "1.6.4", - "resolved": "https://registry.npmjs.org/b4a/-/b4a-1.6.4.tgz", - "integrity": "sha512-fpWrvyVHEKyeEvbKZTVOeZF3VSKKWtJxFIxX/jaVPf+cLbGUSitjb49pHLqPV2BUNNZ0LcoeEGfE/YCpyDYHIw==", - "dev": true - }, - "babel-code-frame": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", - "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", - "dev": true, - "requires": { - "chalk": "^1.1.3", - "esutils": "^2.0.2", - "js-tokens": "^3.0.2" - }, - "dependencies": { - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", - "dev": true - }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dev": true, - "requires": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" - } - }, - "js-tokens": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", - "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=", - "dev": true - }, - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", - "dev": true - } - } - }, - "babel-loader": { - "version": "9.1.3", - "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-9.1.3.tgz", - "integrity": "sha512-xG3ST4DglodGf8qSwv0MdeWLhrDsw/32QMdTO5T1ZIp9gQur0HkCyFs7Awskr10JKXFXwpAhiCuYX5oGXnRGbw==", - "dev": true, - "requires": { - "find-cache-dir": "^4.0.0", - "schema-utils": "^4.0.0" - }, - "dependencies": { - "find-cache-dir": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-4.0.0.tgz", - "integrity": "sha512-9ZonPT4ZAK4a+1pUPVPZJapbi7O5qbbJPdYw/NOQWZZbVLdDTYM3A4R9z/DpAM08IDaFGsvPgiGZ82WEwUDWjg==", - "dev": true, - "requires": { - "common-path-prefix": "^3.0.0", - "pkg-dir": "^7.0.0" - } - }, - "find-up": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-6.3.0.tgz", - "integrity": "sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw==", - "dev": true, - "requires": { - "locate-path": "^7.1.0", - "path-exists": "^5.0.0" - } - }, - "locate-path": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-7.2.0.tgz", - "integrity": "sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==", - "dev": true, - "requires": { - "p-locate": "^6.0.0" - } - }, - "p-limit": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-4.0.0.tgz", - "integrity": "sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==", - "dev": true, - "requires": { - "yocto-queue": "^1.0.0" - } - }, - "p-locate": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-6.0.0.tgz", - "integrity": "sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==", - "dev": true, - "requires": { - "p-limit": "^4.0.0" - } - }, - "path-exists": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-5.0.0.tgz", - "integrity": "sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==", - "dev": true - }, - "pkg-dir": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-7.0.0.tgz", - "integrity": "sha512-Ie9z/WINcxxLp27BKOCHGde4ITq9UklYKDzVo1nhk5sqGEXU3FpkwP5GM2voTGJkGd9B3Otl+Q4uwSOeSUtOBA==", - "dev": true, - "requires": { - "find-up": "^6.3.0" - } - }, - "yocto-queue": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.0.0.tgz", - "integrity": "sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==", - "dev": true - } - } - }, - "babel-plugin-polyfill-corejs2": { - "version": "0.4.10", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.10.tgz", - "integrity": "sha512-rpIuu//y5OX6jVU+a5BCn1R5RSZYWAl2Nar76iwaOdycqb6JPxediskWFMMl7stfwNJR4b7eiQvh5fB5TEQJTQ==", - "dev": true, - "requires": { - "@babel/compat-data": "^7.22.6", - "@babel/helper-define-polyfill-provider": "^0.6.1", - "semver": "^6.3.1" - }, - "dependencies": { - "semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true - } - } - }, - "babel-plugin-polyfill-corejs3": { - "version": "0.10.4", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.10.4.tgz", - "integrity": "sha512-25J6I8NGfa5YkCDogHRID3fVCadIR8/pGl1/spvCkzb6lVn6SR3ojpx9nOn9iEBcUsjY24AmdKm5khcfKdylcg==", - "dev": true, - "requires": { - "@babel/helper-define-polyfill-provider": "^0.6.1", - "core-js-compat": "^3.36.1" - } - }, - "babel-plugin-polyfill-regenerator": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.1.tgz", - "integrity": "sha512-JfTApdE++cgcTWjsiCQlLyFBMbTUft9ja17saCc93lgV33h4tuCVj7tlvu//qpLwaG+3yEz7/KhahGrUMkVq9g==", - "dev": true, - "requires": { - "@babel/helper-define-polyfill-provider": "^0.6.1" - } - }, - "bach": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/bach/-/bach-2.0.1.tgz", - "integrity": "sha512-A7bvGMGiTOxGMpNupYl9HQTf0FFDNF4VCmks4PJpFyN1AX2pdKuxuwdvUz2Hu388wcgp+OvGFNsumBfFNkR7eg==", - "dev": true, - "requires": { - "async-done": "^2.0.0", - "async-settle": "^2.0.0", - "now-and-later": "^3.0.0" - } - }, - "balanced-match": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", - "dev": true - }, - "base64-js": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", - "dev": true - }, - "base64id": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/base64id/-/base64id-2.0.0.tgz", - "integrity": "sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog==", - "dev": true - }, - "bcrypt-pbkdf": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", - "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", - "dev": true, - "requires": { - "tweetnacl": "^0.14.3" - } - }, - "benchmark": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/benchmark/-/benchmark-2.1.4.tgz", - "integrity": "sha1-CfPeMckWQl1JjMLuVloOvzwqVik=", - "dev": true, - "requires": { - "lodash": "^4.17.4", - "platform": "^1.3.3" - } - }, - "binary-extensions": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", - "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", - "dev": true - }, - "bit-twiddle": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/bit-twiddle/-/bit-twiddle-1.0.2.tgz", - "integrity": "sha1-DGwfq+KyPRcXPZpht7cJPrnhdp4=", - "dev": true - }, - "bl": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/bl/-/bl-5.1.0.tgz", - "integrity": "sha512-tv1ZJHLfTDnXE6tMHv73YgSJaWR2AFuPwMntBe7XL/GBFHnT0CLnsHMogfk5+GzCDC5ZWarSCYaIGATZt9dNsQ==", - "dev": true, - "requires": { - "buffer": "^6.0.3", - "inherits": "^2.0.4", - "readable-stream": "^3.4.0" - }, - "dependencies": { - "readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - } - } - }, - "body-parser": { - "version": "1.20.2", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.2.tgz", - "integrity": "sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==", - "dev": true, - "requires": { - "bytes": "3.1.2", - "content-type": "~1.0.5", - "debug": "2.6.9", - "depd": "2.0.0", - "destroy": "1.2.0", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "on-finished": "2.4.1", - "qs": "6.11.0", - "raw-body": "2.5.2", - "type-is": "~1.6.18", - "unpipe": "1.0.0" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - }, - "on-finished": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", - "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", - "dev": true, - "requires": { - "ee-first": "1.1.1" - } - }, - "qs": { - "version": "6.11.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", - "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", - "dev": true, - "requires": { - "side-channel": "^1.0.4" - } - } - } - }, - "brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, - "requires": { - "fill-range": "^7.0.1" - } - }, - "browser-stdout": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", - "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==", - "dev": true - }, - "browserslist": { - "version": "4.23.0", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.0.tgz", - "integrity": "sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==", - "dev": true, - "requires": { - "caniuse-lite": "^1.0.30001587", - "electron-to-chromium": "^1.4.668", - "node-releases": "^2.0.14", - "update-browserslist-db": "^1.0.13" - } - }, - "browserstack": { - "version": "1.5.3", - "resolved": "https://registry.npmjs.org/browserstack/-/browserstack-1.5.3.tgz", - "integrity": "sha512-AO+mECXsW4QcqC9bxwM29O7qWa7bJT94uBFzeb5brylIQwawuEziwq20dPYbins95GlWzOawgyDNdjYAo32EKg==", - "dev": true, - "requires": { - "https-proxy-agent": "^2.2.1" - }, - "dependencies": { - "agent-base": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.3.0.tgz", - "integrity": "sha512-salcGninV0nPrwpGNn4VTXBb1SOuXQBiqbrNXoeizJsHrsL6ERFM2Ne3JUSBWRE6aeNJI2ROP/WEEIDUiDe3cg==", - "dev": true, - "requires": { - "es6-promisify": "^5.0.0" - } - }, - "debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - }, - "https-proxy-agent": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-2.2.4.tgz", - "integrity": "sha512-OmvfoQ53WLjtA9HeYP9RNrWMJzzAz1JGaSFr1nijg0PVR1JaD/xbJq1mdEIIlxGpXp9eSe/O2LgU9DJmTPd0Eg==", - "dev": true, - "requires": { - "agent-base": "^4.3.0", - "debug": "^3.1.0" - } - } - } - }, - "browserstack-local": { - "version": "1.4.8", - "resolved": "https://registry.npmjs.org/browserstack-local/-/browserstack-local-1.4.8.tgz", - "integrity": "sha512-s+mc3gTOJwELdLWi4qFVKtGwMbb5JWsR+JxKlMaJkRJxoZ0gg3WREgPxAN0bm6iU5+S4Bi0sz0oxBRZT8BiNsQ==", - "dev": true, - "requires": { - "https-proxy-agent": "^4.0.0", - "is-running": "^2.1.0", - "ps-tree": "=1.2.0", - "temp-fs": "^0.9.9" - }, - "dependencies": { - "agent-base": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-5.1.1.tgz", - "integrity": "sha512-TMeqbNl2fMW0nMjTEPOwe3J/PRFP4vqeoNuQMG0HlMrtm5QxKqdvAkZ1pRBQ/ulIyDD5Yq0nJ7YbdD8ey0TO3g==", - "dev": true - }, - "https-proxy-agent": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-4.0.0.tgz", - "integrity": "sha512-zoDhWrkR3of1l9QAL8/scJZyLu8j/gBkcwcaQOZh7Gyh/+uJQzGVETdgT30akuwkpL8HTRfssqI3BZuV18teDg==", - "dev": true, - "requires": { - "agent-base": "5", - "debug": "4" - } - } - } - }, - "buffer": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", - "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", - "dev": true, - "requires": { - "base64-js": "^1.3.1", - "ieee754": "^1.2.1" - } - }, - "buffer-from": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", - "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==", - "dev": true - }, - "builtin-modules": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", - "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=", - "dev": true - }, - "builtins": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/builtins/-/builtins-1.0.3.tgz", - "integrity": "sha1-y5T662HIaWRR2zZTThQi+U8K7og=", - "dev": true - }, - "bytes": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", - "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", - "dev": true - }, - "c8": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/c8/-/c8-9.1.0.tgz", - "integrity": "sha512-mBWcT5iqNir1zIkzSPyI3NCR9EZCVI3WUD+AVO17MVWTSFNyUueXE82qTeampNtTr+ilN/5Ua3j24LgbCKjDVg==", - "dev": true, - "requires": { - "@bcoe/v8-coverage": "^0.2.3", - "@istanbuljs/schema": "^0.1.3", - "find-up": "^5.0.0", - "foreground-child": "^3.1.1", - "istanbul-lib-coverage": "^3.2.0", - "istanbul-lib-report": "^3.0.1", - "istanbul-reports": "^3.1.6", - "test-exclude": "^6.0.0", - "v8-to-istanbul": "^9.0.0", - "yargs": "^17.7.2", - "yargs-parser": "^21.1.1" - }, - "dependencies": { - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true - }, - "cliui": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", - "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", - "dev": true, - "requires": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.1", - "wrap-ansi": "^7.0.0" - } - }, - "find-up": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", - "dev": true, - "requires": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - } - }, - "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true - }, - "locate-path": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", - "dev": true, - "requires": { - "p-locate": "^5.0.0" - } - }, - "p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "dev": true, - "requires": { - "yocto-queue": "^0.1.0" - } - }, - "p-locate": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", - "dev": true, - "requires": { - "p-limit": "^3.0.2" - } - }, - "path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true - }, - "string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - } - }, - "strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "requires": { - "ansi-regex": "^5.0.1" - } - }, - "yargs": { - "version": "17.7.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", - "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", - "dev": true, - "requires": { - "cliui": "^8.0.1", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.3", - "y18n": "^5.0.5", - "yargs-parser": "^21.1.1" - } - }, - "yargs-parser": { - "version": "21.1.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", - "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", - "dev": true - } - } - }, - "cachedir": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/cachedir/-/cachedir-2.4.0.tgz", - "integrity": "sha512-9EtFOZR8g22CL7BWjJ9BUx1+A/djkofnyW3aOXZORNW2kxoUpx2h+uN2cOqwPmFhnpVmxg+KW2OjOSgChTEvsQ==", - "dev": true - }, - "call-bind": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", - "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", - "dev": true, - "requires": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2" - } - }, - "callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", - "dev": true - }, - "caniuse-lite": { - "version": "1.0.30001605", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001605.tgz", - "integrity": "sha512-nXwGlFWo34uliI9z3n6Qc0wZaf7zaZWA1CPZ169La5mV3I/gem7bst0vr5XQH5TJXZIMfDeZyOrZnSlVzKxxHQ==", - "dev": true - }, - "caseless": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", - "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", - "dev": true - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "charenc": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/charenc/-/charenc-0.0.2.tgz", - "integrity": "sha512-yrLQ/yVUFXkzg7EDQsPieE/53+0RlaWTs+wBrvW36cyilJ2SaDWfl4Yj7MtLTXleV9uEKefbAGUPv2/iWSooRA==", - "dev": true - }, - "charm": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/charm/-/charm-1.0.2.tgz", - "integrity": "sha1-it02cVOm2aWBMxBSxAkJkdqZXjU=", - "dev": true, - "requires": { - "inherits": "^2.0.1" - } - }, - "chokidar": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", - "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", - "dev": true, - "requires": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "fsevents": "~2.3.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" - } - }, - "chownr": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", - "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", - "dev": true - }, - "chrome-trace-event": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.2.tgz", - "integrity": "sha512-9e/zx1jw7B4CO+c/RXoCsfg/x1AfUBioy4owYH0bJprEYAx5hRFLRhWBqHAG57D0ZM4H7vxbP7bPe0VwhQRYDQ==", - "dev": true, - "requires": { - "tslib": "^1.9.0" - } - }, - "clean-stack": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", - "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", - "dev": true - }, - "cliui": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", - "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", - "dev": true, - "requires": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true - }, - "string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - } - }, - "strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "requires": { - "ansi-regex": "^5.0.1" - } - } - } - }, - "clone": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", - "integrity": "sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==", - "dev": true - }, - "clone-deep": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", - "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", - "dev": true, - "requires": { - "is-plain-object": "^2.0.4", - "kind-of": "^6.0.2", - "shallow-clone": "^3.0.0" - } - }, - "clone-stats": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/clone-stats/-/clone-stats-1.0.0.tgz", - "integrity": "sha512-au6ydSpg6nsrigcZ4m8Bc9hxjeW+GJ8xh5G3BJCMt4WXe1H10UNaVOamqQTmrx1kjVuxAHIQSNU6hY4Nsn9/ag==", - "dev": true - }, - "code-point-at": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", - "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", - "dev": true, - "optional": true - }, - "codecov": { - "version": "3.8.3", - "resolved": "https://registry.npmjs.org/codecov/-/codecov-3.8.3.tgz", - "integrity": "sha512-Y8Hw+V3HgR7V71xWH2vQ9lyS358CbGCldWlJFR0JirqoGtOoas3R3/OclRTvgUYFK29mmJICDPauVKmpqbwhOA==", - "dev": true, - "requires": { - "argv": "0.0.2", - "ignore-walk": "3.0.4", - "js-yaml": "3.14.1", - "teeny-request": "7.1.1", - "urlgrey": "1.0.0" - }, - "dependencies": { - "js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", - "dev": true, - "requires": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - } - } - } - }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", - "dev": true - }, - "color-support": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz", - "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==", - "dev": true - }, - "combined-stream": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", - "dev": true, - "requires": { - "delayed-stream": "~1.0.0" - } - }, - "command-exists": { - "version": "1.2.9", - "resolved": "https://registry.npmjs.org/command-exists/-/command-exists-1.2.9.tgz", - "integrity": "sha512-LTQ/SGc+s0Xc0Fu5WaKnR0YiygZkm9eKFvyS+fRsU7/ZWFF8ykFM6Pc9aCVf1+xasOOZpO3BAVgVrKvsqKHV7w==", - "dev": true - }, - "commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "dev": true - }, - "common-path-prefix": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/common-path-prefix/-/common-path-prefix-3.0.0.tgz", - "integrity": "sha512-QE33hToZseCH3jS0qN96O/bSh3kaw/h+Tq7ngyY9eWDUnTlTNUyqfqvCXioLe5Na5jFsL78ra/wuBU4iuEgd4w==", - "dev": true - }, - "commondir": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", - "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", - "dev": true - }, - "complex.js": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/complex.js/-/complex.js-2.1.1.tgz", - "integrity": "sha512-8njCHOTtFFLtegk6zQo0kkVX1rngygb/KQI6z1qZxlFI3scluC+LVTCFbrkWjBv4vvLlbQ9t88IPMC6k95VTTg==" - }, - "concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", - "dev": true - }, - "connect": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/connect/-/connect-3.7.0.tgz", - "integrity": "sha512-ZqRXc+tZukToSNmh5C2iWMSoV3X1YUcPbqEM4DkEG5tNQXrQUZCNVGGv3IuicnkMtPfGf3Xtp8WCXs295iQ1pQ==", - "dev": true, - "requires": { - "debug": "2.6.9", - "finalhandler": "1.1.2", - "parseurl": "~1.3.3", - "utils-merge": "1.0.1" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - } - } - }, - "console-control-strings": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", - "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=", - "dev": true, - "optional": true - }, - "content-type": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", - "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", - "dev": true - }, - "convert-source-map": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz", - "integrity": "sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==", - "dev": true, - "requires": { - "safe-buffer": "~5.1.1" - } - }, - "cookie": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz", - "integrity": "sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==", - "dev": true - }, - "copy-props": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/copy-props/-/copy-props-4.0.0.tgz", - "integrity": "sha512-bVWtw1wQLzzKiYROtvNlbJgxgBYt2bMJpkCbKmXM3xyijvcjjWXEk5nyrrT3bgJ7ODb19ZohE2T0Y3FgNPyoTw==", - "dev": true, - "requires": { - "each-props": "^3.0.0", - "is-plain-object": "^5.0.0" - }, - "dependencies": { - "is-plain-object": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz", - "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==", - "dev": true - } - } - }, - "core-js": { - "version": "3.37.0", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.37.0.tgz", - "integrity": "sha512-fu5vHevQ8ZG4og+LXug8ulUtVxjOcEYvifJr7L5Bfq9GOztVqsKd9/59hUk2ZSbCrS3BqUr3EpaYGIYzq7g3Ug==", - "dev": true - }, - "core-js-compat": { - "version": "3.36.1", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.36.1.tgz", - "integrity": "sha512-Dk997v9ZCt3X/npqzyGdTlq6t7lDBhZwGvV94PKzDArjp7BTRm7WlDAXYd/OWdeFHO8OChQYRJNJvUCqCbrtKA==", - "dev": true, - "requires": { - "browserslist": "^4.23.0" - } - }, - "core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", - "dev": true - }, - "cors": { - "version": "2.8.5", - "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", - "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", - "dev": true, - "requires": { - "object-assign": "^4", - "vary": "^1" - } - }, - "create-require": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", - "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==", - "dev": true - }, - "cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "dev": true, - "requires": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - }, - "dependencies": { - "which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, - "requires": { - "isexe": "^2.0.0" - } - } - } - }, - "crypt": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/crypt/-/crypt-0.0.2.tgz", - "integrity": "sha512-mCxBlsHFYh9C+HVpiEacem8FEBnMXgU9gy4zmNC+SXAZNB/1idgp/aulFJ4FgCi7GPEVbfyng092GqL2k2rmow==", - "dev": true - }, - "custom-event": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/custom-event/-/custom-event-1.0.1.tgz", - "integrity": "sha1-XQKkaFCt8bSjF5RqOSj8y1v9BCU=", - "dev": true - }, - "cwise-compiler": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/cwise-compiler/-/cwise-compiler-1.1.3.tgz", - "integrity": "sha1-9NZnQQ6FDToxOn0tt7HlBbsDTMU=", - "dev": true, - "requires": { - "uniq": "^1.0.0" - } - }, - "dashdash": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", - "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", - "dev": true, - "requires": { - "assert-plus": "^1.0.0" - } - }, - "date-format": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/date-format/-/date-format-4.0.3.tgz", - "integrity": "sha512-7P3FyqDcfeznLZp2b+OMitV9Sz2lUnsT87WaTat9nVwqsBkTzPG3lPLNwW3en6F4pHUiWzr6vb8CLhjdK9bcxQ==", - "dev": true - }, - "debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, - "requires": { - "ms": "2.1.2" - } - }, - "decamelize": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", - "dev": true - }, - "decimal.js": { - "version": "10.4.3", - "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.4.3.tgz", - "integrity": "sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==" - }, - "deep-is": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", - "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", - "dev": true - }, - "define-data-property": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.0.tgz", - "integrity": "sha512-UzGwzcjyv3OtAvolTj1GoyNYzfFR+iqbGjcnBEENZVCpM4/Ng1yhGNvS3lR/xDS74Tb2wGG9WzNSNIOS9UVb2g==", - "dev": true, - "requires": { - "get-intrinsic": "^1.2.1", - "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.0" - } - }, - "define-properties": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", - "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", - "dev": true, - "requires": { - "define-data-property": "^1.0.1", - "has-property-descriptors": "^1.0.0", - "object-keys": "^1.1.1" - } - }, - "del": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/del/-/del-6.1.1.tgz", - "integrity": "sha512-ua8BhapfP0JUJKC/zV9yHHDW/rDoDxP4Zhn3AkA6/xT6gY7jYXJiaeyBZznYVujhZZET+UgcbZiQ7sN3WqcImg==", - "dev": true, - "requires": { - "globby": "^11.0.1", - "graceful-fs": "^4.2.4", - "is-glob": "^4.0.1", - "is-path-cwd": "^2.2.0", - "is-path-inside": "^3.0.2", - "p-map": "^4.0.0", - "rimraf": "^3.0.2", - "slash": "^3.0.0" - } - }, - "delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", - "dev": true - }, - "delegates": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", - "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=", - "dev": true, - "optional": true - }, - "depd": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", - "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", - "dev": true - }, - "destroy": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", - "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", - "dev": true - }, - "detect-file": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/detect-file/-/detect-file-1.0.0.tgz", - "integrity": "sha512-DtCOLG98P007x7wiiOmfI0fi3eIKyWiLTGJ2MDnVi/E04lWGbf+JzrRHMm0rgIIZJGtHpKpbVgLWHrv8xXpc3Q==", - "dev": true - }, - "di": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/di/-/di-0.0.1.tgz", - "integrity": "sha1-gGZJMmzqp8qjMG112YXqJ0i6kTw=", - "dev": true - }, - "diff": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz", - "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==", - "dev": true - }, - "dir-glob": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", - "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", - "dev": true, - "requires": { - "path-type": "^4.0.0" - } - }, - "doctrine": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", - "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", - "dev": true, - "requires": { - "esutils": "^2.0.2" - } - }, - "dom-serialize": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/dom-serialize/-/dom-serialize-2.2.1.tgz", - "integrity": "sha1-ViromZ9Evl6jB29UGdzVnrQ6yVs=", - "dev": true, - "requires": { - "custom-event": "~1.0.0", - "ent": "~2.2.0", - "extend": "^3.0.0", - "void-elements": "^2.0.0" - } - }, - "dts-critic": { - "version": "3.3.8", - "resolved": "https://registry.npmjs.org/dts-critic/-/dts-critic-3.3.8.tgz", - "integrity": "sha512-7kBza3f+RV/3hVCQ9yIskkrC+49kzDDM7qogbBFgLQCiGOLmUhpjE9FSw2iOWLVyeLagRNj7SmxAhD2SizJ49w==", - "dev": true, - "requires": { - "@definitelytyped/header-parser": "latest", - "command-exists": "^1.2.8", - "rimraf": "^3.0.2", - "semver": "^6.2.0", - "tmp": "^0.2.1", - "yargs": "^15.3.1" - }, - "dependencies": { - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true - }, - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "dev": true - }, - "cliui": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", - "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", - "dev": true, - "requires": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^6.2.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "requires": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - } - }, - "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true - }, - "locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, - "requires": { - "p-locate": "^4.1.0" - } - }, - "p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dev": true, - "requires": { - "p-limit": "^2.2.0" - } - }, - "path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true - }, - "require-main-filename": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", - "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", - "dev": true - }, - "semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true - }, - "string-width": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz", - "integrity": "sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==", - "dev": true, - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.0" - } - }, - "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", - "dev": true, - "requires": { - "ansi-regex": "^5.0.0" - } - }, - "which-module": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", - "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", - "dev": true - }, - "wrap-ansi": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", - "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", - "dev": true, - "requires": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - } - }, - "y18n": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", - "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", - "dev": true - }, - "yargs": { - "version": "15.4.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", - "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", - "dev": true, - "requires": { - "cliui": "^6.0.0", - "decamelize": "^1.2.0", - "find-up": "^4.1.0", - "get-caller-file": "^2.0.1", - "require-directory": "^2.1.1", - "require-main-filename": "^2.0.0", - "set-blocking": "^2.0.0", - "string-width": "^4.2.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^18.1.2" - } - }, - "yargs-parser": { - "version": "18.1.3", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", - "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", - "dev": true, - "requires": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - } - } - } - }, - "dtslint": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/dtslint/-/dtslint-4.2.1.tgz", - "integrity": "sha512-57mWY9osUEfS6k62ATS9RSgug1dZcuN4O31hO76u+iEexa6VUEbKoPGaA2mNtc0FQDcdTl0zEUtti79UQKSQyQ==", - "dev": true, - "requires": { - "@definitelytyped/header-parser": "latest", - "@definitelytyped/typescript-versions": "latest", - "@definitelytyped/utils": "latest", - "dts-critic": "latest", - "fs-extra": "^6.0.1", - "json-stable-stringify": "^1.0.1", - "strip-json-comments": "^2.0.1", - "tslint": "5.14.0", - "tsutils": "^2.29.0", - "yargs": "^15.1.0" - }, - "dependencies": { - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true - }, - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "dev": true - }, - "cliui": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", - "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", - "dev": true, - "requires": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^6.2.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "requires": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - } - }, - "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true - }, - "locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, - "requires": { - "p-locate": "^4.1.0" - } - }, - "p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dev": true, - "requires": { - "p-limit": "^2.2.0" - } - }, - "path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true - }, - "require-main-filename": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", - "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", - "dev": true - }, - "string-width": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz", - "integrity": "sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==", - "dev": true, - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.0" - } - }, - "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", - "dev": true, - "requires": { - "ansi-regex": "^5.0.0" - } - }, - "strip-json-comments": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", - "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", - "dev": true - }, - "which-module": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", - "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", - "dev": true - }, - "wrap-ansi": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", - "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", - "dev": true, - "requires": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - } - }, - "y18n": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", - "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", - "dev": true - }, - "yargs": { - "version": "15.4.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", - "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", - "dev": true, - "requires": { - "cliui": "^6.0.0", - "decamelize": "^1.2.0", - "find-up": "^4.1.0", - "get-caller-file": "^2.0.1", - "require-directory": "^2.1.1", - "require-main-filename": "^2.0.0", - "set-blocking": "^2.0.0", - "string-width": "^4.2.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^18.1.2" - } - }, - "yargs-parser": { - "version": "18.1.3", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", - "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", - "dev": true, - "requires": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - } - } - } - }, - "dup": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/dup/-/dup-1.0.0.tgz", - "integrity": "sha1-UfxaxoX4GWRp3wuQXpNLIK9bQCk=", - "dev": true - }, - "duplexer": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz", - "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==", - "dev": true - }, - "each-props": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/each-props/-/each-props-3.0.0.tgz", - "integrity": "sha512-IYf1hpuWrdzse/s/YJOrFmU15lyhSzxelNVAHTEG3DtP4QsLTWZUzcUL3HMXmKQxXpa4EIrBPpwRgj0aehdvAw==", - "dev": true, - "requires": { - "is-plain-object": "^5.0.0", - "object.defaults": "^1.1.0" - }, - "dependencies": { - "is-plain-object": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz", - "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==", - "dev": true - } - } - }, - "ecc-jsbn": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", - "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", - "dev": true, - "requires": { - "jsbn": "~0.1.0", - "safer-buffer": "^2.1.0" - } - }, - "ee-first": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=", - "dev": true - }, - "electron-to-chromium": { - "version": "1.4.727", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.727.tgz", - "integrity": "sha512-brpv4KTeC4g0Fx2FeIKytLd4UGn1zBQq5Lauy7zEWT9oqkaj5mgsxblEZIAOf1HHLlXxzr6adGViiBy5Z39/CA==", - "dev": true - }, - "emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true - }, - "encodeurl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=", - "dev": true - }, - "end-of-stream": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", - "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", - "dev": true, - "requires": { - "once": "^1.4.0" - } - }, - "engine.io": { - "version": "6.5.4", - "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-6.5.4.tgz", - "integrity": "sha512-KdVSDKhVKyOi+r5uEabrDLZw2qXStVvCsEB/LN3mw4WFi6Gx50jTyuxYVCwAAC0U46FdnzP/ScKRBTXb/NiEOg==", - "dev": true, - "requires": { - "@types/cookie": "^0.4.1", - "@types/cors": "^2.8.12", - "@types/node": ">=10.0.0", - "accepts": "~1.3.4", - "base64id": "2.0.0", - "cookie": "~0.4.1", - "cors": "~2.8.5", - "debug": "~4.3.1", - "engine.io-parser": "~5.2.1", - "ws": "~8.11.0" - } - }, - "engine.io-parser": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-5.2.2.tgz", - "integrity": "sha512-RcyUFKA93/CXH20l4SoVvzZfrSDMOTUS3bWVpTt2FuFP+XYrL8i8oonHP7WInRyVHXh0n/ORtoeiE1os+8qkSw==", - "dev": true - }, - "enhanced-resolve": { - "version": "5.16.0", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.16.0.tgz", - "integrity": "sha512-O+QWCviPNSSLAD9Ucn8Awv+poAkqn3T1XY5/N7kR7rQO9yfSGWkYZDwpJ+iKF7B8rxaQKWngSqACpgzeapSyoA==", - "dev": true, - "requires": { - "graceful-fs": "^4.2.4", - "tapable": "^2.2.0" - } - }, - "ent": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/ent/-/ent-2.2.0.tgz", - "integrity": "sha1-6WQhkyWiHQX0RGai9obtbOX13R0=", - "dev": true - }, - "es-abstract": { - "version": "1.22.2", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.22.2.tgz", - "integrity": "sha512-YoxfFcDmhjOgWPWsV13+2RNjq1F6UQnfs+8TftwNqtzlmFzEXvlUwdrNrYeaizfjQzRMxkZ6ElWMOJIFKdVqwA==", - "dev": true, - "requires": { - "array-buffer-byte-length": "^1.0.0", - "arraybuffer.prototype.slice": "^1.0.2", - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.2", - "es-set-tostringtag": "^2.0.1", - "es-to-primitive": "^1.2.1", - "function.prototype.name": "^1.1.6", - "get-intrinsic": "^1.2.1", - "get-symbol-description": "^1.0.0", - "globalthis": "^1.0.3", - "gopd": "^1.0.1", - "has": "^1.0.3", - "has-property-descriptors": "^1.0.0", - "has-proto": "^1.0.1", - "has-symbols": "^1.0.3", - "internal-slot": "^1.0.5", - "is-array-buffer": "^3.0.2", - "is-callable": "^1.2.7", - "is-negative-zero": "^2.0.2", - "is-regex": "^1.1.4", - "is-shared-array-buffer": "^1.0.2", - "is-string": "^1.0.7", - "is-typed-array": "^1.1.12", - "is-weakref": "^1.0.2", - "object-inspect": "^1.12.3", - "object-keys": "^1.1.1", - "object.assign": "^4.1.4", - "regexp.prototype.flags": "^1.5.1", - "safe-array-concat": "^1.0.1", - "safe-regex-test": "^1.0.0", - "string.prototype.trim": "^1.2.8", - "string.prototype.trimend": "^1.0.7", - "string.prototype.trimstart": "^1.0.7", - "typed-array-buffer": "^1.0.0", - "typed-array-byte-length": "^1.0.0", - "typed-array-byte-offset": "^1.0.0", - "typed-array-length": "^1.0.4", - "unbox-primitive": "^1.0.2", - "which-typed-array": "^1.1.11" - } - }, - "es-module-lexer": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.3.0.tgz", - "integrity": "sha512-vZK7T0N2CBmBOixhmjdqx2gWVbFZ4DXZ/NyRMZVlJXPa7CyFS+/a4QQsDGDQy9ZfEzxFuNEsMLeQJnKP2p5/JA==", - "dev": true - }, - "es-set-tostringtag": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.1.tgz", - "integrity": "sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg==", - "dev": true, - "requires": { - "get-intrinsic": "^1.1.3", - "has": "^1.0.3", - "has-tostringtag": "^1.0.0" - } - }, - "es-shim-unscopables": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz", - "integrity": "sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==", - "dev": true, - "requires": { - "has": "^1.0.3" - } - }, - "es-to-primitive": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", - "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", - "dev": true, - "requires": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" - } - }, - "es6-promise": { - "version": "4.2.8", - "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.8.tgz", - "integrity": "sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==", - "dev": true - }, - "es6-promisify": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/es6-promisify/-/es6-promisify-5.0.0.tgz", - "integrity": "sha1-UQnWLz5W6pZ8S2NQWu8IKRyKUgM=", - "dev": true, - "requires": { - "es6-promise": "^4.0.3" - } - }, - "escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", - "dev": true - }, - "escape-html": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=", - "dev": true - }, - "escape-latex": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/escape-latex/-/escape-latex-1.2.0.tgz", - "integrity": "sha512-nV5aVWW1K0wEiUIEdZ4erkGGH8mDxGyxSeqPzRNtWP7ataw+/olFObw7hujFWlVjNsaDFw5VZ5NzVSIqRgfTiw==" - }, - "escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", - "dev": true - }, - "eslint": { - "version": "8.57.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.0.tgz", - "integrity": "sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==", - "dev": true, - "requires": { - "@eslint-community/eslint-utils": "^4.2.0", - "@eslint-community/regexpp": "^4.6.1", - "@eslint/eslintrc": "^2.1.4", - "@eslint/js": "8.57.0", - "@humanwhocodes/config-array": "^0.11.14", - "@humanwhocodes/module-importer": "^1.0.1", - "@nodelib/fs.walk": "^1.2.8", - "@ungap/structured-clone": "^1.2.0", - "ajv": "^6.12.4", - "chalk": "^4.0.0", - "cross-spawn": "^7.0.2", - "debug": "^4.3.2", - "doctrine": "^3.0.0", - "escape-string-regexp": "^4.0.0", - "eslint-scope": "^7.2.2", - "eslint-visitor-keys": "^3.4.3", - "espree": "^9.6.1", - "esquery": "^1.4.2", - "esutils": "^2.0.2", - "fast-deep-equal": "^3.1.3", - "file-entry-cache": "^6.0.1", - "find-up": "^5.0.0", - "glob-parent": "^6.0.2", - "globals": "^13.19.0", - "graphemer": "^1.4.0", - "ignore": "^5.2.0", - "imurmurhash": "^0.1.4", - "is-glob": "^4.0.0", - "is-path-inside": "^3.0.3", - "js-yaml": "^4.1.0", - "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.4.1", - "lodash.merge": "^4.6.2", - "minimatch": "^3.1.2", - "natural-compare": "^1.4.0", - "optionator": "^0.9.3", - "strip-ansi": "^6.0.1", - "text-table": "^0.2.0" - }, - "dependencies": { - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true - }, - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true - }, - "chalk": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", - "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", - "dev": true - }, - "eslint-scope": { - "version": "7.2.2", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", - "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", - "dev": true, - "requires": { - "esrecurse": "^4.3.0", - "estraverse": "^5.2.0" - } - }, - "find-up": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", - "dev": true, - "requires": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - } - }, - "glob-parent": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", - "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", - "dev": true, - "requires": { - "is-glob": "^4.0.3" - } - }, - "globals": { - "version": "13.20.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.20.0.tgz", - "integrity": "sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==", - "dev": true, - "requires": { - "type-fest": "^0.20.2" - } - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "dev": true, - "requires": { - "argparse": "^2.0.1" - } - }, - "locate-path": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", - "dev": true, - "requires": { - "p-locate": "^5.0.0" - } - }, - "p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "dev": true, - "requires": { - "yocto-queue": "^0.1.0" - } - }, - "p-locate": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", - "dev": true, - "requires": { - "p-limit": "^3.0.2" - } - }, - "path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true - }, - "strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "requires": { - "ansi-regex": "^5.0.1" - } - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "eslint-compat-utils": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/eslint-compat-utils/-/eslint-compat-utils-0.1.2.tgz", - "integrity": "sha512-Jia4JDldWnFNIru1Ehx1H5s9/yxiRHY/TimCuUc0jNexew3cF1gI6CYZil1ociakfWO3rRqFjl1mskBblB3RYg==", - "dev": true, - "requires": {} - }, - "eslint-config-prettier": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-9.1.0.tgz", - "integrity": "sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==", - "dev": true, - "requires": {} - }, - "eslint-config-standard": { - "version": "17.1.0", - "resolved": "https://registry.npmjs.org/eslint-config-standard/-/eslint-config-standard-17.1.0.tgz", - "integrity": "sha512-IwHwmaBNtDK4zDHQukFDW5u/aTb8+meQWZvNFWkiGmbWjD6bqyuSSBxxXKkCftCUzc1zwCH2m/baCNDLGmuO5Q==", - "dev": true, - "requires": {} - }, - "eslint-import-resolver-node": { - "version": "0.3.9", - "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz", - "integrity": "sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==", - "dev": true, - "requires": { - "debug": "^3.2.7", - "is-core-module": "^2.13.0", - "resolve": "^1.22.4" - }, - "dependencies": { - "debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - } - } - }, - "eslint-module-utils": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.8.0.tgz", - "integrity": "sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==", - "dev": true, - "requires": { - "debug": "^3.2.7" - }, - "dependencies": { - "debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - } - } - }, - "eslint-plugin-es-x": { - "version": "7.5.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-es-x/-/eslint-plugin-es-x-7.5.0.tgz", - "integrity": "sha512-ODswlDSO0HJDzXU0XvgZ3lF3lS3XAZEossh15Q2UHjwrJggWeBoKqqEsLTZLXl+dh5eOAozG0zRcYtuE35oTuQ==", - "dev": true, - "requires": { - "@eslint-community/eslint-utils": "^4.1.2", - "@eslint-community/regexpp": "^4.6.0", - "eslint-compat-utils": "^0.1.2" - } - }, - "eslint-plugin-import": { - "version": "2.29.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.29.1.tgz", - "integrity": "sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw==", - "dev": true, - "requires": { - "array-includes": "^3.1.7", - "array.prototype.findlastindex": "^1.2.3", - "array.prototype.flat": "^1.3.2", - "array.prototype.flatmap": "^1.3.2", - "debug": "^3.2.7", - "doctrine": "^2.1.0", - "eslint-import-resolver-node": "^0.3.9", - "eslint-module-utils": "^2.8.0", - "hasown": "^2.0.0", - "is-core-module": "^2.13.1", - "is-glob": "^4.0.3", - "minimatch": "^3.1.2", - "object.fromentries": "^2.0.7", - "object.groupby": "^1.0.1", - "object.values": "^1.1.7", - "semver": "^6.3.1", - "tsconfig-paths": "^3.15.0" - }, - "dependencies": { - "debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - }, - "doctrine": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", - "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", - "dev": true, - "requires": { - "esutils": "^2.0.2" - } - }, - "semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true - } - } - }, - "eslint-plugin-mocha": { - "version": "10.4.3", - "resolved": "https://registry.npmjs.org/eslint-plugin-mocha/-/eslint-plugin-mocha-10.4.3.tgz", - "integrity": "sha512-emc4TVjq5Ht0/upR+psftuz6IBG5q279p+1dSRDeHf+NS9aaerBi3lXKo1SEzwC29hFIW21gO89CEWSvRsi8IQ==", - "dev": true, - "requires": { - "eslint-utils": "^3.0.0", - "globals": "^13.24.0", - "rambda": "^7.4.0" - }, - "dependencies": { - "globals": { - "version": "13.24.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", - "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", - "dev": true, - "requires": { - "type-fest": "^0.20.2" - } - } - } - }, - "eslint-plugin-n": { - "version": "16.6.2", - "resolved": "https://registry.npmjs.org/eslint-plugin-n/-/eslint-plugin-n-16.6.2.tgz", - "integrity": "sha512-6TyDmZ1HXoFQXnhCTUjVFULReoBPOAjpuiKELMkeP40yffI/1ZRO+d9ug/VC6fqISo2WkuIBk3cvuRPALaWlOQ==", - "dev": true, - "requires": { - "@eslint-community/eslint-utils": "^4.4.0", - "builtins": "^5.0.1", - "eslint-plugin-es-x": "^7.5.0", - "get-tsconfig": "^4.7.0", - "globals": "^13.24.0", - "ignore": "^5.2.4", - "is-builtin-module": "^3.2.1", - "is-core-module": "^2.12.1", - "minimatch": "^3.1.2", - "resolve": "^1.22.2", - "semver": "^7.5.3" - }, - "dependencies": { - "builtins": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/builtins/-/builtins-5.0.1.tgz", - "integrity": "sha512-qwVpFEHNfhYJIzNRBvd2C1kyo6jz3ZSMPyyuR47OPdiKWlbYnZNyDWuyR175qDnAJLiCo5fBBqPb3RiXgWlkOQ==", - "dev": true, - "requires": { - "semver": "^7.0.0" - } - }, - "globals": { - "version": "13.24.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", - "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", - "dev": true, - "requires": { - "type-fest": "^0.20.2" - } - }, - "semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - } - } - }, - "eslint-plugin-prettier": { - "version": "5.1.3", - "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-5.1.3.tgz", - "integrity": "sha512-C9GCVAs4Eq7ZC/XFQHITLiHJxQngdtraXaM+LoUFoFp/lHNl2Zn8f3WQbe9HvTBBQ9YnKFB0/2Ajdqwo5D1EAw==", - "dev": true, - "requires": { - "prettier-linter-helpers": "^1.0.0", - "synckit": "^0.8.6" - } - }, - "eslint-plugin-promise": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-promise/-/eslint-plugin-promise-6.1.1.tgz", - "integrity": "sha512-tjqWDwVZQo7UIPMeDReOpUgHCmCiH+ePnVT+5zVapL0uuHnegBUs2smM13CzOs2Xb5+MHMRFTs9v24yjba4Oig==", - "dev": true, - "requires": {} - }, - "eslint-scope": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", - "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", - "dev": true, - "requires": { - "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" - }, - "dependencies": { - "estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", - "dev": true - } - } - }, - "eslint-utils": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", - "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", - "dev": true, - "requires": { - "eslint-visitor-keys": "^2.0.0" - }, - "dependencies": { - "eslint-visitor-keys": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", - "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", - "dev": true - } - } - }, - "eslint-visitor-keys": { - "version": "3.4.3", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", - "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", - "dev": true - }, - "espree": { - "version": "9.6.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", - "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", - "dev": true, - "requires": { - "acorn": "^8.9.0", - "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^3.4.1" - } - }, - "esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "dev": true - }, - "esquery": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", - "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", - "dev": true, - "requires": { - "estraverse": "^5.1.0" - } - }, - "esrecurse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", - "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", - "dev": true, - "requires": { - "estraverse": "^5.2.0" - } - }, - "estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true - }, - "esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", - "dev": true - }, - "event-stream": { - "version": "3.3.4", - "resolved": "https://registry.npmjs.org/event-stream/-/event-stream-3.3.4.tgz", - "integrity": "sha1-SrTJoPWlTbkzi0w02Gv86PSzVXE=", - "dev": true, - "requires": { - "duplexer": "~0.1.1", - "from": "~0", - "map-stream": "~0.1.0", - "pause-stream": "0.0.11", - "split": "0.3", - "stream-combiner": "~0.0.4", - "through": "~2.3.1" - } - }, - "eventemitter3": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", - "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", - "dev": true - }, - "events": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", - "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", - "dev": true - }, - "expand-tilde": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz", - "integrity": "sha512-A5EmesHW6rfnZ9ysHQjPdJRni0SRar0tjtG5MNtm9n5TUvsYU8oozprtRD4AqHxcZWWlVuAmQo2nWKfN9oyjTw==", - "dev": true, - "requires": { - "homedir-polyfill": "^1.0.1" - } - }, - "expect-type": { - "version": "0.19.0", - "resolved": "https://registry.npmjs.org/expect-type/-/expect-type-0.19.0.tgz", - "integrity": "sha512-piv9wz3IrAG4Wnk2A+n2VRCHieAyOSxrRLU872Xo6nyn39kYXKDALk4OcqnvLRnFvkz659CnWC8MWZLuuQnoqg==", - "dev": true - }, - "expr-eval": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/expr-eval/-/expr-eval-2.0.2.tgz", - "integrity": "sha512-4EMSHGOPSwAfBiibw3ndnP0AvjDWLsMvGOvWEZ2F96IGk0bIVdjQisOHxReSkE13mHcfbuCiXw+G4y0zv6N8Eg==", - "dev": true - }, - "extend": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", - "dev": true - }, - "extend-shallow": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", - "dev": true, - "requires": { - "assign-symbols": "^1.0.0", - "is-extendable": "^1.0.1" - }, - "dependencies": { - "is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dev": true, - "requires": { - "is-plain-object": "^2.0.4" - } - } - } - }, - "extsprintf": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", - "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", - "dev": true - }, - "fancy-log": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/fancy-log/-/fancy-log-2.0.0.tgz", - "integrity": "sha512-9CzxZbACXMUXW13tS0tI8XsGGmxWzO2DmYrGuBJOJ8k8q2K7hwfJA5qHjuPPe8wtsco33YR9wc+Rlr5wYFvhSA==", - "dev": true, - "requires": { - "color-support": "^1.1.3" - } - }, - "fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true - }, - "fast-diff": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.2.0.tgz", - "integrity": "sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w==", - "dev": true - }, - "fast-fifo": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/fast-fifo/-/fast-fifo-1.3.2.tgz", - "integrity": "sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ==", - "dev": true - }, - "fast-glob": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.0.tgz", - "integrity": "sha512-ChDuvbOypPuNjO8yIDf36x7BlZX1smcUMTTcyoIjycexOxd6DFsKsg21qVBzEmr3G7fUKIRy2/psii+CIUt7FA==", - "dev": true, - "requires": { - "@nodelib/fs.stat": "^2.0.2", - "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.2", - "merge2": "^1.3.0", - "micromatch": "^4.0.4" - } - }, - "fast-json-stable-stringify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", - "dev": true - }, - "fast-levenshtein": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-3.0.0.tgz", - "integrity": "sha512-hKKNajm46uNmTlhHSyZkmToAc56uZJwYq7yrciZjqOxnlfQwERDQJmHPUp7m1m9wx8vgOe8IaCKZ5Kv2k1DdCQ==", - "dev": true, - "requires": { - "fastest-levenshtein": "^1.0.7" - } - }, - "fast-url-parser": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/fast-url-parser/-/fast-url-parser-1.1.3.tgz", - "integrity": "sha1-9K8+qfNNiicc9YrSs3WfQx8LMY0=", - "dev": true, - "requires": { - "punycode": "^1.3.2" - }, - "dependencies": { - "punycode": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", - "dev": true - } - } - }, - "fastest-levenshtein": { - "version": "1.0.16", - "resolved": "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.16.tgz", - "integrity": "sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==", - "dev": true - }, - "fastq": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", - "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", - "dev": true, - "requires": { - "reusify": "^1.0.4" - } - }, - "file-entry-cache": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", - "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", - "dev": true, - "requires": { - "flat-cache": "^3.0.4" - } - }, - "fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, - "requires": { - "to-regex-range": "^5.0.1" - } - }, - "finalhandler": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", - "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", - "dev": true, - "requires": { - "debug": "2.6.9", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "on-finished": "~2.3.0", - "parseurl": "~1.3.3", - "statuses": "~1.5.0", - "unpipe": "~1.0.0" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - } - } - }, - "find-cache-dir": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz", - "integrity": "sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==", - "dev": true, - "requires": { - "commondir": "^1.0.1", - "make-dir": "^2.0.0", - "pkg-dir": "^3.0.0" - } - }, - "find-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", - "dev": true, - "requires": { - "locate-path": "^3.0.0" - } - }, - "findup-sync": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-5.0.0.tgz", - "integrity": "sha512-MzwXju70AuyflbgeOhzvQWAvvQdo1XL0A9bVvlXsYcFEBM87WR4OakL4OfZq+QRmr+duJubio+UtNQCPsVESzQ==", - "dev": true, - "requires": { - "detect-file": "^1.0.0", - "is-glob": "^4.0.3", - "micromatch": "^4.0.4", - "resolve-dir": "^1.0.1" - } - }, - "fined": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/fined/-/fined-2.0.0.tgz", - "integrity": "sha512-OFRzsL6ZMHz5s0JrsEr+TpdGNCtrVtnuG3x1yzGNiQHT0yaDnXAj8V/lWcpJVrnoDpcwXcASxAZYbuXda2Y82A==", - "dev": true, - "requires": { - "expand-tilde": "^2.0.2", - "is-plain-object": "^5.0.0", - "object.defaults": "^1.1.0", - "object.pick": "^1.3.0", - "parse-filepath": "^1.0.2" - }, - "dependencies": { - "is-plain-object": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz", - "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==", - "dev": true - } - } - }, - "flagged-respawn": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/flagged-respawn/-/flagged-respawn-2.0.0.tgz", - "integrity": "sha512-Gq/a6YCi8zexmGHMuJwahTGzXlAZAOsbCVKduWXC6TlLCjjFRlExMJc4GC2NYPYZ0r/brw9P7CpRgQmlPVeOoA==", - "dev": true - }, - "flat": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", - "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==", - "dev": true - }, - "flat-cache": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", - "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", - "dev": true, - "requires": { - "flatted": "^3.1.0", - "rimraf": "^3.0.2" - } - }, - "flatted": { - "version": "3.2.5", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.5.tgz", - "integrity": "sha512-WIWGi2L3DyTUvUrwRKgGi9TwxQMUEqPOPQBVi71R96jZXJdFskXEmf54BoZaS1kknGODoIGASGEzBUYdyMCBJg==", - "dev": true - }, - "follow-redirects": { - "version": "1.15.6", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.6.tgz", - "integrity": "sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==", - "dev": true - }, - "for-each": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", - "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", - "dev": true, - "requires": { - "is-callable": "^1.1.3" - } - }, - "for-in": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", - "integrity": "sha512-7EwmXrOjyL+ChxMhmG5lnW9MPt1aIeZEwKhQzoBUdTV0N3zuwWDZYVJatDvZ2OyzPUvdIAZDsCetk3coyMfcnQ==", - "dev": true - }, - "for-own": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/for-own/-/for-own-1.0.0.tgz", - "integrity": "sha512-0OABksIGrxKK8K4kynWkQ7y1zounQxP+CWnyclVwj81KW3vlLlGUx57DKGcP/LH216GzqnstnPocF16Nxs0Ycg==", - "dev": true, - "requires": { - "for-in": "^1.0.1" - } - }, - "foreground-child": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.1.1.tgz", - "integrity": "sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==", - "dev": true, - "requires": { - "cross-spawn": "^7.0.0", - "signal-exit": "^4.0.1" - }, - "dependencies": { - "signal-exit": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", - "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", - "dev": true - } - } - }, - "forever-agent": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", - "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", - "dev": true - }, - "form-data": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", - "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", - "dev": true, - "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.6", - "mime-types": "^2.1.12" - } - }, - "fraction.js": { - "version": "4.3.7", - "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.3.7.tgz", - "integrity": "sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==" - }, - "from": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/from/-/from-0.1.7.tgz", - "integrity": "sha1-g8YK/Fi5xWmXAH7Rp2izqzA6RP4=", - "dev": true - }, - "fs-extra": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-6.0.1.tgz", - "integrity": "sha512-GnyIkKhhzXZUWFCaJzvyDLEEgDkPfb4/TPvJCJVuS8MWZgoSsErf++QpiAlDnKFcqhRlm+tIOcencCjyJE6ZCA==", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - } - }, - "fs-minipass": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", - "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", - "dev": true, - "requires": { - "minipass": "^3.0.0" - } - }, - "fs-mkdirp-stream": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/fs-mkdirp-stream/-/fs-mkdirp-stream-2.0.1.tgz", - "integrity": "sha512-UTOY+59K6IA94tec8Wjqm0FSh5OVudGNB0NL/P6fB3HiE3bYOY3VYBGijsnOHNkQSwC1FKkU77pmq7xp9CskLw==", - "dev": true, - "requires": { - "graceful-fs": "^4.2.8", - "streamx": "^2.12.0" - } - }, - "fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", - "dev": true - }, - "fsevents": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", - "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", - "dev": true, - "optional": true - }, - "function-bind": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", - "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", - "dev": true - }, - "function.prototype.name": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.6.tgz", - "integrity": "sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "functions-have-names": "^1.2.3" - } - }, - "functions-have-names": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", - "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", - "dev": true - }, - "gauge": { - "version": "2.7.4", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", - "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", - "dev": true, - "optional": true, - "requires": { - "aproba": "^1.0.3", - "console-control-strings": "^1.0.0", - "has-unicode": "^2.0.0", - "object-assign": "^4.1.0", - "signal-exit": "^3.0.0", - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1", - "wide-align": "^1.1.0" - } - }, - "gensync": { - "version": "1.0.0-beta.2", - "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", - "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", - "dev": true - }, - "get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", - "dev": true - }, - "get-intrinsic": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.1.tgz", - "integrity": "sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw==", - "dev": true, - "requires": { - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-proto": "^1.0.1", - "has-symbols": "^1.0.3" - } - }, - "get-symbol-description": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", - "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.1" - } - }, - "get-tsconfig": { - "version": "4.7.0", - "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.7.0.tgz", - "integrity": "sha512-pmjiZ7xtB8URYm74PlGJozDNyhvsVLUcpBa8DZBG3bWHwaHa9bPiRpiSfovw+fjhwONSCWKRyk+JQHEGZmMrzw==", - "dev": true, - "requires": { - "resolve-pkg-maps": "^1.0.0" - } - }, - "getpass": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", - "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", - "dev": true, - "requires": { - "assert-plus": "^1.0.0" - } - }, - "glob": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", - "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^5.0.1", - "once": "^1.3.0" - }, - "dependencies": { - "brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, - "requires": { - "balanced-match": "^1.0.0" - } - }, - "minimatch": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", - "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", - "dev": true, - "requires": { - "brace-expansion": "^2.0.1" - } - } - } - }, - "glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, - "requires": { - "is-glob": "^4.0.1" - } - }, - "glob-stream": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/glob-stream/-/glob-stream-8.0.1.tgz", - "integrity": "sha512-gkw+JQajGXmzky/Lil3/tQ+p96YKkqJwxiakKgfDGpNBNFHxklnK2nPmYukEW6n8/HmcAfeSvT6xCdRafidwZQ==", - "dev": true, - "requires": { - "@gulpjs/to-absolute-glob": "^4.0.0", - "anymatch": "^3.1.3", - "fastq": "^1.13.0", - "glob-parent": "^6.0.2", - "is-glob": "^4.0.3", - "is-negated-glob": "^1.0.0", - "normalize-path": "^3.0.0", - "now-and-later": "^3.0.0", - "streamx": "^2.12.5" - }, - "dependencies": { - "glob-parent": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", - "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", - "dev": true, - "requires": { - "is-glob": "^4.0.3" - } - } - } - }, - "glob-to-regexp": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", - "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", - "dev": true - }, - "glob-watcher": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/glob-watcher/-/glob-watcher-6.0.0.tgz", - "integrity": "sha512-wGM28Ehmcnk2NqRORXFOTOR064L4imSw3EeOqU5bIwUf62eXGwg89WivH6VMahL8zlQHeodzvHpXplrqzrz3Nw==", - "dev": true, - "requires": { - "async-done": "^2.0.0", - "chokidar": "^3.5.3" - } - }, - "global-modules": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-1.0.0.tgz", - "integrity": "sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==", - "dev": true, - "requires": { - "global-prefix": "^1.0.1", - "is-windows": "^1.0.1", - "resolve-dir": "^1.0.0" - } - }, - "global-prefix": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-1.0.2.tgz", - "integrity": "sha512-5lsx1NUDHtSjfg0eHlmYvZKv8/nVqX4ckFbM+FrGcQ+04KWcWFo9P5MxPZYSzUvyzmdTbI7Eix8Q4IbELDqzKg==", - "dev": true, - "requires": { - "expand-tilde": "^2.0.2", - "homedir-polyfill": "^1.0.1", - "ini": "^1.3.4", - "is-windows": "^1.0.1", - "which": "^1.2.14" - } - }, - "globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", - "dev": true - }, - "globalthis": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz", - "integrity": "sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==", - "dev": true, - "requires": { - "define-properties": "^1.1.3" - } - }, - "globby": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", - "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", - "dev": true, - "requires": { - "array-union": "^2.1.0", - "dir-glob": "^3.0.1", - "fast-glob": "^3.2.9", - "ignore": "^5.2.0", - "merge2": "^1.4.1", - "slash": "^3.0.0" - } - }, - "glogg": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/glogg/-/glogg-2.2.0.tgz", - "integrity": "sha512-eWv1ds/zAlz+M1ioHsyKJomfY7jbDDPpwSkv14KQj89bycx1nvK5/2Cj/T9g7kzJcX5Bc7Yv22FjfBZS/jl94A==", - "dev": true, - "requires": { - "sparkles": "^2.1.0" - } - }, - "gopd": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", - "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", - "dev": true, - "requires": { - "get-intrinsic": "^1.1.3" - } - }, - "graceful-fs": { - "version": "4.2.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", - "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", - "dev": true - }, - "graphemer": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", - "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", - "dev": true - }, - "gulp": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/gulp/-/gulp-5.0.0.tgz", - "integrity": "sha512-S8Z8066SSileaYw1S2N1I64IUc/myI2bqe2ihOBzO6+nKpvNSg7ZcWJt/AwF8LC/NVN+/QZ560Cb/5OPsyhkhg==", - "dev": true, - "requires": { - "glob-watcher": "^6.0.0", - "gulp-cli": "^3.0.0", - "undertaker": "^2.0.0", - "vinyl-fs": "^4.0.0" - } - }, - "gulp-babel": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/gulp-babel/-/gulp-babel-8.0.0.tgz", - "integrity": "sha512-oomaIqDXxFkg7lbpBou/gnUkX51/Y/M2ZfSjL2hdqXTAlSWZcgZtd2o0cOH0r/eE8LWD0+Q/PsLsr2DKOoqToQ==", - "dev": true, - "requires": { - "plugin-error": "^1.0.1", - "replace-ext": "^1.0.0", - "through2": "^2.0.0", - "vinyl-sourcemaps-apply": "^0.2.0" - } - }, - "gulp-cli": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/gulp-cli/-/gulp-cli-3.0.0.tgz", - "integrity": "sha512-RtMIitkT8DEMZZygHK2vEuLPqLPAFB4sntSxg4NoDta7ciwGZ18l7JuhCTiS5deOJi2IoK0btE+hs6R4sfj7AA==", - "dev": true, - "requires": { - "@gulpjs/messages": "^1.1.0", - "chalk": "^4.1.2", - "copy-props": "^4.0.0", - "gulplog": "^2.2.0", - "interpret": "^3.1.1", - "liftoff": "^5.0.0", - "mute-stdout": "^2.0.0", - "replace-homedir": "^2.0.0", - "semver-greatest-satisfied-range": "^2.0.0", - "string-width": "^4.2.3", - "v8flags": "^4.0.0", - "yargs": "^16.2.0" - }, - "dependencies": { - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true - }, - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true - }, - "string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - } - }, - "strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "requires": { - "ansi-regex": "^5.0.1" - } - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "gulplog": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/gulplog/-/gulplog-2.2.0.tgz", - "integrity": "sha512-V2FaKiOhpR3DRXZuYdRLn/qiY0yI5XmqbTKrYbdemJ+xOh2d2MOweI/XFgMzd/9+1twdvMwllnZbWZNJ+BOm4A==", - "dev": true, - "requires": { - "glogg": "^2.2.0" - } - }, - "handlebars": { - "version": "4.7.8", - "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.8.tgz", - "integrity": "sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ==", - "dev": true, - "requires": { - "minimist": "^1.2.5", - "neo-async": "^2.6.2", - "source-map": "^0.6.1", - "uglify-js": "^3.1.4", - "wordwrap": "^1.0.0" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - } - } - }, - "har-schema": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", - "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", - "dev": true - }, - "har-validator": { - "version": "5.1.5", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz", - "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", - "dev": true, - "requires": { - "ajv": "^6.12.3", - "har-schema": "^2.0.0" - } - }, - "has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "dev": true, - "requires": { - "function-bind": "^1.1.1" - } - }, - "has-ansi": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", - "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", - "dev": true, - "requires": { - "ansi-regex": "^2.0.0" - } - }, - "has-bigints": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", - "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", - "dev": true - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "has-property-descriptors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", - "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", - "dev": true, - "requires": { - "get-intrinsic": "^1.1.1" - } - }, - "has-proto": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz", - "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==", - "dev": true - }, - "has-symbols": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", - "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", - "dev": true - }, - "has-tostringtag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", - "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", - "dev": true, - "requires": { - "has-symbols": "^1.0.2" - } - }, - "has-unicode": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", - "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=", - "dev": true, - "optional": true - }, - "hasown": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.0.tgz", - "integrity": "sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==", - "dev": true, - "requires": { - "function-bind": "^1.1.2" - } - }, - "he": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", - "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", - "dev": true - }, - "homedir-polyfill": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz", - "integrity": "sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==", - "dev": true, - "requires": { - "parse-passwd": "^1.0.0" - } - }, - "hosted-git-info": { - "version": "2.8.9", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", - "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", - "dev": true - }, - "html-escaper": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", - "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", - "dev": true - }, - "http-errors": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", - "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", - "dev": true, - "requires": { - "depd": "2.0.0", - "inherits": "2.0.4", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "toidentifier": "1.0.1" - }, - "dependencies": { - "statuses": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", - "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", - "dev": true - } - } - }, - "http-proxy": { - "version": "1.18.1", - "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz", - "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==", - "dev": true, - "requires": { - "eventemitter3": "^4.0.0", - "follow-redirects": "^1.0.0", - "requires-port": "^1.0.0" - } - }, - "http-proxy-agent": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz", - "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==", - "dev": true, - "requires": { - "@tootallnate/once": "1", - "agent-base": "6", - "debug": "4" - } - }, - "http-signature": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", - "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", - "dev": true, - "requires": { - "assert-plus": "^1.0.0", - "jsprim": "^1.2.2", - "sshpk": "^1.7.0" - } - }, - "https-proxy-agent": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz", - "integrity": "sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==", - "dev": true, - "requires": { - "agent-base": "6", - "debug": "4" - } - }, - "iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "dev": true, - "requires": { - "safer-buffer": ">= 2.1.2 < 3" - } - }, - "ieee754": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", - "dev": true - }, - "ignore": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.1.tgz", - "integrity": "sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==", - "dev": true - }, - "ignore-walk": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-3.0.4.tgz", - "integrity": "sha512-PY6Ii8o1jMRA1z4F2hRkH/xN59ox43DavKvD3oDpfurRlOJyAHpifIwpbdv1n4jt4ov0jSpw3kQ4GhJnpBL6WQ==", - "dev": true, - "requires": { - "minimatch": "^3.0.4" - } - }, - "import-fresh": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", - "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", - "dev": true, - "requires": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" - } - }, - "imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", - "dev": true - }, - "indent-string": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", - "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", - "dev": true - }, - "inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "dev": true, - "requires": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true - }, - "ini": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", - "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", - "dev": true - }, - "internal-slot": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.5.tgz", - "integrity": "sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ==", - "dev": true, - "requires": { - "get-intrinsic": "^1.2.0", - "has": "^1.0.3", - "side-channel": "^1.0.4" - } - }, - "interpret": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/interpret/-/interpret-3.1.1.tgz", - "integrity": "sha512-6xwYfHbajpoF0xLW+iwLkhwgvLoZDfjYfoFNu8ftMoXINzwuymNLd9u/KmwtdT2GbR+/Cz66otEGEVVUHX9QLQ==", - "dev": true - }, - "iota-array": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/iota-array/-/iota-array-1.0.0.tgz", - "integrity": "sha1-ge9X/l0FgUzVjCSDYyqZwwoOgIc=", - "dev": true - }, - "is-absolute": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-absolute/-/is-absolute-1.0.0.tgz", - "integrity": "sha512-dOWoqflvcydARa360Gvv18DZ/gRuHKi2NU/wU5X1ZFzdYfH29nkiNZsF3mp4OJ3H4yo9Mx8A/uAGNzpzPN3yBA==", - "dev": true, - "requires": { - "is-relative": "^1.0.0", - "is-windows": "^1.0.1" - } - }, - "is-arguments": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz", - "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - } - }, - "is-array-buffer": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.2.tgz", - "integrity": "sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.2.0", - "is-typed-array": "^1.1.10" - } - }, - "is-bigint": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", - "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", - "dev": true, - "requires": { - "has-bigints": "^1.0.1" - } - }, - "is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "dev": true, - "requires": { - "binary-extensions": "^2.0.0" - } - }, - "is-boolean-object": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", - "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - } - }, - "is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", - "dev": true - }, - "is-builtin-module": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-3.2.1.tgz", - "integrity": "sha512-BSLE3HnV2syZ0FK0iMA/yUGplUeMmNz4AW5fnTunbCIqZi4vG3WjJT9FHMy5D69xmAYBHXQhJdALdpwVxV501A==", - "dev": true, - "requires": { - "builtin-modules": "^3.3.0" - }, - "dependencies": { - "builtin-modules": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.3.0.tgz", - "integrity": "sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==", - "dev": true - } - } - }, - "is-callable": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", - "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", - "dev": true - }, - "is-core-module": { - "version": "2.13.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", - "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", - "dev": true, - "requires": { - "hasown": "^2.0.0" - } - }, - "is-date-object": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.2.tgz", - "integrity": "sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g==", - "dev": true - }, - "is-docker": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", - "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", - "dev": true - }, - "is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", - "dev": true, - "optional": true, - "requires": { - "number-is-nan": "^1.0.0" - } - }, - "is-generator-function": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz", - "integrity": "sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==", - "dev": true, - "requires": { - "has-tostringtag": "^1.0.0" - } - }, - "is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "dev": true, - "requires": { - "is-extglob": "^2.1.1" - } - }, - "is-nan": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/is-nan/-/is-nan-1.3.2.tgz", - "integrity": "sha512-E+zBKpQ2t6MEo1VsonYmluk9NxGrbzpeeLC2xIViuO2EjU2xsXsBPwTr3Ykv9l08UYEVEdWeRZNouaZqF6RN0w==", - "dev": true, - "requires": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3" - } - }, - "is-negated-glob": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-negated-glob/-/is-negated-glob-1.0.0.tgz", - "integrity": "sha512-czXVVn/QEmgvej1f50BZ648vUI+em0xqMq2Sn+QncCLN4zj1UAxlT+kw/6ggQTOaZPd1HqKQGEqbpQVtJucWug==", - "dev": true - }, - "is-negative-zero": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", - "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==", - "dev": true - }, - "is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true - }, - "is-number-object": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", - "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", - "dev": true, - "requires": { - "has-tostringtag": "^1.0.0" - } - }, - "is-path-cwd": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz", - "integrity": "sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==", - "dev": true - }, - "is-path-inside": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", - "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", - "dev": true - }, - "is-plain-obj": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", - "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==", - "dev": true - }, - "is-plain-object": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", - "dev": true, - "requires": { - "isobject": "^3.0.1" - } - }, - "is-regex": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", - "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - } - }, - "is-relative": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-relative/-/is-relative-1.0.0.tgz", - "integrity": "sha512-Kw/ReK0iqwKeu0MITLFuj0jbPAmEiOsIwyIXvvbfa6QfmN9pkD1M+8pdk7Rl/dTKbH34/XBFMbgD4iMJhLQbGA==", - "dev": true, - "requires": { - "is-unc-path": "^1.0.0" - } - }, - "is-running": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-running/-/is-running-2.1.0.tgz", - "integrity": "sha1-MKc/9cw4VOT8JUkICen1q/jeCeA=", - "dev": true - }, - "is-shared-array-buffer": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz", - "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==", - "dev": true, - "requires": { - "call-bind": "^1.0.2" - } - }, - "is-string": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", - "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", - "dev": true, - "requires": { - "has-tostringtag": "^1.0.0" - } - }, - "is-symbol": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz", - "integrity": "sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ==", - "dev": true, - "requires": { - "has-symbols": "^1.0.1" - } - }, - "is-typed-array": { - "version": "1.1.12", - "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.12.tgz", - "integrity": "sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg==", - "dev": true, - "requires": { - "which-typed-array": "^1.1.11" - } - }, - "is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", - "dev": true - }, - "is-unc-path": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-unc-path/-/is-unc-path-1.0.0.tgz", - "integrity": "sha512-mrGpVd0fs7WWLfVsStvgF6iEJnbjDFZh9/emhRDcGWTduTfNHd9CHeUwH3gYIjdbwo4On6hunkztwOaAw0yllQ==", - "dev": true, - "requires": { - "unc-path-regex": "^0.1.2" - } - }, - "is-unicode-supported": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", - "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", - "dev": true - }, - "is-valid-glob": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-valid-glob/-/is-valid-glob-1.0.0.tgz", - "integrity": "sha512-AhiROmoEFDSsjx8hW+5sGwgKVIORcXnrlAx/R0ZSeaPw70Vw0CqkGBBhHGL58Uox2eXnU1AnvXJl1XlyedO5bA==", - "dev": true - }, - "is-weakref": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", - "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", - "dev": true, - "requires": { - "call-bind": "^1.0.2" - } - }, - "is-windows": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", - "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", - "dev": true - }, - "is-wsl": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", - "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", - "dev": true, - "requires": { - "is-docker": "^2.0.0" - } - }, - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true - }, - "isbinaryfile": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-4.0.8.tgz", - "integrity": "sha512-53h6XFniq77YdW+spoRrebh0mnmTxRPTlcuIArO57lmMdq4uBKFKaeTjnb92oYWrSn/LVL+LT+Hap2tFQj8V+w==", - "dev": true - }, - "isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", - "dev": true - }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true - }, - "isstream": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", - "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", - "dev": true - }, - "istanbul-lib-coverage": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz", - "integrity": "sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==", - "dev": true - }, - "istanbul-lib-report": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz", - "integrity": "sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==", - "dev": true, - "requires": { - "istanbul-lib-coverage": "^3.0.0", - "make-dir": "^4.0.0", - "supports-color": "^7.1.0" - }, - "dependencies": { - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "make-dir": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz", - "integrity": "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==", - "dev": true, - "requires": { - "semver": "^7.5.3" - } - }, - "semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "istanbul-reports": { - "version": "3.1.6", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.6.tgz", - "integrity": "sha512-TLgnMkKg3iTDsQ9PbPTdpfAK2DzjF9mqUG7RMgcQl8oFjad8ob4laGxv5XV5U9MAfx8D6tSJiUyuAwzLicaxlg==", - "dev": true, - "requires": { - "html-escaper": "^2.0.0", - "istanbul-lib-report": "^3.0.0" - } - }, - "javascript-natural-sort": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/javascript-natural-sort/-/javascript-natural-sort-0.7.1.tgz", - "integrity": "sha1-+eIwPUUH9tdDVac2ZNFED7Wg71k=" - }, - "jest-worker": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", - "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", - "dev": true, - "requires": { - "@types/node": "*", - "merge-stream": "^2.0.0", - "supports-color": "^8.0.0" - }, - "dependencies": { - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "dev": true - }, - "js-yaml": { - "version": "3.14.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.0.tgz", - "integrity": "sha512-/4IbIeHcD9VMHFqDR/gQ7EdZdLimOvW2DdcxFjdyyZ9NsbS+ccrXqVWDtab/lRl5AlUqmpBx8EhPaWR+OtY17A==", - "dev": true, - "requires": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - } - }, - "jsbn": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", - "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", - "dev": true - }, - "jsep": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/jsep/-/jsep-1.3.8.tgz", - "integrity": "sha512-qofGylTGgYj9gZFsHuyWAN4jr35eJ66qJCK4eKDnldohuUoQFbU3iZn2zjvEbd9wOAhP9Wx5DsAAduTyE1PSWQ==", - "dev": true - }, - "jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", - "dev": true - }, - "json-parse-even-better-errors": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", - "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", - "dev": true - }, - "json-schema": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz", - "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==", - "dev": true - }, - "json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true - }, - "json-stable-stringify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz", - "integrity": "sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8=", - "dev": true, - "requires": { - "jsonify": "~0.0.0" - } - }, - "json-stable-stringify-without-jsonify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", - "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", - "dev": true - }, - "json-stringify-safe": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", - "dev": true - }, - "json5": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", - "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", - "dev": true - }, - "jsonfile": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", - "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", - "dev": true, - "requires": { - "graceful-fs": "^4.1.6" - } - }, - "jsonify": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz", - "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=", - "dev": true - }, - "jsprim": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.2.tgz", - "integrity": "sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==", - "dev": true, - "requires": { - "assert-plus": "1.0.0", - "extsprintf": "1.3.0", - "json-schema": "0.4.0", - "verror": "1.10.0" - } - }, - "just-extend": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/just-extend/-/just-extend-6.2.0.tgz", - "integrity": "sha512-cYofQu2Xpom82S6qD778jBDpwvvy39s1l/hrYij2u9AMdQcGRpaBu6kY4mVhuno5kJVi1DAz4aiphA2WI1/OAw==", - "dev": true - }, - "karma": { - "version": "6.4.3", - "resolved": "https://registry.npmjs.org/karma/-/karma-6.4.3.tgz", - "integrity": "sha512-LuucC/RE92tJ8mlCwqEoRWXP38UMAqpnq98vktmS9SznSoUPPUJQbc91dHcxcunROvfQjdORVA/YFviH+Xci9Q==", - "dev": true, - "requires": { - "@colors/colors": "1.5.0", - "body-parser": "^1.19.0", - "braces": "^3.0.2", - "chokidar": "^3.5.1", - "connect": "^3.7.0", - "di": "^0.0.1", - "dom-serialize": "^2.2.1", - "glob": "^7.1.7", - "graceful-fs": "^4.2.6", - "http-proxy": "^1.18.1", - "isbinaryfile": "^4.0.8", - "lodash": "^4.17.21", - "log4js": "^6.4.1", - "mime": "^2.5.2", - "minimatch": "^3.0.4", - "mkdirp": "^0.5.5", - "qjobs": "^1.2.0", - "range-parser": "^1.2.1", - "rimraf": "^3.0.2", - "socket.io": "^4.7.2", - "source-map": "^0.6.1", - "tmp": "^0.2.1", - "ua-parser-js": "^0.7.30", - "yargs": "^16.1.1" - }, - "dependencies": { - "glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "mkdirp": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", - "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", - "dev": true, - "requires": { - "minimist": "^1.2.5" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - } - } - }, - "karma-browserstack-launcher": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/karma-browserstack-launcher/-/karma-browserstack-launcher-1.6.0.tgz", - "integrity": "sha512-Y/UWPdHZkHIVH2To4GWHCTzmrsB6H7PBWy6pw+TWz5sr4HW2mcE+Uj6qWgoVNxvQU1Pfn5LQQzI6EQ65p8QbiQ==", - "dev": true, - "requires": { - "browserstack": "~1.5.1", - "browserstack-local": "^1.3.7", - "q": "~1.5.0" - } - }, - "karma-firefox-launcher": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/karma-firefox-launcher/-/karma-firefox-launcher-2.1.3.tgz", - "integrity": "sha512-LMM2bseebLbYjODBOVt7TCPP9OI2vZIXCavIXhkO9m+10Uj5l7u/SKoeRmYx8FYHTVGZSpk6peX+3BMHC1WwNw==", - "dev": true, - "requires": { - "is-wsl": "^2.2.0", - "which": "^3.0.0" - }, - "dependencies": { - "which": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/which/-/which-3.0.1.tgz", - "integrity": "sha512-XA1b62dzQzLfaEOSQFTCOd5KFf/1VSzZo7/7TUjnya6u0vGGKzU96UQBZTAThCb2j4/xjBAyii1OhRLJEivHvg==", - "dev": true, - "requires": { - "isexe": "^2.0.0" - } - } - } - }, - "karma-mocha": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/karma-mocha/-/karma-mocha-2.0.1.tgz", - "integrity": "sha512-Tzd5HBjm8his2OA4bouAsATYEpZrp9vC7z5E5j4C5Of5Rrs1jY67RAwXNcVmd/Bnk1wgvQRou0zGVLey44G4tQ==", - "dev": true, - "requires": { - "minimist": "^1.2.3" - } - }, - "karma-mocha-reporter": { - "version": "2.2.5", - "resolved": "https://registry.npmjs.org/karma-mocha-reporter/-/karma-mocha-reporter-2.2.5.tgz", - "integrity": "sha512-Hr6nhkIp0GIJJrvzY8JFeHpQZNseuIakGac4bpw8K1+5F0tLb6l7uvXRa8mt2Z+NVwYgCct4QAfp2R2QP6o00w==", - "dev": true, - "requires": { - "chalk": "^2.1.0", - "log-symbols": "^2.1.0", - "strip-ansi": "^4.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.1.tgz", - "integrity": "sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw==", - "dev": true - }, - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "dev": true, - "requires": { - "ansi-regex": "^3.0.0" - } - } - } - }, - "karma-webpack": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/karma-webpack/-/karma-webpack-5.0.1.tgz", - "integrity": "sha512-oo38O+P3W2mSPCSUrQdySSPv1LvPpXP+f+bBimNomS5sW+1V4SuhCuW8TfJzV+rDv921w2fDSDw0xJbPe6U+kQ==", - "dev": true, - "requires": { - "glob": "^7.1.3", - "minimatch": "^9.0.3", - "webpack-merge": "^4.1.5" - }, - "dependencies": { - "glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "dependencies": { - "minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "requires": { - "brace-expansion": "^1.1.7" - } - } - } - }, - "minimatch": { - "version": "9.0.3", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", - "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", - "dev": true, - "requires": { - "brace-expansion": "^2.0.1" - }, - "dependencies": { - "brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, - "requires": { - "balanced-match": "^1.0.0" - } - } - } - } - } - }, - "kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "dev": true - }, - "last-run": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/last-run/-/last-run-2.0.0.tgz", - "integrity": "sha512-j+y6WhTLN4Itnf9j5ZQos1BGPCS8DAwmgMroR3OzfxAsBxam0hMw7J8M3KqZl0pLQJ1jNnwIexg5DYpC/ctwEQ==", - "dev": true - }, - "lead": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/lead/-/lead-4.0.0.tgz", - "integrity": "sha512-DpMa59o5uGUWWjruMp71e6knmwKU3jRBBn1kjuLWN9EeIOxNeSAwvHf03WIl8g/ZMR2oSQC9ej3yeLBwdDc/pg==", - "dev": true - }, - "levn": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", - "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", - "dev": true, - "requires": { - "prelude-ls": "^1.2.1", - "type-check": "~0.4.0" - } - }, - "liftoff": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/liftoff/-/liftoff-5.0.0.tgz", - "integrity": "sha512-a5BQjbCHnB+cy+gsro8lXJ4kZluzOijzJ1UVVfyJYZC+IP2pLv1h4+aysQeKuTmyO8NAqfyQAk4HWaP/HjcKTg==", - "dev": true, - "requires": { - "extend": "^3.0.2", - "findup-sync": "^5.0.0", - "fined": "^2.0.0", - "flagged-respawn": "^2.0.0", - "is-plain-object": "^5.0.0", - "rechoir": "^0.8.0", - "resolve": "^1.20.0" - }, - "dependencies": { - "is-plain-object": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz", - "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==", - "dev": true - } - } - }, - "loader-runner": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz", - "integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==", - "dev": true - }, - "locate-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", - "dev": true, - "requires": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" - } - }, - "lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", - "dev": true - }, - "lodash.debounce": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", - "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==", - "dev": true - }, - "lodash.get": { - "version": "4.4.2", - "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", - "integrity": "sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==", - "dev": true - }, - "lodash.merge": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", - "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", - "dev": true - }, - "log-symbols": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-2.2.0.tgz", - "integrity": "sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg==", - "dev": true, - "requires": { - "chalk": "^2.0.1" - } - }, - "log4js": { - "version": "6.4.1", - "resolved": "https://registry.npmjs.org/log4js/-/log4js-6.4.1.tgz", - "integrity": "sha512-iUiYnXqAmNKiIZ1XSAitQ4TmNs8CdZYTAWINARF3LjnsLN8tY5m0vRwd6uuWj/yNY0YHxeZodnbmxKFUOM2rMg==", - "dev": true, - "requires": { - "date-format": "^4.0.3", - "debug": "^4.3.3", - "flatted": "^3.2.4", - "rfdc": "^1.3.0", - "streamroller": "^3.0.2" - } - }, - "lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "requires": { - "yallist": "^4.0.0" - } - }, - "make-dir": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", - "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", - "dev": true, - "requires": { - "pify": "^4.0.1", - "semver": "^5.6.0" - } - }, - "make-error": { - "version": "1.3.6", - "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", - "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", - "dev": true - }, - "map-cache": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", - "integrity": "sha512-8y/eV9QQZCiyn1SprXSrCmqJN0yNRATe+PO8ztwqrvrbdRLA3eYJF0yaR0YayLWkMbsQSKWS9N2gPcGEc4UsZg==", - "dev": true - }, - "map-stream": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/map-stream/-/map-stream-0.1.0.tgz", - "integrity": "sha1-5WqpTEyAVaFkBKBnS3jyFffI4ZQ=", - "dev": true - }, - "md5": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/md5/-/md5-2.3.0.tgz", - "integrity": "sha512-T1GITYmFaKuO91vxyoQMFETst+O71VUPEU3ze5GNzDm0OWdP8v1ziTaAEPUr/3kLsY3Sftgz242A1SetQiDL7g==", - "dev": true, - "requires": { - "charenc": "0.0.2", - "crypt": "0.0.2", - "is-buffer": "~1.1.6" - } - }, - "media-typer": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", - "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=", - "dev": true - }, - "merge-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", - "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", - "dev": true - }, - "merge2": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", - "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", - "dev": true - }, - "micromatch": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", - "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", - "dev": true, - "requires": { - "braces": "^3.0.2", - "picomatch": "^2.3.1" - } - }, - "mime": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/mime/-/mime-2.5.2.tgz", - "integrity": "sha512-tqkh47FzKeCPD2PUiPB6pkbMzsCasjxAfC62/Wap5qrUWcb+sFasXUC5I3gYM5iBM8v/Qpn4UK0x+j0iHyFPDg==", - "dev": true - }, - "mime-db": { - "version": "1.52.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", - "dev": true - }, - "mime-types": { - "version": "2.1.35", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", - "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", - "dev": true, - "requires": { - "mime-db": "1.52.0" - } - }, - "minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "minimist": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", - "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==", - "dev": true - }, - "minipass": { - "version": "3.1.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.1.6.tgz", - "integrity": "sha512-rty5kpw9/z8SX9dmxblFA6edItUmwJgMeYDZRrwlIVN27i8gysGbznJwUggw2V/FVqFSDdWy040ZPS811DYAqQ==", - "dev": true, - "requires": { - "yallist": "^4.0.0" - } - }, - "minizlib": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", - "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", - "dev": true, - "requires": { - "minipass": "^3.0.0", - "yallist": "^4.0.0" - } - }, - "mkdirp": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-3.0.1.tgz", - "integrity": "sha512-+NsyUUAZDmo6YVHzL/stxSu3t9YS1iljliy3BSDrXJ/dkn1KYdmtZODGGjLcc9XLgVVpH4KshHB8XmZgMhaBXg==", - "dev": true - }, - "mocha": { - "version": "10.4.0", - "resolved": "https://registry.npmjs.org/mocha/-/mocha-10.4.0.tgz", - "integrity": "sha512-eqhGB8JKapEYcC4ytX/xrzKforgEc3j1pGlAXVy3eRwrtAy5/nIfT1SvgGzfN0XZZxeLq0aQWkOUAmqIJiv+bA==", - "dev": true, - "requires": { - "ansi-colors": "4.1.1", - "browser-stdout": "1.3.1", - "chokidar": "3.5.3", - "debug": "4.3.4", - "diff": "5.0.0", - "escape-string-regexp": "4.0.0", - "find-up": "5.0.0", - "glob": "8.1.0", - "he": "1.2.0", - "js-yaml": "4.1.0", - "log-symbols": "4.1.0", - "minimatch": "5.0.1", - "ms": "2.1.3", - "serialize-javascript": "6.0.0", - "strip-json-comments": "3.1.1", - "supports-color": "8.1.1", - "workerpool": "6.2.1", - "yargs": "16.2.0", - "yargs-parser": "20.2.4", - "yargs-unparser": "2.0.0" - }, - "dependencies": { - "ansi-colors": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", - "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", - "dev": true - }, - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true - }, - "brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, - "requires": { - "balanced-match": "^1.0.0" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "dependencies": { - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "chokidar": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", - "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", - "dev": true, - "requires": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "fsevents": "~2.3.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "diff": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz", - "integrity": "sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==", - "dev": true - }, - "escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", - "dev": true - }, - "find-up": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", - "dev": true, - "requires": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - } - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "dev": true, - "requires": { - "argparse": "^2.0.1" - } - }, - "locate-path": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", - "dev": true, - "requires": { - "p-locate": "^5.0.0" - } - }, - "log-symbols": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", - "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", - "dev": true, - "requires": { - "chalk": "^4.1.0", - "is-unicode-supported": "^0.1.0" - } - }, - "minimatch": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.0.1.tgz", - "integrity": "sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g==", - "dev": true, - "requires": { - "brace-expansion": "^2.0.1" - } - }, - "ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "dev": true - }, - "p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "dev": true, - "requires": { - "yocto-queue": "^0.1.0" - } - }, - "p-locate": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", - "dev": true, - "requires": { - "p-limit": "^3.0.2" - } - }, - "path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true - }, - "supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - }, - "yargs-parser": { - "version": "20.2.4", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz", - "integrity": "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==", - "dev": true - } - } - }, - "mocha-junit-reporter": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/mocha-junit-reporter/-/mocha-junit-reporter-2.2.1.tgz", - "integrity": "sha512-iDn2tlKHn8Vh8o4nCzcUVW4q7iXp7cC4EB78N0cDHIobLymyHNwe0XG8HEHHjc3hJlXm0Vy6zcrxaIhnI2fWmw==", - "dev": true, - "requires": { - "debug": "^4.3.4", - "md5": "^2.3.0", - "mkdirp": "^3.0.0", - "strip-ansi": "^6.0.1", - "xml": "^1.0.1" - }, - "dependencies": { - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true - }, - "strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "requires": { - "ansi-regex": "^5.0.1" - } - } - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "mute-stdout": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/mute-stdout/-/mute-stdout-2.0.0.tgz", - "integrity": "sha512-32GSKM3Wyc8dg/p39lWPKYu8zci9mJFzV1Np9Of0ZEpe6Fhssn/FbI7ywAMd40uX+p3ZKh3T5EeCFv81qS3HmQ==", - "dev": true - }, - "natural-compare": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", - "dev": true - }, - "ndarray": { - "version": "1.0.19", - "resolved": "https://registry.npmjs.org/ndarray/-/ndarray-1.0.19.tgz", - "integrity": "sha512-B4JHA4vdyZU30ELBw3g7/p9bZupyew5a7tX1Y/gGeF2hafrPaQZhgrGQfsvgfYbgdFZjYwuEcnaobeM/WMW+HQ==", - "dev": true, - "requires": { - "iota-array": "^1.0.0", - "is-buffer": "^1.0.2" - } - }, - "ndarray-crout-decomposition": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/ndarray-crout-decomposition/-/ndarray-crout-decomposition-1.1.0.tgz", - "integrity": "sha1-Z/tkPt6v6uhe3M29dFr30ua94Xo=", - "dev": true - }, - "ndarray-determinant": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/ndarray-determinant/-/ndarray-determinant-1.0.0.tgz", - "integrity": "sha1-3Vc0W89PnhTvTDfYscUuUWrASB4=", - "dev": true, - "requires": { - "ndarray-crout-decomposition": "^1.1.0", - "ndarray-diagonal": "^1.0.0", - "ndarray-ops": "^1.2.2", - "ndarray-scratch": "^1.1.1" - } - }, - "ndarray-diagonal": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/ndarray-diagonal/-/ndarray-diagonal-1.0.0.tgz", - "integrity": "sha1-wXwkBc2MkVo8KKguoQANz7Kjjlg=", - "dev": true, - "requires": { - "ndarray": "^1.0.15" - } - }, - "ndarray-gemm": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/ndarray-gemm/-/ndarray-gemm-1.0.0.tgz", - "integrity": "sha1-POWbMc9eIkPIZfBpQ/e0cUz7se4=", - "dev": true - }, - "ndarray-ops": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/ndarray-ops/-/ndarray-ops-1.2.2.tgz", - "integrity": "sha1-WeiNLDKn7ryxvGkPrhQVeVV6YU4=", - "dev": true, - "requires": { - "cwise-compiler": "^1.0.0" - } - }, - "ndarray-pack": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/ndarray-pack/-/ndarray-pack-1.2.1.tgz", - "integrity": "sha1-jK6+qqJNXs9w/4YCBjeXfajuWFo=", - "dev": true, - "requires": { - "cwise-compiler": "^1.1.2", - "ndarray": "^1.0.13" - } - }, - "ndarray-scratch": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/ndarray-scratch/-/ndarray-scratch-1.2.0.tgz", - "integrity": "sha1-YwRjbWLrqT20cnrBPGkzQdulDgE=", - "dev": true, - "requires": { - "ndarray": "^1.0.14", - "ndarray-ops": "^1.2.1", - "typedarray-pool": "^1.0.2" - } - }, - "negotiator": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", - "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", - "dev": true - }, - "neo-async": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", - "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", - "dev": true - }, - "nise": { - "version": "5.1.9", - "resolved": "https://registry.npmjs.org/nise/-/nise-5.1.9.tgz", - "integrity": "sha512-qOnoujW4SV6e40dYxJOb3uvuoPHtmLzIk4TFo+j0jPJoC+5Z9xja5qH5JZobEPsa8+YYphMrOSwnrshEhG2qww==", - "dev": true, - "requires": { - "@sinonjs/commons": "^3.0.0", - "@sinonjs/fake-timers": "^11.2.2", - "@sinonjs/text-encoding": "^0.7.2", - "just-extend": "^6.2.0", - "path-to-regexp": "^6.2.1" - } - }, - "node-fetch": { - "version": "2.6.7", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", - "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", - "dev": true, - "requires": { - "whatwg-url": "^5.0.0" - } - }, - "node-releases": { - "version": "2.0.14", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz", - "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==", - "dev": true - }, - "normalize-package-data": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", - "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", - "dev": true, - "requires": { - "hosted-git-info": "^2.1.4", - "resolve": "^1.10.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" - } - }, - "normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true - }, - "now-and-later": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/now-and-later/-/now-and-later-3.0.0.tgz", - "integrity": "sha512-pGO4pzSdaxhWTGkfSfHx3hVzJVslFPwBp2Myq9MYN/ChfJZF87ochMAXnvz6/58RJSf5ik2q9tXprBBrk2cpcg==", - "dev": true, - "requires": { - "once": "^1.4.0" - } - }, - "npm-package-arg": { - "version": "8.1.5", - "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-8.1.5.tgz", - "integrity": "sha512-LhgZrg0n0VgvzVdSm1oiZworPbTxYHUJCgtsJW8mGvlDpxTM1vSJc3m5QZeUkhAHIzbz3VCHd/R4osi1L1Tg/Q==", - "dev": true, - "requires": { - "hosted-git-info": "^4.0.1", - "semver": "^7.3.4", - "validate-npm-package-name": "^3.0.0" - }, - "dependencies": { - "hosted-git-info": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz", - "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - }, - "semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - } - } - }, - "npmlog": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz", - "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", - "dev": true, - "optional": true, - "requires": { - "are-we-there-yet": "~1.1.2", - "console-control-strings": "~1.1.0", - "gauge": "~2.7.3", - "set-blocking": "~2.0.0" - } - }, - "number-is-nan": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", - "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", - "dev": true, - "optional": true - }, - "numericjs": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/numericjs/-/numericjs-1.2.6.tgz", - "integrity": "sha1-wNryXEvLIuBDv4NEP5856LM2eYs=", - "dev": true - }, - "oauth-sign": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", - "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", - "dev": true - }, - "object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", - "dev": true - }, - "object-inspect": { - "version": "1.12.3", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz", - "integrity": "sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==", - "dev": true - }, - "object-is": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.5.tgz", - "integrity": "sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3" - } - }, - "object-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", - "dev": true - }, - "object.assign": { - "version": "4.1.4", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz", - "integrity": "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "has-symbols": "^1.0.3", - "object-keys": "^1.1.1" - } - }, - "object.defaults": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/object.defaults/-/object.defaults-1.1.0.tgz", - "integrity": "sha512-c/K0mw/F11k4dEUBMW8naXUuBuhxRCfG7W+yFy8EcijU/rSmazOUd1XAEEe6bC0OuXY4HUKjTJv7xbxIMqdxrA==", - "dev": true, - "requires": { - "array-each": "^1.0.1", - "array-slice": "^1.0.0", - "for-own": "^1.0.0", - "isobject": "^3.0.0" - } - }, - "object.fromentries": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.7.tgz", - "integrity": "sha512-UPbPHML6sL8PI/mOqPwsH4G6iyXcCGzLin8KvEPenOZN5lpCNBZZQ+V62vdjB1mQHrmqGQt5/OJzemUA+KJmEA==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1" - } - }, - "object.groupby": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/object.groupby/-/object.groupby-1.0.1.tgz", - "integrity": "sha512-HqaQtqLnp/8Bn4GL16cj+CUYbnpe1bh0TtEaWvybszDG4tgxCJuRpV8VGuvNaI1fAnI4lUJzDG55MXcOH4JZcQ==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "get-intrinsic": "^1.2.1" - } - }, - "object.pick": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", - "integrity": "sha512-tqa/UMy/CCoYmj+H5qc07qvSL9dqcs/WZENZ1JbtWBlATP+iVOe778gE6MSijnyCnORzDuX6hU+LA4SZ09YjFQ==", - "dev": true, - "requires": { - "isobject": "^3.0.1" - } - }, - "object.values": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.7.tgz", - "integrity": "sha512-aU6xnDFYT3x17e/f0IiiwlGPTy2jzMySGfUB4fq6z7CV8l85CWHDk5ErhyhpfDHhrOMwGFhSQkhMGHaIotA6Ng==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1" - } - }, - "on-finished": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", - "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", - "dev": true, - "requires": { - "ee-first": "1.1.1" - } - }, - "once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "dev": true, - "requires": { - "wrappy": "1" - } - }, - "optionator": { - "version": "0.9.3", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz", - "integrity": "sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==", - "dev": true, - "requires": { - "@aashutoshrathi/word-wrap": "^1.2.3", - "deep-is": "^0.1.3", - "fast-levenshtein": "^2.0.6", - "levn": "^0.4.1", - "prelude-ls": "^1.2.1", - "type-check": "^0.4.0" - }, - "dependencies": { - "fast-levenshtein": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", - "dev": true - } - } - }, - "p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, - "requires": { - "p-try": "^2.0.0" - } - }, - "p-locate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", - "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", - "dev": true, - "requires": { - "p-limit": "^2.0.0" - } - }, - "p-map": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", - "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", - "dev": true, - "requires": { - "aggregate-error": "^3.0.0" - } - }, - "p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", - "dev": true - }, - "pad-right": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/pad-right/-/pad-right-0.2.2.tgz", - "integrity": "sha1-b7ySQEXSRPKiokRQMGDTv8YAl3Q=", - "dev": true, - "requires": { - "repeat-string": "^1.5.2" - } - }, - "parent-module": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", - "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", - "dev": true, - "requires": { - "callsites": "^3.0.0" - } - }, - "parse-filepath": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/parse-filepath/-/parse-filepath-1.0.2.tgz", - "integrity": "sha512-FwdRXKCohSVeXqwtYonZTXtbGJKrn+HNyWDYVcp5yuJlesTwNH4rsmRZ+GrKAPJ5bLpRxESMeS+Rl0VCHRvB2Q==", - "dev": true, - "requires": { - "is-absolute": "^1.0.0", - "map-cache": "^0.2.0", - "path-root": "^0.1.1" - } - }, - "parse-passwd": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz", - "integrity": "sha512-1Y1A//QUXEZK7YKz+rD9WydcE1+EuPr6ZBgKecAB8tmoW6UFv0NREVJe1p+jRxtThkcbbKkfwIbWJe/IeE6m2Q==", - "dev": true - }, - "parseurl": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", - "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", - "dev": true - }, - "parsimmon": { - "version": "1.18.0", - "resolved": "https://registry.npmjs.org/parsimmon/-/parsimmon-1.18.0.tgz", - "integrity": "sha512-EtVsGuQfDgwGgXzsSDe+5egRPwbcgKRd/omQ1L3Oj2pHy0gYqd+Q7zrBIQ7P/BN6DWUP9vV45HIgZHCmssdzMg==", - "dev": true - }, - "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", - "dev": true - }, - "path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", - "dev": true - }, - "path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true - }, - "path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", - "dev": true - }, - "path-root": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/path-root/-/path-root-0.1.1.tgz", - "integrity": "sha512-QLcPegTHF11axjfojBIoDygmS2E3Lf+8+jI6wOVmNVenrKSo3mFdSGiIgdSHenczw3wPtlVMQaFVwGmM7BJdtg==", - "dev": true, - "requires": { - "path-root-regex": "^0.1.0" - } - }, - "path-root-regex": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/path-root-regex/-/path-root-regex-0.1.2.tgz", - "integrity": "sha512-4GlJ6rZDhQZFE0DPVKh0e9jmZ5egZfxTkp7bcRDuPlJXbAwhxcl2dINPUAsjLdejqaLsCeg8axcLjIbvBjN4pQ==", - "dev": true - }, - "path-to-regexp": { - "version": "6.2.2", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-6.2.2.tgz", - "integrity": "sha512-GQX3SSMokngb36+whdpRXE+3f9V8UzyAorlYvOGx87ufGHehNTn5lCxrKtLyZ4Yl/wEKnNnr98ZzOwwDZV5ogw==", - "dev": true - }, - "path-type": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", - "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", - "dev": true - }, - "pause-stream": { - "version": "0.0.11", - "resolved": "https://registry.npmjs.org/pause-stream/-/pause-stream-0.0.11.tgz", - "integrity": "sha1-/lo0sMvOErWqaitAPuLnO2AvFEU=", - "dev": true, - "requires": { - "through": "~2.3" - } - }, - "performance-now": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", - "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=", - "dev": true - }, - "picocolors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", - "dev": true - }, - "picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "dev": true - }, - "pify": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", - "dev": true - }, - "pirates": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz", - "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==", - "dev": true - }, - "pkg-dir": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz", - "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==", - "dev": true, - "requires": { - "find-up": "^3.0.0" - } - }, - "platform": { - "version": "1.3.6", - "resolved": "https://registry.npmjs.org/platform/-/platform-1.3.6.tgz", - "integrity": "sha512-fnWVljUchTro6RiCFvCXBbNhJc2NijN7oIQxbwsyL0buWJPG85v81ehlHI9fXrJsMNgTofEoWIQeClKpgxFLrg==", - "dev": true - }, - "plugin-error": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/plugin-error/-/plugin-error-1.0.1.tgz", - "integrity": "sha512-L1zP0dk7vGweZME2i+EeakvUNqSrdiI3F91TwEoYiGrAfUXmVv6fJIq4g82PAXxNsWOp0J7ZqQy/3Szz0ajTxA==", - "dev": true, - "requires": { - "ansi-colors": "^1.0.1", - "arr-diff": "^4.0.0", - "arr-union": "^3.1.0", - "extend-shallow": "^3.0.2" - } - }, - "prelude-ls": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", - "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", - "dev": true - }, - "prettier": { - "version": "3.2.5", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.2.5.tgz", - "integrity": "sha512-3/GWa9aOC0YeD7LUfvOG2NiDyhOWRvt1k+rcKhOuYnMY24iiCphgneUfJDyFXd6rZCAnuLBv6UeAULtrhT/F4A==", - "dev": true - }, - "prettier-linter-helpers": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz", - "integrity": "sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==", - "dev": true, - "requires": { - "fast-diff": "^1.1.2" - } - }, - "process": { - "version": "0.11.10", - "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", - "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=", - "dev": true - }, - "process-nextick-args": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", - "dev": true - }, - "ps-tree": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/ps-tree/-/ps-tree-1.2.0.tgz", - "integrity": "sha512-0VnamPPYHl4uaU/nSFeZZpR21QAWRz+sRv4iW9+v/GS/J5U5iZB5BNN6J0RMoOvdx2gWM2+ZFMIm58q24e4UYA==", - "dev": true, - "requires": { - "event-stream": "=3.3.4" - } - }, - "psl": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz", - "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==", - "dev": true - }, - "punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", - "dev": true - }, - "q": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", - "integrity": "sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=", - "dev": true - }, - "qjobs": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/qjobs/-/qjobs-1.2.0.tgz", - "integrity": "sha512-8YOJEHtxpySA3fFDyCRxA+UUV+fA+rTWnuWvylOK/NCjhY+b4ocCtmu8TtsWb+mYeU+GCHf/S66KZF/AsteKHg==", - "dev": true - }, - "qs": { - "version": "6.5.3", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.3.tgz", - "integrity": "sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==", - "dev": true - }, - "queue-microtask": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", - "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", - "dev": true - }, - "queue-tick": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/queue-tick/-/queue-tick-1.0.1.tgz", - "integrity": "sha512-kJt5qhMxoszgU/62PLP1CJytzd2NKetjSRnyuj31fDd3Rlcz3fzlFdFLD1SItunPwyqEOkca6GbV612BWfaBag==", - "dev": true - }, - "rambda": { - "version": "7.5.0", - "resolved": "https://registry.npmjs.org/rambda/-/rambda-7.5.0.tgz", - "integrity": "sha512-y/M9weqWAH4iopRd7EHDEQQvpFPHj1AA3oHozE9tfITHUtTR7Z9PSlIRRG2l1GuW7sefC1cXFfIcF+cgnShdBA==", - "dev": true - }, - "randombytes": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", - "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", - "dev": true, - "requires": { - "safe-buffer": "^5.1.0" - } - }, - "range-parser": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", - "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", - "dev": true - }, - "raw-body": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz", - "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==", - "dev": true, - "requires": { - "bytes": "3.1.2", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" - } - }, - "readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "dev": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "readdirp": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", - "dev": true, - "requires": { - "picomatch": "^2.2.1" - } - }, - "rechoir": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.8.0.tgz", - "integrity": "sha512-/vxpCXddiX8NGfGO/mTafwjq4aFa/71pvamip0++IQk3zG8cbCj0fifNPrjjF1XMXUne91jL9OoxmdykoEtifQ==", - "dev": true, - "requires": { - "resolve": "^1.20.0" - } - }, - "regenerate": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", - "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==", - "dev": true - }, - "regenerate-unicode-properties": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.0.tgz", - "integrity": "sha512-d1VudCLoIGitcU/hEg2QqvyGZQmdC0Lf8BqdOMXGFSvJP4bNV1+XqbPQeHHLD51Jh4QJJ225dlIFvY4Ly6MXmQ==", - "dev": true, - "requires": { - "regenerate": "^1.4.2" - } - }, - "regenerator-runtime": { - "version": "0.14.1", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", - "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==" - }, - "regenerator-transform": { - "version": "0.15.2", - "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.2.tgz", - "integrity": "sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==", - "dev": true, - "requires": { - "@babel/runtime": "^7.8.4" - } - }, - "regexp.prototype.flags": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.1.tgz", - "integrity": "sha512-sy6TXMN+hnP/wMy+ISxg3krXx7BAtWVO4UouuCN/ziM9UEne0euamVNafDfvC83bRNr95y0V5iijeDQFUNpvrg==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "set-function-name": "^2.0.0" - } - }, - "regexpu-core": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.3.2.tgz", - "integrity": "sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==", - "dev": true, - "requires": { - "@babel/regjsgen": "^0.8.0", - "regenerate": "^1.4.2", - "regenerate-unicode-properties": "^10.1.0", - "regjsparser": "^0.9.1", - "unicode-match-property-ecmascript": "^2.0.0", - "unicode-match-property-value-ecmascript": "^2.1.0" - } - }, - "regjsparser": { - "version": "0.9.1", - "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.9.1.tgz", - "integrity": "sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==", - "dev": true, - "requires": { - "jsesc": "~0.5.0" - }, - "dependencies": { - "jsesc": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", - "integrity": "sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==", - "dev": true - } - } - }, - "remove-trailing-separator": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", - "integrity": "sha512-/hS+Y0u3aOfIETiaiirUFwDBDzmXPvO+jAfKTitUngIPzdKc6Z0LoFjM/CK5PL4C+eKwHohlHAb6H0VFfmmUsw==", - "dev": true - }, - "repeat-string": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", - "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", - "dev": true - }, - "replace-ext": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-1.0.1.tgz", - "integrity": "sha512-yD5BHCe7quCgBph4rMQ+0KkIRKwWCrHDOX1p1Gp6HwjPM5kVoCdKGNhN7ydqqsX6lJEnQDKZ/tFMiEdQ1dvPEw==", - "dev": true - }, - "replace-homedir": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/replace-homedir/-/replace-homedir-2.0.0.tgz", - "integrity": "sha512-bgEuQQ/BHW0XkkJtawzrfzHFSN70f/3cNOiHa2QsYxqrjaC30X1k74FJ6xswVBP0sr0SpGIdVFuPwfrYziVeyw==", - "dev": true - }, - "request": { - "version": "2.88.2", - "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", - "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", - "dev": true, - "requires": { - "aws-sign2": "~0.7.0", - "aws4": "^1.8.0", - "caseless": "~0.12.0", - "combined-stream": "~1.0.6", - "extend": "~3.0.2", - "forever-agent": "~0.6.1", - "form-data": "~2.3.2", - "har-validator": "~5.1.3", - "http-signature": "~1.2.0", - "is-typedarray": "~1.0.0", - "isstream": "~0.1.2", - "json-stringify-safe": "~5.0.1", - "mime-types": "~2.1.19", - "oauth-sign": "~0.9.0", - "performance-now": "^2.1.0", - "qs": "~6.5.2", - "safe-buffer": "^5.1.2", - "tough-cookie": "~2.5.0", - "tunnel-agent": "^0.6.0", - "uuid": "^3.3.2" - } - }, - "require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", - "dev": true - }, - "require-from-string": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", - "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", - "dev": true - }, - "requires-port": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", - "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=", - "dev": true - }, - "resolve": { - "version": "1.22.8", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", - "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", - "dev": true, - "requires": { - "is-core-module": "^2.13.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - } - }, - "resolve-dir": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/resolve-dir/-/resolve-dir-1.0.1.tgz", - "integrity": "sha512-R7uiTjECzvOsWSfdM0QKFNBVFcK27aHOUwdvK53BcW8zqnGdYp0Fbj82cy54+2A4P2tFM22J5kRfe1R+lM/1yg==", - "dev": true, - "requires": { - "expand-tilde": "^2.0.0", - "global-modules": "^1.0.0" - } - }, - "resolve-from": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", - "dev": true - }, - "resolve-options": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/resolve-options/-/resolve-options-2.0.0.tgz", - "integrity": "sha512-/FopbmmFOQCfsCx77BRFdKOniglTiHumLgwvd6IDPihy1GKkadZbgQJBcTb2lMzSR1pndzd96b1nZrreZ7+9/A==", - "dev": true, - "requires": { - "value-or-function": "^4.0.0" - } - }, - "resolve-pkg-maps": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz", - "integrity": "sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==", - "dev": true - }, - "retry": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", - "integrity": "sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs=", - "dev": true - }, - "reusify": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", - "dev": true - }, - "rfdc": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.3.0.tgz", - "integrity": "sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA==", - "dev": true - }, - "rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dev": true, - "requires": { - "glob": "^7.1.3" - }, - "dependencies": { - "glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - } - } - }, - "run-parallel": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", - "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", - "dev": true, - "requires": { - "queue-microtask": "^1.2.2" - } - }, - "safe-array-concat": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.0.1.tgz", - "integrity": "sha512-6XbUAseYE2KtOuGueyeobCySj9L4+66Tn6KQMOPQJrAJEowYKW/YR/MGJZl7FdydUdaFu4LYyDZjxf4/Nmo23Q==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.2.1", - "has-symbols": "^1.0.3", - "isarray": "^2.0.5" - }, - "dependencies": { - "isarray": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", - "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", - "dev": true - } - } - }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - }, - "safe-regex-test": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.0.tgz", - "integrity": "sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.3", - "is-regex": "^1.1.4" - } - }, - "safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "dev": true - }, - "schema-utils": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz", - "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==", - "dev": true, - "requires": { - "@types/json-schema": "^7.0.9", - "ajv": "^8.8.0", - "ajv-formats": "^2.1.1", - "ajv-keywords": "^5.0.0" - }, - "dependencies": { - "ajv": { - "version": "8.11.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz", - "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==", - "dev": true, - "requires": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - } - }, - "ajv-keywords": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", - "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", - "dev": true, - "requires": { - "fast-deep-equal": "^3.1.3" - } - }, - "json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "dev": true - } - } - }, - "seedrandom": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/seedrandom/-/seedrandom-3.0.5.tgz", - "integrity": "sha512-8OwmbklUNzwezjGInmZ+2clQmExQPvomqjL7LFqOYqtmuxRgQYqOD3mHaU+MvZn5FLUeVxVfQjwLZW/n/JFuqg==" - }, - "semver": { - "version": "5.7.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", - "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", - "dev": true - }, - "semver-greatest-satisfied-range": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/semver-greatest-satisfied-range/-/semver-greatest-satisfied-range-2.0.0.tgz", - "integrity": "sha512-lH3f6kMbwyANB7HuOWRMlLCa2itaCrZJ+SAqqkSZrZKO/cAsk2EOyaKHUtNkVLFyFW9pct22SFesFp3Z7zpA0g==", - "dev": true, - "requires": { - "sver": "^1.8.3" - } - }, - "serialize-javascript": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz", - "integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==", - "dev": true, - "requires": { - "randombytes": "^2.1.0" - } - }, - "set-blocking": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", - "dev": true - }, - "set-function-name": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.1.tgz", - "integrity": "sha512-tMNCiqYVkXIZgc2Hnoy2IvC/f8ezc5koaRFkCjrpWzGpCd3qbZXPzVy9MAZzK1ch/X0jvSkojys3oqJN0qCmdA==", - "dev": true, - "requires": { - "define-data-property": "^1.0.1", - "functions-have-names": "^1.2.3", - "has-property-descriptors": "^1.0.0" - } - }, - "setprototypeof": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", - "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", - "dev": true - }, - "shallow-clone": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", - "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", - "dev": true, - "requires": { - "kind-of": "^6.0.2" - } - }, - "shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dev": true, - "requires": { - "shebang-regex": "^3.0.0" - } - }, - "shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "dev": true - }, - "side-channel": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", - "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", - "dev": true, - "requires": { - "call-bind": "^1.0.0", - "get-intrinsic": "^1.0.2", - "object-inspect": "^1.9.0" - } - }, - "signal-exit": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", - "dev": true, - "optional": true - }, - "sinon": { - "version": "17.0.1", - "resolved": "https://registry.npmjs.org/sinon/-/sinon-17.0.1.tgz", - "integrity": "sha512-wmwE19Lie0MLT+ZYNpDymasPHUKTaZHUH/pKEubRXIzySv9Atnlw+BUMGCzWgV7b7wO+Hw6f1TEOr0IUnmU8/g==", - "dev": true, - "requires": { - "@sinonjs/commons": "^3.0.0", - "@sinonjs/fake-timers": "^11.2.2", - "@sinonjs/samsam": "^8.0.0", - "diff": "^5.1.0", - "nise": "^5.1.5", - "supports-color": "^7.2.0" - }, - "dependencies": { - "diff": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-5.2.0.tgz", - "integrity": "sha512-uIFDxqpRZGZ6ThOk84hEfqWoHx2devRFvpTZcTHur85vImfaxUbTW9Ryh4CpCuDnToOP1CEtXKIgytHBPVff5A==", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "dev": true - }, - "slide": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/slide/-/slide-1.1.6.tgz", - "integrity": "sha1-VusCfWW00tzmyy4tMsTUr8nh1wc=", - "dev": true - }, - "socket.io": { - "version": "4.7.4", - "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-4.7.4.tgz", - "integrity": "sha512-DcotgfP1Zg9iP/dH9zvAQcWrE0TtbMVwXmlV4T4mqsvY+gw+LqUGPfx2AoVyRk0FLME+GQhufDMyacFmw7ksqw==", - "dev": true, - "requires": { - "accepts": "~1.3.4", - "base64id": "~2.0.0", - "cors": "~2.8.5", - "debug": "~4.3.2", - "engine.io": "~6.5.2", - "socket.io-adapter": "~2.5.2", - "socket.io-parser": "~4.2.4" - } - }, - "socket.io-adapter": { - "version": "2.5.4", - "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-2.5.4.tgz", - "integrity": "sha512-wDNHGXGewWAjQPt3pyeYBtpWSq9cLE5UW1ZUPL/2eGK9jtse/FpXib7epSTsz0Q0m+6sg6Y4KtcFTlah1bdOVg==", - "dev": true, - "requires": { - "debug": "~4.3.4", - "ws": "~8.11.0" - } - }, - "socket.io-parser": { - "version": "4.2.4", - "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.2.4.tgz", - "integrity": "sha512-/GbIKmo8ioc+NIWIhwdecY0ge+qVBSMdgxGygevmdHj24bsfgtCmcUUcQ5ZzcylGFHsN3k4HB4Cgkl96KVnuew==", - "dev": true, - "requires": { - "@socket.io/component-emitter": "~3.1.0", - "debug": "~4.3.1" - } - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true - }, - "source-map-support": { - "version": "0.5.21", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", - "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", - "dev": true, - "requires": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - } - } - }, - "sparkles": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/sparkles/-/sparkles-2.1.0.tgz", - "integrity": "sha512-r7iW1bDw8R/cFifrD3JnQJX0K1jqT0kprL48BiBpLZLJPmAm34zsVBsK5lc7HirZYZqMW65dOXZgbAGt/I6frg==", - "dev": true - }, - "spdx-correct": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", - "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==", - "dev": true, - "requires": { - "spdx-expression-parse": "^3.0.0", - "spdx-license-ids": "^3.0.0" - } - }, - "spdx-exceptions": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", - "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==", - "dev": true - }, - "spdx-expression-parse": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", - "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", - "dev": true, - "requires": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" - } - }, - "spdx-license-ids": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.6.tgz", - "integrity": "sha512-+orQK83kyMva3WyPf59k1+Y525csj5JejicWut55zeTWANuN17qSiSLUXWtzHeNWORSvT7GLDJ/E/XiIWoXBTw==", - "dev": true - }, - "split": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/split/-/split-0.3.3.tgz", - "integrity": "sha1-zQ7qXmOiEd//frDwkcQTPi0N0o8=", - "dev": true, - "requires": { - "through": "2" - } - }, - "sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", - "dev": true - }, - "sshpk": { - "version": "1.17.0", - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.17.0.tgz", - "integrity": "sha512-/9HIEs1ZXGhSPE8X6Ccm7Nam1z8KcoCqPdI7ecm1N33EzAetWahvQWVqLZtaZQ+IDKX4IyA2o0gBzqIMkAagHQ==", - "dev": true, - "requires": { - "asn1": "~0.2.3", - "assert-plus": "^1.0.0", - "bcrypt-pbkdf": "^1.0.0", - "dashdash": "^1.12.0", - "ecc-jsbn": "~0.1.1", - "getpass": "^0.1.1", - "jsbn": "~0.1.0", - "safer-buffer": "^2.0.2", - "tweetnacl": "~0.14.0" - } - }, - "statuses": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", - "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=", - "dev": true - }, - "stream-combiner": { - "version": "0.0.4", - "resolved": "https://registry.npmjs.org/stream-combiner/-/stream-combiner-0.0.4.tgz", - "integrity": "sha1-TV5DPBhSYd3mI8o/RMWGvPXErRQ=", - "dev": true, - "requires": { - "duplexer": "~0.1.1" - } - }, - "stream-composer": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/stream-composer/-/stream-composer-1.0.2.tgz", - "integrity": "sha512-bnBselmwfX5K10AH6L4c8+S5lgZMWI7ZYrz2rvYjCPB2DIMC4Ig8OpxGpNJSxRZ58oti7y1IcNvjBAz9vW5m4w==", - "dev": true, - "requires": { - "streamx": "^2.13.2" - } - }, - "stream-events": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/stream-events/-/stream-events-1.0.5.tgz", - "integrity": "sha512-E1GUzBSgvct8Jsb3v2X15pjzN1tYebtbLaMg+eBOUOAxgbLoSbT2NS91ckc5lJD1KfLjId+jXJRgo0qnV5Nerg==", - "dev": true, - "requires": { - "stubs": "^3.0.0" - } - }, - "stream-exhaust": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/stream-exhaust/-/stream-exhaust-1.0.2.tgz", - "integrity": "sha512-b/qaq/GlBK5xaq1yrK9/zFcyRSTNxmcZwFLGSTG0mXgZl/4Z6GgiyYOXOvY7N3eEvFRAG1bkDRz5EPGSvPYQlw==", - "dev": true - }, - "streamroller": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/streamroller/-/streamroller-3.0.2.tgz", - "integrity": "sha512-ur6y5S5dopOaRXBuRIZ1u6GC5bcEXHRZKgfBjfCglMhmIf+roVCECjvkEYzNQOXIN2/JPnkMPW/8B3CZoKaEPA==", - "dev": true, - "requires": { - "date-format": "^4.0.3", - "debug": "^4.1.1", - "fs-extra": "^10.0.0" - }, - "dependencies": { - "fs-extra": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.0.0.tgz", - "integrity": "sha512-C5owb14u9eJwizKGdchcDUQeFtlSHHthBk8pbX9Vc1PFZrLombudjDnNns88aYslCyF6IY5SUw3Roz6xShcEIQ==", - "dev": true, - "requires": { - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - } - }, - "jsonfile": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", - "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", - "dev": true, - "requires": { - "graceful-fs": "^4.1.6", - "universalify": "^2.0.0" - } - }, - "universalify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", - "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", - "dev": true - } - } - }, - "streamx": { - "version": "2.15.5", - "resolved": "https://registry.npmjs.org/streamx/-/streamx-2.15.5.tgz", - "integrity": "sha512-9thPGMkKC2GctCzyCUjME3yR03x2xNo0GPKGkRw2UMYN+gqWa9uqpyNWhmsNCutU5zHmkUum0LsCRQTXUgUCAg==", - "dev": true, - "requires": { - "fast-fifo": "^1.1.0", - "queue-tick": "^1.0.1" - } - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "requires": { - "safe-buffer": "~5.1.0" - } - }, - "string-width": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", - "dev": true, - "optional": true, - "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - } - }, - "string.prototype.trim": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.8.tgz", - "integrity": "sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1" - } - }, - "string.prototype.trimend": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.7.tgz", - "integrity": "sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1" - } - }, - "string.prototype.trimstart": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.7.tgz", - "integrity": "sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1" - } - }, - "strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "dev": true, - "requires": { - "ansi-regex": "^2.0.0" - } - }, - "strip-json-comments": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", - "dev": true - }, - "stubs": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/stubs/-/stubs-3.0.0.tgz", - "integrity": "sha1-6NK6H6nJBXAwPAMLaQD31fiavls=", - "dev": true - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - }, - "supports-preserve-symlinks-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", - "dev": true - }, - "sver": { - "version": "1.8.4", - "resolved": "https://registry.npmjs.org/sver/-/sver-1.8.4.tgz", - "integrity": "sha512-71o1zfzyawLfIWBOmw8brleKyvnbn73oVHNCsu51uPMz/HWiKkkXsI31JjHW5zqXEqnPYkIiHd8ZmL7FCimLEA==", - "dev": true, - "requires": { - "semver": "^6.3.0" - }, - "dependencies": { - "semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true, - "optional": true - } - } - }, - "sylvester": { - "version": "0.0.21", - "resolved": "https://registry.npmjs.org/sylvester/-/sylvester-0.0.21.tgz", - "integrity": "sha1-KYexzivS84sNzio0OIiEv6RADqc=", - "dev": true - }, - "synckit": { - "version": "0.8.8", - "resolved": "https://registry.npmjs.org/synckit/-/synckit-0.8.8.tgz", - "integrity": "sha512-HwOKAP7Wc5aRGYdKH+dw0PRRpbO841v2DENBtjnR5HFWoiNByAl7vrx3p0G/rCyYXQsrxqtX48TImFtPcIHSpQ==", - "dev": true, - "requires": { - "@pkgr/core": "^0.1.0", - "tslib": "^2.6.2" - }, - "dependencies": { - "tslib": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", - "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==", - "dev": true - } - } - }, - "tapable": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", - "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", - "dev": true - }, - "tar": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/tar/-/tar-6.2.0.tgz", - "integrity": "sha512-/Wo7DcT0u5HUV486xg675HtjNd3BXZ6xDbzsCUZPt5iw8bTQ63bP0Raut3mvro9u+CUyq7YQd8Cx55fsZXxqLQ==", - "dev": true, - "requires": { - "chownr": "^2.0.0", - "fs-minipass": "^2.0.0", - "minipass": "^5.0.0", - "minizlib": "^2.1.1", - "mkdirp": "^1.0.3", - "yallist": "^4.0.0" - }, - "dependencies": { - "minipass": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", - "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==", - "dev": true - }, - "mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", - "dev": true - } - } - }, - "tar-stream": { - "version": "3.1.6", - "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-3.1.6.tgz", - "integrity": "sha512-B/UyjYwPpMBv+PaFSWAmtYjwdrlEaZQEhMIBFNC5oEG8lpiW8XjcSdmEaClj28ArfKScKHs2nshz3k2le6crsg==", - "dev": true, - "requires": { - "b4a": "^1.6.4", - "fast-fifo": "^1.2.0", - "streamx": "^2.15.0" - } - }, - "teeny-request": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/teeny-request/-/teeny-request-7.1.1.tgz", - "integrity": "sha512-iwY6rkW5DDGq8hE2YgNQlKbptYpY5Nn2xecjQiNjOXWbKzPGUfmeUBCSQbbr306d7Z7U2N0TPl+/SwYRfua1Dg==", - "dev": true, - "requires": { - "http-proxy-agent": "^4.0.0", - "https-proxy-agent": "^5.0.0", - "node-fetch": "^2.6.1", - "stream-events": "^1.0.5", - "uuid": "^8.0.0" - }, - "dependencies": { - "uuid": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", - "dev": true - } - } - }, - "teex": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/teex/-/teex-1.0.1.tgz", - "integrity": "sha512-eYE6iEI62Ni1H8oIa7KlDU6uQBtqr4Eajni3wX7rpfXD8ysFx8z0+dri+KWEPWpBsxXfxu58x/0jvTVT1ekOSg==", - "dev": true, - "requires": { - "streamx": "^2.12.5" - } - }, - "temp-fs": { - "version": "0.9.9", - "resolved": "https://registry.npmjs.org/temp-fs/-/temp-fs-0.9.9.tgz", - "integrity": "sha1-gHFzBDeHByDpQxUy/igUNk+IA9c=", - "dev": true, - "requires": { - "rimraf": "~2.5.2" - }, - "dependencies": { - "glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "rimraf": { - "version": "2.5.4", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.5.4.tgz", - "integrity": "sha1-loAAk8vxoMhr2VtGJUZ1NcKd+gQ=", - "dev": true, - "requires": { - "glob": "^7.0.5" - } - } - } - }, - "terser": { - "version": "5.27.0", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.27.0.tgz", - "integrity": "sha512-bi1HRwVRskAjheeYl291n3JC4GgO/Ty4z1nVs5AAsmonJulGxpSektecnNedrwK9C7vpvVtcX3cw00VSLt7U2A==", - "dev": true, - "requires": { - "@jridgewell/source-map": "^0.3.3", - "acorn": "^8.8.2", - "commander": "^2.20.0", - "source-map-support": "~0.5.20" - } - }, - "terser-webpack-plugin": { - "version": "5.3.10", - "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.10.tgz", - "integrity": "sha512-BKFPWlPDndPs+NGGCr1U59t0XScL5317Y0UReNrHaw9/FwhPENlq6bfgs+4yPfyP51vqC1bQ4rp1EfXW5ZSH9w==", - "dev": true, - "requires": { - "@jridgewell/trace-mapping": "^0.3.20", - "jest-worker": "^27.4.5", - "schema-utils": "^3.1.1", - "serialize-javascript": "^6.0.1", - "terser": "^5.26.0" - }, - "dependencies": { - "schema-utils": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", - "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", - "dev": true, - "requires": { - "@types/json-schema": "^7.0.8", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" - } - }, - "serialize-javascript": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.2.tgz", - "integrity": "sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==", - "dev": true, - "requires": { - "randombytes": "^2.1.0" - } - } - } - }, - "test-exclude": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", - "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", - "dev": true, - "requires": { - "@istanbuljs/schema": "^0.1.2", - "glob": "^7.1.4", - "minimatch": "^3.0.4" - }, - "dependencies": { - "glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - } - } - }, - "text-table": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", - "dev": true - }, - "through": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", - "dev": true - }, - "through2": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", - "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", - "dev": true, - "requires": { - "readable-stream": "~2.3.6", - "xtend": "~4.0.1" - } - }, - "tiny-emitter": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/tiny-emitter/-/tiny-emitter-2.1.0.tgz", - "integrity": "sha512-NB6Dk1A9xgQPMoGqC5CVXn123gWyte215ONT5Pp5a0yt4nlEoO1ZWeCwpncaekPHXO60i47ihFnZPiRPjRMq4Q==" - }, - "tmp": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz", - "integrity": "sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==", - "dev": true, - "requires": { - "rimraf": "^3.0.0" - } - }, - "to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", - "dev": true - }, - "to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "requires": { - "is-number": "^7.0.0" - } - }, - "to-through": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/to-through/-/to-through-3.0.0.tgz", - "integrity": "sha512-y8MN937s/HVhEoBU1SxfHC+wxCHkV1a9gW8eAdTadYh/bGyesZIVcbjI+mSpFbSVwQici/XjBjuUyri1dnXwBw==", - "dev": true, - "requires": { - "streamx": "^2.12.5" - } - }, - "toidentifier": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", - "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", - "dev": true - }, - "tough-cookie": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", - "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", - "dev": true, - "requires": { - "psl": "^1.1.28", - "punycode": "^2.1.1" - } - }, - "tr46": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=", - "dev": true - }, - "ts-api-utils": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.3.0.tgz", - "integrity": "sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==", - "dev": true, - "requires": {} - }, - "ts-node": { - "version": "10.9.2", - "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.2.tgz", - "integrity": "sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==", - "dev": true, - "requires": { - "@cspotcode/source-map-support": "^0.8.0", - "@tsconfig/node10": "^1.0.7", - "@tsconfig/node12": "^1.0.7", - "@tsconfig/node14": "^1.0.0", - "@tsconfig/node16": "^1.0.2", - "acorn": "^8.4.1", - "acorn-walk": "^8.1.1", - "arg": "^4.1.0", - "create-require": "^1.1.0", - "diff": "^4.0.1", - "make-error": "^1.1.1", - "v8-compile-cache-lib": "^3.0.1", - "yn": "3.1.1" - }, - "dependencies": { - "diff": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", - "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", - "dev": true - } - } - }, - "tsconfig-paths": { - "version": "3.15.0", - "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz", - "integrity": "sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==", - "dev": true, - "requires": { - "@types/json5": "^0.0.29", - "json5": "^1.0.2", - "minimist": "^1.2.6", - "strip-bom": "^3.0.0" - }, - "dependencies": { - "json5": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", - "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", - "dev": true, - "requires": { - "minimist": "^1.2.0" - } - }, - "strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", - "dev": true - } - } - }, - "tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true - }, - "tslint": { - "version": "5.14.0", - "resolved": "https://registry.npmjs.org/tslint/-/tslint-5.14.0.tgz", - "integrity": "sha512-IUla/ieHVnB8Le7LdQFRGlVJid2T/gaJe5VkjzRVSRR6pA2ODYrnfR1hmxi+5+au9l50jBwpbBL34txgv4NnTQ==", - "dev": true, - "requires": { - "babel-code-frame": "^6.22.0", - "builtin-modules": "^1.1.1", - "chalk": "^2.3.0", - "commander": "^2.12.1", - "diff": "^3.2.0", - "glob": "^7.1.1", - "js-yaml": "^3.7.0", - "minimatch": "^3.0.4", - "mkdirp": "^0.5.1", - "resolve": "^1.3.2", - "semver": "^5.3.0", - "tslib": "^1.8.0", - "tsutils": "^2.29.0" - }, - "dependencies": { - "glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "mkdirp": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", - "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", - "dev": true, - "requires": { - "minimist": "^1.2.5" - } - } - } - }, - "tsutils": { - "version": "2.29.0", - "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-2.29.0.tgz", - "integrity": "sha512-g5JVHCIJwzfISaXpXE1qvNalca5Jwob6FjI4AoPlqMusJ6ftFE7IkkFoMhVLRgK+4Kx3gkzb8UZK5t5yTTvEmA==", - "dev": true, - "requires": { - "tslib": "^1.8.1" - } - }, - "tunnel-agent": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", - "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", - "dev": true, - "requires": { - "safe-buffer": "^5.0.1" - } - }, - "tweetnacl": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", - "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", - "dev": true - }, - "type-check": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", - "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", - "dev": true, - "requires": { - "prelude-ls": "^1.2.1" - } - }, - "type-detect": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", - "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", - "dev": true - }, - "type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", - "dev": true - }, - "type-is": { - "version": "1.6.18", - "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", - "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", - "dev": true, - "requires": { - "media-typer": "0.3.0", - "mime-types": "~2.1.24" - } - }, - "typed-array-buffer": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.0.tgz", - "integrity": "sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.2.1", - "is-typed-array": "^1.1.10" - } - }, - "typed-array-byte-length": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.0.tgz", - "integrity": "sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "for-each": "^0.3.3", - "has-proto": "^1.0.1", - "is-typed-array": "^1.1.10" - } - }, - "typed-array-byte-offset": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.0.tgz", - "integrity": "sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg==", - "dev": true, - "requires": { - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.2", - "for-each": "^0.3.3", - "has-proto": "^1.0.1", - "is-typed-array": "^1.1.10" - } - }, - "typed-array-length": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.4.tgz", - "integrity": "sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "for-each": "^0.3.3", - "is-typed-array": "^1.1.9" - } - }, - "typed-function": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/typed-function/-/typed-function-4.1.1.tgz", - "integrity": "sha512-Pq1DVubcvibmm8bYcMowjVnnMwPVMeh0DIdA8ad8NZY2sJgapANJmiigSUwlt+EgXxpfIv8MWrQXTIzkfYZLYQ==" - }, - "typedarray": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", - "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", - "dev": true - }, - "typedarray-pool": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/typedarray-pool/-/typedarray-pool-1.2.0.tgz", - "integrity": "sha512-YTSQbzX43yvtpfRtIDAYygoYtgT+Rpjuxy9iOpczrjpXLgGoyG7aS5USJXV2d3nn8uHTeb9rXDvzS27zUg5KYQ==", - "dev": true, - "requires": { - "bit-twiddle": "^1.0.0", - "dup": "^1.0.0" - } - }, - "typescript": { - "version": "5.4.5", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.4.5.tgz", - "integrity": "sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ==", - "dev": true - }, - "ua-parser-js": { - "version": "0.7.35", - "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.35.tgz", - "integrity": "sha512-veRf7dawaj9xaWEu9HoTVn5Pggtc/qj+kqTOFvNiN1l0YdxwC1kvel57UCjThjGa3BHBihE8/UJAHI+uQHmd/g==", - "dev": true - }, - "uglify-js": { - "version": "3.13.0", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.13.0.tgz", - "integrity": "sha512-TWYSWa9T2pPN4DIJYbU9oAjQx+5qdV5RUDxwARg8fmJZrD/V27Zj0JngW5xg1DFz42G0uDYl2XhzF6alSzD62w==", - "dev": true, - "optional": true - }, - "unbox-primitive": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", - "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "has-bigints": "^1.0.2", - "has-symbols": "^1.0.3", - "which-boxed-primitive": "^1.0.2" - } - }, - "unc-path-regex": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/unc-path-regex/-/unc-path-regex-0.1.2.tgz", - "integrity": "sha512-eXL4nmJT7oCpkZsHZUOJo8hcX3GbsiDOa0Qu9F646fi8dT3XuSVopVqAcEiVzSKKH7UoDti23wNX3qGFxcW5Qg==", - "dev": true - }, - "undertaker": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/undertaker/-/undertaker-2.0.0.tgz", - "integrity": "sha512-tO/bf30wBbTsJ7go80j0RzA2rcwX6o7XPBpeFcb+jzoeb4pfMM2zUeSDIkY1AWqeZabWxaQZ/h8N9t35QKDLPQ==", - "dev": true, - "requires": { - "bach": "^2.0.1", - "fast-levenshtein": "^3.0.0", - "last-run": "^2.0.0", - "undertaker-registry": "^2.0.0" - } - }, - "undertaker-registry": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/undertaker-registry/-/undertaker-registry-2.0.0.tgz", - "integrity": "sha512-+hhVICbnp+rlzZMgxXenpvTxpuvA67Bfgtt+O9WOE5jo7w/dyiF1VmoZVIHvP2EkUjsyKyTwYKlLhA+j47m1Ew==", - "dev": true - }, - "undici-types": { - "version": "5.26.5", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", - "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==", - "dev": true - }, - "unicode-canonical-property-names-ecmascript": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz", - "integrity": "sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==", - "dev": true - }, - "unicode-match-property-ecmascript": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", - "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", - "dev": true, - "requires": { - "unicode-canonical-property-names-ecmascript": "^2.0.0", - "unicode-property-aliases-ecmascript": "^2.0.0" - } - }, - "unicode-match-property-value-ecmascript": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.1.0.tgz", - "integrity": "sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==", - "dev": true - }, - "unicode-property-aliases-ecmascript": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz", - "integrity": "sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==", - "dev": true - }, - "uniq": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/uniq/-/uniq-1.0.1.tgz", - "integrity": "sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8=", - "dev": true - }, - "universalify": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", - "dev": true - }, - "unpipe": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=", - "dev": true - }, - "update-browserslist-db": { - "version": "1.0.13", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz", - "integrity": "sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==", - "dev": true, - "requires": { - "escalade": "^3.1.1", - "picocolors": "^1.0.0" - } - }, - "uri-js": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.0.tgz", - "integrity": "sha512-B0yRTzYdUCCn9n+F4+Gh4yIDtMQcaJsmYBDsTSG8g/OejKBodLQ2IHfN3bM7jUsRXndopT7OIXWdYqc1fjmV6g==", - "dev": true, - "requires": { - "punycode": "^2.1.0" - } - }, - "urlgrey": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/urlgrey/-/urlgrey-1.0.0.tgz", - "integrity": "sha512-hJfIzMPJmI9IlLkby8QrsCykQ+SXDeO2W5Q9QTW3QpqZVTx4a/K7p8/5q+/isD8vsbVaFgql/gvAoQCRQ2Cb5w==", - "dev": true, - "requires": { - "fast-url-parser": "^1.1.3" - } - }, - "util": { - "version": "0.12.5", - "resolved": "https://registry.npmjs.org/util/-/util-0.12.5.tgz", - "integrity": "sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "is-arguments": "^1.0.4", - "is-generator-function": "^1.0.7", - "is-typed-array": "^1.1.3", - "which-typed-array": "^1.1.2" - } - }, - "util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", - "dev": true - }, - "utils-merge": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", - "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=", - "dev": true - }, - "uuid": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", - "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", - "dev": true - }, - "v8-compile-cache-lib": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", - "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==", - "dev": true - }, - "v8-to-istanbul": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.0.1.tgz", - "integrity": "sha512-74Y4LqY74kLE6IFyIjPtkSTWzUZmj8tdHT9Ii/26dvQ6K9Dl2NbEfj0XgU2sHCtKgt5VupqhlO/5aWuqS+IY1w==", - "dev": true, - "requires": { - "@jridgewell/trace-mapping": "^0.3.12", - "@types/istanbul-lib-coverage": "^2.0.1", - "convert-source-map": "^1.6.0" - } - }, - "v8flags": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-4.0.1.tgz", - "integrity": "sha512-fcRLaS4H/hrZk9hYwbdRM35D0U8IYMfEClhXxCivOojl+yTRAZH3Zy2sSy6qVCiGbV9YAtPssP6jaChqC9vPCg==", - "dev": true - }, - "validate-npm-package-license": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", - "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", - "dev": true, - "requires": { - "spdx-correct": "^3.0.0", - "spdx-expression-parse": "^3.0.0" - } - }, - "validate-npm-package-name": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-3.0.0.tgz", - "integrity": "sha1-X6kS2B630MdK/BQN5zF/DKffQ34=", - "dev": true, - "requires": { - "builtins": "^1.0.3" - } - }, - "value-or-function": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/value-or-function/-/value-or-function-4.0.0.tgz", - "integrity": "sha512-aeVK81SIuT6aMJfNo9Vte8Dw0/FZINGBV8BfCraGtqVxIeLAEhJyoWs8SmvRVmXfGss2PmmOwZCuBPbZR+IYWg==", - "dev": true - }, - "vary": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", - "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", - "dev": true - }, - "verror": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", - "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", - "dev": true, - "requires": { - "assert-plus": "^1.0.0", - "core-util-is": "1.0.2", - "extsprintf": "^1.2.0" - } - }, - "vinyl": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-3.0.0.tgz", - "integrity": "sha512-rC2VRfAVVCGEgjnxHUnpIVh3AGuk62rP3tqVrn+yab0YH7UULisC085+NYH+mnqf3Wx4SpSi1RQMwudL89N03g==", - "dev": true, - "requires": { - "clone": "^2.1.2", - "clone-stats": "^1.0.0", - "remove-trailing-separator": "^1.1.0", - "replace-ext": "^2.0.0", - "teex": "^1.0.1" - }, - "dependencies": { - "replace-ext": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-2.0.0.tgz", - "integrity": "sha512-UszKE5KVK6JvyD92nzMn9cDapSk6w/CaFZ96CnmDMUqH9oowfxF/ZjRITD25H4DnOQClLA4/j7jLGXXLVKxAug==", - "dev": true - } - } - }, - "vinyl-contents": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/vinyl-contents/-/vinyl-contents-2.0.0.tgz", - "integrity": "sha512-cHq6NnGyi2pZ7xwdHSW1v4Jfnho4TEGtxZHw01cmnc8+i7jgR6bRnED/LbrKan/Q7CvVLbnvA5OepnhbpjBZ5Q==", - "dev": true, - "requires": { - "bl": "^5.0.0", - "vinyl": "^3.0.0" - } - }, - "vinyl-fs": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/vinyl-fs/-/vinyl-fs-4.0.0.tgz", - "integrity": "sha512-7GbgBnYfaquMk3Qu9g22x000vbYkOex32930rBnc3qByw6HfMEAoELjCjoJv4HuEQxHAurT+nvMHm6MnJllFLw==", - "dev": true, - "requires": { - "fs-mkdirp-stream": "^2.0.1", - "glob-stream": "^8.0.0", - "graceful-fs": "^4.2.11", - "iconv-lite": "^0.6.3", - "is-valid-glob": "^1.0.0", - "lead": "^4.0.0", - "normalize-path": "3.0.0", - "resolve-options": "^2.0.0", - "stream-composer": "^1.0.2", - "streamx": "^2.14.0", - "to-through": "^3.0.0", - "value-or-function": "^4.0.0", - "vinyl": "^3.0.0", - "vinyl-sourcemap": "^2.0.0" - }, - "dependencies": { - "iconv-lite": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", - "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", - "dev": true, - "requires": { - "safer-buffer": ">= 2.1.2 < 3.0.0" - } - } - } - }, - "vinyl-sourcemap": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/vinyl-sourcemap/-/vinyl-sourcemap-2.0.0.tgz", - "integrity": "sha512-BAEvWxbBUXvlNoFQVFVHpybBbjW1r03WhohJzJDSfgrrK5xVYIDTan6xN14DlyImShgDRv2gl9qhM6irVMsV0Q==", - "dev": true, - "requires": { - "convert-source-map": "^2.0.0", - "graceful-fs": "^4.2.10", - "now-and-later": "^3.0.0", - "streamx": "^2.12.5", - "vinyl": "^3.0.0", - "vinyl-contents": "^2.0.0" - }, - "dependencies": { - "convert-source-map": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", - "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", - "dev": true - } - } - }, - "vinyl-sourcemaps-apply": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/vinyl-sourcemaps-apply/-/vinyl-sourcemaps-apply-0.2.1.tgz", - "integrity": "sha1-q2VJ1h0XLCsbh75cUI0jnI74dwU=", - "dev": true, - "requires": { - "source-map": "^0.5.1" - } - }, - "void-elements": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/void-elements/-/void-elements-2.0.1.tgz", - "integrity": "sha1-wGavtYK7HLQSjWDqkjkulNXp2+w=", - "dev": true - }, - "watchpack": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.1.tgz", - "integrity": "sha512-8wrBCMtVhqcXP2Sup1ctSkga6uc2Bx0IIvKyT7yTFier5AXHooSI+QyQQAtTb7+E0IUCCKyTFmXqdqgum2XWGg==", - "dev": true, - "requires": { - "glob-to-regexp": "^0.4.1", - "graceful-fs": "^4.1.2" - } - }, - "webidl-conversions": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE=", - "dev": true - }, - "webpack": { - "version": "5.91.0", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.91.0.tgz", - "integrity": "sha512-rzVwlLeBWHJbmgTC/8TvAcu5vpJNII+MelQpylD4jNERPwpBJOE2lEcko1zJX3QJeLjTTAnQxn/OJ8bjDzVQaw==", - "dev": true, - "requires": { - "@types/eslint-scope": "^3.7.3", - "@types/estree": "^1.0.5", - "@webassemblyjs/ast": "^1.12.1", - "@webassemblyjs/wasm-edit": "^1.12.1", - "@webassemblyjs/wasm-parser": "^1.12.1", - "acorn": "^8.7.1", - "acorn-import-assertions": "^1.9.0", - "browserslist": "^4.21.10", - "chrome-trace-event": "^1.0.2", - "enhanced-resolve": "^5.16.0", - "es-module-lexer": "^1.2.1", - "eslint-scope": "5.1.1", - "events": "^3.2.0", - "glob-to-regexp": "^0.4.1", - "graceful-fs": "^4.2.11", - "json-parse-even-better-errors": "^2.3.1", - "loader-runner": "^4.2.0", - "mime-types": "^2.1.27", - "neo-async": "^2.6.2", - "schema-utils": "^3.2.0", - "tapable": "^2.1.1", - "terser-webpack-plugin": "^5.3.10", - "watchpack": "^2.4.1", - "webpack-sources": "^3.2.3" - }, - "dependencies": { - "schema-utils": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.2.0.tgz", - "integrity": "sha512-0zTyLGyDJYd/MBxG1AhJkKa6fpEBds4OQO2ut0w7OYG+ZGhGea09lijvzsqegYSik88zc7cUtIlnnO+/BvD6gQ==", - "dev": true, - "requires": { - "@types/json-schema": "^7.0.8", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" - } - } - } - }, - "webpack-merge": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-4.2.2.tgz", - "integrity": "sha512-TUE1UGoTX2Cd42j3krGYqObZbOD+xF7u28WB7tfUordytSjbWTIjK/8V0amkBfTYN4/pB/GIDlJZZ657BGG19g==", - "dev": true, - "requires": { - "lodash": "^4.17.15" - } - }, - "webpack-sources": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz", - "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==", - "dev": true - }, - "whatwg-url": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha1-lmRU6HZUYuN2RNNib2dCzotwll0=", - "dev": true, - "requires": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" - } - }, - "which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "dev": true, - "requires": { - "isexe": "^2.0.0" - } - }, - "which-boxed-primitive": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", - "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", - "dev": true, - "requires": { - "is-bigint": "^1.0.1", - "is-boolean-object": "^1.1.0", - "is-number-object": "^1.0.4", - "is-string": "^1.0.5", - "is-symbol": "^1.0.3" - } - }, - "which-typed-array": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.11.tgz", - "integrity": "sha512-qe9UWWpkeG5yzZ0tNYxDmd7vo58HDBc39mZ0xWWpolAGADdFOzkfamWLDxkOWcvHQKVmdTyQdLD4NOfjLWTKew==", - "dev": true, - "requires": { - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.2", - "for-each": "^0.3.3", - "gopd": "^1.0.1", - "has-tostringtag": "^1.0.0" - } - }, - "wide-align": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz", - "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==", - "dev": true, - "optional": true, - "requires": { - "string-width": "^1.0.2 || 2" - } - }, - "wordwrap": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", - "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=", - "dev": true - }, - "workerpool": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.2.1.tgz", - "integrity": "sha512-ILEIE97kDZvF9Wb9f6h5aXK4swSlKGUcOEGiIYb2OOu/IrDU9iwj0fD//SsA6E5ibwJxpEvhullJY4Sl4GcpAw==", - "dev": true - }, - "wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dev": true, - "requires": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true - }, - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true - }, - "string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - } - }, - "strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "requires": { - "ansi-regex": "^5.0.1" - } - } - } - }, - "wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", - "dev": true - }, - "ws": { - "version": "8.11.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.11.0.tgz", - "integrity": "sha512-HPG3wQd9sNQoT9xHyNCXoDUa+Xw/VevmY9FoHyQ+g+rrMn4j6FB4np7Z0OhdTgjx6MgQLK7jwSy1YecU1+4Asg==", - "dev": true, - "requires": {} - }, - "xml": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/xml/-/xml-1.0.1.tgz", - "integrity": "sha512-huCv9IH9Tcf95zuYCsQraZtWnJvBtLVE0QHMOs8bWyZAFZNDcYjsPq1nEx8jKA9y+Beo9v+7OBPRisQTjinQMw==", - "dev": true - }, - "xtend": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", - "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", - "dev": true - }, - "y18n": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", - "dev": true - }, - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, - "yargs": { - "version": "16.2.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", - "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", - "dev": true, - "requires": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.0", - "y18n": "^5.0.5", - "yargs-parser": "^20.2.2" - }, - "dependencies": { - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true - }, - "string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - } - }, - "strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "requires": { - "ansi-regex": "^5.0.1" - } - } - } - }, - "yargs-parser": { - "version": "20.2.9", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", - "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", - "dev": true - }, - "yargs-unparser": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-2.0.0.tgz", - "integrity": "sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==", - "dev": true, - "requires": { - "camelcase": "^6.0.0", - "decamelize": "^4.0.0", - "flat": "^5.0.2", - "is-plain-obj": "^2.1.0" - }, - "dependencies": { - "camelcase": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.2.0.tgz", - "integrity": "sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg==", - "dev": true - }, - "decamelize": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-4.0.0.tgz", - "integrity": "sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==", - "dev": true - } - } - }, - "yn": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", - "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", - "dev": true - }, - "yocto-queue": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", - "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", - "dev": true - }, - "zeros": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/zeros/-/zeros-1.0.0.tgz", - "integrity": "sha1-ZOLYPA2o0yKqTLiCSXsxt9wzpUA=", - "dev": true, - "requires": { "ndarray": "^1.0.16" } } diff --git a/package.json b/package.json index 76ebcdee82..3cf884b7a1 100644 --- a/package.json +++ b/package.json @@ -25,7 +25,7 @@ "unit" ], "dependencies": { - "@babel/runtime": "^7.24.4", + "@babel/runtime": "^7.24.5", "complex.js": "^2.1.1", "decimal.js": "^10.4.3", "escape-latex": "^1.2.0", @@ -36,10 +36,10 @@ "typed-function": "^4.1.1" }, "devDependencies": { - "@babel/core": "7.24.4", + "@babel/core": "7.24.5", "@babel/plugin-transform-object-assign": "7.24.1", "@babel/plugin-transform-runtime": "7.24.3", - "@babel/preset-env": "7.24.4", + "@babel/preset-env": "7.24.5", "@babel/register": "7.23.7", "@types/assert": "1.5.10", "@types/mocha": "10.0.6", @@ -50,8 +50,8 @@ "benchmark": "2.1.4", "c8": "9.1.0", "codecov": "3.8.3", - "core-js": "3.37.0", - "del": "6.1.1", + "core-js": "3.37.1", + "del": "7.1.0", "dtslint": "4.2.1", "eslint": "8.57.0", "eslint-config-prettier": "9.1.0", @@ -64,7 +64,7 @@ "expect-type": "0.19.0", "expr-eval": "2.0.2", "fancy-log": "2.0.0", - "glob": "8.1.0", + "glob": "10.3.15", "gulp": "5.0.0", "gulp-babel": "8.0.0", "handlebars": "4.7.8", @@ -135,15 +135,15 @@ "lib": "./lib" }, "scripts": { - "build": "gulp --gulpfile gulpfile.cjs && npm run update-authors", + "build": "gulp && npm run update-authors", "build-and-test": "npm run build && npm run test:all && npm run lint", - "build:clean": "gulp --gulpfile gulpfile.cjs clean", - "build:docs": "gulp --gulpfile gulpfile.cjs docs", - "compile": "gulp --gulpfile gulpfile.cjs compile", - "watch": "gulp --gulpfile gulpfile.cjs watch", + "build:clean": "gulp clean", + "build:docs": "gulp docs", + "compile": "gulp compile", + "watch": "gulp watch", "lint": "eslint --cache --max-warnings 0 src/ test/ types/", "format": "npm run lint -- --fix", - "validate:ascii": "gulp --gulpfile gulpfile.cjs validate:ascii", + "validate:ascii": "gulp validate:ascii", "test": "npm run test:src && npm run lint", "test:src": "mocha test/unit-tests", "test:generated": "mocha test/generated-code-tests", diff --git a/src/core/function/import.js b/src/core/function/import.js index 0b7d890a29..d3c9a131fe 100644 --- a/src/core/function/import.js +++ b/src/core/function/import.js @@ -272,7 +272,7 @@ export function importFactory (typed, load, math, importedFactories) { if (instance && typeof instance.transform === 'function') { throw new Error('Transforms cannot be attached to factory functions. ' + - 'Please create a separate function for it with exports.path="expression.transform"') + 'Please create a separate function for it with export const path = "expression.transform"') } if (existing === undefined || options.override) { diff --git a/test/benchmark/algebra.js b/test/benchmark/algebra.js index 7fd3bc243d..660cd03101 100644 --- a/test/benchmark/algebra.js +++ b/test/benchmark/algebra.js @@ -1,8 +1,8 @@ // test performance of the expression parser in node.js -const Benchmark = require('benchmark') -const padRight = require('pad-right') -const math = require('../..') +import Benchmark from 'benchmark' +import padRight from 'pad-right' +import { simplify, derivative } from '../../lib/esm/index.js' function pad (text) { return padRight(text, 40, ' ') @@ -12,20 +12,20 @@ const simplifyExpr = '2 * 1 * x ^ (2 - 1)' const derivativeExpr = '2x^2 + log(3x) + 2x + 3' console.log('simplify ' + simplifyExpr) -console.log(' ' + math.simplify(simplifyExpr)) +console.log(' ' + simplify(simplifyExpr)) console.log('derivative ' + derivativeExpr) -console.log(' ' + math.derivative(derivativeExpr, 'x')) +console.log(' ' + derivative(derivativeExpr, 'x')) const results = [] const suite = new Benchmark.Suite() suite .add(pad('algebra simplify '), function () { - const res = math.simplify(simplifyExpr) + const res = simplify(simplifyExpr) results.push(res) }) .add(pad('algebra derivative'), function () { - const res = math.derivative(derivativeExpr, 'x') + const res = derivative(derivativeExpr, 'x') results.push(res) }) .on('cycle', function (event) { diff --git a/test/benchmark/expression_parser.js b/test/benchmark/expression_parser.js index 89c4370b46..bc56930db1 100644 --- a/test/benchmark/expression_parser.js +++ b/test/benchmark/expression_parser.js @@ -2,11 +2,13 @@ // browserify benchmark/expression_parser.js -o ./benchmark_expression_parser.js -const assert = require('assert') -const Benchmark = require('benchmark') -const padRight = require('pad-right') -const math = require('../..') -const { getSafeProperty } = require('../../lib/cjs/utils/customs') +import assert from 'node:assert' +import Benchmark from 'benchmark' +import padRight from 'pad-right' +import { create, all } from '../../lib/esm/index.js' +import { getSafeProperty } from '../../lib/esm/utils/customs.js' + +const math = create(all) // expose on window when using bundled in a browser if (typeof window !== 'undefined') { diff --git a/test/benchmark/factorial.js b/test/benchmark/factorial.js index 370104445b..e5ee411189 100644 --- a/test/benchmark/factorial.js +++ b/test/benchmark/factorial.js @@ -1,6 +1,6 @@ -const Benchmark = require('benchmark') -const BigNumber = require('decimal.js') -const padRight = require('pad-right') +import Benchmark from 'benchmark' +import padRight from 'pad-right' +import BigNumber from 'decimal.js' function pad (text) { return padRight(text, 40, ' ') diff --git a/test/benchmark/index.js b/test/benchmark/index.js index a0ef8821fe..bc1697cc33 100644 --- a/test/benchmark/index.js +++ b/test/benchmark/index.js @@ -1,8 +1,8 @@ // run all benchmarks -require('./expression_parser') -require('./algebra') -require('./roots') -require('./matrix_operations') -require('./prime') -require('./load') -require('./scope_variables.js') +import './expression_parser.js' +import './algebra.js' +import './roots.js' +import './matrix_operations.js' +import './prime.js' +import './load.js' +import './scope_variables.js' diff --git a/test/benchmark/load.js b/test/benchmark/load.js index 97bddf4f67..5ccb12909c 100644 --- a/test/benchmark/load.js +++ b/test/benchmark/load.js @@ -1,12 +1,11 @@ // test performance of loading a new mathjs instance - -const Benchmark = require('benchmark') -const padRight = require('pad-right') +import assert from 'node:assert' +import Benchmark from 'benchmark' +import padRight from 'pad-right' +import { create, all } from '../../lib/esm/index.js' const timeLabel = 'import, parse, and load time' console.time(timeLabel) -const { create, all } = require('../..') -const assert = require('assert') const math = create(all) console.timeEnd(timeLabel) diff --git a/test/benchmark/matrix_operations.js b/test/benchmark/matrix_operations.js index f4e448d669..d415ff2cef 100644 --- a/test/benchmark/matrix_operations.js +++ b/test/benchmark/matrix_operations.js @@ -9,9 +9,19 @@ * has room for improvements, it's not a fully fletched benchmark suite. */ -const Benchmark = require('benchmark') -const padRight = require('pad-right') +import Benchmark from 'benchmark' +import det from 'ndarray-determinant' +import gemm from 'ndarray-gemm' +import ops from 'ndarray-ops' +import pack from 'ndarray-pack' +import numeric from 'numericjs' +import padRight from 'pad-right' +import sylvester from 'sylvester' +import zeros from 'zeros' +import { all, create } from '../../lib/esm/index.js' + const suite = new Benchmark.Suite() +const math = create(all) function pad (text) { return padRight(text, 40, ' ') @@ -48,7 +58,6 @@ const fiedler = [ // mathjs (function () { - const math = require('../..') const A = math.matrix(fiedler, 'dense', 'number') suite.add(pad('matrix operations mathjs (number) A+A'), function () { return math.add(A, A) }) @@ -59,7 +68,6 @@ const fiedler = [ // mathjs (function () { - const math = require('../..') const A = math.matrix(fiedler) suite.add(pad('matrix operations mathjs (generic) A+A'), function () { return math.add(A, A) }) @@ -70,7 +78,6 @@ const fiedler = [ // sylvester (function () { - const sylvester = require('sylvester') const A = sylvester.Matrix.create(fiedler) suite.add(pad('matrix operations sylvester A+A'), function () { return A.add(A) }) @@ -81,7 +88,6 @@ const fiedler = [ // numericjs (function () { - const numeric = require('numericjs') const A = fiedler suite.add(pad('matrix operations numericjs A+A'), function () { return numeric.add(A, A) }) @@ -92,12 +98,6 @@ const fiedler = [ // ndarray (function () { - const gemm = require('ndarray-gemm') - const zeros = require('zeros') - const ops = require('ndarray-ops') - const pack = require('ndarray-pack') - const det = require('ndarray-determinant') - const A = pack(fiedler) const B = zeros([25, 25]) diff --git a/test/benchmark/package.json b/test/benchmark/package.json deleted file mode 100644 index 5bbefffbab..0000000000 --- a/test/benchmark/package.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "type": "commonjs" -} diff --git a/test/benchmark/prime.js b/test/benchmark/prime.js index 5d14820ead..786f6faf0a 100644 --- a/test/benchmark/prime.js +++ b/test/benchmark/prime.js @@ -1,6 +1,6 @@ -const assert = require('assert') -const { isPrime } = require('../../') -const { Suite } = require('benchmark') +import assert from 'node:assert' +import Benchmark from 'benchmark' +import { isPrime } from '../../lib/esm/index.js' const primes = [2147483647, 87178291199, 4398042316799] const notPrimes = [2199023255551, 8796093022207, 140737488355327] @@ -14,7 +14,7 @@ assert(primesResults.every(result => result === true)) assert(notPrimesResults.every(result => result === false)) assert(carmichaelsResults.every(result => result === false)) -new Suite() +new Benchmark.Suite() .add('primes', () => { primes.forEach(num => isPrime(num)) }) diff --git a/test/benchmark/roots.js b/test/benchmark/roots.js index ed192bad56..002c3d71b7 100644 --- a/test/benchmark/roots.js +++ b/test/benchmark/roots.js @@ -1,8 +1,8 @@ // test performance of the expression parser in node.js -const Benchmark = require('benchmark') -const padRight = require('pad-right') -const math = require('../..') +import Benchmark from 'benchmark' +import padRight from 'pad-right' +import { polynomialRoot } from '../../lib/esm/index.js' function pad (text) { return padRight(text, 40, ' ') @@ -17,7 +17,7 @@ function countRoots () { for (let b = 0; b <= maxCoeff; ++b) { for (let a = 1; a <= maxCoeff; ++a) { polys += 1 - roots += math.polynomialRoot(d, c, b, a).length + roots += polynomialRoot(d, c, b, a).length } } } diff --git a/test/benchmark/scope_variables.js b/test/benchmark/scope_variables.js index a1907b9efc..f4e73811f5 100644 --- a/test/benchmark/scope_variables.js +++ b/test/benchmark/scope_variables.js @@ -1,10 +1,10 @@ // test performance of resolving scope variables in the expression parser -const Benchmark = require('benchmark') -const math = require('../..') +import Benchmark from 'benchmark' +import { evaluate } from '../../lib/esm/index.js' const scope = { a: 2, b: 3, c: 4 } -const f = math.evaluate('f(x, y) = a + b + c + x + y', scope) +const f = evaluate('f(x, y) = a + b + c + x + y', scope) console.log('f(5, 6) = ' + f(5, 6)) diff --git a/test/benchmark/unit_parser.js b/test/benchmark/unit_parser.js index b847dccf6c..92d8b77970 100644 --- a/test/benchmark/unit_parser.js +++ b/test/benchmark/unit_parser.js @@ -2,8 +2,8 @@ // browserify benchmark/unit_parser.js -o ./benchmark_unit_parser.js -const Benchmark = require('benchmark') -const math = require('../..') +import Benchmark from 'benchmark' +import { Unit, evaluate } from '../../lib/esm/index.js' // expose on window when using bundled in a browser if (typeof window !== 'undefined') { @@ -20,10 +20,10 @@ let total = 0 const suite = new Benchmark.Suite() suite .add('Unit.parse', function () { - total += math.Unit.parse('mm').dimensions[0] + total += Unit.parse('mm').dimensions[0] }) .add('evaluate', function () { - total += math.evaluate(expr).size()[0] + total += evaluate(expr).size()[0] }) .on('cycle', function (event) { console.log(String(event.target)) diff --git a/test/node-tests/browser.test.js b/test/node-tests/browser.test.cjs similarity index 100% rename from test/node-tests/browser.test.js rename to test/node-tests/browser.test.cjs diff --git a/test/node-tests/cli/cli.test.js b/test/node-tests/cli/cli.test.cjs similarity index 100% rename from test/node-tests/cli/cli.test.js rename to test/node-tests/cli/cli.test.cjs diff --git a/test/node-tests/commonjs.test.js b/test/node-tests/commonjs.test.cjs similarity index 100% rename from test/node-tests/commonjs.test.js rename to test/node-tests/commonjs.test.cjs diff --git a/test/node-tests/defaultInstance.test.js b/test/node-tests/defaultInstance.test.cjs similarity index 100% rename from test/node-tests/defaultInstance.test.js rename to test/node-tests/defaultInstance.test.cjs diff --git a/test/node-tests/doc.test.js b/test/node-tests/doc.test.js index f640732916..f6324cec2b 100644 --- a/test/node-tests/doc.test.js +++ b/test/node-tests/doc.test.js @@ -1,10 +1,12 @@ -const assert = require('assert') -const path = require('path') - -const approx = require('../../tools/approx.js') -const docgenerator = require('../../tools/docgenerator.js') -const math = require('../..') +import assert from 'node:assert' +import path from 'node:path' +import { fileURLToPath } from 'node:url' +import { approxEqual, approxDeepEqual } from '../../tools/approx.js' +import { collectDocs } from '../../tools/docgenerator.js' +import { create, all } from '../../lib/esm/index.js' +const __dirname = path.dirname(fileURLToPath(import.meta.url)) +const math = create(all) const debug = process.argv.includes('--debug-docs') function extractExpectation (comment, optional = false) { @@ -128,23 +130,23 @@ function checkExpectation (want, got) { if (!Array.isArray(got)) { want = math.matrix(want) } - return approx.deepEqual(got, want, 1e-9) + return approxDeepEqual(got, want, 1e-9) } if (want instanceof math.Unit && got instanceof math.Unit) { - return approx.deepEqual(got, want, 1e-9) + return approxDeepEqual(got, want, 1e-9) } if (want instanceof math.Complex && got instanceof math.Complex) { - return approx.deepEqual(got, want, 1e-9) + return approxDeepEqual(got, want, 1e-9) } if (typeof want === 'number' && typeof got === 'number' && want !== got) { issueCount++ if (debug) { console.log(` Note: return value ${got} not exactly as expected: ${want}`) } - return approx.equal(got, want, 1e-9) + return approxEqual(got, want, 1e-9) } if (typeof want !== 'undefined') { - return approx.deepEqual(got, want) + return approxDeepEqual(got, want) } else { // don't check if we don't know what the result is supposed to be } @@ -328,7 +330,7 @@ const knownUndocumented = new Set([ describe('Testing examples from (jsdoc) comments', function () { const allNames = Object.keys(math) const srcPath = path.resolve(__dirname, '../../src') + '/' - const allDocs = docgenerator.collectDocs(allNames, srcPath) + const allDocs = collectDocs(allNames, srcPath) it("should cover all names (but doesn't yet)", function () { const documented = new Set(Object.keys(allDocs)) diff --git a/test/node-tests/esm.test.js b/test/node-tests/esm.test.js index e854271ba1..4c7e09c45d 100644 --- a/test/node-tests/esm.test.js +++ b/test/node-tests/esm.test.js @@ -1,11 +1,14 @@ // Only use native node.js API's and references to ./lib here, this file is not transpiled! -const assert = require('assert') -const cp = require('child_process') -const path = require('path') +import assert from 'node:assert' +import cp from 'node:child_process' +import path from 'node:path' +import { fileURLToPath } from 'node:url' + +const __dirname = path.dirname(fileURLToPath(import.meta.url)) describe('lib/esm', function () { it('should load via mjs', function (done) { - const filename = path.join(__dirname, 'esmApp.mjs') + const filename = path.join(__dirname, 'esmApp.js') cp.exec('node ' + filename, function (error, result) { assert.strictEqual(error, null) assert.strictEqual(result, '2\n2i\n') @@ -14,7 +17,7 @@ describe('lib/esm', function () { }) it('should load number only via mjs', function (done) { - const filename = path.join(__dirname, 'esmAppNumberOnly.mjs') + const filename = path.join(__dirname, 'esmAppNumberOnly.js') cp.exec('node ' + filename, function (error, result) { assert.strictEqual(error, null) assert.strictEqual(result, '2\nNaN\n2\n4\n7\n') diff --git a/test/node-tests/esmApp.mjs b/test/node-tests/esmApp.js similarity index 100% rename from test/node-tests/esmApp.mjs rename to test/node-tests/esmApp.js diff --git a/test/node-tests/esmAppNumberOnly.mjs b/test/node-tests/esmAppNumberOnly.js similarity index 100% rename from test/node-tests/esmAppNumberOnly.mjs rename to test/node-tests/esmAppNumberOnly.js diff --git a/test/node-tests/function/alegbra/decomposition/slu.test.js b/test/node-tests/function/alegbra/decomposition/slu.test.js index 4ef13caaea..826294e33b 100644 --- a/test/node-tests/function/alegbra/decomposition/slu.test.js +++ b/test/node-tests/function/alegbra/decomposition/slu.test.js @@ -1,18 +1,20 @@ // Only use native node.js API's and references to ./lib here, this file is not transpiled! -const math = require('../../../../../lib/cjs/defaultInstance').default -const approx = require('../../../../../tools/approx') -const market = require('../../../../../tools/matrixmarket') +import { create, all } from '../../../../../lib/esm/index.js' +import { approxDeepEqual } from '../../../../../tools/approx.js' +import { marketImport } from '../../../../../tools/matrixmarket.js' + +const math = create(all) describe('slu - matrix market', function () { it('should decompose matrix, 48 x 48, natural ordering (order=0), full pivoting, matrix market', function (done) { // import matrix - market.import('tools/matrices/bcsstk01.mtx') + marketImport('tools/matrices/bcsstk01.mtx') .then(function (m) { // full pivoting const r = math.slu(m, 0, 0.001) // verify M[p,q]=L*U - approx.deepEqual(_permute(m, r.p, r.q).valueOf(), math.multiply(r.L, r.U).valueOf()) + approxDeepEqual(_permute(m, r.p, r.q).valueOf(), math.multiply(r.L, r.U).valueOf()) // indicate test has completed done() @@ -25,13 +27,13 @@ describe('slu - matrix market', function () { it('should decompose matrix, 48 x 48, amd(A+A\') (order=1), full pivoting, matrix market', function (done) { // import matrix - market.import('tools/matrices/bcsstk01.mtx') + marketImport('tools/matrices/bcsstk01.mtx') .then(function (m) { // full pivoting const r = math.slu(m, 1, 0.001) // verify M[p,q]=L*U - approx.deepEqual(_permute(m, r.p, r.q).valueOf(), math.multiply(r.L, r.U).valueOf()) + approxDeepEqual(_permute(m, r.p, r.q).valueOf(), math.multiply(r.L, r.U).valueOf()) // indicate test has completed done() @@ -44,13 +46,13 @@ describe('slu - matrix market', function () { it('should decompose matrix, 48 x 48, amd(A\'*A) (order=2), full pivoting, matrix market', function (done) { // import matrix - market.import('tools/matrices/bcsstk01.mtx') + marketImport('tools/matrices/bcsstk01.mtx') .then(function (m) { // full pivoting const r = math.slu(m, 2, 0.001) // verify M[p,q]=L*U - approx.deepEqual(_permute(m, r.p, r.q).valueOf(), math.multiply(r.L, r.U).valueOf()) + approxDeepEqual(_permute(m, r.p, r.q).valueOf(), math.multiply(r.L, r.U).valueOf()) // indicate test has completed done() @@ -63,13 +65,13 @@ describe('slu - matrix market', function () { it('should decompose matrix, 48 x 48, amd(A\'*A) (order=3), full pivoting, matrix market', function (done) { // import matrix - market.import('tools/matrices/bcsstk01.mtx') + marketImport('tools/matrices/bcsstk01.mtx') .then(function (m) { // full pivoting const r = math.slu(m, 3, 0.001) // verify M[p,q]=L*U - approx.deepEqual(_permute(m, r.p, r.q).valueOf(), math.multiply(r.L, r.U).valueOf()) + approxDeepEqual(_permute(m, r.p, r.q).valueOf(), math.multiply(r.L, r.U).valueOf()) // indicate test has completed done() diff --git a/test/node-tests/function/alegbra/sparse/csAmd.test.js b/test/node-tests/function/alegbra/sparse/csAmd.test.js index a956d81cec..3d8fbd9506 100644 --- a/test/node-tests/function/alegbra/sparse/csAmd.test.js +++ b/test/node-tests/function/alegbra/sparse/csAmd.test.js @@ -1,18 +1,17 @@ // Only use native node.js API's and references to ./lib here, this file is not transpiled! -const math = require('../../../../../lib/cjs/defaultInstance').default -const { createCsAmd } = require('../../../../../lib/cjs/function/algebra/sparse/csAmd') +import assert from 'node:assert' +import { create, all } from '../../../../../lib/esm/index.js' +import { approxDeepEqual } from '../../../../../tools/approx.js' +import { marketImport } from '../../../../../tools/matrixmarket.js' +import { createCsAmd } from '../../../../../lib/esm/function/algebra/sparse/csAmd.js' -const assert = require('assert') -const approx = require('../../../../../tools/approx') -const market = require('../../../../../tools/matrixmarket') - -const { add, multiply, transpose } = math +const { add, multiply, transpose } = create(all) const csAmd = createCsAmd({ add, multiply, transpose }) describe('csAmd', function () { it('should approximate minimum degree ordering, 48 x 48, natural ordering (order=0), matrix market', function (done) { // import matrix - market.import('tools/matrices/bcsstk01.mtx') + marketImport('tools/matrices/bcsstk01.mtx') .then(function (m) { // symbolic ordering and analysis, order = 0 const q = csAmd(0, m) @@ -31,13 +30,13 @@ describe('csAmd', function () { it('should approximate minimum degree ordering, 48 x 48, amd(A+A\') (order=1), matrix market', function (done) { // import matrix - market.import('tools/matrices/bcsstk01.mtx') + marketImport('tools/matrices/bcsstk01.mtx') .then(function (m) { // symbolic ordering and analysis, order = 1 const q = csAmd(1, m) // verify - approx.deepEqual(q, [10, 28, 29, 24, 0, 11, 30, 6, 23, 22, 40, 46, 42, 18, 4, 16, 34, 5, 9, 39, 21, 44, 45, 43, 15, 25, 26, 27, 3, 33, 41, 19, 20, 2, 38, 32, 1, 14, 8, 13, 37, 31, 12, 36, 17, 47, 35, 7]) + approxDeepEqual(q, [10, 28, 29, 24, 0, 11, 30, 6, 23, 22, 40, 46, 42, 18, 4, 16, 34, 5, 9, 39, 21, 44, 45, 43, 15, 25, 26, 27, 3, 33, 41, 19, 20, 2, 38, 32, 1, 14, 8, 13, 37, 31, 12, 36, 17, 47, 35, 7]) // indicate test has completed done() @@ -50,13 +49,13 @@ describe('csAmd', function () { it('should approximate minimum degree ordering, 48 x 48, amd(A\'*A) (order=2), matrix market', function (done) { // import matrix - market.import('tools/matrices/bcsstk01.mtx') + marketImport('tools/matrices/bcsstk01.mtx') .then(function (m) { // symbolic ordering and analysis, order = 2 const q = csAmd(2, m, false) // verify - approx.deepEqual(q, [26, 27, 25, 44, 9, 15, 21, 33, 39, 43, 45, 3, 29, 24, 28, 47, 6, 18, 36, 0, 1, 4, 20, 2, 10, 11, 12, 8, 14, 16, 7, 13, 17, 23, 30, 34, 38, 32, 31, 41, 35, 22, 19, 37, 40, 42, 46, 5]) + approxDeepEqual(q, [26, 27, 25, 44, 9, 15, 21, 33, 39, 43, 45, 3, 29, 24, 28, 47, 6, 18, 36, 0, 1, 4, 20, 2, 10, 11, 12, 8, 14, 16, 7, 13, 17, 23, 30, 34, 38, 32, 31, 41, 35, 22, 19, 37, 40, 42, 46, 5]) // indicate test has completed done() @@ -69,13 +68,13 @@ describe('csAmd', function () { it('should approximate minimum degree ordering, 48 x 48, amd(A\'*A) (order=3), matrix market', function (done) { // import matrix - market.import('tools/matrices/bcsstk01.mtx') + marketImport('tools/matrices/bcsstk01.mtx') .then(function (m) { // symbolic ordering and analysis, order = 3 const q = csAmd(3, m, false) // verify - approx.deepEqual(q, [26, 27, 25, 44, 9, 15, 21, 33, 39, 43, 45, 3, 29, 24, 28, 47, 6, 18, 36, 0, 1, 4, 20, 2, 10, 11, 12, 8, 14, 16, 7, 13, 17, 23, 30, 34, 38, 32, 31, 41, 35, 22, 19, 37, 40, 42, 46, 5]) + approxDeepEqual(q, [26, 27, 25, 44, 9, 15, 21, 33, 39, 43, 45, 3, 29, 24, 28, 47, 6, 18, 36, 0, 1, 4, 20, 2, 10, 11, 12, 8, 14, 16, 7, 13, 17, 23, 30, 34, 38, 32, 31, 41, 35, 22, 19, 37, 40, 42, 46, 5]) // indicate test has completed done() diff --git a/test/node-tests/function/alegbra/sparse/csLu.test.js b/test/node-tests/function/alegbra/sparse/csLu.test.js index cd7fce4410..50dfc5330d 100644 --- a/test/node-tests/function/alegbra/sparse/csLu.test.js +++ b/test/node-tests/function/alegbra/sparse/csLu.test.js @@ -1,11 +1,12 @@ // Only use native node.js API's and references to ./lib here, this file is not transpiled! -const approx = require('../../../../../tools/approx') -const math = require('../../../../../lib/cjs/defaultInstance').default -const { csPermute } = require('../../../../../lib/cjs/function/algebra/sparse/csPermute') -const { createCsLu } = require('../../../../../lib/cjs/function/algebra/sparse/csLu') -const { createCsSqr } = require('../../../../../lib/cjs/function/algebra/sparse/csSqr') -const market = require('../../../../../tools/matrixmarket') - +import { create, all } from '../../../../../lib/esm/index.js' +import { approxDeepEqual } from '../../../../../tools/approx.js' +import { marketImport } from '../../../../../tools/matrixmarket.js' +import { csPermute } from '../../../../../lib/esm/function/algebra/sparse/csPermute.js' +import { createCsLu } from '../../../../../lib/esm/function/algebra/sparse/csLu.js' +import { createCsSqr } from '../../../../../lib/esm/function/algebra/sparse/csSqr.js' + +const math = create(all) const { abs, add, divideScalar, multiply, subtract, larger, largerEq, transpose, SparseMatrix } = math const csLu = createCsLu({ abs, divideScalar, multiply, subtract, larger, largerEq, SparseMatrix }) @@ -14,7 +15,7 @@ const csSqr = createCsSqr({ add, multiply, transpose }) describe('csLu', function () { it('should decompose matrix, 48 x 48, natural ordering (order=0), full pivoting, matrix market', function (done) { // import matrix - market.import('tools/matrices/bcsstk01.mtx') + marketImport('tools/matrices/bcsstk01.mtx') .then(function (m) { // symbolic ordering and analysis, order = 0 const s = csSqr(0, m, false) @@ -23,7 +24,7 @@ describe('csLu', function () { const r = csLu(m, s, 0.001) // verify - approx.deepEqual(csPermute(m, r.pinv, s.q, true).valueOf(), math.multiply(r.L, r.U).valueOf()) + approxDeepEqual(csPermute(m, r.pinv, s.q, true).valueOf(), math.multiply(r.L, r.U).valueOf()) // indicate test has completed done() @@ -36,7 +37,7 @@ describe('csLu', function () { it('should decompose matrix, 48 x 48, amd(A+A\') (order=1), full pivoting, matrix market', function (done) { // import matrix - market.import('tools/matrices/bcsstk01.mtx') + marketImport('tools/matrices/bcsstk01.mtx') .then(function (m) { // symbolic ordering and analysis, order = 1 const s = csSqr(1, m, false) @@ -45,7 +46,7 @@ describe('csLu', function () { const r = csLu(m, s, 0.001) // verify - approx.deepEqual(csPermute(m, r.pinv, s.q, true).valueOf(), math.multiply(r.L, r.U).valueOf()) + approxDeepEqual(csPermute(m, r.pinv, s.q, true).valueOf(), math.multiply(r.L, r.U).valueOf()) // indicate test has completed done() @@ -58,7 +59,7 @@ describe('csLu', function () { it('should decompose matrix, 48 x 48, amd(A\'*A) (order=2), full pivoting, matrix market', function (done) { // import matrix - market.import('tools/matrices/bcsstk01.mtx') + marketImport('tools/matrices/bcsstk01.mtx') .then(function (m) { // symbolic ordering and analysis, order = 2 const s = csSqr(2, m, false) @@ -67,7 +68,7 @@ describe('csLu', function () { const r = csLu(m, s, 0.001) // verify - approx.deepEqual(csPermute(m, r.pinv, s.q, true).valueOf(), math.multiply(r.L, r.U).valueOf()) + approxDeepEqual(csPermute(m, r.pinv, s.q, true).valueOf(), math.multiply(r.L, r.U).valueOf()) // indicate test has completed done() @@ -80,7 +81,7 @@ describe('csLu', function () { it('should decompose matrix, 48 x 48, amd(A\'*A) (order=3), full pivoting, matrix market', function (done) { // import matrix - market.import('tools/matrices/bcsstk01.mtx') + marketImport('tools/matrices/bcsstk01.mtx') .then(function (m) { // symbolic ordering and analysis, order = 3 const s = csSqr(3, m, false) @@ -89,7 +90,7 @@ describe('csLu', function () { const r = csLu(m, s, 0.001) // verify - approx.deepEqual(csPermute(m, r.pinv, s.q, true).valueOf(), math.multiply(r.L, r.U).valueOf()) + approxDeepEqual(csPermute(m, r.pinv, s.q, true).valueOf(), math.multiply(r.L, r.U).valueOf()) // indicate test has completed done() diff --git a/test/node-tests/function/arithmetic/multiply.test.js b/test/node-tests/function/arithmetic/multiply.test.js index c46a1b58d0..95dcb7c742 100644 --- a/test/node-tests/function/arithmetic/multiply.test.js +++ b/test/node-tests/function/arithmetic/multiply.test.js @@ -1,12 +1,14 @@ // Only use native node.js API's and references to ./lib here, this file is not transpiled! -const math = require('../../../../lib/cjs/defaultInstance').default -const market = require('../../../../tools/matrixmarket') +import { create, all } from '../../../../lib/esm/index.js' +import { marketImport } from '../../../../tools/matrixmarket.js' + +const math = create(all) describe('multiply', function () { describe('Matrix Market', function () { it('should multiply matrix x matrix 1220 x 1220, Matrix Market, sparse x sparse', function (done) { // import matrix - market.import('tools/matrices/fpga_dcop_01.mtx') + marketImport('tools/matrices/fpga_dcop_01.mtx') .then(function (matrices) { // matrix const m = matrices diff --git a/test/node-tests/package.json b/test/node-tests/package.json deleted file mode 100644 index 5bbefffbab..0000000000 --- a/test/node-tests/package.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "type": "commonjs" -} diff --git a/test/node-tests/pollutedObjectPrototype.js b/test/node-tests/pollutedObjectPrototype.js index b21495977d..27041f49d0 100644 --- a/test/node-tests/pollutedObjectPrototype.js +++ b/test/node-tests/pollutedObjectPrototype.js @@ -1,10 +1,11 @@ // let's pollute the Object prototype... /* eslint no-extend-native: ["error", { "exceptions": ["Object"] }] */ -Object.prototype.foo = () => {} - // loading mathjs should not crash -const math = require('../../lib/cjs/entry/mainAny') +import { create, all } from '../../lib/esm/entry/mainAny' + +Object.prototype.foo = () => {} +const math = create(all) // outputs '2i' console.log(math.format(math.sqrt(-4))) diff --git a/test/node-tests/treeShaking/treeShaking.test.js b/test/node-tests/treeShaking/treeShaking.test.js index 3caa884acd..9d2ba40cc8 100644 --- a/test/node-tests/treeShaking/treeShaking.test.js +++ b/test/node-tests/treeShaking/treeShaking.test.js @@ -8,14 +8,17 @@ // - move code into a separate file to isolate it // - add /* #__PURE__ */ when creating a variable -const path = require('path') -const cp = require('child_process') -const assert = require('assert') -const del = require('del') -const webpack = require('webpack') +import path from 'node:path' +import cp from 'node:child_process' +import assert from 'node:assert' +import { fileURLToPath } from 'node:url' +import { deleteSync } from 'del' +import webpack from 'webpack' + +const __dirname = path.dirname(fileURLToPath(import.meta.url)) describe('tree shaking', function () { - const appName = 'treeShakingApp.mjs' + const appName = 'treeShakingApp.js' const bundleName = 'treeShakingApp.bundle.js' const bundleLicenseName = 'treeShakingApp.bundle.js.LICENSE.txt' @@ -28,8 +31,8 @@ describe('tree shaking', function () { }) function cleanup () { - del.sync(path.join(__dirname, bundleName)) - del.sync(path.join(__dirname, bundleLicenseName)) + deleteSync(path.join(__dirname, bundleName)) + deleteSync(path.join(__dirname, bundleLicenseName)) } it('should apply tree-shaking when bundling', function (done) { diff --git a/test/node-tests/treeShaking/treeShakingApp.mjs b/test/node-tests/treeShaking/treeShakingApp.js similarity index 100% rename from test/node-tests/treeShaking/treeShakingApp.mjs rename to test/node-tests/treeShaking/treeShakingApp.js diff --git a/test/unit-tests/approx.test.js b/test/unit-tests/approx.test.js index df4d06350e..8cb74f763e 100644 --- a/test/unit-tests/approx.test.js +++ b/test/unit-tests/approx.test.js @@ -1,81 +1,81 @@ // test approx itself... import assert from 'assert' -import approx from '../../tools/approx.js' +import { approxEqual, approxDeepEqual } from '../../tools/approx.js' describe('approx', function () { it('should test equality of positive values', function () { - approx.equal(1 / 3, 0.33333333) - approx.equal(2, 2.000001) - approx.equal(2, 1.999999) - assert.throws(function () { approx.equal(2, 2.001) }, assert.AssertionError) - assert.throws(function () { approx.equal(2, 1.999) }, assert.AssertionError) - - approx.equal(2, 2.0000000001, 1e-10) - approx.equal(2, 1.9999999999, 1e-10) - assert.throws(() => approx.equal(2, 2.0000000001, 1e-11), assert.AssertionError) - assert.throws(() => approx.equal(2, 1.9999999999, 1e-11), assert.AssertionError) + approxEqual(1 / 3, 0.33333333) + approxEqual(2, 2.000001) + approxEqual(2, 1.999999) + assert.throws(function () { approxEqual(2, 2.001) }, assert.AssertionError) + assert.throws(function () { approxEqual(2, 1.999) }, assert.AssertionError) + + approxEqual(2, 2.0000000001, 1e-10) + approxEqual(2, 1.9999999999, 1e-10) + assert.throws(() => approxEqual(2, 2.0000000001, 1e-11), assert.AssertionError) + assert.throws(() => approxEqual(2, 1.9999999999, 1e-11), assert.AssertionError) }) it('should test equality of negative values', function () { - approx.equal(-2, -2.000001) - approx.equal(-2, -1.999999) - assert.throws(function () { approx.equal(-2, -2.001) }, assert.AssertionError) - assert.throws(function () { approx.equal(-2, -1.999) }, assert.AssertionError) - - approx.equal(-2, -2.0000000001, 1e-10) - approx.equal(-2, -1.9999999999, 1e-10) - assert.throws(() => approx.equal(-2, -2.0000000001, 1e-11), assert.AssertionError) - assert.throws(() => approx.equal(-2, -1.9999999999, 1e-11), assert.AssertionError) + approxEqual(-2, -2.000001) + approxEqual(-2, -1.999999) + assert.throws(function () { approxEqual(-2, -2.001) }, assert.AssertionError) + assert.throws(function () { approxEqual(-2, -1.999) }, assert.AssertionError) + + approxEqual(-2, -2.0000000001, 1e-10) + approxEqual(-2, -1.9999999999, 1e-10) + assert.throws(() => approxEqual(-2, -2.0000000001, 1e-11), assert.AssertionError) + assert.throws(() => approxEqual(-2, -1.9999999999, 1e-11), assert.AssertionError) }) it('should test equality of very large values', function () { - approx.equal(2e100, 2.000001e100) - approx.equal(2e100, 1.999999e100) - assert.throws(function () { approx.equal(2e100, 2.001e100) }, assert.AssertionError) - assert.throws(function () { approx.equal(2e100, 1.999e100) }, assert.AssertionError) - - approx.equal(2e100, 2.0000000001e100, 1e-10) - approx.equal(2e100, 1.9999999999e100, 1e-10) - assert.throws(() => approx.equal(2e100, 2.0000000001e100, 1e-11), assert.AssertionError) - assert.throws(() => approx.equal(2e100, 1.9999999999e100, 1e-11), assert.AssertionError) + approxEqual(2e100, 2.000001e100) + approxEqual(2e100, 1.999999e100) + assert.throws(function () { approxEqual(2e100, 2.001e100) }, assert.AssertionError) + assert.throws(function () { approxEqual(2e100, 1.999e100) }, assert.AssertionError) + + approxEqual(2e100, 2.0000000001e100, 1e-10) + approxEqual(2e100, 1.9999999999e100, 1e-10) + assert.throws(() => approxEqual(2e100, 2.0000000001e100, 1e-11), assert.AssertionError) + assert.throws(() => approxEqual(2e100, 1.9999999999e100, 1e-11), assert.AssertionError) }) it('should test equality of very small values', function () { - approx.equal(2e-100, 2.000001e-100) - approx.equal(2e-100, 1.999999e-100) - assert.throws(function () { approx.equal(2e-100, 2.001e-100) }, assert.AssertionError) - assert.throws(function () { approx.equal(2e-100, 1.999e-100) }, assert.AssertionError) - - approx.equal(2e-100, 2.0000000001e-100, 1e-10) - approx.equal(2e-100, 1.9999999999e-100, 1e-10) - assert.throws(() => approx.equal(2e-100, 2.0000000001e-100, 1e-11), assert.AssertionError) - assert.throws(() => approx.equal(2e-100, 1.9999999999e-100, 1e-11), assert.AssertionError) + approxEqual(2e-100, 2.000001e-100) + approxEqual(2e-100, 1.999999e-100) + assert.throws(function () { approxEqual(2e-100, 2.001e-100) }, assert.AssertionError) + assert.throws(function () { approxEqual(2e-100, 1.999e-100) }, assert.AssertionError) + + approxEqual(2e-100, 2.0000000001e-100, 1e-10) + approxEqual(2e-100, 1.9999999999e-100, 1e-10) + assert.throws(() => approxEqual(2e-100, 2.0000000001e-100, 1e-11), assert.AssertionError) + assert.throws(() => approxEqual(2e-100, 1.9999999999e-100, 1e-11), assert.AssertionError) }) it('should test equality of NaN numbers', function () { // NaN values const a = NaN const b = NaN - approx.equal(a, b) - assert.throws(function () { approx.equal(NaN, 3) }, assert.AssertionError) - assert.throws(function () { approx.equal(NaN, 'nonumber') }, assert.AssertionError) + approxEqual(a, b) + assert.throws(function () { approxEqual(NaN, 3) }, assert.AssertionError) + assert.throws(function () { approxEqual(NaN, 'nonumber') }, assert.AssertionError) }) it('should test equality when one of the values is zero', function () { // zero as one of the two values - approx.equal(0, 1e-15) - approx.equal(1e-15, 0) - assert.throws(function () { approx.equal(0, 0.001) }, assert.AssertionError) + approxEqual(0, 1e-15) + approxEqual(1e-15, 0) + assert.throws(function () { approxEqual(0, 0.001) }, assert.AssertionError) - approx.equal(0, 0.00000000009, 1e-10) - assert.throws(() => approx.equal(0, 0.00000000009, 1e-11), assert.AssertionError) + approxEqual(0, 0.00000000009, 1e-10) + assert.throws(() => approxEqual(0, 0.00000000009, 1e-11), assert.AssertionError) }) // TODO: test approx.equal for (mixed) numbers, BigNumbers, Fractions, Complex numbers it('should test deep equality of arrays and objects', function () { - approx.deepEqual({ + approxDeepEqual({ a: [1, 2, 3], b: [{ c: 4, d: 5 }] }, { @@ -84,7 +84,7 @@ describe('approx', function () { }) assert.throws(function () { - approx.deepEqual({ + approxDeepEqual({ a: [1, 2, 3], b: [{ c: 4, d: 5 }] }, { @@ -94,7 +94,7 @@ describe('approx', function () { }, assert.AssertionError) assert.throws(function () { - approx.deepEqual({ + approxDeepEqual({ a: [1, 2, 3], b: [{ c: 4, d: 5 }] }, { @@ -103,7 +103,7 @@ describe('approx', function () { }) }, assert.AssertionError) - approx.deepEqual( + approxDeepEqual( { a: [1, 2, 3], b: [{ c: 4.123456789123, d: 5.987654321987 }] @@ -115,7 +115,7 @@ describe('approx', function () { 1e-10 ) assert.throws(() => { - approx.deepEqual( + approxDeepEqual( { a: [1, 2, 3], b: [{ c: 4.123456789123, d: 5.987654321987 }] diff --git a/test/unit-tests/constants.test.js b/test/unit-tests/constants.test.js index 265bfc3047..fab6704a95 100644 --- a/test/unit-tests/constants.test.js +++ b/test/unit-tests/constants.test.js @@ -1,5 +1,5 @@ import assert from 'assert' -import approx from '../../tools/approx.js' +import { approxEqual } from '../../tools/approx.js' import { createBigNumberClass } from '../../src/type/bignumber/BigNumber.js' import { createComplexClass } from '../../src/type/complex/Complex.js' import { @@ -33,47 +33,47 @@ describe('constants', function () { } it('should create pi', function () { - approx.equal(createPi(dependencies), 3.14159265358979) + approxEqual(createPi(dependencies), 3.14159265358979) }) it('should create tau', function () { - approx.equal(createTau(dependencies), 6.28318530717959) + approxEqual(createTau(dependencies), 6.28318530717959) }) it('should create phi, golden ratio', function () { - approx.equal(createPhi(dependencies), 1.61803398874989) + approxEqual(createPhi(dependencies), 1.61803398874989) }) it('should create e (euler constant)', function () { - approx.equal(createE(dependencies), 2.71828182845905) + approxEqual(createE(dependencies), 2.71828182845905) }) it('should create LN2', function () { - approx.equal(createLN2(dependencies), 0.69314718055995) + approxEqual(createLN2(dependencies), 0.69314718055995) }) it('should create LN10', function () { - approx.equal(createLN10(dependencies), 2.30258509299405) + approxEqual(createLN10(dependencies), 2.30258509299405) }) it('should create LOG2E', function () { - approx.equal(createLOG2E(dependencies), 1.44269504088896) + approxEqual(createLOG2E(dependencies), 1.44269504088896) }) it('should create LOG10E', function () { - approx.equal(createLOG10E(dependencies), 0.43429448190325) + approxEqual(createLOG10E(dependencies), 0.43429448190325) }) it('should create PI', function () { - approx.equal(createPi(dependencies), 3.14159265358979) + approxEqual(createPi(dependencies), 3.14159265358979) }) it('should create SQRT1_2', function () { - approx.equal(createSQRT1_2(dependencies), 0.70710678118655) + approxEqual(createSQRT1_2(dependencies), 0.70710678118655) }) it('should create SQRT2', function () { - approx.equal(createSQRT2(dependencies), 1.4142135623731) + approxEqual(createSQRT2(dependencies), 1.4142135623731) }) it('should create Infinity', function () { diff --git a/test/unit-tests/core/import.test.js b/test/unit-tests/core/import.test.js index 12fc8fcc88..8bbdc83e09 100644 --- a/test/unit-tests/core/import.test.js +++ b/test/unit-tests/core/import.test.js @@ -1,6 +1,6 @@ import assert from 'assert' import mathjs from '../../../src/defaultInstance.js' -import approx from '../../../tools/approx.js' +import { approxEqual } from '../../../tools/approx.js' import { factory } from '../../../src/utils/factory.js' import { create } from '../../../src/core/create.js' import { hasOwnProperty } from '../../../src/utils/object.js' @@ -162,7 +162,7 @@ describe('import', function () { assert.deepStrictEqual(math.a, 24) math.import({ pi: 24 }, { silent: true }) - approx.equal(math.pi, Math.PI) // pi was ignored + approxEqual(math.pi, Math.PI) // pi was ignored }) it('should import a boolean', function () { diff --git a/test/unit-tests/expression/Parser.test.js b/test/unit-tests/expression/Parser.test.js index 8d4847af86..1916ca9291 100644 --- a/test/unit-tests/expression/Parser.test.js +++ b/test/unit-tests/expression/Parser.test.js @@ -2,7 +2,7 @@ import assert from 'assert' -import approx from '../../../tools/approx.js' +import { approxEqual } from '../../../tools/approx.js' import math from '../../../src/defaultInstance.js' const Parser = math.Parser @@ -120,7 +120,7 @@ describe('parser', function () { assert.strictEqual(parser.get('xx'), undefined) assert.strictEqual(parser.get('yy'), undefined) assert.strictEqual(parser.get('zz'), undefined) - approx.equal(parser.get('pi'), undefined) + approxEqual(parser.get('pi'), undefined) assert.throws(function () { parser.evaluate('xx') }) assert.throws(function () { parser.evaluate('yy') }) diff --git a/test/unit-tests/expression/function/evaluate.test.js b/test/unit-tests/expression/function/evaluate.test.js index 669443eb0a..7851573e13 100644 --- a/test/unit-tests/expression/function/evaluate.test.js +++ b/test/unit-tests/expression/function/evaluate.test.js @@ -1,5 +1,5 @@ import assert from 'assert' -import approx from '../../../../tools/approx.js' +import { approxEqual } from '../../../../tools/approx.js' import math from '../../../../src/defaultInstance.js' import { createMap } from '../../../../src/utils/map.js' @@ -9,7 +9,7 @@ const ResultSet = math.ResultSet describe('evaluate', function () { it('should evaluate expressions', function () { - approx.equal(math.evaluate('(2+3)/4'), 1.25) + approxEqual(math.evaluate('(2+3)/4'), 1.25) assert.deepStrictEqual(math.evaluate('sqrt(-4)'), new Complex(0, 2)) }) diff --git a/test/unit-tests/expression/parse.test.js b/test/unit-tests/expression/parse.test.js index 2bd7641926..b3de860cfc 100644 --- a/test/unit-tests/expression/parse.test.js +++ b/test/unit-tests/expression/parse.test.js @@ -1,7 +1,7 @@ // test parse import assert from 'assert' -import approx from '../../../tools/approx.js' +import { approxEqual, approxDeepEqual } from '../../../tools/approx.js' import math from '../../../src/defaultInstance.js' const parse = math.parse @@ -31,7 +31,7 @@ function parseAndStringifyWithParens (expr) { describe('parse', function () { it('should parse a single expression', function () { - approx.equal(parse('2 + 6 / 3').compile().evaluate(), 4) + approxEqual(parse('2 + 6 / 3').compile().evaluate(), 4) }) it('should parse an empty expression', function () { @@ -285,7 +285,7 @@ describe('parse', function () { }) it('should parse a number followed by e', function () { - approx.equal(parseAndEval('2e'), 2 * Math.E) + approxEqual(parseAndEval('2e'), 2 * Math.E) }) it('should throw an error with invalid numbers', function () { @@ -536,28 +536,28 @@ describe('parse', function () { }) it('should correctly parse negative temperatures', function () { - approx.deepEqual(parseAndEval('-6 celsius'), new Unit(-6, 'celsius')) - approx.deepEqual(parseAndEval('--6 celsius'), new Unit(6, 'celsius')) - approx.deepEqual(parseAndEval('-6 celsius to fahrenheit'), + approxDeepEqual(parseAndEval('-6 celsius'), new Unit(-6, 'celsius')) + approxDeepEqual(parseAndEval('--6 celsius'), new Unit(6, 'celsius')) + approxDeepEqual(parseAndEval('-6 celsius to fahrenheit'), new Unit(21.2, 'fahrenheit').to('fahrenheit')) }) it('should convert units', function () { const scope = {} - approx.deepEqual(parseAndEval('(5.08 cm * 1000) to inch', scope), + approxDeepEqual(parseAndEval('(5.08 cm * 1000) to inch', scope), math.unit(2000, 'inch').to('inch')) - approx.deepEqual(parseAndEval('a = (5.08 cm * 1000) to mm', scope), + approxDeepEqual(parseAndEval('a = (5.08 cm * 1000) to mm', scope), math.unit(50800, 'mm').to('mm')) - approx.deepEqual(parseAndEval('a to inch', scope), + approxDeepEqual(parseAndEval('a to inch', scope), math.unit(2000, 'inch').to('inch')) - approx.deepEqual(parseAndEval('10 celsius to fahrenheit'), + approxDeepEqual(parseAndEval('10 celsius to fahrenheit'), math.unit(50, 'fahrenheit').to('fahrenheit')) - approx.deepEqual(parseAndEval('20 celsius to fahrenheit'), + approxDeepEqual(parseAndEval('20 celsius to fahrenheit'), math.unit(68, 'fahrenheit').to('fahrenheit')) - approx.deepEqual(parseAndEval('50 fahrenheit to celsius'), + approxDeepEqual(parseAndEval('50 fahrenheit to celsius'), math.unit(10, 'celsius').to('celsius')) - approx.deepEqual(parseAndEval('degC to degF'), + approxDeepEqual(parseAndEval('degC to degF'), math.unit(1.8, 'degF').to('degF')) }) @@ -570,25 +570,25 @@ describe('parse', function () { }) it('should evaluate operator "to" with correct precedence ', function () { - approx.deepEqual(parseAndEval('5.08 cm * 1000 to inch'), + approxDeepEqual(parseAndEval('5.08 cm * 1000 to inch'), new Unit(2000, 'inch').to('inch')) }) it('should evaluate operator "in" (alias of "to") ', function () { - approx.deepEqual(parseAndEval('5.08 cm in inch'), + approxDeepEqual(parseAndEval('5.08 cm in inch'), new Unit(2, 'inch').to('inch')) }) it('should evaluate unit "in" (should not conflict with operator "in")', function () { - approx.deepEqual(parseAndEval('2 in'), new Unit(2, 'in')) - approx.deepEqual(parseAndEval('5.08 cm in in'), new Unit(2, 'in').to('in')) - approx.deepEqual(parseAndEval('5 in in in'), new Unit(5, 'in').to('in')) - approx.deepEqual(parseAndEval('2 in to meter'), new Unit(2, 'inch').to('meter')) - approx.deepEqual(parseAndEval('2 in in meter'), new Unit(2, 'inch').to('meter')) - approx.deepEqual(parseAndEval('a in inch', { a: new Unit(5.08, 'cm') }), new Unit(2, 'inch').to('inch')) - approx.deepEqual(parseAndEval('(2+3) in'), new Unit(5, 'in')) - approx.deepEqual(parseAndEval('a in', { a: 5 }), new Unit(5, 'in')) - approx.deepEqual(parseAndEval('0.5in + 1.5in to cm'), new Unit(5.08, 'cm').to('cm')) + approxDeepEqual(parseAndEval('2 in'), new Unit(2, 'in')) + approxDeepEqual(parseAndEval('5.08 cm in in'), new Unit(2, 'in').to('in')) + approxDeepEqual(parseAndEval('5 in in in'), new Unit(5, 'in').to('in')) + approxDeepEqual(parseAndEval('2 in to meter'), new Unit(2, 'inch').to('meter')) + approxDeepEqual(parseAndEval('2 in in meter'), new Unit(2, 'inch').to('meter')) + approxDeepEqual(parseAndEval('a in inch', { a: new Unit(5.08, 'cm') }), new Unit(2, 'inch').to('inch')) + approxDeepEqual(parseAndEval('(2+3) in'), new Unit(5, 'in')) + approxDeepEqual(parseAndEval('a in', { a: 5 }), new Unit(5, 'in')) + approxDeepEqual(parseAndEval('0.5in + 1.5in to cm'), new Unit(5.08, 'cm').to('cm')) }) }) @@ -957,7 +957,7 @@ describe('parse', function () { }) it('should invoke a function on an object with the right context', function () { - approx.equal(parseAndEval('(2.54 cm).toNumeric("inch")'), 1) + approxEqual(parseAndEval('(2.54 cm).toNumeric("inch")'), 1) assert.deepStrictEqual(parseAndEval('bignumber(2).plus(3)'), math.bignumber(5)) assert.deepStrictEqual(parseAndEval('bignumber(2)["plus"](3)'), math.bignumber(5)) }) @@ -1053,8 +1053,8 @@ describe('parse', function () { it('should parse symbolic constants', function () { assert.strictEqual(parse('i').type, 'SymbolNode') assert.deepStrictEqual(parseAndEval('i'), new Complex(0, 1)) - approx.equal(parseAndEval('pi'), Math.PI) - approx.equal(parseAndEval('e'), Math.E) + approxEqual(parseAndEval('pi'), Math.PI) + approxEqual(parseAndEval('e'), Math.E) }) it('should parse constants', function () { @@ -1074,7 +1074,7 @@ describe('parse', function () { it('should evaluate constants', function () { // Do these tests really belong in constants.test.js ? - approx.equal(math.sin(math.pi / 2), 1) + approxEqual(math.sin(math.pi / 2), 1) assert.deepStrictEqual(math.round(math.add(1, math.pow(math.e, math.multiply(math.pi, math.i))), 5), math.complex(0)) assert.deepStrictEqual(math.round(math.evaluate('1+e^(pi*i)'), 5), math.complex(0)) @@ -1094,7 +1094,7 @@ describe('parse', function () { assert.strictEqual(parseAndEval('a + 2', scope), 2.75) assert.strictEqual(parseAndEval('a = 2', scope), 2) assert.strictEqual(parseAndEval('a + 2', scope), 4) - approx.equal(parseAndEval('pi * 2', scope), 6.283185307179586) + approxEqual(parseAndEval('pi * 2', scope), 6.283185307179586) }) it('should throw an error on undefined symbol', function () { @@ -1139,7 +1139,7 @@ describe('parse', function () { assert.deepStrictEqual(parseAndEval('sqrt(-4)'), new Complex(0, 2)) assert.strictEqual(parseAndEval('abs(-4.2)'), 4.2) assert.strictEqual(parseAndEval('add(2, 3)'), 5) - approx.deepEqual(parseAndEval('1+exp(pi*i)'), new Complex(0, 0)) + approxDeepEqual(parseAndEval('1+exp(pi*i)'), new Complex(0, 0)) assert.strictEqual(parseAndEval('unequal(2, 3)'), true) }) @@ -1241,10 +1241,10 @@ describe('parse', function () { describe('parentheses', function () { it('should parse parentheses overriding the default precedence', function () { - approx.equal(parseAndEval('2 - (2 - 2)'), 2) - approx.equal(parseAndEval('2 - ((2 - 2) - 2)'), 4) - approx.equal(parseAndEval('3 * (2 + 3)'), 15) - approx.equal(parseAndEval('(2 + 3) * 3'), 15) + approxEqual(parseAndEval('2 - (2 - 2)'), 2) + approxEqual(parseAndEval('2 - ((2 - 2) - 2)'), 4) + approxEqual(parseAndEval('3 * (2 + 3)'), 15) + approxEqual(parseAndEval('(2 + 3) * 3'), 15) }) it('should throw an error in case of unclosed parentheses', function () { @@ -1254,8 +1254,8 @@ describe('parse', function () { describe('operators', function () { it('should parse operations', function () { - approx.equal(parseAndEval('(2+3)/4'), 1.25) - approx.equal(parseAndEval('2+3/4'), 2.75) + approxEqual(parseAndEval('(2+3)/4'), 1.25) + approxEqual(parseAndEval('2+3/4'), 2.75) assert.strictEqual(parse('0 + 2').toString(), '0 + 2') }) @@ -1281,21 +1281,21 @@ describe('parse', function () { }) it('should parse dotMultiply .*', function () { - approx.deepEqual(parseAndEval('2.*3'), 6) - approx.deepEqual(parseAndEval('2e3.*3'), 6e3) - approx.deepEqual(parseAndEval('2 .* 3'), 6) - approx.deepEqual(parseAndEval('4 .* 2'), 8) - approx.deepEqual(parseAndEval('8 .* 2 .* 2'), 32) + approxDeepEqual(parseAndEval('2.*3'), 6) + approxDeepEqual(parseAndEval('2e3.*3'), 6e3) + approxDeepEqual(parseAndEval('2 .* 3'), 6) + approxDeepEqual(parseAndEval('4 .* 2'), 8) + approxDeepEqual(parseAndEval('8 .* 2 .* 2'), 32) assert.deepStrictEqual(parseAndEval('a=3; a.*4'), new ResultSet([12])) assert.deepStrictEqual(parseAndEval('[1,2,3] .* [1,2,3]'), math.matrix([1, 4, 9])) }) it('should parse dotPower .^', function () { - approx.deepEqual(parseAndEval('2.^3'), 8) - approx.deepEqual(parseAndEval('2 .^ 3'), 8) - approx.deepEqual(parseAndEval('-2.^2'), -4) // -(2^2) - approx.deepEqual(parseAndEval('2.^3.^4'), 2.41785163922926e+24) // 2^(3^4) + approxDeepEqual(parseAndEval('2.^3'), 8) + approxDeepEqual(parseAndEval('2 .^ 3'), 8) + approxDeepEqual(parseAndEval('-2.^2'), -4) // -(2^2) + approxDeepEqual(parseAndEval('2.^3.^4'), 2.41785163922926e+24) // 2^(3^4) assert.deepStrictEqual(parseAndEval('[2,3] .^ [2,3]'), math.matrix([4, 27])) }) @@ -1328,8 +1328,8 @@ describe('parse', function () { }) it('should parse mod %', function () { - approx.equal(parseAndEval('8 % 3'), 2) - approx.equal(parseAndEval('80% pi'), 1.4601836602551685) + approxEqual(parseAndEval('8 % 3'), 2) + approxEqual(parseAndEval('80% pi'), 1.4601836602551685) }) it('should parse mod % for negative divisors', function () { @@ -1337,40 +1337,40 @@ describe('parse', function () { }) it('should parse % value', function () { - approx.equal(parseAndEval('8 % '), 0.08) - approx.equal(parseAndEval('100%'), 1) + approxEqual(parseAndEval('8 % '), 0.08) + approxEqual(parseAndEval('100%'), 1) }) it('should parse % with multiplication', function () { - approx.equal(parseAndEval('100*50%'), 50) - approx.equal(parseAndEval('50%*100'), 50) + approxEqual(parseAndEval('100*50%'), 50) + approxEqual(parseAndEval('50%*100'), 50) assert.throws(function () { parseAndEval('50%(*100)') }, /Value expected/) }) it('should parse % with division', function () { - approx.equal(parseAndEval('100/50%'), 200) // should be treated as 100/(50%) - approx.equal(parseAndEval('100/50%*2'), 400) // should be treated as (100÷(50%))×2 - approx.equal(parseAndEval('50%/100'), 0.005) + approxEqual(parseAndEval('100/50%'), 200) // should be treated as 100/(50%) + approxEqual(parseAndEval('100/50%*2'), 400) // should be treated as (100÷(50%))×2 + approxEqual(parseAndEval('50%/100'), 0.005) assert.throws(function () { parseAndEval('50%(/100)') }, /Value expected/) }) it('should parse % with addition', function () { - approx.equal(parseAndEval('100+3%'), 103) - approx.equal(parseAndEval('3%+100'), 100.03) + approxEqual(parseAndEval('100+3%'), 103) + approxEqual(parseAndEval('3%+100'), 100.03) }) it('should parse % with subtraction', function () { - approx.equal(parseAndEval('100-3%'), 97) - approx.equal(parseAndEval('3%-100'), -99.97) + approxEqual(parseAndEval('100-3%'), 97) + approxEqual(parseAndEval('3%-100'), -99.97) }) it('should parse operator mod', function () { - approx.equal(parseAndEval('8 mod 3'), 2) + approxEqual(parseAndEval('8 mod 3'), 2) }) it('should parse multiply *', function () { - approx.equal(parseAndEval('4 * 2'), 8) - approx.equal(parseAndEval('8 * 2 * 2'), 32) + approxEqual(parseAndEval('4 * 2'), 8) + approxEqual(parseAndEval('8 * 2 * 2'), 32) }) it('should parse implicit multiplication', function () { @@ -1485,9 +1485,9 @@ describe('parse', function () { }) it('should parse pow ^', function () { - approx.equal(parseAndEval('2^3'), 8) - approx.equal(parseAndEval('-2^2'), -4) // -(2^2) - approx.equal(parseAndEval('2^3^4'), 2.41785163922926e+24) // 2^(3^4) + approxEqual(parseAndEval('2^3'), 8) + approxEqual(parseAndEval('-2^2'), -4) // -(2^2) + approxEqual(parseAndEval('2^3^4'), 2.41785163922926e+24) // 2^(3^4) }) it('should parse smaller <', function () { @@ -1806,12 +1806,12 @@ describe('parse', function () { }) it('should parse to', function () { - approx.deepEqual(parseAndEval('2.54 cm to inch'), math.unit(1, 'inch').to('inch')) - approx.deepEqual(parseAndEval('2.54 cm + 2 inch to foot'), math.unit(0.25, 'foot').to('foot')) + approxDeepEqual(parseAndEval('2.54 cm to inch'), math.unit(1, 'inch').to('inch')) + approxDeepEqual(parseAndEval('2.54 cm + 2 inch to foot'), math.unit(0.25, 'foot').to('foot')) }) it('should parse in', function () { - approx.deepEqual(parseAndEval('2.54 cm in inch'), math.unit(1, 'inch').to('inch')) + approxDeepEqual(parseAndEval('2.54 cm in inch'), math.unit(1, 'inch').to('inch')) }) it('should parse factorial !', function () { @@ -2052,11 +2052,11 @@ describe('parse', function () { describe('functions', function () { it('should evaluate function "mod"', function () { - approx.equal(parseAndEval('mod(8, 3)'), 2) + approxEqual(parseAndEval('mod(8, 3)'), 2) }) it('should evaluate function "to" ', function () { - approx.deepEqual(parseAndEval('to(5.08 cm * 1000, inch)'), + approxDeepEqual(parseAndEval('to(5.08 cm * 1000, inch)'), math.unit(2000, 'inch').to('inch')) }) @@ -2089,11 +2089,11 @@ describe('parse', function () { }) it('should work with mixed numbers and bignumbers', function () { - approx.equal(bigmath.evaluate('pi + 1'), 4.141592653589793) + approxEqual(bigmath.evaluate('pi + 1'), 4.141592653589793) }) it('should evaluate functions not supporting bignumbers', function () { - approx.equal(bigmath.evaluate('sin(0.1)'), 0.09983341664682815) + approxEqual(bigmath.evaluate('sin(0.1)'), 0.09983341664682815) }) it('should create a range from bignumbers', function () { diff --git a/test/unit-tests/expression/transform/std.transform.test.js b/test/unit-tests/expression/transform/std.transform.test.js index 0c8908020c..2cf82db514 100644 --- a/test/unit-tests/expression/transform/std.transform.test.js +++ b/test/unit-tests/expression/transform/std.transform.test.js @@ -1,5 +1,5 @@ import assert from 'assert' -import approx from '../../../../tools/approx.js' +import { approxEqual } from '../../../../tools/approx.js' import math from '../../../../src/defaultInstance.js' const Unit = math.Unit @@ -55,14 +55,14 @@ describe('std.transform', function () { const b = new Unit(5, 'cm') const c = new Unit(8, 'cm') const res = math.unit(3, 'cm') - approx.equal(std([a, b, c]).toNumber('cm'), res.toNumber('cm')) + approxEqual(std([a, b, c]).toNumber('cm'), res.toNumber('cm')) }) it('should compute the standard deviation value of quantities with compatible units', function () { const a = math.unit(1, 'm') const b = math.unit(50, 'cm') const c = math.unit(math.sqrt(1250), 'cm') - approx.equal(std([a, b]).toNumber('cm'), c.toNumber('cm')) + approxEqual(std([a, b]).toNumber('cm'), c.toNumber('cm')) }) it('should not compute the standard deviation value of quantities with incompatible units', function () { diff --git a/test/unit-tests/expression/transform/variance.transform.test.js b/test/unit-tests/expression/transform/variance.transform.test.js index 60ec7e6008..13db247b74 100644 --- a/test/unit-tests/expression/transform/variance.transform.test.js +++ b/test/unit-tests/expression/transform/variance.transform.test.js @@ -1,5 +1,5 @@ import assert from 'assert' -import approx from '../../../../tools/approx.js' +import { approxEqual } from '../../../../tools/approx.js' import math from '../../../../src/defaultInstance.js' const variance = math.expression.transform.variance @@ -53,14 +53,14 @@ describe('variance.transform', function () { const a = math.unit(10, 'cm') const b = math.unit(20, 'cm') const c = math.unit(50, 'cm^2') - approx.equal(variance([a, b]).toNumber('cm^2'), c.toNumber('cm^2')) + approxEqual(variance([a, b]).toNumber('cm^2'), c.toNumber('cm^2')) }) it('should compute the variance of quantities with compatible units', function () { const a = math.unit(1, 'm') const b = math.unit(50, 'cm') const c = math.unit(1250, 'cm^2') - approx.equal(variance([a, b]).toNumber('cm^2'), c.toNumber('cm^2')) + approxEqual(variance([a, b]).toNumber('cm^2'), c.toNumber('cm^2')) }) it('should not compute the variance of quantities with incompatible units', function () { diff --git a/test/unit-tests/function/algebra/decomposition/lup.test.js b/test/unit-tests/function/algebra/decomposition/lup.test.js index b213012071..87e1dbe354 100644 --- a/test/unit-tests/function/algebra/decomposition/lup.test.js +++ b/test/unit-tests/function/algebra/decomposition/lup.test.js @@ -1,7 +1,7 @@ // test lup import assert from 'assert' -import approx from '../../../../../tools/approx.js' +import { approxDeepEqual } from '../../../../../tools/approx.js' import math from '../../../../../src/defaultInstance.js' describe('lup', function () { @@ -16,7 +16,7 @@ describe('lup', function () { // P assert.deepStrictEqual(r.p, [0, 1]) // verify - approx.deepEqual(math.multiply(_p(r.p), m).valueOf(), math.multiply(r.L, r.U).valueOf()) + approxDeepEqual(math.multiply(_p(r.p), m).valueOf(), math.multiply(r.L, r.U).valueOf()) }) it('should decompose matrix, n x n, no permutations, sparse', function () { @@ -30,7 +30,7 @@ describe('lup', function () { // P assert.deepStrictEqual(r.p, [0, 1]) // verify - approx.deepEqual(math.multiply(_p(r.p), m).valueOf(), math.multiply(r.L, r.U).valueOf()) + approxDeepEqual(math.multiply(_p(r.p), m).valueOf(), math.multiply(r.L, r.U).valueOf()) }) it('should decompose matrix, n x n, no permutations, dense format', function () { @@ -44,7 +44,7 @@ describe('lup', function () { // P assert.deepStrictEqual(r.p, [0, 1]) // verify - approx.deepEqual(math.multiply(_p(r.p), m).valueOf(), math.multiply(r.L, r.U).valueOf()) + approxDeepEqual(math.multiply(_p(r.p), m).valueOf(), math.multiply(r.L, r.U).valueOf()) }) it('should decompose matrix, m x n, m < n, no permutations, dense format', function () { @@ -77,7 +77,7 @@ describe('lup', function () { // P assert.deepStrictEqual(r.p, [0, 1]) // verify - approx.deepEqual(math.multiply(_p(r.p), m).valueOf(), math.multiply(r.L, r.U).valueOf()) + approxDeepEqual(math.multiply(_p(r.p), m).valueOf(), math.multiply(r.L, r.U).valueOf()) }) it('should decompose matrix, m x n, m > n, no permutations, dense format', function () { @@ -112,7 +112,7 @@ describe('lup', function () { // P assert.deepStrictEqual(r.p, [0, 1, 2]) // verify - approx.deepEqual(math.multiply(_p(r.p), m).valueOf(), math.multiply(r.L, r.U).valueOf()) + approxDeepEqual(math.multiply(_p(r.p), m).valueOf(), math.multiply(r.L, r.U).valueOf()) }) it('should decompose matrix, n x n, dense format', function () { @@ -127,7 +127,7 @@ describe('lup', function () { const r = math.lup(m) // L - approx.deepEqual( + approxDeepEqual( r.L.valueOf(), [ [1, 0, 0, 0], @@ -136,7 +136,7 @@ describe('lup', function () { [0.06666666666666667, -0.4, -0.5714285714285776, 1] ]) // U - approx.deepEqual( + approxDeepEqual( r.U.valueOf(), [ [240, -2700, 6480, -4200], @@ -147,7 +147,7 @@ describe('lup', function () { // P assert.deepStrictEqual(r.p, [3, 1, 0, 2]) // verify - approx.deepEqual(math.multiply(_p(r.p), m).valueOf(), math.multiply(r.L, r.U).valueOf()) + approxDeepEqual(math.multiply(_p(r.p), m).valueOf(), math.multiply(r.L, r.U).valueOf()) }) it('should decompose matrix, 3 x 3, zero pivote value, dense format', function () { @@ -160,7 +160,7 @@ describe('lup', function () { const r = math.lup(m) // L - approx.deepEqual( + approxDeepEqual( r.L.valueOf(), [ [1, 0, 0], @@ -168,7 +168,7 @@ describe('lup', function () { [0.25, 0, 1.0] ]) // U - approx.deepEqual( + approxDeepEqual( r.U.valueOf(), [ [4, 8, 9], @@ -178,7 +178,7 @@ describe('lup', function () { // P assert.deepStrictEqual(r.p, [2, 1, 0]) // verify - approx.deepEqual(math.multiply(_p(r.p), m).valueOf(), math.multiply(r.L, r.U).valueOf()) + approxDeepEqual(math.multiply(_p(r.p), m).valueOf(), math.multiply(r.L, r.U).valueOf()) }) it('should decompose matrix, 3 x 2, complex numbers, dense format', function () { @@ -191,7 +191,7 @@ describe('lup', function () { const r = math.lup(m) // L - approx.deepEqual( + approxDeepEqual( r.L.valueOf(), [ [1, 0], @@ -199,7 +199,7 @@ describe('lup', function () { [math.complex(0.3333333, 0), 1] ]) // U - approx.deepEqual( + approxDeepEqual( r.U.valueOf(), [ [math.complex(0, 3), 10], @@ -208,7 +208,7 @@ describe('lup', function () { // P assert.deepStrictEqual(r.p, [0, 1, 2]) // verify - approx.deepEqual(math.multiply(_p(r.p), m).valueOf(), math.multiply(r.L, r.U).valueOf()) + approxDeepEqual(math.multiply(_p(r.p), m).valueOf(), math.multiply(r.L, r.U).valueOf()) }) it('should decompose matrix, m x n, m < n, no permutations, sparse', function () { @@ -237,7 +237,7 @@ describe('lup', function () { // P assert.deepStrictEqual(r.p, [0, 1]) // verify - approx.deepEqual(math.multiply(_p(r.p), m).valueOf(), math.multiply(r.L, r.U).valueOf()) + approxDeepEqual(math.multiply(_p(r.p), m).valueOf(), math.multiply(r.L, r.U).valueOf()) }) it('should decompose matrix, m x n, m > n, no permutations, sparse', function () { @@ -268,7 +268,7 @@ describe('lup', function () { // P assert.deepStrictEqual(r.p, [0, 1, 2]) // verify - approx.deepEqual(math.multiply(_p(r.p), m).valueOf(), math.multiply(r.L, r.U).valueOf()) + approxDeepEqual(math.multiply(_p(r.p), m).valueOf(), math.multiply(r.L, r.U).valueOf()) }) it('should decompose matrix, n x n, sparse', function () { @@ -283,7 +283,7 @@ describe('lup', function () { const r = math.lup(m) // L - approx.deepEqual( + approxDeepEqual( r.L.valueOf(), [ [1, 0, 0, 0], @@ -292,7 +292,7 @@ describe('lup', function () { [0.06666666666666667, -0.4, -0.5714285714285776, 1] ]) // U - approx.deepEqual( + approxDeepEqual( r.U.valueOf(), [ [240, -2700, 6480, -4200], @@ -303,7 +303,7 @@ describe('lup', function () { // P assert.deepStrictEqual(r.p, [3, 1, 0, 2]) // verify - approx.deepEqual(math.multiply(_p(r.p), m).valueOf(), math.multiply(r.L, r.U).valueOf()) + approxDeepEqual(math.multiply(_p(r.p), m).valueOf(), math.multiply(r.L, r.U).valueOf()) }) it('should decompose matrix, 3 x 3, zero pivote value, sparse', function () { @@ -317,7 +317,7 @@ describe('lup', function () { const r = math.lup(m) // L - approx.deepEqual( + approxDeepEqual( r.L.valueOf(), [ [1, 0, 0], @@ -325,7 +325,7 @@ describe('lup', function () { [0.25, 0, 1.0] ]) // U - approx.deepEqual( + approxDeepEqual( r.U.valueOf(), [ [4, 8, 9], @@ -335,7 +335,7 @@ describe('lup', function () { // P assert.deepStrictEqual(r.p, [2, 1, 0]) // verify - approx.deepEqual(math.multiply(_p(r.p), m).valueOf(), math.multiply(r.L, r.U).valueOf()) + approxDeepEqual(math.multiply(_p(r.p), m).valueOf(), math.multiply(r.L, r.U).valueOf()) }) it('should decompose matrix, 3 x 2, complex numbers, sparse', function () { @@ -348,7 +348,7 @@ describe('lup', function () { const r = math.lup(m) // L - approx.deepEqual( + approxDeepEqual( r.L.valueOf(), [ [1, 0], @@ -356,7 +356,7 @@ describe('lup', function () { [math.complex(0.3333333, 0), 1] ]) // U - approx.deepEqual( + approxDeepEqual( r.U.valueOf(), [ [math.complex(0, 3), 10], @@ -365,7 +365,7 @@ describe('lup', function () { // P assert.deepStrictEqual(r.p, [0, 1, 2]) // verify - approx.deepEqual(math.multiply(_p(r.p), m).valueOf(), math.multiply(r.L, r.U).valueOf()) + approxDeepEqual(math.multiply(_p(r.p), m).valueOf(), math.multiply(r.L, r.U).valueOf()) }) /** diff --git a/test/unit-tests/function/algebra/decomposition/qr.test.js b/test/unit-tests/function/algebra/decomposition/qr.test.js index 6086abd4d3..ed84d66059 100644 --- a/test/unit-tests/function/algebra/decomposition/qr.test.js +++ b/test/unit-tests/function/algebra/decomposition/qr.test.js @@ -1,7 +1,7 @@ // test lup import assert from 'assert' -import approx from '../../../../../tools/approx.js' +import { approxEqual, approxDeepEqual } from '../../../../../tools/approx.js' import math from '../../../../../src/defaultInstance.js' /** @@ -67,7 +67,7 @@ function assertValidQRDecomposition (A, Q, R) { assert.deepStrictEqual(math.size(R).valueOf(), [rows, cols]) // A = Q * R - approx.deepEqual(math.multiply(Q, R).valueOf(), A.valueOf()) + approxDeepEqual(math.multiply(Q, R).valueOf(), A.valueOf()) // Q has unitary (orthonormal for real A) columns // use math.equal as approx.deepEqual cannot handle complex vs real number comparision @@ -93,7 +93,7 @@ function assertValidQRDecomposition (A, Q, R) { for (let i = 0; i < raw.R._data.length; ++i) { for (let j = 0; j < i && j < (raw.R._data[0] || []).length; ++j) { - approx.equal(raw.R._data[i][j], 0, 1e-10) + approxEqual(raw.R._data[i][j], 0, 1e-10) } } } @@ -104,9 +104,9 @@ describe('qr', function () { const r = math.qr(m) // L - approx.deepEqual(r.Q.valueOf(), [[0.6, -0.8], [0.8, 0.6]]) + approxDeepEqual(r.Q.valueOf(), [[0.6, -0.8], [0.8, 0.6]]) // U - approx.deepEqual(r.R.valueOf(), [[25, 90], [0, 15]]) + approxDeepEqual(r.R.valueOf(), [[25, 90], [0, 15]]) // verify assertValidQRDecomposition(m, r.Q, r.R) @@ -132,9 +132,9 @@ describe('qr', function () { const r = math.qr(m) // Q - approx.deepEqual(r.Q.valueOf(), [[0.6, -0.8], [0.8, 0.6]]) + approxDeepEqual(r.Q.valueOf(), [[0.6, -0.8], [0.8, 0.6]]) // R - approx.deepEqual(r.R.valueOf(), [[25, 90], [0, 15]]) + approxDeepEqual(r.R.valueOf(), [[25, 90], [0, 15]]) // verify assertValidQRDecomposition(m, r.Q, r.R) }) @@ -144,7 +144,7 @@ describe('qr', function () { const r = math.qr(m) // Q - approx.deepEqual( + approxDeepEqual( r.Q.valueOf(), [ [0.02241566559605479, 0.9997386855840484, -0.004483133119210979], @@ -153,7 +153,7 @@ describe('qr', function () { ]) // R - approx.deepEqual( + approxDeepEqual( r.R.valueOf(), [ [223.0582883463423, -0, 34.912399165855504], @@ -175,7 +175,7 @@ describe('qr', function () { const r = math.qr(m) // Q - approx.deepEqual( + approxDeepEqual( r.Q, math.matrix( [ @@ -184,7 +184,7 @@ describe('qr', function () { ] )) // R - approx.deepEqual( + approxDeepEqual( r.R, math.matrix( [ @@ -255,7 +255,7 @@ describe('qr', function () { const r = math.qr(m) // Q - approx.deepEqual( + approxDeepEqual( r.Q.valueOf(), [[0.21821789023599236, 0.9759000729485332, 1.1102230246251565e-16], [0.4364357804719848, -0.09759000729485323, 0.8944271909999157], @@ -263,7 +263,7 @@ describe('qr', function () { ]) // R - approx.deepEqual( + approxDeepEqual( r.R.valueOf(), [ [4.582575694955841, 9.165151389911681, 11.129112402035613], @@ -414,7 +414,7 @@ describe('qr', function () { const r = math.qr(m) // Q - approx.deepEqual( + approxDeepEqual( r.Q, math.evaluate(`complex([ [0, 1], diff --git a/test/unit-tests/function/algebra/decomposition/slu.test.js b/test/unit-tests/function/algebra/decomposition/slu.test.js index eb7cccc4db..de8ce15235 100644 --- a/test/unit-tests/function/algebra/decomposition/slu.test.js +++ b/test/unit-tests/function/algebra/decomposition/slu.test.js @@ -1,4 +1,4 @@ -import approx from '../../../../../tools/approx.js' +import { approxDeepEqual } from '../../../../../tools/approx.js' import math from '../../../../../src/defaultInstance.js' describe('slu', function () { @@ -15,7 +15,7 @@ describe('slu', function () { const r = math.slu(m, 0, 1) // verify M[p,q]=L*U - approx.deepEqual(_permute(m, r.p, r.q).valueOf(), math.multiply(r.L, r.U).valueOf()) + approxDeepEqual(_permute(m, r.p, r.q).valueOf(), math.multiply(r.L, r.U).valueOf()) }) it('should decompose matrix, 4 x 4, amd(A+A\') (order=1)', function () { @@ -31,7 +31,7 @@ describe('slu', function () { const r = math.slu(m, 1, 1) // verify M[p,q]=L*U - approx.deepEqual(_permute(m, r.p, r.q).valueOf(), math.multiply(r.L, r.U).valueOf()) + approxDeepEqual(_permute(m, r.p, r.q).valueOf(), math.multiply(r.L, r.U).valueOf()) }) it('should decompose matrix, 4 x 4, amd(A\'*A) (order=2), partial pivoting', function () { @@ -47,7 +47,7 @@ describe('slu', function () { const r = math.slu(m, 2, 1) // verify M[p,q]=L*U - approx.deepEqual(_permute(m, r.p, r.q).valueOf(), math.multiply(r.L, r.U).valueOf()) + approxDeepEqual(_permute(m, r.p, r.q).valueOf(), math.multiply(r.L, r.U).valueOf()) }) it('should decompose matrix, 4 x 4, amd(A\'*A) (order=3), partial pivoting', function () { @@ -63,7 +63,7 @@ describe('slu', function () { const r = math.slu(m, 3, 1) // verify M[p,q]=L*U - approx.deepEqual(_permute(m, r.p, r.q).valueOf(), math.multiply(r.L, r.U).valueOf()) + approxDeepEqual(_permute(m, r.p, r.q).valueOf(), math.multiply(r.L, r.U).valueOf()) }) /** diff --git a/test/unit-tests/function/algebra/polynomialRoot.test.js b/test/unit-tests/function/algebra/polynomialRoot.test.js index d4476427eb..60e4805d36 100644 --- a/test/unit-tests/function/algebra/polynomialRoot.test.js +++ b/test/unit-tests/function/algebra/polynomialRoot.test.js @@ -1,4 +1,4 @@ -import approx from '../../../../tools/approx.js' +import { approxDeepEqual } from '../../../../tools/approx.js' import math from '../../../../src/defaultInstance.js' const complex = math.complex @@ -7,51 +7,51 @@ const pRoot = math.polynomialRoot describe('polynomialRoot', function () { it('should solve a linear equation with real or complex coefficients', function () { - approx.deepEqual(pRoot(6, 3), [-2]) - approx.deepEqual(pRoot(complex(-3, 2), 2), [complex(1.5, -1)]) - approx.deepEqual(pRoot(complex(3, 1), complex(-1, -1)), [complex(2, -1)]) + approxDeepEqual(pRoot(6, 3), [-2]) + approxDeepEqual(pRoot(complex(-3, 2), 2), [complex(1.5, -1)]) + approxDeepEqual(pRoot(complex(3, 1), complex(-1, -1)), [complex(2, -1)]) }) it('should solve a quadratic equation with a double root', function () { - approx.deepEqual(pRoot(4, 4, 1), [-2]) - approx.deepEqual(pRoot(complex(0, 2), complex(2, 2), 1), [complex(-1, -1)]) + approxDeepEqual(pRoot(4, 4, 1), [-2]) + approxDeepEqual(pRoot(complex(0, 2), complex(2, 2), 1), [complex(-1, -1)]) }) it('should solve a quadratic with two distinct roots', function () { - approx.deepEqual(pRoot(-3, 2, 1), [1, -3]) - approx.deepEqual(pRoot(-2, 0, 1), [math.sqrt(2), -math.sqrt(2)]) - approx.deepEqual( + approxDeepEqual(pRoot(-3, 2, 1), [1, -3]) + approxDeepEqual(pRoot(-2, 0, 1), [math.sqrt(2), -math.sqrt(2)]) + approxDeepEqual( pRoot(4, 2, 1), [complex(-1, math.sqrt(3)), complex(-1, -math.sqrt(3))]) - approx.deepEqual( + approxDeepEqual( pRoot(complex(3, 1), -3, 1), [complex(2, -1), complex(1, 1)]) }) it('should solve a cubic with a triple root', function () { - approx.deepEqual(pRoot(8, 12, 6, 1), [-2]) - approx.deepEqual( + approxDeepEqual(pRoot(8, 12, 6, 1), [-2]) + approxDeepEqual( pRoot(complex(-2, 11), complex(9, -12), complex(-6, 3), 1), [complex(2, -1)]) }) it('should solve a cubic with one simple and one double root', function () { - approx.deepEqual(pRoot(4, 0, -3, 1), [-1, 2]) - approx.deepEqual( + approxDeepEqual(pRoot(4, 0, -3, 1), [-1, 2]) + approxDeepEqual( pRoot(complex(9, 9), complex(15, 6), complex(7, 1), 1), [complex(-1, -1), -3]) - approx.deepEqual( + approxDeepEqual( pRoot(complex(0, 6), complex(6, 8), complex(5, 2), 1), [-3, complex(-1, -1)]) - approx.deepEqual( + approxDeepEqual( pRoot(complex(2, 6), complex(8, 6), complex(5, 1), 1), [complex(-3, 1), complex(-1, -1)]) }) it('should solve a cubic with three distinct roots', function () { - approx.deepEqual(pRoot(6, 11, 6, 1), [-3, -1, -2]) - approx.deepEqual( + approxDeepEqual(pRoot(6, 11, 6, 1), [-3, -1, -2]) + approxDeepEqual( pRoot(-1, -2, 0, 1), [-1, (1 + math.sqrt(5)) / 2, (1 - math.sqrt(5)) / 2]) - approx.deepEqual(pRoot(1, 1, 1, 1), [-1, complex(0, -1), complex(0, 1)]) - approx.deepEqual( + approxDeepEqual(pRoot(1, 1, 1, 1), [-1, complex(0, -1), complex(0, 1)]) + approxDeepEqual( pRoot(complex(0, -10), complex(8, 12), complex(-6, -3), 1), [complex(1, 1), complex(3, 1), complex(2, 1)]) }) diff --git a/test/unit-tests/function/algebra/solver/lsolve.test.js b/test/unit-tests/function/algebra/solver/lsolve.test.js index 44c05811b1..30edb410c8 100644 --- a/test/unit-tests/function/algebra/solver/lsolve.test.js +++ b/test/unit-tests/function/algebra/solver/lsolve.test.js @@ -1,7 +1,7 @@ // test lsolve import assert from 'assert' -import approx from '../../../../../tools/approx.js' +import { approxDeepEqual } from '../../../../../tools/approx.js' import math from '../../../../../src/defaultInstance.js' describe('lsolve', function () { @@ -17,7 +17,7 @@ describe('lsolve', function () { const x = math.lsolve(m, b) - approx.deepEqual(x, [[1], [1], [1], [1]]) + approxDeepEqual(x, [[1], [1], [1], [1]]) }) it('should solve linear system 4 x 4, array and column array', function () { @@ -36,7 +36,7 @@ describe('lsolve', function () { ] const x = math.lsolve(m, b) - approx.deepEqual(x, [[1], [1], [1], [1]]) + approxDeepEqual(x, [[1], [1], [1], [1]]) }) it('should solve linear system 4 x 4, matrices', function () { @@ -52,7 +52,7 @@ describe('lsolve', function () { const x = math.lsolve(m, b) assert(x instanceof math.Matrix) - approx.deepEqual(x, math.matrix([[1], [1], [1], [1]])) + approxDeepEqual(x, math.matrix([[1], [1], [1], [1]])) }) it('should solve linear system 4 x 4, sparse matrices', function () { @@ -68,7 +68,7 @@ describe('lsolve', function () { const x = math.lsolve(m, b) assert(x instanceof math.Matrix) - approx.deepEqual(x, math.matrix([[1], [1], [1], [1]])) + approxDeepEqual(x, math.matrix([[1], [1], [1], [1]])) }) it('should solve linear system 4 x 4, matrix and column matrix', function () { @@ -89,7 +89,7 @@ describe('lsolve', function () { const x = math.lsolve(m, b) assert(x instanceof math.Matrix) - approx.deepEqual(x, math.matrix([[1], [1], [1], [1]])) + approxDeepEqual(x, math.matrix([[1], [1], [1], [1]])) }) it('should solve linear system 4 x 4, sparse matrix and column matrix', function () { @@ -110,7 +110,7 @@ describe('lsolve', function () { const x = math.lsolve(m, b) assert(x instanceof math.Matrix) - approx.deepEqual(x, math.matrix([[1], [1], [1], [1]])) + approxDeepEqual(x, math.matrix([[1], [1], [1], [1]])) }) it('should throw exception when matrix is singular', function () { diff --git a/test/unit-tests/function/algebra/solver/lsolveAll.test.js b/test/unit-tests/function/algebra/solver/lsolveAll.test.js index 9f669b8761..4461edda6f 100644 --- a/test/unit-tests/function/algebra/solver/lsolveAll.test.js +++ b/test/unit-tests/function/algebra/solver/lsolveAll.test.js @@ -1,7 +1,7 @@ // test lsolveAll import assert from 'assert' -import approx from '../../../../../tools/approx.js' +import { approxDeepEqual } from '../../../../../tools/approx.js' import math from '../../../../../src/defaultInstance.js' describe('lsolveAll', function () { @@ -17,7 +17,7 @@ describe('lsolveAll', function () { const x = math.lsolveAll(m, b) - approx.deepEqual(x, [[[1], [1], [1], [1]]]) + approxDeepEqual(x, [[[1], [1], [1], [1]]]) }) it('should solve linear system 4 x 4, array and column array', function () { @@ -36,7 +36,7 @@ describe('lsolveAll', function () { ] const x = math.lsolveAll(m, b) - approx.deepEqual(x, [[[1], [1], [1], [1]]]) + approxDeepEqual(x, [[[1], [1], [1], [1]]]) }) it('should solve linear system 4 x 4, matrices', function () { @@ -52,7 +52,7 @@ describe('lsolveAll', function () { const x = math.lsolveAll(m, b) assert(x[0] instanceof math.Matrix) - approx.deepEqual(x, [math.matrix([[1], [1], [1], [1]])]) + approxDeepEqual(x, [math.matrix([[1], [1], [1], [1]])]) }) it('should solve linear system 4 x 4, sparse matrices', function () { @@ -68,7 +68,7 @@ describe('lsolveAll', function () { const x = math.lsolveAll(m, b) assert(x[0] instanceof math.Matrix) - approx.deepEqual(x, [math.matrix([[1], [1], [1], [1]])]) + approxDeepEqual(x, [math.matrix([[1], [1], [1], [1]])]) }) it('should solve linear system 4 x 4, matrix and column matrix', function () { @@ -89,7 +89,7 @@ describe('lsolveAll', function () { const x = math.lsolveAll(m, b) assert(x[0] instanceof math.Matrix) - approx.deepEqual(x, [math.matrix([[1], [1], [1], [1]])]) + approxDeepEqual(x, [math.matrix([[1], [1], [1], [1]])]) }) it('should solve linear system 4 x 4, sparse matrix and column matrix', function () { @@ -110,7 +110,7 @@ describe('lsolveAll', function () { const x = math.lsolveAll(m, b) assert(x[0] instanceof math.Matrix) - approx.deepEqual(x, [math.matrix([[1], [1], [1], [1]])]) + approxDeepEqual(x, [math.matrix([[1], [1], [1], [1]])]) }) it('should return an empty array when there is no solution', function () { @@ -120,34 +120,34 @@ describe('lsolveAll', function () { }) it('should solve systems with singular dense matrices', function () { - approx.deepEqual( + approxDeepEqual( math.lsolveAll([[2, 0, 0], [1, 0, 0], [-1, 1, 1]], [4, 2, 1]), [[[2], [0], [3]], [[2], [1], [2]]] ) - approx.deepEqual( + approxDeepEqual( math.lsolveAll([[0, 0, 0], [1, 1, 0], [2, 1, 0]], [0, 2, 2]), [[[0], [2], [0]], [[0], [2], [1]]] ) - approx.deepEqual( + approxDeepEqual( math.lsolveAll([[0, 0, 0], [1, 1, 0], [1, 1, 0]], [0, 2, 2]), [[[0], [2], [0]], [[1], [1], [0]], [[0], [2], [1]]] ) }) it('should solve systems with singular sparse matrices', function () { - approx.deepEqual( + approxDeepEqual( math.lsolveAll(math.matrix([[2, 0, 0], [1, 0, 0], [-1, 1, 1]], 'sparse'), [4, 2, 1]), [math.matrix([[2], [0], [3]]), math.matrix([[2], [1], [2]])] ) - approx.deepEqual( + approxDeepEqual( math.lsolveAll(math.matrix([[0, 0, 0], [1, 1, 0], [2, 1, 0]], 'sparse'), [0, 2, 2]), [math.matrix([[0], [2], [0]]), math.matrix([[0], [2], [1]])] ) - approx.deepEqual( + approxDeepEqual( math.lsolveAll(math.matrix([[0, 0, 0], [1, 1, 0], [1, 1, 0]], 'sparse'), [0, 2, 2]), [math.matrix([[0], [2], [0]]), math.matrix([[1], [1], [0]]), math.matrix([[0], [2], [1]])] ) diff --git a/test/unit-tests/function/algebra/solver/lusolve.test.js b/test/unit-tests/function/algebra/solver/lusolve.test.js index 3404236eb9..464c6c1045 100644 --- a/test/unit-tests/function/algebra/solver/lusolve.test.js +++ b/test/unit-tests/function/algebra/solver/lusolve.test.js @@ -1,7 +1,7 @@ // test lusolve import assert from 'assert' -import approx from '../../../../../tools/approx.js' +import { approxDeepEqual } from '../../../../../tools/approx.js' import math from '../../../../../src/defaultInstance.js' describe('lusolve', function () { @@ -17,7 +17,7 @@ describe('lusolve', function () { const x = math.lusolve(m, b) - approx.deepEqual(x, [[-1], [-0.5], [-1 / 3], [-0.25]]) + approxDeepEqual(x, [[-1], [-0.5], [-1 / 3], [-0.25]]) }) it('should solve linear system 4 x 4, array and column array', function () { @@ -36,7 +36,7 @@ describe('lusolve', function () { ] const x = math.lusolve(m, b) - approx.deepEqual(x, [[-1], [-0.5], [-1 / 3], [-0.25]]) + approxDeepEqual(x, [[-1], [-0.5], [-1 / 3], [-0.25]]) }) it('should solve linear system 4 x 4, matrices', function () { @@ -52,7 +52,7 @@ describe('lusolve', function () { const x = math.lusolve(m, b) assert(x instanceof math.Matrix) - approx.deepEqual(x, math.matrix([[-1], [-0.5], [-1 / 3], [-0.25]])) + approxDeepEqual(x, math.matrix([[-1], [-0.5], [-1 / 3], [-0.25]])) }) it('should solve linear system 4 x 4, sparse matrices', function () { @@ -68,7 +68,7 @@ describe('lusolve', function () { const x = math.lusolve(m, b) assert(x instanceof math.Matrix) - approx.deepEqual(x, math.matrix([[-1], [-0.5], [-1 / 3], [-0.25]])) + approxDeepEqual(x, math.matrix([[-1], [-0.5], [-1 / 3], [-0.25]])) }) it('should solve linear system 4 x 4, matrix and column matrix', function () { @@ -89,7 +89,7 @@ describe('lusolve', function () { const x = math.lusolve(m, b) assert(x instanceof math.Matrix) - approx.deepEqual(x, math.matrix([[-1], [-0.5], [-1 / 3], [-0.25]])) + approxDeepEqual(x, math.matrix([[-1], [-0.5], [-1 / 3], [-0.25]])) }) it('should solve linear system 4 x 4, sparse matrix and column matrix', function () { @@ -110,7 +110,7 @@ describe('lusolve', function () { const x = math.lusolve(m, b) assert(x instanceof math.Matrix) - approx.deepEqual(x, math.matrix([[-1], [-0.5], [-1 / 3], [-0.25]])) + approxDeepEqual(x, math.matrix([[-1], [-0.5], [-1 / 3], [-0.25]])) }) it('should solve linear system 4 x 4, LUP decomposition (array)', function () { @@ -124,10 +124,10 @@ describe('lusolve', function () { const lup = math.lup(m) const x = math.lusolve(lup, [-1, -1, -1, -1]) - approx.deepEqual(x, math.matrix([[-1], [-0.5], [-1 / 3], [-0.25]])) + approxDeepEqual(x, math.matrix([[-1], [-0.5], [-1 / 3], [-0.25]])) const y = math.lusolve(lup, [1, 2, 1, -1]) - approx.deepEqual(y, math.matrix([[1], [1], [1 / 3], [-0.25]])) + approxDeepEqual(y, math.matrix([[1], [1], [1 / 3], [-0.25]])) }) it('should solve linear system 4 x 4, LUP decomposition (matrix)', function () { @@ -141,10 +141,10 @@ describe('lusolve', function () { const lup = math.lup(m) const x = math.lusolve(lup, [-1, -1, -1, -1]) - approx.deepEqual(x, math.matrix([[-1], [-0.5], [-1 / 3], [-0.25]])) + approxDeepEqual(x, math.matrix([[-1], [-0.5], [-1 / 3], [-0.25]])) const y = math.lusolve(lup, [1, 2, 1, -1]) - approx.deepEqual(y, math.matrix([[1], [1], [1 / 3], [-0.25]])) + approxDeepEqual(y, math.matrix([[1], [1], [1 / 3], [-0.25]])) }) it('should solve linear system 4 x 4, LUP decomposition (sparse matrix)', function () { @@ -158,10 +158,10 @@ describe('lusolve', function () { const lup = math.lup(m) const x = math.lusolve(lup, [-1, -1, -1, -1]) - approx.deepEqual(x, math.matrix([[-1], [-0.5], [-1 / 3], [-0.25]])) + approxDeepEqual(x, math.matrix([[-1], [-0.5], [-1 / 3], [-0.25]])) const y = math.lusolve(lup, [1, 2, 1, -1]) - approx.deepEqual(y, math.matrix([[1], [1], [1 / 3], [-0.25]])) + approxDeepEqual(y, math.matrix([[1], [1], [1 / 3], [-0.25]])) }) it('should solve linear system 3 x 3, no permutations, arrays', function () { @@ -175,7 +175,7 @@ describe('lusolve', function () { const x = math.lusolve(m, b) - approx.deepEqual(x, [[-5 / 3], [7 / 3], [-1]]) + approxDeepEqual(x, [[-5 / 3], [7 / 3], [-1]]) }) it('should solve linear system 3 x 3, no permutations, matrix', function () { @@ -189,7 +189,7 @@ describe('lusolve', function () { const x = math.lusolve(m, b) - approx.deepEqual(x, math.matrix([[-5 / 3], [7 / 3], [-1]])) + approxDeepEqual(x, math.matrix([[-5 / 3], [7 / 3], [-1]])) }) it('should solve linear system 3 x 3, no permutations, sparse matrix', function () { @@ -203,7 +203,7 @@ describe('lusolve', function () { const x = math.lusolve(m, b) - approx.deepEqual(x, math.matrix([[-5 / 3], [7 / 3], [-1]])) + approxDeepEqual(x, math.matrix([[-5 / 3], [7 / 3], [-1]])) }) it('should solve linear system 3 x 3, permutations, arrays', function () { @@ -217,7 +217,7 @@ describe('lusolve', function () { const x = math.lusolve(m, b) - approx.deepEqual(x, [[-5 / 3], [7 / 3], [-1]]) + approxDeepEqual(x, [[-5 / 3], [7 / 3], [-1]]) }) it('should solve linear system 4 x 4, permutations, matrix - Issue 437', function () { @@ -233,7 +233,7 @@ describe('lusolve', function () { const x = math.lusolve(m, b) - approx.deepEqual(x, math.matrix([[0.025], [-0.075], [0], [0.2]])) + approxDeepEqual(x, math.matrix([[0.025], [-0.075], [0], [0.2]])) }) it('should solve linear system 4 x 4, permutations, sparse - Issue 437', function () { @@ -249,7 +249,7 @@ describe('lusolve', function () { const x = math.lusolve(m, b) - approx.deepEqual(x, math.matrix([[0.025], [-0.075], [0], [0.2]])) + approxDeepEqual(x, math.matrix([[0.025], [-0.075], [0], [0.2]])) }) it('should solve linear system 3 x 3, permutations, sparse matrix', function () { @@ -263,7 +263,7 @@ describe('lusolve', function () { const x = math.lusolve(m, b) - approx.deepEqual(x, math.matrix([[-5 / 3], [7 / 3], [-1]])) + approxDeepEqual(x, math.matrix([[-5 / 3], [7 / 3], [-1]])) }) it('should solve linear system 4 x 4, natural ordering (order=0), partial pivoting, sparse matrix', function () { @@ -279,7 +279,7 @@ describe('lusolve', function () { const x = math.lusolve(m, b, 0, 1) - approx.deepEqual(x, math.matrix([[-0.186372], [-0.131621], [0.574586], [2.454950]])) + approxDeepEqual(x, math.matrix([[-0.186372], [-0.131621], [0.574586], [2.454950]])) }) it('should solve linear system 4 x 4, amd(A+A\') (order=1), partial pivoting, sparse matrix', function () { @@ -295,7 +295,7 @@ describe('lusolve', function () { const x = math.lusolve(m, b, 1, 1) - approx.deepEqual(x, math.matrix([[-0.186372], [-0.131621], [0.574586], [2.454950]])) + approxDeepEqual(x, math.matrix([[-0.186372], [-0.131621], [0.574586], [2.454950]])) }) it('should solve linear system 4 x 4, amd(A\'*A) (order=2), partial pivoting, sparse matrix', function () { @@ -311,7 +311,7 @@ describe('lusolve', function () { const x = math.lusolve(m, b, 2, 1) - approx.deepEqual(x, math.matrix([[-0.186372], [-0.131621], [0.574586], [2.454950]])) + approxDeepEqual(x, math.matrix([[-0.186372], [-0.131621], [0.574586], [2.454950]])) }) it('should solve linear system 4 x 4, amd(A\'*A) (order=3), partial pivoting, sparse matrix', function () { @@ -327,7 +327,7 @@ describe('lusolve', function () { const x = math.lusolve(m, b, 3, 1) - approx.deepEqual(x, math.matrix([[-0.186372], [-0.131621], [0.574586], [2.454950]])) + approxDeepEqual(x, math.matrix([[-0.186372], [-0.131621], [0.574586], [2.454950]])) }) it('should throw exception when matrix is singular', function () { diff --git a/test/unit-tests/function/algebra/solver/usolve.test.js b/test/unit-tests/function/algebra/solver/usolve.test.js index 620cf85504..46b759d427 100644 --- a/test/unit-tests/function/algebra/solver/usolve.test.js +++ b/test/unit-tests/function/algebra/solver/usolve.test.js @@ -1,7 +1,7 @@ // test usolve import assert from 'assert' -import approx from '../../../../../tools/approx.js' +import { approxDeepEqual } from '../../../../../tools/approx.js' import math from '../../../../../src/defaultInstance.js' describe('usolve', function () { @@ -17,7 +17,7 @@ describe('usolve', function () { const x = math.usolve(m, b) - approx.deepEqual(x, [[-1], [-1], [-1], [4]]) + approxDeepEqual(x, [[-1], [-1], [-1], [4]]) }) it('should solve linear system 4 x 4, array and column array', function () { @@ -36,7 +36,7 @@ describe('usolve', function () { ] const x = math.usolve(m, b) - approx.deepEqual(x, [[-1], [-1], [-1], [4]]) + approxDeepEqual(x, [[-1], [-1], [-1], [4]]) }) it('should solve linear system 4 x 4, matrices', function () { @@ -52,7 +52,7 @@ describe('usolve', function () { const x = math.usolve(m, b) assert(x instanceof math.Matrix) - approx.deepEqual(x, math.matrix([[-1], [-1], [-1], [4]])) + approxDeepEqual(x, math.matrix([[-1], [-1], [-1], [4]])) }) it('should solve linear system 4 x 4, sparse matrices', function () { @@ -68,7 +68,7 @@ describe('usolve', function () { const x = math.usolve(m, b) assert(x instanceof math.Matrix) - approx.deepEqual(x, math.matrix([[-1], [-1], [-1], [4]])) + approxDeepEqual(x, math.matrix([[-1], [-1], [-1], [4]])) }) it('should solve linear system 4 x 4, matrix and column matrix', function () { @@ -89,7 +89,7 @@ describe('usolve', function () { const x = math.usolve(m, b) assert(x instanceof math.Matrix) - approx.deepEqual(x, math.matrix([[-1], [-1], [-1], [4]])) + approxDeepEqual(x, math.matrix([[-1], [-1], [-1], [4]])) }) it('should solve linear system 4 x 4, sparse matrix and column matrix', function () { @@ -110,7 +110,7 @@ describe('usolve', function () { const x = math.usolve(m, b) assert(x instanceof math.Matrix) - approx.deepEqual(x, math.matrix([[-1], [-1], [-1], [4]])) + approxDeepEqual(x, math.matrix([[-1], [-1], [-1], [4]])) }) it('should throw exception when matrix is singular', function () { diff --git a/test/unit-tests/function/algebra/solver/usolveAll.test.js b/test/unit-tests/function/algebra/solver/usolveAll.test.js index 6910b861a0..3f17927b07 100644 --- a/test/unit-tests/function/algebra/solver/usolveAll.test.js +++ b/test/unit-tests/function/algebra/solver/usolveAll.test.js @@ -1,7 +1,7 @@ // test usolveAll import assert from 'assert' -import approx from '../../../../../tools/approx.js' +import { approxDeepEqual } from '../../../../../tools/approx.js' import math from '../../../../../src/defaultInstance.js' describe('usolveAll', function () { @@ -17,7 +17,7 @@ describe('usolveAll', function () { const x = math.usolveAll(m, b) - approx.deepEqual(x, [[[-1], [-1], [-1], [4]]]) + approxDeepEqual(x, [[[-1], [-1], [-1], [4]]]) }) it('should solve linear system 4 x 4, array and column array', function () { @@ -36,7 +36,7 @@ describe('usolveAll', function () { ] const x = math.usolveAll(m, b) - approx.deepEqual(x, [[[-1], [-1], [-1], [4]]]) + approxDeepEqual(x, [[[-1], [-1], [-1], [4]]]) }) it('should solve linear system 4 x 4, matrices', function () { @@ -52,7 +52,7 @@ describe('usolveAll', function () { const x = math.usolveAll(m, b) assert(x[0] instanceof math.Matrix) - approx.deepEqual(x, [math.matrix([[-1], [-1], [-1], [4]])]) + approxDeepEqual(x, [math.matrix([[-1], [-1], [-1], [4]])]) }) it('should solve linear system 4 x 4, sparse matrices', function () { @@ -68,7 +68,7 @@ describe('usolveAll', function () { const x = math.usolveAll(m, b) assert(x[0] instanceof math.Matrix) - approx.deepEqual(x, [math.matrix([[-1], [-1], [-1], [4]])]) + approxDeepEqual(x, [math.matrix([[-1], [-1], [-1], [4]])]) }) it('should solve linear system 4 x 4, matrix and column matrix', function () { @@ -89,7 +89,7 @@ describe('usolveAll', function () { const x = math.usolveAll(m, b) assert(x[0] instanceof math.Matrix) - approx.deepEqual(x, [math.matrix([[-1], [-1], [-1], [4]])]) + approxDeepEqual(x, [math.matrix([[-1], [-1], [-1], [4]])]) }) it('should solve linear system 4 x 4, sparse matrix and column matrix', function () { @@ -110,7 +110,7 @@ describe('usolveAll', function () { const x = math.usolveAll(m, b) assert(x[0] instanceof math.Matrix) - approx.deepEqual(x, [math.matrix([[-1], [-1], [-1], [4]])]) + approxDeepEqual(x, [math.matrix([[-1], [-1], [-1], [4]])]) }) it('should return an empty array when there is no solution', function () { @@ -120,34 +120,34 @@ describe('usolveAll', function () { }) it('should solve systems with singular dense matrices', function () { - approx.deepEqual( + approxDeepEqual( math.usolveAll([[1, 1, -1], [0, 0, 1], [0, 0, 2]], [1, 2, 4]), [[[3], [0], [2]], [[2], [1], [2]]] ) - approx.deepEqual( + approxDeepEqual( math.usolveAll([[0, 1, 2], [0, 1, 1], [0, 0, 0]], [2, 2, 0]), [[[0], [2], [0]], [[1], [2], [0]]] ) - approx.deepEqual( + approxDeepEqual( math.usolveAll([[0, 1, 1], [0, 1, 1], [0, 0, 0]], [2, 2, 0]), [[[0], [2], [0]], [[0], [1], [1]], [[1], [2], [0]]] ) }) it('should solve systems with singular sparse matrices', function () { - approx.deepEqual( + approxDeepEqual( math.usolveAll(math.matrix([[1, 1, -1], [0, 0, 1], [0, 0, 2]], 'sparse'), [1, 2, 4]), [math.matrix([[3], [0], [2]]), math.matrix([[2], [1], [2]])] ) - approx.deepEqual( + approxDeepEqual( math.usolveAll(math.matrix([[0, 1, 2], [0, 1, 1], [0, 0, 0]], 'sparse'), [2, 2, 0]), [math.matrix([[0], [2], [0]]), math.matrix([[1], [2], [0]])] ) - approx.deepEqual( + approxDeepEqual( math.usolveAll(math.matrix([[0, 1, 1], [0, 1, 1], [0, 0, 0]], 'sparse'), [2, 2, 0]), [math.matrix([[0], [2], [0]]), math.matrix([[0], [1], [1]]), math.matrix([[1], [2], [0]])] ) diff --git a/test/unit-tests/function/algebra/sparse/csLu.test.js b/test/unit-tests/function/algebra/sparse/csLu.test.js index 4ffe24ed79..c252b22966 100644 --- a/test/unit-tests/function/algebra/sparse/csLu.test.js +++ b/test/unit-tests/function/algebra/sparse/csLu.test.js @@ -1,5 +1,5 @@ import assert from 'assert' -import approx from '../../../../../tools/approx.js' +import { approxDeepEqual } from '../../../../../tools/approx.js' import math from '../../../../../src/defaultInstance.js' import { csPermute } from '../../../../../src/function/algebra/sparse/csPermute.js' import { createCsLu } from '../../../../../src/function/algebra/sparse/csLu.js' @@ -24,7 +24,7 @@ describe('csLu', function () { // P assert.deepStrictEqual(r.pinv, [0, 1]) // verify - approx.deepEqual(csPermute(m, r.pinv, null, true), math.multiply(r.L, r.U)) + approxDeepEqual(csPermute(m, r.pinv, null, true), math.multiply(r.L, r.U)) }) it('should decompose matrix, 4 x 4, natural ordering (order=0), partial pivoting', function () { @@ -43,7 +43,7 @@ describe('csLu', function () { const r = csLu(m, s, 1) // verify - approx.deepEqual(csPermute(m, r.pinv, s.q, true).valueOf(), math.multiply(r.L, r.U).valueOf()) + approxDeepEqual(csPermute(m, r.pinv, s.q, true).valueOf(), math.multiply(r.L, r.U).valueOf()) }) it('should decompose matrix, 4 x 4, amd(A+A\') (order=1), partial pivoting', function () { @@ -62,7 +62,7 @@ describe('csLu', function () { const r = csLu(m, s, 1) // verify - approx.deepEqual(csPermute(m, r.pinv, s.q, true).valueOf(), math.multiply(r.L, r.U).valueOf()) + approxDeepEqual(csPermute(m, r.pinv, s.q, true).valueOf(), math.multiply(r.L, r.U).valueOf()) }) it('should decompose matrix, 4 x 4, amd(A\'*A) (order=2), partial pivoting', function () { @@ -81,7 +81,7 @@ describe('csLu', function () { const r = csLu(m, s, 1) // verify - approx.deepEqual(csPermute(m, r.pinv, s.q, true).valueOf(), math.multiply(r.L, r.U).valueOf()) + approxDeepEqual(csPermute(m, r.pinv, s.q, true).valueOf(), math.multiply(r.L, r.U).valueOf()) }) it('should decompose matrix, 4 x 4, amd(A\'*A) (order=3), partial pivoting', function () { @@ -100,6 +100,6 @@ describe('csLu', function () { const r = csLu(m, s, 1) // verify - approx.deepEqual(csPermute(m, r.pinv, s.q, true).valueOf(), math.multiply(r.L, r.U).valueOf()) + approxDeepEqual(csPermute(m, r.pinv, s.q, true).valueOf(), math.multiply(r.L, r.U).valueOf()) }) }) diff --git a/test/unit-tests/function/arithmetic/addScalar.test.js b/test/unit-tests/function/arithmetic/addScalar.test.js index 36a8bcb95f..e15c81a86c 100644 --- a/test/unit-tests/function/arithmetic/addScalar.test.js +++ b/test/unit-tests/function/arithmetic/addScalar.test.js @@ -1,7 +1,7 @@ // test add import assert from 'assert' -import approx from '../../../../tools/approx.js' +import { approxDeepEqual } from '../../../../tools/approx.js' import math from '../../../../src/defaultInstance.js' import Decimal from 'decimal.js' const { add, BigNumber } = math @@ -116,11 +116,11 @@ describe('addScalar', function () { }) it('should add two measures of the same unit', function () { - approx.deepEqual(add(math.unit(5, 'km'), math.unit(100, 'mile')), math.unit(165.93, 'km')) + approxDeepEqual(add(math.unit(5, 'km'), math.unit(100, 'mile')), math.unit(165.93, 'km')) - approx.deepEqual(add(math.unit(math.fraction(1, 3), 'm'), math.unit(math.fraction(1, 3), 'm')).toString(), '2/3 m') + approxDeepEqual(add(math.unit(math.fraction(1, 3), 'm'), math.unit(math.fraction(1, 3), 'm')).toString(), '2/3 m') - approx.deepEqual(add(math.unit(math.complex(-3, 2), 'g'), math.unit(math.complex(5, -6), 'g')).toString(), '(2 - 4i) g') + approxDeepEqual(add(math.unit(math.complex(-3, 2), 'g'), math.unit(math.complex(5, -6), 'g')).toString(), '(2 - 4i) g') }) it('should add units properly even when they have offsets', function () { @@ -128,7 +128,7 @@ describe('addScalar', function () { assert.deepStrictEqual(add(t, math.unit(1, 'degC')), math.unit(21, 'degC')) t = math.unit(68, 'degF') assert.deepStrictEqual(add(t, math.unit(2, 'degF')), math.unit(70, 'degF')) - approx.deepEqual(add(t, math.unit(1, 'degC')), math.unit(69.8, 'degF')) + approxDeepEqual(add(t, math.unit(1, 'degC')), math.unit(69.8, 'degF')) }) it('should throw an error for two measures of different units', function () { diff --git a/test/unit-tests/function/arithmetic/cbrt.test.js b/test/unit-tests/function/arithmetic/cbrt.test.js index 06c0e0af89..e0075cfd5a 100644 --- a/test/unit-tests/function/arithmetic/cbrt.test.js +++ b/test/unit-tests/function/arithmetic/cbrt.test.js @@ -1,7 +1,7 @@ // test cbrt import assert from 'assert' -import approx from '../../../../tools/approx.js' +import { approxEqual, approxDeepEqual } from '../../../../tools/approx.js' import math from '../../../../src/defaultInstance.js' const cbrt = math.cbrt const bignumber = math.bignumber @@ -21,7 +21,7 @@ describe('cbrt', function () { assert.strictEqual(cbrt(64), 4) assert.strictEqual(cbrt(125), 5) - approx.equal(cbrt(10), 2.1544346900318834) + approxEqual(cbrt(10), 2.1544346900318834) }) it('should return the cubic root of a negative number', function () { @@ -35,13 +35,13 @@ describe('cbrt', function () { }) it('should return all cubic roots of a number', function () { - approx.deepEqual(cbrt(8, true), math.matrix([ + approxDeepEqual(cbrt(8, true), math.matrix([ complex('2'), complex('-1 + 1.7321i'), complex('-1 - 1.7321i') ])) - approx.deepEqual(cbrt(-8, true), math.matrix([ + approxDeepEqual(cbrt(-8, true), math.matrix([ complex('1 + 1.7321i'), complex('-2'), complex('1 - 1.7321i') @@ -65,19 +65,19 @@ describe('cbrt', function () { }) it('should return the cubic root of a complex number', function () { - approx.deepEqual(cbrt(complex('2 + 3i')), complex('1.451856618352664928164697 + 0.493403534104004716735578i')) - approx.deepEqual(cbrt(complex('-2 + 3i')), complex('1.15322830402742 + 1.01064294709397i')) - approx.deepEqual(cbrt(complex('8i')), complex('1.73205080756888 + i')) + approxDeepEqual(cbrt(complex('2 + 3i')), complex('1.451856618352664928164697 + 0.493403534104004716735578i')) + approxDeepEqual(cbrt(complex('-2 + 3i')), complex('1.15322830402742 + 1.01064294709397i')) + approxDeepEqual(cbrt(complex('8i')), complex('1.73205080756888 + i')) }) it('should return all three roots of a complex number', function () { - approx.deepEqual(cbrt(complex('2 + 3i'), true), math.matrix([ + approxDeepEqual(cbrt(complex('2 + 3i'), true), math.matrix([ complex('1.4519 + 0.4934i'), complex('-1.1532 + 1.0106i'), complex('-0.2986 - 1.5040i') ])) - approx.deepEqual(cbrt(complex('8i'), true), math.matrix([ + approxDeepEqual(cbrt(complex('8i'), true), math.matrix([ complex(' 1.7321 + i'), complex('-1.7321 + i'), complex('-2i') @@ -85,7 +85,7 @@ describe('cbrt', function () { const math2 = math.create({ matrix: 'Array' }) - approx.deepEqual(math2.cbrt(complex('8i'), true), [ + approxDeepEqual(math2.cbrt(complex('8i'), true), [ complex(' 1.7321 + i'), complex('-1.7321 + i'), complex('-2i') @@ -102,7 +102,7 @@ describe('cbrt', function () { assert.deepStrictEqual(cbrt(math.unit(math.bignumber(-27), 'm^3')).value, math.bignumber(-3)) assert(math.isComplex(cbrt(math.unit(math.complex(-46, 9), 's^3')).value)) - approx.deepEqual(cbrt(math.unit(math.complex(-46, 9), 's^3')).value, math.complex(2, 3)) + approxDeepEqual(cbrt(math.unit(math.complex(-46, 9), 's^3')).value, math.complex(2, 3)) }) it('should throw an error when used with a string', function () { diff --git a/test/unit-tests/function/arithmetic/ceil.test.js b/test/unit-tests/function/arithmetic/ceil.test.js index cf49673065..e4a40508a2 100644 --- a/test/unit-tests/function/arithmetic/ceil.test.js +++ b/test/unit-tests/function/arithmetic/ceil.test.js @@ -1,7 +1,7 @@ // test ceil import assert from 'assert' -import approx from '../../../../tools/approx.js' +import { approxEqual, approxDeepEqual } from '../../../../tools/approx.js' import math from '../../../../src/defaultInstance.js' const { bignumber, ceil, complex, fraction, i, isFraction, matrix, pi, unit, parse, sparse } = math @@ -12,29 +12,29 @@ describe('ceil', function () { }) it('should return the ceil of a number', function () { - approx.equal(ceil(0), 0) - approx.equal(ceil(1), 1) - approx.equal(ceil(1.3), 2) - approx.equal(ceil(1.8), 2) - approx.equal(ceil(2), 2) - approx.equal(ceil(-1), -1) - approx.equal(ceil(-1.3), -1) - approx.equal(ceil(-1.8), -1) - approx.equal(ceil(-2), -2) - approx.equal(ceil(-2.1), -2) - approx.equal(ceil(pi), 4) + approxEqual(ceil(0), 0) + approxEqual(ceil(1), 1) + approxEqual(ceil(1.3), 2) + approxEqual(ceil(1.8), 2) + approxEqual(ceil(2), 2) + approxEqual(ceil(-1), -1) + approxEqual(ceil(-1.3), -1) + approxEqual(ceil(-1.8), -1) + approxEqual(ceil(-2), -2) + approxEqual(ceil(-2.1), -2) + approxEqual(ceil(pi), 4) }) it('should return the ceil of a number with a given number of decimals', function () { - approx.equal(ceil(0, 5), 0) - approx.equal(ceil(2, 3), 2) - approx.equal(ceil(math.pi, 3), 3.142) - approx.equal(ceil(math.pi, 6), 3.141593) - approx.equal(ceil(1234.5678, 2), 1234.57) - approx.equal(ceil(2.13, 2), 2.13) - approx.equal(ceil(-1.8, 0), -1) - approx.equal(ceil(-1.8, 1), -1.8) - approx.equal(ceil(-2.178, 2), -2.17) + approxEqual(ceil(0, 5), 0) + approxEqual(ceil(2, 3), 2) + approxEqual(ceil(math.pi, 3), 3.142) + approxEqual(ceil(math.pi, 6), 3.141593) + approxEqual(ceil(1234.5678, 2), 1234.57) + approxEqual(ceil(2.13, 2), 2.13) + approxEqual(ceil(-1.8, 0), -1) + approxEqual(ceil(-1.8, 1), -1.8) + approxEqual(ceil(-2.178, 2), -2.17) }) it('should return the ceil of a big number', function () { @@ -65,23 +65,23 @@ describe('ceil', function () { }) it('should return the ceil of real and imag part of a complex', function () { - approx.deepEqual(ceil(complex(0, 0)), complex(0, 0)) - approx.deepEqual(ceil(complex(1.3, 1.8)), complex(2, 2)) - approx.deepEqual(ceil(i), complex(0, 1)) - approx.deepEqual(ceil(complex(-1.3, -1.8)), complex(-1, -1)) + approxDeepEqual(ceil(complex(0, 0)), complex(0, 0)) + approxDeepEqual(ceil(complex(1.3, 1.8)), complex(2, 2)) + approxDeepEqual(ceil(i), complex(0, 1)) + approxDeepEqual(ceil(complex(-1.3, -1.8)), complex(-1, -1)) }) it('should return the ceil of real and imag part of a complex with a given number of decimals', function () { - approx.deepEqual(ceil(complex(0, 0), 3), complex(0, 0)) - approx.deepEqual(ceil(complex(1.3, 1.8), 0), complex(2, 2)) - approx.deepEqual(ceil(complex(1.3, 1.8), 1), complex(1.3, 1.8)) - approx.deepEqual(ceil(complex(1.315, 1.878), 2), complex(1.32, 1.88)) - approx.deepEqual(ceil(complex(1.315, 1.878), bignumber(2)), complex(1.32, 1.88)) - approx.deepEqual(ceil(i, 0), complex(0, 1)) - approx.deepEqual(ceil(i, 4), complex(0, 1)) - approx.deepEqual(ceil(complex(-1.3, -1.8), 0), complex(-1, -1)) - approx.deepEqual(ceil(complex(-1.3, -1.8), 1), complex(-1.3, -1.8)) - approx.deepEqual(ceil(complex(-1.315, -1.878), 2), complex(-1.31, -1.87)) + approxDeepEqual(ceil(complex(0, 0), 3), complex(0, 0)) + approxDeepEqual(ceil(complex(1.3, 1.8), 0), complex(2, 2)) + approxDeepEqual(ceil(complex(1.3, 1.8), 1), complex(1.3, 1.8)) + approxDeepEqual(ceil(complex(1.315, 1.878), 2), complex(1.32, 1.88)) + approxDeepEqual(ceil(complex(1.315, 1.878), bignumber(2)), complex(1.32, 1.88)) + approxDeepEqual(ceil(i, 0), complex(0, 1)) + approxDeepEqual(ceil(i, 4), complex(0, 1)) + approxDeepEqual(ceil(complex(-1.3, -1.8), 0), complex(-1, -1)) + approxDeepEqual(ceil(complex(-1.3, -1.8), 1), complex(-1.3, -1.8)) + approxDeepEqual(ceil(complex(-1.315, -1.878), 2), complex(-1.31, -1.87)) }) it('should return the ceil of a fraction', function () { @@ -166,14 +166,14 @@ describe('ceil', function () { }) it('should ceil each element in a matrix, array or range', function () { - approx.deepEqual(ceil([1.2, 3.4, 5.6, 7.8, 10.0]), [2, 4, 6, 8, 10]) - approx.deepEqual(ceil(matrix([1.2, 3.4, 5.6, 7.8, 10.0])), matrix([2, 4, 6, 8, 10])) + approxDeepEqual(ceil([1.2, 3.4, 5.6, 7.8, 10.0]), [2, 4, 6, 8, 10]) + approxDeepEqual(ceil(matrix([1.2, 3.4, 5.6, 7.8, 10.0])), matrix([2, 4, 6, 8, 10])) }) it('should ceil each element in a matrix with a given number of decimals', function () { - approx.deepEqual(ceil([1.282, 3.415, -5.121, -10.128], 2), [1.29, 3.42, -5.12, -10.12]) - approx.deepEqual(ceil(matrix([1.282, 3.415, -5.121, -10.128]), 2), matrix([1.29, 3.42, -5.12, -10.12])) - approx.deepEqual(ceil(matrix([1.282, 3.415, -5.121, -10.128]), bignumber(2)), matrix(bignumber([1.29, 3.42, -5.12, -10.12]))) + approxDeepEqual(ceil([1.282, 3.415, -5.121, -10.128], 2), [1.29, 3.42, -5.12, -10.12]) + approxDeepEqual(ceil(matrix([1.282, 3.415, -5.121, -10.128]), 2), matrix([1.29, 3.42, -5.12, -10.12])) + approxDeepEqual(ceil(matrix([1.282, 3.415, -5.121, -10.128]), bignumber(2)), matrix(bignumber([1.29, 3.42, -5.12, -10.12]))) }) it('should ceil when number of decimals is provided in an array', function () { @@ -196,7 +196,7 @@ describe('ceil', function () { it('should ceil dense matrix with given bignumber decimals', function () { const expected = matrix([[1.778, 2.346], [-90.827, 0]]) - approx.deepEqual(ceil(matrix([[1.7777, 2.3456], [-90.8272, 0]]), bignumber(3)), expected) + approxDeepEqual(ceil(matrix([[1.7777, 2.3456], [-90.8272, 0]]), bignumber(3)), expected) }) it('should ceil sparse matrix', function () { diff --git a/test/unit-tests/function/arithmetic/createHypot.test.js b/test/unit-tests/function/arithmetic/createHypot.test.js index 3b028685ab..a0d172a2f8 100644 --- a/test/unit-tests/function/arithmetic/createHypot.test.js +++ b/test/unit-tests/function/arithmetic/createHypot.test.js @@ -1,7 +1,7 @@ // test hypot import assert from 'assert' -import approx from '../../../../tools/approx.js' +import { approxEqual } from '../../../../tools/approx.js' import math from '../../../../src/defaultInstance.js' const hypot = math.hypot const bignumber = math.bignumber @@ -10,7 +10,7 @@ describe('hypot', function () { it('should return the hypot of numbers', function () { assert.strictEqual(hypot(3, 4), 5) assert.strictEqual(hypot(3, -4), 5) - approx.equal(hypot(3, 4, 5), 7.0710678118654755) + approxEqual(hypot(3, 4, 5), 7.0710678118654755) assert.strictEqual(hypot(-2), 2) assert.strictEqual(hypot(0), 0) assert.strictEqual(hypot(Infinity), Infinity) diff --git a/test/unit-tests/function/arithmetic/divide.test.js b/test/unit-tests/function/arithmetic/divide.test.js index ccc83c528b..4333c3b7f1 100644 --- a/test/unit-tests/function/arithmetic/divide.test.js +++ b/test/unit-tests/function/arithmetic/divide.test.js @@ -2,7 +2,7 @@ import assert from 'assert' import math from '../../../../src/defaultInstance.js' -import approx from '../../../../tools/approx.js' +import { approxEqual, approxDeepEqual } from '../../../../tools/approx.js' const divide = math.divide const bignumber = math.bignumber const complex = math.complex @@ -29,7 +29,7 @@ describe('divide', function () { it('should divide mixed numbers and booleans', function () { assert.strictEqual(divide(2, true), 2) assert.strictEqual(divide(2, false), Infinity) - approx.equal(divide(true, 2), 0.5) + approxEqual(divide(true, 2), 0.5) assert.strictEqual(divide(false, 2), 0) }) @@ -55,36 +55,36 @@ describe('divide', function () { }) it('should divide two complex numbers', function () { - approx.deepEqual(divide(complex('2+3i'), 2), complex('1+1.5i')) - approx.deepEqual(divide(complex('2+3i'), complex('4i')), complex('0.75 - 0.5i')) - approx.deepEqual(divide(complex('2i'), complex('4i')), complex('0.5')) - approx.deepEqual(divide(4, complex('1+2i')), complex('0.8 - 1.6i')) - approx.deepEqual(divide(math.i, 0), complex(Infinity, Infinity)) - approx.deepEqual(divide(complex(0, 1), 0), complex(Infinity, Infinity)) - approx.deepEqual(divide(complex(1, 0), 0), complex(Infinity, Infinity)) - approx.deepEqual(divide(complex(0, 1), complex(0, 0)), complex(Infinity, Infinity)) - approx.deepEqual(divide(complex(1, 1), complex(0, 0)), complex(Infinity, Infinity)) - approx.deepEqual(divide(complex(1, -1), complex(0, 0)), complex(Infinity, -Infinity)) - approx.deepEqual(divide(complex(-1, 1), complex(0, 0)), complex(-Infinity, Infinity)) - approx.deepEqual(divide(complex(1, 1), complex(0, 1)), complex(1, -1)) - approx.deepEqual(divide(complex(1, 1), complex(1, 0)), complex(1, 1)) - - approx.deepEqual(divide(complex(2, 3), complex(4, 5)), complex('0.5609756097560976 + 0.0487804878048781i')) - approx.deepEqual(divide(complex(2, 3), complex(4, -5)), complex('-0.170731707317073 + 0.536585365853659i')) - approx.deepEqual(divide(complex(2, 3), complex(-4, 5)), complex('0.170731707317073 - 0.536585365853659i')) - approx.deepEqual(divide(complex(2, 3), complex(-4, -5)), complex('-0.5609756097560976 - 0.0487804878048781i')) - approx.deepEqual(divide(complex(2, -3), complex(4, 5)), complex('-0.170731707317073 - 0.536585365853659i')) - approx.deepEqual(divide(complex(2, -3), complex(4, -5)), complex('0.5609756097560976 - 0.0487804878048781i')) - approx.deepEqual(divide(complex(2, -3), complex(-4, 5)), complex('-0.5609756097560976 + 0.0487804878048781i')) - approx.deepEqual(divide(complex(2, -3), complex(-4, -5)), complex('0.170731707317073 + 0.536585365853659i')) - approx.deepEqual(divide(complex(-2, 3), complex(4, 5)), complex('0.170731707317073 + 0.536585365853659i')) - approx.deepEqual(divide(complex(-2, 3), complex(4, -5)), complex('-0.5609756097560976 + 0.0487804878048781i')) - approx.deepEqual(divide(complex(-2, 3), complex(-4, 5)), complex('0.5609756097560976 - 0.0487804878048781i')) - approx.deepEqual(divide(complex(-2, 3), complex(-4, -5)), complex('-0.170731707317073 - 0.536585365853659i')) - approx.deepEqual(divide(complex(-2, -3), complex(4, 5)), complex('-0.5609756097560976 - 0.0487804878048781i')) - approx.deepEqual(divide(complex(-2, -3), complex(4, -5)), complex('0.170731707317073 - 0.536585365853659i')) - approx.deepEqual(divide(complex(-2, -3), complex(-4, 5)), complex('-0.170731707317073 + 0.536585365853659i')) - approx.deepEqual(divide(complex(-2, -3), complex(-4, -5)), complex('0.5609756097560976 + 0.0487804878048781i')) + approxDeepEqual(divide(complex('2+3i'), 2), complex('1+1.5i')) + approxDeepEqual(divide(complex('2+3i'), complex('4i')), complex('0.75 - 0.5i')) + approxDeepEqual(divide(complex('2i'), complex('4i')), complex('0.5')) + approxDeepEqual(divide(4, complex('1+2i')), complex('0.8 - 1.6i')) + approxDeepEqual(divide(math.i, 0), complex(Infinity, Infinity)) + approxDeepEqual(divide(complex(0, 1), 0), complex(Infinity, Infinity)) + approxDeepEqual(divide(complex(1, 0), 0), complex(Infinity, Infinity)) + approxDeepEqual(divide(complex(0, 1), complex(0, 0)), complex(Infinity, Infinity)) + approxDeepEqual(divide(complex(1, 1), complex(0, 0)), complex(Infinity, Infinity)) + approxDeepEqual(divide(complex(1, -1), complex(0, 0)), complex(Infinity, -Infinity)) + approxDeepEqual(divide(complex(-1, 1), complex(0, 0)), complex(-Infinity, Infinity)) + approxDeepEqual(divide(complex(1, 1), complex(0, 1)), complex(1, -1)) + approxDeepEqual(divide(complex(1, 1), complex(1, 0)), complex(1, 1)) + + approxDeepEqual(divide(complex(2, 3), complex(4, 5)), complex('0.5609756097560976 + 0.0487804878048781i')) + approxDeepEqual(divide(complex(2, 3), complex(4, -5)), complex('-0.170731707317073 + 0.536585365853659i')) + approxDeepEqual(divide(complex(2, 3), complex(-4, 5)), complex('0.170731707317073 - 0.536585365853659i')) + approxDeepEqual(divide(complex(2, 3), complex(-4, -5)), complex('-0.5609756097560976 - 0.0487804878048781i')) + approxDeepEqual(divide(complex(2, -3), complex(4, 5)), complex('-0.170731707317073 - 0.536585365853659i')) + approxDeepEqual(divide(complex(2, -3), complex(4, -5)), complex('0.5609756097560976 - 0.0487804878048781i')) + approxDeepEqual(divide(complex(2, -3), complex(-4, 5)), complex('-0.5609756097560976 + 0.0487804878048781i')) + approxDeepEqual(divide(complex(2, -3), complex(-4, -5)), complex('0.170731707317073 + 0.536585365853659i')) + approxDeepEqual(divide(complex(-2, 3), complex(4, 5)), complex('0.170731707317073 + 0.536585365853659i')) + approxDeepEqual(divide(complex(-2, 3), complex(4, -5)), complex('-0.5609756097560976 + 0.0487804878048781i')) + approxDeepEqual(divide(complex(-2, 3), complex(-4, 5)), complex('0.5609756097560976 - 0.0487804878048781i')) + approxDeepEqual(divide(complex(-2, 3), complex(-4, -5)), complex('-0.170731707317073 - 0.536585365853659i')) + approxDeepEqual(divide(complex(-2, -3), complex(4, 5)), complex('-0.5609756097560976 - 0.0487804878048781i')) + approxDeepEqual(divide(complex(-2, -3), complex(4, -5)), complex('0.170731707317073 - 0.536585365853659i')) + approxDeepEqual(divide(complex(-2, -3), complex(-4, 5)), complex('-0.170731707317073 + 0.536585365853659i')) + approxDeepEqual(divide(complex(-2, -3), complex(-4, -5)), complex('0.5609756097560976 + 0.0487804878048781i')) }) it('should divide mixed complex numbers and numbers', function () { @@ -125,7 +125,7 @@ describe('divide', function () { assert.strictEqual(divide(math.fraction(10), math.unit(4, 'mg/s')).toString(), '5/2 s / mg') assert.strictEqual(divide(math.fraction(10), math.unit(math.fraction(4), 'mg/s')).toString(), '5/2 s / mg') - approx.equal(math.format(divide(10, math.unit(math.complex(1, 2), 'm/s')), 14), '(2 - 4i) s / m') + approxEqual(math.format(divide(10, math.unit(math.complex(1, 2), 'm/s')), 14), '(2 - 4i) s / m') }) it('should divide two units', function () { @@ -171,7 +171,7 @@ describe('divide', function () { }) it('should divide 1 over a matrix (matrix inverse)', function () { - approx.deepEqual(divide(1, [ + approxDeepEqual(divide(1, [ [1, 4, 7], [3, 0, 5], [-1, 9, 11] diff --git a/test/unit-tests/function/arithmetic/dotDivide.test.js b/test/unit-tests/function/arithmetic/dotDivide.test.js index 77348b17b0..ac49cb2764 100644 --- a/test/unit-tests/function/arithmetic/dotDivide.test.js +++ b/test/unit-tests/function/arithmetic/dotDivide.test.js @@ -2,7 +2,7 @@ import assert from 'assert' import math from '../../../../src/defaultInstance.js' -import approx from '../../../../tools/approx.js' +import { approxEqual, approxDeepEqual } from '../../../../tools/approx.js' const dotDivide = math.dotDivide const complex = math.complex @@ -27,7 +27,7 @@ describe('dotDivide', function () { it('should add mixed numbers and booleans', function () { assert.strictEqual(dotDivide(2, true), 2) assert.strictEqual(dotDivide(2, false), Infinity) - approx.equal(dotDivide(true, 2), 0.5) + approxEqual(dotDivide(true, 2), 0.5) assert.strictEqual(dotDivide(false, 2), 0) }) @@ -41,10 +41,10 @@ describe('dotDivide', function () { }) it('should divide two complex numbers', function () { - approx.deepEqual(dotDivide(complex('2+3i'), 2), complex('1+1.5i')) - approx.deepEqual(dotDivide(complex('2+3i'), complex('4i')), complex('0.75 - 0.5i')) - approx.deepEqual(dotDivide(complex('2i'), complex('4i')), 0.5) - approx.deepEqual(dotDivide(4, complex('1+2i')), complex('0.8 - 1.6i')) + approxDeepEqual(dotDivide(complex('2+3i'), 2), complex('1+1.5i')) + approxDeepEqual(dotDivide(complex('2+3i'), complex('4i')), complex('0.75 - 0.5i')) + approxDeepEqual(dotDivide(complex('2i'), complex('4i')), 0.5) + approxDeepEqual(dotDivide(4, complex('1+2i')), complex('0.8 - 1.6i')) }) it('should divide a unit by a number', function () { @@ -71,7 +71,7 @@ describe('dotDivide', function () { }) it('should divide 1 over a array element-wise', function () { - approx.deepEqual(dotDivide(1, [[1, 4, 7], [3, 0, 5], [-1, 9, 11]]), [[1, 0.25, 1 / 7], [1 / 3, Infinity, 0.2], [-1, 1 / 9, 1 / 11]]) + approxDeepEqual(dotDivide(1, [[1, 4, 7], [3, 0, 5], [-1, 9, 11]]), [[1, 0.25, 1 / 7], [1 / 3, Infinity, 0.2], [-1, 1 / 9, 1 / 11]]) }) it('should divide broadcastable arrays element-wise', function () { @@ -115,7 +115,7 @@ describe('dotDivide', function () { }) it('should divide 1 over a dense matrix element-wise', function () { - approx.deepEqual(dotDivide(1, math.matrix([[1, 4, 7], [3, 0, 5], [-1, 9, 11]])), math.matrix([[1, 0.25, 1 / 7], [1 / 3, Infinity, 0.2], [-1, 1 / 9, 1 / 11]])) + approxDeepEqual(dotDivide(1, math.matrix([[1, 4, 7], [3, 0, 5], [-1, 9, 11]])), math.matrix([[1, 0.25, 1 / 7], [1 / 3, Infinity, 0.2], [-1, 1 / 9, 1 / 11]])) }) it('should perform (dense matrix ./ array) element-wise matrix division', function () { @@ -150,7 +150,7 @@ describe('dotDivide', function () { }) it('should divide 1 over a sparse matrix element-wise', function () { - approx.deepEqual(dotDivide(1, math.sparse([[1, 4, 7], [3, 0, 5], [-1, 9, 11]])), math.matrix([[1, 0.25, 1 / 7], [1 / 3, Infinity, 0.2], [-1, 1 / 9, 1 / 11]])) + approxDeepEqual(dotDivide(1, math.sparse([[1, 4, 7], [3, 0, 5], [-1, 9, 11]])), math.matrix([[1, 0.25, 1 / 7], [1 / 3, Infinity, 0.2], [-1, 1 / 9, 1 / 11]])) }) it('should perform (sparse matrix ./ array) element-wise matrix division', function () { diff --git a/test/unit-tests/function/arithmetic/dotMultiply.test.js b/test/unit-tests/function/arithmetic/dotMultiply.test.js index a05b9067f5..8e7fb57e75 100644 --- a/test/unit-tests/function/arithmetic/dotMultiply.test.js +++ b/test/unit-tests/function/arithmetic/dotMultiply.test.js @@ -2,7 +2,7 @@ import assert from 'assert' import math from '../../../../src/defaultInstance.js' -import approx from '../../../../tools/approx.js' +import { approxEqual, approxDeepEqual } from '../../../../tools/approx.js' const dotMultiply = math.dotMultiply const divide = math.divide const matrix = math.matrix @@ -13,11 +13,11 @@ const unit = math.unit describe('dotMultiply', function () { it('should multiply 2 numbers', function () { // number - approx.equal(dotMultiply(2, 3), 6) - approx.equal(dotMultiply(-2, 3), -6) - approx.equal(dotMultiply(-2, -3), 6) - approx.equal(dotMultiply(5, 0), 0) - approx.equal(dotMultiply(0, 5), 0) + approxEqual(dotMultiply(2, 3), 6) + approxEqual(dotMultiply(-2, 3), -6) + approxEqual(dotMultiply(-2, -3), 6) + approxEqual(dotMultiply(5, 0), 0) + approxEqual(dotMultiply(0, 5), 0) }) it('should multiply booleans', function () { @@ -36,12 +36,12 @@ describe('dotMultiply', function () { it('should multiply 2 complex numbers', function () { // complex - approx.deepEqual(dotMultiply(complex(2, 3), 2), complex(4, 6)) - approx.deepEqual(dotMultiply(complex(2, -3), 2), complex(4, -6)) - approx.deepEqual(dotMultiply(complex(0, 1), complex(2, 3)), complex(-3, 2)) - approx.deepEqual(dotMultiply(complex(2, 3), complex(2, 3)), complex(-5, 12)) - approx.deepEqual(dotMultiply(2, complex(2, 3)), complex(4, 6)) - approx.deepEqual(divide(complex(-5, 12), complex(2, 3)), complex(2, 3)) + approxDeepEqual(dotMultiply(complex(2, 3), 2), complex(4, 6)) + approxDeepEqual(dotMultiply(complex(2, -3), 2), complex(4, -6)) + approxDeepEqual(dotMultiply(complex(0, 1), complex(2, 3)), complex(-3, 2)) + approxDeepEqual(dotMultiply(complex(2, 3), complex(2, 3)), complex(-5, 12)) + approxDeepEqual(dotMultiply(2, complex(2, 3)), complex(4, 6)) + approxDeepEqual(divide(complex(-5, 12), complex(2, 3)), complex(2, 3)) }) it('should multiply a unit by a number', function () { @@ -72,10 +72,10 @@ describe('dotMultiply', function () { it('should multiply a all elements in a array by a number', function () { // matrix, array, range - approx.deepEqual(dotMultiply(a, 3), [[3, 0], [9, 12]]) - approx.deepEqual(dotMultiply(3, a), [[3, 0], [9, 12]]) - approx.deepEqual(dotMultiply([1, 2, 3, 4], 2), [2, 4, 6, 8]) - approx.deepEqual(dotMultiply(2, [1, 2, 3, 4]), [2, 4, 6, 8]) + approxDeepEqual(dotMultiply(a, 3), [[3, 0], [9, 12]]) + approxDeepEqual(dotMultiply(3, a), [[3, 0], [9, 12]]) + approxDeepEqual(dotMultiply([1, 2, 3, 4], 2), [2, 4, 6, 8]) + approxDeepEqual(dotMultiply(2, [1, 2, 3, 4]), [2, 4, 6, 8]) }) it('should multiply broadcastable arrays element-wise', function () { @@ -88,16 +88,16 @@ describe('dotMultiply', function () { }) it('should perform element-wise (array .* array) multiplication', function () { - approx.deepEqual(dotMultiply(a, b), [[5, 0], [0, 32]]) - approx.deepEqual(dotMultiply([[1, 2], [3, 4]], [[5, 6], [7, 8]]), [[5, 12], [21, 32]]) + approxDeepEqual(dotMultiply(a, b), [[5, 0], [0, 32]]) + approxDeepEqual(dotMultiply([[1, 2], [3, 4]], [[5, 6], [7, 8]]), [[5, 12], [21, 32]]) }) it('should perform element-wise (array .* dense matrix) multiplication', function () { - approx.deepEqual(dotMultiply([[1, 2], [3, 4]], matrix([[5, 6], [7, 8]])), matrix([[5, 12], [21, 32]])) + approxDeepEqual(dotMultiply([[1, 2], [3, 4]], matrix([[5, 6], [7, 8]])), matrix([[5, 12], [21, 32]])) }) it('should perform element-wise (array .* sparse matrix) multiplication', function () { - approx.deepEqual(dotMultiply([[1, 2], [3, 4]], sparse([[5, 6], [7, 8]])), sparse([[5, 12], [21, 32]])) + approxDeepEqual(dotMultiply([[1, 2], [3, 4]], sparse([[5, 6], [7, 8]])), sparse([[5, 12], [21, 32]])) }) it('should throw an error if arrays are of different not broadcastable sizes', function () { @@ -120,23 +120,23 @@ describe('dotMultiply', function () { it('should multiply a all elements in a dense matrix by a number', function () { // matrix, array, range - approx.deepEqual(dotMultiply(a, 3), matrix([[3, 0], [9, 12]])) - approx.deepEqual(dotMultiply(3, a), matrix([[3, 0], [9, 12]])) - approx.deepEqual(dotMultiply(matrix([1, 2, 3, 4]), 2), matrix([2, 4, 6, 8])) - approx.deepEqual(dotMultiply(2, matrix([1, 2, 3, 4])), matrix([2, 4, 6, 8])) + approxDeepEqual(dotMultiply(a, 3), matrix([[3, 0], [9, 12]])) + approxDeepEqual(dotMultiply(3, a), matrix([[3, 0], [9, 12]])) + approxDeepEqual(dotMultiply(matrix([1, 2, 3, 4]), 2), matrix([2, 4, 6, 8])) + approxDeepEqual(dotMultiply(2, matrix([1, 2, 3, 4])), matrix([2, 4, 6, 8])) }) it('should perform element-wise (dense matrix .* array) multiplication', function () { - approx.deepEqual(dotMultiply(a, [[5, 6], [0, 8]]), matrix([[5, 0], [0, 32]])) - approx.deepEqual(dotMultiply(matrix([[1, 2], [3, 4]]), [[5, 6], [7, 8]]), matrix([[5, 12], [21, 32]])) + approxDeepEqual(dotMultiply(a, [[5, 6], [0, 8]]), matrix([[5, 0], [0, 32]])) + approxDeepEqual(dotMultiply(matrix([[1, 2], [3, 4]]), [[5, 6], [7, 8]]), matrix([[5, 12], [21, 32]])) }) it('should perform element-wise (dense matrix .* dense matrix) multiplication', function () { - approx.deepEqual(dotMultiply(matrix([[1, 2], [3, 4]]), matrix([[5, 6], [7, 8]])), matrix([[5, 12], [21, 32]])) + approxDeepEqual(dotMultiply(matrix([[1, 2], [3, 4]]), matrix([[5, 6], [7, 8]])), matrix([[5, 12], [21, 32]])) }) it('should perform element-wise (dense matrix .* sparse matrix) multiplication', function () { - approx.deepEqual(dotMultiply(matrix([[1, 2], [3, 4]]), sparse([[5, 6], [7, 8]])), sparse([[5, 12], [21, 32]])) + approxDeepEqual(dotMultiply(matrix([[1, 2], [3, 4]]), sparse([[5, 6], [7, 8]])), sparse([[5, 12], [21, 32]])) }) it('should throw an error if arrays are of different sizes', function () { @@ -159,23 +159,23 @@ describe('dotMultiply', function () { it('should multiply a all elements in a sparse matrix by a number', function () { // matrix, array, range - approx.deepEqual(dotMultiply(a, 3), sparse([[3, 0], [9, 12]])) - approx.deepEqual(dotMultiply(3, a), sparse([[3, 0], [9, 12]])) - approx.deepEqual(dotMultiply(sparse([1, 2, 3, 4]), 2), sparse([2, 4, 6, 8])) - approx.deepEqual(dotMultiply(2, sparse([1, 2, 3, 4])), sparse([2, 4, 6, 8])) + approxDeepEqual(dotMultiply(a, 3), sparse([[3, 0], [9, 12]])) + approxDeepEqual(dotMultiply(3, a), sparse([[3, 0], [9, 12]])) + approxDeepEqual(dotMultiply(sparse([1, 2, 3, 4]), 2), sparse([2, 4, 6, 8])) + approxDeepEqual(dotMultiply(2, sparse([1, 2, 3, 4])), sparse([2, 4, 6, 8])) }) it('should perform element-wise (sparse matrix .* array) multiplication', function () { - approx.deepEqual(dotMultiply(a, [[5, 6], [0, 8]]), sparse([[5, 0], [0, 32]])) - approx.deepEqual(dotMultiply(sparse([[1, 2], [3, 4]]), [[5, 6], [7, 8]]), sparse([[5, 12], [21, 32]])) + approxDeepEqual(dotMultiply(a, [[5, 6], [0, 8]]), sparse([[5, 0], [0, 32]])) + approxDeepEqual(dotMultiply(sparse([[1, 2], [3, 4]]), [[5, 6], [7, 8]]), sparse([[5, 12], [21, 32]])) }) it('should perform element-wise (sparse matrix .* dense matrix) multiplication', function () { - approx.deepEqual(dotMultiply(sparse([[1, 2], [3, 4]]), matrix([[5, 6], [7, 8]])), sparse([[5, 12], [21, 32]])) + approxDeepEqual(dotMultiply(sparse([[1, 2], [3, 4]]), matrix([[5, 6], [7, 8]])), sparse([[5, 12], [21, 32]])) }) it('should perform element-wise (sparse matrix .* sparse matrix) multiplication', function () { - approx.deepEqual(dotMultiply(sparse([[0, 2], [3, 4]]), sparse([[5, 6], [0, 8]])), sparse([[0, 12], [0, 32]])) + approxDeepEqual(dotMultiply(sparse([[0, 2], [3, 4]]), sparse([[5, 6], [0, 8]])), sparse([[0, 12], [0, 32]])) }) it('should throw an error if arrays are of different sizes', function () { diff --git a/test/unit-tests/function/arithmetic/dotPow.test.js b/test/unit-tests/function/arithmetic/dotPow.test.js index c681a3ff3a..7ef10d8a35 100644 --- a/test/unit-tests/function/arithmetic/dotPow.test.js +++ b/test/unit-tests/function/arithmetic/dotPow.test.js @@ -1,7 +1,7 @@ // test exp import assert from 'assert' -import approx from '../../../../tools/approx.js' +import { approxDeepEqual } from '../../../../tools/approx.js' import math from '../../../../src/defaultInstance.js' const complex = math.complex const matrix = math.matrix @@ -11,16 +11,16 @@ const dotPow = math.dotPow describe('dotPow', function () { it('should elevate a number to the given power', function () { - approx.deepEqual(dotPow(2, 3), 8) - approx.deepEqual(dotPow(2, 4), 16) - approx.deepEqual(dotPow(-2, 2), 4) - approx.deepEqual(dotPow(3, 3), 27) - approx.deepEqual(dotPow(3, -2), 0.111111111111111) - approx.deepEqual(dotPow(-3, -2), 0.111111111111111) - approx.deepEqual(dotPow(3, -3), 0.0370370370370370) - approx.deepEqual(dotPow(-3, -3), -0.0370370370370370) - approx.deepEqual(dotPow(2, 1.5), 2.82842712474619) - approx.deepEqual(dotPow(-2, 1.5), complex(0, -2.82842712474619)) + approxDeepEqual(dotPow(2, 3), 8) + approxDeepEqual(dotPow(2, 4), 16) + approxDeepEqual(dotPow(-2, 2), 4) + approxDeepEqual(dotPow(3, 3), 27) + approxDeepEqual(dotPow(3, -2), 0.111111111111111) + approxDeepEqual(dotPow(-3, -2), 0.111111111111111) + approxDeepEqual(dotPow(3, -3), 0.0370370370370370) + approxDeepEqual(dotPow(-3, -3), -0.0370370370370370) + approxDeepEqual(dotPow(2, 1.5), 2.82842712474619) + approxDeepEqual(dotPow(-2, 1.5), complex(0, -2.82842712474619)) }) it('should elevate booleans to the given power', function () { @@ -43,40 +43,40 @@ describe('dotPow', function () { }) it('should elevate a complex number to the given power', function () { - approx.deepEqual(dotPow(complex(-1, -1), complex(-1, -1)), complex('-0.0284750589322119 + 0.0606697332231795i')) - approx.deepEqual(dotPow(complex(-1, -1), complex(-1, 1)), complex('-6.7536199239765713 + 3.1697803027015614i')) - approx.deepEqual(dotPow(complex(-1, -1), complex(0, -1)), complex('0.0891447921553914 - 0.0321946742909677i')) - approx.deepEqual(dotPow(complex(-1, -1), complex(0, 1)), complex('9.92340022667813 + 3.58383962127501i')) - approx.deepEqual(dotPow(complex(-1, -1), complex(1, -1)), complex('-0.1213394664463591 - 0.0569501178644237i')) - approx.deepEqual(dotPow(complex(-1, -1), complex(1, 1)), complex('-6.3395606054031211 - 13.5072398479531426i')) - approx.deepEqual(dotPow(complex(-1, 1), complex(-1, -1)), complex('-6.7536199239765713 - 3.1697803027015614i')) - approx.deepEqual(dotPow(complex(-1, 1), complex(-1, 1)), complex('-0.0284750589322119 - 0.0606697332231795i')) - approx.deepEqual(dotPow(complex(-1, 1), complex(0, -1)), complex('9.92340022667813 - 3.58383962127501i')) - approx.deepEqual(dotPow(complex(-1, 1), complex(0, 1)), complex('0.0891447921553914 + 0.0321946742909677i')) - approx.deepEqual(dotPow(complex(-1, 1), complex(1, -1)), complex('-6.3395606054031211 + 13.5072398479531426i')) - approx.deepEqual(dotPow(complex(-1, 1), complex(1, 1)), complex('-0.1213394664463591 + 0.0569501178644237i')) - - approx.deepEqual(dotPow(complex(0, -1), complex(-1, -1)), complex('0.000000000000000 + 0.207879576350762i')) - approx.deepEqual(dotPow(complex(0, -1), complex(-1, 1)), complex('0.000000000000000 + 4.810477380965351i')) - approx.deepEqual(dotPow(complex(0, -1), complex(1, -1)), complex('0.000000000000000 - 0.207879576350762i')) - approx.deepEqual(dotPow(complex(0, -1), complex(1, 1)), complex('0.000000000000000 - 4.810477380965351i')) - approx.deepEqual(dotPow(complex(0, 1), complex(-1, -1)), complex('0.000000000000000 - 4.810477380965351i')) - approx.deepEqual(dotPow(complex(0, 1), complex(-1, 1)), complex('0.000000000000000 - 0.207879576350762i')) - approx.deepEqual(dotPow(complex(0, 1), complex(1, -1)), complex('0.000000000000000 + 4.810477380965351i')) - approx.deepEqual(dotPow(complex(0, 1), complex(1, 1)), complex('0.000000000000000 + 0.207879576350762i')) - - approx.deepEqual(dotPow(complex(1, -1), complex(-1, -1)), complex('0.2918503793793073 + 0.1369786269150605i')) - approx.deepEqual(dotPow(complex(1, -1), complex(-1, 1)), complex('0.6589325864505904 + 1.4039396486303144i')) - approx.deepEqual(dotPow(complex(1, -1), complex(0, -1)), complex('0.428829006294368 - 0.154871752464247i')) - approx.deepEqual(dotPow(complex(1, -1), complex(0, 1)), complex('2.062872235080905 + 0.745007062179724i')) - approx.deepEqual(dotPow(complex(1, -1), complex(1, -1)), complex('0.2739572538301211 - 0.5837007587586147i')) - approx.deepEqual(dotPow(complex(1, -1), complex(1, 1)), complex('2.8078792972606288 - 1.3178651729011805i')) - approx.deepEqual(dotPow(complex(1, 1), complex(-1, -1)), complex('0.6589325864505904 - 1.4039396486303144i')) - approx.deepEqual(dotPow(complex(1, 1), complex(-1, 1)), complex('0.2918503793793073 - 0.1369786269150605i')) - approx.deepEqual(dotPow(complex(1, 1), complex(0, -1)), complex('2.062872235080905 - 0.745007062179724i')) - approx.deepEqual(dotPow(complex(1, 1), complex(0, 1)), complex('0.428829006294368 + 0.154871752464247i')) - approx.deepEqual(dotPow(complex(1, 1), complex(1, -1)), complex('2.8078792972606288 + 1.3178651729011805i')) - approx.deepEqual(dotPow(complex(1, 1), complex(1, 1)), complex('0.2739572538301211 + 0.5837007587586147i')) + approxDeepEqual(dotPow(complex(-1, -1), complex(-1, -1)), complex('-0.0284750589322119 + 0.0606697332231795i')) + approxDeepEqual(dotPow(complex(-1, -1), complex(-1, 1)), complex('-6.7536199239765713 + 3.1697803027015614i')) + approxDeepEqual(dotPow(complex(-1, -1), complex(0, -1)), complex('0.0891447921553914 - 0.0321946742909677i')) + approxDeepEqual(dotPow(complex(-1, -1), complex(0, 1)), complex('9.92340022667813 + 3.58383962127501i')) + approxDeepEqual(dotPow(complex(-1, -1), complex(1, -1)), complex('-0.1213394664463591 - 0.0569501178644237i')) + approxDeepEqual(dotPow(complex(-1, -1), complex(1, 1)), complex('-6.3395606054031211 - 13.5072398479531426i')) + approxDeepEqual(dotPow(complex(-1, 1), complex(-1, -1)), complex('-6.7536199239765713 - 3.1697803027015614i')) + approxDeepEqual(dotPow(complex(-1, 1), complex(-1, 1)), complex('-0.0284750589322119 - 0.0606697332231795i')) + approxDeepEqual(dotPow(complex(-1, 1), complex(0, -1)), complex('9.92340022667813 - 3.58383962127501i')) + approxDeepEqual(dotPow(complex(-1, 1), complex(0, 1)), complex('0.0891447921553914 + 0.0321946742909677i')) + approxDeepEqual(dotPow(complex(-1, 1), complex(1, -1)), complex('-6.3395606054031211 + 13.5072398479531426i')) + approxDeepEqual(dotPow(complex(-1, 1), complex(1, 1)), complex('-0.1213394664463591 + 0.0569501178644237i')) + + approxDeepEqual(dotPow(complex(0, -1), complex(-1, -1)), complex('0.000000000000000 + 0.207879576350762i')) + approxDeepEqual(dotPow(complex(0, -1), complex(-1, 1)), complex('0.000000000000000 + 4.810477380965351i')) + approxDeepEqual(dotPow(complex(0, -1), complex(1, -1)), complex('0.000000000000000 - 0.207879576350762i')) + approxDeepEqual(dotPow(complex(0, -1), complex(1, 1)), complex('0.000000000000000 - 4.810477380965351i')) + approxDeepEqual(dotPow(complex(0, 1), complex(-1, -1)), complex('0.000000000000000 - 4.810477380965351i')) + approxDeepEqual(dotPow(complex(0, 1), complex(-1, 1)), complex('0.000000000000000 - 0.207879576350762i')) + approxDeepEqual(dotPow(complex(0, 1), complex(1, -1)), complex('0.000000000000000 + 4.810477380965351i')) + approxDeepEqual(dotPow(complex(0, 1), complex(1, 1)), complex('0.000000000000000 + 0.207879576350762i')) + + approxDeepEqual(dotPow(complex(1, -1), complex(-1, -1)), complex('0.2918503793793073 + 0.1369786269150605i')) + approxDeepEqual(dotPow(complex(1, -1), complex(-1, 1)), complex('0.6589325864505904 + 1.4039396486303144i')) + approxDeepEqual(dotPow(complex(1, -1), complex(0, -1)), complex('0.428829006294368 - 0.154871752464247i')) + approxDeepEqual(dotPow(complex(1, -1), complex(0, 1)), complex('2.062872235080905 + 0.745007062179724i')) + approxDeepEqual(dotPow(complex(1, -1), complex(1, -1)), complex('0.2739572538301211 - 0.5837007587586147i')) + approxDeepEqual(dotPow(complex(1, -1), complex(1, 1)), complex('2.8078792972606288 - 1.3178651729011805i')) + approxDeepEqual(dotPow(complex(1, 1), complex(-1, -1)), complex('0.6589325864505904 - 1.4039396486303144i')) + approxDeepEqual(dotPow(complex(1, 1), complex(-1, 1)), complex('0.2918503793793073 - 0.1369786269150605i')) + approxDeepEqual(dotPow(complex(1, 1), complex(0, -1)), complex('2.062872235080905 - 0.745007062179724i')) + approxDeepEqual(dotPow(complex(1, 1), complex(0, 1)), complex('0.428829006294368 + 0.154871752464247i')) + approxDeepEqual(dotPow(complex(1, 1), complex(1, -1)), complex('2.8078792972606288 + 1.3178651729011805i')) + approxDeepEqual(dotPow(complex(1, 1), complex(1, 1)), complex('0.2739572538301211 + 0.5837007587586147i')) }) it('should throw an error with units', function () { @@ -89,15 +89,15 @@ describe('dotPow', function () { describe('Array', function () { it('should elevate array .^ scalar', function () { - approx.deepEqual(dotPow([[1, 2], [0, 4]], 2), [[1, 4], [0, 16]]) - approx.deepEqual(dotPow([[1, 2], [0, 4]], 2.5), [[1, 5.65685424949238], [0, 32]]) - approx.deepEqual(dotPow([[1, 2, 3], [4, 5, 0]], 2), [[1, 4, 9], [16, 25, 0]]) + approxDeepEqual(dotPow([[1, 2], [0, 4]], 2), [[1, 4], [0, 16]]) + approxDeepEqual(dotPow([[1, 2], [0, 4]], 2.5), [[1, 5.65685424949238], [0, 32]]) + approxDeepEqual(dotPow([[1, 2, 3], [4, 5, 0]], 2), [[1, 4, 9], [16, 25, 0]]) }) it('should elevate scalar .^ array', function () { - approx.deepEqual(dotPow(2, [[1, 2], [0, 4]]), [[2, 4], [1, 16]]) - approx.deepEqual(dotPow(2.5, [[1, 2], [0, 4]]), [[2.5, 6.25], [1, 39.0625]]) - approx.deepEqual(dotPow(2, [[1, 2, 3], [4, 5, 0]]), [[2, 4, 8], [16, 32, 1]]) + approxDeepEqual(dotPow(2, [[1, 2], [0, 4]]), [[2, 4], [1, 16]]) + approxDeepEqual(dotPow(2.5, [[1, 2], [0, 4]]), [[2.5, 6.25], [1, 39.0625]]) + approxDeepEqual(dotPow(2, [[1, 2, 3], [4, 5, 0]]), [[2, 4, 8], [16, 32, 1]]) }) it('should elevate broadcastable arrays element-wise', function () { @@ -110,67 +110,67 @@ describe('dotPow', function () { }) it('should elevate array .^ array', function () { - approx.deepEqual(dotPow([[1, 2, 0], [0, 1, 4]], [[2, 1, 0], [4, 1, 0]]), [[1, 2, 1], [0, 1, 1]]) + approxDeepEqual(dotPow([[1, 2, 0], [0, 1, 4]], [[2, 1, 0], [4, 1, 0]]), [[1, 2, 1], [0, 1, 1]]) }) it('should elevate array .^ dense matrix', function () { - approx.deepEqual(dotPow([[1, 2, 0], [0, 1, 4]], matrix([[2, 1, 0], [4, 1, 0]])), matrix([[1, 2, 1], [0, 1, 1]])) + approxDeepEqual(dotPow([[1, 2, 0], [0, 1, 4]], matrix([[2, 1, 0], [4, 1, 0]])), matrix([[1, 2, 1], [0, 1, 1]])) }) it('should elevate array .^ sparse matrix', function () { - approx.deepEqual(dotPow([[1, 2, 0], [0, 1, 4]], sparse([[2, 1, 0], [4, 1, 0]])), matrix([[1, 2, 1], [0, 1, 1]])) + approxDeepEqual(dotPow([[1, 2, 0], [0, 1, 4]], sparse([[2, 1, 0], [4, 1, 0]])), matrix([[1, 2, 1], [0, 1, 1]])) }) }) describe('DenseMatrix', function () { it('should elevate dense matrix .^ scalar', function () { - approx.deepEqual(dotPow(matrix([[1, 2], [0, 4]]), 2), matrix([[1, 4], [0, 16]])) - approx.deepEqual(dotPow(matrix([[1, 2], [0, 4]]), 2.5), matrix([[1, 5.65685424949238], [0, 32]])) - approx.deepEqual(dotPow(matrix([[1, 2, 3], [4, 5, 0]]), 2), matrix([[1, 4, 9], [16, 25, 0]])) + approxDeepEqual(dotPow(matrix([[1, 2], [0, 4]]), 2), matrix([[1, 4], [0, 16]])) + approxDeepEqual(dotPow(matrix([[1, 2], [0, 4]]), 2.5), matrix([[1, 5.65685424949238], [0, 32]])) + approxDeepEqual(dotPow(matrix([[1, 2, 3], [4, 5, 0]]), 2), matrix([[1, 4, 9], [16, 25, 0]])) }) it('should elevate scaler .^ dense matrix', function () { - approx.deepEqual(dotPow(2, matrix([[1, 2], [0, 4]])), matrix([[2, 4], [1, 16]])) - approx.deepEqual(dotPow(2.5, matrix([[1, 2], [0, 4]])), matrix([[2.5, 6.25], [1, 39.0625]])) - approx.deepEqual(dotPow(2, matrix([[1, 2, 3], [4, 5, 0]])), matrix([[2, 4, 8], [16, 32, 1]])) + approxDeepEqual(dotPow(2, matrix([[1, 2], [0, 4]])), matrix([[2, 4], [1, 16]])) + approxDeepEqual(dotPow(2.5, matrix([[1, 2], [0, 4]])), matrix([[2.5, 6.25], [1, 39.0625]])) + approxDeepEqual(dotPow(2, matrix([[1, 2, 3], [4, 5, 0]])), matrix([[2, 4, 8], [16, 32, 1]])) }) it('should elevate dense matrix .^ array', function () { - approx.deepEqual(dotPow(matrix([[1, 2, 0], [0, 1, 4]]), [[2, 1, 0], [4, 1, 0]]), matrix([[1, 2, 1], [0, 1, 1]])) + approxDeepEqual(dotPow(matrix([[1, 2, 0], [0, 1, 4]]), [[2, 1, 0], [4, 1, 0]]), matrix([[1, 2, 1], [0, 1, 1]])) }) it('should elevate dense matrix .^ dense matrix', function () { - approx.deepEqual(dotPow(matrix([[1, 2, 0], [0, 1, 4]]), matrix([[2, 1, 0], [4, 1, 0]])), matrix([[1, 2, 1], [0, 1, 1]])) + approxDeepEqual(dotPow(matrix([[1, 2, 0], [0, 1, 4]]), matrix([[2, 1, 0], [4, 1, 0]])), matrix([[1, 2, 1], [0, 1, 1]])) }) it('should elevate dense matrix .^ sparse matrix', function () { - approx.deepEqual(dotPow(matrix([[1, 2, 0], [0, 1, 4]]), sparse([[2, 1, 0], [4, 1, 0]])), matrix([[1, 2, 1], [0, 1, 1]])) + approxDeepEqual(dotPow(matrix([[1, 2, 0], [0, 1, 4]]), sparse([[2, 1, 0], [4, 1, 0]])), matrix([[1, 2, 1], [0, 1, 1]])) }) }) describe('SparseMatrix', function () { it('should elevate sparse matrix .^ scalar', function () { - approx.deepEqual(dotPow(sparse([[1, 2], [0, 4]]), 2), sparse([[1, 4], [0, 16]])) - approx.deepEqual(dotPow(sparse([[1, 2], [0, 4]]), 2.5), sparse([[1, 5.65685424949238], [0, 32]])) - approx.deepEqual(dotPow(sparse([[1, 2, 3], [4, 5, 0]]), 2), sparse([[1, 4, 9], [16, 25, 0]])) + approxDeepEqual(dotPow(sparse([[1, 2], [0, 4]]), 2), sparse([[1, 4], [0, 16]])) + approxDeepEqual(dotPow(sparse([[1, 2], [0, 4]]), 2.5), sparse([[1, 5.65685424949238], [0, 32]])) + approxDeepEqual(dotPow(sparse([[1, 2, 3], [4, 5, 0]]), 2), sparse([[1, 4, 9], [16, 25, 0]])) }) it('should elevate scalar .^ sparse matrix', function () { - approx.deepEqual(dotPow(2, sparse([[1, 2], [0, 4]])), matrix([[2, 4], [1, 16]])) - approx.deepEqual(dotPow(2.5, sparse([[1, 2], [0, 4]])), matrix([[2.5, 6.25], [1, 39.0625]])) - approx.deepEqual(dotPow(2, sparse([[1, 2, 3], [4, 5, 0]])), matrix([[2, 4, 8], [16, 32, 1]])) + approxDeepEqual(dotPow(2, sparse([[1, 2], [0, 4]])), matrix([[2, 4], [1, 16]])) + approxDeepEqual(dotPow(2.5, sparse([[1, 2], [0, 4]])), matrix([[2.5, 6.25], [1, 39.0625]])) + approxDeepEqual(dotPow(2, sparse([[1, 2, 3], [4, 5, 0]])), matrix([[2, 4, 8], [16, 32, 1]])) }) it('should elevate sparse matrix .^ array', function () { - approx.deepEqual(dotPow(sparse([[1, 2, 0], [0, 1, 4]]), [[2, 1, 0], [4, 1, 0]]), matrix([[1, 2, 1], [0, 1, 1]])) + approxDeepEqual(dotPow(sparse([[1, 2, 0], [0, 1, 4]]), [[2, 1, 0], [4, 1, 0]]), matrix([[1, 2, 1], [0, 1, 1]])) }) it('should elevate sparse matrix .^ dense matrix', function () { - approx.deepEqual(dotPow(sparse([[1, 2, 0], [0, 1, 4]]), matrix([[2, 1, 0], [4, 1, 0]])), matrix([[1, 2, 1], [0, 1, 1]])) + approxDeepEqual(dotPow(sparse([[1, 2, 0], [0, 1, 4]]), matrix([[2, 1, 0], [4, 1, 0]])), matrix([[1, 2, 1], [0, 1, 1]])) }) it('should elevate sparse matrix .^ sparse matrix', function () { - approx.deepEqual(dotPow(sparse([[1, 2, 0], [0, 1, 4]]), sparse([[2, 1, 0], [4, 1, 0]])), matrix([[1, 2, 1], [0, 1, 1]])) + approxDeepEqual(dotPow(sparse([[1, 2, 0], [0, 1, 4]]), sparse([[2, 1, 0], [4, 1, 0]])), matrix([[1, 2, 1], [0, 1, 1]])) }) }) diff --git a/test/unit-tests/function/arithmetic/exp.test.js b/test/unit-tests/function/arithmetic/exp.test.js index b48de4b0a5..3c69c4fec7 100644 --- a/test/unit-tests/function/arithmetic/exp.test.js +++ b/test/unit-tests/function/arithmetic/exp.test.js @@ -1,7 +1,7 @@ // test exp import assert from 'assert' -import approx from '../../../../tools/approx.js' +import { approxEqual, approxDeepEqual } from '../../../../tools/approx.js' import math from '../../../../src/defaultInstance.js' const complex = math.complex const matrix = math.matrix @@ -11,19 +11,19 @@ const exp = math.exp describe('exp', function () { it('should exponentiate a boolean', function () { - approx.equal(exp(true), 2.71828182845905) - approx.equal(exp(false), 1) + approxEqual(exp(true), 2.71828182845905) + approxEqual(exp(false), 1) }) it('should exponentiate a number', function () { - approx.equal(exp(-3), 0.0497870683678639) - approx.equal(exp(-2), 0.1353352832366127) - approx.equal(exp(-1), 0.3678794411714423) - approx.equal(exp(0), 1) - approx.equal(exp(1), 2.71828182845905) - approx.equal(exp(2), 7.38905609893065) - approx.equal(exp(3), 20.0855369231877) - approx.equal(exp(math.log(100)), 100) + approxEqual(exp(-3), 0.0497870683678639) + approxEqual(exp(-2), 0.1353352832366127) + approxEqual(exp(-1), 0.3678794411714423) + approxEqual(exp(0), 1) + approxEqual(exp(1), 2.71828182845905) + approxEqual(exp(2), 7.38905609893065) + approxEqual(exp(3), 20.0855369231877) + approxEqual(exp(math.log(100)), 100) }) it('should exponentiate a bignumber', function () { @@ -42,25 +42,25 @@ describe('exp', function () { }) it('should exponentiate a complex number correctly', function () { - approx.deepEqual(exp(math.i), complex('0.540302305868140 + 0.841470984807897i')) - approx.deepEqual(exp(complex(0, -1)), complex('0.540302305868140 - 0.841470984807897i')) - approx.deepEqual(exp(complex(1, 1)), complex('1.46869393991589 + 2.28735528717884i')) - approx.deepEqual(exp(complex(1, -1)), complex('1.46869393991589 - 2.28735528717884i')) - approx.deepEqual(exp(complex(-1, -1)), complex('0.198766110346413 - 0.309559875653112i')) - approx.deepEqual(exp(complex(-1, 1)), complex('0.198766110346413 + 0.309559875653112i')) - approx.deepEqual(exp(complex(1, 0)), complex('2.71828182845905')) + approxDeepEqual(exp(math.i), complex('0.540302305868140 + 0.841470984807897i')) + approxDeepEqual(exp(complex(0, -1)), complex('0.540302305868140 - 0.841470984807897i')) + approxDeepEqual(exp(complex(1, 1)), complex('1.46869393991589 + 2.28735528717884i')) + approxDeepEqual(exp(complex(1, -1)), complex('1.46869393991589 - 2.28735528717884i')) + approxDeepEqual(exp(complex(-1, -1)), complex('0.198766110346413 - 0.309559875653112i')) + approxDeepEqual(exp(complex(-1, 1)), complex('0.198766110346413 + 0.309559875653112i')) + approxDeepEqual(exp(complex(1, 0)), complex('2.71828182845905')) // test some logic identities const multiply = math.multiply const pi = math.pi const i = math.i - approx.deepEqual(exp(multiply(0.5, multiply(pi, i))), complex(0, 1)) - approx.deepEqual(exp(multiply(1, multiply(pi, i))), complex(-1, 0)) - approx.deepEqual(exp(multiply(1.5, multiply(pi, i))), complex(0, -1)) - approx.deepEqual(exp(multiply(2, multiply(pi, i))), complex(1, 0)) - approx.deepEqual(exp(multiply(-0.5, multiply(pi, i))), complex(0, -1)) - approx.deepEqual(exp(multiply(-1, multiply(pi, i))), complex(-1, 0)) - approx.deepEqual(exp(multiply(-1.5, multiply(pi, i))), complex(0, 1)) + approxDeepEqual(exp(multiply(0.5, multiply(pi, i))), complex(0, 1)) + approxDeepEqual(exp(multiply(1, multiply(pi, i))), complex(-1, 0)) + approxDeepEqual(exp(multiply(1.5, multiply(pi, i))), complex(0, -1)) + approxDeepEqual(exp(multiply(2, multiply(pi, i))), complex(1, 0)) + approxDeepEqual(exp(multiply(-0.5, multiply(pi, i))), complex(0, -1)) + approxDeepEqual(exp(multiply(-1, multiply(pi, i))), complex(-1, 0)) + approxDeepEqual(exp(multiply(-1.5, multiply(pi, i))), complex(0, 1)) }) it('should throw an error on a unit', function () { @@ -74,14 +74,14 @@ describe('exp', function () { it('should not operate on matrices, arrays and ranges', function () { // array assert.throws(() => exp([0, 1, 2, 3]), /Function 'exp' doesn't apply/) - approx.deepEqual(math.map([0, 1, 2, 3], exp), [1, 2.71828182845905, 7.38905609893065, 20.0855369231877]) - approx.deepEqual(math.map([[0, 1], [2, 3]], exp), [[1, 2.71828182845905], [7.38905609893065, 20.0855369231877]]) + approxDeepEqual(math.map([0, 1, 2, 3], exp), [1, 2.71828182845905, 7.38905609893065, 20.0855369231877]) + approxDeepEqual(math.map([[0, 1], [2, 3]], exp), [[1, 2.71828182845905], [7.38905609893065, 20.0855369231877]]) // dense matrix assert.throws(() => exp(matrix([0, 1, 2, 3])), TypeError) - approx.deepEqual(math.map(matrix([0, 1, 2, 3]), exp), matrix([1, 2.71828182845905, 7.38905609893065, 20.0855369231877])) - approx.deepEqual(math.map(matrix([[0, 1], [2, 3]]), exp), matrix([[1, 2.71828182845905], [7.38905609893065, 20.0855369231877]])) + approxDeepEqual(math.map(matrix([0, 1, 2, 3]), exp), matrix([1, 2.71828182845905, 7.38905609893065, 20.0855369231877])) + approxDeepEqual(math.map(matrix([[0, 1], [2, 3]]), exp), matrix([[1, 2.71828182845905], [7.38905609893065, 20.0855369231877]])) // sparse matrix, TODO: it should return a dense matrix - approx.deepEqual(math.map(sparse([[0, 1], [2, 3]]), exp), sparse([[1, 2.71828182845905], [7.38905609893065, 20.0855369231877]])) + approxDeepEqual(math.map(sparse([[0, 1], [2, 3]]), exp), sparse([[1, 2.71828182845905], [7.38905609893065, 20.0855369231877]])) }) it('should LaTeX exp', function () { diff --git a/test/unit-tests/function/arithmetic/expm1.test.js b/test/unit-tests/function/arithmetic/expm1.test.js index ab6b975d6b..c67f8915ae 100644 --- a/test/unit-tests/function/arithmetic/expm1.test.js +++ b/test/unit-tests/function/arithmetic/expm1.test.js @@ -1,7 +1,7 @@ // test expm1 import assert from 'assert' -import approx from '../../../../tools/approx.js' +import { approxEqual, approxDeepEqual } from '../../../../tools/approx.js' import math from '../../../../src/defaultInstance.js' const complex = math.complex const matrix = math.matrix @@ -11,19 +11,19 @@ const expm1 = math.expm1 describe('expm1', function () { it('should exponentiate a boolean', function () { - approx.equal(expm1(true), 1.71828182845905) - approx.equal(expm1(false), 0) + approxEqual(expm1(true), 1.71828182845905) + approxEqual(expm1(false), 0) }) it('should exponentiate a number', function () { - approx.equal(expm1(-3), -0.9502129316321360) - approx.equal(expm1(-2), -0.8646647167633873) - approx.equal(expm1(-1), -0.6321205588285577) - approx.equal(expm1(0), 0) - approx.equal(expm1(1), 1.71828182845905) - approx.equal(expm1(2), 6.38905609893065) - approx.equal(expm1(3), 19.0855369231877) - approx.equal(expm1(math.log(100)) + 1, 100) + approxEqual(expm1(-3), -0.9502129316321360) + approxEqual(expm1(-2), -0.8646647167633873) + approxEqual(expm1(-1), -0.6321205588285577) + approxEqual(expm1(0), 0) + approxEqual(expm1(1), 1.71828182845905) + approxEqual(expm1(2), 6.38905609893065) + approxEqual(expm1(3), 19.0855369231877) + approxEqual(expm1(math.log(100)) + 1, 100) // function requirements assert.ok(isNaN(expm1(NaN))) @@ -45,25 +45,25 @@ describe('expm1', function () { }) it('should exponentiate a complex number correctly', function () { - approx.deepEqual(expm1(math.i), complex('-0.45969769413186 + 0.841470984807897i')) - approx.deepEqual(expm1(complex(0, -1)), complex('-0.45969769413186 - 0.841470984807897i')) - approx.deepEqual(expm1(complex(1, 1)), complex('0.46869393991589 + 2.28735528717884i')) - approx.deepEqual(expm1(complex(1, -1)), complex('0.46869393991589 - 2.28735528717884i')) - approx.deepEqual(expm1(complex(-1, -1)), complex('-0.80123388965359 - 0.309559875653112i')) - approx.deepEqual(expm1(complex(-1, 1)), complex('-0.80123388965359 + 0.309559875653112i')) - approx.deepEqual(expm1(complex(1, 0)), complex('1.71828182845905')) + approxDeepEqual(expm1(math.i), complex('-0.45969769413186 + 0.841470984807897i')) + approxDeepEqual(expm1(complex(0, -1)), complex('-0.45969769413186 - 0.841470984807897i')) + approxDeepEqual(expm1(complex(1, 1)), complex('0.46869393991589 + 2.28735528717884i')) + approxDeepEqual(expm1(complex(1, -1)), complex('0.46869393991589 - 2.28735528717884i')) + approxDeepEqual(expm1(complex(-1, -1)), complex('-0.80123388965359 - 0.309559875653112i')) + approxDeepEqual(expm1(complex(-1, 1)), complex('-0.80123388965359 + 0.309559875653112i')) + approxDeepEqual(expm1(complex(1, 0)), complex('1.71828182845905')) // test some logic identities const multiply = math.multiply const pi = math.pi const i = math.i - approx.deepEqual(expm1(multiply(0.5, multiply(pi, i))), complex(-1, 1)) - approx.deepEqual(expm1(multiply(1, multiply(pi, i))), complex(-2, 0)) - approx.deepEqual(expm1(multiply(1.5, multiply(pi, i))), complex(-1, -1)) - approx.deepEqual(expm1(multiply(2, multiply(pi, i))), complex(0, 0)) - approx.deepEqual(expm1(multiply(-0.5, multiply(pi, i))), complex(-1, -1)) - approx.deepEqual(expm1(multiply(-1, multiply(pi, i))), complex(-2, 0)) - approx.deepEqual(expm1(multiply(-1.5, multiply(pi, i))), complex(-1, 1)) + approxDeepEqual(expm1(multiply(0.5, multiply(pi, i))), complex(-1, 1)) + approxDeepEqual(expm1(multiply(1, multiply(pi, i))), complex(-2, 0)) + approxDeepEqual(expm1(multiply(1.5, multiply(pi, i))), complex(-1, -1)) + approxDeepEqual(expm1(multiply(2, multiply(pi, i))), complex(0, 0)) + approxDeepEqual(expm1(multiply(-0.5, multiply(pi, i))), complex(-1, -1)) + approxDeepEqual(expm1(multiply(-1, multiply(pi, i))), complex(-2, 0)) + approxDeepEqual(expm1(multiply(-1.5, multiply(pi, i))), complex(-1, 1)) }) it('should throw an error on a unit', function () { @@ -77,14 +77,14 @@ describe('expm1', function () { it('should not operate on matrices, arrays and ranges', function () { // array assert.throws(() => expm1([0, 1, 2, 3]), /Function 'expm1' doesn't apply to matrices/) - approx.deepEqual(math.map([0, 1, 2, 3], expm1), [0, 1.71828182845905, 6.38905609893065, 19.0855369231877]) - approx.deepEqual(math.map([[0, 1], [2, 3]], expm1), [[0, 1.71828182845905], [6.38905609893065, 19.0855369231877]]) + approxDeepEqual(math.map([0, 1, 2, 3], expm1), [0, 1.71828182845905, 6.38905609893065, 19.0855369231877]) + approxDeepEqual(math.map([[0, 1], [2, 3]], expm1), [[0, 1.71828182845905], [6.38905609893065, 19.0855369231877]]) // dense matrix assert.throws(() => expm1(matrix([0, 1, 2, 3])), TypeError) - approx.deepEqual(math.map(matrix([0, 1, 2, 3]), expm1), matrix([0, 1.71828182845905, 6.38905609893065, 19.0855369231877])) - approx.deepEqual(math.map(matrix([[0, 1], [2, 3]]), expm1), matrix([[0, 1.71828182845905], [6.38905609893065, 19.0855369231877]])) + approxDeepEqual(math.map(matrix([0, 1, 2, 3]), expm1), matrix([0, 1.71828182845905, 6.38905609893065, 19.0855369231877])) + approxDeepEqual(math.map(matrix([[0, 1], [2, 3]]), expm1), matrix([[0, 1.71828182845905], [6.38905609893065, 19.0855369231877]])) // sparse matrix - approx.deepEqual(math.map(sparse([[0, 1], [2, 3]]), expm1), sparse([[0, 1.71828182845905], [6.38905609893065, 19.0855369231877]])) + approxDeepEqual(math.map(sparse([[0, 1], [2, 3]]), expm1), sparse([[0, 1.71828182845905], [6.38905609893065, 19.0855369231877]])) }) it('should LaTeX expm1', function () { diff --git a/test/unit-tests/function/arithmetic/log.test.js b/test/unit-tests/function/arithmetic/log.test.js index 9219501e78..2313447533 100644 --- a/test/unit-tests/function/arithmetic/log.test.js +++ b/test/unit-tests/function/arithmetic/log.test.js @@ -1,7 +1,7 @@ // test log import assert from 'assert' -import approx from '../../../../tools/approx.js' +import { approxDeepEqual } from '../../../../tools/approx.js' import math from '../../../../src/defaultInstance.js' const mathPredictable = math.create({ predictable: true }) const complex = math.complex @@ -17,16 +17,16 @@ describe('log', function () { }) it('should return the log of positive numbers', function () { - approx.deepEqual(log(1), 0) - approx.deepEqual(log(2), 0.693147180559945) - approx.deepEqual(log(3), 1.098612288668110) - approx.deepEqual(math.exp(log(100)), 100) + approxDeepEqual(log(1), 0) + approxDeepEqual(log(2), 0.693147180559945) + approxDeepEqual(log(3), 1.098612288668110) + approxDeepEqual(math.exp(log(100)), 100) }) it('should return the log of negative numbers', function () { - approx.deepEqual(log(-1), complex('0.000000000000000 + 3.141592653589793i')) - approx.deepEqual(log(-2), complex('0.693147180559945 + 3.141592653589793i')) - approx.deepEqual(log(-3), complex('1.098612288668110 + 3.141592653589793i')) + approxDeepEqual(log(-1), complex('0.000000000000000 + 3.141592653589793i')) + approxDeepEqual(log(-2), complex('0.693147180559945 + 3.141592653589793i')) + approxDeepEqual(log(-3), complex('1.098612288668110 + 3.141592653589793i')) }) it('should return the log of negative numbers with predictable: true', function () { @@ -35,14 +35,14 @@ describe('log', function () { }) it('should return the log of zero', function () { - approx.deepEqual(log(0), -Infinity) + approxDeepEqual(log(0), -Infinity) }) it('should return the log base N of a number', function () { - approx.deepEqual(log(100, 10), 2) - approx.deepEqual(log(1000, 10), 3) - approx.deepEqual(log(8, 2), 3) - approx.deepEqual(log(16, 2), 4) + approxDeepEqual(log(100, 10), 2) + approxDeepEqual(log(1000, 10), 3) + approxDeepEqual(log(8, 2), 3) + approxDeepEqual(log(16, 2), 4) }) it('should throw an error if invalid number of arguments', function () { @@ -68,9 +68,9 @@ describe('log', function () { it('should return the log of negative bignumbers', function () { const bigmath = math.create({ precision: 100 }) - approx.deepEqual(bigmath.log(bigmath.bignumber(-1)), complex('0.000000000000000 + 3.141592653589793i')) - approx.deepEqual(bigmath.log(bigmath.bignumber(-2)), complex('0.693147180559945 + 3.141592653589793i')) - approx.deepEqual(bigmath.log(bigmath.bignumber(-3)), complex('1.098612288668110 + 3.141592653589793i')) + approxDeepEqual(bigmath.log(bigmath.bignumber(-1)), complex('0.000000000000000 + 3.141592653589793i')) + approxDeepEqual(bigmath.log(bigmath.bignumber(-2)), complex('0.693147180559945 + 3.141592653589793i')) + approxDeepEqual(bigmath.log(bigmath.bignumber(-3)), complex('1.098612288668110 + 3.141592653589793i')) }) it('should return the log of negative bignumbers with predictable:true', function () { @@ -84,13 +84,13 @@ describe('log', function () { }) it('should return the log of a complex number', function () { - approx.deepEqual(log(math.i), complex('1.570796326794897i')) - approx.deepEqual(log(complex(0, -1)), complex('-1.570796326794897i')) - approx.deepEqual(log(complex(1, 1)), complex('0.346573590279973 + 0.785398163397448i')) - approx.deepEqual(log(complex(1, -1)), complex('0.346573590279973 - 0.785398163397448i')) - approx.deepEqual(log(complex(-1, -1)), complex('0.346573590279973 - 2.356194490192345i')) - approx.deepEqual(log(complex(-1, 1)), complex('0.346573590279973 + 2.356194490192345i')) - approx.deepEqual(log(complex(1, 0)), complex(0, 0)) + approxDeepEqual(log(math.i), complex('1.570796326794897i')) + approxDeepEqual(log(complex(0, -1)), complex('-1.570796326794897i')) + approxDeepEqual(log(complex(1, 1)), complex('0.346573590279973 + 0.785398163397448i')) + approxDeepEqual(log(complex(1, -1)), complex('0.346573590279973 - 0.785398163397448i')) + approxDeepEqual(log(complex(-1, -1)), complex('0.346573590279973 - 2.356194490192345i')) + approxDeepEqual(log(complex(-1, 1)), complex('0.346573590279973 + 2.356194490192345i')) + approxDeepEqual(log(complex(1, 0)), complex(0, 0)) }) it('should handle complex number with large imaginary part', function () { @@ -99,7 +99,7 @@ describe('log', function () { const imaginary = [1e15, 1e17, 1e20, 1e30] for (const r of real) { for (const im of imaginary) { - approx.deepEqual(log(complex(r, im)), complex(Math.log(im), tau4)) + approxDeepEqual(log(complex(r, im)), complex(Math.log(im), tau4)) } } }) @@ -115,9 +115,9 @@ describe('log', function () { it('should not operate on a matrix', function () { const res = [0, 0.693147180559945, 1.098612288668110, 1.386294361119891] assert.throws(() => log([1, 2, 3, 4]), TypeError) - approx.deepEqual(math.map([1, 2, 3, 4], x => log(x)), res) - approx.deepEqual(math.map(matrix([1, 2, 3, 4]), x => log(x)), matrix(res)) - approx.deepEqual(math.map(matrix([[1, 2], [3, 4]]), x => log(x)), + approxDeepEqual(math.map([1, 2, 3, 4], x => log(x)), res) + approxDeepEqual(math.map(matrix([1, 2, 3, 4]), x => log(x)), matrix(res)) + approxDeepEqual(math.map(matrix([[1, 2], [3, 4]]), x => log(x)), matrix([[0, 0.693147180559945], [1.098612288668110, 1.386294361119891]])) }) diff --git a/test/unit-tests/function/arithmetic/log10.test.js b/test/unit-tests/function/arithmetic/log10.test.js index 0809844edf..6bae8d396f 100644 --- a/test/unit-tests/function/arithmetic/log10.test.js +++ b/test/unit-tests/function/arithmetic/log10.test.js @@ -1,7 +1,7 @@ // test exp import assert from 'assert' -import approx from '../../../../tools/approx.js' +import { approxDeepEqual } from '../../../../tools/approx.js' import math from '../../../../src/defaultInstance.js' const mathPredictable = math.create({ predictable: true }) const complex = math.complex @@ -16,22 +16,22 @@ describe('log10', function () { }) it('should return the log base 10 of positive numbers', function () { - approx.deepEqual(log10(1), 0) - approx.deepEqual(log10(2), 0.301029995663981) - approx.deepEqual(log10(3), 0.477121254719662) - - approx.deepEqual(log10(0.01), -2) - approx.deepEqual(log10(0.1), -1) - approx.deepEqual(log10(1), 0) - approx.deepEqual(log10(10), 1) - approx.deepEqual(log10(100), 2) - approx.deepEqual(log10(1000), 3) + approxDeepEqual(log10(1), 0) + approxDeepEqual(log10(2), 0.301029995663981) + approxDeepEqual(log10(3), 0.477121254719662) + + approxDeepEqual(log10(0.01), -2) + approxDeepEqual(log10(0.1), -1) + approxDeepEqual(log10(1), 0) + approxDeepEqual(log10(10), 1) + approxDeepEqual(log10(100), 2) + approxDeepEqual(log10(1000), 3) }) it('should return the log base 10 of negative numbers', function () { - approx.deepEqual(log10(-1), complex('0.000000000000000 + 1.364376353841841i')) - approx.deepEqual(log10(-2), complex('0.301029995663981 + 1.364376353841841i')) - approx.deepEqual(log10(-3), complex('0.477121254719662 + 1.364376353841841i')) + approxDeepEqual(log10(-1), complex('0.000000000000000 + 1.364376353841841i')) + approxDeepEqual(log10(-2), complex('0.301029995663981 + 1.364376353841841i')) + approxDeepEqual(log10(-3), complex('0.477121254719662 + 1.364376353841841i')) }) it('should return the log base 10 of negative numbers with predicable:true', function () { @@ -40,7 +40,7 @@ describe('log10', function () { }) it('should return the log base 10 of zero', function () { - approx.deepEqual(log10(0), -Infinity) + approxDeepEqual(log10(0), -Infinity) }) it('should return the log of positive bignumbers', function () { @@ -57,9 +57,9 @@ describe('log10', function () { it('should return the log of negative bignumbers', function () { const bigmath = math.create({ precision: 100 }) - approx.deepEqual(bigmath.log10(bigmath.bignumber(-1)), bigmath.complex('0.000000000000000 + 1.364376353841841i')) - approx.deepEqual(bigmath.log10(bigmath.bignumber(-2)), bigmath.complex('0.301029995663981 + 1.364376353841841i')) - approx.deepEqual(bigmath.log10(bigmath.bignumber(-3)), bigmath.complex('0.477121254719662 + 1.364376353841841i')) + approxDeepEqual(bigmath.log10(bigmath.bignumber(-1)), bigmath.complex('0.000000000000000 + 1.364376353841841i')) + approxDeepEqual(bigmath.log10(bigmath.bignumber(-2)), bigmath.complex('0.301029995663981 + 1.364376353841841i')) + approxDeepEqual(bigmath.log10(bigmath.bignumber(-3)), bigmath.complex('0.477121254719662 + 1.364376353841841i')) }) it('should return the log of a bignumber with value zero', function () { @@ -78,13 +78,13 @@ describe('log10', function () { }) it('should return the log base 10 of a complex number', function () { - approx.deepEqual(log10(complex(0, 1)), complex('0.000000000000000 + 0.682188176920921i')) - approx.deepEqual(log10(complex(0, -1)), complex('0.000000000000000 - 0.682188176920921i')) - approx.deepEqual(log10(complex(1, 1)), complex('0.150514997831991 + 0.341094088460460i')) - approx.deepEqual(log10(complex(1, -1)), complex('0.150514997831991 - 0.341094088460460i')) - approx.deepEqual(log10(complex(-1, -1)), complex('0.150514997831991 - 1.023282265381381i')) - approx.deepEqual(log10(complex(-1, 1)), complex('0.150514997831991 + 1.023282265381381i')) - approx.deepEqual(log10(complex(1, 0)), complex(0, 0)) + approxDeepEqual(log10(complex(0, 1)), complex('0.000000000000000 + 0.682188176920921i')) + approxDeepEqual(log10(complex(0, -1)), complex('0.000000000000000 - 0.682188176920921i')) + approxDeepEqual(log10(complex(1, 1)), complex('0.150514997831991 + 0.341094088460460i')) + approxDeepEqual(log10(complex(1, -1)), complex('0.150514997831991 - 0.341094088460460i')) + approxDeepEqual(log10(complex(-1, -1)), complex('0.150514997831991 - 1.023282265381381i')) + approxDeepEqual(log10(complex(-1, 1)), complex('0.150514997831991 + 1.023282265381381i')) + approxDeepEqual(log10(complex(1, 0)), complex(0, 0)) }) it('should throw an error when used on a unit', function () { @@ -97,11 +97,11 @@ describe('log10', function () { it('should return the log base 10 of each element of a matrix', function () { const res = [0, 0.301029995663981, 0.477121254719662, 0.602059991327962] - approx.deepEqual(log10([1, 2, 3, 4]), res) - approx.deepEqual(log10(matrix([1, 2, 3, 4])), matrix(res)) - approx.deepEqual(math.divide(log10(matrix([1, 2, 3, 4])), math.LOG10E), + approxDeepEqual(log10([1, 2, 3, 4]), res) + approxDeepEqual(log10(matrix([1, 2, 3, 4])), matrix(res)) + approxDeepEqual(math.divide(log10(matrix([1, 2, 3, 4])), math.LOG10E), matrix([0, 0.693147180559945, 1.098612288668110, 1.386294361119891])) - approx.deepEqual(log10(matrix([[1, 2], [3, 4]])), + approxDeepEqual(log10(matrix([[1, 2], [3, 4]])), matrix([[0, 0.301029995663981], [0.477121254719662, 0.602059991327962]])) }) diff --git a/test/unit-tests/function/arithmetic/log1p.test.js b/test/unit-tests/function/arithmetic/log1p.test.js index 5afda93720..552d37a1df 100644 --- a/test/unit-tests/function/arithmetic/log1p.test.js +++ b/test/unit-tests/function/arithmetic/log1p.test.js @@ -1,7 +1,7 @@ // test log1p import assert from 'assert' -import approx from '../../../../tools/approx.js' +import { approxEqual, approxDeepEqual } from '../../../../tools/approx.js' import math from '../../../../src/defaultInstance.js' const mathPredictable = math.create({ predictable: true }) const complex = math.complex @@ -11,7 +11,7 @@ const log1p = math.log1p describe('log1p', function () { it('should return the log1p of a boolean value', function () { - approx.equal(log1p(true), 0.6931471805599) + approxEqual(log1p(true), 0.6931471805599) assert.strictEqual(log1p(false), 0) assert.strictEqual(log1p(1, false), -0) }) @@ -20,15 +20,15 @@ describe('log1p', function () { assert.strictEqual(log1p(-1), -Infinity) assert.strictEqual(log1p(-0), -0) assert.strictEqual(log1p(+0), +0) - approx.deepEqual(log1p(1), 0.693147180559945) - approx.deepEqual(log1p(2), 1.098612288668110) - approx.deepEqual(math.exp(log1p(99)), 100) + approxDeepEqual(log1p(1), 0.693147180559945) + approxDeepEqual(log1p(2), 1.098612288668110) + approxDeepEqual(math.exp(log1p(99)), 100) }) it('should return the log1p of negative numbers', function () { - approx.deepEqual(log1p(-2), complex('0.000000000000000 + 3.141592653589793i')) - approx.deepEqual(log1p(-3), complex('0.693147180559945 + 3.141592653589793i')) - approx.deepEqual(log1p(-4), complex('1.098612288668110 + 3.141592653589793i')) + approxDeepEqual(log1p(-2), complex('0.000000000000000 + 3.141592653589793i')) + approxDeepEqual(log1p(-3), complex('0.693147180559945 + 3.141592653589793i')) + approxDeepEqual(log1p(-4), complex('1.098612288668110 + 3.141592653589793i')) }) it('should return the log1p of negative numbers with predictable: true', function () { @@ -37,10 +37,10 @@ describe('log1p', function () { }) it('should return the log1p base N of a number', function () { - approx.deepEqual(log1p(99, 10), 2) - approx.deepEqual(log1p(999, 10), 3) - approx.deepEqual(log1p(7, 2), 3) - approx.deepEqual(log1p(15, 2), 4) + approxDeepEqual(log1p(99, 10), 2) + approxDeepEqual(log1p(999, 10), 3) + approxDeepEqual(log1p(7, 2), 3) + approxDeepEqual(log1p(15, 2), 4) }) it('should throw an error if invalid number of arguments', function () { @@ -63,9 +63,9 @@ describe('log1p', function () { it('should return the log1p of negative bignumbers', function () { const bigmath = math.create({ precision: 100 }) - approx.deepEqual(bigmath.log1p(bigmath.bignumber(-2)), complex('0.000000000000000 + 3.141592653589793i')) - approx.deepEqual(bigmath.log1p(bigmath.bignumber(-3)), complex('0.693147180559945 + 3.141592653589793i')) - approx.deepEqual(bigmath.log1p(bigmath.bignumber(-4)), complex('1.098612288668110 + 3.141592653589793i')) + approxDeepEqual(bigmath.log1p(bigmath.bignumber(-2)), complex('0.000000000000000 + 3.141592653589793i')) + approxDeepEqual(bigmath.log1p(bigmath.bignumber(-3)), complex('0.693147180559945 + 3.141592653589793i')) + approxDeepEqual(bigmath.log1p(bigmath.bignumber(-4)), complex('1.098612288668110 + 3.141592653589793i')) }) it('should return the log1p of negative bignumbers with predictable:true', function () { @@ -73,13 +73,13 @@ describe('log1p', function () { }) it('should return the log1p of a complex number', function () { - approx.deepEqual(log1p(math.i), complex('0.346573590279973 + 0.785398163397448i')) - approx.deepEqual(log1p(complex(0, -1)), complex('0.346573590279973 - 0.785398163397448i')) - approx.deepEqual(log1p(complex(1, 1)), complex('0.80471895621705 + 0.463647609000806i')) - approx.deepEqual(log1p(complex(1, -1)), complex('0.80471895621705 - 0.463647609000806i')) - approx.deepEqual(log1p(complex(-1, -1)), complex('-1.570796326794897i')) - approx.deepEqual(log1p(complex(-1, 1)), complex('1.570796326794897i')) - approx.deepEqual(log1p(complex(1, 0)), complex('0.693147180559945')) + approxDeepEqual(log1p(math.i), complex('0.346573590279973 + 0.785398163397448i')) + approxDeepEqual(log1p(complex(0, -1)), complex('0.346573590279973 - 0.785398163397448i')) + approxDeepEqual(log1p(complex(1, 1)), complex('0.80471895621705 + 0.463647609000806i')) + approxDeepEqual(log1p(complex(1, -1)), complex('0.80471895621705 - 0.463647609000806i')) + approxDeepEqual(log1p(complex(-1, -1)), complex('-1.570796326794897i')) + approxDeepEqual(log1p(complex(-1, 1)), complex('1.570796326794897i')) + approxDeepEqual(log1p(complex(1, 0)), complex('0.693147180559945')) }) it('should throw an error when used on a unit', function () { @@ -92,9 +92,9 @@ describe('log1p', function () { it('should return the log1p of each element of a matrix', function () { const res = [0, 0.693147180559945, 1.098612288668110, 1.386294361119891] - approx.deepEqual(log1p([0, 1, 2, 3]), res) - approx.deepEqual(log1p(matrix([0, 1, 2, 3])), matrix(res)) - approx.deepEqual(log1p(matrix([[0, 1], [2, 3]])), + approxDeepEqual(log1p([0, 1, 2, 3]), res) + approxDeepEqual(log1p(matrix([0, 1, 2, 3])), matrix(res)) + approxDeepEqual(log1p(matrix([[0, 1], [2, 3]])), matrix([[0, 0.693147180559945], [1.098612288668110, 1.386294361119891]])) }) diff --git a/test/unit-tests/function/arithmetic/log2.test.js b/test/unit-tests/function/arithmetic/log2.test.js index 3f1711f92c..57337ebf34 100644 --- a/test/unit-tests/function/arithmetic/log2.test.js +++ b/test/unit-tests/function/arithmetic/log2.test.js @@ -1,7 +1,7 @@ // test exp import assert from 'assert' -import approx from '../../../../tools/approx.js' +import { approxDeepEqual } from '../../../../tools/approx.js' import math from '../../../../src/defaultInstance.js' const mathPredictable = math.create({ predictable: true }) const complex = math.complex @@ -18,7 +18,7 @@ describe('log2', function () { it('should return the log base 2 of positive numbers', function () { assert.strictEqual(log2(1), 0) assert.strictEqual(log2(2), 1) - approx.deepEqual(log2(3), 1.584962500721156) + approxDeepEqual(log2(3), 1.584962500721156) assert.strictEqual(log2(0.25), -2) assert.strictEqual(log2(0.5), -1) @@ -27,9 +27,9 @@ describe('log2', function () { }) it('should return the log base 2 of negative numbers', function () { - approx.deepEqual(log2(-1), complex('0.000000000000000 + 4.532360141827194i')) - approx.deepEqual(log2(-2), complex('1 + 4.532360141827194i')) - approx.deepEqual(log2(-3), complex('1.584962500721156 + 4.532360141827194i')) + approxDeepEqual(log2(-1), complex('0.000000000000000 + 4.532360141827194i')) + approxDeepEqual(log2(-2), complex('1 + 4.532360141827194i')) + approxDeepEqual(log2(-3), complex('1.584962500721156 + 4.532360141827194i')) }) it('should return the log base 2 of negative numbers with predicable:true', function () { @@ -38,7 +38,7 @@ describe('log2', function () { }) it('should return the log base 2 of zero', function () { - approx.deepEqual(log2(0), -Infinity) + approxDeepEqual(log2(0), -Infinity) }) it('should return the log of positive bignumbers', function () { @@ -55,9 +55,9 @@ describe('log2', function () { it('should return the log of negative bignumbers', function () { const bigmath = math.create({ precision: 100 }) - approx.deepEqual(bigmath.log2(bigmath.bignumber(-1)), bigmath.complex('0.000000000000000 + 4.532360141827194i')) - approx.deepEqual(bigmath.log2(bigmath.bignumber(-2)), bigmath.complex('1 + 4.532360141827194i')) - approx.deepEqual(bigmath.log2(bigmath.bignumber(-3)), bigmath.complex('1.584962500721156 + 4.532360141827194i')) + approxDeepEqual(bigmath.log2(bigmath.bignumber(-1)), bigmath.complex('0.000000000000000 + 4.532360141827194i')) + approxDeepEqual(bigmath.log2(bigmath.bignumber(-2)), bigmath.complex('1 + 4.532360141827194i')) + approxDeepEqual(bigmath.log2(bigmath.bignumber(-3)), bigmath.complex('1.584962500721156 + 4.532360141827194i')) }) it('should return the log of a bignumber with value zero', function () { @@ -72,13 +72,13 @@ describe('log2', function () { }) it('should return the log base 2 of a complex number', function () { - approx.deepEqual(log2(complex(0, 1)), complex('2.2661800709135i')) - approx.deepEqual(log2(complex(0, -1)), complex('-2.2661800709135i')) - approx.deepEqual(log2(complex(1, 1)), complex('0.500000000000000 + 1.1330900354567985i')) - approx.deepEqual(log2(complex(1, -1)), complex('0.500000000000000 - 1.1330900354567985i')) - approx.deepEqual(log2(complex(-1, -1)), complex('0.500000000000000 - 3.399270106370395i')) - approx.deepEqual(log2(complex(-1, 1)), complex('0.500000000000000 + 3.399270106370395i')) - approx.deepEqual(log2(complex(1, 0)), complex(0, 0)) + approxDeepEqual(log2(complex(0, 1)), complex('2.2661800709135i')) + approxDeepEqual(log2(complex(0, -1)), complex('-2.2661800709135i')) + approxDeepEqual(log2(complex(1, 1)), complex('0.500000000000000 + 1.1330900354567985i')) + approxDeepEqual(log2(complex(1, -1)), complex('0.500000000000000 - 1.1330900354567985i')) + approxDeepEqual(log2(complex(-1, -1)), complex('0.500000000000000 - 3.399270106370395i')) + approxDeepEqual(log2(complex(-1, 1)), complex('0.500000000000000 + 3.399270106370395i')) + approxDeepEqual(log2(complex(1, 0)), complex(0, 0)) }) it('should throw an error when used on a unit', function () { @@ -91,11 +91,11 @@ describe('log2', function () { it('should return the log base 2 of each element of a matrix', function () { const res = [0, 1, 1.584962500721156, 2] - approx.deepEqual(log2([1, 2, 3, 4]), res) - approx.deepEqual(log2(matrix([1, 2, 3, 4])), matrix(res)) - approx.deepEqual(math.divide(log2(matrix([1, 2, 3, 4])), math.LOG2E), + approxDeepEqual(log2([1, 2, 3, 4]), res) + approxDeepEqual(log2(matrix([1, 2, 3, 4])), matrix(res)) + approxDeepEqual(math.divide(log2(matrix([1, 2, 3, 4])), math.LOG2E), matrix([0, 0.693147180559945, 1.098612288668110, 1.386294361119891])) - approx.deepEqual(log2(matrix([[1, 2], [3, 4]])), + approxDeepEqual(log2(matrix([[1, 2], [3, 4]])), matrix([[0, 1], [1.584962500721156, 2]])) }) diff --git a/test/unit-tests/function/arithmetic/mod.test.js b/test/unit-tests/function/arithmetic/mod.test.js index 0ee8235114..5146ddf233 100644 --- a/test/unit-tests/function/arithmetic/mod.test.js +++ b/test/unit-tests/function/arithmetic/mod.test.js @@ -1,7 +1,7 @@ // test mod import assert from 'assert' -import approx from '../../../../tools/approx.js' +import { approxEqual, approxDeepEqual } from '../../../../tools/approx.js' import math from '../../../../src/defaultInstance.js' const bignumber = math.bignumber const matrix = math.matrix @@ -23,21 +23,21 @@ describe('mod', function () { assert.strictEqual(mod(0, 0), 0) assert.strictEqual(mod(7, 0), 7) - approx.equal(mod(7, 2), 1) - approx.equal(mod(9, 3), 0) - approx.equal(mod(10, 4), 2) - approx.equal(mod(-10, 4), 2) - approx.equal(mod(8.2, 3), 2.2) - approx.equal(mod(4, 1.5), 1) - approx.equal(mod(0, 3), 0) - approx.equal(mod(-10, 4), 2) - approx.equal(mod(-5, 3), 1) + approxEqual(mod(7, 2), 1) + approxEqual(mod(9, 3), 0) + approxEqual(mod(10, 4), 2) + approxEqual(mod(-10, 4), 2) + approxEqual(mod(8.2, 3), 2.2) + approxEqual(mod(4, 1.5), 1) + approxEqual(mod(0, 3), 0) + approxEqual(mod(-10, 4), 2) + approxEqual(mod(-5, 3), 1) }) it('should handle precise approximation of float approximation', function () { - approx.equal(mod(0.1, 0.01), 0) - approx.equal(mod(0.15, 0.05), 0) - approx.equal(mod(1.23456789, 0.00000000001), 0) + approxEqual(mod(0.1, 0.01), 0) + approxEqual(mod(0.15, 0.05), 0) + approxEqual(mod(1.23456789, 0.00000000001), 0) }) it('should calculate mod for negative divisor', function () { @@ -137,63 +137,63 @@ describe('mod', function () { describe('Array', function () { it('should perform element-wise modulus on array and scalar', function () { - approx.deepEqual(mod([[-4, -3, 0, -1], [0, 1, 2, 3]], 3), [[2, 0, 0, 2], [0, 1, 2, 0]]) - approx.deepEqual(mod(3, [[4, 3], [2, 1]]), [[3, 0], [1, 0]]) + approxDeepEqual(mod([[-4, -3, 0, -1], [0, 1, 2, 3]], 3), [[2, 0, 0, 2], [0, 1, 2, 0]]) + approxDeepEqual(mod(3, [[4, 3], [2, 1]]), [[3, 0], [1, 0]]) }) it('should perform element-wise modulus on broadcastable arrays', function () { - approx.deepEqual(mod([-40, -31], [[3], [1]]), [[2, 2], [0, 0]]) - approx.deepEqual(mod([[-40], [-31]], [3, 1]), [[2, 0], [2, 0]]) + approxDeepEqual(mod([-40, -31], [[3], [1]]), [[2, 2], [0, 0]]) + approxDeepEqual(mod([[-40], [-31]], [3, 1]), [[2, 0], [2, 0]]) }) it('should perform element-wise modulus on array and array', function () { - approx.deepEqual(mod([[-40, -31], [11, -23]], [[3, 7], [1, 3]]), [[2, 4], [0, 1]]) + approxDeepEqual(mod([[-40, -31], [11, -23]], [[3, 7], [1, 3]]), [[2, 4], [0, 1]]) }) it('should perform element-wise modulus on array and dense matrix', function () { - approx.deepEqual(mod([[-40, -31], [11, -23]], matrix([[3, 7], [1, 3]])), matrix([[2, 4], [0, 1]])) + approxDeepEqual(mod([[-40, -31], [11, -23]], matrix([[3, 7], [1, 3]])), matrix([[2, 4], [0, 1]])) }) it('should perform element-wise modulus on array and sparse matrix', function () { - approx.deepEqual(mod([[-40, -31], [11, -23]], sparse([[3, 7], [1, 3]])), matrix([[2, 4], [0, 1]])) + approxDeepEqual(mod([[-40, -31], [11, -23]], sparse([[3, 7], [1, 3]])), matrix([[2, 4], [0, 1]])) }) }) describe('DenseMatrix', function () { it('should perform element-wise modulus on dense matrix and scalar', function () { - approx.deepEqual(mod(matrix([[-4, -3, 0, -1], [0, 1, 2, 3]]), 3), matrix([[2, 0, 0, 2], [0, 1, 2, 0]])) - approx.deepEqual(mod(3, matrix([[4, 3], [2, 1]])), matrix([[3, 0], [1, 0]])) + approxDeepEqual(mod(matrix([[-4, -3, 0, -1], [0, 1, 2, 3]]), 3), matrix([[2, 0, 0, 2], [0, 1, 2, 0]])) + approxDeepEqual(mod(3, matrix([[4, 3], [2, 1]])), matrix([[3, 0], [1, 0]])) }) it('should perform element-wise modulus on dense matrix and array', function () { - approx.deepEqual(mod(matrix([[-40, -31], [11, -23]]), [[3, 7], [1, 3]]), matrix([[2, 4], [0, 1]])) + approxDeepEqual(mod(matrix([[-40, -31], [11, -23]]), [[3, 7], [1, 3]]), matrix([[2, 4], [0, 1]])) }) it('should perform element-wise modulus on dense matrix and dense matrix', function () { - approx.deepEqual(mod(matrix([[-40, -31], [11, -23]]), matrix([[3, 7], [1, 3]])), matrix([[2, 4], [0, 1]])) + approxDeepEqual(mod(matrix([[-40, -31], [11, -23]]), matrix([[3, 7], [1, 3]])), matrix([[2, 4], [0, 1]])) }) it('should perform element-wise modulus on dense matrix and sparse matrix', function () { - approx.deepEqual(mod(matrix([[-40, -31], [11, -23]]), sparse([[3, 7], [1, 3]])), matrix([[2, 4], [0, 1]])) + approxDeepEqual(mod(matrix([[-40, -31], [11, -23]]), sparse([[3, 7], [1, 3]])), matrix([[2, 4], [0, 1]])) }) }) describe('SparseMatrix', function () { it('should perform element-wise modulus on sparse matrix and scalar', function () { - approx.deepEqual(mod(sparse([[-4, -3, 0, -1], [0, 1, 2, 3]]), 3), sparse([[2, 0, 0, 2], [0, 1, 2, 0]])) - approx.deepEqual(mod(3, sparse([[4, 3], [2, 1]])), matrix([[3, 0], [1, 0]])) + approxDeepEqual(mod(sparse([[-4, -3, 0, -1], [0, 1, 2, 3]]), 3), sparse([[2, 0, 0, 2], [0, 1, 2, 0]])) + approxDeepEqual(mod(3, sparse([[4, 3], [2, 1]])), matrix([[3, 0], [1, 0]])) }) it('should perform element-wise modulus on sparse matrix and array', function () { - approx.deepEqual(mod(sparse([[-40, -31], [11, -23]]), [[3, 7], [1, 3]]), sparse([[2, 4], [0, 1]])) + approxDeepEqual(mod(sparse([[-40, -31], [11, -23]]), [[3, 7], [1, 3]]), sparse([[2, 4], [0, 1]])) }) it('should perform element-wise modulus on sparse matrix and dense matrix', function () { - approx.deepEqual(mod(sparse([[-40, -31], [11, -23]]), matrix([[3, 7], [1, 3]])), sparse([[2, 4], [0, 1]])) + approxDeepEqual(mod(sparse([[-40, -31], [11, -23]]), matrix([[3, 7], [1, 3]])), sparse([[2, 4], [0, 1]])) }) it('should perform element-wise modulus on sparse matrix and sparse matrix', function () { - approx.deepEqual(mod(sparse([[-40, -31], [11, -23]]), sparse([[3, 7], [1, 3]])), sparse([[2, 4], [0, 1]])) + approxDeepEqual(mod(sparse([[-40, -31], [11, -23]]), sparse([[3, 7], [1, 3]])), sparse([[2, 4], [0, 1]])) }) }) diff --git a/test/unit-tests/function/arithmetic/multiply.test.js b/test/unit-tests/function/arithmetic/multiply.test.js index 089bce97bb..636c38ecd8 100644 --- a/test/unit-tests/function/arithmetic/multiply.test.js +++ b/test/unit-tests/function/arithmetic/multiply.test.js @@ -2,7 +2,7 @@ import assert from 'assert' import math from '../../../../src/defaultInstance.js' -import approx from '../../../../tools/approx.js' +import { approxEqual, approxDeepEqual } from '../../../../tools/approx.js' const multiply = math.multiply const divide = math.divide const matrix = math.matrix @@ -14,14 +14,14 @@ const unit = math.unit describe('multiply', function () { describe('Scalar', function () { it('should multiply two numbers correctly', function () { - approx.equal(multiply(2, 3), 6) - approx.equal(multiply(-2, 3), -6) - approx.equal(multiply(-2, -3), 6) - approx.equal(multiply(5, 0), 0) - approx.equal(multiply(0, 5), 0) - approx.deepEqual(multiply(0, Infinity), NaN) - approx.deepEqual(multiply(2, Infinity), Infinity) - approx.deepEqual(multiply(-2, Infinity), -Infinity) + approxEqual(multiply(2, 3), 6) + approxEqual(multiply(-2, 3), -6) + approxEqual(multiply(-2, -3), 6) + approxEqual(multiply(5, 0), 0) + approxEqual(multiply(0, 5), 0) + approxDeepEqual(multiply(0, Infinity), NaN) + approxDeepEqual(multiply(2, Infinity), Infinity) + approxDeepEqual(multiply(-2, Infinity), -Infinity) }) it('should multiply booleans', function () { @@ -65,50 +65,50 @@ describe('multiply', function () { }) it('should multiply two complex numbers correctly', function () { - approx.deepEqual(multiply(complex(2, 3), 2), complex(4, 6)) - approx.deepEqual(multiply(complex(2, -3), -2), complex(-4, 6)) - approx.deepEqual(multiply(complex(2, -3), 2), complex(4, -6)) - approx.deepEqual(multiply(complex(-2, 3), 2), complex(-4, 6)) - approx.deepEqual(multiply(complex(-2, -3), 2), complex(-4, -6)) - approx.deepEqual(multiply(2, complex(2, 3)), complex(4, 6)) - approx.deepEqual(multiply(i, complex(2, 3)), complex(-3, 2)) - approx.deepEqual(multiply(complex(0, 1), complex(2, 3)), complex(-3, 2)) - approx.deepEqual(multiply(complex(1, 1), complex(2, 3)), complex(-1, 5)) - approx.deepEqual(multiply(complex(2, 3), complex(1, 1)), complex(-1, 5)) - approx.deepEqual(multiply(complex(2, 3), complex(2, 3)), complex(-5, 12)) - approx.deepEqual(divide(complex(-5, 12), complex(2, 3)), complex(2, 3)) - approx.deepEqual(multiply(complex(2, 3), 0), complex(0, 0)) - approx.deepEqual(multiply(complex(0, 3), complex(0, -4)), complex(12, 0)) - approx.deepEqual(multiply(multiply(3, i), multiply(-4, i)), complex(12, 0)) - approx.deepEqual(multiply(math.i, Infinity), complex(Infinity, Infinity)) - approx.deepEqual(multiply(Infinity, math.i), complex(Infinity, Infinity)) - - approx.deepEqual(multiply(complex(2, 0), complex(0, 2)), complex(0, 4)) - approx.deepEqual(multiply(complex(0, 2), complex(0, 2)), -4) - approx.deepEqual(multiply(complex(2, 2), complex(0, 2)), complex(-4, 4)) - approx.deepEqual(multiply(complex(2, 0), complex(2, 2)), complex(4, 4)) - approx.deepEqual(multiply(complex(0, 2), complex(2, 2)), complex(-4, 4)) - approx.deepEqual(multiply(complex(2, 2), complex(2, 2)), complex(0, 8)) - approx.deepEqual(multiply(complex(2, 0), complex(2, 0)), 4) - approx.deepEqual(multiply(complex(0, 2), complex(2, 0)), complex(0, 4)) - approx.deepEqual(multiply(complex(2, 2), complex(2, 0)), complex(4, 4)) - - approx.deepEqual(multiply(complex(2, 3), complex(4, 5)), complex(-7, 22)) - approx.deepEqual(multiply(complex(2, 3), complex(4, -5)), complex(23, 2)) - approx.deepEqual(multiply(complex(2, 3), complex(-4, 5)), complex(-23, -2)) - approx.deepEqual(multiply(complex(2, 3), complex(-4, -5)), complex(7, -22)) - approx.deepEqual(multiply(complex(2, -3), complex(4, 5)), complex(23, -2)) - approx.deepEqual(multiply(complex(2, -3), complex(4, -5)), complex(-7, -22)) - approx.deepEqual(multiply(complex(2, -3), complex(-4, 5)), complex(7, 22)) - approx.deepEqual(multiply(complex(2, -3), complex(-4, -5)), complex(-23, 2)) - approx.deepEqual(multiply(complex(-2, 3), complex(4, 5)), complex(-23, 2)) - approx.deepEqual(multiply(complex(-2, 3), complex(4, -5)), complex(7, 22)) - approx.deepEqual(multiply(complex(-2, 3), complex(-4, 5)), complex(-7, -22)) - approx.deepEqual(multiply(complex(-2, 3), complex(-4, -5)), complex(23, -2)) - approx.deepEqual(multiply(complex(-2, -3), complex(4, 5)), complex(7, -22)) - approx.deepEqual(multiply(complex(-2, -3), complex(4, -5)), complex(-23, -2)) - approx.deepEqual(multiply(complex(-2, -3), complex(-4, 5)), complex(23, 2)) - approx.deepEqual(multiply(complex(-2, -3), complex(-4, -5)), complex(-7, 22)) + approxDeepEqual(multiply(complex(2, 3), 2), complex(4, 6)) + approxDeepEqual(multiply(complex(2, -3), -2), complex(-4, 6)) + approxDeepEqual(multiply(complex(2, -3), 2), complex(4, -6)) + approxDeepEqual(multiply(complex(-2, 3), 2), complex(-4, 6)) + approxDeepEqual(multiply(complex(-2, -3), 2), complex(-4, -6)) + approxDeepEqual(multiply(2, complex(2, 3)), complex(4, 6)) + approxDeepEqual(multiply(i, complex(2, 3)), complex(-3, 2)) + approxDeepEqual(multiply(complex(0, 1), complex(2, 3)), complex(-3, 2)) + approxDeepEqual(multiply(complex(1, 1), complex(2, 3)), complex(-1, 5)) + approxDeepEqual(multiply(complex(2, 3), complex(1, 1)), complex(-1, 5)) + approxDeepEqual(multiply(complex(2, 3), complex(2, 3)), complex(-5, 12)) + approxDeepEqual(divide(complex(-5, 12), complex(2, 3)), complex(2, 3)) + approxDeepEqual(multiply(complex(2, 3), 0), complex(0, 0)) + approxDeepEqual(multiply(complex(0, 3), complex(0, -4)), complex(12, 0)) + approxDeepEqual(multiply(multiply(3, i), multiply(-4, i)), complex(12, 0)) + approxDeepEqual(multiply(math.i, Infinity), complex(Infinity, Infinity)) + approxDeepEqual(multiply(Infinity, math.i), complex(Infinity, Infinity)) + + approxDeepEqual(multiply(complex(2, 0), complex(0, 2)), complex(0, 4)) + approxDeepEqual(multiply(complex(0, 2), complex(0, 2)), -4) + approxDeepEqual(multiply(complex(2, 2), complex(0, 2)), complex(-4, 4)) + approxDeepEqual(multiply(complex(2, 0), complex(2, 2)), complex(4, 4)) + approxDeepEqual(multiply(complex(0, 2), complex(2, 2)), complex(-4, 4)) + approxDeepEqual(multiply(complex(2, 2), complex(2, 2)), complex(0, 8)) + approxDeepEqual(multiply(complex(2, 0), complex(2, 0)), 4) + approxDeepEqual(multiply(complex(0, 2), complex(2, 0)), complex(0, 4)) + approxDeepEqual(multiply(complex(2, 2), complex(2, 0)), complex(4, 4)) + + approxDeepEqual(multiply(complex(2, 3), complex(4, 5)), complex(-7, 22)) + approxDeepEqual(multiply(complex(2, 3), complex(4, -5)), complex(23, 2)) + approxDeepEqual(multiply(complex(2, 3), complex(-4, 5)), complex(-23, -2)) + approxDeepEqual(multiply(complex(2, 3), complex(-4, -5)), complex(7, -22)) + approxDeepEqual(multiply(complex(2, -3), complex(4, 5)), complex(23, -2)) + approxDeepEqual(multiply(complex(2, -3), complex(4, -5)), complex(-7, -22)) + approxDeepEqual(multiply(complex(2, -3), complex(-4, 5)), complex(7, 22)) + approxDeepEqual(multiply(complex(2, -3), complex(-4, -5)), complex(-23, 2)) + approxDeepEqual(multiply(complex(-2, 3), complex(4, 5)), complex(-23, 2)) + approxDeepEqual(multiply(complex(-2, 3), complex(4, -5)), complex(7, 22)) + approxDeepEqual(multiply(complex(-2, 3), complex(-4, 5)), complex(-7, -22)) + approxDeepEqual(multiply(complex(-2, 3), complex(-4, -5)), complex(23, -2)) + approxDeepEqual(multiply(complex(-2, -3), complex(4, 5)), complex(7, -22)) + approxDeepEqual(multiply(complex(-2, -3), complex(4, -5)), complex(-23, -2)) + approxDeepEqual(multiply(complex(-2, -3), complex(-4, 5)), complex(23, 2)) + approxDeepEqual(multiply(complex(-2, -3), complex(-4, -5)), complex(-7, 22)) }) it('should multiply mixed complex numbers and numbers', function () { @@ -171,7 +171,7 @@ describe('multiply', function () { it('should evaluate a complicated unit multiplication', function () { const v1 = math.evaluate('0.1 kg/s * 4.2 J/degC/g * 5 degC') - approx.equal(v1.value, 2100) + approxEqual(v1.value, 2100) }) it('should multiply valueless units correctly', function () { @@ -220,8 +220,8 @@ describe('multiply', function () { const a = [[1, 2], [3, 4]] const b = [[2, 0], [0, 2]] - approx.deepEqual(multiply(a, matrix(b)), matrix([[2, 4], [6, 8]])) - approx.deepEqual(multiply(matrix(a), b), matrix([[2, 4], [6, 8]])) + approxDeepEqual(multiply(a, matrix(b)), matrix([[2, 4], [6, 8]])) + approxDeepEqual(multiply(matrix(a), b), matrix([[2, 4], [6, 8]])) // test with vectors, returning a scalar const c = [1, 2, 3] @@ -288,16 +288,16 @@ describe('multiply', function () { const a = [1, 2, 3] const b = [4, 5, 6] - approx.deepEqual(multiply(a, b), 32) - approx.deepEqual(multiply(matrix(a), matrix(b)), 32) + approxDeepEqual(multiply(a, b), 32) + approxDeepEqual(multiply(matrix(a), matrix(b)), 32) }) it('should conjugate the first argument in dot product', function () { const a = [complex(1, 2), complex(3, 4)] const b = [complex(5, 6), complex(7, 8)] - approx.deepEqual(multiply(a, b), complex(70, -8)) - approx.deepEqual(multiply(matrix(a), matrix(b)), complex(70, -8)) + approxDeepEqual(multiply(a, b), complex(70, -8)) + approxDeepEqual(multiply(matrix(a), matrix(b)), complex(70, -8)) }) it('should multiply row vector x column vector', function () { @@ -338,11 +338,11 @@ describe('multiply', function () { [4, 9, 2] ] - approx.deepEqual(multiply(a, b), [26, 38, 26]) - approx.deepEqual(multiply(b, a), [28, 34, 28]) + approxDeepEqual(multiply(a, b), [26, 38, 26]) + approxDeepEqual(multiply(b, a), [28, 34, 28]) - approx.deepEqual(multiply(matrix(a), matrix(b)), matrix([26, 38, 26])) - approx.deepEqual(multiply(matrix(b), matrix(a)), matrix([28, 34, 28])) + approxDeepEqual(multiply(matrix(a), matrix(b)), matrix([26, 38, 26])) + approxDeepEqual(multiply(matrix(b), matrix(a)), matrix([28, 34, 28])) }) }) @@ -544,7 +544,7 @@ describe('multiply', function () { const r = multiply(l, u) - approx.deepEqual( + approxDeepEqual( r.valueOf(), [ [240, -2700, 6480, -4200], @@ -560,19 +560,19 @@ describe('multiply', function () { const d = matrix([[5, 6]]) it('should perform element-wise multiplication if multiplying a matrix and a number', function () { - approx.deepEqual(multiply(a, 3), matrix([[3, 6], [9, 12]])) - approx.deepEqual(multiply(3, a), matrix([[3, 6], [9, 12]])) + approxDeepEqual(multiply(a, 3), matrix([[3, 6], [9, 12]])) + approxDeepEqual(multiply(3, a), matrix([[3, 6], [9, 12]])) }) it('should perform matrix multiplication', function () { - approx.deepEqual(multiply(a, b), matrix([[19, 22], [43, 50]])) - approx.deepEqual(multiply(a, c), matrix([[17], [39]])) - approx.deepEqual(multiply(d, a), matrix([[23, 34]])) - approx.deepEqual(multiply(d, b), matrix([[67, 78]])) - approx.deepEqual(multiply(d, c), matrix([[61]])) - approx.deepEqual(multiply([[1, 2], [3, 4]], [[5, 6], [7, 8]]), [[19, 22], [43, 50]]) - approx.deepEqual(multiply([1, 2, 3, 4], 2), [2, 4, 6, 8]) - approx.deepEqual(multiply(matrix([1, 2, 3, 4]), 2), matrix([2, 4, 6, 8])) + approxDeepEqual(multiply(a, b), matrix([[19, 22], [43, 50]])) + approxDeepEqual(multiply(a, c), matrix([[17], [39]])) + approxDeepEqual(multiply(d, a), matrix([[23, 34]])) + approxDeepEqual(multiply(d, b), matrix([[67, 78]])) + approxDeepEqual(multiply(d, c), matrix([[61]])) + approxDeepEqual(multiply([[1, 2], [3, 4]], [[5, 6], [7, 8]]), [[19, 22], [43, 50]]) + approxDeepEqual(multiply([1, 2, 3, 4], 2), [2, 4, 6, 8]) + approxDeepEqual(multiply(matrix([1, 2, 3, 4]), 2), matrix([2, 4, 6, 8])) }) }) @@ -753,7 +753,7 @@ describe('multiply', function () { const r = multiply(l, u) assert(r.storage(), 'sparse') - approx.deepEqual( + approxDeepEqual( r.valueOf(), [ [240, -2700, 6480, -4200], @@ -769,16 +769,16 @@ describe('multiply', function () { const d = matrix([[5, 6]], 'sparse') it('should perform element-wise multiplication if multiplying a matrix and a number', function () { - approx.deepEqual(multiply(a, 3), matrix([[3, 6], [9, 12]], 'sparse')) - approx.deepEqual(multiply(3, a), matrix([[3, 6], [9, 12]], 'sparse')) + approxDeepEqual(multiply(a, 3), matrix([[3, 6], [9, 12]], 'sparse')) + approxDeepEqual(multiply(3, a), matrix([[3, 6], [9, 12]], 'sparse')) }) it('should perform matrix multiplication', function () { - approx.deepEqual(multiply(a, b), matrix([[19, 22], [43, 50]], 'sparse')) - approx.deepEqual(multiply(a, c), matrix([[17], [39]], 'sparse')) - approx.deepEqual(multiply(d, a), matrix([[23, 34]], 'sparse')) - approx.deepEqual(multiply(d, b), matrix([[67, 78]], 'sparse')) - approx.deepEqual(multiply(d, c), matrix([[61]], 'sparse')) + approxDeepEqual(multiply(a, b), matrix([[19, 22], [43, 50]], 'sparse')) + approxDeepEqual(multiply(a, c), matrix([[17], [39]], 'sparse')) + approxDeepEqual(multiply(d, a), matrix([[23, 34]], 'sparse')) + approxDeepEqual(multiply(d, b), matrix([[67, 78]], 'sparse')) + approxDeepEqual(multiply(d, c), matrix([[61]], 'sparse')) }) it('should multiply two pattern matrices correctly', function () { diff --git a/test/unit-tests/function/arithmetic/nthRoot.test.js b/test/unit-tests/function/arithmetic/nthRoot.test.js index 65af29d041..e1b3216cdc 100644 --- a/test/unit-tests/function/arithmetic/nthRoot.test.js +++ b/test/unit-tests/function/arithmetic/nthRoot.test.js @@ -1,7 +1,7 @@ // test nthRoot import assert from 'assert' -import approx from '../../../../tools/approx.js' +import { approxEqual, approxDeepEqual } from '../../../../tools/approx.js' import math from '../../../../src/defaultInstance.js' const matrix = math.matrix const sparse = math.sparse @@ -18,37 +18,37 @@ describe('nthRoot', function () { }) it('should return the nthRoot for numbers', function () { - approx.equal(nthRoot(4), 2) - approx.equal(nthRoot(9), 3) - approx.equal(nthRoot(8, 3), 2) - approx.equal(nthRoot(64, 3), 4) - approx.equal(nthRoot(2, 2.5), 1.31950791077289) - approx.equal(nthRoot(2.5, 2), 1.58113883008419) - approx.equal(nthRoot(0.1 + 0.2), 0.5477225575051662) // a value containing a round-off error - approx.equal(nthRoot(0, 3), 0) - approx.equal(nthRoot(0, 2), 0) - approx.equal(nthRoot(0.0001, 3), 0.0464158883361278) + approxEqual(nthRoot(4), 2) + approxEqual(nthRoot(9), 3) + approxEqual(nthRoot(8, 3), 2) + approxEqual(nthRoot(64, 3), 4) + approxEqual(nthRoot(2, 2.5), 1.31950791077289) + approxEqual(nthRoot(2.5, 2), 1.58113883008419) + approxEqual(nthRoot(0.1 + 0.2), 0.5477225575051662) // a value containing a round-off error + approxEqual(nthRoot(0, 3), 0) + approxEqual(nthRoot(0, 2), 0) + approxEqual(nthRoot(0.0001, 3), 0.0464158883361278) }) it('should return the nthRoot for very large numbers', function () { - approx.equal(nthRoot(2e150 * 2e150), 2e150) - approx.equal(nthRoot(Math.pow(2, 1000)), 3.273390607896142e+150) + approxEqual(nthRoot(2e150 * 2e150), 2e150) + approxEqual(nthRoot(Math.pow(2, 1000)), 3.273390607896142e+150) }) it('should return the nthRoot for small large numbers', function () { - approx.equal(nthRoot(4e-300), 2e-150) + approxEqual(nthRoot(4e-300), 2e-150) }) it('should return the nthRoot for negative numbers', function () { - approx.equal(nthRoot(-64, 3), -4) - approx.equal(nthRoot(-8, 3), -2) + approxEqual(nthRoot(-64, 3), -4) + approxEqual(nthRoot(-8, 3), -2) // Newton's method fails in this particular case: --ericman314 - approx.equal(nthRoot(-2, 3), -1.2599210498949) + approxEqual(nthRoot(-2, 3), -1.2599210498949) }) it('should return the nthRoot for negative roots', function () { - approx.equal(nthRoot(64, -3), 0.25) - approx.equal(nthRoot(-64, -3), -0.25) + approxEqual(nthRoot(64, -3), 0.25) + approxEqual(nthRoot(-64, -3), -0.25) }) it('should return the nthRoot for zero', function () { @@ -57,9 +57,9 @@ describe('nthRoot', function () { }) it('should return the nthRoot for infinity', function () { - approx.equal(nthRoot(Infinity, 2), Infinity) - approx.equal(nthRoot(-Infinity, 3), -Infinity) - approx.equal(nthRoot(Infinity, -3), 0) + approxEqual(nthRoot(Infinity, 2), Infinity) + approxEqual(nthRoot(-Infinity, 3), -Infinity) + approxEqual(nthRoot(Infinity, -3), 0) }) it('should throw an error when n is zero', function () { @@ -131,63 +131,63 @@ describe('nthRoot', function () { describe('Array', function () { it('should return the nthRoot for array - scalar', function () { - approx.deepEqual(nthRoot([8, 27, 64], 3), [2, 3, 4]) - approx.deepEqual(nthRoot(64, [2, 3, 8]), [8, 4, 1.68179283050743]) + approxDeepEqual(nthRoot([8, 27, 64], 3), [2, 3, 4]) + approxDeepEqual(nthRoot(64, [2, 3, 8]), [8, 4, 1.68179283050743]) }) it('should return the nthRoot for array - array', function () { - approx.deepEqual(nthRoot([[64, 3125], [0, -1]], [[3, 5], [1, 3]]), [[4, 5], [0, -1]]) + approxDeepEqual(nthRoot([[64, 3125], [0, -1]], [[3, 5], [1, 3]]), [[4, 5], [0, -1]]) }) it('should return the nthRoot for broadcastable arrays', function () { - approx.deepEqual(nthRoot([64, 3125], [[3], [1]]), [[3.9999999999999996, 14.620088691064328], [64, 3125]]) - approx.deepEqual(nthRoot([[64], [0]], [3, 5]), [[3.9999999999999996, 2.29739670999407], [0, 0]]) + approxDeepEqual(nthRoot([64, 3125], [[3], [1]]), [[3.9999999999999996, 14.620088691064328], [64, 3125]]) + approxDeepEqual(nthRoot([[64], [0]], [3, 5]), [[3.9999999999999996, 2.29739670999407], [0, 0]]) }) it('should return the nthRoot for array - dense matrix', function () { - approx.deepEqual(nthRoot([[64, 3125], [0, -1]], matrix([[3, 5], [1, 3]])), matrix([[4, 5], [0, -1]])) + approxDeepEqual(nthRoot([[64, 3125], [0, -1]], matrix([[3, 5], [1, 3]])), matrix([[4, 5], [0, -1]])) }) it('should return the nthRoot for array - sparse matrix', function () { - approx.deepEqual(nthRoot([[64, 3125], [0, -1]], sparse([[3, 5], [1, 3]])), matrix([[4, 5], [0, -1]])) + approxDeepEqual(nthRoot([[64, 3125], [0, -1]], sparse([[3, 5], [1, 3]])), matrix([[4, 5], [0, -1]])) }) }) describe('DenseMatrix', function () { it('should return the nthRoot for dense matrix - scalar', function () { - approx.deepEqual(nthRoot(matrix([8, 27, 64]), 3), matrix([2, 3, 4])) - approx.deepEqual(nthRoot(64, matrix([2, 3, 8])), matrix([8, 4, 1.68179283050743])) + approxDeepEqual(nthRoot(matrix([8, 27, 64]), 3), matrix([2, 3, 4])) + approxDeepEqual(nthRoot(64, matrix([2, 3, 8])), matrix([8, 4, 1.68179283050743])) }) it('should return the nthRoot for dense matrix - array', function () { - approx.deepEqual(nthRoot(matrix([[64, 3125], [0, -1]]), [[3, 5], [1, 3]]), matrix([[4, 5], [0, -1]])) + approxDeepEqual(nthRoot(matrix([[64, 3125], [0, -1]]), [[3, 5], [1, 3]]), matrix([[4, 5], [0, -1]])) }) it('should return the nthRoot for dense matrix - dense matrix', function () { - approx.deepEqual(nthRoot(matrix([[64, 3125], [0, -1]]), matrix([[3, 5], [1, 3]])), matrix([[4, 5], [0, -1]])) + approxDeepEqual(nthRoot(matrix([[64, 3125], [0, -1]]), matrix([[3, 5], [1, 3]])), matrix([[4, 5], [0, -1]])) }) it('should return the nthRoot for dense matrix - sparse matrix', function () { - approx.deepEqual(nthRoot(matrix([[64, 3125], [0, -1]]), sparse([[3, 5], [1, 3]])), matrix([[4, 5], [0, -1]])) + approxDeepEqual(nthRoot(matrix([[64, 3125], [0, -1]]), sparse([[3, 5], [1, 3]])), matrix([[4, 5], [0, -1]])) }) }) describe('SparseMatrix', function () { it('should return the nthRoot for sparse matrix - scalar', function () { - approx.deepEqual(nthRoot(sparse([[8, 27], [0, 64]]), 3), sparse([[2, 3], [0, 4]])) - approx.deepEqual(nthRoot(64, sparse([[2, 3], [1, 8]])), sparse([[8, 4], [64, 1.68179283050743]])) + approxDeepEqual(nthRoot(sparse([[8, 27], [0, 64]]), 3), sparse([[2, 3], [0, 4]])) + approxDeepEqual(nthRoot(64, sparse([[2, 3], [1, 8]])), sparse([[8, 4], [64, 1.68179283050743]])) }) it('should return the nthRoot for sparse matrix - array', function () { - approx.deepEqual(nthRoot(sparse([[64, 3125], [0, -1]]), [[3, 5], [1, 3]]), sparse([[4, 5], [0, -1]])) + approxDeepEqual(nthRoot(sparse([[64, 3125], [0, -1]]), [[3, 5], [1, 3]]), sparse([[4, 5], [0, -1]])) }) it('should return the nthRoot for sparse matrix - dense matrix', function () { - approx.deepEqual(nthRoot(sparse([[64, 3125], [0, -1]]), matrix([[3, 5], [1, 3]])), sparse([[4, 5], [0, -1]])) + approxDeepEqual(nthRoot(sparse([[64, 3125], [0, -1]]), matrix([[3, 5], [1, 3]])), sparse([[4, 5], [0, -1]])) }) it('should return the nthRoot for sparse matrix - sparse matrix', function () { - approx.deepEqual(nthRoot(sparse([[64, 3125], [0, -1]]), sparse([[3, 5], [1, 3]])), sparse([[4, 5], [0, -1]])) + approxDeepEqual(nthRoot(sparse([[64, 3125], [0, -1]]), sparse([[3, 5], [1, 3]])), sparse([[4, 5], [0, -1]])) }) }) diff --git a/test/unit-tests/function/arithmetic/nthRoots.test.js b/test/unit-tests/function/arithmetic/nthRoots.test.js index a26e5156b3..a1eb323b21 100644 --- a/test/unit-tests/function/arithmetic/nthRoots.test.js +++ b/test/unit-tests/function/arithmetic/nthRoots.test.js @@ -2,7 +2,7 @@ import assert from 'assert' import math from '../../../../src/defaultInstance.js' -import approx from '../../../../tools/approx.js' +import { approxDeepEqual } from '../../../../tools/approx.js' const complex = math.complex const nthRoots = math.nthRoots @@ -27,7 +27,7 @@ describe('nthRoots', function () { it('should return the correct answer for Complex values', function () { const roots = nthRoots(complex(3, 4), 2) - approx.deepEqual(roots, [ + approxDeepEqual(roots, [ complex(2, 1), complex(-2.0000000000000004, -0.9999999999999999) ]) diff --git a/test/unit-tests/function/arithmetic/pow.test.js b/test/unit-tests/function/arithmetic/pow.test.js index f9d5133168..923362b16f 100644 --- a/test/unit-tests/function/arithmetic/pow.test.js +++ b/test/unit-tests/function/arithmetic/pow.test.js @@ -1,7 +1,7 @@ // test exp import assert from 'assert' -import approx from '../../../../tools/approx.js' +import { approxEqual, approxDeepEqual } from '../../../../tools/approx.js' import math from '../../../../src/defaultInstance.js' const mathPredictable = math.create({ predictable: true }) const bignumber = math.bignumber @@ -13,20 +13,20 @@ const pow = math.pow describe('pow', function () { it('should exponentiate a number to the given power', function () { - approx.deepEqual(pow(2, 3), 8) - approx.deepEqual(pow(2, 4), 16) - approx.deepEqual(pow(-2, 2), 4) - approx.deepEqual(pow(3, 3), 27) - approx.deepEqual(pow(3, -2), 0.111111111111111) - approx.deepEqual(pow(-3, -2), 0.111111111111111) - approx.deepEqual(pow(3, -3), 0.0370370370370370) - approx.deepEqual(pow(-3, -3), -0.0370370370370370) - approx.deepEqual(pow(2, 1.5), 2.82842712474619) + approxDeepEqual(pow(2, 3), 8) + approxDeepEqual(pow(2, 4), 16) + approxDeepEqual(pow(-2, 2), 4) + approxDeepEqual(pow(3, 3), 27) + approxDeepEqual(pow(3, -2), 0.111111111111111) + approxDeepEqual(pow(-3, -2), 0.111111111111111) + approxDeepEqual(pow(3, -3), 0.0370370370370370) + approxDeepEqual(pow(-3, -3), -0.0370370370370370) + approxDeepEqual(pow(2, 1.5), 2.82842712474619) }) it('should exponentiate a negative number to a non-integer power', function () { - approx.deepEqual(pow(-2, 1.5), complex(0, -2.82842712474619)) - approx.deepEqual(pow(-8, 1 / 3), complex(1, 1.732050807568877)) + approxDeepEqual(pow(-2, 1.5), complex(0, -2.82842712474619)) + approxDeepEqual(pow(-8, 1 / 3), complex(1, 1.732050807568877)) }) it('should exponentiate a negative number to a non-integer power with predictable:true', function () { @@ -37,23 +37,23 @@ describe('pow', function () { }) it('should return a real-valued root if one exists with predictable:true', function () { - approx.equal(mathPredictable.pow(-8, 1 / 3), -2) - approx.equal(mathPredictable.pow(-8, 2 / 3), 4) - approx.equal(mathPredictable.pow(-8, 3 / 3), -8) - approx.equal(mathPredictable.pow(-8, 4 / 3), 16) - approx.equal(mathPredictable.pow(-8, 5 / 3), -32) - approx.equal(mathPredictable.pow(-8, -5 / 3), -0.03125) - approx.equal(mathPredictable.pow(-1, 2 / 3), 1) - approx.equal(mathPredictable.pow(-1, 50 / 99), 1) - approx.equal(mathPredictable.pow(-1, 49 / 99), -1) - approx.equal(mathPredictable.pow(-17, 29 / 137), -1.8216292479175) - approx.equal(mathPredictable.pow(-1, 0), 1) - approx.equal(mathPredictable.pow(-1, 0.2), -1) - approx.equal(mathPredictable.pow(-1, 1), -1) - - approx.equal(mathPredictable.pow(4, 2), 16) - approx.equal(mathPredictable.pow(4, 0.5), 2) - approx.equal(mathPredictable.pow(-4, 2), 16) + approxEqual(mathPredictable.pow(-8, 1 / 3), -2) + approxEqual(mathPredictable.pow(-8, 2 / 3), 4) + approxEqual(mathPredictable.pow(-8, 3 / 3), -8) + approxEqual(mathPredictable.pow(-8, 4 / 3), 16) + approxEqual(mathPredictable.pow(-8, 5 / 3), -32) + approxEqual(mathPredictable.pow(-8, -5 / 3), -0.03125) + approxEqual(mathPredictable.pow(-1, 2 / 3), 1) + approxEqual(mathPredictable.pow(-1, 50 / 99), 1) + approxEqual(mathPredictable.pow(-1, 49 / 99), -1) + approxEqual(mathPredictable.pow(-17, 29 / 137), -1.8216292479175) + approxEqual(mathPredictable.pow(-1, 0), 1) + approxEqual(mathPredictable.pow(-1, 0.2), -1) + approxEqual(mathPredictable.pow(-1, 1), -1) + + approxEqual(mathPredictable.pow(4, 2), 16) + approxEqual(mathPredictable.pow(4, 0.5), 2) + approxEqual(mathPredictable.pow(-4, 2), 16) assert(isNaN(mathPredictable.pow(-1, 49 / 100))) assert(isNaN(mathPredictable.pow(-17, 29 / 138))) @@ -83,9 +83,9 @@ describe('pow', function () { }) it('should exponentiate a negative bignumber to a non-integer power', function () { - approx.deepEqual(pow(bignumber(-2), bignumber(1.5)), complex(0, -2.82842712474619)) - approx.deepEqual(pow(-2, bignumber(1.5)), complex(0, -2.82842712474619)) - approx.deepEqual(pow(bignumber(-2), 1.5), complex(0, -2.82842712474619)) + approxDeepEqual(pow(bignumber(-2), bignumber(1.5)), complex(0, -2.82842712474619)) + approxDeepEqual(pow(-2, bignumber(1.5)), complex(0, -2.82842712474619)) + approxDeepEqual(pow(bignumber(-2), 1.5), complex(0, -2.82842712474619)) }) it('should exponentiate a negative bignumber to a non-integer power', function () { @@ -117,8 +117,8 @@ describe('pow', function () { it('should exponentiate a fraction to an non-integer power', function () { assert.deepStrictEqual(math.pow(fraction(27, 8), fraction(2, 3)), fraction(9, 4)) - approx.deepEqual(math.pow(fraction(4), 1.5114), 8.127434364206053) - approx.deepEqual(math.pow(fraction(4), fraction(1.5114)), 8.127434364206053) + approxDeepEqual(math.pow(fraction(4), 1.5114), 8.127434364206053) + approxDeepEqual(math.pow(fraction(4), fraction(1.5114)), 8.127434364206053) assert.throws(function () { mathPredictable.pow(fraction(3), fraction(1.5114)) }, /Result of pow is non-rational and cannot be expressed as a fraction/) @@ -158,48 +158,48 @@ describe('pow', function () { }) it('should exponentiate a complex number to the given power', function () { - approx.deepEqual(pow(complex(3, 0), 2), complex(9, 0)) - approx.deepEqual(pow(complex(0, 2), 2), complex(-4, 0)) - - approx.deepEqual(pow(complex(-1, -1), complex(-1, -1)), complex('-0.0284750589322119 + 0.0606697332231795i')) - approx.deepEqual(pow(complex(-1, -1), complex(-1, 1)), complex('-6.7536199239765713 + 3.1697803027015614i')) - approx.deepEqual(pow(complex(-1, -1), complex(0, -1)), complex('0.0891447921553914 - 0.0321946742909677i')) - approx.deepEqual(pow(complex(-1, -1), complex(0, 1)), complex('9.92340022667813 + 3.58383962127501i')) - approx.deepEqual(pow(complex(-1, -1), complex(1, -1)), complex('-0.1213394664463591 - 0.0569501178644237i')) - approx.deepEqual(pow(complex(-1, -1), complex(1, 1)), complex('-6.3395606054031211 - 13.5072398479531426i')) - approx.deepEqual(pow(complex(-1, 1), complex(-1, -1)), complex('-6.7536199239765713 - 3.1697803027015614i')) - approx.deepEqual(pow(complex(-1, 1), complex(-1, 1)), complex('-0.0284750589322119 - 0.0606697332231795i')) - approx.deepEqual(pow(complex(-1, 1), complex(0, -1)), complex('9.92340022667813 - 3.58383962127501i')) - approx.deepEqual(pow(complex(-1, 1), complex(0, 1)), complex('0.0891447921553914 + 0.0321946742909677i')) - approx.deepEqual(pow(complex(-1, 1), complex(1, -1)), complex('-6.3395606054031211 + 13.5072398479531426i')) - approx.deepEqual(pow(complex(-1, 1), complex(1, 1)), complex('-0.1213394664463591 + 0.0569501178644237i')) - - approx.deepEqual(pow(complex(0, -1), complex(-1, -1)), complex('0.000000000000000 + 0.207879576350762i')) - approx.deepEqual(pow(complex(0, -1), complex(-1, 1)), complex('0.000000000000000 + 4.810477380965351i')) - approx.deepEqual(pow(complex(0, -1), complex(1, -1)), complex('0.000000000000000 - 0.207879576350762i')) - approx.deepEqual(pow(complex(0, -1), complex(1, 1)), complex('0.000000000000000 - 4.810477380965351i')) - approx.deepEqual(pow(complex(0, 1), complex(-1, -1)), complex('0.000000000000000 - 4.810477380965351i')) - approx.deepEqual(pow(complex(0, 1), complex(-1, 1)), complex('0.000000000000000 - 0.207879576350762i')) - approx.deepEqual(pow(complex(0, 1), complex(1, -1)), complex('0.000000000000000 + 4.810477380965351i')) - approx.deepEqual(pow(complex(0, 1), complex(1, 1)), complex('0.000000000000000 + 0.207879576350762i')) - - approx.deepEqual(pow(complex(1, -1), complex(-1, -1)), complex('0.2918503793793073 + 0.1369786269150605i')) - approx.deepEqual(pow(complex(1, -1), complex(-1, 1)), complex('0.6589325864505904 + 1.4039396486303144i')) - approx.deepEqual(pow(complex(1, -1), complex(0, -1)), complex('0.428829006294368 - 0.154871752464247i')) - approx.deepEqual(pow(complex(1, -1), complex(0, 1)), complex('2.062872235080905 + 0.745007062179724i')) - approx.deepEqual(pow(complex(1, -1), complex(1, -1)), complex('0.2739572538301211 - 0.5837007587586147i')) - approx.deepEqual(pow(complex(1, -1), complex(1, 1)), complex('2.8078792972606288 - 1.3178651729011805i')) - approx.deepEqual(pow(complex(1, 1), complex(-1, -1)), complex('0.6589325864505904 - 1.4039396486303144i')) - approx.deepEqual(pow(complex(1, 1), complex(-1, 1)), complex('0.2918503793793073 - 0.1369786269150605i')) - approx.deepEqual(pow(complex(1, 1), complex(0, -1)), complex('2.062872235080905 - 0.745007062179724i')) - approx.deepEqual(pow(complex(1, 1), complex(0, 1)), complex('0.428829006294368 + 0.154871752464247i')) - approx.deepEqual(pow(complex(1, 1), complex(1, -1)), complex('2.8078792972606288 + 1.3178651729011805i')) - approx.deepEqual(pow(complex(1, 1), complex(1, 1)), complex('0.2739572538301211 + 0.5837007587586147i')) + approxDeepEqual(pow(complex(3, 0), 2), complex(9, 0)) + approxDeepEqual(pow(complex(0, 2), 2), complex(-4, 0)) + + approxDeepEqual(pow(complex(-1, -1), complex(-1, -1)), complex('-0.0284750589322119 + 0.0606697332231795i')) + approxDeepEqual(pow(complex(-1, -1), complex(-1, 1)), complex('-6.7536199239765713 + 3.1697803027015614i')) + approxDeepEqual(pow(complex(-1, -1), complex(0, -1)), complex('0.0891447921553914 - 0.0321946742909677i')) + approxDeepEqual(pow(complex(-1, -1), complex(0, 1)), complex('9.92340022667813 + 3.58383962127501i')) + approxDeepEqual(pow(complex(-1, -1), complex(1, -1)), complex('-0.1213394664463591 - 0.0569501178644237i')) + approxDeepEqual(pow(complex(-1, -1), complex(1, 1)), complex('-6.3395606054031211 - 13.5072398479531426i')) + approxDeepEqual(pow(complex(-1, 1), complex(-1, -1)), complex('-6.7536199239765713 - 3.1697803027015614i')) + approxDeepEqual(pow(complex(-1, 1), complex(-1, 1)), complex('-0.0284750589322119 - 0.0606697332231795i')) + approxDeepEqual(pow(complex(-1, 1), complex(0, -1)), complex('9.92340022667813 - 3.58383962127501i')) + approxDeepEqual(pow(complex(-1, 1), complex(0, 1)), complex('0.0891447921553914 + 0.0321946742909677i')) + approxDeepEqual(pow(complex(-1, 1), complex(1, -1)), complex('-6.3395606054031211 + 13.5072398479531426i')) + approxDeepEqual(pow(complex(-1, 1), complex(1, 1)), complex('-0.1213394664463591 + 0.0569501178644237i')) + + approxDeepEqual(pow(complex(0, -1), complex(-1, -1)), complex('0.000000000000000 + 0.207879576350762i')) + approxDeepEqual(pow(complex(0, -1), complex(-1, 1)), complex('0.000000000000000 + 4.810477380965351i')) + approxDeepEqual(pow(complex(0, -1), complex(1, -1)), complex('0.000000000000000 - 0.207879576350762i')) + approxDeepEqual(pow(complex(0, -1), complex(1, 1)), complex('0.000000000000000 - 4.810477380965351i')) + approxDeepEqual(pow(complex(0, 1), complex(-1, -1)), complex('0.000000000000000 - 4.810477380965351i')) + approxDeepEqual(pow(complex(0, 1), complex(-1, 1)), complex('0.000000000000000 - 0.207879576350762i')) + approxDeepEqual(pow(complex(0, 1), complex(1, -1)), complex('0.000000000000000 + 4.810477380965351i')) + approxDeepEqual(pow(complex(0, 1), complex(1, 1)), complex('0.000000000000000 + 0.207879576350762i')) + + approxDeepEqual(pow(complex(1, -1), complex(-1, -1)), complex('0.2918503793793073 + 0.1369786269150605i')) + approxDeepEqual(pow(complex(1, -1), complex(-1, 1)), complex('0.6589325864505904 + 1.4039396486303144i')) + approxDeepEqual(pow(complex(1, -1), complex(0, -1)), complex('0.428829006294368 - 0.154871752464247i')) + approxDeepEqual(pow(complex(1, -1), complex(0, 1)), complex('2.062872235080905 + 0.745007062179724i')) + approxDeepEqual(pow(complex(1, -1), complex(1, -1)), complex('0.2739572538301211 - 0.5837007587586147i')) + approxDeepEqual(pow(complex(1, -1), complex(1, 1)), complex('2.8078792972606288 - 1.3178651729011805i')) + approxDeepEqual(pow(complex(1, 1), complex(-1, -1)), complex('0.6589325864505904 - 1.4039396486303144i')) + approxDeepEqual(pow(complex(1, 1), complex(-1, 1)), complex('0.2918503793793073 - 0.1369786269150605i')) + approxDeepEqual(pow(complex(1, 1), complex(0, -1)), complex('2.062872235080905 - 0.745007062179724i')) + approxDeepEqual(pow(complex(1, 1), complex(0, 1)), complex('0.428829006294368 + 0.154871752464247i')) + approxDeepEqual(pow(complex(1, 1), complex(1, -1)), complex('2.8078792972606288 + 1.3178651729011805i')) + approxDeepEqual(pow(complex(1, 1), complex(1, 1)), complex('0.2739572538301211 + 0.5837007587586147i')) }) it('should exponentiate a complex number to the given bignumber power', function () { - approx.deepEqual(pow(complex(3, 0), math.bignumber(2)), complex(9, 0)) - approx.deepEqual(pow(complex(0, 2), math.bignumber(2)), complex(-4, 0)) + approxDeepEqual(pow(complex(3, 0), math.bignumber(2)), complex(9, 0)) + approxDeepEqual(pow(complex(0, 2), math.bignumber(2)), complex(-4, 0)) }) it('should correctly calculate unit ^ number', function () { @@ -237,8 +237,8 @@ describe('pow', function () { it('should raise a square matrix to the power 2', function () { const a = [[1, 2], [3, 4]] const res = [[7, 10], [15, 22]] - approx.deepEqual(pow(a, 2), res) - approx.deepEqual(pow(matrix(a), 2), matrix(res)) + approxDeepEqual(pow(a, 2), res) + approxDeepEqual(pow(matrix(a), 2), matrix(res)) }) it('should raise an inverted matrix for power -1', function () { @@ -252,21 +252,21 @@ describe('pow', function () { [1 / 2, 1, 1 / 2], [1 / 4, 1 / 2, 3 / 4] ] - approx.deepEqual(pow(a, -1), res) - approx.deepEqual(pow(matrix(a), -1), matrix(res)) + approxDeepEqual(pow(a, -1), res) + approxDeepEqual(pow(matrix(a), -1), matrix(res)) }) it('should return identity matrix for power 0', function () { const a = [[1, 2], [3, 4]] const res = [[1, 0], [0, 1]] - approx.deepEqual(pow(a, 0), res) - approx.deepEqual(pow(matrix(a), 0), matrix(res)) + approxDeepEqual(pow(a, 0), res) + approxDeepEqual(pow(matrix(a), 0), matrix(res)) }) it('should compute large size of square matrix', function () { const a = math.identity(30).valueOf() - approx.deepEqual(pow(a, 1000), a) - approx.deepEqual(pow(matrix(a), 1000), matrix(a)) + approxDeepEqual(pow(a, 1000), a) + approxDeepEqual(pow(matrix(a), 1000), matrix(a)) }) it('should throw an error when calculating the power of a non square matrix', function () { diff --git a/test/unit-tests/function/arithmetic/round.test.js b/test/unit-tests/function/arithmetic/round.test.js index 536925d91c..63afdb993b 100644 --- a/test/unit-tests/function/arithmetic/round.test.js +++ b/test/unit-tests/function/arithmetic/round.test.js @@ -1,7 +1,7 @@ // test round import assert from 'assert' -import approx from '../../../../tools/approx.js' +import { approxEqual } from '../../../../tools/approx.js' import math from '../../../../src/defaultInstance.js' const bignumber = math.bignumber const complex = math.complex @@ -18,12 +18,12 @@ const testBigNum = bignumber('10.99999999999999999999999999999999999999999999999 describe('round', function () { it('should round a number to te given number of decimals', function () { - approx.equal(round(math.pi), 3) - approx.equal(round(math.pi * 1000), 3142) - approx.equal(round(math.pi, 3), 3.142) - approx.equal(round(math.pi, 6), 3.141593) - approx.equal(round(1234.5678, 2), 1234.57) - approx.equal(round(2.135, 2), 2.14) + approxEqual(round(math.pi), 3) + approxEqual(round(math.pi * 1000), 3142) + approxEqual(round(math.pi, 3), 3.142) + approxEqual(round(math.pi, 6), 3.141593) + approxEqual(round(1234.5678, 2), 1234.57) + approxEqual(round(2.135, 2), 2.14) assert.strictEqual(round(2.7), 3) assert.strictEqual(round(2.5), 3) @@ -37,10 +37,10 @@ describe('round', function () { }) it('should round booleans (yeah, not really useful but it should be supported)', function () { - approx.equal(round(true), 1) - approx.equal(round(false), 0) - approx.equal(round(true, 2), 1) - approx.equal(round(false, 2), 0) + approxEqual(round(true), 1) + approxEqual(round(false), 0) + approxEqual(round(true, 2), 1) + approxEqual(round(false, 2), 0) }) it('should throw an error on invalid type of value', function () { diff --git a/test/unit-tests/function/arithmetic/sign.test.js b/test/unit-tests/function/arithmetic/sign.test.js index d61a211a10..b569c7cffb 100644 --- a/test/unit-tests/function/arithmetic/sign.test.js +++ b/test/unit-tests/function/arithmetic/sign.test.js @@ -1,7 +1,7 @@ // test sign import assert from 'assert' -import approx from '../../../../tools/approx.js' +import { approxDeepEqual } from '../../../../tools/approx.js' import math from '../../../../src/defaultInstance.js' const bignumber = math.bignumber const fraction = math.fraction @@ -34,7 +34,7 @@ describe('sign', function () { }) it('should calculate the sign of a complex value', function () { - approx.deepEqual(math.sign(math.complex(2, -3)), math.complex(0.554700196225229, -0.832050294337844)) + approxDeepEqual(math.sign(math.complex(2, -3)), math.complex(0.554700196225229, -0.832050294337844)) }) it('should calculate the sign of a unit', function () { diff --git a/test/unit-tests/function/arithmetic/subtract.test.js b/test/unit-tests/function/arithmetic/subtract.test.js index 7e8a920ae9..1302032171 100644 --- a/test/unit-tests/function/arithmetic/subtract.test.js +++ b/test/unit-tests/function/arithmetic/subtract.test.js @@ -1,7 +1,7 @@ // test subtract import assert from 'assert' -import approx from '../../../../tools/approx.js' +import { approxDeepEqual } from '../../../../tools/approx.js' import math from '../../../../src/defaultInstance.js' const bignumber = math.bignumber const subtract = math.subtract @@ -86,7 +86,7 @@ describe('subtract', function () { }) it('should subtract two quantities of the same unit', function () { - approx.deepEqual(subtract(math.unit(5, 'km'), math.unit(100, 'mile')), math.unit(-155.93, 'km')) + approxDeepEqual(subtract(math.unit(5, 'km'), math.unit(100, 'mile')), math.unit(-155.93, 'km')) assert.deepStrictEqual(subtract(math.unit(math.bignumber(5), 'km'), math.unit(math.bignumber(2), 'km')), math.unit(math.bignumber(3), 'km')) @@ -98,8 +98,8 @@ describe('subtract', function () { let t = math.unit(20, 'degC') assert.deepStrictEqual(subtract(t, math.unit(1, 'degC')), math.unit(19, 'degC')) t = math.unit(68, 'degF') - approx.deepEqual(subtract(t, math.unit(2, 'degF')), math.unit(66, 'degF')) - approx.deepEqual(subtract(t, math.unit(1, 'degC')), math.unit(66.2, 'degF')) + approxDeepEqual(subtract(t, math.unit(2, 'degF')), math.unit(66, 'degF')) + approxDeepEqual(subtract(t, math.unit(1, 'degC')), math.unit(66.2, 'degF')) }) it('should throw an error if subtracting two quantities of different units', function () { diff --git a/test/unit-tests/function/arithmetic/subtractScalar.test.js b/test/unit-tests/function/arithmetic/subtractScalar.test.js index 99d60df9da..994201cdf5 100644 --- a/test/unit-tests/function/arithmetic/subtractScalar.test.js +++ b/test/unit-tests/function/arithmetic/subtractScalar.test.js @@ -1,7 +1,7 @@ // test subtractScalar import assert from 'assert' -import approx from '../../../../tools/approx.js' +import { approxDeepEqual } from '../../../../tools/approx.js' import math from '../../../../src/defaultInstance.js' import Decimal from 'decimal.js' const { subtractScalar, BigNumber } = math @@ -93,7 +93,7 @@ describe('subtractScalar', function () { }) it('should subtractScalar two quantities of the same unit', function () { - approx.deepEqual(subtractScalar(math.unit(5, 'km'), math.unit(100, 'mile')), math.unit(-155.93, 'km')) + approxDeepEqual(subtractScalar(math.unit(5, 'km'), math.unit(100, 'mile')), math.unit(-155.93, 'km')) assert.deepStrictEqual(subtractScalar(math.unit(new BigNumber(5), 'km'), math.unit(new BigNumber(2), 'km')), math.unit(new BigNumber(3), 'km')) @@ -105,8 +105,8 @@ describe('subtractScalar', function () { let t = math.unit(20, 'degC') assert.deepStrictEqual(subtractScalar(t, math.unit(1, 'degC')), math.unit(19, 'degC')) t = math.unit(68, 'degF') - approx.deepEqual(subtractScalar(t, math.unit(2, 'degF')), math.unit(66, 'degF')) - approx.deepEqual(subtractScalar(t, math.unit(1, 'degC')), math.unit(66.2, 'degF')) + approxDeepEqual(subtractScalar(t, math.unit(2, 'degF')), math.unit(66, 'degF')) + approxDeepEqual(subtractScalar(t, math.unit(1, 'degC')), math.unit(66.2, 'degF')) }) it('should throw an error if subtracting two quantities of different units', function () { diff --git a/test/unit-tests/function/complex/arg.test.js b/test/unit-tests/function/complex/arg.test.js index e07d50594a..9670ff075a 100644 --- a/test/unit-tests/function/complex/arg.test.js +++ b/test/unit-tests/function/complex/arg.test.js @@ -1,5 +1,5 @@ import assert from 'assert' -import approx from '../../../../tools/approx.js' +import { approxEqual } from '../../../../tools/approx.js' import math from '../../../../src/defaultInstance.js' const arg = math.arg @@ -13,7 +13,7 @@ describe('arg', function () { assert.strictEqual(arg(1), 0) assert.strictEqual(arg(2), 0) assert.strictEqual(arg(0), 0) - approx.equal(arg(-2), 3.141592653589793) + approxEqual(arg(-2), 3.141592653589793) }) it('should compute the argument of a bignumber', function () { diff --git a/test/unit-tests/function/matrix/diff.test.js b/test/unit-tests/function/matrix/diff.test.js index 2a79d24cb9..cd553ac3c8 100644 --- a/test/unit-tests/function/matrix/diff.test.js +++ b/test/unit-tests/function/matrix/diff.test.js @@ -1,5 +1,5 @@ import assert from 'assert' -import approx from '../../../../tools/approx.js' +import { approxDeepEqual } from '../../../../tools/approx.js' import math from '../../../../src/defaultInstance.js' // Parsing tests are inside diff.transform.test @@ -146,11 +146,11 @@ describe('diff', function () { const smallUnitsArrayDimension1 = [[math.unit('1 cm'), math.unit('1 cm'), math.unit('1 cm'), math.unit('1 cm')], [math.unit('1 cm'), math.unit('1 cm'), math.unit('1 cm'), math.unit('1 cm')], [math.unit('-1 cm'), math.unit('-1 cm'), math.unit('-1 cm'), math.unit('-2 cm')]] // With Dim specified - approx.deepEqual(diff(smallUnitsArray, 0), smallUnitsArrayDimension0) - approx.deepEqual(diff(smallUnitsArray, 1), smallUnitsArrayDimension1) + approxDeepEqual(diff(smallUnitsArray, 0), smallUnitsArrayDimension0) + approxDeepEqual(diff(smallUnitsArray, 1), smallUnitsArrayDimension1) // Without Dim specified - approx.deepEqual(diff(smallUnitsArray), smallUnitsArrayDimension0) + approxDeepEqual(diff(smallUnitsArray), smallUnitsArrayDimension0) }) it('should throw if input is not an array or matrix', function () { diff --git a/test/unit-tests/function/matrix/eigs.test.js b/test/unit-tests/function/matrix/eigs.test.js index ecb46daa9c..9530ae56e5 100644 --- a/test/unit-tests/function/matrix/eigs.test.js +++ b/test/unit-tests/function/matrix/eigs.test.js @@ -1,6 +1,6 @@ import assert from 'assert' import math from '../../../../src/defaultInstance.js' -import approx from '../../../../tools/approx.js' +import { approxEqual, approxDeepEqual } from '../../../../tools/approx.js' const { eigs, add, complex, divide, exp, fraction, matrix, matrixFromColumns, multiply, abs, size, transpose, bignumber: bignum, zeros, Matrix, Complex } = math describe('eigs', function () { @@ -57,42 +57,42 @@ describe('eigs', function () { it('eigenvalue check for diagonal matrix', function () { // trivial test - approx.deepEqual(eigs( + approxDeepEqual(eigs( [[1, 0], [0, 1]]).values, [1, 1] ) - approx.deepEqual(eigs( + approxDeepEqual(eigs( [[2, 0, 0], [0, 1, 0], [0, 0, 5]]).values, [1, 2, 5] ) - approx.deepEqual(eigs( + approxDeepEqual(eigs( [[complex(2, 1), 0, 0], [0, 1, 0], [0, 0, complex(0, 5)]]).values, [complex(1, 0), complex(2, 1), complex(0, 5)] ) }) it('calculates eigenvalues for 2x2 simple matrix', function () { // 2x2 test - approx.deepEqual(eigs( + approxDeepEqual(eigs( [[1, 0.1], [0.1, 1]]).values, [0.9, 1.1] ) - approx.deepEqual(eigs( + approxDeepEqual(eigs( matrix([[1, 0.1], [0.1, 1]])).values, matrix([0.9, 1.1]) ) - approx.deepEqual(eigs( + approxDeepEqual(eigs( [[5, 2.3], [2.3, 1]]).values, [-0.04795013082563382, 6.047950130825635] ) }) it('calculates eigenvalues for 2x2 matrix with complex entries', function () { - approx.deepEqual( + approxDeepEqual( eigs([[3, -2], [complex(4, 2), -1]]).values, [complex(0.08982028, 2.197368227), complex(1.91017972, -2.197368227)]) - approx.deepEqual( + approxDeepEqual( eigs([[2, -2], [complex(0, 2), complex(0, -2)]]).values, [0, complex(2, -2)]) }) it('calculates eigenvalues for 3x3 and 4x4 matrix', function () { // 3x3 test and 4x4 - approx.deepEqual(eigs( + approxDeepEqual(eigs( [[1.0, 1.0, 1.0], [1.0, 1.0, 1.0], [1.0, 1.0, 1.0]]).values, @@ -104,7 +104,7 @@ describe('eigs', function () { [2.852995822026198, 0.9122549659760404, 1.6598316026960402, -1.2931270747054358], [4.1957619745869845, 0.9232933211541949, -1.2931270747054358, -4.665994662426116]] const fullValues = eigs(sym4).values - approx.deepEqual(fullValues, + approxDeepEqual(fullValues, [-0.9135495807127523, 2.26552473288741, 5.6502090685149735, -8.687249803623432] ) const justEigs = eigs(sym4, { eigenvectors: false }) @@ -116,7 +116,7 @@ describe('eigs', function () { const m = zeros([5, 5]) m[4][3] = m[3][4] = m[3][2] = m[2][4] = 1 - approx.deepEqual(eigs(m).values, [ + approxDeepEqual(eigs(m).values, [ 0, 0, complex(-0.6623589786223121, 0.5622795120622232), complex(-0.6623589786223121, -0.5622795120622232), @@ -141,7 +141,7 @@ describe('eigs', function () { const eigenRows = eigs(m).eigenvectors.map(obj => obj.vector) // if we scale each row to the expected scale, they should match for (let j = 0; j < 5; j++) { - approx.deepEqual(divide(eigenRows[i], eigenRows[i][oneIndex[i]]), + approxDeepEqual(divide(eigenRows[i], eigenRows[i][oneIndex[i]]), expectedEigenRows[i]) } } @@ -159,7 +159,7 @@ describe('eigs', function () { const justvalues = eigs(H, { eigenvectors: false }) assert.deepStrictEqual(E, justvalues.values) testEigenvectors(ans, - (v, j) => approx.deepEqual(multiply(E[j], v), multiply(H, v)) + (v, j) => approxDeepEqual(multiply(E[j], v), multiply(H, v)) ) assert.ok(!('eigenvectors' in justvalues)) const Vcols = ans.eigenvectors.map(obj => obj.vector) @@ -169,7 +169,7 @@ describe('eigs', function () { for (let i = 0; i < H.length; i++) { Ei[i] = VtHV[i][i] } - approx.deepEqual(Ei, E) + approxDeepEqual(Ei, E) }) it('complex matrix eigenvector check', function () { @@ -180,13 +180,13 @@ describe('eigs', function () { const Hth = divide(add(Ath, transpose(Ath)), 2) const example = eigs(Hth) testEigenvectors(example, (v, i) => - approx.deepEqual(multiply(Hth, v), multiply(example.values[i], v)) + approxDeepEqual(multiply(Hth, v), multiply(example.values[i], v)) ) }) it('supports fractions', function () { const aij = fraction('1/2') - approx.deepEqual(eigs( + approxDeepEqual(eigs( [[aij, aij, aij], [aij, aij, aij], [aij, aij, aij]]).values, @@ -203,20 +203,20 @@ describe('eigs', function () { const fromWeb = eigs([[-2, 1], [-1, 0]]) // https://ocw.mit.edu/courses/18-03sc-differential-equations-fall-2011/051316d5fa93f560934d3e410f8d153d_MIT18_03SCF11_s33_8text.pdf assert.strictEqual(fromWeb.eigenvectors.length, 1) const vec = fromWeb.eigenvectors[0].vector - approx.equal(vec[0], vec[1]) + approxEqual(vec[0], vec[1]) }) it('handles a 3x3 defective matrix', function () { const fromWeb = eigs([[2, -5, 0], [0, 2, 0], [-1, 4, 1]]) // https://math.libretexts.org/Bookshelves/Differential_Equations/Differential_Equations_for_Engineers_(Lebl)/3%3A_Systems_of_ODEs/3.7%3A_Multiple_Eigenvalues assert.strictEqual(fromWeb.eigenvectors.length, 2) const ev = fromWeb.eigenvectors - approx.equal(ev[0].value, 1) - approx.equal(ev[1].value, 2) - approx.equal(ev[0].vector[0], 0) - approx.equal(ev[0].vector[1], 0) + approxEqual(ev[0].value, 1) + approxEqual(ev[1].value, 2) + approxEqual(ev[0].vector[0], 0) + approxEqual(ev[0].vector[1], 0) assert.ok(abs(ev[0].vector[2]) > math.config.relTol) - approx.equal(ev[1].vector[0], -ev[1].vector[2]) - approx.equal(ev[1].vector[1], 0) + approxEqual(ev[1].vector[0], -ev[1].vector[2]) + approxEqual(ev[1].vector[1], 0) const web2 = eigs([[1, 1, 0], [0, 1, 2], [0, 0, 3]]) // https://www2.math.upenn.edu/~moose/240S2013/slides7-31.pdf assert.strictEqual(web2.eigenvectors.length, 2) const ev2 = web2.eigenvectors @@ -226,7 +226,7 @@ describe('eigs', function () { assert.strictEqual(ev2[0].vector[2], 0) assert.ok(abs(ev2[0].vector[0]) > math.config.relTol) assert.strictEqual(ev2[1].vector[1], ev2[1].vector[2]) - approx.equal(ev2[1].vector[1], 2 * ev2[1].vector[0]) + approxEqual(ev2[1].vector[1], 2 * ev2[1].vector[0]) }) it('accepts a precision argument', function () { @@ -240,7 +240,7 @@ describe('eigs', function () { const difficult = [[2, 0, 0], [-1, -1, 9], [0, -1, 5]] const poor = eigs(difficult, 1e-14) assert.strictEqual(poor.values.length, 3) - approx.deepEqual(poor.values, [2, 2, 2], 7e-6) + approxDeepEqual(poor.values, [2, 2, 2], 7e-6) // Note the eigenvectors are junk, so we don't test them. The function // eigs thinks there are three of them, for example. Hopefully some // future iteration of mathjs will be able to discover there is really @@ -255,11 +255,11 @@ describe('eigs', function () { it('diagonalizes matrix with bigNumber', function () { const x = [[bignum(1), bignum(0)], [bignum(0), bignum(1)]] - approx.deepEqual(eigs(x).values, [bignum(1), bignum(1)]) + approxDeepEqual(eigs(x).values, [bignum(1), bignum(1)]) const y = [[bignum(1), bignum(1.0)], [bignum(1.0), bignum(1)]] const E1 = eigs(y).values - approx.equal(E1[0].toNumber(), 0.0) - approx.equal(E1[1].toNumber(), 2.0) + approxEqual(E1[0].toNumber(), 0.0) + approxEqual(E1[1].toNumber(), 2.0) const H = bignum([[-4.78, -1.0, -2.59, -3.26, 4.24, 4.14], [-1.0, -2.45, -0.92, -2.33, -4.68, 4.27], [-2.59, -0.92, -2.45, 4.17, -3.33, 3.05], @@ -278,7 +278,7 @@ describe('eigs', function () { for (let i = 0; i < H.length; i++) { Ei[i] = bignum(VtHV[i][i]) } - approx.deepEqual(Ei, E) + approxDeepEqual(Ei, E) }) it('actually calculates BigNumbers input with BigNumber precision', function () { diff --git a/test/unit-tests/function/matrix/expm.test.js b/test/unit-tests/function/matrix/expm.test.js index 899ac9372a..b779a09b24 100644 --- a/test/unit-tests/function/matrix/expm.test.js +++ b/test/unit-tests/function/matrix/expm.test.js @@ -1,7 +1,7 @@ // test expm import assert from 'assert' -import approx from '../../../../tools/approx.js' +import { approxDeepEqual } from '../../../../tools/approx.js' import math from '../../../../src/defaultInstance.js' const expm = math.expm @@ -15,7 +15,7 @@ describe('expm', function () { it('should compute the exponential of a matrix', function () { // Trivial example - approx.deepEqual(expm( + approxDeepEqual(expm( [[1, 0], [0, 1]] ), @@ -25,7 +25,7 @@ describe('expm', function () { )) // Example given in the Moler and Van Loan paper - approx.deepEqual(expm( + approxDeepEqual(expm( [[-49, 24], [-64, 31]] ), @@ -35,7 +35,7 @@ describe('expm', function () { )) // Another example from the same paper - approx.deepEqual(expm( + approxDeepEqual(expm( [[0, 6, 0, 0], [0, 0, 6, 0], [0, 0, 0, 6], @@ -49,7 +49,7 @@ describe('expm', function () { )) // And another - approx.deepEqual(expm( + approxDeepEqual(expm( [[1, 1], [0, 1]] ), @@ -59,7 +59,7 @@ describe('expm', function () { )) // And another - approx.deepEqual(expm( + approxDeepEqual(expm( [[1 + 1e-5, 1], [0, 1 - 1e-5]] ), @@ -70,7 +70,7 @@ describe('expm', function () { }) it('should work on SparseMatrix', function () { - approx.deepEqual(expm( + approxDeepEqual(expm( math.sparse( [[0, 6, 0, 0], [0, 0, 6, 0], diff --git a/test/unit-tests/function/matrix/fft.test.js b/test/unit-tests/function/matrix/fft.test.js index 57a28e1feb..aa1d39a68b 100644 --- a/test/unit-tests/function/matrix/fft.test.js +++ b/test/unit-tests/function/matrix/fft.test.js @@ -1,6 +1,6 @@ // test fft -import approx from '../../../../tools/approx.js' +import { approxDeepEqual } from '../../../../tools/approx.js' import math from '../../../../src/defaultInstance.js' const fft = math.fft @@ -8,8 +8,8 @@ describe('fft', function () { it('should calculate 1-dimensional fourier transformation', function () { const in1 = [1, math.complex(2, -1), math.complex(0, -1), math.complex(-1, 2)] const out1 = [2, math.complex(-2, -2), math.complex(0, -2), math.complex(4, 4)] - approx.deepEqual(fft(in1.valueOf()), out1.valueOf()) - approx.deepEqual(fft(math.matrix(in1)), math.matrix(out1)) + approxDeepEqual(fft(in1.valueOf()), out1.valueOf()) + approxDeepEqual(fft(math.matrix(in1)), math.matrix(out1)) }) it('should calculate multidimensional fourier transformation', function () { @@ -21,8 +21,8 @@ describe('fft', function () { [2, 2], [0, 0] ] - approx.deepEqual(fft(in1.valueOf()), out1.valueOf()) - approx.deepEqual(fft(math.matrix(in1)), math.matrix(out1)) + approxDeepEqual(fft(in1.valueOf()), out1.valueOf()) + approxDeepEqual(fft(math.matrix(in1)), math.matrix(out1)) const in2 = [ [0, 0, 1, 1], [0, 0, 1, 1], @@ -35,22 +35,22 @@ describe('fft', function () { [0, 0, 0, 0], [0, -4, 0, math.complex(0, -4)] ] - approx.deepEqual(fft(in2.valueOf()), out2.valueOf()) - approx.deepEqual(fft(math.matrix(in2)), math.matrix(out2)) + approxDeepEqual(fft(in2.valueOf()), out2.valueOf()) + approxDeepEqual(fft(math.matrix(in2)), math.matrix(out2)) }) it('should calculate 1-dimensional non-power-of-2 fourier transformation', function () { const in1 = [1, 2, 3] const out1 = [math.complex(6, -0), math.complex(-1.5, 0.8660254), math.complex(-1.5, -0.8660254)] - approx.deepEqual(fft(in1.valueOf()), out1.valueOf()) - approx.deepEqual(fft(math.matrix(in1)), math.matrix(out1)) + approxDeepEqual(fft(in1.valueOf()), out1.valueOf()) + approxDeepEqual(fft(math.matrix(in1)), math.matrix(out1)) const in2 = [math.complex(1, 2), math.complex(-3, 4), math.complex(1, 0), math.complex(-1, 0), math.complex(0, 5)] const out2 = [ math.complex(-2, 11), math.complex(-0.8781075, 6.45875199), math.complex(2.83926573, -1.61568416), math.complex(4.01483624, -8.94662174), math.complex(1.02400553, 3.10355391) ] - approx.deepEqual(fft(in2.valueOf()), out2.valueOf()) - approx.deepEqual(fft(math.matrix(in2)), math.matrix(out2)) + approxDeepEqual(fft(in2.valueOf()), out2.valueOf()) + approxDeepEqual(fft(math.matrix(in2)), math.matrix(out2)) }) it('should calculate multidimensional non-power-of-2 fourier transformation', function () { @@ -64,8 +64,8 @@ describe('fft', function () { [math.complex(6.5, -26.84678752), math.complex(-4, -3.46410162), math.complex(5, 1.73205081)], [math.complex(6.5, 26.84678752), math.complex(5, -1.73205081), math.complex(-4, 3.46410162)] ] - approx.deepEqual(fft(in1.valueOf()), out1.valueOf()) - approx.deepEqual(fft(math.matrix(in1)), math.matrix(out1)) + approxDeepEqual(fft(in1.valueOf()), out1.valueOf()) + approxDeepEqual(fft(math.matrix(in1)), math.matrix(out1)) const in2 = [ [0, 0, math.complex(-5, 1), 1, 1], [0, math.complex(0, -6), 3, 1, 1], @@ -85,7 +85,7 @@ describe('fft', function () { [math.complex(-4.14740672, -19.31254257), math.complex(-16.23037949, -7.77609714), math.complex(-26.56126066, 2.17438311), math.complex(-0.38368317, 19.58261663), math.complex(15.45614719, -2.39378488)] ] - approx.deepEqual(fft(in2.valueOf()), out2.valueOf()) - approx.deepEqual(fft(math.matrix(in2)), math.matrix(out2)) + approxDeepEqual(fft(in2.valueOf()), out2.valueOf()) + approxDeepEqual(fft(math.matrix(in2)), math.matrix(out2)) }) }) diff --git a/test/unit-tests/function/matrix/ifft.test.js b/test/unit-tests/function/matrix/ifft.test.js index fa0c10ab02..4e5a839a79 100644 --- a/test/unit-tests/function/matrix/ifft.test.js +++ b/test/unit-tests/function/matrix/ifft.test.js @@ -1,12 +1,12 @@ // test ifft -import approx from '../../../../tools/approx.js' +import { approxDeepEqual } from '../../../../tools/approx.js' import math from '../../../../src/defaultInstance.js' const ifft = math.ifft describe('ifft', function () { it('should calculate 1-dimensional inverse fourier transformation', function () { - approx.deepEqual(ifft([2, math.complex(-2, -2), math.complex(0, -2), math.complex(4, 4)]), [1, math.complex(2, -1), math.complex(0, -1), math.complex(-1, 2)]) + approxDeepEqual(ifft([2, math.complex(-2, -2), math.complex(0, -2), math.complex(4, 4)]), [1, math.complex(2, -1), math.complex(0, -1), math.complex(-1, 2)]) }) it('should calculate multidimensional inverse fourier transformation', function () { @@ -14,7 +14,7 @@ describe('ifft', function () { [1, 0], [1, 0] ] - approx.deepEqual(math.fft(ifft(in1.valueOf())), in1.valueOf()) - approx.deepEqual(math.fft(ifft(math.matrix(in1))), math.matrix(in1)) + approxDeepEqual(math.fft(ifft(in1.valueOf())), in1.valueOf()) + approxDeepEqual(math.fft(ifft(math.matrix(in1))), math.matrix(in1)) }) }) diff --git a/test/unit-tests/function/matrix/inv.test.js b/test/unit-tests/function/matrix/inv.test.js index 0f7ced480e..e9d68ae278 100644 --- a/test/unit-tests/function/matrix/inv.test.js +++ b/test/unit-tests/function/matrix/inv.test.js @@ -1,7 +1,7 @@ // test inv import assert from 'assert' -import approx from '../../../../tools/approx.js' +import { approxDeepEqual } from '../../../../tools/approx.js' import math from '../../../../src/defaultInstance.js' const inv = math.inv @@ -20,7 +20,7 @@ describe('inv', function () { assert.deepStrictEqual(inv([4]), [1 / 4]) assert.deepStrictEqual(inv([[4]]), [[1 / 4]]) - approx.deepEqual(inv([ + approxDeepEqual(inv([ [1, 4, 7], [3, 0, 5], [-1, 9, 11] @@ -30,7 +30,7 @@ describe('inv', function () { [-3.375, 1.625, 1.5] ]) - approx.deepEqual(inv([ + approxDeepEqual(inv([ [2, -1, 0], [-1, 2, -1], [0, -1, 2] @@ -41,7 +41,7 @@ describe('inv', function () { ]) // the following will force swapping of empty rows in the middle of the matrix - approx.deepEqual(inv([ + approxDeepEqual(inv([ [1, 0, 0], [0, 0, 1], [0, 1, 0] @@ -51,7 +51,7 @@ describe('inv', function () { [0, 1, 0] ]) - approx.deepEqual(inv([ + approxDeepEqual(inv([ [1, 0, 0], [0, -1, 1], [0, 0, 1] @@ -94,7 +94,7 @@ describe('inv', function () { }) it('should avoid issues with elements that are almost zero', function () { - approx.deepEqual(inv([ + approxDeepEqual(inv([ [0, 1, 0, 788], [-1, 0, 0, 692], [0, 0, 1, 0], @@ -106,7 +106,7 @@ describe('inv', function () { [0, 0, 0, 1] ]) - approx.deepEqual(inv([ + approxDeepEqual(inv([ [6.123233995736766e-17, 1, 0, 788], [-1, 6.123233995736766e-17, 0, 692], [0, 0, 1, 0], diff --git a/test/unit-tests/function/matrix/pinv.test.js b/test/unit-tests/function/matrix/pinv.test.js index 20663ead19..96fff3c528 100644 --- a/test/unit-tests/function/matrix/pinv.test.js +++ b/test/unit-tests/function/matrix/pinv.test.js @@ -1,6 +1,6 @@ // test pinv import assert from 'assert' -import approx from '../../../../tools/approx.js' +import { approxDeepEqual } from '../../../../tools/approx.js' import math from '../../../../src/defaultInstance.js' const pinv = math.pinv @@ -22,13 +22,13 @@ function assertValidPinv (A, A_) { assert.deepStrictEqual(math.size(A_).valueOf(), [cols, rows]) // A A_ A = A - approx.deepEqual(math.add(math.multiply(A, math.multiply(A_, A)), math.Complex(1, 1)).valueOf(), math.add(A, math.Complex(1, 1)).valueOf()) + approxDeepEqual(math.add(math.multiply(A, math.multiply(A_, A)), math.Complex(1, 1)).valueOf(), math.add(A, math.Complex(1, 1)).valueOf()) // A_ A A_ = A_ - approx.deepEqual(math.add(math.multiply(A_, math.multiply(A, A_)), math.Complex(1, 1)).valueOf(), math.add(A_, math.Complex(1, 1)).valueOf()) + approxDeepEqual(math.add(math.multiply(A_, math.multiply(A, A_)), math.Complex(1, 1)).valueOf(), math.add(A_, math.Complex(1, 1)).valueOf()) // (A A_)* = A A_ - approx.deepEqual(math.add(math.ctranspose(math.multiply(A, A_)), math.Complex(1, 1)).valueOf(), math.add(math.multiply(A, A_), math.Complex(1, 1)).valueOf()) + approxDeepEqual(math.add(math.ctranspose(math.multiply(A, A_)), math.Complex(1, 1)).valueOf(), math.add(math.multiply(A, A_), math.Complex(1, 1)).valueOf()) // (A_ A)* = A_ A - approx.deepEqual(math.add(math.ctranspose(math.multiply(A_, A)), math.Complex(1, 1)).valueOf(), math.add(math.multiply(A_, A), math.Complex(1, 1)).valueOf()) + approxDeepEqual(math.add(math.ctranspose(math.multiply(A_, A)), math.Complex(1, 1)).valueOf(), math.add(math.multiply(A_, A), math.Complex(1, 1)).valueOf()) } describe('pinv', function () { @@ -36,7 +36,7 @@ describe('pinv', function () { const pinvA = pinv(A) if (A_) { if (strict) assert.deepStrictEqual(pinvA, A_) - else approx.deepEqual(pinvA, A_) + else approxDeepEqual(pinvA, A_) } switch (math.size(A).valueOf().length) { case 0: diff --git a/test/unit-tests/function/matrix/rotate.test.js b/test/unit-tests/function/matrix/rotate.test.js index a35f11bfe2..be364b5736 100644 --- a/test/unit-tests/function/matrix/rotate.test.js +++ b/test/unit-tests/function/matrix/rotate.test.js @@ -1,5 +1,5 @@ import assert from 'assert' -import approx from '../../../../tools/approx.js' +import { approxDeepEqual } from '../../../../tools/approx.js' import math from '../../../../src/defaultInstance.js' const unit = math.unit @@ -29,7 +29,7 @@ describe('rotate', function () { const imSin = 4.16890695996656 const cosComplex = complex(-reCos, -imCos) const sinComplex = complex(reSin, -imSin) - approx.deepEqual(rotate([1, 1], complex('2+3i')), + approxDeepEqual(rotate([1, 1], complex('2+3i')), [add(cosComplex, multiply(-1.0, sinComplex)), add(cosComplex, sinComplex)]) }) @@ -50,7 +50,7 @@ describe('rotate', function () { const imSin = 4.16890695996656 const cosComplex = complex(-reCos, -imCos) const sinComplex = complex(reSin, -imSin) - approx.deepEqual(rotate(matrix([1, 1]), complex('2+3i')), + approxDeepEqual(rotate(matrix([1, 1]), complex('2+3i')), matrix([add(cosComplex, multiply(-1.0, sinComplex)), add(cosComplex, sinComplex)])) }) @@ -89,7 +89,7 @@ describe('rotate', function () { const imSin = 4.16890695996656 const cosComplex = complex(-reCos, -imCos) const sinComplex = complex(reSin, -imSin) - approx.deepEqual(rotate([11, 12, 13], complex('2+3i'), [0, 0, 1]), + approxDeepEqual(rotate([11, 12, 13], complex('2+3i'), [0, 0, 1]), [add(multiply(11, cosComplex), multiply(-12.0, sinComplex)), add(multiply(11, sinComplex), multiply(12, cosComplex)), 13]) @@ -114,7 +114,7 @@ describe('rotate', function () { const imSin = 4.16890695996656 const cosComplex = complex(-reCos, -imCos) const sinComplex = complex(reSin, -imSin) - approx.deepEqual(rotate(matrix([11, 12, 13]), complex('2+3i'), [0, 0, 1]), + approxDeepEqual(rotate(matrix([11, 12, 13]), complex('2+3i'), [0, 0, 1]), matrix([add(multiply(11, cosComplex), multiply(-12.0, sinComplex)), add(multiply(11, sinComplex), multiply(12, cosComplex)), 13])) diff --git a/test/unit-tests/function/matrix/rotationMatrix.test.js b/test/unit-tests/function/matrix/rotationMatrix.test.js index bb0b014141..4355e11c52 100644 --- a/test/unit-tests/function/matrix/rotationMatrix.test.js +++ b/test/unit-tests/function/matrix/rotationMatrix.test.js @@ -1,6 +1,6 @@ import assert from 'assert' import math from '../../../../src/defaultInstance.js' -import approx from '../../../../tools/approx.js' +import { approxDeepEqual } from '../../../../tools/approx.js' const bignumber = math.bignumber const complex = math.complex @@ -25,22 +25,22 @@ describe('rotationMatrix', function () { }) it('should create a 2D rotation matrix of given angle', function () { - approx.deepEqual(rotationMatrix(0.0), matrix([[1, 0.0], [0.0, 1]])) - approx.deepEqual(rotationMatrix(math.pi / 2), matrix([[0.0, -1], [1, 0.0]])) - approx.deepEqual(rotationMatrix(1), matrix([[cos(1), -sin(1)], [sin(1), cos(1)]])) - approx.deepEqual(rotationMatrix(math.pi / 4), matrix([[sqrtTwoInv, -sqrtTwoInv], [sqrtTwoInv, sqrtTwoInv]])) + approxDeepEqual(rotationMatrix(0.0), matrix([[1, 0.0], [0.0, 1]])) + approxDeepEqual(rotationMatrix(math.pi / 2), matrix([[0.0, -1], [1, 0.0]])) + approxDeepEqual(rotationMatrix(1), matrix([[cos(1), -sin(1)], [sin(1), cos(1)]])) + approxDeepEqual(rotationMatrix(math.pi / 4), matrix([[sqrtTwoInv, -sqrtTwoInv], [sqrtTwoInv, sqrtTwoInv]])) }) it('should return a 2D rotation array if requesting results as array', function () { const mathArray = math.create({ matrix: 'Array' }) - approx.deepEqual(mathArray.rotationMatrix(0.0), [[1, 0.0], [0.0, 1]]) - approx.deepEqual(mathArray.rotationMatrix(mathArray.pi / 2), [[0.0, -1], [1, 0.0]]) - approx.deepEqual(mathArray.rotationMatrix(1), [[cos(1), -sin(1)], [sin(1), cos(1)]]) - approx.deepEqual(mathArray.rotationMatrix(mathArray.pi / 4), [[sqrtTwoInv, -sqrtTwoInv], [sqrtTwoInv, sqrtTwoInv]]) + approxDeepEqual(mathArray.rotationMatrix(0.0), [[1, 0.0], [0.0, 1]]) + approxDeepEqual(mathArray.rotationMatrix(mathArray.pi / 2), [[0.0, -1], [1, 0.0]]) + approxDeepEqual(mathArray.rotationMatrix(1), [[cos(1), -sin(1)], [sin(1), cos(1)]]) + approxDeepEqual(mathArray.rotationMatrix(mathArray.pi / 4), [[sqrtTwoInv, -sqrtTwoInv], [sqrtTwoInv, sqrtTwoInv]]) }) it('should create a 2D rotation matrix of given bignumber angle', function () { - approx.deepEqual(rotationMatrix(bignumber(0.0)), matrix([[1, 0.0], [0.0, 1]])) + approxDeepEqual(rotationMatrix(bignumber(0.0)), matrix([[1, 0.0], [0.0, 1]])) const bigmath = math.create({ number: 'BigNumber' }) const minusOne = bigmath.bignumber(-1) @@ -60,7 +60,7 @@ describe('rotationMatrix', function () { it('should create a 2D rotation matrix of given complex angle', function () { const reI = 1.54308063481524 const imI = 1.17520119364380 - approx.deepEqual(rotationMatrix(math.i), matrix([[complex(reI, 0.0), complex(0.0, -imI)], + approxDeepEqual(rotationMatrix(math.i), matrix([[complex(reI, 0.0), complex(0.0, -imI)], [complex(0.0, imI), complex(reI, 0.0)]])) const reCos = 4.18962569096881 @@ -69,35 +69,35 @@ describe('rotationMatrix', function () { const imSin = 4.16890695996656 const cosComplex = complex(-reCos, -imCos) const sinComplex = complex(reSin, -imSin) - approx.deepEqual(rotationMatrix(complex('2+3i')), matrix([[cosComplex, multiply(-1.0, sinComplex)], [sinComplex, cosComplex]])) + approxDeepEqual(rotationMatrix(complex('2+3i')), matrix([[cosComplex, multiply(-1.0, sinComplex)], [sinComplex, cosComplex]])) }) it('should create a 2D rotation matrix of given unit angle', function () { - approx.deepEqual(rotationMatrix(unit('45deg')), matrix([[sqrtTwoInv, minusSqrtTwoInv], [sqrtTwoInv, sqrtTwoInv]])) - approx.deepEqual(rotationMatrix(unit('-135deg')), matrix([[minusSqrtTwoInv, sqrtTwoInv], [minusSqrtTwoInv, minusSqrtTwoInv]])) + approxDeepEqual(rotationMatrix(unit('45deg')), matrix([[sqrtTwoInv, minusSqrtTwoInv], [sqrtTwoInv, sqrtTwoInv]])) + approxDeepEqual(rotationMatrix(unit('-135deg')), matrix([[minusSqrtTwoInv, sqrtTwoInv], [minusSqrtTwoInv, minusSqrtTwoInv]])) const cosComplex = complex(0.833730025131149, -0.988897705762865) const sinComplex = complex(1.298457581415977, 0.6349639147847361) - approx.deepEqual(rotationMatrix(unit(complex(1, 1), 'rad')), matrix([[cosComplex, multiply(-1.0, sinComplex)], [sinComplex, cosComplex]])) + approxDeepEqual(rotationMatrix(unit(complex(1, 1), 'rad')), matrix([[cosComplex, multiply(-1.0, sinComplex)], [sinComplex, cosComplex]])) }) it('should create a 2D rotation matrix of given angle and given storage type', function () { assert.deepStrictEqual(rotationMatrix(0.0, 'sparse'), matrix([[1.0, 0.0], [0.0, 1.0]], 'sparse')) assert.deepStrictEqual(rotationMatrix(math.pi / 2, 'sparse'), matrix([[0, -1], [1, 0]], 'sparse')) - approx.deepEqual(rotationMatrix(math.pi / 4, 'sparse'), matrix([[sqrtTwoInv, -sqrtTwoInv], [sqrtTwoInv, sqrtTwoInv]], 'sparse')) + approxDeepEqual(rotationMatrix(math.pi / 4, 'sparse'), matrix([[sqrtTwoInv, -sqrtTwoInv], [sqrtTwoInv, sqrtTwoInv]], 'sparse')) }) it('should create a 3D rotation matrix by given angle around given axis provided as array', function () { assert.deepStrictEqual(math.rotationMatrix(0.0, [1, 1, 1]), [[1.0, 0.0, 0.0], [0.0, 1.0, 0.0], [0.0, 0.0, 1.0]]) - approx.deepEqual(math.rotationMatrix(math.pi / 2, [1, 0, 0]), [[1.0, 0.0, 0.0], [0.0, 0.0, -1.0], [0.0, 1.0, 0.0]]) - approx.deepEqual(math.rotationMatrix(math.pi / 2, [0, 1, 0]), [[0.0, 0.0, 1.0], [0.0, 1.0, 0.0], [-1.0, 0.0, 0.0]]) - approx.deepEqual(math.rotationMatrix(math.pi / 2, [0, 0, 1]), [[0.0, -1.0, 0.0], [1.0, 0.0, 0.0], [0.0, 0.0, 1.0]]) + approxDeepEqual(math.rotationMatrix(math.pi / 2, [1, 0, 0]), [[1.0, 0.0, 0.0], [0.0, 0.0, -1.0], [0.0, 1.0, 0.0]]) + approxDeepEqual(math.rotationMatrix(math.pi / 2, [0, 1, 0]), [[0.0, 0.0, 1.0], [0.0, 1.0, 0.0], [-1.0, 0.0, 0.0]]) + approxDeepEqual(math.rotationMatrix(math.pi / 2, [0, 0, 1]), [[0.0, -1.0, 0.0], [1.0, 0.0, 0.0], [0.0, 0.0, 1.0]]) - approx.deepEqual(math.rotationMatrix(-math.pi / 4, [1, 0, 0]), + approxDeepEqual(math.rotationMatrix(-math.pi / 4, [1, 0, 0]), [[1.0, 0.0, 0.0], [0.0, sqrtTwoInv, sqrtTwoInv], [0.0, minusSqrtTwoInv, sqrtTwoInv]]) - approx.deepEqual(math.rotationMatrix(-math.pi / 4, [0, 1, 0]), + approxDeepEqual(math.rotationMatrix(-math.pi / 4, [0, 1, 0]), [[sqrtTwoInv, 0.0, minusSqrtTwoInv], [0.0, 1.0, 0.0], [sqrtTwoInv, 0.0, sqrtTwoInv]]) - approx.deepEqual(math.rotationMatrix(-math.pi / 4, [0, 0, 1]), + approxDeepEqual(math.rotationMatrix(-math.pi / 4, [0, 0, 1]), [[sqrtTwoInv, sqrtTwoInv, 0.0], [minusSqrtTwoInv, sqrtTwoInv, 0.0], [0.0, 0.0, 1.0]]) assert.deepStrictEqual(math.rotationMatrix(1, [1, 0, 0]), @@ -109,18 +109,18 @@ describe('rotationMatrix', function () { it('should create a 3D rotation matrix by given angle around given vector provided as matrix', function () { assert.deepStrictEqual(math.rotationMatrix(0.0, matrix([1, 1, 1])), matrix([[1.0, 0.0, 0.0], [0.0, 1.0, 0.0], [0.0, 0.0, 1.0]])) - approx.deepEqual(math.rotationMatrix(math.pi / 2, matrix([1, 0, 0])), + approxDeepEqual(math.rotationMatrix(math.pi / 2, matrix([1, 0, 0])), matrix([[1.0, 0.0, 0.0], [0.0, 0.0, -1.0], [0.0, 1.0, 0.0]])) - approx.deepEqual(math.rotationMatrix(math.pi / 2, matrix([0, 1, 0])), + approxDeepEqual(math.rotationMatrix(math.pi / 2, matrix([0, 1, 0])), matrix([[0.0, 0.0, 1.0], [0.0, 1.0, 0.0], [-1.0, 0.0, 0.0]])) - approx.deepEqual(math.rotationMatrix(math.pi / 2, matrix([0, 0, 1])), + approxDeepEqual(math.rotationMatrix(math.pi / 2, matrix([0, 0, 1])), matrix([[0.0, -1.0, 0.0], [1.0, 0.0, 0.0], [0.0, 0.0, 1.0]])) - approx.deepEqual(math.rotationMatrix(-math.pi / 4, matrix([1, 0, 0])), + approxDeepEqual(math.rotationMatrix(-math.pi / 4, matrix([1, 0, 0])), matrix([[1.0, 0.0, 0.0], [0.0, sqrtTwoInv, sqrtTwoInv], [0.0, minusSqrtTwoInv, sqrtTwoInv]])) - approx.deepEqual(math.rotationMatrix(-math.pi / 4, matrix([0, 1, 0])), + approxDeepEqual(math.rotationMatrix(-math.pi / 4, matrix([0, 1, 0])), matrix([[sqrtTwoInv, 0.0, minusSqrtTwoInv], [0.0, 1.0, 0.0], [sqrtTwoInv, 0.0, sqrtTwoInv]])) - approx.deepEqual(math.rotationMatrix(-math.pi / 4, matrix([0, 0, 1])), + approxDeepEqual(math.rotationMatrix(-math.pi / 4, matrix([0, 0, 1])), matrix([[sqrtTwoInv, sqrtTwoInv, 0.0], [minusSqrtTwoInv, sqrtTwoInv, 0.0], [0.0, 0.0, 1.0]])) assert.deepStrictEqual(math.rotationMatrix(1, matrix([1, 0, 0])), @@ -130,16 +130,16 @@ describe('rotationMatrix', function () { }) it('should create a unitary 3D rotation matrix around non-unit vector', function () { - approx.deepEqual(math.rotationMatrix(math.pi / 2, matrix([1000, 0, 0])), + approxDeepEqual(math.rotationMatrix(math.pi / 2, matrix([1000, 0, 0])), matrix([[1.0, 0.0, 0.0], [0.0, 0.0, -1.0], [0.0, 1.0, 0.0]])) - approx.deepEqual(math.rotationMatrix(math.pi / 2, matrix([1000, 0, 1000])), + approxDeepEqual(math.rotationMatrix(math.pi / 2, matrix([1000, 0, 1000])), matrix([[0.5, minusSqrtTwoInv, 0.5], [sqrtTwoInv, 0.0, minusSqrtTwoInv], [0.5, sqrtTwoInv, 0.5]])) - approx.deepEqual(math.rotationMatrix(math.pi / 2, [0, 0, 1000]), + approxDeepEqual(math.rotationMatrix(math.pi / 2, [0, 0, 1000]), [[0.0, -1.0, 0.0], [1.0, 0.0, 0.0], [0.0, 0.0, 1.0]]) - approx.deepEqual(math.rotationMatrix(math.pi / 2, [0, 200, 200]), + approxDeepEqual(math.rotationMatrix(math.pi / 2, [0, 200, 200]), [[0.0, minusSqrtTwoInv, sqrtTwoInv], [sqrtTwoInv, 0.5, 0.5], [minusSqrtTwoInv, 0.5, 0.5]]) }) @@ -195,29 +195,29 @@ describe('rotationMatrix', function () { }) it('should create a 3D rotation matrix by given unit angle around given axis', function () { - approx.deepEqual(math.rotationMatrix(unit('45deg'), [1, 0, 0]), + approxDeepEqual(math.rotationMatrix(unit('45deg'), [1, 0, 0]), [[1.0, 0.0, 0.0], [0.0, sqrtTwoInv, minusSqrtTwoInv], [0.0, sqrtTwoInv, sqrtTwoInv]]) - approx.deepEqual(math.rotationMatrix(unit('45deg'), [0, 1, 0]), + approxDeepEqual(math.rotationMatrix(unit('45deg'), [0, 1, 0]), [[sqrtTwoInv, 0.0, sqrtTwoInv], [0.0, 1.0, 0.0], [minusSqrtTwoInv, 0.0, sqrtTwoInv]]) - approx.deepEqual(math.rotationMatrix(unit('45deg'), [0, 0, 1]), + approxDeepEqual(math.rotationMatrix(unit('45deg'), [0, 0, 1]), [[sqrtTwoInv, minusSqrtTwoInv, 0.0], [sqrtTwoInv, sqrtTwoInv, 0.0], [0.0, 0.0, 1.0]]) - approx.deepEqual(math.rotationMatrix(unit('-135deg'), [1, 0, 0]), + approxDeepEqual(math.rotationMatrix(unit('-135deg'), [1, 0, 0]), [[1.0, 0.0, 0.0], [0.0, minusSqrtTwoInv, sqrtTwoInv], [0.0, minusSqrtTwoInv, minusSqrtTwoInv]]) - approx.deepEqual(math.rotationMatrix(unit('-135deg'), [0, 1, 0]), + approxDeepEqual(math.rotationMatrix(unit('-135deg'), [0, 1, 0]), [[minusSqrtTwoInv, 0.0, minusSqrtTwoInv], [0.0, 1.0, 0.0], [sqrtTwoInv, 0.0, minusSqrtTwoInv]]) - approx.deepEqual(math.rotationMatrix(unit('-135deg'), [0, 0, 1]), + approxDeepEqual(math.rotationMatrix(unit('-135deg'), [0, 0, 1]), [[minusSqrtTwoInv, sqrtTwoInv, 0.0], [minusSqrtTwoInv, minusSqrtTwoInv, 0.0], [0.0, 0.0, 1.0]]) - approx.deepEqual(rotationMatrix(unit(complex(1, 1), 'rad'), matrix([1, 0, 1])), + approxDeepEqual(rotationMatrix(unit(complex(1, 1), 'rad'), matrix([1, 0, 1])), math.evaluate('matrix([[0.5 * (1 + cos(1+i)), -sin(1+i) / sqrt(2), 0.5 * (1 - cos(1+i))],' + '[sin(1+i) / sqrt(2), cos(1+i), -sin(1+i) / sqrt(2)],' + '[0.5 * (1 - cos(1+i)), sin(1+i) / sqrt(2), 0.5 * (1 + cos(1+i))]])')) - approx.deepEqual(math.rotationMatrix(unit('45deg'), matrix([0, 0, 1])), + approxDeepEqual(math.rotationMatrix(unit('45deg'), matrix([0, 0, 1])), matrix([[sqrtTwoInv, minusSqrtTwoInv, 0.0], [sqrtTwoInv, sqrtTwoInv, 0.0], [0.0, 0.0, 1.0]])) - approx.deepEqual(math.rotationMatrix(unit('-135deg'), matrix([1, 0, 0])), + approxDeepEqual(math.rotationMatrix(unit('-135deg'), matrix([1, 0, 0])), matrix([[1.0, 0.0, 0.0], [0.0, minusSqrtTwoInv, sqrtTwoInv], [0.0, minusSqrtTwoInv, minusSqrtTwoInv]])) }) @@ -226,19 +226,19 @@ describe('rotationMatrix', function () { matrix([[1.0, 0.0, 0.0], [0.0, 1.0, 0.0], [0.0, 0.0, 1.0]], 'sparse')) assert.deepStrictEqual(rotationMatrix(math.pi / 2, [0, 0, 1], 'sparse'), matrix([[0.0, -1.0, 0.0], [1.0, 0.0, 0.0], [0.0, 0.0, 1.0]], 'sparse')) - approx.deepEqual(rotationMatrix(math.pi / 4, [0, 1, 0], 'sparse'), + approxDeepEqual(rotationMatrix(math.pi / 4, [0, 1, 0], 'sparse'), matrix([[sqrtTwoInv, 0.0, sqrtTwoInv], [0, 1, 0], [minusSqrtTwoInv, 0.0, sqrtTwoInv]], 'sparse')) - approx.deepEqual(rotationMatrix(math.pi / 4, matrix([0, 1, 0]), 'sparse'), + approxDeepEqual(rotationMatrix(math.pi / 4, matrix([0, 1, 0]), 'sparse'), matrix([[sqrtTwoInv, 0.0, sqrtTwoInv], [0, 1, 0], [minusSqrtTwoInv, 0.0, sqrtTwoInv]], 'sparse')) }) it('should return an array when mathjs is configured for this', function () { const mathArray = math.create({ matrix: 'Array' }) - approx.deepEqual(mathArray.rotationMatrix(mathArray.pi / 4), + approxDeepEqual(mathArray.rotationMatrix(mathArray.pi / 4), [[sqrtTwoInv, minusSqrtTwoInv], [sqrtTwoInv, sqrtTwoInv]]) - approx.deepEqual(mathArray.rotationMatrix(mathArray.pi / 2, [0, 0, 1]), + approxDeepEqual(mathArray.rotationMatrix(mathArray.pi / 2, [0, 0, 1]), [[0.0, -1.0, 0.0], [1.0, 0.0, 0.0], [0.0, 0.0, 1.0]]) - approx.deepEqual(mathArray.rotationMatrix(mathArray.pi / 2, matrix([0, 0, 1])), + approxDeepEqual(mathArray.rotationMatrix(mathArray.pi / 2, matrix([0, 0, 1])), matrix([[0.0, -1.0, 0.0], [1.0, 0.0, 0.0], [0.0, 0.0, 1.0]])) }) diff --git a/test/unit-tests/function/matrix/sqrtm.test.js b/test/unit-tests/function/matrix/sqrtm.test.js index 74d7a977e2..7820a1edc5 100644 --- a/test/unit-tests/function/matrix/sqrtm.test.js +++ b/test/unit-tests/function/matrix/sqrtm.test.js @@ -1,7 +1,7 @@ // test sqrtm import assert from 'assert' -import approx from '../../../../tools/approx.js' +import { approxDeepEqual } from '../../../../tools/approx.js' import math from '../../../../src/defaultInstance.js' describe('sqrtm', function () { @@ -12,10 +12,10 @@ describe('sqrtm', function () { const BB = [[7, 10], [15, 22]] it('should return the principal square root of a matrix', function () { - approx.deepEqual(math.sqrtm(AA), A) - approx.deepEqual(math.sqrtm(BB), B) + approxDeepEqual(math.sqrtm(AA), A) + approxDeepEqual(math.sqrtm(BB), B) - approx.deepEqual( + approxDeepEqual( math.sqrtm( [[5, -4, 1, 0, 0], [-4, 6, -4, 1, 0], @@ -40,10 +40,10 @@ describe('sqrtm', function () { }) it('math.pow(math.sqrtm(A), 2) should equal A', function () { - approx.deepEqual(math.pow(math.sqrtm(A), 2), A) - approx.deepEqual(math.pow(math.sqrtm(B), 2), B) - approx.deepEqual(math.pow(math.sqrtm(AA), 2), AA) - approx.deepEqual(math.pow(math.sqrtm(BB), 2), BB) + approxDeepEqual(math.pow(math.sqrtm(A), 2), A) + approxDeepEqual(math.pow(math.sqrtm(B), 2), B) + approxDeepEqual(math.pow(math.sqrtm(AA), 2), AA) + approxDeepEqual(math.pow(math.sqrtm(BB), 2), BB) }) it('should throw an error in case of non-square matrices', function () { diff --git a/test/unit-tests/function/matrix/trace.test.js b/test/unit-tests/function/matrix/trace.test.js index ecc2f022f6..92bf2d8742 100644 --- a/test/unit-tests/function/matrix/trace.test.js +++ b/test/unit-tests/function/matrix/trace.test.js @@ -1,22 +1,22 @@ import assert from 'assert' -import approx from '../../../../tools/approx.js' +import { approxEqual } from '../../../../tools/approx.js' import math from '../../../../src/defaultInstance.js' describe('trace', function () { it('should calculate correctly the trace of a NxN array', function () { assert.strictEqual(math.trace([5]), 5) assert.strictEqual(math.trace([[1, 2], [3, 4]]), 5) - approx.equal(math.trace([ + approxEqual(math.trace([ [-2, 2, 3], [-1, 1, 3], [2, 0, -1] ]), -2) - approx.equal(math.trace([ + approxEqual(math.trace([ [1, 4, 7], [3, 0, 5], [-1, 9, 11] ]), 12) - approx.equal(math.trace([ + approxEqual(math.trace([ [1, 7, 4, 3, 7], [0, 7, 0, 3, 7], [0, 7, 4, 3, 0], @@ -29,7 +29,7 @@ describe('trace', function () { assert.strictEqual(math.trace(math.matrix([5])), 5) assert.strictEqual(math.trace(math.matrix([[1, 2], [3, 4]])), 5) assert.strictEqual(math.trace(math.matrix([[1, 2], [3, 4]])), 5) - approx.equal( + approxEqual( math.trace( math.matrix( [ @@ -38,7 +38,7 @@ describe('trace', function () { [2, 0, -1] ])), -2) - approx.equal( + approxEqual( math.trace( math.matrix( [ @@ -47,7 +47,7 @@ describe('trace', function () { [-1, 9, 11] ])), 12) - approx.equal( + approxEqual( math.trace( math.matrix( [ @@ -58,14 +58,14 @@ describe('trace', function () { [2, 7, 4, 3, 7] ])), 28) - approx.equal(math.trace(math.diag([4, -5, 6])), 5) + approxEqual(math.trace(math.diag([4, -5, 6])), 5) }) it('should calculate correctly the trace of a NxN matrix, sparse', function () { assert.strictEqual(math.trace(math.matrix([5], 'sparse')), 5) assert.strictEqual(math.trace(math.matrix([[1, 2], [3, 4]], 'sparse')), 5) assert.strictEqual(math.trace(math.matrix([[1, 2], [3, 4]], 'sparse')), 5) - approx.equal( + approxEqual( math.trace( math.matrix( [ @@ -75,7 +75,7 @@ describe('trace', function () { ], 'sparse')), -2) - approx.equal( + approxEqual( math.trace( math.matrix( [ @@ -85,7 +85,7 @@ describe('trace', function () { ], 'sparse')), 12) - approx.equal( + approxEqual( math.trace( math.matrix( [ diff --git a/test/unit-tests/function/numeric/solveODE.test.js b/test/unit-tests/function/numeric/solveODE.test.js index bf02922449..4f5776813a 100644 --- a/test/unit-tests/function/numeric/solveODE.test.js +++ b/test/unit-tests/function/numeric/solveODE.test.js @@ -1,6 +1,6 @@ import assert from 'assert' import math from '../../../../src/defaultInstance.js' -import approx from '../../../../tools/approx.js' +import { approxDeepEqual } from '../../../../tools/approx.js' const solveODE = math.solveODE const matrix = math.matrix @@ -87,14 +87,14 @@ describe('solveODE', function () { it('should solve when minStep is zero', function () { const sol = solveODE(f, tspan, y0, { minStep: 0 }) - approx.deepEqual(sol.y, exactSol(sol.t, y0), tol) + approxDeepEqual(sol.y, exactSol(sol.t, y0), tol) const seconds = unit('s') const meters = unit('m') function fWithUnits (t, y) { return subtract(divide(y, seconds), multiply(t, divide(meters, multiply(seconds, seconds)))) } const tspanWithUnits = multiply(tspan, seconds) const y0withUnits = multiply(y0, meters) const solU = solveODE(fWithUnits, tspanWithUnits, y0withUnits, { minStep: unit(0, 's') }) - approx.deepEqual(divide(solU.y, meters), exactSol(divide(solU.t, seconds), y0), tol) + approxDeepEqual(divide(solU.y, meters), exactSol(divide(solU.t, seconds), y0), tol) }) it('should throw an error if the maxStep is not positive', function () { @@ -141,18 +141,18 @@ describe('solveODE', function () { it('should solve close to the analytical solution', function () { const sol = solveODE(f, tspan, y0) - approx.deepEqual(sol.y, exactSol(sol.t, y0), tol) + approxDeepEqual(sol.y, exactSol(sol.t, y0), tol) }) it('should solve backwards', function () { const exactSolEnd = exactSol([4], y0)[0] const sol = solveODE(f, [tspan[1], tspan[0]], exactSolEnd) - approx.deepEqual(sol.y, exactSol(sol.t, sol.y[sol.y.length - 1]), tol) + approxDeepEqual(sol.y, exactSol(sol.t, sol.y[sol.y.length - 1]), tol) }) it('should solve if the arguments are matrices', function () { const sol = solveODE(f, matrix(tspan), matrix(y0)) - approx.deepEqual(sol.y, matrix(exactSol(sol.t, y0)), tol) + approxDeepEqual(sol.y, matrix(exactSol(sol.t, y0)), tol) assert.deepStrictEqual( isMatrix(sol.t) && isMatrix(sol.y), true @@ -161,18 +161,18 @@ describe('solveODE', function () { it('should solve if the arguments have bignumbers', function () { const sol = solveODE(f, bignumber(tspan), bignumber(y0)) - approx.deepEqual(number(sol.y), exactSol(number(sol.t), y0), tol) + approxDeepEqual(number(sol.y), exactSol(number(sol.t), y0), tol) }) it('should solve with options even if they are empty', function () { const options = {} const sol = solveODE(f, tspan, y0, options) - approx.deepEqual(sol.y, exactSol(sol.t, y0), tol) + approxDeepEqual(sol.y, exactSol(sol.t, y0), tol) }) it('should solve when y0 is a scalar', function () { const sol = solveODE(f, tspan, y0[0]) - approx.deepEqual(sol.y, exactSol(sol.t, [y0[0]]).map(x => x[0]), tol) + approxDeepEqual(sol.y, exactSol(sol.t, [y0[0]]).map(x => x[0]), tol) }) it('should solve with units', function () { @@ -182,22 +182,22 @@ describe('solveODE', function () { const tspanWithUnits = multiply(tspan, seconds) const y0withUnits = multiply(y0, meters) const sol = solveODE(fWithUnits, tspanWithUnits, y0withUnits) - approx.deepEqual(divide(sol.y, meters), exactSol(divide(sol.t, seconds), y0), tol) + approxDeepEqual(divide(sol.y, meters), exactSol(divide(sol.t, seconds), y0), tol) }) it('should solve close to the analytical solution with RK23 method', function () { const sol = solveODE(f, tspan, y0, { method: 'RK23' }) - approx.deepEqual(sol.y, exactSol(sol.t, y0), tol) + approxDeepEqual(sol.y, exactSol(sol.t, y0), tol) }) it('should solve close to the analytical solution with RK45 method', function () { const sol = solveODE(f, tspan, y0, { method: 'RK45' }) - approx.deepEqual(sol.y, exactSol(sol.t, y0), tol) + approxDeepEqual(sol.y, exactSol(sol.t, y0), tol) }) it('should solve with method name in lower case', function () { const sol = solveODE(f, tspan, y0, { method: 'rk45' }) - approx.deepEqual(sol.y, exactSol(sol.t, y0), tol) + approxDeepEqual(sol.y, exactSol(sol.t, y0), tol) }) it('should solve with few steps if a higher tolerance is specified', function () { diff --git a/test/unit-tests/function/probability/factorial.test.js b/test/unit-tests/function/probability/factorial.test.js index 4a525f081f..ff44d7ffbd 100644 --- a/test/unit-tests/function/probability/factorial.test.js +++ b/test/unit-tests/function/probability/factorial.test.js @@ -1,5 +1,5 @@ import assert from 'assert' -import approx from '../../../../tools/approx.js' +import { approxEqual } from '../../../../tools/approx.js' import math from '../../../../src/defaultInstance.js' const factorial = math.factorial @@ -48,8 +48,8 @@ describe('factorial', function () { }) it('should calculate the factorial of a non-integer', function () { - approx.equal(factorial(1.5), 1.32934038817914) - approx.equal(factorial(7.5), 14034.40729348) + approxEqual(factorial(1.5), 1.32934038817914) + approxEqual(factorial(7.5), 14034.40729348) }) it('should throw error if called with negative number', function () { diff --git a/test/unit-tests/function/probability/gamma.test.js b/test/unit-tests/function/probability/gamma.test.js index 239ed8a78e..b200ead627 100644 --- a/test/unit-tests/function/probability/gamma.test.js +++ b/test/unit-tests/function/probability/gamma.test.js @@ -1,7 +1,7 @@ /* eslint-disable no-loss-of-precision */ import assert from 'assert' -import approx from '../../../../tools/approx.js' +import { approxEqual, approxDeepEqual } from '../../../../tools/approx.js' import math from '../../../../src/defaultInstance.js' const bignumber = math.bignumber const gamma = math.gamma @@ -26,29 +26,29 @@ describe('gamma', function () { }) it('should calculate the gamma of a rational number', function () { - approx.equal(gamma(0.125), 7.5339415987976119046992) - approx.equal(gamma(0.25), 3.625609908221908311930685) - approx.equal(gamma(0.5), 1.77245385090551602729816748) - approx.equal(gamma(1.5), 0.88622692545275801364908374) - approx.equal(gamma(2.5), 1.32934038817913702047362561) - approx.equal(gamma(3.5), 3.32335097044784255118406403) - approx.equal(gamma(30.5), 4.8226969334909086010917483e+31) - approx.equal(gamma(144.9), 3.37554680943478639050191e+249) + approxEqual(gamma(0.125), 7.5339415987976119046992) + approxEqual(gamma(0.25), 3.625609908221908311930685) + approxEqual(gamma(0.5), 1.77245385090551602729816748) + approxEqual(gamma(1.5), 0.88622692545275801364908374) + approxEqual(gamma(2.5), 1.32934038817913702047362561) + approxEqual(gamma(3.5), 3.32335097044784255118406403) + approxEqual(gamma(30.5), 4.8226969334909086010917483e+31) + approxEqual(gamma(144.9), 3.37554680943478639050191e+249) - approx.equal(gamma(-0.5), -3.54490770181103205459633) - approx.equal(gamma(-1.5), 2.3632718012073547030642233) - approx.equal(gamma(-2.5), -0.945308720482941881225689) - approx.equal(gamma(-144.9), -2.078523735791760166777e-251) + approxEqual(gamma(-0.5), -3.54490770181103205459633) + approxEqual(gamma(-1.5), 2.3632718012073547030642233) + approxEqual(gamma(-2.5), -0.945308720482941881225689) + approxEqual(gamma(-144.9), -2.078523735791760166777e-251) }) it('should calculate the gamma of an irrational number', function () { - approx.equal(gamma(Math.SQRT2), 0.8865814287192591250809176) - approx.equal(gamma(Math.PI), 2.2880377953400324179595889) - approx.equal(gamma(Math.E), 1.56746825577405307486334) + approxEqual(gamma(Math.SQRT2), 0.8865814287192591250809176) + approxEqual(gamma(Math.PI), 2.2880377953400324179595889) + approxEqual(gamma(Math.E), 1.56746825577405307486334) - approx.equal(gamma(-Math.SQRT2), 2.599459907524570073533756846) - approx.equal(gamma(-Math.PI), 1.01569714446021834110892259347) - approx.equal(gamma(-Math.E), -0.952681729748073099220537210195) + approxEqual(gamma(-Math.SQRT2), 2.599459907524570073533756846) + approxEqual(gamma(-Math.PI), 1.01569714446021834110892259347) + approxEqual(gamma(-Math.E), -0.952681729748073099220537210195) }) it('should calculate the gamma of an integer bignumber', function () { @@ -97,46 +97,46 @@ describe('gamma', function () { }) */ it('should calculate the gamma of an imaginary unit', function () { - approx.deepEqual(gamma(math.i), math.complex(-0.154949828301810685124955130, + approxDeepEqual(gamma(math.i), math.complex(-0.154949828301810685124955130, -0.498015668118356042713691117)) }) it('should calculate the gamma of a complex number', function () { - approx.deepEqual(gamma(math.complex(0, 0)), math.complex(Infinity)) - approx.deepEqual(gamma(math.complex(0.0001, 0.0001)), math.complex(4999.422883240696, + approxDeepEqual(gamma(math.complex(0, 0)), math.complex(Infinity)) + approxDeepEqual(gamma(math.complex(0.0001, 0.0001)), math.complex(4999.422883240696, -4999.9999011125)) - approx.deepEqual(gamma(math.complex(1, 1)), math.complex(0.498015668118356, + approxDeepEqual(gamma(math.complex(1, 1)), math.complex(0.498015668118356, -0.154949828301810)) - approx.deepEqual(gamma(math.complex(1, -1)), math.complex(0.498015668118356, + approxDeepEqual(gamma(math.complex(1, -1)), math.complex(0.498015668118356, 0.154949828301810)) - approx.deepEqual(gamma(math.complex(-1, 1)), math.complex(-0.17153291990827, + approxDeepEqual(gamma(math.complex(-1, 1)), math.complex(-0.17153291990827, 0.32648274821008)) - approx.deepEqual(gamma(math.complex(-1, -1)), math.complex(-0.1715329199082, + approxDeepEqual(gamma(math.complex(-1, -1)), math.complex(-0.1715329199082, -0.3264827482100)) - approx.deepEqual(gamma(math.complex(0.5, 0.5)), math.complex(0.81816399954, + approxDeepEqual(gamma(math.complex(0.5, 0.5)), math.complex(0.81816399954, -0.76331382871)) - approx.deepEqual(gamma(math.complex(0.5, -0.5)), math.complex(0.81816399954, + approxDeepEqual(gamma(math.complex(0.5, -0.5)), math.complex(0.81816399954, 0.76331382871)) - approx.deepEqual(gamma(math.complex(-0.5, 0.5)), math.complex(-1.5814778282, + approxDeepEqual(gamma(math.complex(-0.5, 0.5)), math.complex(-1.5814778282, -0.0548501708)) - approx.deepEqual(gamma(math.complex(-0.5, -0.5)), math.complex(-1.581477828, + approxDeepEqual(gamma(math.complex(-0.5, -0.5)), math.complex(-1.581477828, 0.054850170)) - approx.deepEqual(gamma(math.complex(-0.45, -0.15)), math.complex(-3.2466111264, + approxDeepEqual(gamma(math.complex(-0.45, -0.15)), math.complex(-3.2466111264, 0.2219549583256)) - approx.deepEqual(gamma(math.complex(0.49, 1)), math.complex(0.294136245907794, + approxDeepEqual(gamma(math.complex(0.49, 1)), math.complex(0.294136245907794, -0.4298609111267)) - approx.deepEqual(gamma(math.complex(9.43, -4.15)), math.complex(-39533.5179564, + approxDeepEqual(gamma(math.complex(9.43, -4.15)), math.complex(-39533.5179564, -7863.025662998)) - approx.deepEqual(gamma(math.complex(5, 3)), math.complex(0.016041882741652, + approxDeepEqual(gamma(math.complex(5, 3)), math.complex(0.016041882741652, -9.433293289755986)) - approx.deepEqual(gamma(math.complex(5, -3)), math.complex(0.016041882741652, + approxDeepEqual(gamma(math.complex(5, -3)), math.complex(0.016041882741652, 9.433293289755986)) - approx.deepEqual(gamma(math.complex(-4.242, 0.0001)), math.complex(-0.131096144111857, + approxDeepEqual(gamma(math.complex(-4.242, 0.0001)), math.complex(-0.131096144111857, -0.000063737771212)) - approx.deepEqual(math.multiply(gamma(math.complex(-5, 3)), 1e6), + approxDeepEqual(math.multiply(gamma(math.complex(-5, 3)), 1e6), math.complex(7.896487481239, 4.756173836597)) - approx.deepEqual(math.multiply(gamma(math.complex(-5, -3)), 1e6), + approxDeepEqual(math.multiply(gamma(math.complex(-5, -3)), 1e6), math.complex(7.8964874812, -4.7561738365)) }) diff --git a/test/unit-tests/function/probability/lgamma.test.js b/test/unit-tests/function/probability/lgamma.test.js index f3c1cd7eaa..557264d714 100644 --- a/test/unit-tests/function/probability/lgamma.test.js +++ b/test/unit-tests/function/probability/lgamma.test.js @@ -1,7 +1,7 @@ /* eslint-disable no-loss-of-precision */ import assert from 'assert' -import approx from '../../../../tools/approx.js' +import { approxEqual, approxDeepEqual } from '../../../../tools/approx.js' import math from '../../../../src/defaultInstance.js' const lgamma = math.lgamma @@ -35,165 +35,165 @@ describe('lgamma', function () { it('should calculate the lgamma of a positive numbers', function () { // computation reference: https://www.wolframalpha.com/input?i=LogGamma%5Bx%5D - approx.equal(lgamma(/**/ 0.000000001), /* */ 20.7232658363691954921, EPSILON) - approx.equal(lgamma(/* */ 0.000001), /* */ 13.8155099807494316692, EPSILON) - approx.equal(lgamma(/* */ 0.25), /* */ 1.28802252469807745737, EPSILON) - approx.equal(lgamma(/* */ 0.8), /* */ 0.15205967839983758878, EPSILON) - approx.equal(lgamma(/* */ 1), /* */ 0, EPSILON) - approx.equal(lgamma(/* */ 1.5), /* */ -0.12078223763524522235, EPSILON) - approx.equal(lgamma(/* */ 2), /* */ 0, EPSILON) - approx.equal(lgamma(/* */ 2.5), /* */ 0.28468287047291915963, EPSILON) - approx.equal(lgamma(/* */ 12.5), /* */ 18.7343475119364457016, EPSILON) - approx.equal(lgamma(/* */ 125.5), /* */ 479.457822363903399136, EPSILON) - approx.equal(lgamma(/* */ 5555.5555), /* */ 42344.1277925098161477, EPSILON) - approx.equal(lgamma(/* */ 5000000.5), /* */ 72124743.2709303972649, EPSILON) - approx.equal(lgamma(99999999999999.5), /* */ 3123619130191632.64037, EPSILON) - approx.equal(lgamma(/* */ 1e92), /**/ 2.1083782855545220293e94, EPSILON) + approxEqual(lgamma(/**/ 0.000000001), /* */ 20.7232658363691954921, EPSILON) + approxEqual(lgamma(/* */ 0.000001), /* */ 13.8155099807494316692, EPSILON) + approxEqual(lgamma(/* */ 0.25), /* */ 1.28802252469807745737, EPSILON) + approxEqual(lgamma(/* */ 0.8), /* */ 0.15205967839983758878, EPSILON) + approxEqual(lgamma(/* */ 1), /* */ 0, EPSILON) + approxEqual(lgamma(/* */ 1.5), /* */ -0.12078223763524522235, EPSILON) + approxEqual(lgamma(/* */ 2), /* */ 0, EPSILON) + approxEqual(lgamma(/* */ 2.5), /* */ 0.28468287047291915963, EPSILON) + approxEqual(lgamma(/* */ 12.5), /* */ 18.7343475119364457016, EPSILON) + approxEqual(lgamma(/* */ 125.5), /* */ 479.457822363903399136, EPSILON) + approxEqual(lgamma(/* */ 5555.5555), /* */ 42344.1277925098161477, EPSILON) + approxEqual(lgamma(/* */ 5000000.5), /* */ 72124743.2709303972649, EPSILON) + approxEqual(lgamma(99999999999999.5), /* */ 3123619130191632.64037, EPSILON) + approxEqual(lgamma(/* */ 1e92), /**/ 2.1083782855545220293e94, EPSILON) }) it('should calculate the lgamma of an irrational number', function () { - approx.equal(lgamma(Math.SQRT2), -0.12038230351896920333, EPSILON) - approx.equal(lgamma(Math.PI), 0.82769459232343710153, EPSILON) - approx.equal(lgamma(Math.E), 0.449461741820067667, EPSILON) + approxEqual(lgamma(Math.SQRT2), -0.12038230351896920333, EPSILON) + approxEqual(lgamma(Math.PI), 0.82769459232343710153, EPSILON) + approxEqual(lgamma(Math.E), 0.449461741820067667, EPSILON) }) it('should calculate the lgamma of a complex number', function () { - approx.deepEqual(lgamma(math.complex(0, 0)), math.complex(Infinity), EPSILON) - approx.deepEqual( + approxDeepEqual(lgamma(math.complex(0, 0)), math.complex(Infinity), EPSILON) + approxDeepEqual( lgamma(math.complex(0.000000001, 0.000000001)), math.complex(20.3766922460892228366, -0.78539816397466397287), EPSILON ) - approx.deepEqual( + approxDeepEqual( lgamma(math.complex(0.000001, 0.000001)), math.complex(13.4689363904686365487, -0.78539874061146827788), EPSILON ) - approx.deepEqual( + approxDeepEqual( lgamma(math.complex(0.25, 0.25)), math.complex(0.90447450949333888977, -0.83887024394321281804), EPSILON ) - approx.deepEqual( + approxDeepEqual( lgamma(math.complex(-0.25, 0.25)), math.complex(1.16657203736087492865, -2.61462703865115551016), EPSILON ) - approx.deepEqual( + approxDeepEqual( lgamma(math.complex(0.8, -0.8)), math.complex(-0.41924081113642074879, 0.51623080213929827944), EPSILON ) - approx.deepEqual( + approxDeepEqual( lgamma(math.complex(-0.8, 0.8)), math.complex(-0.3775761850502096333, -3.80865021027588766567), EPSILON ) - approx.deepEqual( + approxDeepEqual( lgamma(math.complex(1, 1)), math.complex(-0.65092319930185633889, -0.30164032046753319789), EPSILON ) - approx.deepEqual( + approxDeepEqual( lgamma(math.complex(1, -1)), math.complex(-0.65092319930185633889, 0.30164032046753319789), EPSILON ) - approx.deepEqual( + approxDeepEqual( lgamma(math.complex(-1, 1)), math.complex(-0.99749678958182899359, -4.22863113745477474597), EPSILON ) - approx.deepEqual( + approxDeepEqual( lgamma(math.complex(-1, -1)), math.complex(-0.99749678958182899359, 4.22863113745477474597), EPSILON ) - approx.deepEqual( + approxDeepEqual( lgamma(math.complex(1.5, 1.5)), math.complex(-0.97915093918136435887, 0.38589477126715472436), EPSILON ) - approx.deepEqual( + approxDeepEqual( lgamma(math.complex(1.5, -1.5)), math.complex(-0.97915093918136435887, -0.38589477126715472436), EPSILON ) - approx.deepEqual( + approxDeepEqual( lgamma(math.complex(-1.5, 1.5)), math.complex(-2.64748036944365646074, -5.11189237251498344295), EPSILON ) - approx.deepEqual( + approxDeepEqual( lgamma(math.complex(-1.5, -1.5)), math.complex(-2.64748036944365646074, 5.11189237251498344295), EPSILON ) - approx.deepEqual( + approxDeepEqual( lgamma(math.complex(2, -2)), math.complex(-1.07135983021387915393, -1.2367950341038788144), EPSILON ) - approx.deepEqual( + approxDeepEqual( lgamma(math.complex(-2.5, -2.5)), math.complex(-6.27685085148648571668, 6.42804393793984167867), EPSILON ) - approx.deepEqual( + approxDeepEqual( lgamma(math.complex(-12.5, 12.5)), math.complex(-53.3767553324096369866, -7.23008341760111500158), EPSILON ) - approx.deepEqual( + approxDeepEqual( lgamma(math.complex(125.5, 125.5)), math.complex(424.211719638964718426, 622.623796700622589246), EPSILON ) - approx.deepEqual( + approxDeepEqual( lgamma(math.complex(5555.5555, -5555.5555)), math.complex(39906.0402274967320859, -48635.8593112306908421), EPSILON ) - approx.deepEqual( + approxDeepEqual( lgamma(math.complex(-5000000.5, -5000000.5)), math.complex(-8.56385987850343162145e7, -6.20766433819965678363e7), EPSILON ) - approx.deepEqual( + approxDeepEqual( lgamma(math.complex(99999999999999.5, 99999999999999.5)), math.complex(3.07973667287988512101e15, 3.23681630555938897728e15), EPSILON ) - approx.deepEqual( + approxDeepEqual( lgamma(math.complex(-9.87654321e50, 1.23456789e70)), math.complex(-1.93925470679092599791e70, 1.98014414903993314695e72), EPSILON ) - approx.deepEqual( + approxDeepEqual( lgamma(math.complex(0.000123, 123456789)), math.complex(-1.93925479073563285659e8, 2.17671624683482738475e9), EPSILON ) - approx.deepEqual( + approxDeepEqual( lgamma(math.complex(-0.000123, 123456789)), math.complex(-1.93925479078146610494e8, 2.17671624683444096885e9), EPSILON ) - approx.deepEqual( + approxDeepEqual( lgamma(math.complex(123456789, -0.000123)), math.complex(2.17671623922326999167e9, -0.00229166241674051621), EPSILON ) - approx.deepEqual( + approxDeepEqual( lgamma(math.complex(-123456789, -0.000123)), math.complex(-2.17671625601718110732e9, 3.87850942926689860771e8), CEPSILON ) - approx.deepEqual( + approxDeepEqual( lgamma(math.complex(123456789.123, 0.123456789)), math.complex(2.17671624151493240841e9, 2.30017303624303234065), EPSILON @@ -201,7 +201,7 @@ describe('lgamma', function () { }) it('should calculate the lgamma of some special arguments', function () { - approx.equal(lgamma(true), 0, EPSILON) + approxEqual(lgamma(true), 0, EPSILON) assert.strictEqual(lgamma(false), Infinity) assert.ok(isNaN(lgamma(NaN))) diff --git a/test/unit-tests/function/signal/freqz.test.js b/test/unit-tests/function/signal/freqz.test.js index 2a67c29482..0684c63c77 100644 --- a/test/unit-tests/function/signal/freqz.test.js +++ b/test/unit-tests/function/signal/freqz.test.js @@ -1,4 +1,4 @@ -import approx from '../../../../tools/approx.js' +import { approxDeepEqual } from '../../../../tools/approx.js' import assert from 'assert' import math from '../../../../src/defaultInstance.js' @@ -6,7 +6,7 @@ const freqz = math.freqz describe('freqz', function () { it('should return the frequency response of a zero-pole-gain model given number as w parameter', function () { - approx.deepEqual( + approxDeepEqual( freqz([math.complex(1, 0), math.complex(-1, -5)], [math.complex(1, 0), math.complex(5, 0), math.complex(6, 0)], 5), { h: [math.complex(0, -0.4166666666666667), math.complex(0.08934733914100848, -0.3891571989056336), @@ -16,7 +16,7 @@ describe('freqz', function () { ], w: [0, 0.62831853, 1.25663706, 1.88495559, 2.51327412] }) - approx.deepEqual(freqz([math.complex(1, 0), math.complex(-3, 0), math.complex(2, 0)], [math.complex(1, 0), math.complex(3, 0), math.complex(2, 0)], 5), { + approxDeepEqual(freqz([math.complex(1, 0), math.complex(-3, 0), math.complex(2, 0)], [math.complex(1, 0), math.complex(3, 0), math.complex(2, 0)], 5), { h: [math.complex(0, 0), math.complex(-0.09275445814522237, -0.11835248219923325), math.complex(-0.4432171093183538, -0.3495195356882487), @@ -29,20 +29,20 @@ describe('freqz', function () { it('should return the frequency response of a zero-pole-gain model when not given w parameter', function () { const { h, w } = freqz([math.complex(1, 0), math.complex(-1, -5)], [math.complex(1, 0), math.complex(5, 0), math.complex(6, 0)]) - approx.deepEqual(h.length, 512) - approx.deepEqual(w.length, 512) + approxDeepEqual(h.length, 512) + approxDeepEqual(w.length, 512) }) it('should return the frequency response of a zero-pole-gain model given b and a as matrix and not given w parameter', function () { const b = math.matrix([math.complex(1, 0), math.complex(-1, -5)]) const a = math.matrix([math.complex(1, 0), math.complex(5, 0), math.complex(6, 0)]) const { h, w } = freqz(b, a) - approx.deepEqual(h._size, [512]) - approx.deepEqual(w._size, [512]) + approxDeepEqual(h._size, [512]) + approxDeepEqual(w._size, [512]) }) it('should return the frequency response of a zero-pole-gain model given array as w parameter', function () { - approx.deepEqual( + approxDeepEqual( freqz([math.complex(1, 0), math.complex(-1, -5)], [math.complex(1, 0), math.complex(5, 0), math.complex(6, 0)], [0, 1, 2]), { h: [math.complex(0, -0.4166666666666667), math.complex(0.1419346, -0.4055241), @@ -53,7 +53,7 @@ describe('freqz', function () { }) it('should return the frequency response of a zero-pole-gain model given matrix as b,a and w parameter', function () { - approx.deepEqual( + approxDeepEqual( freqz(math.matrix([math.complex(1, 0), math.complex(-1, -5)]), math.matrix([math.complex(1, 0), math.complex(5, 0), math.complex(6, 0)]), math.matrix([0, 1, 2])), { h: math.matrix([math.complex(0, -0.4166666666666667), math.complex(0.1419346, -0.4055241), @@ -64,7 +64,7 @@ describe('freqz', function () { }) it('should return the frequency response of a zero-pole-gain model given matrix as b,a and number as w parameter', function () { - approx.deepEqual( + approxDeepEqual( freqz(math.matrix([math.complex(1, 0), math.complex(-1, -5)]), math.matrix([math.complex(1, 0), math.complex(5, 0), math.complex(6, 0)]), 5), { h: math.matrix([math.complex(0, -0.4166666666666667), math.complex(0.08934733914100848, -0.3891571989056336), diff --git a/test/unit-tests/function/signal/zpk2tf.test.js b/test/unit-tests/function/signal/zpk2tf.test.js index f43652b6c5..a768b22be6 100644 --- a/test/unit-tests/function/signal/zpk2tf.test.js +++ b/test/unit-tests/function/signal/zpk2tf.test.js @@ -1,48 +1,48 @@ -import approx from '../../../../tools/approx.js' +import { approxDeepEqual } from '../../../../tools/approx.js' import math from '../../../../src/defaultInstance.js' const zpk2tf = math.zpk2tf describe('zpk2tf', function () { it('should return the transfer function of a zero-pole-gain model', function () { - approx.deepEqual(zpk2tf([math.complex(1, 5)], [math.complex(-2, 0), math.complex(-3, 0)], 1), + approxDeepEqual(zpk2tf([math.complex(1, 5)], [math.complex(-2, 0), math.complex(-3, 0)], 1), [[math.complex(1, 0), math.complex(-1, -5)], [math.complex(1, 0), math.complex(5, 0), math.complex(6, 0)]]) - approx.deepEqual(zpk2tf([math.complex(1, 5)], [math.complex(-2, 0), math.complex(-3, 0)], 2), + approxDeepEqual(zpk2tf([math.complex(1, 5)], [math.complex(-2, 0), math.complex(-3, 0)], 2), [[math.complex(2, 0), math.complex(-2, -10)], [math.complex(1, 0), math.complex(5, 0), math.complex(6, 0)]]) }) it('should return the transfer function of a zero-pole model', function () { - approx.deepEqual(zpk2tf([math.complex(1, 5)], [math.complex(-2, 0), math.complex(-3, 0)]), + approxDeepEqual(zpk2tf([math.complex(1, 5)], [math.complex(-2, 0), math.complex(-3, 0)]), [[math.complex(1, 0), math.complex(-1, -5)], [math.complex(1, 0), math.complex(5, 0), math.complex(6, 0)]]) }) it('should return the transfer function of a zero-pole-gain model with number parameters', function () { - approx.deepEqual(zpk2tf([1, 2], [-1, -2], 1), + approxDeepEqual(zpk2tf([1, 2], [-1, -2], 1), [[math.complex(1, 0), math.complex(-3, 0), math.complex(2, 0)], [math.complex(1, 0), math.complex(3, 0), math.complex(2, 0)]]) - approx.deepEqual(zpk2tf([1, 5], [-2, -3], 1), + approxDeepEqual(zpk2tf([1, 5], [-2, -3], 1), [[math.complex(1, 0), math.complex(-6, 0), math.complex(5, 0)], [math.complex(1, 0), math.complex(5, 0), math.complex(6, 0)]]) - approx.deepEqual(zpk2tf([1, 8, 5, 7, 2], [-2, -3, 2, 5, 6], 1), + approxDeepEqual(zpk2tf([1, 8, 5, 7, 2], [-2, -3, 2, 5, 6], 1), [[math.complex(1, 0), math.complex(-23, 0), math.complex(193, 0), math.complex(-713, 0), math.complex(1102, 0), math.complex(-560, 0)], [math.complex(1, 0), math.complex(-8, 0), math.complex(-7, 0), math.complex(122, 0), math.complex(12, 0), math.complex(-360, 0)]]) }) it('should return the transfer function of a zero-pole model with Bignumber parameters', function () { - approx.deepEqual(zpk2tf(math.bignumber([1, 2]), math.bignumber([-1, -2])), + approxDeepEqual(zpk2tf(math.bignumber([1, 2]), math.bignumber([-1, -2])), [[math.complex(1, 0), math.complex(-3, 0), math.complex(2, 0)], [math.complex(1, 0), math.complex(3, 0), math.complex(2, 0)]]) - approx.deepEqual(zpk2tf(math.bignumber([1, 5]), math.bignumber([-2, -3])), + approxDeepEqual(zpk2tf(math.bignumber([1, 5]), math.bignumber([-2, -3])), [[math.complex(1, 0), math.complex(-6, 0), math.complex(5, 0)], [math.complex(1, 0), math.complex(5, 0), math.complex(6, 0)]]) }) it('should return the transfer function of a zero-pole-gain model with matrix parameters', function () { - approx.deepEqual(zpk2tf(math.matrix([math.complex(1, 5)]), math.matrix([math.complex(-2, 0), math.complex(-3, 0)]), 1), + approxDeepEqual(zpk2tf(math.matrix([math.complex(1, 5)]), math.matrix([math.complex(-2, 0), math.complex(-3, 0)]), 1), [[math.complex(1, 0), math.complex(-1, -5)], [math.complex(1, 0), math.complex(5, 0), math.complex(6, 0)]]) - approx.deepEqual(zpk2tf(math.matrix([math.complex(1, 5)]), math.matrix([math.complex(-2, 0), math.complex(-3, 0)]), 2), + approxDeepEqual(zpk2tf(math.matrix([math.complex(1, 5)]), math.matrix([math.complex(-2, 0), math.complex(-3, 0)]), 2), [[math.complex(2, 0), math.complex(-2, -10)], [math.complex(1, 0), math.complex(5, 0), math.complex(6, 0)]]) }) it('should return the transfer function of a zero-pole model with matrix parameters', function () { - approx.deepEqual(zpk2tf(math.matrix([math.complex(1, 5)]), math.matrix([math.complex(-2, 0), math.complex(-3, 0)])), + approxDeepEqual(zpk2tf(math.matrix([math.complex(1, 5)]), math.matrix([math.complex(-2, 0), math.complex(-3, 0)])), [[math.complex(1, 0), math.complex(-1, -5)], [math.complex(1, 0), math.complex(5, 0), math.complex(6, 0)]]) }) }) diff --git a/test/unit-tests/function/special/zeta.test.js b/test/unit-tests/function/special/zeta.test.js index 5b26d06310..ad1200edad 100644 --- a/test/unit-tests/function/special/zeta.test.js +++ b/test/unit-tests/function/special/zeta.test.js @@ -1,14 +1,14 @@ /* eslint-disable no-loss-of-precision */ import assert from 'assert' -import approx from '../../../../tools/approx.js' +import { approxEqual as _approxEqual } from '../../../../tools/approx.js' import math from '../../../../src/defaultInstance.js' const zeta = math.zeta const epsilon = 1e-6 // FIXME: make zeta work with an epsilon of 1e-12 function approxEqual (a, b) { - approx.equal(a, b, epsilon) + _approxEqual(a, b, epsilon) } describe('Riemann Zeta', function () { diff --git a/test/unit-tests/function/statistics/mean.test.js b/test/unit-tests/function/statistics/mean.test.js index af8592af51..b38026172b 100644 --- a/test/unit-tests/function/statistics/mean.test.js +++ b/test/unit-tests/function/statistics/mean.test.js @@ -1,5 +1,5 @@ import assert from 'assert' -import approx from '../../../../tools/approx.js' +import { approxEqual } from '../../../../tools/approx.js' import math from '../../../../src/defaultInstance.js' const BigNumber = math.BigNumber const Complex = math.Complex @@ -60,14 +60,14 @@ describe('mean', function () { const a = math.unit(10, 'cm') const b = math.unit(20, 'cm') const c = math.unit(15, 'cm') - approx.equal(mean(a, b).toNumber('cm'), c.toNumber('cm')) + approxEqual(mean(a, b).toNumber('cm'), c.toNumber('cm')) }) it('should compute the mean of quantities with compatible units', function () { const a = math.unit(1, 'm') const b = math.unit(50, 'cm') const c = math.unit(0.75, 'm') - approx.equal(mean(a, b).toNumber('cm'), c.toNumber('cm')) + approxEqual(mean(a, b).toNumber('cm'), c.toNumber('cm')) }) it('should not compute the mean of quantities with incompatible units', function () { diff --git a/test/unit-tests/function/statistics/median.test.js b/test/unit-tests/function/statistics/median.test.js index a27e5ea8c3..fef3892d2c 100644 --- a/test/unit-tests/function/statistics/median.test.js +++ b/test/unit-tests/function/statistics/median.test.js @@ -1,5 +1,5 @@ import assert from 'assert' -import approx from '../../../../tools/approx.js' +import { approxEqual } from '../../../../tools/approx.js' import math from '../../../../src/defaultInstance.js' const BigNumber = math.BigNumber const Complex = math.Complex @@ -11,14 +11,14 @@ describe('median', function () { it('should return the median of an even number of numbers', function () { assert.strictEqual(median(3, 1), 2) assert.strictEqual(median(1, 3), 2) - approx.equal(median(1, 3, 5, 2), 2.5) + approxEqual(median(1, 3, 5, 2), 2.5) assert.strictEqual(median(0, 0, 0, 0), 0) }) it('should return the median of an odd number of numbers', function () { assert.strictEqual(median(0), 0) assert.strictEqual(median(5), 5) - approx.equal(median(1, 3, 5, 2, -1), 2) + approxEqual(median(1, 3, 5, 2, -1), 2) assert.strictEqual(median(0, 0, 0), 0) }) @@ -54,14 +54,14 @@ describe('median', function () { }) it('should return the median from a 2d array', function () { - approx.equal(median([ + approxEqual(median([ [1, 4, 7], [3, 0, 5] ]), 3.5) }) it('should return the median from a 2d matrix', function () { - approx.equal(median(new DenseMatrix([ + approxEqual(median(new DenseMatrix([ [1, 4, 7], [3, 0, 5] ])), 3.5) diff --git a/test/unit-tests/function/statistics/quantileSeq.test.js b/test/unit-tests/function/statistics/quantileSeq.test.js index f64680e6e0..63b38a2a5e 100644 --- a/test/unit-tests/function/statistics/quantileSeq.test.js +++ b/test/unit-tests/function/statistics/quantileSeq.test.js @@ -1,5 +1,5 @@ import assert from 'assert' -import approx from '../../../../tools/approx.js' +import { approxEqual, approxDeepEqual } from '../../../../tools/approx.js' import math from '../../../../src/defaultInstance.js' const bignumber = math.bignumber const quantileSeq = math.quantileSeq @@ -14,10 +14,10 @@ describe('quantileSeq', function () { assert.strictEqual(quantileSeq(lst, 0.25, false), 2.325) assert.strictEqual(quantileSeq(lst, 0.3), 2.45) assert.strictEqual(quantileSeq(lst, 0.4), 2.7) - approx.equal(quantileSeq(lst, 0.5), 2.9) + approxEqual(quantileSeq(lst, 0.5), 2.9) assert.strictEqual(quantileSeq(lst, 0.6), 3.1) assert.strictEqual(quantileSeq(lst, 0.7), 3.2) - approx.equal(quantileSeq(lst, 0.75), 3.25) + approxEqual(quantileSeq(lst, 0.75), 3.25) assert.strictEqual(quantileSeq(lst, 0.8), 3.3) assert.strictEqual(quantileSeq(lst, 0.9), 3.5) assert.strictEqual(quantileSeq(lst, 1), 3.7) @@ -65,10 +65,10 @@ describe('quantileSeq', function () { assert.strictEqual(quantileSeq(lst, 0.25, true), 2.325) assert.strictEqual(quantileSeq(lst, 0.3, true), 2.45) assert.strictEqual(quantileSeq(lst, 0.4, true), 2.7) - approx.equal(quantileSeq(lst, 0.5, true), 2.9) + approxEqual(quantileSeq(lst, 0.5, true), 2.9) assert.strictEqual(quantileSeq(lst, 0.6, true), 3.1) assert.strictEqual(quantileSeq(lst, 0.7, true), 3.2) - approx.equal(quantileSeq(lst, 0.75, true), 3.25) + approxEqual(quantileSeq(lst, 0.75, true), 3.25) assert.strictEqual(quantileSeq(lst, 0.8, true), 3.3) assert.strictEqual(quantileSeq(lst, 0.9, true), 3.5) assert.strictEqual(quantileSeq(lst, 1, true), 3.7) @@ -95,7 +95,7 @@ describe('quantileSeq', function () { // FIXME: should return the quantileSeq of an array of bignumbers with number probability // eslint-disable-next-line mocha/no-skipped-tests it.skip('should return the quantileSeq of an array of bignumbers with number probability', function () { - approx.equal(quantileSeq([bignumber(0.5377), bignumber(1.8339), bignumber(-2.2588), bignumber(0.8622), + approxEqual(quantileSeq([bignumber(0.5377), bignumber(1.8339), bignumber(-2.2588), bignumber(0.8622), bignumber(0.3188), bignumber(-1.3077), bignumber(-0.4336), bignumber(0.3426), bignumber(3.5784), bignumber(2.7694)], 0.3), 0.09308) @@ -117,28 +117,28 @@ describe('quantileSeq', function () { }) it('should return the quantileSeq from a 2d array', function () { - approx.equal(quantileSeq([ + approxEqual(quantileSeq([ [3.7, 2.7, 3.3], [1.3, 2.2, 3.1] ], 0.75), 3.25) }) it('should return the quantileSeq from an ascending 2d array', function () { - approx.equal(quantileSeq([ + approxEqual(quantileSeq([ [1.3, 2.2, 2.7], [3.1, 3.3, 3.7] ], 0.75, true), 3.25) }) it('should return the quantileSeq from a 2d matrix', function () { - approx.equal(quantileSeq(math.matrix([ + approxEqual(quantileSeq(math.matrix([ [3.7, 2.7, 3.3], [1.3, 2.2, 3.1] ]), 0.75), 3.25) }) it('should return the quantileSeq from an ascending 2d matrix', function () { - approx.equal(quantileSeq(math.matrix([ + approxEqual(quantileSeq(math.matrix([ [1.3, 2.2, 2.7], [3.1, 3.3, 3.7] ]), 0.75, true), 3.25) @@ -146,13 +146,13 @@ describe('quantileSeq', function () { it('should return list quantiles for list of number probabilities', function () { const lst = [3.7, 2.7, 3.3, 1.3, 2.2, 3.1] - approx.deepEqual(quantileSeq(lst, [0.25, 0.5, 0.75]), [2.325, 2.9, 3.25]) - approx.deepEqual(quantileSeq(lst, [0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9]), + approxDeepEqual(quantileSeq(lst, [0.25, 0.5, 0.75]), [2.325, 2.9, 3.25]) + approxDeepEqual(quantileSeq(lst, [0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9]), [1.75, 2.2, 2.45, 2.7, 2.9, 3.1, 3.2, 3.3, 3.5]) }) it('should return list quantiles for list of number probabilities being a matrix', function () { - approx.deepEqual(quantileSeq(math.matrix([3, -1, 5, 7]), math.matrix([1 / 3, 2 / 3])), [3, 5]) + approxDeepEqual(quantileSeq(math.matrix([3, -1, 5, 7]), math.matrix([1 / 3, 2 / 3])), [3, 5]) // FIXME: should return a matrix as output when the input is a matrix }) @@ -167,15 +167,15 @@ describe('quantileSeq', function () { it('should return list quantiles for list of number and BigNumber probabilities', function () { const lst = [3.7, 2.7, 3.3, 1.3, 2.2, 3.1] - approx.deepEqual(quantileSeq(lst, [0.25, bignumber(0.5), 0.75]), [2.325, 2.9, 3.25]) - approx.deepEqual(quantileSeq(lst, [0.1, 0.2, bignumber(0.3), 0.4, 0.5, 0.6, 0.7, bignumber(0.8), 0.9]), + approxDeepEqual(quantileSeq(lst, [0.25, bignumber(0.5), 0.75]), [2.325, 2.9, 3.25]) + approxDeepEqual(quantileSeq(lst, [0.1, 0.2, bignumber(0.3), 0.4, 0.5, 0.6, 0.7, bignumber(0.8), 0.9]), [1.75, 2.2, 2.45, 2.7, 2.9, 3.1, 3.2, 3.3, 3.5]) }) it('should return the evenly number spaced quantiles of an array', function () { const lst = [3.7, 2.7, 3.3, 1.3, 2.2, 3.1] - approx.deepEqual(quantileSeq(lst, 3), [2.325, 2.9, 3.25]) - approx.deepEqual(quantileSeq(lst, 9), [1.75, 2.2, 2.45, 2.7, 2.9, 3.1, 3.2, 3.3, 3.5]) + approxDeepEqual(quantileSeq(lst, 3), [2.325, 2.9, 3.25]) + approxDeepEqual(quantileSeq(lst, 9), [1.75, 2.2, 2.45, 2.7, 2.9, 3.1, 3.2, 3.3, 3.5]) }) it('should return the evenly BigNumber spaced quantiles of an array', function () { diff --git a/test/unit-tests/function/statistics/std.test.js b/test/unit-tests/function/statistics/std.test.js index 31dbafa6dc..aea8f2a7d7 100644 --- a/test/unit-tests/function/statistics/std.test.js +++ b/test/unit-tests/function/statistics/std.test.js @@ -1,5 +1,5 @@ import assert from 'assert' -import approx from '../../../../tools/approx.js' +import { approxEqual, approxDeepEqual } from '../../../../tools/approx.js' import math from '../../../../src/defaultInstance.js' const BigNumber = math.BigNumber const Complex = math.Complex @@ -20,11 +20,11 @@ describe('std', function () { it('should return the standard deviation of complex numbers', function () { // - approx.deepEqual(std(new Complex(2, 4), new Complex(4, 2)), new Complex(1.41421, -1.41421)) + approxDeepEqual(std(new Complex(2, 4), new Complex(4, 2)), new Complex(1.41421, -1.41421)) }) it('should return the standard deviation of mixed numbers and complex numbers', function () { - approx.deepEqual(std(2, new Complex(6, 4)), new Complex(2.82842, 2.82842)) + approxDeepEqual(std(2, new Complex(6, 4)), new Complex(2.82842, 2.82842)) }) it('should return the standard deviation from an array', function () { @@ -126,14 +126,14 @@ describe('std', function () { const b = new Unit(5, 'cm') const c = new Unit(8, 'cm') const res = math.unit(3, 'cm') - approx.equal(std([a, b, c]).toNumber('cm'), res.toNumber('cm')) + approxEqual(std([a, b, c]).toNumber('cm'), res.toNumber('cm')) }) it('should compute the standard deviation value of quantities with compatible units', function () { const a = math.unit(1, 'm') const b = math.unit(50, 'cm') const c = math.unit(math.sqrt(1250), 'cm') - approx.equal(std([a, b]).toNumber('cm'), c.toNumber('cm')) + approxEqual(std([a, b]).toNumber('cm'), c.toNumber('cm')) }) it('should not compute the standard deviation value of quantities with incompatible units', function () { diff --git a/test/unit-tests/function/statistics/variance.test.js b/test/unit-tests/function/statistics/variance.test.js index 53c6a6db36..73162acf3e 100644 --- a/test/unit-tests/function/statistics/variance.test.js +++ b/test/unit-tests/function/statistics/variance.test.js @@ -1,5 +1,5 @@ import assert from 'assert' -import approx from '../../../../tools/approx.js' +import { approxEqual } from '../../../../tools/approx.js' import math from '../../../../src/defaultInstance.js' const BigNumber = math.BigNumber const Complex = math.Complex @@ -134,14 +134,14 @@ describe('variance', function () { const a = math.unit(10, 'cm') const b = math.unit(20, 'cm') const c = math.unit(50, 'cm^2') - approx.equal(variance([a, b]).toNumber('cm^2'), c.toNumber('cm^2')) + approxEqual(variance([a, b]).toNumber('cm^2'), c.toNumber('cm^2')) }) it('should compute the variance of quantities with compatible units', function () { const a = math.unit(1, 'm') const b = math.unit(50, 'cm') const c = math.unit(1250, 'cm^2') - approx.equal(variance([a, b]).toNumber('cm^2'), c.toNumber('cm^2')) + approxEqual(variance([a, b]).toNumber('cm^2'), c.toNumber('cm^2')) }) it('should not compute the variance of quantities with incompatible units', function () { diff --git a/test/unit-tests/function/trigonometry/acos.test.js b/test/unit-tests/function/trigonometry/acos.test.js index 422cb7974e..52f259b613 100644 --- a/test/unit-tests/function/trigonometry/acos.test.js +++ b/test/unit-tests/function/trigonometry/acos.test.js @@ -1,6 +1,6 @@ import assert from 'assert' import math from '../../../../src/defaultInstance.js' -import approx from '../../../../tools/approx.js' +import { approxEqual, approxDeepEqual } from '../../../../tools/approx.js' const pi = math.pi const acos = math.acos const cos = math.cos @@ -15,19 +15,19 @@ const Big = bigmath.bignumber describe('acos', function () { it('should return the arccos of a boolean', function () { - approx.equal(acos(true), 0) - approx.equal(acos(false), 0.5 * pi) + approxEqual(acos(true), 0) + approxEqual(acos(false), 0.5 * pi) }) it('should return the arccos of a number', function () { - approx.equal(acos(-1) / pi, 1) - approx.equal(acos(-0.5) / pi, 2 / 3) - approx.equal(acos(0) / pi, 0.5) - approx.equal(acos(0.5) / pi, 1 / 3) - approx.equal(acos(1) / pi, 0) + approxEqual(acos(-1) / pi, 1) + approxEqual(acos(-0.5) / pi, 2 / 3) + approxEqual(acos(0) / pi, 0.5) + approxEqual(acos(0.5) / pi, 1 / 3) + approxEqual(acos(1) / pi, 0) - approx.deepEqual(acos(-2), complex('3.14159265358979 - 1.31695789692482i')) - approx.deepEqual(acos(2), complex('1.316957896924817i')) + approxDeepEqual(acos(-2), complex('3.14159265358979 - 1.31695789692482i')) + approxDeepEqual(acos(2), complex('1.316957896924817i')) }) it('should return the arccos of a number when predictable:true', function () { @@ -53,11 +53,11 @@ describe('acos', function () { }) it('should be the inverse function of cos', function () { - approx.equal(acos(cos(-1)), 1) - approx.equal(acos(cos(0)), 0) - approx.equal(acos(cos(0.1)), 0.1) - approx.equal(acos(cos(0.5)), 0.5) - approx.equal(acos(cos(2)), 2) + approxEqual(acos(cos(-1)), 1) + approxEqual(acos(cos(0)), 0) + approxEqual(acos(cos(0.1)), 0.1) + approxEqual(acos(cos(0.5)), 0.5) + approxEqual(acos(cos(2)), 2) }) it('should be the inverse function of bignumber cos', function () { @@ -75,13 +75,13 @@ describe('acos', function () { }) it('should return the arccos of a complex number', function () { - approx.deepEqual(acos(complex('2+3i')), complex(1.00014354247380, -1.98338702991654)) - approx.deepEqual(acos(complex('2-3i')), complex(1.00014354247380, 1.98338702991654)) - approx.deepEqual(acos(complex('-2+3i')), complex(2.14144911111600, -1.98338702991654)) - approx.deepEqual(acos(complex('-2-3i')), complex(2.14144911111600, 1.98338702991654)) - approx.deepEqual(acos(complex('i')), complex(1.570796326794897, -0.881373587019543)) - approx.deepEqual(acos(complex('1')), complex(0, 0)) - approx.deepEqual(acos(complex('1+i')), complex(0.904556894302381, -1.061275061905036)) + approxDeepEqual(acos(complex('2+3i')), complex(1.00014354247380, -1.98338702991654)) + approxDeepEqual(acos(complex('2-3i')), complex(1.00014354247380, 1.98338702991654)) + approxDeepEqual(acos(complex('-2+3i')), complex(2.14144911111600, -1.98338702991654)) + approxDeepEqual(acos(complex('-2-3i')), complex(2.14144911111600, 1.98338702991654)) + approxDeepEqual(acos(complex('i')), complex(1.570796326794897, -0.881373587019543)) + approxDeepEqual(acos(complex('1')), complex(0, 0)) + approxDeepEqual(acos(complex('1+i')), complex(0.904556894302381, -1.061275061905036)) }) it('should throw an error if called with a unit', function () { @@ -98,8 +98,8 @@ describe('acos', function () { // note: the results of acos(2) and acos(3) differs in octave // the next tests are verified with mathematica const acos123 = [0, complex(0, 1.316957896924817), complex(0, 1.762747174039086)] - approx.deepEqual(math.map([1, 2, 3], acos), acos123) - approx.deepEqual(math.map(matrix([1, 2, 3]), acos), matrix(acos123)) + approxDeepEqual(math.map([1, 2, 3], acos), acos123) + approxDeepEqual(math.map(matrix([1, 2, 3]), acos), matrix(acos123)) }) it('should throw an error in case of invalid number of arguments', function () { diff --git a/test/unit-tests/function/trigonometry/acosh.test.js b/test/unit-tests/function/trigonometry/acosh.test.js index 6fc4fa5d42..fe1218e367 100644 --- a/test/unit-tests/function/trigonometry/acosh.test.js +++ b/test/unit-tests/function/trigonometry/acosh.test.js @@ -2,7 +2,7 @@ import assert from 'assert' import math from '../../../../src/defaultInstance.js' -import approx from '../../../../tools/approx.js' +import { approxEqual, approxDeepEqual } from '../../../../tools/approx.js' const pi = math.pi const acosh = math.acosh const cosh = math.cosh @@ -18,20 +18,20 @@ const Big = bigmath.bignumber describe('acosh', function () { it('should return the hyperbolic arccos of a boolean', function () { assert.strictEqual(acosh(true), 0) - approx.deepEqual(acosh(false), complex(0, pi / 2)) + approxDeepEqual(acosh(false), complex(0, pi / 2)) // assert.ok(isNaN(acosh(false))) }) it('should return the hyperbolic arccos of a number', function () { - approx.deepEqual(acosh(-2), complex(1.31695789692481670862504634730797, pi)) - approx.deepEqual(acosh(0), complex(0, pi / 2)) + approxDeepEqual(acosh(-2), complex(1.31695789692481670862504634730797, pi)) + approxDeepEqual(acosh(0), complex(0, pi / 2)) // assert.ok(isNaN(acosh(-2))) // assert.ok(isNaN(acosh(0))) - approx.equal(acosh(1), 0) - approx.equal(acosh(2), 1.31695789692481670862504634730797) - approx.equal(acosh(3), 1.7627471740390860504652186499595) - approx.equal(acosh(pi), 1.811526272460853107021852049305) + approxEqual(acosh(1), 0) + approxEqual(acosh(2), 1.31695789692481670862504634730797) + approxEqual(acosh(3), 1.7627471740390860504652186499595) + approxEqual(acosh(pi), 1.811526272460853107021852049305) }) it('should return NaN for values out of range and predictable:true', function () { @@ -51,11 +51,11 @@ describe('acosh', function () { }) it('should be the inverse function of hyperbolic cos', function () { - approx.equal(acosh(cosh(-1)), 1) - approx.equal(acosh(cosh(0)), 0) - approx.equal(acosh(cosh(0.1)), 0.1) - approx.equal(acosh(cosh(0.5)), 0.5) - approx.equal(acosh(cosh(2)), 2) + approxEqual(acosh(cosh(-1)), 1) + approxEqual(acosh(cosh(0)), 0) + approxEqual(acosh(cosh(0.1)), 0.1) + approxEqual(acosh(cosh(0.5)), 0.5) + approxEqual(acosh(cosh(2)), 2) }) it('should be the inverse function of bignumber cosh', function () { @@ -76,14 +76,14 @@ describe('acosh', function () { }) it('should return the arccosh of a complex number', function () { - approx.deepEqual(acosh(complex('2+3i')), complex(1.9833870299165, 1.000143542473797)) - approx.deepEqual(acosh(complex('2-3i')), complex(1.9833870299165, -1.000143542473797)) - approx.deepEqual(acosh(complex('-2+3i')), complex(1.9833870299165, 2.14144911111600)) - approx.deepEqual(acosh(complex('-2-3i')), complex(1.9833870299165, -2.14144911111600)) - approx.deepEqual(acosh(complex('1+i')), complex(1.061275061905036, 0.904556894302381)) - approx.deepEqual(acosh(complex('i')), complex(0.881373587019543, 1.570796326794897)) + approxDeepEqual(acosh(complex('2+3i')), complex(1.9833870299165, 1.000143542473797)) + approxDeepEqual(acosh(complex('2-3i')), complex(1.9833870299165, -1.000143542473797)) + approxDeepEqual(acosh(complex('-2+3i')), complex(1.9833870299165, 2.14144911111600)) + approxDeepEqual(acosh(complex('-2-3i')), complex(1.9833870299165, -2.14144911111600)) + approxDeepEqual(acosh(complex('1+i')), complex(1.061275061905036, 0.904556894302381)) + approxDeepEqual(acosh(complex('i')), complex(0.881373587019543, 1.570796326794897)) assert.deepStrictEqual(acosh(complex('1')), complex(-0, 0)) - approx.deepEqual(acosh(complex('0')), complex(0, pi / 2)) + approxDeepEqual(acosh(complex('0')), complex(0, pi / 2)) }) it('should throw an error if called with a unit', function () { @@ -99,8 +99,8 @@ describe('acosh', function () { assert.throws(() => acosh([1, 2, 3]), TypeError) assert.throws(() => acosh(matrix([1, 2, 3])), TypeError) const acosh123 = [0, 1.3169578969248167, 1.7627471740390860504] - approx.deepEqual(math.map([1, 2, 3], acosh), acosh123) - approx.deepEqual(math.map(matrix([1, 2, 3]), acosh), matrix(acosh123)) + approxDeepEqual(math.map([1, 2, 3], acosh), acosh123) + approxDeepEqual(math.map(matrix([1, 2, 3]), acosh), matrix(acosh123)) }) it('should throw an error in case of invalid number of arguments', function () { diff --git a/test/unit-tests/function/trigonometry/acot.test.js b/test/unit-tests/function/trigonometry/acot.test.js index 7656fd5c74..69a22fe1fb 100644 --- a/test/unit-tests/function/trigonometry/acot.test.js +++ b/test/unit-tests/function/trigonometry/acot.test.js @@ -1,6 +1,6 @@ import assert from 'assert' import math from '../../../../src/defaultInstance.js' -import approx from '../../../../tools/approx.js' +import { approxEqual, approxDeepEqual } from '../../../../tools/approx.js' const pi = math.pi const complex = math.complex const matrix = math.matrix @@ -14,16 +14,16 @@ const Big = bigmath.bignumber describe('acot', function () { it('should return the arccot of a boolean', function () { - approx.equal(acot(true), pi / 4) + approxEqual(acot(true), pi / 4) assert.strictEqual(acot(false), pi / 2) }) it('should return the arccot of a number', function () { - approx.equal(acot(-1) / pi, -0.25) - approx.equal(acot(-0.5), -1.107148717794) + approxEqual(acot(-1) / pi, -0.25) + approxEqual(acot(-0.5), -1.107148717794) assert.strictEqual(acot(0), pi / 2) - approx.equal(acot(0.5), 1.107148717794) - approx.equal(acot(1) / pi, 0.25) + approxEqual(acot(0.5), 1.107148717794) + approxEqual(acot(1) / pi, 0.25) assert.strictEqual(acot(-Infinity), -0) assert.strictEqual(acot(Infinity), 0) @@ -58,11 +58,11 @@ describe('acot', function () { }) it('should be the inverse function of cot', function () { - approx.equal(acot(cot(-1)), -1) - approx.equal(acot(cot(0)), 0) - approx.equal(acot(cot(0.1)), 0.1) - approx.equal(acot(cot(0.5)), 0.5) - approx.equal(acot(cot(2)), -1.14159265358979) + approxEqual(acot(cot(-1)), -1) + approxEqual(acot(cot(0)), 0) + approxEqual(acot(cot(0.1)), 0.1) + approxEqual(acot(cot(0.5)), 0.5) + approxEqual(acot(cot(2)), -1.14159265358979) }) it('should be the inverse function of bignumber cot', function () { @@ -79,13 +79,13 @@ describe('acot', function () { it('should return the arccot of a complex number', function () { const re = 0.160875277198321 const im = 0.229072682968539 - approx.deepEqual(acot(complex('2+3i')), complex(re, -im)) - approx.deepEqual(acot(complex('2-3i')), complex(re, im)) - approx.deepEqual(acot(complex('-2+3i')), complex(-re, -im)) - approx.deepEqual(acot(complex('-2-3i')), complex(-re, im)) + approxDeepEqual(acot(complex('2+3i')), complex(re, -im)) + approxDeepEqual(acot(complex('2-3i')), complex(re, im)) + approxDeepEqual(acot(complex('-2+3i')), complex(-re, -im)) + approxDeepEqual(acot(complex('-2-3i')), complex(-re, im)) assert.deepStrictEqual(acot(complex('i')), complex(0, -Infinity)) - approx.deepEqual(acot(complex('1')), complex(pi / 4, 0)) - approx.deepEqual(acot(complex('1+i')), complex(0.553574358897, -0.4023594781085)) + approxDeepEqual(acot(complex('1')), complex(pi / 4, 0)) + approxDeepEqual(acot(complex('1+i')), complex(0.553574358897, -0.4023594781085)) }) it('should throw an error if called with a unit', function () { @@ -102,8 +102,8 @@ describe('acot', function () { assert.throws(() => acot(matrix([1, 2, 3])), TypeError) // matrix, array, range const acot123 = [pi / 4, 0.4636476090008, 0.3217505543966] - approx.deepEqual(math.map([1, 2, 3], acot), acot123) - approx.deepEqual(math.map(matrix([1, 2, 3]), acot), matrix(acot123)) + approxDeepEqual(math.map([1, 2, 3], acot), acot123) + approxDeepEqual(math.map(matrix([1, 2, 3]), acot), matrix(acot123)) }) it('should throw an error in case of invalid number of arguments', function () { diff --git a/test/unit-tests/function/trigonometry/acoth.test.js b/test/unit-tests/function/trigonometry/acoth.test.js index 35e290b5af..b03714f078 100644 --- a/test/unit-tests/function/trigonometry/acoth.test.js +++ b/test/unit-tests/function/trigonometry/acoth.test.js @@ -2,7 +2,7 @@ import assert from 'assert' import math from '../../../../src/defaultInstance.js' -import approx from '../../../../tools/approx.js' +import { approxEqual, approxDeepEqual } from '../../../../tools/approx.js' const pi = math.pi const acoth = math.acoth const coth = math.coth @@ -18,20 +18,20 @@ const Big = bigmath.bignumber describe('acoth', function () { it('should return the hyperbolic arccot of a boolean', function () { assert.strictEqual(acoth(true), Infinity) - approx.deepEqual(acoth(false), complex(0, pi / 2)) + approxDeepEqual(acoth(false), complex(0, pi / 2)) // assert.ok(isNaN(acoth(false))) }) it('should return the hyperbolic arccot of a number', function () { - approx.deepEqual(acoth(0), complex(0, pi / 2)) - approx.deepEqual(acoth(0.5), complex(0.5493061443340548, -1.5707963267949)) + approxDeepEqual(acoth(0), complex(0, pi / 2)) + approxDeepEqual(acoth(0.5), complex(0.5493061443340548, -1.5707963267949)) // assert.ok(isNaN(acoth(0))) // assert.ok(isNaN(acoth(0.5))) - approx.equal(acoth(-2), -0.54930614433405484569762261846) + approxEqual(acoth(-2), -0.54930614433405484569762261846) assert.strictEqual(acoth(-1), -Infinity) assert.strictEqual(acoth(1), Infinity) - approx.equal(acoth(2), 0.54930614433405484569762261846) + approxEqual(acoth(2), 0.54930614433405484569762261846) assert.strictEqual(acoth(Infinity), 0) }) @@ -60,11 +60,11 @@ describe('acoth', function () { }) it('should be the inverse function of hyperbolic cot', function () { - approx.equal(acoth(coth(-2)), -2) - approx.equal(acoth(coth(-1)), -1) - approx.equal(acoth(coth(0)), 0) - approx.equal(acoth(coth(1)), 1) - approx.equal(acoth(coth(2)), 2) + approxEqual(acoth(coth(-2)), -2) + approxEqual(acoth(coth(-1)), -1) + approxEqual(acoth(coth(0)), 0) + approxEqual(acoth(coth(1)), 1) + approxEqual(acoth(coth(2)), 2) }) it('should be the inverse function of bignumber coth', function () { @@ -78,15 +78,15 @@ describe('acoth', function () { }) it('should return the arccoth of a complex number', function () { - approx.deepEqual(acoth(complex('2+3i')), complex(0.1469466662255, -0.2318238045004)) - approx.deepEqual(acoth(complex('2-3i')), complex(0.1469466662255, 0.2318238045004)) - approx.deepEqual(acoth(complex('-2+3i')), complex(-0.1469466662255, -0.2318238045004)) - approx.deepEqual(acoth(complex('-2-3i')), complex(-0.1469466662255, 0.2318238045004)) - approx.deepEqual(acoth(complex('1+i')), complex(0.4023594781085251, -0.55357435889705)) - approx.deepEqual(acoth(complex('i')), complex(0, -pi / 4)) + approxDeepEqual(acoth(complex('2+3i')), complex(0.1469466662255, -0.2318238045004)) + approxDeepEqual(acoth(complex('2-3i')), complex(0.1469466662255, 0.2318238045004)) + approxDeepEqual(acoth(complex('-2+3i')), complex(-0.1469466662255, -0.2318238045004)) + approxDeepEqual(acoth(complex('-2-3i')), complex(-0.1469466662255, 0.2318238045004)) + approxDeepEqual(acoth(complex('1+i')), complex(0.4023594781085251, -0.55357435889705)) + approxDeepEqual(acoth(complex('i')), complex(0, -pi / 4)) assert.deepStrictEqual(acoth(complex('1')), complex(Infinity, 0)) - approx.deepEqual(acoth(complex('0.5')), complex(0.5493061443340548, -1.5707963267949)) - approx.deepEqual(acoth(complex('0')), complex(0, pi / 2)) + approxDeepEqual(acoth(complex('0.5')), complex(0.5493061443340548, -1.5707963267949)) + approxDeepEqual(acoth(complex('0')), complex(0, pi / 2)) }) it('should throw an error if called with a unit', function () { @@ -102,8 +102,8 @@ describe('acoth', function () { assert.throws(() => acoth([1, 2, 3]), TypeError) assert.throws(() => acoth(matrix([1, 2, 3])), TypeError) const acoth123 = [Infinity, 0.54930614433405, 0.34657359027997] - approx.deepEqual(math.map([1, 2, 3], acoth), acoth123) - approx.deepEqual(math.map(matrix([1, 2, 3]), acoth), matrix(acoth123)) + approxDeepEqual(math.map([1, 2, 3], acoth), acoth123) + approxDeepEqual(math.map(matrix([1, 2, 3]), acoth), matrix(acoth123)) }) it('should throw an error in case of invalid number of arguments', function () { diff --git a/test/unit-tests/function/trigonometry/acsc.test.js b/test/unit-tests/function/trigonometry/acsc.test.js index 0ee7f105f6..851c66b84b 100644 --- a/test/unit-tests/function/trigonometry/acsc.test.js +++ b/test/unit-tests/function/trigonometry/acsc.test.js @@ -2,7 +2,7 @@ import assert from 'assert' import math from '../../../../src/defaultInstance.js' -import approx from '../../../../tools/approx.js' +import { approxEqual, approxDeepEqual } from '../../../../tools/approx.js' const pi = math.pi const complex = math.complex const matrix = math.matrix @@ -17,18 +17,18 @@ const Big = bigmath.bignumber describe('acsc', function () { it('should return the arccsc of a boolean', function () { - approx.equal(acsc(true), pi / 2) + approxEqual(acsc(true), pi / 2) assert.deepStrictEqual(acsc(false), complex(pi / 2, Infinity)) // assert.ok(isNaN(acsc(false))) }) it('should return the arccsc of a number', function () { - approx.equal(acsc(-2) / pi, -1 / 6) - approx.equal(acsc(-1) / pi, -0.5) + approxEqual(acsc(-2) / pi, -1 / 6) + approxEqual(acsc(-1) / pi, -0.5) assert.deepStrictEqual(acsc(0), complex(pi / 2, Infinity)) // assert.ok(isNaN(acsc(0))) - approx.equal(acsc(1) / pi, 0.5) - approx.equal(acsc(2) / pi, 1 / 6) + approxEqual(acsc(1) / pi, 0.5) + approxEqual(acsc(2) / pi, 1 / 6) }) it('should return the arccsc of a number when predictable:true', function () { @@ -68,11 +68,11 @@ describe('acsc', function () { }) it('should be the inverse function of csc', function () { - approx.equal(acsc(csc(-1)), -1) - approx.equal(acsc(csc(0)), 0) - approx.equal(acsc(csc(0.1)), 0.1) - approx.equal(acsc(csc(0.5)), 0.5) - approx.equal(acsc(csc(2)), 1.14159265358979) + approxEqual(acsc(csc(-1)), -1) + approxEqual(acsc(csc(0)), 0) + approxEqual(acsc(csc(0.1)), 0.1) + approxEqual(acsc(csc(0.5)), 0.5) + approxEqual(acsc(csc(2)), 1.14159265358979) }) it('should be the inverse function of bignumber csc', function () { @@ -99,18 +99,18 @@ describe('acsc', function () { it('should return the arccsc of a complex number', function () { const re = 0.150385604327861963 const im = 0.231334698573973315 - approx.deepEqual(acsc(complex('2+3i')), complex(re, -im)) - approx.deepEqual(acsc(complex('2-3i')), complex(re, im)) - approx.deepEqual(acsc(complex('-2+3i')), complex(-re, -im)) - approx.deepEqual(acsc(complex('-2-3i')), complex(-re, im)) - approx.deepEqual(acsc(complex('1+i')), complex(0.4522784471511907, -0.53063753095251783)) - approx.deepEqual(acsc(complex('i')), complex(0, -0.881373587019543)) - - approx.deepEqual(acsc(complex('-1')), complex(-pi / 2, 0)) - approx.deepEqual(acsc(complex('-0.5')), complex(-pi / 2, 1.3169578969248)) + approxDeepEqual(acsc(complex('2+3i')), complex(re, -im)) + approxDeepEqual(acsc(complex('2-3i')), complex(re, im)) + approxDeepEqual(acsc(complex('-2+3i')), complex(-re, -im)) + approxDeepEqual(acsc(complex('-2-3i')), complex(-re, im)) + approxDeepEqual(acsc(complex('1+i')), complex(0.4522784471511907, -0.53063753095251783)) + approxDeepEqual(acsc(complex('i')), complex(0, -0.881373587019543)) + + approxDeepEqual(acsc(complex('-1')), complex(-pi / 2, 0)) + approxDeepEqual(acsc(complex('-0.5')), complex(-pi / 2, 1.3169578969248)) assert.deepStrictEqual(acsc(complex('0')), complex(pi / 2, Infinity)) - approx.deepEqual(acsc(complex('0.5')), complex(pi / 2, -1.3169578969248)) - approx.deepEqual(acsc(complex('1')), complex(pi / 2, 0)) + approxDeepEqual(acsc(complex('0.5')), complex(pi / 2, -1.3169578969248)) + approxDeepEqual(acsc(complex('1')), complex(pi / 2, 0)) }) it('should throw an error if called with a unit', function () { @@ -126,8 +126,8 @@ describe('acsc', function () { assert.throws(() => acsc([1, 2, 3]), TypeError) assert.throws(() => acsc(matrix([1, 2, 3])), TypeError) const acsc123 = [pi / 2, pi / 6, 0.339836909454] - approx.deepEqual(math.map([1, 2, 3], acsc), acsc123) - approx.deepEqual(math.map(matrix([1, 2, 3]), acsc), matrix(acsc123)) + approxDeepEqual(math.map([1, 2, 3], acsc), acsc123) + approxDeepEqual(math.map(matrix([1, 2, 3]), acsc), matrix(acsc123)) }) it('should throw an error in case of invalid number of arguments', function () { diff --git a/test/unit-tests/function/trigonometry/acsch.test.js b/test/unit-tests/function/trigonometry/acsch.test.js index 507a4ce3fb..7d404682fa 100644 --- a/test/unit-tests/function/trigonometry/acsch.test.js +++ b/test/unit-tests/function/trigonometry/acsch.test.js @@ -2,7 +2,7 @@ import assert from 'assert' import math from '../../../../src/defaultInstance.js' -import approx from '../../../../tools/approx.js' +import { approxEqual, approxDeepEqual } from '../../../../tools/approx.js' const pi = math.pi const acsch = math.acsch const csch = math.csch @@ -15,17 +15,17 @@ const Big = bigmath.bignumber describe('acsch', function () { it('should return the hyperbolic arccsc of a boolean', function () { - approx.equal(acsch(true), 0.8813735870195430) + approxEqual(acsch(true), 0.8813735870195430) assert.strictEqual(acsch(false), Infinity) }) it('should return the hyperbolic arccsc of a number', function () { - approx.equal(acsch(-2), -0.48121182505960344749775891342437) - approx.equal(acsch(-1), -0.88137358701954302523260932497979) + approxEqual(acsch(-2), -0.48121182505960344749775891342437) + approxEqual(acsch(-1), -0.88137358701954302523260932497979) assert.strictEqual(acsch(0), Infinity) - approx.equal(acsch(1), 0.88137358701954302523260932497979) - approx.equal(acsch(2), 0.48121182505960344749775891342437) - approx.equal(acsch(pi), 0.3131658804508683758718693082657) + approxEqual(acsch(1), 0.88137358701954302523260932497979) + approxEqual(acsch(2), 0.48121182505960344749775891342437) + approxEqual(acsch(pi), 0.3131658804508683758718693082657) }) it('should return the hyperbolic arccsc of a bignumber', function () { @@ -42,11 +42,11 @@ describe('acsch', function () { }) it('should be the inverse function of hyperbolic csc', function () { - approx.equal(acsch(csch(-1)), -1) - approx.equal(acsch(csch(0)), 0) - approx.equal(acsch(csch(0.1)), 0.1) - approx.equal(acsch(csch(0.5)), 0.5) - approx.equal(acsch(csch(2)), 2) + approxEqual(acsch(csch(-1)), -1) + approxEqual(acsch(csch(0)), 0) + approxEqual(acsch(csch(0.1)), 0.1) + approxEqual(acsch(csch(0.5)), 0.5) + approxEqual(acsch(csch(2)), 2) }) it('should be the inverse function of bignumber csch', function () { @@ -60,13 +60,13 @@ describe('acsch', function () { }) it('should return the arccsch of a complex number', function () { - approx.deepEqual(acsch(complex('2+3i')), complex(0.157355498844985, -0.229962902377208)) - approx.deepEqual(acsch(complex('2-3i')), complex(0.157355498844985, 0.229962902377208)) - approx.deepEqual(acsch(complex('-2+3i')), complex(-0.157355498844985, -0.229962902377208)) - approx.deepEqual(acsch(complex('-2-3i')), complex(-0.157355498844985, 0.229962902377208)) - approx.deepEqual(acsch(complex('1+i')), complex(0.530637530952517826, -0.45227844715119068)) - approx.deepEqual(acsch(complex('i')), complex(0, -pi / 2)) - approx.deepEqual(acsch(complex('1')), complex(0.881373587019543025, 0)) + approxDeepEqual(acsch(complex('2+3i')), complex(0.157355498844985, -0.229962902377208)) + approxDeepEqual(acsch(complex('2-3i')), complex(0.157355498844985, 0.229962902377208)) + approxDeepEqual(acsch(complex('-2+3i')), complex(-0.157355498844985, -0.229962902377208)) + approxDeepEqual(acsch(complex('-2-3i')), complex(-0.157355498844985, 0.229962902377208)) + approxDeepEqual(acsch(complex('1+i')), complex(0.530637530952517826, -0.45227844715119068)) + approxDeepEqual(acsch(complex('i')), complex(0, -pi / 2)) + approxDeepEqual(acsch(complex('1')), complex(0.881373587019543025, 0)) assert.deepStrictEqual(acsch(complex('0')), complex(Infinity, 0)) }) @@ -83,8 +83,8 @@ describe('acsch', function () { assert.throws(() => acsch([1, 2, 3]), TypeError) assert.throws(() => acsch(matrix([1, 2, 3])), TypeError) const acsch123 = [0.881373587019543025, 0.481211825059603447, 0.32745015023725844] - approx.deepEqual(math.map([1, 2, 3], acsch), acsch123) - approx.deepEqual(math.map(matrix([1, 2, 3]), acsch), matrix(acsch123)) + approxDeepEqual(math.map([1, 2, 3], acsch), acsch123) + approxDeepEqual(math.map(matrix([1, 2, 3]), acsch), matrix(acsch123)) }) it('should throw an error in case of invalid number of arguments', function () { diff --git a/test/unit-tests/function/trigonometry/asec.test.js b/test/unit-tests/function/trigonometry/asec.test.js index 660d4242bc..d92463d75b 100644 --- a/test/unit-tests/function/trigonometry/asec.test.js +++ b/test/unit-tests/function/trigonometry/asec.test.js @@ -2,7 +2,7 @@ import assert from 'assert' import math from '../../../../src/defaultInstance.js' -import approx from '../../../../tools/approx.js' +import { approxEqual, approxDeepEqual } from '../../../../tools/approx.js' const pi = math.pi const asec = math.asec const sec = math.sec @@ -22,13 +22,13 @@ describe('asec', function () { }) it('should return the arcsec of a number', function () { - approx.equal(asec(-2) / pi, 2 / 3) - approx.equal(asec(-1) / pi, 1) - approx.equal(asec(1) / pi, 0) - approx.equal(asec(2) / pi, 1 / 3) + approxEqual(asec(-2) / pi, 2 / 3) + approxEqual(asec(-1) / pi, 1) + approxEqual(asec(1) / pi, 0) + approxEqual(asec(2) / pi, 1 / 3) - approx.deepEqual(asec(-0.5), complex(pi, -1.3169578969248)) - approx.deepEqual(asec(0.5), complex(0, 1.3169578969248)) + approxDeepEqual(asec(-0.5), complex(pi, -1.3169578969248)) + approxDeepEqual(asec(0.5), complex(0, 1.3169578969248)) }) it('should return the arcsec of a number when predictable:true', function () { @@ -66,11 +66,11 @@ describe('asec', function () { }) it('should be the inverse function of sec', function () { - approx.equal(asec(sec(-1)), 1) - approx.equal(asec(sec(0)), 0) - approx.equal(asec(sec(0.1)), 0.1) - approx.equal(asec(sec(0.5)), 0.5) - approx.equal(asec(sec(2)), 2) + approxEqual(asec(sec(-1)), 1) + approxEqual(asec(sec(0)), 0) + approxEqual(asec(sec(0.1)), 0.1) + approxEqual(asec(sec(0.5)), 0.5) + approxEqual(asec(sec(2)), 2) }) it('should be the inverse function of bignumber sec', function () { @@ -82,16 +82,16 @@ describe('asec', function () { }) it('should return the arcsec of a complex number', function () { - approx.deepEqual(asec(complex('2+3i')), complex(1.42041072246703, 0.23133469857397)) - approx.deepEqual(asec(complex('2-3i')), complex(1.42041072246703, -0.23133469857397)) - approx.deepEqual(asec(complex('-2+3i')), complex(1.7211819311228, 0.2313346985739733)) - approx.deepEqual(asec(complex('-2-3i')), complex(1.7211819311228, -0.2313346985739733)) - approx.deepEqual(asec(complex('i')), complex(1.570796326794897, 0.881373587019543)) - approx.deepEqual(asec(complex('1+i')), complex(1.1185178796437059, 0.530637530952517826)) - approx.deepEqual(asec(complex('1')), complex(0, 0)) - approx.deepEqual(asec(complex('0.5')), complex(0, 1.3169578969248)) - approx.deepEqual(asec(complex('0')), complex(0, Infinity)) - approx.deepEqual(asec(complex('-0.5')), complex(pi, -1.3169578969248)) + approxDeepEqual(asec(complex('2+3i')), complex(1.42041072246703, 0.23133469857397)) + approxDeepEqual(asec(complex('2-3i')), complex(1.42041072246703, -0.23133469857397)) + approxDeepEqual(asec(complex('-2+3i')), complex(1.7211819311228, 0.2313346985739733)) + approxDeepEqual(asec(complex('-2-3i')), complex(1.7211819311228, -0.2313346985739733)) + approxDeepEqual(asec(complex('i')), complex(1.570796326794897, 0.881373587019543)) + approxDeepEqual(asec(complex('1+i')), complex(1.1185178796437059, 0.530637530952517826)) + approxDeepEqual(asec(complex('1')), complex(0, 0)) + approxDeepEqual(asec(complex('0.5')), complex(0, 1.3169578969248)) + approxDeepEqual(asec(complex('0')), complex(0, Infinity)) + approxDeepEqual(asec(complex('-0.5')), complex(pi, -1.3169578969248)) }) it('should throw an error if called with a unit', function () { @@ -107,8 +107,8 @@ describe('asec', function () { assert.throws(() => asec([1, 2, 3]), TypeError) assert.throws(() => asec(matrix([1, 2, 3])), TypeError) const asec123 = [0, pi / 3, 1.23095941734077468] - approx.deepEqual(math.map([1, 2, 3], asec), asec123) - approx.deepEqual(math.map(matrix([1, 2, 3]), asec), matrix(asec123)) + approxDeepEqual(math.map([1, 2, 3], asec), asec123) + approxDeepEqual(math.map(matrix([1, 2, 3]), asec), matrix(asec123)) }) it('should throw an error in case of invalid number of arguments', function () { diff --git a/test/unit-tests/function/trigonometry/asech.test.js b/test/unit-tests/function/trigonometry/asech.test.js index 8192160f44..054787fea2 100644 --- a/test/unit-tests/function/trigonometry/asech.test.js +++ b/test/unit-tests/function/trigonometry/asech.test.js @@ -2,7 +2,7 @@ import assert from 'assert' import math from '../../../../src/defaultInstance.js' -import approx from '../../../../tools/approx.js' +import { approxEqual, approxDeepEqual } from '../../../../tools/approx.js' const pi = math.pi const asech = math.asech const sech = math.sech @@ -22,15 +22,15 @@ describe('asech', function () { }) it('should return the hyperbolic arcsec of a number', function () { - approx.deepEqual(asech(-0.5), complex(1.3169578969, pi)) - approx.deepEqual(asech(2), complex(0, pi / 3)) + approxDeepEqual(asech(-0.5), complex(1.3169578969, pi)) + approxDeepEqual(asech(2), complex(0, pi / 3)) // assert.ok(isNaN(asech(-0.5))) // assert.ok(isNaN(asech(2))) assert.strictEqual(asech(0), Infinity) - approx.equal(asech(0.25), 2.0634370688955605467272811726201) - approx.equal(asech(0.5), 1.31695789692481670862504634730797) - approx.equal(asech(0.75), 0.7953654612239056305278909331478) + approxEqual(asech(0.25), 2.0634370688955605467272811726201) + approxEqual(asech(0.5), 1.31695789692481670862504634730797) + approxEqual(asech(0.75), 0.7953654612239056305278909331478) assert.strictEqual(asech(1), 0) }) @@ -58,11 +58,11 @@ describe('asech', function () { }) it('should be the inverse function of hyperbolic sec', function () { - approx.equal(asech(sech(-1)), 1) - approx.equal(asech(sech(0)), 0) - approx.equal(asech(sech(0.1)), 0.1) - approx.equal(asech(sech(0.5)), 0.5) - approx.equal(asech(sech(2)), 2) + approxEqual(asech(sech(-1)), 1) + approxEqual(asech(sech(0)), 0) + approxEqual(asech(sech(0.1)), 0.1) + approxEqual(asech(sech(0.5)), 0.5) + approxEqual(asech(sech(2)), 2) }) it('should be the inverse function of bignumber sech', function () { @@ -76,18 +76,18 @@ describe('asech', function () { }) it('should return the arcsech of a complex number', function () { - approx.deepEqual(asech(complex('2+3i')), complex(0.23133469857397, -1.420410722467035)) - approx.deepEqual(asech(complex('2-3i')), complex(0.23133469857397, 1.420410722467035)) - approx.deepEqual(asech(complex('-2+3i')), complex(0.23133469857397, -1.72118193112275858)) - approx.deepEqual(asech(complex('-2-3i')), complex(0.23133469857397, 1.72118193112275858)) - approx.deepEqual(asech(complex('1+i')), complex(0.5306375309525178, -1.11851787964370594)) - approx.deepEqual(asech(complex('i')), complex(0.881373587019543, -1.570796326794897)) - approx.deepEqual(asech(complex('2')), complex(0, pi / 3)) + approxDeepEqual(asech(complex('2+3i')), complex(0.23133469857397, -1.420410722467035)) + approxDeepEqual(asech(complex('2-3i')), complex(0.23133469857397, 1.420410722467035)) + approxDeepEqual(asech(complex('-2+3i')), complex(0.23133469857397, -1.72118193112275858)) + approxDeepEqual(asech(complex('-2-3i')), complex(0.23133469857397, 1.72118193112275858)) + approxDeepEqual(asech(complex('1+i')), complex(0.5306375309525178, -1.11851787964370594)) + approxDeepEqual(asech(complex('i')), complex(0.881373587019543, -1.570796326794897)) + approxDeepEqual(asech(complex('2')), complex(0, pi / 3)) assert.deepStrictEqual(asech(complex('1')), complex(-0, 0)) - approx.deepEqual(asech(complex('0.5')), complex(1.3169578969248, 0)) + approxDeepEqual(asech(complex('0.5')), complex(1.3169578969248, 0)) assert.deepStrictEqual(asech(complex('0')), complex(Infinity, Infinity)) - approx.deepEqual(asech(complex('-0.5')), complex(1.3169578969248, pi)) - approx.deepEqual(asech(complex('-1')), complex(0, pi)) + approxDeepEqual(asech(complex('-0.5')), complex(1.3169578969248, pi)) + approxDeepEqual(asech(complex('-1')), complex(0, pi)) }) it('should throw an error if called with a unit', function () { diff --git a/test/unit-tests/function/trigonometry/asin.test.js b/test/unit-tests/function/trigonometry/asin.test.js index 84f0bdae47..fb0fc9582c 100644 --- a/test/unit-tests/function/trigonometry/asin.test.js +++ b/test/unit-tests/function/trigonometry/asin.test.js @@ -1,6 +1,6 @@ import assert from 'assert' import math from '../../../../src/defaultInstance.js' -import approx from '../../../../tools/approx.js' +import { approxEqual, approxDeepEqual } from '../../../../tools/approx.js' const pi = math.pi const complex = math.complex const matrix = math.matrix @@ -15,19 +15,19 @@ const Big = bigmath.bignumber describe('asin', function () { it('should return the arcsin of a boolean', function () { - approx.equal(asin(true), 0.5 * pi) + approxEqual(asin(true), 0.5 * pi) assert.strictEqual(asin(false), 0) }) it('should return the arcsin of a number', function () { - approx.equal(asin(-1) / pi, -0.5) - approx.equal(asin(-0.5) / pi, -1 / 6) - approx.equal(asin(0) / pi, 0) - approx.equal(asin(0.5) / pi, 1 / 6) - approx.equal(asin(1) / pi, 0.5) - - approx.deepEqual(asin(-2), complex('-1.57079632679490 + 1.31695789692482i')) - approx.deepEqual(asin(2), complex('1.57079632679490 - 1.31695789692482i')) + approxEqual(asin(-1) / pi, -0.5) + approxEqual(asin(-0.5) / pi, -1 / 6) + approxEqual(asin(0) / pi, 0) + approxEqual(asin(0.5) / pi, 1 / 6) + approxEqual(asin(1) / pi, 0.5) + + approxDeepEqual(asin(-2), complex('-1.57079632679490 + 1.31695789692482i')) + approxDeepEqual(asin(2), complex('1.57079632679490 - 1.31695789692482i')) }) it('should return the arccos of a number when predictable:true', function () { @@ -63,11 +63,11 @@ describe('asin', function () { }) it('should be the inverse function of sin', function () { - approx.equal(asin(sin(-1)), -1) - approx.equal(asin(sin(0)), 0) - approx.equal(asin(sin(0.1)), 0.1) - approx.equal(asin(sin(0.5)), 0.5) - approx.equal(asin(sin(2)), 1.14159265358979) + approxEqual(asin(sin(-1)), -1) + approxEqual(asin(sin(0)), 0) + approxEqual(asin(sin(0.1)), 0.1) + approxEqual(asin(sin(0.5)), 0.5) + approxEqual(asin(sin(2)), 1.14159265358979) }) it('should be the inverse function of bignumber sin', function () { @@ -98,13 +98,13 @@ describe('asin', function () { it('should return the arcsin of a complex number', function () { const re = 0.570652784321099 const im = 1.983387029916536 - approx.deepEqual(asin(complex('2+3i')), complex(re, im)) - approx.deepEqual(asin(complex('2-3i')), complex(re, -im)) - approx.deepEqual(asin(complex('-2+3i')), complex(-re, im)) - approx.deepEqual(asin(complex('-2-3i')), complex(-re, -im)) - approx.deepEqual(asin(complex('i')), complex(0, 0.881373587019543)) - approx.deepEqual(asin(complex('1')), complex(1.57079632679490, 0)) - approx.deepEqual(asin(complex('1+i')), complex(0.666239432492515, 1.061275061905036)) + approxDeepEqual(asin(complex('2+3i')), complex(re, im)) + approxDeepEqual(asin(complex('2-3i')), complex(re, -im)) + approxDeepEqual(asin(complex('-2+3i')), complex(-re, im)) + approxDeepEqual(asin(complex('-2-3i')), complex(-re, -im)) + approxDeepEqual(asin(complex('i')), complex(0, 0.881373587019543)) + approxDeepEqual(asin(complex('1')), complex(1.57079632679490, 0)) + approxDeepEqual(asin(complex('1+i')), complex(0.666239432492515, 1.061275061905036)) }) it('should throw an error if called with a unit', function () { @@ -125,8 +125,8 @@ describe('asin', function () { 1.57079632679490, complex(1.57079632679490, -1.31695789692482), complex(1.57079632679490, -1.76274717403909)] - approx.deepEqual(math.map([1, 2, 3], asin), asin123) - approx.deepEqual(math.map(matrix([1, 2, 3]), asin), matrix(asin123)) + approxDeepEqual(math.map([1, 2, 3], asin), asin123) + approxDeepEqual(math.map(matrix([1, 2, 3]), asin), matrix(asin123)) }) it('should throw an error in case of invalid number of arguments', function () { diff --git a/test/unit-tests/function/trigonometry/asinh.test.js b/test/unit-tests/function/trigonometry/asinh.test.js index bf0b13ecec..c0d1134636 100644 --- a/test/unit-tests/function/trigonometry/asinh.test.js +++ b/test/unit-tests/function/trigonometry/asinh.test.js @@ -2,7 +2,7 @@ import assert from 'assert' import math from '../../../../src/defaultInstance.js' -import approx from '../../../../tools/approx.js' +import { approxEqual, approxDeepEqual } from '../../../../tools/approx.js' const pi = math.pi const asinh = math.asinh const sinh = math.sinh @@ -16,17 +16,17 @@ const Big = bigmath.bignumber describe('asinh', function () { it('should return the hyperbolic arcsin of a boolean', function () { - approx.equal(asinh(true), 0.8813735870195430) + approxEqual(asinh(true), 0.8813735870195430) assert.strictEqual(asinh(false), 0) }) it('should return the hyperbolic arcsin of a number', function () { - approx.equal(asinh(-2), -1.44363547517881034249327674027311) - approx.equal(asinh(-1), -0.88137358701954302523260932497979) - approx.equal(asinh(0), 0) - approx.equal(asinh(1), 0.88137358701954302523260932497979) - approx.equal(asinh(2), 1.44363547517881034249327674027311) - approx.equal(asinh(pi), 1.8622957433108482198883613251826) + approxEqual(asinh(-2), -1.44363547517881034249327674027311) + approxEqual(asinh(-1), -0.88137358701954302523260932497979) + approxEqual(asinh(0), 0) + approxEqual(asinh(1), 0.88137358701954302523260932497979) + approxEqual(asinh(2), 1.44363547517881034249327674027311) + approxEqual(asinh(pi), 1.8622957433108482198883613251826) }) it('should return the hyperbolic arcsin of a bignumber', function () { @@ -43,11 +43,11 @@ describe('asinh', function () { }) it('should be the inverse function of hyperbolic sin', function () { - approx.equal(asinh(sinh(-1)), -1) - approx.equal(asinh(sinh(0)), 0) - approx.equal(asinh(sinh(0.1)), 0.1) - approx.equal(asinh(sinh(0.5)), 0.5) - approx.equal(asinh(sinh(2)), 2) + approxEqual(asinh(sinh(-1)), -1) + approxEqual(asinh(sinh(0)), 0) + approxEqual(asinh(sinh(0.1)), 0.1) + approxEqual(asinh(sinh(0.5)), 0.5) + approxEqual(asinh(sinh(2)), 2) }) it('should be the inverse function of bignumber sinh', function () { @@ -61,13 +61,13 @@ describe('asinh', function () { }) it('should return the arcsinh of a complex number', function () { - approx.deepEqual(asinh(complex('2+3i')), complex(1.9686379257931, 0.9646585044076028)) - approx.deepEqual(asinh(complex('2-3i')), complex(1.9686379257931, -0.9646585044076028)) - approx.deepEqual(asinh(complex('-2+3i')), complex(-1.9686379257931, 0.9646585044076028)) - approx.deepEqual(asinh(complex('-2-3i')), complex(-1.9686379257931, -0.9646585044076028)) - approx.deepEqual(asinh(complex('1+i')), complex(1.0612750619050357, 0.6662394324925153)) - approx.deepEqual(asinh(complex('i')), complex(0, pi / 2)) - approx.deepEqual(asinh(complex('1')), complex(0.881373587019543025, 0)) + approxDeepEqual(asinh(complex('2+3i')), complex(1.9686379257931, 0.9646585044076028)) + approxDeepEqual(asinh(complex('2-3i')), complex(1.9686379257931, -0.9646585044076028)) + approxDeepEqual(asinh(complex('-2+3i')), complex(-1.9686379257931, 0.9646585044076028)) + approxDeepEqual(asinh(complex('-2-3i')), complex(-1.9686379257931, -0.9646585044076028)) + approxDeepEqual(asinh(complex('1+i')), complex(1.0612750619050357, 0.6662394324925153)) + approxDeepEqual(asinh(complex('i')), complex(0, pi / 2)) + approxDeepEqual(asinh(complex('1')), complex(0.881373587019543025, 0)) assert.deepStrictEqual(asinh(complex('0')), complex(0, 0)) }) @@ -84,8 +84,8 @@ describe('asinh', function () { assert.throws(() => asinh([1, 2, 3]), TypeError) assert.throws(() => asinh(matrix([1, 2, 3])), TypeError) const asinh123 = [0.881373587019543025, 1.4436354751788103, 1.8184464592320668] - approx.deepEqual(math.map([1, 2, 3], asinh), asinh123) - approx.deepEqual(math.map(matrix([1, 2, 3]), asinh), matrix(asinh123)) + approxDeepEqual(math.map([1, 2, 3], asinh), asinh123) + approxDeepEqual(math.map(matrix([1, 2, 3]), asinh), matrix(asinh123)) }) it('should throw an error in case of invalid number of arguments', function () { diff --git a/test/unit-tests/function/trigonometry/atan.test.js b/test/unit-tests/function/trigonometry/atan.test.js index 3e1d94b199..c9917a7cec 100644 --- a/test/unit-tests/function/trigonometry/atan.test.js +++ b/test/unit-tests/function/trigonometry/atan.test.js @@ -1,6 +1,6 @@ import assert from 'assert' import math from '../../../../src/defaultInstance.js' -import approx from '../../../../tools/approx.js' +import { approxEqual, approxDeepEqual } from '../../../../tools/approx.js' const pi = math.pi const complex = math.complex const matrix = math.matrix @@ -13,16 +13,16 @@ const Big = bigmath.bignumber describe('atan', function () { it('should return the arctan of a boolean', function () { - approx.equal(atan(true), 0.25 * pi) - approx.equal(atan(false), 0) + approxEqual(atan(true), 0.25 * pi) + approxEqual(atan(false), 0) }) it('should return the arctan of a number', function () { - approx.equal(atan(-1) / pi, -0.25) - approx.equal(atan(-0.5) / pi, -0.147583617650433) - approx.equal(atan(0) / pi, 0) - approx.equal(atan(0.5) / pi, 0.147583617650433) - approx.equal(atan(1) / pi, 0.25) + approxEqual(atan(-1) / pi, -0.25) + approxEqual(atan(-0.5) / pi, -0.147583617650433) + approxEqual(atan(0) / pi, 0) + approxEqual(atan(0.5) / pi, 0.147583617650433) + approxEqual(atan(1) / pi, 0.25) }) it('should return the arctan of a bignumber', function () { @@ -53,11 +53,11 @@ describe('atan', function () { }) it('should be the inverse function of tan', function () { - approx.equal(atan(tan(-1)), -1) - approx.equal(atan(tan(0)), 0) - approx.equal(atan(tan(0.1)), 0.1) - approx.equal(atan(tan(0.5)), 0.5) - approx.equal(atan(tan(2)), -1.14159265358979) + approxEqual(atan(tan(-1)), -1) + approxEqual(atan(tan(0)), 0) + approxEqual(atan(tan(0.1)), 0.1) + approxEqual(atan(tan(0.5)), 0.5) + approxEqual(atan(tan(2)), -1.14159265358979) }) it('should be the inverse function of bignumber tan', function () { @@ -73,14 +73,14 @@ describe('atan', function () { it('should return the arctan of a complex number', function () { const re = 1.409921049596575 const im = 0.229072682968539 - approx.deepEqual(atan(complex('2+3i')), complex(re, im)) - approx.deepEqual(atan(complex('2-3i')), complex(re, -im)) - approx.deepEqual(atan(complex('-2+3i')), complex(-re, im)) - approx.deepEqual(atan(complex('-2-3i')), complex(-re, -im)) - approx.deepEqual(atan(complex('i')), complex(0, Infinity)) - approx.deepEqual(atan(complex('-i')), complex(0, -Infinity)) - approx.deepEqual(atan(complex('1')), complex(0.785398163397448, 0)) - approx.deepEqual(atan(complex('1+i')), complex(1.017221967897851, 0.402359478108525)) + approxDeepEqual(atan(complex('2+3i')), complex(re, im)) + approxDeepEqual(atan(complex('2-3i')), complex(re, -im)) + approxDeepEqual(atan(complex('-2+3i')), complex(-re, im)) + approxDeepEqual(atan(complex('-2-3i')), complex(-re, -im)) + approxDeepEqual(atan(complex('i')), complex(0, Infinity)) + approxDeepEqual(atan(complex('-i')), complex(0, -Infinity)) + approxDeepEqual(atan(complex('1')), complex(0.785398163397448, 0)) + approxDeepEqual(atan(complex('1+i')), complex(1.017221967897851, 0.402359478108525)) }) it('should throw an error if called with a unit', function () { @@ -97,8 +97,8 @@ describe('atan', function () { assert.throws(() => atan(matrix([1, 2, 3])), TypeError) // matrix, array, range const atan123 = [0.785398163397448, 1.107148717794090, 1.249045772398254] - approx.deepEqual(math.map([1, 2, 3], atan), atan123) - approx.deepEqual(math.map(matrix([1, 2, 3]), atan), matrix(atan123)) + approxDeepEqual(math.map([1, 2, 3], atan), atan123) + approxDeepEqual(math.map(matrix([1, 2, 3]), atan), matrix(atan123)) }) it('should throw an error in case of invalid number of arguments', function () { diff --git a/test/unit-tests/function/trigonometry/atan2.test.js b/test/unit-tests/function/trigonometry/atan2.test.js index a6608d8dbb..e292d69311 100644 --- a/test/unit-tests/function/trigonometry/atan2.test.js +++ b/test/unit-tests/function/trigonometry/atan2.test.js @@ -2,7 +2,7 @@ import assert from 'assert' import math from '../../../../src/defaultInstance.js' -import approx from '../../../../tools/approx.js' +import { approxDeepEqual } from '../../../../tools/approx.js' const pi = math.pi const complex = math.complex const matrix = math.matrix @@ -141,8 +141,8 @@ describe('atan2', function () { it('should calculate the atan2 element-wise for arrays and matrices', function () { // array, matrix, range - approx.deepEqual(divide(atan2([1, 0, -1], [1, 0, -1]), pi), [0.25, 0, -0.75]) - approx.deepEqual(divide(atan2( + approxDeepEqual(divide(atan2([1, 0, -1], [1, 0, -1]), pi), [0.25, 0, -0.75]) + approxDeepEqual(divide(atan2( matrix([1, 0, -1]), matrix([1, 0, -1])), pi), matrix([0.25, 0, -0.75])) diff --git a/test/unit-tests/function/trigonometry/atanh.test.js b/test/unit-tests/function/trigonometry/atanh.test.js index 2cd308b694..e61c8158e8 100644 --- a/test/unit-tests/function/trigonometry/atanh.test.js +++ b/test/unit-tests/function/trigonometry/atanh.test.js @@ -2,7 +2,7 @@ import assert from 'assert' import math from '../../../../src/defaultInstance.js' -import approx from '../../../../tools/approx.js' +import { approxEqual, approxDeepEqual } from '../../../../tools/approx.js' const pi = math.pi const atanh = math.atanh const tanh = math.tanh @@ -22,16 +22,16 @@ describe('atanh', function () { }) it('should return the hyperbolic arctan of a number', function () { - approx.deepEqual(atanh(-2), complex(-0.54930614433405485, pi / 2)) - approx.deepEqual(atanh(2), complex(0.54930614433405485, -pi / 2)) + approxDeepEqual(atanh(-2), complex(-0.54930614433405485, pi / 2)) + approxDeepEqual(atanh(2), complex(0.54930614433405485, -pi / 2)) // assert.ok(isNaN(atanh(-2))) // assert.ok(isNaN(atanh(2))) - approx.equal(atanh(-1), -Infinity) - approx.equal(atanh(-0.5), -0.54930614433405484569762261846) - approx.equal(atanh(0), 0) - approx.equal(atanh(0.5), 0.54930614433405484569762261846) - approx.equal(atanh(1), Infinity) + approxEqual(atanh(-1), -Infinity) + approxEqual(atanh(-0.5), -0.54930614433405484569762261846) + approxEqual(atanh(0), 0) + approxEqual(atanh(0.5), 0.54930614433405484569762261846) + approxEqual(atanh(1), Infinity) }) it('should return the hyperbolic arctan of a number when predictable:true', function () { @@ -54,10 +54,10 @@ describe('atanh', function () { }) it('should be the inverse function of hyperbolic tan', function () { - approx.equal(atanh(tanh(-1)), -1) - approx.equal(atanh(tanh(0)), 0) - approx.equal(atanh(tanh(0.1)), 0.1) - approx.equal(atanh(tanh(0.5)), 0.5) + approxEqual(atanh(tanh(-1)), -1) + approxEqual(atanh(tanh(0)), 0) + approxEqual(atanh(tanh(0.1)), 0.1) + approxEqual(atanh(tanh(0.5)), 0.5) }) it('should be the inverse function of bignumber tanh', function () { @@ -75,17 +75,17 @@ describe('atanh', function () { }) it('should return the arctanh of a complex number', function () { - approx.deepEqual(atanh(complex('2+3i')), complex(0.1469466662255, 1.33897252229449)) - approx.deepEqual(atanh(complex('2-3i')), complex(0.1469466662255, -1.33897252229449)) - approx.deepEqual(atanh(complex('-2+3i')), complex(-0.1469466662255, 1.33897252229449)) - approx.deepEqual(atanh(complex('-2-3i')), complex(-0.1469466662255, -1.33897252229449)) - approx.deepEqual(atanh(complex('1+i')), complex(0.402359478108525, 1.01722196789785137)) - approx.deepEqual(atanh(complex('i')), complex(0, pi / 4)) - - approx.deepEqual(atanh(complex('2')), complex(0.54930614433405485, -pi / 2)) + approxDeepEqual(atanh(complex('2+3i')), complex(0.1469466662255, 1.33897252229449)) + approxDeepEqual(atanh(complex('2-3i')), complex(0.1469466662255, -1.33897252229449)) + approxDeepEqual(atanh(complex('-2+3i')), complex(-0.1469466662255, 1.33897252229449)) + approxDeepEqual(atanh(complex('-2-3i')), complex(-0.1469466662255, -1.33897252229449)) + approxDeepEqual(atanh(complex('1+i')), complex(0.402359478108525, 1.01722196789785137)) + approxDeepEqual(atanh(complex('i')), complex(0, pi / 4)) + + approxDeepEqual(atanh(complex('2')), complex(0.54930614433405485, -pi / 2)) assert.deepStrictEqual(atanh(complex('1')), complex(Infinity, 0)) assert.deepStrictEqual(atanh(complex('0')), complex(0, 0)) - approx.deepEqual(atanh(complex('-2')), complex(-0.54930614433405485, pi / 2)) + approxDeepEqual(atanh(complex('-2')), complex(-0.54930614433405485, pi / 2)) }) it('should throw an error if called with a unit', function () { diff --git a/test/unit-tests/function/trigonometry/cos.test.js b/test/unit-tests/function/trigonometry/cos.test.js index 896e79911b..28b24c62b4 100644 --- a/test/unit-tests/function/trigonometry/cos.test.js +++ b/test/unit-tests/function/trigonometry/cos.test.js @@ -1,6 +1,6 @@ import assert from 'assert' import math from '../../../../src/defaultInstance.js' -import approx from '../../../../tools/approx.js' +import { approxEqual, approxDeepEqual } from '../../../../tools/approx.js' const pi = math.pi const complex = math.complex const matrix = math.matrix @@ -11,22 +11,22 @@ const biggermath = math.create({ number: 'BigNumber', precision: 238 }) describe('cos', function () { it('should return the cosine of a boolean', function () { - approx.equal(cos(true), 0.54030230586814) - approx.equal(cos(false), 1) + approxEqual(cos(true), 0.54030230586814) + approxEqual(cos(false), 1) }) it('should return the cosine of a number', function () { - approx.equal(cos(0), 1) - approx.equal(cos(pi * 1 / 4), 0.707106781186548) - approx.equal(cos(pi * 1 / 8), 0.923879532511287) - approx.equal(cos(pi * 2 / 4), 0) - approx.equal(cos(pi * 3 / 4), -0.707106781186548) - approx.equal(cos(pi * 4 / 4), -1) - approx.equal(cos(pi * 5 / 4), -0.707106781186548) - approx.equal(cos(pi * 6 / 4), 0) - approx.equal(cos(pi * 7 / 4), 0.707106781186548) - approx.equal(cos(pi * 8 / 4), 1) - approx.equal(cos(pi / 4), Math.SQRT1_2) + approxEqual(cos(0), 1) + approxEqual(cos(pi * 1 / 4), 0.707106781186548) + approxEqual(cos(pi * 1 / 8), 0.923879532511287) + approxEqual(cos(pi * 2 / 4), 0) + approxEqual(cos(pi * 3 / 4), -0.707106781186548) + approxEqual(cos(pi * 4 / 4), -1) + approxEqual(cos(pi * 5 / 4), -0.707106781186548) + approxEqual(cos(pi * 6 / 4), 0) + approxEqual(cos(pi * 7 / 4), 0.707106781186548) + approxEqual(cos(pi * 8 / 4), 1) + approxEqual(cos(pi / 4), Math.SQRT1_2) }) it('should return the cosine of a bignumber', function () { @@ -56,7 +56,7 @@ describe('cos', function () { // we've had a bug in reducing the period, affecting integer values around multiples of tau (like 6, 7) for (let x = -20; x < 20; x += 1) { - approx.equal(bigmath.cos(bigmath.bignumber(x)).toNumber(), Math.cos(x)) + approxEqual(bigmath.cos(bigmath.bignumber(x)).toNumber(), Math.cos(x)) } assert.deepStrictEqual(bigmath.cos(bigPi.div(4)).toString(), '0.7071067811865475') @@ -71,24 +71,24 @@ describe('cos', function () { it('should return the cosine of a complex number', function () { const re = 4.18962569096881 const im = 9.10922789375534 - approx.deepEqual(cos(complex('2+3i')), complex(-re, -im)) - approx.deepEqual(cos(complex('2-3i')), complex(-re, im)) - approx.deepEqual(cos(complex('-2+3i')), complex(-re, im)) - approx.deepEqual(cos(complex('-2-3i')), complex(-re, -im)) - approx.deepEqual(cos(complex('i')), complex(1.54308063481524, 0)) - approx.deepEqual(cos(complex('1')), complex(0.540302305868140, 0)) - approx.deepEqual(cos(complex('1+i')), complex(0.833730025131149, -0.988897705762865)) - approx.deepEqual(cos(complex('1e-10+1e-10i')), complex('1-1e-20i')) + approxDeepEqual(cos(complex('2+3i')), complex(-re, -im)) + approxDeepEqual(cos(complex('2-3i')), complex(-re, im)) + approxDeepEqual(cos(complex('-2+3i')), complex(-re, im)) + approxDeepEqual(cos(complex('-2-3i')), complex(-re, -im)) + approxDeepEqual(cos(complex('i')), complex(1.54308063481524, 0)) + approxDeepEqual(cos(complex('1')), complex(0.540302305868140, 0)) + approxDeepEqual(cos(complex('1+i')), complex(0.833730025131149, -0.988897705762865)) + approxDeepEqual(cos(complex('1e-10+1e-10i')), complex('1-1e-20i')) }) it('should return the cosine of an angle', function () { - approx.equal(cos(unit('45deg')), 0.707106781186548) - approx.equal(cos(unit('-135deg')), -0.707106781186548) + approxEqual(cos(unit('45deg')), 0.707106781186548) + approxEqual(cos(unit('-135deg')), -0.707106781186548) assert(math.isBigNumber(cos(unit(math.bignumber(45), 'deg')))) - approx.equal(cos(unit(math.bignumber(45), 'deg')).toNumber(), 0.707106781186548) + approxEqual(cos(unit(math.bignumber(45), 'deg')).toNumber(), 0.707106781186548) - approx.deepEqual(cos(unit(complex(1, 1), 'rad')), complex(0.833730025131149, -0.988897705762865)) + approxDeepEqual(cos(unit(complex(1, 1), 'rad')), complex(0.833730025131149, -0.988897705762865)) }) it('should throw an error if called with an invalid unit', function () { @@ -103,12 +103,12 @@ describe('cos', function () { it('should not operate on a matrix', function () { assert.throws(() => cos(matrix([1, 2, 3])), TypeError) - approx.deepEqual(math.map(matrix([1, 2, 3]), cos), matrix(cos123)) + approxDeepEqual(math.map(matrix([1, 2, 3]), cos), matrix(cos123)) }) it('should not operate on an array', function () { assert.throws(() => cos([1, 2, 3]), TypeError) - approx.deepEqual(math.map([1, 2, 3], cos), cos123) + approxDeepEqual(math.map([1, 2, 3], cos), cos123) }) it('should throw an error in case of invalid number of arguments', function () { diff --git a/test/unit-tests/function/trigonometry/cosh.test.js b/test/unit-tests/function/trigonometry/cosh.test.js index 4d4a4fbdcd..117eae682d 100644 --- a/test/unit-tests/function/trigonometry/cosh.test.js +++ b/test/unit-tests/function/trigonometry/cosh.test.js @@ -1,6 +1,6 @@ import assert from 'assert' import math from '../../../../src/defaultInstance.js' -import approx from '../../../../tools/approx.js' +import { approxEqual, approxDeepEqual } from '../../../../tools/approx.js' const pi = math.pi const complex = math.complex const matrix = math.matrix @@ -10,16 +10,16 @@ const bigmath = math.create({ number: 'BigNumber', precision: 20 }) describe('cosh', function () { it('should return the cosh of a boolean', function () { - approx.equal(cosh(true), 1.5430806348152) - approx.equal(cosh(false), 1) + approxEqual(cosh(true), 1.5430806348152) + approxEqual(cosh(false), 1) }) it('should return the cosh of a number', function () { - approx.equal(cosh(0), 1) - approx.equal(cosh(pi), 11.591953275522) - approx.equal(cosh(1), 1.5430806348152) - approx.equal(cosh(2), 3.7621956910836) - approx.equal(cosh(3), 10.067661995778) + approxEqual(cosh(0), 1) + approxEqual(cosh(pi), 11.591953275522) + approxEqual(cosh(1), 1.5430806348152) + approxEqual(cosh(2), 3.7621956910836) + approxEqual(cosh(3), 10.067661995778) }) it('should return the cosh of a bignumber', function () { @@ -47,9 +47,9 @@ describe('cosh', function () { }) it('should return the cosh of a complex number', function () { - approx.deepEqual(cosh(complex('1')), complex(1.5430806348152, 0)) - approx.deepEqual(cosh(complex('i')), complex(0.54030230586814, 0)) - approx.deepEqual(cosh(complex('2 + i')), complex(2.0327230070197, 3.0518977991518)) + approxDeepEqual(cosh(complex('1')), complex(1.5430806348152, 0)) + approxDeepEqual(cosh(complex('i')), complex(0.54030230586814, 0)) + approxDeepEqual(cosh(complex('2 + i')), complex(2.0327230070197, 3.0518977991518)) }) it('should throw an error on an angle', function () { @@ -68,12 +68,12 @@ describe('cosh', function () { it('should not operate on an array', function () { assert.throws(() => cosh([1, 2, 3]), TypeError) - approx.deepEqual(math.map([1, 2, 3], cosh), cosh123) + approxDeepEqual(math.map([1, 2, 3], cosh), cosh123) }) it('should not operate on a matrix', function () { assert.throws(() => cosh(matrix([1, 2, 3])), TypeError) - approx.deepEqual(math.map(matrix([1, 2, 3]), cosh), matrix(cosh123)) + approxDeepEqual(math.map(matrix([1, 2, 3]), cosh), matrix(cosh123)) }) it('should throw an error in case of invalid number of arguments', function () { diff --git a/test/unit-tests/function/trigonometry/cot.test.js b/test/unit-tests/function/trigonometry/cot.test.js index 32317966aa..36e4518411 100644 --- a/test/unit-tests/function/trigonometry/cot.test.js +++ b/test/unit-tests/function/trigonometry/cot.test.js @@ -1,6 +1,6 @@ import assert from 'assert' import math from '../../../../src/defaultInstance.js' -import approx from '../../../../tools/approx.js' +import { approxEqual, approxDeepEqual } from '../../../../tools/approx.js' const pi = math.pi const complex = math.complex const matrix = math.matrix @@ -10,21 +10,21 @@ const bigmath = math.create({ number: 'BigNumber', precision: 20 }) describe('cot', function () { it('should return the cotan of a boolean', function () { - approx.equal(cot(true), 0.642092615934331) - approx.equal(cot(false), Infinity) + approxEqual(cot(true), 0.642092615934331) + approxEqual(cot(false), Infinity) }) it('should return the cotan of a number', function () { - approx.equal(cot(0), Infinity) - approx.equal(1 / cot(pi * 1 / 8), 0.414213562373095) - approx.equal(1 / cot(pi * 1 / 4), 1) - approx.equal(cot(pi * 2 / 4), 0) - approx.equal(1 / cot(pi * 3 / 4), -1) - approx.equal(1 / cot(pi * 4 / 4), 0) - approx.equal(1 / cot(pi * 5 / 4), 1) - approx.equal(cot(pi * 6 / 4), 0) - approx.equal(1 / cot(pi * 7 / 4), -1) - approx.equal(1 / cot(pi * 8 / 4), 0) + approxEqual(cot(0), Infinity) + approxEqual(1 / cot(pi * 1 / 8), 0.414213562373095) + approxEqual(1 / cot(pi * 1 / 4), 1) + approxEqual(cot(pi * 2 / 4), 0) + approxEqual(1 / cot(pi * 3 / 4), -1) + approxEqual(1 / cot(pi * 4 / 4), 0) + approxEqual(1 / cot(pi * 5 / 4), 1) + approxEqual(cot(pi * 6 / 4), 0) + approxEqual(1 / cot(pi * 7 / 4), -1) + approxEqual(1 / cot(pi * 8 / 4), 0) }) it('should return the cotan of a bignumber', function () { @@ -49,23 +49,23 @@ describe('cot', function () { it('should return the cotan of a complex number', function () { const re = 0.00373971037633696 const im = 0.99675779656935837 - approx.deepEqual(cot(complex('2+3i')), complex(-re, -im)) - approx.deepEqual(cot(complex('2-3i')), complex(-re, im)) - approx.deepEqual(cot(complex('-2+3i')), complex(re, -im)) - approx.deepEqual(cot(complex('-2-3i')), complex(re, im)) - approx.deepEqual(cot(complex('i')), complex(0, -1.313035285499331)) - approx.deepEqual(cot(complex('1')), complex(0.642092615934331, 0)) - approx.deepEqual(cot(complex('1+i')), complex(0.217621561854403, -0.868014142895925)) + approxDeepEqual(cot(complex('2+3i')), complex(-re, -im)) + approxDeepEqual(cot(complex('2-3i')), complex(-re, im)) + approxDeepEqual(cot(complex('-2+3i')), complex(re, -im)) + approxDeepEqual(cot(complex('-2-3i')), complex(re, im)) + approxDeepEqual(cot(complex('i')), complex(0, -1.313035285499331)) + approxDeepEqual(cot(complex('1')), complex(0.642092615934331, 0)) + approxDeepEqual(cot(complex('1+i')), complex(0.217621561854403, -0.868014142895925)) }) it('should return the cotan of an angle', function () { - approx.equal(cot(unit('45deg')), 1) - approx.equal(cot(unit('-45deg')), -1) + approxEqual(cot(unit('45deg')), 1) + approxEqual(cot(unit('-45deg')), -1) assert(math.isBigNumber(cot(unit(math.bignumber(45), 'deg')))) - approx.equal(cot(unit(math.bignumber(45), 'deg')).toNumber(), 1) + approxEqual(cot(unit(math.bignumber(45), 'deg')).toNumber(), 1) - approx.deepEqual(cot(math.unit(complex('1+i'), 'rad')), complex(0.217621561854403, -0.868014142895925)) + approxDeepEqual(cot(math.unit(complex('1+i'), 'rad')), complex(0.217621561854403, -0.868014142895925)) }) it('should throw an error if called with an invalid unit', function () { @@ -80,12 +80,12 @@ describe('cot', function () { it('should not operate on an array', function () { assert.throws(() => cot([1, 2, 3]), TypeError) - approx.deepEqual(math.map([1, 2, 3], cot), cot123) + approxDeepEqual(math.map([1, 2, 3], cot), cot123) }) it('should not operate on a matrix', function () { assert.throws(() => cot(matrix([1, 2, 3])), TypeError) - approx.deepEqual(math.map(matrix([1, 2, 3]), cot), matrix(cot123)) + approxDeepEqual(math.map(matrix([1, 2, 3]), cot), matrix(cot123)) }) it('should throw an error in case of invalid number of arguments', function () { diff --git a/test/unit-tests/function/trigonometry/coth.test.js b/test/unit-tests/function/trigonometry/coth.test.js index 987bd5d2b2..99dc0d357b 100644 --- a/test/unit-tests/function/trigonometry/coth.test.js +++ b/test/unit-tests/function/trigonometry/coth.test.js @@ -1,6 +1,6 @@ import assert from 'assert' import math from '../../../../src/defaultInstance.js' -import approx from '../../../../tools/approx.js' +import { approxEqual, approxDeepEqual } from '../../../../tools/approx.js' const pi = math.pi const complex = math.complex const matrix = math.matrix @@ -11,16 +11,16 @@ const biggermath = math.create({ number: 'BigNumber', precision: 21 }) describe('coth', function () { it('should return the coth of a boolean', function () { - approx.equal(coth(true), 1.3130352854993) - approx.equal(coth(false), Number.POSITIVE_INFINITY) + approxEqual(coth(true), 1.3130352854993) + approxEqual(coth(false), Number.POSITIVE_INFINITY) }) it('should return the coth of a number', function () { - approx.equal(coth(0), Number.POSITIVE_INFINITY) - approx.equal(coth(pi), 1.0037418731973) - approx.equal(coth(1), 1.3130352854993) - approx.equal(coth(2), 1.0373147207275) - approx.equal(coth(3), 1.0049698233137) + approxEqual(coth(0), Number.POSITIVE_INFINITY) + approxEqual(coth(pi), 1.0037418731973) + approxEqual(coth(1), 1.3130352854993) + approxEqual(coth(2), 1.0373147207275) + approxEqual(coth(3), 1.0049698233137) }) it('should return the coth of a bignumber', function () { @@ -36,9 +36,9 @@ describe('coth', function () { }) it('should return the coth of a complex number', function () { - approx.deepEqual(coth(complex('1')), complex(1.3130352854993, 0)) - approx.deepEqual(coth(complex('i')), complex(0, -0.64209261593433)) - approx.deepEqual(coth(complex('2 + i')), complex(0.98432922645819, -0.032797755533753)) + approxDeepEqual(coth(complex('1')), complex(1.3130352854993, 0)) + approxDeepEqual(coth(complex('i')), complex(0, -0.64209261593433)) + approxDeepEqual(coth(complex('2 + i')), complex(0.98432922645819, -0.032797755533753)) }) it('should throw an error on an angle', function () { @@ -57,12 +57,12 @@ describe('coth', function () { it('should not operate on an array', function () { assert.throws(() => coth([1, 2, 3]), TypeError) - approx.deepEqual(math.map([1, 2, 3], coth), coth123) + approxDeepEqual(math.map([1, 2, 3], coth), coth123) }) it('should not operate on a matrix', function () { assert.throws(() => coth(matrix([1, 2, 3])), TypeError) - approx.deepEqual(math.map(matrix([1, 2, 3]), coth), matrix(coth123)) + approxDeepEqual(math.map(matrix([1, 2, 3]), coth), matrix(coth123)) }) it('should throw an error in case of invalid number of arguments', function () { diff --git a/test/unit-tests/function/trigonometry/csc.test.js b/test/unit-tests/function/trigonometry/csc.test.js index 02ebaeace0..5693149eca 100644 --- a/test/unit-tests/function/trigonometry/csc.test.js +++ b/test/unit-tests/function/trigonometry/csc.test.js @@ -1,6 +1,6 @@ import assert from 'assert' import math from '../../../../src/defaultInstance.js' -import approx from '../../../../tools/approx.js' +import { approxEqual, approxDeepEqual } from '../../../../tools/approx.js' const pi = math.pi const complex = math.complex const matrix = math.matrix @@ -10,22 +10,22 @@ const bigmath = math.create({ number: 'BigNumber', precision: 20 }) describe('csc', function () { it('should return the cosecant of a boolean', function () { - approx.equal(csc(true), 1.18839510577812) - approx.equal(csc(false), Infinity) + approxEqual(csc(true), 1.18839510577812) + approxEqual(csc(false), Infinity) }) it('should return the cosecant of a number', function () { - approx.equal(1 / csc(0), 0) - approx.equal(1 / csc(pi * 1 / 4), 0.707106781186548) - approx.equal(1 / csc(pi * 1 / 8), 0.382683432365090) - approx.equal(1 / csc(pi * 2 / 4), 1) - approx.equal(1 / csc(pi * 3 / 4), 0.707106781186548) - approx.equal(1 / csc(pi * 4 / 4), 0) - approx.equal(1 / csc(pi * 5 / 4), -0.707106781186548) - approx.equal(1 / csc(pi * 6 / 4), -1) - approx.equal(1 / csc(pi * 7 / 4), -0.707106781186548) - approx.equal(1 / csc(pi * 8 / 4), 0) - approx.equal(1 / csc(pi / 4), math.sqrt(2) / 2) + approxEqual(1 / csc(0), 0) + approxEqual(1 / csc(pi * 1 / 4), 0.707106781186548) + approxEqual(1 / csc(pi * 1 / 8), 0.382683432365090) + approxEqual(1 / csc(pi * 2 / 4), 1) + approxEqual(1 / csc(pi * 3 / 4), 0.707106781186548) + approxEqual(1 / csc(pi * 4 / 4), 0) + approxEqual(1 / csc(pi * 5 / 4), -0.707106781186548) + approxEqual(1 / csc(pi * 6 / 4), -1) + approxEqual(1 / csc(pi * 7 / 4), -0.707106781186548) + approxEqual(1 / csc(pi * 8 / 4), 0) + approxEqual(1 / csc(pi / 4), math.sqrt(2) / 2) }) it('should return the cosecant of a bignumber', function () { @@ -44,23 +44,23 @@ describe('csc', function () { it('should return the cosecant of a complex number', function () { const re = 0.0904732097532074 const im = 0.0412009862885741 - approx.deepEqual(csc(complex('2+3i')), complex(re, im)) - approx.deepEqual(csc(complex('2-3i')), complex(re, -im)) - approx.deepEqual(csc(complex('-2+3i')), complex(-re, im)) - approx.deepEqual(csc(complex('-2-3i')), complex(-re, -im)) - approx.deepEqual(csc(complex('i')), complex(0, -0.850918128239322)) - approx.deepEqual(csc(complex('1')), complex(1.18839510577812, 0)) - approx.deepEqual(csc(complex('1+i')), complex(0.621518017170428, -0.303931001628426)) + approxDeepEqual(csc(complex('2+3i')), complex(re, im)) + approxDeepEqual(csc(complex('2-3i')), complex(re, -im)) + approxDeepEqual(csc(complex('-2+3i')), complex(-re, im)) + approxDeepEqual(csc(complex('-2-3i')), complex(-re, -im)) + approxDeepEqual(csc(complex('i')), complex(0, -0.850918128239322)) + approxDeepEqual(csc(complex('1')), complex(1.18839510577812, 0)) + approxDeepEqual(csc(complex('1+i')), complex(0.621518017170428, -0.303931001628426)) }) it('should return the cosecant of an angle', function () { - approx.equal(csc(unit('45deg')), 1.41421356237310) - approx.equal(csc(unit('-45deg')), -1.41421356237310) + approxEqual(csc(unit('45deg')), 1.41421356237310) + approxEqual(csc(unit('-45deg')), -1.41421356237310) assert(math.isBigNumber(csc(unit(math.bignumber(45), 'deg')))) - approx.equal(csc(unit(math.bignumber(45), 'deg')).toNumber(), 1.41421356237310) + approxEqual(csc(unit(math.bignumber(45), 'deg')).toNumber(), 1.41421356237310) - approx.deepEqual(csc(unit(complex('1+i'), 'rad')), complex(0.621518017170428, -0.303931001628426)) + approxDeepEqual(csc(unit(complex('1+i'), 'rad')), complex(0.621518017170428, -0.303931001628426)) }) it('should throw an error if called with an invalid unit', function () { @@ -75,12 +75,12 @@ describe('csc', function () { it('should not operate on an array', function () { assert.throws(() => csc([1, 2, 3]), TypeError) - approx.deepEqual(math.map([1, 2, 3], csc), csc123) + approxDeepEqual(math.map([1, 2, 3], csc), csc123) }) it('should not operate on a matrix', function () { assert.throws(() => csc(matrix([1, 2, 3])), TypeError) - approx.deepEqual(math.map(matrix([1, 2, 3]), csc), matrix(csc123)) + approxDeepEqual(math.map(matrix([1, 2, 3]), csc), matrix(csc123)) }) it('should throw an error in case of invalid number of arguments', function () { diff --git a/test/unit-tests/function/trigonometry/csch.test.js b/test/unit-tests/function/trigonometry/csch.test.js index 0b07f5c887..25eca916ab 100644 --- a/test/unit-tests/function/trigonometry/csch.test.js +++ b/test/unit-tests/function/trigonometry/csch.test.js @@ -1,6 +1,6 @@ import assert from 'assert' import math from '../../../../src/defaultInstance.js' -import approx from '../../../../tools/approx.js' +import { approxEqual, approxDeepEqual } from '../../../../tools/approx.js' const pi = math.pi const complex = math.complex const matrix = math.matrix @@ -11,18 +11,18 @@ const biggermath = math.create({ number: 'BigNumber', precision: 22 }) describe('csch', function () { it('should return the csch of a boolean', function () { - approx.equal(csch(true), 0.85091812823932) - approx.equal(csch(false), Number.POSITIVE_INFINITY) + approxEqual(csch(true), 0.85091812823932) + approxEqual(csch(false), Number.POSITIVE_INFINITY) }) it('should return the csch of a number', function () { - approx.equal(csch(0), Number.POSITIVE_INFINITY) - approx.equal(csch(pi), 0.086589537530047) - approx.equal(csch(1), 0.85091812823932) - approx.equal(csch(2), 0.27572056477178) - approx.equal(csch(3), 0.099821569668823) - approx.equal(csch(1e-22), Number.POSITIVE_INFINITY) - approx.equal(csch(-1e-22), Number.NEGATIVE_INFINITY) + approxEqual(csch(0), Number.POSITIVE_INFINITY) + approxEqual(csch(pi), 0.086589537530047) + approxEqual(csch(1), 0.85091812823932) + approxEqual(csch(2), 0.27572056477178) + approxEqual(csch(3), 0.099821569668823) + approxEqual(csch(1e-22), Number.POSITIVE_INFINITY) + approxEqual(csch(-1e-22), Number.NEGATIVE_INFINITY) }) it('should return the csch of a bignumber', function () { @@ -39,9 +39,9 @@ describe('csch', function () { }) it('should return the csch of a complex number', function () { - approx.deepEqual(csch(complex('1')), complex(0.85091812823932, 0)) - approx.deepEqual(csch(complex('i')), complex(0, -1.1883951057781)) - approx.deepEqual(csch(complex('2 + i')), complex(0.14136302161241, -0.22837506559969)) + approxDeepEqual(csch(complex('1')), complex(0.85091812823932, 0)) + approxDeepEqual(csch(complex('i')), complex(0, -1.1883951057781)) + approxDeepEqual(csch(complex('2 + i')), complex(0.14136302161241, -0.22837506559969)) }) it('should throw an error on an angle', function () { @@ -60,12 +60,12 @@ describe('csch', function () { it('should not operate on an array', function () { assert.throws(() => csch([1, 2, 3]), TypeError) - approx.deepEqual(math.map([1, 2, 3], csch), csch123) + approxDeepEqual(math.map([1, 2, 3], csch), csch123) }) it('should not operate on a matrix', function () { assert.throws(() => csch(matrix([1, 2, 3])), TypeError) - approx.deepEqual(math.map(matrix([1, 2, 3]), csch), matrix(csch123)) + approxDeepEqual(math.map(matrix([1, 2, 3]), csch), matrix(csch123)) }) it('should throw an error in case of invalid number of arguments', function () { diff --git a/test/unit-tests/function/trigonometry/sec.test.js b/test/unit-tests/function/trigonometry/sec.test.js index b8e49fa55c..755f2ceb73 100644 --- a/test/unit-tests/function/trigonometry/sec.test.js +++ b/test/unit-tests/function/trigonometry/sec.test.js @@ -1,6 +1,6 @@ import assert from 'assert' import math from '../../../../src/defaultInstance.js' -import approx from '../../../../tools/approx.js' +import { approxEqual, approxDeepEqual } from '../../../../tools/approx.js' const pi = math.pi const complex = math.complex const matrix = math.matrix @@ -11,30 +11,30 @@ const biggermath = math.create({ number: 'BigNumber', precision: 21 }) describe('sec', function () { it('should return the secant of a boolean', function () { - approx.equal(sec(true), 1.85081571768093) + approxEqual(sec(true), 1.85081571768093) assert.strictEqual(sec(false), 1) }) it('should return the secant of a number', function () { - approx.equal(1 / sec(0), 1) - approx.equal(1 / sec(pi * 1 / 4), 0.707106781186548) - approx.equal(1 / sec(pi * 1 / 8), 0.923879532511287) - approx.equal(1 / sec(pi * 2 / 4), 0) - approx.equal(1 / sec(pi * 3 / 4), -0.707106781186548) - approx.equal(1 / sec(pi * 4 / 4), -1) - approx.equal(1 / sec(pi * 5 / 4), -0.707106781186548) - approx.equal(1 / sec(pi * 6 / 4), 0) - approx.equal(1 / sec(pi * 7 / 4), 0.707106781186548) - approx.equal(1 / sec(pi * 8 / 4), 1) - approx.equal(1 / sec(pi / 4), math.sqrt(2) / 2) - - approx.equal(math.pow(sec(pi / 4), 2), 2) - approx.equal(sec(0), 1) - approx.equal(sec(pi), -1) - approx.equal(sec(-pi), -1) - approx.equal(math.pow(sec(-pi / 4), 2), 2) - approx.equal(sec(2 * pi), 1) - approx.equal(sec(-2 * pi), 1) + approxEqual(1 / sec(0), 1) + approxEqual(1 / sec(pi * 1 / 4), 0.707106781186548) + approxEqual(1 / sec(pi * 1 / 8), 0.923879532511287) + approxEqual(1 / sec(pi * 2 / 4), 0) + approxEqual(1 / sec(pi * 3 / 4), -0.707106781186548) + approxEqual(1 / sec(pi * 4 / 4), -1) + approxEqual(1 / sec(pi * 5 / 4), -0.707106781186548) + approxEqual(1 / sec(pi * 6 / 4), 0) + approxEqual(1 / sec(pi * 7 / 4), 0.707106781186548) + approxEqual(1 / sec(pi * 8 / 4), 1) + approxEqual(1 / sec(pi / 4), math.sqrt(2) / 2) + + approxEqual(math.pow(sec(pi / 4), 2), 2) + approxEqual(sec(0), 1) + approxEqual(sec(pi), -1) + approxEqual(sec(-pi), -1) + approxEqual(math.pow(sec(-pi / 4), 2), 2) + approxEqual(sec(2 * pi), 1) + approxEqual(sec(-2 * pi), 1) }) it('should return the secant of a bignumber', function () { @@ -60,23 +60,23 @@ describe('sec', function () { it('should return the secant of a complex number', function () { const re = 0.0416749644111443 const im = 0.0906111371962376 - approx.deepEqual(sec(complex('2+3i')), complex(-re, im)) - approx.deepEqual(sec(complex('2-3i')), complex(-re, -im)) - approx.deepEqual(sec(complex('-2+3i')), complex(-re, -im)) - approx.deepEqual(sec(complex('-2-3i')), complex(-re, im)) - approx.deepEqual(sec(complex('i')), complex(0.648054273663885, 0)) - approx.deepEqual(sec(complex('1')), complex(1.85081571768093, 0)) - approx.deepEqual(sec(complex('1+i')), complex(0.498337030555187, 0.591083841721045)) + approxDeepEqual(sec(complex('2+3i')), complex(-re, im)) + approxDeepEqual(sec(complex('2-3i')), complex(-re, -im)) + approxDeepEqual(sec(complex('-2+3i')), complex(-re, -im)) + approxDeepEqual(sec(complex('-2-3i')), complex(-re, im)) + approxDeepEqual(sec(complex('i')), complex(0.648054273663885, 0)) + approxDeepEqual(sec(complex('1')), complex(1.85081571768093, 0)) + approxDeepEqual(sec(complex('1+i')), complex(0.498337030555187, 0.591083841721045)) }) it('should return the secant of an angle', function () { - approx.equal(sec(unit('45deg')), 1.41421356237310) - approx.equal(sec(unit('-45deg')), 1.41421356237310) + approxEqual(sec(unit('45deg')), 1.41421356237310) + approxEqual(sec(unit('-45deg')), 1.41421356237310) assert(math.isBigNumber(sec(unit(math.bignumber(45), 'deg')))) - approx.equal(sec(unit(math.bignumber(45), 'deg')).toNumber(), 1.41421356237310) + approxEqual(sec(unit(math.bignumber(45), 'deg')).toNumber(), 1.41421356237310) - approx.deepEqual(sec(unit(complex('1+i'), 'rad')), complex(0.498337030555187, 0.591083841721045)) + approxDeepEqual(sec(unit(complex('1+i'), 'rad')), complex(0.498337030555187, 0.591083841721045)) }) it('should throw an error if called with an invalid unit', function () { @@ -91,12 +91,12 @@ describe('sec', function () { it('should not operate on an array', function () { assert.throws(() => sec([1, 2, 3]), TypeError) - approx.deepEqual(math.map([1, 2, 3], sec), sec123) + approxDeepEqual(math.map([1, 2, 3], sec), sec123) }) it('should not operate on a matrix', function () { assert.throws(() => sec(matrix([1, 2, 3])), TypeError) - approx.deepEqual(math.map(matrix([1, 2, 3]), sec), matrix(sec123)) + approxDeepEqual(math.map(matrix([1, 2, 3]), sec), matrix(sec123)) }) it('should throw an error in case of invalid number of arguments', function () { diff --git a/test/unit-tests/function/trigonometry/sech.test.js b/test/unit-tests/function/trigonometry/sech.test.js index 48b564acbd..994a614efa 100644 --- a/test/unit-tests/function/trigonometry/sech.test.js +++ b/test/unit-tests/function/trigonometry/sech.test.js @@ -1,6 +1,6 @@ import assert from 'assert' import math from '../../../../src/defaultInstance.js' -import approx from '../../../../tools/approx.js' +import { approxEqual, approxDeepEqual } from '../../../../tools/approx.js' const pi = math.pi const complex = math.complex const matrix = math.matrix @@ -11,16 +11,16 @@ const biggermath = math.create({ number: 'BigNumber', precision: 21 }) describe('sech', function () { it('should return the sech of a boolean', function () { - approx.equal(sech(true), 0.64805427366389) - approx.equal(sech(false), 1) + approxEqual(sech(true), 0.64805427366389) + approxEqual(sech(false), 1) }) it('should return the sech of a number', function () { - approx.equal(sech(0), 1) - approx.equal(sech(pi), 0.086266738334054) - approx.equal(sech(1), 0.64805427366389) - approx.equal(sech(2), 0.26580222883408) - approx.equal(sech(3), 0.099327927419433) + approxEqual(sech(0), 1) + approxEqual(sech(pi), 0.086266738334054) + approxEqual(sech(1), 0.64805427366389) + approxEqual(sech(2), 0.26580222883408) + approxEqual(sech(3), 0.099327927419433) }) it('should return the sech of a bignumber', function () { @@ -37,9 +37,9 @@ describe('sech', function () { }) it('should return the sech of a complex number', function () { - approx.deepEqual(sech(complex('1')), complex(0.64805427366389, 0)) - approx.deepEqual(sech(complex('i')), complex(1.8508157176809, 0)) - approx.deepEqual(sech(complex('2 + i')), complex(0.15117629826558, -0.22697367539372)) + approxDeepEqual(sech(complex('1')), complex(0.64805427366389, 0)) + approxDeepEqual(sech(complex('i')), complex(1.8508157176809, 0)) + approxDeepEqual(sech(complex('2 + i')), complex(0.15117629826558, -0.22697367539372)) }) it('should throw an error on an angle', function () { @@ -58,12 +58,12 @@ describe('sech', function () { it('should not operate on an array', function () { assert.throws(() => sech([1, 2, 3]), TypeError) - approx.deepEqual(math.map([1, 2, 3], sech), sech123) + approxDeepEqual(math.map([1, 2, 3], sech), sech123) }) it('should not operate on a matrix', function () { assert.throws(() => sech(matrix([1, 2, 3])), TypeError) - approx.deepEqual(math.map(matrix([1, 2, 3]), sech), matrix(sech123)) + approxDeepEqual(math.map(matrix([1, 2, 3]), sech), matrix(sech123)) }) it('should throw an error in case of invalid number of arguments', function () { diff --git a/test/unit-tests/function/trigonometry/sin.test.js b/test/unit-tests/function/trigonometry/sin.test.js index 50e577043f..231149b97b 100644 --- a/test/unit-tests/function/trigonometry/sin.test.js +++ b/test/unit-tests/function/trigonometry/sin.test.js @@ -1,6 +1,6 @@ import assert from 'assert' import math from '../../../../src/defaultInstance.js' -import approx from '../../../../tools/approx.js' +import { approxEqual, approxDeepEqual } from '../../../../tools/approx.js' const EPSILON = 1e-13 const pi = math.pi const complex = math.complex @@ -11,21 +11,21 @@ const bigmath = math.create({ precision: 242 }) describe('sin', function () { it('should return the sine of a boolean', function () { - approx.equal(sin(true), 0.841470984807897) - approx.equal(sin(false), 0) + approxEqual(sin(true), 0.841470984807897) + approxEqual(sin(false), 0) }) it('should return the sine of a number', function () { - approx.equal(sin(0), 0, EPSILON) - approx.equal(sin(pi / 8), 0.382683432365090, EPSILON) - approx.equal(sin(pi / 4), Math.SQRT1_2, EPSILON) - approx.equal(sin(pi / 2), 1, EPSILON) - approx.equal(sin(pi * 3 / 4), 0.707106781186548, EPSILON) - approx.equal(sin(pi), 0, EPSILON) - approx.equal(sin(pi * 5 / 4), -0.707106781186548, EPSILON) - approx.equal(sin(pi * 3 / 2), -1, EPSILON) - approx.equal(sin(pi * 7 / 4), -0.707106781186548, EPSILON) - approx.equal(sin(pi * 2), 0, EPSILON) + approxEqual(sin(0), 0, EPSILON) + approxEqual(sin(pi / 8), 0.382683432365090, EPSILON) + approxEqual(sin(pi / 4), Math.SQRT1_2, EPSILON) + approxEqual(sin(pi / 2), 1, EPSILON) + approxEqual(sin(pi * 3 / 4), 0.707106781186548, EPSILON) + approxEqual(sin(pi), 0, EPSILON) + approxEqual(sin(pi * 5 / 4), -0.707106781186548, EPSILON) + approxEqual(sin(pi * 3 / 2), -1, EPSILON) + approxEqual(sin(pi * 7 / 4), -0.707106781186548, EPSILON) + approxEqual(sin(pi * 2), 0, EPSILON) }) it('should return the sine of a bignumber', function () { @@ -50,7 +50,7 @@ describe('sin', function () { // we've had a bug in reducing the period, affecting integer values around multiples of tau (like 6, 7) for (let x = -20; x < 20; x += 1) { - approx.equal(bigmath2.sin(bigmath2.bignumber(x)).toNumber(), Math.sin(x), EPSILON) + approxEqual(bigmath2.sin(bigmath2.bignumber(x)).toNumber(), Math.sin(x), EPSILON) } const bigPi = bigmath2.pi @@ -74,24 +74,24 @@ describe('sin', function () { it('should return the sine of a complex number', function () { const re = 9.15449914691143 const im = 4.16890695996656 - approx.deepEqual(sin(complex('2+3i')), complex(re, -im), EPSILON) - approx.deepEqual(sin(complex('2-3i')), complex(re, im), EPSILON) - approx.deepEqual(sin(complex('-2+3i')), complex(-re, -im), EPSILON) - approx.deepEqual(sin(complex('-2-3i')), complex(-re, im), EPSILON) - approx.deepEqual(sin(complex('i')), complex(0, 1.175201193643801), EPSILON) - approx.deepEqual(sin(complex('1')), complex(0.841470984807897, 0), EPSILON) - approx.deepEqual(sin(complex('1+i')), complex(1.298457581415977, 0.634963914784736), EPSILON) - approx.deepEqual(sin(complex('1e-10i')), complex('1e-10i'), EPSILON) + approxDeepEqual(sin(complex('2+3i')), complex(re, -im), EPSILON) + approxDeepEqual(sin(complex('2-3i')), complex(re, im), EPSILON) + approxDeepEqual(sin(complex('-2+3i')), complex(-re, -im), EPSILON) + approxDeepEqual(sin(complex('-2-3i')), complex(-re, im), EPSILON) + approxDeepEqual(sin(complex('i')), complex(0, 1.175201193643801), EPSILON) + approxDeepEqual(sin(complex('1')), complex(0.841470984807897, 0), EPSILON) + approxDeepEqual(sin(complex('1+i')), complex(1.298457581415977, 0.634963914784736), EPSILON) + approxDeepEqual(sin(complex('1e-10i')), complex('1e-10i'), EPSILON) }) it('should return the sine of an angle', function () { - approx.equal(sin(unit('45deg')), 0.707106781186548, EPSILON) - approx.equal(sin(unit('-45deg')), -0.707106781186548, EPSILON) + approxEqual(sin(unit('45deg')), 0.707106781186548, EPSILON) + approxEqual(sin(unit('-45deg')), -0.707106781186548, EPSILON) assert(math.isBigNumber(sin(unit(math.bignumber(45), 'deg')))) - approx.equal(sin(unit(math.bignumber(45), 'deg')).toNumber(), 0.707106781186548, EPSILON) + approxEqual(sin(unit(math.bignumber(45), 'deg')).toNumber(), 0.707106781186548, EPSILON) - approx.deepEqual(sin(unit(complex('1+i'), 'rad')), complex(1.298457581415977, 0.634963914784736), EPSILON) + approxDeepEqual(sin(unit(complex('1+i'), 'rad')), complex(1.298457581415977, 0.634963914784736), EPSILON) }) it('should throw an error if called with an invalid unit', function () { @@ -106,12 +106,12 @@ describe('sin', function () { it('should not operate on an array', function () { assert.throws(() => sin([1, 2, 3]), TypeError) - approx.deepEqual(math.map([1, 2, 3], sin), sin123, EPSILON) + approxDeepEqual(math.map([1, 2, 3], sin), sin123, EPSILON) }) it('should not operate on a matrix', function () { assert.throws(() => sin(matrix([1, 2, 3])), TypeError) - approx.deepEqual(math.map(matrix([1, 2, 3]), sin), matrix(sin123), EPSILON) + approxDeepEqual(math.map(matrix([1, 2, 3]), sin), matrix(sin123), EPSILON) }) it('should throw an error in case of invalid number of arguments', function () { diff --git a/test/unit-tests/function/trigonometry/sinh.test.js b/test/unit-tests/function/trigonometry/sinh.test.js index 8ca1422123..508109bdd9 100644 --- a/test/unit-tests/function/trigonometry/sinh.test.js +++ b/test/unit-tests/function/trigonometry/sinh.test.js @@ -2,7 +2,7 @@ import assert from 'assert' import math from '../../../../src/defaultInstance.js' -import approx from '../../../../tools/approx.js' +import { approxEqual, approxDeepEqual } from '../../../../tools/approx.js' const complex = math.complex const matrix = math.matrix const unit = math.unit @@ -18,14 +18,14 @@ describe('sinh', function () { }) it('should return the sinh of a number', function () { - approx.equal(sinh(-2), -3.62686040784701876766821398280126170488634201232113572130, EPSILON) - approx.equal(sinh(-0.5), -0.52109530549374736162242562641149155910592898261148052794, EPSILON) - approx.equal(sinh(0), 0, EPSILON) - approx.equal(sinh(0.3), 0.304520293447142618958435267005095229098024232680179727377, EPSILON) - approx.equal(sinh(0.5), 0.521095305493747361622425626411491559105928982611480527946, EPSILON) - approx.equal(sinh(0.8), 0.888105982187623006574717573189756980559709596888150052610, EPSILON) - approx.equal(sinh(1), 1.175201193643801456882381850595600815155717981334095870229, EPSILON) - approx.equal(sinh(2), 3.626860407847018767668213982801261704886342012321135721309, EPSILON) + approxEqual(sinh(-2), -3.62686040784701876766821398280126170488634201232113572130, EPSILON) + approxEqual(sinh(-0.5), -0.52109530549374736162242562641149155910592898261148052794, EPSILON) + approxEqual(sinh(0), 0, EPSILON) + approxEqual(sinh(0.3), 0.304520293447142618958435267005095229098024232680179727377, EPSILON) + approxEqual(sinh(0.5), 0.521095305493747361622425626411491559105928982611480527946, EPSILON) + approxEqual(sinh(0.8), 0.888105982187623006574717573189756980559709596888150052610, EPSILON) + approxEqual(sinh(1), 1.175201193643801456882381850595600815155717981334095870229, EPSILON) + approxEqual(sinh(2), 3.626860407847018767668213982801261704886342012321135721309, EPSILON) }) if (process.version !== '' && !/v0\.10|v0\.12/.test(process.version)) { @@ -71,9 +71,9 @@ describe('sinh', function () { }) it('should return the sinh of a complex number', function () { - approx.deepEqual(sinh(complex('1')), complex(1.1752011936438014, 0), EPSILON) - approx.deepEqual(sinh(complex('i')), complex(0, 0.8414709848079), EPSILON) - approx.deepEqual(sinh(complex('2 + i')), complex(1.95960104142160589707, 3.16577851321616814674), EPSILON) + approxDeepEqual(sinh(complex('1')), complex(1.1752011936438014, 0), EPSILON) + approxDeepEqual(sinh(complex('i')), complex(0, 0.8414709848079), EPSILON) + approxDeepEqual(sinh(complex('2 + i')), complex(1.95960104142160589707, 3.16577851321616814674), EPSILON) }) it('should throw an error on an angle', function () { @@ -92,12 +92,12 @@ describe('sinh', function () { it('should not operate on an array', function () { assert.throws(() => sinh([1, 2, 3]), TypeError) - approx.deepEqual(math.map([1, 2, 3], sinh), sinh123, EPSILON) + approxDeepEqual(math.map([1, 2, 3], sinh), sinh123, EPSILON) }) it('should not operate on a matrix', function () { assert.throws(() => sinh(matrix([1, 2, 3])), TypeError) - approx.deepEqual(math.map(matrix([1, 2, 3]), sinh), matrix(sinh123), EPSILON) + approxDeepEqual(math.map(matrix([1, 2, 3]), sinh), matrix(sinh123), EPSILON) }) it('should throw an error in case of invalid number of arguments', function () { diff --git a/test/unit-tests/function/trigonometry/tan.test.js b/test/unit-tests/function/trigonometry/tan.test.js index e83bc40564..90b6e6c13a 100644 --- a/test/unit-tests/function/trigonometry/tan.test.js +++ b/test/unit-tests/function/trigonometry/tan.test.js @@ -1,6 +1,6 @@ import assert from 'assert' import math from '../../../../src/defaultInstance.js' -import approx from '../../../../tools/approx.js' +import { approxEqual, approxDeepEqual } from '../../../../tools/approx.js' const pi = math.pi const complex = math.complex const matrix = math.matrix @@ -13,21 +13,21 @@ const bigTan = bigmath.tan describe('tan', function () { it('should return the tangent of a boolean', function () { - approx.equal(tan(true), 1.55740772465490) - approx.equal(tan(false), 0) + approxEqual(tan(true), 1.55740772465490) + approxEqual(tan(false), 0) }) it('should return the tangent of a number', function () { - approx.equal(tan(0), 0) - approx.equal(tan(pi * 1 / 4), 1) - approx.equal(tan(pi * 1 / 8), 0.414213562373095) + approxEqual(tan(0), 0) + approxEqual(tan(pi * 1 / 4), 1) + approxEqual(tan(pi * 1 / 8), 0.414213562373095) assert.ok(tan(pi * 2 / 4) > 1e10) - approx.equal(tan(pi * 3 / 4), -1) - approx.equal(tan(pi * 4 / 4), 0) - approx.equal(tan(pi * 5 / 4), 1) + approxEqual(tan(pi * 3 / 4), -1) + approxEqual(tan(pi * 4 / 4), 0) + approxEqual(tan(pi * 5 / 4), 1) assert.ok(tan(pi * 6 / 4) > 1e10) - approx.equal(tan(pi * 7 / 4), -1) - approx.equal(tan(pi * 8 / 4), 0) + approxEqual(tan(pi * 7 / 4), -1) + approxEqual(tan(pi * 8 / 4), 0) }) it('should return the tangent of a bignumber', function () { @@ -44,23 +44,23 @@ describe('tan', function () { it('should return the tangent of a complex number', function () { const re = 0.00376402564150425 const im = 1.00323862735360980 - approx.deepEqual(tan(complex('2+3i')), complex(-re, im)) - approx.deepEqual(tan(complex('2-3i')), complex(-re, -im)) - approx.deepEqual(tan(complex('-2+3i')), complex(re, im)) - approx.deepEqual(tan(complex('-2-3i')), complex(re, -im)) - approx.deepEqual(tan(complex('i')), complex(0, 0.761594155955765)) - approx.deepEqual(tan(complex('1')), complex(1.55740772465490, 0)) - approx.deepEqual(tan(complex('1+i')), complex(0.271752585319512, 1.083923327338695)) + approxDeepEqual(tan(complex('2+3i')), complex(-re, im)) + approxDeepEqual(tan(complex('2-3i')), complex(-re, -im)) + approxDeepEqual(tan(complex('-2+3i')), complex(re, im)) + approxDeepEqual(tan(complex('-2-3i')), complex(re, -im)) + approxDeepEqual(tan(complex('i')), complex(0, 0.761594155955765)) + approxDeepEqual(tan(complex('1')), complex(1.55740772465490, 0)) + approxDeepEqual(tan(complex('1+i')), complex(0.271752585319512, 1.083923327338695)) }) it('should return the tangent of an angle', function () { - approx.equal(tan(unit(' 60deg')), math.sqrt(3)) - approx.equal(tan(unit('-135deg')), 1) + approxEqual(tan(unit(' 60deg')), math.sqrt(3)) + approxEqual(tan(unit('-135deg')), 1) assert(math.isBigNumber(tan(unit(math.bignumber(60), 'deg')))) - approx.equal(tan(unit(math.bignumber(60), 'deg')).toNumber(), math.sqrt(3)) + approxEqual(tan(unit(math.bignumber(60), 'deg')).toNumber(), math.sqrt(3)) - approx.deepEqual(tan(unit(complex('1+i'), 'rad')), complex(0.271752585319512, 1.083923327338695)) + approxDeepEqual(tan(unit(complex('1+i'), 'rad')), complex(0.271752585319512, 1.083923327338695)) }) it('should throw an error if called with an invalid unit', function () { @@ -75,12 +75,12 @@ describe('tan', function () { it('should not operate on an array', function () { assert.throws(() => tan([1, 2, 3]), TypeError) - approx.deepEqual(math.map([1, 2, 3], tan), tan123) + approxDeepEqual(math.map([1, 2, 3], tan), tan123) }) it('should not operate on a matrix', function () { assert.throws(() => tan(matrix([1, 2, 3])), TypeError) - approx.deepEqual(math.map(matrix([1, 2, 3]), tan), matrix(tan123)) + approxDeepEqual(math.map(matrix([1, 2, 3]), tan), matrix(tan123)) }) it('should throw an error in case of invalid number of arguments', function () { diff --git a/test/unit-tests/function/trigonometry/tanh.test.js b/test/unit-tests/function/trigonometry/tanh.test.js index 6b8b4ec42a..edbe637404 100644 --- a/test/unit-tests/function/trigonometry/tanh.test.js +++ b/test/unit-tests/function/trigonometry/tanh.test.js @@ -1,6 +1,6 @@ import assert from 'assert' import math from '../../../../src/defaultInstance.js' -import approx from '../../../../tools/approx.js' +import { approxEqual, approxDeepEqual } from '../../../../tools/approx.js' const pi = math.pi const complex = math.complex const matrix = math.matrix @@ -10,16 +10,16 @@ const bigmath = math.create({ number: 'BigNumber', precision: 20 }) describe('tanh', function () { it('should return the tanh of a boolean', function () { - approx.equal(tanh(true), 0.76159415595576) - approx.equal(tanh(false), 0) + approxEqual(tanh(true), 0.76159415595576) + approxEqual(tanh(false), 0) }) it('should return the tanh of a number', function () { - approx.equal(tanh(0), 0) - approx.equal(tanh(pi), 0.99627207622075) - approx.equal(tanh(1), 0.76159415595576) - approx.equal(tanh(2), 0.96402758007582) - approx.equal(tanh(3), 0.99505475368673) + approxEqual(tanh(0), 0) + approxEqual(tanh(pi), 0.99627207622075) + approxEqual(tanh(1), 0.76159415595576) + approxEqual(tanh(2), 0.96402758007582) + approxEqual(tanh(3), 0.99505475368673) }) it('should return the tanh of a bignumber', function () { @@ -47,9 +47,9 @@ describe('tanh', function () { }) it('should return the tanh of a complex number', function () { - approx.deepEqual(tanh(complex('1')), complex(0.76159415595576, 0)) - approx.deepEqual(tanh(complex('i')), complex(0, 1.5574077246549)) - approx.deepEqual(tanh(complex('2 + i')), complex(1.0147936161466, 0.033812826079897)) + approxDeepEqual(tanh(complex('1')), complex(0.76159415595576, 0)) + approxDeepEqual(tanh(complex('i')), complex(0, 1.5574077246549)) + approxDeepEqual(tanh(complex('2 + i')), complex(1.0147936161466, 0.033812826079897)) }) it('should throw an error on an angle', function () { @@ -68,12 +68,12 @@ describe('tanh', function () { it('should not operate on an array', function () { assert.throws(() => tanh([1, 2, 3]), TypeError) - approx.deepEqual(math.map([1, 2, 3], tanh), tanh123) + approxDeepEqual(math.map([1, 2, 3], tanh), tanh123) }) it('should not operate on a matrix', function () { assert.throws(() => tanh(matrix([1, 2, 3])), TypeError) - approx.deepEqual(math.map(matrix([1, 2, 3]), tanh), matrix(tanh123)) + approxDeepEqual(math.map(matrix([1, 2, 3]), tanh), matrix(tanh123)) }) it('should throw an error in case of invalid number of arguments', function () { diff --git a/test/unit-tests/function/unit/to.test.js b/test/unit-tests/function/unit/to.test.js index 362c13d00d..d00f7f7d6b 100644 --- a/test/unit-tests/function/unit/to.test.js +++ b/test/unit-tests/function/unit/to.test.js @@ -1,5 +1,5 @@ import assert from 'assert' -import approx from '../../../../tools/approx.js' +import { approxDeepEqual } from '../../../../tools/approx.js' import math from '../../../../src/defaultInstance.js' const matrix = math.matrix const Unit = math.Unit @@ -8,52 +8,52 @@ const unit = math.unit describe('to', function () { it('should perform the given unit conversion', function () { const a = math.unit('500 cm'); a.fixPrefix = true - approx.deepEqual(math.to(unit('5m'), unit('cm')), a) + approxDeepEqual(math.to(unit('5m'), unit('cm')), a) const b = math.unit('1 foot'); b.fixPrefix = true - approx.deepEqual(math.to(unit('12 inch'), unit('foot')), b) + approxDeepEqual(math.to(unit('12 inch'), unit('foot')), b) const c = math.unit('1 inch'); c.fixPrefix = true - approx.deepEqual(math.to(unit('2.54 cm'), unit('inch')), c) + approxDeepEqual(math.to(unit('2.54 cm'), unit('inch')), c) const d = math.unit('68 fahrenheit'); d.fixPrefix = true - approx.deepEqual(math.to(unit('20 celsius'), unit('fahrenheit')), d) + approxDeepEqual(math.to(unit('20 celsius'), unit('fahrenheit')), d) const e = math.unit('0.002 m3'); e.fixPrefix = true - approx.deepEqual(math.to(unit('2 litre'), unit('m3')), e) + approxDeepEqual(math.to(unit('2 litre'), unit('m3')), e) }) describe('Array', function () { it('should perform the given unit conversion, array - scalar', function () { - approx.deepEqual(math.to([unit('1cm'), unit('2 inch'), unit('2km')], unit('foot')), [new Unit(0.032808, 'foot').to('foot'), new Unit(0.16667, 'foot').to('foot'), new Unit(6561.7, 'foot').to('foot')]) - approx.deepEqual(math.to(unit('1cm'), [unit('cm'), unit('foot'), unit('km'), unit('m')]), [new Unit(1, 'cm').to('cm'), new Unit(1, 'cm').to('foot'), new Unit(1, 'cm').to('km'), new Unit(1, 'cm').to('m')]) + approxDeepEqual(math.to([unit('1cm'), unit('2 inch'), unit('2km')], unit('foot')), [new Unit(0.032808, 'foot').to('foot'), new Unit(0.16667, 'foot').to('foot'), new Unit(6561.7, 'foot').to('foot')]) + approxDeepEqual(math.to(unit('1cm'), [unit('cm'), unit('foot'), unit('km'), unit('m')]), [new Unit(1, 'cm').to('cm'), new Unit(1, 'cm').to('foot'), new Unit(1, 'cm').to('km'), new Unit(1, 'cm').to('m')]) }) it('should perform the given unit conversion, array - array', function () { - approx.deepEqual(math.to([[unit('1cm'), unit('2 inch')], [unit('2km'), unit('1 foot')]], [[unit('foot'), unit('foot')], [unit('cm'), unit('foot')]]), [[unit('1cm').to('foot'), unit('2 inch').to('foot')], [unit('2km').to('cm'), unit('1 foot').to('foot')]]) + approxDeepEqual(math.to([[unit('1cm'), unit('2 inch')], [unit('2km'), unit('1 foot')]], [[unit('foot'), unit('foot')], [unit('cm'), unit('foot')]]), [[unit('1cm').to('foot'), unit('2 inch').to('foot')], [unit('2km').to('cm'), unit('1 foot').to('foot')]]) }) it('should perform the given unit conversion, between broadcastable arrays', function () { - approx.deepEqual(math.to([unit('1 cm'), unit('2 inch')], [[unit('foot')], [unit('cm')]]), [[unit('1cm').to('foot'), unit('2 inch').to('foot')], [unit('1cm').to('cm'), unit('2 inch').to('cm')]]) + approxDeepEqual(math.to([unit('1 cm'), unit('2 inch')], [[unit('foot')], [unit('cm')]]), [[unit('1cm').to('foot'), unit('2 inch').to('foot')], [unit('1cm').to('cm'), unit('2 inch').to('cm')]]) }) it('should perform the given unit conversion, array - dense matrix', function () { - approx.deepEqual(math.to([[unit('1cm'), unit('2 inch')], [unit('2km'), unit('1 foot')]], matrix([[unit('foot'), unit('foot')], [unit('cm'), unit('foot')]])), matrix([[unit('1cm').to('foot'), unit('2 inch').to('foot')], [unit('2km').to('cm'), unit('1 foot').to('foot')]])) + approxDeepEqual(math.to([[unit('1cm'), unit('2 inch')], [unit('2km'), unit('1 foot')]], matrix([[unit('foot'), unit('foot')], [unit('cm'), unit('foot')]])), matrix([[unit('1cm').to('foot'), unit('2 inch').to('foot')], [unit('2km').to('cm'), unit('1 foot').to('foot')]])) }) }) describe('DenseMatrix', function () { it('should perform the given unit conversion, dense matrix - scalar', function () { - approx.deepEqual(math.to(matrix([unit('1cm'), unit('2 inch'), unit('2km')]), unit('foot')), matrix([new Unit(0.032808, 'foot').to('foot'), new Unit(0.16667, 'foot').to('foot'), new Unit(6561.7, 'foot').to('foot')])) - approx.deepEqual(math.to(unit('1cm'), matrix([unit('cm'), unit('foot'), unit('km'), unit('m')])), matrix([new Unit(1, 'cm').to('cm'), new Unit(1, 'cm').to('foot'), new Unit(1, 'cm').to('km'), new Unit(1, 'cm').to('m')])) + approxDeepEqual(math.to(matrix([unit('1cm'), unit('2 inch'), unit('2km')]), unit('foot')), matrix([new Unit(0.032808, 'foot').to('foot'), new Unit(0.16667, 'foot').to('foot'), new Unit(6561.7, 'foot').to('foot')])) + approxDeepEqual(math.to(unit('1cm'), matrix([unit('cm'), unit('foot'), unit('km'), unit('m')])), matrix([new Unit(1, 'cm').to('cm'), new Unit(1, 'cm').to('foot'), new Unit(1, 'cm').to('km'), new Unit(1, 'cm').to('m')])) }) it('should perform the given unit conversion, dense matrix - array', function () { - approx.deepEqual(math.to(matrix([[unit('1cm'), unit('2 inch')], [unit('2km'), unit('1 foot')]]), [[unit('foot'), unit('foot')], [unit('cm'), unit('foot')]]), matrix([[unit('1cm').to('foot'), unit('2 inch').to('foot')], [unit('2km').to('cm'), unit('1 foot').to('foot')]])) + approxDeepEqual(math.to(matrix([[unit('1cm'), unit('2 inch')], [unit('2km'), unit('1 foot')]]), [[unit('foot'), unit('foot')], [unit('cm'), unit('foot')]]), matrix([[unit('1cm').to('foot'), unit('2 inch').to('foot')], [unit('2km').to('cm'), unit('1 foot').to('foot')]])) }) it('should perform the given unit conversion, dense matrix - dense matrix', function () { - approx.deepEqual(math.to(matrix([[unit('1cm'), unit('2 inch')], [unit('2km'), unit('1 foot')]]), matrix([[unit('foot'), unit('foot')], [unit('cm'), unit('foot')]])), matrix([[unit('1cm').to('foot'), unit('2 inch').to('foot')], [unit('2km').to('cm'), unit('1 foot').to('foot')]])) + approxDeepEqual(math.to(matrix([[unit('1cm'), unit('2 inch')], [unit('2km'), unit('1 foot')]]), matrix([[unit('foot'), unit('foot')], [unit('cm'), unit('foot')]])), matrix([[unit('1cm').to('foot'), unit('2 inch').to('foot')], [unit('2km').to('cm'), unit('1 foot').to('foot')]])) }) }) diff --git a/test/unit-tests/plain/number/arithmetic.test.js b/test/unit-tests/plain/number/arithmetic.test.js index 8637073196..d0d1e8e767 100644 --- a/test/unit-tests/plain/number/arithmetic.test.js +++ b/test/unit-tests/plain/number/arithmetic.test.js @@ -1,5 +1,5 @@ import assert from 'assert' -import approx from '../../../../tools/approx.js' +import { approxEqual } from '../../../../tools/approx.js' import { modNumber } from '../../../../src/plain/number/arithmetic.js' describe('mod', function () { @@ -10,15 +10,15 @@ describe('mod', function () { assert.strictEqual(modNumber(0, 0), 0) assert.strictEqual(modNumber(7, 0), 7) - approx.equal(modNumber(7, 2), 1) - approx.equal(modNumber(9, 3), 0) - approx.equal(modNumber(10, 4), 2) - approx.equal(modNumber(-10, 4), 2) - approx.equal(modNumber(8.2, 3), 2.2) - approx.equal(modNumber(4, 1.5), 1) - approx.equal(modNumber(0, 3), 0) - approx.equal(modNumber(-10, 4), 2) - approx.equal(modNumber(-5, 3), 1) + approxEqual(modNumber(7, 2), 1) + approxEqual(modNumber(9, 3), 0) + approxEqual(modNumber(10, 4), 2) + approxEqual(modNumber(-10, 4), 2) + approxEqual(modNumber(8.2, 3), 2.2) + approxEqual(modNumber(4, 1.5), 1) + approxEqual(modNumber(0, 3), 0) + approxEqual(modNumber(-10, 4), 2) + approxEqual(modNumber(-5, 3), 1) }) it('should calculate mod for negative divisor', function () { diff --git a/test/unit-tests/type/number.test.js b/test/unit-tests/type/number.test.js index 06a64a1b4f..dd4bf21a90 100644 --- a/test/unit-tests/type/number.test.js +++ b/test/unit-tests/type/number.test.js @@ -1,38 +1,38 @@ import assert from 'assert' import math from '../../../src/defaultInstance.js' -import approx from '../../../tools/approx.js' +import { approxEqual } from '../../../tools/approx.js' const number = math.number describe('number', function () { it('should be 0 if called with no argument', function () { - approx.equal(number(), 0) + approxEqual(number(), 0) }) it('should convert a boolean to a number', function () { - approx.equal(number(true), 1) - approx.equal(number(false), 0) + approxEqual(number(true), 1) + approxEqual(number(false), 0) }) it('should convert null to a number', function () { - approx.equal(number(null), 0) + approxEqual(number(null), 0) }) it('should convert a bignumber to a number', function () { - approx.equal(number(math.bignumber(0.1)), 0.1) - approx.equal(number(math.bignumber('1.3e500')), Infinity) + approxEqual(number(math.bignumber(0.1)), 0.1) + approxEqual(number(math.bignumber('1.3e500')), Infinity) }) it('should convert a fraction to a number', function () { - approx.equal(number(math.fraction(2, 5)), 0.4) + approxEqual(number(math.fraction(2, 5)), 0.4) }) it('should accept a number as argument', function () { - approx.equal(number(3), 3) - approx.equal(number(-3), -3) + approxEqual(number(3), 3) + approxEqual(number(-3), -3) }) it('should convert a unit to a number', function () { - approx.equal(number(math.unit('52cm'), 'm'), 0.52) + approxEqual(number(math.unit('52cm'), 'm'), 0.52) }) it('should convert the value of a unit to a number', function () { @@ -41,10 +41,10 @@ describe('number', function () { }) it('should parse the string if called with a valid string', function () { - approx.equal(number('2.1e3'), 2100) - approx.equal(number(' 2.1e-3 '), 0.0021) - approx.equal(number(''), 0) - approx.equal(number(' '), 0) + approxEqual(number('2.1e3'), 2100) + approxEqual(number(' 2.1e-3 '), 0.0021) + approxEqual(number(''), 0) + approxEqual(number(' '), 0) }) it('should throw an error if called with an invalid string', function () { diff --git a/test/unit-tests/type/unit/Unit.test.js b/test/unit-tests/type/unit/Unit.test.js index db6822e075..871d518dbf 100644 --- a/test/unit-tests/type/unit/Unit.test.js +++ b/test/unit-tests/type/unit/Unit.test.js @@ -1,5 +1,5 @@ import assert from 'assert' -import approx from '../../../../tools/approx.js' +import { approxEqual, approxDeepEqual } from '../../../../tools/approx.js' import math from '../../../../src/defaultInstance.js' import { isBigNumber, isFraction } from '../../../../src/utils/is.js' import { hasOwnProperty } from '../../../../src/utils/object.js' @@ -231,21 +231,21 @@ describe('Unit', function () { describe('toNumber', function () { it('should convert a unit to a number', function () { const u = new Unit(5000, 'cm') - approx.equal(u.toNumber('mm'), 50000) + approxEqual(u.toNumber('mm'), 50000) - approx.equal(new Unit(5.08, 'cm').toNumber('inch'), 2) + approxEqual(new Unit(5.08, 'cm').toNumber('inch'), 2) - approx.equal(new Unit(101325, 'N/m^2').toNumber('lbf/in^2'), 14.6959487763741) + approxEqual(new Unit(101325, 'N/m^2').toNumber('lbf/in^2'), 14.6959487763741) }) it('should convert a unit with fixed prefix to a number', function () { const u1 = new Unit(5000, 'cm') const u2 = u1.to('km') - approx.equal(u2.toNumber('mm'), 50000) + approxEqual(u2.toNumber('mm'), 50000) const u3 = new Unit(981, 'cm/s^2') const u4 = u3.to('km/ms^2') - approx.equal(u4.toNumber('m/s^2'), 9.81) + approxEqual(u4.toNumber('m/s^2'), 9.81) }) it('should convert a unit with fraction to a number', function () { @@ -326,7 +326,7 @@ describe('Unit', function () { it('should convert a Complex unit', function () { const u1 = new Unit(math.complex(300, 400), 'kPa') const u2 = u1.to('lbf/in^2') - approx.deepEqual(u2.value, math.complex(300000, 400000)) + approxDeepEqual(u2.value, math.complex(300000, 400000)) assert.deepStrictEqual(u2.toString(), '(43.511321319062766 + 58.01509509208368i) lbf / in^2') }) @@ -663,7 +663,7 @@ describe('Unit', function () { unit: 'cm', fixPrefix: false }) - approx.deepEqual(new Unit(math.complex(2, 4), 'g').toJSON(), + approxDeepEqual(new Unit(math.complex(2, 4), 'g').toJSON(), { mathjs: 'Unit', value: math.complex(2, 4), @@ -822,37 +822,37 @@ describe('Unit', function () { assert.strictEqual(unit1.units[0].prefix.name, 'k') unit1 = Unit.parse('-5mg') - approx.equal(unit1.value, -0.000005) + approxEqual(unit1.value, -0.000005) assert.strictEqual(unit1.units[0].unit.name, 'g') assert.strictEqual(unit1.units[0].prefix.name, 'm') unit1 = Unit.parse('5.2mg') - approx.equal(unit1.value, 0.0000052) + approxEqual(unit1.value, 0.0000052) assert.strictEqual(unit1.units[0].unit.name, 'g') assert.strictEqual(unit1.units[0].prefix.name, 'm') unit1 = Unit.parse('300 kg/minute') - approx.equal(unit1.value, 5) + approxEqual(unit1.value, 5) assert.strictEqual(unit1.units[0].unit.name, 'g') assert.strictEqual(unit1.units[1].unit.name, 'minute') assert.strictEqual(unit1.units[0].prefix.name, 'k') unit1 = Unit.parse('981 cm/s^2') - approx.equal(unit1.value, 9.81) + approxEqual(unit1.value, 9.81) assert.strictEqual(unit1.units[0].unit.name, 'm') assert.strictEqual(unit1.units[1].unit.name, 's') assert.strictEqual(unit1.units[1].power, -2) assert.strictEqual(unit1.units[0].prefix.name, 'c') unit1 = Unit.parse('981 cm*s^-2') - approx.equal(unit1.value, 9.81) + approxEqual(unit1.value, 9.81) assert.strictEqual(unit1.units[0].unit.name, 'm') assert.strictEqual(unit1.units[1].unit.name, 's') assert.strictEqual(unit1.units[1].power, -2) assert.strictEqual(unit1.units[0].prefix.name, 'c') unit1 = Unit.parse('8.314 kg m^2 / s^2 / K / mol') - approx.equal(unit1.value, 8.314) + approxEqual(unit1.value, 8.314) assert.strictEqual(unit1.units[0].unit.name, 'g') assert.strictEqual(unit1.units[1].unit.name, 'm') assert.strictEqual(unit1.units[2].unit.name, 's') @@ -866,28 +866,28 @@ describe('Unit', function () { assert.strictEqual(unit1.units[0].prefix.name, 'k') unit1 = Unit.parse('5exabytes') - approx.equal(unit1.value, 4e19) + approxEqual(unit1.value, 4e19) assert.strictEqual(unit1.units[0].unit.name, 'bytes') unit1 = Unit.parse('1 / s') - approx.equal(unit1.value, 1) + approxEqual(unit1.value, 1) assert.strictEqual(unit1.units[0].unit.name, 's') assert.strictEqual(unit1.units[0].power, -1) unit1 = Unit.parse('1/s') - approx.equal(unit1.value, 1) + approxEqual(unit1.value, 1) assert.strictEqual(unit1.units[0].unit.name, 's') assert.strictEqual(unit1.units[0].power, -1) unit1 = Unit.parse('1 * s') - approx.equal(unit1.value, 1) + approxEqual(unit1.value, 1) assert.strictEqual(unit1.units[0].unit.name, 's') assert.strictEqual(unit1.units[0].power, 1) }) it('should parse expressions with nested parentheses correctly', function () { let unit1 = Unit.parse('8.314 kg (m^2 / (s^2 / (K^-1 / mol)))') - approx.equal(unit1.value, 8.314) + approxEqual(unit1.value, 8.314) assert.strictEqual(unit1.units[0].unit.name, 'g') assert.strictEqual(unit1.units[1].unit.name, 'm') assert.strictEqual(unit1.units[2].unit.name, 's') @@ -923,7 +923,7 @@ describe('Unit', function () { it('should parse units with correct precedence', function () { const unit1 = Unit.parse('1 m^3 / kg s^2') // implicit multiplication - approx.equal(unit1.value, 1) + approxEqual(unit1.value, 1) assert.strictEqual(unit1.units[0].unit.name, 'm') assert.strictEqual(unit1.units[1].unit.name, 'g') assert.strictEqual(unit1.units[2].unit.name, 's') @@ -1118,12 +1118,12 @@ describe('Unit', function () { assert.strictEqual(unit2.units[0].prefix.name, 'kilo') const unit3 = new Unit(5, 'inches') - approx.equal(unit3.value, 0.127) + approxEqual(unit3.value, 0.127) assert.strictEqual(unit3.units[0].unit.name, 'inches') assert.strictEqual(unit3.units[0].prefix.name, '') const unit4 = new Unit(9.81, 'meters/second^2') - approx.equal(unit4.value, 9.81) + approxEqual(unit4.value, 9.81) assert.strictEqual(unit4.units[0].unit.name, 'meters') assert.strictEqual(unit4.units[0].prefix.name, '') diff --git a/test/unit-tests/type/unit/physicalConstants.test.js b/test/unit-tests/type/unit/physicalConstants.test.js index c31320d550..052f0c27b4 100644 --- a/test/unit-tests/type/unit/physicalConstants.test.js +++ b/test/unit-tests/type/unit/physicalConstants.test.js @@ -1,5 +1,5 @@ import assert from 'assert' -import approx from '../../../../tools/approx.js' +import { approxEqual } from '../../../../tools/approx.js' import { createAtomicMass, createAvogadro, @@ -96,7 +96,7 @@ describe('physical constants', function () { assert.strictEqual(createClassicalElectronRadius(dependencies).toString(), '2.8179403262e-15 m') assert.strictEqual(createElectronMass(dependencies).toString(), '9.1093837015e-31 kg') assert.strictEqual(createFermiCoupling(dependencies).toString(), '1.1663787e-5 GeV^-2') - approx.equal(createFineStructure(dependencies), 7.2973525693e-3) + approxEqual(createFineStructure(dependencies), 7.2973525693e-3) assert.strictEqual(createHartreeEnergy(dependencies).toString(), '4.3597447222071e-18 J') assert.strictEqual(createProtonMass(dependencies).toString(), '1.67262192369e-27 kg') assert.strictEqual(createDeuteronMass(dependencies).toString(), '3.3435830926e-27 kg') @@ -104,8 +104,8 @@ describe('physical constants', function () { assert.strictEqual(createQuantumOfCirculation(dependencies).toString(), '3.6369475516e-4 m^2 / s') assert.strictEqual(createRydberg(dependencies).toString(), '1.097373156816e+7 m^-1') assert.strictEqual(createThomsonCrossSection(dependencies).toString(), '6.6524587321e-29 m^2') - approx.equal(createWeakMixingAngle(dependencies), 0.22290) - approx.equal(createEfimovFactor(dependencies), 22.7) + approxEqual(createWeakMixingAngle(dependencies), 0.22290) + approxEqual(createEfimovFactor(dependencies), 22.7) // Physico-chemical constants assert.strictEqual(createAtomicMass(dependencies).toString(), '1.6605390666e-27 kg') @@ -117,7 +117,7 @@ describe('physical constants', function () { assert.strictEqual(createGasConstant(dependencies).toString(), '8.31446261815324 J / (K mol)') assert.strictEqual(createMolarPlanckConstant(dependencies).toString(), '3.990312712893431e-10 (J s) / mol') assert.strictEqual(createMolarVolume(dependencies).toString(), '0.022413969545014137 m^3 / mol') - approx.equal(createSackurTetrode(dependencies), -1.16487052358) + approxEqual(createSackurTetrode(dependencies), -1.16487052358) assert.strictEqual(createSecondRadiation(dependencies).toString(), '0.014387768775039337 m K') assert.strictEqual(createStefanBoltzmann(dependencies).toString(), '5.67037441918443e-8 W / (m^2 K^4)') assert.strictEqual(createWienDisplacement(dependencies).toString(), '0.002897771955 m K') diff --git a/tools/approx.js b/tools/approx.js index eda6fadeb9..e1a297739f 100644 --- a/tools/approx.js +++ b/tools/approx.js @@ -1,5 +1,5 @@ -const assert = require('assert') -const hasOwnProperty = require('./utils').hasOwnProperty +import assert from 'assert' // do not use 'node:assert' here, that is not supported by Karma +import { hasOwnProperty } from './utils.js' const EPSILON = 0.0001 @@ -19,7 +19,7 @@ function isNumber (value) { * @param {Number | BigNumber | Complex | Fraction} b * @param {Number} [epsilon] */ -exports.equal = function equal (a, b, epsilon) { +export function approxEqual (a, b, epsilon) { if (epsilon === undefined) { epsilon = EPSILON } @@ -40,19 +40,19 @@ exports.equal = function equal (a, b, epsilon) { assert.ok(diff <= maxDiff, (a + ' ~= ' + b + ' (epsilon: ' + epsilon + ')')) } } else if (a && a.isBigNumber) { - return exports.equal(a.toNumber(), b, epsilon) + return approxEqual(a.toNumber(), b, epsilon) } else if (b && b.isBigNumber) { - return exports.equal(a, b.toNumber(), epsilon) + return approxEqual(a, b.toNumber(), epsilon) } else if ((a && a.isComplex) || (b && b.isComplex)) { if (a && a.isComplex && b && b.isComplex) { - exports.equal(a.re, b.re, epsilon) - exports.equal(a.im, b.im, epsilon) + approxEqual(a.re, b.re, epsilon) + approxEqual(a.im, b.im, epsilon) } else if (a && a.isComplex) { - exports.equal(a.re, b, epsilon) - exports.equal(a.im, 0, epsilon) + approxEqual(a.re, b, epsilon) + approxEqual(a.im, 0, epsilon) } else if (b && b.isComplex) { - exports.equal(a, b.re, epsilon) - exports.equal(0, b.im, epsilon) + approxEqual(a, b.re, epsilon) + approxEqual(0, b.im, epsilon) } } else { assert.strictEqual(a, b) @@ -66,20 +66,20 @@ exports.equal = function equal (a, b, epsilon) { * @param {*} b * @param {number} [epsilon] */ -exports.deepEqual = function deepEqual (a, b, epsilon) { +export function approxDeepEqual (a, b, epsilon) { let prop, i, len if (Array.isArray(a) && Array.isArray(b)) { assert.strictEqual(a.length, b.length, a + ' ~= ' + b) for (i = 0, len = a.length; i < len; i++) { - deepEqual(a[i], b[i], epsilon) + approxDeepEqual(a[i], b[i], epsilon) } } else if (a instanceof Object && b instanceof Object) { for (prop in a) { if (hasOwnProperty(a, prop)) { assert.ok(hasOwnProperty(b, prop), a[prop] + ' ~= ' + b[prop] + ' (epsilon: ' + epsilon + ', prop: ' + prop + ')') - deepEqual(a[prop], b[prop], epsilon) + approxDeepEqual(a[prop], b[prop], epsilon) } } @@ -87,10 +87,10 @@ exports.deepEqual = function deepEqual (a, b, epsilon) { if (hasOwnProperty(b, prop)) { assert.ok(hasOwnProperty(a, prop), a[prop] + ' ~= ' + b[prop] + ' (epsilon: ' + epsilon + ', prop: ' + prop + ')') - deepEqual(a[prop], b[prop], epsilon) + approxDeepEqual(a[prop], b[prop], epsilon) } } } else { - exports.equal(a, b, epsilon) + approxEqual(a, b, epsilon) } } diff --git a/tools/docgenerator.js b/tools/docgenerator.js index 4f0ff0b93f..de962797c9 100644 --- a/tools/docgenerator.js +++ b/tools/docgenerator.js @@ -5,11 +5,11 @@ * The tool can parse documentation information from the block comment in the * functions code, and generate a markdown file with the documentation. */ -const fs = require('fs') -const glob = require('glob') -const { mkdirp } = require('mkdirp') -const del = require('del') -const log = require('fancy-log') +import fs from 'node:fs' +import { glob } from 'glob' +import { mkdirp } from 'mkdirp' +import { deleteSync } from 'del' +import log from 'fancy-log' // special cases for function syntax const SYNTAX = { @@ -64,7 +64,7 @@ const IGNORE_WARNINGS = { * describing a math.js function * @return {Object} doc json document */ -function generateDoc (name, code) { +export function generateDoc (name, code) { // get block comment from code const commentRegex = /\/\*\*([^*]|[\r\n]|(\*+([^*/]|[\r\n])))*\*+\//g // const match = commentRegex.exec(code) @@ -374,7 +374,7 @@ function generateDoc (name, code) { * @param {Object} doc * @return {String[]} issues */ -function validateDoc (doc) { +export function validateDoc (doc) { const issues = [] function ignore (field) { @@ -453,7 +453,7 @@ function validateDoc (doc) { * under seeAlso * @returns {string} markdown Markdown contents */ -function generateMarkdown (doc, functions) { +export function generateMarkdown (doc, functions) { let text = '' // TODO: should escape HTML characters in text @@ -526,9 +526,9 @@ function generateMarkdown (doc, functions) { * @param {String} outputPath Path to /docs/reference/functions * @param {String} outputRoot Path to /docs/reference */ -function cleanup (outputPath, outputRoot) { +export function cleanup (outputPath, outputRoot) { // cleanup previous docs - del.sync([ + deleteSync([ outputPath + '/*.md', outputRoot + '/functions.md' ]) @@ -544,10 +544,14 @@ function cleanup (outputPath, outputRoot) { * keys name, category, fullPath, doc, and issues * giving the relevant information */ -function collectDocs (functionNames, inputPath) { - // glob@8 doesn't work on Windows, which has \ separators instead of / - const linuxInputPath = inputPath.replace(/\\/g, '/') + '**/*.js' - const files = glob.sync(linuxInputPath) +export function collectDocs (functionNames, inputPath) { + function normalizeWindowsPath(path) { + return path.replace(/\\/g, '/') + } + + // glob doesn't work on Windows, which has \ separators instead of / + const linuxInputPath = normalizeWindowsPath(inputPath + '**/*.js') + const files = glob.sync(linuxInputPath).sort().map(normalizeWindowsPath) // generate path information for each of the files const functions = {} // TODO: change to array @@ -622,7 +626,7 @@ function collectDocs (functionNames, inputPath) { * @param {String} outputPath Path to /docs/reference/functions * @param {String} outputRoot Path to /docs/reference */ -function iteratePath (functionNames, inputPath, outputPath, outputRoot) { +export function iteratePath (functionNames, inputPath, outputPath, outputRoot) { if (!fs.existsSync(outputPath)) { mkdirp.sync(outputPath) } @@ -726,11 +730,3 @@ function findAll (text, regex) { return matches } - -// exports -exports.cleanup = cleanup -exports.collectDocs = collectDocs -exports.iteratePath = iteratePath -exports.generateDoc = generateDoc -exports.validateDoc = validateDoc -exports.generateMarkdown = generateMarkdown diff --git a/tools/entryGenerator.js b/tools/entryGenerator.js index 56f478f3bb..fa1b10fac3 100644 --- a/tools/entryGenerator.js +++ b/tools/entryGenerator.js @@ -1,8 +1,10 @@ -const fs = require('fs') -const path = require('path') -const Handlebars = require('handlebars') -const hasOwnProperty = require('./utils').hasOwnProperty +import fs from 'node:fs' +import path from 'node:path' +import { fileURLToPath } from 'node:url' +import Handlebars from 'handlebars' +import { hasOwnProperty } from './utils.js' +const __dirname = path.dirname(fileURLToPath(import.meta.url)) const ENTRY_FOLDER = path.join(__dirname, '../src/entry') const IGNORED_DEPENDENCIES = { @@ -149,7 +151,7 @@ Chain.createProxy(math) export { embeddedDocs as docs } from '../expression/embeddedDocs/embeddedDocs.js' `) -exports.generateEntryFiles = async function () { +export async function generateEntryFiles () { const factoriesAny = await import('../src/factoriesAny.js') const factoriesNumber = await import('../src/factoriesNumber.js') @@ -486,9 +488,7 @@ function findKey (object, value) { * @param {Array} factories * @return {Array} Returns sorted factories */ -exports.sortFactories = sortFactories - -function sortFactories (factories) { +export function sortFactories (factories) { const loaded = {} const leftOverFactories = factories.slice() const sortedFactories = [] diff --git a/tools/matrixmarket.js b/tools/matrixmarket.js index 406ad8022d..b2d66239c1 100644 --- a/tools/matrixmarket.js +++ b/tools/matrixmarket.js @@ -1,11 +1,8 @@ -const fs = require('fs') -const typed = require('typed-function') -const { create, all } = require('../lib/cjs/index.js') -const math = create(all) -const Spa = math.Spa -const DenseMatrix = math.DenseMatrix -const SparseMatrix = math.SparseMatrix -const FibonacciHeap = math.FibonacciHeap +import fs from 'node:fs' +import typed from 'typed-function' +import { create, all } from '../lib/esm/index.js' + +const { Spa, DenseMatrix, SparseMatrix, FibonacciHeap } = create(all) const _importFromStream = function (stream) { return new Promise(function (resolve, reject) { @@ -279,7 +276,7 @@ const _importFromStream = function (stream) { /** * Imports a Matrix Market matrix from the filesystem. (https://math.nist.gov/MatrixMarket/) */ -const _import = typed('importMatrix', { +export const marketImport = typed('importMatrix', { Array: function (files) { return Promise.all(files.map(file => _import(file))) }, @@ -288,7 +285,3 @@ const _import = typed('importMatrix', { return _importFromStream(input) } }) - -module.exports = { - import: _import -} diff --git a/tools/package.json b/tools/package.json deleted file mode 100644 index 5bbefffbab..0000000000 --- a/tools/package.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "type": "commonjs" -} diff --git a/tools/update-authors.js b/tools/update-authors.js index 3ed4e2bd78..fa0eb65032 100644 --- a/tools/update-authors.js +++ b/tools/update-authors.js @@ -7,11 +7,13 @@ // Usage: tools/update-author.js [--dry] // Passing --dry will redirect output to stdout rather than write to 'AUTHORS'. -'use strict' -const { spawn } = require('child_process') -const path = require('path') -const fs = require('fs') -const readline = require('readline') +import { spawn } from 'node:child_process' +import path from 'node:path' +import fs from 'node:fs' +import readline from 'node:readline' +import { fileURLToPath } from 'node:url' + +const __dirname = path.dirname(fileURLToPath(import.meta.url)) class CaseIndifferentMap { constructor () { diff --git a/tools/utils.js b/tools/utils.js index 55cf4f2ca4..feadef025f 100644 --- a/tools/utils.js +++ b/tools/utils.js @@ -1,8 +1,6 @@ // helper function to safely check whether an object as a property // copy from the function in object.js which is ES6 -function hasOwnProperty (object, property) { +export function hasOwnProperty (object, property) { return object && Object.hasOwnProperty.call(object, property) } - -exports.hasOwnProperty = hasOwnProperty diff --git a/tools/validateAsciiChars.js b/tools/validateAsciiChars.js index 445e35f0ae..70bd65fb41 100644 --- a/tools/validateAsciiChars.js +++ b/tools/validateAsciiChars.js @@ -1,11 +1,11 @@ -const fs = require('fs') -const path = require('path') +import fs from 'node:fs' +import path from 'node:path' /** * Test whether a file contains only ASCII characters * Returns an Array with the characters which are not ASCII, i.e. char code >= 128 */ -exports.validateChars = function validateChars (filename) { +export function validateChars (filename) { const contents = fs.readFileSync(filename) const lines = [] const invalidChars = [] @@ -63,7 +63,7 @@ exports.validateChars = function validateChars (filename) { * @param {string} dir Dir path string. * @return {string[]} Array with all file names that are inside the directory. */ -exports.getAllFiles = function getAllFiles (dir) { +export function getAllFiles (dir) { return fs.readdirSync(dir).reduce(function (files, file) { const name = path.join(dir, file) const isDirectory = fs.statSync(name).isDirectory() diff --git a/tools/whitelistgenerator.js b/tools/whitelistgenerator.js index 037382dd8f..569ae24ece 100644 --- a/tools/whitelistgenerator.js +++ b/tools/whitelistgenerator.js @@ -1,8 +1,9 @@ // generates a whitelist of safe methods and functions -const hasOwnProperty = require('./utils').hasOwnProperty +import { hasOwnProperty } from './utils.js' +import { create, all } from '../lib/esm/index.js' // math.js functions (can be used when chaining -const math = require('../index') +const math = create(all) const chain = { done: true, valueOf: true,