nhb-toolbox 4.20.86 → 4.20.88

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -6,6 +6,15 @@ All notable changes to the package will be documented here.
6
6
 
7
7
  ---
8
8
 
9
+ ## [4.20.88] - 2025-10-11
10
+
11
+ - **Added** new utility `romanToInteger` and its _aliases_ to convert _Roman numerals_ to _Arabic numeric_ representation and **updated** _input validation_ for `convertToRomanNumerals`.
12
+ - **Added** new _utility type_ `Repeat` to repeat literal string, it works like `String.prototype.repeat()` but on _type-level_.
13
+
14
+ ## [4.20.87] - 2025-10-08
15
+
16
+ - **Added** new _constants_ and _types_ related to _country information_, e.g. _full country name, code, ISO code_ etc.
17
+
9
18
  ## [4.20.86] - 2025-10-08
10
19
 
11
20
  - **Added** new _number utility_ `getFactors` and its alias to calculate _factors_ of a given number (_integer_).
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.STATUS_CODES = exports.HTTP_CODES = exports.HTTP_STATUS = exports.HTTP_STATUS_CODES = exports.LOWERCASED_WORDS = exports.LOCALE_CODES = exports.FRANKFURTER_CURRENCIES = exports.CURRENCY_LOCALES = exports.CURRENCY_CODES = exports.CSS_COLORS = exports.NUMBER_COLOR_PALETTE = exports.ALPHABET_COLOR_PALETTE = exports.WESTERN_SEASONS = exports.US_ACADEMIC_SEASONS = exports.SEASON_PRESETS = exports.PHILIPPINES_SEASONS = exports.JAPAN_SEASONS = exports.INDIA_VEDIC_SEASONS = exports.INDIA_TAMIL_SEASONS = exports.INDIA_IMD_SEASONS = exports.ETHIOPIA_SEASONS = exports.BANGLADESH_SEASONS = exports.AUSTRALIA_SEASONS = exports.WESTERN_ZODIAC_SIGNS = exports.WEEK_DAYS = exports.VEDIC_ZODIAC_SIGNS = exports.TIME_ZONES = exports.TIME_ZONE_LABELS = exports.MONTHS = void 0;
3
+ exports.STATUS_CODES = exports.HTTP_STATUS_CODES = exports.HTTP_STATUS = exports.HTTP_CODES = exports.COUNTRIES = exports.LOWERCASED_WORDS = exports.LOCALE_CODES = exports.FRANKFURTER_CURRENCIES = exports.CURRENCY_LOCALES = exports.CURRENCY_CODES = exports.CSS_COLORS = exports.NUMBER_COLOR_PALETTE = exports.ALPHABET_COLOR_PALETTE = exports.WESTERN_SEASONS = exports.US_ACADEMIC_SEASONS = exports.SEASON_PRESETS = exports.PHILIPPINES_SEASONS = exports.JAPAN_SEASONS = exports.INDIA_VEDIC_SEASONS = exports.INDIA_TAMIL_SEASONS = exports.INDIA_IMD_SEASONS = exports.ETHIOPIA_SEASONS = exports.BANGLADESH_SEASONS = exports.AUSTRALIA_SEASONS = exports.WESTERN_ZODIAC_SIGNS = exports.WEEK_DAYS = exports.VEDIC_ZODIAC_SIGNS = exports.TIME_ZONES = exports.TIME_ZONE_LABELS = exports.MONTHS = void 0;
4
4
  var constants_1 = require("./date/constants");
5
5
  Object.defineProperty(exports, "MONTHS", { enumerable: true, get: function () { return constants_1.MONTHS; } });
6
6
  Object.defineProperty(exports, "TIME_ZONE_LABELS", { enumerable: true, get: function () { return constants_1.TIME_ZONE_LABELS; } });
