next.js
next.js copied to clipboard
Allow shallow routing for history back/forward
- Added
experimental.popStateShallowRoute
option which allows you to always shallow route when history back/forward
Closes https://github.com/vercel/next.js/issues/7814
Stats from current PR
Default Server Mode (Increase detected ⚠️)
General Overall increase ⚠️
vercel/next.js canary | okmttdhr/next.js story/popstate-shallow-route | Change | |
---|---|---|---|
buildDuration | 11.1s | 11.2s | ⚠️ +179ms |
nodeModulesSize | 69.8 MB | 69.8 MB | ⚠️ +715 B |
Page Load Tests Overall decrease ⚠️
vercel/next.js canary | okmttdhr/next.js story/popstate-shallow-route | Change | |
---|---|---|---|
/ failed reqs | 0 | 0 | ✓ |
/ total time (seconds) | 2.213 | 2.291 | ⚠️ +0.08 |
/ avg req/sec | 1129.75 | 1091.15 | ⚠️ -38.6 |
/error-in-render failed reqs | 0 | 0 | ✓ |
/error-in-render total time (seconds) | 1.444 | 1.543 | ⚠️ +0.1 |
/error-in-render avg req/sec | 1730.92 | 1619.84 | ⚠️ -111.08 |
Client Bundles (main, webpack, commons) Overall increase ⚠️
vercel/next.js canary | okmttdhr/next.js story/popstate-shallow-route | Change | |
---|---|---|---|
677f882d2ed8..5cb0.js gzip | 13.1 kB | 13.2 kB | ⚠️ +29 B |
framework.HASH.js gzip | 39 kB | 39 kB | ✓ |
main-HASH.js gzip | 6.63 kB | 6.63 kB | ✓ |
webpack-HASH.js gzip | 751 B | 751 B | ✓ |
Overall change | 59.5 kB | 59.5 kB | ⚠️ +29 B |
Legacy Client Bundles (polyfills)
vercel/next.js canary | okmttdhr/next.js story/popstate-shallow-route | Change | |
---|---|---|---|
polyfills-HASH.js gzip | 31.3 kB | 31.3 kB | ✓ |
Overall change | 31.3 kB | 31.3 kB | ✓ |
Client Pages
vercel/next.js canary | okmttdhr/next.js story/popstate-shallow-route | Change | |
---|---|---|---|
_app-2a09aa2..4a98.js gzip | 1.28 kB | 1.28 kB | ✓ |
_error-8b758..aef6.js gzip | 3.46 kB | 3.46 kB | ✓ |
amp-e3e9bc99..932c.js gzip | 536 B | 536 B | ✓ |
hooks-5023ef..3670.js gzip | 888 B | 888 B | ✓ |
index-3a2b03..c677.js gzip | 227 B | 227 B | ✓ |
link-177412b..043e.js gzip | 1.67 kB | 1.67 kB | ✓ |
routerDirect..1a66.js gzip | 303 B | 303 B | ✓ |
withRouter-9..1b7d.js gzip | 302 B | 302 B | ✓ |
Overall change | 8.66 kB | 8.66 kB | ✓ |
Client Build Manifests
vercel/next.js canary | okmttdhr/next.js story/popstate-shallow-route | Change | |
---|---|---|---|
_buildManifest.js gzip | 347 B | 347 B | ✓ |
Overall change | 347 B | 347 B | ✓ |
Rendered Page Sizes Overall increase ⚠️
vercel/next.js canary | okmttdhr/next.js story/popstate-shallow-route | Change | |
---|---|---|---|
index.html gzip | 614 B | 615 B | ⚠️ +1 B |
link.html gzip | 621 B | 622 B | ⚠️ +1 B |
withRouter.html gzip | 608 B | 609 B | ⚠️ +1 B |
Overall change | 1.84 kB | 1.85 kB | ⚠️ +3 B |
Diffs
Diff for 677f882d2ed8..fb73c6f26.js
@@ -1666,7 +1666,8 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
shallow: options.shallow && _this._shallow,
locale: options.locale || _this.defaultLocale
}),
- forcedScroll
+ forcedScroll,
+ true
);
}; // represents the current component key
@@ -1822,7 +1823,8 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
url,
as,
options,
- forcedScroll
+ forcedScroll,
+ isPopState
) {
var _this2 = this;
@@ -1855,6 +1857,10 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
shouldInterpolate,
interpolatedAs,
missingParams,
+ POP_STATE_SHALLOW_ROUTE_OPTION,
+ isSamePageURLChange,
+ isPopStateShallowRoute,
+ isValidShallowRoute,
routeInfo,
_routeInfo,
error,
@@ -1867,8 +1873,7 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
newUrl,
newAs,
notFoundRoute,
- appComp,
- isValidShallowRoute;
+ appComp;
return _regeneratorRuntime.wrap(
function _callee$(_context) {
@@ -2219,17 +2224,25 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
routeProps
);
_context.prev = 79;
- _context.next = 82;
+ POP_STATE_SHALLOW_ROUTE_OPTION = false;
+ isSamePageURLChange = this.route === route;
+ isPopStateShallowRoute =
+ isPopState && POP_STATE_SHALLOW_ROUTE_OPTION;
+ isValidShallowRoute =
+ (options.shallow && isSamePageURLChange) ||
+ isPopStateShallowRoute;
+ _context.next = 86;
return this.getRouteInfo(
route,
pathname,
query,
as,
resolvedAs,
- routeProps
+ routeProps,
+ isValidShallowRoute
);
- case 82:
+ case 86:
routeInfo = _context.sent;
(_routeInfo = routeInfo),
(error = _routeInfo.error),
@@ -2238,14 +2251,14 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
(__N_SSP = _routeInfo.__N_SSP); // handle redirect on client-transition
if (!((__N_SSG || __N_SSP) && props)) {
- _context.next = 108;
+ _context.next = 112;
break;
}
if (
!(props.pageProps && props.pageProps.__N_REDIRECT)
) {
- _context.next = 95;
+ _context.next = 99;
break;
}
@@ -2254,7 +2267,7 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
// it's not
if (!destination.startsWith("/")) {
- _context.next = 93;
+ _context.next = 97;
break;
}
@@ -2264,7 +2277,7 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
this._resolveHref(parsedHref, pages, false);
if (!pages.includes(parsedHref.pathname)) {
- _context.next = 93;
+ _context.next = 97;
break;
}
@@ -2280,35 +2293,35 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
this.change(method, newUrl, newAs, options)
);
- case 93:
+ case 97:
window.location.href = destination;
return _context.abrupt(
"return",
new Promise(function() {})
);
- case 95:
+ case 99:
if (!(props.notFound === SSG_DATA_NOT_FOUND)) {
- _context.next = 108;
+ _context.next = 112;
break;
}
- _context.prev = 96;
- _context.next = 99;
+ _context.prev = 100;
+ _context.next = 103;
return this.fetchComponent("/404");
- case 99:
+ case 103:
notFoundRoute = "/404";
- _context.next = 105;
+ _context.next = 109;
break;
- case 102:
- _context.prev = 102;
- _context.t1 = _context["catch"](96);
+ case 106:
+ _context.prev = 106;
+ _context.t1 = _context["catch"](100);
notFoundRoute = "/_error";
- case 105:
- _context.next = 107;
+ case 109:
+ _context.next = 111;
return this.getRouteInfo(
notFoundRoute,
notFoundRoute,
@@ -2317,13 +2330,14 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
resolvedAs,
{
shallow: false
- }
+ },
+ false
);
- case 107:
+ case 111:
routeInfo = _context.sent;
- case 108:
+ case 112:
Router.events.emit(
"beforeHistoryChange",
as,
@@ -2332,11 +2346,9 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
this.changeState(method, url, as, options);
if (false) {
- } // shallow routing is only allowed for same page URL changes.
+ }
- isValidShallowRoute =
- options.shallow && this.route === route;
- _context.next = 114;
+ _context.next = 117;
return this.set(
route,
pathname,
@@ -2355,9 +2367,9 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
else throw e;
});
- case 114:
+ case 117:
if (!error) {
- _context.next = 117;
+ _context.next = 120;
break;
}
@@ -2369,7 +2381,7 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
);
throw error;
- case 117:
+ case 120:
if (false) {
}
@@ -2380,21 +2392,21 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
);
return _context.abrupt("return", true);
- case 122:
- _context.prev = 122;
+ case 125:
+ _context.prev = 125;
_context.t2 = _context["catch"](79);
if (!_context.t2.cancelled) {
- _context.next = 126;
+ _context.next = 129;
break;
}
return _context.abrupt("return", false);
- case 126:
+ case 129:
throw _context.t2;
- case 127:
+ case 130:
case "end":
return _context.stop();
}
@@ -2404,14 +2416,14 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
this,
[
[36, 46],
- [79, 122],
- [96, 102]
+ [79, 125],
+ [100, 106]
]
);
})
);
- function change(_x, _x2, _x3, _x4, _x5) {
+ function change(_x, _x2, _x3, _x4, _x5, _x6) {
return _change.apply(this, arguments);
}
@@ -2596,7 +2608,7 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
})
);
- function handleRouteInfoError(_x6, _x7, _x8, _x9, _x10, _x11) {
+ function handleRouteInfoError(_x7, _x8, _x9, _x10, _x11, _x12) {
return _handleRouteInfoError.apply(this, arguments);
}
@@ -2613,7 +2625,8 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
query,
as,
resolvedAs,
- routeProps
+ routeProps,
+ isValidShallowRoute
) {
var _this3 = this;
@@ -2636,13 +2649,7 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
_context3.prev = 0;
existingRouteInfo = this.components[route];
- if (
- !(
- routeProps.shallow &&
- existingRouteInfo &&
- this.route === route
- )
- ) {
+ if (!(isValidShallowRoute && existingRouteInfo)) {
_context3.next = 4;
break;
}
@@ -2781,7 +2788,7 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
})
);
- function getRouteInfo(_x12, _x13, _x14, _x15, _x16, _x17) {
+ function getRouteInfo(_x13, _x14, _x15, _x16, _x17, _x18, _x19) {
return _getRouteInfo.apply(this, arguments);
}
@@ -3019,7 +3026,7 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
})
);
- function prefetch(_x18) {
+ function prefetch(_x20) {
return _prefetch.apply(this, arguments);
}
@@ -3084,7 +3091,7 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
})
);
- function fetchComponent(_x19) {
+ function fetchComponent(_x21) {
return _fetchComponent.apply(this, arguments);
}
Diff for index.html
@@ -22,7 +22,7 @@
/>
<link
rel="preload"
- href="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.7cb49231e31fb73c6f26.js"
+ href="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.64024eb38acf8c1db474.js"
as="script"
/>
<link
@@ -65,7 +65,7 @@
async=""
></script>
<script
- src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.7cb49231e31fb73c6f26.js"
+ src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.64024eb38acf8c1db474.js"
async=""
></script>
<script
Diff for link.html
@@ -22,7 +22,7 @@
/>
<link
rel="preload"
- href="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.7cb49231e31fb73c6f26.js"
+ href="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.64024eb38acf8c1db474.js"
as="script"
/>
<link
@@ -70,7 +70,7 @@
async=""
></script>
<script
- src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.7cb49231e31fb73c6f26.js"
+ src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.64024eb38acf8c1db474.js"
async=""
></script>
<script
Diff for withRouter.html
@@ -22,7 +22,7 @@
/>
<link
rel="preload"
- href="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.7cb49231e31fb73c6f26.js"
+ href="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.64024eb38acf8c1db474.js"
as="script"
/>
<link
@@ -65,7 +65,7 @@
async=""
></script>
<script
- src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.7cb49231e31fb73c6f26.js"
+ src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.64024eb38acf8c1db474.js"
async=""
></script>
<script
Serverless Mode (Increase detected ⚠️)
General Overall increase ⚠️
vercel/next.js canary | okmttdhr/next.js story/popstate-shallow-route | Change | |
---|---|---|---|
buildDuration | 13.4s | 13.9s | ⚠️ +529ms |
nodeModulesSize | 69.8 MB | 69.8 MB | ⚠️ +715 B |
Client Bundles (main, webpack, commons) Overall increase ⚠️
vercel/next.js canary | okmttdhr/next.js story/popstate-shallow-route | Change | |
---|---|---|---|
677f882d2ed8..5cb0.js gzip | 13.1 kB | N/A | N/A |
framework.HASH.js gzip | 39 kB | 39 kB | ✓ |
main-HASH.js gzip | 6.63 kB | 6.63 kB | ✓ |
webpack-HASH.js gzip | 751 B | 751 B | ✓ |
677f882d2ed8..5080.js gzip | N/A | 13.2 kB | N/A |
Overall change | 59.5 kB | 59.5 kB | ⚠️ +29 B |
Legacy Client Bundles (polyfills)
vercel/next.js canary | okmttdhr/next.js story/popstate-shallow-route | Change | |
---|---|---|---|
polyfills-HASH.js gzip | 31.3 kB | 31.3 kB | ✓ |
Overall change | 31.3 kB | 31.3 kB | ✓ |
Client Pages
vercel/next.js canary | okmttdhr/next.js story/popstate-shallow-route | Change | |
---|---|---|---|
_app-2a09aa2..4a98.js gzip | 1.28 kB | 1.28 kB | ✓ |
_error-8b758..aef6.js gzip | 3.46 kB | 3.46 kB | ✓ |
amp-e3e9bc99..932c.js gzip | 536 B | 536 B | ✓ |
hooks-5023ef..3670.js gzip | 888 B | 888 B | ✓ |
index-3a2b03..c677.js gzip | 227 B | 227 B | ✓ |
link-177412b..043e.js gzip | 1.67 kB | 1.67 kB | ✓ |
routerDirect..1a66.js gzip | 303 B | 303 B | ✓ |
withRouter-9..1b7d.js gzip | 302 B | 302 B | ✓ |
Overall change | 8.66 kB | 8.66 kB | ✓ |
Client Build Manifests
vercel/next.js canary | okmttdhr/next.js story/popstate-shallow-route | Change | |
---|---|---|---|
_buildManifest.js gzip | 347 B | 347 B | ✓ |
Overall change | 347 B | 347 B | ✓ |
Serverless bundles Overall increase ⚠️
vercel/next.js canary | okmttdhr/next.js story/popstate-shallow-route | Change | |
---|---|---|---|
_error.js | 1.01 MB | 1.01 MB | ✓ |
404.html | 2.67 kB | 2.67 kB | ✓ |
amp.amp.html | 10.4 kB | 10.4 kB | ✓ |
amp.html | 1.86 kB | 1.86 kB | ✓ |
hooks.html | 1.92 kB | 1.92 kB | ✓ |
index.js | 1.01 MB | 1.01 MB | ✓ |
link.js | 1.06 MB | 1.06 MB | ⚠️ +197 B |
routerDirect.js | 1.06 MB | 1.06 MB | ⚠️ +197 B |
withRouter.js | 1.06 MB | 1.06 MB | ⚠️ +197 B |
Overall change | 5.2 MB | 5.2 MB | ⚠️ +591 B |
Webpack 5 Mode (Increase detected ⚠️)
General Overall increase ⚠️
vercel/next.js canary | okmttdhr/next.js story/popstate-shallow-route | Change | |
---|---|---|---|
buildDuration | 13.2s | 13.4s | ⚠️ +180ms |
nodeModulesSize | 69.8 MB | 69.8 MB | ⚠️ +715 B |
Page Load Tests Overall decrease ⚠️
vercel/next.js canary | okmttdhr/next.js story/popstate-shallow-route | Change | |
---|---|---|---|
/ failed reqs | 0 | 0 | ✓ |
/ total time (seconds) | 2.187 | 2.191 | 0 |
/ avg req/sec | 1143.17 | 1140.8 | ⚠️ -2.37 |
/error-in-render failed reqs | 0 | 0 | ✓ |
/error-in-render total time (seconds) | 1.495 | 1.531 | ⚠️ +0.04 |
/error-in-render avg req/sec | 1672.54 | 1633.03 | ⚠️ -39.51 |
Client Bundles (main, webpack, commons) Overall increase ⚠️
vercel/next.js canary | okmttdhr/next.js story/popstate-shallow-route | Change | |
---|---|---|---|
597-d08f5fe5..d690.js gzip | 13.1 kB | 13.1 kB | ⚠️ +21 B |
framework.HASH.js gzip | 39.3 kB | 39.3 kB | ✓ |
main-HASH.js gzip | 6.58 kB | 6.58 kB | ✓ |
webpack-HASH.js gzip | 954 B | 954 B | ✓ |
Overall change | 59.9 kB | 59.9 kB | ⚠️ +21 B |
Legacy Client Bundles (polyfills)
vercel/next.js canary | okmttdhr/next.js story/popstate-shallow-route | Change | |
---|---|---|---|
polyfills-HASH.js gzip | 31.1 kB | 31.1 kB | ✓ |
Overall change | 31.1 kB | 31.1 kB | ✓ |
Client Pages
vercel/next.js canary | okmttdhr/next.js story/popstate-shallow-route | Change | |
---|---|---|---|
_app-6e0a903..b885.js gzip | 1.26 kB | 1.26 kB | ✓ |
_error-9e190..f9d6.js gzip | 3.38 kB | 3.38 kB | ✓ |
amp-7fd79cc4..99ee.js gzip | 538 B | 538 B | ✓ |
hooks-f7e199..11b9.js gzip | 904 B | 904 B | ✓ |
index-3dc22c..ffbb.js gzip | 232 B | 232 B | ✓ |
link-7cc9e62..ef27.js gzip | 1.66 kB | 1.66 kB | ✓ |
routerDirect..323a.js gzip | 308 B | 308 B | ✓ |
withRouter-a..2ef8.js gzip | 304 B | 304 B | ✓ |
Overall change | 8.59 kB | 8.59 kB | ✓ |
Client Build Manifests
vercel/next.js canary | okmttdhr/next.js story/popstate-shallow-route | Change | |
---|---|---|---|
_buildManifest.js gzip | 322 B | 322 B | ✓ |
Overall change | 322 B | 322 B | ✓ |
Rendered Page Sizes Overall decrease ✓
vercel/next.js canary | okmttdhr/next.js story/popstate-shallow-route | Change | |
---|---|---|---|
index.html gzip | 586 B | 585 B | -1 B |
link.html gzip | 593 B | 591 B | -2 B |
withRouter.html gzip | 580 B | 578 B | -2 B |
Overall change | 1.76 kB | 1.75 kB | -5 B |
Diffs
Diff for 677f882d2ed8..7293b5cb0.js
@@ -424,7 +424,7 @@
l,
a(
n.mark(function a() {
- var u, c, s, l, y, m, g, w;
+ var u, c, s, l, y, m, g, b;
return n.wrap(
function(n) {
for (;;)
@@ -465,8 +465,8 @@
case 13:
return (
(g = n.sent),
- (w = Object.assign({ styles: m }, g)),
- n.abrupt("return", "error" in g ? g : w)
+ (b = Object.assign({ styles: m }, g)),
+ n.abrupt("return", "error" in g ? g : b)
);
case 18:
return (
@@ -719,7 +719,7 @@
0;
return !1;
}),
- (e.addLocale = b),
+ (e.addLocale = w),
(e.delLocale = _),
(e.hasBasePath = k),
(e.addBasePath = P),
@@ -741,10 +741,10 @@
function g(t) {
return t && t.__esModule ? t : { default: t };
}
- function w() {
+ function b() {
return Object.assign(new Error("Route Cancelled"), { cancelled: !0 });
}
- function b(t, e, r) {
+ function w(t, e, r) {
return t;
}
function _(t, e) {
@@ -900,7 +900,7 @@
y = o.err,
m = o.subscription,
g = o.isFallback,
- w = o.locale;
+ b = o.locale;
o.locales, o.defaultLocale, o.domainLocales;
a(this, t),
(this.route = void 0),
@@ -947,7 +947,8 @@
shallow: o.shallow && i._shallow,
locale: o.locale || i.defaultLocale
}),
- undefined
+ undefined,
+ !0
);
}
} else {
@@ -976,8 +977,8 @@
(this.pageLoader = s),
(this.pathname = e),
(this.query = r);
- var b = (0, p.isDynamicRoute)(e) && self.__NEXT_DATA__.autoExport;
- (this.asPath = b ? e : n),
+ var w = (0, p.isDynamicRoute)(e) && self.__NEXT_DATA__.autoExport;
+ (this.asPath = w ? e : n),
(this.basePath = ""),
(this.sub = m),
(this.clc = null),
@@ -987,7 +988,7 @@
(this.isReady = !(
!self.__NEXT_DATA__.gssp &&
!self.__NEXT_DATA__.gip &&
- (b || self.location.search)
+ (w || self.location.search)
)),
(this.isLocaleDomain = !1),
"//" !== n.substr(0, 2) &&
@@ -995,7 +996,7 @@
"replaceState",
(0, h.formatWithValidation)({ pathname: P(e), query: r }),
(0, h.getURL)(),
- { locale: w }
+ { locale: b }
),
window.addEventListener("popstate", this.onPopState);
}
@@ -1043,12 +1044,11 @@
key: "change",
value: (function() {
var e = o(
- n.mark(function e(r, o, a, i, u) {
- var l,
- f,
+ n.mark(function e(r, o, a, i, u, l) {
+ var f,
v,
g,
- w,
+ b,
x,
O,
C,
@@ -1076,7 +1076,10 @@
tt,
et,
rt,
- nt;
+ nt,
+ ot,
+ at,
+ it;
return n.wrap(
function(e) {
for (;;)
@@ -1092,61 +1095,61 @@
);
case 3:
i._h && (this.isReady = !0),
- (i.scroll = !(null != (l = i.scroll) && !l)),
- (f = i.locale !== this.locale),
+ (i.scroll = !(null != (f = i.scroll) && !f)),
+ (v = i.locale !== this.locale),
(e.next = 18);
break;
case 18:
if (
(i._h || (this.isSsr = !1),
h.ST && performance.mark("routeChange"),
- (v = i.shallow),
- (g = { shallow: void 0 !== v && v }),
+ (g = i.shallow),
+ (b = { shallow: void 0 !== g && g }),
this._inFlightRoute &&
this.abortComponentLoad(
this._inFlightRoute,
- g
+ b
),
(a = P(
- b(
+ w(
k(a) ? S(a) : a,
i.locale,
this.defaultLocale
)
)),
- (w = _(k(a) ? S(a) : a, this.locale)),
+ (x = _(k(a) ? S(a) : a, this.locale)),
(this._inFlightRoute = a),
- i._h || !this.onlyAHashChange(w))
+ i._h || !this.onlyAHashChange(x))
) {
e.next = 34;
break;
}
return (
- (this.asPath = w),
- t.events.emit("hashChangeStart", a, g),
+ (this.asPath = x),
+ t.events.emit("hashChangeStart", a, b),
this.changeState(r, o, a, i),
- this.scrollToHash(w),
+ this.scrollToHash(x),
this.notify(this.components[this.route], null),
- t.events.emit("hashChangeComplete", a, g),
+ t.events.emit("hashChangeComplete", a, b),
e.abrupt("return", !0)
);
case 34:
return (
- (x = (0, d.parseRelativeUrl)(o)),
- (C = (O = x).pathname),
- (T = O.query),
+ (O = (0, d.parseRelativeUrl)(o)),
+ (T = (C = O).pathname),
+ (A = C.query),
(e.prev = 36),
(e.next = 39),
this.pageLoader.getPageList()
);
case 39:
return (
- (A = e.sent),
+ (D = e.sent),
(e.next = 42),
(0, s.getClientBuildManifest)()
);
case 42:
- (D = e.sent), D.__rewrites, (e.next = 50);
+ (M = e.sent), M.__rewrites, (e.next = 50);
break;
case 46:
return (
@@ -1157,15 +1160,15 @@
);
case 50:
if (
- ((x = this._resolveHref(x, A)).pathname !== C &&
- ((C = x.pathname),
- (o = (0, h.formatWithValidation)(x))),
- (C = C
- ? (0, c.removePathTrailingSlash)(S(C))
- : C),
- this.urlIsNew(w) || f || (r = "replaceState"),
- (M = (0, c.removePathTrailingSlash)(C)),
- (N = a),
+ ((O = this._resolveHref(O, D)).pathname !== T &&
+ ((T = O.pathname),
+ (o = (0, h.formatWithValidation)(O))),
+ (T = T
+ ? (0, c.removePathTrailingSlash)(S(T))
+ : T),
+ this.urlIsNew(x) || v || (r = "replaceState"),
+ (N = (0, c.removePathTrailingSlash)(T)),
+ (U = a),
E(a))
) {
e.next = 62;
@@ -1180,29 +1183,29 @@
);
case 62:
if (
- ((N = _(S(N), this.locale)),
- !(0, p.isDynamicRoute)(M))
+ ((U = _(S(U), this.locale)),
+ !(0, p.isDynamicRoute)(N))
) {
e.next = 78;
break;
}
if (
- ((U = (0, d.parseRelativeUrl)(N)),
- (W = U.pathname),
- (q = (0, m.getRouteRegex)(M)),
- (F = (0, y.getRouteMatcher)(q)(W)),
- (B = (G = M === W) ? R(M, W, T) : {}),
- F && (!G || B.result))
+ ((W = (0, d.parseRelativeUrl)(U)),
+ (q = W.pathname),
+ (F = (0, m.getRouteRegex)(N)),
+ (G = (0, y.getRouteMatcher)(F)(q)),
+ (H = (B = N === q) ? R(N, q, A) : {}),
+ G && (!B || H.result))
) {
e.next = 77;
break;
}
if (
!(
- (H = Object.keys(q.groups).filter(function(
+ (V = Object.keys(F.groups).filter(function(
t
) {
- return !T[t];
+ return !A[t];
})).length > 0
)
) {
@@ -1210,24 +1213,24 @@
break;
}
throw new Error(
- (G
+ (B
? "The provided `href` ("
.concat(
o,
") value is missing query values ("
)
.concat(
- H.join(", "),
+ V.join(", "),
") to be interpolated properly. "
)
: "The provided `as` value ("
.concat(
- W,
+ q,
") is incompatible with the `href` value ("
)
- .concat(M, "). ")) +
+ .concat(N, "). ")) +
"Read more: https://err.sh/vercel/next.js/".concat(
- G
+ B
? "href-interpolation-failed"
: "incompatible-href-as"
)
@@ -1236,131 +1239,140 @@
e.next = 78;
break;
case 77:
- G
+ B
? (a = (0, h.formatWithValidation)(
- Object.assign({}, U, {
- pathname: B.result,
- query: L(T, B.params)
+ Object.assign({}, W, {
+ pathname: H.result,
+ query: L(A, H.params)
})
))
- : Object.assign(T, F);
+ : Object.assign(A, G);
case 78:
return (
- t.events.emit("routeChangeStart", a, g),
+ t.events.emit("routeChangeStart", a, b),
(e.prev = 79),
- (e.next = 82),
- this.getRouteInfo(M, C, T, a, N, g)
+ !1,
+ (X = this.route === N),
+ (z = l && false),
+ (J = (i.shallow && X) || z),
+ (e.next = 86),
+ this.getRouteInfo(N, T, A, a, U, b, J)
);
- case 82:
+ case 86:
if (
- ((V = e.sent),
- (z = (X = V).error),
- (J = X.props),
- ($ = X.__N_SSG),
- (Y = X.__N_SSP),
- (!$ && !Y) || !J)
+ (($ = e.sent),
+ (Q = (Y = $).error),
+ (Z = Y.props),
+ (K = Y.__N_SSG),
+ (tt = Y.__N_SSP),
+ (!K && !tt) || !Z)
) {
- e.next = 108;
+ e.next = 112;
break;
}
- if (!J.pageProps || !J.pageProps.__N_REDIRECT) {
- e.next = 95;
+ if (!Z.pageProps || !Z.pageProps.__N_REDIRECT) {
+ e.next = 99;
break;
}
if (
- !(Q = J.pageProps.__N_REDIRECT).startsWith("/")
+ !(et = Z.pageProps.__N_REDIRECT).startsWith("/")
) {
- e.next = 93;
+ e.next = 97;
break;
}
if (
- ((Z = (0, d.parseRelativeUrl)(Q)),
- this._resolveHref(Z, A, !1),
- !A.includes(Z.pathname))
+ ((rt = (0, d.parseRelativeUrl)(et)),
+ this._resolveHref(rt, D, !1),
+ !D.includes(rt.pathname))
) {
- e.next = 93;
+ e.next = 97;
break;
}
return (
- (K = I(this, Q, Q)),
- (tt = K.url),
- (et = K.as),
- e.abrupt("return", this.change(r, tt, et, i))
+ (nt = I(this, et, et)),
+ (ot = nt.url),
+ (at = nt.as),
+ e.abrupt("return", this.change(r, ot, at, i))
);
- case 93:
+ case 97:
return (
- (window.location.href = Q),
+ (window.location.href = et),
e.abrupt("return", new Promise(function() {}))
);
- case 95:
- if (J.notFound !== j) {
- e.next = 108;
+ case 99:
+ if (Z.notFound !== j) {
+ e.next = 112;
break;
}
return (
- (e.prev = 96),
- (e.next = 99),
+ (e.prev = 100),
+ (e.next = 103),
this.fetchComponent("/404")
);
- case 99:
- (rt = "/404"), (e.next = 105);
+ case 103:
+ (it = "/404"), (e.next = 109);
break;
- case 102:
- (e.prev = 102),
- (e.t1 = e.catch(96)),
- (rt = "/_error");
- case 105:
+ case 106:
+ (e.prev = 106),
+ (e.t1 = e.catch(100)),
+ (it = "/_error");
+ case 109:
return (
- (e.next = 107),
- this.getRouteInfo(rt, rt, T, a, N, {
- shallow: !1
- })
+ (e.next = 111),
+ this.getRouteInfo(
+ it,
+ it,
+ A,
+ a,
+ U,
+ { shallow: !1 },
+ !1
+ )
);
- case 107:
- V = e.sent;
- case 108:
+ case 111:
+ $ = e.sent;
+ case 112:
return (
- t.events.emit("beforeHistoryChange", a, g),
+ t.events.emit("beforeHistoryChange", a, b),
this.changeState(r, o, a, i),
- (nt = i.shallow && this.route === M),
- (e.next = 114),
+ (e.next = 117),
this.set(
- M,
- C,
+ N,
T,
- w,
- V,
- u || (nt || !i.scroll ? null : { x: 0, y: 0 })
+ A,
+ x,
+ $,
+ u || (J || !i.scroll ? null : { x: 0, y: 0 })
).catch(function(t) {
if (!t.cancelled) throw t;
- z = z || t;
+ Q = Q || t;
})
);
- case 114:
- if (!z) {
- e.next = 117;
+ case 117:
+ if (!Q) {
+ e.next = 120;
break;
}
- throw (t.events.emit("routeChangeError", z, w, g),
- z);
- case 117:
+ throw (t.events.emit("routeChangeError", Q, x, b),
+ Q);
+ case 120:
return (
- t.events.emit("routeChangeComplete", a, g),
+ t.events.emit("routeChangeComplete", a, b),
e.abrupt("return", !0)
);
- case 122:
+ case 125:
if (
- ((e.prev = 122),
+ ((e.prev = 125),
(e.t2 = e.catch(79)),
!e.t2.cancelled)
) {
- e.next = 126;
+ e.next = 129;
break;
}
return e.abrupt("return", !1);
- case 126:
+ case 129:
throw e.t2;
- case 127:
+ case 130:
case "end":
return e.stop();
}
@@ -1369,13 +1381,13 @@
this,
[
[36, 46],
- [79, 122],
- [96, 102]
+ [79, 125],
+ [100, 106]
]
);
})
);
- return function(t, r, n, o, a) {
+ return function(t, r, n, o, a, i) {
return e.apply(this, arguments);
};
})()
@@ -1426,7 +1438,7 @@
}
throw (t.events.emit("routeChangeError", r, i, u),
(window.location.href = i),
- w());
+ b());
case 6:
if (
((e.prev = 6),
@@ -1515,16 +1527,16 @@
key: "getRouteInfo",
value: (function() {
var t = o(
- n.mark(function t(e, r, o, a, i, u) {
- var c,
- s,
+ n.mark(function t(e, r, o, a, i, u, c) {
+ var s,
l,
f,
p,
d,
v,
y,
- m = this;
+ m,
+ g = this;
return n.wrap(
function(t) {
for (;;)
@@ -1532,19 +1544,19 @@
case 0:
if (
((t.prev = 0),
- (c = this.components[e]),
- !u.shallow || !c || this.route !== e)
+ (s = this.components[e]),
+ !c || !s)
) {
t.next = 4;
break;
}
- return t.abrupt("return", c);
+ return t.abrupt("return", s);
case 4:
- if (!(s = c && "initial" in c ? void 0 : c)) {
+ if (!(l = s && "initial" in s ? void 0 : s)) {
t.next = 9;
break;
}
- (t.t0 = s), (t.next = 12);
+ (t.t0 = l), (t.next = 12);
break;
case 9:
return (
@@ -1561,31 +1573,31 @@
case 11:
t.t0 = t.sent;
case 12:
- (l = t.t0),
- (f = l.Component),
- (p = l.__N_SSG),
- (d = l.__N_SSP),
+ (f = t.t0),
+ (p = f.Component),
+ (d = f.__N_SSG),
+ (v = f.__N_SSP),
(t.next = 18);
break;
case 18:
return (
- (p || d) &&
- (v = this.pageLoader.getDataHref(
+ (d || v) &&
+ (y = this.pageLoader.getDataHref(
(0, h.formatWithValidation)({
pathname: r,
query: o
}),
i,
- p,
+ d,
this.locale
)),
(t.next = 21),
this._getData(function() {
- return p
- ? m._getStaticData(v)
- : d
- ? m._getServerData(v)
- : m.getInitialProps(f, {
+ return d
+ ? g._getStaticData(y)
+ : v
+ ? g._getServerData(y)
+ : g.getInitialProps(p, {
pathname: r,
query: o,
asPath: a
@@ -1594,10 +1606,10 @@
);
case 21:
return (
- (y = t.sent),
- (l.props = y),
- (this.components[e] = l),
- t.abrupt("return", l)
+ (m = t.sent),
+ (f.props = m),
+ (this.components[e] = f),
+ t.abrupt("return", f)
);
case 27:
return (
@@ -1619,7 +1631,7 @@
);
})
);
- return function(e, r, n, o, a, i) {
+ return function(e, r, n, o, a, i, u) {
return t.apply(this, arguments);
};
})()
@@ -1890,7 +1902,7 @@
key: "abortComponentLoad",
value: function(e, r) {
this.clc &&
- (t.events.emit("routeChangeError", w(), e, r),
+ (t.events.emit("routeChangeError", b(), e, r),
this.clc(),
(this.clc = null));
}
@@ -2181,14 +2193,14 @@
function y() {}
function m() {}
function g() {}
- var w = {};
- w[a] = function() {
+ var b = {};
+ b[a] = function() {
return this;
};
- var b = Object.getPrototypeOf,
- _ = b && b(b(O([])));
- _ && _ !== r && n.call(_, a) && (w = _);
- var x = (g.prototype = y.prototype = Object.create(w));
+ var w = Object.getPrototypeOf,
+ _ = w && w(w(O([])));
+ _ && _ !== r && n.call(_, a) && (b = _);
+ var x = (g.prototype = y.prototype = Object.create(b));
function k(t) {
["next", "throw", "return"].forEach(function(e) {
c(t, e, function(t) {
Diff for index.html
@@ -22,7 +22,7 @@
/>
<link
rel="preload"
- href="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.4826dee40eb7293b5cb0.js"
+ href="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.33253ff661663be75080.js"
as="script"
/>
<link
@@ -43,7 +43,7 @@
"props": { "pageProps": {} },
"page": "/",
"query": {},
- "buildId": "RVckWv64wfKyy5R8j8i0v",
+ "buildId": "_h3OnN-nug0IZL6oTmdkk",
"isFallback": false,
"gip": true
}
@@ -65,7 +65,7 @@
async=""
></script>
<script
- src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.4826dee40eb7293b5cb0.js"
+ src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.33253ff661663be75080.js"
async=""
></script>
<script
@@ -77,11 +77,11 @@
async=""
></script>
<script
- src="/_next/static/RVckWv64wfKyy5R8j8i0v/_buildManifest.js"
+ src="/_next/static/_h3OnN-nug0IZL6oTmdkk/_buildManifest.js"
async=""
></script>
<script
- src="/_next/static/RVckWv64wfKyy5R8j8i0v/_ssgManifest.js"
+ src="/_next/static/_h3OnN-nug0IZL6oTmdkk/_ssgManifest.js"
async=""
></script>
</body>
Diff for link.html
@@ -22,7 +22,7 @@
/>
<link
rel="preload"
- href="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.4826dee40eb7293b5cb0.js"
+ href="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.33253ff661663be75080.js"
as="script"
/>
<link
@@ -48,7 +48,7 @@
"props": { "pageProps": {} },
"page": "/link",
"query": {},
- "buildId": "RVckWv64wfKyy5R8j8i0v",
+ "buildId": "_h3OnN-nug0IZL6oTmdkk",
"isFallback": false,
"gip": true
}
@@ -70,7 +70,7 @@
async=""
></script>
<script
- src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.4826dee40eb7293b5cb0.js"
+ src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.33253ff661663be75080.js"
async=""
></script>
<script
@@ -82,11 +82,11 @@
async=""
></script>
<script
- src="/_next/static/RVckWv64wfKyy5R8j8i0v/_buildManifest.js"
+ src="/_next/static/_h3OnN-nug0IZL6oTmdkk/_buildManifest.js"
async=""
></script>
<script
- src="/_next/static/RVckWv64wfKyy5R8j8i0v/_ssgManifest.js"
+ src="/_next/static/_h3OnN-nug0IZL6oTmdkk/_ssgManifest.js"
async=""
></script>
</body>
Diff for withRouter.html
@@ -22,7 +22,7 @@
/>
<link
rel="preload"
- href="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.4826dee40eb7293b5cb0.js"
+ href="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.33253ff661663be75080.js"
as="script"
/>
<link
@@ -43,7 +43,7 @@
"props": { "pageProps": {} },
"page": "/withRouter",
"query": {},
- "buildId": "RVckWv64wfKyy5R8j8i0v",
+ "buildId": "_h3OnN-nug0IZL6oTmdkk",
"isFallback": false,
"gip": true
}
@@ -65,7 +65,7 @@
async=""
></script>
<script
- src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.4826dee40eb7293b5cb0.js"
+ src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.33253ff661663be75080.js"
async=""
></script>
<script
@@ -77,11 +77,11 @@
async=""
></script>
<script
- src="/_next/static/RVckWv64wfKyy5R8j8i0v/_buildManifest.js"
+ src="/_next/static/_h3OnN-nug0IZL6oTmdkk/_buildManifest.js"
async=""
></script>
<script
- src="/_next/static/RVckWv64wfKyy5R8j8i0v/_ssgManifest.js"
+ src="/_next/static/_h3OnN-nug0IZL6oTmdkk/_ssgManifest.js"
async=""
></script>
</body>
Failing test suites
Commit: 568d4ca9197d2bb28a361eccd574b85304a8db83
test/integration/build-output/test/index.test.js
- Build Output > Crypto Application > should not include crypto
Expand output
● Build Output › Crypto Application › should not include crypto
expect(received).toBeLessThanOrEqual(expected)
Expected: <= 66.6
Received: 66.7
169 | expect(indexSize.endsWith('kB')).toBe(true)
170 |
> 171 | expect(parseFloat(indexFirstLoad)).toBeLessThanOrEqual(66.6)
| ^
172 | expect(parseFloat(indexFirstLoad)).toBeGreaterThanOrEqual(60)
173 | expect(indexFirstLoad.endsWith('kB')).toBe(true)
174 | })
at Object.<anonymous> (integration/build-output/test/index.test.js:171:42)
Stats from current PR
Default Server Mode (Increase detected ⚠️)
General Overall increase ⚠️
vercel/next.js canary | okmttdhr/next.js story/popstate-shallow-route | Change | |
---|---|---|---|
buildDuration | 11.6s | 11.1s | -408ms |
nodeModulesSize | 42.6 MB | 42.6 MB | ⚠️ +1.09 kB |
Page Load Tests Overall decrease ⚠️
vercel/next.js canary | okmttdhr/next.js story/popstate-shallow-route | Change | |
---|---|---|---|
/ failed reqs | 0 | 0 | ✓ |
/ total time (seconds) | 2.1 | 2.102 | 0 |
/ avg req/sec | 1190.29 | 1189.16 | ⚠️ -1.13 |
/error-in-render failed reqs | 0 | 0 | ✓ |
/error-in-render total time (seconds) | 1.316 | 1.317 | 0 |
/error-in-render avg req/sec | 1899.55 | 1898.8 | ⚠️ -0.75 |
Client Bundles (main, webpack, commons) Overall increase ⚠️
vercel/next.js canary | okmttdhr/next.js story/popstate-shallow-route | Change | |
---|---|---|---|
677f882d2ed8..854c.js gzip | 13.2 kB | 13.2 kB | ⚠️ +12 B |
framework.HASH.js gzip | 39 kB | 39 kB | ✓ |
main-HASH.js gzip | 6.65 kB | 6.65 kB | ✓ |
webpack-HASH.js gzip | 751 B | 751 B | ✓ |
Overall change | 59.6 kB | 59.6 kB | ⚠️ +12 B |
Legacy Client Bundles (polyfills)
vercel/next.js canary | okmttdhr/next.js story/popstate-shallow-route | Change | |
---|---|---|---|
polyfills-HASH.js gzip | 31.3 kB | 31.3 kB | ✓ |
Overall change | 31.3 kB | 31.3 kB | ✓ |
Client Pages
vercel/next.js canary | okmttdhr/next.js story/popstate-shallow-route | Change | |
---|---|---|---|
_app-2a09aa2..4a98.js gzip | 1.28 kB | 1.28 kB | ✓ |
_error-8b758..aef6.js gzip | 3.46 kB | 3.46 kB | ✓ |
amp-e3e9bc99..932c.js gzip | 536 B | 536 B | ✓ |
hooks-5023ef..3670.js gzip | 888 B | 888 B | ✓ |
index-3a2b03..c677.js gzip | 227 B | 227 B | ✓ |
link-177412b..043e.js gzip | 1.67 kB | 1.67 kB | ✓ |
routerDirect..1a66.js gzip | 303 B | 303 B | ✓ |
withRouter-9..1b7d.js gzip | 302 B | 302 B | ✓ |
Overall change | 8.66 kB | 8.66 kB | ✓ |
Client Build Manifests
vercel/next.js canary | okmttdhr/next.js story/popstate-shallow-route | Change | |
---|---|---|---|
_buildManifest.js gzip | 347 B | 347 B | ✓ |
Overall change | 347 B | 347 B | ✓ |
Rendered Page Sizes Overall increase ⚠️
vercel/next.js canary | okmttdhr/next.js story/popstate-shallow-route | Change | |
---|---|---|---|
index.html gzip | 615 B | 615 B | ✓ |
link.html gzip | 621 B | 621 B | ✓ |
withRouter.html gzip | 608 B | 609 B | ⚠️ +1 B |
Overall change | 1.84 kB | 1.84 kB | ⚠️ +1 B |
Diffs
Diff for 677f882d2ed8..7143b2168.js
@@ -1668,7 +1668,8 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
shallow: options.shallow && _this._shallow,
locale: options.locale || _this.defaultLocale
}),
- forcedScroll
+ forcedScroll,
+ true
);
}; // represents the current component key
@@ -1825,7 +1826,8 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
url,
as,
options,
- forcedScroll
+ forcedScroll,
+ isPopState
) {
var _this2 = this;
@@ -1858,6 +1860,9 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
shouldInterpolate,
interpolatedAs,
missingParams,
+ isSamePageURLChange,
+ isPopStateShallowRoute,
+ isValidShallowRoute,
routeInfo,
_routeInfo,
error,
@@ -1870,8 +1875,7 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
newUrl,
newAs,
notFoundRoute,
- appComp,
- isValidShallowRoute;
+ appComp;
return _regeneratorRuntime.wrap(
function _callee$(_context) {
@@ -2222,17 +2226,23 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
routeProps
);
_context.prev = 79;
- _context.next = 82;
+ isSamePageURLChange = this.route === route;
+ isPopStateShallowRoute = isPopState && !!false;
+ isValidShallowRoute =
+ (options.shallow && isSamePageURLChange) ||
+ isPopStateShallowRoute;
+ _context.next = 85;
return this.getRouteInfo(
route,
pathname,
query,
as,
resolvedAs,
- routeProps
+ routeProps,
+ isValidShallowRoute
);
- case 82:
+ case 85:
routeInfo = _context.sent;
(_routeInfo = routeInfo),
(error = _routeInfo.error),
@@ -2241,14 +2251,14 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
(__N_SSP = _routeInfo.__N_SSP); // handle redirect on client-transition
if (!((__N_SSG || __N_SSP) && props)) {
- _context.next = 109;
+ _context.next = 112;
break;
}
if (
!(props.pageProps && props.pageProps.__N_REDIRECT)
) {
- _context.next = 95;
+ _context.next = 98;
break;
}
@@ -2257,7 +2267,7 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
// it's not
if (!destination.startsWith("/")) {
- _context.next = 93;
+ _context.next = 96;
break;
}
@@ -2267,7 +2277,7 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
this._resolveHref(parsedHref, pages, false);
if (!pages.includes(parsedHref.pathname)) {
- _context.next = 93;
+ _context.next = 96;
break;
}
@@ -2283,37 +2293,37 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
this.change(method, newUrl, newAs, options)
);
- case 93:
+ case 96:
window.location.href = destination;
return _context.abrupt(
"return",
new Promise(function() {})
);
- case 95:
+ case 98:
this.isPreview = !!props.__N_PREVIEW; // handle SSG data 404
if (!(props.notFound === SSG_DATA_NOT_FOUND)) {
- _context.next = 109;
+ _context.next = 112;
break;
}
- _context.prev = 97;
- _context.next = 100;
+ _context.prev = 100;
+ _context.next = 103;
return this.fetchComponent("/404");
- case 100:
+ case 103:
notFoundRoute = "/404";
- _context.next = 106;
+ _context.next = 109;
break;
- case 103:
- _context.prev = 103;
- _context.t1 = _context["catch"](97);
+ case 106:
+ _context.prev = 106;
+ _context.t1 = _context["catch"](100);
notFoundRoute = "/_error";
- case 106:
- _context.next = 108;
+ case 109:
+ _context.next = 111;
return this.getRouteInfo(
notFoundRoute,
notFoundRoute,
@@ -2322,13 +2332,14 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
resolvedAs,
{
shallow: false
- }
+ },
+ false
);
- case 108:
+ case 111:
routeInfo = _context.sent;
- case 109:
+ case 112:
Router.events.emit(
"beforeHistoryChange",
as,
@@ -2337,11 +2348,9 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
this.changeState(method, url, as, options);
if (false) {
- } // shallow routing is only allowed for same page URL changes.
+ }
- isValidShallowRoute =
- options.shallow && this.route === route;
- _context.next = 115;
+ _context.next = 117;
return this.set(
route,
pathname,
@@ -2360,9 +2369,9 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
else throw e;
});
- case 115:
+ case 117:
if (!error) {
- _context.next = 118;
+ _context.next = 120;
break;
}
@@ -2374,7 +2383,7 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
);
throw error;
- case 118:
+ case 120:
if (false) {
}
@@ -2385,21 +2394,21 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
);
return _context.abrupt("return", true);
- case 123:
- _context.prev = 123;
+ case 125:
+ _context.prev = 125;
_context.t2 = _context["catch"](79);
if (!_context.t2.cancelled) {
- _context.next = 127;
+ _context.next = 129;
break;
}
return _context.abrupt("return", false);
- case 127:
+ case 129:
throw _context.t2;
- case 128:
+ case 130:
case "end":
return _context.stop();
}
@@ -2409,14 +2418,14 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
this,
[
[36, 46],
- [79, 123],
- [97, 103]
+ [79, 125],
+ [100, 106]
]
);
})
);
- function change(_x, _x2, _x3, _x4, _x5) {
+ function change(_x, _x2, _x3, _x4, _x5, _x6) {
return _change.apply(this, arguments);
}
@@ -2601,7 +2610,7 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
})
);
- function handleRouteInfoError(_x6, _x7, _x8, _x9, _x10, _x11) {
+ function handleRouteInfoError(_x7, _x8, _x9, _x10, _x11, _x12) {
return _handleRouteInfoError.apply(this, arguments);
}
@@ -2618,7 +2627,8 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
query,
as,
resolvedAs,
- routeProps
+ routeProps,
+ isValidShallowRoute
) {
var _this3 = this;
@@ -2641,13 +2651,7 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
_context3.prev = 0;
existingRouteInfo = this.components[route];
- if (
- !(
- routeProps.shallow &&
- existingRouteInfo &&
- this.route === route
- )
- ) {
+ if (!(isValidShallowRoute && existingRouteInfo)) {
_context3.next = 4;
break;
}
@@ -2786,7 +2790,7 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
})
);
- function getRouteInfo(_x12, _x13, _x14, _x15, _x16, _x17) {
+ function getRouteInfo(_x13, _x14, _x15, _x16, _x17, _x18, _x19) {
return _getRouteInfo.apply(this, arguments);
}
@@ -3024,7 +3028,7 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
})
);
- function prefetch(_x18) {
+ function prefetch(_x20) {
return _prefetch.apply(this, arguments);
}
@@ -3089,7 +3093,7 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
})
);
- function fetchComponent(_x19) {
+ function fetchComponent(_x21) {
return _fetchComponent.apply(this, arguments);
}
Diff for index.html
@@ -22,7 +22,7 @@
/>
<link
rel="preload"
- href="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.7a8444d5b037143b2168.js"
+ href="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.36b107ad72ff1d1fa4da.js"
as="script"
/>
<link
@@ -65,7 +65,7 @@
async=""
></script>
<script
- src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.7a8444d5b037143b2168.js"
+ src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.36b107ad72ff1d1fa4da.js"
async=""
></script>
<script
Diff for link.html
@@ -22,7 +22,7 @@
/>
<link
rel="preload"
- href="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.7a8444d5b037143b2168.js"
+ href="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.36b107ad72ff1d1fa4da.js"
as="script"
/>
<link
@@ -70,7 +70,7 @@
async=""
></script>
<script
- src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.7a8444d5b037143b2168.js"
+ src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.36b107ad72ff1d1fa4da.js"
async=""
></script>
<script
Diff for withRouter.html
@@ -22,7 +22,7 @@
/>
<link
rel="preload"
- href="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.7a8444d5b037143b2168.js"
+ href="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.36b107ad72ff1d1fa4da.js"
as="script"
/>
<link
@@ -65,7 +65,7 @@
async=""
></script>
<script
- src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.7a8444d5b037143b2168.js"
+ src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.36b107ad72ff1d1fa4da.js"
async=""
></script>
<script
Serverless Mode (Increase detected ⚠️)
General Overall increase ⚠️
vercel/next.js canary | okmttdhr/next.js story/popstate-shallow-route | Change | |
---|---|---|---|
buildDuration | 13.3s | 13.9s | ⚠️ +564ms |
nodeModulesSize | 42.6 MB | 42.6 MB | ⚠️ +1.09 kB |
Client Bundles (main, webpack, commons) Overall increase ⚠️
vercel/next.js canary | okmttdhr/next.js story/popstate-shallow-route | Change | |
---|---|---|---|
677f882d2ed8..854c.js gzip | 13.2 kB | N/A | N/A |
framework.HASH.js gzip | 39 kB | 39 kB | ✓ |
main-HASH.js gzip | 6.65 kB | 6.65 kB | ✓ |
webpack-HASH.js gzip | 751 B | 751 B | ✓ |
677f882d2ed8..34d0.js gzip | N/A | 13.2 kB | N/A |
Overall change | 59.6 kB | 59.6 kB | ⚠️ +12 B |
Legacy Client Bundles (polyfills)
vercel/next.js canary | okmttdhr/next.js story/popstate-shallow-route | Change | |
---|---|---|---|
polyfills-HASH.js gzip | 31.3 kB | 31.3 kB | ✓ |
Overall change | 31.3 kB | 31.3 kB | ✓ |
Client Pages
vercel/next.js canary | okmttdhr/next.js story/popstate-shallow-route | Change | |
---|---|---|---|
_app-2a09aa2..4a98.js gzip | 1.28 kB | 1.28 kB | ✓ |
_error-8b758..aef6.js gzip | 3.46 kB | 3.46 kB | ✓ |
amp-e3e9bc99..932c.js gzip | 536 B | 536 B | ✓ |
hooks-5023ef..3670.js gzip | 888 B | 888 B | ✓ |
index-3a2b03..c677.js gzip | 227 B | 227 B | ✓ |
link-177412b..043e.js gzip | 1.67 kB | 1.67 kB | ✓ |
routerDirect..1a66.js gzip | 303 B | 303 B | ✓ |
withRouter-9..1b7d.js gzip | 302 B | 302 B | ✓ |
Overall change | 8.66 kB | 8.66 kB | ✓ |
Client Build Manifests
vercel/next.js canary | okmttdhr/next.js story/popstate-shallow-route | Change | |
---|---|---|---|
_buildManifest.js gzip | 347 B | 347 B | ✓ |
Overall change | 347 B | 347 B | ✓ |
Serverless bundles Overall increase ⚠️
vercel/next.js canary | okmttdhr/next.js story/popstate-shallow-route | Change | |
---|---|---|---|
_error.js | 1.01 MB | 1.01 MB | ✓ |
404.html | 2.67 kB | 2.67 kB | ✓ |
amp.amp.html | 10.4 kB | 10.4 kB | ✓ |
amp.html | 1.86 kB | 1.86 kB | ✓ |
hooks.html | 1.92 kB | 1.92 kB | ✓ |
index.js | 1.01 MB | 1.01 MB | ✓ |
link.js | 1.06 MB | 1.06 MB | ⚠️ +122 B |
routerDirect.js | 1.06 MB | 1.06 MB | ⚠️ +122 B |
withRouter.js | 1.06 MB | 1.06 MB | ⚠️ +122 B |
Overall change | 5.2 MB | 5.2 MB | ⚠️ +366 B |
Webpack 5 Mode (Increase detected ⚠️)
General Overall increase ⚠️
vercel/next.js canary | okmttdhr/next.js story/popstate-shallow-route | Change | |
---|---|---|---|
buildDuration | 12.9s | 13.1s | ⚠️ +119ms |
nodeModulesSize | 42.6 MB | 42.6 MB | ⚠️ +1.09 kB |
Page Load Tests Overall decrease ⚠️
vercel/next.js canary | okmttdhr/next.js story/popstate-shallow-route | Change | |
---|---|---|---|
/ failed reqs | 0 | 0 | ✓ |
/ total time (seconds) | 2.059 | 2.096 | ⚠️ +0.04 |
/ avg req/sec | 1213.96 | 1192.63 | ⚠️ -21.33 |
/error-in-render failed reqs | 0 | 0 | ✓ |
/error-in-render total time (seconds) | 1.233 | 1.26 | ⚠️ +0.03 |
/error-in-render avg req/sec | 2027.3 | 1983.39 | ⚠️ -43.91 |
Client Bundles (main, webpack, commons) Overall increase ⚠️
vercel/next.js canary | okmttdhr/next.js story/popstate-shallow-route | Change | |
---|---|---|---|
597-dc8125e2..ef24.js gzip | 13.1 kB | 13.2 kB | ⚠️ +9 B |
framework.HASH.js gzip | 39.3 kB | 39.3 kB | ✓ |
main-HASH.js gzip | 6.59 kB | 6.59 kB | ✓ |
webpack-HASH.js gzip | 954 B | 954 B | ✓ |
Overall change | 60 kB | 60 kB | ⚠️ +9 B |
Legacy Client Bundles (polyfills)
vercel/next.js canary | okmttdhr/next.js story/popstate-shallow-route | Change | |
---|---|---|---|
polyfills-HASH.js gzip | 31.1 kB | 31.1 kB | ✓ |
Overall change | 31.1 kB | 31.1 kB | ✓ |
Client Pages
vercel/next.js canary | okmttdhr/next.js story/popstate-shallow-route | Change | |
---|---|---|---|
_app-aedc815..1421.js gzip | 1.26 kB | 1.26 kB | ✓ |
_error-71ec2..1a96.js gzip | 3.38 kB | 3.38 kB | ✓ |
amp-33a09cb0..6745.js gzip | 536 B | 536 B | ✓ |
hooks-4e968a..f870.js gzip | 902 B | 902 B | ✓ |
index-5c6845..f75c.js gzip | 230 B | 230 B | ✓ |
link-99f0c6c..b84a.js gzip | 1.65 kB | 1.65 kB | ✓ |
routerDirect..bb56.js gzip | 306 B | 306 B | ✓ |
withRouter-7..2133.js gzip | 302 B | 302 B | ✓ |
Overall change | 8.57 kB | 8.57 kB | ✓ |
Client Build Manifests
vercel/next.js canary | okmttdhr/next.js story/popstate-shallow-route | Change | |
---|---|---|---|
_buildManifest.js gzip | 326 B | 326 B | ✓ |
Overall change | 326 B | 326 B | ✓ |
Rendered Page Sizes Overall increase ⚠️
vercel/next.js canary | okmttdhr/next.js story/popstate-shallow-route | Change | |
---|---|---|---|
index.html gzip | 586 B | 587 B | ⚠️ +1 B |
link.html gzip | 593 B | 594 B | ⚠️ +1 B |
withRouter.html gzip | 582 B | 583 B | ⚠️ +1 B |
Overall change | 1.76 kB | 1.76 kB | ⚠️ +3 B |
Diffs
Diff for 677f882d2ed8..a6351854c.js
@@ -948,7 +948,8 @@
shallow: o.shallow && i._shallow,
locale: o.locale || i.defaultLocale
}),
- undefined
+ undefined,
+ !0
);
}
} else {
@@ -1045,9 +1046,8 @@
key: "change",
value: (function() {
var e = o(
- n.mark(function e(r, o, a, i, u) {
- var l,
- f,
+ n.mark(function e(r, o, a, i, u, l) {
+ var f,
v,
g,
w,
@@ -1078,7 +1078,10 @@
tt,
et,
rt,
- nt;
+ nt,
+ ot,
+ at,
+ it;
return n.wrap(
function(e) {
for (;;)
@@ -1094,20 +1097,20 @@
);
case 3:
i._h && (this.isReady = !0),
- (i.scroll = !(null != (l = i.scroll) && !l)),
- (f = i.locale !== this.locale),
+ (i.scroll = !(null != (f = i.scroll) && !f)),
+ (v = i.locale !== this.locale),
(e.next = 18);
break;
case 18:
if (
(i._h || (this.isSsr = !1),
h.ST && performance.mark("routeChange"),
- (v = i.shallow),
- (g = { shallow: void 0 !== v && v }),
+ (g = i.shallow),
+ (w = { shallow: void 0 !== g && g }),
this._inFlightRoute &&
this.abortComponentLoad(
this._inFlightRoute,
- g
+ w
),
(a = k(
b(
@@ -1116,39 +1119,39 @@
this.defaultLocale
)
)),
- (w = _(P(a) ? S(a) : a, this.locale)),
+ (x = _(P(a) ? S(a) : a, this.locale)),
(this._inFlightRoute = a),
- i._h || !this.onlyAHashChange(w))
+ i._h || !this.onlyAHashChange(x))
) {
e.next = 34;
break;
}
return (
- (this.asPath = w),
- t.events.emit("hashChangeStart", a, g),
+ (this.asPath = x),
+ t.events.emit("hashChangeStart", a, w),
this.changeState(r, o, a, i),
- this.scrollToHash(w),
+ this.scrollToHash(x),
this.notify(this.components[this.route], null),
- t.events.emit("hashChangeComplete", a, g),
+ t.events.emit("hashChangeComplete", a, w),
e.abrupt("return", !0)
);
case 34:
return (
- (x = (0, d.parseRelativeUrl)(o)),
- (C = (O = x).pathname),
- (T = O.query),
+ (O = (0, d.parseRelativeUrl)(o)),
+ (T = (C = O).pathname),
+ (A = C.query),
(e.prev = 36),
(e.next = 39),
this.pageLoader.getPageList()
);
case 39:
return (
- (A = e.sent),
+ (D = e.sent),
(e.next = 42),
(0, s.getClientBuildManifest)()
);
case 42:
- (D = e.sent), D.__rewrites, (e.next = 50);
+ (M = e.sent), M.__rewrites, (e.next = 50);
break;
case 46:
return (
@@ -1159,15 +1162,15 @@
);
case 50:
if (
- ((x = this._resolveHref(x, A)).pathname !== C &&
- ((C = x.pathname),
- (o = (0, h.formatWithValidation)(x))),
- (C = C
- ? (0, c.removePathTrailingSlash)(S(C))
- : C),
- this.urlIsNew(w) || f || (r = "replaceState"),
- (M = (0, c.removePathTrailingSlash)(C)),
- (N = a),
+ ((O = this._resolveHref(O, D)).pathname !== T &&
+ ((T = O.pathname),
+ (o = (0, h.formatWithValidation)(O))),
+ (T = T
+ ? (0, c.removePathTrailingSlash)(S(T))
+ : T),
+ this.urlIsNew(x) || v || (r = "replaceState"),
+ (N = (0, c.removePathTrailingSlash)(T)),
+ (U = a),
E(a))
) {
e.next = 62;
@@ -1182,29 +1185,29 @@
);
case 62:
if (
- ((N = _(S(N), this.locale)),
- !(0, p.isDynamicRoute)(M))
+ ((U = _(S(U), this.locale)),
+ !(0, p.isDynamicRoute)(N))
) {
e.next = 78;
break;
}
if (
- ((U = (0, d.parseRelativeUrl)(N)),
- (W = U.pathname),
- (q = (0, m.getRouteRegex)(M)),
- (F = (0, y.getRouteMatcher)(q)(W)),
- (B = (G = M === W) ? R(M, W, T) : {}),
- F && (!G || B.result))
+ ((W = (0, d.parseRelativeUrl)(U)),
+ (q = W.pathname),
+ (F = (0, m.getRouteRegex)(N)),
+ (G = (0, y.getRouteMatcher)(F)(q)),
+ (H = (B = N === q) ? R(N, q, A) : {}),
+ G && (!B || H.result))
) {
e.next = 77;
break;
}
if (
!(
- (H = Object.keys(q.groups).filter(function(
+ (V = Object.keys(F.groups).filter(function(
t
) {
- return !T[t];
+ return !A[t];
})).length > 0
)
) {
@@ -1212,24 +1215,24 @@
break;
}
throw new Error(
- (G
+ (B
? "The provided `href` ("
.concat(
o,
") value is missing query values ("
)
.concat(
- H.join(", "),
+ V.join(", "),
") to be interpolated properly. "
)
: "The provided `as` value ("
.concat(
- W,
+ q,
") is incompatible with the `href` value ("
)
- .concat(M, "). ")) +
+ .concat(N, "). ")) +
"Read more: https://err.sh/vercel/next.js/".concat(
- G
+ B
? "href-interpolation-failed"
: "incompatible-href-as"
)
@@ -1238,134 +1241,142 @@
e.next = 78;
break;
case 77:
- G
+ B
? (a = (0, h.formatWithValidation)(
- Object.assign({}, U, {
- pathname: B.result,
- query: L(T, B.params)
+ Object.assign({}, W, {
+ pathname: H.result,
+ query: L(A, H.params)
})
))
- : Object.assign(T, F);
+ : Object.assign(A, G);
case 78:
return (
- t.events.emit("routeChangeStart", a, g),
+ t.events.emit("routeChangeStart", a, w),
(e.prev = 79),
- (e.next = 82),
- this.getRouteInfo(M, C, T, a, N, g)
+ (X = this.route === N),
+ (z = l && !1),
+ (J = (i.shallow && X) || z),
+ (e.next = 85),
+ this.getRouteInfo(N, T, A, a, U, w, J)
);
- case 82:
+ case 85:
if (
- ((V = e.sent),
- (z = (X = V).error),
- (J = X.props),
- ($ = X.__N_SSG),
- (Y = X.__N_SSP),
- (!$ && !Y) || !J)
+ (($ = e.sent),
+ (Q = (Y = $).error),
+ (Z = Y.props),
+ (K = Y.__N_SSG),
+ (tt = Y.__N_SSP),
+ (!K && !tt) || !Z)
) {
- e.next = 109;
+ e.next = 112;
break;
}
- if (!J.pageProps || !J.pageProps.__N_REDIRECT) {
- e.next = 95;
+ if (!Z.pageProps || !Z.pageProps.__N_REDIRECT) {
+ e.next = 98;
break;
}
if (
- !(Q = J.pageProps.__N_REDIRECT).startsWith("/")
+ !(et = Z.pageProps.__N_REDIRECT).startsWith("/")
) {
- e.next = 93;
+ e.next = 96;
break;
}
if (
- ((Z = (0, d.parseRelativeUrl)(Q)),
- this._resolveHref(Z, A, !1),
- !A.includes(Z.pathname))
+ ((rt = (0, d.parseRelativeUrl)(et)),
+ this._resolveHref(rt, D, !1),
+ !D.includes(rt.pathname))
) {
- e.next = 93;
+ e.next = 96;
break;
}
return (
- (K = I(this, Q, Q)),
- (tt = K.url),
- (et = K.as),
- e.abrupt("return", this.change(r, tt, et, i))
+ (nt = I(this, et, et)),
+ (ot = nt.url),
+ (at = nt.as),
+ e.abrupt("return", this.change(r, ot, at, i))
);
- case 93:
+ case 96:
return (
- (window.location.href = Q),
+ (window.location.href = et),
e.abrupt("return", new Promise(function() {}))
);
- case 95:
+ case 98:
if (
- ((this.isPreview = !!J.__N_PREVIEW),
- J.notFound !== j)
+ ((this.isPreview = !!Z.__N_PREVIEW),
+ Z.notFound !== j)
) {
- e.next = 109;
+ e.next = 112;
break;
}
return (
- (e.prev = 97),
- (e.next = 100),
+ (e.prev = 100),
+ (e.next = 103),
this.fetchComponent("/404")
);
- case 100:
- (rt = "/404"), (e.next = 106);
- break;
case 103:
- (e.prev = 103),
- (e.t1 = e.catch(97)),
- (rt = "/_error");
+ (it = "/404"), (e.next = 109);
+ break;
case 106:
+ (e.prev = 106),
+ (e.t1 = e.catch(100)),
+ (it = "/_error");
+ case 109:
return (
- (e.next = 108),
- this.getRouteInfo(rt, rt, T, a, N, {
- shallow: !1
- })
+ (e.next = 111),
+ this.getRouteInfo(
+ it,
+ it,
+ A,
+ a,
+ U,
+ { shallow: !1 },
+ !1
+ )
);
- case 108:
- V = e.sent;
- case 109:
+ case 111:
+ $ = e.sent;
+ case 112:
return (
- t.events.emit("beforeHistoryChange", a, g),
+ t.events.emit("beforeHistoryChange", a, w),
this.changeState(r, o, a, i),
- (nt = i.shallow && this.route === M),
- (e.next = 115),
+ (e.next = 117),
this.set(
- M,
- C,
+ N,
T,
- w,
- V,
- u || (nt || !i.scroll ? null : { x: 0, y: 0 })
+ A,
+ x,
+ $,
+ u || (J || !i.scroll ? null : { x: 0, y: 0 })
).catch(function(t) {
if (!t.cancelled) throw t;
- z = z || t;
+ Q = Q || t;
})
);
- case 115:
- if (!z) {
- e.next = 118;
+ case 117:
+ if (!Q) {
+ e.next = 120;
break;
}
- throw (t.events.emit("routeChangeError", z, w, g),
- z);
- case 118:
+ throw (t.events.emit("routeChangeError", Q, x, w),
+ Q);
+ case 120:
return (
- t.events.emit("routeChangeComplete", a, g),
+ t.events.emit("routeChangeComplete", a, w),
e.abrupt("return", !0)
);
- case 123:
+ case 125:
if (
- ((e.prev = 123),
+ ((e.prev = 125),
(e.t2 = e.catch(79)),
!e.t2.cancelled)
) {
- e.next = 127;
+ e.next = 129;
break;
}
return e.abrupt("return", !1);
- case 127:
+ case 129:
throw e.t2;
- case 128:
+ case 130:
case "end":
return e.stop();
}
@@ -1374,13 +1385,13 @@
this,
[
[36, 46],
- [79, 123],
- [97, 103]
+ [79, 125],
+ [100, 106]
]
);
})
);
- return function(t, r, n, o, a) {
+ return function(t, r, n, o, a, i) {
return e.apply(this, arguments);
};
})()
@@ -1520,16 +1531,16 @@
key: "getRouteInfo",
value: (function() {
var t = o(
- n.mark(function t(e, r, o, a, i, u) {
- var c,
- s,
+ n.mark(function t(e, r, o, a, i, u, c) {
+ var s,
l,
f,
p,
d,
v,
y,
- m = this;
+ m,
+ g = this;
return n.wrap(
function(t) {
for (;;)
@@ -1537,19 +1548,19 @@
case 0:
if (
((t.prev = 0),
- (c = this.components[e]),
- !u.shallow || !c || this.route !== e)
+ (s = this.components[e]),
+ !c || !s)
) {
t.next = 4;
break;
}
- return t.abrupt("return", c);
+ return t.abrupt("return", s);
case 4:
- if (!(s = c && "initial" in c ? void 0 : c)) {
+ if (!(l = s && "initial" in s ? void 0 : s)) {
t.next = 9;
break;
}
- (t.t0 = s), (t.next = 12);
+ (t.t0 = l), (t.next = 12);
break;
case 9:
return (
@@ -1566,31 +1577,31 @@
case 11:
t.t0 = t.sent;
case 12:
- (l = t.t0),
- (f = l.Component),
- (p = l.__N_SSG),
- (d = l.__N_SSP),
+ (f = t.t0),
+ (p = f.Component),
+ (d = f.__N_SSG),
+ (v = f.__N_SSP),
(t.next = 18);
break;
case 18:
return (
- (p || d) &&
- (v = this.pageLoader.getDataHref(
+ (d || v) &&
+ (y = this.pageLoader.getDataHref(
(0, h.formatWithValidation)({
pathname: r,
query: o
}),
i,
- p,
+ d,
this.locale
)),
(t.next = 21),
this._getData(function() {
- return p
- ? m._getStaticData(v)
- : d
- ? m._getServerData(v)
- : m.getInitialProps(f, {
+ return d
+ ? g._getStaticData(y)
+ : v
+ ? g._getServerData(y)
+ : g.getInitialProps(p, {
pathname: r,
query: o,
asPath: a
@@ -1599,10 +1610,10 @@
);
case 21:
return (
- (y = t.sent),
- (l.props = y),
- (this.components[e] = l),
- t.abrupt("return", l)
+ (m = t.sent),
+ (f.props = m),
+ (this.components[e] = f),
+ t.abrupt("return", f)
);
case 27:
return (
@@ -1624,7 +1635,7 @@
);
})
);
- return function(e, r, n, o, a, i) {
+ return function(e, r, n, o, a, i, u) {
return t.apply(this, arguments);
};
})()
Diff for index.html
@@ -22,7 +22,7 @@
/>
<link
rel="preload"
- href="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.66488b33a5ba6351854c.js"
+ href="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.90d9b027db693ec234d0.js"
as="script"
/>
<link
@@ -43,7 +43,7 @@
"props": { "pageProps": {} },
"page": "/",
"query": {},
- "buildId": "xoKqxgI25fjTifyHZEYtd",
+ "buildId": "jz_o1M10-14MKp_F_vhzW",
"isFallback": false,
"gip": true
}
@@ -65,7 +65,7 @@
async=""
></script>
<script
- src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.66488b33a5ba6351854c.js"
+ src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.90d9b027db693ec234d0.js"
async=""
></script>
<script
@@ -77,11 +77,11 @@
async=""
></script>
<script
- src="/_next/static/xoKqxgI25fjTifyHZEYtd/_buildManifest.js"
+ src="/_next/static/jz_o1M10-14MKp_F_vhzW/_buildManifest.js"
async=""
></script>
<script
- src="/_next/static/xoKqxgI25fjTifyHZEYtd/_ssgManifest.js"
+ src="/_next/static/jz_o1M10-14MKp_F_vhzW/_ssgManifest.js"
async=""
></script>
</body>
Diff for link.html
@@ -22,7 +22,7 @@
/>
<link
rel="preload"
- href="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.66488b33a5ba6351854c.js"
+ href="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.90d9b027db693ec234d0.js"
as="script"
/>
<link
@@ -48,7 +48,7 @@
"props": { "pageProps": {} },
"page": "/link",
"query": {},
- "buildId": "xoKqxgI25fjTifyHZEYtd",
+ "buildId": "jz_o1M10-14MKp_F_vhzW",
"isFallback": false,
"gip": true
}
@@ -70,7 +70,7 @@
async=""
></script>
<script
- src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.66488b33a5ba6351854c.js"
+ src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.90d9b027db693ec234d0.js"
async=""
></script>
<script
@@ -82,11 +82,11 @@
async=""
></script>
<script
- src="/_next/static/xoKqxgI25fjTifyHZEYtd/_buildManifest.js"
+ src="/_next/static/jz_o1M10-14MKp_F_vhzW/_buildManifest.js"
async=""
></script>
<script
- src="/_next/static/xoKqxgI25fjTifyHZEYtd/_ssgManifest.js"
+ src="/_next/static/jz_o1M10-14MKp_F_vhzW/_ssgManifest.js"
async=""
></script>
</body>
Diff for withRouter.html
@@ -22,7 +22,7 @@
/>
<link
rel="preload"
- href="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.66488b33a5ba6351854c.js"
+ href="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.90d9b027db693ec234d0.js"
as="script"
/>
<link
@@ -43,7 +43,7 @@
"props": { "pageProps": {} },
"page": "/withRouter",
"query": {},
- "buildId": "xoKqxgI25fjTifyHZEYtd",
+ "buildId": "jz_o1M10-14MKp_F_vhzW",
"isFallback": false,
"gip": true
}
@@ -65,7 +65,7 @@
async=""
></script>
<script
- src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.66488b33a5ba6351854c.js"
+ src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.90d9b027db693ec234d0.js"
async=""
></script>
<script
@@ -77,11 +77,11 @@
async=""
></script>
<script
- src="/_next/static/xoKqxgI25fjTifyHZEYtd/_buildManifest.js"
+ src="/_next/static/jz_o1M10-14MKp_F_vhzW/_buildManifest.js"
async=""
></script>
<script
- src="/_next/static/xoKqxgI25fjTifyHZEYtd/_ssgManifest.js"
+ src="/_next/static/jz_o1M10-14MKp_F_vhzW/_ssgManifest.js"
async=""
></script>
</body>
Stats from current PR
Default Server Mode (Increase detected ⚠️)
General Overall increase ⚠️
vercel/next.js canary | okmttdhr/next.js story/popstate-shallow-route | Change | |
---|---|---|---|
buildDuration | 11.6s | 11.5s | -76ms |
nodeModulesSize | 42.7 MB | 42.7 MB | ⚠️ +1.09 kB |
Page Load Tests Overall increase ✓
vercel/next.js canary | okmttdhr/next.js story/popstate-shallow-route | Change | |
---|---|---|---|
/ failed reqs | 0 | 0 | ✓ |
/ total time (seconds) | 2.157 | 2.208 | ⚠️ +0.05 |
/ avg req/sec | 1159.2 | 1132.5 | ⚠️ -26.7 |
/error-in-render failed reqs | 0 | 0 | ✓ |
/error-in-render total time (seconds) | 1.565 | 1.532 | -0.03 |
/error-in-render avg req/sec | 1597.81 | 1631.33 | +33.52 |
Client Bundles (main, webpack, commons) Overall increase ⚠️
vercel/next.js canary | okmttdhr/next.js story/popstate-shallow-route | Change | |
---|---|---|---|
677f882d2ed8..e7a0.js gzip | 13.4 kB | 13.4 kB | ⚠️ +9 B |
framework.HASH.js gzip | 39 kB | 39 kB | ✓ |
main-HASH.js gzip | 6.65 kB | 6.65 kB | ✓ |
webpack-HASH.js gzip | 751 B | 751 B | ✓ |
Overall change | 59.7 kB | 59.7 kB | ⚠️ +9 B |
Legacy Client Bundles (polyfills)
vercel/next.js canary | okmttdhr/next.js story/popstate-shallow-route | Change | |
---|---|---|---|
polyfills-HASH.js gzip | 31.3 kB | 31.3 kB | ✓ |
Overall change | 31.3 kB | 31.3 kB | ✓ |
Client Pages
vercel/next.js canary | okmttdhr/next.js story/popstate-shallow-route | Change | |
---|---|---|---|
_app-2a09aa2..4a98.js gzip | 1.28 kB | 1.28 kB | ✓ |
_error-8b758..aef6.js gzip | 3.46 kB | 3.46 kB | ✓ |
amp-e3e9bc99..932c.js gzip | 536 B | 536 B | ✓ |
hooks-5023ef..3670.js gzip | 888 B | 888 B | ✓ |
index-3a2b03..c677.js gzip | 227 B | 227 B | ✓ |
link-177412b..043e.js gzip | 1.67 kB | 1.67 kB | ✓ |
routerDirect..1a66.js gzip | 303 B | 303 B | ✓ |
withRouter-9..1b7d.js gzip | 302 B | 302 B | ✓ |
Overall change | 8.66 kB | 8.66 kB | ✓ |
Client Build Manifests
vercel/next.js canary | okmttdhr/next.js story/popstate-shallow-route | Change | |
---|---|---|---|
_buildManifest.js gzip | 347 B | 347 B | ✓ |
Overall change | 347 B | 347 B | ✓ |
Rendered Page Sizes Overall increase ⚠️
vercel/next.js canary | okmttdhr/next.js story/popstate-shallow-route | Change | |
---|---|---|---|
index.html gzip | 613 B | 614 B | ⚠️ +1 B |
link.html gzip | 620 B | 620 B | ✓ |
withRouter.html gzip | 608 B | 608 B | ✓ |
Overall change | 1.84 kB | 1.84 kB | ⚠️ +1 B |
Diffs
Diff for 677f882d2ed8..5ec6837e3.js
@@ -1703,7 +1703,8 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
shallow: options.shallow && _this._shallow,
locale: options.locale || _this.defaultLocale
}),
- forcedScroll
+ forcedScroll,
+ true
);
}; // represents the current component key
@@ -1860,7 +1861,8 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
url,
as,
options,
- forcedScroll
+ forcedScroll,
+ isPopState
) {
var _options$scroll,
localeChange,
@@ -1893,6 +1895,9 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
missingParams,
_self$__NEXT_DATA__$p,
_self$__NEXT_DATA__$p2,
+ isSamePageURLChange,
+ isPopStateShallowRoute,
+ isValidShallowRoute,
routeInfo,
_routeInfo,
error,
@@ -1905,8 +1910,7 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
newUrl,
newAs,
notFoundRoute,
- appComp,
- isValidShallowRoute;
+ appComp;
return _regeneratorRuntime.wrap(
function _callee$(_context) {
@@ -2257,17 +2261,23 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
routeProps
);
_context.prev = 79;
- _context.next = 82;
+ isSamePageURLChange = this.route === route;
+ isPopStateShallowRoute = isPopState && !!false;
+ isValidShallowRoute =
+ (options.shallow && isSamePageURLChange) ||
+ isPopStateShallowRoute;
+ _context.next = 85;
return this.getRouteInfo(
route,
pathname,
query,
as,
resolvedAs,
- routeProps
+ routeProps,
+ isValidShallowRoute
);
- case 82:
+ case 85:
routeInfo = _context.sent;
(_routeInfo = routeInfo),
(error = _routeInfo.error),
@@ -2276,14 +2286,14 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
(__N_SSP = _routeInfo.__N_SSP); // handle redirect on client-transition
if (!((__N_SSG || __N_SSP) && props)) {
- _context.next = 109;
+ _context.next = 112;
break;
}
if (
!(props.pageProps && props.pageProps.__N_REDIRECT)
) {
- _context.next = 95;
+ _context.next = 98;
break;
}
@@ -2292,7 +2302,7 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
// it's not
if (!destination.startsWith("/")) {
- _context.next = 93;
+ _context.next = 96;
break;
}
@@ -2301,7 +2311,7 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
resolveDynamicRoute(parsedHref, pages, false);
if (!pages.includes(parsedHref.pathname)) {
- _context.next = 93;
+ _context.next = 96;
break;
}
@@ -2317,37 +2327,37 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
this.change(method, newUrl, newAs, options)
);
- case 93:
+ case 96:
window.location.href = destination;
return _context.abrupt(
"return",
new Promise(function() {})
);
- case 95:
+ case 98:
this.isPreview = !!props.__N_PREVIEW; // handle SSG data 404
if (!(props.notFound === SSG_DATA_NOT_FOUND)) {
- _context.next = 109;
+ _context.next = 112;
break;
}
- _context.prev = 97;
- _context.next = 100;
+ _context.prev = 100;
+ _context.next = 103;
return this.fetchComponent("/404");
- case 100:
+ case 103:
notFoundRoute = "/404";
- _context.next = 106;
+ _context.next = 109;
break;
- case 103:
- _context.prev = 103;
- _context.t1 = _context["catch"](97);
+ case 106:
+ _context.prev = 106;
+ _context.t1 = _context["catch"](100);
notFoundRoute = "/_error";
- case 106:
- _context.next = 108;
+ case 109:
+ _context.next = 111;
return this.getRouteInfo(
notFoundRoute,
notFoundRoute,
@@ -2356,13 +2366,14 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
resolvedAs,
{
shallow: false
- }
+ },
+ false
);
- case 108:
+ case 111:
routeInfo = _context.sent;
- case 109:
+ case 112:
Router.events.emit(
"beforeHistoryChange",
as,
@@ -2371,10 +2382,7 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
this.changeState(method, url, as, options);
if (false) {
- } // shallow routing is only allowed for same page URL changes.
-
- isValidShallowRoute =
- options.shallow && this.route === route;
+ }
if (
options._h &&
@@ -2394,7 +2402,7 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
props.pageProps.statusCode = 500;
}
- _context.next = 116;
+ _context.next = 118;
return this.set(
route,
pathname,
@@ -2413,9 +2421,9 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
else throw e;
});
- case 116:
+ case 118:
if (!error) {
- _context.next = 119;
+ _context.next = 121;
break;
}
@@ -2427,7 +2435,7 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
);
throw error;
- case 119:
+ case 121:
if (false) {
}
@@ -2438,21 +2446,21 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
);
return _context.abrupt("return", true);
- case 124:
- _context.prev = 124;
+ case 126:
+ _context.prev = 126;
_context.t2 = _context["catch"](79);
if (!_context.t2.cancelled) {
- _context.next = 128;
+ _context.next = 130;
break;
}
return _context.abrupt("return", false);
- case 128:
+ case 130:
throw _context.t2;
- case 129:
+ case 131:
case "end":
return _context.stop();
}
@@ -2462,14 +2470,14 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
this,
[
[36, 46],
- [79, 124],
- [97, 103]
+ [79, 126],
+ [100, 106]
]
);
})
);
- function change(_x, _x2, _x3, _x4, _x5) {
+ function change(_x, _x2, _x3, _x4, _x5, _x6) {
return _change.apply(this, arguments);
}
@@ -2654,7 +2662,7 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
})
);
- function handleRouteInfoError(_x6, _x7, _x8, _x9, _x10, _x11) {
+ function handleRouteInfoError(_x7, _x8, _x9, _x10, _x11, _x12) {
return _handleRouteInfoError.apply(this, arguments);
}
@@ -2671,7 +2679,8 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
query,
as,
resolvedAs,
- routeProps
+ routeProps,
+ isValidShallowRoute
) {
var _this2 = this;
@@ -2694,13 +2703,7 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
_context3.prev = 0;
existingRouteInfo = this.components[route];
- if (
- !(
- routeProps.shallow &&
- existingRouteInfo &&
- this.route === route
- )
- ) {
+ if (!(isValidShallowRoute && existingRouteInfo)) {
_context3.next = 4;
break;
}
@@ -2839,7 +2842,7 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
})
);
- function getRouteInfo(_x12, _x13, _x14, _x15, _x16, _x17) {
+ function getRouteInfo(_x13, _x14, _x15, _x16, _x17, _x18, _x19) {
return _getRouteInfo.apply(this, arguments);
}
@@ -3085,7 +3088,7 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
})
);
- function prefetch(_x18) {
+ function prefetch(_x20) {
return _prefetch.apply(this, arguments);
}
@@ -3150,7 +3153,7 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
})
);
- function fetchComponent(_x19) {
+ function fetchComponent(_x21) {
return _fetchComponent.apply(this, arguments);
}
Diff for index.html
@@ -22,7 +22,7 @@
/>
<link
rel="preload"
- href="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.42120b530b65ec6837e3.js"
+ href="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.bc649bb861552e8cb8d3.js"
as="script"
/>
<link
@@ -65,7 +65,7 @@
async=""
></script>
<script
- src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.42120b530b65ec6837e3.js"
+ src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.bc649bb861552e8cb8d3.js"
async=""
></script>
<script
Diff for link.html
@@ -22,7 +22,7 @@
/>
<link
rel="preload"
- href="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.42120b530b65ec6837e3.js"
+ href="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.bc649bb861552e8cb8d3.js"
as="script"
/>
<link
@@ -70,7 +70,7 @@
async=""
></script>
<script
- src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.42120b530b65ec6837e3.js"
+ src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.bc649bb861552e8cb8d3.js"
async=""
></script>
<script
Diff for withRouter.html
@@ -22,7 +22,7 @@
/>
<link
rel="preload"
- href="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.42120b530b65ec6837e3.js"
+ href="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.bc649bb861552e8cb8d3.js"
as="script"
/>
<link
@@ -65,7 +65,7 @@
async=""
></script>
<script
- src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.42120b530b65ec6837e3.js"
+ src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.bc649bb861552e8cb8d3.js"
async=""
></script>
<script
Serverless Mode (Increase detected ⚠️)
General Overall increase ⚠️
vercel/next.js canary | okmttdhr/next.js story/popstate-shallow-route | Change | |
---|---|---|---|
buildDuration | 13.4s | 13.6s | ⚠️ +193ms |
nodeModulesSize | 42.7 MB | 42.7 MB | ⚠️ +1.09 kB |
Client Bundles (main, webpack, commons) Overall increase ⚠️
vercel/next.js canary | okmttdhr/next.js story/popstate-shallow-route | Change | |
---|---|---|---|
677f882d2ed8..e7a0.js gzip | 13.4 kB | N/A | N/A |
framework.HASH.js gzip | 39 kB | 39 kB | ✓ |
main-HASH.js gzip | 6.65 kB | 6.65 kB | ✓ |
webpack-HASH.js gzip | 751 B | 751 B | ✓ |
677f882d2ed8..92d1.js gzip | N/A | 13.4 kB | N/A |
Overall change | 59.7 kB | 59.7 kB | ⚠️ +9 B |
Legacy Client Bundles (polyfills)
vercel/next.js canary | okmttdhr/next.js story/popstate-shallow-route | Change | |
---|---|---|---|
polyfills-HASH.js gzip | 31.3 kB | 31.3 kB | ✓ |
Overall change | 31.3 kB | 31.3 kB | ✓ |
Client Pages
vercel/next.js canary | okmttdhr/next.js story/popstate-shallow-route | Change | |
---|---|---|---|
_app-2a09aa2..4a98.js gzip | 1.28 kB | 1.28 kB | ✓ |
_error-8b758..aef6.js gzip | 3.46 kB | 3.46 kB | ✓ |
amp-e3e9bc99..932c.js gzip | 536 B | 536 B | ✓ |
hooks-5023ef..3670.js gzip | 888 B | 888 B | ✓ |
index-3a2b03..c677.js gzip | 227 B | 227 B | ✓ |
link-177412b..043e.js gzip | 1.67 kB | 1.67 kB | ✓ |
routerDirect..1a66.js gzip | 303 B | 303 B | ✓ |
withRouter-9..1b7d.js gzip | 302 B | 302 B | ✓ |
Overall change | 8.66 kB | 8.66 kB | ✓ |
Client Build Manifests
vercel/next.js canary | okmttdhr/next.js story/popstate-shallow-route | Change | |
---|---|---|---|
_buildManifest.js gzip | 347 B | 347 B | ✓ |
Overall change | 347 B | 347 B | ✓ |
Serverless bundles Overall increase ⚠️
vercel/next.js canary | okmttdhr/next.js story/popstate-shallow-route | Change | |
---|---|---|---|
_error.js | 1.01 MB | 1.01 MB | ✓ |
404.html | 2.67 kB | 2.67 kB | ✓ |
500.html | 2.65 kB | 2.65 kB | ✓ |
amp.amp.html | 10.4 kB | 10.4 kB | ✓ |
amp.html | 1.86 kB | 1.86 kB | ✓ |
hooks.html | 1.92 kB | 1.92 kB | ✓ |
index.js | 1.01 MB | 1.01 MB | ✓ |
link.js | 1.06 MB | 1.06 MB | ⚠️ +121 B |
routerDirect.js | 1.06 MB | 1.06 MB | ⚠️ +121 B |
withRouter.js | 1.06 MB | 1.06 MB | ⚠️ +121 B |
Overall change | 5.21 MB | 5.21 MB | ⚠️ +363 B |
Webpack 5 Mode (Increase detected ⚠️)
General Overall increase ⚠️
vercel/next.js canary | okmttdhr/next.js story/popstate-shallow-route | Change | |
---|---|---|---|
buildDuration | 13.5s | 13.6s | ⚠️ +131ms |
nodeModulesSize | 42.7 MB | 42.7 MB | ⚠️ +1.09 kB |
Page Load Tests Overall increase ✓
vercel/next.js canary | okmttdhr/next.js story/popstate-shallow-route | Change | |
---|---|---|---|
/ failed reqs | 0 | 0 | ✓ |
/ total time (seconds) | 2.119 | 2.073 | -0.05 |
/ avg req/sec | 1179.97 | 1206.26 | +26.29 |
/error-in-render failed reqs | 0 | 0 | ✓ |
/error-in-render total time (seconds) | 1.512 | 1.434 | -0.08 |
/error-in-render avg req/sec | 1653.77 | 1743.09 | +89.32 |
Client Bundles (main, webpack, commons) Overall increase ⚠️
vercel/next.js canary | okmttdhr/next.js story/popstate-shallow-route | Change | |
---|---|---|---|
597-74632e79..1d47.js gzip | 13.3 kB | 13.3 kB | ⚠️ +8 B |
framework.HASH.js gzip | 39.3 kB | 39.3 kB | ✓ |
main-HASH.js gzip | 6.59 kB | 6.59 kB | ✓ |
webpack-HASH.js gzip | 954 B | 954 B | ✓ |
Overall change | 60.1 kB | 60.1 kB | ⚠️ +8 B |
Legacy Client Bundles (polyfills)
vercel/next.js canary | okmttdhr/next.js story/popstate-shallow-route | Change | |
---|---|---|---|
polyfills-HASH.js gzip | 31.1 kB | 31.1 kB | ✓ |
Overall change | 31.1 kB | 31.1 kB | ✓ |
Client Pages
vercel/next.js canary | okmttdhr/next.js story/popstate-shallow-route | Change | |
---|---|---|---|
_app-aedc815..1421.js gzip | 1.26 kB | 1.26 kB | ✓ |
_error-71ec2..1a96.js gzip | 3.38 kB | 3.38 kB | ✓ |
amp-33a09cb0..6745.js gzip | 536 B | 536 B | ✓ |
hooks-4e968a..f870.js gzip | 902 B | 902 B | ✓ |
index-5c6845..f75c.js gzip | 230 B | 230 B | ✓ |
link-99f0c6c..b84a.js gzip | 1.65 kB | 1.65 kB | ✓ |
routerDirect..bb56.js gzip | 306 B | 306 B | ✓ |
withRouter-7..2133.js gzip | 302 B | 302 B | ✓ |
Overall change | 8.57 kB | 8.57 kB | ✓ |
Client Build Manifests
vercel/next.js canary | okmttdhr/next.js story/popstate-shallow-route | Change | |
---|---|---|---|
_buildManifest.js gzip | 326 B | 326 B | ✓ |
Overall change | 326 B | 326 B | ✓ |
Rendered Page Sizes
vercel/next.js canary | okmttdhr/next.js story/popstate-shallow-route | Change | |
---|---|---|---|
index.html gzip | 586 B | 586 B | ✓ |
link.html gzip | 593 B | 593 B | ✓ |
withRouter.html gzip | 581 B | 581 B | ✓ |
Overall change | 1.76 kB | 1.76 kB | ✓ |
Diffs
Diff for 677f882d2ed8..eaa79e7a0.js
@@ -971,7 +971,8 @@
shallow: o.shallow && i._shallow,
locale: o.locale || i.defaultLocale
}),
- undefined
+ undefined,
+ !0
);
}
} else {
@@ -1068,9 +1069,8 @@
key: "change",
value: (function() {
var e = o(
- n.mark(function e(r, o, a, i, u) {
- var l,
- f,
+ n.mark(function e(r, o, a, i, u, l) {
+ var f,
v,
y,
w,
@@ -1103,7 +1103,10 @@
nt,
ot,
at,
- it;
+ it,
+ ut,
+ st,
+ ct;
return n.wrap(
function(e) {
for (;;)
@@ -1119,20 +1122,20 @@
);
case 3:
i._h && (this.isReady = !0),
- (i.scroll = !(null != (l = i.scroll) && !l)),
- (f = i.locale !== this.locale),
+ (i.scroll = !(null != (f = i.scroll) && !f)),
+ (v = i.locale !== this.locale),
(e.next = 18);
break;
case 18:
if (
(i._h || (this.isSsr = !1),
h.ST && performance.mark("routeChange"),
- (v = i.shallow),
- (y = { shallow: void 0 !== v && v }),
+ (y = i.shallow),
+ (w = { shallow: void 0 !== y && y }),
this._inFlightRoute &&
this.abortComponentLoad(
this._inFlightRoute,
- y
+ w
),
(a = S(
_(
@@ -1141,39 +1144,39 @@
this.defaultLocale
)
)),
- (w = x(k(a) ? E(a) : a, this.locale)),
+ (b = x(k(a) ? E(a) : a, this.locale)),
(this._inFlightRoute = a),
- i._h || !this.onlyAHashChange(w))
+ i._h || !this.onlyAHashChange(b))
) {
e.next = 34;
break;
}
return (
- (this.asPath = w),
- t.events.emit("hashChangeStart", a, y),
+ (this.asPath = b),
+ t.events.emit("hashChangeStart", a, w),
this.changeState(r, o, a, i),
- this.scrollToHash(w),
+ this.scrollToHash(b),
this.notify(this.components[this.route], null),
- t.events.emit("hashChangeComplete", a, y),
+ t.events.emit("hashChangeComplete", a, w),
e.abrupt("return", !0)
);
case 34:
return (
- (b = (0, d.parseRelativeUrl)(o)),
- (O = (P = b).pathname),
- (I = P.query),
+ (P = (0, d.parseRelativeUrl)(o)),
+ (I = (O = P).pathname),
+ (D = O.query),
(e.prev = 36),
(e.next = 39),
this.pageLoader.getPageList()
);
case 39:
return (
- (D = e.sent),
+ (M = e.sent),
(e.next = 42),
(0, c.getClientBuildManifest)()
);
case 42:
- (M = e.sent), M.__rewrites, (e.next = 50);
+ (N = e.sent), N.__rewrites, (e.next = 50);
break;
case 46:
return (
@@ -1184,15 +1187,15 @@
);
case 50:
if (
- ((b = j(b, D)).pathname !== O &&
- ((O = b.pathname),
- (o = (0, h.formatWithValidation)(b))),
- (O = O
- ? (0, s.removePathTrailingSlash)(E(O))
- : O),
- this.urlIsNew(w) || f || (r = "replaceState"),
- (N = (0, s.removePathTrailingSlash)(O)),
- (U = a),
+ ((P = j(P, M)).pathname !== I &&
+ ((I = P.pathname),
+ (o = (0, h.formatWithValidation)(P))),
+ (I = I
+ ? (0, s.removePathTrailingSlash)(E(I))
+ : I),
+ this.urlIsNew(b) || v || (r = "replaceState"),
+ (U = (0, s.removePathTrailingSlash)(I)),
+ (W = a),
R(a))
) {
e.next = 62;
@@ -1207,29 +1210,29 @@
);
case 62:
if (
- ((U = x(E(U), this.locale)),
- !(0, p.isDynamicRoute)(N))
+ ((W = x(E(W), this.locale)),
+ !(0, p.isDynamicRoute)(U))
) {
e.next = 78;
break;
}
if (
- ((W = (0, d.parseRelativeUrl)(U)),
- (q = W.pathname),
- (F = (0, g.getRouteRegex)(N)),
- (G = (0, m.getRouteMatcher)(F)(q)),
- (V = (B = N === q) ? L(N, q, I) : {}),
- G && (!B || V.result))
+ ((q = (0, d.parseRelativeUrl)(W)),
+ (F = q.pathname),
+ (G = (0, g.getRouteRegex)(U)),
+ (B = (0, m.getRouteMatcher)(G)(F)),
+ (H = (V = U === F) ? L(U, F, D) : {}),
+ B && (!V || H.result))
) {
e.next = 77;
break;
}
if (
!(
- (H = Object.keys(F.groups).filter(function(
+ (X = Object.keys(G.groups).filter(function(
t
) {
- return !I[t];
+ return !D[t];
})).length > 0
)
) {
@@ -1237,24 +1240,24 @@
break;
}
throw new Error(
- (B
+ (V
? "The provided `href` ("
.concat(
o,
") value is missing query values ("
)
.concat(
- H.join(", "),
+ X.join(", "),
") to be interpolated properly. "
)
: "The provided `as` value ("
.concat(
- q,
+ F,
") is incompatible with the `href` value ("
)
- .concat(N, "). ")) +
+ .concat(U, "). ")) +
"Read more: https://err.sh/vercel/next.js/".concat(
- B
+ V
? "href-interpolation-failed"
: "incompatible-href-as"
)
@@ -1263,143 +1266,158 @@
e.next = 78;
break;
case 77:
- B
+ V
? (a = (0, h.formatWithValidation)(
- Object.assign({}, W, {
- pathname: V.result,
- query: C(I, V.params)
+ Object.assign({}, q, {
+ pathname: H.result,
+ query: C(D, H.params)
})
))
- : Object.assign(I, G);
+ : Object.assign(D, B);
case 78:
return (
- t.events.emit("routeChangeStart", a, y),
+ t.events.emit("routeChangeStart", a, w),
(e.prev = 79),
- (e.next = 82),
- this.getRouteInfo(N, O, I, a, U, y)
+ ($ = this.route === U),
+ (Y = l && !1),
+ (Q = (i.shallow && $) || Y),
+ (e.next = 85),
+ this.getRouteInfo(U, I, D, a, W, w, Q)
);
- case 82:
+ case 85:
if (
- ((J = e.sent),
- (Y = ($ = J).error),
- (Q = $.props),
- (Z = $.__N_SSG),
- (K = $.__N_SSP),
- (!Z && !K) || !Q)
+ ((Z = e.sent),
+ (tt = (K = Z).error),
+ (et = K.props),
+ (rt = K.__N_SSG),
+ (nt = K.__N_SSP),
+ (!rt && !nt) || !et)
) {
- e.next = 109;
+ e.next = 112;
break;
}
- if (!Q.pageProps || !Q.pageProps.__N_REDIRECT) {
- e.next = 95;
+ if (!et.pageProps || !et.pageProps.__N_REDIRECT) {
+ e.next = 98;
break;
}
if (
- !(tt = Q.pageProps.__N_REDIRECT).startsWith("/")
+ !(ot = et.pageProps.__N_REDIRECT).startsWith(
+ "/"
+ )
) {
- e.next = 93;
+ e.next = 96;
break;
}
if (
- (j((et = (0, d.parseRelativeUrl)(tt)), D, !1),
- !D.includes(et.pathname))
+ (j((at = (0, d.parseRelativeUrl)(ot)), M, !1),
+ !M.includes(at.pathname))
) {
- e.next = 93;
+ e.next = 96;
break;
}
return (
- (rt = T(this, tt, tt)),
- (nt = rt.url),
- (ot = rt.as),
- e.abrupt("return", this.change(r, nt, ot, i))
+ (it = T(this, ot, ot)),
+ (ut = it.url),
+ (st = it.as),
+ e.abrupt("return", this.change(r, ut, st, i))
);
- case 93:
+ case 96:
return (
- (window.location.href = tt),
+ (window.location.href = ot),
e.abrupt("return", new Promise(function() {}))
);
- case 95:
+ case 98:
if (
- ((this.isPreview = !!Q.__N_PREVIEW),
- Q.notFound !== A)
+ ((this.isPreview = !!et.__N_PREVIEW),
+ et.notFound !== A)
) {
- e.next = 109;
+ e.next = 112;
break;
}
return (
- (e.prev = 97),
- (e.next = 100),
+ (e.prev = 100),
+ (e.next = 103),
this.fetchComponent("/404")
);
- case 100:
- (at = "/404"), (e.next = 106);
- break;
case 103:
- (e.prev = 103),
- (e.t1 = e.catch(97)),
- (at = "/_error");
+ (ct = "/404"), (e.next = 109);
+ break;
case 106:
+ (e.prev = 106),
+ (e.t1 = e.catch(100)),
+ (ct = "/_error");
+ case 109:
return (
- (e.next = 108),
- this.getRouteInfo(at, at, I, a, U, {
- shallow: !1
- })
+ (e.next = 111),
+ this.getRouteInfo(
+ ct,
+ ct,
+ D,
+ a,
+ W,
+ { shallow: !1 },
+ !1
+ )
);
- case 108:
- J = e.sent;
- case 109:
+ case 111:
+ Z = e.sent;
+ case 112:
return (
- t.events.emit("beforeHistoryChange", a, y),
+ t.events.emit("beforeHistoryChange", a, w),
this.changeState(r, o, a, i),
- (it = i.shallow && this.route === N),
i._h &&
- "/_error" === O &&
+ "/_error" === I &&
500 ===
- (null == (X = self.__NEXT_DATA__.props) ||
- null == (z = X.pageProps)
+ (null == (z = self.__NEXT_DATA__.props) ||
+ null == (J = z.pageProps)
? void 0
- : z.statusCode) &&
- null != Q &&
- Q.pageProps &&
- (Q.pageProps.statusCode = 500),
- (e.next = 116),
+ : J.statusCode) &&
+ null != et &&
+ et.pageProps &&
+ (et.pageProps.statusCode = 500),
+ (e.next = 118),
this.set(
- N,
- O,
+ U,
I,
- w,
- J,
- u || (it || !i.scroll ? null : { x: 0, y: 0 })
+ D,
+ b,
+ Z,
+ u || (Q || !i.scroll ? null : { x: 0, y: 0 })
).catch(function(t) {
if (!t.cancelled) throw t;
- Y = Y || t;
+ tt = tt || t;
})
);
- case 116:
- if (!Y) {
- e.next = 119;
+ case 118:
+ if (!tt) {
+ e.next = 121;
break;
}
- throw (t.events.emit("routeChangeError", Y, w, y),
- Y);
- case 119:
+ throw (t.events.emit(
+ "routeChangeError",
+ tt,
+ b,
+ w
+ ),
+ tt);
+ case 121:
return (
- t.events.emit("routeChangeComplete", a, y),
+ t.events.emit("routeChangeComplete", a, w),
e.abrupt("return", !0)
);
- case 124:
+ case 126:
if (
- ((e.prev = 124),
+ ((e.prev = 126),
(e.t2 = e.catch(79)),
!e.t2.cancelled)
) {
- e.next = 128;
+ e.next = 130;
break;
}
return e.abrupt("return", !1);
- case 128:
+ case 130:
throw e.t2;
- case 129:
+ case 131:
case "end":
return e.stop();
}
@@ -1408,13 +1426,13 @@
this,
[
[36, 46],
- [79, 124],
- [97, 103]
+ [79, 126],
+ [100, 106]
]
);
})
);
- return function(t, r, n, o, a) {
+ return function(t, r, n, o, a, i) {
return e.apply(this, arguments);
};
})()
@@ -1554,16 +1572,16 @@
key: "getRouteInfo",
value: (function() {
var t = o(
- n.mark(function t(e, r, o, a, i, u) {
- var s,
- c,
+ n.mark(function t(e, r, o, a, i, u, s) {
+ var c,
l,
f,
p,
d,
v,
y,
- m = this;
+ m,
+ g = this;
return n.wrap(
function(t) {
for (;;)
@@ -1571,19 +1589,19 @@
case 0:
if (
((t.prev = 0),
- (s = this.components[e]),
- !u.shallow || !s || this.route !== e)
+ (c = this.components[e]),
+ !s || !c)
) {
t.next = 4;
break;
}
- return t.abrupt("return", s);
+ return t.abrupt("return", c);
case 4:
- if (!(c = s && "initial" in s ? void 0 : s)) {
+ if (!(l = c && "initial" in c ? void 0 : c)) {
t.next = 9;
break;
}
- (t.t0 = c), (t.next = 12);
+ (t.t0 = l), (t.next = 12);
break;
case 9:
return (
@@ -1600,31 +1618,31 @@
case 11:
t.t0 = t.sent;
case 12:
- (l = t.t0),
- (f = l.Component),
- (p = l.__N_SSG),
- (d = l.__N_SSP),
+ (f = t.t0),
+ (p = f.Component),
+ (d = f.__N_SSG),
+ (v = f.__N_SSP),
(t.next = 18);
break;
case 18:
return (
- (p || d) &&
- (v = this.pageLoader.getDataHref(
+ (d || v) &&
+ (y = this.pageLoader.getDataHref(
(0, h.formatWithValidation)({
pathname: r,
query: o
}),
i,
- p,
+ d,
this.locale
)),
(t.next = 21),
this._getData(function() {
- return p
- ? m._getStaticData(v)
- : d
- ? m._getServerData(v)
- : m.getInitialProps(f, {
+ return d
+ ? g._getStaticData(y)
+ : v
+ ? g._getServerData(y)
+ : g.getInitialProps(p, {
pathname: r,
query: o,
asPath: a
@@ -1633,10 +1651,10 @@
);
case 21:
return (
- (y = t.sent),
- (l.props = y),
- (this.components[e] = l),
- t.abrupt("return", l)
+ (m = t.sent),
+ (f.props = m),
+ (this.components[e] = f),
+ t.abrupt("return", f)
);
case 27:
return (
@@ -1658,7 +1676,7 @@
);
})
);
- return function(e, r, n, o, a, i) {
+ return function(e, r, n, o, a, i, u) {
return t.apply(this, arguments);
};
})()
Diff for index.html
@@ -22,7 +22,7 @@
/>
<link
rel="preload"
- href="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.45a1f5b1723eaa79e7a0.js"
+ href="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.f9433c18da62593c92d1.js"
as="script"
/>
<link
@@ -43,7 +43,7 @@
"props": { "pageProps": {} },
"page": "/",
"query": {},
- "buildId": "JpG_DPHgeJZh3U6OLBqIL",
+ "buildId": "zm3eI0tSER1JEtmL8kbht",
"isFallback": false,
"gip": true
}
@@ -65,7 +65,7 @@
async=""
></script>
<script
- src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.45a1f5b1723eaa79e7a0.js"
+ src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.f9433c18da62593c92d1.js"
async=""
></script>
<script
@@ -77,11 +77,11 @@
async=""
></script>
<script
- src="/_next/static/JpG_DPHgeJZh3U6OLBqIL/_buildManifest.js"
+ src="/_next/static/zm3eI0tSER1JEtmL8kbht/_buildManifest.js"
async=""
></script>
<script
- src="/_next/static/JpG_DPHgeJZh3U6OLBqIL/_ssgManifest.js"
+ src="/_next/static/zm3eI0tSER1JEtmL8kbht/_ssgManifest.js"
async=""
></script>
</body>
Diff for link.html
@@ -22,7 +22,7 @@
/>
<link
rel="preload"
- href="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.45a1f5b1723eaa79e7a0.js"
+ href="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.f9433c18da62593c92d1.js"
as="script"
/>
<link
@@ -48,7 +48,7 @@
"props": { "pageProps": {} },
"page": "/link",
"query": {},
- "buildId": "JpG_DPHgeJZh3U6OLBqIL",
+ "buildId": "zm3eI0tSER1JEtmL8kbht",
"isFallback": false,
"gip": true
}
@@ -70,7 +70,7 @@
async=""
></script>
<script
- src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.45a1f5b1723eaa79e7a0.js"
+ src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.f9433c18da62593c92d1.js"
async=""
></script>
<script
@@ -82,11 +82,11 @@
async=""
></script>
<script
- src="/_next/static/JpG_DPHgeJZh3U6OLBqIL/_buildManifest.js"
+ src="/_next/static/zm3eI0tSER1JEtmL8kbht/_buildManifest.js"
async=""
></script>
<script
- src="/_next/static/JpG_DPHgeJZh3U6OLBqIL/_ssgManifest.js"
+ src="/_next/static/zm3eI0tSER1JEtmL8kbht/_ssgManifest.js"
async=""
></script>
</body>
Diff for withRouter.html
@@ -22,7 +22,7 @@
/>
<link
rel="preload"
- href="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.45a1f5b1723eaa79e7a0.js"
+ href="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.f9433c18da62593c92d1.js"
as="script"
/>
<link
@@ -43,7 +43,7 @@
"props": { "pageProps": {} },
"page": "/withRouter",
"query": {},
- "buildId": "JpG_DPHgeJZh3U6OLBqIL",
+ "buildId": "zm3eI0tSER1JEtmL8kbht",
"isFallback": false,
"gip": true
}
@@ -65,7 +65,7 @@
async=""
></script>
<script
- src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.45a1f5b1723eaa79e7a0.js"
+ src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.f9433c18da62593c92d1.js"
async=""
></script>
<script
@@ -77,11 +77,11 @@
async=""
></script>
<script
- src="/_next/static/JpG_DPHgeJZh3U6OLBqIL/_buildManifest.js"
+ src="/_next/static/zm3eI0tSER1JEtmL8kbht/_buildManifest.js"
async=""
></script>
<script
- src="/_next/static/JpG_DPHgeJZh3U6OLBqIL/_ssgManifest.js"
+ src="/_next/static/zm3eI0tSER1JEtmL8kbht/_ssgManifest.js"
async=""
></script>
</body>
Stats from current PR
Default Server Mode (Increase detected ⚠️)
General Overall increase ⚠️
vercel/next.js canary | okmttdhr/next.js story/popstate-shallow-route | Change | |
---|---|---|---|
buildDuration | 12.4s | 12.4s | ⚠️ +62ms |
nodeModulesSize | 42.7 MB | 42.7 MB | ⚠️ +1.2 kB |
Page Load Tests Overall increase ✓
vercel/next.js canary | okmttdhr/next.js story/popstate-shallow-route | Change | |
---|---|---|---|
/ failed reqs | 0 | 0 | ✓ |
/ total time (seconds) | 2.318 | 2.356 | ⚠️ +0.04 |
/ avg req/sec | 1078.72 | 1061 | ⚠️ -17.72 |
/error-in-render failed reqs | 0 | 0 | ✓ |
/error-in-render total time (seconds) | 1.63 | 1.577 | -0.05 |
/error-in-render avg req/sec | 1533.32 | 1585.23 | +51.91 |
Client Bundles (main, webpack, commons) Overall increase ⚠️
vercel/next.js canary | okmttdhr/next.js story/popstate-shallow-route | Change | |
---|---|---|---|
677f882d2ed8..e7a0.js gzip | 13.4 kB | 13.4 kB | ⚠️ +9 B |
framework.HASH.js gzip | 39 kB | 39 kB | ✓ |
main-HASH.js gzip | 6.65 kB | 6.65 kB | ✓ |
webpack-HASH.js gzip | 751 B | 751 B | ✓ |
Overall change | 59.7 kB | 59.7 kB | ⚠️ +9 B |
Legacy Client Bundles (polyfills)
vercel/next.js canary | okmttdhr/next.js story/popstate-shallow-route | Change | |
---|---|---|---|
polyfills-HASH.js gzip | 31.3 kB | 31.3 kB | ✓ |
Overall change | 31.3 kB | 31.3 kB | ✓ |
Client Pages
vercel/next.js canary | okmttdhr/next.js story/popstate-shallow-route | Change | |
---|---|---|---|
_app-2a09aa2..4a98.js gzip | 1.28 kB | 1.28 kB | ✓ |
_error-8b758..aef6.js gzip | 3.46 kB | 3.46 kB | ✓ |
amp-e3e9bc99..932c.js gzip | 536 B | 536 B | ✓ |
hooks-5023ef..3670.js gzip | 888 B | 888 B | ✓ |
index-3a2b03..c677.js gzip | 227 B | 227 B | ✓ |
link-177412b..043e.js gzip | 1.67 kB | 1.67 kB | ✓ |
routerDirect..1a66.js gzip | 303 B | 303 B | ✓ |
withRouter-9..1b7d.js gzip | 302 B | 302 B | ✓ |
Overall change | 8.66 kB | 8.66 kB | ✓ |
Client Build Manifests
vercel/next.js canary | okmttdhr/next.js story/popstate-shallow-route | Change | |
---|---|---|---|
_buildManifest.js gzip | 347 B | 347 B | ✓ |
Overall change | 347 B | 347 B | ✓ |
Rendered Page Sizes Overall increase ⚠️
vercel/next.js canary | okmttdhr/next.js story/popstate-shallow-route | Change | |
---|---|---|---|
index.html gzip | 613 B | 613 B | ✓ |
link.html gzip | 620 B | 620 B | ✓ |
withRouter.html gzip | 607 B | 608 B | ⚠️ +1 B |
Overall change | 1.84 kB | 1.84 kB | ⚠️ +1 B |
Diffs
Diff for 677f882d2ed8..5ec6837e3.js
@@ -1703,7 +1703,8 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
shallow: options.shallow && _this._shallow,
locale: options.locale || _this.defaultLocale
}),
- forcedScroll
+ forcedScroll,
+ true
);
}; // represents the current component key
@@ -1860,7 +1861,8 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
url,
as,
options,
- forcedScroll
+ forcedScroll,
+ isPopState
) {
var _options$scroll,
localeChange,
@@ -1893,6 +1895,9 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
missingParams,
_self$__NEXT_DATA__$p,
_self$__NEXT_DATA__$p2,
+ isSamePageURLChange,
+ isPopStateShallowRoute,
+ isValidShallowRoute,
routeInfo,
_routeInfo,
error,
@@ -1905,8 +1910,7 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
newUrl,
newAs,
notFoundRoute,
- appComp,
- isValidShallowRoute;
+ appComp;
return _regeneratorRuntime.wrap(
function _callee$(_context) {
@@ -2257,17 +2261,26 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
routeProps
);
_context.prev = 79;
- _context.next = 82;
+ isSamePageURLChange = this.route === route;
+ isPopStateShallowRoute =
+ isPopState &&
+ !!false &&
+ !(0, _isDynamic.isDynamicRoute)(route);
+ isValidShallowRoute =
+ (options.shallow && isSamePageURLChange) ||
+ isPopStateShallowRoute;
+ _context.next = 85;
return this.getRouteInfo(
route,
pathname,
query,
as,
resolvedAs,
- routeProps
+ routeProps,
+ isValidShallowRoute
);
- case 82:
+ case 85:
routeInfo = _context.sent;
(_routeInfo = routeInfo),
(error = _routeInfo.error),
@@ -2276,14 +2289,14 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
(__N_SSP = _routeInfo.__N_SSP); // handle redirect on client-transition
if (!((__N_SSG || __N_SSP) && props)) {
- _context.next = 109;
+ _context.next = 112;
break;
}
if (
!(props.pageProps && props.pageProps.__N_REDIRECT)
) {
- _context.next = 95;
+ _context.next = 98;
break;
}
@@ -2292,7 +2305,7 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
// it's not
if (!destination.startsWith("/")) {
- _context.next = 93;
+ _context.next = 96;
break;
}
@@ -2301,7 +2314,7 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
resolveDynamicRoute(parsedHref, pages, false);
if (!pages.includes(parsedHref.pathname)) {
- _context.next = 93;
+ _context.next = 96;
break;
}
@@ -2317,37 +2330,37 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
this.change(method, newUrl, newAs, options)
);
- case 93:
+ case 96:
window.location.href = destination;
return _context.abrupt(
"return",
new Promise(function() {})
);
- case 95:
+ case 98:
this.isPreview = !!props.__N_PREVIEW; // handle SSG data 404
if (!(props.notFound === SSG_DATA_NOT_FOUND)) {
- _context.next = 109;
+ _context.next = 112;
break;
}
- _context.prev = 97;
- _context.next = 100;
+ _context.prev = 100;
+ _context.next = 103;
return this.fetchComponent("/404");
- case 100:
+ case 103:
notFoundRoute = "/404";
- _context.next = 106;
+ _context.next = 109;
break;
- case 103:
- _context.prev = 103;
- _context.t1 = _context["catch"](97);
+ case 106:
+ _context.prev = 106;
+ _context.t1 = _context["catch"](100);
notFoundRoute = "/_error";
- case 106:
- _context.next = 108;
+ case 109:
+ _context.next = 111;
return this.getRouteInfo(
notFoundRoute,
notFoundRoute,
@@ -2356,13 +2369,14 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
resolvedAs,
{
shallow: false
- }
+ },
+ false
);
- case 108:
+ case 111:
routeInfo = _context.sent;
- case 109:
+ case 112:
Router.events.emit(
"beforeHistoryChange",
as,
@@ -2371,10 +2385,7 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
this.changeState(method, url, as, options);
if (false) {
- } // shallow routing is only allowed for same page URL changes.
-
- isValidShallowRoute =
- options.shallow && this.route === route;
+ }
if (
options._h &&
@@ -2394,7 +2405,7 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
props.pageProps.statusCode = 500;
}
- _context.next = 116;
+ _context.next = 118;
return this.set(
route,
pathname,
@@ -2413,9 +2424,9 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
else throw e;
});
- case 116:
+ case 118:
if (!error) {
- _context.next = 119;
+ _context.next = 121;
break;
}
@@ -2427,7 +2438,7 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
);
throw error;
- case 119:
+ case 121:
if (false) {
}
@@ -2438,21 +2449,21 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
);
return _context.abrupt("return", true);
- case 124:
- _context.prev = 124;
+ case 126:
+ _context.prev = 126;
_context.t2 = _context["catch"](79);
if (!_context.t2.cancelled) {
- _context.next = 128;
+ _context.next = 130;
break;
}
return _context.abrupt("return", false);
- case 128:
+ case 130:
throw _context.t2;
- case 129:
+ case 131:
case "end":
return _context.stop();
}
@@ -2462,14 +2473,14 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
this,
[
[36, 46],
- [79, 124],
- [97, 103]
+ [79, 126],
+ [100, 106]
]
);
})
);
- function change(_x, _x2, _x3, _x4, _x5) {
+ function change(_x, _x2, _x3, _x4, _x5, _x6) {
return _change.apply(this, arguments);
}
@@ -2654,7 +2665,7 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
})
);
- function handleRouteInfoError(_x6, _x7, _x8, _x9, _x10, _x11) {
+ function handleRouteInfoError(_x7, _x8, _x9, _x10, _x11, _x12) {
return _handleRouteInfoError.apply(this, arguments);
}
@@ -2671,7 +2682,8 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
query,
as,
resolvedAs,
- routeProps
+ routeProps,
+ isValidShallowRoute
) {
var _this2 = this;
@@ -2694,13 +2706,7 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
_context3.prev = 0;
existingRouteInfo = this.components[route];
- if (
- !(
- routeProps.shallow &&
- existingRouteInfo &&
- this.route === route
- )
- ) {
+ if (!(isValidShallowRoute && existingRouteInfo)) {
_context3.next = 4;
break;
}
@@ -2839,7 +2845,7 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
})
);
- function getRouteInfo(_x12, _x13, _x14, _x15, _x16, _x17) {
+ function getRouteInfo(_x13, _x14, _x15, _x16, _x17, _x18, _x19) {
return _getRouteInfo.apply(this, arguments);
}
@@ -3085,7 +3091,7 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
})
);
- function prefetch(_x18) {
+ function prefetch(_x20) {
return _prefetch.apply(this, arguments);
}
@@ -3150,7 +3156,7 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
})
);
- function fetchComponent(_x19) {
+ function fetchComponent(_x21) {
return _fetchComponent.apply(this, arguments);
}
Diff for index.html
@@ -22,7 +22,7 @@
/>
<link
rel="preload"
- href="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.42120b530b65ec6837e3.js"
+ href="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.488bb8e2543eb04e032c.js"
as="script"
/>
<link
@@ -65,7 +65,7 @@
async=""
></script>
<script
- src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.42120b530b65ec6837e3.js"
+ src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.488bb8e2543eb04e032c.js"
async=""
></script>
<script
Diff for link.html
@@ -22,7 +22,7 @@
/>
<link
rel="preload"
- href="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.42120b530b65ec6837e3.js"
+ href="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.488bb8e2543eb04e032c.js"
as="script"
/>
<link
@@ -70,7 +70,7 @@
async=""
></script>
<script
- src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.42120b530b65ec6837e3.js"
+ src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.488bb8e2543eb04e032c.js"
async=""
></script>
<script
Diff for withRouter.html
@@ -22,7 +22,7 @@
/>
<link
rel="preload"
- href="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.42120b530b65ec6837e3.js"
+ href="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.488bb8e2543eb04e032c.js"
as="script"
/>
<link
@@ -65,7 +65,7 @@
async=""
></script>
<script
- src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.42120b530b65ec6837e3.js"
+ src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.488bb8e2543eb04e032c.js"
async=""
></script>
<script
Serverless Mode (Increase detected ⚠️)
General Overall increase ⚠️
vercel/next.js canary | okmttdhr/next.js story/popstate-shallow-route | Change | |
---|---|---|---|
buildDuration | 14.2s | 13.9s | -247ms |
nodeModulesSize | 42.7 MB | 42.7 MB | ⚠️ +1.2 kB |
Client Bundles (main, webpack, commons) Overall increase ⚠️
vercel/next.js canary | okmttdhr/next.js story/popstate-shallow-route | Change | |
---|---|---|---|
677f882d2ed8..e7a0.js gzip | 13.4 kB | N/A | N/A |
framework.HASH.js gzip | 39 kB | 39 kB | ✓ |
main-HASH.js gzip | 6.65 kB | 6.65 kB | ✓ |
webpack-HASH.js gzip | 751 B | 751 B | ✓ |
677f882d2ed8..0b1c.js gzip | N/A | 13.4 kB | N/A |
Overall change | 59.7 kB | 59.7 kB | ⚠️ +9 B |
Legacy Client Bundles (polyfills)
vercel/next.js canary | okmttdhr/next.js story/popstate-shallow-route | Change | |
---|---|---|---|
polyfills-HASH.js gzip | 31.3 kB | 31.3 kB | ✓ |
Overall change | 31.3 kB | 31.3 kB | ✓ |
Client Pages
vercel/next.js canary | okmttdhr/next.js story/popstate-shallow-route | Change | |
---|---|---|---|
_app-2a09aa2..4a98.js gzip | 1.28 kB | 1.28 kB | ✓ |
_error-8b758..aef6.js gzip | 3.46 kB | 3.46 kB | ✓ |
amp-e3e9bc99..932c.js gzip | 536 B | 536 B | ✓ |
hooks-5023ef..3670.js gzip | 888 B | 888 B | ✓ |
index-3a2b03..c677.js gzip | 227 B | 227 B | ✓ |
link-177412b..043e.js gzip | 1.67 kB | 1.67 kB | ✓ |
routerDirect..1a66.js gzip | 303 B | 303 B | ✓ |
withRouter-9..1b7d.js gzip | 302 B | 302 B | ✓ |
Overall change | 8.66 kB | 8.66 kB | ✓ |
Client Build Manifests
vercel/next.js canary | okmttdhr/next.js story/popstate-shallow-route | Change | |
---|---|---|---|
_buildManifest.js gzip | 347 B | 347 B | ✓ |
Overall change | 347 B | 347 B | ✓ |
Serverless bundles Overall increase ⚠️
vercel/next.js canary | okmttdhr/next.js story/popstate-shallow-route | Change | |
---|---|---|---|
_error.js | 1.01 MB | 1.01 MB | ✓ |
404.html | 2.67 kB | 2.67 kB | ✓ |
500.html | 2.65 kB | 2.65 kB | ✓ |
amp.amp.html | 10.4 kB | 10.4 kB | ✓ |
amp.html | 1.86 kB | 1.86 kB | ✓ |
hooks.html | 1.92 kB | 1.92 kB | ✓ |
index.js | 1.01 MB | 1.01 MB | ✓ |
link.js | 1.06 MB | 1.06 MB | ⚠️ +163 B |
routerDirect.js | 1.06 MB | 1.06 MB | ⚠️ +163 B |
withRouter.js | 1.06 MB | 1.06 MB | ⚠️ +163 B |
Overall change | 5.21 MB | 5.21 MB | ⚠️ +489 B |
Webpack 5 Mode (Increase detected ⚠️)
General Overall increase ⚠️
vercel/next.js canary | okmttdhr/next.js story/popstate-shallow-route | Change | |
---|---|---|---|
buildDuration | 14.3s | 14.1s | -149ms |
nodeModulesSize | 42.7 MB | 42.7 MB | ⚠️ +1.2 kB |
Page Load Tests Overall decrease ⚠️
vercel/next.js canary | okmttdhr/next.js story/popstate-shallow-route | Change | |
---|---|---|---|
/ failed reqs | 0 | 0 | ✓ |
/ total time (seconds) | 2.176 | 2.183 | ⚠️ +0.01 |
/ avg req/sec | 1149.04 | 1145.16 | ⚠️ -3.88 |
/error-in-render failed reqs | 0 | 0 | ✓ |
/error-in-render total time (seconds) | 1.53 | 1.548 | ⚠️ +0.02 |
/error-in-render avg req/sec | 1633.95 | 1614.8 | ⚠️ -19.15 |
Client Bundles (main, webpack, commons) Overall increase ⚠️
vercel/next.js canary | okmttdhr/next.js story/popstate-shallow-route | Change | |
---|---|---|---|
597-74632e79..1d47.js gzip | 13.3 kB | 13.3 kB | ⚠️ +8 B |
framework.HASH.js gzip | 39.3 kB | 39.3 kB | ✓ |
main-HASH.js gzip | 6.6 kB | 6.6 kB | ✓ |
webpack-HASH.js gzip | 954 B | 954 B | ✓ |
Overall change | 60.1 kB | 60.1 kB | ⚠️ +8 B |
Legacy Client Bundles (polyfills)
vercel/next.js canary | okmttdhr/next.js story/popstate-shallow-route | Change | |
---|---|---|---|
polyfills-HASH.js gzip | 31.1 kB | 31.1 kB | ✓ |
Overall change | 31.1 kB | 31.1 kB | ✓ |
Client Pages
vercel/next.js canary | okmttdhr/next.js story/popstate-shallow-route | Change | |
---|---|---|---|
_app-aedc815..1421.js gzip | 1.26 kB | 1.26 kB | ✓ |
_error-71ec2..1a96.js gzip | 3.38 kB | 3.38 kB | ✓ |
amp-33a09cb0..6745.js gzip | 536 B | 536 B | ✓ |
hooks-4e968a..f870.js gzip | 902 B | 902 B | ✓ |
index-5c6845..f75c.js gzip | 230 B | 230 B | ✓ |
link-99f0c6c..b84a.js gzip | 1.65 kB | 1.65 kB | ✓ |
routerDirect..bb56.js gzip | 306 B | 306 B | ✓ |
withRouter-7..2133.js gzip | 302 B | 302 B | ✓ |
Overall change | 8.57 kB | 8.57 kB | ✓ |
Client Build Manifests
vercel/next.js canary | okmttdhr/next.js story/popstate-shallow-route | Change | |
---|---|---|---|
_buildManifest.js gzip | 326 B | 326 B | ✓ |
Overall change | 326 B | 326 B | ✓ |
Rendered Page Sizes Overall increase ⚠️
vercel/next.js canary | okmttdhr/next.js story/popstate-shallow-route | Change | |
---|---|---|---|
index.html gzip | 586 B | 588 B | ⚠️ +2 B |
link.html gzip | 594 B | 594 B | ✓ |
withRouter.html gzip | 581 B | 583 B | ⚠️ +2 B |
Overall change | 1.76 kB | 1.76 kB | ⚠️ +4 B |
Diffs
Diff for 677f882d2ed8..eaa79e7a0.js
@@ -971,7 +971,8 @@
shallow: o.shallow && i._shallow,
locale: o.locale || i.defaultLocale
}),
- undefined
+ undefined,
+ !0
);
}
} else {
@@ -1068,9 +1069,8 @@
key: "change",
value: (function() {
var e = o(
- n.mark(function e(r, o, a, i, u) {
- var l,
- f,
+ n.mark(function e(r, o, a, i, u, l) {
+ var f,
v,
y,
w,
@@ -1103,7 +1103,10 @@
nt,
ot,
at,
- it;
+ it,
+ ut,
+ st,
+ ct;
return n.wrap(
function(e) {
for (;;)
@@ -1119,20 +1122,20 @@
);
case 3:
i._h && (this.isReady = !0),
- (i.scroll = !(null != (l = i.scroll) && !l)),
- (f = i.locale !== this.locale),
+ (i.scroll = !(null != (f = i.scroll) && !f)),
+ (v = i.locale !== this.locale),
(e.next = 18);
break;
case 18:
if (
(i._h || (this.isSsr = !1),
h.ST && performance.mark("routeChange"),
- (v = i.shallow),
- (y = { shallow: void 0 !== v && v }),
+ (y = i.shallow),
+ (w = { shallow: void 0 !== y && y }),
this._inFlightRoute &&
this.abortComponentLoad(
this._inFlightRoute,
- y
+ w
),
(a = S(
_(
@@ -1141,39 +1144,39 @@
this.defaultLocale
)
)),
- (w = x(k(a) ? E(a) : a, this.locale)),
+ (b = x(k(a) ? E(a) : a, this.locale)),
(this._inFlightRoute = a),
- i._h || !this.onlyAHashChange(w))
+ i._h || !this.onlyAHashChange(b))
) {
e.next = 34;
break;
}
return (
- (this.asPath = w),
- t.events.emit("hashChangeStart", a, y),
+ (this.asPath = b),
+ t.events.emit("hashChangeStart", a, w),
this.changeState(r, o, a, i),
- this.scrollToHash(w),
+ this.scrollToHash(b),
this.notify(this.components[this.route], null),
- t.events.emit("hashChangeComplete", a, y),
+ t.events.emit("hashChangeComplete", a, w),
e.abrupt("return", !0)
);
case 34:
return (
- (b = (0, d.parseRelativeUrl)(o)),
- (O = (P = b).pathname),
- (I = P.query),
+ (P = (0, d.parseRelativeUrl)(o)),
+ (I = (O = P).pathname),
+ (D = O.query),
(e.prev = 36),
(e.next = 39),
this.pageLoader.getPageList()
);
case 39:
return (
- (D = e.sent),
+ (M = e.sent),
(e.next = 42),
(0, c.getClientBuildManifest)()
);
case 42:
- (M = e.sent), M.__rewrites, (e.next = 50);
+ (N = e.sent), N.__rewrites, (e.next = 50);
break;
case 46:
return (
@@ -1184,15 +1187,15 @@
);
case 50:
if (
- ((b = j(b, D)).pathname !== O &&
- ((O = b.pathname),
- (o = (0, h.formatWithValidation)(b))),
- (O = O
- ? (0, s.removePathTrailingSlash)(E(O))
- : O),
- this.urlIsNew(w) || f || (r = "replaceState"),
- (N = (0, s.removePathTrailingSlash)(O)),
- (U = a),
+ ((P = j(P, M)).pathname !== I &&
+ ((I = P.pathname),
+ (o = (0, h.formatWithValidation)(P))),
+ (I = I
+ ? (0, s.removePathTrailingSlash)(E(I))
+ : I),
+ this.urlIsNew(b) || v || (r = "replaceState"),
+ (U = (0, s.removePathTrailingSlash)(I)),
+ (W = a),
R(a))
) {
e.next = 62;
@@ -1207,29 +1210,29 @@
);
case 62:
if (
- ((U = x(E(U), this.locale)),
- !(0, p.isDynamicRoute)(N))
+ ((W = x(E(W), this.locale)),
+ !(0, p.isDynamicRoute)(U))
) {
e.next = 78;
break;
}
if (
- ((W = (0, d.parseRelativeUrl)(U)),
- (q = W.pathname),
- (F = (0, g.getRouteRegex)(N)),
- (G = (0, m.getRouteMatcher)(F)(q)),
- (V = (B = N === q) ? L(N, q, I) : {}),
- G && (!B || V.result))
+ ((q = (0, d.parseRelativeUrl)(W)),
+ (F = q.pathname),
+ (G = (0, g.getRouteRegex)(U)),
+ (B = (0, m.getRouteMatcher)(G)(F)),
+ (H = (V = U === F) ? L(U, F, D) : {}),
+ B && (!V || H.result))
) {
e.next = 77;
break;
}
if (
!(
- (H = Object.keys(F.groups).filter(function(
+ (X = Object.keys(G.groups).filter(function(
t
) {
- return !I[t];
+ return !D[t];
})).length > 0
)
) {
@@ -1237,24 +1240,24 @@
break;
}
throw new Error(
- (B
+ (V
? "The provided `href` ("
.concat(
o,
") value is missing query values ("
)
.concat(
- H.join(", "),
+ X.join(", "),
") to be interpolated properly. "
)
: "The provided `as` value ("
.concat(
- q,
+ F,
") is incompatible with the `href` value ("
)
- .concat(N, "). ")) +
+ .concat(U, "). ")) +
"Read more: https://err.sh/vercel/next.js/".concat(
- B
+ V
? "href-interpolation-failed"
: "incompatible-href-as"
)
@@ -1263,143 +1266,158 @@
e.next = 78;
break;
case 77:
- B
+ V
? (a = (0, h.formatWithValidation)(
- Object.assign({}, W, {
- pathname: V.result,
- query: C(I, V.params)
+ Object.assign({}, q, {
+ pathname: H.result,
+ query: C(D, H.params)
})
))
- : Object.assign(I, G);
+ : Object.assign(D, B);
case 78:
return (
- t.events.emit("routeChangeStart", a, y),
+ t.events.emit("routeChangeStart", a, w),
(e.prev = 79),
- (e.next = 82),
- this.getRouteInfo(N, O, I, a, U, y)
+ ($ = this.route === U),
+ (Y = l && !1),
+ (Q = (i.shallow && $) || Y),
+ (e.next = 85),
+ this.getRouteInfo(U, I, D, a, W, w, Q)
);
- case 82:
+ case 85:
if (
- ((J = e.sent),
- (Y = ($ = J).error),
- (Q = $.props),
- (Z = $.__N_SSG),
- (K = $.__N_SSP),
- (!Z && !K) || !Q)
+ ((Z = e.sent),
+ (tt = (K = Z).error),
+ (et = K.props),
+ (rt = K.__N_SSG),
+ (nt = K.__N_SSP),
+ (!rt && !nt) || !et)
) {
- e.next = 109;
+ e.next = 112;
break;
}
- if (!Q.pageProps || !Q.pageProps.__N_REDIRECT) {
- e.next = 95;
+ if (!et.pageProps || !et.pageProps.__N_REDIRECT) {
+ e.next = 98;
break;
}
if (
- !(tt = Q.pageProps.__N_REDIRECT).startsWith("/")
+ !(ot = et.pageProps.__N_REDIRECT).startsWith(
+ "/"
+ )
) {
- e.next = 93;
+ e.next = 96;
break;
}
if (
- (j((et = (0, d.parseRelativeUrl)(tt)), D, !1),
- !D.includes(et.pathname))
+ (j((at = (0, d.parseRelativeUrl)(ot)), M, !1),
+ !M.includes(at.pathname))
) {
- e.next = 93;
+ e.next = 96;
break;
}
return (
- (rt = T(this, tt, tt)),
- (nt = rt.url),
- (ot = rt.as),
- e.abrupt("return", this.change(r, nt, ot, i))
+ (it = T(this, ot, ot)),
+ (ut = it.url),
+ (st = it.as),
+ e.abrupt("return", this.change(r, ut, st, i))
);
- case 93:
+ case 96:
return (
- (window.location.href = tt),
+ (window.location.href = ot),
e.abrupt("return", new Promise(function() {}))
);
- case 95:
+ case 98:
if (
- ((this.isPreview = !!Q.__N_PREVIEW),
- Q.notFound !== A)
+ ((this.isPreview = !!et.__N_PREVIEW),
+ et.notFound !== A)
) {
- e.next = 109;
+ e.next = 112;
break;
}
return (
- (e.prev = 97),
- (e.next = 100),
+ (e.prev = 100),
+ (e.next = 103),
this.fetchComponent("/404")
);
- case 100:
- (at = "/404"), (e.next = 106);
- break;
case 103:
- (e.prev = 103),
- (e.t1 = e.catch(97)),
- (at = "/_error");
+ (ct = "/404"), (e.next = 109);
+ break;
case 106:
+ (e.prev = 106),
+ (e.t1 = e.catch(100)),
+ (ct = "/_error");
+ case 109:
return (
- (e.next = 108),
- this.getRouteInfo(at, at, I, a, U, {
- shallow: !1
- })
+ (e.next = 111),
+ this.getRouteInfo(
+ ct,
+ ct,
+ D,
+ a,
+ W,
+ { shallow: !1 },
+ !1
+ )
);
- case 108:
- J = e.sent;
- case 109:
+ case 111:
+ Z = e.sent;
+ case 112:
return (
- t.events.emit("beforeHistoryChange", a, y),
+ t.events.emit("beforeHistoryChange", a, w),
this.changeState(r, o, a, i),
- (it = i.shallow && this.route === N),
i._h &&
- "/_error" === O &&
+ "/_error" === I &&
500 ===
- (null == (X = self.__NEXT_DATA__.props) ||
- null == (z = X.pageProps)
+ (null == (z = self.__NEXT_DATA__.props) ||
+ null == (J = z.pageProps)
? void 0
- : z.statusCode) &&
- null != Q &&
- Q.pageProps &&
- (Q.pageProps.statusCode = 500),
- (e.next = 116),
+ : J.statusCode) &&
+ null != et &&
+ et.pageProps &&
+ (et.pageProps.statusCode = 500),
+ (e.next = 118),
this.set(
- N,
- O,
+ U,
I,
- w,
- J,
- u || (it || !i.scroll ? null : { x: 0, y: 0 })
+ D,
+ b,
+ Z,
+ u || (Q || !i.scroll ? null : { x: 0, y: 0 })
).catch(function(t) {
if (!t.cancelled) throw t;
- Y = Y || t;
+ tt = tt || t;
})
);
- case 116:
- if (!Y) {
- e.next = 119;
+ case 118:
+ if (!tt) {
+ e.next = 121;
break;
}
- throw (t.events.emit("routeChangeError", Y, w, y),
- Y);
- case 119:
+ throw (t.events.emit(
+ "routeChangeError",
+ tt,
+ b,
+ w
+ ),
+ tt);
+ case 121:
return (
- t.events.emit("routeChangeComplete", a, y),
+ t.events.emit("routeChangeComplete", a, w),
e.abrupt("return", !0)
);
- case 124:
+ case 126:
if (
- ((e.prev = 124),
+ ((e.prev = 126),
(e.t2 = e.catch(79)),
!e.t2.cancelled)
) {
- e.next = 128;
+ e.next = 130;
break;
}
return e.abrupt("return", !1);
- case 128:
+ case 130:
throw e.t2;
- case 129:
+ case 131:
case "end":
return e.stop();
}
@@ -1408,13 +1426,13 @@
this,
[
[36, 46],
- [79, 124],
- [97, 103]
+ [79, 126],
+ [100, 106]
]
);
})
);
- return function(t, r, n, o, a) {
+ return function(t, r, n, o, a, i) {
return e.apply(this, arguments);
};
})()
@@ -1554,16 +1572,16 @@
key: "getRouteInfo",
value: (function() {
var t = o(
- n.mark(function t(e, r, o, a, i, u) {
- var s,
- c,
+ n.mark(function t(e, r, o, a, i, u, s) {
+ var c,
l,
f,
p,
d,
v,
y,
- m = this;
+ m,
+ g = this;
return n.wrap(
function(t) {
for (;;)
@@ -1571,19 +1589,19 @@
case 0:
if (
((t.prev = 0),
- (s = this.components[e]),
- !u.shallow || !s || this.route !== e)
+ (c = this.components[e]),
+ !s || !c)
) {
t.next = 4;
break;
}
- return t.abrupt("return", s);
+ return t.abrupt("return", c);
case 4:
- if (!(c = s && "initial" in s ? void 0 : s)) {
+ if (!(l = c && "initial" in c ? void 0 : c)) {
t.next = 9;
break;
}
- (t.t0 = c), (t.next = 12);
+ (t.t0 = l), (t.next = 12);
break;
case 9:
return (
@@ -1600,31 +1618,31 @@
case 11:
t.t0 = t.sent;
case 12:
- (l = t.t0),
- (f = l.Component),
- (p = l.__N_SSG),
- (d = l.__N_SSP),
+ (f = t.t0),
+ (p = f.Component),
+ (d = f.__N_SSG),
+ (v = f.__N_SSP),
(t.next = 18);
break;
case 18:
return (
- (p || d) &&
- (v = this.pageLoader.getDataHref(
+ (d || v) &&
+ (y = this.pageLoader.getDataHref(
(0, h.formatWithValidation)({
pathname: r,
query: o
}),
i,
- p,
+ d,
this.locale
)),
(t.next = 21),
this._getData(function() {
- return p
- ? m._getStaticData(v)
- : d
- ? m._getServerData(v)
- : m.getInitialProps(f, {
+ return d
+ ? g._getStaticData(y)
+ : v
+ ? g._getServerData(y)
+ : g.getInitialProps(p, {
pathname: r,
query: o,
asPath: a
@@ -1633,10 +1651,10 @@
);
case 21:
return (
- (y = t.sent),
- (l.props = y),
- (this.components[e] = l),
- t.abrupt("return", l)
+ (m = t.sent),
+ (f.props = m),
+ (this.components[e] = f),
+ t.abrupt("return", f)
);
case 27:
return (
@@ -1658,7 +1676,7 @@
);
})
);
- return function(e, r, n, o, a, i) {
+ return function(e, r, n, o, a, i, u) {
return t.apply(this, arguments);
};
})()
Diff for index.html
@@ -22,7 +22,7 @@
/>
<link
rel="preload"
- href="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.45a1f5b1723eaa79e7a0.js"
+ href="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.2a8992c895aa43790b1c.js"
as="script"
/>
<link
@@ -43,7 +43,7 @@
"props": { "pageProps": {} },
"page": "/",
"query": {},
- "buildId": "tvzZyHx7it2FkzkJtqHG5",
+ "buildId": "GvrL00caBNKIRGmYq3BcV",
"isFallback": false,
"gip": true
}
@@ -65,7 +65,7 @@
async=""
></script>
<script
- src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.45a1f5b1723eaa79e7a0.js"
+ src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.2a8992c895aa43790b1c.js"
async=""
></script>
<script
@@ -77,11 +77,11 @@
async=""
></script>
<script
- src="/_next/static/tvzZyHx7it2FkzkJtqHG5/_buildManifest.js"
+ src="/_next/static/GvrL00caBNKIRGmYq3BcV/_buildManifest.js"
async=""
></script>
<script
- src="/_next/static/tvzZyHx7it2FkzkJtqHG5/_ssgManifest.js"
+ src="/_next/static/GvrL00caBNKIRGmYq3BcV/_ssgManifest.js"
async=""
></script>
</body>
Diff for link.html
@@ -22,7 +22,7 @@
/>
<link
rel="preload"
- href="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.45a1f5b1723eaa79e7a0.js"
+ href="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.2a8992c895aa43790b1c.js"
as="script"
/>
<link
@@ -48,7 +48,7 @@
"props": { "pageProps": {} },
"page": "/link",
"query": {},
- "buildId": "tvzZyHx7it2FkzkJtqHG5",
+ "buildId": "GvrL00caBNKIRGmYq3BcV",
"isFallback": false,
"gip": true
}
@@ -70,7 +70,7 @@
async=""
></script>
<script
- src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.45a1f5b1723eaa79e7a0.js"
+ src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.2a8992c895aa43790b1c.js"
async=""
></script>
<script
@@ -82,11 +82,11 @@
async=""
></script>
<script
- src="/_next/static/tvzZyHx7it2FkzkJtqHG5/_buildManifest.js"
+ src="/_next/static/GvrL00caBNKIRGmYq3BcV/_buildManifest.js"
async=""
></script>
<script
- src="/_next/static/tvzZyHx7it2FkzkJtqHG5/_ssgManifest.js"
+ src="/_next/static/GvrL00caBNKIRGmYq3BcV/_ssgManifest.js"
async=""
></script>
</body>
Diff for withRouter.html
@@ -22,7 +22,7 @@
/>
<link
rel="preload"
- href="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.45a1f5b1723eaa79e7a0.js"
+ href="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.2a8992c895aa43790b1c.js"
as="script"
/>
<link
@@ -43,7 +43,7 @@
"props": { "pageProps": {} },
"page": "/withRouter",
"query": {},
- "buildId": "tvzZyHx7it2FkzkJtqHG5",
+ "buildId": "GvrL00caBNKIRGmYq3BcV",
"isFallback": false,
"gip": true
}
@@ -65,7 +65,7 @@
async=""
></script>
<script
- src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.45a1f5b1723eaa79e7a0.js"
+ src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.2a8992c895aa43790b1c.js"
async=""
></script>
<script
@@ -77,11 +77,11 @@
async=""
></script>
<script
- src="/_next/static/tvzZyHx7it2FkzkJtqHG5/_buildManifest.js"
+ src="/_next/static/GvrL00caBNKIRGmYq3BcV/_buildManifest.js"
async=""
></script>
<script
- src="/_next/static/tvzZyHx7it2FkzkJtqHG5/_ssgManifest.js"
+ src="/_next/static/GvrL00caBNKIRGmYq3BcV/_ssgManifest.js"
async=""
></script>
</body>