Skip to content
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

Merged
merged 11 commits into from Jun 16, 2020

Conversation

ijjk
Copy link
Member

@ijjk ijjk commented May 12, 2020

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

@ijjk ijjk added the Type: Bug label May 12, 2020
@ijjk ijjk added this to the 9.4.1 milestone May 12, 2020
@ijjk
Copy link
Member Author

ijjk commented May 12, 2020

Stats from current PR

Default Server Mode (Increase detected ⚠️)
General Overall increase ⚠️
zeit/next.js canary ijjk/next.js update/route-keys Change
buildDuration 11.3s 11.7s ⚠️ +369ms
nodeModulesSize 58.7 MB 58.7 MB ⚠️ +601 B
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 ⚠️ +35.86
/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 ⚠️ +85.18
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 ⚠️ +1 B
link.html gzip 937 B 938 B ⚠️ +1 B
withRouter.html gzip 925 B 926 B ⚠️ +1 B
Overall change 2.79 kB 2.79 kB ⚠️ +3 B

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 ⚠️ +211ms
nodeModulesSize 58.7 MB 58.7 MB ⚠️ +601 B
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 ⚠️ +193 B
routerDirect.js 880 kB 880 kB ⚠️ +193 B
withRouter.js 880 kB 880 kB ⚠️ +193 B
Overall change 4.35 MB 4.35 MB ⚠️ +579 B

Copy link
Member

@Timer Timer left a 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?

@Timer Timer self-assigned this May 23, 2020
@Timer Timer modified the milestones: 9.4.3, 9.4.4 May 28, 2020
# Conflicts:
#	packages/next/build/index.ts
#	packages/next/next-server/lib/router/utils/route-regex.ts
@ijjk
Copy link
Member Author

ijjk commented Jun 12, 2020

@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 routeKeys shape although those versions will encounter the bug when non-word characters are used in a dynamic route segment 🤔 so not sure, what do you think?

Versions of the builder expecting previous routeKeys shape:

Canary builders
@now/next@2.5.5-canary.5
@vercel/next@2.5.5-canary.7
@vercel/next@2.6.1-canary.0

Stable builders
@vercel/next@2.6.0
@vercel/next@2.6.1

@Timer Timer modified the milestones: 9.4.5, 9.x.x Jun 12, 2020
@ijjk
Copy link
Member Author

ijjk commented Jun 12, 2020

Stats from current PR

Default Server Mode (Increase detected ⚠️)
General Overall increase ⚠️
vercel/next.js canary ijjk/next.js update/route-keys Change
buildDuration 12.7s 12.3s -444ms
nodeModulesSize 65.2 MB 65.2 MB ⚠️ +1.37 kB
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 ⚠️ +0.01
/ 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 ⚠️ +0.03
/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 ⚠️ +197 B
framework.HASH.js gzip 39.1 kB 39.1 kB
Overall change 56.9 kB 57.1 kB ⚠️ +197 B
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 ⚠️ +207 B
framework.HA..dule.js gzip 39.1 kB 39.1 kB
Overall change 52.4 kB 52.6 kB ⚠️ +207 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
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 ⚠️ +277ms
nodeModulesSize 65.2 MB 65.2 MB ⚠️ +1.37 kB
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 ⚠️ +197 B
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 ⚠️ +207 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 ⚠️ +1.3 kB
routerDirect.js 905 kB 907 kB ⚠️ +1.3 kB
withRouter.js 905 kB 907 kB ⚠️ +1.3 kB
Overall change 4.48 MB 4.48 MB ⚠️ +3.89 kB

@ijjk

This comment has been minimized.

@ijjk
Copy link
Member Author

ijjk commented Jun 12, 2020

Stats from current PR

Default Server Mode (Increase detected ⚠️)
General Overall increase ⚠️
vercel/next.js canary ijjk/next.js update/route-keys Change
buildDuration 13s 12.7s -333ms
nodeModulesSize 65.2 MB 65.2 MB ⚠️ +1.37 kB
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 ⚠️ +1.33
/error-in-render failed reqs 0 0
/error-in-render total time (seconds) 1.443 1.449 ⚠️ +0.01
/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 ⚠️ +197 B
framework.HASH.js gzip 39.1 kB 39.1 kB
Overall change 56.9 kB 57.1 kB ⚠️ +197 B
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 ⚠️ +207 B
framework.HA..dule.js gzip 39.1 kB 39.1 kB
Overall change 52.4 kB 52.6 kB ⚠️ +207 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
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 ⚠️ +1.37 kB
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 ⚠️ +197 B
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 ⚠️ +207 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 ⚠️ +1.3 kB
routerDirect.js 905 kB 907 kB ⚠️ +1.3 kB
withRouter.js 905 kB 907 kB ⚠️ +1.3 kB
Overall change 4.48 MB 4.48 MB ⚠️ +3.89 kB

