# What changed in safe-stable-stringify

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

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

## safe-stable-stringify 3

### Breaking changes

- The default circular marker is now '[Circular: N]', where N is the referenced ancestor's depth; set circularValue to '[Circular]' to retain the previous format. (3.0.0) — [release notes](https://github.com/BridgeAR/safe-stable-stringify/releases/tag/v3.0.0)
- Node.js 18 or later is required; older versions may still work but are not supported. (3.0.0) — [release notes](https://github.com/BridgeAR/safe-stable-stringify/releases/tag/v3.0.0)

### New APIs and options

- The bigint option accepts 'string', serializing bigint values as JSON strings. (3.0.0) — [release notes](https://github.com/BridgeAR/safe-stable-stringify/releases/tag/v3.0.0)
- The safe option prevents failures when a getter, .toJSON(), or replacer throws, replacing the object inspection with a string error message; it defaults to false. (3.0.0) — [release notes](https://github.com/BridgeAR/safe-stable-stringify/releases/tag/v3.0.0)

### Performance

- Sorting and escaping are faster on newer Node.js versions. (3.0.0) — [release notes](https://github.com/BridgeAR/safe-stable-stringify/releases/tag/v3.0.0)

### Fixes and other changes

- ESM imports work in Node.js and bundlers, including applications that also use CommonJS. (3.0.0) — [release notes](https://github.com/BridgeAR/safe-stable-stringify/releases/tag/v3.0.0)
- Fixed an off-by-one error that caused one fewer entry than intended to be skipped. (3.0.0) — [release notes](https://github.com/BridgeAR/safe-stable-stringify/releases/tag/v3.0.0)
- Using a negative spacer number no longer throws. (3.0.0) — [release notes](https://github.com/BridgeAR/safe-stable-stringify/releases/tag/v3.0.0)
- Non-finite floating-point typed array values, such as Infinity in a Float32Array, are now serialized correctly. (3.0.0) — [release notes](https://github.com/BridgeAR/safe-stable-stringify/releases/tag/v3.0.0)
