Packages

immer

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

Upgrading immer From 0.3.1 to 11.2.9

181 releases in betweennotes for 147

Other targets from 0.3.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.3.1yours
  2. 0.4.0major
  3. 2 releases
  4. 0.5.0major
  5. 0.6.0major
  6. 1 release
  7. 0.7.0major
  8. 0.8.0major
  9. 5 releases
  10. 1.0.0major
  11. 36 releases
  12. 2.0.0major
  13. 7 releases
  14. 3.0.0major
  15. 8 releases
  16. 4.0.0major
  17. 2 releases
  18. 5.0.0major
  19. 12 releases
  20. 6.0.0major
  21. 9 releases
  22. 7.0.0major
  23. 15 releases
  24. 8.0.0major
  25. 8.0.1security
  26. 3 releases
  27. 9.0.0major
  28. 5 releases
  29. 9.0.6security
  30. 15 releases
  31. 10.0.0major
  32. 9 releases
  33. 11.0.0major
  34. 9 releases
  35. 11.1.9security
  36. 23 releases
  37. 11.2.9target
44+
changes to make
0
advisories fixed
40+
new
156+
fixes

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