Skip to content

Conversation

@renovate
Copy link
Contributor

@renovate renovate bot commented Oct 21, 2025

This PR contains the following updates:

Package Change Age Confidence Type Update
@biomejs/biome (source) ^2.2.4 -> ^2.2.6 age confidence devDependencies patch
@microsoft/api-extractor (source) ^7.52.13 -> ^7.53.1 age confidence devDependencies minor
@rsbuild/plugin-react (source) ^1.4.0 -> ^1.4.1 age confidence devDependencies patch
@rsdoctor/rspack-plugin (source) ^1.2.3 -> ^1.3.3 age confidence devDependencies minor
@rslib/core (source) 0.13.3 -> 0.15.1 age confidence devDependencies minor
@rspress/core (source) ^2.0.0-beta.32 -> ^2.0.0-beta.34 age confidence devDependencies patch
@rspress/plugin-algolia (source) 2.0.0-beta.32 -> 2.0.0-beta.34 age confidence devDependencies patch
@rspress/plugin-llms (source) 2.0.0-beta.32 -> 2.0.0-beta.34 age confidence devDependencies patch
@testing-library/jest-dom ^6.8.0 -> ^6.9.1 age confidence devDependencies minor
@types/chai (source) ^5.2.2 -> ^5.2.3 age confidence dependencies patch
@​types/glob ^7.1.1 -> ^7.2.0 age confidence devDependencies patch
@types/react (source) ^19.1.13 -> ^19.2.2 age confidence devDependencies minor
@types/react-dom (source) ^19.1.9 -> ^19.2.2 age confidence devDependencies minor
@vue/compiler-dom (source) ^3.5.21 -> ^3.5.22 age confidence devDependencies patch
@vue/server-renderer (source) ^3.5.21 -> ^3.5.22 age confidence devDependencies patch
birpc 2.5.0 -> 2.6.1 age confidence devDependencies minor
cross-env ^10.0.0 -> ^10.1.0 age confidence devDependencies minor
glob ^7.1.4 -> ^7.2.3 age confidence devDependencies patch
happy-dom ^20.0.0 -> ^20.0.7 age confidence devDependencies patch
jest-diff (source) ^30.1.2 -> ^30.2.0 age confidence devDependencies minor
memfs ^4.42.0 -> ^4.49.0 age confidence devDependencies minor
mocha (source) ^11.7.2 -> ^11.7.4 age confidence devDependencies patch
nx (source) ^21.5.2 -> ^21.6.5 age confidence devDependencies minor
react (source) ^19.1.1 -> ^19.2.0 age confidence devDependencies minor
react (source) ^19.1.1 -> ^19.2.0 age confidence dependencies minor
react-dom (source) ^19.1.1 -> ^19.2.0 age confidence devDependencies minor
react-dom (source) ^19.1.1 -> ^19.2.0 age confidence dependencies minor
rslog ^1.2.11 -> ^1.3.0 age confidence devDependencies minor
std-env ^3.9.0 -> ^3.10.0 age confidence devDependencies minor
tinyspy ^4.0.3 -> ^4.0.4 age confidence devDependencies patch
typescript (source) ^5.9.2 -> ^5.9.3 age confidence devDependencies patch
vue (source) ^3.5.21 -> ^3.5.22 age confidence dependencies patch

Release Notes

biomejs/biome (@​biomejs/biome)

v2.2.6

Compare Source

Patch Changes
  • #​7071 a8e7301 Thanks @​ptkagori! - Added the useQwikMethodUsage lint rule for the Qwik domain.

    This rule validates Qwik hook usage. Identifiers matching useXxx must be called only within serialisable reactive contexts (for example, inside component$, route loaders/actions, or within other Qwik hooks), preventing common Qwik antipatterns.

    Invalid:

    // Top-level hook call is invalid.
    const state = useStore({ count: 0 });
    
    function helper() {
      // Calling a hook in a non-reactive function is invalid.
      const loc = useLocation();
    }

    Valid:

    component$(() => {
      const state = useStore({ count: 0 }); // OK inside component$.
      return <div>{state.count}</div>;
    });
    
    const handler = $(() => {
      const loc = useLocation(); // OK inside a $-wrapped closure.
      console.log(loc.params);
    });
  • #​7685 52071f5 Thanks @​denbezrukov! - Fixed #​6981: The NoUnknownPseudoClass rule no longer reports local pseudo-classes when CSS Modules are used.

  • #​7640 899f7b2 Thanks @​arendjr! - Fixed #​7638: useImportExtensions no longer emits diagnostics on valid import paths that end with a query or hash.

