[PR #55] Bump react-router from 6.29.0 to 7.2.0 in /backstage/packages/app #26

Open
opened 2026-06-08 08:27:45 +00:00 by ryangr0 · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/webgrip/backstage-application/pull/55
Author: @dependabot[bot]
Created: 2/20/2025
Status: 🔄 Open

Base: mainHead: dependabot/npm_and_yarn/backstage/packages/app/react-router-7.2.0


📝 Commits (1)

  • e5e108e Bump react-router from 6.29.0 to 7.2.0 in /backstage/packages/app

📊 Changes

1 file changed (+1 additions, -1 deletions)

View changed files

📝 backstage/packages/app/package.json (+1 -1)

📄 Description

Bumps react-router from 6.29.0 to 7.2.0.

Release notes

Sourced from react-router's releases.

v7.2.0

See the changelog for release notes: https://github.com/remix-run/react-router/blob/main/CHANGELOG.md#v720

v.7.1.5

See the changelog for release notes: https://github.com/remix-run/react-router/blob/main/CHANGELOG.md#v715

v7.1.4

See the changelog for release notes: https://github.com/remix-run/react-router/blob/main/CHANGELOG.md#v714

Changelog

Sourced from react-router's changelog.

7.2.0

Minor Changes

  • New type-safe href utility that guarantees links point to actual paths in your app (#13012)

    import { href } from "react-router";
    

    export default function Component() { const link = href("/blog/:slug", { slug: "my-first-post" }); return ( <main> <Link to={href("/products/:id", { id: "asdf" })} /> <NavLink to={href("/:lang?/about", { lang: "en" })} /> </main> ); }

Patch Changes

  • Fix typegen for repeated params (#13012)

    In React Router, path parameters are keyed by their name. So for a path pattern like /a/:id/b/:id?/c/:id, the last :id will set the value for id in useParams and the params prop. For example, /a/1/b/2/c/3 will result in the value { id: 3 } at runtime.

    Previously, generated types for params incorrectly modeled repeated params with an array. So /a/1/b/2/c/3 generated a type like { id: [1,2,3] }.

    To be consistent with runtime behavior, the generated types now correctly model the "last one wins" semantics of path parameters. So /a/1/b/2/c/3 now generates a type like { id: 3 }.

  • Don't apply Single Fetch revalidation de-optimization when in SPA mode since there is no server HTTP request (#12948)

  • Properly handle revalidations to across a prerender/SPA boundary (#13021)

    • In "hybrid" applications where some routes are pre-rendered and some are served from a SPA fallback, we need to avoid making .data requests if the path wasn't pre-rendered because the request will 404
    • We don't know all the pre-rendered paths client-side, however:
      • All loader data in ssr:false mode is static because it's generated at build time
      • A route must use a clientLoader to do anything dynamic
      • Therefore, if a route only has a loader and not a clientLoader, we disable revalidation by default because there is no new data to retrieve
      • We short circuit and skip single fetch .data request logic if there are no server loaders with shouldLoad=true in our single fetch dataStrategy
      • This ensures that the route doesn't cause a .data request that would 404 after a submission
  • Error at build time in ssr:false + prerender apps for the edge case scenario of: (#13021)

    • A parent route has only a loader (does not have a clientLoader)
    • The parent route is pre-rendered

... (truncated)

Commits
  • 4b5793d chore: Update version for release (#13051)
  • e7eb36f chore: Update version for release (pre) (#13050)
  • 95fd01d chore: Update version for release (pre) (#13048)
  • 597f3d2 Fix clientLoader calls to serverLoader for prerendered routes (#13047)
  • 6bb9e5c chore: Update version for release (pre) (#13041)
  • 5811466 Add additional JSDoc comments to commonly used APIs for better API reference ...
  • 3f98a9a chore: Update version for release (pre) (#13038)
  • ab5b05b feat(react-router): add SerializesTo brand type (#12264)
  • e8719ad chore: Update version for release (pre) (#13022)
  • f27fcf2 Fix a few edge case bugs with hybrid ssr:false/prerender scenarios (#13021)
  • Additional commits viewable in compare view

Dependabot compatibility score

You can trigger a rebase of this PR by commenting @dependabot rebase.


Dependabot commands and options

You can trigger Dependabot actions by commenting on this PR:

  • @dependabot rebase will rebase this PR
  • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
  • @dependabot merge will merge this PR after your CI passes on it
  • @dependabot squash and merge will squash and merge this PR after your CI passes on it
  • @dependabot cancel merge will cancel a previously requested merge and block automerging
  • @dependabot reopen will reopen this PR if it is closed
  • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
  • @dependabot show <dependency name> ignore conditions will show all of the ignore conditions of the specified dependency
  • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)

Note

Automatic rebases have been disabled on this pull request as it has been open for over 30 days.


🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/webgrip/backstage-application/pull/55 **Author:** [@dependabot[bot]](https://github.com/apps/dependabot) **Created:** 2/20/2025 **Status:** 🔄 Open **Base:** `main` ← **Head:** `dependabot/npm_and_yarn/backstage/packages/app/react-router-7.2.0` --- ### 📝 Commits (1) - [`e5e108e`](https://github.com/webgrip/backstage-application/commit/e5e108e91d039df8c00be73684df57508bd2465e) Bump react-router from 6.29.0 to 7.2.0 in /backstage/packages/app ### 📊 Changes **1 file changed** (+1 additions, -1 deletions) <details> <summary>View changed files</summary> 📝 `backstage/packages/app/package.json` (+1 -1) </details> ### 📄 Description Bumps [react-router](https://github.com/remix-run/react-router/tree/HEAD/packages/react-router) from 6.29.0 to 7.2.0. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/remix-run/react-router/releases">react-router's releases</a>.</em></p> <blockquote> <h2>v7.2.0</h2> <p>See the changelog for release notes: <a href="https://github.com/remix-run/react-router/blob/main/CHANGELOG.md#v720">https://github.com/remix-run/react-router/blob/main/CHANGELOG.md#v720</a></p> <h2>v.7.1.5</h2> <p>See the changelog for release notes: <a href="https://github.com/remix-run/react-router/blob/main/CHANGELOG.md#v715">https://github.com/remix-run/react-router/blob/main/CHANGELOG.md#v715</a></p> <h2>v7.1.4</h2> <p>See the changelog for release notes: <a href="https://github.com/remix-run/react-router/blob/main/CHANGELOG.md#v714">https://github.com/remix-run/react-router/blob/main/CHANGELOG.md#v714</a></p> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/remix-run/react-router/blob/main/packages/react-router/CHANGELOG.md">react-router's changelog</a>.</em></p> <blockquote> <h2>7.2.0</h2> <h3>Minor Changes</h3> <ul> <li> <p>New type-safe <code>href</code> utility that guarantees links point to actual paths in your app (<a href="https://redirect.github.com/remix-run/react-router/pull/13012">#13012</a>)</p> <pre lang="tsx"><code>import { href } from &quot;react-router&quot;; <p>export default function Component() { const link = href(&quot;/blog/:slug&quot;, { slug: &quot;my-first-post&quot; }); return ( &lt;main&gt; &lt;Link to={href(&quot;/products/:id&quot;, { id: &quot;asdf&quot; })} /&gt; &lt;NavLink to={href(&quot;/:lang?/about&quot;, { lang: &quot;en&quot; })} /&gt; &lt;/main&gt; ); } </code></pre></p> </li> </ul> <h3>Patch Changes</h3> <ul> <li> <p>Fix typegen for repeated params (<a href="https://redirect.github.com/remix-run/react-router/pull/13012">#13012</a>)</p> <p>In React Router, path parameters are keyed by their name. So for a path pattern like <code>/a/:id/b/:id?/c/:id</code>, the last <code>:id</code> will set the value for <code>id</code> in <code>useParams</code> and the <code>params</code> prop. For example, <code>/a/1/b/2/c/3</code> will result in the value <code>{ id: 3 }</code> at runtime.</p> <p>Previously, generated types for params incorrectly modeled repeated params with an array. So <code>/a/1/b/2/c/3</code> generated a type like <code>{ id: [1,2,3] }</code>.</p> <p>To be consistent with runtime behavior, the generated types now correctly model the &quot;last one wins&quot; semantics of path parameters. So <code>/a/1/b/2/c/3</code> now generates a type like <code>{ id: 3 }</code>.</p> </li> <li> <p>Don't apply Single Fetch revalidation de-optimization when in SPA mode since there is no server HTTP request (<a href="https://redirect.github.com/remix-run/react-router/pull/12948">#12948</a>)</p> </li> <li> <p>Properly handle revalidations to across a prerender/SPA boundary (<a href="https://redirect.github.com/remix-run/react-router/pull/13021">#13021</a>)</p> <ul> <li>In &quot;hybrid&quot; applications where some routes are pre-rendered and some are served from a SPA fallback, we need to avoid making <code>.data</code> requests if the path wasn't pre-rendered because the request will 404</li> <li>We don't know all the pre-rendered paths client-side, however: <ul> <li>All <code>loader</code> data in <code>ssr:false</code> mode is static because it's generated at build time</li> <li>A route must use a <code>clientLoader</code> to do anything dynamic</li> <li>Therefore, if a route only has a <code>loader</code> and not a <code>clientLoader</code>, we disable revalidation by default because there is no new data to retrieve</li> <li>We short circuit and skip single fetch <code>.data</code> request logic if there are no server loaders with <code>shouldLoad=true</code> in our single fetch <code>dataStrategy</code></li> <li>This ensures that the route doesn't cause a <code>.data</code> request that would 404 after a submission</li> </ul> </li> </ul> </li> <li> <p>Error at build time in <code>ssr:false</code> + <code>prerender</code> apps for the edge case scenario of: (<a href="https://redirect.github.com/remix-run/react-router/pull/13021">#13021</a>)</p> <ul> <li>A parent route has only a <code>loader</code> (does not have a <code>clientLoader</code>)</li> <li>The parent route is pre-rendered</li> </ul> </li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/remix-run/react-router/commit/4b5793dc97dd8f72c56b761427a371f102858434"><code>4b5793d</code></a> chore: Update version for release (<a href="https://github.com/remix-run/react-router/tree/HEAD/packages/react-router/issues/13051">#13051</a>)</li> <li><a href="https://github.com/remix-run/react-router/commit/e7eb36fa312829030746cd7895cca63f6c5264aa"><code>e7eb36f</code></a> chore: Update version for release (pre) (<a href="https://github.com/remix-run/react-router/tree/HEAD/packages/react-router/issues/13050">#13050</a>)</li> <li><a href="https://github.com/remix-run/react-router/commit/95fd01d34e8467a7a154762f36a65f3fa3fd14dd"><code>95fd01d</code></a> chore: Update version for release (pre) (<a href="https://github.com/remix-run/react-router/tree/HEAD/packages/react-router/issues/13048">#13048</a>)</li> <li><a href="https://github.com/remix-run/react-router/commit/597f3d2a023b822f95f7c36206342bf74373537b"><code>597f3d2</code></a> Fix clientLoader calls to serverLoader for prerendered routes (<a href="https://github.com/remix-run/react-router/tree/HEAD/packages/react-router/issues/13047">#13047</a>)</li> <li><a href="https://github.com/remix-run/react-router/commit/6bb9e5c0b244fed6427639982c56f3c92f514c80"><code>6bb9e5c</code></a> chore: Update version for release (pre) (<a href="https://github.com/remix-run/react-router/tree/HEAD/packages/react-router/issues/13041">#13041</a>)</li> <li><a href="https://github.com/remix-run/react-router/commit/58114666e500a1d08a31d6e7578d98931218feb2"><code>5811466</code></a> Add additional JSDoc comments to commonly used APIs for better API reference ...</li> <li><a href="https://github.com/remix-run/react-router/commit/3f98a9a81798ec67861c35ddf6b252ba0110580d"><code>3f98a9a</code></a> chore: Update version for release (pre) (<a href="https://github.com/remix-run/react-router/tree/HEAD/packages/react-router/issues/13038">#13038</a>)</li> <li><a href="https://github.com/remix-run/react-router/commit/ab5b05b02f99f062edb3c536c392197c88eb6c77"><code>ab5b05b</code></a> feat(react-router): add <code>SerializesTo</code> brand type (<a href="https://github.com/remix-run/react-router/tree/HEAD/packages/react-router/issues/12264">#12264</a>)</li> <li><a href="https://github.com/remix-run/react-router/commit/e8719adcf05fcc31adebf70901929d87db45c70f"><code>e8719ad</code></a> chore: Update version for release (pre) (<a href="https://github.com/remix-run/react-router/tree/HEAD/packages/react-router/issues/13022">#13022</a>)</li> <li><a href="https://github.com/remix-run/react-router/commit/f27fcf2a3bf823914537f36f55ed381eca74616a"><code>f27fcf2</code></a> Fix a few edge case bugs with hybrid ssr:false/prerender scenarios (<a href="https://github.com/remix-run/react-router/tree/HEAD/packages/react-router/issues/13021">#13021</a>)</li> <li>Additional commits viewable in <a href="https://github.com/remix-run/react-router/commits/react-router@7.2.0/packages/react-router">compare view</a></li> </ul> </details> <br /> [![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=react-router&package-manager=npm_and_yarn&previous-version=6.29.0&new-version=7.2.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) You can trigger a rebase of this PR by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) </details> > **Note** > Automatic rebases have been disabled on this pull request as it has been open for over 30 days. --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
Sign in to join this conversation.
No labels
pull-request
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
webgrip/backstage-application#26
No description provided.