next.js icon indicating copy to clipboard operation
next.js copied to clipboard

chore: add build step to `eslint-plugin-next`

Open balazsorban44 opened this issue 3 years ago • 2 comments
trafficstars

Follow-up on https://github.com/vercel/next.js/pull/38534#pullrequestreview-1035020450

This lets us use modern JS/TS syntax in ESLint rules and avoid issues like #38530 and #36693

Bug

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

Feature

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

Documentation / Examples

  • [ ] Make sure the linting passes by running pnpm lint
  • [ ] The examples guidelines are followed from our contributing doc

balazsorban44 avatar Jul 14 '22 15:07 balazsorban44

Stats from current PR

Default Build (Decrease detected ✓)
General Overall increase ⚠️
vercel/next.js canary vercel/next.js chore/add-build-to-eslint-plugin-next Change
buildDuration 23.3s 21.9s -1.4s
buildDurationCached 7.7s 7.6s -81ms
nodeModulesSize 74.2 MB 74.2 MB
nextStartRea..uration (ms) 291ms 297ms ⚠️ +6ms
nextDevReadyDuration 320ms 326ms ⚠️ +6ms
Page Load Tests Overall decrease ⚠️
vercel/next.js canary vercel/next.js chore/add-build-to-eslint-plugin-next Change
/ failed reqs 0 0
/ total time (seconds) 9.24 9.407 ⚠️ +0.17
/ avg req/sec 270.58 265.77 ⚠️ -4.81
/error-in-render failed reqs 0 0
/error-in-render total time (seconds) 6.248 6.368 ⚠️ +0.12
/error-in-render avg req/sec 400.13 392.62 ⚠️ -7.51
Client Bundles (main, webpack) Overall decrease ✓
vercel/next.js canary vercel/next.js chore/add-build-to-eslint-plugin-next Change
900.HASH.js gzip 179 B 179 B
framework-HASH.js gzip 45.3 kB 45.3 kB
main-HASH.js gzip 30.9 kB 30.9 kB -32 B
webpack-HASH.js gzip 1.54 kB 1.54 kB
Overall change 77.8 kB 77.8 kB -32 B
Legacy Client Bundles (polyfills)
vercel/next.js canary vercel/next.js chore/add-build-to-eslint-plugin-next Change
polyfills-HASH.js gzip 31 kB 31 kB
Overall change 31 kB 31 kB
Client Pages Overall decrease ✓
vercel/next.js canary vercel/next.js chore/add-build-to-eslint-plugin-next Change
_app-HASH.js gzip 201 B 202 B ⚠️ +1 B
_error-HASH.js gzip 195 B 195 B
amp-HASH.js gzip 492 B 493 B ⚠️ +1 B
css-HASH.js gzip 327 B 329 B ⚠️ +2 B
dynamic-HASH.js gzip 2.03 kB 2.03 kB
edge-ssr-HASH.js gzip 288 B 287 B -1 B
head-HASH.js gzip 356 B 355 B -1 B
hooks-HASH.js gzip 800 B 800 B
image-HASH.js gzip 4.87 kB 4.87 kB -5 B
index-HASH.js gzip 261 B 263 B ⚠️ +2 B
link-HASH.js gzip 2.37 kB 2.36 kB -3 B
routerDirect..HASH.js gzip 322 B 321 B -1 B
script-HASH.js gzip 392 B 391 B -1 B
withRouter-HASH.js gzip 320 B 321 B ⚠️ +1 B
85e02e95b279..7e3.css gzip 107 B 107 B
Overall change 13.3 kB 13.3 kB -5 B
Client Build Manifests Overall decrease ✓
vercel/next.js canary vercel/next.js chore/add-build-to-eslint-plugin-next Change
_buildManifest.js gzip 484 B 482 B -2 B
Overall change 484 B 482 B -2 B
Rendered Page Sizes Overall increase ⚠️
vercel/next.js canary vercel/next.js chore/add-build-to-eslint-plugin-next Change
index.html gzip 512 B 513 B ⚠️ +1 B
link.html gzip 526 B 526 B
withRouter.html gzip 507 B 507 B
Overall change 1.54 kB 1.55 kB ⚠️ +1 B
Edge SSR Page bundle Size Overall decrease ✓
vercel/next.js canary vercel/next.js chore/add-build-to-eslint-plugin-next Change
edge-ssr.js gzip 115 kB 115 kB -7 B
Overall change 115 kB 115 kB -7 B
Middleware size Overall decrease ✓
vercel/next.js canary vercel/next.js chore/add-build-to-eslint-plugin-next Change
middleware-b..fest.js gzip 578 B 576 B -2 B
middleware-r..fest.js gzip 145 B 145 B
middleware.js gzip 18.8 kB 18.8 kB -10 B
edge-runtime..pack.js gzip 1.83 kB 1.83 kB
Overall change 21.3 kB 21.3 kB -12 B

Diffs

