| datasource | package | from | to |
| ---------- | ----------- | ----- | ----- |
| npm | strong-mock | 8.0.1 | 9.0.0 |
## [v9.0.0](https://github.com/NiGhTTraX/strong-mock/blob/HEAD/CHANGELOG.md#900-2024-05-27)
This version greatly improves error messages and the matcher API. Check the [migration guide](MIGRATION.md#migrating-to-v9).
```typescript
const fn = mock<(x: number, y: number, z: { foo: string }) => number>();
when(() => fn(1, 2, { foo: 'bar' })).thenReturn(42);
fn(1, 2, { foo: 'baz' });
```
| Before | After |
|--------------------------------|------------------------------|
| ![before](media/before-v9.png) | ![after](media/after-v9.png) |
##### ⚠ BREAKING CHANGES
- `isObject` has been replaced by `isPlainObject` and `containsObject`
- Merge `isString`'s optional `containing` and `matching` args
- Rename the `toJSON` matcher method to `toString`
- Don't allow empty partials in `containsObject`
##### Features
- Attach actual/expected args to error instance to enable IDE diffs ([7a04a43](NiGhTTraX/strong-mock@7a04a43))
- Improve `isArray` diff ([a5aaddd](NiGhTTraX/strong-mock@a5aaddd))
- Improve `isNumber` diff ([55647ed](NiGhTTraX/strong-mock@55647ed))
- Improve `isObject` diff ([5533bcf](NiGhTTraX/strong-mock@5533bcf))
- Improve `isString` diff ([5c73fbb](NiGhTTraX/strong-mock@5c73fbb))
- Improve `willCapture` diff ([7d92ce9](NiGhTTraX/strong-mock@7d92ce9))
- Improve colors in UnexpectedCall error message ([f326954](NiGhTTraX/strong-mock@f326954))
- Pretty print argument diffs in UnexpectedCall error messages ([ba4f6b5](NiGhTTraX/strong-mock@ba4f6b5))
##### Bug Fixes
- Fix `isPartial` allowing unexpected keys ([cc0b881](NiGhTTraX/strong-mock@cc0b881))
- Fix `isPartial` not working with interfaces ([169b336](NiGhTTraX/strong-mock@169b336))
- `isObject` now correctly fails for `null` and `undefined` ([9b50fe4](NiGhTTraX/strong-mock@9b50fe4))
- Fix `It` docstrings ([df7f91a](NiGhTTraX/strong-mock@df7f91a))
- Handle non string keys in `isObject` ([87cb768](NiGhTTraX/strong-mock@87cb768))