-
Notifications
You must be signed in to change notification settings - Fork 27.2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Update routeKeys to handle non-word characters #12801
Conversation
Stats from current PRDefault Server Mode (Increase detected
|
zeit/next.js canary | ijjk/next.js update/route-keys | Change | |
---|---|---|---|
buildDuration | 11.3s | 11.7s | |
nodeModulesSize | 58.7 MB | 58.7 MB |
Page Load Tests Overall increase ✓
zeit/next.js canary | ijjk/next.js update/route-keys | Change | |
---|---|---|---|
/ failed reqs | 0 | 0 | ✓ |
/ total time (seconds) | 1.912 | 1.861 | -0.05 |
/ avg req/sec | 1307.83 | 1343.69 | |
/error-in-render failed reqs | 0 | 0 | ✓ |
/error-in-render total time (seconds) | 1.102 | 1.062 | -0.04 |
/error-in-render avg req/sec | 2269.3 | 2354.48 |
Client Bundles (main, webpack, commons)
zeit/next.js canary | ijjk/next.js update/route-keys | Change | |
---|---|---|---|
main-HASH.js gzip | 6.68 kB | 6.68 kB | ✓ |
webpack-HASH.js gzip | 746 B | 746 B | ✓ |
de003c3a9d30..e49d.js gzip | 10.4 kB | 10.4 kB | ✓ |
framework.HASH.js gzip | 39.1 kB | 39.1 kB | ✓ |
Overall change | 57 kB | 57 kB | ✓ |
Client Bundles (main, webpack, commons) Modern
zeit/next.js canary | ijjk/next.js update/route-keys | Change | |
---|---|---|---|
main-HASH.module.js gzip | 5.72 kB | 5.72 kB | ✓ |
webpack-HASH..dule.js gzip | 746 B | 746 B | ✓ |
de003c3a9d30..dule.js gzip | 6.85 kB | 6.85 kB | ✓ |
framework.HA..dule.js gzip | 39.1 kB | 39.1 kB | ✓ |
Overall change | 52.5 kB | 52.5 kB | ✓ |
Legacy Client Bundles (polyfills)
zeit/next.js canary | ijjk/next.js update/route-keys | Change | |
---|---|---|---|
polyfills-HASH.js gzip | 26.3 kB | 26.3 kB | ✓ |
Overall change | 26.3 kB | 26.3 kB | ✓ |
Client Pages
zeit/next.js canary | ijjk/next.js update/route-keys | Change | |
---|---|---|---|
_app.js gzip | 1.26 kB | 1.26 kB | ✓ |
_error.js gzip | 3.29 kB | 3.29 kB | ✓ |
hooks.js gzip | 880 B | 880 B | ✓ |
index.js gzip | 222 B | 222 B | ✓ |
link.js gzip | 2.06 kB | 2.06 kB | ✓ |
routerDirect.js gzip | 280 B | 280 B | ✓ |
withRouter.js gzip | 278 B | 278 B | ✓ |
Overall change | 8.26 kB | 8.26 kB | ✓ |
Client Pages Modern
zeit/next.js canary | ijjk/next.js update/route-keys | Change | |
---|---|---|---|
_app.module.js gzip | 599 B | 599 B | ✓ |
_error.module.js gzip | 2.09 kB | 2.09 kB | ✓ |
hooks.module.js gzip | 383 B | 383 B | ✓ |
index.module.js gzip | 223 B | 223 B | ✓ |
link.module.js gzip | 1.52 kB | 1.52 kB | ✓ |
routerDirect..dule.js gzip | 279 B | 279 B | ✓ |
withRouter.m..dule.js gzip | 278 B | 278 B | ✓ |
Overall change | 5.37 kB | 5.37 kB | ✓ |
Client Build Manifests
zeit/next.js canary | ijjk/next.js update/route-keys | Change | |
---|---|---|---|
_buildManifest.js gzip | 61 B | 61 B | ✓ |
_buildManife..dule.js gzip | 61 B | 61 B | ✓ |
Overall change | 122 B | 122 B | ✓ |
Rendered Page Sizes Overall increase ⚠️
zeit/next.js canary | ijjk/next.js update/route-keys | Change | |
---|---|---|---|
index.html gzip | 927 B | 928 B | |
link.html gzip | 937 B | 938 B | |
withRouter.html gzip | 925 B | 926 B | |
Overall change | 2.79 kB | 2.79 kB |
Diffs
Diff for de003c3a9d30..bc265fb82.js
@@ -342,7 +342,8 @@ function getRouteRegex(normalizedRoute) {
};
return isCatchAll ? '/(.+?)' : '/([^/]+?)';
});
- var namedParameterizedRoute; // dead code eliminate for browser since it's only needed
+ var namedParameterizedRoute;
+ var routeKeys = {}; // dead code eliminate for browser since it's only needed
// while generating routes-manifest
if (false) {}
@@ -351,6 +352,7 @@ function getRouteRegex(normalizedRoute) {
re: new RegExp('^' + parameterizedRoute + '(?:/)?$', 'i'),
groups: groups
}, namedParameterizedRoute ? {
+ routeKeys: routeKeys,
namedRegex: "^".concat(namedParameterizedRoute, "(?:/)?$")
} : {});
}
Diff for de003c3a9d30..48.module.js
@@ -267,7 +267,8 @@ function getRouteRegex(normalizedRoute) {
};
return isCatchAll ? '/(.+?)' : '/([^/]+?)';
});
- var namedParameterizedRoute; // dead code eliminate for browser since it's only needed
+ var namedParameterizedRoute;
+ var routeKeys = {}; // dead code eliminate for browser since it's only needed
// while generating routes-manifest
if (false) {}
@@ -276,6 +277,7 @@ function getRouteRegex(normalizedRoute) {
re: new RegExp('^' + parameterizedRoute + '(?:/)?$', 'i'),
groups
}, namedParameterizedRoute ? {
+ routeKeys,
namedRegex: "^".concat(namedParameterizedRoute, "(?:/)?$")
} : {});
}
Diff for index.html
@@ -1 +1 @@
-<!DOCTYPE html><html><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><meta name="next-head-count" content="2"/><link rel="preload" href="/_next/static/BUILD_ID/pages/_app.module.js" as="script" crossorigin="anonymous"/><link rel="preload" href="/_next/static/BUILD_ID/pages/index.module.js" as="script" crossorigin="anonymous"/><link rel="preload" href="/_next/static/runtime/webpack-d629b83a65f3e33fa99e.module.js" as="script" crossorigin="anonymous"/><link rel="preload" href="/_next/static/chunks/framework.5bb7f30f859f5f31359f.module.js" as="script" crossorigin="anonymous"/><link rel="preload" href="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.9c10f81c48c2c37b9948.module.js" as="script" crossorigin="anonymous"/><link rel="preload" href="/_next/static/runtime/main-bd1bb58e8c7ab90459e2.module.js" as="script" crossorigin="anonymous"/></head><body><div id="__next">Hello world 👋</div><script id="__NEXT_DATA__" type="application/json" crossorigin="anonymous">{"props":{"pageProps":{}},"page":"/","query":{},"buildId":"BUILD_ID","isFallback":false,"gip":true}</script><script crossorigin="anonymous" nomodule="">!function(){var e=document,t=e.createElement("script");if(!("noModule"in t)&&"onbeforeload"in t){var n=!1;e.addEventListener("beforeload",function(e){if(e.target===t)n=!0;else if(!e.target.hasAttribute("nomodule")||!n)return;e.preventDefault()},!0),t.type="module",t.src=".",e.head.appendChild(t),t.remove()}}();</script><script crossorigin="anonymous" nomodule="" src="/_next/static/runtime/polyfills-1ec398ef836868c20f25.js"></script><script async="" data-next-page="/_app" src="/_next/static/BUILD_ID/pages/_app.js" crossorigin="anonymous" nomodule=""></script><script async="" data-next-page="/_app" src="/_next/static/BUILD_ID/pages/_app.module.js" crossorigin="anonymous" type="module"></script><script async="" data-next-page="/" src="/_next/static/BUILD_ID/pages/index.js" crossorigin="anonymous" nomodule=""></script><script async="" data-next-page="/" src="/_next/static/BUILD_ID/pages/index.module.js" crossorigin="anonymous" type="module"></script><script src="/_next/static/runtime/webpack-4d739ac7b0d8f888ab18.js" async="" crossorigin="anonymous" nomodule=""></script><script src="/_next/static/runtime/webpack-d629b83a65f3e33fa99e.module.js" async="" crossorigin="anonymous" type="module"></script><script src="/_next/static/chunks/framework.5bb7f30f859f5f31359f.js" async="" crossorigin="anonymous" nomodule=""></script><script src="/_next/static/chunks/framework.5bb7f30f859f5f31359f.module.js" async="" crossorigin="anonymous" type="module"></script><script src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.8d8c4bdeaf8bc265fb82.js" async="" crossorigin="anonymous" nomodule=""></script><script src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.9c10f81c48c2c37b9948.module.js" async="" crossorigin="anonymous" type="module"></script><script src="/_next/static/runtime/main-b12fb03ff40b806e6e70.js" async="" crossorigin="anonymous" nomodule=""></script><script src="/_next/static/runtime/main-bd1bb58e8c7ab90459e2.module.js" async="" crossorigin="anonymous" type="module"></script><script src="/_next/static/BUILD_ID/_buildManifest.js" async="" crossorigin="anonymous" nomodule=""></script><script src="/_next/static/BUILD_ID/_buildManifest.module.js" async="" crossorigin="anonymous" type="module"></script><script src="/_next/static/BUILD_ID/_ssgManifest.js" async="" crossorigin="anonymous" nomodule=""></script><script src="/_next/static/BUILD_ID/_ssgManifest.module.js" async="" crossorigin="anonymous" type="module"></script></body></html>
\ No newline at end of file
+<!DOCTYPE html><html><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><meta name="next-head-count" content="2"/><link rel="preload" href="/_next/static/BUILD_ID/pages/_app.module.js" as="script" crossorigin="anonymous"/><link rel="preload" href="/_next/static/BUILD_ID/pages/index.module.js" as="script" crossorigin="anonymous"/><link rel="preload" href="/_next/static/runtime/webpack-d629b83a65f3e33fa99e.module.js" as="script" crossorigin="anonymous"/><link rel="preload" href="/_next/static/chunks/framework.5bb7f30f859f5f31359f.module.js" as="script" crossorigin="anonymous"/><link rel="preload" href="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.517046f312d2de71b512.module.js" as="script" crossorigin="anonymous"/><link rel="preload" href="/_next/static/runtime/main-bd1bb58e8c7ab90459e2.module.js" as="script" crossorigin="anonymous"/></head><body><div id="__next">Hello world 👋</div><script id="__NEXT_DATA__" type="application/json" crossorigin="anonymous">{"props":{"pageProps":{}},"page":"/","query":{},"buildId":"BUILD_ID","isFallback":false,"gip":true}</script><script crossorigin="anonymous" nomodule="">!function(){var e=document,t=e.createElement("script");if(!("noModule"in t)&&"onbeforeload"in t){var n=!1;e.addEventListener("beforeload",function(e){if(e.target===t)n=!0;else if(!e.target.hasAttribute("nomodule")||!n)return;e.preventDefault()},!0),t.type="module",t.src=".",e.head.appendChild(t),t.remove()}}();</script><script crossorigin="anonymous" nomodule="" src="/_next/static/runtime/polyfills-1ec398ef836868c20f25.js"></script><script async="" data-next-page="/_app" src="/_next/static/BUILD_ID/pages/_app.js" crossorigin="anonymous" nomodule=""></script><script async="" data-next-page="/_app" src="/_next/static/BUILD_ID/pages/_app.module.js" crossorigin="anonymous" type="module"></script><script async="" data-next-page="/" src="/_next/static/BUILD_ID/pages/index.js" crossorigin="anonymous" nomodule=""></script><script async="" data-next-page="/" src="/_next/static/BUILD_ID/pages/index.module.js" crossorigin="anonymous" type="module"></script><script src="/_next/static/runtime/webpack-4d739ac7b0d8f888ab18.js" async="" crossorigin="anonymous" nomodule=""></script><script src="/_next/static/runtime/webpack-d629b83a65f3e33fa99e.module.js" async="" crossorigin="anonymous" type="module"></script><script src="/_next/static/chunks/framework.5bb7f30f859f5f31359f.js" async="" crossorigin="anonymous" nomodule=""></script><script src="/_next/static/chunks/framework.5bb7f30f859f5f31359f.module.js" async="" crossorigin="anonymous" type="module"></script><script src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.9656a73e97d88143114f.js" async="" crossorigin="anonymous" nomodule=""></script><script src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.517046f312d2de71b512.module.js" async="" crossorigin="anonymous" type="module"></script><script src="/_next/static/runtime/main-b12fb03ff40b806e6e70.js" async="" crossorigin="anonymous" nomodule=""></script><script src="/_next/static/runtime/main-bd1bb58e8c7ab90459e2.module.js" async="" crossorigin="anonymous" type="module"></script><script src="/_next/static/BUILD_ID/_buildManifest.js" async="" crossorigin="anonymous" nomodule=""></script><script src="/_next/static/BUILD_ID/_buildManifest.module.js" async="" crossorigin="anonymous" type="module"></script><script src="/_next/static/BUILD_ID/_ssgManifest.js" async="" crossorigin="anonymous" nomodule=""></script><script src="/_next/static/BUILD_ID/_ssgManifest.module.js" async="" crossorigin="anonymous" type="module"></script></body></html>
\ No newline at end of file
Diff for link.html
@@ -1 +1 @@
-<!DOCTYPE html><html><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><meta name="next-head-count" content="2"/><link rel="preload" href="/_next/static/BUILD_ID/pages/_app.module.js" as="script" crossorigin="anonymous"/><link rel="preload" href="/_next/static/BUILD_ID/pages/link.module.js" as="script" crossorigin="anonymous"/><link rel="preload" href="/_next/static/runtime/webpack-d629b83a65f3e33fa99e.module.js" as="script" crossorigin="anonymous"/><link rel="preload" href="/_next/static/chunks/framework.5bb7f30f859f5f31359f.module.js" as="script" crossorigin="anonymous"/><link rel="preload" href="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.9c10f81c48c2c37b9948.module.js" as="script" crossorigin="anonymous"/><link rel="preload" href="/_next/static/runtime/main-bd1bb58e8c7ab90459e2.module.js" as="script" crossorigin="anonymous"/></head><body><div id="__next"><div><h3>A Link page!</h3><a href="/">Go to /</a></div></div><script id="__NEXT_DATA__" type="application/json" crossorigin="anonymous">{"props":{"pageProps":{}},"page":"/link","query":{},"buildId":"BUILD_ID","isFallback":false,"gip":true}</script><script crossorigin="anonymous" nomodule="">!function(){var e=document,t=e.createElement("script");if(!("noModule"in t)&&"onbeforeload"in t){var n=!1;e.addEventListener("beforeload",function(e){if(e.target===t)n=!0;else if(!e.target.hasAttribute("nomodule")||!n)return;e.preventDefault()},!0),t.type="module",t.src=".",e.head.appendChild(t),t.remove()}}();</script><script crossorigin="anonymous" nomodule="" src="/_next/static/runtime/polyfills-1ec398ef836868c20f25.js"></script><script async="" data-next-page="/_app" src="/_next/static/BUILD_ID/pages/_app.js" crossorigin="anonymous" nomodule=""></script><script async="" data-next-page="/_app" src="/_next/static/BUILD_ID/pages/_app.module.js" crossorigin="anonymous" type="module"></script><script async="" data-next-page="/link" src="/_next/static/BUILD_ID/pages/link.js" crossorigin="anonymous" nomodule=""></script><script async="" data-next-page="/link" src="/_next/static/BUILD_ID/pages/link.module.js" crossorigin="anonymous" type="module"></script><script src="/_next/static/runtime/webpack-4d739ac7b0d8f888ab18.js" async="" crossorigin="anonymous" nomodule=""></script><script src="/_next/static/runtime/webpack-d629b83a65f3e33fa99e.module.js" async="" crossorigin="anonymous" type="module"></script><script src="/_next/static/chunks/framework.5bb7f30f859f5f31359f.js" async="" crossorigin="anonymous" nomodule=""></script><script src="/_next/static/chunks/framework.5bb7f30f859f5f31359f.module.js" async="" crossorigin="anonymous" type="module"></script><script src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.8d8c4bdeaf8bc265fb82.js" async="" crossorigin="anonymous" nomodule=""></script><script src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.9c10f81c48c2c37b9948.module.js" async="" crossorigin="anonymous" type="module"></script><script src="/_next/static/runtime/main-b12fb03ff40b806e6e70.js" async="" crossorigin="anonymous" nomodule=""></script><script src="/_next/static/runtime/main-bd1bb58e8c7ab90459e2.module.js" async="" crossorigin="anonymous" type="module"></script><script src="/_next/static/BUILD_ID/_buildManifest.js" async="" crossorigin="anonymous" nomodule=""></script><script src="/_next/static/BUILD_ID/_buildManifest.module.js" async="" crossorigin="anonymous" type="module"></script><script src="/_next/static/BUILD_ID/_ssgManifest.js" async="" crossorigin="anonymous" nomodule=""></script><script src="/_next/static/BUILD_ID/_ssgManifest.module.js" async="" crossorigin="anonymous" type="module"></script></body></html>
\ No newline at end of file
+<!DOCTYPE html><html><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><meta name="next-head-count" content="2"/><link rel="preload" href="/_next/static/BUILD_ID/pages/_app.module.js" as="script" crossorigin="anonymous"/><link rel="preload" href="/_next/static/BUILD_ID/pages/link.module.js" as="script" crossorigin="anonymous"/><link rel="preload" href="/_next/static/runtime/webpack-d629b83a65f3e33fa99e.module.js" as="script" crossorigin="anonymous"/><link rel="preload" href="/_next/static/chunks/framework.5bb7f30f859f5f31359f.module.js" as="script" crossorigin="anonymous"/><link rel="preload" href="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.517046f312d2de71b512.module.js" as="script" crossorigin="anonymous"/><link rel="preload" href="/_next/static/runtime/main-bd1bb58e8c7ab90459e2.module.js" as="script" crossorigin="anonymous"/></head><body><div id="__next"><div><h3>A Link page!</h3><a href="/">Go to /</a></div></div><script id="__NEXT_DATA__" type="application/json" crossorigin="anonymous">{"props":{"pageProps":{}},"page":"/link","query":{},"buildId":"BUILD_ID","isFallback":false,"gip":true}</script><script crossorigin="anonymous" nomodule="">!function(){var e=document,t=e.createElement("script");if(!("noModule"in t)&&"onbeforeload"in t){var n=!1;e.addEventListener("beforeload",function(e){if(e.target===t)n=!0;else if(!e.target.hasAttribute("nomodule")||!n)return;e.preventDefault()},!0),t.type="module",t.src=".",e.head.appendChild(t),t.remove()}}();</script><script crossorigin="anonymous" nomodule="" src="/_next/static/runtime/polyfills-1ec398ef836868c20f25.js"></script><script async="" data-next-page="/_app" src="/_next/static/BUILD_ID/pages/_app.js" crossorigin="anonymous" nomodule=""></script><script async="" data-next-page="/_app" src="/_next/static/BUILD_ID/pages/_app.module.js" crossorigin="anonymous" type="module"></script><script async="" data-next-page="/link" src="/_next/static/BUILD_ID/pages/link.js" crossorigin="anonymous" nomodule=""></script><script async="" data-next-page="/link" src="/_next/static/BUILD_ID/pages/link.module.js" crossorigin="anonymous" type="module"></script><script src="/_next/static/runtime/webpack-4d739ac7b0d8f888ab18.js" async="" crossorigin="anonymous" nomodule=""></script><script src="/_next/static/runtime/webpack-d629b83a65f3e33fa99e.module.js" async="" crossorigin="anonymous" type="module"></script><script src="/_next/static/chunks/framework.5bb7f30f859f5f31359f.js" async="" crossorigin="anonymous" nomodule=""></script><script src="/_next/static/chunks/framework.5bb7f30f859f5f31359f.module.js" async="" crossorigin="anonymous" type="module"></script><script src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.9656a73e97d88143114f.js" async="" crossorigin="anonymous" nomodule=""></script><script src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.517046f312d2de71b512.module.js" async="" crossorigin="anonymous" type="module"></script><script src="/_next/static/runtime/main-b12fb03ff40b806e6e70.js" async="" crossorigin="anonymous" nomodule=""></script><script src="/_next/static/runtime/main-bd1bb58e8c7ab90459e2.module.js" async="" crossorigin="anonymous" type="module"></script><script src="/_next/static/BUILD_ID/_buildManifest.js" async="" crossorigin="anonymous" nomodule=""></script><script src="/_next/static/BUILD_ID/_buildManifest.module.js" async="" crossorigin="anonymous" type="module"></script><script src="/_next/static/BUILD_ID/_ssgManifest.js" async="" crossorigin="anonymous" nomodule=""></script><script src="/_next/static/BUILD_ID/_ssgManifest.module.js" async="" crossorigin="anonymous" type="module"></script></body></html>
\ No newline at end of file
Diff for withRouter.html
@@ -1 +1 @@
-<!DOCTYPE html><html><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><meta name="next-head-count" content="2"/><link rel="preload" href="/_next/static/BUILD_ID/pages/_app.module.js" as="script" crossorigin="anonymous"/><link rel="preload" href="/_next/static/BUILD_ID/pages/withRouter.module.js" as="script" crossorigin="anonymous"/><link rel="preload" href="/_next/static/runtime/webpack-d629b83a65f3e33fa99e.module.js" as="script" crossorigin="anonymous"/><link rel="preload" href="/_next/static/chunks/framework.5bb7f30f859f5f31359f.module.js" as="script" crossorigin="anonymous"/><link rel="preload" href="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.9c10f81c48c2c37b9948.module.js" as="script" crossorigin="anonymous"/><link rel="preload" href="/_next/static/runtime/main-bd1bb58e8c7ab90459e2.module.js" as="script" crossorigin="anonymous"/></head><body><div id="__next"><div>I use withRouter</div></div><script id="__NEXT_DATA__" type="application/json" crossorigin="anonymous">{"props":{"pageProps":{}},"page":"/withRouter","query":{},"buildId":"BUILD_ID","isFallback":false,"gip":true}</script><script crossorigin="anonymous" nomodule="">!function(){var e=document,t=e.createElement("script");if(!("noModule"in t)&&"onbeforeload"in t){var n=!1;e.addEventListener("beforeload",function(e){if(e.target===t)n=!0;else if(!e.target.hasAttribute("nomodule")||!n)return;e.preventDefault()},!0),t.type="module",t.src=".",e.head.appendChild(t),t.remove()}}();</script><script crossorigin="anonymous" nomodule="" src="/_next/static/runtime/polyfills-1ec398ef836868c20f25.js"></script><script async="" data-next-page="/_app" src="/_next/static/BUILD_ID/pages/_app.js" crossorigin="anonymous" nomodule=""></script><script async="" data-next-page="/_app" src="/_next/static/BUILD_ID/pages/_app.module.js" crossorigin="anonymous" type="module"></script><script async="" data-next-page="/withRouter" src="/_next/static/BUILD_ID/pages/withRouter.js" crossorigin="anonymous" nomodule=""></script><script async="" data-next-page="/withRouter" src="/_next/static/BUILD_ID/pages/withRouter.module.js" crossorigin="anonymous" type="module"></script><script src="/_next/static/runtime/webpack-4d739ac7b0d8f888ab18.js" async="" crossorigin="anonymous" nomodule=""></script><script src="/_next/static/runtime/webpack-d629b83a65f3e33fa99e.module.js" async="" crossorigin="anonymous" type="module"></script><script src="/_next/static/chunks/framework.5bb7f30f859f5f31359f.js" async="" crossorigin="anonymous" nomodule=""></script><script src="/_next/static/chunks/framework.5bb7f30f859f5f31359f.module.js" async="" crossorigin="anonymous" type="module"></script><script src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.8d8c4bdeaf8bc265fb82.js" async="" crossorigin="anonymous" nomodule=""></script><script src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.9c10f81c48c2c37b9948.module.js" async="" crossorigin="anonymous" type="module"></script><script src="/_next/static/runtime/main-b12fb03ff40b806e6e70.js" async="" crossorigin="anonymous" nomodule=""></script><script src="/_next/static/runtime/main-bd1bb58e8c7ab90459e2.module.js" async="" crossorigin="anonymous" type="module"></script><script src="/_next/static/BUILD_ID/_buildManifest.js" async="" crossorigin="anonymous" nomodule=""></script><script src="/_next/static/BUILD_ID/_buildManifest.module.js" async="" crossorigin="anonymous" type="module"></script><script src="/_next/static/BUILD_ID/_ssgManifest.js" async="" crossorigin="anonymous" nomodule=""></script><script src="/_next/static/BUILD_ID/_ssgManifest.module.js" async="" crossorigin="anonymous" type="module"></script></body></html>
\ No newline at end of file
+<!DOCTYPE html><html><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><meta name="next-head-count" content="2"/><link rel="preload" href="/_next/static/BUILD_ID/pages/_app.module.js" as="script" crossorigin="anonymous"/><link rel="preload" href="/_next/static/BUILD_ID/pages/withRouter.module.js" as="script" crossorigin="anonymous"/><link rel="preload" href="/_next/static/runtime/webpack-d629b83a65f3e33fa99e.module.js" as="script" crossorigin="anonymous"/><link rel="preload" href="/_next/static/chunks/framework.5bb7f30f859f5f31359f.module.js" as="script" crossorigin="anonymous"/><link rel="preload" href="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.517046f312d2de71b512.module.js" as="script" crossorigin="anonymous"/><link rel="preload" href="/_next/static/runtime/main-bd1bb58e8c7ab90459e2.module.js" as="script" crossorigin="anonymous"/></head><body><div id="__next"><div>I use withRouter</div></div><script id="__NEXT_DATA__" type="application/json" crossorigin="anonymous">{"props":{"pageProps":{}},"page":"/withRouter","query":{},"buildId":"BUILD_ID","isFallback":false,"gip":true}</script><script crossorigin="anonymous" nomodule="">!function(){var e=document,t=e.createElement("script");if(!("noModule"in t)&&"onbeforeload"in t){var n=!1;e.addEventListener("beforeload",function(e){if(e.target===t)n=!0;else if(!e.target.hasAttribute("nomodule")||!n)return;e.preventDefault()},!0),t.type="module",t.src=".",e.head.appendChild(t),t.remove()}}();</script><script crossorigin="anonymous" nomodule="" src="/_next/static/runtime/polyfills-1ec398ef836868c20f25.js"></script><script async="" data-next-page="/_app" src="/_next/static/BUILD_ID/pages/_app.js" crossorigin="anonymous" nomodule=""></script><script async="" data-next-page="/_app" src="/_next/static/BUILD_ID/pages/_app.module.js" crossorigin="anonymous" type="module"></script><script async="" data-next-page="/withRouter" src="/_next/static/BUILD_ID/pages/withRouter.js" crossorigin="anonymous" nomodule=""></script><script async="" data-next-page="/withRouter" src="/_next/static/BUILD_ID/pages/withRouter.module.js" crossorigin="anonymous" type="module"></script><script src="/_next/static/runtime/webpack-4d739ac7b0d8f888ab18.js" async="" crossorigin="anonymous" nomodule=""></script><script src="/_next/static/runtime/webpack-d629b83a65f3e33fa99e.module.js" async="" crossorigin="anonymous" type="module"></script><script src="/_next/static/chunks/framework.5bb7f30f859f5f31359f.js" async="" crossorigin="anonymous" nomodule=""></script><script src="/_next/static/chunks/framework.5bb7f30f859f5f31359f.module.js" async="" crossorigin="anonymous" type="module"></script><script src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.9656a73e97d88143114f.js" async="" crossorigin="anonymous" nomodule=""></script><script src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.517046f312d2de71b512.module.js" async="" crossorigin="anonymous" type="module"></script><script src="/_next/static/runtime/main-b12fb03ff40b806e6e70.js" async="" crossorigin="anonymous" nomodule=""></script><script src="/_next/static/runtime/main-bd1bb58e8c7ab90459e2.module.js" async="" crossorigin="anonymous" type="module"></script><script src="/_next/static/BUILD_ID/_buildManifest.js" async="" crossorigin="anonymous" nomodule=""></script><script src="/_next/static/BUILD_ID/_buildManifest.module.js" async="" crossorigin="anonymous" type="module"></script><script src="/_next/static/BUILD_ID/_ssgManifest.js" async="" crossorigin="anonymous" nomodule=""></script><script src="/_next/static/BUILD_ID/_ssgManifest.module.js" async="" crossorigin="anonymous" type="module"></script></body></html>
\ No newline at end of file
Serverless Mode (Increase detected ⚠️ )
General Overall increase ⚠️
zeit/next.js canary | ijjk/next.js update/route-keys | Change | |
---|---|---|---|
buildDuration | 12.4s | 12.6s | |
nodeModulesSize | 58.7 MB | 58.7 MB |
Client Bundles (main, webpack, commons)
zeit/next.js canary | ijjk/next.js update/route-keys | Change | |
---|---|---|---|
main-HASH.js gzip | 6.68 kB | 6.68 kB | ✓ |
webpack-HASH.js gzip | 746 B | 746 B | ✓ |
de003c3a9d30..e49d.js gzip | 10.4 kB | N/A | N/A |
framework.HASH.js gzip | 39.1 kB | 39.1 kB | ✓ |
de003c3a9d30..10ab.js gzip | N/A | 10.4 kB | N/A |
Overall change | 57 kB | 57 kB | ✓ |
Client Bundles (main, webpack, commons) Modern
zeit/next.js canary | ijjk/next.js update/route-keys | Change | |
---|---|---|---|
main-HASH.module.js gzip | 5.72 kB | 5.72 kB | ✓ |
webpack-HASH..dule.js gzip | 746 B | 746 B | ✓ |
de003c3a9d30..dule.js gzip | 6.85 kB | N/A | N/A |
framework.HA..dule.js gzip | 39.1 kB | 39.1 kB | ✓ |
de003c3a9d30..dule.js gzip | N/A | 6.85 kB | N/A |
Overall change | 52.5 kB | 52.5 kB | ✓ |
Legacy Client Bundles (polyfills)
zeit/next.js canary | ijjk/next.js update/route-keys | Change | |
---|---|---|---|
polyfills-HASH.js gzip | 26.3 kB | 26.3 kB | ✓ |
Overall change | 26.3 kB | 26.3 kB | ✓ |
Client Pages
zeit/next.js canary | ijjk/next.js update/route-keys | Change | |
---|---|---|---|
_app.js gzip | 1.26 kB | 1.26 kB | ✓ |
_error.js gzip | 3.29 kB | 3.29 kB | ✓ |
hooks.js gzip | 880 B | 880 B | ✓ |
index.js gzip | 222 B | 222 B | ✓ |
link.js gzip | 2.06 kB | 2.06 kB | ✓ |
routerDirect.js gzip | 280 B | 280 B | ✓ |
withRouter.js gzip | 278 B | 278 B | ✓ |
Overall change | 8.26 kB | 8.26 kB | ✓ |
Client Pages Modern
zeit/next.js canary | ijjk/next.js update/route-keys | Change | |
---|---|---|---|
_app.module.js gzip | 599 B | 599 B | ✓ |
_error.module.js gzip | 2.09 kB | 2.09 kB | ✓ |
hooks.module.js gzip | 383 B | 383 B | ✓ |
index.module.js gzip | 223 B | 223 B | ✓ |
link.module.js gzip | 1.52 kB | 1.52 kB | ✓ |
routerDirect..dule.js gzip | 279 B | 279 B | ✓ |
withRouter.m..dule.js gzip | 278 B | 278 B | ✓ |
Overall change | 5.37 kB | 5.37 kB | ✓ |
Client Build Manifests
zeit/next.js canary | ijjk/next.js update/route-keys | Change | |
---|---|---|---|
_buildManifest.js gzip | 61 B | 61 B | ✓ |
_buildManife..dule.js gzip | 61 B | 61 B | ✓ |
Overall change | 122 B | 122 B | ✓ |
Serverless bundles Overall increase ⚠️
zeit/next.js canary | ijjk/next.js update/route-keys | Change | |
---|---|---|---|
_error.js | 850 kB | 850 kB | ✓ |
404.html | 4.18 kB | 4.18 kB | ✓ |
hooks.html | 3.81 kB | 3.81 kB | ✓ |
index.js | 850 kB | 850 kB | ✓ |
link.js | 887 kB | 887 kB | |
routerDirect.js | 880 kB | 880 kB | |
withRouter.js | 880 kB | 880 kB | |
Overall change | 4.35 MB | 4.35 MB |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Do we need to increment the version on this manifest?
# Conflicts: # packages/next/build/index.ts # packages/next/next-server/lib/router/utils/route-regex.ts
@Timer we might need to increment the version just to be safe since there were a couple stable versions of the builder that are expecting the previous Versions of the builder expecting previous Canary builders Stable builders |
Stats from current PRDefault Server Mode (Increase detected
|
vercel/next.js canary | ijjk/next.js update/route-keys | Change | |
---|---|---|---|
buildDuration | 12.7s | 12.3s | -444ms |
nodeModulesSize | 65.2 MB | 65.2 MB |
Page Load Tests Overall decrease ⚠️
vercel/next.js canary | ijjk/next.js update/route-keys | Change | |
---|---|---|---|
/ failed reqs | 0 | 0 | ✓ |
/ total time (seconds) | 2.012 | 2.021 | |
/ avg req/sec | 1242.7 | 1237.11 | -5.59 |
/error-in-render failed reqs | 0 | 0 | ✓ |
/error-in-render total time (seconds) | 1.225 | 1.255 | |
/error-in-render avg req/sec | 2040.79 | 1991.56 | -49.23 |
Client Bundles (main, webpack, commons) Overall increase ⚠️
vercel/next.js canary | ijjk/next.js update/route-keys | Change | |
---|---|---|---|
main-HASH.js gzip | 6.51 kB | 6.51 kB | ✓ |
webpack-HASH.js gzip | 746 B | 746 B | ✓ |
de003c3a9d30..0538.js gzip | 10.5 kB | 10.7 kB | |
framework.HASH.js gzip | 39.1 kB | 39.1 kB | ✓ |
Overall change | 56.9 kB | 57.1 kB |
Client Bundles (main, webpack, commons) Modern Overall increase ⚠️
vercel/next.js canary | ijjk/next.js update/route-keys | Change | |
---|---|---|---|
main-HASH.module.js gzip | 5.6 kB | 5.6 kB | ✓ |
webpack-HASH..dule.js gzip | 746 B | 746 B | ✓ |
de003c3a9d30..dule.js gzip | 6.93 kB | 7.14 kB | |
framework.HA..dule.js gzip | 39.1 kB | 39.1 kB | ✓ |
Overall change | 52.4 kB | 52.6 kB |
Legacy Client Bundles (polyfills)
vercel/next.js canary | ijjk/next.js update/route-keys | Change | |
---|---|---|---|
polyfills-HASH.js gzip | 26.3 kB | 26.3 kB | ✓ |
Overall change | 26.3 kB | 26.3 kB | ✓ |
Client Pages
vercel/next.js canary | ijjk/next.js update/route-keys | Change | |
---|---|---|---|
routerDirect.js gzip | 279 B | 279 B | ✓ |
withRouter.js gzip | 278 B | 278 B | ✓ |
_error.js gzip | 3.37 kB | 3.37 kB | ✓ |
index.js gzip | 222 B | 222 B | ✓ |
link.js gzip | 2.05 kB | 2.05 kB | ✓ |
hooks.js gzip | 881 B | 881 B | ✓ |
_app.js gzip | 1.26 kB | 1.26 kB | ✓ |
Overall change | 8.34 kB | 8.34 kB | ✓ |
Client Pages Modern
vercel/next.js canary | ijjk/next.js update/route-keys | Change | |
---|---|---|---|
index.module.js gzip | 223 B | 223 B | ✓ |
routerDirect..dule.js gzip | 281 B | 281 B | ✓ |
withRouter.m..dule.js gzip | 278 B | 278 B | ✓ |
hooks.module.js gzip | 383 B | 383 B | ✓ |
_error.module.js gzip | 2.21 kB | 2.21 kB | ✓ |
link.module.js gzip | 1.52 kB | 1.52 kB | ✓ |
_app.module.js gzip | 604 B | 604 B | ✓ |
Overall change | 5.49 kB | 5.49 kB | ✓ |
Client Build Manifests
vercel/next.js canary | ijjk/next.js update/route-keys | Change | |
---|---|---|---|
_buildManifest.js gzip | 270 B | 270 B | ✓ |
_buildManife..dule.js gzip | 274 B | 274 B | ✓ |
Overall change | 544 B | 544 B | ✓ |
Rendered Page Sizes
vercel/next.js canary | ijjk/next.js update/route-keys | Change | |
---|---|---|---|
index.html gzip | 956 B | 956 B | ✓ |
link.html gzip | 963 B | 963 B | ✓ |
withRouter.html gzip | 949 B | 949 B | ✓ |
Overall change | 2.87 kB | 2.87 kB | ✓ |
Diffs
Diff for de003c3a9d30..8dcf890b6.js
@@ -513,6 +513,46 @@
/***/ YTqd: /***/ function(module, exports, __webpack_require__) {
"use strict";
+ var _defineProperty = __webpack_require__("lSNA");
+
+ function ownKeys(object, enumerableOnly) {
+ var keys = Object.keys(object);
+ if (Object.getOwnPropertySymbols) {
+ var symbols = Object.getOwnPropertySymbols(object);
+ if (enumerableOnly)
+ symbols = symbols.filter(function(sym) {
+ return Object.getOwnPropertyDescriptor(object, sym).enumerable;
+ });
+ keys.push.apply(keys, symbols);
+ }
+ return keys;
+ }
+
+ function _objectSpread(target) {
+ for (var i = 1; i < arguments.length; i++) {
+ var source = arguments[i] != null ? arguments[i] : {};
+ if (i % 2) {
+ ownKeys(Object(source), true).forEach(function(key) {
+ _defineProperty(target, key, source[key]);
+ });
+ } else if (Object.getOwnPropertyDescriptors) {
+ Object.defineProperties(
+ target,
+ Object.getOwnPropertyDescriptors(source)
+ );
+ } else {
+ ownKeys(Object(source)).forEach(function(key) {
+ Object.defineProperty(
+ target,
+ key,
+ Object.getOwnPropertyDescriptor(source, key)
+ );
+ });
+ }
+ }
+ return target;
+ }
+
exports.__esModule = true;
exports.getRouteRegex = getRouteRegex; // this isn't importing the escape-string-regex module
// to reduce bytes
@@ -558,19 +598,25 @@
: "/([^/]+?)";
}
);
- var namedParameterizedRoute; // dead code eliminate for browser since it's only needed
+ var namedParameterizedRoute;
+ var routeKeys = {}; // dead code eliminate for browser since it's only needed
// while generating routes-manifest
if (false) {
}
- return {
- re: new RegExp("^" + parameterizedRoute + "(?:/)?$", "i"),
- groups: groups,
- namedRegex: namedParameterizedRoute
- ? "^".concat(namedParameterizedRoute, "(?:/)?$")
- : undefined
- };
+ return _objectSpread(
+ {
+ re: new RegExp("^" + parameterizedRoute + "(?:/)?$", "i"),
+ groups: groups
+ },
+ namedParameterizedRoute
+ ? {
+ routeKeys: routeKeys,
+ namedRegex: "^".concat(namedParameterizedRoute, "(?:/)?$")
+ }
+ : {}
+ );
}
/***/
@@ -2005,6 +2051,27 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
/***/
},
+ /***/ lSNA: /***/ function(module, exports) {
+ function _defineProperty(obj, key, value) {
+ if (key in obj) {
+ Object.defineProperty(obj, key, {
+ value: value,
+ enumerable: true,
+ configurable: true,
+ writable: true
+ });
+ } else {
+ obj[key] = value;
+ }
+
+ return obj;
+ }
+
+ module.exports = _defineProperty;
+
+ /***/
+ },
+
/***/ ls82: /***/ function(module, exports, __webpack_require__) {
/**
* Copyright (c) 2014-present, Facebook, Inc.
Diff for de003c3a9d30..6c.module.js
@@ -435,6 +435,46 @@
/***/ YTqd: /***/ function(module, exports, __webpack_require__) {
"use strict";
+ var _defineProperty = __webpack_require__("lSNA");
+
+ function ownKeys(object, enumerableOnly) {
+ var keys = Object.keys(object);
+ if (Object.getOwnPropertySymbols) {
+ var symbols = Object.getOwnPropertySymbols(object);
+ if (enumerableOnly)
+ symbols = symbols.filter(function(sym) {
+ return Object.getOwnPropertyDescriptor(object, sym).enumerable;
+ });
+ keys.push.apply(keys, symbols);
+ }
+ return keys;
+ }
+
+ function _objectSpread(target) {
+ for (var i = 1; i < arguments.length; i++) {
+ var source = arguments[i] != null ? arguments[i] : {};
+ if (i % 2) {
+ ownKeys(Object(source), true).forEach(function(key) {
+ _defineProperty(target, key, source[key]);
+ });
+ } else if (Object.getOwnPropertyDescriptors) {
+ Object.defineProperties(
+ target,
+ Object.getOwnPropertyDescriptors(source)
+ );
+ } else {
+ ownKeys(Object(source)).forEach(function(key) {
+ Object.defineProperty(
+ target,
+ key,
+ Object.getOwnPropertyDescriptor(source, key)
+ );
+ });
+ }
+ }
+ return target;
+ }
+
exports.__esModule = true;
exports.getRouteRegex = getRouteRegex; // this isn't importing the escape-string-regex module
// to reduce bytes
@@ -480,19 +520,25 @@
: "/([^/]+?)";
}
);
- var namedParameterizedRoute; // dead code eliminate for browser since it's only needed
+ var namedParameterizedRoute;
+ var routeKeys = {}; // dead code eliminate for browser since it's only needed
// while generating routes-manifest
if (false) {
}
- return {
- re: new RegExp("^" + parameterizedRoute + "(?:/)?$", "i"),
- groups,
- namedRegex: namedParameterizedRoute
- ? "^".concat(namedParameterizedRoute, "(?:/)?$")
- : undefined
- };
+ return _objectSpread(
+ {
+ re: new RegExp("^" + parameterizedRoute + "(?:/)?$", "i"),
+ groups
+ },
+ namedParameterizedRoute
+ ? {
+ routeKeys,
+ namedRegex: "^".concat(namedParameterizedRoute, "(?:/)?$")
+ }
+ : {}
+ );
}
/***/
@@ -1653,6 +1699,27 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
/***/
},
+ /***/ lSNA: /***/ function(module, exports) {
+ function _defineProperty(obj, key, value) {
+ if (key in obj) {
+ Object.defineProperty(obj, key, {
+ value: value,
+ enumerable: true,
+ configurable: true,
+ writable: true
+ });
+ } else {
+ obj[key] = value;
+ }
+
+ return obj;
+ }
+
+ module.exports = _defineProperty;
+
+ /***/
+ },
+
/***/ nOHt: /***/ function(module, exports, __webpack_require__) {
"use strict";
Diff for index.html
@@ -24,7 +24,7 @@
/>
<link
rel="preload"
- href="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.f733a40f0fc0ecaa4b6c.module.js"
+ href="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.cb7100da0768a966ff2f.module.js"
as="script"
crossorigin="anonymous"
/>
@@ -117,13 +117,13 @@
type="module"
></script>
<script
- src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.0ea083186308dcf890b6.js"
+ src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.6b850e23a4ee998305aa.js"
async=""
crossorigin="anonymous"
nomodule=""
></script>
<script
- src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.f733a40f0fc0ecaa4b6c.module.js"
+ src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.cb7100da0768a966ff2f.module.js"
async=""
crossorigin="anonymous"
type="module"
Diff for link.html
@@ -24,7 +24,7 @@
/>
<link
rel="preload"
- href="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.f733a40f0fc0ecaa4b6c.module.js"
+ href="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.cb7100da0768a966ff2f.module.js"
as="script"
crossorigin="anonymous"
/>
@@ -122,13 +122,13 @@
type="module"
></script>
<script
- src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.0ea083186308dcf890b6.js"
+ src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.6b850e23a4ee998305aa.js"
async=""
crossorigin="anonymous"
nomodule=""
></script>
<script
- src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.f733a40f0fc0ecaa4b6c.module.js"
+ src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.cb7100da0768a966ff2f.module.js"
async=""
crossorigin="anonymous"
type="module"
Diff for withRouter.html
@@ -24,7 +24,7 @@
/>
<link
rel="preload"
- href="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.f733a40f0fc0ecaa4b6c.module.js"
+ href="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.cb7100da0768a966ff2f.module.js"
as="script"
crossorigin="anonymous"
/>
@@ -117,13 +117,13 @@
type="module"
></script>
<script
- src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.0ea083186308dcf890b6.js"
+ src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.6b850e23a4ee998305aa.js"
async=""
crossorigin="anonymous"
nomodule=""
></script>
<script
- src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.f733a40f0fc0ecaa4b6c.module.js"
+ src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.cb7100da0768a966ff2f.module.js"
async=""
crossorigin="anonymous"
type="module"
Serverless Mode (Increase detected ⚠️ )
General Overall increase ⚠️
vercel/next.js canary | ijjk/next.js update/route-keys | Change | |
---|---|---|---|
buildDuration | 13.1s | 13.4s | |
nodeModulesSize | 65.2 MB | 65.2 MB |
Client Bundles (main, webpack, commons) Overall increase ⚠️
vercel/next.js canary | ijjk/next.js update/route-keys | Change | |
---|---|---|---|
main-HASH.js gzip | 6.51 kB | 6.51 kB | ✓ |
webpack-HASH.js gzip | 746 B | 746 B | ✓ |
de003c3a9d30..0538.js gzip | 10.5 kB | N/A | N/A |
framework.HASH.js gzip | 39.1 kB | 39.1 kB | ✓ |
de003c3a9d30..fd27.js gzip | N/A | 10.7 kB | N/A |
Overall change | 56.9 kB | 57.1 kB |
Client Bundles (main, webpack, commons) Modern Overall increase ⚠️
vercel/next.js canary | ijjk/next.js update/route-keys | Change | |
---|---|---|---|
main-HASH.module.js gzip | 5.6 kB | 5.6 kB | ✓ |
webpack-HASH..dule.js gzip | 746 B | 746 B | ✓ |
de003c3a9d30..dule.js gzip | 6.93 kB | N/A | N/A |
framework.HA..dule.js gzip | 39.1 kB | 39.1 kB | ✓ |
de003c3a9d30..dule.js gzip | N/A | 7.14 kB | N/A |
Overall change | 52.4 kB | 52.6 kB |
Legacy Client Bundles (polyfills)
vercel/next.js canary | ijjk/next.js update/route-keys | Change | |
---|---|---|---|
polyfills-HASH.js gzip | 26.3 kB | 26.3 kB | ✓ |
Overall change | 26.3 kB | 26.3 kB | ✓ |
Client Pages
vercel/next.js canary | ijjk/next.js update/route-keys | Change | |
---|---|---|---|
routerDirect.js gzip | 279 B | 279 B | ✓ |
withRouter.js gzip | 278 B | 278 B | ✓ |
_error.js gzip | 3.37 kB | 3.37 kB | ✓ |
index.js gzip | 222 B | 222 B | ✓ |
link.js gzip | 2.05 kB | 2.05 kB | ✓ |
hooks.js gzip | 881 B | 881 B | ✓ |
_app.js gzip | 1.26 kB | 1.26 kB | ✓ |
Overall change | 8.34 kB | 8.34 kB | ✓ |
Client Pages Modern
vercel/next.js canary | ijjk/next.js update/route-keys | Change | |
---|---|---|---|
index.module.js gzip | 223 B | 223 B | ✓ |
routerDirect..dule.js gzip | 281 B | 281 B | ✓ |
withRouter.m..dule.js gzip | 278 B | 278 B | ✓ |
hooks.module.js gzip | 383 B | 383 B | ✓ |
_error.module.js gzip | 2.21 kB | 2.21 kB | ✓ |
link.module.js gzip | 1.52 kB | 1.52 kB | ✓ |
_app.module.js gzip | 604 B | 604 B | ✓ |
Overall change | 5.49 kB | 5.49 kB | ✓ |
Client Build Manifests
vercel/next.js canary | ijjk/next.js update/route-keys | Change | |
---|---|---|---|
_buildManifest.js gzip | 270 B | 270 B | ✓ |
_buildManife..dule.js gzip | 274 B | 274 B | ✓ |
Overall change | 544 B | 544 B | ✓ |
Serverless bundles Overall increase ⚠️
vercel/next.js canary | ijjk/next.js update/route-keys | Change | |
---|---|---|---|
_error.js | 875 kB | 875 kB | ✓ |
404.html | 4.17 kB | 4.17 kB | ✓ |
hooks.html | 3.79 kB | 3.79 kB | ✓ |
index.js | 875 kB | 875 kB | ✓ |
link.js | 913 kB | 914 kB | |
routerDirect.js | 905 kB | 907 kB | |
withRouter.js | 905 kB | 907 kB | |
Overall change | 4.48 MB | 4.48 MB |
This comment has been minimized.
This comment has been minimized.
Stats from current PRDefault Server Mode (Increase detected
|
vercel/next.js canary | ijjk/next.js update/route-keys | Change | |
---|---|---|---|
buildDuration | 13s | 12.7s | -333ms |
nodeModulesSize | 65.2 MB | 65.2 MB |
Page Load Tests Overall decrease ⚠️
vercel/next.js canary | ijjk/next.js update/route-keys | Change | |
---|---|---|---|
/ failed reqs | 0 | 0 | ✓ |
/ total time (seconds) | 2.246 | 2.244 | 0 |
/ avg req/sec | 1112.88 | 1114.21 | |
/error-in-render failed reqs | 0 | 0 | ✓ |
/error-in-render total time (seconds) | 1.443 | 1.449 | |
/error-in-render avg req/sec | 1732.15 | 1724.77 | -7.38 |
Client Bundles (main, webpack, commons) Overall increase ⚠️
vercel/next.js canary | ijjk/next.js update/route-keys | Change | |
---|---|---|---|
main-HASH.js gzip | 6.51 kB | 6.51 kB | ✓ |
webpack-HASH.js gzip | 746 B | 746 B | ✓ |
de003c3a9d30..0538.js gzip | 10.5 kB | 10.7 kB | |
framework.HASH.js gzip | 39.1 kB | 39.1 kB | ✓ |
Overall change | 56.9 kB | 57.1 kB |
Client Bundles (main, webpack, commons) Modern Overall increase ⚠️
vercel/next.js canary | ijjk/next.js update/route-keys | Change | |
---|---|---|---|
main-HASH.module.js gzip | 5.6 kB | 5.6 kB | ✓ |
webpack-HASH..dule.js gzip | 746 B | 746 B | ✓ |
de003c3a9d30..dule.js gzip | 6.93 kB | 7.14 kB | |
framework.HA..dule.js gzip | 39.1 kB | 39.1 kB | ✓ |
Overall change | 52.4 kB | 52.6 kB |
Legacy Client Bundles (polyfills)
vercel/next.js canary | ijjk/next.js update/route-keys | Change | |
---|---|---|---|
polyfills-HASH.js gzip | 26.3 kB | 26.3 kB | ✓ |
Overall change | 26.3 kB | 26.3 kB | ✓ |
Client Pages
vercel/next.js canary | ijjk/next.js update/route-keys | Change | |
---|---|---|---|
routerDirect.js gzip | 279 B | 279 B | ✓ |
withRouter.js gzip | 278 B | 278 B | ✓ |
_error.js gzip | 3.37 kB | 3.37 kB | ✓ |
index.js gzip | 222 B | 222 B | ✓ |
link.js gzip | 2.05 kB | 2.05 kB | ✓ |
hooks.js gzip | 881 B | 881 B | ✓ |
_app.js gzip | 1.26 kB | 1.26 kB | ✓ |
Overall change | 8.34 kB | 8.34 kB | ✓ |
Client Pages Modern
vercel/next.js canary | ijjk/next.js update/route-keys | Change | |
---|---|---|---|
index.module.js gzip | 223 B | 223 B | ✓ |
routerDirect..dule.js gzip | 281 B | 281 B | ✓ |
withRouter.m..dule.js gzip | 278 B | 278 B | ✓ |
hooks.module.js gzip | 383 B | 383 B | ✓ |
_error.module.js gzip | 2.21 kB | 2.21 kB | ✓ |
link.module.js gzip | 1.52 kB | 1.52 kB | ✓ |
_app.module.js gzip | 604 B | 604 B | ✓ |
Overall change | 5.49 kB | 5.49 kB | ✓ |
Client Build Manifests
vercel/next.js canary | ijjk/next.js update/route-keys | Change | |
---|---|---|---|
_buildManifest.js gzip | 270 B | 270 B | ✓ |
_buildManife..dule.js gzip | 274 B | 274 B | ✓ |
Overall change | 544 B | 544 B | ✓ |
Rendered Page Sizes
vercel/next.js canary | ijjk/next.js update/route-keys | Change | |
---|---|---|---|
index.html gzip | 956 B | 956 B | ✓ |
link.html gzip | 963 B | 963 B | ✓ |
withRouter.html gzip | 949 B | 949 B | ✓ |
Overall change | 2.87 kB | 2.87 kB | ✓ |
Diffs
Diff for de003c3a9d30..8dcf890b6.js
@@ -513,6 +513,46 @@
/***/ YTqd: /***/ function(module, exports, __webpack_require__) {
"use strict";
+ var _defineProperty = __webpack_require__("lSNA");
+
+ function ownKeys(object, enumerableOnly) {
+ var keys = Object.keys(object);
+ if (Object.getOwnPropertySymbols) {
+ var symbols = Object.getOwnPropertySymbols(object);
+ if (enumerableOnly)
+ symbols = symbols.filter(function(sym) {
+ return Object.getOwnPropertyDescriptor(object, sym).enumerable;
+ });
+ keys.push.apply(keys, symbols);
+ }
+ return keys;
+ }
+
+ function _objectSpread(target) {
+ for (var i = 1; i < arguments.length; i++) {
+ var source = arguments[i] != null ? arguments[i] : {};
+ if (i % 2) {
+ ownKeys(Object(source), true).forEach(function(key) {
+ _defineProperty(target, key, source[key]);
+ });
+ } else if (Object.getOwnPropertyDescriptors) {
+ Object.defineProperties(
+ target,
+ Object.getOwnPropertyDescriptors(source)
+ );
+ } else {
+ ownKeys(Object(source)).forEach(function(key) {
+ Object.defineProperty(
+ target,
+ key,
+ Object.getOwnPropertyDescriptor(source, key)
+ );
+ });
+ }
+ }
+ return target;
+ }
+
exports.__esModule = true;
exports.getRouteRegex = getRouteRegex; // this isn't importing the escape-string-regex module
// to reduce bytes
@@ -558,19 +598,25 @@
: "/([^/]+?)";
}
);
- var namedParameterizedRoute; // dead code eliminate for browser since it's only needed
+ var namedParameterizedRoute;
+ var routeKeys = {}; // dead code eliminate for browser since it's only needed
// while generating routes-manifest
if (false) {
}
- return {
- re: new RegExp("^" + parameterizedRoute + "(?:/)?$", "i"),
- groups: groups,
- namedRegex: namedParameterizedRoute
- ? "^".concat(namedParameterizedRoute, "(?:/)?$")
- : undefined
- };
+ return _objectSpread(
+ {
+ re: new RegExp("^" + parameterizedRoute + "(?:/)?$", "i"),
+ groups: groups
+ },
+ namedParameterizedRoute
+ ? {
+ routeKeys: routeKeys,
+ namedRegex: "^".concat(namedParameterizedRoute, "(?:/)?$")
+ }
+ : {}
+ );
}
/***/
@@ -2005,6 +2051,27 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
/***/
},
+ /***/ lSNA: /***/ function(module, exports) {
+ function _defineProperty(obj, key, value) {
+ if (key in obj) {
+ Object.defineProperty(obj, key, {
+ value: value,
+ enumerable: true,
+ configurable: true,
+ writable: true
+ });
+ } else {
+ obj[key] = value;
+ }
+
+ return obj;
+ }
+
+ module.exports = _defineProperty;
+
+ /***/
+ },
+
/***/ ls82: /***/ function(module, exports, __webpack_require__) {
/**
* Copyright (c) 2014-present, Facebook, Inc.
Diff for de003c3a9d30..6c.module.js
@@ -435,6 +435,46 @@
/***/ YTqd: /***/ function(module, exports, __webpack_require__) {
"use strict";
+ var _defineProperty = __webpack_require__("lSNA");
+
+ function ownKeys(object, enumerableOnly) {
+ var keys = Object.keys(object);
+ if (Object.getOwnPropertySymbols) {
+ var symbols = Object.getOwnPropertySymbols(object);
+ if (enumerableOnly)
+ symbols = symbols.filter(function(sym) {
+ return Object.getOwnPropertyDescriptor(object, sym).enumerable;
+ });
+ keys.push.apply(keys, symbols);
+ }
+ return keys;
+ }
+
+ function _objectSpread(target) {
+ for (var i = 1; i < arguments.length; i++) {
+ var source = arguments[i] != null ? arguments[i] : {};
+ if (i % 2) {
+ ownKeys(Object(source), true).forEach(function(key) {
+ _defineProperty(target, key, source[key]);
+ });
+ } else if (Object.getOwnPropertyDescriptors) {
+ Object.defineProperties(
+ target,
+ Object.getOwnPropertyDescriptors(source)
+ );
+ } else {
+ ownKeys(Object(source)).forEach(function(key) {
+ Object.defineProperty(
+ target,
+ key,
+ Object.getOwnPropertyDescriptor(source, key)
+ );
+ });
+ }
+ }
+ return target;
+ }
+
exports.__esModule = true;
exports.getRouteRegex = getRouteRegex; // this isn't importing the escape-string-regex module
// to reduce bytes
@@ -480,19 +520,25 @@
: "/([^/]+?)";
}
);
- var namedParameterizedRoute; // dead code eliminate for browser since it's only needed
+ var namedParameterizedRoute;
+ var routeKeys = {}; // dead code eliminate for browser since it's only needed
// while generating routes-manifest
if (false) {
}
- return {
- re: new RegExp("^" + parameterizedRoute + "(?:/)?$", "i"),
- groups,
- namedRegex: namedParameterizedRoute
- ? "^".concat(namedParameterizedRoute, "(?:/)?$")
- : undefined
- };
+ return _objectSpread(
+ {
+ re: new RegExp("^" + parameterizedRoute + "(?:/)?$", "i"),
+ groups
+ },
+ namedParameterizedRoute
+ ? {
+ routeKeys,
+ namedRegex: "^".concat(namedParameterizedRoute, "(?:/)?$")
+ }
+ : {}
+ );
}
/***/
@@ -1653,6 +1699,27 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
/***/
},
+ /***/ lSNA: /***/ function(module, exports) {
+ function _defineProperty(obj, key, value) {
+ if (key in obj) {
+ Object.defineProperty(obj, key, {
+ value: value,
+ enumerable: true,
+ configurable: true,
+ writable: true
+ });
+ } else {
+ obj[key] = value;
+ }
+
+ return obj;
+ }
+
+ module.exports = _defineProperty;
+
+ /***/
+ },
+
/***/ nOHt: /***/ function(module, exports, __webpack_require__) {
"use strict";
Diff for index.html
@@ -24,7 +24,7 @@
/>
<link
rel="preload"
- href="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.f733a40f0fc0ecaa4b6c.module.js"
+ href="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.cb7100da0768a966ff2f.module.js"
as="script"
crossorigin="anonymous"
/>
@@ -117,13 +117,13 @@
type="module"
></script>
<script
- src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.0ea083186308dcf890b6.js"
+ src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.6b850e23a4ee998305aa.js"
async=""
crossorigin="anonymous"
nomodule=""
></script>
<script
- src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.f733a40f0fc0ecaa4b6c.module.js"
+ src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.cb7100da0768a966ff2f.module.js"
async=""
crossorigin="anonymous"
type="module"
Diff for link.html
@@ -24,7 +24,7 @@
/>
<link
rel="preload"
- href="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.f733a40f0fc0ecaa4b6c.module.js"
+ href="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.cb7100da0768a966ff2f.module.js"
as="script"
crossorigin="anonymous"
/>
@@ -122,13 +122,13 @@
type="module"
></script>
<script
- src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.0ea083186308dcf890b6.js"
+ src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.6b850e23a4ee998305aa.js"
async=""
crossorigin="anonymous"
nomodule=""
></script>
<script
- src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.f733a40f0fc0ecaa4b6c.module.js"
+ src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.cb7100da0768a966ff2f.module.js"
async=""
crossorigin="anonymous"
type="module"
Diff for withRouter.html
@@ -24,7 +24,7 @@
/>
<link
rel="preload"
- href="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.f733a40f0fc0ecaa4b6c.module.js"
+ href="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.cb7100da0768a966ff2f.module.js"
as="script"
crossorigin="anonymous"
/>
@@ -117,13 +117,13 @@
type="module"
></script>
<script
- src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.0ea083186308dcf890b6.js"
+ src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.6b850e23a4ee998305aa.js"
async=""
crossorigin="anonymous"
nomodule=""
></script>
<script
- src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.f733a40f0fc0ecaa4b6c.module.js"
+ src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.cb7100da0768a966ff2f.module.js"
async=""
crossorigin="anonymous"
type="module"
Serverless Mode (Increase detected ⚠️ )
General Overall increase ⚠️
vercel/next.js canary | ijjk/next.js update/route-keys | Change | |
---|---|---|---|
buildDuration | 14s | 13.8s | -189ms |
nodeModulesSize | 65.2 MB | 65.2 MB |
Client Bundles (main, webpack, commons) Overall increase ⚠️
vercel/next.js canary | ijjk/next.js update/route-keys | Change | |
---|---|---|---|
main-HASH.js gzip | 6.51 kB | 6.51 kB | ✓ |
webpack-HASH.js gzip | 746 B | 746 B | ✓ |
de003c3a9d30..0538.js gzip | 10.5 kB | N/A | N/A |
framework.HASH.js gzip | 39.1 kB | 39.1 kB | ✓ |
de003c3a9d30..fd27.js gzip | N/A | 10.7 kB | N/A |
Overall change | 56.9 kB | 57.1 kB |
Client Bundles (main, webpack, commons) Modern Overall increase ⚠️
vercel/next.js canary | ijjk/next.js update/route-keys | Change | |
---|---|---|---|
main-HASH.module.js gzip | 5.6 kB | 5.6 kB | ✓ |
webpack-HASH..dule.js gzip | 746 B | 746 B | ✓ |
de003c3a9d30..dule.js gzip | 6.93 kB | N/A | N/A |
framework.HA..dule.js gzip | 39.1 kB | 39.1 kB | ✓ |
de003c3a9d30..dule.js gzip | N/A | 7.14 kB | N/A |
Overall change | 52.4 kB | 52.6 kB |
Legacy Client Bundles (polyfills)
vercel/next.js canary | ijjk/next.js update/route-keys | Change | |
---|---|---|---|
polyfills-HASH.js gzip | 26.3 kB | 26.3 kB | ✓ |
Overall change | 26.3 kB | 26.3 kB | ✓ |
Client Pages
vercel/next.js canary | ijjk/next.js update/route-keys | Change | |
---|---|---|---|
routerDirect.js gzip | 279 B | 279 B | ✓ |
withRouter.js gzip | 278 B | 278 B | ✓ |
_error.js gzip | 3.37 kB | 3.37 kB | ✓ |
index.js gzip | 222 B | 222 B | ✓ |
link.js gzip | 2.05 kB | 2.05 kB | ✓ |
hooks.js gzip | 881 B | 881 B | ✓ |
_app.js gzip | 1.26 kB | 1.26 kB | ✓ |
Overall change | 8.34 kB | 8.34 kB | ✓ |
Client Pages Modern
vercel/next.js canary | ijjk/next.js update/route-keys | Change | |
---|---|---|---|
index.module.js gzip | 223 B | 223 B | ✓ |
routerDirect..dule.js gzip | 281 B | 281 B | ✓ |
withRouter.m..dule.js gzip | 278 B | 278 B | ✓ |
hooks.module.js gzip | 383 B | 383 B | ✓ |
_error.module.js gzip | 2.21 kB | 2.21 kB | ✓ |
link.module.js gzip | 1.52 kB | 1.52 kB | ✓ |
_app.module.js gzip | 604 B | 604 B | ✓ |
Overall change | 5.49 kB | 5.49 kB | ✓ |
Client Build Manifests
vercel/next.js canary | ijjk/next.js update/route-keys | Change | |
---|---|---|---|
_buildManifest.js gzip | 270 B | 270 B | ✓ |
_buildManife..dule.js gzip | 274 B | 274 B | ✓ |
Overall change | 544 B | 544 B | ✓ |
Serverless bundles Overall increase ⚠️
vercel/next.js canary | ijjk/next.js update/route-keys | Change | |
---|---|---|---|
_error.js | 875 kB | 875 kB | ✓ |
404.html | 4.17 kB | 4.17 kB | ✓ |
hooks.html | 3.79 kB | 3.79 kB | ✓ |
index.js | 875 kB | 875 kB | ✓ |
link.js | 913 kB | 914 kB | |
routerDirect.js | 905 kB | 907 kB | |
withRouter.js | 905 kB | 907 kB | |
Overall change | 4.48 MB | 4.48 MB |
Stats from current PRDefault Server Mode (Decrease detected ✓)General Overall increase
|
vercel/next.js canary | ijjk/next.js update/route-keys | Change | |
---|---|---|---|
buildDuration | 10.8s | 10.9s | |
nodeModulesSize | 65.2 MB | 65.2 MB |
Page Load Tests Overall decrease ⚠️
vercel/next.js canary | ijjk/next.js update/route-keys | Change | |
---|---|---|---|
/ failed reqs | 0 | 0 | ✓ |
/ total time (seconds) | 1.864 | 1.881 | |
/ avg req/sec | 1341.16 | 1329.36 | -11.8 |
/error-in-render failed reqs | 0 | 0 | ✓ |
/error-in-render total time (seconds) | 1.2 | 1.208 | |
/error-in-render avg req/sec | 2083.56 | 2069.58 | -13.98 |
Client Bundles (main, webpack, commons) Overall decrease ✓
vercel/next.js canary | ijjk/next.js update/route-keys | Change | |
---|---|---|---|
main-HASH.js gzip | 6.51 kB | 6.51 kB | ✓ |
webpack-HASH.js gzip | 746 B | 746 B | ✓ |
de003c3a9d30..0538.js gzip | 10.5 kB | 10.5 kB | -8 B |
framework.HASH.js gzip | 39.1 kB | 39.1 kB | ✓ |
Overall change | 56.9 kB | 56.9 kB | -8 B |
Client Bundles (main, webpack, commons) Modern Overall decrease ✓
vercel/next.js canary | ijjk/next.js update/route-keys | Change | |
---|---|---|---|
main-HASH.module.js gzip | 5.6 kB | 5.6 kB | ✓ |
webpack-HASH..dule.js gzip | 746 B | 746 B | ✓ |
de003c3a9d30..dule.js gzip | 6.93 kB | 6.92 kB | -9 B |
framework.HA..dule.js gzip | 39.1 kB | 39.1 kB | ✓ |
Overall change | 52.4 kB | 52.4 kB | -9 B |
Legacy Client Bundles (polyfills)
vercel/next.js canary | ijjk/next.js update/route-keys | Change | |
---|---|---|---|
polyfills-HASH.js gzip | 26.3 kB | 26.3 kB | ✓ |
Overall change | 26.3 kB | 26.3 kB | ✓ |
Client Pages
vercel/next.js canary | ijjk/next.js update/route-keys | Change | |
---|---|---|---|
routerDirect.js gzip | 279 B | 279 B | ✓ |
withRouter.js gzip | 278 B | 278 B | ✓ |
_error.js gzip | 3.37 kB | 3.37 kB | ✓ |
index.js gzip | 222 B | 222 B | ✓ |
link.js gzip | 2.05 kB | 2.05 kB | ✓ |
hooks.js gzip | 881 B | 881 B | ✓ |
_app.js gzip | 1.26 kB | 1.26 kB | ✓ |
Overall change | 8.34 kB | 8.34 kB | ✓ |
Client Pages Modern
vercel/next.js canary | ijjk/next.js update/route-keys | Change | |
---|---|---|---|
index.module.js gzip | 223 B | 223 B | ✓ |
routerDirect..dule.js gzip | 281 B | 281 B | ✓ |
withRouter.m..dule.js gzip | 278 B | 278 B | ✓ |
hooks.module.js gzip | 383 B | 383 B | ✓ |
_error.module.js gzip | 2.21 kB | 2.21 kB | ✓ |
link.module.js gzip | 1.52 kB | 1.52 kB | ✓ |
_app.module.js gzip | 604 B | 604 B | ✓ |
Overall change | 5.49 kB | 5.49 kB | ✓ |
Client Build Manifests
vercel/next.js canary | ijjk/next.js update/route-keys | Change | |
---|---|---|---|
_buildManifest.js gzip | 270 B | 270 B | ✓ |
_buildManife..dule.js gzip | 274 B | 274 B | ✓ |
Overall change | 544 B | 544 B | ✓ |
Rendered Page Sizes Overall decrease ✓
vercel/next.js canary | ijjk/next.js update/route-keys | Change | |
---|---|---|---|
index.html gzip | 956 B | 954 B | -2 B |
link.html gzip | 963 B | 961 B | -2 B |
withRouter.html gzip | 949 B | 948 B | -1 B |
Overall change | 2.87 kB | 2.86 kB | -5 B |
Diffs
Diff for de003c3a9d30..8dcf890b6.js
@@ -558,7 +558,8 @@
: "/([^/]+?)";
}
);
- var namedParameterizedRoute; // dead code eliminate for browser since it's only needed
+ var namedParameterizedRoute;
+ var routeKeys = {}; // dead code eliminate for browser since it's only needed
// while generating routes-manifest
if (false) {
@@ -566,10 +567,7 @@
return {
re: new RegExp("^" + parameterizedRoute + "(?:/)?$", "i"),
- groups: groups,
- namedRegex: namedParameterizedRoute
- ? "^".concat(namedParameterizedRoute, "(?:/)?$")
- : undefined
+ groups: groups
};
}
Diff for de003c3a9d30..6c.module.js
@@ -480,7 +480,8 @@
: "/([^/]+?)";
}
);
- var namedParameterizedRoute; // dead code eliminate for browser since it's only needed
+ var namedParameterizedRoute;
+ var routeKeys = {}; // dead code eliminate for browser since it's only needed
// while generating routes-manifest
if (false) {
@@ -488,10 +489,7 @@
return {
re: new RegExp("^" + parameterizedRoute + "(?:/)?$", "i"),
- groups,
- namedRegex: namedParameterizedRoute
- ? "^".concat(namedParameterizedRoute, "(?:/)?$")
- : undefined
+ groups
};
}
Diff for index.html
@@ -24,7 +24,7 @@
/>
<link
rel="preload"
- href="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.f733a40f0fc0ecaa4b6c.module.js"
+ href="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.6939074386b3587fce47.module.js"
as="script"
crossorigin="anonymous"
/>
@@ -117,13 +117,13 @@
type="module"
></script>
<script
- src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.0ea083186308dcf890b6.js"
+ src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.6962571ed86d59cf6d0f.js"
async=""
crossorigin="anonymous"
nomodule=""
></script>
<script
- src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.f733a40f0fc0ecaa4b6c.module.js"
+ src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.6939074386b3587fce47.module.js"
async=""
crossorigin="anonymous"
type="module"
Diff for link.html
@@ -24,7 +24,7 @@
/>
<link
rel="preload"
- href="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.f733a40f0fc0ecaa4b6c.module.js"
+ href="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.6939074386b3587fce47.module.js"
as="script"
crossorigin="anonymous"
/>
@@ -122,13 +122,13 @@
type="module"
></script>
<script
- src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.0ea083186308dcf890b6.js"
+ src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.6962571ed86d59cf6d0f.js"
async=""
crossorigin="anonymous"
nomodule=""
></script>
<script
- src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.f733a40f0fc0ecaa4b6c.module.js"
+ src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.6939074386b3587fce47.module.js"
async=""
crossorigin="anonymous"
type="module"
Diff for withRouter.html
@@ -24,7 +24,7 @@
/>
<link
rel="preload"
- href="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.f733a40f0fc0ecaa4b6c.module.js"
+ href="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.6939074386b3587fce47.module.js"
as="script"
crossorigin="anonymous"
/>
@@ -117,13 +117,13 @@
type="module"
></script>
<script
- src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.0ea083186308dcf890b6.js"
+ src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.6962571ed86d59cf6d0f.js"
async=""
crossorigin="anonymous"
nomodule=""
></script>
<script
- src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.f733a40f0fc0ecaa4b6c.module.js"
+ src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.6939074386b3587fce47.module.js"
async=""
crossorigin="anonymous"
type="module"
Serverless Mode (Increase detected ⚠️ )
General Overall increase ⚠️
vercel/next.js canary | ijjk/next.js update/route-keys | Change | |
---|---|---|---|
buildDuration | 11.9s | 11.6s | -314ms |
nodeModulesSize | 65.2 MB | 65.2 MB |
Client Bundles (main, webpack, commons) Overall decrease ✓
vercel/next.js canary | ijjk/next.js update/route-keys | Change | |
---|---|---|---|
main-HASH.js gzip | 6.51 kB | 6.51 kB | ✓ |
webpack-HASH.js gzip | 746 B | 746 B | ✓ |
de003c3a9d30..0538.js gzip | 10.5 kB | N/A | N/A |
framework.HASH.js gzip | 39.1 kB | 39.1 kB | ✓ |
de003c3a9d30..48ca.js gzip | N/A | 10.5 kB | N/A |
Overall change | 56.9 kB | 56.9 kB | -8 B |
Client Bundles (main, webpack, commons) Modern Overall decrease ✓
vercel/next.js canary | ijjk/next.js update/route-keys | Change | |
---|---|---|---|
main-HASH.module.js gzip | 5.6 kB | 5.6 kB | ✓ |
webpack-HASH..dule.js gzip | 746 B | 746 B | ✓ |
de003c3a9d30..dule.js gzip | 6.93 kB | N/A | N/A |
framework.HA..dule.js gzip | 39.1 kB | 39.1 kB | ✓ |
de003c3a9d30..dule.js gzip | N/A | 6.92 kB | N/A |
Overall change | 52.4 kB | 52.4 kB | -9 B |
Legacy Client Bundles (polyfills)
vercel/next.js canary | ijjk/next.js update/route-keys | Change | |
---|---|---|---|
polyfills-HASH.js gzip | 26.3 kB | 26.3 kB | ✓ |
Overall change | 26.3 kB | 26.3 kB | ✓ |
Client Pages
vercel/next.js canary | ijjk/next.js update/route-keys | Change | |
---|---|---|---|
routerDirect.js gzip | 279 B | 279 B | ✓ |
withRouter.js gzip | 278 B | 278 B | ✓ |
_error.js gzip | 3.37 kB | 3.37 kB | ✓ |
index.js gzip | 222 B | 222 B | ✓ |
link.js gzip | 2.05 kB | 2.05 kB | ✓ |
hooks.js gzip | 881 B | 881 B | ✓ |
_app.js gzip | 1.26 kB | 1.26 kB | ✓ |
Overall change | 8.34 kB | 8.34 kB | ✓ |
Client Pages Modern
vercel/next.js canary | ijjk/next.js update/route-keys | Change | |
---|---|---|---|
index.module.js gzip | 223 B | 223 B | ✓ |
routerDirect..dule.js gzip | 281 B | 281 B | ✓ |
withRouter.m..dule.js gzip | 278 B | 278 B | ✓ |
hooks.module.js gzip | 383 B | 383 B | ✓ |
_error.module.js gzip | 2.21 kB | 2.21 kB | ✓ |
link.module.js gzip | 1.52 kB | 1.52 kB | ✓ |
_app.module.js gzip | 604 B | 604 B | ✓ |
Overall change | 5.49 kB | 5.49 kB | ✓ |
Client Build Manifests
vercel/next.js canary | ijjk/next.js update/route-keys | Change | |
---|---|---|---|
_buildManifest.js gzip | 270 B | 270 B | ✓ |
_buildManife..dule.js gzip | 274 B | 274 B | ✓ |
Overall change | 544 B | 544 B | ✓ |
Serverless bundles Overall increase ⚠️
vercel/next.js canary | ijjk/next.js update/route-keys | Change | |
---|---|---|---|
_error.js | 875 kB | 875 kB | ✓ |
404.html | 4.17 kB | 4.17 kB | ✓ |
hooks.html | 3.79 kB | 3.79 kB | ✓ |
index.js | 875 kB | 875 kB | ✓ |
link.js | 913 kB | 913 kB | |
routerDirect.js | 905 kB | 906 kB | |
withRouter.js | 905 kB | 906 kB | |
Overall change | 4.48 MB | 4.48 MB |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Let's bump it.
Stats from current PRDefault Server Mode (Increase detected
|
vercel/next.js canary | ijjk/next.js update/route-keys | Change | |
---|---|---|---|
buildDuration | 11.3s | 11.5s | |
nodeModulesSize | 65.2 MB | 65.2 MB |
Page Load Tests Overall increase ✓
vercel/next.js canary | ijjk/next.js update/route-keys | Change | |
---|---|---|---|
/ failed reqs | 0 | 0 | ✓ |
/ total time (seconds) | 1.902 | 1.898 | 0 |
/ avg req/sec | 1314.59 | 1317.48 | |
/error-in-render failed reqs | 0 | 0 | ✓ |
/error-in-render total time (seconds) | 1.18 | 1.132 | -0.05 |
/error-in-render avg req/sec | 2119.37 | 2207.6 |
Client Bundles (main, webpack, commons) Overall decrease ✓
vercel/next.js canary | ijjk/next.js update/route-keys | Change | |
---|---|---|---|
main-HASH.js gzip | 6.51 kB | 6.51 kB | ✓ |
webpack-HASH.js gzip | 746 B | 746 B | ✓ |
de003c3a9d30..0538.js gzip | 10.5 kB | 10.5 kB | -8 B |
framework.HASH.js gzip | 39.1 kB | 39.1 kB | ✓ |
Overall change | 56.9 kB | 56.9 kB | -8 B |
Client Bundles (main, webpack, commons) Modern Overall decrease ✓
vercel/next.js canary | ijjk/next.js update/route-keys | Change | |
---|---|---|---|
main-HASH.module.js gzip | 5.6 kB | 5.6 kB | ✓ |
webpack-HASH..dule.js gzip | 746 B | 746 B | ✓ |
de003c3a9d30..dule.js gzip | 6.93 kB | 6.92 kB | -9 B |
framework.HA..dule.js gzip | 39.1 kB | 39.1 kB | ✓ |
Overall change | 52.4 kB | 52.4 kB | -9 B |
Legacy Client Bundles (polyfills)
vercel/next.js canary | ijjk/next.js update/route-keys | Change | |
---|---|---|---|
polyfills-HASH.js gzip | 26.3 kB | 26.3 kB | ✓ |
Overall change | 26.3 kB | 26.3 kB | ✓ |
Client Pages
vercel/next.js canary | ijjk/next.js update/route-keys | Change | |
---|---|---|---|
routerDirect.js gzip | 279 B | 279 B | ✓ |
withRouter.js gzip | 278 B | 278 B | ✓ |
_error.js gzip | 3.37 kB | 3.37 kB | ✓ |
index.js gzip | 222 B | 222 B | ✓ |
link.js gzip | 2.05 kB | 2.05 kB | ✓ |
hooks.js gzip | 881 B | 881 B | ✓ |
_app.js gzip | 1.26 kB | 1.26 kB | ✓ |
Overall change | 8.34 kB | 8.34 kB | ✓ |
Client Pages Modern
vercel/next.js canary | ijjk/next.js update/route-keys | Change | |
---|---|---|---|
index.module.js gzip | 223 B | 223 B | ✓ |
routerDirect..dule.js gzip | 281 B | 281 B | ✓ |
withRouter.m..dule.js gzip | 278 B | 278 B | ✓ |
hooks.module.js gzip | 383 B | 383 B | ✓ |
_error.module.js gzip | 2.21 kB | 2.21 kB | ✓ |
link.module.js gzip | 1.52 kB | 1.52 kB | ✓ |
_app.module.js gzip | 604 B | 604 B | ✓ |
Overall change | 5.49 kB | 5.49 kB | ✓ |
Client Build Manifests
vercel/next.js canary | ijjk/next.js update/route-keys | Change | |
---|---|---|---|
_buildManifest.js gzip | 270 B | 270 B | ✓ |
_buildManife..dule.js gzip | 274 B | 274 B | ✓ |
Overall change | 544 B | 544 B | ✓ |
Rendered Page Sizes Overall decrease ✓
vercel/next.js canary | ijjk/next.js update/route-keys | Change | |
---|---|---|---|
index.html gzip | 956 B | 954 B | -2 B |
link.html gzip | 963 B | 961 B | -2 B |
withRouter.html gzip | 949 B | 947 B | -2 B |
Overall change | 2.87 kB | 2.86 kB | -6 B |
Diffs
Diff for de003c3a9d30..8dcf890b6.js
@@ -562,14 +562,12 @@
// while generating routes-manifest
if (false) {
+ var routeKeys;
}
return {
re: new RegExp("^" + parameterizedRoute + "(?:/)?$", "i"),
- groups: groups,
- namedRegex: namedParameterizedRoute
- ? "^".concat(namedParameterizedRoute, "(?:/)?$")
- : undefined
+ groups: groups
};
}
Diff for de003c3a9d30..6c.module.js
@@ -484,14 +484,12 @@
// while generating routes-manifest
if (false) {
+ var routeKeys;
}
return {
re: new RegExp("^" + parameterizedRoute + "(?:/)?$", "i"),
- groups,
- namedRegex: namedParameterizedRoute
- ? "^".concat(namedParameterizedRoute, "(?:/)?$")
- : undefined
+ groups
};
}
Diff for index.html
@@ -24,7 +24,7 @@
/>
<link
rel="preload"
- href="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.f733a40f0fc0ecaa4b6c.module.js"
+ href="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.deb50154f80a4044eb84.module.js"
as="script"
crossorigin="anonymous"
/>
@@ -117,13 +117,13 @@
type="module"
></script>
<script
- src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.0ea083186308dcf890b6.js"
+ src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.c055dea44cbce095b7e0.js"
async=""
crossorigin="anonymous"
nomodule=""
></script>
<script
- src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.f733a40f0fc0ecaa4b6c.module.js"
+ src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.deb50154f80a4044eb84.module.js"
async=""
crossorigin="anonymous"
type="module"
Diff for link.html
@@ -24,7 +24,7 @@
/>
<link
rel="preload"
- href="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.f733a40f0fc0ecaa4b6c.module.js"
+ href="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.deb50154f80a4044eb84.module.js"
as="script"
crossorigin="anonymous"
/>
@@ -122,13 +122,13 @@
type="module"
></script>
<script
- src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.0ea083186308dcf890b6.js"
+ src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.c055dea44cbce095b7e0.js"
async=""
crossorigin="anonymous"
nomodule=""
></script>
<script
- src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.f733a40f0fc0ecaa4b6c.module.js"
+ src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.deb50154f80a4044eb84.module.js"
async=""
crossorigin="anonymous"
type="module"
Diff for withRouter.html
@@ -24,7 +24,7 @@
/>
<link
rel="preload"
- href="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.f733a40f0fc0ecaa4b6c.module.js"
+ href="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.deb50154f80a4044eb84.module.js"
as="script"
crossorigin="anonymous"
/>
@@ -117,13 +117,13 @@
type="module"
></script>
<script
- src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.0ea083186308dcf890b6.js"
+ src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.c055dea44cbce095b7e0.js"
async=""
crossorigin="anonymous"
nomodule=""
></script>
<script
- src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.f733a40f0fc0ecaa4b6c.module.js"
+ src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.deb50154f80a4044eb84.module.js"
async=""
crossorigin="anonymous"
type="module"
Serverless Mode (Increase detected ⚠️ )
General Overall increase ⚠️
vercel/next.js canary | ijjk/next.js update/route-keys | Change | |
---|---|---|---|
buildDuration | 12.2s | 12.2s | |
nodeModulesSize | 65.2 MB | 65.2 MB |
Client Bundles (main, webpack, commons) Overall decrease ✓
vercel/next.js canary | ijjk/next.js update/route-keys | Change | |
---|---|---|---|
main-HASH.js gzip | 6.51 kB | 6.51 kB | ✓ |
webpack-HASH.js gzip | 746 B | 746 B | ✓ |
de003c3a9d30..0538.js gzip | 10.5 kB | N/A | N/A |
framework.HASH.js gzip | 39.1 kB | 39.1 kB | ✓ |
de003c3a9d30..4dd5.js gzip | N/A | 10.5 kB | N/A |
Overall change | 56.9 kB | 56.9 kB | -8 B |
Client Bundles (main, webpack, commons) Modern Overall decrease ✓
vercel/next.js canary | ijjk/next.js update/route-keys | Change | |
---|---|---|---|
main-HASH.module.js gzip | 5.6 kB | 5.6 kB | ✓ |
webpack-HASH..dule.js gzip | 746 B | 746 B | ✓ |
de003c3a9d30..dule.js gzip | 6.93 kB | N/A | N/A |
framework.HA..dule.js gzip | 39.1 kB | 39.1 kB | ✓ |
de003c3a9d30..dule.js gzip | N/A | 6.92 kB | N/A |
Overall change | 52.4 kB | 52.4 kB | -9 B |
Legacy Client Bundles (polyfills)
vercel/next.js canary | ijjk/next.js update/route-keys | Change | |
---|---|---|---|
polyfills-HASH.js gzip | 26.3 kB | 26.3 kB | ✓ |
Overall change | 26.3 kB | 26.3 kB | ✓ |
Client Pages
vercel/next.js canary | ijjk/next.js update/route-keys | Change | |
---|---|---|---|
routerDirect.js gzip | 279 B | 279 B | ✓ |
withRouter.js gzip | 278 B | 278 B | ✓ |
_error.js gzip | 3.37 kB | 3.37 kB | ✓ |
index.js gzip | 222 B | 222 B | ✓ |
link.js gzip | 2.05 kB | 2.05 kB | ✓ |
hooks.js gzip | 881 B | 881 B | ✓ |
_app.js gzip | 1.26 kB | 1.26 kB | ✓ |
Overall change | 8.34 kB | 8.34 kB | ✓ |
Client Pages Modern
vercel/next.js canary | ijjk/next.js update/route-keys | Change | |
---|---|---|---|
index.module.js gzip | 223 B | 223 B | ✓ |
routerDirect..dule.js gzip | 281 B | 281 B | ✓ |
withRouter.m..dule.js gzip | 278 B | 278 B | ✓ |
hooks.module.js gzip | 383 B | 383 B | ✓ |
_error.module.js gzip | 2.21 kB | 2.21 kB | ✓ |
link.module.js gzip | 1.52 kB | 1.52 kB | ✓ |
_app.module.js gzip | 604 B | 604 B | ✓ |
Overall change | 5.49 kB | 5.49 kB | ✓ |
Client Build Manifests
vercel/next.js canary | ijjk/next.js update/route-keys | Change | |
---|---|---|---|
_buildManifest.js gzip | 270 B | 270 B | ✓ |
_buildManife..dule.js gzip | 274 B | 274 B | ✓ |
Overall change | 544 B | 544 B | ✓ |
Serverless bundles Overall increase ⚠️
vercel/next.js canary | ijjk/next.js update/route-keys | Change | |
---|---|---|---|
_error.js | 875 kB | 875 kB | ✓ |
404.html | 4.17 kB | 4.17 kB | ✓ |
hooks.html | 3.79 kB | 3.79 kB | ✓ |
index.js | 875 kB | 875 kB | ✓ |
link.js | 913 kB | 914 kB | |
routerDirect.js | 906 kB | 906 kB | |
withRouter.js | 906 kB | 906 kB | |
Overall change | 4.48 MB | 4.48 MB |
This updates to leverage changes from vercel/next.js#12801 which resolves invalid named regexes being used when the segments contain non-word characters e.g. `/[hello-world]`. Failing page names have also been added to the `23-custom-routes-verbose` fixture. Since the routeKeys aren't applied for dynamic routes in this PR until the routes-manifest version is bumped in the latest canary of Next.js the added test cases will be passing now and should be re-run to ensure passing after a new canary of Next.js is released with the routes-manifest version bump
Stats from current PRDefault Server Mode (Increase detected
|
vercel/next.js canary | ijjk/next.js update/route-keys | Change | |
---|---|---|---|
buildDuration | 11s | 11.3s | |
nodeModulesSize | 65.2 MB | 65.2 MB |
Page Load Tests Overall increase ✓
vercel/next.js canary | ijjk/next.js update/route-keys | Change | |
---|---|---|---|
/ failed reqs | 0 | 0 | ✓ |
/ total time (seconds) | 1.997 | 2.083 | |
/ avg req/sec | 1252.06 | 1200.45 | -51.61 |
/error-in-render failed reqs | 0 | 0 | ✓ |
/error-in-render total time (seconds) | 1.458 | 1.215 | -0.24 |
/error-in-render avg req/sec | 1714.92 | 2056.95 |
Client Bundles (main, webpack, commons) Overall decrease ✓
vercel/next.js canary | ijjk/next.js update/route-keys | Change | |
---|---|---|---|
main-HASH.js gzip | 6.51 kB | 6.51 kB | ✓ |
webpack-HASH.js gzip | 746 B | 746 B | ✓ |
de003c3a9d30..0538.js gzip | 10.5 kB | 10.5 kB | -8 B |
framework.HASH.js gzip | 39.1 kB | 39.1 kB | ✓ |
Overall change | 56.9 kB | 56.9 kB | -8 B |
Client Bundles (main, webpack, commons) Modern Overall decrease ✓
vercel/next.js canary | ijjk/next.js update/route-keys | Change | |
---|---|---|---|
main-HASH.module.js gzip | 5.6 kB | 5.6 kB | ✓ |
webpack-HASH..dule.js gzip | 746 B | 746 B | ✓ |
de003c3a9d30..dule.js gzip | 6.93 kB | 6.92 kB | -9 B |
framework.HA..dule.js gzip | 39.1 kB | 39.1 kB | ✓ |
Overall change | 52.4 kB | 52.4 kB | -9 B |
Legacy Client Bundles (polyfills)
vercel/next.js canary | ijjk/next.js update/route-keys | Change | |
---|---|---|---|
polyfills-HASH.js gzip | 26.3 kB | 26.3 kB | ✓ |
Overall change | 26.3 kB | 26.3 kB | ✓ |
Client Pages
vercel/next.js canary | ijjk/next.js update/route-keys | Change | |
---|---|---|---|
routerDirect.js gzip | 279 B | 279 B | ✓ |
withRouter.js gzip | 278 B | 278 B | ✓ |
_error.js gzip | 3.37 kB | 3.37 kB | ✓ |
index.js gzip | 222 B | 222 B | ✓ |
link.js gzip | 2.05 kB | 2.05 kB | ✓ |
hooks.js gzip | 881 B | 881 B | ✓ |
_app.js gzip | 1.26 kB | 1.26 kB | ✓ |
Overall change | 8.34 kB | 8.34 kB | ✓ |
Client Pages Modern
vercel/next.js canary | ijjk/next.js update/route-keys | Change | |
---|---|---|---|
index.module.js gzip | 223 B | 223 B | ✓ |
routerDirect..dule.js gzip | 281 B | 281 B | ✓ |
withRouter.m..dule.js gzip | 278 B | 278 B | ✓ |
hooks.module.js gzip | 383 B | 383 B | ✓ |
_error.module.js gzip | 2.21 kB | 2.21 kB | ✓ |
link.module.js gzip | 1.52 kB | 1.52 kB | ✓ |
_app.module.js gzip | 604 B | 604 B | ✓ |
Overall change | 5.49 kB | 5.49 kB | ✓ |
Client Build Manifests
vercel/next.js canary | ijjk/next.js update/route-keys | Change | |
---|---|---|---|
_buildManifest.js gzip | 270 B | 270 B | ✓ |
_buildManife..dule.js gzip | 274 B | 274 B | ✓ |
Overall change | 544 B | 544 B | ✓ |
Rendered Page Sizes Overall decrease ✓
vercel/next.js canary | ijjk/next.js update/route-keys | Change | |
---|---|---|---|
index.html gzip | 956 B | 954 B | -2 B |
link.html gzip | 963 B | 961 B | -2 B |
withRouter.html gzip | 949 B | 947 B | -2 B |
Overall change | 2.87 kB | 2.86 kB | -6 B |
Diffs
Diff for de003c3a9d30..8dcf890b6.js
@@ -562,14 +562,12 @@
// while generating routes-manifest
if (false) {
+ var routeKeys;
}
return {
re: new RegExp("^" + parameterizedRoute + "(?:/)?$", "i"),
- groups: groups,
- namedRegex: namedParameterizedRoute
- ? "^".concat(namedParameterizedRoute, "(?:/)?$")
- : undefined
+ groups: groups
};
}
Diff for de003c3a9d30..6c.module.js
@@ -484,14 +484,12 @@
// while generating routes-manifest
if (false) {
+ var routeKeys;
}
return {
re: new RegExp("^" + parameterizedRoute + "(?:/)?$", "i"),
- groups,
- namedRegex: namedParameterizedRoute
- ? "^".concat(namedParameterizedRoute, "(?:/)?$")
- : undefined
+ groups
};
}
Diff for index.html
@@ -24,7 +24,7 @@
/>
<link
rel="preload"
- href="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.f733a40f0fc0ecaa4b6c.module.js"
+ href="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.deb50154f80a4044eb84.module.js"
as="script"
crossorigin="anonymous"
/>
@@ -117,13 +117,13 @@
type="module"
></script>
<script
- src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.0ea083186308dcf890b6.js"
+ src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.c055dea44cbce095b7e0.js"
async=""
crossorigin="anonymous"
nomodule=""
></script>
<script
- src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.f733a40f0fc0ecaa4b6c.module.js"
+ src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.deb50154f80a4044eb84.module.js"
async=""
crossorigin="anonymous"
type="module"
Diff for link.html
@@ -24,7 +24,7 @@
/>
<link
rel="preload"
- href="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.f733a40f0fc0ecaa4b6c.module.js"
+ href="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.deb50154f80a4044eb84.module.js"
as="script"
crossorigin="anonymous"
/>
@@ -122,13 +122,13 @@
type="module"
></script>
<script
- src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.0ea083186308dcf890b6.js"
+ src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.c055dea44cbce095b7e0.js"
async=""
crossorigin="anonymous"
nomodule=""
></script>
<script
- src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.f733a40f0fc0ecaa4b6c.module.js"
+ src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.deb50154f80a4044eb84.module.js"
async=""
crossorigin="anonymous"
type="module"
Diff for withRouter.html
@@ -24,7 +24,7 @@
/>
<link
rel="preload"
- href="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.f733a40f0fc0ecaa4b6c.module.js"
+ href="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.deb50154f80a4044eb84.module.js"
as="script"
crossorigin="anonymous"
/>
@@ -117,13 +117,13 @@
type="module"
></script>
<script
- src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.0ea083186308dcf890b6.js"
+ src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.c055dea44cbce095b7e0.js"
async=""
crossorigin="anonymous"
nomodule=""
></script>
<script
- src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.f733a40f0fc0ecaa4b6c.module.js"
+ src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.deb50154f80a4044eb84.module.js"
async=""
crossorigin="anonymous"
type="module"
Serverless Mode (Increase detected ⚠️ )
General Overall increase ⚠️
vercel/next.js canary | ijjk/next.js update/route-keys | Change | |
---|---|---|---|
buildDuration | 13s | 12.8s | -167ms |
nodeModulesSize | 65.2 MB | 65.2 MB |
Client Bundles (main, webpack, commons) Overall decrease ✓
vercel/next.js canary | ijjk/next.js update/route-keys | Change | |
---|---|---|---|
main-HASH.js gzip | 6.51 kB | 6.51 kB | ✓ |
webpack-HASH.js gzip | 746 B | 746 B | ✓ |
de003c3a9d30..0538.js gzip | 10.5 kB | N/A | N/A |
framework.HASH.js gzip | 39.1 kB | 39.1 kB | ✓ |
de003c3a9d30..4dd5.js gzip | N/A | 10.5 kB | N/A |
Overall change | 56.9 kB | 56.9 kB | -8 B |
Client Bundles (main, webpack, commons) Modern Overall decrease ✓
vercel/next.js canary | ijjk/next.js update/route-keys | Change | |
---|---|---|---|
main-HASH.module.js gzip | 5.6 kB | 5.6 kB | ✓ |
webpack-HASH..dule.js gzip | 746 B | 746 B | ✓ |
de003c3a9d30..dule.js gzip | 6.93 kB | N/A | N/A |
framework.HA..dule.js gzip | 39.1 kB | 39.1 kB | ✓ |
de003c3a9d30..dule.js gzip | N/A | 6.92 kB | N/A |
Overall change | 52.4 kB | 52.4 kB | -9 B |
Legacy Client Bundles (polyfills)
vercel/next.js canary | ijjk/next.js update/route-keys | Change | |
---|---|---|---|
polyfills-HASH.js gzip | 26.3 kB | 26.3 kB | ✓ |
Overall change | 26.3 kB | 26.3 kB | ✓ |
Client Pages
vercel/next.js canary | ijjk/next.js update/route-keys | Change | |
---|---|---|---|
routerDirect.js gzip | 279 B | 279 B | ✓ |
withRouter.js gzip | 278 B | 278 B | ✓ |
_error.js gzip | 3.37 kB | 3.37 kB | ✓ |
index.js gzip | 222 B | 222 B | ✓ |
link.js gzip | 2.05 kB | 2.05 kB | ✓ |
hooks.js gzip | 881 B | 881 B | ✓ |
_app.js gzip | 1.26 kB | 1.26 kB | ✓ |
Overall change | 8.34 kB | 8.34 kB | ✓ |
Client Pages Modern
vercel/next.js canary | ijjk/next.js update/route-keys | Change | |
---|---|---|---|
index.module.js gzip | 223 B | 223 B | ✓ |
routerDirect..dule.js gzip | 281 B | 281 B | ✓ |
withRouter.m..dule.js gzip | 278 B | 278 B | ✓ |
hooks.module.js gzip | 383 B | 383 B | ✓ |
_error.module.js gzip | 2.21 kB | 2.21 kB | ✓ |
link.module.js gzip | 1.52 kB | 1.52 kB | ✓ |
_app.module.js gzip | 604 B | 604 B | ✓ |
Overall change | 5.49 kB | 5.49 kB | ✓ |
Client Build Manifests
vercel/next.js canary | ijjk/next.js update/route-keys | Change | |
---|---|---|---|
_buildManifest.js gzip | 270 B | 270 B | ✓ |
_buildManife..dule.js gzip | 274 B | 274 B | ✓ |
Overall change | 544 B | 544 B | ✓ |
Serverless bundles Overall increase ⚠️
vercel/next.js canary | ijjk/next.js update/route-keys | Change | |
---|---|---|---|
_error.js | 875 kB | 875 kB | ✓ |
404.html | 4.17 kB | 4.17 kB | ✓ |
hooks.html | 3.79 kB | 3.79 kB | ✓ |
index.js | 875 kB | 875 kB | ✓ |
link.js | 913 kB | 913 kB | |
routerDirect.js | 905 kB | 906 kB | |
withRouter.js | 905 kB | 906 kB | |
Overall change | 4.48 MB | 4.48 MB |
Stats from current PRDefault Server Mode (Increase detected
|
vercel/next.js canary | ijjk/next.js update/route-keys | Change | |
---|---|---|---|
buildDuration | 12.3s | 11.7s | -559ms |
nodeModulesSize | 65.2 MB | 65.2 MB |
Page Load Tests Overall increase ✓
vercel/next.js canary | ijjk/next.js update/route-keys | Change | |
---|---|---|---|
/ failed reqs | 0 | 0 | ✓ |
/ total time (seconds) | 2.232 | 2.13 | -0.1 |
/ avg req/sec | 1119.94 | 1173.67 | |
/error-in-render failed reqs | 0 | 0 | ✓ |
/error-in-render total time (seconds) | 1.555 | 1.415 | -0.14 |
/error-in-render avg req/sec | 1607.53 | 1766.53 |
Client Bundles (main, webpack, commons) Overall decrease ✓
vercel/next.js canary | ijjk/next.js update/route-keys | Change | |
---|---|---|---|
main-HASH.js gzip | 6.51 kB | 6.51 kB | ✓ |
webpack-HASH.js gzip | 746 B | 746 B | ✓ |
de003c3a9d30..0538.js gzip | 10.5 kB | 10.5 kB | -8 B |
framework.HASH.js gzip | 39.1 kB | 39.1 kB | ✓ |
Overall change | 56.9 kB | 56.9 kB | -8 B |
Client Bundles (main, webpack, commons) Modern Overall decrease ✓
vercel/next.js canary | ijjk/next.js update/route-keys | Change | |
---|---|---|---|
main-HASH.module.js gzip | 5.6 kB | 5.6 kB | ✓ |
webpack-HASH..dule.js gzip | 746 B | 746 B | ✓ |
de003c3a9d30..dule.js gzip | 6.93 kB | 6.92 kB | -9 B |
framework.HA..dule.js gzip | 39.1 kB | 39.1 kB | ✓ |
Overall change | 52.4 kB | 52.4 kB | -9 B |
Legacy Client Bundles (polyfills)
vercel/next.js canary | ijjk/next.js update/route-keys | Change | |
---|---|---|---|
polyfills-HASH.js gzip | 26.3 kB | 26.3 kB | ✓ |
Overall change | 26.3 kB | 26.3 kB | ✓ |
Client Pages
vercel/next.js canary | ijjk/next.js update/route-keys | Change | |
---|---|---|---|
routerDirect.js gzip | 279 B | 279 B | ✓ |
withRouter.js gzip | 278 B | 278 B | ✓ |
_error.js gzip | 3.37 kB | 3.37 kB | ✓ |
index.js gzip | 222 B | 222 B | ✓ |
link.js gzip | 2.05 kB | 2.05 kB | ✓ |
hooks.js gzip | 881 B | 881 B | ✓ |
_app.js gzip | 1.26 kB | 1.26 kB | ✓ |
Overall change | 8.34 kB | 8.34 kB | ✓ |
Client Pages Modern
vercel/next.js canary | ijjk/next.js update/route-keys | Change | |
---|---|---|---|
index.module.js gzip | 223 B | 223 B | ✓ |
routerDirect..dule.js gzip | 281 B | 281 B | ✓ |
withRouter.m..dule.js gzip | 278 B | 278 B | ✓ |
hooks.module.js gzip | 383 B | 383 B | ✓ |
_error.module.js gzip | 2.21 kB | 2.21 kB | ✓ |
link.module.js gzip | 1.52 kB | 1.52 kB | ✓ |
_app.module.js gzip | 604 B | 604 B | ✓ |
Overall change | 5.49 kB | 5.49 kB | ✓ |
Client Build Manifests
vercel/next.js canary | ijjk/next.js update/route-keys | Change | |
---|---|---|---|
_buildManifest.js gzip | 270 B | 270 B | ✓ |
_buildManife..dule.js gzip | 274 B | 274 B | ✓ |
Overall change | 544 B | 544 B | ✓ |
Rendered Page Sizes Overall decrease ✓
vercel/next.js canary | ijjk/next.js update/route-keys | Change | |
---|---|---|---|
index.html gzip | 956 B | 954 B | -2 B |
link.html gzip | 963 B | 961 B | -2 B |
withRouter.html gzip | 949 B | 947 B | -2 B |
Overall change | 2.87 kB | 2.86 kB | -6 B |
Diffs
Diff for de003c3a9d30..8dcf890b6.js
@@ -562,14 +562,12 @@
// while generating routes-manifest
if (false) {
+ var routeKeys;
}
return {
re: new RegExp("^" + parameterizedRoute + "(?:/)?$", "i"),
- groups: groups,
- namedRegex: namedParameterizedRoute
- ? "^".concat(namedParameterizedRoute, "(?:/)?$")
- : undefined
+ groups: groups
};
}
Diff for de003c3a9d30..6c.module.js
@@ -484,14 +484,12 @@
// while generating routes-manifest
if (false) {
+ var routeKeys;
}
return {
re: new RegExp("^" + parameterizedRoute + "(?:/)?$", "i"),
- groups,
- namedRegex: namedParameterizedRoute
- ? "^".concat(namedParameterizedRoute, "(?:/)?$")
- : undefined
+ groups
};
}
Diff for index.html
@@ -24,7 +24,7 @@
/>
<link
rel="preload"
- href="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.f733a40f0fc0ecaa4b6c.module.js"
+ href="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.deb50154f80a4044eb84.module.js"
as="script"
crossorigin="anonymous"
/>
@@ -117,13 +117,13 @@
type="module"
></script>
<script
- src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.0ea083186308dcf890b6.js"
+ src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.c055dea44cbce095b7e0.js"
async=""
crossorigin="anonymous"
nomodule=""
></script>
<script
- src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.f733a40f0fc0ecaa4b6c.module.js"
+ src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.deb50154f80a4044eb84.module.js"
async=""
crossorigin="anonymous"
type="module"
Diff for link.html
@@ -24,7 +24,7 @@
/>
<link
rel="preload"
- href="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.f733a40f0fc0ecaa4b6c.module.js"
+ href="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.deb50154f80a4044eb84.module.js"
as="script"
crossorigin="anonymous"
/>
@@ -122,13 +122,13 @@
type="module"
></script>
<script
- src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.0ea083186308dcf890b6.js"
+ src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.c055dea44cbce095b7e0.js"
async=""
crossorigin="anonymous"
nomodule=""
></script>
<script
- src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.f733a40f0fc0ecaa4b6c.module.js"
+ src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.deb50154f80a4044eb84.module.js"
async=""
crossorigin="anonymous"
type="module"
Diff for withRouter.html
@@ -24,7 +24,7 @@
/>
<link
rel="preload"
- href="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.f733a40f0fc0ecaa4b6c.module.js"
+ href="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.deb50154f80a4044eb84.module.js"
as="script"
crossorigin="anonymous"
/>
@@ -117,13 +117,13 @@
type="module"
></script>
<script
- src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.0ea083186308dcf890b6.js"
+ src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.c055dea44cbce095b7e0.js"
async=""
crossorigin="anonymous"
nomodule=""
></script>
<script
- src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.f733a40f0fc0ecaa4b6c.module.js"
+ src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.deb50154f80a4044eb84.module.js"
async=""
crossorigin="anonymous"
type="module"
Serverless Mode (Increase detected ⚠️ )
General Overall increase ⚠️
vercel/next.js canary | ijjk/next.js update/route-keys | Change | |
---|---|---|---|
buildDuration | 13.3s | 13.8s | |
nodeModulesSize | 65.2 MB | 65.2 MB |
Client Bundles (main, webpack, commons) Overall decrease ✓
vercel/next.js canary | ijjk/next.js update/route-keys | Change | |
---|---|---|---|
main-HASH.js gzip | 6.51 kB | 6.51 kB | ✓ |
webpack-HASH.js gzip | 746 B | 746 B | ✓ |
de003c3a9d30..0538.js gzip | 10.5 kB | N/A | N/A |
framework.HASH.js gzip | 39.1 kB | 39.1 kB | ✓ |
de003c3a9d30..4dd5.js gzip | N/A | 10.5 kB | N/A |
Overall change | 56.9 kB | 56.9 kB | -8 B |
Client Bundles (main, webpack, commons) Modern Overall decrease ✓
vercel/next.js canary | ijjk/next.js update/route-keys | Change | |
---|---|---|---|
main-HASH.module.js gzip | 5.6 kB | 5.6 kB | ✓ |
webpack-HASH..dule.js gzip | 746 B | 746 B | ✓ |
de003c3a9d30..dule.js gzip | 6.93 kB | N/A | N/A |
framework.HA..dule.js gzip | 39.1 kB | 39.1 kB | ✓ |
de003c3a9d30..dule.js gzip | N/A | 6.92 kB | N/A |
Overall change | 52.4 kB | 52.4 kB | -9 B |
Legacy Client Bundles (polyfills)
vercel/next.js canary | ijjk/next.js update/route-keys | Change | |
---|---|---|---|
polyfills-HASH.js gzip | 26.3 kB | 26.3 kB | ✓ |
Overall change | 26.3 kB | 26.3 kB | ✓ |
Client Pages
vercel/next.js canary | ijjk/next.js update/route-keys | Change | |
---|---|---|---|
routerDirect.js gzip | 279 B | 279 B | ✓ |
withRouter.js gzip | 278 B | 278 B | ✓ |
_error.js gzip | 3.37 kB | 3.37 kB | ✓ |
index.js gzip | 222 B | 222 B | ✓ |
link.js gzip | 2.05 kB | 2.05 kB | ✓ |
hooks.js gzip | 881 B | 881 B | ✓ |
_app.js gzip | 1.26 kB | 1.26 kB | ✓ |
Overall change | 8.34 kB | 8.34 kB | ✓ |
Client Pages Modern
vercel/next.js canary | ijjk/next.js update/route-keys | Change | |
---|---|---|---|
index.module.js gzip | 223 B | 223 B | ✓ |
routerDirect..dule.js gzip | 281 B | 281 B | ✓ |
withRouter.m..dule.js gzip | 278 B | 278 B | ✓ |
hooks.module.js gzip | 383 B | 383 B | ✓ |
_error.module.js gzip | 2.21 kB | 2.21 kB | ✓ |
link.module.js gzip | 1.52 kB | 1.52 kB | ✓ |
_app.module.js gzip | 604 B | 604 B | ✓ |
Overall change | 5.49 kB | 5.49 kB | ✓ |
Client Build Manifests
vercel/next.js canary | ijjk/next.js update/route-keys | Change | |
---|---|---|---|
_buildManifest.js gzip | 270 B | 270 B | ✓ |
_buildManife..dule.js gzip | 274 B | 274 B | ✓ |
Overall change | 544 B | 544 B | ✓ |
Serverless bundles Overall increase ⚠️
vercel/next.js canary | ijjk/next.js update/route-keys | Change | |
---|---|---|---|
_error.js | 875 kB | 875 kB | ✓ |
404.html | 4.17 kB | 4.17 kB | ✓ |
hooks.html | 3.79 kB | 3.79 kB | ✓ |
index.js | 875 kB | 875 kB | ✓ |
link.js | 913 kB | 913 kB | |
routerDirect.js | 905 kB | 906 kB | |
withRouter.js | 905 kB | 906 kB | |
Overall change | 4.48 MB | 4.48 MB |
This updates the named regexes output in the `routes-manifest` and the associated `routeKeys` to not use any non-word characters as this breaks the named regexes e.g. `"Invalid regular expression: "^/(?<data\-provider\-id>[^/]+?)(?:/)?$"` x-ref: vercel/vercel#4355
This updates to leverage changes from vercel/next.js#12801 which resolves invalid named regexes being used when the segments contain non-word characters e.g. `/[hello-world]`. Failing page names have also been added to the `23-custom-routes-verbose` fixture. Since the routeKeys aren't applied for dynamic routes in this PR until the routes-manifest version is bumped in the latest canary of Next.js the added test cases will be passing now and should be re-run to ensure passing after a new canary of Next.js is released with the routes-manifest version bump
This updates the named regexes output in the
routes-manifest
and the associatedrouteKeys
to not use any non-word characters as this breaks the named regexes e.g."Invalid regular expression: "^/(?<data\-provider\-id>[^/]+?)(?:/)?$"
x-ref: vercel/vercel#4355