Example
// This no longer warns if `index.css` exists:
import style from "../theme/index.css?inline";
  • #​7071 a8e7301 Thanks @​ptkagori! - Added the useQwikValidLexicalScope rule to the Qwik domain.

    This rule helps you avoid common bugs in Qwik components by checking that your variables and functions are declared in the correct place.

    Invalid:

    // Invalid: state defined outside the component's lexical scope.
    let state = useStore({ count: 0 });
    const Component = component$(() => {
      return (
        <button onClick$={() => state.count++}>Invalid: {state.count}</button>
      );
    });

    Valid:

    // Valid: state initialised within the component's lexical scope and captured by the event.
    const Component = component$(() => {
      const state = useStore({ count: 0 });
      return <button onClick$={() => state.count++}>Valid: {state.count}</button>;
    });
  • #​7620 5beb1ee Thanks @​Netail! - Added the rule useDeprecatedDate, which makes a deprecation date required for the graphql @deprecated directive.

    Invalid
    query {
      member @&#8203;deprecated(reason: "Use `members` instead") {
        id
      }
    }
    Valid
    query {
      member
        @&#8203;deprecated(reason: "Use `members` instead", deletionDate: "2099-12-25") {
        id
      }
    }
  • #​7709 d6da4d5 Thanks @​siketyan! - Fixed #​7704: The useExhaustiveDependencies rule now correctly adds an object dependency when its method is called within the closure.

    For example:

    function Component(props) {
      useEffect(() => {
        props.foo();
      }, []);
    }

    will now be fixed to:

    function Component(props) {
      useEffect(() => {
        props.foo();
      }, [props]);
    }
  • #​7624 309ae41 Thanks @​lucasweng! - Fixed #​7595: noUselessEscapeInString no longer reports $\{ escape in template literals.

  • #​7665 29e4229 Thanks @​ryan-m-walker! - Fixed #​7619: Added support for parsing the CSS :state() pseudo-class.

    custom-selector:state(checked) {
    }
  • #​7608 41df59b Thanks @​ritoban23! - Fixed #​7604: the useMaxParams rule now highlights parameter lists instead of entire function bodies. This provides more precise error highlighting. Previously, the entire function was highlighted; now only the parameter list is highlighted, such as (a, b, c, d, e, f, g, h).

  • #​7643 459a6ac Thanks @​daivinhtran! - Fixed #​7580: Include plugin in summary report

v2.2.5

Compare Source

Patch Changes
  • #​7597 5c3d542 Thanks @​arendjr! - Fixed #​6432: useImportExtensions now works correctly with aliased paths.

  • #​7269 f18dac1 Thanks @​CDGardner! - Fixed #​6648, where Biome's noUselessFragments contained inconsistencies with ESLint for fragments only containing text.

    Previously, Biome would report that fragments with only text were unnecessary under the noUselessFragments rule. Further analysis of ESLint's behavior towards these cases revealed that text-only fragments (<>A</a>, <React.Fragment>B</React.Fragment>, <RenamedFragment>B</RenamedFragment>) would not have noUselessFragments emitted for them.

    On the Biome side, instances such as these would emit noUselessFragments, and applying the suggested fix would turn the text content into a proper JS string.

    // Ended up as: - const t = "Text"
    const t = <>Text</>
    
    // Ended up as: - const e = t ? "Option A" : "Option B"
    const e = t ? <>Option A</> : <>Option B</>
    
    /* Ended up as:
      function someFunc() {
        return "Content desired to be a multi-line block of text."
      }
    */
    function someFunc() {
      return <>
        Content desired to be a multi-line
        block of text.
      <>
    }

    The proposed update was to align Biome's reaction to this rule with ESLint's; the aforementioned examples will now be supported from Biome's perspective, thus valid use of fragments.

    // These instances are now valid and won't be called out by noUselessFragments.
    
    const t = <>Text</>
    const e = t ? <>Option A</> : <>Option B</>
    
    function someFunc() {
      return <>
        Content desired to be a multi-line
        block of text.
      <>
    }
  • #​7498 002cded Thanks @​siketyan! - Fixed #​6893: The useExhaustiveDependencies rule now correctly adds a dependency that is captured in a shorthand object member. For example:

    useEffect(() => {
      console.log({ firstId, secondId });
    }, []);

    is now correctly fixed to:

    useEffect(() => {
      console.log({ firstId, secondId });
    }, [firstId, secondId]);
  • #​7509 1b61631 Thanks @​siketyan! - Added a new lint rule noReactForwardRef, which detects usages of forwardRef that is no longer needed and deprecated in React 19.

    For example:

    export const Component = forwardRef(function Component(props, ref) {
      return <div ref={ref} />;
    });

    will be fixed to:

    export const Component = function Component({ ref, ...props }) {
      return <div ref={ref} />;
    };

    Note that the rule provides an unsafe fix, which may break the code. Don't forget to review the code after applying the fix.

  • #​7520 3f06e19 Thanks @​arendjr! - Added new nursery rule noDeprecatedImports to flag imports of deprecated symbols.

