Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

add support for new URL() #28940

Merged
merged 8 commits into from
Sep 17, 2021
Merged

add support for new URL() #28940

merged 8 commits into from
Sep 17, 2021

Conversation

sokra
Copy link
Member

@sokra sokra commented Sep 8, 2021

Currently new URL() for server assets is completely broken because of the publicPath that is used for them too. new URL() for SSR is broken on windows as it's using absolute urls on the windows filesystem. And new URL() is using an incorrect filename

  • Place all assets correctly in /_next/static/media with [name].[hash:8][ext]
  • Added a separate runtime chunk for api entries, without publicPath
  • Introduce separate layer for api entries, which uses server-side URLs.
  • Otherwise new URL() will return a faked relative URL, that is identical in SSR and CSR
  • Disables react-refresh for api entries

Fixes #27413

Bug

  • Related issues linked using fixes #number
  • Integration tests added
  • Errors have helpful link attached, see contributing.md

Feature

  • Implements an existing feature request or RFC. Make sure the feature request has been accepted for implementation before opening a PR.
  • Related issues linked using fixes #number
  • Integration tests added
  • Documentation added
  • Telemetry added. In case of a feature if it's used or not.
  • Errors have helpful link attached, see contributing.md

Documentation / Examples

  • Make sure the linting passes

@ijjk

This comment has been minimized.

@Janpot
Copy link
Contributor

Janpot commented Sep 9, 2021

I'm glad this is getting some attention, but it feels to me like a mistake to have code imported from api routes behaved differently than code imported from pages (and used in gssp). I regularly share code between the two and it will get confusing if it starts behaving differently. in fact, the code that made me open #27413 would break under this PR. Personally I'd prefer to keep one of the two behaviors across all serverside code and have an alternative method for the other behavior.

@sokra
Copy link
Member Author

sokra commented Sep 10, 2021

in fact, the code that made me open #27413 would break under this PR

I copied the test case into the PR, it passes.

Personally I'd prefer to keep one of the two behaviors across all server code and have an alternative method for the other behavior.

Sadly that doesn't work when SSR comes into play. Here code (and URLs) need to behave like they would on client-side, otherwise a hydration mis-match will happen.

The long term strategy is anyway to avoid server-side (non-SSR/SSG) code in pages and put that only in pages/api so that matches this direction.

@ijjk

This comment has been minimized.

@Janpot
Copy link
Contributor

Janpot commented Sep 10, 2021

I copied the test case into the PR, it passes.

Sry, I meant the larger project this test case came out of. There the API route imports a function (that loads a file using new URL) that is also imported in a page and used in GSSP.

Sadly that doesn't work when SSR comes into play. Here code (and URLs) need to behave like they would on client-side, otherwise a hydration mis-match will happen.

I wouldn't mind if API routes behaved like client side with respect to new URL. I think it's beneficial to be as consistent as possible between environments, that way the largest amount of code is shareable between environments. I only opened the PR because the behavior once worked and I assumed it was explicitly supported.

The long term strategy is anyway to avoid server-side (non-SSR/SSG) code in pages and put that only in pages/api so that matches this direction.

🚀 I love that, I've always found GSP and GSSP brittle mechanisms, I guess they're bound to be superseded by React server components anyway. Maybe it makes sense then to keep the behavior in api routes.

Janpot
Janpot previously approved these changes Sep 10, 2021
sokra and others added 3 commits September 13, 2021 17:40
Introduce separate layer for api entries, which uses server-side URLs.
Otherwise new URL() will return a faked relative URL, that is identical in SSR and CSR
@ijjk

This comment has been minimized.

@ijjk

This comment has been minimized.

@ijjk

This comment has been minimized.

@ijjk

This comment has been minimized.

@ijjk

This comment has been minimized.

@ijjk

This comment has been minimized.

@ijjk

This comment has been minimized.

@ijjk
Copy link
Member

ijjk commented Sep 17, 2021

Stats from current PR

Default Build (Decrease detected ✓)
General Overall increase ⚠️
vercel/next.js canary vercel/next.js feature/url-support Change
buildDuration 13.2s 13.2s ⚠️ +29ms
buildDurationCached 3.3s 3.2s -94ms
nodeModulesSize 182 MB 182 MB ⚠️ +4.54 kB
Page Load Tests Overall decrease ⚠️
vercel/next.js canary vercel/next.js feature/url-support Change
/ failed reqs 0 0
/ total time (seconds) 2.958 2.913 -0.05
/ avg req/sec 845.14 858.26 +13.12
/error-in-render failed reqs 0 0
/error-in-render total time (seconds) 1.657 1.69 ⚠️ +0.03
/error-in-render avg req/sec 1508.39 1479.26 ⚠️ -29.13
Client Bundles (main, webpack, commons) Overall increase ⚠️
vercel/next.js canary vercel/next.js feature/url-support Change
745.HASH.js gzip 179 B 179 B
framework-HASH.js gzip 42.2 kB 42.2 kB
main-HASH.js gzip 26.7 kB 26.7 kB ⚠️ +5 B
webpack-HASH.js gzip 1.45 kB 1.45 kB -1 B
Overall change 70.6 kB 70.6 kB ⚠️ +4 B
Legacy Client Bundles (polyfills)
vercel/next.js canary vercel/next.js feature/url-support Change
polyfills-a4..dd70.js gzip 31 kB 31 kB
Overall change 31 kB 31 kB
Client Pages Overall decrease ✓
vercel/next.js canary vercel/next.js feature/url-support Change
_app-HASH.js gzip 979 B 977 B -2 B
_error-HASH.js gzip 194 B 194 B
amp-HASH.js gzip 312 B 311 B -1 B
css-HASH.js gzip 329 B 328 B -1 B
dynamic-HASH.js gzip 2.67 kB 2.67 kB ⚠️ +2 B
head-HASH.js gzip 351 B 351 B
hooks-HASH.js gzip 918 B 918 B
image-HASH.js gzip 4.14 kB 4.14 kB -3 B
index-HASH.js gzip 261 B 260 B -1 B
link-HASH.js gzip 1.66 kB 1.66 kB ⚠️ +1 B
routerDirect..HASH.js gzip 318 B 320 B ⚠️ +2 B
script-HASH.js gzip 387 B 386 B -1 B
withRouter-HASH.js gzip 320 B 319 B -1 B
bb14e60e810b..30f.css gzip 125 B 125 B
Overall change 13 kB 13 kB -5 B
Client Build Manifests Overall increase ⚠️
vercel/next.js canary vercel/next.js feature/url-support Change
_buildManifest.js gzip 492 B 493 B ⚠️ +1 B
Overall change 492 B 493 B ⚠️ +1 B
Rendered Page Sizes Overall decrease ✓
vercel/next.js canary vercel/next.js feature/url-support Change
index.html gzip 540 B 539 B -1 B
link.html gzip 552 B 551 B -1 B
withRouter.html gzip 534 B 533 B -1 B
Overall change 1.63 kB 1.62 kB -3 B

Diffs

