# What changed in html5parser

> 7 changes in html5parser 3 from its official release notes, upgrade guides and advisories: 5 breaking, 1 new APIs and options. Each one cited. Sources checked 2026-10-24. HTML: https://unstale.sh/npm/html5parser/

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

## html5parser 3

### Breaking changes

- Generated distribution files are now named index.* instead of html5parser.*. (3.0.0) — [release notes](https://github.com/acrazing/html5parser/releases/tag/v3.0.0)
- The package is now ESM-first and uses type: "module"; CommonJS consumers may need to update their imports. (3.0.0) — [release notes](https://github.com/acrazing/html5parser/releases/tag/v3.0.0)
- Adds explicit package exports, so deep-import consumers may need to update their imports. (3.0.0) — [release notes](https://github.com/acrazing/html5parser/releases/tag/v3.0.0)
- Removes the unsafe safeHtml API from core; HTML/CSS sanitization should be handled by a dedicated sanitizer. (3.0.0) — [release notes](https://github.com/acrazing/html5parser/releases/tag/v3.0.0)
- Removes unsafe style handling together with the old safeHtml API. (3.0.0) — [release notes](https://github.com/acrazing/html5parser/releases/tag/v3.0.0)

### New APIs and options

- Implements RCDATA, RAWTEXT, script data, noscript with scriptingEnabled, and plaintext-until-EOF parsing modes. (3.0.0) — [release notes](https://github.com/acrazing/html5parser/releases/tag/v3.0.0)

### Fixes and other changes

- Completes void element handling, including legacy void-like tags and parser-specific doctype and comment node names. (3.0.0) — [release notes](https://github.com/acrazing/html5parser/releases/tag/v3.0.0)
