chore(deps): bump @remix-run/* to 2.17.5 (#4102)

Bumps the `@remix-run/*` family in the webapp from 2.17.4 to 2.17.5 to
keep dependencies current.

2.17.5 pulls `@remix-run/router` 1.23.2 → 1.23.3, so the local
route-matching perf patch was rebased onto 1.23.3 (regenerated via `pnpm
patch`). It is functionally identical to the previous one - the only
difference is that 1.23.3 already hoists `decodePath` out of the match
loop upstream, so that hunk is dropped; the per-route-tree branch cache
and the compiled-path cache are unchanged. Also updated the
`@remix-run/dev>tar-fs` override key to track the new dev version.

Verified locally against latest main: `typecheck --filter webapp`
passes, `--frozen-lockfile` is consistent, and the dev server boots and
server-renders pages cleanly (route matching exercised via the patched
router).
This commit is contained in:
nicktrn
2026-07-01 19:06:36 +01:00
committed by GitHub
parent 536731a5d6
commit 6cf7677f18
4 changed files with 210 additions and 601 deletions
+8 -8
View File
@@ -104,12 +104,12 @@
"@react-aria/datepicker": "^3.9.1",
"@react-stately/datepicker": "^3.9.1",
"@react-types/datepicker": "^3.7.1",
"@remix-run/express": "2.17.4",
"@remix-run/node": "2.17.4",
"@remix-run/react": "2.17.4",
"@remix-run/router": "^1.23.2",
"@remix-run/serve": "2.17.4",
"@remix-run/server-runtime": "2.17.4",
"@remix-run/express": "2.17.5",
"@remix-run/node": "2.17.5",
"@remix-run/react": "2.17.5",
"@remix-run/router": "^1.23.3",
"@remix-run/serve": "2.17.5",
"@remix-run/server-runtime": "2.17.5",
"@remix-run/v1-meta": "^0.1.3",
"@s2-dev/streamstore": "^0.22.10",
"@sentry/remix": "9.46.0",
@@ -242,8 +242,8 @@
"@internal/clickhouse": "workspace:*",
"@internal/replication": "workspace:*",
"@internal/testcontainers": "workspace:*",
"@remix-run/dev": "2.17.4",
"@remix-run/testing": "^2.17.4",
"@remix-run/dev": "2.17.5",
"@remix-run/testing": "^2.17.5",
"@sentry/cli": "2.50.2",
"@swc/core": "^1.3.4",
"@swc/helpers": "^0.4.11",
+2 -2
View File
@@ -88,7 +88,7 @@
"antlr4ts@0.5.0-alpha.4": "patches/antlr4ts@0.5.0-alpha.4.patch",
"@window-splitter/state@1.1.3": "patches/@window-splitter__state@1.1.3.patch",
"streamdown@2.5.0": "patches/streamdown@2.5.0.patch",
"@remix-run/router@1.23.2": "patches/@remix-run__router@1.23.2.patch"
"@remix-run/router@1.23.3": "patches/@remix-run__router@1.23.3.patch"
},
"overrides": {
"typescript": "5.5.4",
@@ -98,7 +98,7 @@
"ai@^6": "6.0.116",
"@ai-sdk/provider-utils@^4": "4.0.29",
"express@^4>body-parser": "1.20.3",
"@remix-run/dev@2.17.4>tar-fs": "2.1.4",
"@remix-run/dev@2.17.5>tar-fs": "2.1.4",
"tar@>=7 <7.5.11": "^7.5.11",
"form-data@^2": "2.5.4",
"form-data@^3": "3.0.4",
@@ -1,8 +1,8 @@
diff --git a/dist/router.cjs.js b/dist/router.cjs.js
index e634d45fee327b5f9ef63eee8dc1da39b07c79d4..ce1cf6c599e7efa82d51b63d26c0c92e82931083 100644
index 6aa7db6fb5a7182afcdf17b16a3356abfa1e7945..95edbde228beff8dbd13fb2800302e31a932ef25 100644
--- a/dist/router.cjs.js
+++ b/dist/router.cjs.js
@@ -746,6 +746,11 @@ function convertRoutesToDataRoutes(routes, mapRouteProperties, parentPath, manif
@@ -783,6 +783,11 @@ function convertRoutesToDataRoutes(routes, mapRouteProperties, parentPath, manif
*
* @see https://reactrouter.com/v6/utils/match-routes
*/
@@ -14,7 +14,7 @@ index e634d45fee327b5f9ef63eee8dc1da39b07c79d4..ce1cf6c599e7efa82d51b63d26c0c92e
function matchRoutes(routes, locationArg, basename) {
if (basename === void 0) {
basename = "/";
@@ -758,17 +763,17 @@ function matchRoutesImpl(routes, locationArg, basename, allowPartial) {
@@ -795,8 +800,13 @@ function matchRoutesImpl(routes, locationArg, basename, allowPartial) {
if (pathname == null) {
return null;
}
@@ -28,20 +28,9 @@ index e634d45fee327b5f9ef63eee8dc1da39b07c79d4..ce1cf6c599e7efa82d51b63d26c0c92e
+ __branchCache.set(routes, branches);
+ }
let matches = null;
+ // decodePath(pathname) is loop-invariant — hoisted out (was recomputed per branch).
+ let decoded = decodePath(pathname);
let decoded = decodePath(pathname);
for (let i = 0; matches == null && i < branches.length; ++i) {
- // Incoming pathnames are generally encoded from either window.location
- // or from router.navigate, but we want to match against the unencoded
- // paths in the route definitions. Memory router locations won't be
- // encoded here but there also shouldn't be anything to decode so this
- // should be a safe operation. This avoids needing matchRoutes to be
- // history-aware.
- let decoded = decodePath(pathname);
matches = matchRouteBranch(branches[i], decoded, allowPartial);
}
return matches;
@@ -1078,6 +1083,12 @@ function compilePath(path, caseSensitive, end) {
@@ -1115,6 +1125,12 @@ function compilePath(path, caseSensitive, end) {
if (end === void 0) {
end = true;
}
@@ -54,7 +43,7 @@ index e634d45fee327b5f9ef63eee8dc1da39b07c79d4..ce1cf6c599e7efa82d51b63d26c0c92e
warning(path === "*" || !path.endsWith("*") || path.endsWith("/*"), "Route path \"" + path + "\" will be treated as if it were " + ("\"" + path.replace(/\*$/, "/*") + "\" because the `*` character must ") + "always follow a `/` in the pattern. To get rid of this warning, " + ("please change the route path to \"" + path.replace(/\*$/, "/*") + "\"."));
let params = [];
let regexpSource = "^" + path.replace(/\/*\*?$/, "") // Ignore trailing / and /*, we'll handle it below
@@ -1110,7 +1121,11 @@ function compilePath(path, caseSensitive, end) {
@@ -1147,7 +1163,11 @@ function compilePath(path, caseSensitive, end) {
regexpSource += "(?:(?=\\/|$))";
} else ;
let matcher = new RegExp(regexpSource, caseSensitive ? undefined : "i");
+194 -574
View File
File diff suppressed because it is too large Load Diff