Invalid example
// foo.js
import { oldUtility } from "./utils.js";
// utils.js
/**
 * @&#8203;deprecated
 */
export function oldUtility() {}
Valid examples
// foo.js
import { newUtility, oldUtility } from "./utils.js";
// utils.js
export function newUtility() {}

// @&#8203;deprecated (this is not a JSDoc comment)
export function oldUtility() {}
  • #​7457 9637f93 Thanks @​kedevked! - Added style and requireForObjectLiteral options to the lint rule useConsistentArrowReturn.

    This rule enforces a consistent return style for arrow functions. It can be configured with the following options:

    • style: (default: asNeeded)
      • always: enforces that arrow functions always have a block body.
      • never: enforces that arrow functions never have a block body, when possible.
      • asNeeded: enforces that arrow functions have a block body only when necessary (e.g. for object literals).
style: "always"

Invalid:

const f = () => 1;

Valid:

const f = () => {
  return 1;
};
style: "never"

Invalid:

const f = () => {
  return 1;
};

Valid:

const f = () => 1;
style: "asNeeded"

Invalid:

const f = () => {
  return 1;
};

Valid:

const f = () => 1;
style: "asNeeded" and requireForObjectLiteral: true

Valid:

const f = () => {
  return { a: 1 };
};
  • #​7510 527cec2 Thanks @​rriski! - Implements #​7339. GritQL patterns can now use native Biome AST nodes using their PascalCase names, in addition to the existing TreeSitter-compatible snake_case names.

    engine biome(1.0)
    language js(typescript,jsx)
    
    or {
      // TreeSitter-compatible pattern
      if_statement(),
    
      // Native Biome AST node pattern
      JsIfStatement()
    } as $stmt where {
      register_diagnostic(
        span=$stmt,
        message="Found an if statement"
      )
    }
    
  • #​7574 47907e7 Thanks @​kedevked! - Fixed 7574. The diagnostic message for the rule useSolidForComponent now correctly emphasizes <For /> and provides a working hyperlink to the Solid documentation.

  • #​7497 bd70f40 Thanks @​siketyan! - Fixed #​7320: The useConsistentCurlyBraces rule now correctly detects a string literal including " inside a JSX attribute value.

  • #​7522 1af9931 Thanks @​Netail! - Added extra references to external rules to improve migration for the following rules: noUselessFragments & noNestedComponentDefinitions

  • #​7597 5c3d542 Thanks @​arendjr! - Fixed an issue where package.json manifests would not be correctly discovered
    when evaluating files in the same directory.

  • #​7565 38d2098 Thanks @​siketyan! - The resolver can now correctly resolve .ts, .tsx, .d.ts, .js files by .js extension if exists, based on the file extension substitution in TypeScript.

    For example, the linter can now detect the floating promise in the following situation, if you have enabled the noFloatingPromises rule.

    foo.ts

    export async function doSomething(): Promise<void> {}

    bar.ts

    import { doSomething } from "./foo.js"; // doesn't exist actually, but it is resolved to `foo.ts`
    
    doSomething(); // floating promise!
  • #​7542 cadad2c Thanks @​mdevils! - Added the rule noVueDuplicateKeys, which prevents duplicate keys in Vue component definitions.

    This rule prevents the use of duplicate keys across different Vue component options such as props, data, computed, methods, and setup. Even if keys don't conflict in the script tag, they may cause issues in the template since Vue allows direct access to these keys.

    Invalid examples
    <script>
    export default {
      props: ["foo"],
      data() {
        return {
          foo: "bar",
        };
      },
    };
    </script>
    <script>
    export default {
      data() {
        return {
          message: "hello",
        };
      },
      methods: {
        message() {
          console.log("duplicate key");
        },
      },
    };
    </script>
    <script>
    export default {
      computed: {
        count() {
          return this.value * 2;
        },
      },
      methods: {
        count() {
          this.value++;
        },
      },
    };
    </script>
    Valid examples
    <script>
    export default {
      props: ["foo"],
      data() {
        return {
          bar: "baz",
        };
      },
      methods: {
        handleClick() {
          console.log("unique key");
        },
      },
    };
    </script>
    <script>
    export default {
      computed: {
        displayMessage() {
          return this.message.toUpperCase();
        },
      },
      methods: {
        clearMessage() {
          this.message = "";
        },
      },
    };
    </script>
  • #​7546 a683acc Thanks @​siketyan! - Internal data for Unicode strings have been updated to Unicode 17.0.

  • #​7497 bd70f40 Thanks @​siketyan! - Fixed #​7256: The useConsistentCurlyBraces rule now correctly ignores a string literal with braces that contains only whitespaces. Previously, literals that contains single whitespace were only allowed.

  • #​7565 38d2098 Thanks @​siketyan! - The useImportExtensions rule now correctly detects imports with an invalid extension. For example, importing .ts file with .js extension is flagged by default. If you are using TypeScript with neither the allowImportingTsExtensions option nor the rewriteRelativeImportExtensions option, it's recommended to turn on the forceJsExtensions option of the rule.

  • #​7581 8653921 Thanks @​lucasweng! - Fixed #​7470: solved a false positive for noDuplicateProperties. Previously, declarations in @container and @starting-style at-rules were incorrectly flagged as duplicates of identical declarations at the root selector.

    For example, the linter no longer flags the display declaration in @container or the opacity declaration in @starting-style.

    a {
      display: block;
      @&#8203;container (min-width: 600px) {
        display: none;
      }
    }
    
    [popover]:popover-open {
      opacity: 1;
      @&#8203;starting-style {
        opacity: 0;
      }
    }
  • #​7529 fea905f Thanks @​qraqras! - Fixed #​7517: the useOptionalChain rule no longer suggests changes for typeof checks on global objects.

    // ok
    typeof window !== "undefined" && window.location;
  • #​7476 c015765 Thanks @​ematipico! - Fixed a bug where the suppression action for noPositiveTabindex didn't place the suppression comment in the correct position.

  • #​7511 a0039fd Thanks @​arendjr! - Added nursery rule noUnusedExpressions to flag expressions used as a statement that is neither an assignment nor a function call.

