Released on July 24th, 2026.
- Added the
es-toolkit/typesentrypoint: a declaration-only module of compile-time type utilities TypeScript lacks natively —ValueOf,Simplify,Writable,NonEmptyArray,DeepPartial, andDeepReadonly. ([#1818]) - Added
flowtoes-toolkit/fp, a reusable data-last composition built onpipe. ([#1812])
The following bring es-toolkit/compat closer to Lodash. Behavior for the affected edge cases now matches Lodash, so results may differ if you relied on the previous output.
-
Fixed
compat/intersectionByto dedupe a single array (including by the iteratee) and to keep results consistent with Lodash. ([#1935]) -
Fixed
compat/findIndexandcompat/findLastIndexto coerce aNaNfromIndexto0and to convertfromIndexto an integer. ([#1828], [#1834], [#1938]) -
Fixed
compat/lastIndexOfto coercefromIndexlike Lodash. ([#1832]) -
Fixed
compat/everyto treat a falsy, non-nullishdoesMatchas a_.propertyshorthand instead of identity. ([#1940]) -
Fixed
compat/nthto support string inputs. ([#1833]) -
Fixed
compat/inRangeto not throw on a lone negative bound. ([#1835]) -
Fixed
compat/toArrayto convertSets to arrays like Lodash. ([#1840]) -
Fixed
compat/valuesto treat sparse array holes asundefined. ([#1894]) -
Fixed
compat/maxByandcompat/minByto restore Lodash-compatible comparison. ([#1893]) -
Fixed
compat/includesto exclude thelengthproperty when matching array-like values. ([#1886]) -
Fixed the case functions to split ordinal numbers like Lodash, and to count string size and padding by code points for multi-byte characters. ([#1836], [#1852], [#1853])
-
Fixed
compat/unsetto not treat an own literal dotted key as a deep path. ([#1808]) -
Moved
compat/flattenDepth's flattening logic out offlatten. ([#1847]) -
Restored the standalone
eqandtemplateSettingsentry points. ([#1895]) -
Fixed
deburrto remove all combining diacritical marks, matching Lodash. ([#1807]) -
Fixed
partitionto accept any predicate return value, likeArray.prototype.filter. ([#1937]) -
Fixed
hasandhasInto prioritize nullish literal keys over paths. ([#1810]) -
Fixed
invokeMapto normalize a string path viatoPathforthisbinding. ([#1814]) -
Fixed
isDeepKeyto detect deep keys with stricter patterns. ([#1621]) -
Fixed
unzipWithto return an empty array instead of throwing on empty input. ([#1816]) -
Improved documentation, JSDoc accuracy, and internal refactoring across
compatandfp. ([#1817], [#1820], [#1822], [#1823], [#1825], [#1829], [#1830], [#1842], [#1845], [#1851], [#1858], [#1867], [#1879])
We sincerely thank @Antoliny0919, @raon0211, @dayongkr, @spokodev, @sarathfrancis90, @mayur-shenoy, @mahirhir, @kojesung, @Hprogram, @BangDori, and everyone else who contributed. We appreciate your great efforts!