Skip to content
New issue

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

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

Already on GitHub? Sign in to your account

update webpack, fix runtime location, fix undeclared variable, omit env vars from cache version #23113

Merged
merged 10 commits into from
Mar 17, 2021

Conversation

sokra
Copy link
Member

@sokra sokra commented Mar 16, 2021

  • this will fix problems with serverless target which doesn't use a runtime chunk
  • It also omit env vars from contributing to cache version as webpack will handle that now
  • It moves the webpack-runtime chunk from ./chunks back to ./

@ijjk
Copy link
Member

ijjk commented Mar 16, 2021

Failing test suites

Commit: 423395b

test/integration/build-output/test/index.test.js

  • Build Output > Basic Application Output > should not deviate from snapshot
Expand output

● Build Output › Basic Application Output › should not deviate from snapshot

expect(received).toBeCloseTo(expected, precision)

Expected: 64.3
Received: 64.4

Expected precision:    1
Expected difference: < 0.05
Received difference:   0.10000000000000853

  105 |       expect(err404FirstLoad.endsWith('kB')).toBe(true)
  106 | 
> 107 |       expect(parseFloat(sharedByAll)).toBeCloseTo(64.3, 1)
      |                                       ^
  108 |       expect(sharedByAll.endsWith('kB')).toBe(true)
  109 | 
  110 |       if (_appSize.endsWith('kB')) {

  at Object.<anonymous> (integration/build-output/test/index.test.js:107:39)

@ijjk
Copy link
Member

ijjk commented Mar 16, 2021

Stats from current PR

Default Server Mode (Increase detected ⚠️)
General Overall increase ⚠️
vercel/next.js canary vercel/next.js bugfix/webpack-out-of-output-path Change
buildDuration 11.8s 11.6s -267ms
nodeModulesSize 42.8 MB 42.8 MB ⚠️ +30.9 kB
Page Load Tests Overall increase ✓
vercel/next.js canary vercel/next.js bugfix/webpack-out-of-output-path Change
/ failed reqs 0 0
/ total time (seconds) 2.15 2.143 -0.01
/ avg req/sec 1162.78 1166.51 +3.73
/error-in-render failed reqs 0 0
/error-in-render total time (seconds) 1.486 1.457 -0.03
/error-in-render avg req/sec 1682.2 1715.75 +33.55
Client Bundles (main, webpack, commons)
vercel/next.js canary vercel/next.js bugfix/webpack-out-of-output-path Change
677f882d2ed8..a2e7.js gzip 13.4 kB 13.4 kB
framework.HASH.js gzip 39 kB 39 kB
main-HASH.js gzip 7.14 kB 7.14 kB
webpack-HASH.js gzip 751 B 751 B
Overall change 60.3 kB 60.3 kB
Legacy Client Bundles (polyfills)
vercel/next.js canary vercel/next.js bugfix/webpack-out-of-output-path 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 vercel/next.js bugfix/webpack-out-of-output-path Change
_app-fde3324..9dd1.js gzip 1.28 kB 1.28 kB
_error-af59f..582f.js gzip 3.46 kB 3.46 kB
amp-9716187d..0aa8.js gzip 536 B 536 B
hooks-107e90..74c7.js gzip 888 B 888 B
index-ac435c..ecf2.js gzip 227 B 227 B
link-e6cee42..49eb.js gzip 1.64 kB 1.64 kB
routerDirect..dc9d.js gzip 303 B 303 B
withRouter-6..0e02.js gzip 302 B 302 B
Overall change 8.64 kB 8.64 kB
Client Build Manifests
vercel/next.js canary vercel/next.js bugfix/webpack-out-of-output-path Change
_buildManifest.js gzip 346 B 346 B
Overall change 346 B 346 B
Rendered Page Sizes
vercel/next.js canary vercel/next.js bugfix/webpack-out-of-output-path Change
index.html gzip 614 B 614 B
link.html gzip 621 B 621 B
withRouter.html gzip 609 B 609 B
Overall change 1.84 kB 1.84 kB

Serverless Mode
General Overall increase ⚠️
vercel/next.js canary vercel/next.js bugfix/webpack-out-of-output-path Change
buildDuration 14.1s 13.7s -378ms
nodeModulesSize 42.8 MB 42.8 MB ⚠️ +30.9 kB
Client Bundles (main, webpack, commons)
vercel/next.js canary vercel/next.js bugfix/webpack-out-of-output-path Change
677f882d2ed8..a2e7.js gzip 13.4 kB 13.4 kB
framework.HASH.js gzip 39 kB 39 kB
main-HASH.js gzip 7.14 kB 7.14 kB
webpack-HASH.js gzip 751 B 751 B
Overall change 60.3 kB 60.3 kB
Legacy Client Bundles (polyfills)
vercel/next.js canary vercel/next.js bugfix/webpack-out-of-output-path 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 vercel/next.js bugfix/webpack-out-of-output-path Change
_app-fde3324..9dd1.js gzip 1.28 kB 1.28 kB
_error-af59f..582f.js gzip 3.46 kB 3.46 kB
amp-9716187d..0aa8.js gzip 536 B 536 B
hooks-107e90..74c7.js gzip 888 B 888 B
index-ac435c..ecf2.js gzip 227 B 227 B
link-e6cee42..49eb.js gzip 1.64 kB 1.64 kB
routerDirect..dc9d.js gzip 303 B 303 B
withRouter-6..0e02.js gzip 302 B 302 B
Overall change 8.64 kB 8.64 kB
Client Build Manifests
vercel/next.js canary vercel/next.js bugfix/webpack-out-of-output-path Change
_buildManifest.js gzip 346 B 346 B
Overall change 346 B 346 B
Serverless bundles
vercel/next.js canary vercel/next.js bugfix/webpack-out-of-output-path Change
_error.js 1.02 MB 1.02 MB
404.html 2.67 kB 2.67 kB
500.html 2.65 kB 2.65 kB
amp.amp.html 10.6 kB 10.6 kB
amp.html 1.86 kB 1.86 kB
hooks.html 1.92 kB 1.92 kB
index.js 1.02 MB 1.02 MB
link.js 1.08 MB 1.08 MB
routerDirect.js 1.07 MB 1.07 MB
withRouter.js 1.07 MB 1.07 MB
Overall change 5.27 MB 5.27 MB

Webpack 5 Mode (Increase detected ⚠️)
General Overall increase ⚠️
vercel/next.js canary vercel/next.js bugfix/webpack-out-of-output-path Change
buildDuration 14.1s 13.9s -191ms
nodeModulesSize 42.8 MB 42.8 MB ⚠️ +30.9 kB
Page Load Tests Overall decrease ⚠️
vercel/next.js canary vercel/next.js bugfix/webpack-out-of-output-path Change
/ failed reqs 0 0
/ total time (seconds) 2.246 2.152 -0.09
/ avg req/sec 1113.02 1161.63 +48.61
/error-in-render failed reqs 0 0
/error-in-render total time (seconds) 1.405 1.48 ⚠️ +0.07
/error-in-render avg req/sec 1779.35 1688.91 ⚠️ -90.44
Client Bundles (main, webpack, commons) Overall increase ⚠️
vercel/next.js canary vercel/next.js bugfix/webpack-out-of-output-path Change
597-2bc2376a..203d.js gzip 13.3 kB 13.3 kB
framework.HASH.js gzip 39.3 kB 39.3 kB
main-HASH.js gzip 7.08 kB 7.11 kB ⚠️ +22 B
webpack-HASH.js gzip 954 B 993 B ⚠️ +39 B
Overall change 60.7 kB 60.7 kB ⚠️ +61 B
Legacy Client Bundles (polyfills) Overall increase ⚠️
vercel/next.js canary vercel/next.js bugfix/webpack-out-of-output-path Change
polyfills-HASH.js gzip 31.1 kB 31.1 kB ⚠️ +15 B
Overall change 31.1 kB 31.1 kB ⚠️ +15 B
Client Pages Overall increase ⚠️
vercel/next.js canary vercel/next.js bugfix/webpack-out-of-output-path Change
_app-0c62a59..94b7.js gzip 1.26 kB 1.28 kB ⚠️ +26 B
_error-97d24..ed28.js gzip 3.38 kB 3.4 kB ⚠️ +22 B
amp-2926e4c2..9ccc.js gzip 536 B 558 B ⚠️ +22 B
hooks-1ed65b..8908.js gzip 902 B 924 B ⚠️ +22 B
index-6259b6..77d8.js gzip 230 B 244 B ⚠️ +14 B
link-2a29128..cc6e.js gzip 1.63 kB 1.65 kB ⚠️ +22 B
routerDirect..862a.js gzip 306 B 333 B ⚠️ +27 B
withRouter-4..76fd.js gzip 302 B 330 B ⚠️ +28 B
Overall change 8.54 kB 8.73 kB ⚠️ +183 B
Client Build Manifests Overall increase ⚠️
vercel/next.js canary vercel/next.js bugfix/webpack-out-of-output-path Change
_buildManifest.js gzip 322 B 324 B ⚠️ +2 B
Overall change 322 B 324 B ⚠️ +2 B
Rendered Page Sizes Overall increase ⚠️
vercel/next.js canary vercel/next.js bugfix/webpack-out-of-output-path Change
index.html gzip 585 B 586 B ⚠️ +1 B
link.html gzip 593 B 593 B
withRouter.html gzip 580 B 582 B ⚠️ +2 B
Overall change 1.76 kB 1.76 kB ⚠️ +3 B

Diffs

Diff for index.html
@@ -43,7 +43,7 @@
         "props": { "pageProps": {} },
         "page": "/",
         "query": {},
-        "buildId": "jv0ATrb9Qc5q5tfrJr6TD",
+        "buildId": "JrOS0uMGK2-OPATiKc5Yl",
         "isFallback": false,
         "gip": true
       }
@@ -77,11 +77,11 @@
       async=""
     ></script>
     <script
-      src="/_next/static/jv0ATrb9Qc5q5tfrJr6TD/_buildManifest.js"
+      src="/_next/static/JrOS0uMGK2-OPATiKc5Yl/_buildManifest.js"
       async=""
     ></script>
     <script
-      src="/_next/static/jv0ATrb9Qc5q5tfrJr6TD/_ssgManifest.js"
+      src="/_next/static/JrOS0uMGK2-OPATiKc5Yl/_ssgManifest.js"
       async=""
     ></script>
   </body>
Diff for link.html
@@ -48,7 +48,7 @@
         "props": { "pageProps": {} },
         "page": "/link",
         "query": {},
-        "buildId": "jv0ATrb9Qc5q5tfrJr6TD",
+        "buildId": "JrOS0uMGK2-OPATiKc5Yl",
         "isFallback": false,
         "gip": true
       }
@@ -82,11 +82,11 @@
       async=""
     ></script>
     <script
-      src="/_next/static/jv0ATrb9Qc5q5tfrJr6TD/_buildManifest.js"
+      src="/_next/static/JrOS0uMGK2-OPATiKc5Yl/_buildManifest.js"
       async=""
     ></script>
     <script
-      src="/_next/static/jv0ATrb9Qc5q5tfrJr6TD/_ssgManifest.js"
+      src="/_next/static/JrOS0uMGK2-OPATiKc5Yl/_ssgManifest.js"
       async=""
     ></script>
   </body>
Diff for withRouter.html
@@ -43,7 +43,7 @@
         "props": { "pageProps": {} },
         "page": "/withRouter",
         "query": {},
-        "buildId": "jv0ATrb9Qc5q5tfrJr6TD",
+        "buildId": "JrOS0uMGK2-OPATiKc5Yl",
         "isFallback": false,
         "gip": true
       }
@@ -77,11 +77,11 @@
       async=""
     ></script>
     <script
-      src="/_next/static/jv0ATrb9Qc5q5tfrJr6TD/_buildManifest.js"
+      src="/_next/static/JrOS0uMGK2-OPATiKc5Yl/_buildManifest.js"
       async=""
     ></script>
     <script
-      src="/_next/static/jv0ATrb9Qc5q5tfrJr6TD/_ssgManifest.js"
+      src="/_next/static/JrOS0uMGK2-OPATiKc5Yl/_ssgManifest.js"
       async=""
     ></script>
   </body>
Commit: 423395b

@sokra sokra changed the title update webpack and fix runtime location update webpack, fix runtime location and fix undeclared variable Mar 16, 2021
@ijjk
Copy link
Member

ijjk commented Mar 16, 2021

Failing test suites

Commit: 0328add

test/integration/build-output/test/index.test.js

  • Build Output > Basic Application Output > should not deviate from snapshot
Expand output

● Build Output › Basic Application Output › should not deviate from snapshot

expect(received).toBeCloseTo(expected, precision)

Expected: 64.3
Received: 64.4

Expected precision:    1
Expected difference: < 0.05
Received difference:   0.10000000000000853

  105 |       expect(err404FirstLoad.endsWith('kB')).toBe(true)
  106 | 
