UNPKG

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
# 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/