# Changelog

All notable changes to this project will be documented in this file.

The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [1.0.1] - 2025-12-30

### Added

#### Collection Methods

- `forEach` - Iterates over elements of collection and invokes iteratee for each element
- `forEachRight` - Like forEach but iterates from right to left
- `includes` - Checks if value is in collection (arrays, objects, strings)
- `invokeMap` - Invokes the method at path of each element in collection

#### Array Methods

- `first` - Gets the first element of array (alias for head)
- `last` - Gets the last element of array
- `rest` - Gets all but the first element (alias for tail)
- `initial` - Gets all but the last element of array
- `pull` - Removes all given values from array
- `pullAll` - Like pull but accepts an array of values to remove
- `remove` - Removes elements from array that predicate returns truthy for
- `concat` - Creates a new array concatenating array with any additional arrays and/or values
- `without` - Creates an array excluding all given values
- `indexOf` - Gets the index at which the first occurrence of value is found
- `lastIndexOf` - Like indexOf but searches from right to left
- `join` - Converts all elements in array into a string separated by separator

#### Object Methods

- `forOwn` - Iterates over own enumerable string keyed properties of an object
- `forOwnRight` - Like forOwn but iterates in reverse order
- `forIn` - Iterates over own and inherited enumerable properties
- `forInRight` - Like forIn but iterates in reverse order
- `mapValues` - Creates an object with the same keys and values generated by iteratee
- `mapKeys` - Creates an object with the same values and keys generated by iteratee
- `entries` - Creates an array of key-value pairs (alias for toPairs)
- `entriesIn` - Like entries but includes inherited properties
- `assign` - Assigns own enumerable string keyed properties of source objects to destination
- `merge` - Recursively merges own and inherited enumerable properties
- `invert` - Creates an object composed of the inverted keys and values
- `has` - Checks if path is a direct property of object
- `defaults` - Assigns own and inherited enumerable properties for unassigned properties

### Changed

- Updated TypeScript to ^5.7.2 (from ^5.3.0)
- Updated @types/node to ^22.10.0 (from ^20.0.0)
- Updated ESLint to ^9.17.0 (from ^8.0.0) with new flat config
- Updated @typescript-eslint/eslint-plugin to ^8.18.0 (from ^6.0.0)
- Updated @typescript-eslint/parser to ^8.18.0 (from ^6.0.0)
- Updated typedoc to ^0.27.0 (from ^0.25.0)
- Updated c8 to ^10.1.3 (from ^8.0.0)
- Added prettier ^3.4.2 for code formatting
- Improved ESLint configuration with modern flat config format
- Enhanced package.json scripts with format and type-check commands

### Fixed

- Renamed `merge` in advanced.ts to `mergeDeep` to avoid conflicts with core `merge`
- Fixed TypeScript compilation issues with function signatures
- Improved type safety for invokeMap and other variadic functions

### Maintained

- ✅ Full backward compatibility with version 1.0.0
- ✅ All existing APIs remain unchanged
- ✅ All existing tests continue to pass
- ✅ No breaking changes introduced

## [1.0.0] - 2025-12-30

### Added

- Initial release with comprehensive Lodash parity
- Array utilities: chunk, compact, difference, drop, flatten, uniq, etc.
- Object utilities: pick, omit, clone, merge, keys, values, etc.
- String utilities: camelCase, kebabCase, snakeCase, capitalize, etc.
- Function utilities: curry, compose, pipe, debounce, throttle, etc.
- Collection utilities: groupBy, countBy, filter, map, reduce, etc.
- Math utilities: sum, mean, median, mode, standardDeviation, etc.
- Lang utilities: isArray, isObject, isEmpty, isEqual, etc.
- Async utilities: promiseAllSettled, debounceAsync, throttleAsync, etc.
- TypeScript support with full type definitions
- ESM and CommonJS module support
- Tree-shakeable architecture for optimal bundle size

[1.0.1]: https://github.com/noorjsdivs/lodash-updated/compare/v1.0.0...v1.0.1
[1.0.0]: https://github.com/noorjsdivs/lodash-updated/releases/tag/v1.0.0
