unstale

npm / remeda

remeda

What changed in remeda 2, from its official release notes, upgrade guides and advisories. Sources checked 2026-11-14.

12 breaking3 new APIs and options3 performance1 behavior and defaults1 tooling82 fixes and other

See which of these apply to your code, ranked, in your agent:

npx @unstale/cli init

@unstale/cli 0.3.1 on npm

remeda 2102 changes

Breaking changes 12

  • Reverts the arity parameter on purry.

    2.61.0release notes

  • Disjoint literal suffixes are rejected at compile time.

    2.48.0release notes

  • Narrows the callback data parameter type for lazy evaluators.

    2.47.0release notes

  • The runtime implementation and semantics were adjusted to handle edge cases more consistently.

    2.0.0release notes

  • compact was removed because it can be replaced with filter(isTruthy).

    2.0.0release notes

  • toPairs is now named entries to align function names with ECMAScript standards.

    2.0.0release notes

  • Call identity with no parameters to get its dataLast implementation.

    2.0.0release notes

  • The indexed variants are merged into base functions, with indexed parameters as defaults.

    2.0.0release notes

  • Remeda is now compiled with a target of ES2022.

    2.0.0release notes

  • Call keys with no parameters to get its dataLast implementation.

    2.0.0release notes

  • The strict variants are merged into base functions, with improved typing as the default.

    2.0.0release notes

  • The minimum supported TypeScript version is now 5.1.

    2.0.0release notes

New APIs and options 3

Performance 3

  • Utilities are faster because arguments are passed as parameters instead of arrays.

    2.60.0release notes

  • Pipe and utilities are faster after redundant work was removed.

    2.59.0release notes

  • Typechecking performance improved for large literal tuples passed to sample.

    2.36.0release notes

Behavior and default changes 1

  • Type-guards are the only functions that remain headless.

    2.0.0release notes

Tooling 1

  • The build now generates a monolithic type definition file.

    2.33.0release notes

