# What changed in debounce

> 8 changes in debounce 2 to 3 from its official release notes, upgrade guides and advisories: 5 breaking, 1 security. Each one cited. Sources checked 2026-10-27. HTML: https://unstale.sh/npm/debounce/

To see which of these apply to a repository, run `npx @unstale/cli init` in it.

## debounce 3

### Breaking changes

- The named export has been removed; the package now has only a default export. (3.0.0) — [release notes](https://github.com/sindresorhus/debounce/releases/tag/v3.0.0)
- Node.js 20 is now required to use the package. (3.0.0) — [release notes](https://github.com/sindresorhus/debounce/releases/tag/v3.0.0)
- The package is now pure ESM, so developers must use it accordingly. (3.0.0) — [release notes](https://github.com/sindresorhus/debounce/releases/tag/v3.0.0)

## debounce 2

### Breaking changes

- Support for component was removed. (2.0.0) — [release notes](https://github.com/sindresorhus/debounce/releases/tag/v2.0.0)
- Node.js 18 and modern browsers are now required. (2.0.0) — [release notes](https://github.com/sindresorhus/debounce/releases/tag/v2.0.0)

### Security

- The library now protects against improper use in classes. (2.0.0) — [release notes](https://github.com/sindresorhus/debounce/releases/tag/v2.0.0)

### Tooling

- TypeScript types were added. (2.0.0) — [release notes](https://github.com/sindresorhus/debounce/releases/tag/v2.0.0)

### Fixes and other changes

- Fixed recursive callback arguments. (2.0.0) — [release notes](https://github.com/sindresorhus/debounce/releases/tag/v2.0.0)