@@ -32,8 +32,10 @@ Object.defineProperty(exports, "FRANKFURTER_CURRENCIES", { enumerable: true, get
32
32
  Object.defineProperty(exports, "LOCALE_CODES", { enumerable: true, get: function () { return constants_3.LOCALE_CODES; } });
33
33
  var constants_4 = require("./string/constants");
34
34
  Object.defineProperty(exports, "LOWERCASED_WORDS", { enumerable: true, get: function () { return constants_4.LOWERCASE; } });
35
+ var countries_1 = require("./object/countries");
36
+ Object.defineProperty(exports, "COUNTRIES", { enumerable: true, get: function () { return countries_1.COUNTRIES; } });
35
37
  var constants_5 = require("./http-status/constants");
36
- Object.defineProperty(exports, "HTTP_STATUS_CODES", { enumerable: true, get: function () { return constants_5.HTTP_STATUS_CODES; } });
37
- Object.defineProperty(exports, "HTTP_STATUS", { enumerable: true, get: function () { return constants_5.HTTP_STATUS_CODES; } });
38
38
  Object.defineProperty(exports, "HTTP_CODES", { enumerable: true, get: function () { return constants_5.HTTP_STATUS_CODES; } });
39
+ Object.defineProperty(exports, "HTTP_STATUS", { enumerable: true, get: function () { return constants_5.HTTP_STATUS_CODES; } });
40
+ Object.defineProperty(exports, "HTTP_STATUS_CODES", { enumerable: true, get: function () { return constants_5.HTTP_STATUS_CODES; } });
39
41
  Object.defineProperty(exports, "STATUS_CODES", { enumerable: true, get: function () { return constants_5.HTTP_STATUS_CODES; } });
package/dist/cjs/index.js CHANGED
@@ -1,13 +1,13 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.sumDigits = exports.roundToDecimal = exports.roundNumber = exports.reverseNumber = exports.getSumOfNumbers = exports.getRandomNumber = exports.getRandomInt = exports.getAverageOfNumbers = exports.getAverage = exports.convertToFixed = exports.convertToDecimal = exports.calculateLCM = exports.calculateLCD = exports.calculateHCF = exports.calculateGCD = exports.calculateAverage = exports.verbalizer = exports.Verbalizer = exports.pluralizer = exports.Pluralizer = exports.wordCount = exports.parseNumbersFromText = exports.levenshteinDistance = exports.getLevenshteinDistance = exports.extractNumbersFromString = exports.extractNumbers = exports.countWordsInString = exports.countWords = exports.slugifyString = exports.reverseString = exports.replaceAllInString = exports.normalizeString = exports.maskString = exports.formatWithPlural = exports.formatUnitWithPlural = exports.formatNumberWithPluralUnit = exports.extractURLs = exports.extractEmails = exports.convertStringCase = exports.isSnakeCase = exports.isPascalCase = exports.isPalindrome = exports.isKebabCase = exports.isEmojiOnly = exports.isCamelCase = exports.generateAnagrams = exports.truncateString = exports.trimString = exports.generateRandomID = exports.capitalizeString = void 0;
4
- exports.findPrimeNumbers = exports.wordToNumber = exports.wordsToNumber = exports.toRomanNumeral = exports.toRoman = exports.numericToRoman = exports.numberToWordsOrdinal = exports.numberToWords = exports.numberToRoman = exports.integerToRoman = exports.convertWordToNumber = exports.convertWordsToNumber = exports.convertToRomanNumerals = exports.convertNumberToWordsOrdinal = exports.convertNumberToWords = exports.cardinalWordsToOrdinal = exports.isPerfectSquare = exports.isPartOfFibonacciSeries = exports.isPartOfFibonacci = exports.isOddNumber = exports.isOdd = exports.isNumberInvalid = exports.isMultiple = exports.isInvalidNumber = exports.isFibonacci = exports.isEvenNumber = exports.isEven = exports.areNumbersInvalid = exports.areInvalidNumbers = exports.getNthFibonacci = exports.getMemoizedFibonacciSeries = exports.getMemoizedFibonacci = exports.getFibonacciSeriesMemo = exports.getFibonacciSeries = exports.getFibonacciNumbers = exports.getFibonacci = exports.generateFibonacci = exports.fibonacciGenerator = exports.calculatePercentage = exports.UnitConverter = exports.Unit = exports.Currency = exports.getDivisors = exports.factorsOf = exports.getFactors = exports.getFactorial = exports.calculateFactorial = exports.factorial = exports.sumOfNumbers = exports.sumNumbers = void 0;
5
- exports.Chronos = exports.isValidUTCOffSet = exports.isValidUTC = exports.isValidTimeString = exports.isValidTime = exports.isLeapYear = exports.isDateLike = exports.greet = exports.getGreeting = exports.generateGreeting = exports.extractSolidColorValues = exports.extractAlphaColorValues = exports.Colour = exports.Color = exports.convertRgbToRgba = exports.convertRgbToHsl = exports.convertRgbToHex = exports.convertRgbaToHsla = exports.convertRgbaToHex8 = exports.convertHslToRgb = exports.convertHslToHex = exports.convertHslaToRgba = exports.convertHslaToHex8 = exports.convertHexToRgb = exports.convertHexToHsl = exports.convertHex8ToRgba = exports.convertHex8ToHsla = exports.convertColorCode = exports.generateRandomHSLColor = exports.generateRandomColorInHexRGB = exports.getColorForInitial = exports.getNumbersInRange = exports.roundToNearestInterval = exports.roundToNearest = exports.roundNumberToNearestInterval = exports.numberToOrdinal = exports.normalizeNumber = exports.getRandomFloat = exports.getRandomDecimal = exports.getOrdinalNumber = exports.getOrdinal = exports.formatCurrency = exports.convertToOrdinal = exports.convertNumberToOrdinal = exports.convertNumberToCurrency = exports.clampNumber = exports.cardinalToOrdinal = exports.isPrimeNumber = exports.isPrime = exports.getPrimeNumbers = void 0;
6
- exports.getDuplicatesFromArray = exports.getDuplicates = exports.findMissingElements = exports.extractMissingElements = exports.extractDuplicatesFromArray = exports.extractDuplicates = exports.createOptionsArray = exports.sortAnArray = exports.Finder = exports.totalDeltaByField = exports.sumFieldDifference = exports.sumByField = exports.groupAndSumByField = exports.groupAndAvgByField = exports.groupAndAverageByField = exports.avgByField = exports.averageByField = exports.shuffleArray = exports.isValidEmptyArray = exports.isInvalidOrEmptyArray = exports.getLastArrayElement = exports.flattenArray = exports.filterArrayOfObjects = exports.minutesToUTCOffset = exports.getTotalMinutesFromUTC = exports.getTotalMinutesFromTime = exports.getTotalMinutes = exports.getTimeStringFromUTC = exports.getTimeFromMinutes = exports.getMinutesFromUTC = exports.getHourMinutesFromMinutes = exports.getCurrentTime = exports.getCurrentDateTime = exports.formatUTCOffset = exports.extractTotalMinutesFromTime = exports.extractTimeStringFromUTC = exports.extractTimeFromUTC = exports.extractMinutesFromUTC = exports.extractHourMinute = exports.convertMinutesToUTCOffset = exports.convertMinutesToTime = exports.convertMinutesToHourMinutes = exports.chronusts = exports.chronusjs = exports.chronus = exports.chronosts = exports.chronosjs = exports.chronos = exports.INTERNALS = exports.Chronus = void 0;
7
- exports.pickObjectFields = exports.pickFieldsByCondition = exports.pickFields = exports.omitObjectFields = exports.omitFields = exports.deleteObjectFields = exports.deleteFields = exports.convertObjectValues = exports.sanitizeData = exports.parseStringifiedObjectValues = exports.parseObjectValues = exports.parseJsonToObject = exports.mergeObjects = exports.mergeAndFlattenObjects = exports.flattenObjectKeyValue = exports.flattenObjectDotNotation = exports.extractUpdatedFields = exports.extractUpdatedAndNewFields = exports.extractNewFields = exports.extractKeysDeep = exports.extractObjectKeysDeep = exports.extractKeys = exports.extractObjectKeys = exports.countObjectFields = exports.cloneObject = exports.isValidFormData = exports.isOriginFileObj = exports.isFileUpload = exports.isFileOrBlob = exports.isFileList = exports.isFileArray = exports.isCustomFileArray = exports.isCustomFile = exports.serializeForm = exports.parseFormData = exports.createFormData = exports.createControlledFormData = exports.convertIntoFormData = exports.naturalSortForString = exports.naturalSort = exports.compareSorter = exports.compareNaturally = exports.splitArrayByProperty = exports.splitArray = exports.rotateArray = exports.removeDuplicatesFromArray = exports.removeDuplicates = exports.moveArrayElement = exports.groupArrayByProperty = exports.getMissingElements = void 0;
8
- exports.isPositiveInteger = exports.isNumber = exports.isNull = exports.isNormalPrimitive = exports.isNonEmptyString = exports.isInteger = exports.isFalsy = exports.isBoolean = exports.isBigInt = exports.Paginator = exports.throttleAction = exports.parsePrimitivesDeep = exports.parseJsonDeep = exports.parseJSON = exports.joinArrayElements = exports.isDeepEqual = exports.getStaticMethodsCount = exports.getStaticMethodNames = exports.getInstanceMethodsCount = exports.getInstanceMethodNames = exports.getClassDetails = exports.deepParsePrimitives = exports.debounceAction = exports.countStaticMethods = exports.countInstanceMethods = exports.convertArrayToString = exports.saveToSessionStorage = exports.saveToLocalStorage = exports.removeFromSessionStorage = exports.removeFromLocalStorage = exports.getFromSessionStorage = exports.getFromLocalStorage = exports.toggleFullScreen = exports.smoothScrollTo = exports.copyToClipboard = exports.updateQueryParam = exports.literalQueryStringToObject = exports.parseQueryStringLiteral = exports.queryStringToObject = exports.parseQueryString = exports.getQueryStringAsObject = exports.getQueryParams = exports.generateQueryParams = exports.formatQueryParams = exports.createQueryParams = exports.removeObjectFields = exports.removeFields = exports.remapObjectFields = exports.remapFields = exports.pickObjectFieldsByCondition = void 0;
9
- exports.isUUID = exports.isURL = exports.isPhoneNumber = exports.isNumericString = exports.isNodeEnvironment = exports.isNodeENV = exports.isNode = exports.isIPAddress = exports.isExpectedNodeENV = exports.isEnvironment = exports.isEmailArray = exports.isEmail = exports.isDateString = exports.isBrowser = exports.isBase64 = exports.httpStatus = exports.HttpStatus = exports.isValidSet = exports.isValidObject = exports.isValidMap = exports.isValidJSON = exports.isValidArray = exports.isSet = exports.isReturningPromise = exports.isRegularExpression = exports.isRegExp = exports.isPromise = exports.isObjectWithKeys = exports.isObjectEmpty = exports.isObject = exports.isNotEmptyObject = exports.isMethodDescriptor = exports.isMethod = exports.isMap = exports.isJSONObject = exports.isJSON = exports.isFunction = exports.isError = exports.isEmptyObjectGuard = exports.isEmptyObject = exports.isDate = exports.isArrayWithLength = exports.isArrayOfType = exports.isArray = exports.doesReturnPromise = exports.isUndefined = exports.isTruthy = exports.isSymbol = exports.isString = exports.isPrimitive = void 0;
10
- exports.isValidURL = exports.isValidEmail = void 0;
3
+ exports.getRandomInt = exports.getFactors = exports.getFactorial = exports.getDivisors = exports.getAverageOfNumbers = exports.getAverage = exports.factorsOf = exports.factorial = exports.convertToFixed = exports.convertToDecimal = exports.calculateLCM = exports.calculateLCD = exports.calculateHCF = exports.calculateGCD = exports.calculateFactorial = exports.calculateAverage = exports.verbalizer = exports.Verbalizer = exports.pluralizer = exports.Pluralizer = exports.wordCount = exports.parseNumbersFromText = exports.levenshteinDistance = exports.getLevenshteinDistance = exports.extractNumbersFromString = exports.extractNumbers = exports.countWordsInString = exports.countWords = exports.slugifyString = exports.reverseString = exports.replaceAllInString = exports.normalizeString = exports.maskString = exports.formatWithPlural = exports.formatUnitWithPlural = exports.formatNumberWithPluralUnit = exports.extractURLs = exports.extractEmails = exports.convertStringCase = exports.isSnakeCase = exports.isPascalCase = exports.isPalindrome = exports.isKebabCase = exports.isEmojiOnly = exports.isCamelCase = exports.generateAnagrams = exports.truncateString = exports.trimString = exports.generateRandomID = exports.capitalizeString = void 0;
4
+ exports.romanToArabic = exports.numericToRoman = exports.numberToWordsOrdinal = exports.numberToWords = exports.numberToRoman = exports.integerToRoman = exports.convertWordToNumber = exports.convertWordsToNumber = exports.convertToRomanNumerals = exports.convertRomanToNumeric = exports.convertRomanToInteger = exports.convertRomanToArabic = exports.convertNumberToWordsOrdinal = exports.convertNumberToWords = exports.cardinalWordsToOrdinal = exports.arabicToRoman = exports.isPerfectSquare = exports.isPartOfFibonacciSeries = exports.isPartOfFibonacci = exports.isOddNumber = exports.isOdd = exports.isNumberInvalid = exports.isMultiple = exports.isInvalidNumber = exports.isFibonacci = exports.isEvenNumber = exports.isEven = exports.areNumbersInvalid = exports.areInvalidNumbers = exports.getNthFibonacci = exports.getMemoizedFibonacciSeries = exports.getMemoizedFibonacci = exports.getFibonacciSeriesMemo = exports.getFibonacciSeries = exports.getFibonacciNumbers = exports.getFibonacci = exports.generateFibonacci = exports.fibonacciGenerator = exports.calculatePercentage = exports.UnitConverter = exports.Unit = exports.Currency = exports.sumOfNumbers = exports.sumNumbers = exports.sumDigits = exports.roundToDecimal = exports.roundNumber = exports.reverseNumber = exports.getSumOfNumbers = exports.getRandomNumber = void 0;
5
+ exports.greet = exports.getGreeting = exports.generateGreeting = exports.extractSolidColorValues = exports.extractAlphaColorValues = exports.Colour = exports.Color = exports.convertRgbToRgba = exports.convertRgbToHsl = exports.convertRgbToHex = exports.convertRgbaToHsla = exports.convertRgbaToHex8 = exports.convertHslToRgb = exports.convertHslToHex = exports.convertHslaToRgba = exports.convertHslaToHex8 = exports.convertHexToRgb = exports.convertHexToHsl = exports.convertHex8ToRgba = exports.convertHex8ToHsla = exports.convertColorCode = exports.generateRandomHSLColor = exports.generateRandomColorInHexRGB = exports.getColorForInitial = exports.getNumbersInRange = exports.roundToNearestInterval = exports.roundToNearest = exports.roundNumberToNearestInterval = exports.numberToOrdinal = exports.normalizeNumber = exports.getRandomFloat = exports.getRandomDecimal = exports.getOrdinalNumber = exports.getOrdinal = exports.formatCurrency = exports.convertToOrdinal = exports.convertNumberToOrdinal = exports.convertNumberToCurrency = exports.clampNumber = exports.cardinalToOrdinal = exports.isPrimeNumber = exports.isPrime = exports.getPrimeNumbers = exports.findPrimeNumbers = exports.wordToNumber = exports.wordsToNumber = exports.toRomanNumeral = exports.toRoman = exports.romanToNumeric = exports.romanToInteger = void 0;
6
+ exports.sortAnArray = exports.Finder = exports.totalDeltaByField = exports.sumFieldDifference = exports.sumByField = exports.groupAndSumByField = exports.groupAndAvgByField = exports.groupAndAverageByField = exports.avgByField = exports.averageByField = exports.shuffleArray = exports.isValidEmptyArray = exports.isInvalidOrEmptyArray = exports.getLastArrayElement = exports.flattenArray = exports.filterArrayOfObjects = exports.minutesToUTCOffset = exports.getTotalMinutesFromUTC = exports.getTotalMinutesFromTime = exports.getTotalMinutes = exports.getTimeStringFromUTC = exports.getTimeFromMinutes = exports.getMinutesFromUTC = exports.getHourMinutesFromMinutes = exports.getCurrentTime = exports.getCurrentDateTime = exports.formatUTCOffset = exports.extractTotalMinutesFromTime = exports.extractTimeStringFromUTC = exports.extractTimeFromUTC = exports.extractMinutesFromUTC = exports.extractHourMinute = exports.convertMinutesToUTCOffset = exports.convertMinutesToTime = exports.convertMinutesToHourMinutes = exports.chronusts = exports.chronusjs = exports.chronus = exports.chronosts = exports.chronosjs = exports.chronos = exports.INTERNALS = exports.Chronus = exports.Chronos = exports.isValidUTCOffSet = exports.isValidUTC = exports.isValidTimeString = exports.isValidTime = exports.isLeapYear = exports.isDateLike = void 0;
7
+ exports.convertObjectValues = exports.sanitizeData = exports.parseStringifiedObjectValues = exports.parseObjectValues = exports.parseJsonToObject = exports.mergeObjects = exports.mergeAndFlattenObjects = exports.flattenObjectKeyValue = exports.flattenObjectDotNotation = exports.extractUpdatedFields = exports.extractUpdatedAndNewFields = exports.extractNewFields = exports.extractObjectKeysDeep = exports.extractObjectKeys = exports.extractKeysDeep = exports.extractKeys = exports.countObjectFields = exports.cloneObject = exports.isValidFormData = exports.isOriginFileObj = exports.isFileUpload = exports.isFileOrBlob = exports.isFileList = exports.isFileArray = exports.isCustomFileArray = exports.isCustomFile = exports.serializeForm = exports.parseFormData = exports.createFormData = exports.createControlledFormData = exports.convertIntoFormData = exports.naturalSortForString = exports.naturalSort = exports.compareSorter = exports.compareNaturally = exports.splitArrayByProperty = exports.splitArray = exports.rotateArray = exports.removeDuplicatesFromArray = exports.removeDuplicates = exports.moveArrayElement = exports.groupArrayByProperty = exports.getMissingElements = exports.getDuplicatesFromArray = exports.getDuplicates = exports.findMissingElements = exports.extractMissingElements = exports.extractDuplicatesFromArray = exports.extractDuplicates = exports.createOptionsArray = void 0;
8
+ exports.isBoolean = exports.isBigInt = exports.Paginator = exports.throttleAction = exports.parsePrimitivesDeep = exports.parseJsonDeep = exports.parseJSON = exports.joinArrayElements = exports.isDeepEqual = exports.getStaticMethodsCount = exports.getStaticMethodNames = exports.getInstanceMethodsCount = exports.getInstanceMethodNames = exports.getClassDetails = exports.deepParsePrimitives = exports.debounceAction = exports.countStaticMethods = exports.countInstanceMethods = exports.convertArrayToString = exports.saveToSessionStorage = exports.saveToLocalStorage = exports.removeFromSessionStorage = exports.removeFromLocalStorage = exports.getFromSessionStorage = exports.getFromLocalStorage = exports.toggleFullScreen = exports.smoothScrollTo = exports.copyToClipboard = exports.updateQueryParam = exports.queryStringToObject = exports.parseQueryStringLiteral = exports.parseQueryString = exports.literalQueryStringToObject = exports.getQueryStringAsObject = exports.getQueryParams = exports.generateQueryParams = exports.formatQueryParams = exports.createQueryParams = exports.removeObjectFields = exports.removeFields = exports.remapObjectFields = exports.remapFields = exports.pickObjectFieldsByCondition = exports.pickObjectFields = exports.pickFieldsByCondition = exports.pickFields = exports.omitObjectFields = exports.omitFields = exports.deleteObjectFields = exports.deleteFields = void 0;
9
+ exports.isIPAddress = exports.isExpectedNodeENV = exports.isEnvironment = exports.isEmailArray = exports.isEmail = exports.isDateString = exports.isBrowser = exports.isBase64 = exports.httpStatus = exports.HttpStatus = exports.isValidSet = exports.isValidObject = exports.isValidMap = exports.isValidJSON = exports.isValidArray = exports.isSet = exports.isReturningPromise = exports.isRegularExpression = exports.isRegExp = exports.isPromise = exports.isObjectWithKeys = exports.isObjectEmpty = exports.isObject = exports.isNotEmptyObject = exports.isMethodDescriptor = exports.isMethod = exports.isMap = exports.isJSONObject = exports.isJSON = exports.isFunction = exports.isError = exports.isEmptyObjectGuard = exports.isEmptyObject = exports.isDate = exports.isArrayWithLength = exports.isArrayOfType = exports.isArray = exports.doesReturnPromise = exports.isUndefined = exports.isTruthy = exports.isSymbol = exports.isString = exports.isPrimitive = exports.isPositiveInteger = exports.isNumber = exports.isNull = exports.isNormalPrimitive = exports.isNonEmptyString = exports.isInteger = exports.isFalsy = void 0;
10
+ exports.isValidURL = exports.isValidEmail = exports.isUUID = exports.isURL = exports.isPhoneNumber = exports.isNumericString = exports.isNodeEnvironment = exports.isNodeENV = exports.isNode = void 0;
11
11
  var basics_1 = require("./string/basics");
12
12
  Object.defineProperty(exports, "capitalizeString", { enumerable: true, get: function () { return basics_1.capitalizeString; } });
13
13
  Object.defineProperty(exports, "generateRandomID", { enumerable: true, get: function () { return basics_1.generateRandomID; } });
@@ -52,14 +52,20 @@ Object.defineProperty(exports, "Verbalizer", { enumerable: true, get: function (
52
52
  Object.defineProperty(exports, "verbalizer", { enumerable: true, get: function () { return Verbalizer_1.verbalizer; } });
53
53
  var basics_2 = require("./number/basics");
54
54
  Object.defineProperty(exports, "calculateAverage", { enumerable: true, get: function () { return basics_2.getAverage; } });
55
+ Object.defineProperty(exports, "calculateFactorial", { enumerable: true, get: function () { return basics_2.factorial; } });
55
56
  Object.defineProperty(exports, "calculateGCD", { enumerable: true, get: function () { return basics_2.calculateHCF; } });
56
57
  Object.defineProperty(exports, "calculateHCF", { enumerable: true, get: function () { return basics_2.calculateHCF; } });
57
58
  Object.defineProperty(exports, "calculateLCD", { enumerable: true, get: function () { return basics_2.calculateLCM; } });
58
59
  Object.defineProperty(exports, "calculateLCM", { enumerable: true, get: function () { return basics_2.calculateLCM; } });
59
60
  Object.defineProperty(exports, "convertToDecimal", { enumerable: true, get: function () { return basics_2.convertToDecimal; } });
60
61
  Object.defineProperty(exports, "convertToFixed", { enumerable: true, get: function () { return basics_2.convertToDecimal; } });
62
+ Object.defineProperty(exports, "factorial", { enumerable: true, get: function () { return basics_2.factorial; } });
63
+ Object.defineProperty(exports, "factorsOf", { enumerable: true, get: function () { return basics_2.getFactors; } });
61
64
  Object.defineProperty(exports, "getAverage", { enumerable: true, get: function () { return basics_2.getAverage; } });
62
65
  Object.defineProperty(exports, "getAverageOfNumbers", { enumerable: true, get: function () { return basics_2.getAverage; } });
66
+ Object.defineProperty(exports, "getDivisors", { enumerable: true, get: function () { return basics_2.getFactors; } });
67
+ Object.defineProperty(exports, "getFactorial", { enumerable: true, get: function () { return basics_2.factorial; } });
68
+ Object.defineProperty(exports, "getFactors", { enumerable: true, get: function () { return basics_2.getFactors; } });
63
69
  Object.defineProperty(exports, "getRandomInt", { enumerable: true, get: function () { return basics_2.getRandomNumber; } });
64
70
  Object.defineProperty(exports, "getRandomNumber", { enumerable: true, get: function () { return basics_2.getRandomNumber; } });
65
71
  Object.defineProperty(exports, "getSumOfNumbers", { enumerable: true, get: function () { return basics_2.sumNumbers; } });
@@ -69,12 +75,6 @@ Object.defineProperty(exports, "roundToDecimal", { enumerable: true, get: functi
69
75
  Object.defineProperty(exports, "sumDigits", { enumerable: true, get: function () { return basics_2.sumDigits; } });
70
76
  Object.defineProperty(exports, "sumNumbers", { enumerable: true, get: function () { return basics_2.sumNumbers; } });
71
77
  Object.defineProperty(exports, "sumOfNumbers", { enumerable: true, get: function () { return basics_2.sumNumbers; } });
72
- Object.defineProperty(exports, "factorial", { enumerable: true, get: function () { return basics_2.factorial; } });
73
- Object.defineProperty(exports, "calculateFactorial", { enumerable: true, get: function () { return basics_2.factorial; } });
74
- Object.defineProperty(exports, "getFactorial", { enumerable: true, get: function () { return basics_2.factorial; } });
75
- Object.defineProperty(exports, "getFactors", { enumerable: true, get: function () { return basics_2.getFactors; } });
76
- Object.defineProperty(exports, "factorsOf", { enumerable: true, get: function () { return basics_2.getFactors; } });
77
- Object.defineProperty(exports, "getDivisors", { enumerable: true, get: function () { return basics_2.getFactors; } });
78
78
  var Currency_1 = require("./number/Currency");
79
79
  Object.defineProperty(exports, "Currency", { enumerable: true, get: function () { return Currency_1.Currency; } });
80
80
  var Unit_1 = require("./number/Unit");
@@ -107,9 +107,13 @@ Object.defineProperty(exports, "isPartOfFibonacci", { enumerable: true, get: fun
107
107
  Object.defineProperty(exports, "isPartOfFibonacciSeries", { enumerable: true, get: function () { return guards_2.isFibonacci; } });
108
108
  Object.defineProperty(exports, "isPerfectSquare", { enumerable: true, get: function () { return guards_2.isPerfectSquare; } });
109
109
  var convert_2 = require("./number/convert");
110
+ Object.defineProperty(exports, "arabicToRoman", { enumerable: true, get: function () { return convert_2.convertToRomanNumerals; } });
110
111
  Object.defineProperty(exports, "cardinalWordsToOrdinal", { enumerable: true, get: function () { return convert_2.numberToWordsOrdinal; } });
111
112
  Object.defineProperty(exports, "convertNumberToWords", { enumerable: true, get: function () { return convert_2.numberToWords; } });
112
113
  Object.defineProperty(exports, "convertNumberToWordsOrdinal", { enumerable: true, get: function () { return convert_2.numberToWordsOrdinal; } });
114
+ Object.defineProperty(exports, "convertRomanToArabic", { enumerable: true, get: function () { return convert_2.romanToInteger; } });
115
+ Object.defineProperty(exports, "convertRomanToInteger", { enumerable: true, get: function () { return convert_2.romanToInteger; } });
116
+ Object.defineProperty(exports, "convertRomanToNumeric", { enumerable: true, get: function () { return convert_2.romanToInteger; } });
113
117
  Object.defineProperty(exports, "convertToRomanNumerals", { enumerable: true, get: function () { return convert_2.convertToRomanNumerals; } });
114
118
  Object.defineProperty(exports, "convertWordsToNumber", { enumerable: true, get: function () { return convert_2.wordsToNumber; } });
115
119
  Object.defineProperty(exports, "convertWordToNumber", { enumerable: true, get: function () { return convert_2.wordsToNumber; } });
@@ -118,6 +122,9 @@ Object.defineProperty(exports, "numberToRoman", { enumerable: true, get: functio
118
122
  Object.defineProperty(exports, "numberToWords", { enumerable: true, get: function () { return convert_2.numberToWords; } });
119
123
  Object.defineProperty(exports, "numberToWordsOrdinal", { enumerable: true, get: function () { return convert_2.numberToWordsOrdinal; } });
120
124
  Object.defineProperty(exports, "numericToRoman", { enumerable: true, get: function () { return convert_2.convertToRomanNumerals; } });
125
+ Object.defineProperty(exports, "romanToArabic", { enumerable: true, get: function () { return convert_2.romanToInteger; } });
126
+ Object.defineProperty(exports, "romanToInteger", { enumerable: true, get: function () { return convert_2.romanToInteger; } });
127
+ Object.defineProperty(exports, "romanToNumeric", { enumerable: true, get: function () { return convert_2.romanToInteger; } });
121
128
  Object.defineProperty(exports, "toRoman", { enumerable: true, get: function () { return convert_2.convertToRomanNumerals; } });
122
129
  Object.defineProperty(exports, "toRomanNumeral", { enumerable: true, get: function () { return convert_2.convertToRomanNumerals; } });
123
130
  Object.defineProperty(exports, "wordsToNumber", { enumerable: true, get: function () { return convert_2.wordsToNumber; } });
@@ -274,10 +281,10 @@ Object.defineProperty(exports, "isValidFormData", { enumerable: true, get: funct
274
281
  var basics_4 = require("./object/basics");
275
282
  Object.defineProperty(exports, "cloneObject", { enumerable: true, get: function () { return basics_4.cloneObject; } });
276
283
  Object.defineProperty(exports, "countObjectFields", { enumerable: true, get: function () { return basics_4.countObjectFields; } });
277
- Object.defineProperty(exports, "extractObjectKeys", { enumerable: true, get: function () { return basics_4.extractObjectKeys; } });
278
284
  Object.defineProperty(exports, "extractKeys", { enumerable: true, get: function () { return basics_4.extractObjectKeys; } });
279
- Object.defineProperty(exports, "extractObjectKeysDeep", { enumerable: true, get: function () { return basics_4.extractObjectKeysDeep; } });
280
285
  Object.defineProperty(exports, "extractKeysDeep", { enumerable: true, get: function () { return basics_4.extractObjectKeysDeep; } });
286
+ Object.defineProperty(exports, "extractObjectKeys", { enumerable: true, get: function () { return basics_4.extractObjectKeys; } });
287
+ Object.defineProperty(exports, "extractObjectKeysDeep", { enumerable: true, get: function () { return basics_4.extractObjectKeysDeep; } });
281
288
  var objectify_1 = require("./object/objectify");
282
289
  Object.defineProperty(exports, "extractNewFields", { enumerable: true, get: function () { return objectify_1.extractNewFields; } });
283
290
  Object.defineProperty(exports, "extractUpdatedAndNewFields", { enumerable: true, get: function () { return objectify_1.extractUpdatedAndNewFields; } });
@@ -311,10 +318,10 @@ Object.defineProperty(exports, "formatQueryParams", { enumerable: true, get: fun
311
318
  Object.defineProperty(exports, "generateQueryParams", { enumerable: true, get: function () { return query_1.generateQueryParams; } });
312
319
  Object.defineProperty(exports, "getQueryParams", { enumerable: true, get: function () { return query_1.getQueryParams; } });
313
320
  Object.defineProperty(exports, "getQueryStringAsObject", { enumerable: true, get: function () { return query_1.parseQueryString; } });
321
+ Object.defineProperty(exports, "literalQueryStringToObject", { enumerable: true, get: function () { return query_1.parseQueryStringLiteral; } });
314
322
  Object.defineProperty(exports, "parseQueryString", { enumerable: true, get: function () { return query_1.parseQueryString; } });
315
- Object.defineProperty(exports, "queryStringToObject", { enumerable: true, get: function () { return query_1.parseQueryString; } });
316
323
  Object.defineProperty(exports, "parseQueryStringLiteral", { enumerable: true, get: function () { return query_1.parseQueryStringLiteral; } });
317
- Object.defineProperty(exports, "literalQueryStringToObject", { enumerable: true, get: function () { return query_1.parseQueryStringLiteral; } });
324
+ Object.defineProperty(exports, "queryStringToObject", { enumerable: true, get: function () { return query_1.parseQueryString; } });
318
325
  Object.defineProperty(exports, "updateQueryParam", { enumerable: true, get: function () { return query_1.updateQueryParam; } });
319
326
  var utils_4 = require("./dom/utils");
320
327
  Object.defineProperty(exports, "copyToClipboard", { enumerable: true, get: function () { return utils_4.copyToClipboard; } });
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.convertToRomanNumerals = void 0;
3
+ exports.romanToInteger = exports.convertToRomanNumerals = void 0;
4
4
  exports.numberToWords = numberToWords;
5
5
  exports.numberToWordsOrdinal = numberToWordsOrdinal;
6
6
  exports.wordsToNumber = wordsToNumber;
@@ -8,6 +8,7 @@ const primitives_1 = require("../guards/primitives");
8
8
  const specials_1 = require("../guards/specials");
9
9
  const constants_1 = require("./constants");
10
10
  const helpers_1 = require("./helpers");
11
+ const utilities_1 = require("./utilities");
11
12
  function numberToWords(num) {
12
13
  let number = Math.trunc(Number(num));
13
14
  if (!Number.isFinite(number) || isNaN(number)) {
@@ -34,10 +35,11 @@ function numberToWords(num) {
34
35
  const finalResult = result.trim().replace(/\s+/g, ' ');
35
36
  return isNegative ? `minus ${finalResult}` : finalResult;
36
37
  }
37
- const convertToRomanNumerals = (num) => {
38
- let number = Number(num);
39
- if (number <= 0 || number >= 4000)
38
+ const convertToRomanNumerals = (value) => {
39
+ let num = (0, utilities_1.normalizeNumber)(value);
40
+ if (!num || num <= 0 || num >= 4000) {
40
41
  throw new RangeError('Number must be between 1 and 3999');
42
+ }
41
43
  const romanMap = [
42
44
  [1000, 'M'],
43
45
  [900, 'CM'],
@@ -55,14 +57,53 @@ const convertToRomanNumerals = (num) => {
55
57
  ];
56
58
  let result = '';
57
59
  for (const [value, numeral] of romanMap) {
58
- while (number >= value) {
60
+ while (num >= value) {
59
61
  result += numeral;
60
- number -= value;
62
+ num -= value;
61
63
  }
62
64
  }
63
65
  return result;
64
66
  };
65
67
  exports.convertToRomanNumerals = convertToRomanNumerals;
68
+ const romanToInteger = (roman) => {
69
+ const romanMap = {
70
+ I: 1,
71
+ V: 5,
72
+ X: 10,
73
+ L: 50,
74
+ C: 100,
75
+ D: 500,
76
+ M: 1000,
77
+ };
78
+ if (!(0, primitives_1.isNonEmptyString)(roman) || !roman?.trim()) {
79
+ throw new TypeError('Input must be a non-empty string');
80
+ }
81
+ const upperRoman = roman?.toUpperCase()?.trim();
82
+ let total = 0;
83
+ let prevValue = 0;
84
+ for (let i = upperRoman.length - 1; i >= 0; i--) {
85
+ const char = upperRoman[i];
86
+ const value = romanMap[char];
87
+ if (!value) {
88
+ throw new Error(`Invalid Roman numeral character: '${char}'`);
89
+ }
90
+ if (value < prevValue) {
91
+ total -= value;
92
+ }
93
+ else {
94
+ total += value;
95
+ prevValue = value;
96
+ }
97
+ }
98
+ if (total <= 0 || total >= 4000) {
99
+ throw new RangeError('Resulting number must be between 1 and 3999');
100
+ }
101
+ if ((0, exports.convertToRomanNumerals)(total) !== upperRoman) {
102
+ throw new Error('Invalid or malformed Roman numeral!');
103
+ }
104
+ return total;
105
+ };
106
+ exports.romanToInteger = romanToInteger;
66
107
  function numberToWordsOrdinal(number) {
67
108
  const TEEN_OR_HUNDRED = /(teen|hundred|thousand|(m|b|tr|quadr)illion)$/;
68
109
  const UNDER_TEEN = /(zero|one|two|three|four|five|six|seven|eight|nine|ten|eleven|twelve)$/;