# What changed in chai

> 9 changes in chai 6 from its official release notes, upgrade guides and advisories: 1 breaking, 1 new APIs and options. Each one cited. Sources checked 2026-10-18. HTML: https://unstale.sh/npm/chai/

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

## chai 6

### Breaking changes

- Iterable assertions require iterators to be callable. (6.3.0) — [release notes](https://github.com/chaijs/chai/releases/tag/v6.3.0)

### New APIs and options

- More utility type definitions are available to developers using Chai's types. (6.3.0) — [release notes](https://github.com/chaijs/chai/releases/tag/v6.3.0)

### Behavior and default changes

- Deep include oneOf assertions are supported. (6.3.0) — [release notes](https://github.com/chaijs/chai/releases/tag/v6.3.0)

### Tooling

- Chai's build target is now es2021 to support Safari versions earlier than 16.4. (6.2.1) — [release notes](https://github.com/chaijs/chai/releases/tag/v6.2.1)

### Fixes and other changes

- The change assertion's JSDoc types are corrected, and it handles 0 and empty string. (6.3.0) — [release notes](https://github.com/chaijs/chai/releases/tag/v6.3.0)
- The keys() assertion considers only unique expected keys. (6.3.0) — [release notes](https://github.com/chaijs/chai/releases/tag/v6.3.0)
- Literal template tags are preserved in assertion values. (6.3.0) — [release notes](https://github.com/chaijs/chai/releases/tag/v6.3.0)
- The failure message for not.deep.oneOf now includes the not modifier. (6.3.0) — [release notes](https://github.com/chaijs/chai/releases/tag/v6.3.0)
- Avoids a BigInt literal in closeTo for runtime compatibility. (6.2.2) — [release notes](https://github.com/chaijs/chai/releases/tag/v6.2.2)
