luhn-generator
Version:
A generator of numbers that passes the validation of Luhn algorithm or Luhn formula, also known as the 'modulus 10' or 'mod 10' algorithm
829 lines (702 loc) • 172 kB
Markdown
# Change Log
All notable changes to this project will be documented in this file.
This project adheres to [Semantic Versioning](http://semver.org/).
This change log adheres to standards from [Keep a CHANGELOG](http://keepachangelog.com).
## Unreleased
### Fixed
* [`jsx-indent-props`]: Apply indentation when using brackets ([#2826][] @Moong0122)
* [`jsx-handler-names`]: Skip inline handlers when checkInlineFunction=false ([#2833][] @onigoetz)
### Changed
* [Tests] `jsx-indent-props`: Add passing test ([#2823][] @Hypnosphi)
[#2833]: https://github.com/yannickcr/eslint-plugin-react/pull/2833
[#2826]: https://github.com/yannickcr/eslint-plugin-react/pull/2826
[#2823]: https://github.com/yannickcr/eslint-plugin-react/pull/2823
## [7.21.4] - 2020.10.09
### Fixed
* [`no-unused-prop-types`]: Silence false positive on `never` type in TS ([#2815][] @pcorpet)
* [`jsx-indent-props`]: Apply indentation when operator is used in front of the upper line ([#2808][], [#2820][] @Moong0122)
* [Deps] update `jsx-ast-utils` ([#2822][] [jsx-eslint/jsx-ast-utils#102][] @ljharb)
[7.21.4]: https://github.com/yannickcr/eslint-plugin-react/compare/v7.21.3...v7.21.4
[#2822]: https://github.com/yannickcr/eslint-plugin-react/issues/2822
[#2820]: https://github.com/yannickcr/eslint-plugin-react/pull/2820
[#2815]: https://github.com/yannickcr/eslint-plugin-react/pull/2815
[#2808]: https://github.com/yannickcr/eslint-plugin-react/pull/2808
[jsx-eslint/jsx-ast-utils#102]: https://github.com/jsx-eslint/jsx-ast-utils/pull/102
## [7.21.3] - 2020.10.02
### Fixed
* [`prop-types`]: fix Cannot read property 'type' of undefined error when destructured param ([#2807][] @minwe)
* [`no-typos`]: avoid crash on spread syntax in createReactClass object ([#2816][] @ljharb @Songyu-Wang)
[7.21.3]: https://github.com/yannickcr/eslint-plugin-react/compare/v7.21.2...v7.21.3
[#2816]: https://github.com/yannickcr/eslint-plugin-react/issues/2816
[#2807]: https://github.com/yannickcr/eslint-plugin-react/pull/2807
## [7.21.2] - 2020.09.24
### Fixed
* [`prop-types`]: handle RestElement in destructured param ([#2805][] @hank121314)
[7.21.2]: https://github.com/yannickcr/eslint-plugin-react/compare/v7.21.1...v7.21.2
[#2805]: https://github.com/yannickcr/eslint-plugin-react/pull/2805
## [7.21.1] - 2020.09.23
### Fixed
* [`jsx-handler-names`]: avoid a crash when an inline prop is not a MemberExpression ([#2803][] @willheslam)
[7.21.1]: https://github.com/yannickcr/eslint-plugin-react/compare/v7.21.0...v7.21.1
[#2803]: https://github.com/yannickcr/eslint-plugin-react/issues/2803
## [7.21.0] - 2020.09.22
### Added
* [`button-has-type`]: support trivial ternary expressions ([#2748][] @Hypnosphi)
* [`jsx-handler-names`]: add `checkInlineFunction` option ([#2761][] @dididy)
* [`jsx-no-literals`]: add `noAttributeStrings` option ([#2782][] @TaLeaMonet)
* [`prop-types`]: add support for `PropTypes.exact` ([#2740][] @jzabala)
* [`jsx-filename-extension`]: Add allow option ([#2746][] @remcohaszing)
### Fixed
* [`function-component-definition`]: ignore object properties ([#2771][] @stefan-wullems)
* [`forbid-component-props`]: Implemented support for "namespaced" components ([#2767][] @mnn)
* [`prefer-read-only-props`]: support Flow `$ReadOnly` ([#2772][], [#2779][], [#2770][] @karolina-benitez)
* [`jsx-handler-names`]: handle whitespace ([#2789][] @AriPerkkio)
* [`prop-types`]: Detect TypeScript types for destructured default prop values ([#2780][] @sunghyunjo)
* [`jsx-pascal-case`]: Handle single character namespaced component ([#2791][] @daviferreira)
* [`jsx-closing-bracket-location`]: In `tag-aligned`, made a distinction between tabs and spaces ([#2796][] @Moong0122)
* [`jsx-handler-names`]: false positive when handler name begins with number ([#1689][] @jsphstls)
* [`prop-types`]: Detect JSX returned by sequential expression ([#2801][] @mikol)
* [`jsx-props-no-multi-spaces`]: "Expected no line gap between" false positive ([#2792][] @karolina-benitez)
* [`no-unknown-property`]: check attributes with any input case ([#2790][] @julienw)
* [`prop-types`]/[`no-unused-prop-types`]: handle CallExpression in ReturnType ([#2802][] @hank121314)
* [`jsx-uses-react`]: mark fragment variables as used ([#2775][] @remcohaszing)
* [`no-unused-prop-types`]: improve component declared props detection ([#2755][] @jzabala)
* [`jsx-props-no-multi-spaces`]: Show error in multi-line props ([#2756][] @iiison)
### Changed
* [Tests] [`jsx-one-expression-per-line`]: add passing tests ([#2799][] @TaLeaMonet)
* [Tests] [`prop-types`]: add test ([#2757][] @jzabala)
[7.21.0]: https://github.com/yannickcr/eslint-plugin-react/compare/v7.20.6...v7.21.0
[#2802]: https://github.com/yannickcr/eslint-plugin-react/pull/2802
[#2801]: https://github.com/yannickcr/eslint-plugin-react/pull/2801
[#2799]: https://github.com/yannickcr/eslint-plugin-react/pull/2799
[#2796]: https://github.com/yannickcr/eslint-plugin-react/pull/2796
[#2792]: https://github.com/yannickcr/eslint-plugin-react/pull/2792
[#2791]: https://github.com/yannickcr/eslint-plugin-react/pull/2791
[#2790]: https://github.com/yannickcr/eslint-plugin-react/pull/2790
[#2789]: https://github.com/yannickcr/eslint-plugin-react/pull/2789
[#2782]: https://github.com/yannickcr/eslint-plugin-react/pull/2782
[#2780]: https://github.com/yannickcr/eslint-plugin-react/pull/2780
[#2779]: https://github.com/yannickcr/eslint-plugin-react/pull/2779
[#2775]: https://github.com/yannickcr/eslint-plugin-react/pull/2775
[#2772]: https://github.com/yannickcr/eslint-plugin-react/pull/2772
[#2771]: https://github.com/yannickcr/eslint-plugin-react/pull/2771
[#2770]: https://github.com/yannickcr/eslint-plugin-react/pull/2770
[#2767]: https://github.com/yannickcr/eslint-plugin-react/pull/2767
[#2761]: https://github.com/yannickcr/eslint-plugin-react/pull/2761
[#2757]: https://github.com/yannickcr/eslint-plugin-react/pull/2757
[#2756]: https://github.com/yannickcr/eslint-plugin-react/pull/2756
[#2748]: https://github.com/yannickcr/eslint-plugin-react/pull/2748
[#2746]: https://github.com/yannickcr/eslint-plugin-react/pull/2746
[#2740]: https://github.com/yannickcr/eslint-plugin-react/pull/2740
[#1689]: https://github.com/yannickcr/eslint-plugin-react/pull/1689
## [7.20.6] - 2020.08.12
### Fixed
* [`jsx-curly-brace-presence`]: fix multiline comment case ([#2716][] @ljharb)
* [`jsx-no-useless-fragment`]: accept fragments with call expressions ([#2744][] @hasparus)
* [`jsx-no-literals`] with allowStrings doesn't work in props ([#2736][] @karolina-benitez)
* [`no-find-dom-node`]: Improve error message ([#2741][] @ecraig12345)
* [`no-typos`]/[`no-unused-prop-types`]/propType detection: Support typescript props interface extension and TSTypeAliasDeclaration ([#2721][] @hank121314)
* [`no-this-in-sfc`]/component detection: add arrow function to list of allowed position for component ([#2708][] @jzabala)
* [`no-access-state-in-setstate`]: add check for class component ([#2711][] @jzabala)
* [`prop-types`]/component detection: avoid a crash when a local `createElement` identifier exists ([#2733][] @ljharb)
### Changed
* [`no-unused-prop-types`]: add test assigning this.props to a variable
[7.20.6]: https://github.com/yannickcr/eslint-plugin-react/compare/v7.20.5...v7.20.6
[#2744]: https://github.com/yannickcr/eslint-plugin-react/pull/2744
[#2741]: https://github.com/yannickcr/eslint-plugin-react/pull/2741
[#2737]: https://github.com/yannickcr/eslint-plugin-react/pull/2737
[#2736]: https://github.com/yannickcr/eslint-plugin-react/pull/2736
[#2733]: https://github.com/yannickcr/eslint-plugin-react/issues/2733
[#2721]: https://github.com/yannickcr/eslint-plugin-react/pull/2721
[#2716]: https://github.com/yannickcr/eslint-plugin-react/issues/2716
[#2711]: https://github.com/yannickcr/eslint-plugin-react/pull/2711
[#2708]: https://github.com/yannickcr/eslint-plugin-react/pull/2708
## [7.20.5] - 2020.07.28
### Fixed
* [`jsx-curly-brace-presence`]: disable disallowed JSX text chars check in props ([#2710][] @jzabala)
* [`no-unused-state`]: check for class expression ([#2712][] @jzabala)
* [`prop-types`]: handle anonymous functions ([#2730][], [#2731][] @odinho @wKich @jzabala)
### Docs
* [Docs] [`no-access-state-in-setstate`]: fix example ([#2724][] @youngjuning)
[7.20.5]: https://github.com/yannickcr/eslint-plugin-react/compare/v7.20.4...v7.20.5
[#2731]: https://github.com/yannickcr/eslint-plugin-react/pull/2731
[#2730]: https://github.com/yannickcr/eslint-plugin-react/pull/2730
[#2724]: https://github.com/yannickcr/eslint-plugin-react/pull/2724
[#2712]: https://github.com/yannickcr/eslint-plugin-react/pull/2712
[#2710]: https://github.com/yannickcr/eslint-plugin-react/pull/2710
## [7.20.4] - 2020.07.26
### Fixed
* improve algorithm to check if a variable is coming from the pragma ([#2706][] @jzabala)
* [`prop-types`]: handle component returning null ([#2696][] @hank121314)
* [`prop-types`]/[`function-component-definition`]: Add check for first letter capitalization in functional component detection ([#2699][] @jzabala)
* [`prop-types`]: use variable value in prop type fields defined by variables ([#2704][] @jzabala)
* [`no-typos`]: warn on a bindingless `react` import
### Changed
* [Tests] `boolean-prop-naming`: Added test for function invocation of bool ([#2697][] @ajkovar)
* [Tests] `jsx-curly-brace-presence`, `jsx-no-comment-textnodes`: add passing tests
* [Refactor] `no-unused-state`: avoid a loop
[7.20.4]: https://github.com/yannickcr/eslint-plugin-react/compare/v7.20.3...v7.20.4
[#2704]: https://github.com/yannickcr/eslint-plugin-react/pull/2704
[#2699]: https://github.com/yannickcr/eslint-plugin-react/pull/2699
[#2697]: https://github.com/yannickcr/eslint-plugin-react/pull/2697
[#2696]: https://github.com/yannickcr/eslint-plugin-react/pull/2696
## [7.20.3] - 2020-06-30
### Fixed
* [`no-unused-prop-types`]/[`prop-types`]: typescript interface support literal type and only FunctionComponent should have propTypes validation ([#2690][] @hank121314)
* [`no-unused-prop-types`]/TypeScript: avoid crash on indexable interface ([#2687][] @ljharb)
[7.20.3]: https://github.com/yannickcr/eslint-plugin-react/compare/v7.20.2...v7.20.3
[#2690]: https://github.com/yannickcr/eslint-plugin-react/pull/2690
[#2687]: https://github.com/yannickcr/eslint-plugin-react/issues/2687
## [7.20.2] - 2020-06-29
### Fixed
* [`no-unused-prop-types`]: handle optional chaining ([#2679][] @hank121314)
* [`jsx-pascal-case`]: fix a false positive with "H1" ([#2683][] @ljharb)
* [`jsx-no-useless-fragment`]: avoid a crash when autofixing a self-closing React.Fragment ([#2680][] @ljharb)
* [`forbid-prop-types`]: avoid crash ([#2682][] @ljharb)
[7.20.2]: https://github.com/yannickcr/eslint-plugin-react/compare/v7.20.1...v7.20.2
[#2683]: https://github.com/yannickcr/eslint-plugin-react/issues/2683
[#2682]: https://github.com/yannickcr/eslint-plugin-react/issues/2682
[#2680]: https://github.com/yannickcr/eslint-plugin-react/issues/2680
[#2679]: https://github.com/yannickcr/eslint-plugin-react/pull/2679
## [7.20.1] - 2020-06-28
### Fixed
* [`forbid-dom-props`], [`function-component-definition`]: fix schema typos ([#2667][] @mflorence99)
* [`no-unused-prop-types`]: fix with typescript eslint parser ([#2661][] @eltonio450)
### Changed
* [`forbid-prop-types`]: warn on destructured values as well ([#2676][] @ajkovar)
* relax JSX pragma regexp ([#2643][] @gfmio)
* Cache detected React version ([#2673][] @lencioni)
* [refactor] [`jsx-pascal-case`]: Remove xregexp ([#2636][] @yacinehmito))
* [Tests] a [`no-typos`] test fails in eslint v7.3 ([#2678][] @toshi-toma)
* [Deps] update `jsx-ast-utils`, `object.entries`, `resolve`
* [Dev Deps] update `@types/eslint`, `@types/estree`, `@types/node`, `@typescript-eslint/parser`, `eslint-config-airbnb-base`, `eslint-plugin-eslint-plugin`, `eslint-plugin-import`, `typescript`
[7.20.1]: https://github.com/yannickcr/eslint-plugin-react/compare/v7.20.0...v7.20.1
[#2676]: https://github.com/yannickcr/eslint-plugin-react/pull/2676
[#2673]: https://github.com/yannickcr/eslint-plugin-react/pull/2673
[#2667]: https://github.com/yannickcr/eslint-plugin-react/pull/2667
[#2661]: https://github.com/yannickcr/eslint-plugin-react/pull/2661
[#2643]: https://github.com/yannickcr/eslint-plugin-react/pull/2643
[#2636]: https://github.com/yannickcr/eslint-plugin-react/pull/2636
## [7.20.0] - 2020-05-12
### Added
* support eslint v7 ([#2635][] @ljharb, @toshi-toma)
* [`forbid-component-props`][]/[`forbid-dom-props`][]: Allow a custom message with forbid props ([#2615][] @mtamhankar1)
* [`jsx-no-literals`][]: add `ignoreProps` option to ignore props validation ([#2146][] @iiison)
### Fixed
* [`jsx-sort-props`][]: only use localeCompare when case is ignored ([#2556][] @tanmoyopenroot)
* [`jsx-key`][]: add a failing test case for optional chaining ([#2610][] @JonathanLee-LX)
* [`no-unused-state`][]: handle optional chaining ([#2588][] @golopot)
* [`jsx-pascal-case`][]: Do not consider namespaces when checking for DOM ([#2638][] @yacinehmito)
* [`jsx-curly-spacing`][], [`jsx-no-bind`][], `usedPropTypes` util: avoid node.start and node.end ([25b1936][] @toshi-toma)
* [`jsx-no-target-blank`][]: allow `no-referrer` without `noopener` by default ([#2043][] @seancrater)
* [`button-has-type`][]: improve message when non-static value is used ([aecff62][] @golopot)
* [`no-adjacent-inline-elements`][]: prevent crash on nullish children ([#2621][] @Rogdham)
* [`prop-types`][]: avoid crash when spreading any type ([#2606][] @golopot))
* [`require-render-return`][]: add missing "a" ([#2604][] @leothorp)
* [`jsx-no-comment-textnodes`][]: fix for `@typescript-eslint/parser` ([#2601][] @Axnyff)
* [`displayName`][]: avoid a crash when using React.memo ([#2587][] @golopot)
### Docs
* Clean up examples in rule docs ([#2546][] @silvenon)
* [readme] Add Rules of Hooks to Other useful plugins section ([#2633][] @petetnt)
* [`no-this-in-sfc`][]: backtick `this` ([#2616][] @mrflip)
* [`function-component-definition`][]: Fix unnamedComponents option examples ([#2608][] @vkrol))
### Changed
* [Deps] Move "semver" to devDependencies ([#2595][] @rajivshah3)
* [eslint] remove `operator-linebreak` override ([#2578][] @golopot)
* [Tests] `button-has-type`: ensure no mistakenly allowed identifiers named `button`/`submit`/`reset` ([#2625][] @golopot)
* [Tests] `displayName`: add a test case ([#2593][] @golopot)
* [Dev Deps] update `@types/eslint`, `@types/estree`, `@types/node`, `@typescript-eslint/parser`, `coveralls`, `eslint-config-airbnb-base`, `eslint-plugin-import`, `typescript`
[7.20.0]: https://github.com/yannickcr/eslint-plugin-react/compare/v7.19.0...v7.20.0
[#2638]: https://github.com/yannickcr/eslint-plugin-react/pull/2638
[#2635]: https://github.com/yannickcr/eslint-plugin-react/pull/2635
[#2633]: https://github.com/yannickcr/eslint-plugin-react/pull/2633
[#2625]: https://github.com/yannickcr/eslint-plugin-react/pull/2625
[#2621]: https://github.com/yannickcr/eslint-plugin-react/pull/2621
[#2616]: https://github.com/yannickcr/eslint-plugin-react/pull/2616
[#2615]: https://github.com/yannickcr/eslint-plugin-react/pull/2615
[#2610]: https://github.com/yannickcr/eslint-plugin-react/pull/2610
[#2608]: https://github.com/yannickcr/eslint-plugin-react/pull/2608
[#2606]: https://github.com/yannickcr/eslint-plugin-react/pull/2606
[#2604]: https://github.com/yannickcr/eslint-plugin-react/pull/2604
[#2601]: https://github.com/yannickcr/eslint-plugin-react/pull/2601
[#2595]: https://github.com/yannickcr/eslint-plugin-react/pull/2595
[#2593]: https://github.com/yannickcr/eslint-plugin-react/pull/2593
[#2588]: https://github.com/yannickcr/eslint-plugin-react/pull/2588
[#2587]: https://github.com/yannickcr/eslint-plugin-react/pull/2587
[#2578]: https://github.com/yannickcr/eslint-plugin-react/pull/2578
[#2556]: https://github.com/yannickcr/eslint-plugin-react/pull/2556
[#2546]: https://github.com/yannickcr/eslint-plugin-react/pull/2546
[#2146]: https://github.com/yannickcr/eslint-plugin-react/pull/2146
[#2043]: https://github.com/yannickcr/eslint-plugin-react/pull/2043
[25b1936]: https://github.com/yannickcr/eslint-plugin-react/commit/25b19365e6cc3f188d6a5ed6cecc70fe6f1af7cd
[aecff62]: https://github.com/yannickcr/eslint-plugin-react/commit/aecff625bf0590ed4d80ed6b58b81af11901f5f6
## [7.19.0] - 2020-03-06
### Added
* [`style-prop-object`][]: Add `allow` option ([#1819][] @hornta)
* [`jsx-pascal-case`][]: Support unicode characters ([#2557][] @Svish)
### Fixed
* [`prefer-stateless-function`][]: avoid crash on ts empty constructor ([#2582][] @golopot)
* [`no-adjacent-inline-elements`][]: avoid a crash ([#2575] @ljharb)
* [`no-unused-prop-types`][]: Change the reporting to point to a more accurate node ([#2292][] @jseminck)
* [`self-closing-comp`][]: consider JSXMemberExpression as component too ([#2572][] @Belco90)
* [`no-unused-prop-types`][]: make `markPropTypesAsUsed` work with `TSEmptyBodyFunctionExpression` AST node ([#2560][] @guillaumewuip)
* [`displayName`][] (but really, `propTypes` detection): do not crash on empty flow type spreads ([#2570][] @ljharb)
### Changed
* [readme] Small visual inconsistency ([#2568] @arvigeus)
* [docs] add `react/` prefix to rule name, for consistency
* [`no-unescaped-entities`][]: skip test cases that are now parsing errors in acorn-jsx@5.2.0 ([#2583] @golopot)
[7.19.0]: https://github.com/yannickcr/eslint-plugin-react/compare/v7.18.3...v7.19.0
[#2583]: https://github.com/yannickcr/eslint-plugin-react/pull/2583
[#2582]: https://github.com/yannickcr/eslint-plugin-react/pull/2582
[#2575]: https://github.com/yannickcr/eslint-plugin-react/issue/2575
[#2572]: https://github.com/yannickcr/eslint-plugin-react/pull/2572
[#2570]: https://github.com/yannickcr/eslint-plugin-react/issue/2570
[#2568]: https://github.com/yannickcr/eslint-plugin-react/pull/2568
[#2560]: https://github.com/yannickcr/eslint-plugin-react/pull/2560
[#2557]: https://github.com/yannickcr/eslint-plugin-react/pull/2557
[#2292]: https://github.com/yannickcr/eslint-plugin-react/pull/2292
[#1819]: https://github.com/yannickcr/eslint-plugin-react/pull/1819
## [7.18.3] - 2020-02-02
### Fixed
* [`jsx-indent`][]: don't check literals not within JSX ([#2564][] @toshi-toma)
[7.18.3]: https://github.com/yannickcr/eslint-plugin-react/compare/v7.18.2...v7.18.3
[#2564]: https://github.com/yannickcr/eslint-plugin-react/issue/2564
## [7.18.2] - 2020-02-01
### Fixed
* [`jsx-indent`][]: avoid a crash on non-string literals ([#2561][] @ljharb)
[7.18.2]: https://github.com/yannickcr/eslint-plugin-react/compare/v7.18.1...v7.18.2
[#2561]: https://github.com/yannickcr/eslint-plugin-react/issue/2561
## [7.18.1] - 2020-02-01
### Fixed
* [`jsx-indent`][]: Does not check indents for JSXText ([#2542][] @toshi-toma)
* [`jsx-props-no-spreading`][]: add support for namespaced jsx components ([#2534][] @jonathanpalma)
* [`jsx-no-target-blank`][]: allow rel to be an expression ([#2544][] @odinho)
* [`sort-comp`][]: `|` isn’t a valid regex flag; `u` and `s` are (@ljharb)
### Changed
* [Docs] use `markdown-magic` to automatically sort all rules alphabetically ([#1742][] @ybiquitous)
* [Docs] [`jsx-props-no-spreading`][]: fix typo to use correct rule ([#2547][] @jonggyun))
[7.18.1]: https://github.com/yannickcr/eslint-plugin-react/compare/v7.18.0...v7.18.1
[#2547]: https://github.com/yannickcr/eslint-plugin-react/pull/2547
[#2544]: https://github.com/yannickcr/eslint-plugin-react/pull/2544
[#2542]: https://github.com/yannickcr/eslint-plugin-react/pull/2542
[#2534]: https://github.com/yannickcr/eslint-plugin-react/pull/2534
[#1742]: https://github.com/yannickcr/eslint-plugin-react/pull/1742
## [7.18.0] - 2020-01-15
### Added
* [`require-default-props`][]: add option to ignore functional components ([#2532][] @RedTn)
* [`function-component-definition`][]: Enforce a specific function type for function components ([#2414][] @Stefanwullems)
* [`no-adjacent-inline-elements`][]: Prevent adjacent inline elements not separated by whitespace ([#1155][] @SeanHayes)
* [`jsx-no-script-url`][]: prevent usage of `javascript:` URLs ([#2419][] @sergei-startsev)
### Fixed
* [`jsx-pascal-case`][]: false negative with namespacing ([#1337][] @mfyuce)
* [`jsx-curly-brace-presence`][]: Fix `curly-brace-presence` edge cases ([#2523][] @rafbgarcia)
* [`prop-types`][]: Does not validate missing propTypes for LogicalExpression ([#2533][] @toshi-toma)
* [`no-unknown-property`][]: allowTransparency does not exist in React >= v16.1 ([#1538][] @dawidvdh)
* [`jsx-curly-brace-presence`][]: Fix error related to tags line break ([#2521][] @rafbgarcia)
* [`no-typos`][]: Compilation error when method name is string instead of identifier ([#2514][] @shijistar)
* [`jsx-curly-brace-presence`][]: allow trailing spaces in TemplateLiteral ([#2507][] @doochik)
* [`no-unused-prop-types`], [`no-unused-state`]: fix false positives when using TS type assertions ([#2536][] @kdmadej)
### Changed
* [Docs] [`no-render-return-value`][]: Fix title ([#2540][] @micnic)
* [Refactor]: remove unused codes in util/propTypes ([#2288][] @golopot)
* [`no-typos`]: check static lifecycle methods ([#2006][] @bsonntag)
* [Docs] [`jsx-first-prop-new-line`][]: Fix rule name in "Rule Options" section ([#2535][] @barreira)
* [Tests] [`no-unused-prop-types`][]: Added test cases ([#977][] @dozoisch)
* [Tests] avoid running tests on pretest job
* [meta] Move eslint-plugin-eslint-plugin to devDeps ([#2510][] @nstepien)
* [Deps] update `array-includes`, `object.entries`, `object.fromentries`, `object.values`, `resolve`
[7.18.0]: https://github.com/yannickcr/eslint-plugin-react/compare/v7.17.0...v7.18.0
[#2540]: https://github.com/yannickcr/eslint-plugin-react/pull/2540
[#2536]: https://github.com/yannickcr/eslint-plugin-react/pull/2536
[#2535]: https://github.com/yannickcr/eslint-plugin-react/pull/2535
[#2533]: https://github.com/yannickcr/eslint-plugin-react/pull/2533
[#2532]: https://github.com/yannickcr/eslint-plugin-react/pull/2532
[#2523]: https://github.com/yannickcr/eslint-plugin-react/pull/2523
[#2521]: https://github.com/yannickcr/eslint-plugin-react/pull/2521
[#2514]: https://github.com/yannickcr/eslint-plugin-react/pull/2514
[#2510]: https://github.com/yannickcr/eslint-plugin-react/pull/2510
[#2507]: https://github.com/yannickcr/eslint-plugin-react/pull/2507
[#2419]: https://github.com/yannickcr/eslint-plugin-react/pull/2419
[#2414]: https://github.com/yannickcr/eslint-plugin-react/pull/2414
[#2288]: https://github.com/yannickcr/eslint-plugin-react/pull/2288
[#2006]: https://github.com/yannickcr/eslint-plugin-react/pull/2006
[#1538]: https://github.com/yannickcr/eslint-plugin-react/pull/1538
[#1337]: https://github.com/yannickcr/eslint-plugin-react/pull/1337
[#1155]: https://github.com/yannickcr/eslint-plugin-react/pull/1155
[#977]: https://github.com/yannickcr/eslint-plugin-react/pull/977
## [7.17.0] - 2019-11-28
### Added
* [`jsx-no-target-blank`][]: add `allowReferrer` option ([#2478][] @eps1lon)
* [`jsx-handler-names`][]: add `checkLocalVariables` option ([#2470][] @aub)
* [`prop-types`][]: Support Flow Type spread ([#2446][] @moroine)
* [`jsx-props-no-spreading`][]: add `explicitSpread` option to allow explicit spread of props ([#2449][] @pawelnvk)
* [`jsx-no-target-blank`][]: warn on `target={'_blank'}` expressions ([#2451][] @timkraut)
* [`function-component-definition`]: Enforce a specific function type for function components ([#2414][] @Stefanwullems)
### Fixed
* [`sort-prop-types`][], [`jsx-sort-default-props`][]: disable broken autofix ([#2505][] @webOS101)
* [`no-typos`][]: improve report location ([#2468][] @golopot)
* [`jsx-no-literals`][]: trim whitespace for `allowedStrings` check ([#2436][] @cainlevy)
* [`jsx-curly-brace-presence`][]: Fix filter of undefined error with whitespace inside jsx attr curlies ([#2460][] @dustinyoste)
* [`no-render-return-value`][]: should warn when used in assignment expression ([#2462][] @jichu4n)
* [`jsx-curly-brace-presence`][]: allow trailing spaces in literal ([#2448][] @doochik)
### Changed
* [Deps] update `jsx-ast-utils`, `object.fromentries`, `resolve`
* [eslint] fix func-names and change object-shorthand to 'always' ([#2483][] @golopot)
* [Docs] `jsx-first-prop-new-line`: Fix documentation formatting ([#2489][] @pjg)
* [Docs] [`prop-types`][]: Update 'skipUndeclared' in rule options ([#2504][] @cjnickel)
* [Docs] [`jsx-first-prop-new-line`][]: fix wrong rule name ([#2500][] @zgayjjf)
* [eslint] enable eslint-plugin-eslint-plugin ([#2469][] @golopot)
* [Docs] [`jsx-props-no-multi-spaces`][]: suggest using core rule instead ([#2463][] @golopot)
* [Docs] [`jsx-first-prop-new-line`][]: add rule options ([#2465][] @SerdarMustafa1)
* [Docs] [`jsx-no-target-blank`][]: Add section about overriding for trusted links ([#2438][] @aschriner)
* [Docs] fix typo ([#2453][] @cainwatson)
* [Docs] [`no-unused-prop-types`][]: clean up prose ([#2273][] @coryhouse)
* [Docs] [`jsx-no-bind`][]: add section about React Hooks ([#2443][] @kdex)
[7.17.0]: https://github.com/yannickcr/eslint-plugin-react/compare/v7.16.0...v7.17.0
[#2532]: https://github.com/yannickcr/eslint-plugin-react/pull/2532
[#2505]: https://github.com/yannickcr/eslint-plugin-react/pull/2505
[#2504]: https://github.com/yannickcr/eslint-plugin-react/pull/2504
[#2500]: https://github.com/yannickcr/eslint-plugin-react/pull/2500
[#2489]: https://github.com/yannickcr/eslint-plugin-react/pull/2489
[#2483]: https://github.com/yannickcr/eslint-plugin-react/pull/2483
[#2478]: https://github.com/yannickcr/eslint-plugin-react/pull/2478
[#2470]: https://github.com/yannickcr/eslint-plugin-react/pull/2470
[#2469]: https://github.com/yannickcr/eslint-plugin-react/pull/2469
[#2468]: https://github.com/yannickcr/eslint-plugin-react/pull/2468
[#2465]: https://github.com/yannickcr/eslint-plugin-react/pull/2465
[#2463]: https://github.com/yannickcr/eslint-plugin-react/pull/2463
[#2460]: https://github.com/yannickcr/eslint-plugin-react/pull/2460
[#2453]: https://github.com/yannickcr/eslint-plugin-react/pull/2453
[#2451]: https://github.com/yannickcr/eslint-plugin-react/pull/2451
[#2449]: https://github.com/yannickcr/eslint-plugin-react/pull/2449
[#2448]: https://github.com/yannickcr/eslint-plugin-react/pull/2448
[#2446]: https://github.com/yannickcr/eslint-plugin-react/pull/2446
[#2443]: https://github.com/yannickcr/eslint-plugin-react/pull/2443
[#2438]: https://github.com/yannickcr/eslint-plugin-react/pull/2438
[#2436]: https://github.com/yannickcr/eslint-plugin-react/pull/2436
[#2414]: https://github.com/yannickcr/eslint-plugin-react/pull/2414
[#2273]: https://github.com/yannickcr/eslint-plugin-react/pull/2273
## [7.16.0] - 2019-10-04
### Added
* [`jsx-sort-default-props`][]: make rule fixable ([#2429][] @emroussel)
### Fixed
* [`jsx-no-useless-fragment`][]: use `array-includes` over `.includes` for back compat (@ljharb)
* [`jsx-curly-brace-presence`][]: allow necessary white-space literal ([#2437][] @uniqname)
* [`jsx-curly-brace-presence`][]: warns incorrectly on trailing whitespace ([#2431][] @BC-M)
* [`no-unused-prop-types`][]: false positive when nested destructuring ([#2428][] @golopot)
[7.16.0]: https://github.com/yannickcr/eslint-plugin-react/compare/v7.15.1...v7.16.0
[#2437]: https://github.com/yannickcr/eslint-plugin-react/pull/2437
[#2431]: https://github.com/yannickcr/eslint-plugin-react/pull/2431
[#2429]: https://github.com/yannickcr/eslint-plugin-react/pull/2429
[#2428]: https://github.com/yannickcr/eslint-plugin-react/pull/2428
## [7.15.1] - 2019-10-01
### Fixed
* [`jsx-curly-brace-presence`][]: bail out checks when JSXElements are passed as props ([#2426][] @vedadeepta)
### Changed
* [Docs] [`prefer-es6-class`][]: Fix typos ([#2425][] @spencerbyw)
[7.15.1]: https://github.com/yannickcr/eslint-plugin-react/compare/v7.15.0...v7.15.1
[#2426]: https://github.com/yannickcr/eslint-plugin-react/pull/2426
[#2425]: https://github.com/yannickcr/eslint-plugin-react/pull/2425
## [7.15.0] - 2019-09-30
### Added
* add [`jsx-no-useless-fragment`][] rule ([#2261][] @golopot)
* [`jsx-handler-name`][]: allow `false` to disable `eventHandlerPrefix`/`eventHandlerPropPrefix` ([#2410][] @tanmoyopenroot)
* [`sort-comp`][]: add `static-variables` grouping ([#2408][] @vedadeepta)
* [`jsx-no-literals`][]: Add `allowedStrings` option ([#2380][] @benhollander)
* [`no-multi-comp`][]: Added handling for `forwardRef` and `memo` wrapping components declared in the same file ([#2184][] @jenil94)
* [`jsx-pascal-case`][]: `allowAllCaps` option now allows `SCREAMING_SNAKE_CASE` ([#2364][] @TylerR909)
### Fixed
* [`jsx-indent`][]: Fix false positive when a jsx element is the last statement within a do expression (with tests) ([#2200][] @Kenneth-KT)
* [`jsx-curly-brace-presence`][]: fix jsx tags in braces ([#2422][] @tanmoyopenroot)
* [`display-name`][]: Fix false positives ([#2399][] @BPScott)
* [`jsx-curly-brace-presence`][]: report unnecessary curly braces with children on next line ([#2409][] @vedadeepta)
* [`no-unused-prop-types`][]: false positive with callback ([#2375][] @golopot)
* Fix prop-types detection collision on renamed props ([#2383][] @yannickcr)
* [`jsx-sort-props`][]: use localeCompare rather than comparison operator ([#2391][] @tanmoyopenroot)
* [`jsx-pascal-case`][]: allow one-letter-named components ([#2395][] @Haegin)
* [`jsx-wrap-multilines`][]: fix incorrect formatting ([#2392][] @tanmoyopenroot)
* [`require-optimization`][]: fix when using arrow function in class components ([#2385][] @jenil94)
* [`no-deprecated`][]: Deprecate cWM/cWRP/cWU lifecycle methods since React 16.9.0 ([#2378][] @meowtec)
* [`jsx-key`][]: improve docs and confusing error message ([#2367][] @kaykayehnn)
* Recognize props wrapped in flow $ReadOnly<> utility type ([#2361][] @lukeapage)
* [`prop-types`][]: false positive with setState updator ([#2359][] @golopot)
### Changed
* [Docs] [`no-access-state-in-setstate`][]: update grammar ([#2418][] @neaumusic)
* [`jsx-curly-brace-presence`][], [`jsx-one-expression-per-line`][], [`no-danger-with-children`][]: add `isWhiteSpaces` to `lib/util/jsx` ([#2409][] @vedadeepta)
[7.15.0]: https://github.com/yannickcr/eslint-plugin-react/compare/v7.14.3...v7.15.0
[#2422]: https://github.com/yannickcr/eslint-plugin-react/pull/2422
[#2410]: https://github.com/yannickcr/eslint-plugin-react/pull/2410
[#2409]: https://github.com/yannickcr/eslint-plugin-react/pull/2409
[#2408]: https://github.com/yannickcr/eslint-plugin-react/pull/2408
[#2402]: https://github.com/yannickcr/eslint-plugin-react/pull/2402
[#2399]: https://github.com/yannickcr/eslint-plugin-react/pull/2399
[#2395]: https://github.com/yannickcr/eslint-plugin-react/pull/2395
[#2392]: https://github.com/yannickcr/eslint-plugin-react/pull/2392
[#2391]: https://github.com/yannickcr/eslint-plugin-react/pull/2391
[#2385]: https://github.com/yannickcr/eslint-plugin-react/pull/2385
[#2383]: https://github.com/yannickcr/eslint-plugin-react/issue/2383
[#2380]: https://github.com/yannickcr/eslint-plugin-react/pull/2380
[#2378]: https://github.com/yannickcr/eslint-plugin-react/pull/2378
[#2375]: https://github.com/yannickcr/eslint-plugin-react/pull/2375
[#2367]: https://github.com/yannickcr/eslint-plugin-react/pull/2367
[#2364]: https://github.com/yannickcr/eslint-plugin-react/pull/2364
[#2361]: https://github.com/yannickcr/eslint-plugin-react/pull/2361
[#2359]: https://github.com/yannickcr/eslint-plugin-react/pull/2359
[#2261]: https://github.com/yannickcr/eslint-plugin-react/pull/2261
[#2200]: https://github.com/yannickcr/eslint-plugin-react/pull/2200
[#2184]: https://github.com/yannickcr/eslint-plugin-react/pull/2184
## [7.14.3] - 2019-07-23
### Fixed
* Fix [`prop-types`][] to ignore validation when Flow indexers are used ([#2330][] @yannickcr)
* Fix error being thrown after the first warning when react version cannot be detected ([#2336][] @abhishekdev)
* Fix component detection when `memo` and `forwardRef` are used together ([#2349][] @yannickcr)
### Changed
* Documentation improvements (@ljharb, [#2354][] @golopot)
[7.14.3]: https://github.com/yannickcr/eslint-plugin-react/compare/v7.14.2...v7.14.3
[#2330]: https://github.com/yannickcr/eslint-plugin-react/issues/2330
[#2336]: https://github.com/yannickcr/eslint-plugin-react/pull/2336
[#2349]: https://github.com/yannickcr/eslint-plugin-react/issues/2349
[#2354]: https://github.com/yannickcr/eslint-plugin-react/pull/2354
## [7.14.2] - 2019-06-24
### Fixed
* Fix [`prop-types`][] crash on for...of destructuring ([#2326][] @yannickcr)
[7.14.2]: https://github.com/yannickcr/eslint-plugin-react/compare/v7.14.1...v7.14.2
[#2326]: https://github.com/yannickcr/eslint-plugin-react/issues/2326
## [7.14.1] - 2019-06-24
### Fixed
* Fix [`prop-types`][] crash on multiple destructuring ([#2319][] @golopot)
[7.14.1]: https://github.com/yannickcr/eslint-plugin-react/compare/v7.14.0...v7.14.1
[#2319]: https://github.com/yannickcr/eslint-plugin-react/issues/2319
## [7.14.0] - 2019-06-23
### Added
* Add [`jsx-curly-newline`][] rule ([#1493][] @golopot)
* Add support for nested destructuring to [`prop-types`][] ([#296][] [#1422][] @golopot)
* Add support for variables defined as props to [`prop-types`][] and [`no-unused-prop-types`][] ([#442][] [#833][] [#1002][] [#1116][] [#1257][] [#1764][] @golopot)
* Add `checkFragmentShorthand` option to [`jsx-key`][] ([#2316][] @kaykayehnn)
### Fixed
* Fix [`no-did-mount-set-state`][] and [`no-did-update-set-state`][] to handle cDU and cDM defined as class properties ([#1595][] @jaaberg)
* Fix [`sort-prop-types`][] cash when a shape PropType is defined in a variable ([#1749][] @alexzherdev)
* Fix [`no-unused-state`][] false positive when using state of non-lifecycle method ([#2274][] @golopot)
* Fix [`static-property-placement`][] false positive when accessing static property inside method ([#2283][] @dmason30)
* Fix [`prop-type`][] detection for annotated props with default value ([#2298][] @yannickcr)
### Changed
* Add ESLint 6.0.0 as valid peerDependency (@yannickcr)
* Improve [`no-render-return-value`][] performance ([#2259][] @golopot)
* Change [`jsx-sort-props`][] to report errors only on the identifier ([#2312][] @MrHen)
* Change to warn only once if react version cannot be detected ([#2276][] @ljharb)
* Documentation improvements ([#2263][] @dimitropoulos, [#2262][] @ybiquitous, [#2295][] @battaglr, [#2302][] @Jason-Cooke, [#2303][] @golopot)
* Code refactoring ([#2265][] [#2267][] [#2286][] [#2294][] @golopot, @ljharb)
* Tests improvements ([#2304][] [#1047][] @golopot, @yannickcr)
[7.14.0]: https://github.com/yannickcr/eslint-plugin-react/compare/v7.13.0...v7.14.0
[#296]: https://github.com/yannickcr/eslint-plugin-react/issues/296
[#442]: https://github.com/yannickcr/eslint-plugin-react/issues/442
[#833]: https://github.com/yannickcr/eslint-plugin-react/issues/833
[#1002]: https://github.com/yannickcr/eslint-plugin-react/issues/1002
[#1047]: https://github.com/yannickcr/eslint-plugin-react/issues/1047
[#1116]: https://github.com/yannickcr/eslint-plugin-react/issues/1116
[#1257]: https://github.com/yannickcr/eslint-plugin-react/issues/1257
[#1422]: https://github.com/yannickcr/eslint-plugin-react/issues/1422
[#1493]: https://github.com/yannickcr/eslint-plugin-react/issues/1493
[#1595]: https://github.com/yannickcr/eslint-plugin-react/issues/1595
[#1749]: https://github.com/yannickcr/eslint-plugin-react/issues/1749
[#1764]: https://github.com/yannickcr/eslint-plugin-react/issues/1764
[#2259]: https://github.com/yannickcr/eslint-plugin-react/pull/2259
[#2262]: https://github.com/yannickcr/eslint-plugin-react/pull/2262
[#2263]: https://github.com/yannickcr/eslint-plugin-react/pull/2263
[#2265]: https://github.com/yannickcr/eslint-plugin-react/pull/2265
[#2267]: https://github.com/yannickcr/eslint-plugin-react/pull/2267
[#2274]: https://github.com/yannickcr/eslint-plugin-react/pull/2274
[#2276]: https://github.com/yannickcr/eslint-plugin-react/issues/2276
[#2283]: https://github.com/yannickcr/eslint-plugin-react/issues/2283
[#2286]: https://github.com/yannickcr/eslint-plugin-react/pull/2286
[#2294]: https://github.com/yannickcr/eslint-plugin-react/pull/2294
[#2295]: https://github.com/yannickcr/eslint-plugin-react/pull/2295
[#2298]: https://github.com/yannickcr/eslint-plugin-react/issues/2298
[#2302]: https://github.com/yannickcr/eslint-plugin-react/pull/2302
[#2303]: https://github.com/yannickcr/eslint-plugin-react/pull/2303
[#2304]: https://github.com/yannickcr/eslint-plugin-react/pull/2304
[#2312]: https://github.com/yannickcr/eslint-plugin-react/issues/2312
[#2316]: https://github.com/yannickcr/eslint-plugin-react/pull/2316
## [7.13.0] - 2019-05-03
### Added
* Make [`jsx-sort-props`][] fully fixable ([#2250][], @guliashvili)
* [`boolean-prop-naming`][]: add `validateNested` option to validate shape prop names ([#2234][], @pawelnvk)
* add [`static-property-placement`][] rule ([#2193][], @dmason30)
* add "detect" for flow version ([#2233][], @jedwards1211)
* [`jsx-indent`][]: Add `indentLogicalExpressions` option ([#2227][], @mdnsk)
* add [`jsx-props-no-spreading`][] ([#2191][], @ashbhir)
* [`no-string-refs`][]: Added `noTemplateLiteral` option ([#2167][], @jenil94)
* add `linkComponents` setting ([#2116][], @gbakernet)
* [`jsx-no-target-blank`][]: add support for `linkComponents` setting ([#2116][], @gbakernet)
* Add [`state-in-constructor`][] rule ([#1945][], @lukyth)
* Add [`prefer-read-only-props`][] rule ([#2110][], @golopot)
* [`no-unescaped-entities`][]: more friendly error message; add config to adjust ([#2016][], @stevemao)
### Fixed
* [`jsx-props-no-multi-spaces`][]: support generic components (ts) ([#2256][], @mateuszsokola)
* [`prop-types`][]: fix case with destructuring and default param ([#2246][], @golopot)
* [`prefer-stateless-function`][]: Ignoring pure components without props and context usage ([#2238][], @pawelnvk)
* `propTypes`: resolveSuperParameterPropsType: add null check ([#2232][], @jedwards1211)
* [`self-closing-comp`][]: stop reporting single-line spaces ([#2210][], @golopot)
* [`require-render-return`][]: more accurate report location ([#2229][], @golopot)
* [`sort-prop-types`][]: Fix sorting props with numeric keys ([#2230][], @pawelnvk)
* [`display-name`][]: fix false negative around nested functions ([#2225][], @dwelle)
* [`no-unknown-property`][]: fix case like `<Foo.bar>` ([#2207][], @golopot)
* [`jsx-curly-brace-presence`][]: accept multiline template string ([#2203][], @golopot)
* [`jsx-one-expression-per-line`][]: fix when using tabs ([#2198][], @Ohar)
* [`prop-types`][]: Fix false positive on computed member expression ([#2202][], @golopot)
* [`jsx-sort-default-props`][]: fix case with spread ([#2182][], @VincentLanglet)
* [`no-this-in-sfc`][]: Fix false positive on SFC defined as object property ([#2147][], @yannickcr)
* [`sort-comp`][]: correctly recognize instance variables declared without explicit value ([#2183][], @yannickcr)
* [`no-unused-state`][]: fix set state callback destructing & state use inside callback ([#2151][], @barakyosi)
* [`no-multi-comp`][]: correctly ignore wrapped stateless components: ([#2145][], @yannickcr)
* [`display-name`][]: avoid crash on for..of ([#2137][], @ljharb)
### Changed
* [Docs] [`no-access-state-in-setstate`][]: Use syntax highlighting for examples ([#2160][], @pReya)
* [Docs] [`jsx-fragments`][]: add "fixable" note ([#2143][], @joshunger)
* [Docs] Added shared settings info, React version default note ([#2180][], @samsch)
* [Tests] [`jsx-curly-spacing`][]: add regression test case ([#2206][], @ColCh)
[7.13.0]: https://github.com/yannickcr/eslint-plugin-react/compare/v7.12.4...v7.13.0
[#2256]: https://github.com/yannickcr/eslint-plugin-react/pull/2256
[#2250]: https://github.com/yannickcr/eslint-plugin-react/pull/2250
[#2246]: https://github.com/yannickcr/eslint-plugin-react/pull/2246
[#2238]: https://github.com/yannickcr/eslint-plugin-react/pull/2238
[#2234]: https://github.com/yannickcr/eslint-plugin-react/pull/2234
[#2233]: https://github.com/yannickcr/eslint-plugin-react/pull/2233
[#2232]: https://github.com/yannickcr/eslint-plugin-react/pull/2232
[#2230]: https://github.com/yannickcr/eslint-plugin-react/pull/2230
[#2229]: https://github.com/yannickcr/eslint-plugin-react/pull/2229
[#2227]: https://github.com/yannickcr/eslint-plugin-react/pull/2227
[#2225]: https://github.com/yannickcr/eslint-plugin-react/pull/2225
[#2210]: https://github.com/yannickcr/eslint-plugin-react/pull/2210
[#2207]: https://github.com/yannickcr/eslint-plugin-react/pull/2207
[#2206]: https://github.com/yannickcr/eslint-plugin-react/pull/2206
[#2203]: https://github.com/yannickcr/eslint-plugin-react/pull/2203
[#2202]: https://github.com/yannickcr/eslint-plugin-react/pull/2202
[#2198]: https://github.com/yannickcr/eslint-plugin-react/pull/2198
[#2193]: https://github.com/yannickcr/eslint-plugin-react/pull/2193
[#2191]: https://github.com/yannickcr/eslint-plugin-react/pull/2191
[#2183]: https://github.com/yannickcr/eslint-plugin-react/issues/2183
[#2182]: https://github.com/yannickcr/eslint-plugin-react/pull/2182
[#2180]: https://github.com/yannickcr/eslint-plugin-react/pull/2180
[#2167]: https://github.com/yannickcr/eslint-plugin-react/pull/2167
[#2147]: https://github.com/yannickcr/eslint-plugin-react/issues/2147
[#2145]: https://github.com/yannickcr/eslint-plugin-react/issues/2145
[#2143]: https://github.com/yannickcr/eslint-plugin-react/pull/2143
[#2137]: https://github.com/yannickcr/eslint-plugin-react/issues/2137
[#2116]: https://github.com/yannickcr/eslint-plugin-react/pull/2116
[#2110]: https://github.com/yannickcr/eslint-plugin-react/pull/2110
[#2016]: https://github.com/yannickcr/eslint-plugin-react/pull/2016
[#1945]: https://github.com/yannickcr/eslint-plugin-react/pull/1945
## [7.12.4] - 2019-01-16
### Fixed
* [`no-unused-prop-types`][]: avoid a crash ([#2131][], @ljharb)
* [`prop-types`][]: avoid further crashes from nonexistent nodes in unusedPropTypes ([#2127][], @ljharb)
* [`prop-types`][]: Read name of callee object ([#2125][], @CrOrc)
* [`prop-types`][]: Ignore reassignments when matching props declarations with components ([#2051][], [#1957][], @yannickcr)
* [`prop-types`][], [`no-unused-prop-types`][], [`require-default-props`][]: Detect components with return statement in switch/case ([#2118][], @yannickcr)
### Changed
* [`prop-types`][], [`no-typos`][]: add passing test cases ([#2123][], [#2128][], [#2136][], [#2134][], @ljharb)
[7.12.4]: https://github.com/yannickcr/eslint-plugin-react/compare/v7.12.3...v7.12.4
[#2136]: https://github.com/yannickcr/eslint-plugin-react/issues/2136
[#2134]: https://github.com/yannickcr/eslint-plugin-react/issues/2134
[#2131]: https://github.com/yannickcr/eslint-plugin-react/issues/2131
[#2128]: https://github.com/yannickcr/eslint-plugin-react/issues/2128
[#2127]: https://github.com/yannickcr/eslint-plugin-react/issues/2127
[#2125]: https://github.com/yannickcr/eslint-plugin-react/pull/2125
[#2123]: https://github.com/yannickcr/eslint-plugin-react/issues/2123
[#2118]: https://github.com/yannickcr/eslint-plugin-react/issues/2118
[#2051]: https://github.com/yannickcr/eslint-plugin-react/issues/2051
[#1957]: https://github.com/yannickcr/eslint-plugin-react/issues/1957
## [7.12.3] - 2019-01-04
### Fixed
* [`jsx-indent`][]: Prevent crash on valueless props ([#2120][], @jomasti)
* [`jsx-fragments`][]: avoid crashing on self-closing fragments ([#2113][], @alexzherdev)
* [`no-unused-prop-types`][]: Fix propType detection inside class bodies ([#2115][], @drx)
* [`no-unused-prop-types`][]: fix issue with propTypes misclassifying props ([#2111][], @drx)
* [`display-name`][]: fix false positive for `React.memo` ([#2109][], @jomasti)
### Changed
* [Docs] add a missing comma in the JSON settings ([#2117][], @haideralsh)
* [Docs] update README to document React version detection ([#2114][], @mohsinulhaq)
[7.12.3]: https://github.com/yannickcr/eslint-plugin-react/compare/v7.12.2...v7.12.3
[#2120]: https://github.com/yannickcr/eslint-plugin-react/issues/2120
[#2117]: https://github.com/yannickcr/eslint-plugin-react/issues/2117
[#2115]: https://github.com/yannickcr/eslint-plugin-react/issues/2115
[#2114]: https://github.com/yannickcr/eslint-plugin-react/issues/2114
[#2113]: https://github.com/yannickcr/eslint-plugin-react/issues/2113
[#2111]: https://github.com/yannickcr/eslint-plugin-react/issues/2111
[#2109]: https://github.com/yannickcr/eslint-plugin-react/issues/2109
## [7.12.2] - 2019-01-02
### Fixed
* [`prop-types`][]: avoid crash on used prevProps ([#2095][], @ljharb)
* Version warning: Link does not end with '.' ([#2103][], @yoyo837))
* [`forbid-prop-types`][]: fix crash with propWrapper check on MemberExpressions ([#2104][], @ljharb)
[7.12.2]: https://github.com/yannickcr/eslint-plugin-react/compare/v7.12.1...v7.12.2
[#2104]: https://github.com/yannickcr/eslint-plugin-react/issues/2104
[#2103]: https://github.com/yannickcr/eslint-plugin-react/pull/2103
[#2095]: https://github.com/yannickcr/eslint-plugin-react/issues/2095
## [7.12.1] - 2019-01-01
### Fixed
* [`no-unused-state`][]: Fix crash with class fields ([#2098][], @jomasti)
* [`prop-types`][]: Fix false positives inside lifecycle methods ([#2099][], @jomasti)
* [`jsx-max-depth`][]: avoid a crash ([#2102][], @ljharb)
* [`jsx-wrap-multilines`][]: avoid crash when no trailing newline ([#2100][], @ljharb)
### Changed
* Fix CHANGELOG.md ([#2097][], @alexzherdev)
[7.12.1]: https://github.com/yannickcr/eslint-plugin-react/compare/v7.12.0...v7.12.1
[#2102]: https://github.com/yannickcr/eslint-plugin-react/issues/2102
[#2100]: https://github.com/yannickcr/eslint-plugin-react/issues/2100
[#2099]: https://github.com/yannickcr/eslint-plugin-react/pull/2099
[#2098]: https://github.com/yannickcr/eslint-plugin-react/pull/2098
[#2097]: https://github.com/yannickcr/eslint-plugin-react/pull/2097
## [7.12.0] - 2018-12-27
### Added
* [`no-typos`]: Support createClass ([#1828][], @alexzherdev)
* Support detecting React.forwardRef/React.memo ([#2089][], @jomasti)
* [`jsx-indent`][]: add `checkAttributes` option for JSX attribute indentation ([#2086][], @jomasti)
* Change allowed `propWrapperFunctions` setting values ([#2065][], @jomasti)
* add [`jsx-fragments`][] rule to enforce fragment syntax ([#1994][], @alexzherdev)
* Support "detect" option for React version setting ([#1978][], @alexzherdev)
* Support shorthand fragment syntax in many rules ([#1956][], @alexzherdev)
* [`jsx-no-literals`][]: print node value in warning message ([#2008][], @jlgonzalezdev)
### Fixed
* [`jsx-max-depth`][]: Fix depth of JSX siblings in a JSXEpressionContainer ([#1824][], @alexzherdev)
* [`no-array-index-key`][]: fix in React.Children methods ([#2085][], @himynameisdave)
* [`no-unused-state`][]: handle functional setState ([#2084][], @jomasti)
* version errors should log to stderr, not stdout ([#2082][], @ljharb)
* [`no-deprecated`][]: Disable legacy lifecycle methods linting for now ([#2069][], @sergei-startsev)
* ensure that react and flow versions can be numbers ([#2056][], @ljharb)
* [`forbid-foreign-prop-types`][]: ensure `allowInPropTypes` option applies to class fields ([#2040][], @Sheile)
* [`jsx-wrap-multilines`][]: catch single missing newlines ([#1984][], @MrHen)
* [`jsx-first-prop-new-line`][]: Fix for parsers (like TypeScript) ([#2026][], @HauptmannEck)
* [`sort-comp`][]: Fix fixer in case of more than 10 props ([#2012][], @tihonove)
* [`no-unused-state`][] Don't depend on state parameter name ([#1829][], @alexzherdev)
* [`no-this-in-sfc`][] fix for class properties ([#1995][], @sergei-startsev)
* [`no-this-in-sfc`][] fix rule behavior for arrow functions inside a class field ([#1989][], @sergei-startsev)
* [`destructuring-assignment`][]: handle nested props usage ([#1983][], @alexzherdev)
* [`sort-prop-types`][]: fix string property order ([#1977][], @metreniuk)
* [`jsx-no-target-blank`][]: don’t crash when there’s no value ([#1949][], @ljharb)
* [`prop-types`][], [`no-unused-prop-types`][]: better handle object spread ([#1939][], @alexzherdev)
### Changed
* [`jsx-fragments`][]: improve message text ([#2032][], @alexzherdev)
* [`no-unsafe`][]: handle all unsafe life-cycle methods ([#2075][], @sergei-startsev)
* [`require-default-props`][]: Change error message naming from singular defaultProp to plural defaultProps ([#2064][], @jseminck)
* [Refactor] Extract used `propTypes` detection ([#1946][], @alexzherdev)
* [Refactor] Extract `defaultProps` detection ([#1942][], @alexzherdev)
* [Refactor] Extract required `propTypes` detection ([#2001][], @alexzherdev)
* [Docs] [`no-did-mount-set-state`][], [`no-did-update-set-state`][], [`no-will-update-set-state`][]: fix docs URLs ([#2090][], @JBallin)
* [Docs] Remove statement on GC in jsx-no-bind ([#2067][], @rickhanlonii)
* [Docs] [`jsx-sort-props`][]: Fix small mistake ([#2044][], @dimitarnestorov)
* [Docs] [`no-unescaped-entities`][]: add more escape examples ([#2015][], @stevemao)
* [Docs] [`display-name`][]: mention default `ignoreTranspilerName` value ([#2002][], @OliverJAsh)
* [Docs] [`jsx-no-target-blank`][]: Add full example ([#1988][], @atomcorp)
* [Docs] Update [`jsx-no-target-blank`][].md ([#1953][], @brunocoelho)
* [Changelog] fix "Ignore class properties" contributor ([#1941][], @alexzherdev)
* [Tests] Remove redundant `require('babel-eslint')` from tests ([#2004][], @sergei-startsev)
* [Tests] [`prop-types`][]: Add tests for prop-types destructuring ([#2029][], @sstern6)
* [Tests] [`display-name`][]: add false positive component detection for destructured createElement ([#1098][], @arian)
[7.12.0]: https://github.com/yannickcr/eslint-plugin-react/compare/v7.11.1...v7.12.0
[#2090]: https://github.com/yannickcr/eslint-plugin-react/pull/2090
[#2089]: https://github.com/yannickcr/eslint-plugin-react/pull/2089
[#2086]: https://github.com/yannickcr/eslint-plugin-react/pull/2086
[#2085]: https://github.com/yannickcr/eslint-plugin-react/pull/2085
[#2084]: https://github.com/yannickcr/eslint-plugin-react/