Packages

immer

11.2.9 · 22 Oct 2026MIT89.4M / weekRepositoryHomepagenpmAtom feed

Upgrading immer From 1.3.1 to 11.2.9

156 releases in betweennotes for 147

Other targets from 1.3.1Newest 1.x1.12.1
  1. 1.3.1yours
  2. 25 releases
  3. 2.0.0major
  4. 7 releases
  5. 3.0.0major
  6. 8 releases
  7. 4.0.0major
  8. 2 releases
  9. 5.0.0major
  10. 12 releases
  11. 6.0.0major
  12. 9 releases
  13. 7.0.0major
  14. 15 releases
  15. 8.0.0major
  16. 8.0.1security
  17. 3 releases
  18. 9.0.0major
  19. 5 releases
  20. 9.0.6security
  21. 15 releases
  22. 10.0.0major
  23. 9 releases
  24. 11.0.0major
  25. 9 releases
  26. 11.1.9security
  27. 23 releases
  28. 11.2.9target
44+
changes to make
0
advisories fixed
40+
new
156+
fixes

Counted from 147 of 156 release notes. Advisories are counted from the advisory database, in full.

Before you upgrade

Tick each one off as you go
  • breaking11.0.0
  • breaking11.0.0
  • breaking11.0.0
  • breaking11.0.0
  • breaking11.0.0
  • breaking11.0.0
  • breaking11.0.0
  • breaking11.0.0
  • breaking11.0.0
  • breaking11.0.0

Security

  • Prevent prototype pollution via constructor.prototype access (CVE-2026-XXXX)

    11.1.9
  • security: Follow up on CVE-2020-28477 where path: [["__proto__"], "x"] could still pollute the prototype

    9.0.6
  • Fixed security issue #738: prototype pollution possible when applying patches CVE-2020-28477

    8.0.1

Release by release

  1. 11.2.9

    22 Oct 20261 fix
    • fixed

      Export WritableNonArrayDraft from immer.ts so it gets picked up by type generation in builds

  2. 11.2.8

    22 Oct 20261 fix
    • fixed

      Skip patches of a draft discarded by writing its base value back

  3. 11.2.7

    21 Oct 20261 fix
    • fixed

      Snapshot array length before optimized filter callbacks

  4. 11.2.6

    21 Oct 20261 fix
    • fixed

      Avoid excessive Draft recursion for readonly arrays in recursive types

  5. 11.2.5

    21 Oct 20261 fix
    • fixed

      Draft relocated base objects at previously assigned indices in array-methods plugin (#1314) (4d37e43), closes #1255

  6. 11.2.4

    21 Oct 20261 fix
    • fixed

      Resolve the splice start index against the pre-splice length in array-methods plugin

  7. 11.2.3

    20 Oct 20261 fix
    • fixed

      Skip nested patches for children of shifted or reordered arrays

  8. 11.2.2

    20 Oct 20261 fix
    • fixed

      Export WritableNonArrayDraft type.

21 other lines we could not sort, mostly version bumps
  • Revert "prevent prototype pollution via constructor.prototype access (CVE-2026-XXXX) (#1259)" (#1271) (4d3d6ff), closes #1266 #1268 #1265

    11.1.12
  • Override array methods to avoid proxy creation while iterating and updating

    11.1.0
  • Immer is now an ESM package that can be directly imported into the browser. CJS should still work, UMD support has been removed.

    10.0.0
  • If you have any enableES5() call, don't migrate

    10.0.0
  • When using getters/ setters icmw plain objects, call useStrictShallowCopy(true) at startup

    10.0.0
  • Replace all default imports: Replace import produce from "immer" with import {produce} from "immer"

    10.0.0
  • Replace all calls to enableAllPlugins() with enablePatches(); enableMapSet(); to be more specific and smoothen future migrations.

    10.0.0
  • If any producer returned a Promise, refactor it to leverage createDraft instead. Roughly:

    10.0.0
  • Merge pull request #536 from immerjs/multi-bundle (0d87fc8), closes #536

    6.0.0
  • Adding large data sets to a draft has been optimized (in case autofreeze is disabled)

    6.0.0

8 internal lines (docs, tests, tooling) left out.