Fixes and other changes 82

  • Handles __proto__ keys.

    2.58.0release notes

  • Handles __proto__ keys.

    2.58.0release notes

  • Handles __proto__ keys.

    2.58.0release notes

  • Handles __proto__ keys.

    2.58.0release notes

  • Handles __proto__ keys.

    2.58.0release notes

  • Handles __proto__ keys.

    2.58.0release notes

  • Handles __proto__ keys.

    2.58.0release notes

  • Handles __proto__ keys.

    2.58.0release notes

  • Handles __proto__ keys.

    2.58.0release notes

  • Handles __proto__ keys.

    2.58.0release notes

  • dropFirstBy now supports lazy evaluation.

    2.57.0release notes

  • dropLast now supports lazy evaluation.

    2.57.0release notes

  • dropWhile now supports lazy evaluation.

    2.57.0release notes

  • takeWhile now supports lazy evaluation.

    2.57.0release notes

  • Minor edge-case fixes.

    2.56.0release notes

  • pipe only evaluates lazily when a step can stop early.

    2.55.0release notes

  • In pipe, fractional and NaN counts now match data-first behavior.

    2.54.0release notes

  • In pipe, fractional and NaN counts now match data-first behavior.

    2.54.0release notes

  • In pipe, fractional and NaN counts now match data-first behavior.

    2.54.0release notes

  • The lazy evaluation engine used by pipe and purry was rewritten.

    2.52.0release notes

  • Missing values are handled differently than optional ones.

    2.51.0release notes

  • Fixes isNot to resolve trivial fixed-value conditions.

    2.50.0release notes

  • Rejects disjoint suffixes instead of disabling the return type.

    2.49.0release notes

  • Rejects disjoint prefixes instead of disabling the return type.

    2.49.0release notes

  • Disjoint literal prefixes are rejected at compile time.

    2.48.0release notes

  • Narrows the callback data parameter type for lazy evaluators.

    2.47.0release notes

  • Narrows the callback data parameter type for lazy evaluators.

    2.47.0release notes

  • Narrows the callback data parameter type for lazy evaluators.

    2.47.0release notes

  • Narrows the callback data parameter type for lazy evaluators.

    2.47.0release notes

  • Narrows the callback data parameter type for lazy evaluators.

    2.47.0release notes

  • Narrows the callback data parameter type for lazy evaluators.

    2.47.0release notes

  • Narrows the callback data parameter type for lazy evaluators.

    2.47.0release notes

  • Redesigned types for functions that accept type-narrowing predicates.

    2.46.0release notes

  • Redesigned types for functions that accept type-narrowing predicates.

    2.46.0release notes

  • Redesigned types for functions that accept type-narrowing predicates.

    2.46.0release notes

  • Redesigned types for functions that accept type-narrowing predicates.

    2.46.0release notes

  • Redesigned types for functions that accept type-narrowing predicates.

    2.46.0release notes

  • Redesigned types for functions that accept type-narrowing predicates.

    2.46.0release notes

  • Redesigned types for functions that accept type-narrowing predicates.

    2.46.0release notes

  • Redesigned types for functions that accept type-narrowing predicates.

    2.46.0release notes

  • Allows widening type predicates.

    2.45.0release notes

  • Supports type predicates that aren't subtypes of the item type.

    2.44.0release notes

  • Early returns can now short-circuit the pipe.

    2.43.0release notes

  • Objects are no longer shared between pipes.

    2.43.0release notes

  • Handles data-last usage with an empty parameter.

    2.42.0release notes

  • Handles data-last usage with an empty parameter.

    2.42.0release notes

  • Fixes handling of index signatures in prop.

    2.41.0release notes

  • ceil was affected by manual fixes accompanying dependency updates; the notes do not specify the change.

    2.40.0release notes

  • evolve was affected by manual fixes accompanying dependency updates; the notes do not specify the change.

    2.40.0release notes

  • floor was affected by manual fixes accompanying dependency updates; the notes do not specify the change.

    2.40.0release notes

  • isDeepEqual was affected by manual fixes accompanying dependency updates; the notes do not specify the change.

    2.40.0release notes

  • isShallowEqual was affected by manual fixes accompanying dependency updates; the notes do not specify the change.

    2.40.0release notes

  • last was affected by manual fixes accompanying dependency updates; the notes do not specify the typing change.

    2.40.0release notes

  • mergeDeep was affected by manual fixes accompanying dependency updates; the notes do not specify the change.

    2.40.0release notes

  • round was affected by manual fixes accompanying dependency updates; the notes do not specify the change.

    2.40.0release notes

  • swapIndices was affected by manual fixes accompanying dependency updates; the notes do not specify the change.

    2.40.0release notes

  • Corrects types through NoInfer.

    2.39.0release notes

  • Corrects types through NoInfer.

    2.39.0release notes

  • Moves data-last inference to the curried data parameter, improving type inference for curried use.

    2.37.0release notes

  • Fixes a typing issue with union types.

    2.35.0release notes

  • isDeepEqual now allows null-prototype objects.

    2.34.0release notes

  • The Merge type was improved.

    2.33.6release notes

  • truncate now handles primitive inputs.

    2.33.5release notes

  • Avoids calling setTimeout with negative numbers.

    2.33.4release notes

  • Export symbols are now available when declarations are enabled with declarations: true.

    2.33.3release notes

  • Fixes mapKeys for a mapper with a single literal value.

    2.33.2release notes

  • Typing for optional tuple elements is refined when exactOptionalPropertyTypes is enabled.

    2.33.1release notes

  • Typing for optional tuple elements is refined when exactOptionalPropertyTypes is enabled.

    2.33.1release notes

  • Typing for optional tuple elements is refined when exactOptionalPropertyTypes is enabled.

    2.33.1release notes

  • Typing for optional tuple elements is refined when exactOptionalPropertyTypes is enabled.

    2.33.1release notes

  • Typing for optional tuple elements is refined when exactOptionalPropertyTypes is enabled.

    2.33.1release notes

  • Typing for optional tuple elements is refined when exactOptionalPropertyTypes is enabled.

    2.33.1release notes

  • Typing for optional tuple elements is refined when exactOptionalPropertyTypes is enabled.

    2.33.1release notes

  • Typing for optional tuple elements is refined when exactOptionalPropertyTypes is enabled.

    2.33.1release notes

  • Typing for optional tuple elements is refined when exactOptionalPropertyTypes is enabled.

    2.33.1release notes

  • Typing for optional tuple elements is refined when exactOptionalPropertyTypes is enabled.

    2.33.1release notes

  • Typing for optional tuple elements is refined when exactOptionalPropertyTypes is enabled.

    2.33.1release notes

  • Typing for optional tuple elements is refined when exactOptionalPropertyTypes is enabled.

    2.33.1release notes

  • Typing for optional tuple elements is refined when exactOptionalPropertyTypes is enabled.

    2.33.1release notes

  • Handles complex tuple inputs, unions, and unbounded keys.

    2.32.2release notes

  • Fixes union type narrowing for simple arrays.

    2.32.1release notes

  • Typing changes better reflect JavaScript's handling of symbol and number keys.

    2.0.0release notes