Diff for _buildManifest.js
@@ -1,33 +1,33 @@
 self.__BUILD_MANIFEST = {
   __rewrites: { beforeFiles: [], afterFiles: [], fallback: [] },
-  "/": ["static\u002Fchunks\u002Fpages\u002Findex-952afde7a0f218c22632.js"],
+  "/": ["static\u002Fchunks\u002Fpages\u002Findex-b978e60b9d702fa80805.js"],
   "/_error": [
-    "static\u002Fchunks\u002Fpages\u002F_error-aca5c6cfba3e93349d16.js"
+    "static\u002Fchunks\u002Fpages\u002F_error-da8666f64dec58f0256c.js"
   ],
-  "/amp": ["static\u002Fchunks\u002Fpages\u002Famp-f1231d3934d9bf52872b.js"],
+  "/amp": ["static\u002Fchunks\u002Fpages\u002Famp-f2a7d08c8a34aef20244.js"],
   "/css": [
     "static\u002Fcss\u002F59de118426c393f58653.css",
-    "static\u002Fchunks\u002Fpages\u002Fcss-d747126cbf11007733b6.js"
+    "static\u002Fchunks\u002Fpages\u002Fcss-19090fefdf0ea278b474.js"
   ],
   "/dynamic": [
-    "static\u002Fchunks\u002Fpages\u002Fdynamic-00c9062b21fb8e37918d.js"
+    "static\u002Fchunks\u002Fpages\u002Fdynamic-d27debc5ab477ff7a21f.js"
   ],
-  "/head": ["static\u002Fchunks\u002Fpages\u002Fhead-28fcf610d5156765f0fb.js"],
+  "/head": ["static\u002Fchunks\u002Fpages\u002Fhead-bb121808f5d725b16bf4.js"],
   "/hooks": [
-    "static\u002Fchunks\u002Fpages\u002Fhooks-f6efb8a484d4a96e150c.js"
+    "static\u002Fchunks\u002Fpages\u002Fhooks-b247d7d93b59ee105030.js"
   ],
   "/image": [
-    "static\u002Fchunks\u002Fpages\u002Fimage-66bbde17dc6c918bdc7c.js"
+    "static\u002Fchunks\u002Fpages\u002Fimage-a44f9781a95a9ce41ff2.js"
   ],
-  "/link": ["static\u002Fchunks\u002Fpages\u002Flink-8989a66c35e810b14a0a.js"],
+  "/link": ["static\u002Fchunks\u002Fpages\u002Flink-6c203ee999e47493e19d.js"],
   "/routerDirect": [
-    "static\u002Fchunks\u002Fpages\u002FrouterDirect-7c1b586d4417a78806e3.js"
+    "static\u002Fchunks\u002Fpages\u002FrouterDirect-05d5c820a395af3eca42.js"
   ],
   "/script": [
-    "static\u002Fchunks\u002Fpages\u002Fscript-53e79215d380d0654667.js"
+    "static\u002Fchunks\u002Fpages\u002Fscript-9bb97af83a32aad71249.js"
   ],
   "/withRouter": [
-    "static\u002Fchunks\u002Fpages\u002FwithRouter-072a37cc0c889cd17738.js"
+    "static\u002Fchunks\u002Fpages\u002FwithRouter-a4b2da9a6aabc0207112.js"
   ],
   sortedPages: [
     "\u002F",
Diff for _app-HASH.js
@@ -1,7 +1,7 @@
 (self["webpackChunk_N_E"] = self["webpackChunk_N_E"] || []).push([
   [888],
   {
-    /***/ 3857: /***/ function(
+    /***/ 6871: /***/ function(
       __unused_webpack_module,
       exports,
       __webpack_require__
@@ -68,7 +68,7 @@
 
       var _react = _interopRequireDefault(__webpack_require__(7294));
 
-      var _utils = __webpack_require__(9664);
+      var _utils = __webpack_require__(9151);
 
       function asyncGeneratorStep(
         gen,
@@ -220,7 +220,7 @@
       (window.__NEXT_P = window.__NEXT_P || []).push([
         "/_app",
         function() {
-          return __webpack_require__(3857);
+          return __webpack_require__(6871);
         }
       ]);
 
@@ -233,7 +233,7 @@
       return __webpack_require__((__webpack_require__.s = moduleId));
     };
     /******/ __webpack_require__.O(0, [774, 179], function() {
-      return __webpack_exec__(915), __webpack_exec__(4651);
+      return __webpack_exec__(915), __webpack_exec__(7356);
     });
     /******/ var __webpack_exports__ = __webpack_require__.O();
     /******/ _N_E = __webpack_exports__;
Diff for _error-HASH.js
@@ -9,7 +9,7 @@
       (window.__NEXT_P = window.__NEXT_P || []).push([
         "/_error",
         function() {
-          return __webpack_require__(3359);
+          return __webpack_require__(7558);
         }
       ]);
Diff for amp-HASH.js
@@ -6,12 +6,12 @@
       __unused_webpack_exports,
       __webpack_require__
     ) {
-      module.exports = __webpack_require__(3237);
+      module.exports = __webpack_require__(4783);
 
       /***/
     },
 
-    /***/ 6739: /***/ function(
+    /***/ 468: /***/ function(
       __unused_webpack_module,
       __webpack_exports__,
       __webpack_require__
@@ -51,7 +51,7 @@
       (window.__NEXT_P = window.__NEXT_P || []).push([
         "/amp",
         function() {
-          return __webpack_require__(6739);
+          return __webpack_require__(468);
         }
       ]);
Diff for css-HASH.js
@@ -1,7 +1,7 @@
 (self["webpackChunk_N_E"] = self["webpackChunk_N_E"] || []).push([
   [706],
   {
-    /***/ 5409: /***/ function(
+    /***/ 8600: /***/ function(
       __unused_webpack_module,
       __webpack_exports__,
       __webpack_require__
@@ -9,7 +9,7 @@
       "use strict";
       __webpack_require__.r(__webpack_exports__);
       /* harmony import */ var _css_module_css__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(
-        5660
+        1785
       );
       /* harmony import */ var _css_module_css__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/ __webpack_require__.n(
         _css_module_css__WEBPACK_IMPORTED_MODULE_1__
@@ -40,14 +40,14 @@
       (window.__NEXT_P = window.__NEXT_P || []).push([
         "/css",
         function() {
-          return __webpack_require__(5409);
+          return __webpack_require__(8600);
         }
       ]);
 
       /***/
     },
 
-    /***/ 5660: /***/ function(module) {
+    /***/ 1785: /***/ function(module) {
       // extracted by mini-css-extract-plugin
       module.exports = { helloWorld: "css_helloWorld__2Fhmt" };
Diff for dynamic-HASH.js
@@ -1,7 +1,7 @@
 (self["webpackChunk_N_E"] = self["webpackChunk_N_E"] || []).push([
   [739],
   {
-    /***/ 2694: /***/ function(
+    /***/ 1897: /***/ function(
       __unused_webpack_module,
       exports,
       __webpack_require__
@@ -58,7 +58,7 @@
 
       var _react = _interopRequireDefault(__webpack_require__(7294));
 
-      var _loadable = _interopRequireDefault(__webpack_require__(4860));
+      var _loadable = _interopRequireDefault(__webpack_require__(8835));
 
       function _interopRequireDefault(obj) {
         return obj && obj.__esModule
@@ -167,7 +167,7 @@
       /***/
     },
 
-    /***/ 1083: /***/ function(
+    /***/ 3358: /***/ function(
       __unused_webpack_module,
       exports,
       __webpack_require__
@@ -199,7 +199,7 @@
       /***/
     },
 
-    /***/ 4860: /***/ function(
+    /***/ 8835: /***/ function(
       __unused_webpack_module,
       exports,
       __webpack_require__
@@ -336,7 +336,7 @@
 
       var _useSubscription = __webpack_require__(7161);
 
-      var _loadableContext = __webpack_require__(1083);
+      var _loadableContext = __webpack_require__(3358);
 
       function _interopRequireDefault(obj) {
         return obj && obj.__esModule
@@ -681,7 +681,7 @@
       /***/
     },
 
-    /***/ 6598: /***/ function(
+    /***/ 2862: /***/ function(
       __unused_webpack_module,
       __webpack_exports__,
       __webpack_require__
@@ -705,13 +705,13 @@
       next_dynamic__WEBPACK_IMPORTED_MODULE_0__["default"])(
         function() {
           return __webpack_require__
-            .e(/* import() */ 745)
-            .then(__webpack_require__.bind(__webpack_require__, 7745));
+            .e(/* import() */ 779)
+            .then(__webpack_require__.bind(__webpack_require__, 2779));
         },
         {
           loadableGenerated: {
             webpack: function webpack() {
-              return [/*require.resolve*/ 7745];
+              return [/*require.resolve*/ 2779];
             },
             modules: ["dynamic.js -> " + "../components/hello"]
           }
@@ -753,7 +753,7 @@
       (window.__NEXT_P = window.__NEXT_P || []).push([
         "/dynamic",
         function() {
-          return __webpack_require__(6598);
+          return __webpack_require__(2862);
         }
       ]);
 
@@ -765,7 +765,7 @@
       __unused_webpack_exports,
       __webpack_require__
     ) {
-      module.exports = __webpack_require__(2694);
+      module.exports = __webpack_require__(1897);
 
       /***/
     }
Diff for head-HASH.js
@@ -1,7 +1,7 @@
 (self["webpackChunk_N_E"] = self["webpackChunk_N_E"] || []).push([
   [645],
   {
-    /***/ 5816: /***/ function(
+    /***/ 8488: /***/ function(
       __unused_webpack_module,
       __webpack_exports__,
       __webpack_require__
@@ -61,7 +61,7 @@
       (window.__NEXT_P = window.__NEXT_P || []).push([
         "/head",
         function() {
-          return __webpack_require__(5816);
+          return __webpack_require__(8488);
         }
       ]);
 
@@ -73,7 +73,7 @@
       __unused_webpack_exports,
       __webpack_require__
     ) {
-      module.exports = __webpack_require__(639);
+      module.exports = __webpack_require__(7006);
 
       /***/
     }
Diff for hooks-HASH.js
@@ -1,7 +1,7 @@
 (self["webpackChunk_N_E"] = self["webpackChunk_N_E"] || []).push([
   [757],
   {
-    /***/ 3626: /***/ function(
+    /***/ 4925: /***/ function(
       __unused_webpack_module,
       __webpack_exports__,
       __webpack_require__
@@ -144,7 +144,7 @@
       (window.__NEXT_P = window.__NEXT_P || []).push([
         "/hooks",
         function() {
-          return __webpack_require__(3626);
+          return __webpack_require__(4925);
         }
       ]);
Diff for image-HASH.js
@@ -1,7 +1,7 @@
 (self["webpackChunk_N_E"] = self["webpackChunk_N_E"] || []).push([
   [358],
   {
-    /***/ 9917: /***/ function(
+    /***/ 1504: /***/ function(
       __unused_webpack_module,
       exports,
       __webpack_require__
@@ -20,13 +20,13 @@
 
       var _react = _interopRequireDefault(__webpack_require__(7294));
 
-      var _head = _interopRequireDefault(__webpack_require__(639));
+      var _head = _interopRequireDefault(__webpack_require__(7006));
 
-      var _toBase64 = __webpack_require__(8997);
+      var _toBase64 = __webpack_require__(4186);
 
       var _imageConfig = __webpack_require__(5809);
 
-      var _useIntersection = __webpack_require__(7426);
+      var _useIntersection = __webpack_require__(3418);
 
       function _defineProperty(obj, key, value) {
         if (key in obj) {
@@ -795,7 +795,7 @@
       /***/
     },
 
-    /***/ 7426: /***/ function(
+    /***/ 3418: /***/ function(
       __unused_webpack_module,
       exports,
       __webpack_require__
@@ -811,7 +811,7 @@
 
       var _react = __webpack_require__(7294);
 
-      var _requestIdleCallback = __webpack_require__(3447);
+      var _requestIdleCallback = __webpack_require__(5807);
 
       var hasIntersectionObserver = typeof IntersectionObserver !== "undefined";
 
@@ -924,7 +924,7 @@
       /***/
     },
 
-    /***/ 8997: /***/ function(__unused_webpack_module, exports) {
+    /***/ 4186: /***/ function(__unused_webpack_module, exports) {
       "use strict";
 
       Object.defineProperty(exports, "__esModule", {
@@ -942,7 +942,7 @@
       /***/
     },
 
-    /***/ 9900: /***/ function(
+    /***/ 3369: /***/ function(
       __unused_webpack_module,
       __webpack_exports__,
       __webpack_require__
@@ -1002,7 +1002,7 @@
       (window.__NEXT_P = window.__NEXT_P || []).push([
         "/image",
         function() {
-          return __webpack_require__(9900);
+          return __webpack_require__(3369);
         }
       ]);
 
@@ -1045,7 +1045,7 @@
       __unused_webpack_exports,
       __webpack_require__
     ) {
-      module.exports = __webpack_require__(9917);
+      module.exports = __webpack_require__(1504);
 
       /***/
     }
Diff for index-HASH.js
@@ -1,7 +1,7 @@
 (self["webpackChunk_N_E"] = self["webpackChunk_N_E"] || []).push([
   [405],
   {
-    /***/ 6124: /***/ function(
+    /***/ 1539: /***/ function(
       __unused_webpack_module,
       __webpack_exports__,
       __webpack_require__
@@ -33,7 +33,7 @@
       (window.__NEXT_P = window.__NEXT_P || []).push([
         "/",
         function() {
-          return __webpack_require__(6124);
+          return __webpack_require__(1539);
         }
       ]);
Diff for link-HASH.js
@@ -1,7 +1,7 @@
 (self["webpackChunk_N_E"] = self["webpackChunk_N_E"] || []).push([
   [644],
   {
-    /***/ 2167: /***/ function(
+    /***/ 7772: /***/ function(
       __unused_webpack_module,
       exports,
       __webpack_require__
@@ -18,11 +18,11 @@
 
       var _react = _interopRequireDefault(__webpack_require__(7294));
 
-      var _router = __webpack_require__(1063);
+      var _router = __webpack_require__(948);
 
-      var _router1 = __webpack_require__(4651);
+      var _router1 = __webpack_require__(7356);
 
-      var _useIntersection = __webpack_require__(7426);
+      var _useIntersection = __webpack_require__(3418);
 
       function _interopRequireDefault(obj) {
         return obj && obj.__esModule
@@ -268,7 +268,7 @@
       /***/
     },
 
-    /***/ 7426: /***/ function(
+    /***/ 3418: /***/ function(
       __unused_webpack_module,
       exports,
       __webpack_require__
@@ -284,7 +284,7 @@
 
       var _react = __webpack_require__(7294);
 
-      var _requestIdleCallback = __webpack_require__(3447);
+      var _requestIdleCallback = __webpack_require__(5807);
 
       var hasIntersectionObserver = typeof IntersectionObserver !== "undefined";
 
@@ -397,7 +397,7 @@
       /***/
     },
 
-    /***/ 647: /***/ function(
+    /***/ 9094: /***/ function(
       __unused_webpack_module,
       __webpack_exports__,
       __webpack_require__
@@ -452,7 +452,7 @@
       (window.__NEXT_P = window.__NEXT_P || []).push([
         "/link",
         function() {
-          return __webpack_require__(647);
+          return __webpack_require__(9094);
         }
       ]);
 
@@ -464,7 +464,7 @@
       __unused_webpack_exports,
       __webpack_require__
     ) {
-      module.exports = __webpack_require__(2167);
+      module.exports = __webpack_require__(7772);
 
       /***/
     }
Diff for routerDirect-HASH.js
@@ -1,7 +1,7 @@
 (self["webpackChunk_N_E"] = self["webpackChunk_N_E"] || []).push([
   [58],
   {
-    /***/ 2163: /***/ function(
+    /***/ 5426: /***/ function(
       __unused_webpack_module,
       __webpack_exports__,
       __webpack_require__
@@ -46,7 +46,7 @@
       (window.__NEXT_P = window.__NEXT_P || []).push([
         "/routerDirect",
         function() {
-          return __webpack_require__(2163);
+          return __webpack_require__(5426);
         }
       ]);
 
@@ -58,7 +58,7 @@
       __unused_webpack_exports,
       __webpack_require__
     ) {
-      module.exports = __webpack_require__(4651);
+      module.exports = __webpack_require__(7356);
 
       /***/
     }
Diff for script-HASH.js
@@ -1,7 +1,7 @@
 (self["webpackChunk_N_E"] = self["webpackChunk_N_E"] || []).push([
   [797],
   {
-    /***/ 1568: /***/ function(
+    /***/ 8529: /***/ function(
       __unused_webpack_module,
       __webpack_exports__,
       __webpack_require__
@@ -60,7 +60,7 @@
       (window.__NEXT_P = window.__NEXT_P || []).push([
         "/script",
         function() {
-          return __webpack_require__(1568);
+          return __webpack_require__(8529);
         }
       ]);
 
@@ -72,7 +72,7 @@
       __unused_webpack_exports,
       __webpack_require__
     ) {
-      module.exports = __webpack_require__(7926);
+      module.exports = __webpack_require__(9700);
 
       /***/
     }
Diff for withRouter-HASH.js
@@ -1,7 +1,7 @@
 (self["webpackChunk_N_E"] = self["webpackChunk_N_E"] || []).push([
   [807],
   {
-    /***/ 6222: /***/ function(
+    /***/ 200: /***/ function(
       __unused_webpack_module,
       __webpack_exports__,
       __webpack_require__
@@ -44,7 +44,7 @@
       (window.__NEXT_P = window.__NEXT_P || []).push([
         "/withRouter",
         function() {
-          return __webpack_require__(6222);
+          return __webpack_require__(200);
         }
       ]);
 
@@ -56,7 +56,7 @@
       __unused_webpack_exports,
       __webpack_require__
     ) {
-      module.exports = __webpack_require__(4651);
+      module.exports = __webpack_require__(7356);
 
       /***/
     }
Diff for 745.HASH.js
@@ -1,8 +1,8 @@
 "use strict";
 (self["webpackChunk_N_E"] = self["webpackChunk_N_E"] || []).push([
-  [745],
+  [779],
   {
-    /***/ 7745: /***/ function(
+    /***/ 2779: /***/ function(
       __unused_webpack_module,
       __webpack_exports__,
       __webpack_require__
Diff for main-HASH.js
@@ -700,7 +700,7 @@
       /***/
     },
 
-    /***/ 6792: /***/ function(__unused_webpack_module, exports) {
+    /***/ 7635: /***/ function(__unused_webpack_module, exports) {
       "use strict";
 
       Object.defineProperty(exports, "__esModule", {
@@ -862,7 +862,7 @@
       /***/
     },
 
-    /***/ 310: /***/ function(
+    /***/ 6246: /***/ function(
       __unused_webpack_module,
       exports,
       __webpack_require__
@@ -928,35 +928,35 @@
 
       var _styledJsx = __webpack_require__(8771);
 
-      var _headManagerContext = __webpack_require__(699);
+      var _headManagerContext = __webpack_require__(5203);
 
-      var _mitt = _interopRequireDefault(__webpack_require__(1436));
+      var _mitt = _interopRequireDefault(__webpack_require__(5363));
 
-      var _routerContext = __webpack_require__(3751);
+      var _routerContext = __webpack_require__(6717);
 
-      var _router = __webpack_require__(1063);
+      var _router = __webpack_require__(948);
 
-      var _isDynamic = __webpack_require__(6234);
+      var _isDynamic = __webpack_require__(2623);
 
-      var _querystring = __webpack_require__(9824);
+      var _querystring = __webpack_require__(1432);
 
-      var _runtimeConfig = __webpack_require__(2594);
+      var _runtimeConfig = __webpack_require__(4350);
 
-      var _utils = __webpack_require__(9664);
+      var _utils = __webpack_require__(9151);
 
-      var _portal = __webpack_require__(6579);
+      var _portal = __webpack_require__(1830);
 
-      var _headManager = _interopRequireDefault(__webpack_require__(6792));
+      var _headManager = _interopRequireDefault(__webpack_require__(7635));
 
-      var _pageLoader = _interopRequireDefault(__webpack_require__(7145));
+      var _pageLoader = _interopRequireDefault(__webpack_require__(226));
 
       var _performanceRelayer = _interopRequireDefault(
-        __webpack_require__(9934)
+        __webpack_require__(506)
       );
 
-      var _routeAnnouncer = __webpack_require__(8475);
+      var _routeAnnouncer = __webpack_require__(2409);
 
-      var _router1 = __webpack_require__(4651);
+      var _router1 = __webpack_require__(7356);
 
       var _isError = _interopRequireDefault(__webpack_require__(676));
 
@@ -1147,7 +1147,7 @@
       }
 
       if (data.scriptLoader) {
-        var _require5 = __webpack_require__(7926),
+        var _require5 = __webpack_require__(9700),
           initScriptLoader = _require5.initScriptLoader;
 
         initScriptLoader(data.scriptLoader);
@@ -1635,7 +1635,7 @@
               : lastAppProps.Component) === ErrorComponent
               ? Promise.resolve()
                   .then(function() {
-                    return _interopRequireWildcard(__webpack_require__(3359));
+                    return _interopRequireWildcard(__webpack_require__(7558));
                   })
                   .then(function(m) {
                     return {
@@ -2073,14 +2073,14 @@
       /***/
     },
 
-    /***/ 457: /***/ function(
+    /***/ 8959: /***/ function(
       __unused_webpack_module,
       __unused_webpack_exports,
       __webpack_require__
     ) {
       "use strict";
 
-      var _ = __webpack_require__(310);
+      var _ = __webpack_require__(6246);
 
       window.next = {
         version: _.version,
@@ -2099,7 +2099,7 @@
       /***/
     },
 
-    /***/ 5965: /***/ function(__unused_webpack_module, exports) {
+    /***/ 8300: /***/ function(__unused_webpack_module, exports) {
       "use strict";
 
       Object.defineProperty(exports, "__esModule", {
@@ -2118,7 +2118,7 @@
       /***/
     },
 
-    /***/ 7145: /***/ function(
+    /***/ 226: /***/ function(
       __unused_webpack_module,
       exports,
       __webpack_require__
@@ -2134,19 +2134,19 @@
       });
       exports["default"] = void 0;
 
-      var _router = __webpack_require__(1063);
+      var _router = __webpack_require__(948);
 
       var _getAssetPathFromRoute = _interopRequireDefault(
-        __webpack_require__(7055)
+        __webpack_require__(6021)
       );
 
-      var _isDynamic = __webpack_require__(6234);
+      var _isDynamic = __webpack_require__(2623);
 
-      var _parseRelativeUrl = __webpack_require__(7658);
+      var _parseRelativeUrl = __webpack_require__(1302);
 
-      var _normalizeTrailingSlash = __webpack_require__(5965);
+      var _normalizeTrailingSlash = __webpack_require__(8300);
 
-      var _routeLoader = __webpack_require__(1392);
+      var _routeLoader = __webpack_require__(3361);
 
       function _interopRequireDefault(obj) {
         return obj && obj.__esModule
@@ -2298,7 +2298,7 @@
       /***/
     },
 
-    /***/ 9934: /***/ function(
+    /***/ 506: /***/ function(
       __unused_webpack_module,
       exports,
       __webpack_require__
@@ -2351,7 +2351,7 @@
       /***/
     },
 
-    /***/ 6579: /***/ function(
+    /***/ 1830: /***/ function(
       __unused_webpack_module,
       exports,
       __webpack_require__
@@ -2414,7 +2414,7 @@
       /***/
     },
 
-    /***/ 3447: /***/ function(__unused_webpack_module, exports) {
+    /***/ 5807: /***/ function(__unused_webpack_module, exports) {
       "use strict";
 
       Object.defineProperty(exports, "__esModule", {
@@ -2453,7 +2453,7 @@
       /***/
     },
 
-    /***/ 8475: /***/ function(
+    /***/ 2409: /***/ function(
       __unused_webpack_module,
       exports,
       __webpack_require__
@@ -2470,7 +2470,7 @@
 
       var _react = _interopRequireDefault(__webpack_require__(7294));
 
-      var _router = __webpack_require__(4651);
+      var _router = __webpack_require__(7356);
 
       function _interopRequireDefault(obj) {
         return obj && obj.__esModule
@@ -2552,7 +2552,7 @@
       /***/
     },
 
-    /***/ 1392: /***/ function(
+    /***/ 3361: /***/ function(
       __unused_webpack_module,
       exports,
       __webpack_require__
@@ -2568,10 +2568,10 @@
       exports.createRouteLoader = createRouteLoader;
 
       var _getAssetPathFromRoute = _interopRequireDefault(
-        __webpack_require__(7055)
+        __webpack_require__(6021)
       );
 
-      var _requestIdleCallback = __webpack_require__(3447);
+      var _requestIdleCallback = __webpack_require__(5807);
 
       function _interopRequireDefault(obj) {
         return obj && obj.__esModule
@@ -2940,7 +2940,7 @@
       /***/
     },
 
-    /***/ 4651: /***/ function(
+    /***/ 7356: /***/ function(
       __unused_webpack_module,
       exports,
       __webpack_require__
@@ -3047,13 +3047,13 @@
 
       var _react = _interopRequireDefault(__webpack_require__(7294));
 
-      var _router = _interopRequireDefault(__webpack_require__(1063));
+      var _router = _interopRequireDefault(__webpack_require__(948));
 
-      var _routerContext = __webpack_require__(3751);
+      var _routerContext = __webpack_require__(6717);
 
       var _isError = _interopRequireDefault(__webpack_require__(676));
 
-      var _withRouter = _interopRequireDefault(__webpack_require__(7413));
+      var _withRouter = _interopRequireDefault(__webpack_require__(2790));
 
       function _interopRequireDefault(obj) {
         return obj && obj.__esModule
@@ -3231,7 +3231,7 @@
       /***/
     },
 
-    /***/ 7926: /***/ function(
+    /***/ 9700: /***/ function(
       __unused_webpack_module,
       exports,
       __webpack_require__
@@ -3248,11 +3248,11 @@
 
       var _react = __webpack_require__(7294);
 
-      var _headManagerContext = __webpack_require__(699);
+      var _headManagerContext = __webpack_require__(5203);
 
-      var _headManager = __webpack_require__(6792);
+      var _headManager = __webpack_require__(7635);
 
-      var _requestIdleCallback = __webpack_require__(3447);
+      var _requestIdleCallback = __webpack_require__(5807);
 
       function _defineProperty(obj, key, value) {
         if (key in obj) {
@@ -3522,7 +3522,7 @@
       /***/
     },
 
-    /***/ 7413: /***/ function(
+    /***/ 2790: /***/ function(
       __unused_webpack_module,
       exports,
       __webpack_require__
@@ -3536,7 +3536,7 @@
 
       var _react = _interopRequireDefault(__webpack_require__(7294));
 
-      var _router = __webpack_require__(4651);
+      var _router = __webpack_require__(7356);
 
       function _interopRequireDefault(obj) {
         return obj && obj.__esModule
@@ -3573,7 +3573,7 @@
       /***/
     },
 
-    /***/ 3359: /***/ function(
+    /***/ 7558: /***/ function(
       __unused_webpack_module,
       exports,
       __webpack_require__
@@ -3626,7 +3626,7 @@
 
       var _react = _interopRequireDefault(__webpack_require__(7294));
 
-      var _head = _interopRequireDefault(__webpack_require__(639));
+      var _head = _interopRequireDefault(__webpack_require__(7006));
 
       function _interopRequireDefault(obj) {
         return obj && obj.__esModule
@@ -3781,7 +3781,7 @@
       /***/
     },
 
-    /***/ 6046: /***/ function(
+    /***/ 2698: /***/ function(
       __unused_webpack_module,
       exports,
       __webpack_require__
@@ -3813,7 +3813,7 @@
       /***/
     },
 
-    /***/ 3237: /***/ function(
+    /***/ 4783: /***/ function(
       __unused_webpack_module,
       exports,
       __webpack_require__
@@ -3828,7 +3828,7 @@
 
       var _react = _interopRequireDefault(__webpack_require__(7294));
 
-      var _ampContext = __webpack_require__(6046);
+      var _ampContext = __webpack_require__(2698);
 
       function _interopRequireDefault(obj) {
         return obj && obj.__esModule
@@ -3863,7 +3863,7 @@
       /***/
     },
 
-    /***/ 699: /***/ function(
+    /***/ 5203: /***/ function(
       __unused_webpack_module,
       exports,
       __webpack_require__
@@ -3895,7 +3895,7 @@
       /***/
     },
 
-    /***/ 639: /***/ function(
+    /***/ 7006: /***/ function(
       __unused_webpack_module,
       exports,
       __webpack_require__
@@ -3951,13 +3951,13 @@
 
       var _react = _interopRequireWildcard(__webpack_require__(7294));
 
-      var _sideEffect = _interopRequireDefault(__webpack_require__(4766));
+      var _sideEffect = _interopRequireDefault(__webpack_require__(9263));
 
-      var _ampContext = __webpack_require__(6046);
+      var _ampContext = __webpack_require__(2698);
 
-      var _headManagerContext = __webpack_require__(699);
+      var _headManagerContext = __webpack_require__(5203);
 
-      var _amp = __webpack_require__(3237);
+      var _amp = __webpack_require__(4783);
 
       function _interopRequireDefault(obj) {
         return obj && obj.__esModule
@@ -4195,7 +4195,7 @@
       /***/
     },
 
-    /***/ 8820: /***/ function(__unused_webpack_module, exports) {
+    /***/ 597: /***/ function(__unused_webpack_module, exports) {
       "use strict";
 
       Object.defineProperty(exports, "__esModule", {
@@ -4226,7 +4226,7 @@
       /***/
     },
 
-    /***/ 1436: /***/ function(__unused_webpack_module, exports) {
+    /***/ 5363: /***/ function(__unused_webpack_module, exports) {
       "use strict";
 
       Object.defineProperty(exports, "__esModule", {
@@ -4266,7 +4266,7 @@
       /***/
     },
 
-    /***/ 3751: /***/ function(
+    /***/ 6717: /***/ function(
       __unused_webpack_module,
       exports,
       __webpack_require__
@@ -4298,7 +4298,7 @@
       /***/
     },
 
-    /***/ 1063: /***/ function(
+    /***/ 948: /***/ function(
       __unused_webpack_module,
       exports,
       __webpack_require__
@@ -4329,31 +4329,31 @@
       exports.resolveHref = resolveHref;
       exports["default"] = void 0;
 
-      var _normalizeTrailingSlash = __webpack_require__(5965);
+      var _normalizeTrailingSlash = __webpack_require__(8300);
 
-      var _routeLoader = __webpack_require__(1392);
+      var _routeLoader = __webpack_require__(3361);
 
       var _isError = _interopRequireDefault(__webpack_require__(676));
 
       var _denormalizePagePath = __webpack_require__(4522);
 
-      var _normalizeLocalePath = __webpack_require__(8820);
+      var _normalizeLocalePath = __webpack_require__(597);
 
-      var _mitt = _interopRequireDefault(__webpack_require__(1436));
+      var _mitt = _interopRequireDefault(__webpack_require__(5363));
 
-      var _utils = __webpack_require__(9664);
+      var _utils = __webpack_require__(9151);
 
-      var _isDynamic = __webpack_require__(6234);
+      var _isDynamic = __webpack_require__(2623);
 
-      var _parseRelativeUrl = __webpack_require__(7658);
+      var _parseRelativeUrl = __webpack_require__(1302);
 
-      var _querystring = __webpack_require__(9824);
+      var _querystring = __webpack_require__(1432);
 
       var _resolveRewrites = _interopRequireDefault(__webpack_require__(2431));
 
-      var _routeMatcher = __webpack_require__(3990);
+      var _routeMatcher = __webpack_require__(2868);
 
-      var _routeRegex = __webpack_require__(6979);
+      var _routeRegex = __webpack_require__(3886);
 
       function _interopRequireDefault(obj) {
         return obj && obj.__esModule
@@ -6444,7 +6444,7 @@
       /***/
     },
 
-    /***/ 2065: /***/ function(
+    /***/ 9915: /***/ function(
       __unused_webpack_module,
       exports,
       __webpack_require__
@@ -6456,7 +6456,7 @@
       });
       exports.formatUrl = formatUrl;
 
-      var querystring = _interopRequireWildcard(__webpack_require__(9824));
+      var querystring = _interopRequireWildcard(__webpack_require__(1432));
 
       function _interopRequireWildcard(obj) {
         if (obj && obj.__esModule) {
@@ -6542,7 +6542,7 @@
       /***/
     },
 
-    /***/ 7055: /***/ function(__unused_webpack_module, exports) {
+    /***/ 6021: /***/ function(__unused_webpack_module, exports) {
       "use strict";
 
       Object.defineProperty(exports, "__esModule", {
@@ -6567,7 +6567,7 @@
       /***/
     },
 
-    /***/ 6234: /***/ function(__unused_webpack_module, exports) {
+    /***/ 2623: /***/ function(__unused_webpack_module, exports) {
       "use strict";
 
       Object.defineProperty(exports, "__esModule", {
@@ -6584,7 +6584,7 @@
       /***/
     },
 
-    /***/ 7658: /***/ function(
+    /***/ 1302: /***/ function(
       __unused_webpack_module,
       exports,
       __webpack_require__
@@ -6596,9 +6596,9 @@
       });
       exports.parseRelativeUrl = parseRelativeUrl;
 
-      var _utils = __webpack_require__(9664);
+      var _utils = __webpack_require__(9151);
 
-      var _querystring = __webpack_require__(9824);
+      var _querystring = __webpack_require__(1432);
 
       function parseRelativeUrl(url, base) {
         var globalBase = new URL(false ? 0 : (0, _utils).getLocationOrigin());
@@ -6630,7 +6630,7 @@
       /***/
     },
 
-    /***/ 9824: /***/ function(
+    /***/ 1432: /***/ function(
       __unused_webpack_module,
       exports,
       __webpack_require__
@@ -6715,7 +6715,7 @@
       /***/
     },
 
-    /***/ 3990: /***/ function(
+    /***/ 2868: /***/ function(
       __unused_webpack_module,
       exports,
       __webpack_require__
@@ -6727,7 +6727,7 @@
       });
       exports.getRouteMatcher = getRouteMatcher;
 
-      var _utils = __webpack_require__(9664);
+      var _utils = __webpack_require__(9151);
 
       function getRouteMatcher(routeRegex) {
         var re = routeRegex.re,
@@ -6769,7 +6769,7 @@
       /***/
     },
 
-    /***/ 6979: /***/ function(__unused_webpack_module, exports) {
+    /***/ 3886: /***/ function(__unused_webpack_module, exports) {
       "use strict";
 
       Object.defineProperty(exports, "__esModule", {
@@ -6867,7 +6867,7 @@
       /***/
     },
 
-    /***/ 2594: /***/ function(__unused_webpack_module, exports) {
+    /***/ 4350: /***/ function(__unused_webpack_module, exports) {
       "use strict";
 
       Object.defineProperty(exports, "__esModule", {
@@ -6890,7 +6890,7 @@
       /***/
     },
 
-    /***/ 4766: /***/ function(
+    /***/ 9263: /***/ function(
       __unused_webpack_module,
       exports,
       __webpack_require__
@@ -7029,7 +7029,7 @@
       /***/
     },
 
-    /***/ 9664: /***/ function(
+    /***/ 9151: /***/ function(
       __unused_webpack_module,
       exports,
       __webpack_require__
@@ -7092,7 +7092,7 @@
       exports.formatWithValidation = formatWithValidation;
       exports.ST = exports.SP = exports.HtmlContext = exports.urlObjectKeys = void 0;
 
-      var _formatUrl = __webpack_require__(2065);
+      var _formatUrl = __webpack_require__(9915);
 
       var _react = __webpack_require__(7294);
 
@@ -9485,7 +9485,7 @@ https://github.com/threepointone/glamor/blob/667b480d31b3721a905021b26e1290ce92c
       return __webpack_require__((__webpack_require__.s = moduleId));
     };
     /******/ __webpack_require__.O(0, [774], function() {
-      return __webpack_exec__(457);
+      return __webpack_exec__(8959);
     });
     /******/ var __webpack_exports__ = __webpack_require__.O();
     /******/ _N_E = __webpack_exports__;
Diff for webpack-HASH.js
@@ -159,7 +159,7 @@
     /******/ __webpack_require__.u = function(chunkId) {
       /******/ // return url for filenames based on template
       /******/ return (
-        "static/chunks/" + chunkId + "." + "284331703de33c30eb1c" + ".js"
+        "static/chunks/" + chunkId + "." + "e727cb744a4dade430a8" + ".js"
       );
       /******/
     };
Diff for index.html
@@ -11,7 +11,7 @@
       src="/_next/static/chunks/polyfills-a40ef1678bae11e696dba45124eadd70.js"
     ></script>
     <script
-      src="/_next/static/chunks/webpack-e3a4ea5707671df28cf0.js"
+      src="/_next/static/chunks/webpack-34f6404e9c5c487ae0df.js"
       defer=""
     ></script>
     <script
@@ -19,15 +19,15 @@
       defer=""
     ></script>
     <script
-      src="/_next/static/chunks/main-ec2d30436dfd30bd1fd5.js"
+      src="/_next/static/chunks/main-7013e7d156d0b4533a57.js"
       defer=""
     ></script>
     <script
-      src="/_next/static/chunks/pages/_app-add85797dcb30fd0d2fc.js"
+      src="/_next/static/chunks/pages/_app-6329da9dc44135fb5339.js"
       defer=""
     ></script>
     <script
-      src="/_next/static/chunks/pages/index-952afde7a0f218c22632.js"
+      src="/_next/static/chunks/pages/index-b978e60b9d702fa80805.js"
       defer=""
     ></script>
     <script src="/_next/static/BUILD_ID/_buildManifest.js" defer=""></script>
Diff for link.html
@@ -11,7 +11,7 @@
       src="/_next/static/chunks/polyfills-a40ef1678bae11e696dba45124eadd70.js"
     ></script>
     <script
-      src="/_next/static/chunks/webpack-e3a4ea5707671df28cf0.js"
+      src="/_next/static/chunks/webpack-34f6404e9c5c487ae0df.js"
       defer=""
     ></script>
     <script
@@ -19,15 +19,15 @@
       defer=""
     ></script>
     <script
-      src="/_next/static/chunks/main-ec2d30436dfd30bd1fd5.js"
+      src="/_next/static/chunks/main-7013e7d156d0b4533a57.js"
       defer=""
     ></script>
     <script
-      src="/_next/static/chunks/pages/_app-add85797dcb30fd0d2fc.js"
+      src="/_next/static/chunks/pages/_app-6329da9dc44135fb5339.js"
       defer=""
     ></script>
     <script
-      src="/_next/static/chunks/pages/link-8989a66c35e810b14a0a.js"
+      src="/_next/static/chunks/pages/link-6c203ee999e47493e19d.js"
       defer=""
     ></script>
     <script src="/_next/static/BUILD_ID/_buildManifest.js" defer=""></script>
Diff for withRouter.html
@@ -11,7 +11,7 @@
       src="/_next/static/chunks/polyfills-a40ef1678bae11e696dba45124eadd70.js"
     ></script>
     <script
-      src="/_next/static/chunks/webpack-e3a4ea5707671df28cf0.js"
+      src="/_next/static/chunks/webpack-34f6404e9c5c487ae0df.js"
       defer=""
     ></script>
     <script
@@ -19,15 +19,15 @@
       defer=""
     ></script>
     <script
-      src="/_next/static/chunks/main-ec2d30436dfd30bd1fd5.js"
+      src="/_next/static/chunks/main-7013e7d156d0b4533a57.js"
       defer=""
     ></script>
     <script
-      src="/_next/static/chunks/pages/_app-add85797dcb30fd0d2fc.js"
+      src="/_next/static/chunks/pages/_app-6329da9dc44135fb5339.js"
       defer=""
     ></script>
     <script
-      src="/_next/static/chunks/pages/withRouter-072a37cc0c889cd17738.js"
+      src="/_next/static/chunks/pages/withRouter-a4b2da9a6aabc0207112.js"
       defer=""
     ></script>
     <script src="/_next/static/BUILD_ID/_buildManifest.js" defer=""></script>

Default Build with SWC (Increase detected ⚠️)
General Overall increase ⚠️
vercel/next.js canary vercel/next.js feature/url-support Change
buildDuration 6.7s 6.8s ⚠️ +118ms
buildDurationCached 3.3s 3.2s -93ms
nodeModulesSize 182 MB 182 MB ⚠️ +4.54 kB
Page Load Tests Overall increase ✓
vercel/next.js canary vercel/next.js feature/url-support Change
/ failed reqs 0 0
/ total time (seconds) 2.98 2.998 ⚠️ +0.02
/ avg req/sec 838.8 833.86 ⚠️ -4.94
/error-in-render failed reqs 0 0
/error-in-render total time (seconds) 1.632 1.619 -0.01
/error-in-render avg req/sec 1532.16 1544.05 +11.89
Client Bundles (main, webpack, commons) Overall increase ⚠️
vercel/next.js canary vercel/next.js feature/url-support Change
264.HASH.js gzip 179 B 178 B -1 B
675-HASH.js gzip 13.8 kB 13.8 kB -1 B
framework-HASH.js gzip 50.7 kB 50.7 kB
main-HASH.js gzip 34.6 kB 34.6 kB ⚠️ +5 B
webpack-HASH.js gzip 1.65 kB 1.65 kB -1 B
Overall change 101 kB 101 kB ⚠️ +2 B
Legacy Client Bundles (polyfills)
vercel/next.js canary vercel/next.js feature/url-support Change
polyfills-a4..dd70.js gzip 31 kB 31 kB
Overall change 31 kB 31 kB
Client Pages Overall decrease ✓
vercel/next.js canary vercel/next.js feature/url-support Change
_app-HASH.js gzip 1.32 kB 1.32 kB -1 B
_error-HASH.js gzip 179 B 180 B ⚠️ +1 B
amp-HASH.js gzip 315 B 315 B
css-HASH.js gzip 330 B 331 B ⚠️ +1 B
dynamic-HASH.js gzip 2.8 kB 2.8 kB -5 B
head-HASH.js gzip 356 B 356 B
hooks-HASH.js gzip 638 B 637 B -1 B
image-HASH.js gzip 575 B 573 B -2 B
index-HASH.js gzip 261 B 262 B ⚠️ +1 B
link-HASH.js gzip 2.2 kB 2.2 kB
routerDirect..HASH.js gzip 327 B 326 B -1 B
script-HASH.js gzip 392 B 393 B ⚠️ +1 B
withRouter-HASH.js gzip 323 B 322 B -1 B
bb14e60e810b..30f.css gzip 125 B 125 B
Overall change 10.1 kB 10.1 kB -7 B
Client Build Manifests Overall decrease ✓
vercel/next.js canary vercel/next.js feature/url-support Change
_buildManifest.js gzip 512 B 511 B -1 B
Overall change 512 B 511 B -1 B
Rendered Page Sizes Overall increase ⚠️
vercel/next.js canary vercel/next.js feature/url-support Change
index.html gzip 538 B 539 B ⚠️ +1 B
link.html gzip 550 B 552 B ⚠️ +2 B
withRouter.html gzip 533 B 533 B
Overall change 1.62 kB 1.62 kB ⚠️ +3 B

Diffs

Diff for _buildManifest.js
@@ -1,34 +1,34 @@
 self.__BUILD_MANIFEST = {
   __rewrites: { beforeFiles: [], afterFiles: [], fallback: [] },
-  "/": ["static\u002Fchunks\u002Fpages\u002Findex-a97eeb63abb17f18c41c.js"],
+  "/": ["static\u002Fchunks\u002Fpages\u002Findex-578dd16f542138d115d9.js"],
   "/_error": [
-    "static\u002Fchunks\u002Fpages\u002F_error-972535c3242034b1042a.js"
+    "static\u002Fchunks\u002Fpages\u002F_error-9e1a6d936e12ddc840ba.js"
   ],
-  "/amp": ["static\u002Fchunks\u002Fpages\u002Famp-a539c821b06da8751c00.js"],
+  "/amp": ["static\u002Fchunks\u002Fpages\u002Famp-8bc8c2d84cd1ee3af177.js"],
   "/css": [
     "static\u002Fcss\u002F59de118426c393f58653.css",
-    "static\u002Fchunks\u002Fpages\u002Fcss-bf6e824f3f81ec13cdaf.js"
+    "static\u002Fchunks\u002Fpages\u002Fcss-b933e198cac52ec08478.js"
   ],
   "/dynamic": [
-    "static\u002Fchunks\u002Fpages\u002Fdynamic-38c6655d7b7dbcd3521a.js"
+    "static\u002Fchunks\u002Fpages\u002Fdynamic-67f672e26104b1f0447b.js"
   ],
-  "/head": ["static\u002Fchunks\u002Fpages\u002Fhead-1ef778566fc646ae3c10.js"],
+  "/head": ["static\u002Fchunks\u002Fpages\u002Fhead-94efda3a2dea2f3c43a9.js"],
   "/hooks": [
-    "static\u002Fchunks\u002Fpages\u002Fhooks-b3fb1366b8a9b3bc4a94.js"
+    "static\u002Fchunks\u002Fpages\u002Fhooks-57657d9807f56726f7b7.js"
   ],
   "/image": [
-    "static\u002Fchunks\u002F675-0986bd53db778d167f18.js",
-    "static\u002Fchunks\u002Fpages\u002Fimage-a794f22f063de673c1cd.js"
+    "static\u002Fchunks\u002F675-3a2a4d3823c95ac202d4.js",
+    "static\u002Fchunks\u002Fpages\u002Fimage-ffd5f0bef0d7723148e9.js"
   ],
-  "/link": ["static\u002Fchunks\u002Fpages\u002Flink-024452984d7bc601d9f0.js"],
+  "/link": ["static\u002Fchunks\u002Fpages\u002Flink-7f8f722ace4fedf0a7aa.js"],
   "/routerDirect": [
-    "static\u002Fchunks\u002Fpages\u002FrouterDirect-6fe02eb32c9a9b415156.js"
+    "static\u002Fchunks\u002Fpages\u002FrouterDirect-0d86a6c6dd6bc4048b0b.js"
   ],
   "/script": [
-    "static\u002Fchunks\u002Fpages\u002Fscript-b6fddc1faf3da124eb02.js"
+    "static\u002Fchunks\u002Fpages\u002Fscript-c1a5847a6de5a67f5d87.js"
   ],
   "/withRouter": [
-    "static\u002Fchunks\u002Fpages\u002FwithRouter-6b41037823710687be8a.js"
+    "static\u002Fchunks\u002Fpages\u002FwithRouter-4ecb289970809ca52b13.js"
   ],
   sortedPages: [
     "\u002F",
Diff for _app-HASH.js
@@ -9,14 +9,14 @@
       (window.__NEXT_P = window.__NEXT_P || []).push([
         "/_app",
         function() {
-          return __webpack_require__(7592);
+          return __webpack_require__(4596);
         }
       ]);
 
       /***/
     },
 
-    /***/ 7592: /***/ function(
+    /***/ 4596: /***/ function(
       __unused_webpack_module,
       exports,
       __webpack_require__
@@ -125,7 +125,7 @@
       });
       exports["default"] = void 0;
       var _react = _interopRequireDefault2(__webpack_require__(7294));
-      var _utils = __webpack_require__(359);
+      var _utils = __webpack_require__(4758);
       function asyncGeneratorStep(
         gen,
         resolve,
@@ -257,7 +257,7 @@
       return __webpack_require__((__webpack_require__.s = moduleId));
     };
     /******/ __webpack_require__.O(0, [774, 179], function() {
-      return __webpack_exec__(915), __webpack_exec__(2508);
+      return __webpack_exec__(915), __webpack_exec__(557);
     });
     /******/ var __webpack_exports__ = __webpack_require__.O();
     /******/ _N_E = __webpack_exports__;
Diff for _error-HASH.js
@@ -9,7 +9,7 @@
       (window.__NEXT_P = window.__NEXT_P || []).push([
         "/_error",
         function() {
-          return __webpack_require__(1107);
+          return __webpack_require__(5509);
         }
       ]);
Diff for amp-HASH.js
@@ -6,7 +6,7 @@
       __unused_webpack_exports,
       __webpack_require__
     ) {
-      module.exports = __webpack_require__(2234);
+      module.exports = __webpack_require__(6446);
 
       /***/
     },
@@ -19,14 +19,14 @@
       (window.__NEXT_P = window.__NEXT_P || []).push([
         "/amp",
         function() {
-          return __webpack_require__(6579);
+          return __webpack_require__(7659);
         }
       ]);
 
       /***/
     },
 
-    /***/ 6579: /***/ function(
+    /***/ 7659: /***/ function(
       __unused_webpack_module,
       __webpack_exports__,
       __webpack_require__
Diff for css-HASH.js
@@ -9,14 +9,14 @@
       (window.__NEXT_P = window.__NEXT_P || []).push([
         "/css",
         function() {
-          return __webpack_require__(4516);
+          return __webpack_require__(9436);
         }
       ]);
 
       /***/
     },
 
-    /***/ 4516: /***/ function(
+    /***/ 9436: /***/ function(
       __unused_webpack_module,
       __webpack_exports__,
       __webpack_require__
@@ -27,7 +27,7 @@
         5893
       );
       /* harmony import */ var _css_module_css__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(
-        5660
+        1785
       );
       /* harmony import */ var _css_module_css__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/ __webpack_require__.n(
         _css_module_css__WEBPACK_IMPORTED_MODULE_1__
@@ -46,7 +46,7 @@
       /***/
     },
 
-    /***/ 5660: /***/ function(module) {
+    /***/ 1785: /***/ function(module) {
       // extracted by mini-css-extract-plugin
       module.exports = { helloWorld: "css_helloWorld__2Fhmt" };
Diff for dynamic-HASH.js
@@ -9,14 +9,14 @@
       (window.__NEXT_P = window.__NEXT_P || []).push([
         "/dynamic",
         function() {
-          return __webpack_require__(2169);
+          return __webpack_require__(7202);
         }
       ]);
 
       /***/
     },
 
-    /***/ 3601: /***/ function(
+    /***/ 1215: /***/ function(
       __unused_webpack_module,
       exports,
       __webpack_require__
@@ -71,7 +71,7 @@
       __webpack_unused_export__ = noSSR;
       exports["default"] = dynamic;
       var _react = _interopRequireDefault(__webpack_require__(7294));
-      var _loadable = _interopRequireDefault(__webpack_require__(3376));
+      var _loadable = _interopRequireDefault(__webpack_require__(7213));
       function _interopRequireDefault(obj) {
         return obj && obj.__esModule
           ? obj
@@ -166,7 +166,7 @@
       /***/
     },
 
-    /***/ 2930: /***/ function(
+    /***/ 3197: /***/ function(
       __unused_webpack_module,
       exports,
       __webpack_require__
@@ -193,7 +193,7 @@
       /***/
     },
 
-    /***/ 3376: /***/ function(
+    /***/ 7213: /***/ function(
       __unused_webpack_module,
       exports,
       __webpack_require__
@@ -255,7 +255,7 @@
       exports["default"] = void 0;
       var _react = _interopRequireDefault(__webpack_require__(7294));
       var _useSubscription = __webpack_require__(7161);
-      var _loadableContext = __webpack_require__(2930);
+      var _loadableContext = __webpack_require__(3197);
       function _interopRequireDefault(obj) {
         return obj && obj.__esModule
           ? obj
@@ -568,7 +568,7 @@
       /***/
     },
 
-    /***/ 2169: /***/ function(
+    /***/ 7202: /***/ function(
       __unused_webpack_module,
       __webpack_exports__,
       __webpack_require__
@@ -592,13 +592,13 @@
       next_dynamic__WEBPACK_IMPORTED_MODULE_1__["default"])(
         function() {
           return __webpack_require__
-            .e(/* import() */ 264)
-            .then(__webpack_require__.bind(__webpack_require__, 5264));
+            .e(/* import() */ 770)
+            .then(__webpack_require__.bind(__webpack_require__, 5770));
         },
         {
           loadableGenerated: {
             webpack: function() {
-              return [/*require.resolve*/ 2169];
+              return [/*require.resolve*/ 7202];
             },
             modules: ["dynamic.js -> " + "../components/hello"]
           }
@@ -634,7 +634,7 @@
       __unused_webpack_exports,
       __webpack_require__
     ) {
-      module.exports = __webpack_require__(3601);
+      module.exports = __webpack_require__(1215);
 
       /***/
     }
Diff for head-HASH.js
@@ -9,14 +9,14 @@
       (window.__NEXT_P = window.__NEXT_P || []).push([
         "/head",
         function() {
-          return __webpack_require__(8326);
+          return __webpack_require__(223);
         }
       ]);
 
       /***/
     },
 
-    /***/ 8326: /***/ function(
+    /***/ 223: /***/ function(
       __unused_webpack_module,
       __webpack_exports__,
       __webpack_require__
@@ -71,7 +71,7 @@
       __unused_webpack_exports,
       __webpack_require__
     ) {
-      module.exports = __webpack_require__(1152);
+      module.exports = __webpack_require__(1495);
 
       /***/
     }
Diff for hooks-HASH.js
@@ -9,14 +9,14 @@
       (window.__NEXT_P = window.__NEXT_P || []).push([
         "/hooks",
         function() {
-          return __webpack_require__(3099);
+          return __webpack_require__(522);
         }
       ]);
 
       /***/
     },
 
-    /***/ 3099: /***/ function(
+    /***/ 522: /***/ function(
       __unused_webpack_module,
       __webpack_exports__,
       __webpack_require__
Diff for image-HASH.js
@@ -9,14 +9,14 @@
       (window.__NEXT_P = window.__NEXT_P || []).push([
         "/image",
         function() {
-          return __webpack_require__(9643);
+          return __webpack_require__(1532);
         }
       ]);
 
       /***/
     },
 
-    /***/ 9643: /***/ function(
+    /***/ 1532: /***/ function(
       __unused_webpack_module,
       __webpack_exports__,
       __webpack_require__
Diff for index-HASH.js
@@ -9,14 +9,14 @@
       (window.__NEXT_P = window.__NEXT_P || []).push([
         "/",
         function() {
-          return __webpack_require__(5516);
+          return __webpack_require__(5006);
         }
       ]);
 
       /***/
     },
 
-    /***/ 5516: /***/ function(
+    /***/ 5006: /***/ function(
       __unused_webpack_module,
       __webpack_exports__,
       __webpack_require__
Diff for link-HASH.js
@@ -9,14 +9,14 @@
       (window.__NEXT_P = window.__NEXT_P || []).push([
         "/link",
         function() {
-          return __webpack_require__(2070);
+          return __webpack_require__(1437);
         }
       ]);
 
       /***/
     },
 
-    /***/ 666: /***/ function(
+    /***/ 7231: /***/ function(
       __unused_webpack_module,
       exports,
       __webpack_require__
@@ -77,9 +77,9 @@
       };
       exports["default"] = void 0;
       var _react = _interopRequireDefault(__webpack_require__(7294));
-      var _router = __webpack_require__(4306);
-      var _router1 = __webpack_require__(2508);
-      var _useIntersection = __webpack_require__(7520);
+      var _router = __webpack_require__(6542);
+      var _router1 = __webpack_require__(557);
+      var _useIntersection = __webpack_require__(9007);
       function _interopRequireDefault(obj) {
         return obj && obj.__esModule
           ? obj
@@ -301,7 +301,7 @@
       /***/
     },
 
-    /***/ 7520: /***/ function(
+    /***/ 9007: /***/ function(
       __unused_webpack_module,
       exports,
       __webpack_require__
@@ -354,7 +354,7 @@
       });
       exports.useIntersection = useIntersection;
       var _react = __webpack_require__(7294);
-      var _requestIdleCallback = __webpack_require__(5961);
+      var _requestIdleCallback = __webpack_require__(8607);
       var hasIntersectionObserver = typeof IntersectionObserver !== "undefined";
       function useIntersection(param) {
         var rootMargin = param.rootMargin,
@@ -453,7 +453,7 @@
       /***/
     },
 
-    /***/ 2070: /***/ function(
+    /***/ 1437: /***/ function(
       __unused_webpack_module,
       __webpack_exports__,
       __webpack_require__
@@ -503,7 +503,7 @@
       __unused_webpack_exports,
       __webpack_require__
     ) {
-      module.exports = __webpack_require__(666);
+      module.exports = __webpack_require__(7231);
 
       /***/
     }
Diff for routerDirect-HASH.js
@@ -9,14 +9,14 @@
       (window.__NEXT_P = window.__NEXT_P || []).push([
         "/routerDirect",
         function() {
-          return __webpack_require__(4289);
+          return __webpack_require__(3791);
         }
       ]);
 
       /***/
     },
 
-    /***/ 4289: /***/ function(
+    /***/ 3791: /***/ function(
       __unused_webpack_module,
       __webpack_exports__,
       __webpack_require__
@@ -57,7 +57,7 @@
       __unused_webpack_exports,
       __webpack_require__
     ) {
-      module.exports = __webpack_require__(2508);
+      module.exports = __webpack_require__(557);
 
       /***/
     }
Diff for script-HASH.js
@@ -9,14 +9,14 @@
       (window.__NEXT_P = window.__NEXT_P || []).push([
         "/script",
         function() {
-          return __webpack_require__(9122);
+          return __webpack_require__(3172);
         }
       ]);
 
       /***/
     },
 
-    /***/ 9122: /***/ function(
+    /***/ 3172: /***/ function(
       __unused_webpack_module,
       __webpack_exports__,
       __webpack_require__
@@ -70,7 +70,7 @@
       __unused_webpack_exports,
       __webpack_require__
     ) {
-      module.exports = __webpack_require__(8767);
+      module.exports = __webpack_require__(5864);
 
       /***/
     }
Diff for withRouter-HASH.js
@@ -9,14 +9,14 @@
       (window.__NEXT_P = window.__NEXT_P || []).push([
         "/withRouter",
         function() {
-          return __webpack_require__(3135);
+          return __webpack_require__(3650);
         }
       ]);
 
       /***/
     },
 
-    /***/ 3135: /***/ function(
+    /***/ 3650: /***/ function(
       __unused_webpack_module,
       __webpack_exports__,
       __webpack_require__
@@ -54,7 +54,7 @@
       __unused_webpack_exports,
       __webpack_require__
     ) {
-      module.exports = __webpack_require__(2508);
+      module.exports = __webpack_require__(557);
 
       /***/
     }
Diff for 264.HASH.js
@@ -1,8 +1,8 @@
 "use strict";
 (self["webpackChunk_N_E"] = self["webpackChunk_N_E"] || []).push([
-  [264],
+  [770],
   {
-    /***/ 5264: /***/ function(
+    /***/ 5770: /***/ function(
       __unused_webpack_module,
       __webpack_exports__,
       __webpack_require__
Diff for 675-HASH.js
@@ -2297,7 +2297,7 @@
       /***/
     },
 
-    /***/ 9688: /***/ function(
+    /***/ 2307: /***/ function(
       __unused_webpack_module,
       exports,
       __webpack_require__
@@ -2377,10 +2377,10 @@
       };
       exports["default"] = Image;
       var _react = _interopRequireDefault(__webpack_require__(7294));
-      var _head = _interopRequireDefault(__webpack_require__(1152));
-      var _toBase64 = __webpack_require__(831);
+      var _head = _interopRequireDefault(__webpack_require__(1495));
+      var _toBase64 = __webpack_require__(7356);
       var _imageConfig = __webpack_require__(5809);
-      var _useIntersection = __webpack_require__(7520);
+      var _useIntersection = __webpack_require__(9007);
       function _defineProperty(obj, key, value) {
         if (key in obj) {
           Object.defineProperty(obj, key, {
@@ -3073,7 +3073,7 @@
       /***/
     },
 
-    /***/ 7520: /***/ function(
+    /***/ 9007: /***/ function(
       __unused_webpack_module,
       exports,
       __webpack_require__
@@ -3126,7 +3126,7 @@
       });
       exports.useIntersection = useIntersection;
       var _react = __webpack_require__(7294);
-      var _requestIdleCallback = __webpack_require__(5961);
+      var _requestIdleCallback = __webpack_require__(8607);
       var hasIntersectionObserver = typeof IntersectionObserver !== "undefined";
       function useIntersection(param) {
         var rootMargin = param.rootMargin,
@@ -3225,7 +3225,7 @@
       /***/
     },
 
-    /***/ 831: /***/ function(
+    /***/ 7356: /***/ function(
       __unused_webpack_module,
       exports,
       __webpack_require__
@@ -3286,7 +3286,7 @@
       __unused_webpack_exports,
       __webpack_require__
     ) {
-      module.exports = __webpack_require__(9688);
+      module.exports = __webpack_require__(2307);
 
       /***/
     }
Diff for main-HASH.js
@@ -57,7 +57,7 @@
       /***/
     },
 
-    /***/ 3632: /***/ function(__unused_webpack_module, exports) {
+    /***/ 1037: /***/ function(__unused_webpack_module, exports) {
       "use strict";
 
       Object.defineProperty(exports, "__esModule", {
@@ -202,7 +202,7 @@
       /***/
     },
 
-    /***/ 1847: /***/ function(
+    /***/ 3832: /***/ function(
       __unused_webpack_module,
       exports,
       __webpack_require__
@@ -357,22 +357,22 @@
       var _react = _interopRequireDefault2(__webpack_require__(7294));
       var _reactDom = _interopRequireDefault2(__webpack_require__(3935));
       var _styledJsx = __webpack_require__(8771);
-      var _headManagerContext = __webpack_require__(4766);
-      var _mitt = _interopRequireDefault2(__webpack_require__(3964));
-      var _routerContext = __webpack_require__(6574);
-      var _router = __webpack_require__(4306);
-      var _isDynamic = __webpack_require__(111);
-      var _querystring = __webpack_require__(3960);
-      var _runtimeConfig = __webpack_require__(7910);
-      var _utils = __webpack_require__(359);
-      var _portal = __webpack_require__(6168);
-      var _headManager = _interopRequireDefault2(__webpack_require__(3632));
-      var _pageLoader = _interopRequireDefault2(__webpack_require__(5232));
+      var _headManagerContext = __webpack_require__(4331);
+      var _mitt = _interopRequireDefault2(__webpack_require__(9079));
+      var _routerContext = __webpack_require__(9237);
+      var _router = __webpack_require__(6542);
+      var _isDynamic = __webpack_require__(6338);
+      var _querystring = __webpack_require__(1153);
+      var _runtimeConfig = __webpack_require__(9891);
+      var _utils = __webpack_require__(4758);
+      var _portal = __webpack_require__(1988);
+      var _headManager = _interopRequireDefault2(__webpack_require__(1037));
+      var _pageLoader = _interopRequireDefault2(__webpack_require__(5948));
       var _performanceRelayer = _interopRequireDefault2(
-        __webpack_require__(4582)
+        __webpack_require__(6644)
       );
-      var _routeAnnouncer = __webpack_require__(7670);
-      var _router1 = __webpack_require__(2508);
+      var _routeAnnouncer = __webpack_require__(1639);
+      var _router1 = __webpack_require__(557);
       var _isError = _interopRequireDefault2(__webpack_require__(676));
       function asyncGeneratorStep(
         gen,
@@ -545,7 +545,7 @@
           normalizeLocalePath;
       }
       if (data.scriptLoader) {
-        var ref = __webpack_require__(8767),
+        var ref = __webpack_require__(5864),
           initScriptLoader = ref.initScriptLoader;
         initScriptLoader(data.scriptLoader);
       }
@@ -963,7 +963,7 @@
               : lastAppProps.Component) === ErrorComponent
               ? Promise.resolve()
                   .then(function() {
-                    return _interopRequireWildcard(__webpack_require__(1107));
+                    return _interopRequireWildcard(__webpack_require__(5509));
                   })
                   .then(function(m) {
                     return {
@@ -1354,14 +1354,14 @@
       /***/
     },
 
-    /***/ 1301: /***/ function(
+    /***/ 4232: /***/ function(
       __unused_webpack_module,
       __unused_webpack_exports,
       __webpack_require__
     ) {
       "use strict";
 
-      var _ = __webpack_require__(1847);
+      var _ = __webpack_require__(3832);
       window.next = {
         version: _.version,
         // router is initialized later so it has to be live-binded
@@ -1377,7 +1377,7 @@
       /***/
     },
 
-    /***/ 2973: /***/ function(__unused_webpack_module, exports) {
+    /***/ 4259: /***/ function(__unused_webpack_module, exports) {
       "use strict";
 
       Object.defineProperty(exports, "__esModule", {
@@ -1394,
Post job cleanup.
[command]/usr/bin/git version
git version 2.33.0
[command]/usr/bin/git config --local --name-only --get-regexp core\.sshCommand
[command]/usr/bin/git submodule foreach --recursive git config --local --name-only --get-regexp 'core\.sshCommand' && git config --local --unset-all 'core.sshCommand' || :
[command]/usr/bin/git config --local --name-only --get-regexp http\.https\:\/\/github\.com\/\.extraheader
http.https://github.com/.extraheader
[command]/usr/bin/git config --local --unset-all http.https://github.com/.extraheader
[command]/usr/bin/git submodule foreach --recursive git config --local --name-only --get-regexp 'http\.https\:\/\/github\.com\/\.extraheader' && git config --local --unset-all 'http.https://github.com/.extraheader' || :
Cleaning up orphan processes
Commit: 707a8b73ff79e532a3348a2d85d4f6b34f56a434

@kodiakhq kodiakhq bot merged commit 797dabe into canary Sep 17, 2021
@kodiakhq kodiakhq bot deleted the feature/url-support branch September 17, 2021 19:20
@vercel vercel locked as resolved and limited conversation to collaborators Jan 27, 2022
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

4 participants