Packages

immer

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

Upgrading immer From 0.2.1 to 11.2.9

184 releases in betweennotes for 147

Other targets from 0.2.1Newest 0.x0.8.5
1.0.0 has no release note on GitHub or in the repository's changelog, so its breaking changes are missing from the counts below.
  1. 0.2.1yours
  2. 1 release
  3. 0.3.0major
  4. 1 release
  5. 0.4.0major
  6. 2 releases
  7. 0.5.0major
  8. 0.6.0major
  9. 1 release
  10. 0.7.0major
  11. 0.8.0major
  12. 5 releases
  13. 1.0.0major
  14. 36 releases
  15. 2.0.0major
  16. 7 releases
  17. 3.0.0major
  18. 8 releases
  19. 4.0.0major
  20. 2 releases
  21. 5.0.0major
  22. 12 releases
  23. 6.0.0major
  24. 9 releases
  25. 7.0.0major
  26. 15 releases
  27. 8.0.0major
  28. 8.0.1security
  29. 3 releases
  30. 9.0.0major
  31. 5 releases
  32. 9.0.6security
  33. 15 releases
  34. 10.0.0major
  35. 9 releases
  36. 11.0.0major
  37. 9 releases
  38. 11.1.9security
  39. 23 releases
  40. 11.2.9target
44+
changes to make
0
advisories fixed
40+
new
156+
fixes

Counted from 147 of 184 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.