Skip to content

fix(deps): update all non-major dependencies - #151

Open
renovate[bot] wants to merge 1 commit into
mainfrom
renovate/all-minor-patch
Open

renovate[bot] wants to merge 1 commit into
mainfrom
renovate/all-minor-patch

Conversation

@renovate

@renovate renovate Bot commented Jun 30, 2026 •

Copy link
Copy Markdown
Contributor

Note

This PR body was truncated due to platform limits.

This PR contains the following updates:

Package Change Age Confidence Type Update
@changesets/cli (source) ^2.31.0 → ^2.31.1 age confidence devDependencies patch
@eslint-community/eslint-plugin-eslint-comments ^4.7.2 → ^4.8.1 age confidence dependencies minor
@eslint-react/eslint-plugin (source) ^5.8.9 → ^5.26.5 age confidence dependencies minor
@eslint-react/kit (source) ^5.8.9 → ^5.26.5 age confidence dependencies minor
@eslint/markdown ^8.0.2 → ^8.0.3 age confidence dependencies patch
@typescript-eslint/eslint-plugin (source) ^8.60.0 → ^8.71.2 age confidence dependencies minor
@typescript-eslint/parser (source) ^8.60.0 → ^8.71.2 age confidence dependencies minor
defu >=6.1.5 → >=6.1.7 age confidence pnpm.overrides patch
eslint (source) ^10.4.1 → ^10.12.0 age confidence devDependencies minor
eslint-plugin-import-x ^4.16.2 → ^4.17.1 age confidence dependencies minor
eslint-plugin-jsonc (source) ^3.2.0 → ^3.4.2 age confidence dependencies minor
eslint-plugin-lodash ^8.0.0 → ^8.1.0 age confidence dependencies minor
eslint-plugin-prettier ^5.5.6 → ^5.5.7 age confidence dependencies patch
eslint-plugin-yml (source) ^3.4.0 → ^3.9.0 age confidence dependencies minor
flatted >=3.4.2 → >=3.4.4 age confidence pnpm.overrides patch
globals ^17.6.0 → ^17.13.0 age confidence dependencies minor
minimatch@^3 ^3.1.4 → ^3.1.5 age confidence pnpm.overrides patch
node (source) 24 → 24.21.0 age confidence minor
oxfmt (source) ^0.52.0 → ^0.73.0 age confidence peerDependencies minor
oxlint (source) ^1.0.0 → ^1.88.0 age confidence peerDependencies minor
picomatch@>=4.0.0 <4.0.4 [>=4.0.4 → >=4.0.7](https://renovatebot.com/diffs/npm/picomatch@>=4.0.0 <4.0.4/4.0.4/4.0.7) age confidence pnpm.overrides patch
pnpm (source) 11.5.0+sha512.dbfcc4f81cf48597afd4bc391ffdf12c11f1a9fb83a395bfa6b0a2d9cc2fd8ffebafdb1ccbd529632153f793904c2615b7f09fe1a345473fd1c35845172a8eb1 → 11.28.5 age confidence packageManager minor
prettier (source) ^3.0.0 → ^3.9.10 age confidence peerDependencies minor
prettier (source) ^3.8.3 → ^3.9.10 age confidence devDependencies minor
taze ^19.14.1 → ^19.17.2 age confidence devDependencies minor
typescript-eslint (source) ^8.60.0 → ^8.71.2 age confidence dependencies minor
yaml-eslint-parser ^2.0.0 → ^2.1.0 age confidence dependencies minor
yaml@>=2.0.0 <2.8.3 (source) [>=2.8.3 → >=2.9.1](https://renovatebot.com/diffs/npm/yaml@>=2.0.0 <2.8.3/2.8.3/2.9.1) age confidence pnpm.overrides minor

Release Notes

changesets/changesets (@​changesets/cli)

v2.31.1

Compare Source

Patch Changes
  • #​2159 15cf592 Thanks @​ingvaldlorentzen! - Fixed already-published version detection with npm 12, which always wraps successful npm info --json output in an array. The unwrapped output made changeset publish treat every package as unpublished and fail attempting to republish existing versions.
eslint-community/eslint-plugin-eslint-comments (@​eslint-community/eslint-plugin-eslint-comments)

v4.8.1

Compare Source

Bug Fixes
  • no-use, require-description: key directive-comment cache on additionalDirectives (#​329) (de11b0e)

v4.8.0

Compare Source

Features
  • no-use, require-description: additionalDirectives option (#​267) (d9a7e4d)
Rel1cx/eslint-react (@​eslint-react/eslint-plugin)

v5.26.5

Compare Source

🐞 Fixes
  • react-x/set-state-in-effect: a setState on the right side of a short-circuit operator (&&, ||, ??) is now exempt when the left operand is ref-derived (ex: ref.current && setData(1)), matching the existing ref-gated conditional exemption; a left-side setState still runs unconditionally and stays reported. (#​2031)
  • react-x/set-state-in-effect: setup identifiers are now collected from the setup argument of the effect call only; the callee and the deps array are no longer scanned, so a function referenced only in the deps array (ex: useEffect(setup, [helper])) is no longer mistaken for the setup and its setState calls stay unattributed. (#​2031)
  • react-x/set-state-in-effect: arrow function parameters are no longer collected as callback-body setter references (ex: the setState in useMemo((setState) => ..., [])); only actual callback bodies are collected (ex: useMemo(() => setState, [])). (#​2031)

Full Changelog: Rel1cx/eslint-react@v5.26.4...v5.26.5

v5.26.4

Compare Source

🐞 Fixes
  • react-naming-convention/context-name, react-naming-convention/id-name, react-naming-convention/ref-name: the name lookup now stops at function boundaries, so expression-bodied factory functions and custom hooks (ex: export const useAnchor = () => useRef(null)) are no longer misreported; calls inside JSX expressions, computed keys, or class static blocks no longer fall back to the outer variable. (#​2029) Closes #​2026.
  • react-naming-convention/context-name, react-naming-convention/id-name, react-naming-convention/ref-name: the name lookup no longer crosses containers or derived values (ex: const refs = [useRef(null)], const n = useRef(0) + 1), so such calls are no longer reported on the enclosing variable; sequence expressions check only the last value, and unresolvable computed keys (ex: { [key]: useRef(null) }) no longer fall back to the outer variable. (#​2030)

Full Changelog: Rel1cx/eslint-react@v5.26.3...v5.26.4

v5.26.3

Compare Source

🐞 Fixes
  • react-naming-convention/context-name, react-naming-convention/id-name, react-naming-convention/ref-name: an enclosing object literal property key now takes precedence over the outer assignment target when statically known (ex: const refs = { myRef: useRef(0) }); computed keys with string literals (ex: refs["value"] = useRef(null)) are now checked, and unresolvable computed keys are no longer reported. (#​2028)
  • react-naming-convention/ref-name: immediate dereferences of the useRef result through TypeScript type wrappers (ex: (useRef(null) as { current: null }).current, useRef(null)!.current) are no longer reported, extending the #​1375 fix. (#​2028)

Full Changelog: Rel1cx/eslint-react@v5.26.2...v5.26.3

v5.26.2

Compare Source

✨ New
  • react-x/no-unused-props: improved prop usage detection. Props parameters with default values (ex: function Component(props: Props = defaultProps)) are now unwrapped and analyzed, props aliased to a local variable (ex: const alias = props) are tracked through the alias, and template literals without substitutions (ex: props[`foo`]) are recognized as static prop keys. (#​2021)
🐞 Fixes
  • react-x/no-unused-props: a component whose used prop keys cannot be fully determined (ex: it passes the whole props object to another function) now marks all of its declared props as used, so a props declaration shared with another fully analyzable component is no longer reported as unused. (#​2021)
  • react-x/set-state-in-effect: ref-derived values that reach the setState argument through assignment statements (rather than the declaration initializer) are now recognized; only writes that lexically precede the use and live in the use's own function or an ancestor count. (#​2027)
  • react-x/set-state-in-effect: parameters of a helper invoked from the effect setup are now treated as ref-derived when the call-site argument is ref-derived, matched per call site by parameter definition. (#​2027)
  • react-x/set-state-in-effect: a .current read rooted at a function parameter is now recognized as a ref read (ex: setReferenceElement(anchor?.current) where anchor is a RefObject prop); previously only parameters named ref or ending in Ref were recognized. (#​2027)
  • react-x/no-unused-class-component-members: public methods (including function-valued properties) of an exported class component are no longer reported as unused, as they may be part of the component's imperative API invoked by consumers through refs. Data fields, private/protected members, and members of non-exported classes are still reported. (#​2024)
🏗️ Internal
  • Ordered message ids by first usage and unified default/suggestion message id naming across react-dom, react-jsx, react-web-api, and react-x rules. (#​2022)

Full Changelog: Rel1cx/eslint-react@v5.26.1...v5.26.2

v5.26.1

Compare Source

🏗️ Internal
  • react-x/no-context-provider, react-x/no-forward-ref, react-x/no-use-context: renamed the internal suggestion message id from "replace" to "suggest".
  • react-x/immutability: moved context-dependent helpers from helpers.ts into origins.ts and effects.ts to match the fact-based implementation pattern.
  • react-x/globals: moved resolveToFunction from helpers.ts to origins.ts.
  • Bumped effect to 4.0.3, tsl-dx to 0.14.1, @tsconfig/node20 to 20.1.10, and @types/node to 20.19.43.
📝 Documentation
  • Refreshed spec diff verification dates and notes for react-x rules.

Full Changelog: Rel1cx/eslint-react@v5.26.0...v5.26.1

v5.26.0

Compare Source

✨ New
  • Lowered the minimum required Node.js version from >=22.0.0 to >=20.19.0. (#​2020)

Full Changelog: Rel1cx/eslint-react@v5.25.0...v5.26.0

v5.25.0

Compare Source

✨ New
  • react-dom/no-unsafe-target-blank: added an allowReferrer option (default: false). When enabled, rel="noopener" alone is accepted and the suggested fix adds rel="noopener" instead of rel="noreferrer noopener", preserving referrer information while still requiring an explicit token. (#​2019) Closes #​2012.
🏗️ Internal
  • @eslint-react/ast: added hasParent and hasEnclosingTryBlock shortcuts to Traverse. (#​2016)
  • @eslint-react/ast: renamed the types module to tree and narrowed the Extract.unwrap result type. (#​2017)
  • @eslint-react/core: removed the unused REACT_BUILTIN_HOOK_NAMES constant.
  • Bumped tsdown to 0.23.1, @effect/platform-node to 4.0.3, pnpm to 12.11.2, @types/node to 26.6.5, setup-uv to v10.3.0, and fumadocs and lucide-react in the website.

Full Changelog: Rel1cx/eslint-react@v5.24.10...v5.25.0

v5.24.10

Compare Source

📝 Documentation
  • Added a link to the Astryx no-react-introspection rule in the react-x/no-children-count and react-x/no-children-map rule documentation.
🏗️ Internal
  • Disabled test isolation in the vitest config.
  • Reordered react-web-api/no-leaked-event-listener test specs from typical cases to edge cases. (#​2015)
  • Unified KNOWN_-prefixed constant names in react-x/no-array-index-key and react-x/no-missing-key. (#​2014)
  • Bumped effect to 4.0.2, @effect/platform-node to 4.0.2, nx to 23.3.0, vite to 8.3.4, lucide-react to 1.53.0, and pnpm to 12.10.1.

Full Changelog: Rel1cx/eslint-react@v5.24.9...v5.24.10

v5.24.9

Compare Source

🐞 Fixes
  • react-x/set-state-in-effect: optional chaining in a setState argument (ex: setData(ref.current?.value), setWidth(el?.offsetWidth ?? 0) where el is ref-derived) no longer defeats the ref-value exemption; the ChainExpression wrapper is now unwrapped during ref-source detection. (#​2011)
📝 Documentation
  • Aligned rule documentation with the current react.dev reference docs. (#​2013)

Full Changelog: Rel1cx/eslint-react@v5.24.8...v5.24.9

v5.24.8

Compare Source

🐞 Fixes
  • react-x/rules-of-hooks: removed the incorrect FIX feature declaration; the rule does not provide an auto-fix and is no longer advertised as fixable. (#​2009)
🏗️ Internal
  • Added edge-case test specs from the v5.24.7 change review covering react-x/immutability, react-x/set-state-in-render, react-web-api/no-leaked-event-listener, and the leaked-observer rules.
  • Bumped next to 16.4.0, vite to 8.3.3, and related dependencies.

Full Changelog: Rel1cx/eslint-react@v5.24.7...v5.24.8

v5.24.7

Compare Source

🐞 Fixes
  • react-x/immutability: no longer reports rebinding a plain local alias of props/state as a mutation; destructured props rebinding and member writes through aliases are still reported. (#​1995)
  • react-x/set-state-in-render: setState calls after nested component or hook declarations are now attributed to the outer component again. (#​2004)
  • react-x/set-state-in-render: anonymous callbacks passed directly to memo()/forwardRef() are now treated as component render functions. (#​1998)
  • react-web-api/no-leaked-fetch: signal alias chains are now resolved recursively, so fetches with aliased signals correctly pair with their cleanup abort call. (#​1997)
  • react-web-api/no-leaked-event-listener: bare global addEventListener(...) calls now pair with matching removeEventListener(...) cleanup calls. (#​1996)
  • react-web-api/no-leaked-event-listener: a signal destructured from new AbortController() is now recognized. (#​2001)
  • react-web-api/no-leaked-resize-observer / react-web-api/no-leaked-intersection-observer: disconnect() / unobserve(...) now only count as cleanup in the cleanup phase; useRef-held observer instances are tracked; unobserve(...) inside the observer callback no longer pairs with observe(...). (#​2002, #​2003)
🏗️ Internal
  • Bumped typescript-eslint to 8.71.1 and postcss to 8.5.29.

Full Changelog: Rel1cx/eslint-react@v5.24.6...v5.24.7

v5.24.6

Compare Source

🐞 Fixes
  • react-x/no-unused-props: computed member access and destructuring with an identifier key (ex: props[key], const { [key]: value } = props) no longer count as usage of a prop named after the key; the rule now bails out on such dynamic keys instead of reporting actually-used props as unused. (#​1994)
  • react-x/set-state-in-effect: object-pattern destructuring of the useState tuple is now resolved by numeric key: a name bound at key 0 (ex: const { 0: value } = useState()) is no longer mistaken for the setter, while key 1 (ex: const { 1: setData } = useState()) is still recognized. (#​1994)
  • react-x/set-state-in-render: same useState object-pattern destructuring fix as set-state-in-effect. (#​1994)

Full Changelog: Rel1cx/eslint-react@v5.24.5...v5.24.6

v5.24.5

Compare Source

🏗️ Internal
  • Self-linted rule implementations with eslint-plugin-eslint-plugin, removing redundant empty defaultOptions declarations and enforcing meta.defaultOptions for rules with options. (#​1993) Thanks to @​rakleed and @​Rel1cx!
  • Minor code cleanups in react-web-api/no-leaked-intersection-observer, react-x/no-create-ref, react-x/no-nested-lazy-component-declarations, and react-x/use-state. Thanks to @​Rel1cx!
  • Bumped effect to 4.0.1, pnpm to 12.9.1, fumadocs-core and fumadocs-ui to 16.16.1, lucide-react to 1.52.0, tsl-dx to 0.14.0, and tinybench to 6.2.0. Thanks to @​Rel1cx!

Full Changelog: Rel1cx/eslint-react@v5.24.4...v5.24.5

v5.24.4

Compare Source

🏗️ Internal
  • Enable dead-code elimination in tsdown config, producing smaller published packages.

Full Changelog: Rel1cx/eslint-react@v5.24.3...v5.24.4

v5.24.3

Compare Source

🏗️ Internal
  • @local/eff: minor code optimizations.
  • @eslint-react/shared: minor code optimizations.

Full Changelog: Rel1cx/eslint-react@v5.24.2...v5.24.3

v5.24.2

Compare Source

🏗️ Internal
  • @eslint-react/core, @eslint-react/var, the react-dom plugin, and the react-x plugin: replaced in operator checks with the hasProperty helper from @local/eff.
  • @eslint-react/shared: documented getNormalizedSettings.
  • JSDoc comments are now stripped from the tsdown build output, producing smaller published packages.

Full Changelog: Rel1cx/eslint-react@v5.24.1...v5.24.2

v5.24.1

Compare Source

📝 Documentation
  • Added a link to the Astryx no-react-introspection rule in the react-x/no-children-count and react-x/no-children-map rule documentation.
🏗️ Internal
  • Disabled test isolation in the vitest config.
  • Reordered react-web-api/no-leaked-event-listener test specs from typical cases to edge cases. (#​2015)
  • Unified KNOWN_-prefixed constant names in react-x/no-array-index-key and react-x/no-missing-key. (#​2014)
  • Bumped effect to 4.0.2, @effect/platform-node to 4.0.2, nx to 23.3.0, vite to 8.3.4, lucide-react to 1.53.0, and pnpm to 12.10.1.

Full Changelog: Rel1cx/eslint-react@v5.24.9...v5.24.10

v5.24.0

Compare Source

🐞 Fixes
  • react-x/set-state-in-effect: more value shapes are recognized as ref-derived setState arguments: interpolations in template literals (ex: setData(`${ref.current}`)), tagged templates (both the quasi and a ref-derived tag), object and array literals (ex: setData({ value: ref.current })), and spreads (ex: setData({ ...ref.current })) — previously these fell through to the default case and were reported. (#​1988)
📝 Documentation
  • Added eslint-config-xo-react to the website's community presets.
🏗️ Internal
  • @local/eff: added predicate combinators and type guards synced with effect, and migrated call sites across the workspace to them. (#​1989)
  • react-x/set-state-in-effect, react-x/set-state-in-render, and react-x/use-memo: reworked to the fact-based implementation pattern — fact collection (collect.ts), provenance resolution (origins.ts), and violation inference (effects.ts) are now separate modules, with lib.ts replaced by a pure-AST helpers.ts; set-state-in-effect again classifies a hook name configured as both additionalStateHooks and additionalEffectHooks as a state hook first. (#​1983, #​1985, #​1986)
  • react-x/use-state: aligned the nested-expression collectors' visitor keys to callee-first order, matching eslint-visitor-keys; no behavior change. (#​1988)
  • Migrated package unit tests to the shared @local/testkit helpers. (#​1987)
  • Renamed message ids to kebab-case across all plugins. (#​1984)
  • Bumped fumadocs-core and fumadocs-ui to 16.15.18, fumadocs-mdx to 15.4.6, lucide-react to 1.50.0, and @types/node to 26.6.4.

Full Changelog: Rel1cx/eslint-react@v5.23.5...v5.24.0

v5.23.5

Compare Source

🐞 Fixes
  • react-x/set-state-in-effect: the ref-derived value exemption now also covers setState calls reached indirectly through functions or hook callbacks invoked from the effect setup, not only setState written directly in the setup body. (#​1982)
  • react-x/set-state-in-effect: more ref read shapes are recognized as ref-derived values — <ref-named>.current anywhere in a member chain, locals derived from other ref-derived locals, and reads through a ref/xxxRef parameter. (#​1982)
  • react-web-api/no-leaked-event-listener: removeEventListener inside a function called from the effect cleanup now pairs with its addEventListener, fixing false positives for listeners removed on unmount; cleanup calls resolve to the actual functions, so same-named shadowed functions no longer pair by coincidence. (#​1982)
🏗️ Internal
  • Bumped effect to 4.0.0 and migrated the repo scripts to the v4 APIs. (#​1981)

Full Changelog: Rel1cx/eslint-react@v5.23.4...v5.23.5

v5.23.4

Compare Source

🐞 Fixes
  • Added the missing react-x/static-components rule to the disable-experimental preset. (#​1980)
  • Fixed type imports in react-x/exhaustive-deps and react-x/rules-of-hooks (RuleFeature is now imported from @eslint-react/eslint instead of @eslint-react/shared).
📝 Documentation
  • react-jsx/no-useless-fragment: clarified the scope of the allowExpressions option and unified experimental-rule callout wording across rule docs.
  • react-x: unified cross-rule references in rule docs to full rule names.
  • Removed low-relevance entries from the further reading sections of rule docs, and removed a redundant note about eslint being an optional peer dependency.
  • Fixed inaccuracies in internal documentation. (#​1980)
🏗️ Internal
  • Adopted ts-pattern for type checks in @eslint-react/core, @eslint-react/jsx, and the react-dom plugin, and declared the missing ts-pattern dependencies.
  • Added behavior boundary tests for react-jsx/no-useless-fragment.
  • Bumped fumadocs-core, fumadocs-ui, and lucide-react in the website.

Full Changelog: Rel1cx/eslint-react@v5.23.3...v5.23.4

v5.23.3

Compare Source

🐞 Fixes
  • react-x/immutability: reassigning a binding that resolves to component props or state (value = value + "!", count++, including destructuring and for...of rebinding forms) is now reported as a direct mutation, matching upstream react-hooks/immutability; rebinding iterator or shallow-copy bindings remains allowed. (#​1979)
  • react-x/set-state-in-effect: ref reads traced through intermediate local computations (ex: const dv = visible - prevVisible.current) are now recognized as ref-derived values, and a preceding early-return guard whose test is ref-derived (ex: if (dv === 0) return;) now exempts the setState calls that follow it — previously only setState nested directly inside a ref-gated if/conditional was exempted. Aligns with react-hooks 7.1.1. (#​1979)
📝 Documentation
  • react-x/no-unstable-context-value: documented the React 19 <Context> provider detection heuristic and its name-based limitations. (#​1979)
  • Updated the README badges to reference eslint-plugin-react-x.

Full Changelog: Rel1cx/eslint-react@v5.23.2...v5.23.3

v5.23.2

Compare Source

🏗️ Internal
  • Removed unused dependencies and fixed phantom dependencies across the workspace.
  • Bumped next to 16.3.7, fumadocs-core and fumadocs-ui to 16.15.16, and eslint-plugin-package-json to 1.10.1.

Full Changelog: Rel1cx/eslint-react@v5.23.1...v5.23.2

v5.23.1

Compare Source

🏗️ Internal
  • Re-verified and synchronized the IMPL-SPEC diff reports for the following react-x rules. (#​1977, #​1978)
    • react-x/error-boundaries
    • react-x/globals
    • react-x/immutability
    • react-x/purity
    • react-x/refs
    • react-x/set-state-in-effect
    • react-x/set-state-in-render
    • react-x/use-memo
  • Bumped typescript-eslint to 8.71.0, tsl-dx to 0.13.7, and pnpm to 12.8.1.
📝 Documentation
  • Added argo-cd, griffel, tanstack/table, and eslint-config-studio to the website's community lists.

Full Changelog: Rel1cx/eslint-react@v5.23.0...v5.23.1

v5.23.0

Compare Source

✨ New
  • react-x/static-components: dynamic creation-site tracing now follows both sides of logical expressions (ex: const C = DefaultComponent || (() => <div />)) and the last element of sequence expressions (ex: const C = (setup(), () => <div />)), in initializers and reassignments alike. (#​1975)
🐞 Fixes
  • react-x/static-components: parameters of nested non-component functions (ex: function render(Comp) { return <Comp /> }) are no longer mistaken for render-created components; definitions are judged by definition type instead of AST node type. (#​1975)
  • react-x/static-components: createdHere is now reported once per creation site instead of once per JSX usage; the default diagnostic remains per usage. (#​1975)
🏗️ Internal
  • react-x/static-components: restructured the rule to the fact-based implementation pattern — collect.ts (usage facts), origins.ts (creation-site resolution), and effects.ts (effect inference) are now separate modules, with reporting centralized in Program:exit; added 14 boundary test cases covering creation-site resolution, render boundaries, and per-usage reporting. (#​1975)
  • Renamed lib.ts to helpers.ts in the fact-based react-x rules (globals, immutability, refs). (#​1976)
  • Bumped @effect/language-service to 0.87.3 and oxlint to 1.86.0.

Full Changelog: Rel1cx/eslint-react@v5.22.1...v5.23.0

v5.22.1

Compare Source

🐞 Fixes
  • react-x/use-state: directly returning the useState result (ex: return React.useState()) is now allowed regardless of the rule's options, matching the exemption in the original react/hook-use-state rule. Covers explicit, implicit (arrow function), and type-asserted returns; lazy initialization checks still apply. (#​1974, closes #​1963)
📝 Documentation
  • Added a note about eslint being an optional peer dependency to the READMEs and the website's getting-started guides.
  • Simplified the @eslint-react/kit README to point to the full documentation.

Full Changelog: Rel1cx/eslint-react@v5.22.0...v5.22.1

v5.22.0

Compare Source

✨ New
  • react-dom/no-unknown-property: added React 19.3 properties to the known property allowlist. (#​1973)
    • closedby on dialog
    • onFullscreenChange, onFullscreenError (and their Capture variants), credentialless, and maskType — gated on React version >= 19.3.0
    • onLoad on body
    • onScrollEnd (and its Capture variant)
    • shadowrootmode, shadowrootclonable, shadowrootdelegatesfocus, and shadowrootserializable on template
🏗️ Internal
  • Bumped fumadocs-core and fumadocs-ui to 16.15.15.

Full Changelog: Rel1cx/eslint-react@v5.21.3...v5.22.0

v5.21.3

Compare Source

🐞 Fixes
  • react-x/purity: reverted the v5.21.2 exemption for impure calls in useRef initializer arguments (ex: useRef(document.createElement("div"))); such calls are reported again. (#​1972)

Full Changelog: Rel1cx/eslint-react@v5.21.2...v5.21.3

v5.21.2

Compare Source

🐞 Fixes
  • react-x/no-unnecessary-use-prefix: hooks that call other hooks only within nested callbacks, functions named exactly use, and hooks defined in test mock module registrations are no longer reported. (#​1971)
  • react-x/no-unused-class-component-members: methods invoked by host environments through refs (React Native's NativeMethods) are no longer reported as unused. (#​1971)
  • react-x/purity: async function components in modules without a use client directive and impure calls in useRef initializer arguments are no longer reported. (#​1971)
  • react-x/set-state-in-effect: local variables initialized from nested member expressions rooted at a ref are now recognized as ref-derived values and no longer reported. (#​1971)
🏗️ Internal
  • @eslint-react/ast: predefined and exported common node-type helpers in the Check namespace and migrated call sites to them.
📝 Documentation
  • Website rule docs no longer include the per-rule ## Versions section; a rule's changelog can be viewed directly via the Rule Changelog link under the ## Resources section of each rule doc.

Full Changelog: Rel1cx/eslint-react@v5.21.1...v5.21.2

v5.21.1

Compare Source

🐞 Fixes
  • Fixed missed reports where a timer, fetch controller, or observer created in one effect was treated as cleaned up because an unrelated cleanup in another effect referenced a different variable with the same name; identifier matching now resolves both sides to their variables by scope instead of comparing names only. (#​1969) Affected rules:
    • react-web-api/no-leaked-timeout
    • react-web-api/no-leaked-interval
    • react-web-api/no-leaked-fetch
    • react-web-api/no-leaked-resize-observer
    • react-web-api/no-leaked-intersection-observer
🏗️ Internal
  • Simplified the react-web-api leaked-resource rules by replacing manual function-context stack tracking with Traverse.findParent ancestor lookup, and added boundary tests covering deeply nested callbacks, cross-effect pairing, and wrapped or referenced setup callbacks. (#​1969) Affected rules:
    • react-web-api/no-leaked-timeout
    • react-web-api/no-leaked-interval
    • react-web-api/no-leaked-fetch
    • react-web-api/no-leaked-event-listener
    • react-web-api/no-leaked-resize-observer
    • react-web-api/no-leaked-intersection-observer
  • @eslint-react/var: isAssignmentTargetEqual no longer short-circuits same-name identifiers through structural equality; identifier pairs are compared with scope-aware value equality. (#​1969)
  • react-x/no-unused-class-component-members: removed the manual class and method context stacks; the enclosing class and method are now resolved at the hit point with Traverse.findParent ancestor lookup, and the per-class member definition/usage maps are initialized lazily. (#​1970)

Full Changelog: Rel1cx/eslint-react@v5.21.0...v5.21.1

v5.21.0

Compare Source

✨ New
  • The plugins can now be used with Oxlint without an eslint installation: eslint is now an optional peer dependency across all published packages, and the rule utilities no longer eagerly load the eslint package at import time. (#​1965)
🏗️ Internal
  • @eslint-react/core: removed the unused isAssignmentToThisState helper, and simplified the react-x class-component rules (no-access-state-in-setstate, no-class-component, no-direct-mutation-state, no-set-state-in-*) accordingly.
  • @eslint-react/eslint: added a local getConstrainedTypeAtLocation helper (adapted from @typescript-eslint/type-utils) so consumers don't need to load @typescript-eslint/type-utils, whose entry point eagerly loads the eslint package. (#​1965)
  • Bumped typescript-eslint to 8.70.1, fumadocs to 16.15.14, fumadocs-mdx to 15.4.5, vite to 8.3.1, and other dependencies.
New Contributors

Full Changelog: Rel1cx/eslint-react@v5.20.8...v5.21.0

v5.20.8

🐞 Fixes
  • @eslint-react/core: isJsxLike now recognizes JSX wrapped in TypeScript expressions (as, satisfies, type assertions, and non-null assertions) and await expressions.
  • @eslint-react/jsx: isFragmentElement now requires the configured jsxFragmentFactory, avoiding an implicit React fragment factory for custom JSX runtimes.
🏗️ Internal
  • @eslint-react/jsx: exported the AttributeValue type from the package entry point.
  • @eslint-react/var: renamed the AssignmentTarget type to EnclosingAssignmentTarget and inlined getRequireExpressionArguments into its sole consumer.

Full Changelog: Rel1cx/eslint-react@v5.20.6...v5.20.8

v5.20.6

Compare Source

🐞 Fixes
  • react-x/globals: for...in/for...of loop targets without a declaration (e.g. for (globalValue of items)) are now collected as writes instead of being missed.
  • react-x/immutability: destructuring assignment targets (e.g. ({ a: props.x } = value)) and for...in/for...of loop targets without a declaration are now collected as mutations instead of being missed.
  • react-x/purity: builtin alias resolution now preserves the property path, so aliases of impure builtins (const random = Math.random; random(), const { now } = Date; now(), window.Math.random()) are now detected instead of being missed; unknown-global roots are not followed, preventing speculative reports.
  • react-x/refs: destructuring assignments, for-in/of loop targets, and delete operations on ref.current are now classified as writes instead of being misreported as reads.
  • react-x/refs: refs passed to constructor calls (new Widget(ref)) and tagged templates are now checked for render-time exposure, same as refs passed to plain functions.
  • react-x/refs: the mergeRefs exemption for passing refs now survives simple variable aliases (const combine = mergeRefs), resolved position-aware so reassigned aliases lose it again.
  • react-x/use-memo: reassignments of outer variables through destructuring patterns and for...in/for...of loop targets inside useMemo callbacks are now reported instead of being missed; property mutation targets remain exempt, matching the React Compiler's StoreContext semantics.
🏗️ Internal
  • @eslint-react/var: split resolve into a value-based resolve and a new origin-based resolveOrigin, and updated the consumers in react-web-api and react-x rules accordingly. (#​1964)
  • Bumped fumadocs to 16.15.12, fumadocs-mdx to 15.4.3, tsl-dx to 0.13.6, eslint-plugin-de-morgan to 2.2.0, and eslint-plugin-regexp to 3.3.1.

Full Changelog: Rel1cx/eslint-react@v5.20.5...v5.20.6

v5.20.5

Compare Source

🐞 Fixes
  • react-web-api/no-leaked-fetch: fixed a false positive where an abort call nested in a callback within the cleanup function (e.g. setTimeout(() => ctrl.abort())) was not recognized, causing a spurious expectedAbortInCleanup report; the abort lookup now finds the nearest enclosing setup/cleanup function instead of requiring the innermost one. (#​1962)

Full Changelog: Rel1cx/eslint-react@v5.20.4...v5.20.5

v5.20.4

Compare Source

🐞 Fixes
  • react-web-api/no-leaked-event-listener: listeners that are only added inside the effect cleanup are now reported when the matching removeEventListener is in the setup (reversed setup/cleanup pairing), since a listener attached on unmount is never removed. (#​1961)
🏗️ Internal
  • `react-jsx

[!IMPORTANT]
✂ PR body was truncated to here.


Configuration

📅 Schedule: (in timezone Europe/Zurich)

  • Branch creation
    • Between 12:00 AM and 03:59 AM, on day 1 of the month (* 0-3 1 * *)
  • Automerge
    • At any time (no schedule defined)

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

👻 Immortal: This PR will be recreated if closed unmerged. Get config help if that's undesired.


  • If you want to rebase/retry this PR, check this box

This PR was generated by Mend Renovate. View the repository job log.

@changeset-bot

changeset-bot Bot commented Jun 30, 2026 •

Copy link
Copy Markdown

⚠️ No Changeset found

Latest commit: 4a1cd5b

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

This PR includes no changesets

When changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types

Click here to learn what changesets are, and how to add one.

Click here if you're a maintainer who wants to add a changeset to this PR

@renovate
renovate Bot force-pushed the renovate/all-minor-patch branch 15 times, most recently from 3b7d85a to bb69b58 Compare July 8, 2026 16:59
@renovate
renovate Bot force-pushed the renovate/all-minor-patch branch 13 times, most recently from 7bc3c3b to 9664da9 Compare July 14, 2026 20:36
@renovate
renovate Bot force-pushed the renovate/all-minor-patch branch 7 times, most recently from 0299d30 to cae6c53 Compare July 27, 2026 16:16
@renovate
renovate Bot force-pushed the renovate/all-minor-patch branch 15 times, most recently from e1c1043 to 77f1fc1 Compare August 5, 2026 12:14
@renovate
renovate Bot force-pushed the renovate/all-minor-patch branch 6 times, most recently from ce5513b to b2df263 Compare August 12, 2026 03:05
@renovate

renovate Bot commented Oct 10, 2026

Copy link
Copy Markdown
Contributor Author

⚠️ Artifact update problem

Renovate failed to update an artifact related to this branch. You probably do not want to merge this PR as-is.

♻ Renovate will retry this branch, including artifacts, only when one of the following happens:

  • any of the package files in this branch needs updating, or
  • the branch becomes conflicted, or
  • you click the rebase/retry checkbox if found above, or
  • you rename this PR's title to start with "rebase!" to trigger it manually

The artifact failure details are included below:

File name: pnpm-lock.yaml
[WARN] The "pnpm" field in package.json is no longer read by pnpm. The following keys were ignored: "pnpm.overrides". See https://pnpm.io/settings for the new home of each setting.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants