@yantrix/functions
Version:
Typescript built-ins for Yantrix framework
1 lines • 64.9 kB
Source Map (JSON)
{"version":3,"sources":["../src/internals.ts","../src/typescript/conditionals.ts","../src/typescript/utils/errors.ts","../src/typescript/predicates.ts","../src/typescript/transformers.ts","../src/typescript/types/guards.ts","../src/typescript/collections.ts","../src/typescript/maths.ts","../src/typescript/special_maths.ts","../src/typescript/stats.ts","../src/index.ts"],"names":["_","min","max","isNumber","values","isEqual","isNull","every","some","isNil","concat","find","indexOf","keys","merge","omit","pick","repeat","reverse","sample","shuffle","zip","isArray","isObject","sum","_2","isPositiveInteger","isPositiveNumber"],"mappings":"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","file":"index.cjs","sourcesContent":["import { GenericAutomata, TAbstractConstructor } from '@yantrix/automata';\nimport { isNumber } from 'lodash-es';\n\n// ==============================\n// Built-ins: Internals\n// ==============================\n\n/**\n * Wrapper for a function that retrieves the current state ID of the auto mata.\n *\n * @template T - The type of the automata.\n *\n * @param automataClass - The constructor of the automata.\n * @returns A function that takes an automata instance and returns its current state ID or null.\n */\nfunction currentStateId<\n\tT extends GenericAutomata,\n>(automataClass: TAbstractConstructor<T>): (automata: T) => number | null {\n\treturn (automata: T) => automata instanceof automataClass ? automata.state : null;\n}\n/**\n * Wrapper for a function that retrieves the current state name of the automata after lookup in the states dictionary.\n *\n * @template T - The type of the automata.\n *\n * @param automataClass - The constructor of the automata.\n * @param statesDictionary - A dictionary mapping state names to state IDs.\n * @returns A function that takes an automata instance and returns its current state name or null.\n */\nfunction currentStateName<\n\tT extends GenericAutomata,\n>(automataClass: TAbstractConstructor<T>, statesDictionary: Record<string, number>): (automata: T) => string | null {\n\treturn (automata: T) => automata instanceof automataClass\n\t\t? (Object.entries(statesDictionary).find(([_, id]) => id === automata.state)?.[0] ?? null)\n\t\t: null;\n}\n/**\n * Wrapper for a function that retrieves the current(i.e last dispatched) action ID of the automata.\n *\n * @template T - The type of the automata.\n *\n * @param automataClass - The constructor of the automata.\n * @returns A function that takes an automata instance and returns its last action ID or null.\n */\nfunction currentActionId<\n\tT extends GenericAutomata,\n>(automataClass: TAbstractConstructor<T>): (automata: T) => number | null {\n\treturn (automata: T) => automata instanceof automataClass ? automata.lastAction : null;\n}\n/**\n * Wrapper for a function that retrieves the current(i.e last dispatched) action name of the automata after lookup in actions dictionary.\n *\n * @template T - The type of the automata.\n *\n * @param automataClass - The constructor of the automata.\n * @param actionsDictionary - A dictionary mapping action names to action IDs.\n * @returns A function that takes an automata instance and returns its last action name or null.\n */\nfunction currentActionName<\n\tT extends GenericAutomata,\n>(automataClass: TAbstractConstructor<T>, actionsDictionary: Record<string, number>): (automata: T) => string | null {\n\treturn (automata: T) => automata instanceof automataClass\n\t\t? (Object.entries(actionsDictionary).find(([_, id]) => id === automata.lastAction)?.[0] ?? null)\n\t\t: null;\n}\n/**\n * Wrapper for a function that retrieves the current reduction cycle of the FSM.\n *\n * @template T - The type of the automata.\n *\n * @param automataClass - The constructor of the automata.\n * @returns A function that takes an automata instance and returns its current cycle.\n */\nfunction currentCycle<\n\tT extends GenericAutomata,\n>(automataClass: TAbstractConstructor<T>): (automata: T) => number | null {\n\treturn (automata: T) => automata instanceof automataClass ? automata.currentCycle : null;\n}\n/**\n * Wrapper for a function that retrieves the current epoch object reference (or global reduction cycle counter for all automatas).\n *\n * @param epochRef - The epoch reference object.\n * @returns A function that returns the epoch reference.\n */\nfunction currentEpoch(epochRef: { val: number }): () => { val: number } {\n\treturn () => epochRef;\n}\n/**\n * Retrieves the current timestamp in microseconds.\n * Priority of retrieval methods is as follows:\n * 1. `process.hrtime.bigint()` (Node.js)\n * 2. `performance.now()` (Node.js)\n * 3. `Date.now()` (JavaScript)\n *\n * @returns The current timestamp in microseconds since the Unix epoch.\n */\nfunction currentTimestamp(): number {\n\tif (typeof process !== 'undefined' && process.hrtime?.bigint !== undefined) {\n\t\treturn Number(process.hrtime.bigint() / BigInt(1000));\n\t} else if (typeof performance !== 'undefined' && performance.now !== undefined) {\n\t\treturn Math.floor(performance.now() * 1000);\n\t} else {\n\t\treturn Date.now() * 1000;\n\t}\n}\n/**\n * Retrieves the current time in ISO-8601 format.\n *\n * @returns The current time as a string in ISO-8601 format.\n */\nfunction currentTime(): string {\n\treturn new Date().toISOString();\n}\n/**\n * Generates a random number within a specified range or as a binary value.\n *\n * @param min - The minimum value of the range (inclusive).\n * @param max - The maximum value of the range (exclusive).\n * @returns A random number within the range if both min and max are provided, otherwise 0 or 1.\n */\nfunction random(min?: number, max?: number): number {\n\tif (isNumber(min) && isNumber(max)) return Math.floor(Math.random() * (max - min) + min);\n\telse return Math.round(Math.random());\n}\n\n/**\n * Generates a weighted random value based on the provided object.\n *\n * @param object - An object where keys are items and values are their weights.\n * @returns A randomly selected value based on the weights.\n * @throws An error if the object contains NaN values or if no value can be selected.\n */\nfunction weightedRandom(object: { [key: string]: number }): string {\n\t// https://trekhleb.medium.com/weighted-random-in-javascript-4748ab3a1500\n\n\tconst objectKeys: string[] = Object.keys(object);\n\tconst objectWeights: number[] = Object.values(object);\n\n\t// Check if the object is empty\n\tif (objectKeys.length === 0) throw new Error('Weighted random object is empty');\n\n\t// Check if any of the object's values is not a positive integer\n\tfor (const value of objectWeights) {\n\t\tif (!Number.isInteger(value)) throw new Error('Weighted random object contains non-integer values');\n\t\telse if (value <= 0) throw new Error('Weighted random object contains values of 0 or less');\n\t}\n\n\tconst weightsSum = objectWeights.reduce((acc, weight) => acc + weight, 0);\n\tconst cumulativeWeights: number[] = [];\n\tlet cumulativeWeight = 0;\n\tfor (\n\t\tlet index = 0;\n\t\tindex < objectWeights.length;\n\t\tindex++\n\t) {\n\t\tcumulativeWeight += objectWeights[index]! / weightsSum;\n\t\tcumulativeWeights.push(cumulativeWeight);\n\t}\n\n\tconst randomNumber = Math.random();\n\n\tfor (let i = 0; i < cumulativeWeights.length; i++) {\n\t\tif (cumulativeWeights[i]! >= randomNumber) return objectKeys[i]!;\n\t}\n\tthrow new Error('Unexpected error, could not get weighted random value');\n}\n\nexport const automataInternals = {\n\tcurrentStateId,\n\tcurrentStateName,\n\tcurrentActionId,\n\tcurrentActionName,\n\tcurrentCycle,\n\tcurrentEpoch,\n};\n\nexport const pureInternals = {\n\tcurrentTimestamp,\n\tcurrentTime,\n\trandom,\n\tweightedRandom,\n};\n","import { invalid } from './utils/errors';\n\n/**\n * Evaluates a condition and returns the corresponding value.\n *\n * @template T - The type of the return value if the condition is true.\n * @param condition - The condition that needs to be checked.\n * @param trueValue - The return value if the condition is true. Defaults to the condition value if not provided.\n * @param falseValue - The return value if the condition is false. Defaults to null if not provided.\n * @returns The return value if the condition is true, otherwise the alternative value.\n */\nfunction _if<T>(condition: any, trueValue?: T, falseValue?: T): T | null {\n\treturn (condition ? trueValue ?? condition : falseValue ?? null);\n}\n\n/**\n * Evaluates a series of conditions and returns the corresponding value for the first true condition.\n *\n * @template T - The type of the return value if the condition is true.\n * @template A - The type of the return value if the condition is false.\n * @param condition - The condition that needs to be checked.\n * @param expression - The return value if the condition is true.\n * @param alt - The return value if the condition is false.\n * @returns The return value if the condition is true, otherwise the alternative value.\n */\nconst _case = <T = any>(...args: [...Array<boolean | T>, T]): T => {\n\tif (!args?.length || args.length % 2 === 0)\n\t\treturn invalid('INVALID_ARGUMENTS');\n\tconst defaultValue = args[args.length - 1] ?? null;\n\t// Validate argument structure at runtime\n\tfor (let i = 0; i < args.length - 1; i++) {\n\t\tif (i % 2 === 0 && typeof args[i] !== 'boolean') {\n\t\t\treturn invalid('INVALID_BINARY_ARGUMENT');\n\t\t}\n\t\tif (args[i] === true) {\n\t\t\tif (typeof args[i + 1] === 'undefined')\n\t\t\t\treturn invalid('INDEX_OUT_OF_RANGE');\n\t\t\treturn args[i + 1] as T;\n\t\t}\n\t}\n\treturn defaultValue as T;\n};\n\n/**\n * Returns the first non-empty and non-null expression from the provided list of expressions.\n *\n * @template T - The type of the expressions, defaults to any.\n * @param values - A list of expressions to evaluate.\n * @returns The first non-null expression, or null if all expressions are null.\n */\nconst coalesce = <T = any>(...values: (T | null | undefined)[]): T | null => {\n\tif (!values?.length) return invalid('INVALID_ARGUMENTS');\n\tfor (const value of values) {\n\t\tif (value !== null && value !== undefined) {\n\t\t\treturn value;\n\t\t}\n\t}\n\treturn null;\n};\n\n/**\n * Selects the element at the specified index from a list of options.\n * If the only argument after the index is an array, it flattens the array before selecting the element.\n *\n * @template T - The type of the elements in the options.\n *\n * @param index - The zero-based index of the element to select.\n * @param options - A list of options to choose from, one by one.\n * @returns The element at the specified index, or undefined if the index is out of bounds.\n *\n * @throws {Error} If no options are provided.\n * @throws {Error} If the index is out of bounds.\n *\n * @example\n * choose(1, 'a', 'b', 'c'); // Returns 'b'\n * choose(2, ['a', 'b', 'c', 'd']); // throws error\n * choose(0); // Throws error\n * choose(5, 'a', 'b', 'c'); // Throws error\n */\nfunction choose<T>(index: number, ...options: T[]): T | undefined {\n\tif (options.length === 0) return invalid('INVALID_NUMBER_OF_ARGUMENTS');\n\tconst flattenedOptions = [...(options || [])] as T[];\n\tif (index < 0 || index >= flattenedOptions.length) return invalid('INDEX_OUT_OF_RANGE');\n\treturn flattenedOptions[index];\n}\n\nexport {\n\t_case as case,\n\tchoose,\n\tcoalesce,\n\t_if as if,\n};\n","export const ERRORS = {\n\tDIVISION_BY_ZERO: 'Division by 0',\n\tINVALID_NUMBER_OF_ARGUMENTS: 'Invalid number of arguments',\n\tINVALID_NUMERIC_ARGUMENT: 'Argument must be provided and be a valid number.',\n\tINVALID_BINARY_ARGUMENT: 'Argument must be provided and be a valid binary',\n\tINVALID_ARGUMENTS: 'Invalid arguments',\n\tINDEX_OUT_OF_RANGE: 'Index out of range',\n\tINVALID_PRECISION_ARGUMENT: 'Precision must be a valid number.',\n\tAT_LEAST_ONE_NUMBER_REQUIRED: 'At least 1 parameter must be provided and be a number.',\n\tALL_ARGUMENTS_MUST_BE_NUMBERS: 'All arguments must be numbers.',\n\tLISTS_MUST_BE_ARRAYS: 'All arguments provided must be lists',\n\tMIN_TWO_LISTS_REQUIRED: 'At least 2 lists of the same length must be provided.',\n\tNON_EMPTY_LISTS_REQUIRED: 'All lists must have at least 1 number.',\n\tLISTS_MUST_BE_SAME_LENGTH: 'All lists provided must be the same length.',\n\tALL_LIST_ITEMS_MUST_BE_NUMERIC: 'All items in the provided lists must be numbers.',\n\tUNEXPECTED_ERROR: 'An unexpected error has occurred.',\n\tALL_ARGUMENTS_MUST_BE_STRINGS: 'All arguments must be strings.',\n\tALL_ARGUMENTS_MUST_BE_LISTS: 'All arguments must be lists.',\n\tINVALID_LIST_ARGUMENT: 'Invalid List argument',\n\tLIST_LENGTH_MISMATCH: 'All List arguments must be of the same length',\n} as const;\n\nconst errorTypes: Partial<Record<keyof typeof ERRORS, ErrorConstructor>> = {\n\tDIVISION_BY_ZERO: EvalError,\n\tINDEX_OUT_OF_RANGE: RangeError,\n\tUNEXPECTED_ERROR: Error,\n};\n\nexport function invalid(errorKey: keyof typeof ERRORS, extra?: string): never {\n\tthrow new (errorTypes[errorKey] ?? TypeError)(ERRORS[errorKey] + (extra ? `: ${extra}` : ''));\n}\n","/**\n * @module\n * @showCategories\n *\n * @categoryDescription Binary Predicates\n * Functions that compare numerical values and return either 'true' or 'false'.\n */\n\nimport { every, isEqual, isNil, isNull, some } from 'lodash-es';\nimport { invalid } from './utils/errors';\n\n// ==============================\n// Logical (binary) predicates\n// ==============================\n\n/**\n * Evaluates a series of conditions and returns true if all conditions are true.\n *\n * @category Binary Predicates\n * @param conditions - An array of boolean conditions to evaluate.\n * @returns True if all conditions are true, otherwise false.\n */\nexport const and = (...conditions: any[]): boolean => every((conditions || []), Boolean) ?? false;\n/**\n * {@inheritDoc and}\n * @category Binary Predicates\n */\nexport const all = and;\n\n/**\n * Evaluates a series of conditions and returns true if at least one condition is true.\n *\n * @category Binary Predicates\n * @param conditions - An array of boolean conditions to evaluate.\n * @returns True if at least one condition is true, otherwise false.\n */\nexport const or = (...conditions: any[]): boolean => some((conditions || []), Boolean) ?? false;\n/**\n * {@inheritDoc or}\n * @category Binary Predicates\n */\nexport const any = or;\n\n/**\n * Negates the provided condition.\n *\n * @category Binary Predicates\n * @param condition - The condition to negate.\n * @returns The negated condition.\n */\nexport const not = (condition: any): boolean => isNil(condition) ? invalid('INVALID_BINARY_ARGUMENT') : !condition;\n\n/**\n * Evaluates a series of conditions and returns true if none of the conditions are true.\n *\n * @category Binary Predicates\n * @param conditions - An array of boolean conditions to evaluate.\n * @returns True if none of the conditions are true, otherwise false.\n */\nexport const none = (...conditions: any[]): boolean => every((conditions || []), t => !t) ?? false;\n\n// ==============================\n// Numeric predicates\n// ==============================\n\n/**\n * Checks if a number is even.\n *\n * @category Numeric Predicates\n * @param n - The number to check.\n * @returns True if the number is even, otherwise false. Throws if the argument is not a number.\n */\nexport function isEven(n: number): boolean | null {\n\tif (!Number.isFinite(n)) return invalid('INVALID_NUMERIC_ARGUMENT');\n\treturn n % 2 === 0;\n}\n\n/**\n * Checks if a number is odd.\n *\n * @category Numeric Predicates\n * @param n - The number to check.\n * @returns True if the number is odd, otherwise false. Throws if the argument is not a number.\n */\nexport function isOdd(n: number): boolean | null {\n\treturn !isEven(n);\n}\n\n/**\n * Checks if a value is an integer.\n *\n * @category Numeric Predicates\n * @param value - The value to check.\n * @returns True if the value is an integer, otherwise false. Throws if the argument is not a number.\n */\nexport function isInteger(value: number): boolean | null {\n\tif (!Number.isFinite(value))\n\t\treturn invalid('INVALID_NUMERIC_ARGUMENT');\n\treturn Number.isInteger(value);\n}\n/**\n * Checks if the first number is greater than the second number.\n *\n * @category Numeric Predicates\n * @param a - The first number to compare.\n * @param b - The second number to compare.\n * @returns True if the first number is greater, otherwise false. Throws if either argument is not a number.\n */\nexport function isGreater(a: number, b: number): boolean {\n\treturn (Number.isFinite(a) && Number.isFinite(b)) ? a > b : invalid('ALL_ARGUMENTS_MUST_BE_NUMBERS');\n}\n\n/**\n * Checks if the first number is greater than or equal to the second number.\n *\n * @category Numeric Predicates\n * @param a - The first number to compare.\n * @param b - The second number to compare.\n * @returns True if the first number is greater than or equal, otherwise false. Throws if either argument is not a number.\n */\nexport function isGreaterOrEqual(a: number, b: number): boolean {\n\treturn (Number.isFinite(a) && Number.isFinite(b)) ? a >= b : invalid('ALL_ARGUMENTS_MUST_BE_NUMBERS');\n}\n\n/**\n * Checks if the first number is less than the second number.\n *\n * @category Numeric Predicates\n * @param a - The first number to compare.\n * @param b - The second number to compare.\n * @returns True if the first number is less, otherwise false. Throws if either argument is not a number.\n */\nexport function isLess(a: number, b: number): boolean {\n\treturn (Number.isFinite(a) && Number.isFinite(b)) ? a < b : invalid('ALL_ARGUMENTS_MUST_BE_NUMBERS');\n}\n\n/**\n * Checks if the first number is less than or equal to the second number.\n *\n * @category Numeric Predicates\n * @param a - The first number to compare.\n * @param b - The second number to compare.\n * @returns True if the first number is less than or equal, otherwise false. Throws if either argument is not a number.\n */\nexport function isLessOrEqual(a: number, b: number): boolean {\n\treturn (Number.isFinite(a) && Number.isFinite(b)) ? a <= b : invalid('ALL_ARGUMENTS_MUST_BE_NUMBERS');\n}\n\n/**\n * Checks if a number is negative.\n *\n * @category Numeric Predicates\n * @param value - The number to check.\n * @returns True if the number is negative, otherwise false. Throws if the argument is not a number.\n */\nexport function isNegative(value: number): boolean {\n\tif (!Number.isFinite(value)) return invalid('INVALID_NUMERIC_ARGUMENT');\n\treturn value < 0;\n}\n\n/**\n * Checks if a number is positive.\n *\n * @category Numeric Predicates\n * @param value - The number to check.\n * @returns True if the number is positive, otherwise false. Throws if the argument is not a number.\n */\nexport function isPositive(value: number): boolean {\n\tif (!Number.isFinite(value)) return invalid('INVALID_NUMERIC_ARGUMENT');\n\treturn value > 0;\n}\n\n// ==============================\n// Lookup predicates\n// ==============================\n\n/**\n * Checks if a string contains a specified substring.\n *\n * @category Lookup Predicates\n * @param str - The string to check.\n * @param substr - The substring to check for.\n * @returns True if the substring is found, otherwise false.\n */\nexport function contains(str: string, substr: string): boolean;\n\n/**\n * Checks if an object contains a specified value.\n *\n * @template T - The type of the object.\n * @category Lookup Predicates\n * @param obj - The object to check.\n * @param value - The value to check for.\n * @returns True if the value is found, otherwise false.\n */\nexport function contains<T extends object>(obj: T, value: any): boolean;\n\n/**\n * Checks if an array contains a specified value.\n *\n * @template T - The type of the elements in the array.\n * @template V - The type of the value to check for.\n * @category Lookup Predicates\n * @param list - The array to check.\n * @param value - The value to check for.\n * @returns True if the value is found, otherwise false.\n */\nexport function contains<T, V>(list: ArrayLike<T>, value: V): boolean;\n\nexport function contains(container: string | object | any[], value: any): boolean {\n\tswitch (true) {\n\t\tcase typeof container === 'string':\n\t\t\tif (typeof value === 'string') return container.includes(value);\n\t\t\treturn invalid('INVALID_ARGUMENTS');\n\t\tcase Array.isArray(container):\n\t\t\treturn container.includes(value);\n\t\tcase !container:\n\t\t\treturn false;\n\t\tcase typeof container !== 'object':\n\t\t\treturn invalid('INVALID_ARGUMENTS');\n\t\tdefault:\n\t\t\treturn Object.values(container).includes(value);\n\t}\n}\n\n/**\n * Checks if an array has a specified index.\n *\n * @template T - The type of the elements in the array.\n * @category Lookup Predicates\n * @param list - The array to check.\n * @param index - The index to check for.\n * @returns True if the index is found, otherwise false.\n */\nexport function has<T>(list: T[], index: number): boolean;\n\n/**\n * Checks if an object has a specified key.\n *\n * @template T - The type of the object.\n * @category Lookup Predicates\n * @param obj - The object to check.\n * @param key - The key to check for.\n * @returns True if the key is found, otherwise false.\n */\nexport function has<T extends object>(obj: T, key: any): key is keyof T;\n\nexport function has(container: object | any[], key: any): boolean {\n\tif (!container) return false;\n\tif (isNil(key))\n\t\treturn invalid('INVALID_ARGUMENTS');\n\ttry {\n\t\treturn Object.keys(container).includes(String(key));\n\t} catch (error) {\n\t\treturn invalid('INVALID_ARGUMENTS', (error as Error).message);\n\t}\n}\n\nexport { isEqual, isNull };\n","export * from './collections';\nexport * from './maths';\nexport * from './special_maths';\nexport * from './stats';\n","import { every, isArray, isNil, isNull, isObject } from 'lodash-es';\nimport { TCollection } from './common';\n\nexport function isCollection(value: unknown): value is TCollection {\n\treturn isArray(value) && every(value, it => isObject(it) && !isNull(it));\n}\n\nexport function isIterable<T>(obj: unknown): obj is Iterable<T> {\n\treturn !isNil(obj) && typeof (obj as any)[Symbol.iterator] === 'function';\n}\n","import { TNullable } from '@yantrix/utils';\nimport * as _ from 'lodash-es';\nimport { TCollection } from './types/common';\nimport { isCollection, isIterable } from './types/guards';\n\n// ┌───────────────────────────────────────────────────────────────────────────┐\n// │ List & String Transformers │\n// └───────────────────────────────────────────────────────────────────────────┘\n\n/**\n * Returns the length of a string.\n *\n * @category List/String Transformers\n * @param str - The string to evaluate.\n * @returns The length of the string.\n */\nexport function len(str: string): number;\n\n/**\n * Returns the length of an array.\n *\n * @category List/String Transformers\n * @template T - The type of the elements in the array.\n * @param list - The array to evaluate.\n * @returns The length of the array.\n */\nexport function len<T>(list: T[]): number;\nexport function len<T>(iterable: string | T[]): number {\n\treturn isIterable(iterable) ? iterable.length : 0;\n}\n\n// ┌───────────────────────────────────────────────────────────────────────────┐\n// │ List Transformers │\n// └───────────────────────────────────────────────────────────────────────────┘\n\n/**\n * Looks up a value in a list and returns it if found.\n *\n * @category List Transformers\n * @template T - The type of the elements in the array.\n * @param list - The list to search.\n * @param value - The value to look for.\n * @returns The value if found, otherwise null.\n */\nexport function lookup<T>(list: T[], value: T): TNullable<T> {\n\tif (!_.isArray(list)) return null;\n\n\tfor (const item of list) {\n\t\tif (_.isEqual(item, value)) return item;\n\t}\n\n\treturn null;\n}\n\n/**\n * Repeats a value a specified number of times and returns an array of the repeated values.\n *\n * @category List Transformers\n * @template T - The type of the elements in the array.\n * @param quantity - The number of times to repeat the value.\n * @param valueSample - The value to repeat.\n * @returns An array containing the repeated values.\n */\n\n// ┌───────────────────────────────────────────────────────────────────────────┐\n// │ String Transformers │\n// └───────────────────────────────────────────────────────────────────────────┘\n\n/**\n * Returns a substring of a string.\n *\n * @category String Transformers\n * @param str - The string to extract the substring from.\n * @param start - The starting index of the substring.\n * @param end - The ending index of the substring (optional).\n * @returns The extracted substring.\n */\nexport function substr(str: string, start: number, end?: number): string {\n\tif (!_.isString(str) || !Number.isFinite(start) || (!_.isNil(end) && !Number.isFinite(end))) return '';\n\treturn str.substring(start, end);\n}\n\n// ┌───────────────────────────────────────────────────────────────────────────┐\n// │ Collection Transformers │\n// └───────────────────────────────────────────────────────────────────────────┘\n\n/**\n * Returns a list of property values from a collection of objects.\n *\n * @category Collection Transformers\n * @param collection - The collection of objects to extract values from.\n * @param prop - The property name to extract.\n * @returns A list containing all property values from the collection items, in order of appearance.\n */\nexport function pluck(collection: TCollection, prop: string): any[] {\n\treturn isCollection(collection) ? _.map(collection, item => item[prop]) : [];\n}\n\n// ┌───────────────────────────────────────────────────────────────────────────┐\n// │ Lodash Re-exports │\n// └───────────────────────────────────────────────────────────────────────────┘\n\nexport const left = _.take;\nexport const right = _.takeRight;\nexport const reverse = _.reverse;\nexport const indexOf = _.indexOf;\nexport const repeat = _.repeat;\nexport const filterBy = _.filter;\nexport const sort = _.sortBy;\nexport const shuffle = _.shuffle;\nexport const concat = _.concat;\nexport const find = _.find;\nexport const every = _.every;\nexport const intersect = _.intersection;\nexport const keys = _.keys;\nexport const merge = _.merge;\nexport const omit = _.omit;\nexport const padRight = _.padEnd;\nexport const padLeft = _.padStart;\nexport const pick = _.pick;\nexport const sample = _.sample;\nexport const setAttr = _.set;\nexport const unsetAttr = _.unset;\nexport const values = _.values;\nexport const zip = _.zip;\n","// ┌───────────────────────────────────────────────────────────────────────────┐\n// │ Arithmetic Transformers │\n// └───────────────────────────────────────────────────────────────────────────┘\n\nimport { isPositiveInteger } from '@yantrix/utils';\nimport * as _ from 'lodash-es';\nimport { invalid } from './utils/errors';\n\n/**\n * Adds a list of numbers together.\n *\n * @category Arithmetics\n * @param nums - Numbers or arrays of numbers.\n * @returns The sum of the numbers.\n */\nexport function add(nums: number[]): number | null;\nexport function add(...nums: number[]): number | null;\nexport function add(...nums: [number[]] | number[]): number | null {\n\tif (!nums?.length) return null;\n\tconst flatNums = nums.flat();\n\tlet sum = 0;\n\tfor (let i = 0; i < flatNums.length; i++) {\n\t\tif (!Number.isFinite(flatNums[i])) return invalid('ALL_ARGUMENTS_MUST_BE_NUMBERS');\n\t\tsum += flatNums[i]!;\n\t}\n\treturn sum;\n};\n\n/**\n * Subtracts the second number from the first number.\n *\n * @category Arithmetics\n * @param a - The first number.\n * @param b - The second number to subtract from the first.\n * @returns The difference between the numbers, or null if any argument is nil.\n */\nexport function diff(a: number, b: number) {\n\treturn (Number.isFinite(a) && Number.isFinite(b)) ? b - a : invalid('ALL_ARGUMENTS_MUST_BE_NUMBERS');\n}\n\n/**\n * Multiplies a list of numbers.\n *\n * @category Arithmetics\n * @param nums - Numbers or arrays of numbers to multiply.\n * @returns The product of the numbers.\n */\nexport function mult(...nums: number[]): number | null;\nexport function mult(nums: number[]): number | null;\nexport function mult(...nums: [number[]] | number[]): number | null {\n\tif (!nums?.length) return null;\n\tconst flatNums = nums.flat();\n\tlet product = 1;\n\tfor (let i = 0; i < flatNums.length; i++) {\n\t\tif (!Number.isFinite(flatNums[i])) return invalid('ALL_ARGUMENTS_MUST_BE_NUMBERS');\n\t\tproduct *= flatNums[i]!;\n\t}\n\treturn product;\n};\n\n/**\n * Divides the first number by the second number.\n *\n * @category Arithmetics\n * @param a - The dividend.\n * @param b - The divisor.\n * @returns The quotient of the division\n */\nexport function div(a: number, b: number