Diff for middleware-b..-manifest.js
@@ -9,89 +9,89 @@ self.__BUILD_MANIFEST = {
   rootMainFiles: [],
   pages: {
     "/": [
-      "static/chunks/webpack-596ddb9e5090dbce.js",
+      "static/chunks/webpack-752e2e86747c1b07.js",
       "static/chunks/framework-0249bf7bc1c3f377.js",
-      "static/chunks/main-973715a7fb162c3a.js",
-      "static/chunks/pages/index-eff379b6d5b9bb68.js"
+      "static/chunks/main-8bdfa4a832fbf4d5.js",
+      "static/chunks/pages/index-2d083d34263a3ab6.js"
     ],
     "/_app": [
-      "static/chunks/webpack-596ddb9e5090dbce.js",
+      "static/chunks/webpack-752e2e86747c1b07.js",
       "static/chunks/framework-0249bf7bc1c3f377.js",
-      "static/chunks/main-973715a7fb162c3a.js",
-      "static/chunks/pages/_app-92c368fd6cf3735d.js"
+      "static/chunks/main-8bdfa4a832fbf4d5.js",
+      "static/chunks/pages/_app-dfaef6942d774f42.js"
     ],
     "/_error": [
-      "static/chunks/webpack-596ddb9e5090dbce.js",
+      "static/chunks/webpack-752e2e86747c1b07.js",
       "static/chunks/framework-0249bf7bc1c3f377.js",
-      "static/chunks/main-973715a7fb162c3a.js",
-      "static/chunks/pages/_error-178a994c6aae5c09.js"
+      "static/chunks/main-8bdfa4a832fbf4d5.js",
+      "static/chunks/pages/_error-d3adcea7db63be0b.js"
     ],
     "/amp": [
-      "static/chunks/webpack-596ddb9e5090dbce.js",
+      "static/chunks/webpack-752e2e86747c1b07.js",
       "static/chunks/framework-0249bf7bc1c3f377.js",
-      "static/chunks/main-973715a7fb162c3a.js",
-      "static/chunks/pages/amp-79fb82e276fb82fc.js"
+      "static/chunks/main-8bdfa4a832fbf4d5.js",
+      "static/chunks/pages/amp-dc9ee08f64b26a10.js"
     ],
     "/css": [
-      "static/chunks/webpack-596ddb9e5090dbce.js",
+      "static/chunks/webpack-752e2e86747c1b07.js",
       "static/chunks/framework-0249bf7bc1c3f377.js",
-      "static/chunks/main-973715a7fb162c3a.js",
+      "static/chunks/main-8bdfa4a832fbf4d5.js",
       "static/css/94fdbc56eafa2039.css",
-      "static/chunks/pages/css-10d4fc9f36e1f8a8.js"
+      "static/chunks/pages/css-544d2f643bb52307.js"
     ],
     "/dynamic": [
-      "static/chunks/webpack-596ddb9e5090dbce.js",
+      "static/chunks/webpack-752e2e86747c1b07.js",
       "static/chunks/framework-0249bf7bc1c3f377.js",
-      "static/chunks/main-973715a7fb162c3a.js",
-      "static/chunks/pages/dynamic-0651128c47fcba80.js"
+      "static/chunks/main-8bdfa4a832fbf4d5.js",
+      "static/chunks/pages/dynamic-21b47ee7c34c216c.js"
     ],
     "/edge-ssr": [
-      "static/chunks/webpack-596ddb9e5090dbce.js",
+      "static/chunks/webpack-752e2e86747c1b07.js",
       "static/chunks/framework-0249bf7bc1c3f377.js",
-      "static/chunks/main-973715a7fb162c3a.js",
-      "static/chunks/pages/edge-ssr-e603e308b21f734e.js"
+      "static/chunks/main-8bdfa4a832fbf4d5.js",
+      "static/chunks/pages/edge-ssr-6e58abff3028d188.js"
     ],
     "/head": [
-      "static/chunks/webpack-596ddb9e5090dbce.js",
+      "static/chunks/webpack-752e2e86747c1b07.js",
       "static/chunks/framework-0249bf7bc1c3f377.js",
-      "static/chunks/main-973715a7fb162c3a.js",
-      "static/chunks/pages/head-d124b5fb804544eb.js"
+      "static/chunks/main-8bdfa4a832fbf4d5.js",
+      "static/chunks/pages/head-06e10ac8d6cd67db.js"
     ],
     "/hooks": [
-      "static/chunks/webpack-596ddb9e5090dbce.js",
+      "static/chunks/webpack-752e2e86747c1b07.js",
       "static/chunks/framework-0249bf7bc1c3f377.js",
-      "static/chunks/main-973715a7fb162c3a.js",
-      "static/chunks/pages/hooks-d1015f6695524a5b.js"
+      "static/chunks/main-8bdfa4a832fbf4d5.js",
+      "static/chunks/pages/hooks-cd9108a135578e81.js"
     ],
     "/image": [
-      "static/chunks/webpack-596ddb9e5090dbce.js",
+      "static/chunks/webpack-752e2e86747c1b07.js",
       "static/chunks/framework-0249bf7bc1c3f377.js",
-      "static/chunks/main-973715a7fb162c3a.js",
-      "static/chunks/pages/image-0bf75b864827e6da.js"
+      "static/chunks/main-8bdfa4a832fbf4d5.js",
+      "static/chunks/pages/image-ad480e0ea6b7169b.js"
     ],
     "/link": [
-      "static/chunks/webpack-596ddb9e5090dbce.js",
+      "static/chunks/webpack-752e2e86747c1b07.js",
       "static/chunks/framework-0249bf7bc1c3f377.js",
-      "static/chunks/main-973715a7fb162c3a.js",
-      "static/chunks/pages/link-6ea07ed77121154e.js"
+      "static/chunks/main-8bdfa4a832fbf4d5.js",
+      "static/chunks/pages/link-0bffdc44a0247b3e.js"
     ],
     "/routerDirect": [
-      "static/chunks/webpack-596ddb9e5090dbce.js",
+      "static/chunks/webpack-752e2e86747c1b07.js",
       "static/chunks/framework-0249bf7bc1c3f377.js",
-      "static/chunks/main-973715a7fb162c3a.js",
-      "static/chunks/pages/routerDirect-6f8978da85fef5eb.js"
+      "static/chunks/main-8bdfa4a832fbf4d5.js",
+      "static/chunks/pages/routerDirect-1ea8459dd75e3757.js"
     ],
     "/script": [
-      "static/chunks/webpack-596ddb9e5090dbce.js",
+      "static/chunks/webpack-752e2e86747c1b07.js",
       "static/chunks/framework-0249bf7bc1c3f377.js",
-      "static/chunks/main-973715a7fb162c3a.js",
-      "static/chunks/pages/script-56d3ff5faa49811d.js"
+      "static/chunks/main-8bdfa4a832fbf4d5.js",
+      "static/chunks/pages/script-178c2ac994fe2199.js"
     ],
     "/withRouter": [
-      "static/chunks/webpack-596ddb9e5090dbce.js",
+      "static/chunks/webpack-752e2e86747c1b07.js",
       "static/chunks/framework-0249bf7bc1c3f377.js",
-      "static/chunks/main-973715a7fb162c3a.js",
-      "static/chunks/pages/withRouter-394e599a32dcd7a4.js"
+      "static/chunks/main-8bdfa4a832fbf4d5.js",
+      "static/chunks/pages/withRouter-27de9f24be6003e9.js"
     ]
   },
   ampFirstPages: []
Diff for middleware-r..-manifest.js
@@ -1,6 +1,6 @@
 self.__REACT_LOADABLE_MANIFEST = {
   "dynamic.js -> ../components/hello": {
-    id: 3900,
-    files: ["static/chunks/900.f01fcc2109adde55.js"]
+    id: 5886,
+    files: ["static/chunks/886.b879335d00f271d1.js"]
   }
 };
Diff for middleware.js
@@ -1,7 +1,7 @@
 (self["webpackChunk_N_E"] = self["webpackChunk_N_E"] || []).push([
   [826],
   {
-    /***/ 7811: /***/ (
+    /***/ 6404: /***/ (
       __unused_webpack_module,
       __webpack_exports__,
       __webpack_require__
@@ -14,13 +14,13 @@
         /* harmony export */
       });
       /* harmony import */ var next_dist_server_web_adapter__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(
-        674
+        9107
       );
 
       (0,
       next_dist_server_web_adapter__WEBPACK_IMPORTED_MODULE_0__ /* .enhanceGlobals */.gL)();
 
-      var mod = __webpack_require__(7352);
+      var mod = __webpack_require__(5250);
       var handler = mod.middleware || mod.default;
 
       if (typeof handler !== "function") {
@@ -46,7 +46,7 @@
       /***/
     },
 
-    /***/ 7352: /***/ (
+    /***/ 5250: /***/ (
       __unused_webpack_module,
       __webpack_exports__,
       __webpack_require__
@@ -58,7 +58,7 @@
         /* harmony export */
       });
       /* harmony import */ var next_server__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(
-        8352
+        9541
       );
       /* harmony import */ var next_server__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/ __webpack_require__.n(
         next_server__WEBPACK_IMPORTED_MODULE_0__
@@ -71,7 +71,7 @@
       /***/
     },
 
-    /***/ 5195: /***/ (__unused_webpack_module, exports) => {
+    /***/ 3239: /***/ (__unused_webpack_module, exports) => {
       "use strict";
 
       Object.defineProperty(exports, "__esModule", {
@@ -91,7 +91,7 @@
       /***/
     },
 
-    /***/ 9923: /***/ (__unused_webpack_module, exports) => {
+    /***/ 7793: /***/ (__unused_webpack_module, exports) => {
       "use strict";
 
       Object.defineProperty(exports, "__esModule", {
@@ -129,7 +129,7 @@
       /***/
     },
 
-    /***/ 5401: /***/ (__unused_webpack_module, exports) => {
+    /***/ 7432: /***/ (__unused_webpack_module, exports) => {
       "use strict";
 
       Object.defineProperty(exports, "__esModule", {
@@ -161,7 +161,7 @@
       /***/
     },
 
-    /***/ 5316: /***/ (
+    /***/ 5154: /***/ (
       __unused_webpack_module,
       exports,
       __webpack_require__
@@ -172,8 +172,8 @@
         value: true
       });
       exports.addLocale = addLocale;
-      var _addPathPrefix = __webpack_require__(8976);
-      var _pathHasPrefix = __webpack_require__(9882);
+      var _addPathPrefix = __webpack_require__(4632);
+      var _pathHasPrefix = __webpack_require__(387);
       function addLocale(path, locale, defaultLocale, ignorePrefix) {
         if (
           locale &&
@@ -193,7 +193,7 @@
       /***/
     },
 
-    /***/ 8976: /***/ (
+    /***/ 4632: /***/ (
       __unused_webpack_module,
       exports,
       __webpack_require__
@@ -204,7 +204,7 @@
         value: true
       });
       exports.addPathPrefix = addPathPrefix;
-      var _parsePath = __webpack_require__(5606);
+      var _parsePath = __webpack_require__(386);
       function addPathPrefix(path, prefix) {
         if (!path.startsWith("/") || !prefix) {
           return path;
@@ -216,7 +216,7 @@
       /***/
     },
 
-    /***/ 3009: /***/ (
+    /***/ 5045: /***/ (
       __unused_webpack_module,
       exports,
       __webpack_require__
@@ -227,7 +227,7 @@
         value: true
       });
       exports.addPathSuffix = addPathSuffix;
-      var _parsePath = __webpack_require__(5606);
+      var _parsePath = __webpack_require__(386);
       function addPathSuffix(path, suffix) {
         if (!path.startsWith("/") || !suffix) {
           return path;
@@ -239,7 +239,7 @@
       /***/
     },
 
-    /***/ 4234: /***/ (
+    /***/ 7100: /***/ (
       __unused_webpack_module,
       exports,
       __webpack_require__
@@ -250,10 +250,10 @@
         value: true
       });
       exports.formatNextPathnameInfo = formatNextPathnameInfo;
-      var _removeTrailingSlash = __webpack_require__(8336);
-      var _addPathPrefix = __webpack_require__(8976);
-      var _addPathSuffix = __webpack_require__(3009);
-      var _addLocale = __webpack_require__(5316);
+      var _removeTrailingSlash = __webpack_require__(8833);
+      var _addPathPrefix = __webpack_require__(4632);
+      var _addPathSuffix = __webpack_require__(5045);
+      var _addLocale = __webpack_require__(5154);
       function formatNextPathnameInfo(info) {
         let pathname = (0, _addLocale).addLocale(
           info.pathname,
@@ -281,7 +281,7 @@
       /***/
     },
 
-    /***/ 3633: /***/ (
+    /***/ 7139: /***/ (
       __unused_webpack_module,
       exports,
       __webpack_require__
@@ -292,9 +292,9 @@
         value: true
       });
       exports.getNextPathnameInfo = getNextPathnameInfo;
-      var _normalizeLocalePath = __webpack_require__(5401);
-      var _removePathPrefix = __webpack_require__(2811);
-      var _pathHasPrefix = __webpack_require__(9882);
+      var _normalizeLocalePath = __webpack_require__(7432);
+      var _removePathPrefix = __webpack_require__(3776);
+      var _pathHasPrefix = __webpack_require__(387);
       function getNextPathnameInfo(pathname, options) {
         var _nextConfig;
         const { basePath, i18n, trailingSlash } =
@@ -344,7 +344,7 @@
       /***/
     },
 
-    /***/ 5606: /***/ (__unused_webpack_module, exports) => {
+    /***/ 386: /***/ (__unused_webpack_module, exports) => {
       "use strict";
 
       Object.defineProperty(exports, "__esModule", {
@@ -378,7 +378,7 @@
       /***/
     },
 
-    /***/ 9882: /***/ (
+    /***/ 387: /***/ (
       __unused_webpack_module,
       exports,
       __webpack_require__
@@ -389,7 +389,7 @@
         value: true
       });
       exports.pathHasPrefix = pathHasPrefix;
-      var _parsePath = __webpack_require__(5606);
+      var _parsePath = __webpack_require__(386);
       function pathHasPrefix(path, prefix) {
         if (typeof path !== "string") {
           return false;
@@ -401,7 +401,7 @@
       /***/
     },
 
-    /***/ 4258: /***/ (__unused_webpack_module, exports) => {
+    /***/ 1142: /***/ (__unused_webpack_module, exports) => {
       "use strict";
 
       Object.defineProperty(exports, "__esModule", {
@@ -420,7 +420,7 @@
       /***/
     },
 
-    /***/ 2811: /***/ (
+    /***/ 3776: /***/ (
       __unused_webpack_module,
       exports,
       __webpack_require__
@@ -431,7 +431,7 @@
         value: true
       });
       exports.removePathPrefix = removePathPrefix;
-      var _pathHasPrefix = __webpack_require__(9882);
+      var _pathHasPrefix = __webpack_require__(387);
       function removePathPrefix(path, prefix) {
         if ((0, _pathHasPrefix).pathHasPrefix(path, prefix)) {
           const withoutPrefix = path.slice(prefix.length);
@@ -445,7 +445,7 @@
       /***/
     },
 
-    /***/ 8336: /***/ (__unused_webpack_module, exports) => {
+    /***/ 8833: /***/ (__unused_webpack_module, exports) => {
       "use strict";
 
       Object.defineProperty(exports, "__esModule", {
@@ -459,7 +459,7 @@
       /***/
     },
 
-    /***/ 5682: /***/ module => {
+    /***/ 4202: /***/ module => {
       var __dirname = "/";
       (() => {
         "use strict";
@@ -587,7 +587,7 @@
       /***/
     },
 
-    /***/ 6166: /***/ (module, exports, __webpack_require__) => {
+    /***/ 6204: /***/ (module, exports, __webpack_require__) => {
       var __dirname = "/";
       var __WEBPACK_AMD_DEFINE_RESULT__;
       (() => {
@@ -1429,7 +1429,7 @@
       /***/
     },
 
-    /***/ 6704: /***/ (__unused_webpack_module, exports) => {
+    /***/ 7864: /***/ (__unused_webpack_module, exports) => {
       "use strict";
 
       Object.defineProperty(exports, "__esModule", {
@@ -1471,7 +1471,7 @@
       /***/
     },
 
-    /***/ 674: /***/ (
+    /***/ 9107: /***/ (
       __unused_webpack_module,
       exports,
       __webpack_require__
@@ -1485,14 +1485,14 @@
       exports.VL = adapter;
       exports.OT = blockUnallowedResponse;
       exports.gL = enhanceGlobals;
-      var _error = __webpack_require__(4524);
-      var _utils = __webpack_require__(88);
-      var _fetchEvent = __webpack_require__(8852);
-      var _request = __webpack_require__(5829);
-      var _response = __webpack_require__(5277);
-      var _relativizeUrl = __webpack_require__(4258);
-      var _nextUrl = __webpack_require__(3062);
-      var _internalUtils = __webpack_require__(6704);
+      var _error = __webpack_require__(8666);
+      var _utils = __webpack_require__(30);
+      var _fetchEvent = __webpack_require__(9833);
+      var _request = __webpack_require__(5985);
+      var _response = __webpack_require__(5165);
+      var _relativizeUrl = __webpack_require__(1142);
+      var _nextUrl = __webpack_require__(4901);
+      var _internalUtils = __webpack_require__(7864);
       class NextRequestHint extends _request.NextRequest {
         constructor(params) {
           super(params.input, params.init);
@@ -1714,7 +1714,7 @@ Learn More: https://nextjs.org/docs/messages/node-module-in-edge-runtime`;
       /***/
     },
 
-    /***/ 4524: /***/ (__unused_webpack_module, exports) => {
+    /***/ 8666: /***/ (__unused_webpack_module, exports) => {
       "use strict";
 
       Object.defineProperty(exports, "__esModule", {
@@ -1755,7 +1755,7 @@ Learn More: https://nextjs.org/docs/messages/node-module-in-edge-runtime`;
       /***/
     },
 
-    /***/ 3062: /***/ (
+    /***/ 4901: /***/ (
       __unused_webpack_module,
       exports,
       __webpack_require__
@@ -1765,10 +1765,10 @@ Learn More: https://nextjs.org/docs/messages/node-module-in-edge-runtime`;
       Object.defineProperty(exports, "__esModule", {
         value: true
       });
-      var _detectDomainLocale = __webpack_require__(9923);
-      var _formatNextPathnameInfo = __webpack_require__(4234);
-      var _getHostname = __webpack_require__(5195);
-      var _getNextPathnameInfo = __webpack_require__(3633);
+      var _detectDomainLocale = __webpack_require__(7793);
+      var _formatNextPathnameInfo = __webpack_require__(7100);
+      var _getHostname = __webpack_require__(3239);
+      var _getNextPathnameInfo = __webpack_require__(7139);
       const FLIGHT_PARAMETERS = [
         "__flight__",
         "__flight_router_state_tree__",
@@ -2056,7 +2056,7 @@ Learn More: https://nextjs.org/docs/messages/node-module-in-edge-runtime`;
       /***/
     },
 
-    /***/ 3868: /***/ (
+    /***/ 4570: /***/ (
       __unused_webpack_module,
       exports,
       __webpack_require__
@@ -2066,7 +2066,7 @@ Learn More: https://nextjs.org/docs/messages/node-module-in-edge-runtime`;
       Object.defineProperty(exports, "__esModule", {
         value: true
       });
-      var _cookie = _interopRequireDefault(__webpack_require__(5682));
+      var _cookie = _interopRequireDefault(__webpack_require__(4202));
       function _interopRequireDefault(obj) {
         return obj && obj.__esModule
           ? obj
@@ -2201,7 +2201,7 @@ Learn More: https://nextjs.org/docs/messages/node-module-in-edge-runtime`;
       /***/
     },
 
-    /***/ 8852: /***/ (
+    /***/ 9833: /***/ (
       __unused_webpack_module,
       exports,
       __webpack_require__
@@ -2212,7 +2212,7 @@ Learn More: https://nextjs.org/docs/messages/node-module-in-edge-runtime`;
         value: true
       });
       exports.waitUntilSymbol = void 0;
-      var _error = __webpack_require__(4524);
+      var _error = __webpack_require__(8666);
       const responseSymbol = Symbol("response");
       const passThroughSymbol = Symbol("passThrough");
       const waitUntilSymbol = Symbol("waitUntil");
@@ -2265,7 +2265,7 @@ Learn More: https://nextjs.org/docs/messages/node-module-in-edge-runtime`;
       /***/
     },
 
-    /***/ 5829: /***/ (
+    /***/ 5985: /***/ (
       __unused_webpack_module,
       exports,
       __webpack_require__
@@ -2276,10 +2276,10 @@ Learn More: https://nextjs.org/docs/messages/node-module-in-edge-runtime`;
         value: true
       });
       exports.INTERNALS = void 0;
-      var _nextUrl = __webpack_require__(3062);
-      var _utils = __webpack_require__(88);
-      var _error = __webpack_require__(4524);
-      var _cookies = __webpack_require__(3868);
+      var _nextUrl = __webpack_require__(4901);
+      var _utils = __webpack_require__(30);
+      var _error = __webpack_require__(8666);
+      var _cookies = __webpack_require__(4570);
       const INTERNALS = Symbol("internal request");
       exports.INTERNALS = INTERNALS;
       class NextRequest extends Request {
@@ -2360,7 +2360,7 @@ Learn More: https://nextjs.org/docs/messages/node-module-in-edge-runtime`;
       /***/
     },
 
-    /***/ 5277: /***/ (
+    /***/ 5165: /***/ (
       __unused_webpack_module,
       exports,
       __webpack_require__
@@ -2370,9 +2370,9 @@ Learn More: https://nextjs.org/docs/messages/node-module-in-edge-runtime`;
       Object.defineProperty(exports, "__esModule", {
         value: true
       });
-      var _nextUrl = __webpack_require__(3062);
-      var _utils = __webpack_require__(88);
-      var _cookies = __webpack_require__(3868);
+      var _nextUrl = __webpack_require__(4901);
+      var _utils = __webpack_require__(30);
+      var _cookies = __webpack_require__(4570);
       const INTERNALS = Symbol("internal response");
       const REDIRECTS = new Set([301, 302, 303, 307, 308]);
       class NextResponse extends Response {
@@ -2462,7 +2462,7 @@ Learn More: https://nextjs.org/docs/messages/node-module-in-edge-runtime`;
       /***/
     },
 
-    /***/ 7873: /***/ (
+    /***/ 9132: /***/ (
       __unused_webpack_module,
       exports,
       __webpack_require__
@@ -2476,7 +2476,7 @@ Learn More: https://nextjs.org/docs/messages/node-module-in-edge-runtime`;
       __webpack_unused_export__ = isBot;
       exports.Nf = userAgentFromString;
       exports.WE = userAgent;
-      var _uaParserJs = _interopRequireDefault(__webpack_require__(6166));
+      var _uaParserJs = _interopRequireDefault(__webpack_require__(6204));
       function _interopRequireDefault(obj) {
         return obj && obj.__esModule
           ? obj
@@ -2504,7 +2504,7 @@ Learn More: https://nextjs.org/docs/messages/node-module-in-edge-runtime`;
       /***/
     },
 
-    /***/ 88: /***/ (__unused_webpack_module, exports) => {
+    /***/ 30: /***/ (__unused_webpack_module, exports) => {
       "use strict";
 
       Object.defineProperty(exports, "__esModule", {
@@ -2619,14 +2619,14 @@ Learn More: https://nextjs.org/docs/messages/node-module-in-edge-runtime`;
       /***/
     },
 
-    /***/ 8352: /***/ (module, exports, __webpack_require__) => {
+    /***/ 9541: /***/ (module, exports, __webpack_require__) => {
       const serverExports = {
-        NextRequest: __webpack_require__(5829).NextRequest,
-        NextResponse: __webpack_require__(5277).NextResponse,
+        NextRequest: __webpack_require__(5985).NextRequest,
+        NextResponse: __webpack_require__(5165).NextResponse,
         userAgentFromString: __webpack_require__(
-          7873
+          9132
         ) /* .userAgentFromString */.Nf,
-        userAgent: __webpack_require__(7873) /* .userAgent */.WE
+        userAgent: __webpack_require__(9132) /* .userAgent */.WE
       };
 
       if (typeof URLPattern !== "undefined") {
@@ -2652,7 +2652,7 @@ Learn More: https://nextjs.org/docs/messages/node-module-in-edge-runtime`;
     // webpackRuntimeModules
     /******/ var __webpack_exec__ = moduleId =>
       __webpack_require__((__webpack_require__.s = moduleId));
-    /******/ var __webpack_exports__ = __webpack_exec__(7811);
+    /******/ var __webpack_exports__ = __webpack_exec__(6404);
     /******/ (_ENTRIES =
       typeof _ENTRIES === "undefined"
         ? {}
Diff for edge-ssr.js

Diff too large to display

Diff for _buildManifest.js
@@ -1,28 +1,28 @@
 self.__BUILD_MANIFEST = {
   __rewrites: { beforeFiles: [], afterFiles: [], fallback: [] },
-  "/": ["static\u002Fchunks\u002Fpages\u002Findex-eff379b6d5b9bb68.js"],
-  "/_error": ["static\u002Fchunks\u002Fpages\u002F_error-178a994c6aae5c09.js"],
-  "/amp": ["static\u002Fchunks\u002Fpages\u002Famp-79fb82e276fb82fc.js"],
+  "/": ["static\u002Fchunks\u002Fpages\u002Findex-2d083d34263a3ab6.js"],
+  "/_error": ["static\u002Fchunks\u002Fpages\u002F_error-d3adcea7db63be0b.js"],
+  "/amp": ["static\u002Fchunks\u002Fpages\u002Famp-dc9ee08f64b26a10.js"],
   "/css": [
     "static\u002Fcss\u002F94fdbc56eafa2039.css",
-    "static\u002Fchunks\u002Fpages\u002Fcss-10d4fc9f36e1f8a8.js"
+    "static\u002Fchunks\u002Fpages\u002Fcss-544d2f643bb52307.js"
   ],
   "/dynamic": [
-    "static\u002Fchunks\u002Fpages\u002Fdynamic-0651128c47fcba80.js"
+    "static\u002Fchunks\u002Fpages\u002Fdynamic-21b47ee7c34c216c.js"
   ],
   "/edge-ssr": [
-    "static\u002Fchunks\u002Fpages\u002Fedge-ssr-e603e308b21f734e.js"
+    "static\u002Fchunks\u002Fpages\u002Fedge-ssr-6e58abff3028d188.js"
   ],
-  "/head": ["static\u002Fchunks\u002Fpages\u002Fhead-d124b5fb804544eb.js"],
-  "/hooks": ["static\u002Fchunks\u002Fpages\u002Fhooks-d1015f6695524a5b.js"],
-  "/image": ["static\u002Fchunks\u002Fpages\u002Fimage-0bf75b864827e6da.js"],
-  "/link": ["static\u002Fchunks\u002Fpages\u002Flink-6ea07ed77121154e.js"],
+  "/head": ["static\u002Fchunks\u002Fpages\u002Fhead-06e10ac8d6cd67db.js"],
+  "/hooks": ["static\u002Fchunks\u002Fpages\u002Fhooks-cd9108a135578e81.js"],
+  "/image": ["static\u002Fchunks\u002Fpages\u002Fimage-ad480e0ea6b7169b.js"],
+  "/link": ["static\u002Fchunks\u002Fpages\u002Flink-0bffdc44a0247b3e.js"],
   "/routerDirect": [
-    "static\u002Fchunks\u002Fpages\u002FrouterDirect-6f8978da85fef5eb.js"
+    "static\u002Fchunks\u002Fpages\u002FrouterDirect-1ea8459dd75e3757.js"
   ],
-  "/script": ["static\u002Fchunks\u002Fpages\u002Fscript-56d3ff5faa49811d.js"],
+  "/script": ["static\u002Fchunks\u002Fpages\u002Fscript-178c2ac994fe2199.js"],
   "/withRouter": [
-    "static\u002Fchunks\u002Fpages\u002FwithRouter-394e599a32dcd7a4.js"
+    "static\u002Fchunks\u002Fpages\u002FwithRouter-27de9f24be6003e9.js"
   ],
   sortedPages: [
     "\u002F",
Diff for _app-HASH.js
@@ -1,7 +1,7 @@
 (self["webpackChunk_N_E"] = self["webpackChunk_N_E"] || []).push([
   [888],
   {
-    /***/ 3115: /***/ function(
+    /***/ 1113: /***/ function(
       __unused_webpack_module,
       __unused_webpack_exports,
       __webpack_require__
@@ -9,7 +9,7 @@
       (window.__NEXT_P = window.__NEXT_P || []).push([
         "/_app",
         function() {
-          return __webpack_require__(2501);
+          return __webpack_require__(4802);
         }
       ]);
       if (false) {
@@ -24,7 +24,7 @@
       return __webpack_require__((__webpack_require__.s = moduleId));
     };
     /******/ __webpack_require__.O(0, [774, 179], function() {
-      return __webpack_exec__(3115), __webpack_exec__(6401);
+      return __webpack_exec__(1113), __webpack_exec__(2385);
     });
     /******/ var __webpack_exports__ = __webpack_require__.O();
     /******/ _N_E = __webpack_exports__;
Diff for _error-HASH.js
@@ -1,7 +1,7 @@
 (self["webpackChunk_N_E"] = self["webpackChunk_N_E"] || []).push([
   [820],
   {
-    /***/ 5374: /***/ function(
+    /***/ 3363: /***/ function(
       __unused_webpack_module,
       __unused_webpack_exports,
       __webpack_require__
@@ -9,7 +9,7 @@
       (window.__NEXT_P = window.__NEXT_P || []).push([
         "/_error",
         function() {
-          return __webpack_require__(7969);
+          return __webpack_require__(3273);
         }
       ]);
       if (false) {
@@ -24,7 +24,7 @@
       return __webpack_require__((__webpack_require__.s = moduleId));
     };
     /******/ __webpack_require__.O(0, [888, 774, 179], function() {
-      return __webpack_exec__(5374);
+      return __webpack_exec__(3363);
     });
     /******/ var __webpack_exports__ = __webpack_require__.O();
     /******/ _N_E = __webpack_exports__;
Diff for amp-HASH.js
@@ -1,17 +1,17 @@
 (self["webpackChunk_N_E"] = self["webpackChunk_N_E"] || []).push([
   [216],
   {
-    /***/ 8510: /***/ function(
+    /***/ 8753: /***/ function(
       module,
       __unused_webpack_exports,
       __webpack_require__
     ) {
-      module.exports = __webpack_require__(6464);
+      module.exports = __webpack_require__(9709);
 
       /***/
     },
 
-    /***/ 7010: /***/ function(
+    /***/ 5348: /***/ function(
       __unused_webpack_module,
       __unused_webpack_exports,
       __webpack_require__
@@ -19,7 +19,7 @@
       (window.__NEXT_P = window.__NEXT_P || []).push([
         "/amp",
         function() {
-          return __webpack_require__(2461);
+          return __webpack_require__(7503);
         }
       ]);
       if (false) {
@@ -28,7 +28,7 @@
       /***/
     },
 
-    /***/ 6464: /***/ function(module, exports, __webpack_require__) {
+    /***/ 9709: /***/ function(module, exports, __webpack_require__) {
       "use strict";
 
       Object.defineProperty(exports, "__esModule", {
@@ -38,8 +38,8 @@
       var _interop_require_default = __webpack_require__(7022) /* ["default"] */
         .Z;
       var _react = _interop_require_default(__webpack_require__(959));
-      var _ampContext = __webpack_require__(1258);
-      var _ampMode = __webpack_require__(5976);
+      var _ampContext = __webpack_require__(8373);
+      var _ampMode = __webpack_require__(7380);
       function useAmp() {
         // Don't assign the context value to a variable to save bytes
         return (0, _ampMode).isInAmpMode(
@@ -61,7 +61,7 @@
       /***/
     },
 
-    /***/ 2461: /***/ function(
+    /***/ 7503: /***/ function(
       __unused_webpack_module,
       __webpack_exports__,
       __webpack_require__
@@ -78,7 +78,7 @@
         /* harmony export */
       });
       /* harmony import */ var next_amp__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(
-        8510
+        8753
       );
       /* harmony import */ var next_amp__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/ __webpack_require__.n(
         next_amp__WEBPACK_IMPORTED_MODULE_0__
@@ -102,7 +102,7 @@
       return __webpack_require__((__webpack_require__.s = moduleId));
     };
     /******/ __webpack_require__.O(0, [888, 774, 179], function() {
-      return __webpack_exec__(7010);
+      return __webpack_exec__(5348);
     });
     /******/ var __webpack_exports__ = __webpack_require__.O();
     /******/ _N_E = __webpack_exports__;
Diff for css-HASH.js
@@ -1,7 +1,7 @@
 (self["webpackChunk_N_E"] = self["webpackChunk_N_E"] || []).push([
   [706],
   {
-    /***/ 860: /***/ function(
+    /***/ 6437: /***/ function(
       __unused_webpack_module,
       __unused_webpack_exports,
       __webpack_require__
@@ -9,7 +9,7 @@
       (window.__NEXT_P = window.__NEXT_P || []).push([
         "/css",
         function() {
-          return __webpack_require__(7832);
+          return __webpack_require__(7135);
         }
       ]);
       if (false) {
@@ -18,7 +18,7 @@
       /***/
     },
 
-    /***/ 7832: /***/ function(
+    /***/ 7135: /***/ function(
       __unused_webpack_module,
       __webpack_exports__,
       __webpack_require__
@@ -29,7 +29,7 @@
         1527
       );
       /* harmony import */ var _css_module_css__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(
-        2707
+        3934
       );
       /* harmony import */ var _css_module_css__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/ __webpack_require__.n(
         _css_module_css__WEBPACK_IMPORTED_MODULE_1__
@@ -48,7 +48,7 @@
       /***/
     },
 
-    /***/ 2707: /***/ function(module) {
+    /***/ 3934: /***/ function(module) {
       // extracted by mini-css-extract-plugin
       module.exports = { helloWorld: "css_helloWorld__qqNwY" };
 
@@ -61,7 +61,7 @@
       return __webpack_require__((__webpack_require__.s = moduleId));
     };
     /******/ __webpack_require__.O(0, [774, 888, 179], function() {
-      return __webpack_exec__(860);
+      return __webpack_exec__(6437);
     });
     /******/ var __webpack_exports__ = __webpack_require__.O();
     /******/ _N_E = __webpack_exports__;
Diff for dynamic-HASH.js
@@ -1,7 +1,7 @@
 (self["webpackChunk_N_E"] = self["webpackChunk_N_E"] || []).push([
   [739],
   {
-    /***/ 3995: /***/ function(
+    /***/ 7753: /***/ function(
       __unused_webpack_module,
       __unused_webpack_exports,
       __webpack_require__
@@ -9,7 +9,7 @@
       (window.__NEXT_P = window.__NEXT_P || []).push([
         "/dynamic",
         function() {
-          return __webpack_require__(2523);
+          return __webpack_require__(4683);
         }
       ]);
       if (false) {
@@ -18,7 +18,7 @@
       /***/
     },
 
-    /***/ 2627: /***/ function(module, exports, __webpack_require__) {
+    /***/ 5434: /***/ function(module, exports, __webpack_require__) {
       "use strict";
 
       Object.defineProperty(exports, "__esModule", {
@@ -34,7 +34,7 @@
       var _interop_require_default = __webpack_require__(7022) /* ["default"] */
         .Z;
       var _react = _interop_require_default(__webpack_require__(959));
-      var _loadable = _interop_require_default(__webpack_require__(2132));
+      var _loadable = _interop_require_default(__webpack_require__(5682));
       function dynamic(dynamicOptions, options) {
         var loadableFn = _loadable.default;
         var loadableOptions = (options == null
@@ -137,7 +137,7 @@
       /***/
     },
 
-    /***/ 1685: /***/ function(
+    /***/ 9106: /***/ function(
       __unused_webpack_module,
       exports,
       __webpack_require__
@@ -159,7 +159,7 @@
       /***/
     },
 
-    /***/ 2132: /***/ function(
+    /***/ 5682: /***/ function(
       __unused_webpack_module,
       exports,
       __webpack_require__
@@ -179,7 +179,7 @@
       var _interop_require_default = __webpack_require__(7022) /* ["default"] */
         .Z;
       var _react = _interop_require_default(__webpack_require__(959));
-      var _loadableContext = __webpack_require__(1685);
+      var _loadableContext = __webpack_require__(9106);
       var useSyncExternalStore = (true ? __webpack_require__(959) : 0)
         .useSyncExternalStore;
       var ALL_INITIALIZERS = [];
@@ -493,7 +493,7 @@
       /***/
     },
 
-    /***/ 2523: /***/ function(
+    /***/ 4683: /***/ function(
       __unused_webpack_module,
       __webpack_exports__,
       __webpack_require__
@@ -510,7 +510,7 @@
         1527
       );
       /* harmony import */ var next_dynamic__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(
-        6113
+        2677
       );
       /* harmony import */ var next_dynamic__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/ __webpack_require__.n(
         next_dynamic__WEBPACK_IMPORTED_MODULE_1__
@@ -519,13 +519,13 @@
       var DynamicHello = next_dynamic__WEBPACK_IMPORTED_MODULE_1___default()(
         function() {
           return __webpack_require__
-            .e(/* import() */ 900)
-            .then(__webpack_require__.bind(__webpack_require__, 3900));
+            .e(/* import() */ 886)
+            .then(__webpack_require__.bind(__webpack_require__, 5886));
         },
         {
           loadableGenerated: {
             webpack: function() {
-              return [/*require.resolve*/ 3900];
+              return [/*require.resolve*/ 5886];
             }
           }
         }
@@ -555,12 +555,12 @@
       /***/
     },
 
-    /***/ 6113: /***/ function(
+    /***/ 2677: /***/ function(
       module,
       __unused_webpack_exports,
       __webpack_require__
     ) {
-      module.exports = __webpack_require__(2627);
+      module.exports = __webpack_require__(5434);
 
       /***/
     }
@@ -571,7 +571,7 @@
       return __webpack_require__((__webpack_require__.s = moduleId));
     };
     /******/ __webpack_require__.O(0, [774, 888, 179], function() {
-      return __webpack_exec__(3995);
+      return __webpack_exec__(7753);
     });
     /******/ var __webpack_exports__ = __webpack_require__.O();
     /******/ _N_E = __webpack_exports__;
Diff for edge-ssr-HASH.js
@@ -1,7 +1,7 @@
 (self["webpackChunk_N_E"] = self["webpackChunk_N_E"] || []).push([
   [800],
   {
-    /***/ 6219: /***/ function(
+    /***/ 6027: /***/ function(
       __unused_webpack_module,
       __unused_webpack_exports,
       __webpack_require__
@@ -9,7 +9,7 @@
       (window.__NEXT_P = window.__NEXT_P || []).push([
         "/edge-ssr",
         function() {
-          return __webpack_require__(7692);
+          return __webpack_require__(3789);
         }
       ]);
       if (false) {
@@ -18,7 +18,7 @@
       /***/
     },
 
-    /***/ 7692: /***/ function(
+    /***/ 3789: /***/ function(
       __unused_webpack_module,
       __webpack_exports__,
       __webpack_require__
@@ -54,7 +54,7 @@
       return __webpack_require__((__webpack_require__.s = moduleId));
     };
     /******/ __webpack_require__.O(0, [888, 774, 179], function() {
-      return __webpack_exec__(6219);
+      return __webpack_exec__(6027);
     });
     /******/ var __webpack_exports__ = __webpack_require__.O();
     /******/ _N_E = __webpack_exports__;
Diff for head-HASH.js
@@ -1,7 +1,7 @@
 (self["webpackChunk_N_E"] = self["webpackChunk_N_E"] || []).push([
   [645],
   {
-    /***/ 2899: /***/ function(
+    /***/ 6955: /***/ function(
       __unused_webpack_module,
       __unused_webpack_exports,
       __webpack_require__
@@ -9,7 +9,7 @@
       (window.__NEXT_P = window.__NEXT_P || []).push([
         "/head",
         function() {
-          return __webpack_require__(6820);
+          return __webpack_require__(4489);
         }
       ]);
       if (false) {
@@ -18,7 +18,7 @@
       /***/
     },
 
-    /***/ 6820: /***/ function(
+    /***/ 4489: /***/ function(
       __unused_webpack_module,
       __webpack_exports__,
       __webpack_require__
@@ -35,7 +35,7 @@
         1527
       );
       /* harmony import */ var next_head__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(
-        8412
+        9046
       );
       /* harmony import */ var next_head__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/ __webpack_require__.n(
         next_head__WEBPACK_IMPORTED_MODULE_1__
@@ -71,12 +71,12 @@
       /***/
     },
 
-    /***/ 8412: /***/ function(
+    /***/ 9046: /***/ function(
       module,
       __unused_webpack_exports,
       __webpack_require__
     ) {
-      module.exports = __webpack_require__(8684);
+      module.exports = __webpack_require__(1453);
 
       /***/
     }
@@ -87,7 +87,7 @@
       return __webpack_require__((__webpack_require__.s = moduleId));
     };
     /******/ __webpack_require__.O(0, [774, 888, 179], function() {
-      return __webpack_exec__(2899);
+      return __webpack_exec__(6955);
     });
     /******/ var __webpack_exports__ = __webpack_require__.O();
     /******/ _N_E = __webpack_exports__;
Diff for hooks-HASH.js
@@ -1,7 +1,7 @@
 (self["webpackChunk_N_E"] = self["webpackChunk_N_E"] || []).push([
   [757],
   {
-    /***/ 2304: /***/ function(
+    /***/ 7819: /***/ function(
       __unused_webpack_module,
       __unused_webpack_exports,
       __webpack_require__
@@ -9,7 +9,7 @@
       (window.__NEXT_P = window.__NEXT_P || []).push([
         "/hooks",
         function() {
-          return __webpack_require__(7679);
+          return __webpack_require__(5372);
         }
       ]);
       if (false) {
@@ -18,7 +18,7 @@
       /***/
     },
 
-    /***/ 7679: /***/ function(
+    /***/ 5372: /***/ function(
       __unused_webpack_module,
       __webpack_exports__,
       __webpack_require__
@@ -132,7 +132,7 @@
       return __webpack_require__((__webpack_require__.s = moduleId));
     };
     /******/ __webpack_require__.O(0, [774, 888, 179], function() {
-      return __webpack_exec__(2304);
+      return __webpack_exec__(7819);
     });
     /******/ var __webpack_exports__ = __webpack_require__.O();
     /******/ _N_E = __webpack_exports__;
Diff for image-HASH.js
@@ -26,7 +26,7 @@
       /***/
     },
 
-    /***/ 5885: /***/ function(
+    /***/ 801: /***/ function(
       __unused_webpack_module,
       __unused_webpack_exports,
       __webpack_require__
@@ -34,7 +34,7 @@
       (window.__NEXT_P = window.__NEXT_P || []).push([
         "/image",
         function() {
-          return __webpack_require__(7547);
+          return __webpack_require__(6913);
         }
       ]);
       if (false) {
@@ -43,7 +43,7 @@
       /***/
     },
 
-    /***/ 3200: /***/ function(module, exports, __webpack_require__) {
+    /***/ 206: /***/ function(module, exports, __webpack_require__) {
       "use strict";
 
       Object.defineProperty(exports, "__esModule", {
@@ -66,12 +66,12 @@
         5997
       ) /* ["default"] */.Z;
       var _react = _interop_require_wildcard(__webpack_require__(959));
-      var _head = _interop_require_default(__webpack_require__(8684));
-      var _imageConfig = __webpack_require__(5732);
-      var _useIntersection = __webpack_require__(157);
-      var _imageConfigContext = __webpack_require__(891);
-      var _utils = __webpack_require__(7944);
-      var _normalizeTrailingSlash = __webpack_require__(3912);
+      var _head = _interop_require_default(__webpack_require__(1453));
+      var _imageConfig = __webpack_require__(4188);
+      var _useIntersection = __webpack_require__(4422);
+      var _imageConfigContext = __webpack_require__(7971);
+      var _utils = __webpack_require__(8858);
+      var _normalizeTrailingSlash = __webpack_require__(5289);
       function Image(_param) {
         var src = _param.src,
           sizes = _param.sizes,
@@ -927,7 +927,7 @@
       /***/
     },
 
-    /***/ 157: /***/ function(module, exports, __webpack_require__) {
+    /***/ 4422: /***/ function(module, exports, __webpack_require__) {
       "use strict";
 
       Object.defineProperty(exports, "__esModule", {
@@ -939,7 +939,7 @@
       });
       exports.useIntersection = useIntersection;
       var _react = __webpack_require__(959);
-      var _requestIdleCallback = __webpack_require__(9186);
+      var _requestIdleCallback = __webpack_require__(2398);
       var hasIntersectionObserver = typeof IntersectionObserver === "function";
       var observers = new Map();
       var idList = [];
@@ -1064,7 +1064,7 @@
       /***/
     },
 
-    /***/ 7547: /***/ function(
+    /***/ 6913: /***/ function(
       __unused_webpack_module,
       __webpack_exports__,
       __webpack_require__
@@ -1085,8 +1085,8 @@
 
       // EXTERNAL MODULE: ./node_modules/.pnpm/[email protected]/node_modules/react/jsx-runtime.js
       var jsx_runtime = __webpack_require__(1527);
-      // EXTERNAL MODULE: ./node_modules/.pnpm/file+..+main-repo+packages+next+next-packed.tgz_biqbaboplfbrettd7655fr4n2y/node_modules/next/image.js
-      var next_image = __webpack_require__(3960);
+      // EXTERNAL MODULE: ./node_modules/.pnpm/file+..+diff-repo+packages+next+next-packed.tgz_biqbaboplfbrettd7655fr4n2y/node_modules/next/image.js
+      var next_image = __webpack_require__(8249);
       var image_default = /*#__PURE__*/ __webpack_require__.n(next_image); // CONCATENATED MODULE: ./pages/nextjs.png
       /* harmony default export */ var nextjs = {
         src: "/_next/static/media/nextjs.cae0b805.png",
@@ -1116,12 +1116,12 @@
       /***/
     },
 
-    /***/ 3960: /***/ function(
+    /***/ 8249: /***/ function(
       module,
       __unused_webpack_exports,
       __webpack_require__
     ) {
-      module.exports = __webpack_require__(3200);
+      module.exports = __webpack_require__(206);
 
       /***/
     }
@@ -1132,7 +1132,7 @@
       return __webpack_require__((__webpack_require__.s = moduleId));
     };
     /******/ __webpack_require__.O(0, [774, 888, 179], function() {
-      return __webpack_exec__(5885);
+      return __webpack_exec__(801);
     });
     /******/ var __webpack_exports__ = __webpack_require__.O();
     /******/ _N_E = __webpack_exports__;
Diff for index-HASH.js
@@ -1,7 +1,7 @@
 (self["webpackChunk_N_E"] = self["webpackChunk_N_E"] || []).push([
   [405],
   {
-    /***/ 3558: /***/ function(
+    /***/ 6481: /***/ function(
       __unused_webpack_module,
       __unused_webpack_exports,
       __webpack_require__
@@ -9,7 +9,7 @@
       (window.__NEXT_P = window.__NEXT_P || []).push([
         "/",
         function() {
-          return __webpack_require__(80);
+          return __webpack_require__(5376);
         }
       ]);
       if (false) {
@@ -18,7 +18,7 @@
       /***/
     },
 
-    /***/ 80: /***/ function(
+    /***/ 5376: /***/ function(
       __unused_webpack_module,
       __webpack_exports__,
       __webpack_require__
@@ -46,7 +46,7 @@
       return __webpack_require__((__webpack_require__.s = moduleId));
     };
     /******/ __webpack_require__.O(0, [888, 774, 179], function() {
-      return __webpack_exec__(3558);
+      return __webpack_exec__(6481);
     });
     /******/ var __webpack_exports__ = __webpack_require__.O();
     /******/ _N_E = __webpack_exports__;
Diff for link-HASH.js
@@ -1,7 +1,7 @@
 (self["webpackChunk_N_E"] = self["webpackChunk_N_E"] || []).push([
   [644],
   {
-    /***/ 8662: /***/ function(
+    /***/ 7014: /***/ function(
       __unused_webpack_module,
       __unused_webpack_exports,
       __webpack_require__
@@ -9,7 +9,7 @@
       (window.__NEXT_P = window.__NEXT_P || []).push([
         "/link",
         function() {
-          return __webpack_require__(1269);
+          return __webpack_require__(1226);
         }
       ]);
       if (false) {
@@ -18,7 +18,7 @@
       /***/
     },
 
-    /***/ 6999: /***/ function(module, exports) {
+    /***/ 7173: /***/ function(module, exports) {
       "use strict";
 
       Object.defineProperty(exports, "__esModule", {
@@ -54,7 +54,7 @@
       /***/
     },
 
-    /***/ 8036: /***/ function(module, exports, __webpack_require__) {
+    /***/ 404: /***/ function(module, exports, __webpack_require__) {
       "use strict";
 
       Object.defineProperty(exports, "__esModule", {
@@ -72,13 +72,13 @@
         5997
       ) /* ["default"] */.Z;
       var _react = _interop_require_default(__webpack_require__(959));
-      var _router = __webpack_require__(319);
-      var _addLocale = __webpack_require__(2421);
-      var _routerContext = __webpack_require__(3977);
-      var _appRouterContext = __webpack_require__(8766);
-      var _useIntersection = __webpack_require__(157);
-      var _getDomainLocale = __webpack_require__(6999);
-      var _addBasePath = __webpack_require__(6526);
+      var _router = __webpack_require__(8107);
+      var _addLocale = __webpack_require__(7543);
+      var _routerContext = __webpack_require__(9303);
+      var _appRouterContext = __webpack_require__(7500);
+      var _useIntersection = __webpack_require__(4422);
+      var _getDomainLocale = __webpack_require__(7173);
+      var _addBasePath = __webpack_require__(2851);
       var prefetched = {};
       function prefetch(router, href, as, options) {
         if (false || !router) return;
@@ -423,7 +423,7 @@
       /***/
     },
 
-    /***/ 157: /***/ function(module, exports, __webpack_require__) {
+    /***/ 4422: /***/ function(module, exports, __webpack_require__) {
       "use strict";
 
       Object.defineProperty(exports, "__esModule", {
@@ -435,7 +435,7 @@
       });
       exports.useIntersection = useIntersection;
       var _react = __webpack_require__(959);
-      var _requestIdleCallback = __webpack_require__(9186);
+      var _requestIdleCallback = __webpack_require__(2398);
       var hasIntersectionObserver = typeof IntersectionObserver === "function";
       var observers = new Map();
       var idList = [];
@@ -560,7 +560,7 @@
       /***/
     },
 
-    /***/ 8766: /***/ function(
+    /***/ 7500: /***/ function(
       __unused_webpack_module,
       exports,
       __webpack_require__
@@ -588,7 +588,7 @@
       /***/
     },
 
-    /***/ 1269: /***/ function(
+    /***/ 1226: /***/ function(
       __unused_webpack_module,
       __webpack_exports__,
       __webpack_require__
@@ -605,7 +605,7 @@
         1527
       );
       /* harmony import */ var next_link__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(
-        4595
+        9495
       );
       /* harmony import */ var next_link__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/ __webpack_require__.n(
         next_link__WEBPACK_IMPORTED_MODULE_1__
@@ -636,12 +636,12 @@
       /***/
     },
 
-    /***/ 4595: /***/ function(
+    /***/ 9495: /***/ function(
       module,
       __unused_webpack_exports,
       __webpack_require__
     ) {
-      module.exports = __webpack_require__(8036);
+      module.exports = __webpack_require__(404);
 
       /***/
     }
@@ -652,7 +652,7 @@
       return __webpack_require__((__webpack_require__.s = moduleId));
     };
     /******/ __webpack_require__.O(0, [774, 888, 179], function() {
-      return __webpack_exec__(8662);
+      return __webpack_exec__(7014);
     });
     /******/ var __webpack_exports__ = __webpack_require__.O();
     /******/ _N_E = __webpack_exports__;
Diff for routerDirect-HASH.js
@@ -1,7 +1,7 @@
 (self["webpackChunk_N_E"] = self["webpackChunk_N_E"] || []).push([
   [58],
   {
-    /***/ 2188: /***/ function(
+    /***/ 7288: /***/ function(
       __unused_webpack_module,
       __unused_webpack_exports,
       __webpack_require__
@@ -9,7 +9,7 @@
       (window.__NEXT_P = window.__NEXT_P || []).push([
         "/routerDirect",
         function() {
-          return __webpack_require__(6938);
+          return __webpack_require__(6018);
         }
       ]);
       if (false) {
@@ -18,7 +18,7 @@
       /***/
     },
 
-    /***/ 6938: /***/ function(
+    /***/ 6018: /***/ function(
       __unused_webpack_module,
       __webpack_exports__,
       __webpack_require__
@@ -35,7 +35,7 @@
         1527
       );
       /* harmony import */ var next_router__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(
-        5866
+        5664
       );
       /* harmony import */ var next_router__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/ __webpack_require__.n(
         next_router__WEBPACK_IMPORTED_MODULE_1__
@@ -56,12 +56,12 @@
       /***/
     },
 
-    /***/ 5866: /***/ function(
+    /***/ 5664: /***/ function(
       module,
       __unused_webpack_exports,
       __webpack_require__
     ) {
-      module.exports = __webpack_require__(6401);
+      module.exports = __webpack_require__(2385);
 
       /***/
     }
@@ -72,7 +72,7 @@
       return __webpack_require__((__webpack_require__.s = moduleId));
     };
     /******/ __webpack_require__.O(0, [774, 888, 179], function() {
-      return __webpack_exec__(2188);
+      return __webpack_exec__(7288);
     });
     /******/ var __webpack_exports__ = __webpack_require__.O();
     /******/ _N_E = __webpack_exports__;
Diff for script-HASH.js
@@ -1,7 +1,7 @@
 (self["webpackChunk_N_E"] = self["webpackChunk_N_E"] || []).push([
   [797],
   {
-    /***/ 1136: /***/ function(
+    /***/ 6695: /***/ function(
       __unused_webpack_module,
       __unused_webpack_exports,
       __webpack_require__
@@ -9,7 +9,7 @@
       (window.__NEXT_P = window.__NEXT_P || []).push([
         "/script",
         function() {
-          return __webpack_require__(3560);
+          return __webpack_require__(4237);
         }
       ]);
       if (false) {
@@ -18,7 +18,7 @@
       /***/
     },
 
-    /***/ 3560: /***/ function(
+    /***/ 4237: /***/ function(
       __unused_webpack_module,
       __webpack_exports__,
       __webpack_require__
@@ -35,7 +35,7 @@
         1527
       );
       /* harmony import */ var next_script__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(
-        9096
+        6071
       );
       /* harmony import */ var next_script__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/ __webpack_require__.n(
         next_script__WEBPACK_IMPORTED_MODULE_1__
@@ -70,12 +70,12 @@
       /***/
     },
 
-    /***/ 9096: /***/ function(
+    /***/ 6071: /***/ function(
       module,
       __unused_webpack_exports,
       __webpack_require__
     ) {
-      module.exports = __webpack_require__(9142);
+      module.exports = __webpack_require__(1149);
 
       /***/
     }
@@ -86,7 +86,7 @@
       return __webpack_require__((__webpack_require__.s = moduleId));
     };
     /******/ __webpack_require__.O(0, [774, 888, 179], function() {
-      return __webpack_exec__(1136);
+      return __webpack_exec__(6695);
     });
     /******/ var __webpack_exports__ = __webpack_require__.O();
     /******/ _N_E = __webpack_exports__;
Diff for withRouter-HASH.js
@@ -1,7 +1,7 @@
 (self["webpackChunk_N_E"] = self["webpackChunk_N_E"] || []).push([
   [807],
   {
-    /***/ 3551: /***/ function(
+    /***/ 8118: /***/ function(
       __unused_webpack_module,
       __unused_webpack_exports,
       __webpack_require__
@@ -9,7 +9,7 @@
       (window.__NEXT_P = window.__NEXT_P || []).push([
         "/withRouter",
         function() {
-          return __webpack_require__(6216);
+          return __webpack_require__(3622);
         }
       ]);
       if (false) {
@@ -18,7 +18,7 @@
       /***/
     },
 
-    /***/ 6216: /***/ function(
+    /***/ 3622: /***/ function(
       __unused_webpack_module,
       __webpack_exports__,
       __webpack_require__
@@ -35,7 +35,7 @@
         1527
       );
       /* harmony import */ var next_router__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(
-        5866
+        5664
       );
       /* harmony import */ var next_router__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/ __webpack_require__.n(
         next_router__WEBPACK_IMPORTED_MODULE_1__
@@ -54,12 +54,12 @@
       /***/
     },
 
-    /***/ 5866: /***/ function(
+    /***/ 5664: /***/ function(
       module,
       __unused_webpack_exports,
       __webpack_require__
     ) {
-      module.exports = __webpack_require__(6401);
+      module.exports = __webpack_require__(2385);
 
       /***/
     }
@@ -70,7 +70,7 @@
       return __webpack_require__((__webpack_require__.s = moduleId));
     };
     /******/ __webpack_require__.O(0, [774, 888, 179], function() {
-      return __webpack_exec__(3551);
+      return __webpack_exec__(8118);
     });
     /******/ var __webpack_exports__ = __webpack_require__.O();
     /******/ _N_E = __webpack_exports__;
Diff for 900.HASH.js
@@ -1,8 +1,8 @@
 "use strict";
 (self["webpackChunk_N_E"] = self["webpackChunk_N_E"] || []).push([
-  [900],
+  [886],
   {
-    /***/ 3900: /***/ function(
+    /***/ 5886: /***/ function(
       __unused_webpack_module,
       __webpack_exports__,
       __webpack_require__
Diff for main-HASH.js

Diff too large to display

Diff for webpack-HASH.js
@@ -159,7 +159,7 @@
     /******/ __webpack_require__.u = function(chunkId) {
       /******/ // return url for filenames based on template
       /******/ return (
-        "static/chunks/" + chunkId + "." + "f01fcc2109adde55" + ".js"
+        "static/chunks/" + chunkId + "." + "b879335d00f271d1" + ".js"
       );
       /******/
     };
Diff for index.html
@@ -11,7 +11,7 @@
       src="/_next/static/chunks/polyfills-c67a75d1b6f99dc8.js"
     ></script>
     <script
-      src="/_next/static/chunks/webpack-596ddb9e5090dbce.js"
+      src="/_next/static/chunks/webpack-752e2e86747c1b07.js"
       defer=""
     ></script>
     <script
@@ -19,15 +19,15 @@
       defer=""
     ></script>
     <script
-      src="/_next/static/chunks/main-973715a7fb162c3a.js"
+      src="/_next/static/chunks/main-8bdfa4a832fbf4d5.js"
       defer=""
     ></script>
     <script
-      src="/_next/static/chunks/pages/_app-92c368fd6cf3735d.js"
+      src="/_next/static/chunks/pages/_app-dfaef6942d774f42.js"
       defer=""
     ></script>
     <script
-      src="/_next/static/chunks/pages/index-eff379b6d5b9bb68.js"
+      src="/_next/static/chunks/pages/index-2d083d34263a3ab6.js"
       defer=""
     ></script>
     <script src="/_next/static/BUILD_ID/_buildManifest.js" defer=""></script>
Diff for link.html
@@ -11,7 +11,7 @@
       src="/_next/static/chunks/polyfills-c67a75d1b6f99dc8.js"
     ></script>
     <script
-      src="/_next/static/chunks/webpack-596ddb9e5090dbce.js"
+      src="/_next/static/chunks/webpack-752e2e86747c1b07.js"
       defer=""
     ></script>
     <script
@@ -19,15 +19,15 @@
       defer=""
     ></script>
     <script
-      src="/_next/static/chunks/main-973715a7fb162c3a.js"
+      src="/_next/static/chunks/main-8bdfa4a832fbf4d5.js"
       defer=""
     ></script>
     <script
-      src="/_next/static/chunks/pages/_app-92c368fd6cf3735d.js"
+      src="/_next/static/chunks/pages/_app-dfaef6942d774f42.js"
       defer=""
     ></script>
     <script
-      src="/_next/static/chunks/pages/link-6ea07ed77121154e.js"
+      src="/_next/static/chunks/pages/link-0bffdc44a0247b3e.js"
       defer=""
     ></script>
     <script src="/_next/static/BUILD_ID/_buildManifest.js" defer=""></script>
Diff for withRouter.html
@@ -11,7 +11,7 @@
       src="/_next/static/chunks/polyfills-c67a75d1b6f99dc8.js"
     ></script>
     <script
-      src="/_next/static/chunks/webpack-596ddb9e5090dbce.js"
+      src="/_next/static/chunks/webpack-752e2e86747c1b07.js"
       defer=""
     ></script>
     <script
@@ -19,15 +19,15 @@
       defer=""
     ></script>
     <script
-      src="/_next/static/chunks/main-973715a7fb162c3a.js"
+      src="/_next/static/chunks/main-8bdfa4a832fbf4d5.js"
       defer=""
     ></script>
     <script
-      src="/_next/static/chunks/pages/_app-92c368fd6cf3735d.js"
+      src="/_next/static/chunks/pages/_app-dfaef6942d774f42.js"
       defer=""
     ></script>
     <script
-      src="/_next/static/chunks/pages/withRouter-394e599a32dcd7a4.js"
+      src="/_next/static/chunks/pages/withRouter-27de9f24be6003e9.js"
       defer=""
     ></script>
     <script src="/_next/static/BUILD_ID/_buildManifest.js" defer=""></script>

Default Build with SWC (Increase detected ⚠️)
General Overall increase ⚠️
vercel/next.js canary vercel/next.js chore/add-build-to-eslint-plugin-next Change
buildDuration 25.6s 25.3s -370ms
buildDurationCached 7.8s 7.8s -51ms
nodeModulesSize 74.2 MB 74.2 MB
nextStartRea..uration (ms) 296ms 299ms ⚠️ +3ms
nextDevReadyDuration 320ms 331ms ⚠️ +11ms
Page Load Tests Overall increase ✓
vercel/next.js canary vercel/next.js chore/add-build-to-eslint-plugin-next Change
/ failed reqs 0 0
/ total time (seconds) 9.493 9.314 -0.18
/ avg req/sec 263.35 268.41 +5.06
/error-in-render failed reqs 0 0
/error-in-render total time (seconds) 6.332 6.311 -0.02
/error-in-render avg req/sec 394.82 396.13 +1.31
Client Bundles (main, webpack) Overall decrease ✓
vercel/next.js canary vercel/next.js chore/add-build-to-eslint-plugin-next Change
900.HASH.js gzip 179 B 179 B
framework-HASH.js gzip 45.5 kB 45.5 kB
main-HASH.js gzip 30.9 kB 30.9 kB -26 B
webpack-HASH.js gzip 1.52 kB 1.52 kB ⚠️ +1 B
Overall change 78.1 kB 78.1 kB -25 B
Legacy Client Bundles (polyfills)
vercel/next.js canary vercel/next.js chore/add-build-to-eslint-plugin-next Change
polyfills-HASH.js gzip 31 kB 31 kB
Overall change 31 kB 31 kB
Client Pages Overall increase ⚠️
vercel/next.js canary vercel/next.js chore/add-build-to-eslint-plugin-next Change
_app-HASH.js gzip 194 B 195 B ⚠️ +1 B
_error-HASH.js gzip 182 B 182 B
amp-HASH.js gzip 481 B 483 B ⚠️ +2 B
css-HASH.js gzip 323 B 324 B ⚠️ +1 B
dynamic-HASH.js gzip 2.01 kB 2.01 kB
edge-ssr-HASH.js gzip 278 B 278 B
head-HASH.js gzip 351 B 351 B
hooks-HASH.js gzip 781 B 780 B -1 B
image-HASH.js gzip 4.8 kB 4.8 kB -4 B
index-HASH.js gzip 256 B 259 B ⚠️ +3 B
link-HASH.js gzip 2.35 kB 2.35 kB -2 B
routerDirect..HASH.js gzip 312 B 312 B
script-HASH.js gzip 385 B 386 B ⚠️ +1 B
withRouter-HASH.js gzip 309 B 309 B
85e02e95b279..7e3.css gzip 107 B 107 B
Overall change 13.1 kB 13.1 kB ⚠️ +1 B
Client Build Manifests Overall increase ⚠️
vercel/next.js canary vercel/next.js chore/add-build-to-eslint-plugin-next Change
_buildManifest.js gzip 482 B 485 B ⚠️ +3 B
Overall change 482 B 485 B ⚠️ +3 B
Rendered Page Sizes Overall decrease ✓
vercel/next.js canary vercel/next.js chore/add-build-to-eslint-plugin-next Change
index.html gzip 512 B 511 B -1 B
link.html gzip 525 B 524 B -1 B
withRouter.html gzip 506 B 505 B -1 B
Overall change 1.54 kB 1.54 kB -3 B
Edge SSR Page bundle Size Overall decrease ✓

ijjk avatar Jul 14 '22 16:07 ijjk

Failing test suites

Commit: 49ea9adb4d3ee31dc188b5c647c971c99b426495

pnpm testheadless test/integration/eslint/test/index.test.js

  • ESLint > Next Build > shows warnings and errors
  • ESLint > Next Build > base directories are linted by default during builds
  • ESLint > Next Build > custom directories
  • ESLint > Next Build > empty directories do not fail the build
  • ESLint > Next Build > eslint ignored directories do not fail the build
  • ESLint > Next Build > eslint caching is enabled
  • ESLint > Next Build > eslint cache lives in the user defined build directory
  • ESLint > Next Lint > shows warnings and errors
  • ESLint > Next Lint > base directories are linted by default
  • ESLint > Next Lint > shows warnings and errors with next/core-web-vitals config
  • ESLint > Next Lint > shows warnings and errors when extending plugin recommended config
  • ESLint > Next Lint > shows warnings and errors when extending plugin core-web-vitals config
  • ESLint > Next Lint > success message when no warnings or errors
  • ESLint > Next Lint > quiet flag suppresses warnings and only reports errors
  • ESLint > Next Lint > custom directories
  • ESLint > Next Lint > max warnings flag errors when warnings exceed threshold
  • ESLint > Next Lint > max warnings flag does not error when warnings do not exceed threshold
  • ESLint > Next Lint > format flag supports additional user-defined formats
  • ESLint > Next Lint > eslint caching is enabled by default
  • ESLint > Next Lint > eslint caching is disabled with the --no-cache flag
  • ESLint > Next Lint > the default eslint cache lives in the user defined build directory
  • ESLint > Next Lint > the --cache-location flag allows the user to define a separate cache location
  • ESLint > Next Lint > the default eslint caching strategy is metadata
  • ESLint > Next Lint > cache with content strategy is different from the one with default strategy
  • ESLint > Next Lint > file flag can selectively lint only a single file
  • ESLint > Next Lint > file flag can selectively lints multiple files
  • ESLint > Next Lint > output flag create a file respecting the chosen format
  • ESLint > Next Lint > output flag create a file respecting the chosen format
  • ESLint > Next Lint > show error message when the file path is a directory
Expand output

● ESLint › Next Build › shows warnings and errors

expect(received).toContain(expected) // indexOf

Expected substring: "Warning: Synchronous scripts should not be used."
Received string:    "info  - Linting and checking validity of types...
info  - Creating an optimized production build...
info  - Using locally built binary of @next/swc
info  - Compiled successfully
info  - Collecting page data...
info  - Generating static pages (0/3)
info  - Generating static pages (3/3)
info  - Finalizing page optimization...·
Route (pages)                              Size     First Load JS
┌ ○ /                                      316 B          77.2 kB
└ ○ /404                                   195 B          77.1 kB
+ First Load JS shared by all              76.9 kB
  ├ chunks/framework-75ec34940eea6891.js   45.2 kB
  ├ chunks/main-0c890c2fa3fc9ff0.js        30.7 kB
  ├ chunks/pages/_app-f7bb5cb35ab407c3.js  202 B
  └ chunks/webpack-05b8c18cdbe0b397.js     688 B·
○  (Static)  automatically rendered as static HTML (uses no initial props)·
error - ESLint: Error while loading rule '@next/next/no-img-element': rule.create is not a function Occurred while linting /home/runner/work/next.js/next.js/test/integration/eslint/custom-config/pages/index.js
"

  60 |
  61 |       const output = stdout + stderr
> 62 |       expect(output).toContain(
     |                      ^
  63 |         'Warning: Synchronous scripts should not be used.'
  64 |       )
  65 |       expect(output).toContain(

  at Object.<anonymous> (integration/eslint/test/index.test.js:62:22)

● ESLint › Next Build › base directories are linted by default during builds

expect(received).toContain(expected) // indexOf

Expected substring: "Failed to compile"
Received string:    "info  - Linting and checking validity of types...
info  - Creating an optimized production build...
info  - Using locally built binary of @next/swc
info  - Compiled successfully
info  - Collecting page data...
info  - Generating static pages (0/2)
info  - Generating static pages (2/2)
info  - Finalizing page optimization...·
Route (pages)                              Size     First Load JS
─ ○ /404                                   195 B          76.9 kB
+ First Load JS shared by all              76.7 kB
  ├ chunks/framework-fdd4eda6c8e986e5.js   45.1 kB
  ├ chunks/main-0c890c2fa3fc9ff0.js        30.7 kB
  ├ chunks/pages/_app-f7bb5cb35ab407c3.js  202 B
  └ chunks/webpack-7d0ef319438b7284.js     610 B·
○  (Static)  automatically rendered as static HTML (uses no initial props)·
error - ESLint: Error while loading rule '@next/next/no-img-element': rule.create is not a function Occurred while linting /home/runner/work/next.js/next.js/test/integration/eslint/base-directories/pages/_document.js
"

  89 |       const output = stdout + stderr
  90 |
> 91 |       expect(output).toContain('Failed to compile')
     |                      ^
  92 |       expect(output).toContain(
  93 |         'Error: `next/head` should not be imported in `pages/_document.js`. Use `<Head />` from `next/document` instead'
  94 |       )

  at Object.<anonymous> (integration/eslint/test/index.test.js:91:22)

● ESLint › Next Build › custom directories

expect(received).toContain(expected) // indexOf

Expected substring: "Failed to compile"
Received string:    "info  - Linting and checking validity of types...
info  - Creating an optimized production build...
info  - Using locally built binary of @next/swc
info  - Compiled successfully
info  - Collecting page data...
info  - Generating static pages (0/3)
info  - Generating static pages (3/3)
info  - Finalizing page optimization...·
Route (pages)                              Size     First Load JS
┌ ○ /                                      288 B          77.2 kB
└ ○ /404                                   195 B          77.1 kB
+ First Load JS shared by all              76.9 kB
  ├ chunks/framework-75ec34940eea6891.js   45.2 kB
  ├ chunks/main-0c890c2fa3fc9ff0.js        30.7 kB
  ├ chunks/pages/_app-f7bb5cb35ab407c3.js  202 B
  └ chunks/webpack-05b8c18cdbe0b397.js     688 B·
○  (Static)  automatically rendered as static HTML (uses no initial props)·
error - ESLint: Error while loading rule '@next/next/no-img-element': rule.create is not a function Occurred while linting /home/runner/work/next.js/next.js/test/integration/eslint/custom-directories/utils/index.js
"

  115 |
  116 |       const output = stdout + stderr
> 117 |       expect(output).toContain('Failed to compile')
      |                      ^
  118 |       expect(output).toContain(
  119 |         'Error: Comments inside children section of tag should be placed inside braces'
  120 |       )

  at Object.<anonymous> (integration/eslint/test/index.test.js:117:22)

● ESLint › Next Build › empty directories do not fail the build

expect(received).toContain(expected) // indexOf

Expected substring: "Warning: Synchronous scripts should not be used."
Received string:    "info  - Linting and checking validity of types...
info  - Creating an optimized production build...
info  - Using locally built binary of @next/swc
info  - Compiled successfully
info  - Collecting page data...
info  - Generating static pages (0/3)
info  - Generating static pages (3/3)
info  - Finalizing page optimization...·
Route (pages)                              Size     First Load JS
┌ ○ /                                      294 B          77.2 kB
└ ○ /404                                   195 B          77.1 kB
+ First Load JS shared by all              76.9 kB
  ├ chunks/framework-75ec34940eea6891.js   45.2 kB
  ├ chunks/main-0c890c2fa3fc9ff0.js        30.7 kB
  ├ chunks/pages/_app-f7bb5cb35ab407c3.js  202 B
  └ chunks/webpack-05b8c18cdbe0b397.js     688 B·
○  (Static)  automatically rendered as static HTML (uses no initial props)·
error - ESLint: Error while loading rule '@next/next/no-img-element': rule.create is not a function Occurred while linting /home/runner/work/next.js/next.js/test/integration/eslint/empty-directory/pages/index.js
"

  149 |       expect(output).not.toContain('Build error occurred')
  150 |       expect(output).not.toContain('NoFilesFoundError')
> 151 |       expect(output).toContain(
      |                      ^
  152 |         'Warning: Synchronous scripts should not be used.'
  153 |       )
  154 |       expect(output).toContain('Compiled successfully')

  at Object.<anonymous> (integration/eslint/test/index.test.js:151:22)

● ESLint › Next Build › eslint ignored directories do not fail the build

expect(received).toContain(expected) // indexOf

Expected substring: "Warning: Synchronous scripts should not be used."
Received string:    "info  - Linting and checking validity of types...
info  - Creating an optimized production build...
info  - Using locally built binary of @next/swc
info  - Compiled successfully
info  - Collecting page data...
info  - Generating static pages (0/3)
info  - Generating static pages (3/3)
info  - Finalizing page optimization...·
Route (pages)                              Size     First Load JS
┌ ○ /                                      294 B          77.2 kB
└ ○ /404                                   195 B          77.1 kB
+ First Load JS shared by all              76.9 kB
  ├ chunks/framework-75ec34940eea6891.js   45.2 kB
  ├ chunks/main-0c890c2fa3fc9ff0.js        30.7 kB
  ├ chunks/pages/_app-f7bb5cb35ab407c3.js  202 B
  └ chunks/webpack-05b8c18cdbe0b397.js     688 B·
○  (Static)  automatically rendered as static HTML (uses no initial props)·
error - ESLint: Error while loading rule '@next/next/no-img-element': rule.create is not a function Occurred while linting /home/runner/work/next.js/next.js/test/integration/eslint/eslint-ignore/pages/index.js
"

  164 |       expect(output).not.toContain('Build error occurred')
  165 |       expect(output).not.toContain('AllFilesIgnoredError')
> 166 |       expect(output).toContain(
      |                      ^
  167 |         'Warning: Synchronous scripts should not be used.'
  168 |       )
  169 |       expect(output).toContain('Compiled successfully')

  at Object.<anonymous> (integration/eslint/test/index.test.js:166:22)

● ESLint › Next Build › eslint caching is enabled

ENOENT: no such file or directory, scandir '/home/runner/work/next.js/next.js/test/integration/eslint/eslint-cache/.next/cache/eslint/'

● ESLint › Next Build › eslint cache lives in the user defined build directory

ENOENT: no such file or directory, scandir '/home/runner/work/next.js/next.js/test/integration/eslint/eslint-cache-custom-dir/build/cache/eslint/'

● ESLint › Next Lint › shows warnings and errors

expect(received).toContain(expected) // indexOf

Expected substring: "Warning: Synchronous scripts should not be used."
Received string:    "Error while loading rule '@next/next/no-img-element': rule.create is not a function
Occurred while linting /home/runner/work/next.js/next.js/test/integration/eslint/custom-config/pages/index.js
"

  308 |
  309 |       const output = stdout + stderr
> 310 |       expect(output).toContain(
      |                      ^
  311 |         'Warning: Synchronous scripts should not be used.'
  312 |       )
  313 |       expect(output).toContain(

  at Object.<anonymous> (integration/eslint/test/index.test.js:310:22)

● ESLint › Next Lint › base directories are linted by default

expect(received).toContain(expected) // indexOf

Expected substring: "Error: `next/head` should not be imported in `pages/_document.js`. Use `<Head />` from `next/document` instead"
Received string:    "Error while loading rule '@next/next/no-img-element': rule.create is not a function
Occurred while linting /home/runner/work/next.js/next.js/test/integration/eslint/base-directories/pages/_document.js
"

  323 |
  324 |       const output = stdout + stderr
> 325 |       expect(output).toContain(
      |                      ^
  326 |         'Error: `next/head` should not be imported in `pages/_document.js`. Use `<Head />` from `next/document` instead'
  327 |       )
  328 |       expect(output).toContain(

  at Object.<anonymous> (integration/eslint/test/index.test.js:325:22)

● ESLint › Next Lint › shows warnings and errors with next/core-web-vitals config

expect(received).toContain(expected) // indexOf

Expected substring: "Warning: Do not use `<img>` element. Use `<Image />` from `next/image` instead."
Received string:    "Error while loading rule '@next/next/no-img-element': rule.create is not a function
Occurred while linting /home/runner/work/next.js/next.js/test/integration/eslint/config-core-web-vitals/pages/index.js
"

  348 |
  349 |       const output = stdout + stderr
> 350 |       expect(output).toContain(
      |                      ^
  351 |         'Warning: Do not use `<img>` element. Use `<Image />` from `next/image` instead.'
  352 |       )
  353 |       expect(output).toContain('Error: Synchronous scripts should not be used.')

  at Object.<anonymous> (integration/eslint/test/index.test.js:350:22)

● ESLint › Next Lint › shows warnings and errors when extending plugin recommended config

expect(received).toContain(expected) // indexOf

Expected substring: "Warning: Synchronous scripts should not be used."
Received string:    "Error while loading rule '@next/next/no-img-element': rule.create is not a function
Occurred while linting /home/runner/work/next.js/next.js/test/integration/eslint/plugin-recommended-config/pages/index.js
"

  365 |
  366 |       const output = stdout + stderr
> 367 |       expect(output).toContain(
      |                      ^
  368 |         'Warning: Synchronous scripts should not be used.'
  369 |       )
  370 |       expect(output).toContain(

  at Object.<anonymous> (integration/eslint/test/index.test.js:367:22)

● ESLint › Next Lint › shows warnings and errors when extending plugin core-web-vitals config

expect(received).toContain(expected) // indexOf

Expected substring: "Warning: Do not use `<img>` element. Use `<Image />` from `next/image` instead."
Received string:    "Error while loading rule '@next/next/no-img-element': rule.create is not a function
Occurred while linting /home/runner/work/next.js/next.js/test/integration/eslint/plugin-core-web-vitals-config/pages/index.js
"

  384 |
  385 |       const output = stdout + stderr
> 386 |       expect(output).toContain(
      |                      ^
  387 |         'Warning: Do not use `<img>` element. Use `<Image />` from `next/image` instead.'
  388 |       )
  389 |       expect(output).toContain('Error: Synchronous scripts should not be used.')

  at Object.<anonymous> (integration/eslint/test/index.test.js:386:22)

● ESLint › Next Lint › success message when no warnings or errors

expect(received).toContain(expected) // indexOf

Expected substring: "No ESLint warnings or errors"
Received string:    "Error while loading rule '@next/next/no-img-element': rule.create is not a function
Occurred while linting /home/runner/work/next.js/next.js/test/integration/eslint/first-time-setup/pages/index.js
"

  400 |
  401 |       const output = stdout + stderr
> 402 |       expect(output).toContain('No ESLint warnings or errors')
      |                      ^
  403 |     })
  404 |
  405 |     test("don't create .eslintrc file if package.json has eslintConfig field", async () => {

  at Object.<anonymous> (integration/eslint/test/index.test.js:402:22)

● ESLint › Next Lint › quiet flag suppresses warnings and only reports errors

expect(received).toContain(expected) // indexOf

Expected substring: "Error: Comments inside children section of tag should be placed inside braces"
Received string:    "Error while loading rule '@next/next/no-img-element': rule.create is not a function
Occurred while linting /home/runner/work/next.js/next.js/test/integration/eslint/custom-config/pages/index.js
"

  449 |
  450 |       const output = stdout + stderr
> 451 |       expect(output).toContain(
      |                      ^
  452 |         'Error: Comments inside children section of tag should be placed inside braces'
  453 |       )
  454 |       expect(output).not.toContain(

  at Object.<anonymous> (integration/eslint/test/index.test.js:451:22)

● ESLint › Next Lint › custom directories

expect(received).toContain(expected) // indexOf

Expected substring: "Error: Comments inside children section of tag should be placed inside braces"
Received string:    "Error while loading rule '@next/next/no-img-element': rule.create is not a function
Occurred while linting /home/runner/work/next.js/next.js/test/integration/eslint/custom-directories/utils/index.js
"

  464 |
  465 |       const output = stdout + stderr
> 466 |       expect(output).toContain(
      |                      ^
  467 |         'Error: Comments inside children section of tag should be placed inside braces'
  468 |       )
  469 |       expect(output).toContain(

  at Object.<anonymous> (integration/eslint/test/index.test.js:466:22)

● ESLint › Next Lint › max warnings flag errors when warnings exceed threshold

expect(received).toContain(expected) // indexOf

Expected substring: "Warning: Synchronous scripts should not be used."
Received string:    "Error while loading rule '@next/next/no-img-element': rule.create is not a function
Occurred while linting /home/runner/work/next.js/next.js/test/integration/eslint/max-warnings/pages/about.js
"

  483 |
  484 |       expect(stderr).not.toEqual('')
> 485 |       expect(stderr).toContain(
      |                      ^
  486 |         'Warning: Synchronous scripts should not be used.'
  487 |       )
  488 |       expect(stdout).not.toContain(

  at Object.<anonymous> (integration/eslint/test/index.test.js:485:22)

● ESLint › Next Lint › max warnings flag does not error when warnings do not exceed threshold

expect(received).toEqual(expected) // deep equality

Expected: ""
Received: "Error while loading rule '@next/next/no-img-element': rule.create is not a function
Occurred while linting /home/runner/work/next.js/next.js/test/integration/eslint/max-warnings/pages/about.js
"

  501 |       )
  502 |
> 503 |       expect(stderr).toEqual('')
      |                      ^
  504 |       expect(stderr).not.toContain(
  505 |         'Warning: Synchronous scripts should not be used.'
  506 |       )

  at Object.<anonymous> (integration/eslint/test/index.test.js:503:22)

● ESLint › Next Lint › format flag supports additional user-defined formats

expect(received).toContain(expected) // indexOf

Expected substring: "warning: Synchronous scripts should not be used."
Received string:    "Error while loading rule '@next/next/no-img-element': rule.create is not a function
Occurred while linting /home/runner/work/next.js/next.js/test/integration/eslint/max-warnings/pages/about.js
"

  521 |
  522 |       const output = stdout + stderr
> 523 |       expect(output).toContain(
      |                      ^
  524 |         'warning: Synchronous scripts should not be used.'
  525 |       )
  526 |       expect(stdout).toContain('<script src="https://example.com" />')

  at Object.<anonymous> (integration/eslint/test/index.test.js:523:22)

● ESLint › Next Lint › eslint caching is enabled by default

command failed with code 1
Error while loading rule '@next/next/no-img-element': rule.create is not a function
Occurred while linting /home/runner/work/next.js/next.js/test/integration/eslint/eslint-cache/pages/index.js

  218 |       ) {
  219 |         return reject(
> 220 |           new Error(`command failed with code ${code}\n${mergedStdio}`)
      |           ^
  221 |         )
  222 |       }
  223 |

  at ChildProcess.<anonymous> (lib/next-test-utils.js:220:11)

● ESLint › Next Lint › eslint caching is disabled with the --no-cache flag

command failed with code 1
Error while loading rule '@next/next/no-img-element': rule.create is not a function
Occurred while linting /home/runner/work/next.js/next.js/test/integration/eslint/eslint-cache/pages/index.js

  218 |       ) {
  219 |         return reject(
> 220 |           new Error(`command failed with code ${code}\n${mergedStdio}`)
      |           ^
  221 |         )
  222 |       }
  223 |

  at ChildProcess.<anonymous> (lib/next-test-utils.js:220:11)

● ESLint › Next Lint › the default eslint cache lives in the user defined build directory

command failed with code 1
Error while loading rule '@next/next/no-img-element': rule.create is not a function
Occurred while linting /home/runner/work/next.js/next.js/test/integration/eslint/eslint-cache-custom-dir/pages/index.js

  218 |       ) {
  219 |         return reject(
> 220 |           new Error(`command failed with code ${code}\n${mergedStdio}`)
      |           ^
  221 |         )
  222 |       }
  223 |

  at ChildProcess.<anonymous> (lib/next-test-utils.js:220:11)

● ESLint › Next Lint › the --cache-location flag allows the user to define a separate cache location

command failed with code 1
Error while loading rule '@next/next/no-img-element': rule.create is not a function
Occurred while linting /home/runner/work/next.js/next.js/test/integration/eslint/eslint-cache/pages/index.js

  218 |       ) {
  219 |         return reject(
> 220 |           new Error(`command failed with code ${code}\n${mergedStdio}`)
      |           ^
  221 |         )
  222 |       }
  223 |

  at ChildProcess.<anonymous> (lib/next-test-utils.js:220:11)

● ESLint › Next Lint › the default eslint caching strategy is metadata

command failed with code 1
Error while loading rule '@next/next/no-img-element': rule.create is not a function
Occurred while linting /home/runner/work/next.js/next.js/test/integration/eslint/eslint-cache/pages/index.js

  218 |       ) {
  219 |         return reject(
> 220 |           new Error(`command failed with code ${code}\n${mergedStdio}`)
      |           ^
  221 |         )
  222 |       }
  223 |

  at ChildProcess.<anonymous> (lib/next-test-utils.js:220:11)

● ESLint › Next Lint › cache with content strategy is different from the one with default strategy

command failed with code 1
Error while loading rule '@next/next/no-img-element': rule.create is not a function
Occurred while linting /home/runner/work/next.js/next.js/test/integration/eslint/eslint-cache/pages/index.js

  218 |       ) {
  219 |         return reject(
> 220 |           new Error(`command failed with code ${code}\n${mergedStdio}`)
      |           ^
  221 |         )
  222 |       }
  223 |

  at ChildProcess.<anonymous> (lib/next-test-utils.js:220:11)

● ESLint › Next Lint › file flag can selectively lint only a single file

expect(received).toContain(expected) // indexOf

Expected substring: "Comments inside children section of tag should be placed inside braces"
Received string:    "Error while loading rule '@next/next/no-img-element': rule.create is not a function
Occurred while linting /home/runner/work/next.js/next.js/test/integration/eslint/file-linting/utils/math.js
"

  631 |
  632 |       expect(output).toContain('utils/math.js')
> 633 |       expect(output).toContain(
      |                      ^
  634 |         'Comments inside children section of tag should be placed inside braces'
  635 |       )
  636 |

  at Object.<anonymous> (integration/eslint/test/index.test.js:633:22)

● ESLint › Next Lint › file flag can selectively lints multiple files

expect(received).toContain(expected) // indexOf

Expected substring: "Comments inside children section of tag should be placed inside braces"
Received string:    "Error while loading rule '@next/next/no-img-element': rule.create is not a function
Occurred while linting /home/runner/work/next.js/next.js/test/integration/eslint/file-linting/utils/math.js
"

  652 |
  653 |       expect(output).toContain('utils/math.js')
> 654 |       expect(output).toContain(
      |                      ^
  655 |         'Comments inside children section of tag should be placed inside braces'
  656 |       )
  657 |

  at Object.<anonymous> (integration/eslint/test/index.test.js:654:22)

● ESLint › Next Lint › output flag create a file respecting the chosen format

ENOENT: no such file or directory, open '/home/runner/work/next.js/next.js/test/integration/eslint/test/output/output.json'

● ESLint › Next Lint › output flag create a file respecting the chosen format

ENOENT: no such file or directory, open '/home/runner/work/next.js/next.js/test/integration/eslint/test/output/output.txt'

  731 |
  732 |       const cliOutput = stdout + stderr
> 733 |       const fileOutput = fs.readFileSync(filePath, 'utf8')
      |                             ^
  734 |
  735 |       expect(cliOutput).toContain(
  736 |         `The output file has been created: ${filePath}`

  at Object.<anonymous> (integration/eslint/test/index.test.js:733:29)

● ESLint › Next Lint › show error message when the file path is a directory

expect(received).toContain(expected) // indexOf

Expected substring: "Cannot write to output file path, it is a directory: /home/runner/work/next.js/next.js/test/integration/eslint/test"
Received string:    "Error while loading rule '@next/next/no-img-element': rule.create is not a function
Occurred while linting /home/runner/work/next.js/next.js/test/integration/eslint/file-linting/pages/bar.js
"

  764 |       const cliOutput = stdout + stderr
  765 |
> 766 |       expect(cliOutput).toContain(
      |                         ^
  767 |         `Cannot write to output file path, it is a directory: ${filePath}`
  768 |       )
  769 |     })

  at Object.<anonymous> (integration/eslint/test/index.test.js:766:25)

Read more about building and testing Next.js in contributing.md.

pnpm testheadless test/integration/telemetry/test/index.test.js

  • Telemetry CLI > emits telemetry for lint during build
  • Telemetry CLI > emits telemetry for next lint
  • Telemetry CLI > emits telemetry for usage of swc
Expand output

● Telemetry CLI › emits telemetry for lint during build

TypeError: Cannot read properties of null (reading 'pop')

  561 |
  562 |     const event1 = /NEXT_LINT_CHECK_COMPLETED[\s\S]+?{([\s\S}]+?)^}/m
> 563 |       .exec(stderr)
      |                    ^
  564 |       .pop()
  565 |
  566 |     expect(event1).toMatch(/"durationInSeconds": [\d]{1,}/)

  at Object.<anonymous> (integration/telemetry/test/index.test.js:563:20)

● Telemetry CLI › emits telemetry for next lint

TypeError: Cannot read properties of null (reading 'pop')

  625 |
  626 |     const event1 = /NEXT_LINT_CHECK_COMPLETED[\s\S]+?{([\s\S]+?)^}/m
> 627 |       .exec(stderr)
      |                    ^
  628 |       .pop()
  629 |
  630 |     expect(event1).toMatch(/"durationInSeconds": [\d]{1,}/)

  at Object.<anonymous> (integration/telemetry/test/index.test.js:627:20)

● Telemetry CLI › emits telemetry for usage of swc

ENOENT: no such file or directory, rename '/home/runner/work/next.js/next.js/test/integration/telemetry/next.config.swc' -> '/home/runner/work/next.js/next.js/test/integration/telemetry/next.config.js'

Read more about building and testing Next.js in contributing.md.

ijjk avatar Jul 14 '22 16:07 ijjk

Failing test suites

Commit: b45de36c4604b33e3df7b7db5c90080625668076

pnpm testheadless test/development/basic/hmr.test.ts

  • basic HMR > Full reload > should warn about full reload in cli output - runtime-error
Expand output

● basic HMR › Full reload › should warn about full reload in cli output - runtime-error

TIMED OUT: whoops

undefined

  519 |
  520 |   if (hardError) {
> 521 |     throw new Error('TIMED OUT: ' + regex + '\n\n' + content)
      |           ^
  522 |   }
  523 |   return false
  524 | }

  at check (lib/next-test-utils.js:521:11)
  at Object.<anonymous> (development/basic/hmr.test.ts:839:7)

Read more about building and testing Next.js in contributing.md.

ijjk avatar Sep 13 '22 01:09 ijjk