v3.1.3
Patch release focused on utility bug fixes, simpler implementations, and clearer documentation and tests. No utility functions were added or removed.
Fixed
- Fixed decimal ranges omitting aligned endpoints, such as
range(1, 1.4, 0.1)missing1.4. - Recognized plain objects from other JavaScript contexts so deep merges preserve nested fields and copy those objects.
- Preserved trailing empty slots in nested sparse arrays during deep merges.
- Handled empty property names consistently in
getDot(),hasDot(),setDot(), andforgetDot(), including paths generated byflatten(). - Kept uppercase words and acronyms together during case conversion, so
camelCase('HELLO WORLD')returnshelloWorld. - Fixed
randomInt()rounding up to the excluded upper bound when adding a random offset to a large lower bound.
Changed
- Simplified range generation, deep merging, partial application, and type checks.
- Updated the README to reflect current utility behavior and added JSDoc for top-level internal helpers.
- Consolidated repetitive tests into data-driven cases and made random and timer checks deterministic.
- Rebuilt the distribution bundles and source maps.