> 107 |       expect(parseFloat(sharedByAll)).toBeCloseTo(64.3, 1)
      |                                       ^
  108 |       expect(sharedByAll.endsWith('kB')).toBe(true)
  109 | 
  110 |       if (_appSize.endsWith('kB')) {

  at Object.<anonymous> (integration/build-output/test/index.test.js:107:39)

@ijjk
Copy link
Member

ijjk commented Mar 16, 2021

Stats from current PR

Default Server Mode (Increase detected ⚠️)
General Overall increase ⚠️
vercel/next.js canary vercel/next.js bugfix/webpack-out-of-output-path Change
buildDuration 12.7s 12.7s -8ms
nodeModulesSize 42.8 MB 42.8 MB ⚠️ +30.9 kB
Page Load Tests Overall increase ✓
vercel/next.js canary vercel/next.js bugfix/webpack-out-of-output-path Change
/ failed reqs 0 0
/ total time (seconds) 2.262 2.305 ⚠️ +0.04
/ avg req/sec 1105.14 1084.83 ⚠️ -20.31
/error-in-render failed reqs 0 0
/error-in-render total time (seconds) 1.514 1.489 -0.02
/error-in-render avg req/sec 1650.8 1679.3 +28.5
Client Bundles (main, webpack, commons) Overall increase ⚠️
vercel/next.js canary vercel/next.js bugfix/webpack-out-of-output-path Change
677f882d2ed8..a2e7.js gzip 13.4 kB 13.4 kB
framework.HASH.js gzip 39 kB 39 kB
main-HASH.js gzip 7.14 kB 7.14 kB ⚠️ +2 B
webpack-HASH.js gzip 751 B 751 B
Overall change 60.3 kB 60.3 kB ⚠️ +2 B
Legacy Client Bundles (polyfills) Overall increase ⚠️
vercel/next.js canary vercel/next.js bugfix/webpack-out-of-output-path Change
polyfills-HASH.js gzip 31.3 kB 31.3 kB ⚠️ +2 B
Overall change 31.3 kB 31.3 kB ⚠️ +2 B
Client Pages Overall increase ⚠️
vercel/next.js canary vercel/next.js bugfix/webpack-out-of-output-path Change
_app-fde3324..9dd1.js gzip 1.28 kB 1.28 kB ⚠️ +1 B
_error-af59f..582f.js gzip 3.46 kB 3.46 kB ⚠️ +2 B
amp-9716187d..0aa8.js gzip 536 B 538 B ⚠️ +2 B
hooks-107e90..74c7.js gzip 888 B 889 B ⚠️ +1 B
index-ac435c..ecf2.js gzip 227 B 229 B ⚠️ +2 B
link-e6cee42..49eb.js gzip 1.64 kB 1.64 kB ⚠️ +2 B
routerDirect..dc9d.js gzip 303 B 304 B ⚠️ +1 B
withRouter-6..0e02.js gzip 302 B 304 B ⚠️ +2 B
Overall change 8.64 kB 8.65 kB ⚠️ +13 B
Client Build Manifests
vercel/next.js canary vercel/next.js bugfix/webpack-out-of-output-path Change
_buildManifest.js gzip 346 B 346 B
Overall change 346 B 346 B
Rendered Page Sizes Overall decrease ✓
vercel/next.js canary vercel/next.js bugfix/webpack-out-of-output-path Change
index.html gzip 614 B 614 B
link.html gzip 621 B 620 B -1 B
withRouter.html gzip 609 B 608 B -1 B
Overall change 1.84 kB 1.84 kB -2 B

Diffs

Diff for _app-a24430c..ae4b780ba.js
@@ -1,321 +1,327 @@
-_N_E = (window["webpackJsonp_N_E"] = window["webpackJsonp_N_E"] || []).push([
-  [4],
-  {
-    /***/ 0: /***/ function(module, exports, __webpack_require__) {
-      __webpack_require__("e9+W");
-      module.exports = __webpack_require__("nOHt");
-
-      /***/
-    },
-
-    /***/ "7W2i": /***/ function(module, exports, __webpack_require__) {
-      var setPrototypeOf = __webpack_require__("SksO");
+var _N_E = (window["webpackJsonp_N_E"] = window["webpackJsonp_N_E"] || []).push(
+  [
+    [4],
+    {
+      /***/ 0: /***/ function(module, exports, __webpack_require__) {
+        __webpack_require__("e9+W");
+        module.exports = __webpack_require__("nOHt");
+
+        /***/
+      },
+
+      /***/ "7W2i": /***/ function(module, exports, __webpack_require__) {
+        var setPrototypeOf = __webpack_require__("SksO");
+
+        function _inherits(subClass, superClass) {
+          if (typeof superClass !== "function" && superClass !== null) {
+            throw new TypeError(
+              "Super expression must either be null or a function"
+            );
+          }
 
-      function _inherits(subClass, superClass) {
-        if (typeof superClass !== "function" && superClass !== null) {
-          throw new TypeError(
-            "Super expression must either be null or a function"
+          subClass.prototype = Object.create(
+            superClass && superClass.prototype,
+            {
+              constructor: {
+                value: subClass,
+                writable: true,
+                configurable: true
+              }
+            }
           );
+          if (superClass) setPrototypeOf(subClass, superClass);
         }
 
-        subClass.prototype = Object.create(superClass && superClass.prototype, {
-          constructor: {
-            value: subClass,
-            writable: true,
-            configurable: true
-          }
-        });
-        if (superClass) setPrototypeOf(subClass, superClass);
-      }
+        module.exports = _inherits;
 
-      module.exports = _inherits;
+        /***/
+      },
 
-      /***/
-    },
+      /***/ B5Ud: /***/ function(module, exports, __webpack_require__) {
+        "use strict";
 
-    /***/ B5Ud: /***/ function(module, exports, __webpack_require__) {
-      "use strict";
+        var _regeneratorRuntime = __webpack_require__("o0o1");
 
-      var _regeneratorRuntime = __webpack_require__("o0o1");
+        var _classCallCheck = __webpack_require__("lwsE");
 
-      var _classCallCheck = __webpack_require__("lwsE");
+        var _createClass = __webpack_require__("W8MJ");
 
-      var _createClass = __webpack_require__("W8MJ");
+        var _inherits = __webpack_require__("7W2i");
 
-      var _inherits = __webpack_require__("7W2i");
+        var _possibleConstructorReturn = __webpack_require__("a1gu");
 
-      var _possibleConstructorReturn = __webpack_require__("a1gu");
+        var _getPrototypeOf = __webpack_require__("Nsbk");
 
-      var _getPrototypeOf = __webpack_require__("Nsbk");
+        var _asyncToGenerator = __webpack_require__("yXPU");
 
-      var _asyncToGenerator = __webpack_require__("yXPU");
+        function _createSuper(Derived) {
+          var hasNativeReflectConstruct = _isNativeReflectConstruct();
+          return function _createSuperInternal() {
+            var Super = _getPrototypeOf(Derived),
+              result;
+            if (hasNativeReflectConstruct) {
+              var NewTarget = _getPrototypeOf(this).constructor;
+              result = Reflect.construct(Super, arguments, NewTarget);
+            } else {
+              result = Super.apply(this, arguments);
+            }
+            return _possibleConstructorReturn(this, result);
+          };
+        }
 
-      function _createSuper(Derived) {
-        var hasNativeReflectConstruct = _isNativeReflectConstruct();
-        return function _createSuperInternal() {
-          var Super = _getPrototypeOf(Derived),
-            result;
-          if (hasNativeReflectConstruct) {
-            var NewTarget = _getPrototypeOf(this).constructor;
-            result = Reflect.construct(Super, arguments, NewTarget);
-          } else {
-            result = Super.apply(this, arguments);
+        function _isNativeReflectConstruct() {
+          if (typeof Reflect === "undefined" || !Reflect.construct)
+            return false;
+          if (Reflect.construct.sham) return false;
+          if (typeof Proxy === "function") return true;
+          try {
+            Date.prototype.toString.call(
+              Reflect.construct(Date, [], function() {})
+            );
+            return true;
+          } catch (e) {
+            return false;
           }
-          return _possibleConstructorReturn(this, result);
-        };
-      }
-
-      function _isNativeReflectConstruct() {
-        if (typeof Reflect === "undefined" || !Reflect.construct) return false;
-        if (Reflect.construct.sham) return false;
-        if (typeof Proxy === "function") return true;
-        try {
-          Date.prototype.toString.call(
-            Reflect.construct(Date, [], function() {})
-          );
-          return true;
-        } catch (e) {
-          return false;
         }
-      }
 
-      var _interopRequireDefault = __webpack_require__("TqRt");
+        var _interopRequireDefault = __webpack_require__("TqRt");
 
-      exports.__esModule = true;
-      exports.Container = Container;
-      exports.createUrl = createUrl;
-      exports["default"] = void 0;
+        exports.__esModule = true;
+        exports.Container = Container;
+        exports.createUrl = createUrl;
+        exports["default"] = void 0;
 
-      var _react = _interopRequireDefault(__webpack_require__("q1tI"));
+        var _react = _interopRequireDefault(__webpack_require__("q1tI"));
 
-      var _utils = __webpack_require__("g/15");
+        var _utils = __webpack_require__("g/15");
 
-      exports.AppInitialProps = _utils.AppInitialProps;
-      exports.NextWebVitalsMetric = _utils.NextWebVitalsMetric;
-      /**
-       * `App` component is used for initialize of pages. It allows for overwriting and full control of the `page` initialization.
-       * This allows for keeping state between navigation, custom error handling, injecting additional data.
-       */
+        exports.AppInitialProps = _utils.AppInitialProps;
+        exports.NextWebVitalsMetric = _utils.NextWebVitalsMetric;
+        /**
+         * `App` component is used for initialize of pages. It allows for overwriting and full control of the `page` initialization.
+         * This allows for keeping state between navigation, custom error handling, injecting additional data.
+         */
 
-      function appGetInitialProps(_x) {
-        return _appGetInitialProps.apply(this, arguments);
-      }
+        function appGetInitialProps(_x) {
+          return _appGetInitialProps.apply(this, arguments);
+        }
 
-      function _appGetInitialProps() {
-        _appGetInitialProps = _asyncToGenerator(
-          /*#__PURE__*/ _regeneratorRuntime.mark(function _callee(_ref) {
-            var Component, ctx, pageProps;
-            return _regeneratorRuntime.wrap(function _callee$(_context) {
-              while (1) {
-                switch ((_context.prev = _context.next)) {
-                  case 0:
-                    (Component = _ref.Component), (ctx = _ref.ctx);
-                    _context.next = 3;
-                    return (0, _utils.loadGetInitialProps)(Component, ctx);
-
-                  case 3:
-                    pageProps = _context.sent;
-                    return _context.abrupt("return", {
-                      pageProps: pageProps
-                    });
-
-                  case 5:
-                  case "end":
-                    return _context.stop();
+        function _appGetInitialProps() {
+          _appGetInitialProps = _asyncToGenerator(
+            /*#__PURE__*/ _regeneratorRuntime.mark(function _callee(_ref) {
+              var Component, ctx, pageProps;
+              return _regeneratorRuntime.wrap(function _callee$(_context) {
+                while (1) {
+                  switch ((_context.prev = _context.next)) {
+                    case 0:
+                      (Component = _ref.Component), (ctx = _ref.ctx);
+                      _context.next = 3;
+                      return (0, _utils.loadGetInitialProps)(Component, ctx);
+
+                    case 3:
+                      pageProps = _context.sent;
+                      return _context.abrupt("return", {
+                        pageProps: pageProps
+                      });
+
+                    case 5:
+                    case "end":
+                      return _context.stop();
+                  }
                 }
-              }
-            }, _callee);
-          })
-        );
-        return _appGetInitialProps.apply(this, arguments);
-      }
-
-      var App = /*#__PURE__*/ (function(_react$default$Compon) {
-        _inherits(App, _react$default$Compon);
+              }, _callee);
+            })
+          );
+          return _appGetInitialProps.apply(this, arguments);
+        }
 
-        var _super = _createSuper(App);
+        var App = /*#__PURE__*/ (function(_react$default$Compon) {
+          _inherits(App, _react$default$Compon);
 
-        function App() {
-          _classCallCheck(this, App);
+          var _super = _createSuper(App);
 
-          return _super.apply(this, arguments);
-        }
+          function App() {
+            _classCallCheck(this, App);
 
-        _createClass(App, [
-          {
-            key: "componentDidCatch",
-            // Kept here for backwards compatibility.
-            // When someone ended App they could call `super.componentDidCatch`.
-            // @deprecated This method is no longer needed. Errors are caught at the top level
-            value: function componentDidCatch(error, _errorInfo) {
-              throw error;
-            }
-          },
-          {
-            key: "render",
-            value: function render() {
-              var _this$props = this.props,
-                router = _this$props.router,
-                Component = _this$props.Component,
-                pageProps = _this$props.pageProps,
-                __N_SSG = _this$props.__N_SSG,
-                __N_SSP = _this$props.__N_SSP;
-              return /*#__PURE__*/ _react["default"].createElement(
-                Component,
-                Object.assign(
-                  {},
-                  pageProps, // we don't add the legacy URL prop if it's using non-legacy
-                  // methods like getStaticProps and getServerSideProps
-                  !(__N_SSG || __N_SSP)
-                    ? {
-                        url: createUrl(router)
-                      }
-                    : {}
-                )
-              );
-            }
+            return _super.apply(this, arguments);
           }
-        ]);
 
-        return App;
-      })(_react["default"].Component);
+          _createClass(App, [
+            {
+              key: "componentDidCatch",
+              // Kept here for backwards compatibility.
+              // When someone ended App they could call `super.componentDidCatch`.
+              // @deprecated This method is no longer needed. Errors are caught at the top level
+              value: function componentDidCatch(error, _errorInfo) {
+                throw error;
+              }
+            },
+            {
+              key: "render",
+              value: function render() {
+                var _this$props = this.props,
+                  router = _this$props.router,
+                  Component = _this$props.Component,
+                  pageProps = _this$props.pageProps,
+                  __N_SSG = _this$props.__N_SSG,
+                  __N_SSP = _this$props.__N_SSP;
+                return /*#__PURE__*/ _react["default"].createElement(
+                  Component,
+                  Object.assign(
+                    {},
+                    pageProps, // we don't add the legacy URL prop if it's using non-legacy
+                    // methods like getStaticProps and getServerSideProps
+                    !(__N_SSG || __N_SSP)
+                      ? {
+                          url: createUrl(router)
+                        }
+                      : {}
+                  )
+                );
+              }
+            }
+          ]);
 
-      exports["default"] = App;
-      App.origGetInitialProps = appGetInitialProps;
-      App.getInitialProps = appGetInitialProps;
-      var warnContainer;
-      var warnUrl;
+          return App;
+        })(_react["default"].Component);
 
-      if (false) {
-      } // @deprecated noop for now until removal
+        exports["default"] = App;
+        App.origGetInitialProps = appGetInitialProps;
+        App.getInitialProps = appGetInitialProps;
+        var warnContainer;
+        var warnUrl;
 
-      function Container(p) {
         if (false) {
+        } // @deprecated noop for now until removal
+
+        function Container(p) {
+          if (false) {
+          }
+          return p.children;
         }
-        return p.children;
-      }
 
-      function createUrl(router) {
-        // This is to make sure we don't references the router object at call time
-        var pathname = router.pathname,
-          asPath = router.asPath,
-          query = router.query;
-        return {
-          get query() {
-            if (false) {
-            }
-            return query;
-          },
+        function createUrl(router) {
+          // This is to make sure we don't references the router object at call time
+          var pathname = router.pathname,
+            asPath = router.asPath,
+            query = router.query;
+          return {
+            get query() {
+              if (false) {
+              }
+              return query;
+            },
 
-          get pathname() {
-            if (false) {
-            }
-            return pathname;
-          },
+            get pathname() {
+              if (false) {
+              }
+              return pathname;
+            },
 
-          get asPath() {
-            if (false) {
-            }
-            return asPath;
-          },
+            get asPath() {
+              if (false) {
+              }
+              return asPath;
+            },
 
-          back: function back() {
-            if (false) {
-            }
-            router.back();
-          },
-          push: function push(url, as) {
-            if (false) {
-            }
-            return router.push(url, as);
-          },
-          pushTo: function pushTo(href, as) {
-            if (false) {
-            }
-            var pushRoute = as ? href : "";
-            var pushUrl = as || href;
-            return router.push(pushRoute, pushUrl);
-          },
-          replace: function replace(url, as) {
-            if (false) {
-            }
-            return router.replace(url, as);
-          },
-          replaceTo: function replaceTo(href, as) {
-            if (false) {
+            back: function back() {
+              if (false) {
+              }
+              router.back();
+            },
+            push: function push(url, as) {
+              if (false) {
+              }
+              return router.push(url, as);
+            },
+            pushTo: function pushTo(href, as) {
+              if (false) {
+              }
+              var pushRoute = as ? href : "";
+              var pushUrl = as || href;
+              return router.push(pushRoute, pushUrl);
+            },
+            replace: function replace(url, as) {
+              if (false) {
+              }
+              return router.replace(url, as);
+            },
+            replaceTo: function replaceTo(href, as) {
+              if (false) {
+              }
+              var replaceRoute = as ? href : "";
+              var replaceUrl = as || href;
+              return router.replace(replaceRoute, replaceUrl);
             }
-            var replaceRoute = as ? href : "";
-            var replaceUrl = as || href;
-            return router.replace(replaceRoute, replaceUrl);
-          }
-        };
-      }
+          };
+        }
 
-      /***/
-    },
+        /***/
+      },
+
+      /***/ Nsbk: /***/ function(module, exports) {
+        function _getPrototypeOf(o) {
+          module.exports = _getPrototypeOf = Object.setPrototypeOf
+            ? Object.getPrototypeOf
+            : function _getPrototypeOf(o) {
+                return o.__proto__ || Object.getPrototypeOf(o);
+              };
+          return _getPrototypeOf(o);
+        }
 
-    /***/ Nsbk: /***/ function(module, exports) {
-      function _getPrototypeOf(o) {
-        module.exports = _getPrototypeOf = Object.setPrototypeOf
-          ? Object.getPrototypeOf
-          : function _getPrototypeOf(o) {
-              return o.__proto__ || Object.getPrototypeOf(o);
-            };
-        return _getPrototypeOf(o);
-      }
+        module.exports = _getPrototypeOf;
 
-      module.exports = _getPrototypeOf;
+        /***/
+      },
 
-      /***/
-    },
+      /***/ PJYZ: /***/ function(module, exports) {
+        function _assertThisInitialized(self) {
+          if (self === void 0) {
+            throw new ReferenceError(
+              "this hasn't been initialised - super() hasn't been called"
+            );
+          }
 
-    /***/ PJYZ: /***/ function(module, exports) {
-      function _assertThisInitialized(self) {
-        if (self === void 0) {
-          throw new ReferenceError(
-            "this hasn't been initialised - super() hasn't been called"
-          );
+          return self;
         }
 
-        return self;
-      }
+        module.exports = _assertThisInitialized;
 
-      module.exports = _assertThisInitialized;
+        /***/
+      },
 
-      /***/
-    },
+      /***/ a1gu: /***/ function(module, exports, __webpack_require__) {
+        var _typeof = __webpack_require__("cDf5");
 
-    /***/ a1gu: /***/ function(module, exports, __webpack_require__) {
-      var _typeof = __webpack_require__("cDf5");
+        var assertThisInitialized = __webpack_require__("PJYZ");
 
-      var assertThisInitialized = __webpack_require__("PJYZ");
+        function _possibleConstructorReturn(self, call) {
+          if (
+            call &&
+            (_typeof(call) === "object" || typeof call === "function")
+          ) {
+            return call;
+          }
 
-      function _possibleConstructorReturn(self, call) {
-        if (
-          call &&
-          (_typeof(call) === "object" || typeof call === "function")
-        ) {
-          return call;
+          return assertThisInitialized(self);
         }
 
-        return assertThisInitialized(self);
-      }
-
-      module.exports = _possibleConstructorReturn;
+        module.exports = _possibleConstructorReturn;
 
-      /***/
-    },
+        /***/
+      },
 
-    /***/ "e9+W": /***/ function(module, exports, __webpack_require__) {
-      (window.__NEXT_P = window.__NEXT_P || []).push([
-        "/_app",
-        function() {
-          return __webpack_require__("B5Ud");
-        }
-      ]);
+      /***/ "e9+W": /***/ function(module, exports, __webpack_require__) {
+        (window.__NEXT_P = window.__NEXT_P || []).push([
+          "/_app",
+          function() {
+            return __webpack_require__("B5Ud");
+          }
+        ]);
 
-      /***/
-    }
-  },
-  [[0, 0, 1, 2]]
-]);
+        /***/
+      }
+    },
+    [[0, 0, 1, 2]]
+  ]
+);
Diff for _error-6fc12..2417101e6.js

Diff too large to display

Diff for amp-27f75ad1..0c5cdedd1.js
@@ -1,142 +1,144 @@
-_N_E = (window["webpackJsonp_N_E"] = window["webpackJsonp_N_E"] || []).push([
-  [6],
-  {
-    /***/ "/0+H": /***/ function(module, exports, __webpack_require__) {
-      "use strict";
-
-      exports.__esModule = true;
-      exports.isInAmpMode = isInAmpMode;
-      exports.useAmp = useAmp;
-
-      var _react = _interopRequireDefault(__webpack_require__("q1tI"));
-
-      var _ampContext = __webpack_require__("lwAK");
-
-      function _interopRequireDefault(obj) {
-        return obj && obj.__esModule
-          ? obj
-          : {
-              default: obj
-            };
-      }
+var _N_E = (window["webpackJsonp_N_E"] = window["webpackJsonp_N_E"] || []).push(
+  [
+    [6],
+    {
+      /***/ "/0+H": /***/ function(module, exports, __webpack_require__) {
+        "use strict";
+
+        exports.__esModule = true;
+        exports.isInAmpMode = isInAmpMode;
+        exports.useAmp = useAmp;
+
+        var _react = _interopRequireDefault(__webpack_require__("q1tI"));
+
+        var _ampContext = __webpack_require__("lwAK");
+
+        function _interopRequireDefault(obj) {
+          return obj && obj.__esModule
+            ? obj
+            : {
+                default: obj
+              };
+        }
 
-      function isInAmpMode() {
-        var _ref =
-            arguments.length > 0 && arguments[0] !== undefined
-              ? arguments[0]
-              : {},
-          _ref$ampFirst = _ref.ampFirst,
-          ampFirst = _ref$ampFirst === void 0 ? false : _ref$ampFirst,
-          _ref$hybrid = _ref.hybrid,
-          hybrid = _ref$hybrid === void 0 ? false : _ref$hybrid,
-          _ref$hasQuery = _ref.hasQuery,
-          hasQuery = _ref$hasQuery === void 0 ? false : _ref$hasQuery;
-
-        return ampFirst || (hybrid && hasQuery);
-      }
+        function isInAmpMode() {
+          var _ref =
+              arguments.length > 0 && arguments[0] !== undefined
+                ? arguments[0]
+                : {},
+            _ref$ampFirst = _ref.ampFirst,
+            ampFirst = _ref$ampFirst === void 0 ? false : _ref$ampFirst,
+            _ref$hybrid = _ref.hybrid,
+            hybrid = _ref$hybrid === void 0 ? false : _ref$hybrid,
+            _ref$hasQuery = _ref.hasQuery,
+            hasQuery = _ref$hasQuery === void 0 ? false : _ref$hasQuery;
+
+          return ampFirst || (hybrid && hasQuery);
+        }
 
-      function useAmp() {
-        // Don't assign the context value to a variable to save bytes
-        return isInAmpMode(
-          _react["default"].useContext(_ampContext.AmpStateContext)
-        );
-      }
+        function useAmp() {
+          // Don't assign the context value to a variable to save bytes
+          return isInAmpMode(
+            _react["default"].useContext(_ampContext.AmpStateContext)
+          );
+        }
 
-      /***/
-    },
+        /***/
+      },
 
-    /***/ JjeS: /***/ function(module, exports, __webpack_require__) {
-      module.exports = __webpack_require__("/0+H");
+      /***/ JjeS: /***/ function(module, exports, __webpack_require__) {
+        module.exports = __webpack_require__("/0+H");
 
-      /***/
-    },
+        /***/
+      },
 
-    /***/ Q6ik: /***/ function(module, exports, __webpack_require__) {
-      (window.__NEXT_P = window.__NEXT_P || []).push([
-        "/amp",
-        function() {
-          return __webpack_require__("rsBd");
-        }
-      ]);
+      /***/ Q6ik: /***/ function(module, exports, __webpack_require__) {
+        (window.__NEXT_P = window.__NEXT_P || []).push([
+          "/amp",
+          function() {
+            return __webpack_require__("rsBd");
+          }
+        ]);
 
-      /***/
-    },
+        /***/
+      },
 
-    /***/ Qetd: /***/ function(module, exports, __webpack_require__) {
-      "use strict";
-      var assign = Object.assign.bind(Object);
-      module.exports = assign;
-      module.exports.default = module.exports;
-      //# sourceMappingURL=object-assign.js.map
+      /***/ Qetd: /***/ function(module, exports, __webpack_require__) {
+        "use strict";
+        var assign = Object.assign.bind(Object);
+        module.exports = assign;
+        module.exports.default = module.exports;
+        //# sourceMappingURL=object-assign.js.map
 
-      /***/
-    },
+        /***/
+      },
 
-    /***/ lwAK: /***/ function(module, exports, __webpack_require__) {
-      "use strict";
+      /***/ lwAK: /***/ function(module, exports, __webpack_require__) {
+        "use strict";
 
-      exports.__esModule = true;
-      exports.AmpStateContext = void 0;
+        exports.__esModule = true;
+        exports.AmpStateContext = void 0;
 
-      var _react = _interopRequireDefault(__webpack_require__("q1tI"));
+        var _react = _interopRequireDefault(__webpack_require__("q1tI"));
 
-      function _interopRequireDefault(obj) {
-        return obj && obj.__esModule
-          ? obj
-          : {
-              default: obj
-            };
-      }
+        function _interopRequireDefault(obj) {
+          return obj && obj.__esModule
+            ? obj
+            : {
+                default: obj
+              };
+        }
 
-      var AmpStateContext = /*#__PURE__*/ _react["default"].createContext({});
+        var AmpStateContext = /*#__PURE__*/ _react["default"].createContext({});
 
-      exports.AmpStateContext = AmpStateContext;
+        exports.AmpStateContext = AmpStateContext;
 
-      if (false) {
-      }
+        if (false) {
+        }
 
-      /***/
-    },
+        /***/
+      },
 
-    /***/ rsBd: /***/ function(
-      module,
-      __webpack_exports__,
-      __webpack_require__
-    ) {
-      "use strict";
-      __webpack_require__.r(__webpack_exports__);
-      /* harmony export (binding) */ __webpack_require__.d(
+      /***/ rsBd: /***/ function(
+        module,
         __webpack_exports__,
-        "config",
-        function() {
-          return config;
-        }
-      );
-      /* harmony export (binding) */ __webpack_require__.d(
-        __webpack_exports__,
-        "default",
-        function() {
-          return Amp;
+        __webpack_require__
+      ) {
+        "use strict";
+        __webpack_require__.r(__webpack_exports__);
+        /* harmony export (binding) */ __webpack_require__.d(
+          __webpack_exports__,
+          "config",
+          function() {
+            return config;
+          }
+        );
+        /* harmony export (binding) */ __webpack_require__.d(
+          __webpack_exports__,
+          "default",
+          function() {
+            return Amp;
+          }
+        );
+        /* harmony import */ var next_amp__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(
+          "JjeS"
+        );
+        /* harmony import */ var next_amp__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/ __webpack_require__.n(
+          next_amp__WEBPACK_IMPORTED_MODULE_0__
+        );
+
+        var config = {
+          amp: "hybrid"
+        };
+        function Amp(props) {
+          return Object(next_amp__WEBPACK_IMPORTED_MODULE_0__["useAmp"])()
+            ? "AMP mode"
+            : "normal mode";
         }
-      );
-      /* harmony import */ var next_amp__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(
-        "JjeS"
-      );
-      /* harmony import */ var next_amp__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/ __webpack_require__.n(
-        next_amp__WEBPACK_IMPORTED_MODULE_0__
-      );
-
-      var config = {
-        amp: "hybrid"
-      };
-      function Amp(props) {
-        return Object(next_amp__WEBPACK_IMPORTED_MODULE_0__["useAmp"])()
-          ? "AMP mode"
-          : "normal mode";
-      }
 
-      /***/
-    }
-  },
-  [["Q6ik", 0, 1]]
-]);
+        /***/
+      }
+    },
+    [["Q6ik", 0, 1]]
+  ]
+);
Diff for hooks-1c83fd..614f18817.js
@@ -1,168 +1,173 @@
-_N_E = (window["webpackJsonp_N_E"] = window["webpackJsonp_N_E"] || []).push([
-  [7],
-  {
-    /***/ "+MDD": /***/ function(
-      module,
-      __webpack_exports__,
-      __webpack_require__
-    ) {
-      "use strict";
-      // ESM COMPAT FLAG
-      __webpack_require__.r(__webpack_exports__);
-
-      // CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js
-      function _arrayWithHoles(arr) {
-        if (Array.isArray(arr)) return arr;
-      }
-      // CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js
-      function _iterableToArrayLimit(arr, i) {
-        if (typeof Symbol === "undefined" || !(Symbol.iterator in Object(arr)))
-          return;
-        var _arr = [];
-        var _n = true;
-        var _d = false;
-        var _e = undefined;
-
-        try {
-          for (
-            var _i = arr[Symbol.iterator](), _s;
-            !(_n = (_s = _i.next()).done);
-            _n = true
-          ) {
-            _arr.push(_s.value);
-
-            if (i && _arr.length === i) break;
-          }
-        } catch (err) {
-          _d = true;
-          _e = err;
-        } finally {
+var _N_E = (window["webpackJsonp_N_E"] = window["webpackJsonp_N_E"] || []).push(
+  [
+    [7],
+    {
+      /***/ "+MDD": /***/ function(
+        module,
+        __webpack_exports__,
+        __webpack_require__
+      ) {
+        "use strict";
+        // ESM COMPAT FLAG
+        __webpack_require__.r(__webpack_exports__);
+
+        // CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js
+        function _arrayWithHoles(arr) {
+          if (Array.isArray(arr)) return arr;
+        }
+        // CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js
+        function _iterableToArrayLimit(arr, i) {
+          if (
+            typeof Symbol === "undefined" ||
+            !(Symbol.iterator in Object(arr))
+          )
+            return;
+          var _arr = [];
+          var _n = true;
+          var _d = false;
+          var _e = undefined;
+
           try {
-            if (!_n && _i["return"] != null) _i["return"]();
+            for (
+              var _i = arr[Symbol.iterator](), _s;
+              !(_n = (_s = _i.next()).done);
+              _n = true
+            ) {
+              _arr.push(_s.value);
+
+              if (i && _arr.length === i) break;
+            }
+          } catch (err) {
+            _d = true;
+            _e = err;
           } finally {
-            if (_d) throw _e;
+            try {
+              if (!_n && _i["return"] != null) _i["return"]();
+            } finally {
+              if (_d) throw _e;
+            }
           }
+
+          return _arr;
         }
+        // CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js
+        function _arrayLikeToArray(arr, len) {
+          if (len == null || len > arr.length) len = arr.length;
 
-        return _arr;
-      }
-      // CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js
-      function _arrayLikeToArray(arr, len) {
-        if (len == null || len > arr.length) len = arr.length;
+          for (var i = 0, arr2 = new Array(len); i < len; i++) {
+            arr2[i] = arr[i];
+          }
 
-        for (var i = 0, arr2 = new Array(len); i < len; i++) {
-          arr2[i] = arr[i];
+          return arr2;
         }
+        // CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js
+
+        function _unsupportedIterableToArray(o, minLen) {
+          if (!o) return;
+          if (typeof o === "string") return _arrayLikeToArray(o, minLen);
+          var n = Object.prototype.toString.call(o).slice(8, -1);
+          if (n === "Object" && o.constructor) n = o.constructor.name;
+          if (n === "Map" || n === "Set") return Array.from(o);
+          if (
+            n === "Arguments" ||
+            /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)
+          )
+            return _arrayLikeToArray(o, minLen);
+        }
+        // CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/nonIterableRest.js
+        function _nonIterableRest() {
+          throw new TypeError(
+            "Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."
+          );
+        }
+        // CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/slicedToArray.js
+
+        function _slicedToArray(arr, i) {
+          return (
+            _arrayWithHoles(arr) ||
+            _iterableToArrayLimit(arr, i) ||
+            _unsupportedIterableToArray(arr, i) ||
+            _nonIterableRest()
+          );
+        }
+        // EXTERNAL MODULE: ./node_modules/react/index.js
+        var react = __webpack_require__("q1tI");
+        var react_default = /*#__PURE__*/ __webpack_require__.n(react);
 
-        return arr2;
-      }
-      // CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js
-
-      function _unsupportedIterableToArray(o, minLen) {
-        if (!o) return;
-        if (typeof o === "string") return _arrayLikeToArray(o, minLen);
-        var n = Object.prototype.toString.call(o).slice(8, -1);
-        if (n === "Object" && o.constructor) n = o.constructor.name;
-        if (n === "Map" || n === "Set") return Array.from(o);
-        if (
-          n === "Arguments" ||
-          /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)
-        )
-          return _arrayLikeToArray(o, minLen);
-      }
-      // CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/nonIterableRest.js
-      function _nonIterableRest() {
-        throw new TypeError(
-          "Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."
-        );
-      }
-      // CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/slicedToArray.js
-
-      function _slicedToArray(arr, i) {
-        return (
-          _arrayWithHoles(arr) ||
-          _iterableToArrayLimit(arr, i) ||
-          _unsupportedIterableToArray(arr, i) ||
-          _nonIterableRest()
-        );
-      }
-      // EXTERNAL MODULE: ./node_modules/react/index.js
-      var react = __webpack_require__("q1tI");
-      var react_default = /*#__PURE__*/ __webpack_require__.n(react);
-
-      // CONCATENATED MODULE: ./pages/hooks.js
+        // CONCATENATED MODULE: ./pages/hooks.js
 
-      var __jsx = react_default.a.createElement;
+        var __jsx = react_default.a.createElement;
 
-      /* harmony default export */ var hooks = (__webpack_exports__[
-        "default"
-      ] = function() {
-        var _React$useState = react_default.a.useState(0),
-          _React$useState2 = _slicedToArray(_React$useState, 2),
-          clicks1 = _React$useState2[0],
-          setClicks1 = _React$useState2[1];
+        /* harmony default export */ var hooks = (__webpack_exports__[
+          "default"
+        ] = function() {
+          var _React$useState = react_default.a.useState(0),
+            _React$useState2 = _slicedToArray(_React$useState, 2),
+            clicks1 = _React$useState2[0],
+            setClicks1 = _React$useState2[1];
 
-        var _useState = Object(react["useState"])(0),
-          clicks2 = _useState[0],
-          setClicks2 = _useState[1];
+          var _useState = Object(react["useState"])(0),
+            clicks2 = _useState[0],
+            setClicks2 = _useState[1];
 
-        var doClick1 = react_default.a.useCallback(
-          function() {
-            setClicks1(clicks1 + 1);
-          },
-          [clicks1]
-        );
-        var doClick2 = Object(react["useCallback"])(
-          function() {
-            setClicks2(clicks2 + 1);
-          },
-          [clicks2]
-        );
-        return __jsx(
-          react_default.a.Fragment,
-          null,
-          __jsx("h3", null, "Clicks ", clicks1),
-          __jsx(
-            "button",
-            {
-              onClick: doClick1
+          var doClick1 = react_default.a.useCallback(
+            function() {
+              setClicks1(clicks1 + 1);
             },
-            "Click me"
-          ),
-          __jsx("h3", null, "Clicks ", clicks2),
-          __jsx(
-            "button",
-            {
-              onClick: doClick2
+            [clicks1]
+          );
+          var doClick2 = Object(react["useCallback"])(
+            function() {
+              setClicks2(clicks2 + 1);
             },
-            "Click me"
-          )
-        );
-      });
-
-      /***/
-    },
-
-    /***/ Qetd: /***/ function(module, exports, __webpack_require__) {
-      "use strict";
-      var assign = Object.assign.bind(Object);
-      module.exports = assign;
-      module.exports.default = module.exports;
-      //# sourceMappingURL=object-assign.js.map
+            [clicks2]
+          );
+          return __jsx(
+            react_default.a.Fragment,
+            null,
+            __jsx("h3", null, "Clicks ", clicks1),
+            __jsx(
+              "button",
+              {
+                onClick: doClick1
+              },
+              "Click me"
+            ),
+            __jsx("h3", null, "Clicks ", clicks2),
+            __jsx(
+              "button",
+              {
+                onClick: doClick2
+              },
+              "Click me"
+            )
+          );
+        });
+
+        /***/
+      },
+
+      /***/ Qetd: /***/ function(module, exports, __webpack_require__) {
+        "use strict";
+        var assign = Object.assign.bind(Object);
+        module.exports = assign;
+        module.exports.default = module.exports;
+        //# sourceMappingURL=object-assign.js.map
+
+        /***/
+      },
+
+      /***/ g1vQ: /***/ function(module, exports, __webpack_require__) {
+        (window.__NEXT_P = window.__NEXT_P || []).push([
+          "/hooks",
+          function() {
+            return __webpack_require__("+MDD");
+          }
+        ]);
 
-      /***/
+        /***/
+      }
     },
-
-    /***/ g1vQ: /***/ function(module, exports, __webpack_require__) {
-      (window.__NEXT_P = window.__NEXT_P || []).push([
-        "/hooks",
-        function() {
-          return __webpack_require__("+MDD");
-        }
-      ]);
-
-      /***/
-    }
-  },
-  [["g1vQ", 0, 1]]
-]);
+    [["g1vQ", 0, 1]]
+  ]
+);
Diff for index-b1738b..4aa373c84.js
@@ -1,36 +1,38 @@
-_N_E = (window["webpackJsonp_N_E"] = window["webpackJsonp_N_E"] || []).push([
-  [8],
-  {
-    /***/ RNiq: /***/ function(
-      module,
-      __webpack_exports__,
-      __webpack_require__
-    ) {
-      "use strict";
-      __webpack_require__.r(__webpack_exports__);
-      var Page = function Page() {
-        return "Hello world 👋";
-      };
+var _N_E = (window["webpackJsonp_N_E"] = window["webpackJsonp_N_E"] || []).push(
+  [
+    [8],
+    {
+      /***/ RNiq: /***/ function(
+        module,
+        __webpack_exports__,
+        __webpack_require__
+      ) {
+        "use strict";
+        __webpack_require__.r(__webpack_exports__);
+        var Page = function Page() {
+          return "Hello world 👋";
+        };
 
-      Page.getInitialProps = function() {
-        return {};
-      };
+        Page.getInitialProps = function() {
+          return {};
+        };
 
-      /* harmony default export */ __webpack_exports__["default"] = Page;
+        /* harmony default export */ __webpack_exports__["default"] = Page;
 
-      /***/
-    },
+        /***/
+      },
 
-    /***/ vlRD: /***/ function(module, exports, __webpack_require__) {
-      (window.__NEXT_P = window.__NEXT_P || []).push([
-        "/",
-        function() {
-          return __webpack_require__("RNiq");
-        }
-      ]);
+      /***/ vlRD: /***/ function(module, exports, __webpack_require__) {
+        (window.__NEXT_P = window.__NEXT_P || []).push([
+          "/",
+          function() {
+            return __webpack_require__("RNiq");
+          }
+        ]);
 
-      /***/
-    }
-  },
-  [["vlRD", 0]]
-]);
+        /***/
+      }
+    },
+    [["vlRD", 0]]
+  ]
+);
Diff for link-e82300e..385add1b5.js
@@ -1,436 +1,449 @@
-_N_E = (window["webpackJsonp_N_E"] = window["webpackJsonp_N_E"] || []).push([
-  [9],
-  {
-    /***/ ObF3: /***/ function(
-      module,
-      __webpack_exports__,
-      __webpack_require__
-    ) {
-      "use strict";
-      __webpack_require__.r(__webpack_exports__);
-      /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(
-        "q1tI"
-      );
-      /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/ __webpack_require__.n(
-        react__WEBPACK_IMPORTED_MODULE_0__
-      );
-      /* harmony import */ var next_link__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(
-        "YFqc"
-      );
-      /* harmony import */ var next_link__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/ __webpack_require__.n(
-        next_link__WEBPACK_IMPORTED_MODULE_1__
-      );
-
-      var __jsx = react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement;
-
-      function aLink(props) {
-        return __jsx(
-          "div",
-          null,
-          __jsx("h3", null, "A Link page!"),
-          __jsx(
-            next_link__WEBPACK_IMPORTED_MODULE_1___default.a,
-            {
-              href: "/"
-            },
-            "Go to /"
-          )
+var _N_E = (window["webpackJsonp_N_E"] = window["webpackJsonp_N_E"] || []).push(
+  [
+    [9],
+    {
+      /***/ ObF3: /***/ function(
+        module,
+        __webpack_exports__,
+        __webpack_require__
+      ) {
+        "use strict";
+        __webpack_require__.r(__webpack_exports__);
+        /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(
+          "q1tI"
+        );
+        /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/ __webpack_require__.n(
+          react__WEBPACK_IMPORTED_MODULE_0__
+        );
+        /* harmony import */ var next_link__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(
+          "YFqc"
+        );
+        /* harmony import */ var next_link__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/ __webpack_require__.n(
+          next_link__WEBPACK_IMPORTED_MODULE_1__
         );
-      }
 
-      aLink.getInitialProps = function() {
-        return {};
-      };
+        var __jsx = react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement;
 
-      /* harmony default export */ __webpack_exports__["default"] = aLink;
+        function aLink(props) {
+          return __jsx(
+            "div",
+            null,
+            __jsx("h3", null, "A Link page!"),
+            __jsx(
+              next_link__WEBPACK_IMPORTED_MODULE_1___default.a,
+              {
+                href: "/"
+              },
+              "Go to /"
+            )
+          );
+        }
 
-      /***/
-    },
+        aLink.getInitialProps = function() {
+          return {};
+        };
 
-    /***/ V8Sf: /***/ function(module, exports, __webpack_require__) {
-      (window.__NEXT_P = window.__NEXT_P || []).push([
-        "/link",
-        function() {
-          return __webpack_require__("ObF3");
-        }
-      ]);
+        /* harmony default export */ __webpack_exports__["default"] = aLink;
 
-      /***/
-    },
+        /***/
+      },
 
-    /***/ YFqc: /***/ function(module, exports, __webpack_require__) {
-      module.exports = __webpack_require__("cTJO");
+      /***/ V8Sf: /***/ function(module, exports, __webpack_require__) {
+        (window.__NEXT_P = window.__NEXT_P || []).push([
+          "/link",
+          function() {
+            return __webpack_require__("ObF3");
+          }
+        ]);
 
-      /***/
-    },
+        /***/
+      },
 
-    /***/ cTJO: /***/ function(module, exports, __webpack_require__) {
-      "use strict";
+      /***/ YFqc: /***/ function(module, exports, __webpack_require__) {
+        module.exports = __webpack_require__("cTJO");
 
-      var _slicedToArray = __webpack_require__("J4zp");
+        /***/
+      },
 
-      var _interopRequireWildcard = __webpack_require__("284h");
+      /***/ cTJO: /***/ function(module, exports, __webpack_require__) {
+        "use strict";
 
-      exports.__esModule = true;
-      exports["default"] = void 0;
+        var _slicedToArray = __webpack_require__("J4zp");
 
-      var _react = _interopRequireWildcard(__webpack_require__("q1tI"));
+        var _interopRequireWildcard = __webpack_require__("284h");
 
-      var _router = __webpack_require__("elyg");
+        exports.__esModule = true;
+        exports["default"] = void 0;
 
-      var _router2 = __webpack_require__("nOHt");
+        var _react = _interopRequireWildcard(__webpack_require__("q1tI"));
 
-      var _useIntersection = __webpack_require__("vNVm");
+        var _router = __webpack_require__("elyg");
 
-      var prefetched = {};
+        var _router2 = __webpack_require__("nOHt");
 
-      function prefetch(router, href, as, options) {
-        if (false || !router) return;
-        if (!(0, _router.isLocalURL)(href)) return; // Prefetch the JSON page if asked (only in the client)
-        // We need to handle a prefetch error here since we may be
-        // loading with priority which can reject but we don't
-        // want to force navigation since this is only a prefetch
+        var _useIntersection = __webpack_require__("vNVm");
 
-        router.prefetch(href, as, options)["catch"](function(err) {
-          if (false) {
-          }
-        });
-        var curLocale =
-          options && typeof options.locale !== "undefined"
-            ? options.locale
-            : router && router.locale; // Join on an invalid URI character
+        var prefetched = {};
 
-        prefetched[href + "%" + as + (curLocale ? "%" + curLocale : "")] = true;
-      }
+        function prefetch(router, href, as, options) {
+          if (false || !router) return;
+          if (!(0, _router.isLocalURL)(href)) return; // Prefetch the JSON page if asked (only in the client)
+          // We need to handle a prefetch error here since we may be
+          // loading with priority which can reject but we don't
+          // want to force navigation since this is only a prefetch
 
-      function isModifiedEvent(event) {
-        var target = event.currentTarget.target;
-        return (
-          (target && target !== "_self") ||
-          event.metaKey ||
-          event.ctrlKey ||
-          event.shiftKey ||
-          event.altKey || // triggers resource download
-          (event.nativeEvent && event.nativeEvent.which === 2)
-        );
-      }
+          router.prefetch(href, as, options)["catch"](function(err) {
+            if (false) {
+            }
+          });
+          var curLocale =
+            options && typeof options.locale !== "undefined"
+              ? options.locale
+              : router && router.locale; // Join on an invalid URI character
 
-      function linkClicked(
-        e,
-        router,
-        href,
-        as,
-        replace,
-        shallow,
-        scroll,
-        locale
-      ) {
-        var nodeName = e.currentTarget.nodeName;
+          prefetched[
+            href + "%" + as + (curLocale ? "%" + curLocale : "")
+          ] = true;
+        }
 
-        if (
-          nodeName === "A" &&
-          (isModifiedEvent(e) || !(0, _router.isLocalURL)(href))
-        ) {
-          // ignore click for browser’s default behavior
-          return;
+        function isModifiedEvent(event) {
+          var target = event.currentTarget.target;
+          return (
+            (target && target !== "_self") ||
+            event.metaKey ||
+            event.ctrlKey ||
+            event.shiftKey ||
+            event.altKey || // triggers resource download
+            (event.nativeEvent && event.nativeEvent.which === 2)
+          );
         }
 
-        e.preventDefault(); //  avoid scroll for urls with anchor refs
+        function linkClicked(
+          e,
+          router,
+          href,
+          as,
+          replace,
+          shallow,
+          scroll,
+          locale
+        ) {
+          var nodeName = e.currentTarget.nodeName;
+
+          if (
+            nodeName === "A" &&
+            (isModifiedEvent(e) || !(0, _router.isLocalURL)(href))
+          ) {
+            // ignore click for browser’s default behavior
+            return;
+          }
 
-        if (scroll == null) {
-          scroll = as.indexOf("#") < 0;
-        } // replace state instead of push if prop is present
+          e.preventDefault(); //  avoid scroll for urls with anchor refs
 
-        router[replace ? "replace" : "push"](href, as, {
-          shallow: shallow,
-          locale: locale,
-          scroll: scroll
-        });
-      }
+          if (scroll == null) {
+            scroll = as.indexOf("#") < 0;
+          } // replace state instead of push if prop is present
 
-      function Link(props) {
-        if (false) {
-          var hasWarned,
-            optionalProps,
-            optionalPropsGuard,
-            requiredProps,
-            requiredPropsGuard,
-            createPropError;
+          router[replace ? "replace" : "push"](href, as, {
+            shallow: shallow,
+            locale: locale,
+            scroll: scroll
+          });
         }
 
-        var p = props.prefetch !== false;
-        var router = (0, _router2.useRouter)();
-        var pathname = (router && router.pathname) || "/";
+        function Link(props) {
+          if (false) {
+            var hasWarned,
+              optionalProps,
+              optionalPropsGuard,
+              requiredProps,
+              requiredPropsGuard,
+              createPropError;
+          }
 
-        var _react$default$useMem = _react["default"].useMemo(
-            function() {
-              var _ref = (0, _router.resolveHref)(pathname, props.href, true),
-                _ref2 = _slicedToArray(_ref, 2),
-                resolvedHref = _ref2[0],
-                resolvedAs = _ref2[1];
-
-              return {
-                href: resolvedHref,
-                as: props.as
-                  ? (0, _router.resolveHref)(pathname, props.as)
-                  : resolvedAs || resolvedHref
-              };
-            },
-            [pathname, props.href, props.as]
-          ),
-          href = _react$default$useMem.href,
-          as = _react$default$useMem.as;
-
-        var children = props.children,
-          replace = props.replace,
-          shallow = props.shallow,
-          scroll = props.scroll,
-          locale = props.locale; // Deprecated. Warning shown by propType check. If the children provided is a string (<Link>example</Link>) we wrap it in an <a> tag
-
-        if (typeof children === "string") {
-          children = /*#__PURE__*/ _react["default"].createElement(
-            "a",
-            null,
-            children
-          );
-        } // This will return the first child, if multiple are provided it will throw an error
+          var p = props.prefetch !== false;
+          var router = (0, _router2.useRouter)();
+          var pathname = (router && router.pathname) || "/";
+
+          var _react$default$useMem = _react["default"].useMemo(
+              function() {
+                var _ref = (0, _router.resolveHref)(pathname, props.href, true),
+                  _ref2 = _slicedToArray(_ref, 2),
+                  resolvedHref = _ref2[0],
+                  resolvedAs = _ref2[1];
+
+                return {
+                  href: resolvedHref,
+                  as: props.as
+                    ? (0, _router.resolveHref)(pathname, props.as)
+                    : resolvedAs || resolvedHref
+                };
+              },
+              [pathname, props.href, props.as]
+            ),
+            href = _react$default$useMem.href,
+            as = _react$default$useMem.as;
+
+          var children = props.children,
+            replace = props.replace,
+            shallow = props.shallow,
+            scroll = props.scroll,
+            locale = props.locale; // Deprecated. Warning shown by propType check. If the children provided is a string (<Link>example</Link>) we wrap it in an <a> tag
+
+          if (typeof children === "string") {
+            children = /*#__PURE__*/ _react["default"].createElement(
+              "a",
+              null,
+              children
+            );
+          } // This will return the first child, if multiple are provided it will throw an error
 
-        var child = _react.Children.only(children);
+          var child = _react.Children.only(children);
 
-        var childRef = child && typeof child === "object" && child.ref;
+          var childRef = child && typeof child === "object" && child.ref;
 
-        var _ref3 = (0, _useIntersection.useIntersection)({
-            rootMargin: "200px"
-          }),
-          _ref4 = _slicedToArray(_ref3, 2),
-          setIntersectionRef = _ref4[0],
-          isVisible = _ref4[1];
+          var _ref3 = (0, _useIntersection.useIntersection)({
+              rootMargin: "200px"
+            }),
+            _ref4 = _slicedToArray(_ref3, 2),
+            setIntersectionRef = _ref4[0],
+            isVisible = _ref4[1];
 
-        var setRef = _react["default"].useCallback(
-          function(el) {
-            setIntersectionRef(el);
+          var setRef = _react["default"].useCallback(
+            function(el) {
+              setIntersectionRef(el);
 
-            if (childRef) {
-              if (typeof childRef === "function") childRef(el);
-              else if (typeof childRef === "object") {
-                childRef.current = el;
+              if (childRef) {
+                if (typeof childRef === "function") childRef(el);
+                else if (typeof childRef === "object") {
+                  childRef.current = el;
+                }
               }
-            }
-          },
-          [childRef, setIntersectionRef]
-        );
+            },
+            [childRef, setIntersectionRef]
+          );
 
-        (0, _react.useEffect)(
-          function() {
-            var shouldPrefetch =
-              isVisible && p && (0, _router.isLocalURL)(href);
-            var curLocale =
-              typeof locale !== "undefined" ? locale : router && router.locale;
-            var isPrefetched =
-              prefetched[href + "%" + as + (curLocale ? "%" + curLocale : "")];
-
-            if (shouldPrefetch && !isPrefetched) {
-              prefetch(router, href, as, {
-                locale: curLocale
-              });
-            }
-          },
-          [as, href, isVisible, locale, p, router]
-        );
-        var childProps = {
-          ref: setRef,
-          onClick: function onClick(e) {
-            if (child.props && typeof child.props.onClick === "function") {
-              child.props.onClick(e);
-            }
+          (0, _react.useEffect)(
+            function() {
+              var shouldPrefetch =
+                isVisible && p && (0, _router.isLocalURL)(href);
+              var curLocale =
+                typeof locale !== "undefined"
+                  ? locale
+                  : router && router.locale;
+              var isPrefetched =
+                prefetched[
+                  href + "%" + as + (curLocale ? "%" + curLocale : "")
+                ];
+
+              if (shouldPrefetch && !isPrefetched) {
+                prefetch(router, href, as, {
+                  locale: curLocale
+                });
+              }
+            },
+            [as, href, isVisible, locale, p, router]
+          );
+          var childProps = {
+            ref: setRef,
+            onClick: function onClick(e) {
+              if (child.props && typeof child.props.onClick === "function") {
+                child.props.onClick(e);
+              }
 
-            if (!e.defaultPrevented) {
-              linkClicked(
-                e,
-                router,
-                href,
-                as,
-                replace,
-                shallow,
-                scroll,
-                locale
-              );
+              if (!e.defaultPrevented) {
+                linkClicked(
+                  e,
+                  router,
+                  href,
+                  as,
+                  replace,
+                  shallow,
+                  scroll,
+                  locale
+                );
+              }
             }
-          }
-        };
+          };
 
-        childProps.onMouseEnter = function(e) {
-          if (!(0, _router.isLocalURL)(href)) return;
+          childProps.onMouseEnter = function(e) {
+            if (!(0, _router.isLocalURL)(href)) return;
 
-          if (child.props && typeof child.props.onMouseEnter === "function") {
-            child.props.onMouseEnter(e);
-          }
+            if (child.props && typeof child.props.onMouseEnter === "function") {
+              child.props.onMouseEnter(e);
+            }
 
-          prefetch(router, href, as, {
-            priority: true
-          });
-        }; // If child is an <a> tag and doesn't have a href attribute, or if the 'passHref' property is
-        // defined, we specify the current 'href', so that repetition is not needed by the user
+            prefetch(router, href, as, {
+              priority: true
+            });
+          }; // If child is an <a> tag and doesn't have a href attribute, or if the 'passHref' property is
+          // defined, we specify the current 'href', so that repetition is not needed by the user
 
-        if (
-          props.passHref ||
-          (child.type === "a" && !("href" in child.props))
-        ) {
-          var curLocale =
-            typeof locale !== "undefined" ? locale : router && router.locale; // we only render domain locales if we are currently on a domain locale
-          // so that locale links are still visitable in development/preview envs
-
-          var localeDomain =
-            router &&
-            router.isLocaleDomain &&
-            (0, _router.getDomainLocale)(
-              as,
-              curLocale,
-              router && router.locales,
-              router && router.domainLocales
-            );
-          childProps.href =
-            localeDomain ||
-            (0, _router.addBasePath)(
-              (0, _router.addLocale)(
+          if (
+            props.passHref ||
+            (child.type === "a" && !("href" in child.props))
+          ) {
+            var curLocale =
+              typeof locale !== "undefined" ? locale : router && router.locale; // we only render domain locales if we are currently on a domain locale
+            // so that locale links are still visitable in development/preview envs
+
+            var localeDomain =
+              router &&
+              router.isLocaleDomain &&
+              (0, _router.getDomainLocale)(
                 as,
                 curLocale,
-                router && router.defaultLocale
-              )
-            );
-        }
-
-        return /*#__PURE__*/ _react["default"].cloneElement(child, childProps);
-      }
+                router && router.locales,
+                router && router.domainLocales
+              );
+            childProps.href =
+              localeDomain ||
+              (0, _router.addBasePath)(
+                (0, _router.addLocale)(
+                  as,
+                  curLocale,
+                  router && router.defaultLocale
+                )
+              );
+          }
 
-      var _default = Link;
-      exports["default"] = _default;
+          return /*#__PURE__*/ _react["default"].cloneElement(
+            child,
+            childProps
+          );
+        }
 
-      /***/
-    },
+        var _default = Link;
+        exports["default"] = _default;
 
-    /***/ vNVm: /***/ function(module, exports, __webpack_require__) {
-      "use strict";
+        /***/
+      },
 
-      var _slicedToArray = __webpack_require__("J4zp");
+      /***/ vNVm: /***/ function(module, exports, __webpack_require__) {
+        "use strict";
 
-      exports.__esModule = true;
-      exports.useIntersection = useIntersection;
+        var _slicedToArray = __webpack_require__("J4zp");
 
-      var _react = __webpack_require__("q1tI");
+        exports.__esModule = true;
+        exports.useIntersection = useIntersection;
 
-      var _requestIdleCallback = __webpack_require__("0G5g");
+        var _react = __webpack_require__("q1tI");
 
-      var hasIntersectionObserver = typeof IntersectionObserver !== "undefined";
+        var _requestIdleCallback = __webpack_require__("0G5g");
 
-      function useIntersection(_ref) {
-        var rootMargin = _ref.rootMargin,
-          disabled = _ref.disabled;
-        var isDisabled = disabled || !hasIntersectionObserver;
-        var unobserve = (0, _react.useRef)();
+        var hasIntersectionObserver =
+          typeof IntersectionObserver !== "undefined";
 
-        var _ref2 = (0, _react.useState)(false),
-          _ref3 = _slicedToArray(_ref2, 2),
-          visible = _ref3[0],
-          setVisible = _ref3[1];
+        function useIntersection(_ref) {
+          var rootMargin = _ref.rootMargin,
+            disabled = _ref.disabled;
+          var isDisabled = disabled || !hasIntersectionObserver;
+          var unobserve = (0, _react.useRef)();
 
-        var setRef = (0, _react.useCallback)(
-          function(el) {
-            if (unobserve.current) {
-              unobserve.current();
-              unobserve.current = undefined;
-            }
+          var _ref2 = (0, _react.useState)(false),
+            _ref3 = _slicedToArray(_ref2, 2),
+            visible = _ref3[0]
Post job cleanup.
[command]/usr/bin/git version
git version 2.30.1
[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: 0328add22fbf78f6f649542de166decce4b88b47

@ijjk
Copy link
Member

ijjk commented Mar 16, 2021

Failing test suites

Commit: e3b7074

test/integration/build-output/test/index.test.js

  • Build Output > Basic Application Output > should not deviate from snapshot
Expand output

● Build Output › Basic Application Output › should not deviate from snapshot

expect(received).toBeCloseTo(expected, precision)

Expected: 64.3
Received: 64.4

Expected precision:    1
Expected difference: < 0.05
Received difference:   0.10000000000000853

  105 |       expect(err404FirstLoad.endsWith('kB')).toBe(true)
  106 | 
> 107 |       expect(parseFloat(sharedByAll)).toBeCloseTo(64.3, 1)
      |                                       ^
  108 |       expect(sharedByAll.endsWith('kB')).toBe(true)
  109 | 
  110 |       if (_appSize.endsWith('kB')) {

  at Object.<anonymous> (integration/build-output/test/index.test.js:107:39)

@ijjk
Copy link
Member

ijjk commented Mar 16, 2021

Stats from current PR

Default Server Mode (Increase detected ⚠️)
General Overall increase ⚠️
vercel/next.js canary vercel/next.js bugfix/webpack-out-of-output-path Change
buildDuration 13.7s 13.9s ⚠️ +137ms
nodeModulesSize 42.8 MB 42.8 MB ⚠️ +30.2 kB
Page Load Tests Overall increase ✓
vercel/next.js canary vercel/next.js bugfix/webpack-out-of-output-path Change
/ failed reqs 0 0
/ total time (seconds) 2.522 2.546 ⚠️ +0.02
/ avg req/sec 991.34 982 ⚠️ -9.34
/error-in-render failed reqs 0 0
/error-in-render total time (seconds) 1.85 1.83 -0.02
/error-in-render avg req/sec 1351.15 1365.83 +14.68
Client Bundles (main, webpack, commons) Overall increase ⚠️
vercel/next.js canary vercel/next.js bugfix/webpack-out-of-output-path Change
677f882d2ed8..a2e7.js gzip 13.4 kB 13.4 kB
framework.HASH.js gzip 39 kB 39 kB
main-HASH.js gzip 7.14 kB 7.14 kB ⚠️ +2 B
webpack-HASH.js gzip 751 B 751 B
Overall change 60.3 kB 60.3 kB ⚠️ +2 B
Legacy Client Bundles (polyfills) Overall increase ⚠️
vercel/next.js canary vercel/next.js bugfix/webpack-out-of-output-path Change
polyfills-HASH.js gzip 31.3 kB 31.3 kB ⚠️ +2 B
Overall change 31.3 kB 31.3 kB ⚠️ +2 B
Client Pages Overall increase ⚠️
vercel/next.js canary vercel/next.js bugfix/webpack-out-of-output-path Change
_app-fde3324..9dd1.js gzip 1.28 kB 1.28 kB ⚠️ +1 B
_error-af59f..582f.js gzip 3.46 kB 3.46 kB ⚠️ +2 B
amp-9716187d..0aa8.js gzip 536 B 538 B ⚠️ +2 B
hooks-107e90..74c7.js gzip 888 B 889 B ⚠️ +1 B
index-ac435c..ecf2.js gzip 227 B 229 B ⚠️ +2 B
link-e6cee42..49eb.js gzip 1.64 kB 1.64 kB ⚠️ +2 B
routerDirect..dc9d.js gzip 303 B 304 B ⚠️ +1 B
withRouter-6..0e02.js gzip 302 B 304 B ⚠️ +2 B
Overall change 8.64 kB 8.65 kB ⚠️ +13 B
Client Build Manifests
vercel/next.js canary vercel/next.js bugfix/webpack-out-of-output-path Change
_buildManifest.js gzip 346 B 346 B
Overall change 346 B 346 B
Rendered Page Sizes Overall decrease ✓
vercel/next.js canary vercel/next.js bugfix/webpack-out-of-output-path Change
index.html gzip 614 B 614 B
link.html gzip 621 B 620 B -1 B
withRouter.html gzip 609 B 608 B -1 B
Overall change 1.84 kB 1.84 kB -2 B

Diffs

Diff for _app-a24430c..ae4b780ba.js
@@ -1,321 +1,327 @@
-_N_E = (window["webpackJsonp_N_E"] = window["webpackJsonp_N_E"] || []).push([
-  [4],
-  {
-    /***/ 0: /***/ function(module, exports, __webpack_require__) {
-      __webpack_require__("e9+W");
-      module.exports = __webpack_require__("nOHt");
-
-      /***/
-    },
-
-    /***/ "7W2i": /***/ function(module, exports, __webpack_require__) {
-      var setPrototypeOf = __webpack_require__("SksO");
+var _N_E = (window["webpackJsonp_N_E"] = window["webpackJsonp_N_E"] || []).push(
+  [
+    [4],
+    {
+      /***/ 0: /***/ function(module, exports, __webpack_require__) {
+        __webpack_require__("e9+W");
+        module.exports = __webpack_require__("nOHt");
+
+        /***/
+      },
+
+      /***/ "7W2i": /***/ function(module, exports, __webpack_require__) {
+        var setPrototypeOf = __webpack_require__("SksO");
+
+        function _inherits(subClass, superClass) {
+          if (typeof superClass !== "function" && superClass !== null) {
+            throw new TypeError(
+              "Super expression must either be null or a function"
+            );
+          }
 
-      function _inherits(subClass, superClass) {
-        if (typeof superClass !== "function" && superClass !== null) {
-          throw new TypeError(
-            "Super expression must either be null or a function"
+          subClass.prototype = Object.create(
+            superClass && superClass.prototype,
+            {
+              constructor: {
+                value: subClass,
+                writable: true,
+                configurable: true
+              }
+            }
           );
+          if (superClass) setPrototypeOf(subClass, superClass);
         }
 
-        subClass.prototype = Object.create(superClass && superClass.prototype, {
-          constructor: {
-            value: subClass,
-            writable: true,
-            configurable: true
-          }
-        });
-        if (superClass) setPrototypeOf(subClass, superClass);
-      }
+        module.exports = _inherits;
 
-      module.exports = _inherits;
+        /***/
+      },
 
-      /***/
-    },
+      /***/ B5Ud: /***/ function(module, exports, __webpack_require__) {
+        "use strict";
 
-    /***/ B5Ud: /***/ function(module, exports, __webpack_require__) {
-      "use strict";
+        var _regeneratorRuntime = __webpack_require__("o0o1");
 
-      var _regeneratorRuntime = __webpack_require__("o0o1");
+        var _classCallCheck = __webpack_require__("lwsE");
 
-      var _classCallCheck = __webpack_require__("lwsE");
+        var _createClass = __webpack_require__("W8MJ");
 
-      var _createClass = __webpack_require__("W8MJ");
+        var _inherits = __webpack_require__("7W2i");
 
-      var _inherits = __webpack_require__("7W2i");
+        var _possibleConstructorReturn = __webpack_require__("a1gu");
 
-      var _possibleConstructorReturn = __webpack_require__("a1gu");
+        var _getPrototypeOf = __webpack_require__("Nsbk");
 
-      var _getPrototypeOf = __webpack_require__("Nsbk");
+        var _asyncToGenerator = __webpack_require__("yXPU");
 
-      var _asyncToGenerator = __webpack_require__("yXPU");
+        function _createSuper(Derived) {
+          var hasNativeReflectConstruct = _isNativeReflectConstruct();
+          return function _createSuperInternal() {
+            var Super = _getPrototypeOf(Derived),
+              result;
+            if (hasNativeReflectConstruct) {
+              var NewTarget = _getPrototypeOf(this).constructor;
+              result = Reflect.construct(Super, arguments, NewTarget);
+            } else {
+              result = Super.apply(this, arguments);
+            }
+            return _possibleConstructorReturn(this, result);
+          };
+        }
 
-      function _createSuper(Derived) {
-        var hasNativeReflectConstruct = _isNativeReflectConstruct();
-        return function _createSuperInternal() {
-          var Super = _getPrototypeOf(Derived),
-            result;
-          if (hasNativeReflectConstruct) {
-            var NewTarget = _getPrototypeOf(this).constructor;
-            result = Reflect.construct(Super, arguments, NewTarget);
-          } else {
-            result = Super.apply(this, arguments);
+        function _isNativeReflectConstruct() {
+          if (typeof Reflect === "undefined" || !Reflect.construct)
+            return false;
+          if (Reflect.construct.sham) return false;
+          if (typeof Proxy === "function") return true;
+          try {
+            Date.prototype.toString.call(
+              Reflect.construct(Date, [], function() {})
+            );
+            return true;
+          } catch (e) {
+            return false;
           }
-          return _possibleConstructorReturn(this, result);
-        };
-      }
-
-      function _isNativeReflectConstruct() {
-        if (typeof Reflect === "undefined" || !Reflect.construct) return false;
-        if (Reflect.construct.sham) return false;
-        if (typeof Proxy === "function") return true;
-        try {
-          Date.prototype.toString.call(
-            Reflect.construct(Date, [], function() {})
-          );
-          return true;
-        } catch (e) {
-          return false;
         }
-      }
 
-      var _interopRequireDefault = __webpack_require__("TqRt");
+        var _interopRequireDefault = __webpack_require__("TqRt");
 
-      exports.__esModule = true;
-      exports.Container = Container;
-      exports.createUrl = createUrl;
-      exports["default"] = void 0;
+        exports.__esModule = true;
+        exports.Container = Container;
+        exports.createUrl = createUrl;
+        exports["default"] = void 0;
 
-      var _react = _interopRequireDefault(__webpack_require__("q1tI"));
+        var _react = _interopRequireDefault(__webpack_require__("q1tI"));
 
-      var _utils = __webpack_require__("g/15");
+        var _utils = __webpack_require__("g/15");
 
-      exports.AppInitialProps = _utils.AppInitialProps;
-      exports.NextWebVitalsMetric = _utils.NextWebVitalsMetric;
-      /**
-       * `App` component is used for initialize of pages. It allows for overwriting and full control of the `page` initialization.
-       * This allows for keeping state between navigation, custom error handling, injecting additional data.
-       */
+        exports.AppInitialProps = _utils.AppInitialProps;
+        exports.NextWebVitalsMetric = _utils.NextWebVitalsMetric;
+        /**
+         * `App` component is used for initialize of pages. It allows for overwriting and full control of the `page` initialization.
+         * This allows for keeping state between navigation, custom error handling, injecting additional data.
+         */
 
-      function appGetInitialProps(_x) {
-        return _appGetInitialProps.apply(this, arguments);
-      }
+        function appGetInitialProps(_x) {
+          return _appGetInitialProps.apply(this, arguments);
+        }
 
-      function _appGetInitialProps() {
-        _appGetInitialProps = _asyncToGenerator(
-          /*#__PURE__*/ _regeneratorRuntime.mark(function _callee(_ref) {
-            var Component, ctx, pageProps;
-            return _regeneratorRuntime.wrap(function _callee$(_context) {
-              while (1) {
-                switch ((_context.prev = _context.next)) {
-                  case 0:
-                    (Component = _ref.Component), (ctx = _ref.ctx);
-                    _context.next = 3;
-                    return (0, _utils.loadGetInitialProps)(Component, ctx);
-
-                  case 3:
-                    pageProps = _context.sent;
-                    return _context.abrupt("return", {
-                      pageProps: pageProps
-                    });
-
-                  case 5:
-                  case "end":
-                    return _context.stop();
+        function _appGetInitialProps() {
+          _appGetInitialProps = _asyncToGenerator(
+            /*#__PURE__*/ _regeneratorRuntime.mark(function _callee(_ref) {
+              var Component, ctx, pageProps;
+              return _regeneratorRuntime.wrap(function _callee$(_context) {
+                while (1) {
+                  switch ((_context.prev = _context.next)) {
+                    case 0:
+                      (Component = _ref.Component), (ctx = _ref.ctx);
+                      _context.next = 3;
+                      return (0, _utils.loadGetInitialProps)(Component, ctx);
+
+                    case 3:
+                      pageProps = _context.sent;
+                      return _context.abrupt("return", {
+                        pageProps: pageProps
+                      });
+
+                    case 5:
+                    case "end":
+                      return _context.stop();
+                  }
                 }
-              }
-            }, _callee);
-          })
-        );
-        return _appGetInitialProps.apply(this, arguments);
-      }
-
-      var App = /*#__PURE__*/ (function(_react$default$Compon) {
-        _inherits(App, _react$default$Compon);
+              }, _callee);
+            })
+          );
+          return _appGetInitialProps.apply(this, arguments);
+        }
 
-        var _super = _createSuper(App);
+        var App = /*#__PURE__*/ (function(_react$default$Compon) {
+          _inherits(App, _react$default$Compon);
 
-        function App() {
-          _classCallCheck(this, App);
+          var _super = _createSuper(App);
 
-          return _super.apply(this, arguments);
-        }
+          function App() {
+            _classCallCheck(this, App);
 
-        _createClass(App, [
-          {
-            key: "componentDidCatch",
-            // Kept here for backwards compatibility.
-            // When someone ended App they could call `super.componentDidCatch`.
-            // @deprecated This method is no longer needed. Errors are caught at the top level
-            value: function componentDidCatch(error, _errorInfo) {
-              throw error;
-            }
-          },
-          {
-            key: "render",
-            value: function render() {
-              var _this$props = this.props,
-                router = _this$props.router,
-                Component = _this$props.Component,
-                pageProps = _this$props.pageProps,
-                __N_SSG = _this$props.__N_SSG,
-                __N_SSP = _this$props.__N_SSP;
-              return /*#__PURE__*/ _react["default"].createElement(
-                Component,
-                Object.assign(
-                  {},
-                  pageProps, // we don't add the legacy URL prop if it's using non-legacy
-                  // methods like getStaticProps and getServerSideProps
-                  !(__N_SSG || __N_SSP)
-                    ? {
-                        url: createUrl(router)
-                      }
-                    : {}
-                )
-              );
-            }
+            return _super.apply(this, arguments);
           }
-        ]);
 
-        return App;
-      })(_react["default"].Component);
+          _createClass(App, [
+            {
+              key: "componentDidCatch",
+              // Kept here for backwards compatibility.
+              // When someone ended App they could call `super.componentDidCatch`.
+              // @deprecated This method is no longer needed. Errors are caught at the top level
+              value: function componentDidCatch(error, _errorInfo) {
+                throw error;
+              }
+            },
+            {
+              key: "render",
+              value: function render() {
+                var _this$props = this.props,
+                  router = _this$props.router,
+                  Component = _this$props.Component,
+                  pageProps = _this$props.pageProps,
+                  __N_SSG = _this$props.__N_SSG,
+                  __N_SSP = _this$props.__N_SSP;
+                return /*#__PURE__*/ _react["default"].createElement(
+                  Component,
+                  Object.assign(
+                    {},
+                    pageProps, // we don't add the legacy URL prop if it's using non-legacy
+                    // methods like getStaticProps and getServerSideProps
+                    !(__N_SSG || __N_SSP)
+                      ? {
+                          url: createUrl(router)
+                        }
+                      : {}
+                  )
+                );
+              }
+            }
+          ]);
 
-      exports["default"] = App;
-      App.origGetInitialProps = appGetInitialProps;
-      App.getInitialProps = appGetInitialProps;
-      var warnContainer;
-      var warnUrl;
+          return App;
+        })(_react["default"].Component);
 
-      if (false) {
-      } // @deprecated noop for now until removal
+        exports["default"] = App;
+        App.origGetInitialProps = appGetInitialProps;
+        App.getInitialProps = appGetInitialProps;
+        var warnContainer;
+        var warnUrl;
 
-      function Container(p) {
         if (false) {
+        } // @deprecated noop for now until removal
+
+        function Container(p) {
+          if (false) {
+          }
+          return p.children;
         }
-        return p.children;
-      }
 
-      function createUrl(router) {
-        // This is to make sure we don't references the router object at call time
-        var pathname = router.pathname,
-          asPath = router.asPath,
-          query = router.query;
-        return {
-          get query() {
-            if (false) {
-            }
-            return query;
-          },
+        function createUrl(router) {
+          // This is to make sure we don't references the router object at call time
+          var pathname = router.pathname,
+            asPath = router.asPath,
+            query = router.query;
+          return {
+            get query() {
+              if (false) {
+              }
+              return query;
+            },
 
-          get pathname() {
-            if (false) {
-            }
-            return pathname;
-          },
+            get pathname() {
+              if (false) {
+              }
+              return pathname;
+            },
 
-          get asPath() {
-            if (false) {
-            }
-            return asPath;
-          },
+            get asPath() {
+              if (false) {
+              }
+              return asPath;
+            },
 
-          back: function back() {
-            if (false) {
-            }
-            router.back();
-          },
-          push: function push(url, as) {
-            if (false) {
-            }
-            return router.push(url, as);
-          },
-          pushTo: function pushTo(href, as) {
-            if (false) {
-            }
-            var pushRoute = as ? href : "";
-            var pushUrl = as || href;
-            return router.push(pushRoute, pushUrl);
-          },
-          replace: function replace(url, as) {
-            if (false) {
-            }
-            return router.replace(url, as);
-          },
-          replaceTo: function replaceTo(href, as) {
-            if (false) {
+            back: function back() {
+              if (false) {
+              }
+              router.back();
+            },
+            push: function push(url, as) {
+              if (false) {
+              }
+              return router.push(url, as);
+            },
+            pushTo: function pushTo(href, as) {
+              if (false) {
+              }
+              var pushRoute = as ? href : "";
+              var pushUrl = as || href;
+              return router.push(pushRoute, pushUrl);
+            },
+            replace: function replace(url, as) {
+              if (false) {
+              }
+              return router.replace(url, as);
+            },
+            replaceTo: function replaceTo(href, as) {
+              if (false) {
+              }
+              var replaceRoute = as ? href : "";
+              var replaceUrl = as || href;
+              return router.replace(replaceRoute, replaceUrl);
             }
-            var replaceRoute = as ? href : "";
-            var replaceUrl = as || href;
-            return router.replace(replaceRoute, replaceUrl);
-          }
-        };
-      }
+          };
+        }
 
-      /***/
-    },
+        /***/
+      },
+
+      /***/ Nsbk: /***/ function(module, exports) {
+        function _getPrototypeOf(o) {
+          module.exports = _getPrototypeOf = Object.setPrototypeOf
+            ? Object.getPrototypeOf
+            : function _getPrototypeOf(o) {
+                return o.__proto__ || Object.getPrototypeOf(o);
+              };
+          return _getPrototypeOf(o);
+        }
 
-    /***/ Nsbk: /***/ function(module, exports) {
-      function _getPrototypeOf(o) {
-        module.exports = _getPrototypeOf = Object.setPrototypeOf
-          ? Object.getPrototypeOf
-          : function _getPrototypeOf(o) {
-              return o.__proto__ || Object.getPrototypeOf(o);
-            };
-        return _getPrototypeOf(o);
-      }
+        module.exports = _getPrototypeOf;
 
-      module.exports = _getPrototypeOf;
+        /***/
+      },
 
-      /***/
-    },
+      /***/ PJYZ: /***/ function(module, exports) {
+        function _assertThisInitialized(self) {
+          if (self === void 0) {
+            throw new ReferenceError(
+              "this hasn't been initialised - super() hasn't been called"
+            );
+          }
 
-    /***/ PJYZ: /***/ function(module, exports) {
-      function _assertThisInitialized(self) {
-        if (self === void 0) {
-          throw new ReferenceError(
-            "this hasn't been initialised - super() hasn't been called"
-          );
+          return self;
         }
 
-        return self;
-      }
+        module.exports = _assertThisInitialized;
 
-      module.exports = _assertThisInitialized;
+        /***/
+      },
 
-      /***/
-    },
+      /***/ a1gu: /***/ function(module, exports, __webpack_require__) {
+        var _typeof = __webpack_require__("cDf5");
 
-    /***/ a1gu: /***/ function(module, exports, __webpack_require__) {
-      var _typeof = __webpack_require__("cDf5");
+        var assertThisInitialized = __webpack_require__("PJYZ");
 
-      var assertThisInitialized = __webpack_require__("PJYZ");
+        function _possibleConstructorReturn(self, call) {
+          if (
+            call &&
+            (_typeof(call) === "object" || typeof call === "function")
+          ) {
+            return call;
+          }
 
-      function _possibleConstructorReturn(self, call) {
-        if (
-          call &&
-          (_typeof(call) === "object" || typeof call === "function")
-        ) {
-          return call;
+          return assertThisInitialized(self);
         }
 
-        return assertThisInitialized(self);
-      }
-
-      module.exports = _possibleConstructorReturn;
+        module.exports = _possibleConstructorReturn;
 
-      /***/
-    },
+        /***/
+      },
 
-    /***/ "e9+W": /***/ function(module, exports, __webpack_require__) {
-      (window.__NEXT_P = window.__NEXT_P || []).push([
-        "/_app",
-        function() {
-          return __webpack_require__("B5Ud");
-        }
-      ]);
+      /***/ "e9+W": /***/ function(module, exports, __webpack_require__) {
+        (window.__NEXT_P = window.__NEXT_P || []).push([
+          "/_app",
+          function() {
+            return __webpack_require__("B5Ud");
+          }
+        ]);
 
-      /***/
-    }
-  },
-  [[0, 0, 1, 2]]
-]);
+        /***/
+      }
+    },
+    [[0, 0, 1, 2]]
+  ]
+);
Diff for _error-6fc12..2417101e6.js

Diff too large to display

Diff for amp-27f75ad1..0c5cdedd1.js
@@ -1,142 +1,144 @@
-_N_E = (window["webpackJsonp_N_E"] = window["webpackJsonp_N_E"] || []).push([
-  [6],
-  {
-    /***/ "/0+H": /***/ function(module, exports, __webpack_require__) {
-      "use strict";
-
-      exports.__esModule = true;
-      exports.isInAmpMode = isInAmpMode;
-      exports.useAmp = useAmp;
-
-      var _react = _interopRequireDefault(__webpack_require__("q1tI"));
-
-      var _ampContext = __webpack_require__("lwAK");
-
-      function _interopRequireDefault(obj) {
-        return obj && obj.__esModule
-          ? obj
-          : {
-              default: obj
-            };
-      }
+var _N_E = (window["webpackJsonp_N_E"] = window["webpackJsonp_N_E"] || []).push(
+  [
+    [6],
+    {
+      /***/ "/0+H": /***/ function(module, exports, __webpack_require__) {
+        "use strict";
+
+        exports.__esModule = true;
+        exports.isInAmpMode = isInAmpMode;
+        exports.useAmp = useAmp;
+
+        var _react = _interopRequireDefault(__webpack_require__("q1tI"));
+
+        var _ampContext = __webpack_require__("lwAK");
+
+        function _interopRequireDefault(obj) {
+          return obj && obj.__esModule
+            ? obj
+            : {
+                default: obj
+              };
+        }
 
-      function isInAmpMode() {
-        var _ref =
-            arguments.length > 0 && arguments[0] !== undefined
-              ? arguments[0]
-              : {},
-          _ref$ampFirst = _ref.ampFirst,
-          ampFirst = _ref$ampFirst === void 0 ? false : _ref$ampFirst,
-          _ref$hybrid = _ref.hybrid,
-          hybrid = _ref$hybrid === void 0 ? false : _ref$hybrid,
-          _ref$hasQuery = _ref.hasQuery,
-          hasQuery = _ref$hasQuery === void 0 ? false : _ref$hasQuery;
-
-        return ampFirst || (hybrid && hasQuery);
-      }
+        function isInAmpMode() {
+          var _ref =
+              arguments.length > 0 && arguments[0] !== undefined
+                ? arguments[0]
+                : {},
+            _ref$ampFirst = _ref.ampFirst,
+            ampFirst = _ref$ampFirst === void 0 ? false : _ref$ampFirst,
+            _ref$hybrid = _ref.hybrid,
+            hybrid = _ref$hybrid === void 0 ? false : _ref$hybrid,
+            _ref$hasQuery = _ref.hasQuery,
+            hasQuery = _ref$hasQuery === void 0 ? false : _ref$hasQuery;
+
+          return ampFirst || (hybrid && hasQuery);
+        }
 
-      function useAmp() {
-        // Don't assign the context value to a variable to save bytes
-        return isInAmpMode(
-          _react["default"].useContext(_ampContext.AmpStateContext)
-        );
-      }
+        function useAmp() {
+          // Don't assign the context value to a variable to save bytes
+          return isInAmpMode(
+            _react["default"].useContext(_ampContext.AmpStateContext)
+          );
+        }
 
-      /***/
-    },
+        /***/
+      },
 
-    /***/ JjeS: /***/ function(module, exports, __webpack_require__) {
-      module.exports = __webpack_require__("/0+H");
+      /***/ JjeS: /***/ function(module, exports, __webpack_require__) {
+        module.exports = __webpack_require__("/0+H");
 
-      /***/
-    },
+        /***/
+      },
 
-    /***/ Q6ik: /***/ function(module, exports, __webpack_require__) {
-      (window.__NEXT_P = window.__NEXT_P || []).push([
-        "/amp",
-        function() {
-          return __webpack_require__("rsBd");
-        }
-      ]);
+      /***/ Q6ik: /***/ function(module, exports, __webpack_require__) {
+        (window.__NEXT_P = window.__NEXT_P || []).push([
+          "/amp",
+          function() {
+            return __webpack_require__("rsBd");
+          }
+        ]);
 
-      /***/
-    },
+        /***/
+      },
 
-    /***/ Qetd: /***/ function(module, exports, __webpack_require__) {
-      "use strict";
-      var assign = Object.assign.bind(Object);
-      module.exports = assign;
-      module.exports.default = module.exports;
-      //# sourceMappingURL=object-assign.js.map
+      /***/ Qetd: /***/ function(module, exports, __webpack_require__) {
+        "use strict";
+        var assign = Object.assign.bind(Object);
+        module.exports = assign;
+        module.exports.default = module.exports;
+        //# sourceMappingURL=object-assign.js.map
 
-      /***/
-    },
+        /***/
+      },
 
-    /***/ lwAK: /***/ function(module, exports, __webpack_require__) {
-      "use strict";
+      /***/ lwAK: /***/ function(module, exports, __webpack_require__) {
+        "use strict";
 
-      exports.__esModule = true;
-      exports.AmpStateContext = void 0;
+        exports.__esModule = true;
+        exports.AmpStateContext = void 0;
 
-      var _react = _interopRequireDefault(__webpack_require__("q1tI"));
+        var _react = _interopRequireDefault(__webpack_require__("q1tI"));
 
-      function _interopRequireDefault(obj) {
-        return obj && obj.__esModule
-          ? obj
-          : {
-              default: obj
-            };
-      }
+        function _interopRequireDefault(obj) {
+          return obj && obj.__esModule
+            ? obj
+            : {
+                default: obj
+              };
+        }
 
-      var AmpStateContext = /*#__PURE__*/ _react["default"].createContext({});
+        var AmpStateContext = /*#__PURE__*/ _react["default"].createContext({});
 
-      exports.AmpStateContext = AmpStateContext;
+        exports.AmpStateContext = AmpStateContext;
 
-      if (false) {
-      }
+        if (false) {
+        }
 
-      /***/
-    },
+        /***/
+      },
 
-    /***/ rsBd: /***/ function(
-      module,
-      __webpack_exports__,
-      __webpack_require__
-    ) {
-      "use strict";
-      __webpack_require__.r(__webpack_exports__);
-      /* harmony export (binding) */ __webpack_require__.d(
+      /***/ rsBd: /***/ function(
+        module,
         __webpack_exports__,
-        "config",
-        function() {
-          return config;
-        }
-      );
-      /* harmony export (binding) */ __webpack_require__.d(
-        __webpack_exports__,
-        "default",
-        function() {
-          return Amp;
+        __webpack_require__
+      ) {
+        "use strict";
+        __webpack_require__.r(__webpack_exports__);
+        /* harmony export (binding) */ __webpack_require__.d(
+          __webpack_exports__,
+          "config",
+          function() {
+            return config;
+          }
+        );
+        /* harmony export (binding) */ __webpack_require__.d(
+          __webpack_exports__,
+          "default",
+          function() {
+            return Amp;
+          }
+        );
+        /* harmony import */ var next_amp__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(
+          "JjeS"
+        );
+        /* harmony import */ var next_amp__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/ __webpack_require__.n(
+          next_amp__WEBPACK_IMPORTED_MODULE_0__
+        );
+
+        var config = {
+          amp: "hybrid"
+        };
+        function Amp(props) {
+          return Object(next_amp__WEBPACK_IMPORTED_MODULE_0__["useAmp"])()
+            ? "AMP mode"
+            : "normal mode";
         }
-      );
-      /* harmony import */ var next_amp__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(
-        "JjeS"
-      );
-      /* harmony import */ var next_amp__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/ __webpack_require__.n(
-        next_amp__WEBPACK_IMPORTED_MODULE_0__
-      );
-
-      var config = {
-        amp: "hybrid"
-      };
-      function Amp(props) {
-        return Object(next_amp__WEBPACK_IMPORTED_MODULE_0__["useAmp"])()
-          ? "AMP mode"
-          : "normal mode";
-      }
 
-      /***/
-    }
-  },
-  [["Q6ik", 0, 1]]
-]);
+        /***/
+      }
+    },
+    [["Q6ik", 0, 1]]
+  ]
+);
Diff for hooks-1c83fd..614f18817.js
@@ -1,168 +1,173 @@
-_N_E = (window["webpackJsonp_N_E"] = window["webpackJsonp_N_E"] || []).push([
-  [7],
-  {
-    /***/ "+MDD": /***/ function(
-      module,
-      __webpack_exports__,
-      __webpack_require__
-    ) {
-      "use strict";
-      // ESM COMPAT FLAG
-      __webpack_require__.r(__webpack_exports__);
-
-      // CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js
-      function _arrayWithHoles(arr) {
-        if (Array.isArray(arr)) return arr;
-      }
-      // CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js
-      function _iterableToArrayLimit(arr, i) {
-        if (typeof Symbol === "undefined" || !(Symbol.iterator in Object(arr)))
-          return;
-        var _arr = [];
-        var _n = true;
-        var _d = false;
-        var _e = undefined;
-
-        try {
-          for (
-            var _i = arr[Symbol.iterator](), _s;
-            !(_n = (_s = _i.next()).done);
-            _n = true
-          ) {
-            _arr.push(_s.value);
-
-            if (i && _arr.length === i) break;
-          }
-        } catch (err) {
-          _d = true;
-          _e = err;
-        } finally {
+var _N_E = (window["webpackJsonp_N_E"] = window["webpackJsonp_N_E"] || []).push(
+  [
+    [7],
+    {
+      /***/ "+MDD": /***/ function(
+        module,
+        __webpack_exports__,
+        __webpack_require__
+      ) {
+        "use strict";
+        // ESM COMPAT FLAG
+        __webpack_require__.r(__webpack_exports__);
+
+        // CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js
+        function _arrayWithHoles(arr) {
+          if (Array.isArray(arr)) return arr;
+        }
+        // CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js
+        function _iterableToArrayLimit(arr, i) {
+          if (
+            typeof Symbol === "undefined" ||
+            !(Symbol.iterator in Object(arr))
+          )
+            return;
+          var _arr = [];
+          var _n = true;
+          var _d = false;
+          var _e = undefined;
+
           try {
-            if (!_n && _i["return"] != null) _i["return"]();
+            for (
+              var _i = arr[Symbol.iterator](), _s;
+              !(_n = (_s = _i.next()).done);
+              _n = true
+            ) {
+              _arr.push(_s.value);
+
+              if (i && _arr.length === i) break;
+            }
+          } catch (err) {
+            _d = true;
+            _e = err;
           } finally {
-            if (_d) throw _e;
+            try {
+              if (!_n && _i["return"] != null) _i["return"]();
+            } finally {
+              if (_d) throw _e;
+            }
           }
+
+          return _arr;
         }
+        // CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js
+        function _arrayLikeToArray(arr, len) {
+          if (len == null || len > arr.length) len = arr.length;
 
-        return _arr;
-      }
-      // CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js
-      function _arrayLikeToArray(arr, len) {
-        if (len == null || len > arr.length) len = arr.length;
+          for (var i = 0, arr2 = new Array(len); i < len; i++) {
+            arr2[i] = arr[i];
+          }
 
-        for (var i = 0, arr2 = new Array(len); i < len; i++) {
-          arr2[i] = arr[i];
+          return arr2;
         }
+        // CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js
+
+        function _unsupportedIterableToArray(o, minLen) {
+          if (!o) return;
+          if (typeof o === "string") return _arrayLikeToArray(o, minLen);
+          var n = Object.prototype.toString.call(o).slice(8, -1);
+          if (n === "Object" && o.constructor) n = o.constructor.name;
+          if (n === "Map" || n === "Set") return Array.from(o);
+          if (
+            n === "Arguments" ||
+            /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)
+          )
+            return _arrayLikeToArray(o, minLen);
+        }
+        // CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/nonIterableRest.js
+        function _nonIterableRest() {
+          throw new TypeError(
+            "Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."
+          );
+        }
+        // CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/slicedToArray.js
+
+        function _slicedToArray(arr, i) {
+          return (
+            _arrayWithHoles(arr) ||
+            _iterableToArrayLimit(arr, i) ||
+            _unsupportedIterableToArray(arr, i) ||
+            _nonIterableRest()
+          );
+        }
+        // EXTERNAL MODULE: ./node_modules/react/index.js
+        var react = __webpack_require__("q1tI");
+        var react_default = /*#__PURE__*/ __webpack_require__.n(react);
 
-        return arr2;
-      }
-      // CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js
-
-      function _unsupportedIterableToArray(o, minLen) {
-        if (!o) return;
-        if (typeof o === "string") return _arrayLikeToArray(o, minLen);
-        var n = Object.prototype.toString.call(o).slice(8, -1);
-        if (n === "Object" && o.constructor) n = o.constructor.name;
-        if (n === "Map" || n === "Set") return Array.from(o);
-        if (
-          n === "Arguments" ||
-          /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)
-        )
-          return _arrayLikeToArray(o, minLen);
-      }
-      // CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/nonIterableRest.js
-      function _nonIterableRest() {
-        throw new TypeError(
-          "Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."
-        );
-      }
-      // CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/slicedToArray.js
-
-      function _slicedToArray(arr, i) {
-        return (
-          _arrayWithHoles(arr) ||
-          _iterableToArrayLimit(arr, i) ||
-          _unsupportedIterableToArray(arr, i) ||
-          _nonIterableRest()
-        );
-      }
-      // EXTERNAL MODULE: ./node_modules/react/index.js
-      var react = __webpack_require__("q1tI");
-      var react_default = /*#__PURE__*/ __webpack_require__.n(react);
-
-      // CONCATENATED MODULE: ./pages/hooks.js
+        // CONCATENATED MODULE: ./pages/hooks.js
 
-      var __jsx = react_default.a.createElement;
+        var __jsx = react_default.a.createElement;
 
-      /* harmony default export */ var hooks = (__webpack_exports__[
-        "default"
-      ] = function() {
-        var _React$useState = react_default.a.useState(0),
-          _React$useState2 = _slicedToArray(_React$useState, 2),
-          clicks1 = _React$useState2[0],
-          setClicks1 = _React$useState2[1];
+        /* harmony default export */ var hooks = (__webpack_exports__[
+          "default"
+        ] = function() {
+          var _React$useState = react_default.a.useState(0),
+            _React$useState2 = _slicedToArray(_React$useState, 2),
+            clicks1 = _React$useState2[0],
+            setClicks1 = _React$useState2[1];
 
-        var _useState = Object(react["useState"])(0),
-          clicks2 = _useState[0],
-          setClicks2 = _useState[1];
+          var _useState = Object(react["useState"])(0),
+            clicks2 = _useState[0],
+            setClicks2 = _useState[1];
 
-        var doClick1 = react_default.a.useCallback(
-          function() {
-            setClicks1(clicks1 + 1);
-          },
-          [clicks1]
-        );
-        var doClick2 = Object(react["useCallback"])(
-          function() {
-            setClicks2(clicks2 + 1);
-          },
-          [clicks2]
-        );
-        return __jsx(
-          react_default.a.Fragment,
-          null,
-          __jsx("h3", null, "Clicks ", clicks1),
-          __jsx(
-            "button",
-            {
-              onClick: doClick1
+          var doClick1 = react_default.a.useCallback(
+            function() {
+              setClicks1(clicks1 + 1);
             },
-            "Click me"
-          ),
-          __jsx("h3", null, "Clicks ", clicks2),
-          __jsx(
-            "button",
-            {
-              onClick: doClick2
+            [clicks1]
+          );
+          var doClick2 = Object(react["useCallback"])(
+            function() {
+              setClicks2(clicks2 + 1);
             },
-            "Click me"
-          )
-        );
-      });
-
-      /***/
-    },
-
-    /***/ Qetd: /***/ function(module, exports, __webpack_require__) {
-      "use strict";
-      var assign = Object.assign.bind(Object);
-      module.exports = assign;
-      module.exports.default = module.exports;
-      //# sourceMappingURL=object-assign.js.map
+            [clicks2]
+          );
+          return __jsx(
+            react_default.a.Fragment,
+            null,
+            __jsx("h3", null, "Clicks ", clicks1),
+            __jsx(
+              "button",
+              {
+                onClick: doClick1
+              },
+              "Click me"
+            ),
+            __jsx("h3", null, "Clicks ", clicks2),
+            __jsx(
+              "button",
+              {
+                onClick: doClick2
+              },
+              "Click me"
+            )
+          );
+        });
+
+        /***/
+      },
+
+      /***/ Qetd: /***/ function(module, exports, __webpack_require__) {
+        "use strict";
+        var assign = Object.assign.bind(Object);
+        module.exports = assign;
+        module.exports.default = module.exports;
+        //# sourceMappingURL=object-assign.js.map
+
+        /***/
+      },
+
+      /***/ g1vQ: /***/ function(module, exports, __webpack_require__) {
+        (window.__NEXT_P = window.__NEXT_P || []).push([
+          "/hooks",
+          function() {
+            return __webpack_require__("+MDD");
+          }
+        ]);
 
-      /***/
+        /***/
+      }
     },
-
-    /***/ g1vQ: /***/ function(module, exports, __webpack_require__) {
-      (window.__NEXT_P = window.__NEXT_P || []).push([
-        "/hooks",
-        function() {
-          return __webpack_require__("+MDD");
-        }
-      ]);
-
-      /***/
-    }
-  },
-  [["g1vQ", 0, 1]]
-]);
+    [["g1vQ", 0, 1]]
+  ]
+);
Diff for index-b1738b..4aa373c84.js
@@ -1,36 +1,38 @@
-_N_E = (window["webpackJsonp_N_E"] = window["webpackJsonp_N_E"] || []).push([
-  [8],
-  {
-    /***/ RNiq: /***/ function(
-      module,
-      __webpack_exports__,
-      __webpack_require__
-    ) {
-      "use strict";
-      __webpack_require__.r(__webpack_exports__);
-      var Page = function Page() {
-        return "Hello world 👋";
-      };
+var _N_E = (window["webpackJsonp_N_E"] = window["webpackJsonp_N_E"] || []).push(
+  [
+    [8],
+    {
+      /***/ RNiq: /***/ function(
+        module,
+        __webpack_exports__,
+        __webpack_require__
+      ) {
+        "use strict";
+        __webpack_require__.r(__webpack_exports__);
+        var Page = function Page() {
+          return "Hello world 👋";
+        };
 
-      Page.getInitialProps = function() {
-        return {};
-      };
+        Page.getInitialProps = function() {
+          return {};
+        };
 
-      /* harmony default export */ __webpack_exports__["default"] = Page;
+        /* harmony default export */ __webpack_exports__["default"] = Page;
 
-      /***/
-    },
+        /***/
+      },
 
-    /***/ vlRD: /***/ function(module, exports, __webpack_require__) {
-      (window.__NEXT_P = window.__NEXT_P || []).push([
-        "/",
-        function() {
-          return __webpack_require__("RNiq");
-        }
-      ]);
+      /***/ vlRD: /***/ function(module, exports, __webpack_require__) {
+        (window.__NEXT_P = window.__NEXT_P || []).push([
+          "/",
+          function() {
+            return __webpack_require__("RNiq");
+          }
+        ]);
 
-      /***/
-    }
-  },
-  [["vlRD", 0]]
-]);
+        /***/
+      }
+    },
+    [["vlRD", 0]]
+  ]
+);
Diff for link-e82300e..385add1b5.js
@@ -1,436 +1,449 @@
-_N_E = (window["webpackJsonp_N_E"] = window["webpackJsonp_N_E"] || []).push([
-  [9],
-  {
-    /***/ ObF3: /***/ function(
-      module,
-      __webpack_exports__,
-      __webpack_require__
-    ) {
-      "use strict";
-      __webpack_require__.r(__webpack_exports__);
-      /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(
-        "q1tI"
-      );
-      /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/ __webpack_require__.n(
-        react__WEBPACK_IMPORTED_MODULE_0__
-      );
-      /* harmony import */ var next_link__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(
-        "YFqc"
-      );
-      /* harmony import */ var next_link__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/ __webpack_require__.n(
-        next_link__WEBPACK_IMPORTED_MODULE_1__
-      );
-
-      var __jsx = react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement;
-
-      function aLink(props) {
-        return __jsx(
-          "div",
-          null,
-          __jsx("h3", null, "A Link page!"),
-          __jsx(
-            next_link__WEBPACK_IMPORTED_MODULE_1___default.a,
-            {
-              href: "/"
-            },
-            "Go to /"
-          )
+var _N_E = (window["webpackJsonp_N_E"] = window["webpackJsonp_N_E"] || []).push(
+  [
+    [9],
+    {
+      /***/ ObF3: /***/ function(
+        module,
+        __webpack_exports__,
+        __webpack_require__
+      ) {
+        "use strict";
+        __webpack_require__.r(__webpack_exports__);
+        /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(
+          "q1tI"
+        );
+        /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/ __webpack_require__.n(
+          react__WEBPACK_IMPORTED_MODULE_0__
+        );
+        /* harmony import */ var next_link__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(
+          "YFqc"
+        );
+        /* harmony import */ var next_link__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/ __webpack_require__.n(
+          next_link__WEBPACK_IMPORTED_MODULE_1__
         );
-      }
 
-      aLink.getInitialProps = function() {
-        return {};
-      };
+        var __jsx = react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement;
 
-      /* harmony default export */ __webpack_exports__["default"] = aLink;
+        function aLink(props) {
+          return __jsx(
+            "div",
+            null,
+            __jsx("h3", null, "A Link page!"),
+            __jsx(
+              next_link__WEBPACK_IMPORTED_MODULE_1___default.a,
+              {
+                href: "/"
+              },
+              "Go to /"
+            )
+          );
+        }
 
-      /***/
-    },
+        aLink.getInitialProps = function() {
+          return {};
+        };
 
-    /***/ V8Sf: /***/ function(module, exports, __webpack_require__) {
-      (window.__NEXT_P = window.__NEXT_P || []).push([
-        "/link",
-        function() {
-          return __webpack_require__("ObF3");
-        }
-      ]);
+        /* harmony default export */ __webpack_exports__["default"] = aLink;
 
-      /***/
-    },
+        /***/
+      },
 
-    /***/ YFqc: /***/ function(module, exports, __webpack_require__) {
-      module.exports = __webpack_require__("cTJO");
+      /***/ V8Sf: /***/ function(module, exports, __webpack_require__) {
+        (window.__NEXT_P = window.__NEXT_P || []).push([
+          "/link",
+          function() {
+            return __webpack_require__("ObF3");
+          }
+        ]);
 
-      /***/
-    },
+        /***/
+      },
 
-    /***/ cTJO: /***/ function(module, exports, __webpack_require__) {
-      "use strict";
+      /***/ YFqc: /***/ function(module, exports, __webpack_require__) {
+        module.exports = __webpack_require__("cTJO");
 
-      var _slicedToArray = __webpack_require__("J4zp");
+        /***/
+      },
 
-      var _interopRequireWildcard = __webpack_require__("284h");
+      /***/ cTJO: /***/ function(module, exports, __webpack_require__) {
+        "use strict";
 
-      exports.__esModule = true;
-      exports["default"] = void 0;
+        var _slicedToArray = __webpack_require__("J4zp");
 
-      var _react = _interopRequireWildcard(__webpack_require__("q1tI"));
+        var _interopRequireWildcard = __webpack_require__("284h");
 
-      var _router = __webpack_require__("elyg");
+        exports.__esModule = true;
+        exports["default"] = void 0;
 
-      var _router2 = __webpack_require__("nOHt");
+        var _react = _interopRequireWildcard(__webpack_require__("q1tI"));
 
-      var _useIntersection = __webpack_require__("vNVm");
+        var _router = __webpack_require__("elyg");
 
-      var prefetched = {};
+        var _router2 = __webpack_require__("nOHt");
 
-      function prefetch(router, href, as, options) {
-        if (false || !router) return;
-        if (!(0, _router.isLocalURL)(href)) return; // Prefetch the JSON page if asked (only in the client)
-        // We need to handle a prefetch error here since we may be
-        // loading with priority which can reject but we don't
-        // want to force navigation since this is only a prefetch
+        var _useIntersection = __webpack_require__("vNVm");
 
-        router.prefetch(href, as, options)["catch"](function(err) {
-          if (false) {
-          }
-        });
-        var curLocale =
-          options && typeof options.locale !== "undefined"
-            ? options.locale
-            : router && router.locale; // Join on an invalid URI character
+        var prefetched = {};
 
-        prefetched[href + "%" + as + (curLocale ? "%" + curLocale : "")] = true;
-      }
+        function prefetch(router, href, as, options) {
+          if (false || !router) return;
+          if (!(0, _router.isLocalURL)(href)) return; // Prefetch the JSON page if asked (only in the client)
+          // We need to handle a prefetch error here since we may be
+          // loading with priority which can reject but we don't
+          // want to force navigation since this is only a prefetch
 
-      function isModifiedEvent(event) {
-        var target = event.currentTarget.target;
-        return (
-          (target && target !== "_self") ||
-          event.metaKey ||
-          event.ctrlKey ||
-          event.shiftKey ||
-          event.altKey || // triggers resource download
-          (event.nativeEvent && event.nativeEvent.which === 2)
-        );
-      }
+          router.prefetch(href, as, options)["catch"](function(err) {
+            if (false) {
+            }
+          });
+          var curLocale =
+            options && typeof options.locale !== "undefined"
+              ? options.locale
+              : router && router.locale; // Join on an invalid URI character
 
-      function linkClicked(
-        e,
-        router,
-        href,
-        as,
-        replace,
-        shallow,
-        scroll,
-        locale
-      ) {
-        var nodeName = e.currentTarget.nodeName;
+          prefetched[
+            href + "%" + as + (curLocale ? "%" + curLocale : "")
+          ] = true;
+        }
 
-        if (
-          nodeName === "A" &&
-          (isModifiedEvent(e) || !(0, _router.isLocalURL)(href))
-        ) {
-          // ignore click for browser’s default behavior
-          return;
+        function isModifiedEvent(event) {
+          var target = event.currentTarget.target;
+          return (
+            (target && target !== "_self") ||
+            event.metaKey ||
+            event.ctrlKey ||
+            event.shiftKey ||
+            event.altKey || // triggers resource download
+            (event.nativeEvent && event.nativeEvent.which === 2)
+          );
         }
 
-        e.preventDefault(); //  avoid scroll for urls with anchor refs
+        function linkClicked(
+          e,
+          router,
+          href,
+          as,
+          replace,
+          shallow,
+          scroll,
+          locale
+        ) {
+          var nodeName = e.currentTarget.nodeName;
+
+          if (
+            nodeName === "A" &&
+            (isModifiedEvent(e) || !(0, _router.isLocalURL)(href))
+          ) {
+            // ignore click for browser’s default behavior
+            return;
+          }
 
-        if (scroll == null) {
-          scroll = as.indexOf("#") < 0;
-        } // replace state instead of push if prop is present
+          e.preventDefault(); //  avoid scroll for urls with anchor refs
 
-        router[replace ? "replace" : "push"](href, as, {
-          shallow: shallow,
-          locale: locale,
-          scroll: scroll
-        });
-      }
+          if (scroll == null) {
+            scroll = as.indexOf("#") < 0;
+          } // replace state instead of push if prop is present
 
-      function Link(props) {
-        if (false) {
-          var hasWarned,
-            optionalProps,
-            optionalPropsGuard,
-            requiredProps,
-            requiredPropsGuard,
-            createPropError;
+          router[replace ? "replace" : "push"](href, as, {
+            shallow: shallow,
+            locale: locale,
+            scroll: scroll
+          });
         }
 
-        var p = props.prefetch !== false;
-        var router = (0, _router2.useRouter)();
-        var pathname = (router && router.pathname) || "/";
+        function Link(props) {
+          if (false) {
+            var hasWarned,
+              optionalProps,
+              optionalPropsGuard,
+              requiredProps,
+              requiredPropsGuard,
+              createPropError;
+          }
 
-        var _react$default$useMem = _react["default"].useMemo(
-            function() {
-              var _ref = (0, _router.resolveHref)(pathname, props.href, true),
-                _ref2 = _slicedToArray(_ref, 2),
-                resolvedHref = _ref2[0],
-                resolvedAs = _ref2[1];
-
-              return {
-                href: resolvedHref,
-                as: props.as
-                  ? (0, _router.resolveHref)(pathname, props.as)
-                  : resolvedAs || resolvedHref
-              };
-            },
-            [pathname, props.href, props.as]
-          ),
-          href = _react$default$useMem.href,
-          as = _react$default$useMem.as;
-
-        var children = props.children,
-          replace = props.replace,
-          shallow = props.shallow,
-          scroll = props.scroll,
-          locale = props.locale; // Deprecated. Warning shown by propType check. If the children provided is a string (<Link>example</Link>) we wrap it in an <a> tag
-
-        if (typeof children === "string") {
-          children = /*#__PURE__*/ _react["default"].createElement(
-            "a",
-            null,
-            children
-          );
-        } // This will return the first child, if multiple are provided it will throw an error
+          var p = props.prefetch !== false;
+          var router = (0, _router2.useRouter)();
+          var pathname = (router && router.pathname) || "/";
+
+          var _react$default$useMem = _react["default"].useMemo(
+              function() {
+                var _ref = (0, _router.resolveHref)(pathname, props.href, true),
+                  _ref2 = _slicedToArray(_ref, 2),
+                  resolvedHref = _ref2[0],
+                  resolvedAs = _ref2[1];
+
+                return {
+                  href: resolvedHref,
+                  as: props.as
+                    ? (0, _router.resolveHref)(pathname, props.as)
+                    : resolvedAs || resolvedHref
+                };
+              },
+              [pathname, props.href, props.as]
+            ),
+            href = _react$default$useMem.href,
+            as = _react$default$useMem.as;
+
+          var children = props.children,
+            replace = props.replace,
+            shallow = props.shallow,
+            scroll = props.scroll,
+            locale = props.locale; // Deprecated. Warning shown by propType check. If the children provided is a string (<Link>example</Link>) we wrap it in an <a> tag
+
+          if (typeof children === "string") {
+            children = /*#__PURE__*/ _react["default"].createElement(
+              "a",
+              null,
+              children
+            );
+          } // This will return the first child, if multiple are provided it will throw an error
 
-        var child = _react.Children.only(children);
+          var child = _react.Children.only(children);
 
-        var childRef = child && typeof child === "object" && child.ref;
+          var childRef = child && typeof child === "object" && child.ref;
 
-        var _ref3 = (0, _useIntersection.useIntersection)({
-            rootMargin: "200px"
-          }),
-          _ref4 = _slicedToArray(_ref3, 2),
-          setIntersectionRef = _ref4[0],
-          isVisible = _ref4[1];
+          var _ref3 = (0, _useIntersection.useIntersection)({
+              rootMargin: "200px"
+            }),
+            _ref4 = _slicedToArray(_ref3, 2),
+            setIntersectionRef = _ref4[0],
+            isVisible = _ref4[1];
 
-        var setRef = _react["default"].useCallback(
-          function(el) {
-            setIntersectionRef(el);
+          var setRef = _react["default"].useCallback(
+            function(el) {
+              setIntersectionRef(el);
 
-            if (childRef) {
-              if (typeof childRef === "function") childRef(el);
-              else if (typeof childRef === "object") {
-                childRef.current = el;
+              if (childRef) {
+                if (typeof childRef === "function") childRef(el);
+                else if (typeof childRef === "object") {
+                  childRef.current = el;
+                }
               }
-            }
-          },
-          [childRef, setIntersectionRef]
-        );
+            },
+            [childRef, setIntersectionRef]
+          );
 
-        (0, _react.useEffect)(
-          function() {
-            var shouldPrefetch =
-              isVisible && p && (0, _router.isLocalURL)(href);
-            var curLocale =
-              typeof locale !== "undefined" ? locale : router && router.locale;
-            var isPrefetched =
-              prefetched[href + "%" + as + (curLocale ? "%" + curLocale : "")];
-
-            if (shouldPrefetch && !isPrefetched) {
-              prefetch(router, href, as, {
-                locale: curLocale
-              });
-            }
-          },
-          [as, href, isVisible, locale, p, router]
-        );
-        var childProps = {
-          ref: setRef,
-          onClick: function onClick(e) {
-            if (child.props && typeof child.props.onClick === "function") {
-              child.props.onClick(e);
-            }
+          (0, _react.useEffect)(
+            function() {
+              var shouldPrefetch =
+                isVisible && p && (0, _router.isLocalURL)(href);
+              var curLocale =
+                typeof locale !== "undefined"
+                  ? locale
+                  : router && router.locale;
+              var isPrefetched =
+                prefetched[
+                  href + "%" + as + (curLocale ? "%" + curLocale : "")
+                ];
+
+              if (shouldPrefetch && !isPrefetched) {
+                prefetch(router, href, as, {
+                  locale: curLocale
+                });
+              }
+            },
+            [as, href, isVisible, locale, p, router]
+          );
+          var childProps = {
+            ref: setRef,
+            onClick: function onClick(e) {
+              if (child.props && typeof child.props.onClick === "function") {
+                child.props.onClick(e);
+              }
 
-            if (!e.defaultPrevented) {
-              linkClicked(
-                e,
-                router,
-                href,
-                as,
-                replace,
-                shallow,
-                scroll,
-                locale
-              );
+              if (!e.defaultPrevented) {
+                linkClicked(
+                  e,
+                  router,
+                  href,
+                  as,
+                  replace,
+                  shallow,
+                  scroll,
+                  locale
+                );
+              }
             }
-          }
-        };
+          };
 
-        childProps.onMouseEnter = function(e) {
-          if (!(0, _router.isLocalURL)(href)) return;
+          childProps.onMouseEnter = function(e) {
+            if (!(0, _router.isLocalURL)(href)) return;
 
-          if (child.props && typeof child.props.onMouseEnter === "function") {
-            child.props.onMouseEnter(e);
-          }
+            if (child.props && typeof child.props.onMouseEnter === "function") {
+              child.props.onMouseEnter(e);
+            }
 
-          prefetch(router, href, as, {
-            priority: true
-          });
-        }; // If child is an <a> tag and doesn't have a href attribute, or if the 'passHref' property is
-        // defined, we specify the current 'href', so that repetition is not needed by the user
+            prefetch(router, href, as, {
+              priority: true
+            });
+          }; // If child is an <a> tag and doesn't have a href attribute, or if the 'passHref' property is
+          // defined, we specify the current 'href', so that repetition is not needed by the user
 
-        if (
-          props.passHref ||
-          (child.type === "a" && !("href" in child.props))
-        ) {
-          var curLocale =
-            typeof locale !== "undefined" ? locale : router && router.locale; // we only render domain locales if we are currently on a domain locale
-          // so that locale links are still visitable in development/preview envs
-
-          var localeDomain =
-            router &&
-            router.isLocaleDomain &&
-            (0, _router.getDomainLocale)(
-              as,
-              curLocale,
-              router && router.locales,
-              router && router.domainLocales
-            );
-          childProps.href =
-            localeDomain ||
-            (0, _router.addBasePath)(
-              (0, _router.addLocale)(
+          if (
+            props.passHref ||
+            (child.type === "a" && !("href" in child.props))
+          ) {
+            var curLocale =
+              typeof locale !== "undefined" ? locale : router && router.locale; // we only render domain locales if we are currently on a domain locale
+            // so that locale links are still visitable in development/preview envs
+
+            var localeDomain =
+              router &&
+              router.isLocaleDomain &&
+              (0, _router.getDomainLocale)(
                 as,
                 curLocale,
-                router && router.defaultLocale
-              )
-            );
-        }
-
-        return /*#__PURE__*/ _react["default"].cloneElement(child, childProps);
-      }
+                router && router.locales,
+                router && router.domainLocales
+              );
+            childProps.href =
+              localeDomain ||
+              (0, _router.addBasePath)(
+                (0, _router.addLocale)(
+                  as,
+                  curLocale,
+                  router && router.defaultLocale
+                )
+              );
+          }
 
-      var _default = Link;
-      exports["default"] = _default;
+          return /*#__PURE__*/ _react["default"].cloneElement(
+            child,
+            childProps
+          );
+        }
 
-      /***/
-    },
+        var _default = Link;
+        exports["default"] = _default;
 
-    /***/ vNVm: /***/ function(module, exports, __webpack_require__) {
-      "use strict";
+        /***/
+      },
 
-      var _slicedToArray = __webpack_require__("J4zp");
+      /***/ vNVm: /***/ function(module, exports, __webpack_require__) {
+        "use strict";
 
-      exports.__esModule = true;
-      exports.useIntersection = useIntersection;
+        var _slicedToArray = __webpack_require__("J4zp");
 
-      var _react = __webpack_require__("q1tI");
+        exports.__esModule = true;
+        exports.useIntersection = useIntersection;
 
-      var _requestIdleCallback = __webpack_require__("0G5g");
+        var _react = __webpack_require__("q1tI");
 
-      var hasIntersectionObserver = typeof IntersectionObserver !== "undefined";
+        var _requestIdleCallback = __webpack_require__("0G5g");
 
-      function useIntersection(_ref) {
-        var rootMargin = _ref.rootMargin,
-          disabled = _ref.disabled;
-        var isDisabled = disabled || !hasIntersectionObserver;
-        var unobserve = (0, _react.useRef)();
+        var hasIntersectionObserver =
+          typeof IntersectionObserver !== "undefined";
 
-        var _ref2 = (0, _react.useState)(false),
-          _ref3 = _slicedToArray(_ref2, 2),
-          visible = _ref3[0],
-          setVisible = _ref3[1];
+        function useIntersection(_ref) {
+          var rootMargin = _ref.rootMargin,
+            disabled = _ref.disabled;
+          var isDisabled = disabled || !hasIntersectionObserver;
+          var unobserve = (0, _react.useRef)();
 
-        var setRef = (0, _react.useCallback)(
-          function(el) {
-            if (unobserve.current) {
-              unobserve.current();
-              unobserve.current = undefined;
-            }
+          var _ref2 = (0, _react.useState)(false),
+            _ref3 = _slicedToArray(_ref2, 2),
+            visible = _ref
Post job cleanup.
[command]/usr/bin/git version
git version 2.30.1
[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: e3b70747912bb505157be1e92432edcee76e1f13

@sokra sokra changed the title update webpack, fix runtime location and fix undeclared variable update webpack, fix runtime location, fix undeclared variable, omit env vars from cache version Mar 16, 2021
@ijjk
Copy link
Member

ijjk commented Mar 16, 2021

Stats from current PR

Default Server Mode (Increase detected ⚠️)
General Overall increase ⚠️
vercel/next.js canary vercel/next.js bugfix/webpack-out-of-output-path Change
buildDuration 11.7s 11.8s ⚠️ +107ms
nodeModulesSize 42.8 MB 42.8 MB ⚠️ +30.2 kB
Page Load Tests Overall decrease ⚠️
vercel/next.js canary vercel/next.js bugfix/webpack-out-of-output-path Change
/ failed reqs 0 0
/ total time (seconds) 2.127 2.297 ⚠️ +0.17
/ avg req/sec 1175.37 1088.24 ⚠️ -87.13
/error-in-render failed reqs 0 0
/error-in-render total time (seconds) 1.399 1.504 ⚠️ +0.1
/error-in-render avg req/sec 1787.14 1661.71 ⚠️ -125.43
Client Bundles (main, webpack, commons) Overall increase ⚠️
vercel/next.js canary vercel/next.js bugfix/webpack-out-of-output-path Change
677f882d2ed8..a2e7.js gzip 13.4 kB 13.4 kB
framework.HASH.js gzip 39 kB 39 kB
main-HASH.js gzip 7.14 kB 7.14 kB ⚠️ +2 B
webpack-HASH.js gzip 751 B 751 B
Overall change 60.3 kB 60.3 kB ⚠️ +2 B
Legacy Client Bundles (polyfills) Overall increase ⚠️
vercel/next.js canary vercel/next.js bugfix/webpack-out-of-output-path Change
polyfills-HASH.js gzip 31.3 kB 31.3 kB ⚠️ +2 B
Overall change 31.3 kB 31.3 kB ⚠️ +2 B
Client Pages Overall increase ⚠️
vercel/next.js canary vercel/next.js bugfix/webpack-out-of-output-path Change
_app-fde3324..9dd1.js gzip 1.28 kB 1.28 kB ⚠️ +1 B
_error-af59f..582f.js gzip 3.46 kB 3.46 kB ⚠️ +2 B
amp-9716187d..0aa8.js gzip 536 B 538 B ⚠️ +2 B
hooks-107e90..74c7.js gzip 888 B 889 B ⚠️ +1 B
index-ac435c..ecf2.js gzip 227 B 229 B ⚠️ +2 B
link-e6cee42..49eb.js gzip 1.64 kB 1.64 kB ⚠️ +2 B
routerDirect..dc9d.js gzip 303 B 304 B ⚠️ +1 B
withRouter-6..0e02.js gzip 302 B 304 B ⚠️ +2 B
Overall change 8.64 kB 8.65 kB ⚠️ +13 B
Client Build Manifests
vercel/next.js canary vercel/next.js bugfix/webpack-out-of-output-path Change
_buildManifest.js gzip 346 B 346 B
Overall change 346 B 346 B
Rendered Page Sizes Overall decrease ✓
vercel/next.js canary vercel/next.js bugfix/webpack-out-of-output-path Change
index.html gzip 614 B 614 B
link.html gzip 621 B 620 B -1 B
withRouter.html gzip 609 B 608 B -1 B
Overall change 1.84 kB 1.84 kB -2 B

Diffs

Diff for _app-a24430c..ae4b780ba.js
@@ -1,321 +1,327 @@
-_N_E = (window["webpackJsonp_N_E"] = window["webpackJsonp_N_E"] || []).push([
-  [4],
-  {
-    /***/ 0: /***/ function(module, exports, __webpack_require__) {
-      __webpack_require__("e9+W");
-      module.exports = __webpack_require__("nOHt");
-
-      /***/
-    },
-
-    /***/ "7W2i": /***/ function(module, exports, __webpack_require__) {
-      var setPrototypeOf = __webpack_require__("SksO");
+var _N_E = (window["webpackJsonp_N_E"] = window["webpackJsonp_N_E"] || []).push(
+  [
+    [4],
+    {
+      /***/ 0: /***/ function(module, exports, __webpack_require__) {
+        __webpack_require__("e9+W");
+        module.exports = __webpack_require__("nOHt");
+
+        /***/
+      },
+
+      /***/ "7W2i": /***/ function(module, exports, __webpack_require__) {
+        var setPrototypeOf = __webpack_require__("SksO");
+
+        function _inherits(subClass, superClass) {
+          if (typeof superClass !== "function" && superClass !== null) {
+            throw new TypeError(
+              "Super expression must either be null or a function"
+            );
+          }
 
-      function _inherits(subClass, superClass) {
-        if (typeof superClass !== "function" && superClass !== null) {
-          throw new TypeError(
-            "Super expression must either be null or a function"
+          subClass.prototype = Object.create(
+            superClass && superClass.prototype,
+            {
+              constructor: {
+                value: subClass,
+                writable: true,
+                configurable: true
+              }
+            }
           );
+          if (superClass) setPrototypeOf(subClass, superClass);
         }
 
-        subClass.prototype = Object.create(superClass && superClass.prototype, {
-          constructor: {
-            value: subClass,
-            writable: true,
-            configurable: true
-          }
-        });
-        if (superClass) setPrototypeOf(subClass, superClass);
-      }
+        module.exports = _inherits;
 
-      module.exports = _inherits;
+        /***/
+      },
 
-      /***/
-    },
+      /***/ B5Ud: /***/ function(module, exports, __webpack_require__) {
+        "use strict";
 
-    /***/ B5Ud: /***/ function(module, exports, __webpack_require__) {
-      "use strict";
+        var _regeneratorRuntime = __webpack_require__("o0o1");
 
-      var _regeneratorRuntime = __webpack_require__("o0o1");
+        var _classCallCheck = __webpack_require__("lwsE");
 
-      var _classCallCheck = __webpack_require__("lwsE");
+        var _createClass = __webpack_require__("W8MJ");
 
-      var _createClass = __webpack_require__("W8MJ");
+        var _inherits = __webpack_require__("7W2i");
 
-      var _inherits = __webpack_require__("7W2i");
+        var _possibleConstructorReturn = __webpack_require__("a1gu");
 
-      var _possibleConstructorReturn = __webpack_require__("a1gu");
+        var _getPrototypeOf = __webpack_require__("Nsbk");
 
-      var _getPrototypeOf = __webpack_require__("Nsbk");
+        var _asyncToGenerator = __webpack_require__("yXPU");
 
-      var _asyncToGenerator = __webpack_require__("yXPU");
+        function _createSuper(Derived) {
+          var hasNativeReflectConstruct = _isNativeReflectConstruct();
+          return function _createSuperInternal() {
+            var Super = _getPrototypeOf(Derived),
+              result;
+            if (hasNativeReflectConstruct) {
+              var NewTarget = _getPrototypeOf(this).constructor;
+              result = Reflect.construct(Super, arguments, NewTarget);
+            } else {
+              result = Super.apply(this, arguments);
+            }
+            return _possibleConstructorReturn(this, result);
+          };
+        }
 
-      function _createSuper(Derived) {
-        var hasNativeReflectConstruct = _isNativeReflectConstruct();
-        return function _createSuperInternal() {
-          var Super = _getPrototypeOf(Derived),
-            result;
-          if (hasNativeReflectConstruct) {
-            var NewTarget = _getPrototypeOf(this).constructor;
-            result = Reflect.construct(Super, arguments, NewTarget);
-          } else {
-            result = Super.apply(this, arguments);
+        function _isNativeReflectConstruct() {
+          if (typeof Reflect === "undefined" || !Reflect.construct)
+            return false;
+          if (Reflect.construct.sham) return false;
+          if (typeof Proxy === "function") return true;
+          try {
+            Date.prototype.toString.call(
+              Reflect.construct(Date, [], function() {})
+            );
+            return true;
+          } catch (e) {
+            return false;
           }
-          return _possibleConstructorReturn(this, result);
-        };
-      }
-
-      function _isNativeReflectConstruct() {
-        if (typeof Reflect === "undefined" || !Reflect.construct) return false;
-        if (Reflect.construct.sham) return false;
-        if (typeof Proxy === "function") return true;
-        try {
-          Date.prototype.toString.call(
-            Reflect.construct(Date, [], function() {})
-          );
-          return true;
-        } catch (e) {
-          return false;
         }
-      }
 
-      var _interopRequireDefault = __webpack_require__("TqRt");
+        var _interopRequireDefault = __webpack_require__("TqRt");
 
-      exports.__esModule = true;
-      exports.Container = Container;
-      exports.createUrl = createUrl;
-      exports["default"] = void 0;
+        exports.__esModule = true;
+        exports.Container = Container;
+        exports.createUrl = createUrl;
+        exports["default"] = void 0;
 
-      var _react = _interopRequireDefault(__webpack_require__("q1tI"));
+        var _react = _interopRequireDefault(__webpack_require__("q1tI"));
 
-      var _utils = __webpack_require__("g/15");
+        var _utils = __webpack_require__("g/15");
 
-      exports.AppInitialProps = _utils.AppInitialProps;
-      exports.NextWebVitalsMetric = _utils.NextWebVitalsMetric;
-      /**
-       * `App` component is used for initialize of pages. It allows for overwriting and full control of the `page` initialization.
-       * This allows for keeping state between navigation, custom error handling, injecting additional data.
-       */
+        exports.AppInitialProps = _utils.AppInitialProps;
+        exports.NextWebVitalsMetric = _utils.NextWebVitalsMetric;
+        /**
+         * `App` component is used for initialize of pages. It allows for overwriting and full control of the `page` initialization.
+         * This allows for keeping state between navigation, custom error handling, injecting additional data.
+         */
 
-      function appGetInitialProps(_x) {
-        return _appGetInitialProps.apply(this, arguments);
-      }
+        function appGetInitialProps(_x) {
+          return _appGetInitialProps.apply(this, arguments);
+        }
 
-      function _appGetInitialProps() {
-        _appGetInitialProps = _asyncToGenerator(
-          /*#__PURE__*/ _regeneratorRuntime.mark(function _callee(_ref) {
-            var Component, ctx, pageProps;
-            return _regeneratorRuntime.wrap(function _callee$(_context) {
-              while (1) {
-                switch ((_context.prev = _context.next)) {
-                  case 0:
-                    (Component = _ref.Component), (ctx = _ref.ctx);
-                    _context.next = 3;
-                    return (0, _utils.loadGetInitialProps)(Component, ctx);
-
-                  case 3:
-                    pageProps = _context.sent;
-                    return _context.abrupt("return", {
-                      pageProps: pageProps
-                    });
-
-                  case 5:
-                  case "end":
-                    return _context.stop();
+        function _appGetInitialProps() {
+          _appGetInitialProps = _asyncToGenerator(
+            /*#__PURE__*/ _regeneratorRuntime.mark(function _callee(_ref) {
+              var Component, ctx, pageProps;
+              return _regeneratorRuntime.wrap(function _callee$(_context) {
+                while (1) {
+                  switch ((_context.prev = _context.next)) {
+                    case 0:
+                      (Component = _ref.Component), (ctx = _ref.ctx);
+                      _context.next = 3;
+                      return (0, _utils.loadGetInitialProps)(Component, ctx);
+
+                    case 3:
+                      pageProps = _context.sent;
+                      return _context.abrupt("return", {
+                        pageProps: pageProps
+                      });
+
+                    case 5:
+                    case "end":
+                      return _context.stop();
+                  }
                 }
-              }
-            }, _callee);
-          })
-        );
-        return _appGetInitialProps.apply(this, arguments);
-      }
-
-      var App = /*#__PURE__*/ (function(_react$default$Compon) {
-        _inherits(App, _react$default$Compon);
+              }, _callee);
+            })
+          );
+          return _appGetInitialProps.apply(this, arguments);
+        }
 
-        var _super = _createSuper(App);
+        var App = /*#__PURE__*/ (function(_react$default$Compon) {
+          _inherits(App, _react$default$Compon);
 
-        function App() {
-          _classCallCheck(this, App);
+          var _super = _createSuper(App);
 
-          return _super.apply(this, arguments);
-        }
+          function App() {
+            _classCallCheck(this, App);
 
-        _createClass(App, [
-          {
-            key: "componentDidCatch",
-            // Kept here for backwards compatibility.
-            // When someone ended App they could call `super.componentDidCatch`.
-            // @deprecated This method is no longer needed. Errors are caught at the top level
-            value: function componentDidCatch(error, _errorInfo) {
-              throw error;
-            }
-          },
-          {
-            key: "render",
-            value: function render() {
-              var _this$props = this.props,
-                router = _this$props.router,
-                Component = _this$props.Component,
-                pageProps = _this$props.pageProps,
-                __N_SSG = _this$props.__N_SSG,
-                __N_SSP = _this$props.__N_SSP;
-              return /*#__PURE__*/ _react["default"].createElement(
-                Component,
-                Object.assign(
-                  {},
-                  pageProps, // we don't add the legacy URL prop if it's using non-legacy
-                  // methods like getStaticProps and getServerSideProps
-                  !(__N_SSG || __N_SSP)
-                    ? {
-                        url: createUrl(router)
-                      }
-                    : {}
-                )
-              );
-            }
+            return _super.apply(this, arguments);
           }
-        ]);
 
-        return App;
-      })(_react["default"].Component);
+          _createClass(App, [
+            {
+              key: "componentDidCatch",
+              // Kept here for backwards compatibility.
+              // When someone ended App they could call `super.componentDidCatch`.
+              // @deprecated This method is no longer needed. Errors are caught at the top level
+              value: function componentDidCatch(error, _errorInfo) {
+                throw error;
+              }
+            },
+            {
+              key: "render",
+              value: function render() {
+                var _this$props = this.props,
+                  router = _this$props.router,
+                  Component = _this$props.Component,
+                  pageProps = _this$props.pageProps,
+                  __N_SSG = _this$props.__N_SSG,
+                  __N_SSP = _this$props.__N_SSP;
+                return /*#__PURE__*/ _react["default"].createElement(
+                  Component,
+                  Object.assign(
+                    {},
+                    pageProps, // we don't add the legacy URL prop if it's using non-legacy
+                    // methods like getStaticProps and getServerSideProps
+                    !(__N_SSG || __N_SSP)
+                      ? {
+                          url: createUrl(router)
+                        }
+                      : {}
+                  )
+                );
+              }
+            }
+          ]);
 
-      exports["default"] = App;
-      App.origGetInitialProps = appGetInitialProps;
-      App.getInitialProps = appGetInitialProps;
-      var warnContainer;
-      var warnUrl;
+          return App;
+        })(_react["default"].Component);
 
-      if (false) {
-      } // @deprecated noop for now until removal
+        exports["default"] = App;
+        App.origGetInitialProps = appGetInitialProps;
+        App.getInitialProps = appGetInitialProps;
+        var warnContainer;
+        var warnUrl;
 
-      function Container(p) {
         if (false) {
+        } // @deprecated noop for now until removal
+
+        function Container(p) {
+          if (false) {
+          }
+          return p.children;
         }
-        return p.children;
-      }
 
-      function createUrl(router) {
-        // This is to make sure we don't references the router object at call time
-        var pathname = router.pathname,
-          asPath = router.asPath,
-          query = router.query;
-        return {
-          get query() {
-            if (false) {
-            }
-            return query;
-          },
+        function createUrl(router) {
+          // This is to make sure we don't references the router object at call time
+          var pathname = router.pathname,
+            asPath = router.asPath,
+            query = router.query;
+          return {
+            get query() {
+              if (false) {
+              }
+              return query;
+            },
 
-          get pathname() {
-            if (false) {
-            }
-            return pathname;
-          },
+            get pathname() {
+              if (false) {
+              }
+              return pathname;
+            },
 
-          get asPath() {
-            if (false) {
-            }
-            return asPath;
-          },
+            get asPath() {
+              if (false) {
+              }
+              return asPath;
+            },
 
-          back: function back() {
-            if (false) {
-            }
-            router.back();
-          },
-          push: function push(url, as) {
-            if (false) {
-            }
-            return router.push(url, as);
-          },
-          pushTo: function pushTo(href, as) {
-            if (false) {
-            }
-            var pushRoute = as ? href : "";
-            var pushUrl = as || href;
-            return router.push(pushRoute, pushUrl);
-          },
-          replace: function replace(url, as) {
-            if (false) {
-            }
-            return router.replace(url, as);
-          },
-          replaceTo: function replaceTo(href, as) {
-            if (false) {
+            back: function back() {
+              if (false) {
+              }
+              router.back();
+            },
+            push: function push(url, as) {
+              if (false) {
+              }
+              return router.push(url, as);
+            },
+            pushTo: function pushTo(href, as) {
+              if (false) {
+              }
+              var pushRoute = as ? href : "";
+              var pushUrl = as || href;
+              return router.push(pushRoute, pushUrl);
+            },
+            replace: function replace(url, as) {
+              if (false) {
+              }
+              return router.replace(url, as);
+            },
+            replaceTo: function replaceTo(href, as) {
+              if (false) {
+              }
+              var replaceRoute = as ? href : "";
+              var replaceUrl = as || href;
+              return router.replace(replaceRoute, replaceUrl);
             }
-            var replaceRoute = as ? href : "";
-            var replaceUrl = as || href;
-            return router.replace(replaceRoute, replaceUrl);
-          }
-        };
-      }
+          };
+        }
 
-      /***/
-    },
+        /***/
+      },
+
+      /***/ Nsbk: /***/ function(module, exports) {
+        function _getPrototypeOf(o) {
+          module.exports = _getPrototypeOf = Object.setPrototypeOf
+            ? Object.getPrototypeOf
+            : function _getPrototypeOf(o) {
+                return o.__proto__ || Object.getPrototypeOf(o);
+              };
+          return _getPrototypeOf(o);
+        }
 
-    /***/ Nsbk: /***/ function(module, exports) {
-      function _getPrototypeOf(o) {
-        module.exports = _getPrototypeOf = Object.setPrototypeOf
-          ? Object.getPrototypeOf
-          : function _getPrototypeOf(o) {
-              return o.__proto__ || Object.getPrototypeOf(o);
-            };
-        return _getPrototypeOf(o);
-      }
+        module.exports = _getPrototypeOf;
 
-      module.exports = _getPrototypeOf;
+        /***/
+      },
 
-      /***/
-    },
+      /***/ PJYZ: /***/ function(module, exports) {
+        function _assertThisInitialized(self) {
+          if (self === void 0) {
+            throw new ReferenceError(
+              "this hasn't been initialised - super() hasn't been called"
+            );
+          }
 
-    /***/ PJYZ: /***/ function(module, exports) {
-      function _assertThisInitialized(self) {
-        if (self === void 0) {
-          throw new ReferenceError(
-            "this hasn't been initialised - super() hasn't been called"
-          );
+          return self;
         }
 
-        return self;
-      }
+        module.exports = _assertThisInitialized;
 
-      module.exports = _assertThisInitialized;
+        /***/
+      },
 
-      /***/
-    },
+      /***/ a1gu: /***/ function(module, exports, __webpack_require__) {
+        var _typeof = __webpack_require__("cDf5");
 
-    /***/ a1gu: /***/ function(module, exports, __webpack_require__) {
-      var _typeof = __webpack_require__("cDf5");
+        var assertThisInitialized = __webpack_require__("PJYZ");
 
-      var assertThisInitialized = __webpack_require__("PJYZ");
+        function _possibleConstructorReturn(self, call) {
+          if (
+            call &&
+            (_typeof(call) === "object" || typeof call === "function")
+          ) {
+            return call;
+          }
 
-      function _possibleConstructorReturn(self, call) {
-        if (
-          call &&
-          (_typeof(call) === "object" || typeof call === "function")
-        ) {
-          return call;
+          return assertThisInitialized(self);
         }
 
-        return assertThisInitialized(self);
-      }
-
-      module.exports = _possibleConstructorReturn;
+        module.exports = _possibleConstructorReturn;
 
-      /***/
-    },
+        /***/
+      },
 
-    /***/ "e9+W": /***/ function(module, exports, __webpack_require__) {
-      (window.__NEXT_P = window.__NEXT_P || []).push([
-        "/_app",
-        function() {
-          return __webpack_require__("B5Ud");
-        }
-      ]);
+      /***/ "e9+W": /***/ function(module, exports, __webpack_require__) {
+        (window.__NEXT_P = window.__NEXT_P || []).push([
+          "/_app",
+          function() {
+            return __webpack_require__("B5Ud");
+          }
+        ]);
 
-      /***/
-    }
-  },
-  [[0, 0, 1, 2]]
-]);
+        /***/
+      }
+    },
+    [[0, 0, 1, 2]]
+  ]
+);
Diff for _error-6fc12..2417101e6.js

Diff too large to display

Diff for amp-27f75ad1..0c5cdedd1.js
@@ -1,142 +1,144 @@
-_N_E = (window["webpackJsonp_N_E"] = window["webpackJsonp_N_E"] || []).push([
-  [6],
-  {
-    /***/ "/0+H": /***/ function(module, exports, __webpack_require__) {
-      "use strict";
-
-      exports.__esModule = true;
-      exports.isInAmpMode = isInAmpMode;
-      exports.useAmp = useAmp;
-
-      var _react = _interopRequireDefault(__webpack_require__("q1tI"));
-
-      var _ampContext = __webpack_require__("lwAK");
-
-      function _interopRequireDefault(obj) {
-        return obj && obj.__esModule
-          ? obj
-          : {
-              default: obj
-            };
-      }
+var _N_E = (window["webpackJsonp_N_E"] = window["webpackJsonp_N_E"] || []).push(
+  [
+    [6],
+    {
+      /***/ "/0+H": /***/ function(module, exports, __webpack_require__) {
+        "use strict";
+
+        exports.__esModule = true;
+        exports.isInAmpMode = isInAmpMode;
+        exports.useAmp = useAmp;
+
+        var _react = _interopRequireDefault(__webpack_require__("q1tI"));
+
+        var _ampContext = __webpack_require__("lwAK");
+
+        function _interopRequireDefault(obj) {
+          return obj && obj.__esModule
+            ? obj
+            : {
+                default: obj
+              };
+        }
 
-      function isInAmpMode() {
-        var _ref =
-            arguments.length > 0 && arguments[0] !== undefined
-              ? arguments[0]
-              : {},
-          _ref$ampFirst = _ref.ampFirst,
-          ampFirst = _ref$ampFirst === void 0 ? false : _ref$ampFirst,
-          _ref$hybrid = _ref.hybrid,
-          hybrid = _ref$hybrid === void 0 ? false : _ref$hybrid,
-          _ref$hasQuery = _ref.hasQuery,
-          hasQuery = _ref$hasQuery === void 0 ? false : _ref$hasQuery;
-
-        return ampFirst || (hybrid && hasQuery);
-      }
+        function isInAmpMode() {
+          var _ref =
+              arguments.length > 0 && arguments[0] !== undefined
+                ? arguments[0]
+                : {},
+            _ref$ampFirst = _ref.ampFirst,
+            ampFirst = _ref$ampFirst === void 0 ? false : _ref$ampFirst,
+            _ref$hybrid = _ref.hybrid,
+            hybrid = _ref$hybrid === void 0 ? false : _ref$hybrid,
+            _ref$hasQuery = _ref.hasQuery,
+            hasQuery = _ref$hasQuery === void 0 ? false : _ref$hasQuery;
+
+          return ampFirst || (hybrid && hasQuery);
+        }
 
-      function useAmp() {
-        // Don't assign the context value to a variable to save bytes
-        return isInAmpMode(
-          _react["default"].useContext(_ampContext.AmpStateContext)
-        );
-      }
+        function useAmp() {
+          // Don't assign the context value to a variable to save bytes
+          return isInAmpMode(
+            _react["default"].useContext(_ampContext.AmpStateContext)
+          );
+        }
 
-      /***/
-    },
+        /***/
+      },
 
-    /***/ JjeS: /***/ function(module, exports, __webpack_require__) {
-      module.exports = __webpack_require__("/0+H");
+      /***/ JjeS: /***/ function(module, exports, __webpack_require__) {
+        module.exports = __webpack_require__("/0+H");
 
-      /***/
-    },
+        /***/
+      },
 
-    /***/ Q6ik: /***/ function(module, exports, __webpack_require__) {
-      (window.__NEXT_P = window.__NEXT_P || []).push([
-        "/amp",
-        function() {
-          return __webpack_require__("rsBd");
-        }
-      ]);
+      /***/ Q6ik: /***/ function(module, exports, __webpack_require__) {
+        (window.__NEXT_P = window.__NEXT_P || []).push([
+          "/amp",
+          function() {
+            return __webpack_require__("rsBd");
+          }
+        ]);
 
-      /***/
-    },
+        /***/
+      },
 
-    /***/ Qetd: /***/ function(module, exports, __webpack_require__) {
-      "use strict";
-      var assign = Object.assign.bind(Object);
-      module.exports = assign;
-      module.exports.default = module.exports;
-      //# sourceMappingURL=object-assign.js.map
+      /***/ Qetd: /***/ function(module, exports, __webpack_require__) {
+        "use strict";
+        var assign = Object.assign.bind(Object);
+        module.exports = assign;
+        module.exports.default = module.exports;
+        //# sourceMappingURL=object-assign.js.map
 
-      /***/
-    },
+        /***/
+      },
 
-    /***/ lwAK: /***/ function(module, exports, __webpack_require__) {
-      "use strict";
+      /***/ lwAK: /***/ function(module, exports, __webpack_require__) {
+        "use strict";
 
-      exports.__esModule = true;
-      exports.AmpStateContext = void 0;
+        exports.__esModule = true;
+        exports.AmpStateContext = void 0;
 
-      var _react = _interopRequireDefault(__webpack_require__("q1tI"));
+        var _react = _interopRequireDefault(__webpack_require__("q1tI"));
 
-      function _interopRequireDefault(obj) {
-        return obj && obj.__esModule
-          ? obj
-          : {
-              default: obj
-            };
-      }
+        function _interopRequireDefault(obj) {
+          return obj && obj.__esModule
+            ? obj
+            : {
+                default: obj
+              };
+        }
 
-      var AmpStateContext = /*#__PURE__*/ _react["default"].createContext({});
+        var AmpStateContext = /*#__PURE__*/ _react["default"].createContext({});
 
-      exports.AmpStateContext = AmpStateContext;
+        exports.AmpStateContext = AmpStateContext;
 
-      if (false) {
-      }
+        if (false) {
+        }
 
-      /***/
-    },
+        /***/
+      },
 
-    /***/ rsBd: /***/ function(
-      module,
-      __webpack_exports__,
-      __webpack_require__
-    ) {
-      "use strict";
-      __webpack_require__.r(__webpack_exports__);
-      /* harmony export (binding) */ __webpack_require__.d(
+      /***/ rsBd: /***/ function(
+        module,
         __webpack_exports__,
-        "config",
-        function() {
-          return config;
-        }
-      );
-      /* harmony export (binding) */ __webpack_require__.d(
-        __webpack_exports__,
-        "default",
-        function() {
-          return Amp;
+        __webpack_require__
+      ) {
+        "use strict";
+        __webpack_require__.r(__webpack_exports__);
+        /* harmony export (binding) */ __webpack_require__.d(
+          __webpack_exports__,
+          "config",
+          function() {
+            return config;
+          }
+        );
+        /* harmony export (binding) */ __webpack_require__.d(
+          __webpack_exports__,
+          "default",
+          function() {
+            return Amp;
+          }
+        );
+        /* harmony import */ var next_amp__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(
+          "JjeS"
+        );
+        /* harmony import */ var next_amp__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/ __webpack_require__.n(
+          next_amp__WEBPACK_IMPORTED_MODULE_0__
+        );
+
+        var config = {
+          amp: "hybrid"
+        };
+        function Amp(props) {
+          return Object(next_amp__WEBPACK_IMPORTED_MODULE_0__["useAmp"])()
+            ? "AMP mode"
+            : "normal mode";
         }
-      );
-      /* harmony import */ var next_amp__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(
-        "JjeS"
-      );
-      /* harmony import */ var next_amp__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/ __webpack_require__.n(
-        next_amp__WEBPACK_IMPORTED_MODULE_0__
-      );
-
-      var config = {
-        amp: "hybrid"
-      };
-      function Amp(props) {
-        return Object(next_amp__WEBPACK_IMPORTED_MODULE_0__["useAmp"])()
-          ? "AMP mode"
-          : "normal mode";
-      }
 
-      /***/
-    }
-  },
-  [["Q6ik", 0, 1]]
-]);
+        /***/
+      }
+    },
+    [["Q6ik", 0, 1]]
+  ]
+);
Diff for hooks-1c83fd..614f18817.js
@@ -1,168 +1,173 @@
-_N_E = (window["webpackJsonp_N_E"] = window["webpackJsonp_N_E"] || []).push([
-  [7],
-  {
-    /***/ "+MDD": /***/ function(
-      module,
-      __webpack_exports__,
-      __webpack_require__
-    ) {
-      "use strict";
-      // ESM COMPAT FLAG
-      __webpack_require__.r(__webpack_exports__);
-
-      // CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js
-      function _arrayWithHoles(arr) {
-        if (Array.isArray(arr)) return arr;
-      }
-      // CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js
-      function _iterableToArrayLimit(arr, i) {
-        if (typeof Symbol === "undefined" || !(Symbol.iterator in Object(arr)))
-          return;
-        var _arr = [];
-        var _n = true;
-        var _d = false;
-        var _e = undefined;
-
-        try {
-          for (
-            var _i = arr[Symbol.iterator](), _s;
-            !(_n = (_s = _i.next()).done);
-            _n = true
-          ) {
-            _arr.push(_s.value);
-
-            if (i && _arr.length === i) break;
-          }
-        } catch (err) {
-          _d = true;
-          _e = err;
-        } finally {
+var _N_E = (window["webpackJsonp_N_E"] = window["webpackJsonp_N_E"] || []).push(
+  [
+    [7],
+    {
+      /***/ "+MDD": /***/ function(
+        module,
+        __webpack_exports__,
+        __webpack_require__
+      ) {
+        "use strict";
+        // ESM COMPAT FLAG
+        __webpack_require__.r(__webpack_exports__);
+
+        // CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js
+        function _arrayWithHoles(arr) {
+          if (Array.isArray(arr)) return arr;
+        }
+        // CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js
+        function _iterableToArrayLimit(arr, i) {
+          if (
+            typeof Symbol === "undefined" ||
+            !(Symbol.iterator in Object(arr))
+          )
+            return;
+          var _arr = [];
+          var _n = true;
+          var _d = false;
+          var _e = undefined;
+
           try {
-            if (!_n && _i["return"] != null) _i["return"]();
+            for (
+              var _i = arr[Symbol.iterator](), _s;
+              !(_n = (_s = _i.next()).done);
+              _n = true
+            ) {
+              _arr.push(_s.value);
+
+              if (i && _arr.length === i) break;
+            }
+          } catch (err) {
+            _d = true;
+            _e = err;
           } finally {
-            if (_d) throw _e;
+            try {
+              if (!_n && _i["return"] != null) _i["return"]();
+            } finally {
+              if (_d) throw _e;
+            }
           }
+
+          return _arr;
         }
+        // CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js
+        function _arrayLikeToArray(arr, len) {
+          if (len == null || len > arr.length) len = arr.length;
 
-        return _arr;
-      }
-      // CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js
-      function _arrayLikeToArray(arr, len) {
-        if (len == null || len > arr.length) len = arr.length;
+          for (var i = 0, arr2 = new Array(len); i < len; i++) {
+            arr2[i] = arr[i];
+          }
 
-        for (var i = 0, arr2 = new Array(len); i < len; i++) {
-          arr2[i] = arr[i];
+          return arr2;
         }
+        // CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js
+
+        function _unsupportedIterableToArray(o, minLen) {
+          if (!o) return;
+          if (typeof o === "string") return _arrayLikeToArray(o, minLen);
+          var n = Object.prototype.toString.call(o).slice(8, -1);
+          if (n === "Object" && o.constructor) n = o.constructor.name;
+          if (n === "Map" || n === "Set") return Array.from(o);
+          if (
+            n === "Arguments" ||
+            /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)
+          )
+            return _arrayLikeToArray(o, minLen);
+        }
+        // CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/nonIterableRest.js
+        function _nonIterableRest() {
+          throw new TypeError(
+            "Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."
+          );
+        }
+        // CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/slicedToArray.js
+
+        function _slicedToArray(arr, i) {
+          return (
+            _arrayWithHoles(arr) ||
+            _iterableToArrayLimit(arr, i) ||
+            _unsupportedIterableToArray(arr, i) ||
+            _nonIterableRest()
+          );
+        }
+        // EXTERNAL MODULE: ./node_modules/react/index.js
+        var react = __webpack_require__("q1tI");
+        var react_default = /*#__PURE__*/ __webpack_require__.n(react);
 
-        return arr2;
-      }
-      // CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js
-
-      function _unsupportedIterableToArray(o, minLen) {
-        if (!o) return;
-        if (typeof o === "string") return _arrayLikeToArray(o, minLen);
-        var n = Object.prototype.toString.call(o).slice(8, -1);
-        if (n === "Object" && o.constructor) n = o.constructor.name;
-        if (n === "Map" || n === "Set") return Array.from(o);
-        if (
-          n === "Arguments" ||
-          /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)
-        )
-          return _arrayLikeToArray(o, minLen);
-      }
-      // CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/nonIterableRest.js
-      function _nonIterableRest() {
-        throw new TypeError(
-          "Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."
-        );
-      }
-      // CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/slicedToArray.js
-
-      function _slicedToArray(arr, i) {
-        return (
-          _arrayWithHoles(arr) ||
-          _iterableToArrayLimit(arr, i) ||
-          _unsupportedIterableToArray(arr, i) ||
-          _nonIterableRest()
-        );
-      }
-      // EXTERNAL MODULE: ./node_modules/react/index.js
-      var react = __webpack_require__("q1tI");
-      var react_default = /*#__PURE__*/ __webpack_require__.n(react);
-
-      // CONCATENATED MODULE: ./pages/hooks.js
+        // CONCATENATED MODULE: ./pages/hooks.js
 
-      var __jsx = react_default.a.createElement;
+        var __jsx = react_default.a.createElement;
 
-      /* harmony default export */ var hooks = (__webpack_exports__[
-        "default"
-      ] = function() {
-        var _React$useState = react_default.a.useState(0),
-          _React$useState2 = _slicedToArray(_React$useState, 2),
-          clicks1 = _React$useState2[0],
-          setClicks1 = _React$useState2[1];
+        /* harmony default export */ var hooks = (__webpack_exports__[
+          "default"
+        ] = function() {
+          var _React$useState = react_default.a.useState(0),
+            _React$useState2 = _slicedToArray(_React$useState, 2),
+            clicks1 = _React$useState2[0],
+            setClicks1 = _React$useState2[1];
 
-        var _useState = Object(react["useState"])(0),
-          clicks2 = _useState[0],
-          setClicks2 = _useState[1];
+          var _useState = Object(react["useState"])(0),
+            clicks2 = _useState[0],
+            setClicks2 = _useState[1];
 
-        var doClick1 = react_default.a.useCallback(
-          function() {
-            setClicks1(clicks1 + 1);
-          },
-          [clicks1]
-        );
-        var doClick2 = Object(react["useCallback"])(
-          function() {
-            setClicks2(clicks2 + 1);
-          },
-          [clicks2]
-        );
-        return __jsx(
-          react_default.a.Fragment,
-          null,
-          __jsx("h3", null, "Clicks ", clicks1),
-          __jsx(
-            "button",
-            {
-              onClick: doClick1
+          var doClick1 = react_default.a.useCallback(
+            function() {
+              setClicks1(clicks1 + 1);
             },
-            "Click me"
-          ),
-          __jsx("h3", null, "Clicks ", clicks2),
-          __jsx(
-            "button",
-            {
-              onClick: doClick2
+            [clicks1]
+          );
+          var doClick2 = Object(react["useCallback"])(
+            function() {
+              setClicks2(clicks2 + 1);
             },
-            "Click me"
-          )
-        );
-      });
-
-      /***/
-    },
-
-    /***/ Qetd: /***/ function(module, exports, __webpack_require__) {
-      "use strict";
-      var assign = Object.assign.bind(Object);
-      module.exports = assign;
-      module.exports.default = module.exports;
-      //# sourceMappingURL=object-assign.js.map
+            [clicks2]
+          );
+          return __jsx(
+            react_default.a.Fragment,
+            null,
+            __jsx("h3", null, "Clicks ", clicks1),
+            __jsx(
+              "button",
+              {
+                onClick: doClick1
+              },
+              "Click me"
+            ),
+            __jsx("h3", null, "Clicks ", clicks2),
+            __jsx(
+              "button",
+              {
+                onClick: doClick2
+              },
+              "Click me"
+            )
+          );
+        });
+
+        /***/
+      },
+
+      /***/ Qetd: /***/ function(module, exports, __webpack_require__) {
+        "use strict";
+        var assign = Object.assign.bind(Object);
+        module.exports = assign;
+        module.exports.default = module.exports;
+        //# sourceMappingURL=object-assign.js.map
+
+        /***/
+      },
+
+      /***/ g1vQ: /***/ function(module, exports, __webpack_require__) {
+        (window.__NEXT_P = window.__NEXT_P || []).push([
+          "/hooks",
+          function() {
+            return __webpack_require__("+MDD");
+          }
+        ]);
 
-      /***/
+        /***/
+      }
     },
-
-    /***/ g1vQ: /***/ function(module, exports, __webpack_require__) {
-      (window.__NEXT_P = window.__NEXT_P || []).push([
-        "/hooks",
-        function() {
-          return __webpack_require__("+MDD");
-        }
-      ]);
-
-      /***/
-    }
-  },
-  [["g1vQ", 0, 1]]
-]);
+    [["g1vQ", 0, 1]]
+  ]
+);
Diff for index-b1738b..4aa373c84.js
@@ -1,36 +1,38 @@
-_N_E = (window["webpackJsonp_N_E"] = window["webpackJsonp_N_E"] || []).push([
-  [8],
-  {
-    /***/ RNiq: /***/ function(
-      module,
-      __webpack_exports__,
-      __webpack_require__
-    ) {
-      "use strict";
-      __webpack_require__.r(__webpack_exports__);
-      var Page = function Page() {
-        return "Hello world 👋";
-      };
+var _N_E = (window["webpackJsonp_N_E"] = window["webpackJsonp_N_E"] || []).push(
+  [
+    [8],
+    {
+      /***/ RNiq: /***/ function(
+        module,
+        __webpack_exports__,
+        __webpack_require__
+      ) {
+        "use strict";
+        __webpack_require__.r(__webpack_exports__);
+        var Page = function Page() {
+          return "Hello world 👋";
+        };
 
-      Page.getInitialProps = function() {
-        return {};
-      };
+        Page.getInitialProps = function() {
+          return {};
+        };
 
-      /* harmony default export */ __webpack_exports__["default"] = Page;
+        /* harmony default export */ __webpack_exports__["default"] = Page;
 
-      /***/
-    },
+        /***/
+      },
 
-    /***/ vlRD: /***/ function(module, exports, __webpack_require__) {
-      (window.__NEXT_P = window.__NEXT_P || []).push([
-        "/",
-        function() {
-          return __webpack_require__("RNiq");
-        }
-      ]);
+      /***/ vlRD: /***/ function(module, exports, __webpack_require__) {
+        (window.__NEXT_P = window.__NEXT_P || []).push([
+          "/",
+          function() {
+            return __webpack_require__("RNiq");
+          }
+        ]);
 
-      /***/
-    }
-  },
-  [["vlRD", 0]]
-]);
+        /***/
+      }
+    },
+    [["vlRD", 0]]
+  ]
+);
Diff for link-e82300e..385add1b5.js
@@ -1,436 +1,449 @@
-_N_E = (window["webpackJsonp_N_E"] = window["webpackJsonp_N_E"] || []).push([
-  [9],
-  {
-    /***/ ObF3: /***/ function(
-      module,
-      __webpack_exports__,
-      __webpack_require__
-    ) {
-      "use strict";
-      __webpack_require__.r(__webpack_exports__);
-      /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(
-        "q1tI"
-      );
-      /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/ __webpack_require__.n(
-        react__WEBPACK_IMPORTED_MODULE_0__
-      );
-      /* harmony import */ var next_link__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(
-        "YFqc"
-      );
-      /* harmony import */ var next_link__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/ __webpack_require__.n(
-        next_link__WEBPACK_IMPORTED_MODULE_1__
-      );
-
-      var __jsx = react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement;
-
-      function aLink(props) {
-        return __jsx(
-          "div",
-          null,
-          __jsx("h3", null, "A Link page!"),
-          __jsx(
-            next_link__WEBPACK_IMPORTED_MODULE_1___default.a,
-            {
-              href: "/"
-            },
-            "Go to /"
-          )
+var _N_E = (window["webpackJsonp_N_E"] = window["webpackJsonp_N_E"] || []).push(
+  [
+    [9],
+    {
+      /***/ ObF3: /***/ function(
+        module,
+        __webpack_exports__,
+        __webpack_require__
+      ) {
+        "use strict";
+        __webpack_require__.r(__webpack_exports__);
+        /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(
+          "q1tI"
+        );
+        /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/ __webpack_require__.n(
+          react__WEBPACK_IMPORTED_MODULE_0__
+        );
+        /* harmony import */ var next_link__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(
+          "YFqc"
+        );
+        /* harmony import */ var next_link__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/ __webpack_require__.n(
+          next_link__WEBPACK_IMPORTED_MODULE_1__
         );
-      }
 
-      aLink.getInitialProps = function() {
-        return {};
-      };
+        var __jsx = react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement;
 
-      /* harmony default export */ __webpack_exports__["default"] = aLink;
+        function aLink(props) {
+          return __jsx(
+            "div",
+            null,
+            __jsx("h3", null, "A Link page!"),
+            __jsx(
+              next_link__WEBPACK_IMPORTED_MODULE_1___default.a,
+              {
+                href: "/"
+              },
+              "Go to /"
+            )
+          );
+        }
 
-      /***/
-    },
+        aLink.getInitialProps = function() {
+          return {};
+        };
 
-    /***/ V8Sf: /***/ function(module, exports, __webpack_require__) {
-      (window.__NEXT_P = window.__NEXT_P || []).push([
-        "/link",
-        function() {
-          return __webpack_require__("ObF3");
-        }
-      ]);
+        /* harmony default export */ __webpack_exports__["default"] = aLink;
 
-      /***/
-    },
+        /***/
+      },
 
-    /***/ YFqc: /***/ function(module, exports, __webpack_require__) {
-      module.exports = __webpack_require__("cTJO");
+      /***/ V8Sf: /***/ function(module, exports, __webpack_require__) {
+        (window.__NEXT_P = window.__NEXT_P || []).push([
+          "/link",
+          function() {
+            return __webpack_require__("ObF3");
+          }
+        ]);
 
-      /***/
-    },
+        /***/
+      },
 
-    /***/ cTJO: /***/ function(module, exports, __webpack_require__) {
-      "use strict";
+      /***/ YFqc: /***/ function(module, exports, __webpack_require__) {
+        module.exports = __webpack_require__("cTJO");
 
-      var _slicedToArray = __webpack_require__("J4zp");
+        /***/
+      },
 
-      var _interopRequireWildcard = __webpack_require__("284h");
+      /***/ cTJO: /***/ function(module, exports, __webpack_require__) {
+        "use strict";
 
-      exports.__esModule = true;
-      exports["default"] = void 0;
+        var _slicedToArray = __webpack_require__("J4zp");
 
-      var _react = _interopRequireWildcard(__webpack_require__("q1tI"));
+        var _interopRequireWildcard = __webpack_require__("284h");
 
-      var _router = __webpack_require__("elyg");
+        exports.__esModule = true;
+        exports["default"] = void 0;
 
-      var _router2 = __webpack_require__("nOHt");
+        var _react = _interopRequireWildcard(__webpack_require__("q1tI"));
 
-      var _useIntersection = __webpack_require__("vNVm");
+        var _router = __webpack_require__("elyg");
 
-      var prefetched = {};
+        var _router2 = __webpack_require__("nOHt");
 
-      function prefetch(router, href, as, options) {
-        if (false || !router) return;
-        if (!(0, _router.isLocalURL)(href)) return; // Prefetch the JSON page if asked (only in the client)
-        // We need to handle a prefetch error here since we may be
-        // loading with priority which can reject but we don't
-        // want to force navigation since this is only a prefetch
+        var _useIntersection = __webpack_require__("vNVm");
 
-        router.prefetch(href, as, options)["catch"](function(err) {
-          if (false) {
-          }
-        });
-        var curLocale =
-          options && typeof options.locale !== "undefined"
-            ? options.locale
-            : router && router.locale; // Join on an invalid URI character
+        var prefetched = {};
 
-        prefetched[href + "%" + as + (curLocale ? "%" + curLocale : "")] = true;
-      }
+        function prefetch(router, href, as, options) {
+          if (false || !router) return;
+          if (!(0, _router.isLocalURL)(href)) return; // Prefetch the JSON page if asked (only in the client)
+          // We need to handle a prefetch error here since we may be
+          // loading with priority which can reject but we don't
+          // want to force navigation since this is only a prefetch
 
-      function isModifiedEvent(event) {
-        var target = event.currentTarget.target;
-        return (
-          (target && target !== "_self") ||
-          event.metaKey ||
-          event.ctrlKey ||
-          event.shiftKey ||
-          event.altKey || // triggers resource download
-          (event.nativeEvent && event.nativeEvent.which === 2)
-        );
-      }
+          router.prefetch(href, as, options)["catch"](function(err) {
+            if (false) {
+            }
+          });
+          var curLocale =
+            options && typeof options.locale !== "undefined"
+              ? options.locale
+              : router && router.locale; // Join on an invalid URI character
 
-      function linkClicked(
-        e,
-        router,
-        href,
-        as,
-        replace,
-        shallow,
-        scroll,
-        locale
-      ) {
-        var nodeName = e.currentTarget.nodeName;
+          prefetched[
+            href + "%" + as + (curLocale ? "%" + curLocale : "")
+          ] = true;
+        }
 
-        if (
-          nodeName === "A" &&
-          (isModifiedEvent(e) || !(0, _router.isLocalURL)(href))
-        ) {
-          // ignore click for browser’s default behavior
-          return;
+        function isModifiedEvent(event) {
+          var target = event.currentTarget.target;
+          return (
+            (target && target !== "_self") ||
+            event.metaKey ||
+            event.ctrlKey ||
+            event.shiftKey ||
+            event.altKey || // triggers resource download
+            (event.nativeEvent && event.nativeEvent.which === 2)
+          );
         }
 
-        e.preventDefault(); //  avoid scroll for urls with anchor refs
+        function linkClicked(
+          e,
+          router,
+          href,
+          as,
+          replace,
+          shallow,
+          scroll,
+          locale
+        ) {
+          var nodeName = e.currentTarget.nodeName;
+
+          if (
+            nodeName === "A" &&
+            (isModifiedEvent(e) || !(0, _router.isLocalURL)(href))
+          ) {
+            // ignore click for browser’s default behavior
+            return;
+          }
 
-        if (scroll == null) {
-          scroll = as.indexOf("#") < 0;
-        } // replace state instead of push if prop is present
+          e.preventDefault(); //  avoid scroll for urls with anchor refs
 
-        router[replace ? "replace" : "push"](href, as, {
-          shallow: shallow,
-          locale: locale,
-          scroll: scroll
-        });
-      }
+          if (scroll == null) {
+            scroll = as.indexOf("#") < 0;
+          } // replace state instead of push if prop is present
 
-      function Link(props) {
-        if (false) {
-          var hasWarned,
-            optionalProps,
-            optionalPropsGuard,
-            requiredProps,
-            requiredPropsGuard,
-            createPropError;
+          router[replace ? "replace" : "push"](href, as, {
+            shallow: shallow,
+            locale: locale,
+            scroll: scroll
+          });
         }
 
-        var p = props.prefetch !== false;
-        var router = (0, _router2.useRouter)();
-        var pathname = (router && router.pathname) || "/";
+        function Link(props) {
+          if (false) {
+            var hasWarned,
+              optionalProps,
+              optionalPropsGuard,
+              requiredProps,
+              requiredPropsGuard,
+              createPropError;
+          }
 
-        var _react$default$useMem = _react["default"].useMemo(
-            function() {
-              var _ref = (0, _router.resolveHref)(pathname, props.href, true),
-                _ref2 = _slicedToArray(_ref, 2),
-                resolvedHref = _ref2[0],
-                resolvedAs = _ref2[1];
-
-              return {
-                href: resolvedHref,
-                as: props.as
-                  ? (0, _router.resolveHref)(pathname, props.as)
-                  : resolvedAs || resolvedHref
-              };
-            },
-            [pathname, props.href, props.as]
-          ),
-          href = _react$default$useMem.href,
-          as = _react$default$useMem.as;
-
-        var children = props.children,
-          replace = props.replace,
-          shallow = props.shallow,
-          scroll = props.scroll,
-          locale = props.locale; // Deprecated. Warning shown by propType check. If the children provided is a string (<Link>example</Link>) we wrap it in an <a> tag
-
-        if (typeof children === "string") {
-          children = /*#__PURE__*/ _react["default"].createElement(
-            "a",
-            null,
-            children
-          );
-        } // This will return the first child, if multiple are provided it will throw an error
+          var p = props.prefetch !== false;
+          var router = (0, _router2.useRouter)();
+          var pathname = (router && router.pathname) || "/";
+
+          var _react$default$useMem = _react["default"].useMemo(
+              function() {
+                var _ref = (0, _router.resolveHref)(pathname, props.href, true),
+                  _ref2 = _slicedToArray(_ref, 2),
+                  resolvedHref = _ref2[0],
+                  resolvedAs = _ref2[1];
+
+                return {
+                  href: resolvedHref,
+                  as: props.as
+                    ? (0, _router.resolveHref)(pathname, props.as)
+                    : resolvedAs || resolvedHref
+                };
+              },
+              [pathname, props.href, props.as]
+            ),
+            href = _react$default$useMem.href,
+            as = _react$default$useMem.as;
+
+          var children = props.children,
+            replace = props.replace,
+            shallow = props.shallow,
+            scroll = props.scroll,
+            locale = props.locale; // Deprecated. Warning shown by propType check. If the children provided is a string (<Link>example</Link>) we wrap it in an <a> tag
+
+          if (typeof children === "string") {
+            children = /*#__PURE__*/ _react["default"].createElement(
+              "a",
+              null,
+              children
+            );
+          } // This will return the first child, if multiple are provided it will throw an error
 
-        var child = _react.Children.only(children);
+          var child = _react.Children.only(children);
 
-        var childRef = child && typeof child === "object" && child.ref;
+          var childRef = child && typeof child === "object" && child.ref;
 
-        var _ref3 = (0, _useIntersection.useIntersection)({
-            rootMargin: "200px"
-          }),
-          _ref4 = _slicedToArray(_ref3, 2),
-          setIntersectionRef = _ref4[0],
-          isVisible = _ref4[1];
+          var _ref3 = (0, _useIntersection.useIntersection)({
+              rootMargin: "200px"
+            }),
+            _ref4 = _slicedToArray(_ref3, 2),
+            setIntersectionRef = _ref4[0],
+            isVisible = _ref4[1];
 
-        var setRef = _react["default"].useCallback(
-          function(el) {
-            setIntersectionRef(el);
+          var setRef = _react["default"].useCallback(
+            function(el) {
+              setIntersectionRef(el);
 
-            if (childRef) {
-              if (typeof childRef === "function") childRef(el);
-              else if (typeof childRef === "object") {
-                childRef.current = el;
+              if (childRef) {
+                if (typeof childRef === "function") childRef(el);
+                else if (typeof childRef === "object") {
+                  childRef.current = el;
+                }
               }
-            }
-          },
-          [childRef, setIntersectionRef]
-        );
+            },
+            [childRef, setIntersectionRef]
+          );
 
-        (0, _react.useEffect)(
-          function() {
-            var shouldPrefetch =
-              isVisible && p && (0, _router.isLocalURL)(href);
-            var curLocale =
-              typeof locale !== "undefined" ? locale : router && router.locale;
-            var isPrefetched =
-              prefetched[href + "%" + as + (curLocale ? "%" + curLocale : "")];
-
-            if (shouldPrefetch && !isPrefetched) {
-              prefetch(router, href, as, {
-                locale: curLocale
-              });
-            }
-          },
-          [as, href, isVisible, locale, p, router]
-        );
-        var childProps = {
-          ref: setRef,
-          onClick: function onClick(e) {
-            if (child.props && typeof child.props.onClick === "function") {
-              child.props.onClick(e);
-            }
+          (0, _react.useEffect)(
+            function() {
+              var shouldPrefetch =
+                isVisible && p && (0, _router.isLocalURL)(href);
+              var curLocale =
+                typeof locale !== "undefined"
+                  ? locale
+                  : router && router.locale;
+              var isPrefetched =
+                prefetched[
+                  href + "%" + as + (curLocale ? "%" + curLocale : "")
+                ];
+
+              if (shouldPrefetch && !isPrefetched) {
+                prefetch(router, href, as, {
+                  locale: curLocale
+                });
+              }
+            },
+            [as, href, isVisible, locale, p, router]
+          );
+          var childProps = {
+            ref: setRef,
+            onClick: function onClick(e) {
+              if (child.props && typeof child.props.onClick === "function") {
+                child.props.onClick(e);
+              }
 
-            if (!e.defaultPrevented) {
-              linkClicked(
-                e,
-                router,
-                href,
-                as,
-                replace,
-                shallow,
-                scroll,
-                locale
-              );
+              if (!e.defaultPrevented) {
+                linkClicked(
+                  e,
+                  router,
+                  href,
+                  as,
+                  replace,
+                  shallow,
+                  scroll,
+                  locale
+                );
+              }
             }
-          }
-        };
+          };
 
-        childProps.onMouseEnter = function(e) {
-          if (!(0, _router.isLocalURL)(href)) return;
+          childProps.onMouseEnter = function(e) {
+            if (!(0, _router.isLocalURL)(href)) return;
 
-          if (child.props && typeof child.props.onMouseEnter === "function") {
-            child.props.onMouseEnter(e);
-          }
+            if (child.props && typeof child.props.onMouseEnter === "function") {
+              child.props.onMouseEnter(e);
+            }
 
-          prefetch(router, href, as, {
-            priority: true
-          });
-        }; // If child is an <a> tag and doesn't have a href attribute, or if the 'passHref' property is
-        // defined, we specify the current 'href', so that repetition is not needed by the user
+            prefetch(router, href, as, {
+              priority: true
+            });
+          }; // If child is an <a> tag and doesn't have a href attribute, or if the 'passHref' property is
+          // defined, we specify the current 'href', so that repetition is not needed by the user
 
-        if (
-          props.passHref ||
-          (child.type === "a" && !("href" in child.props))
-        ) {
-          var curLocale =
-            typeof locale !== "undefined" ? locale : router && router.locale; // we only render domain locales if we are currently on a domain locale
-          // so that locale links are still visitable in development/preview envs
-
-          var localeDomain =
-            router &&
-            router.isLocaleDomain &&
-            (0, _router.getDomainLocale)(
-              as,
-              curLocale,
-              router && router.locales,
-              router && router.domainLocales
-            );
-          childProps.href =
-            localeDomain ||
-            (0, _router.addBasePath)(
-              (0, _router.addLocale)(
+          if (
+            props.passHref ||
+            (child.type === "a" && !("href" in child.props))
+          ) {
+            var curLocale =
+              typeof locale !== "undefined" ? locale : router && router.locale; // we only render domain locales if we are currently on a domain locale
+            // so that locale links are still visitable in development/preview envs
+
+            var localeDomain =
+              router &&
+              router.isLocaleDomain &&
+              (0, _router.getDomainLocale)(
                 as,
                 curLocale,
-                router && router.defaultLocale
-              )
-            );
-        }
-
-        return /*#__PURE__*/ _react["default"].cloneElement(child, childProps);
-      }
+                router && router.locales,
+                router && router.domainLocales
+              );
+            childProps.href =
+              localeDomain ||
+              (0, _router.addBasePath)(
+                (0, _router.addLocale)(
+                  as,
+                  curLocale,
+                  router && router.defaultLocale
+                )
+              );
+          }
 
-      var _default = Link;
-      exports["default"] = _default;
+          return /*#__PURE__*/ _react["default"].cloneElement(
+            child,
+            childProps
+          );
+        }
 
-      /***/
-    },
+        var _default = Link;
+        exports["default"] = _default;
 
-    /***/ vNVm: /***/ function(module, exports, __webpack_require__) {
-      "use strict";
+        /***/
+      },
 
-      var _slicedToArray = __webpack_require__("J4zp");
+      /***/ vNVm: /***/ function(module, exports, __webpack_require__) {
+        "use strict";
 
-      exports.__esModule = true;
-      exports.useIntersection = useIntersection;
+        var _slicedToArray = __webpack_require__("J4zp");
 
-      var _react = __webpack_require__("q1tI");
+        exports.__esModule = true;
+        exports.useIntersection = useIntersection;
 
-      var _requestIdleCallback = __webpack_require__("0G5g");
+        var _react = __webpack_require__("q1tI");
 
-      var hasIntersectionObserver = typeof IntersectionObserver !== "undefined";
+        var _requestIdleCallback = __webpack_require__("0G5g");
 
-      function useIntersection(_ref) {
-        var rootMargin = _ref.rootMargin,
-          disabled = _ref.disabled;
-        var isDisabled = disabled || !hasIntersectionObserver;
-        var unobserve = (0, _react.useRef)();
+        var hasIntersectionObserver =
+          typeof IntersectionObserver !== "undefined";
 
-        var _ref2 = (0, _react.useState)(false),
-          _ref3 = _slicedToArray(_ref2, 2),
-          visible = _ref3[0],
-          setVisible = _ref3[1];
+        function useIntersection(_ref) {
+          var rootMargin = _ref.rootMargin,
+            disabled = _ref.disabled;
+          var isDisabled = disabled || !hasIntersectionObserver;
+          var unobserve = (0, _react.useRef)();
 
-        var setRef = (0, _react.useCallback)(
-          function(el) {
-            if (unobserve.current) {
-              unobserve.current();
-              unobserve.current = undefined;
-            }
+          var _ref2 = (0, _react.useState)(false),
+            _ref3 = _slicedToArray(_ref2, 2),
+ 
Post job cleanup.
[command]/usr/bin/git version
git version 2.30.1
[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: 9eb1cd42998316712b9388fe7a25b2f583dbb36e

@ijjk
Copy link
Member

ijjk commented Mar 16, 2021

Stats from current PR

Default Server Mode (Decrease detected ✓)
General Overall increase ⚠️
vercel/next.js canary vercel/next.js bugfix/webpack-out-of-output-path Change
buildDuration 11s 11.2s ⚠️ +216ms
nodeModulesSize 42.8 MB 42.8 MB ⚠️ +30.7 kB
Page Load Tests Overall decrease ⚠️
vercel/next.js canary vercel/next.js bugfix/webpack-out-of-output-path Change
/ failed reqs 0 0
/ total time (seconds) 1.881 1.893 ⚠️ +0.01
/ avg req/sec 1329.26 1320.96 ⚠️ -8.3
/error-in-render failed reqs 0 0
/error-in-render total time (seconds) 1.143 1.211 ⚠️ +0.07
/error-in-render avg req/sec 2186.72 2064.13 ⚠️ -122.59
Client Bundles (main, webpack, commons)
vercel/next.js canary vercel/next.js bugfix/webpack-out-of-output-path Change
677f882d2ed8..a2e7.js gzip 13.4 kB 13.4 kB
framework.HASH.js gzip 39 kB 39 kB
main-HASH.js gzip 7.14 kB 7.14 kB
webpack-HASH.js gzip 751 B 751 B
Overall change 60.3 kB 60.3 kB
Legacy Client Bundles (polyfills)
vercel/next.js canary vercel/next.js bugfix/webpack-out-of-output-path 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 vercel/next.js bugfix/webpack-out-of-output-path Change
_app-fde3324..9dd1.js gzip 1.28 kB 1.28 kB
_error-af59f..582f.js gzip 3.46 kB 3.46 kB
amp-9716187d..0aa8.js gzip 536 B 536 B
hooks-107e90..74c7.js gzip 888 B 888 B
index-ac435c..ecf2.js gzip 227 B 227 B
link-e6cee42..49eb.js gzip 1.64 kB 1.64 kB
routerDirect..dc9d.js gzip 303 B 303 B
withRouter-6..0e02.js gzip 302 B 302 B
Overall change 8.64 kB 8.64 kB
Client Build Manifests
vercel/next.js canary vercel/next.js bugfix/webpack-out-of-output-path Change
_buildManifest.js gzip 346 B 346 B
Overall change 346 B 346 B
Rendered Page Sizes
vercel/next.js canary vercel/next.js bugfix/webpack-out-of-output-path Change
index.html gzip 614 B 614 B
link.html gzip 621 B 621 B
withRouter.html gzip 609 B 609 B
Overall change 1.84 kB 1.84 kB

Serverless Mode
General Overall increase ⚠️
vercel/next.js canary vercel/next.js bugfix/webpack-out-of-output-path Change
buildDuration 12.7s 12.6s -88ms
nodeModulesSize 42.8 MB 42.8 MB ⚠️ +30.7 kB
Client Bundles (main, webpack, commons)
vercel/next.js canary vercel/next.js bugfix/webpack-out-of-output-path Change
677f882d2ed8..a2e7.js gzip 13.4 kB 13.4 kB
framework.HASH.js gzip 39 kB 39 kB
main-HASH.js gzip 7.14 kB 7.14 kB
webpack-HASH.js gzip 751 B 751 B
Overall change 60.3 kB 60.3 kB
Legacy Client Bundles (polyfills)
vercel/next.js canary vercel/next.js bugfix/webpack-out-of-output-path 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 vercel/next.js bugfix/webpack-out-of-output-path Change
_app-fde3324..9dd1.js gzip 1.28 kB 1.28 kB
_error-af59f..582f.js gzip 3.46 kB 3.46 kB
amp-9716187d..0aa8.js gzip 536 B 536 B
hooks-107e90..74c7.js gzip 888 B 888 B
index-ac435c..ecf2.js gzip 227 B 227 B
link-e6cee42..49eb.js gzip 1.64 kB 1.64 kB
routerDirect..dc9d.js gzip 303 B 303 B
withRouter-6..0e02.js gzip 302 B 302 B
Overall change 8.64 kB 8.64 kB
Client Build Manifests
vercel/next.js canary vercel/next.js bugfix/webpack-out-of-output-path Change
_buildManifest.js gzip 346 B 346 B
Overall change 346 B 346 B
Serverless bundles
vercel/next.js canary vercel/next.js bugfix/webpack-out-of-output-path Change
_error.js 1.02 MB 1.02 MB
404.html 2.67 kB 2.67 kB
500.html 2.65 kB 2.65 kB
amp.amp.html 10.6 kB 10.6 kB
amp.html 1.86 kB 1.86 kB
hooks.html 1.92 kB 1.92 kB
index.js 1.02 MB 1.02 MB
link.js 1.08 MB 1.08 MB
routerDirect.js 1.07 MB 1.07 MB
withRouter.js 1.07 MB 1.07 MB
Overall change 5.27 MB 5.27 MB

Webpack 5 Mode (Increase detected ⚠️)
General Overall increase ⚠️
vercel/next.js canary vercel/next.js bugfix/webpack-out-of-output-path Change
buildDuration 12.5s 12.9s ⚠️ +351ms
nodeModulesSize 42.8 MB 42.8 MB ⚠️ +30.7 kB
Page Load Tests Overall increase ✓
vercel/next.js canary vercel/next.js bugfix/webpack-out-of-output-path Change
/ failed reqs 0 0
/ total time (seconds) 1.923 1.837 -0.09
/ avg req/sec 1300.32 1361.23 +60.91
/error-in-render failed reqs 0 0
/error-in-render total time (seconds) 1.194 1.154 -0.04
/error-in-render avg req/sec 2094.31 2166.19 +71.88
Client Bundles (main, webpack, commons) Overall increase ⚠️
vercel/next.js canary vercel/next.js bugfix/webpack-out-of-output-path Change
597-2bc2376a..203d.js gzip 13.3 kB 13.3 kB
framework.HASH.js gzip 39.3 kB 39.3 kB
main-HASH.js gzip 7.08 kB 7.1 kB ⚠️ +20 B
webpack-HASH.js gzip 954 B 993 B ⚠️ +39 B
Overall change 60.7 kB 60.7 kB ⚠️ +59 B
Legacy Client Bundles (polyfills) Overall increase ⚠️
vercel/next.js canary vercel/next.js bugfix/webpack-out-of-output-path Change
polyfills-HASH.js gzip 31.1 kB 31.1 kB ⚠️ +12 B
Overall change 31.1 kB 31.1 kB ⚠️ +12 B
Client Pages Overall increase ⚠️
vercel/next.js canary vercel/next.js bugfix/webpack-out-of-output-path Change
_app-0c62a59..94b7.js gzip 1.26 kB 1.28 kB ⚠️ +24 B
_error-97d24..ed28.js gzip 3.38 kB 3.4 kB ⚠️ +22 B
amp-2926e4c2..9ccc.js gzip 536 B 560 B ⚠️ +24 B
hooks-1ed65b..8908.js gzip 902 B 924 B ⚠️ +22 B
index-6259b6..77d8.js gzip 230 B 243 B ⚠️ +13 B
link-2a29128..cc6e.js gzip 1.63 kB 1.65 kB ⚠️ +18 B
routerDirect..862a.js gzip 306 B 333 B ⚠️ +27 B
withRouter-4..76fd.js gzip 302 B 329 B ⚠️ +27 B
Overall change 8.54 kB 8.72 kB ⚠️ +177 B
Client Build Manifests Overall increase ⚠️
vercel/next.js canary vercel/next.js bugfix/webpack-out-of-output-path Change
_buildManifest.js gzip 322 B 324 B ⚠️ +2 B
Overall change 322 B 324 B ⚠️ +2 B
Rendered Page Sizes Overall increase ⚠️
vercel/next.js canary vercel/next.js bugfix/webpack-out-of-output-path Change
index.html gzip 585 B 586 B ⚠️ +1 B
link.html gzip 593 B 593 B
withRouter.html gzip 580 B 582 B ⚠️ +2 B
Overall change 1.76 kB 1.76 kB ⚠️ +3 B

Diffs

Diff for index.html
@@ -43,7 +43,7 @@
         "props": { "pageProps": {} },
         "page": "/",
         "query": {},
-        "buildId": "nQkKt9hwW8Zx7sMAGrGtp",
+        "buildId": "EMsD7daW-qUUwdYCnoDnX",
         "isFallback": false,
         "gip": true
       }
@@ -77,11 +77,11 @@
       async=""
     ></script>
     <script
-      src="/_next/static/nQkKt9hwW8Zx7sMAGrGtp/_buildManifest.js"
+      src="/_next/static/EMsD7daW-qUUwdYCnoDnX/_buildManifest.js"
       async=""
     ></script>
     <script
-      src="/_next/static/nQkKt9hwW8Zx7sMAGrGtp/_ssgManifest.js"
+      src="/_next/static/EMsD7daW-qUUwdYCnoDnX/_ssgManifest.js"
       async=""
     ></script>
   </body>
Diff for link.html
@@ -48,7 +48,7 @@
         "props": { "pageProps": {} },
         "page": "/link",
         "query": {},
-        "buildId": "nQkKt9hwW8Zx7sMAGrGtp",
+        "buildId": "EMsD7daW-qUUwdYCnoDnX",
         "isFallback": false,
         "gip": true
       }
@@ -82,11 +82,11 @@
       async=""
     ></script>
     <script
-      src="/_next/static/nQkKt9hwW8Zx7sMAGrGtp/_buildManifest.js"
+      src="/_next/static/EMsD7daW-qUUwdYCnoDnX/_buildManifest.js"
       async=""
     ></script>
     <script
-      src="/_next/static/nQkKt9hwW8Zx7sMAGrGtp/_ssgManifest.js"
+      src="/_next/static/EMsD7daW-qUUwdYCnoDnX/_ssgManifest.js"
       async=""
     ></script>
   </body>
Diff for withRouter.html
@@ -43,7 +43,7 @@
         "props": { "pageProps": {} },
         "page": "/withRouter",
         "query": {},
-        "buildId": "nQkKt9hwW8Zx7sMAGrGtp",
+        "buildId": "EMsD7daW-qUUwdYCnoDnX",
         "isFallback": false,
         "gip": true
       }
@@ -77,11 +77,11 @@
       async=""
     ></script>
     <script
-      src="/_next/static/nQkKt9hwW8Zx7sMAGrGtp/_buildManifest.js"
+      src="/_next/static/EMsD7daW-qUUwdYCnoDnX/_buildManifest.js"
       async=""
     ></script>
     <script
-      src="/_next/static/nQkKt9hwW8Zx7sMAGrGtp/_ssgManifest.js"
+      src="/_next/static/EMsD7daW-qUUwdYCnoDnX/_ssgManifest.js"
       async=""
     ></script>
   </body>
Commit: c70adb0

@ijjk
Copy link
Member

ijjk commented Mar 16, 2021

Failing test suites

Commit: c70adb0

test/integration/build-output/test/index.test.js

  • Build Output > Basic Application Output > should not deviate from snapshot
Expand output

● Build Output › Basic Application Output › should not deviate from snapshot

expect(received).toBeCloseTo(expected, precision)

Expected: 64.3
Received: 64.4

Expected precision:    1
Expected difference: < 0.05
Received difference:   0.10000000000000853

  105 |       expect(err404FirstLoad.endsWith('kB')).toBe(true)
  106 | 
> 107 |       expect(parseFloat(sharedByAll)).toBeCloseTo(64.3, 1)
      |                                       ^
  108 |       expect(sharedByAll.endsWith('kB')).toBe(true)
  109 | 
  110 |       if (_appSize.endsWith('kB')) {

  at Object.<anonymous> (integration/build-output/test/index.test.js:107:39)

test/integration/gssp-ssr-change-reloading/test/index.test.js

  • GS(S)P Server-Side Change Reloading > should not reload page when client-side is changed too GSP
Expand output

● GS(S)P Server-Side Change Reloading › should not reload page when client-side is changed too GSP

NoSuchElementError: no such element: Unable to locate element: {"method":"css selector","selector":"#props"}
  (Session info: headless chrome=89.0.4389.82)

  35 |     await browser.eval(() => (window.beforeChange = 'hi'))
  36 | 
> 37 |     const props = JSON.parse(await browser.elementByCss('#props').text())
     |                              ^
  38 | 
  39 |     const page = new File(join(appDir, 'pages/gsp-blog/[post].js'))
  40 |     page.replace('change me', 'changed')

  at Object.throwDecodedError (../node_modules/selenium-webdriver/lib/error.js:550:15)
  at parseHttpResponse (../node_modules/selenium-webdriver/lib/http.js:565:13)
  at Executor.execute (../node_modules/selenium-webdriver/lib/http.js:491:26)
  at thenableWebDriverProxy.execute (../node_modules/selenium-webdriver/lib/webdriver.js:700:17)
  at Object.<anonymous> (integration/gssp-ssr-change-reloading/test/index.test.js:37:30)

@sokra sokra force-pushed the bugfix/webpack-out-of-output-path branch from 156a227 to 30adab7 Compare March 17, 2021 07:57
@ijjk
Copy link
Member

ijjk commented Mar 17, 2021

Stats from current PR

Default Server Mode (Increase detected ⚠️)
General Overall increase ⚠️
vercel/next.js canary vercel/next.js bugfix/webpack-out-of-output-path Change
buildDuration 12.8s 12.6s -209ms
nodeModulesSize 43.6 MB 43.6 MB ⚠️ +30.7 kB
Page Load Tests Overall increase ✓
vercel/next.js canary vercel/next.js bugfix/webpack-out-of-output-path Change
/ failed reqs 0 0
/ total time (seconds) 2.353 2.241 -0.11
/ avg req/sec 1062.53 1115.46 +52.93
/error-in-render failed reqs 0 0
/error-in-render total time (seconds) 1.552 1.531 -0.02
/error-in-render avg req/sec 1610.85 1632.53 +21.68
Client Bundles (main, webpack, commons)
vercel/next.js canary vercel/next.js bugfix/webpack-out-of-output-path Change
677f882d2ed8..a2e7.js gzip 13.4 kB 13.4 kB
framework.HASH.js gzip 39 kB 39 kB
main-HASH.js gzip 7.14 kB 7.14 kB
webpack-HASH.js gzip 751 B 751 B
Overall change 60.3 kB 60.3 kB
Legacy Client Bundles (polyfills)
vercel/next.js canary vercel/next.js bugfix/webpack-out-of-output-path 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 vercel/next.js bugfix/webpack-out-of-output-path Change
_app-fde3324..9dd1.js gzip 1.28 kB 1.28 kB
_error-af59f..582f.js gzip 3.46 kB 3.46 kB
amp-9716187d..0aa8.js gzip 536 B 536 B
hooks-107e90..74c7.js gzip 888 B 888 B
index-ac435c..ecf2.js gzip 227 B 227 B
link-e6cee42..49eb.js gzip 1.64 kB 1.64 kB
routerDirect..dc9d.js gzip 303 B 303 B
withRouter-6..0e02.js gzip 302 B 302 B
Overall change 8.64 kB 8.64 kB
Client Build Manifests
vercel/next.js canary vercel/next.js bugfix/webpack-out-of-output-path Change
_buildManifest.js gzip 346 B 346 B
Overall change 346 B 346 B
Rendered Page Sizes
vercel/next.js canary vercel/next.js bugfix/webpack-out-of-output-path Change
index.html gzip 613 B 613 B
link.html gzip 621 B 621 B
withRouter.html gzip 608 B 608 B
Overall change 1.84 kB 1.84 kB

Serverless Mode
General Overall increase ⚠️
vercel/next.js canary vercel/next.js bugfix/webpack-out-of-output-path Change
buildDuration 14.6s 14.8s ⚠️ +215ms
nodeModulesSize 43.6 MB 43.6 MB ⚠️ +30.7 kB
Client Bundles (main, webpack, commons)
vercel/next.js canary vercel/next.js bugfix/webpack-out-of-output-path Change
677f882d2ed8..a2e7.js gzip 13.4 kB 13.4 kB
framework.HASH.js gzip 39 kB 39 kB
main-HASH.js gzip 7.14 kB 7.14 kB
webpack-HASH.js gzip 751 B 751 B
Overall change 60.3 kB 60.3 kB
Legacy Client Bundles (polyfills)
vercel/next.js canary vercel/next.js bugfix/webpack-out-of-output-path 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 vercel/next.js bugfix/webpack-out-of-output-path Change
_app-fde3324..9dd1.js gzip 1.28 kB 1.28 kB
_error-af59f..582f.js gzip 3.46 kB 3.46 kB
amp-9716187d..0aa8.js gzip 536 B 536 B
hooks-107e90..74c7.js gzip 888 B 888 B
index-ac435c..ecf2.js gzip 227 B 227 B
link-e6cee42..49eb.js gzip 1.64 kB 1.64 kB
routerDirect..dc9d.js gzip 303 B 303 B
withRouter-6..0e02.js gzip 302 B 302 B
Overall change 8.64 kB 8.64 kB
Client Build Manifests
vercel/next.js canary vercel/next.js bugfix/webpack-out-of-output-path Change
_buildManifest.js gzip 346 B 346 B
Overall change 346 B 346 B
Serverless bundles
vercel/next.js canary vercel/next.js bugfix/webpack-out-of-output-path Change
_error.js 1.02 MB 1.02 MB
404.html 2.67 kB 2.67 kB
500.html 2.65 kB 2.65 kB
amp.amp.html 10.6 kB 10.6 kB
amp.html 1.86 kB 1.86 kB
hooks.html 1.92 kB 1.92 kB
index.js 1.02 MB 1.02 MB
link.js 1.08 MB 1.08 MB
routerDirect.js 1.07 MB 1.07 MB
withRouter.js 1.07 MB 1.07 MB
Overall change 5.27 MB 5.27 MB

Webpack 5 Mode (Increase detected ⚠️)
General Overall increase ⚠️
vercel/next.js canary vercel/next.js bugfix/webpack-out-of-output-path Change
buildDuration 14.3s 15.4s ⚠️ +1.1s
nodeModulesSize 43.6 MB 43.6 MB ⚠️ +30.7 kB
Page Load Tests Overall decrease ⚠️
vercel/next.js canary vercel/next.js bugfix/webpack-out-of-output-path Change
/ failed reqs 0 0
/ total time (seconds) 2.247 2.315 ⚠️ +0.07
/ avg req/sec 1112.8 1079.78 ⚠️ -33.02
/error-in-render failed reqs 0 0
/error-in-render total time (seconds) 1.452 1.516 ⚠️ +0.06
/error-in-render avg req/sec 1721.59 1649.6 ⚠️ -71.99
Client Bundles (main, webpack, commons) Overall increase ⚠️
vercel/next.js canary vercel/next.js bugfix/webpack-out-of-output-path Change
597-2bc2376a..203d.js gzip 13.3 kB 13.3 kB
framework.HASH.js gzip 39.3 kB 39.3 kB
main-HASH.js gzip 7.08 kB 7.1 kB ⚠️ +20 B
webpack-HASH.js gzip 954 B 993 B ⚠️ +39 B
Overall change 60.7 kB 60.7 kB ⚠️ +59 B
Legacy Client Bundles (polyfills) Overall increase ⚠️
vercel/next.js canary vercel/next.js bugfix/webpack-out-of-output-path Change
polyfills-HASH.js gzip 31.1 kB 31.1 kB ⚠️ +12 B
Overall change 31.1 kB 31.1 kB ⚠️ +12 B
Client Pages Overall increase ⚠️
vercel/next.js canary vercel/next.js bugfix/webpack-out-of-output-path Change
_app-0c62a59..94b7.js gzip 1.26 kB 1.28 kB ⚠️ +24 B
_error-97d24..ed28.js gzip 3.38 kB 3.4 kB ⚠️ +22 B
amp-2926e4c2..9ccc.js gzip 536 B 560 B ⚠️ +24 B
hooks-1ed65b..8908.js gzip 902 B 924 B ⚠️ +22 B
index-6259b6..77d8.js gzip 230 B 243 B ⚠️ +13 B
link-2a29128..cc6e.js gzip 1.63 kB 1.65 kB ⚠️ +18 B
routerDirect..862a.js gzip 306 B 333 B ⚠️ +27 B
withRouter-4..76fd.js gzip 302 B 329 B ⚠️ +27 B
Overall change 8.54 kB 8.72 kB ⚠️ +177 B
Client Build Manifests Overall increase ⚠️
vercel/next.js canary vercel/next.js bugfix/webpack-out-of-output-path Change
_buildManifest.js gzip 322 B 324 B ⚠️ +2 B
Overall change 322 B 324 B ⚠️ +2 B
Rendered Page Sizes Overall decrease ✓
vercel/next.js canary vercel/next.js bugfix/webpack-out-of-output-path Change
index.html gzip 587 B 585 B -2 B
link.html gzip 594 B 591 B -3 B
withRouter.html gzip 581 B 580 B -1 B
Overall change 1.76 kB 1.76 kB -6 B

Diffs

Diff for index.html
@@ -43,7 +43,7 @@
         "props": { "pageProps": {} },
         "page": "/",
         "query": {},
-        "buildId": "UTJcG2pRPS_xGzyVedPRS",
+        "buildId": "ndyG2RJJHQeN77u0N7-pc",
         "isFallback": false,
         "gip": true
       }
@@ -77,11 +77,11 @@
       async=""
     ></script>
     <script
-      src="/_next/static/UTJcG2pRPS_xGzyVedPRS/_buildManifest.js"
+      src="/_next/static/ndyG2RJJHQeN77u0N7-pc/_buildManifest.js"
       async=""
     ></script>
     <script
-      src="/_next/static/UTJcG2pRPS_xGzyVedPRS/_ssgManifest.js"
+      src="/_next/static/ndyG2RJJHQeN77u0N7-pc/_ssgManifest.js"
       async=""
     ></script>
   </body>
Diff for link.html
@@ -48,7 +48,7 @@
         "props": { "pageProps": {} },
         "page": "/link",
         "query": {},
-        "buildId": "UTJcG2pRPS_xGzyVedPRS",
+        "buildId": "ndyG2RJJHQeN77u0N7-pc",
         "isFallback": false,
         "gip": true
       }
@@ -82,11 +82,11 @@
       async=""
     ></script>
     <script
-      src="/_next/static/UTJcG2pRPS_xGzyVedPRS/_buildManifest.js"
+      src="/_next/static/ndyG2RJJHQeN77u0N7-pc/_buildManifest.js"
       async=""
     ></script>
     <script
-      src="/_next/static/UTJcG2pRPS_xGzyVedPRS/_ssgManifest.js"
+      src="/_next/static/ndyG2RJJHQeN77u0N7-pc/_ssgManifest.js"
       async=""
     ></script>
   </body>
Diff for withRouter.html
@@ -43,7 +43,7 @@
         "props": { "pageProps": {} },
         "page": "/withRouter",
         "query": {},
-        "buildId": "UTJcG2pRPS_xGzyVedPRS",
+        "buildId": "ndyG2RJJHQeN77u0N7-pc",
         "isFallback": false,
         "gip": true
       }
@@ -77,11 +77,11 @@
       async=""
     ></script>
     <script
-      src="/_next/static/UTJcG2pRPS_xGzyVedPRS/_buildManifest.js"
+      src="/_next/static/ndyG2RJJHQeN77u0N7-pc/_buildManifest.js"
       async=""
     ></script>
     <script
-      src="/_next/static/UTJcG2pRPS_xGzyVedPRS/_ssgManifest.js"
+      src="/_next/static/ndyG2RJJHQeN77u0N7-pc/_ssgManifest.js"
       async=""
     ></script>
   </body>
Commit: 30adab7

@ijjk
Copy link
Member

ijjk commented Mar 17, 2021

Stats from current PR

Default Server Mode (Decrease detected ✓)
General Overall increase ⚠️
vercel/next.js canary vercel/next.js bugfix/webpack-out-of-output-path Change
buildDuration 12.1s 12.5s ⚠️ +424ms
nodeModulesSize 43.6 MB 43.6 MB ⚠️ +30.7 kB
Page Load Tests Overall decrease ⚠️
vercel/next.js canary vercel/next.js bugfix/webpack-out-of-output-path Change
/ failed reqs 0 0
/ total time (seconds) 2.192 2.322 ⚠️ +0.13
/ avg req/sec 1140.28 1076.47 ⚠️ -63.81
/error-in-render failed reqs 0 0
/error-in-render total time (seconds) 1.455 1.505 ⚠️ +0.05
/error-in-render avg req/sec 1717.66 1661 ⚠️ -56.66
Client Bundles (main, webpack, commons)
vercel/next.js canary vercel/next.js bugfix/webpack-out-of-output-path Change
677f882d2ed8..a2e7.js gzip 13.4 kB 13.4 kB
framework.HASH.js gzip 39 kB 39 kB
main-HASH.js gzip 7.14 kB 7.14 kB
webpack-HASH.js gzip 751 B 751 B
Overall change 60.3 kB 60.3 kB
Legacy Client Bundles (polyfills)
vercel/next.js canary vercel/next.js bugfix/webpack-out-of-output-path 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 vercel/next.js bugfix/webpack-out-of-output-path Change
_app-fde3324..9dd1.js gzip 1.28 kB 1.28 kB
_error-af59f..582f.js gzip 3.46 kB 3.46 kB
amp-9716187d..0aa8.js gzip 536 B 536 B
hooks-107e90..74c7.js gzip 888 B 888 B
index-ac435c..ecf2.js gzip 227 B 227 B
link-e6cee42..49eb.js gzip 1.64 kB 1.64 kB
routerDirect..dc9d.js gzip 303 B 303 B
withRouter-6..0e02.js gzip 302 B 302 B
Overall change 8.64 kB 8.64 kB
Client Build Manifests
vercel/next.js canary vercel/next.js bugfix/webpack-out-of-output-path Change
_buildManifest.js gzip 346 B 346 B
Overall change 346 B 346 B
Rendered Page Sizes
vercel/next.js canary vercel/next.js bugfix/webpack-out-of-output-path Change
index.html gzip 613 B 613 B
link.html gzip 621 B 621 B
withRouter.html gzip 608 B 608 B
Overall change 1.84 kB 1.84 kB

Serverless Mode
General Overall increase ⚠️
vercel/next.js canary vercel/next.js bugfix/webpack-out-of-output-path Change
buildDuration 14s 15s ⚠️ +999ms
nodeModulesSize 43.6 MB 43.6 MB ⚠️ +30.7 kB
Client Bundles (main, webpack, commons)
vercel/next.js canary vercel/next.js bugfix/webpack-out-of-output-path Change
677f882d2ed8..a2e7.js gzip 13.4 kB 13.4 kB
framework.HASH.js gzip 39 kB 39 kB
main-HASH.js gzip 7.14 kB 7.14 kB
webpack-HASH.js gzip 751 B 751 B
Overall change 60.3 kB 60.3 kB
Legacy Client Bundles (polyfills)
vercel/next.js canary vercel/next.js bugfix/webpack-out-of-output-path 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 vercel/next.js bugfix/webpack-out-of-output-path Change
_app-fde3324..9dd1.js gzip 1.28 kB 1.28 kB
_error-af59f..582f.js gzip 3.46 kB 3.46 kB
amp-9716187d..0aa8.js gzip 536 B 536 B
hooks-107e90..74c7.js gzip 888 B 888 B
index-ac435c..ecf2.js gzip 227 B 227 B
link-e6cee42..49eb.js gzip 1.64 kB 1.64 kB
routerDirect..dc9d.js gzip 303 B 303 B
withRouter-6..0e02.js gzip 302 B 302 B
Overall change 8.64 kB 8.64 kB
Client Build Manifests
vercel/next.js canary vercel/next.js bugfix/webpack-out-of-output-path Change
_buildManifest.js gzip 346 B 346 B
Overall change 346 B 346 B
Serverless bundles
vercel/next.js canary vercel/next.js bugfix/webpack-out-of-output-path Change
_error.js 1.02 MB 1.02 MB
404.html 2.67 kB 2.67 kB
500.html 2.65 kB 2.65 kB
amp.amp.html 10.6 kB 10.6 kB
amp.html 1.86 kB 1.86 kB
hooks.html 1.92 kB 1.92 kB
index.js 1.02 MB 1.02 MB
link.js 1.08 MB 1.08 MB
routerDirect.js 1.07 MB 1.07 MB
withRouter.js 1.07 MB 1.07 MB
Overall change 5.27 MB 5.27 MB

Webpack 5 Mode (Increase detected ⚠️)
General Overall increase ⚠️
vercel/next.js canary vercel/next.js bugfix/webpack-out-of-output-path Change
buildDuration 14.7s 15s ⚠️ +304ms
nodeModulesSize 43.6 MB 43.6 MB ⚠️ +30.7 kB
Page Load Tests Overall decrease ⚠️
vercel/next.js canary vercel/next.js bugfix/webpack-out-of-output-path Change
/ failed reqs 0 0
/ total time (seconds) 2.327 2.265 -0.06
/ avg req/sec 1074.4 1103.56 +29.16
/error-in-render failed reqs 0 0
/error-in-render total time (seconds) 1.655 1.687 ⚠️ +0.03
/error-in-render avg req/sec 1510.77 1481.51 ⚠️ -29.26
Client Bundles (main, webpack, commons) Overall increase ⚠️
vercel/next.js canary vercel/next.js bugfix/webpack-out-of-output-path Change
597-2bc2376a..203d.js gzip 13.3 kB 13.3 kB
framework.HASH.js gzip 39.3 kB 39.3 kB
main-HASH.js gzip 7.08 kB 7.1 kB ⚠️ +20 B
webpack-HASH.js gzip 954 B 993 B ⚠️ +39 B
Overall change 60.7 kB 60.7 kB ⚠️ +59 B
Legacy Client Bundles (polyfills) Overall increase ⚠️
vercel/next.js canary vercel/next.js bugfix/webpack-out-of-output-path Change
polyfills-HASH.js gzip 31.1 kB 31.1 kB ⚠️ +12 B
Overall change 31.1 kB 31.1 kB ⚠️ +12 B
Client Pages Overall increase ⚠️
vercel/next.js canary vercel/next.js bugfix/webpack-out-of-output-path Change
_app-0c62a59..94b7.js gzip 1.26 kB 1.28 kB ⚠️ +24 B
_error-97d24..ed28.js gzip 3.38 kB 3.4 kB ⚠️ +22 B
amp-2926e4c2..9ccc.js gzip 536 B 560 B ⚠️ +24 B
hooks-1ed65b..8908.js gzip 902 B 924 B ⚠️ +22 B
index-6259b6..77d8.js gzip 230 B 243 B ⚠️ +13 B
link-2a29128..cc6e.js gzip 1.63 kB 1.65 kB ⚠️ +18 B
routerDirect..862a.js gzip 306 B 333 B ⚠️ +27 B
withRouter-4..76fd.js gzip 302 B 329 B ⚠️ +27 B
Overall change 8.54 kB 8.72 kB ⚠️ +177 B
Client Build Manifests Overall increase ⚠️
vercel/next.js canary vercel/next.js bugfix/webpack-out-of-output-path Change
_buildManifest.js gzip 322 B 324 B ⚠️ +2 B
Overall change 322 B 324 B ⚠️ +2 B
Rendered Page Sizes Overall decrease ✓
vercel/next.js canary vercel/next.js bugfix/webpack-out-of-output-path Change
index.html gzip 587 B 585 B -2 B
link.html gzip 594 B 591 B -3 B
withRouter.html gzip 581 B 580 B -1 B
Overall change 1.76 kB 1.76 kB -6 B

Diffs

Diff for index.html
@@ -43,7 +43,7 @@
         "props": { "pageProps": {} },
         "page": "/",
         "query": {},
-        "buildId": "21-74vT2WFa_Wm37tPBn5",
+        "buildId": "ganuicJB-6-zjJttBQTkZ",
         "isFallback": false,
         "gip": true
       }
@@ -77,11 +77,11 @@
       async=""
     ></script>
     <script
-      src="/_next/static/21-74vT2WFa_Wm37tPBn5/_buildManifest.js"
+      src="/_next/static/ganuicJB-6-zjJttBQTkZ/_buildManifest.js"
       async=""
     ></script>
     <script
-      src="/_next/static/21-74vT2WFa_Wm37tPBn5/_ssgManifest.js"
+      src="/_next/static/ganuicJB-6-zjJttBQTkZ/_ssgManifest.js"
       async=""
     ></script>
   </body>
Diff for link.html
@@ -48,7 +48,7 @@
         "props": { "pageProps": {} },
         "page": "/link",
         "query": {},
-        "buildId": "21-74vT2WFa_Wm37tPBn5",
+        "buildId": "ganuicJB-6-zjJttBQTkZ",
         "isFallback": false,
         "gip": true
       }
@@ -82,11 +82,11 @@
       async=""
     ></script>
     <script
-      src="/_next/static/21-74vT2WFa_Wm37tPBn5/_buildManifest.js"
+      src="/_next/static/ganuicJB-6-zjJttBQTkZ/_buildManifest.js"
       async=""
     ></script>
     <script
-      src="/_next/static/21-74vT2WFa_Wm37tPBn5/_ssgManifest.js"
+      src="/_next/static/ganuicJB-6-zjJttBQTkZ/_ssgManifest.js"
       async=""
     ></script>
   </body>
Diff for withRouter.html
@@ -43,7 +43,7 @@
         "props": { "pageProps": {} },
         "page": "/withRouter",
         "query": {},
-        "buildId": "21-74vT2WFa_Wm37tPBn5",
+        "buildId": "ganuicJB-6-zjJttBQTkZ",
         "isFallback": false,
         "gip": true
       }
@@ -77,11 +77,11 @@
       async=""
     ></script>
     <script
-      src="/_next/static/21-74vT2WFa_Wm37tPBn5/_buildManifest.js"
+      src="/_next/static/ganuicJB-6-zjJttBQTkZ/_buildManifest.js"
       async=""
     ></script>
     <script
-      src="/_next/static/21-74vT2WFa_Wm37tPBn5/_ssgManifest.js"
+      src="/_next/static/ganuicJB-6-zjJttBQTkZ/_ssgManifest.js"
       async=""
     ></script>
   </body>
Commit: 26ca969

@kodiakhq kodiakhq bot merged commit e019ef6 into canary Mar 17, 2021
@kodiakhq kodiakhq bot deleted the bugfix/webpack-out-of-output-path branch March 17, 2021 08:32
flybayer pushed a commit to blitz-js/next.js that referenced this pull request Apr 29, 2021
…nv vars from cache version (vercel#23113)

* this will fix problems with serverless target which doesn't use a runtime chunk
* It also omit env vars from contributing to cache version as webpack will handle that now
* It moves the webpack-runtime chunk from ./chunks back to ./
@vercel vercel locked as resolved and limited conversation to collaborators Jan 28, 2022
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants