2.16.0 / 2020-06-30
==================
  * [New] add `predicate` validator
  * [meta] add `funding` field
  * [Deps] remove unused `has` (#67)
  * [Deps] update `array.prototype.find`, `function.prototype.name`, `is-regex`, `object.entries`, `object-is`, `react-is`
  * [Dev Deps] update `@babel/cli`, `@babel/core`, `@babel/register`, `airbnb-browser-shims`, `enzyme`, `enzyme-adapter-react-helper`, `eslint`, `eslint-config-airbnb`, `eslint-plugin-import`, `eslint-plugin-react`, `enzyme-adapter-react-helper`, `object-inspect`, `object.values`, `reflect.ownkeys`, `rimraf`, `safe-publish-latest`
  * [Tests] use travis-ci build stages, and shared configs
  * [Tests] add more `or` tests
  * [Tests] Replace non-inclusive "whitelist" term with "allowlist" (#69)
  * [Tests] fix eslint error

2.15.0 / 2019-08-13
==================
  * [New] [getComponentName] Add logic to handle React.memo (#65)
  * [Deps] update `react-is`
  * [Dev Deps] update `enzyme-adapter-react-helper`, `eslint`, `eslint-config-airbnb`, `rimraf`, `safe-publish-latest`
  * [Tests] actually run `npm run test:prepare` in node >= 4
  * [Tests] up to `node` `v12`

2.14.0 / 2019-07-28
==================
  * [New] add `stringEndsWith` (#59)
  * [Fix] `getComponentName`/`componentWithName`: get display name from forwardRefs (#64)
  * [Docs] Conform disallowedIf file to lint. Update disallowedIf documentation (#62)
  * [Docs] add stringEndsWith to README.md (#60)
  * [Deps] update `array.prototype.find`, `function.prototype.name`
  * [Dev Deps] update `@babel/cli`, `@babel/core`, `@babel/register`, `babel-plugin-istanbul`, `babel-preset-airbnb`, `enzyme`, `enzyme-adapter-react-helper`, `eslint-config-airbnb`, `eslint-plugin-import`, `eslint-plugin-jsx-a11y`, `eslint-plugin-react`
  * [Tests] fix some broken tests

2.13.2 / 2019-04-08
==================
  * [patch] `ref`: Remove arity check (#57)

2.13.1 / 2019-04-06
==================
  * [Fix] `ref`: ensure that the prop value is not a component (#55)

2.13.0 / 2019-04-04
==================
  * [New] add `ref` (#54)
  * [Deps] update `prop-types`, `react-is`
  * [Dev Deps] update `@babel/cli`, `@babel/core`, `@babel/register`, `airbnb-browser-shims`, `babel-plugin-istanbul`, `babel-preset-airbnb`, `enzyme`, `enzyme-adapter-react-helper`, `eslint`

2.12.0 / 2019-02-09
==================
  * [New] add `empty`
  * [New] `elementType`: support forwardRefs and Context Provider/Consumer
  * [Deps] update `object.entries`
  * [Dev Deps] update to babel 7; update `airbnb-browser-shims`, `chai`, `enzyme`, `enzyme`, `enzyme-adapter-react-helper`, `eslint`, `eslint-plugin-jsx-a11y`, `eslint-plugin-react`, `eslint-plugin-import`

2.11.0 / 2018-09-04
==================
  * [New] Add disallowedIf propType (#45)
  * [Deps] update `has`, `prop-types`, `prop-types-exact`
  * [Dev Deps] update `enzyme`, `enzyme-adapter-react-helper`, `eslint`, `eslint-config-airbnb`, `eslint-plugin-import`, `eslint-plugin-jsx-a11y`, `eslint-plugin-react`, `safe-publish-latest`

2.10.0 / 2018-05-14
==================
  * [New] `componentWithName`: allow it to take a list of HOC names to strip off before validating (#41)
  * [Docs] add docs for 2 newest validators
  * [Dev Deps] update `eslint-plugin-import`, `eslint-plugin-react`
  * [Tests] on `node` `v10`

2.9.0 / 2018-04-10
==================
  * [New] Added `requiredBy` validator (#30)
  * [New] add `stringStartsWith`
  * [New] add `booleanSome`
  * [Fix] use `object-is` instead of `Object.is`
  * [Deps] update `prop-types`, `function.prototype.name`, `object.assign`, `prop-types-exact`
  * [Dev Deps] update `airbnb-browser-shims`, `babel-cli`, `babel-plugin-istanbul`, `babel-plugin-transform-replace-object-assign`, `babel-register`, `chai`, `eslint`, `eslint-config-airbnb`, `eslint-plugin-jsx-a11y`, `eslint-plugin-react`, `eslint-plugin-import`, `react`, `rimraf`
  * [Docs] fix URLs in readme
  * [Docs] fix range documentation (#33)
  * [Docs] Add simple use cases (#38)
  * [Tests] add `node` `v9`; pin included builds to LTS; use `nvm install-latest-npm`
  * [Tests] use `enzyme-adapter-react-helper`

2.8.1 / 2017-08-09
==================
  * [Fix] `nonNegativeInteger`: mock should match reality and not be a noopThunk, only a noop

2.8.0 / 2017-07-26
==================
  * [New] add optional `mapper` function to `uniqueArrayOf` (#29, #28)
  * [Deps] update `function.prototype.name`
  * [Dev Deps] update `eslint`, `eslint-config-airbnb`

2.7.1 / 2017-07-13
==================
  * [Fix] Make `getComponentName` more robust in IE (#27)
  * [Deps] update `prop-types-exact`
  * [Dev Deps] update `babel-preset-airbnb`, `chai`, `eslint-plugin-airbnb`, `eslint-plugin-import`, `eslint-plugin-jsx-a11y`

2.7.0 / 2017-06-25
==================
  * [New] Added compatibility for React 16 alpha (#25)

2.6.1 / 2017-06-12
==================
  * [Fix] `restrictedProp`: ensure it passes with a custom message when nullary

2.6.0 / 2017-06-09
==================
  * [New] `restrictedProp`: add ability to overwrite error with custom function (#22)
  * [Refactor] Allow object rest/spread and `Object.assign` by transforming to `object.assign`
  * [Deps] update `prop-types`
  * [Dev Deps] update `babel-plugin-istanbul`, `chai`, `eslint-config-airbnb`, `eslint-plugin-import`, `eslint-plugin-jsx-a11y`, `eslint-plugin-react`, `mocha`
  * [Tests] on `node` `v8`; `npm` `v5`+ breaks on `node` < v4
  * [Tests] greenkeeper-ignore `nyc`

2.5.4 / 2017-05-11
==================
  * [Fix] `childrenHavePropXorChildren` Ensure validator skips over falsy children
  * [Deps] update `prop-types`
  * [Dev Deps] update `babel-plugin-istanbul`, `mocha`, `nyc`, `react`

2.5.3 / 2017-04-08
==================
  * [Refactor] Use `prop-types` package instead of `React.PropTypes`
  * [Deps] update `array.prototype.find`, `prop-types`
  * [Dev Deps] update `babel-cli`, `babel-register`, `eslint`, `nyc`, `react`
  * [Tests] improve test matrix

2.5.2 / 2017-03-27
==================
  * [Fix] remove requirement to polyfill

2.5.1 / 2017-03-24
==================
  * [Fix] `componentWithName`: throw if given a non-string/non-regex name
  * [Fix] `or`: ensure it works with `explicitNull` (#12)
  * [Fix] `between`: avoid React PropType warning by using `valuesOf` instead of `PropTypes.objectOf`
  * [Refactor] `or`: add some extra tests; remove unnecessary `oneOfType` wrapper
  * [Tests] fail tests on console warnings or errors

2.5.0 / 2017-03-23
==================
  * [New] Adds regex capabilities to componentWithName (#11)
  * [New] `childrenOfType`: add support for `*` which supports anything.
  * [Dev Deps] update `babel-cli`, `babel-register`, `eslint`, `rimraf`, `babel-plugin-istanbul`, `eslint-plugin-react`
  * [Tests] improve coverage to 100%

2.4.1 / 2017-03-04
==================
  * [Fix] `childrenOfType`: partially revert fc0e37f84e1537a875c30d0db69b5121d790eb40

2.4.0 / 2017-03-04
==================
  * [New] add `childrenSequenceOf`
  * [New] add `sequenceOf`
  * [New] `between`: allow it to take props-taking number thunks as option values as well.
  * [New] add `between`
  * [New] add `shape`
  * [New] add `nonNegativeNumber`
  * [New] add `elementType`
  * [New] add `childrenOf`
  * [New] add `object`
  * [New] add `keysOf` (#8)
  * [New] add `valuesOf`
  * [New] add `isPrimitive` and `isPlainObject` helpers
  * [New] add `wrapValidator` helper
  * [New] add `renderableChildren` helper
  * [New] add `getComponentName` helper
  * [New] `nChildren`, `restrictedProp`, `childrenHavePropXorChildren`: add `isRequired` for consistency
  * [New] `and`: `isRequired` validator typeName should indicate such.
  * [Tests] run coverage as part of tests
  * [Tests] fix test script
  * [Tests] improve coverage to 100%
  * [Tests] add `npm run coverage`
  * [babel] build with source maps

2.3.0 / 2017-02-23
==================
  * [New] add `integer`
  * [Dev Deps] update `eslint`, `rimraf`

2.2.0 / 2017-02-16
==================
  * [New] add `numericString`
  * [New] add `explicitNull`
  * [Dev Deps] update `airbnb-js-shims`, `babel-cli`, `babel-register`, `eslint-plugin-react`

2.1.1 / 2017-02-09
==================
  * [Fix] `childrenOfType`: improve the error message
  * [Dev Deps] update `eslint`, `eslint-config-airbnb`, `eslint-plugin-jsx-a11y`

2.1.0 / 2017-02-01
==================
  * [New] add `mutuallyExclusiveTrueProps`
  * [Dev Deps] update `babel-cli`, `babel-preset-airbnb`, `babel-register`, `eslint`

2.0.1 / 2017-01-27
==================
  * [Fix] ensure production mocks have `.isRequired`

2.0.0 / 2017-01-09
==================
  * [breaking] when `NODE_ENV` is `production`, export mocks instead of real validators
  * [new] add mocks
  * [New] add `uniqueArray`/`uniqueArrayOf`
  * [New] add `withShape`
  * [Breaking] ensure every export is a function that returns a validator, for consistency (`restrictedProp`)
  * [Deps] move `safe-publish-latest` to devDeps
  * [Dev Deps] update `eslint`, `eslint-config-airbnb`, `eslint-plugin-import`, `eslint-plugin-react`, `eslint-plugin-jsx-a11y`, `mocha`, `react`; add missing `babel-register`
  * [Tests] on `node` `v7`

1.3.2 / 2016-10-27
==================
  * [enhancement] `forbidExtraProps`: add the componentName into the error message

1.3.1 / 2016-10-25
==================
  * [Fix] `forbidPropTypes`: allow propTypes to be processed multiple times
  * [Fix] `forbidPropTypes`: fix unknown props error message

1.3.0 / 2016-10-24
==================
  * [New] add `forbidExtraProps`
  * [Dev Deps] update `babel-cli`

1.2.0 / 2016-10-11
==================
  * [New] add `and` combinator
  * [New] add `isRequired` to `nonNegativeInteger`
  * [Dev Deps] update `eslint-plugin-react`, `mocha`

1.1.1 / 2016-10-09
==================
  * [Fix] `mutuallyExclusiveProps`: include the “current” prop in the exclusives list

1.1.0 / 2016-10-09
==================
  * [Fix] [New] add `isRequired` to `mutuallyExclusiveProps`; ensure `mutuallyExclusiveProps` is not required by default
  * [Fix] [New] add `isRequired` to `componentWithName`; ensure `componentWithName` is not required by default
  * [Deps] update `safe-publish-latest`

1.0.0 / 2016-10-08
==================
  * Initial release.
