Plugin: react-features
Changelog
Release history for eslint-plugin-react-features
Generated from the release history
Built from this package's CHANGELOG.md at deploy time, so it matches the
version these docs describe. The full cross-package history lives on the
changelog.
1.7.9
- Fix
no-is-prefix-propsuggested renamingisTTYtotTY - Fix
jsx-keysuggestedkey={item.id}against callbacks that bind noitem - Fix
no-this-in-sfcreported a declared TSthisparameter, and lost class context on a nested class - Fix
no-object-type-as-default-propreported any object destructuring default, anywhere
1.7.8
- Fixfour false positives found by sweeping the plugins over a real corpus
1.7.7
- Fix
jsx-no-script-urlnow catches control-character-obfuscatedjavascript:URLs - Dependenciesupdated workspace dependencies:
@interlace/eslint-devkit@1.19.5
1.7.6
- Fix
require-render-returnnow requires every path through anifto return, rather than any path. Arender()whose onlyreturnsits in anifwith noelsefalls through and renders nothing — the shape the rule's own docs print under "❌ Incorrect" — and was silently accepted.if/elsewhere both branches return, and a trailing return after theif, remain valid. - FixFP/FN sweep against the burgee corpus — three confirmed rule defects.
1.7.5
- Fixtwo rules that could not report anything
1.7.4
- Fix
void-dom-elements-no-childrenno longer reports<Link>,<Img>,<Input>and other capitalized components
1.7.3
- FixThe README logo now links to the plugin's own documentation.
1.7.2
- Fix
export default class extends Componentis still a component - Fix
class A extends React['Component']is the same base class - Fixmisspelled members and PropTypes validators read through a string subscript
- Dependenciesupdated workspace dependencies:
@interlace/eslint-devkit@1.19.2
1.7.1
- Fixno-arbitrary-token-class scans a tagged className again
- Dependenciesupdated workspace dependencies:
@interlace/eslint-devkit@1.19.1
1.7.0
- Fix
items['map'](…)is the same iteration asitems.map(…) - Fixdeep-link, CORS, IAM and state-mutation gates read a subscripted member
- Fix
React['Component']is the same base class asReact.Component - Fix
ReactDOM['render'](…)is the same deprecated call - Fix
React['findDOMNode']names the same deprecated API - Fix
React['createElement']builds the same element - Maintenancehook and state-mutation reads carry
string | nullinstead of casting it away - Dependenciesupdated workspace dependencies:
@interlace/eslint-devkit@1.19.0
1.6.1
- FixAdd an install-size badge to the README prelude, linking to each package's packagephobia page. npm renders the README from the last publish, so a badge only appears on npmjs.com after a release.
- Dependenciesupdated workspace dependencies:
@interlace/eslint-devkit@1.18.2
1.6.0
- Feature🐛 Fix — a template literal is a string, in 82 rules that disagreed
- Dependenciesupdated workspace dependencies:
@interlace/eslint-devkit@1.18.0
1.5.0
- Fix
hooks-exhaustive-depsdecides stability by resolving the binding, not by its name - Dependenciesupdated workspace dependencies:
@interlace/eslint-devkit@1.17.4
1.4.0
- Fix
no-unknown-propertystops reporting on custom elements andxmlns - Fix
no-unknown-propertyreportedloading,decoding, andfetchPriority— three standard React DOM props for<img>(and<iframe>/<link>/<script>where applicable).loadinganddecodinghave been valid React props for years;fetchPriorityis the React 19 camelCase form. All three are in upstream eslint-plugin-react's known-property list; ours was missing them, so every lazy-loaded image in a consumer codebase produced three false positives. - Dependenciesupdated workspace dependencies:
@interlace/eslint-devkit@1.17.3
1.3.1
- Fixpoint
meta.docs.urlat documentation that exists #683 - Dependenciesupdated workspace dependencies:
@interlace/eslint-devkit@1.17.2
1.3.0
- Two React rules now judge evidence rather than names. #565
- DependenciesUpdated internal dependencies
1.2.12
- Bound the TypeScript peer range and declare the React peer #499
1.2.11
1.2.10
- Ship the JavaScript without tsc's layout. #411
- DependenciesUpdated internal dependencies
1.2.9
- Load rule modules on demand instead of at plugin load. #381
- Declare what we support, load only what we use #381
- Fix the
./oxlintsubpath export, which pointed atsrc/oxlint.js— a file no build produces.require('<package>/oxlint')threw MODULE_NOT_FOUND on every published package, while every README documented that exact wiring for oxlint'sjsPlugins. The export now points at the build output,dist/src/oxlint.js. #335 - Fix SDK peer declarations that npm silently ignored #335
- DependenciesUpdated internal dependencies
1.2.8
- Add the ecosystem and oxlint marks to the README logo row. Each plugin now #364
1.2.7
- Fix SDK peer declarations that npm silently ignored #358
- DependenciesUpdated internal dependencies
1.2.6
- Re-publish every package so npm carries the optimised artifact #338
- DependenciesUpdated internal dependencies
1.2.5
- Rewrite
descriptionandkeywordson every published package for npm search discovery. npm ranks on name, description, and keywords, and the registry only picks up these fields at publish — so this is metadata-only and takes effect for each package on its next release. #294 - DependenciesUpdated internal dependencies
1.2.4
- Docsdocs: dual-logo README header (Interlace mark + ESLint mark side by side) and closing Interlace footer — refreshes the README rendered on npmjs.com. No runtime changes. #269
- DependenciesUpdated internal dependencies
1.2.3
- Fix Codecov badge showing "unknown" — switch from flag to component URL format #252
1.2.2
- CI-only: pin all coverage thresholds at 100% (integration target, merges last). #225
1.2.1
no-unknown-propertyno longer fires on custom React components. The rule now #229
1.2.0
- Expose the
component-api/*rule namespace to consumers. #100 - Fixfix: remove false
meta.fixable: 'code'declarations from 21 rules that had nofix()function #141 - Consolidation cleanup — no rule behavior change: #186
- DependenciesUpdated internal dependencies
jsx-no-target-blank: replaced/^\/\//.test(href)withhref.startsWith('//')(oxlint correctness rule).
1.1.3
- align codecov component IDs with full package names
- fix changelog header format across all packages
- Ofri Peretz
1.1.2
- align codecov component names and update docs components
- Ofri Peretz
1.1.1
- 📘 Launched new documentation site: eslint.interlace.tools
- 📝 Achieved 100% documentation parity (both .md and .mdx files)
1.1.0
- infra: migrate from pnpm to npm for Vercel compatibility
- docs: implement 3-pillar navigation with sidebar tabs
- docs: deploy new Interlace VI and mobile UX
- add high-fidelity OG images, banners, and update docs layout
- release: fix release workflow logic, docs cache, and promote lint warnings to errors
- docs: resolve MDX compatibility issues and add validation tests
- docs: revert inappropriate security additions to non-security plugins
- docs: strict readout alignment to NestJS structure and table consolidation
- docs: wrap lucide icons with span for title attribute compatibility
- update rule documentation and docs app UI improvements
- add Known False Negatives to all rules (173 rules updated)
- fleet-wide documentation compliance - 160 rules improved
- update plugin documentation with standardized badges and new OG images
- finalize readme structure, drop security research coverage
- remove header and legend artifacts from rules table
- finalize readme layout with centered badges and strict structure
- align main README with Interlace branding
- Ofri Peretz
1.0.0
- Initial stable release with 53 React rules
- 1,190+ test cases covering edge cases and TypeScript integration
- LLM-optimized error messages for AI-assisted development
- ESLint 9 flat config support
- TypeScript type definitions for all rule options
jsx-no-target-blank- Require rel="noopener" on target="\_blank" linksjsx-no-script-url- Disallow javascript: URLs in JSXjsx-no-duplicate-props- Disallow duplicate propsno-danger-with-children- Disallow children with dangerouslySetInnerHTMLno-deprecated- Disallow deprecated React APIsno-find-dom-node- Disallow findDOMNodeno-unsafe- Disallow UNSAFE\_ lifecycle methodsvoid-dom-elements-no-children- Disallow children in void DOM elementsno-inline-handlers- Disallow inline function handlers (re-render prevention)no-object-style-literals- Disallow object literals in style proprequire-memo- Require React.memo for pure componentsrequire-usecallback- Require useCallback for function propsrequire-usememo- Require useMemo for expensive computations- Hooks rules: exhaustive-deps, rules-of-hooks compliance
- Component patterns: naming, structure, composition
- State management: useState, useReducer patterns
recommended- Balanced React best practicesstrict- All rules as errorsperformance- Performance-focused subsetmigration- React upgrade assistance- Removed deprecated rules (now in
react-a11y) - Renamed:
react-perf/no-jsx-bind→performance/no-inline-handlers jsx-no-target-blank: Dynamichrefvariables not detectedjsx-no-script-url: Obfuscated patterns in variables not detected- Spread props (
{...props}) prevent static attribute analysis
1.7.10
- Fixfive FP/FN rule defects found by the burgee sweep
Building secure JavaScript with Interlace? Star the repo to get new rules and CWE coverage as we ship them — or follow the AI-code-security benchmarks behind them.