Files
bracket/frontend
dependabot[bot] c9733d2ecc Bump react-router from 7.14.0 to 8.3.0 in /frontend (#1743)
Bumps
[react-router](https://github.com/remix-run/react-router/tree/HEAD/packages/react-router)
from 7.14.0 to 8.3.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>v8.3.0</h2>
<p>See the changelog for release notes: <a
href="https://github.com/remix-run/react-router/blob/main/CHANGELOG.md#v830">https://github.com/remix-run/react-router/blob/main/CHANGELOG.md#v830</a></p>
<h2>v8.2.0</h2>
<p>See the changelog for release notes: <a
href="https://github.com/remix-run/react-router/blob/main/CHANGELOG.md#v820">https://github.com/remix-run/react-router/blob/main/CHANGELOG.md#v820</a></p>
<h2>v8.1.0</h2>
<p>See the changelog for release notes: <a
href="https://github.com/remix-run/react-router/blob/main/CHANGELOG.md#v810">https://github.com/remix-run/react-router/blob/main/CHANGELOG.md#v810</a></p>
<h2>v8.0.1</h2>
<p>See the changelog for release notes: <a
href="https://github.com/remix-run/react-router/blob/main/CHANGELOG.md#v801">https://github.com/remix-run/react-router/blob/main/CHANGELOG.md#v801</a></p>
<h2>v8.0.0</h2>
<p>See the changelog for release notes: <a
href="https://github.com/remix-run/react-router/blob/main/CHANGELOG.md#v800">https://github.com/remix-run/react-router/blob/main/CHANGELOG.md#v800</a></p>
<h2>v7.18.1</h2>
<p>See the changelog for release notes: <a
href="https://github.com/remix-run/react-router/blob/v7/CHANGELOG.md#v7181">https://github.com/remix-run/react-router/blob/v7/CHANGELOG.md#v7181</a></p>
<h2>v7.18.0</h2>
<p>See the changelog for release notes: <a
href="https://github.com/remix-run/react-router/blob/main/CHANGELOG.md#v7180">https://github.com/remix-run/react-router/blob/main/CHANGELOG.md#v7180</a></p>
<h2>v7.17.0</h2>
<p>See the changelog for release notes: <a
href="https://github.com/remix-run/react-router/blob/main/CHANGELOG.md#v7170">https://github.com/remix-run/react-router/blob/main/CHANGELOG.md#v7170</a></p>
<h2>v7.16.0</h2>
<p>See the changelog for release notes: <a
href="https://github.com/remix-run/react-router/blob/main/CHANGELOG.md#v7160">https://github.com/remix-run/react-router/blob/main/CHANGELOG.md#v7160</a></p>
<h2>v7.15.1</h2>
<p>See the changelog for release notes: <a
href="https://github.com/remix-run/react-router/blob/main/CHANGELOG.md#v7151">https://github.com/remix-run/react-router/blob/main/CHANGELOG.md#v7151</a></p>
<h2>v7.15.0</h2>
<p>See the changelog for release notes: <a
href="https://github.com/remix-run/react-router/blob/main/CHANGELOG.md#v7150">https://github.com/remix-run/react-router/blob/main/CHANGELOG.md#v7150</a></p>
<h2>v7.14.2</h2>
<p>See the changelog for release notes: <a
href="https://github.com/remix-run/react-router/blob/main/CHANGELOG.md#v7142">https://github.com/remix-run/react-router/blob/main/CHANGELOG.md#v7142</a></p>
<h2>v7.14.1</h2>
<p>See the changelog for release notes: <a
href="https://github.com/remix-run/react-router/blob/main/CHANGELOG.md#v7141">https://github.com/remix-run/react-router/blob/main/CHANGELOG.md#v7141</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>v8.3.0</h2>
<h3>Patch Changes</h3>
<ul>
<li>Encode path params in <code>href</code>/<code>generatePath</code>
per RFC 3986 path-segment rules instead of
<code>encodeURIComponent</code> (<a
href="https://redirect.github.com/remix-run/react-router/pull/15310">#15310</a>)
<ul>
<li>Characters that are valid literally in a path segment (<code>$ &amp;
+ , ; = : @</code> — RFC 3986 <code>pchar</code>) are no longer
percent-encoded, so values like a semver build <code>1.0.0+1</code>
interpolate unchanged instead of becoming <code>1.0.0%2B1</code></li>
<li>Structural/unsafe characters (<code>/ ? # %</code>, whitespace,
non-ASCII) are still escaped exactly as before</li>
</ul>
</li>
<li>Use <code>crypto.randomUUID()</code> for
<code>createMemorySessionStorage</code> session ids (<a
href="https://redirect.github.com/remix-run/react-router/pull/15302">#15302</a>)
<ul>
<li><code>createMemorySessionStorage</code> is only intended for local
development and testing - sessions are lost when the server
restarts</li>
</ul>
</li>
<li>Fix <code>NavLink</code> not applying its <code>pending</code> state
when <code>to</code> has a trailing slash (<a
href="https://redirect.github.com/remix-run/react-router/pull/15300">#15300</a>)</li>
<li>Preserve RSC route component metadata so routes with a
<code>clientLoader</code> can skip unnecessary server requests once
their components have rendered while still fetching missing
server-rendered elements (<a
href="https://redirect.github.com/remix-run/react-router/pull/15323">#15323</a>)</li>
<li>Harden RSC CSRF code paths (<a
href="https://redirect.github.com/remix-run/react-router/pull/15311">#15311</a>)</li>
<li>Fix server crash (<code>TypeError: Invalid state: Unable to
enqueue</code>) when a request is aborted while the RSC HTML stream has
a pending flush (<a
href="https://redirect.github.com/remix-run/react-router/pull/15286">#15286</a>)
<ul>
<li>Handle cancellation of the <code>injectRSCPayload</code> readable
side, clear the pending flush, and cancel the underlying RSC payload
stream</li>
</ul>
</li>
</ul>
<h3>Unstable Changes</h3>
<p>⚠️ <em><a
href="https://reactrouter.com/community/api-development-strategy#unstable-flags">Unstable
features</a> are not recommended for production use</em></p>
<ul>
<li>
<p>Detect stale RSC clients during lazy route discovery and reload the
destination document (<a
href="https://redirect.github.com/remix-run/react-router/pull/15318">#15318</a>)</p>
<h4>Migration</h4>
<p>Apps using the default RSC Framework entry do not need to make any
changes. Apps with a custom <code>entry.rsc.tsx</code> should import the
generated client version and pass it to
<code>unstable_matchRSCServerRequest</code>:</p>
<pre lang="tsx"><code>import clientVersion from
&quot;virtual:react-router/unstable_rsc/client-version&quot;;
<p>return unstable_matchRSCServerRequest({<br />
// ...<br />
clientVersion,<br />
});<br />
</code></pre></p>
</li>
<li>
<p>Add CSP nonce support to RSC document rendering (<a
href="https://redirect.github.com/remix-run/react-router/pull/15320">#15320</a>)</p>
<ul>
<li>Add <code>nonce</code> options to
<code>unstable_routeRSCServerRequest</code> and
<code>unstable_RSCStaticRouter</code></li>
<li>Forward the nonce to the HTML renderer and apply it to injected RSC
payload scripts and nonce-aware framework components</li>
</ul>
<p>To adopt nonce-based CSP, update your <code>entry.ssr.tsx</code> (run
<code>react-router reveal entry.ssr</code> first in RSC Framework Mode)
to generate a fresh nonce for each request. Pass it to
<code>routeRSCServerRequest</code>, spread the <code>renderHTML</code>
options into React's HTML renderer, pass <code>options.nonce</code> to
<code>RSCStaticRouter</code>, and use the same nonce in the
<code>Content-Security-Policy</code> response header:</p>
<pre lang="tsx"><code>const nonce = crypto.randomUUID();
const response = await routeRSCServerRequest({
  request,
  serverResponse,
  createFromReadableStream,
  nonce,
  async renderHTML(getPayload, options) {
    const payload = getPayload();
    return renderHTMLToReadableStream(
</code></pre>
</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="2edaca7a4f"><code>2edaca7</code></a>
Release v8.3.0 (<a
href="https://github.com/remix-run/react-router/tree/HEAD/packages/react-router/issues/15294">#15294</a>)</li>
<li><a
href="687ab72ddd"><code>687ab72</code></a>
Prep release notes</li>
<li><a
href="d2f1f1baa5"><code>d2f1f1b</code></a>
update changes files to use h4 instead of h3 (<a
href="https://github.com/remix-run/react-router/tree/HEAD/packages/react-router/issues/15334">#15334</a>)</li>
<li><a
href="8186207e47"><code>8186207</code></a>
fix(rsc): preserve component metadata for client loader revalidation (<a
href="https://github.com/remix-run/react-router/tree/HEAD/packages/react-router/issues/15323">#15323</a>)</li>
<li><a
href="c26e431c60"><code>c26e431</code></a>
feat(rsc): support CSP nonces in document rendering (<a
href="https://github.com/remix-run/react-router/tree/HEAD/packages/react-router/issues/15320">#15320</a>)</li>
<li><a
href="6286f90485"><code>6286f90</code></a>
feat(rsc): reload stale clients after new deployments (<a
href="https://github.com/remix-run/react-router/tree/HEAD/packages/react-router/issues/15318">#15318</a>)</li>
<li><a
href="3d83ad4ac2"><code>3d83ad4</code></a>
docs: fix useLinkClickHandler defaultShouldRevalidate default
description (<a
href="https://github.com/remix-run/react-router/tree/HEAD/packages/react-router/issues/1">#1</a>...</li>
<li><a
href="f75c89fd9c"><code>f75c89f</code></a>
Update docs links to v8 API reference (<a
href="https://github.com/remix-run/react-router/tree/HEAD/packages/react-router/issues/15316">#15316</a>)</li>
<li><a
href="baa9ba617b"><code>baa9ba6</code></a>
fix: encode path params per RFC 3986 path-segment rules in
href/generatePath ...</li>
<li><a
href="69debd1a33"><code>69debd1</code></a>
fix: apply NavLink pending state when the to prop has a trailing slash
(<a
href="https://github.com/remix-run/react-router/tree/HEAD/packages/react-router/issues/15300">#15300</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/remix-run/react-router/commits/react-router@8.3.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=7.14.0&new-version=8.3.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually 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 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)
You can disable automated security fix PRs for this repo from the
[Security Alerts
page](https://github.com/evroon/bracket/network/alerts).

</details>

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
2026-07-28 11:56:16 +00:00
..
2026-01-08 12:12:34 +01:00
2023-09-12 21:37:48 +02:00
2025-12-21 16:15:51 +00:00
2025-11-12 11:18:06 +01:00
2025-11-12 11:18:06 +01:00
2025-11-12 11:18:06 +01:00