@ijjk
Copy link
Member Author

ijjk commented Jun 12, 2020

Stats from current PR

Default Server Mode (Decrease detected ✓)
General Overall increase ⚠️
vercel/next.js canary ijjk/next.js update/route-keys Change
buildDuration 10.8s 10.9s ⚠️ +125ms
nodeModulesSize 65.2 MB 65.2 MB ⚠️ +1.49 kB
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 ⚠️ +0.02
/ 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 ⚠️ +0.01
/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 ⚠️ +1.49 kB
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 ⚠️ +257 B
routerDirect.js 905 kB 906 kB ⚠️ +257 B
withRouter.js 905 kB 906 kB ⚠️ +257 B
Overall change 4.48 MB 4.48 MB ⚠️ +771 B

@ijjk ijjk requested a review from Timer June 12, 2020 21:40
Copy link
Member

@Timer Timer left a 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.

@ijjk
Copy link
Member Author

ijjk commented Jun 15, 2020

Stats from current PR

Default Server Mode (Increase detected ⚠️)
General Overall increase ⚠️
vercel/next.js canary ijjk/next.js update/route-keys Change
buildDuration 11.3s 11.5s ⚠️ +258ms
nodeModulesSize 65.2 MB 65.2 MB ⚠️ +1.49 kB
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 ⚠️ +2.89
/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 ⚠️ +88.23
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 ⚠️ +34ms
nodeModulesSize 65.2 MB 65.2 MB ⚠️ +1.49 kB
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 ⚠️ +259 B
routerDirect.js 906 kB 906 kB ⚠️ +259 B
withRouter.js 906 kB 906 kB ⚠️ +259 B
Overall change 4.48 MB 4.48 MB ⚠️ +777 B

@ijjk ijjk requested a review from Timer June 15, 2020 03:52
kodiakhq bot pushed a commit to vercel/vercel that referenced this pull request Jun 15, 2020
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
@ijjk
Copy link
Member Author

ijjk commented Jun 15, 2020

Stats from current PR

Default Server Mode (Increase detected ⚠️)
General Overall increase ⚠️
vercel/next.js canary ijjk/next.js update/route-keys Change
buildDuration 11s 11.3s ⚠️ +347ms
nodeModulesSize 65.2 MB 65.2 MB ⚠️ +1.49 kB
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 ⚠️ +0.09
/ 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 ⚠️ +342.03
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 ⚠️ +1.49 kB
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 ⚠️ +259 B
routerDirect.js 905 kB 906 kB ⚠️ +259 B
withRouter.js 905 kB 906 kB ⚠️ +259 B
Overall change 4.48 MB 4.48 MB ⚠️ +777 B

@Timer Timer modified the milestones: 9.x.x, iteration 3 Jun 16, 2020
@ijjk
Copy link
Member Author

ijjk commented Jun 16, 2020

Stats from current PR

Default Server Mode (Increase detected ⚠️)
General Overall increase ⚠️
vercel/next.js canary ijjk/next.js update/route-keys Change
buildDuration 12.3s 11.7s -559ms
nodeModulesSize 65.2 MB 65.2 MB ⚠️ +1.49 kB
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 ⚠️ +53.73
/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 ⚠️ +159
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 ⚠️ +542ms
nodeModulesSize 65.2 MB 65.2 MB ⚠️ +1.49 kB
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 ⚠️ +259 B
routerDirect.js 905 kB 906 kB ⚠️ +259 B
withRouter.js 905 kB 906 kB ⚠️ +259 B
Overall change 4.48 MB 4.48 MB ⚠️ +777 B

@kodiakhq kodiakhq bot merged commit 08d7755 into vercel:canary Jun 16, 2020
@ijjk ijjk deleted the update/route-keys branch June 16, 2020 13:53
rokinsky pushed a commit to rokinsky/next.js that referenced this pull request Jul 11, 2020
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
ofhouse pushed a commit to milliHQ/terraform-aws-next-js that referenced this pull request Mar 13, 2021
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
@vercel vercel locked as resolved and limited conversation to collaborators Jan 30, 2022
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants