unstale

npm / immer

immer

What changed in immer 10 to 11, from its official release notes, upgrade guides and advisories. Sources checked 2026-10-17.

2 breaking1 security3 new APIs and options2 performance18 fixes and other

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

npx @unstale/cli init

@unstale/cli 0.1.1 on npm

immer 1124 changes

Breaking changes 2

Security 1

  • Prevents prototype pollution via constructor.prototype access.

    11.1.9release notes

New APIs and options 2

  • Adds an optional plugin that overrides specified draft array methods to operate directly on the underlying array, significantly speeding up array operations.

    11.1.0release notes

  • With the plugin enabled, array items passed to callbacks are not automatically wrapped in Proxies, so mutating them can change the underlying objects.

    11.1.0release notes

Performance 1

  • Finalization now uses targeted callbacks instead of recursive tree traversal, improving performance.

    11.0.0release notes

Fixes and other changes 18

  • A deletion is no longer recorded when a base value is written back.

    11.1.20release notes

  • The array-methods plugin now forwards thisArg, so callbacks receive the intended this value.

    11.1.19release notes

  • Removed the global var declaration for Iterator that conflicted with the ESNext lib.

    11.1.18release notes

  • Preserves structural sharing for no-op array-method calls.

    11.1.17release notes

  • Inserted array indices are keyed by name in the array-methods plugin.

    11.1.16release notes

  • Corrected the return type of curried produceWithPatches.

    11.1.15release notes

  • Throws the proper Immer error when an applyPatches path traverses null.

    11.1.14release notes

  • Fixes relocated base references for drafts after reverse or sort in the array-methods plugin.

    11.1.13release notes

  • Reverts the prevention of prototype pollution via constructor.prototype access.

    11.1.12release notes

  • Improves DraftMap.entries() compatibility.

    11.1.11release notes

  • Improves DraftMap.values() compatibility.

    11.1.11release notes

  • Assigning undefined to a prototype-inherited key no longer gets dropped.

    11.1.10release notes

  • The typings now assert that the draft value is unwrapped.

    11.1.8release notes

  • The typings now assert that the draft value is unwrapped.

    11.1.8release notes

  • Higher-order type inference for WritableDraft is improved.

    11.1.7release notes

  • Removes an invalid curried producer type.

    11.1.6release notes

  • Handles nested proxies after spreading and inserting into an array.

    11.1.4release notesrelease notes

  • Fixes recursive T for WritableDraft.

    11.1.3release notes

immer 102 changes

New APIs and options 1

Performance 1

  • Immer performance is optimized where possible.

    10.2.0release notes