Back to Explore

immerjs/immer

GitHub
8 updates · last 90 days1 watchersOpen source

Last release:

Immer helps you create the next immutable state tree by mutating the current one, making it useful for state management patterns like Redux-style reducer logic. It provides documentation at https://immerjs.github.io/immer/ and release notes on its GitHub release page.

A status summary will appear after the next weekly refresh.

AI-generated from public sources. May be inaccurate. Report

Recent updates

  • v11.1.16

    v11.1.16 is a small bug fix release. It adjusts how the array-methods plugin records inserted indices internally, and adds a regression test to ensure patch generation remains correct after pop and subsequent push.

  • v11.1.15

    v11.1.15 is a TypeScript typing fix for Immer's curried produceWithPatches, aiming to ensure the return type infers the correct State type. The release notes mention correcting the curried produceWithPatches return type, and the code diff confirms this by adding new overloads and tests focused on inference behavior.

  • v11.1.14

    v11.1.14 primarily fixes error handling for Immer patches, ensuring applyPatches reports a proper Immer error instead of a native runtime error when a patch path traverses a null intermediate value. The repository also includes CI and documentation updates related to GitHub Pages and contributor-facing workflows.

    Security
  • v11.1.13

    v11.1.13 includes a targeted fix for Immer's array-method behavior when using the array-methods plugin, specifically around draft relocation after reverse/sort. The release notes call out that base references are now drafted correctly to prevent accidental mutations of the original base state.

  • v11.1.12

    Release v11.1.12 reverts a previously added prototype pollution mitigation (referenced as CVE-2026-XXXX) related to constructor.prototype access. The code changes show the removal of multiple reserved-property guards in the core proxy traps and the corresponding tests, effectively changing the security behavior of drafts.

    BreakingSecurity
  • v11.1.11

    v11.1.11 contains a single documented bug fix focused on improving DraftMap compatibility for the .entries() and .values() iterators. The release notes do not describe any other runtime changes.

  • v11.1.10

    v11.1.10 includes a targeted bug fix for Immer proxy behavior when assigning `undefined` to a property that exists only via prototype inheritance. The change adjusts the proxy set-trap logic so the assignment is preserved as an own property and patch generation reflects it correctly.

  • v11.1.9

    v11.1.9 is a security-focused patch release that prevents prototype pollution through reserved property access on Immer drafts. The release notes describe the CVE fix specifically for constructor.prototype access, but the code changes show broader hardening around constructor, __proto__, and prototype interactions.

    Security