/*! * Matomo - free/libre analytics platform * * @link https://matomo.org * @license https://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later */ /* eslint-disable @typescript-eslint/ban-ts-comment */ import { create as createMathJs, evaluateDependencies, // @ts-ignore } from 'mathjs/lib/esm/number'; const math = createMathJs({ evaluateDependencies, }); // add our own simple operators to avoid having to import math.js' ones, to keep the // generated size down. math.import( { // eslint-disable-next-line @typescript-eslint/no-explicit-any add: (a: any, b: any) => a + b, // eslint-disable-next-line @typescript-eslint/no-explicit-any subtract: (a: any, b: any) => a - b, // eslint-disable-next-line @typescript-eslint/no-explicit-any multiply: (a: any, b: any) => a * b, // eslint-disable-next-line @typescript-eslint/no-explicit-any divide: (a: any, b: any) => a / b, // eslint-disable-next-line equal: (a: any, b: any) => a == b, // eslint-disable-next-line unequal: (a: any, b: any) => a != b, // eslint-disable-next-line @typescript-eslint/no-explicit-any not: (a: any) => !a, // eslint-disable-next-line @typescript-eslint/no-explicit-any and: (a: any, b: any) => a && b, // eslint-disable-next-line @typescript-eslint/no-explicit-any or: (a: any, b: any) => a || b, // eslint-disable-next-line @typescript-eslint/no-explicit-any largerEq: (a: any, b: any) => a >= b, // eslint-disable-next-line @typescript-eslint/no-explicit-any larger: (a: any, b: any) => a > b, // eslint-disable-next-line @typescript-eslint/no-explicit-any smallerEq: (a: any, b: any) => a <= b, // eslint-disable-next-line @typescript-eslint/no-explicit-any smaller: (a: any, b: any) => a < b, }, { override: true, }, ); export default math;