# What changed in fast-check

> 54 changes in fast-check 4 from its official release notes, upgrade guides and advisories: 7 deprecations, 20 new APIs and options. Each one cited. Sources checked 2026-10-18. HTML: https://unstale.sh/npm/fast-check/

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

## fast-check 4

### Deprecations

- The asyncReporter parameter is deprecated. (4.10.0) — [release notes](https://github.com/dubzzz/fast-check/releases/tag/v4.10.0)
- Life-cycle methods are deprecated in favor of plugin-based lifecycle hooks. (4.10.0) — [release notes](https://github.com/dubzzz/fast-check/releases/tag/v4.10.0)
- Parameters superseded by plugins are deprecated. (4.10.0) — [release notes](https://github.com/dubzzz/fast-check/releases/tag/v4.10.0)
- The reporter parameter is deprecated. (4.10.0) — [release notes](https://github.com/dubzzz/fast-check/releases/tag/v4.10.0)
- The timeout parameter is deprecated in favor of the timeout plugin. (4.10.0) — [release notes](https://github.com/dubzzz/fast-check/releases/tag/v4.10.0)
- Random.next(n) is deprecated. (4.6.0) — [release notes](https://github.com/dubzzz/fast-check/releases/tag/v4.6.0)
- Random.nextInt() is deprecated. (4.6.0) — [release notes](https://github.com/dubzzz/fast-check/releases/tag/v4.6.0)

### New APIs and options

- Adds an afterEach plugin for lifecycle hooks. (4.10.0) — [release notes](https://github.com/dubzzz/fast-check/releases/tag/v4.10.0)
- Adds a plugin for hooking into the lifecycle, with support for teardown. (4.10.0) — [release notes](https://github.com/dubzzz/fast-check/releases/tag/v4.10.0)
- Adds plugins that drop runs on cases that are already covered. (4.10.0) — [release notes](https://github.com/dubzzz/fast-check/releases/tag/v4.10.0)
- Plugins can decorate generate. (4.10.0) — [release notes](https://github.com/dubzzz/fast-check/releases/tag/v4.10.0)
- Plugins can now be configured globally. (4.10.0) — [release notes](https://github.com/dubzzz/fast-check/releases/tag/v4.10.0)
- Adds an extra plugin method called after all runs complete. (4.10.0) — [release notes](https://github.com/dubzzz/fast-check/releases/tag/v4.10.0)
- Introduces a plugin API for extending fast-check behavior. (4.10.0) — [release notes](https://github.com/dubzzz/fast-check/releases/tag/v4.10.0)
- The plugin supports failOnInterrupt. (4.10.0) — [release notes](https://github.com/dubzzz/fast-check/releases/tag/v4.10.0)
- Plugins are passed a store. (4.10.0) — [release notes](https://github.com/dubzzz/fast-check/releases/tag/v4.10.0)
- Adds a plugin to interrupt after a time limit. (4.10.0) — [release notes](https://github.com/dubzzz/fast-check/releases/tag/v4.10.0)
- Adds a plugin to stop long-running predicates. (4.10.0) — [release notes](https://github.com/dubzzz/fast-check/releases/tag/v4.10.0)
- Adds a plugin to generate without bias. (4.10.0) — [release notes](https://github.com/dubzzz/fast-check/releases/tag/v4.10.0)
- Adds the chainUntil arbitrary for iterative chaining. (4.8.0) — [release notes](https://github.com/dubzzz/fast-check/releases/tag/v4.8.0)
- The json arbitrary is reversible, allowing generated JSON values to be reversed. (4.7.0) — [release notes](https://github.com/dubzzz/fast-check/releases/tag/v4.7.0)
- Adds basic maxLength support to stringMatching, allowing developers to constrain generated strings by length. (4.6.0) — [release notes](https://github.com/dubzzz/fast-check/releases/tag/v4.6.0)
- Adds entityGraph for generating schema-based structures. (4.5.0) — [release notes](https://github.com/dubzzz/fast-check/releases/tag/v4.5.0)
- Adds initial pool constraints to entityGraph. (4.5.0) — [release notes](https://github.com/dubzzz/fast-check/releases/tag/v4.5.0)
- Adds strategies to entityGraph. (4.5.0) — [release notes](https://github.com/dubzzz/fast-check/releases/tag/v4.5.0)
- Adds the fc.map arbitrary. (4.4.0) — [release notes](https://github.com/dubzzz/fast-check/releases/tag/v4.4.0)
- Adds the fc.set arbitrary. (4.4.0) — [release notes](https://github.com/dubzzz/fast-check/releases/tag/v4.4.0)

### Performance

- Uses a single timer for interruptAfterTimeLimit. (4.10.0) — [release notes](https://github.com/dubzzz/fast-check/releases/tag/v4.10.0)
- fc.dictionary is faster on generate. (4.9.0) — [release notes](https://github.com/dubzzz/fast-check/releases/tag/v4.9.0)
- fc.entityGraph is faster on generate, with an early exit on an empty tuple. (4.9.0) — [release notes](https://github.com/dubzzz/fast-check/releases/tag/v4.9.0)
- fc.integer is faster on generate. (4.9.0) — [release notes](https://github.com/dubzzz/fast-check/releases/tag/v4.9.0)
- fc.record is faster on generate, and nested tuple is dropped for generate. (4.9.0) — [release notes](https://github.com/dubzzz/fast-check/releases/tag/v4.9.0)
- fc.stringMatching is faster for \W, \D, \S, and . and faster on generate. (4.9.0) — [release notes](https://github.com/dubzzz/fast-check/releases/tag/v4.9.0)
- fc.webPath is faster on generate. (4.9.0) — [release notes](https://github.com/dubzzz/fast-check/releases/tag/v4.9.0)
- fc.webUrl is faster on generate. (4.9.0) — [release notes](https://github.com/dubzzz/fast-check/releases/tag/v4.9.0)
- Optimizes array allocations in RunDetailsFormatter. (4.6.0) — [release notes](https://github.com/dubzzz/fast-check/releases/tag/v4.6.0)
- Uses Math.imul and shifts in performance-critical paths. (4.4.0) — [release notes](https://github.com/dubzzz/fast-check/releases/tag/v4.4.0)

### Behavior and default changes

- entityGraph is being made shrinkable thanks to chainUntil. (4.9.0) — [release notes](https://github.com/dubzzz/fast-check/releases/tag/v4.9.0)
- stringMatching supports Unicode property escapes, including negated properties. (4.7.0) — [release notes](https://github.com/dubzzz/fast-check/releases/tag/v4.7.0)
- Allows recursions on many relations in entityGraph. (4.5.0) — [release notes](https://github.com/dubzzz/fast-check/releases/tag/v4.5.0)
- Tweaks the uniqueness of entities produced by entityGraph. (4.5.0) — [release notes](https://github.com/dubzzz/fast-check/releases/tag/v4.5.0)
- Supports inverse relations in entityGraph. (4.5.0) — [release notes](https://github.com/dubzzz/fast-check/releases/tag/v4.5.0)
- fc.dictionary(...) now supports the full PropertyKey type for keys. (4.4.0) — [release notes](https://github.com/dubzzz/fast-check/releases/tag/v4.4.0)

### Fixes and other changes

- Fixes a bug where the interruptAfterTimeLimit plugin crashes. (4.10.2) — [release notes](https://github.com/dubzzz/fast-check/releases/tag/v4.10.2)
- Fixes timer capture for the interruptAfterTimeLimit plugin. (4.10.1) — [release notes](https://github.com/dubzzz/fast-check/releases/tag/v4.10.1)
- Fixes ordering between plugins. (4.10.0) — [release notes](https://github.com/dubzzz/fast-check/releases/tag/v4.10.0)
- Fixes a latent state-sharing bug in entityGraph. (4.9.0) — [release notes](https://github.com/dubzzz/fast-check/releases/tag/v4.9.0)
- Alternatives in stringMatching are now equiprobable. (4.9.0) — [release notes](https://github.com/dubzzz/fast-check/releases/tag/v4.9.0)
- Restores the ability to use fast-check without enabling skipLibCheck. (4.8.0) — [release notes](https://github.com/dubzzz/fast-check/releases/tag/v4.8.0)
- Fixes a bad TypeScript declaration import in BuildInversedRelationsMapping. (4.6.0) — [release notes](https://github.com/dubzzz/fast-check/releases/tag/v4.6.0)
- Fixes object unmapping and depth computation for special keys. (4.6.0) — [release notes](https://github.com/dubzzz/fast-check/releases/tag/v4.6.0)
- Prevents crashes when stringifying detached ArrayBuffers. (4.6.0) — [release notes](https://github.com/dubzzz/fast-check/releases/tag/v4.6.0)
- Improves clamping of regular expressions when maxLength is used with stringMatching. (4.6.0) — [release notes](https://github.com/dubzzz/fast-check/releases/tag/v4.6.0)
- Takes depth into account when generating entity graphs. (4.5.0) — [release notes](https://github.com/dubzzz/fast-check/releases/tag/v4.5.0)
