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 +9 -0
- package/dist/cjs/constants.js +5 -3
- package/dist/cjs/index.js +25 -18
- package/dist/cjs/number/convert.js +47 -6
- package/dist/cjs/object/countries.js +1445 -0
- package/dist/dts/constants.d.ts +2 -1
- package/dist/dts/date/Chronos.d.ts +1 -1
- package/dist/dts/date/constants.d.ts +1 -1
- package/dist/dts/date/plugins/dayPartPlugin.d.ts +1 -1
- package/dist/dts/date/plugins/greetingPlugin.d.ts +1 -1
- package/dist/dts/date/plugins/seasonPlugin.d.ts +1 -1
- package/dist/dts/date/plugins/timeZonePlugin.d.ts +2 -0
- package/dist/dts/date/plugins/zodiacPlugin.d.ts +1 -1
- package/dist/dts/date/types.d.ts +8 -1
- package/dist/dts/index.d.ts +4 -4
- package/dist/dts/number/basics.d.ts +3 -5
- package/dist/dts/number/convert.d.ts +13 -2
- package/dist/dts/number/types.d.ts +57 -0
- package/dist/dts/object/countries.d.ts +1202 -0
- package/dist/dts/object/types.d.ts +3 -0
- package/dist/dts/string/types.d.ts +12 -0
- package/dist/dts/utils/types.d.ts +20 -0
- package/dist/esm/constants.js +2 -1
- package/dist/esm/index.js +4 -4
- package/dist/esm/number/convert.js +46 -6
- package/dist/esm/object/countries.js +1442 -0
- package/package.json +4 -2
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_).
|
package/dist/cjs/constants.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.STATUS_CODES = exports.
|
|
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.
|
|
4
|
-
exports.
|
|
5
|
-
exports.
|
|
6
|
-
exports.
|
|
7
|
-
exports.
|
|
8
|
-
exports.
|
|
9
|
-
exports.
|
|
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, "
|
|
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 = (
|
|
38
|
-
let
|
|
39
|
-
if (
|
|
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 (
|
|
60
|
+
while (num >= value) {
|
|
59
61
|
result += numeral;
|
|
60
|
-
|
|
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)$/;
|