Invalid examples
f; // intended to call `f()` instead
function foo() {
  0; // intended to `return 0` instead
}
Valid examples
f();
function foo() {
  return 0;
}
microsoft/rushstack (@​microsoft/api-extractor)

v7.53.1

Compare Source

Wed, 08 Oct 2025 00:13:28 GMT

Version update only

v7.53.0

Compare Source

Fri, 03 Oct 2025 20:09:59 GMT

Minor changes
  • Normalize import of builtin modules to use the node: protocol.

v7.52.15

Compare Source

Tue, 30 Sep 2025 23:57:45 GMT

Version update only

v7.52.14

Compare Source

Tue, 30 Sep 2025 20:33:51 GMT

Version update only

web-infra-dev/rsdoctor (@​rsdoctor/rspack-plugin)

v1.3.3

Compare Source

What's Changed

Bug Fixes 🐞
Other Changes

Full Changelog: web-infra-dev/rsdoctor@v1.3.2...v1.3.3

v1.3.2

Compare Source

What's Changed

Bug Fixes 🐞
Other Changes

Full Changelog: web-infra-dev/rsdoctor@v1.3.1...v1.3.2

v1.3.1

Compare Source

What's Changed

Bug Fixes 🐞
Other Changes

Full Changelog: web-infra-dev/rsdoctor@v1.3.0...v1.3.1

v1.3.0

Compare Source

Highlight

🎉 Rsdoctor Playground

  • Support to upload Rspack’s stats.json and Rsdoctor‘s data online for analysis.Playground
rsdoctor-playground.mp4

🎉 Support the Brief JSON format, allowing rsdoctor data to be exported as a JSON file for further analysis

  • This improves the ability to store and share rsdoctor data in CI environments.Docs

🎉 Rsdoctor refactored as dual packages.

What's Changed

New Features 🎉
Performance 🚀
Bug Fixes 🐞
Document 📖
Other Changes

Configuration

📅 Schedule: Branch creation - Between 12:00 AM and 03:59 AM, only on Monday ( * 0-3 * * 1 ) (UTC), 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.

@netlify
Copy link

netlify bot commented Oct 21, 2025

Deploy Preview for rstest-dev ready!

Name Link
🔨 Latest commit 2f4ece3
🔍 Latest deploy log https://app.netlify.com/projects/rstest-dev/deploys/68f757033857fd0008b3a283
😎 Deploy Preview https://deploy-preview-636--rstest-dev.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify project configuration.

@renovate
Copy link
Contributor Author

renovate bot commented Oct 21, 2025

Edited/Blocked Notification

Renovate will not automatically rebase this PR, because it does not recognize the last commit author and assumes somebody else may have edited the PR.

You can manually request rebase by checking the rebase/retry box above.

⚠️ Warning: custom changes will be lost.

@9aoy 9aoy merged commit c113891 into main Oct 21, 2025
29 of 30 checks passed
@9aoy 9aoy deleted the renovate/all-non-major branch October 21, 2025 10:40
@9aoy 9aoy mentioned this pull request Oct 27, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants