Changelog
All notable changes to the package will be documented here.
[4.23.24] - 2025-10-26â
- Fixed pluralization issue with suffixed
'-foot' --> '-feet'for format methods in converter classes.
[4.23.23] - 2025-10-26â
- Fixed pluralization issue with
'foot' --> 'feet'for format methods in converter classes. - Exported
GENERAL_UNITS(used inUnitclass) andCATEGORIZED_UNITS(used inConverterclasses) from'nhb-toolbox/constants'.
[4.23.21] - 2025-10-25â
- Fixed return type (now maintains proper order in the tuple) for
supportedUnits()converter method.
[4.23.20] - 2025-10-25â
- Fixed return type for
supportedUnits()converter method. - Added new package subpath for
Colorclass:'nhb-toolbox/color'.
[4.23.11] - 2025-10-24â
- Added new base method
supportedUnits()to get an array/tuple of supported unit names. - Fixed precision issues in several conversion factors across converter classes.
- Optimized the
formatTo()method for improved performance.
[4.23.10] - 2025-10-24â
- Added
metrevariants of units where needed in converter classes. - Updated & Optimized subpath exports for converter classes and functions.
[4.23.1] - 2025-10-24â
- Exported all the converter classes from the
'nhb-toolbox/converter'sub-path too.
[4.23.0] - 2025-10-24â
- Added new unit converter classes and their combined function
Converter(aliasedconverter). - Introduced new utility types:
ReplaceReplaceFirstand$Record. - Exported
pluralizer,verbalizer,httpStatusand newConverterutility through different package sub-paths.
[4.21.14] - 2025-10-14â
- Moved
getTimeZoneNamemethod toChronosplugin system, usable viatimeZonePluginand enhancedtimeZonePlugin.
[4.21.10] - 2025-10-13â
- Moved
roundmethod toChronosplugin system, usable viaroundPlugin. - Updated tsdoc for some
Chronosmethods with proper references.
[4.21.4] - 2025-10-13â
- Added new type
$UTCOffsetand applied in correspondingChronosmethods.
[4.21.1] - 2025-10-13â
- Updated
TypeScriptcompiler target fromESNexttoES2023for more stable and predictableJavaScriptoutput.- Ensures consistent syntax across
TypeScriptversions.
- Ensures consistent syntax across
[4.21.0] - 2025-10-12â
- Renamed
RomanNumeralCaptype toRomanCapitaland allow only strict1-3999andRomanNumeraltype toLooseRomanNumeral. - Removed all Roman numeral type helpers and recreated a strict
RomanNumeralwith other internal types.
[4.20.92] - 2025-10-12â
- Fixed
RomanNumeralCaptype and added @remarks section.
[4.20.91] - 2025-10-12â
- Updated tsdoc for
fromNow()Chronosmethod: modified @remarks section.
[4.20.90] - 2025-10-12â
- Updated
formatUnitWithPluralutility: now returns singular unit for both0and1. - Updated
fromNow()Chronosmethod: fixed issues when provided unit level value is0.
[4.20.89] - 2025-10-12â
- Updated behavior of
fromNow()Chronosmethod: excludedweeklevel and includedmillisecondfor consistency. Refactored internal logic.
[4.20.88] - 2025-10-11â
- Added new utility
romanToIntegerand its aliases to convert Roman numerals to Arabic numeric representation and updated input validation forconvertToRomanNumerals. - Added new utility type
Repeatto repeat literal string, it works likeString.prototype.repeat()but on type-level.
[4.20.87] - 2025-10-08â
- Added new constants and types related to country information, e.g. full country name, code, ISO code etc.
[4.20.86] - 2025-10-08â
- Added new number utility
getFactorsand its alias to calculate factors of a given number (integer).
[4.20.84] - 2025-10-07â
- Added new number utility
factorialand its alias to calculate factorial of a given number (integer).
[4.20.80] - 2025-10-07â
đ§ Updates in Chronosâ
- Added overload signatures for
isWeekend,isWorkDayandisBusinessHourmethods frombusinessPlugin. - Fixed issues with
isBusinessHour: previously skipped business start and end hours in some cases. - Added new utility type
RangeTupleto create ranged tuple.
[4.20.69-70] - 2025-10-07â
đ§ Updates in Chronosâ
- Added alias for some methods available through plugins:
greetforgetGreeting,getSeasonNameforseason,zodiacforgetZodiacSign - Updated behaviors of
isWeekend,isWorkDayandisBusinessHourmethods frombusinessPlugin, now accepts indices of weekend day as tuple. - Updated internal states for most of the plugins; Renamed some internal types and exposed some.
[4.20.66] - 2025-10-05â
- Updated
isObjectWithKeys: now returns more structured object shape with provided keys.
[4.20.64] - 2025-10-05â
- Updated
extractObjectKeys: now have overload signatures, returns a tuple or an array of keys (string literal). - Updated
extractObjectKeysDeepno longer returns a tuple, instead now it returns an array of keys (string literal).
[4.20.60] - 2025-10-04â
- Added new utility types
ArrayToTuple<T[]>andTuple<T>. - Updated the return type of
extractObjectKeys, now it returns tuple of exact top-level keys. - Added new utility
extractObjectKeysDeepto extract tuple of all nested keys. - Updated query string parser utilities to receive generic return type.
- Added new utility
literalQueryStringToObjectto parse literal query string.
[4.20.56] - 2025-10-02â
- Updated
isDeepEqualutility: Now it accepts arguments of unknown types.
[4.20.54] - 2025-10-02â
- Added new utility
extractObjectKeysto extract keys of an object with proper typing. - Updated
isObjectWithKeys: now properly typed.
[4.20.52] - 2025-09-26â
- Added new
ChronosplugingreetingPluginfor accessinggetGreetingmethod inChronosinstances. - Fixed some docs and internal type related issues in
convertObjectValuesutility.
[4.20.50] - 2025-09-25â
- Fixed return type of
convertObjectValuesutility to correctly reflect the transformed object structure andkeysoption is now more strict: only accepts keys which values are string and/or number and the array cannot be left empty. - Updated options type for
with()static method ofChronos.
[4.20.48] - 2025-09-22â
- Wrapped
ChronosMethodstype inLooseLiteralto allow passing custom method names without type errors when creating a customChronos Plugin. - Updated error message in
convertmethod inCurrencyclass.
[4.20.46] - 2025-09-22â
Chronosclass is now exported via subpath'nhb-toolbox/chronos'.
[4.20.44] - 2025-09-20â
- Updated type related issues in
Finderclass. Now it accepts array of objects only.
[4.20.40] - 2025-09-18â
- Added new utility types:
DeepPartialAll,Join,Splitalong withValidArray,Listand more.
[4.20.32] - 2025-09-17â
- Renamed
isPastParticiple()method toisParticiple()inVerbalizer/verbalizer. - Optimized internal logic for
toPast()andtoParticiple()methods inVerbalizer/verbalizer. - Updated all the rules for
Verbalizer/verbalizer.
[4.20.30] - 2025-09-17â
- Reduced unpacked size by removing tsdoc comments from js (both
cjsandesm) outputs. - Updated tsdoc for
Verbalizer/verbalizer: added reference to documentation site.
[4.20.27] - 2025-09-16â
- Fixed issues: (failed to convert already past/participle regular verbs) with
toPast()andtoParticiple()methods inVerbalizer/verbalizer.
[4.20.26] - 2025-09-16â
- Optimized internal logic in both
PluralizerandVerbalizer.
[4.20.24] - 2025-09-15â
- Added new class
Verbalizerand its shared instanceverbalizerfor verb form(s) manipulation. - Updated
Pluralizer/pluralizer's internal mechanism to trim input(s) and output(s).
[4.20.20] - 2025-09-04â
đ¨ Updates for Stylog/LogStylerâ
- Reorganized full
stylogmodule. - Renamed
string()method totoANSI()andapplyStyles()totoCSS(). - Added new
ansi16()method to applyANSI-16color codes. - Added new
hsl()andbgHSL()methods to colorize using customhslcolor values. - Added new
rgb()andbgRGB()methods to colorize using customrgbcolor values. - Added new
hex()andbgHex()methods to colorize using customhexcolor values.
[4.20.17] - 2025-09-02â
- Added color support detector for shell/console for
Stylog/LogStyler.
[4.20.16] - 2025-09-01â
- Added new method
string()inLogStyler(also inStylog) and madeapplyStyles()method public.
[4.20.11] - 2025-09-01â
- Added new Symbol methods in
Chronos:Symbol.isConcatSpreadableandSymbol.match. - Fixed string coercion issues with
toPrimitiveSymbol method inChronos. - Redesigned
chronos(Chronoswrapper) with Proxy and updated TSDoc forchronos.
[4.20.10] - 2025-09-01â
- Added new utility types:
RequireAtLeast,RequireExactly,RequireBetween. - Added new static
ChronosmethodChronos.with(options)to createChronosinstance from specified time component(s).
[4.20.1] - 2025-08-31â
- Exported helper function and guards used for
StylogandLogStyler:hexToAnsi,isCSSColor,isBGColor,isTextStyle.
[4.20.0] - 2025-08-31â
- Added new class
LogStylerand its chainableStylogutility to log styled input in the console.
[4.14.16] - 2025-08-30â
- Updated types related to object flattening utilities:
FlattenDotKey,DotValue,FlattenDotValue,FlattenLeafKey,LeafValueandFlattenLeafValue. - Made all the (output) properties of
FlattenDotValueandFlattenLeafValueoptional to avoid issues.
[4.14.14] - 2025-08-27â
- Updated
DeepPartialtype to preserve optional properties of advanced types likeFile,FileList,Chronosetc.
[4.14.13] - 2025-08-24â
- Updated return type for
getColorForInitialutility and improved internal logic and error type for color generator utilities.
[4.14.12] - 2025-08-23â
- Updated error type for
trimStringutility.
[4.14.10] - 2025-08-17â
- Added new utility
wordsToNumberutility with alias:convertWordsToNumber,convertWordToNumberandwordToNumber
[4.14.9] - 2025-08-16â
- Fixed minor internal issues and updated JSDoc for
Pluralizer.
[4.14.4-8] - 2025-08-13 - 2025-08-14â
- Updated internal logic of
convertStringCaseutility, added newoptionsparameter. - Fixed multiple internal issues and JSDoc; Optimized internal logic.
[4.14.1-3] - 2025-08-11 - 2025-08-12â
- Updated JSDoc, dev dependencies and fixed minor issues.
[4.14.0] - 2025-08-11â
- Added new class
HttpStatusfor retrieving and managing HTTP status codes.
[4.13.11] - 2025-08-06â
- Fixed an issue with
getZodiacSignmethod inChronosthat could not return correct Vedic sign.
[4.13.10] - 2025-08-02â
- Updated docs for
isPluralandisSingularmethods inPluralizer. - Updated
getTimeZoneName()andgetTimeZoneNameShort()methods inChronosto accept an optional UTC offset. - Changed return type of
getTimeZoneName()tostring | UTCOffsetusingLooseLiteral<UTCOffset>.
[4.13.9] - 2025-07-31â
- Added new
ChronosmethodgetTimeZoneName()to get full time-zone name. - Added new
ChronostimeZonePluginmethodgetTimeZoneNameShort()to get abbreviated time-zone name.
[4.13.7] - 2025-07-23â
- Updated
isPluralandisSingularmethods inPluralizerclass to handle more cases. - Ran full test on
pluralizerand fixed some known issues.
[4.13.3-6] - 2025-07-22â
- Reordered rules for
pluralizerand fixed other issues.
[4.13.3] - 2025-07-22â
- Updated pluralization/uncountable rules, case restoration method and fixed other bugs in
pluralizer. - Updated docs for
pluralizer,PluralizerandformatUnitWithPlural.
[4.13.1] - 2025-07-22â
- Updated docs in README for
pluralizer.
[4.13.0] - 2025-07-22â
- Added new
Pluralizerclass and utilitypluralizer(shared instance ofPluralizerclass) with multiple methods. - Refactored codes in number utilities, introduced new
normalizeNumberutility.
[4.12.80-81] - 2025-07-19â
- Updated
convertArrayToStringto accept array of any primitive values. - Fully integrated with nhb-scripts.
[4.12.70] - 2025-07-08â
- Updated numeric string related issues, specifically in
isNumber&isNumericStringand other helper functions.
[4.12.68-69] - 2025-07-05â
- Updated Docs: Added links to other npm packages.
[4.12.67] - 2025-07-03â
- Fixed some import alias typo.
[4.12.66] - 2025-07-02â
- Updated
convertArrayToStringfunction, now accepts array of objects and have 2 overload signatures with options. - Updated
RenameKeysutility type by fixing some minor issues.
[4.12.64] - 2025-07-02â
- Added more utility types.
- Updated JSDoc for some
Chronosmethods.
[4.12.61] - 2025-06-28â
- Added new utility type
Expand<T>to resolve complex helper-wrapped types into readable structures, similar toPrettify<T>but only for special types to use with. - Improved type display for special cases where types were previously wrapped in multiple utility layers (e.g.,
MergeAll,FlattenValueetc.).
[4.12.60] - 2025-06-27â
-
Added new array utilities:
sumByFieldaverageByFieldsumFieldDifferencegroupAndSumByFieldgroupAndAverageByField
-
Updated
splitArrayByPropertyutility to allow nested field as dot-notation.
[4.12.50] - 2025-06-27â
- Updated return type definition and enhanced internal logic for
mergeObjects,mergeAndFlattenObjects,flattenObjectKeyValue,flattenObjectDotNotation. - Created new utility types for the mentioned utilities.
[4.12.48] - 2025-06-24â
- Fixed typo for utility name
splitArrayByProperty. - Added new utilities
getInstanceGetterNamesandgetStaticGetterNames; - Updated
getClassDetailsand its return type.
[4.12.46] - 2025-06-24â
- Added new utilities
spitArrayByPropertysplitArrayByPropertyanddeleteFields.
[4.12.44] - 2025-06-23â
- Updated
getDatesInRange()method inChronos: fixed an option conflict.
[4.12.43] - 2025-06-22â
- Updated
getDatesInRange()method inChronos, now accepts bothday-namesandday-indexarray forskipDaysandonlyDays. - Updated JSDoc for some functions and methods.
[4.12.42] - 2025-06-21â
- Updated JSDoc for some functions and methods.
- Updated and Optimized
getDatesInRange()method inChronos. Added new optiononlyDaysto get dates for only the provided days. - Allowed
formatStrict()method inChronosto accept other string values [made less strict].
[4.12.41] - 2025-06-17â
- Updated
getDatesInRange()andgetDatesForDay()Chronosmethods' options to change the date rounding behaviour.
[4.12.40] - 2025-06-17â
- Added new utility:
convertMinutesToTimeto convert minutes into clock-time (H:mm) format. - Exposed important
constantsto consumers via'nhb-toolbox/constants'import path.
đ§ Updates for Chronosâ
- Added new instance method
getDatesInRange()to get dates in the range as ISO date string. - Fixed a bug by rounding the date to the start hour of the day and updated internal logic in static
getDatesForDay()method.
[4.12.36] - 2025-06-13â
- Added new
convertSync()method inCurrencyclass to convert currency without network request.
[4.12.34-35] - 2025-06-12â
- Updated
format()andconvert()methods inCurrencyclass:format()method now acceptsCurrencyCodeas optional second parameterconvert()method now returns a newCurrencyinstance.
[4.12.33] - 2025-06-11â
- Trim input string for
numberToWordsOrdinalutility. - Preserve
File,FileListand other file related object(s) when processing nested object(s) usingsanitizeData.
[4.12.32] - 2025-06-11â
- Fixed a bug in
sanitizeDataandcreateFormDatawhere key selections did not allow to choose keys with null/undefined value(s). - Fixed a bug in
createFormDatawhere values of nested object(s) incorrectly converted to lowercase. Processdate-like object(s)more efficiently in both utilities.
[4.12.31] - 2025-06-10â
- Added new utility to convert number or numeric string to ordinal word.
- Updated JSDoc for some types.
- Upgraded TypeScript version to
5.8.3and other dev-dependencies.
[4.12.28-30] - 2025-06-06â
- Resolved a compile-time
not-assignableerror that occurred when optional properties were present in parameters ofsanitizeData,createFormData, and other utility functions. - Added additional utility types and integrated them into various parts of the package to improve type safety and maintainability.
[4.12.27] - 2025-06-02â
- Updated README.
- Added new utility types, can be imported from
'nhb-toolbox/utils/types'.
[4.12.25-26] - 2025-06-02â
- Updated JSDoc for some
Chronosmethods and exposedINTERNALSSymbol
[4.12.24] - 2025-06-01â
đ§ Updates for Chronosâ
- Reduced bloat by moving rarely used
Chronosmethods to plugin system. - Changed plugin import paths as
import { somePlugin } from nhb-toolbox/plugins/somePluginformat so the users can assume the path easily. - Updated parameter type for
isBusinessHourmethod: instead of multiple parameters can accept one options object now.
[4.12.23] - 2025-06-01â
đ§ Updates for Chronosâ
- All plugin imports now use statement like
import { somePlugin } from 'nhb-toolbox/plugins/plugin-path'; - Updated
getZodiacSignmethod: includes 2 presetswesternandvedicwith aliasestropicalandsidereal. - Fixed issues in
getZodiacSignmethod which previously could not parse some date/month range.
[4.12.21-beta.2] - 2025-05-31â
- Updated
types.mjsscript for updating the exports fields for plugins inpackage.json.
[4.12.21-beta.1] - 2025-05-31â
- Updated
getZodiacSignmethod: includes 2 presetswesternandvedic. - Fixed issues in
getZodiacSignmethod. - Experimenting with exporting each Chronos plugin as separate module from the respective locations.
[4.12.20] - 2025-05-31â
đ§ Released Plugin System for Chronosâ
- Plugin injection system for Chronos is now fully functional.
[4.12.13-beta.1] - 2025-05-31â
- Created more plugins for resource heavy methods of
Chronos.
[4.12.13-alpha.2] - 2025-05-30â
- Solved experimental plugin export/import issues.
[4.12.13-alpha.1] - 2025-05-30â
đ§ Experimenting with Plugin System for Chronosâ
- Introduced plugin injection in
Chronosclass. Started withseasonmethod. Will make convert more methods if this is successful after publishing.
[4.12.12] - 2025-05-30â
đ§ Updates in Chronosâ
- Added new method
seasonto get the name of the season for current Chronos instance. It has configurable options. - All
Chronosmethods that use#formatmethod internally now accepts escape tokens and new tokenZZis introduced to include timezone offset (or Z for UTC time) in the formatted date string. - Updated some type names such as
HoursâĄī¸ClockHour,MinutesâĄī¸ClockMinute,TimeâĄī¸ClockTImeetc. But the core definitions remain the same.
[4.12.10] - 2025-05-30â
đ§ New Chronos Methodsâ
- Added 2 new instance methods in
Chronos,dayandmonthNameto get day and month names respectively.
âšī¸ READMEâ
- Added
Signature Utilitiessection inREADME.md
[4.12.8] - 2025-05-29â
Typesâ
- Added new types
EnumerateandNumberRangeto generate number literals like0 | 1 | 2 | ... | 998. - Implemented both types in few cases where a return type is number and limited to a range, especially in color and number related functions and
Color&Chronosclasses.
Method Changed in Chronosâ
isoWeekdayis nowisoWeekDay- Some method logic changed internally
[4.12.7] - 2025-05-28â
Docsâ
- â Introduced
CHANGELOG.md
[4.12.6] - 2025-05-28â
Addedâ
- â
Chronos.getDatesFromDay()â a new static method to retrieve all matching dates for a given day of the week.
Fixedâ
- đ Minor internal issues and stability improvements.
[4.12.0] - 2025-05-28â
â ī¸ Breaking Changesâ
- â ī¸ Deprecation Notice: All versions below
4.12.0are now marked as deprecated - âģī¸ Build System: Switched from
tsupback totscfor building the library to resolve compatibility and output issues.
Fixedâ
- đ ī¸ Resolved ESM import issues by adding missing
.jsextensions in internal paths. - đ§Š Improved module resolution in strict ESM-only environments.
Improvedâ
- đ˛ Full tree-shaking support for ESM builds (CommonJS remains unaffected).
- đ˛ From the beginning the library was tree-shakable but now it's properly tree-shakable for ESM builds.
- đĻ CommonJS (
cjs) build remains unaffected and stable.