Skip to content

Commit

Permalink
Fix next dev not working for server components in app (#37403)
Browse files Browse the repository at this point in the history
## 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](https://github.com/vercel/next.js/blob/canary/contributing.md#adding-examples)
  • Loading branch information
shuding committed Jun 2, 2022
1 parent 20f9e94 commit b0783e9
Show file tree
Hide file tree
Showing 3 changed files with 35 additions and 5 deletions.
6 changes: 5 additions & 1 deletion packages/next/build/webpack-config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -1593,7 +1593,11 @@ export default async function getBaseWebpackConfig(
const {
NextJsRequireCacheHotReloader,
} = require('./webpack/plugins/nextjs-require-cache-hot-reloader')
const devPlugins = [new NextJsRequireCacheHotReloader()]
const devPlugins = [
new NextJsRequireCacheHotReloader({
hasServerComponents: config.experimental.serverComponents,
}),
]

if (isClient || isEdgeServer) {
devPlugins.push(new webpack.HotModuleReplacementPlugin())
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ import { clearModuleContext } from '../../../server/web/sandbox'
import { realpathSync } from 'fs'
import path from 'path'
import isError from '../../../lib/is-error'
import { NEXT_CLIENT_SSR_ENTRY_SUFFIX } from '../../../shared/lib/constants'

type Compiler = webpack5.Compiler
type WebpackPluginInstance = webpack5.WebpackPluginInstance
Expand Down Expand Up @@ -34,25 +35,52 @@ function deleteCache(filePath: string) {
for (const child of module.children) {
child.parent = null
}
delete require.cache[filePath]
return true
}
delete require.cache[filePath]
return false
}

const PLUGIN_NAME = 'NextJsRequireCacheHotReloader'

// This plugin flushes require.cache after emitting the files. Providing 'hot reloading' of server files.
export class NextJsRequireCacheHotReloader implements WebpackPluginInstance {
prevAssets: any = null
hasServerComponents: boolean
previousOutputPathsWebpack5: Set<string> = new Set()
currentOutputPathsWebpack5: Set<string> = new Set()

constructor(opts: { hasServerComponents: boolean }) {
this.hasServerComponents = opts.hasServerComponents
}

apply(compiler: Compiler) {
compiler.hooks.assetEmitted.tap(
PLUGIN_NAME,
(_file, { targetPath, content }) => {
(file, { targetPath, content }) => {
this.currentOutputPathsWebpack5.add(targetPath)
deleteCache(targetPath)
clearModuleContext(targetPath, content.toString('utf-8'))

if (
this.hasServerComponents &&
/^(app|pages)\//.test(file) &&
/\.js$/.test(targetPath)
) {
// Also clear the potential __sc_client__ cache.
// @TODO: Investigate why the client ssr bundle isn't emitted as an asset here.
const clientComponentsSSRTarget = targetPath.replace(
/\.js$/,
NEXT_CLIENT_SSR_ENTRY_SUFFIX + '.js'
)
if (deleteCache(clientComponentsSSRTarget)) {
this.currentOutputPathsWebpack5.add(clientComponentsSSRTarget)
clearModuleContext(
clientComponentsSSRTarget,
content.toString('utf-8')
)
}
}
}
)

Expand Down
2 changes: 0 additions & 2 deletions packages/next/server/dev/hot-reloader.ts
Original file line number Diff line number Diff line change
Expand Up @@ -158,7 +158,6 @@ export default class HotReloader {
private distDir: string
private webpackHotMiddleware?: WebpackHotMiddleware
private config: NextConfigComplete
private runtime?: 'nodejs' | 'edge'
private hasServerComponents: boolean
private hasReactRoot: boolean
public clientStats: webpack5.Stats | null
Expand Down Expand Up @@ -209,7 +208,6 @@ export default class HotReloader {
this.serverPrevDocumentHash = null

this.config = config
this.runtime = config.experimental.runtime
this.hasReactRoot = !!process.env.__NEXT_REACT_ROOT
this.hasServerComponents =
this.hasReactRoot && !!config.experimental.serverComponents
Expand Down

1 comment on commit b0783e9

@ijjk
Copy link
Member

@ijjk ijjk commented on b0783e9 Jun 2, 2022

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Stats from current release

Default Build (Increase detected ⚠️)
General Overall decrease ✓
vercel/next.js canary v12.1.6 vercel/next.js refs/heads/canary Change
buildDuration 16.1s 17.2s ⚠️ +1.1s
buildDurationCached 6.7s 6.9s ⚠️ +219ms
nodeModulesSize 274 MB 260 MB -13.9 MB
Page Load Tests Overall decrease ⚠️
vercel/next.js canary v12.1.6 vercel/next.js refs/heads/canary Change
/ failed reqs 0 0
/ total time (seconds) 3.719 4.083 ⚠️ +0.36
/ avg req/sec 672.18 612.27 ⚠️ -59.91
/error-in-render failed reqs 0 0
/error-in-render total time (seconds) 1.407 1.414 ⚠️ +0.01
/error-in-render avg req/sec 1776.62 1767.96 ⚠️ -8.66
Client Bundles (main, webpack) Overall increase ⚠️
vercel/next.js canary v12.1.6 vercel/next.js refs/heads/canary Change
437.HASH.js gzip 179 B 179 B
framework-HASH.js gzip 42 kB 42 kB
main-HASH.js gzip 28.7 kB 29.7 kB ⚠️ +988 B
webpack-HASH.js gzip 1.44 kB 1.54 kB ⚠️ +98 B
Overall change 72.4 kB 73.5 kB ⚠️ +1.09 kB
Legacy Client Bundles (polyfills) Overall increase ⚠️
vercel/next.js canary v12.1.6 vercel/next.js refs/heads/canary Change
polyfills-HASH.js gzip 31 kB 31 kB ⚠️ +25 B
Overall change 31 kB 31 kB ⚠️ +25 B
Client Pages Overall increase ⚠️
vercel/next.js canary v12.1.6 vercel/next.js refs/heads/canary Change
_app-HASH.js gzip 1.37 kB 1.37 kB ⚠️ +1 B
_error-HASH.js gzip 194 B 194 B
amp-HASH.js gzip 309 B 496 B ⚠️ +187 B
css-HASH.js gzip 328 B 327 B -1 B
dynamic-HASH.js gzip 3.08 kB 2.7 kB -374 B
head-HASH.js gzip 359 B 355 B -4 B
hooks-HASH.js gzip 920 B 919 B -1 B
image-HASH.js gzip 5.71 kB 5.74 kB ⚠️ +27 B
index-HASH.js gzip 263 B 264 B ⚠️ +1 B
link-HASH.js gzip 2.64 kB 2.85 kB ⚠️ +210 B
routerDirect..HASH.js gzip 322 B 321 B -1 B
script-HASH.js gzip 392 B 390 B -2 B
withRouter-HASH.js gzip 320 B 318 B -2 B
85e02e95b279..7e3.css gzip 107 B 107 B
Overall change 16.3 kB 16.4 kB ⚠️ +41 B
Client Build Manifests
vercel/next.js canary v12.1.6 vercel/next.js refs/heads/canary Change
_buildManifest.js gzip 459 B 459 B
Overall change 459 B 459 B
Rendered Page Sizes Overall increase ⚠️
vercel/next.js canary v12.1.6 vercel/next.js refs/heads/canary Change
index.html gzip 532 B 533 B ⚠️ +1 B
link.html gzip 544 B 547 B ⚠️ +3 B
withRouter.html gzip 527 B 527 B
Overall change 1.6 kB 1.61 kB ⚠️ +4 B

Diffs

Diff for _buildManifest.js
@@ -1,25 +1,25 @@
 self.__BUILD_MANIFEST = {
   __rewrites: { beforeFiles: [], afterFiles: [], fallback: [] },
-  "/": ["static\u002Fchunks\u002Fpages\u002Findex-5d085461d4b7e1ee.js"],
-  "/_error": ["static\u002Fchunks\u002Fpages\u002F_error-48e41d26ff0101f8.js"],
-  "/amp": ["static\u002Fchunks\u002Fpages\u002Famp-a67fe6de8bb61a7a.js"],
+  "/": ["static\u002Fchunks\u002Fpages\u002Findex-71b39a0d29d24c94.js"],
+  "/_error": ["static\u002Fchunks\u002Fpages\u002F_error-f7a25bc135f661fc.js"],
+  "/amp": ["static\u002Fchunks\u002Fpages\u002Famp-7e272727af269b98.js"],
   "/css": [
     "static\u002Fcss\u002F94fdbc56eafa2039.css",
-    "static\u002Fchunks\u002Fpages\u002Fcss-6d59dba2fd31bfed.js"
+    "static\u002Fchunks\u002Fpages\u002Fcss-a95e3bc2c5ca8245.js"
   ],
   "/dynamic": [
-    "static\u002Fchunks\u002Fpages\u002Fdynamic-20b15c1c47d4d615.js"
+    "static\u002Fchunks\u002Fpages\u002Fdynamic-672cb693b0ca9d7e.js"
   ],
-  "/head": ["static\u002Fchunks\u002Fpages\u002Fhead-6ece0649d14938b8.js"],
-  "/hooks": ["static\u002Fchunks\u002Fpages\u002Fhooks-e3382ebb932b5bfb.js"],
-  "/image": ["static\u002Fchunks\u002Fpages\u002Fimage-19409da39fdaf4f2.js"],
-  "/link": ["static\u002Fchunks\u002Fpages\u002Flink-5581225b2bbff8ba.js"],
+  "/head": ["static\u002Fchunks\u002Fpages\u002Fhead-e2b7857f2aa86120.js"],
+  "/hooks": ["static\u002Fchunks\u002Fpages\u002Fhooks-a5d0da0f39070d96.js"],
+  "/image": ["static\u002Fchunks\u002Fpages\u002Fimage-a032795453eaeab0.js"],
+  "/link": ["static\u002Fchunks\u002Fpages\u002Flink-cd9947d21ef7c72e.js"],
   "/routerDirect": [
-    "static\u002Fchunks\u002Fpages\u002FrouterDirect-9669d5861da5e10b.js"
+    "static\u002Fchunks\u002Fpages\u002FrouterDirect-c2408dd9a1984376.js"
   ],
-  "/script": ["static\u002Fchunks\u002Fpages\u002Fscript-c439c95569fb9033.js"],
+  "/script": ["static\u002Fchunks\u002Fpages\u002Fscript-f309dfc4eea310f4.js"],
   "/withRouter": [
-    "static\u002Fchunks\u002Fpages\u002FwithRouter-8b03818d0ed540a0.js"
+    "static\u002Fchunks\u002Fpages\u002FwithRouter-fb06f1f34bce84ca.js"
   ],
   sortedPages: [
     "\u002F",
Diff for _app-HASH.js
@@ -1,7 +1,7 @@
 (self["webpackChunk_N_E"] = self["webpackChunk_N_E"] || []).push([
   [888],
   {
-    /***/ 3479: /***/ function(
+    /***/ 122: /***/ 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__(3653);
+          return __webpack_require__(539);
         }
       ]);
       if (false) {
@@ -18,14 +18,14 @@
       /***/
     },
 
-    /***/ 3653: /***/ function(
+    /***/ 539: /***/ function(
       __unused_webpack_module,
       exports,
       __webpack_require__
     ) {
       "use strict";
 
-      var _runtimeJs = _interopRequireDefault(__webpack_require__(739));
+      var _runtimeJs = _interopRequireDefault(__webpack_require__(3994));
       function _assertThisInitialized(self) {
         if (self === void 0) {
           throw new ReferenceError(
@@ -153,7 +153,7 @@
       });
       exports["default"] = void 0;
       var _react = _interopRequireDefault1(__webpack_require__(9496));
-      var _utils = __webpack_require__(8030);
+      var _utils = __webpack_require__(9089);
       function asyncGeneratorStep(
         gen,
         resolve,
@@ -282,7 +282,7 @@
       return __webpack_require__((__webpack_require__.s = moduleId));
     };
     /******/ __webpack_require__.O(0, [774, 179], function() {
-      return __webpack_exec__(3479), __webpack_exec__(7465);
+      return __webpack_exec__(122), __webpack_exec__(1905);
     });
     /******/ 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],
   {
-    /***/ 2929: /***/ function(
+    /***/ 3560: /***/ 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__(5590);
+          return __webpack_require__(9733);
         }
       ]);
       if (false) {
@@ -24,7 +24,7 @@
       return __webpack_require__((__webpack_require__.s = moduleId));
     };
     /******/ __webpack_require__.O(0, [888, 774, 179], function() {
-      return __webpack_exec__(2929);
+      return __webpack_exec__(3560);
     });
     /******/ 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],
   {
-    /***/ 94: /***/ function(
+    /***/ 7941: /***/ function(
       module,
       __unused_webpack_exports,
       __webpack_require__
     ) {
-      module.exports = __webpack_require__(4634);
+      module.exports = __webpack_require__(79);
 
       /***/
     },
 
-    /***/ 9028: /***/ function(
+    /***/ 8958: /***/ 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__(4628);
+          return __webpack_require__(6534);
         }
       ]);
       if (false) {
@@ -28,7 +28,45 @@
       /***/
     },
 
-    /***/ 4628: /***/ function(
+    /***/ 79: /***/ function(module, exports, __webpack_require__) {
+      "use strict";
+
+      Object.defineProperty(exports, "__esModule", {
+        value: true
+      });
+      exports.useAmp = useAmp;
+      var _react = _interopRequireDefault(__webpack_require__(9496));
+      var _ampContext = __webpack_require__(3131);
+      var _ampMode = __webpack_require__(868);
+      function _interopRequireDefault(obj) {
+        return obj && obj.__esModule
+          ? obj
+          : {
+              default: obj
+            };
+      }
+      function useAmp() {
+        // Don't assign the context value to a variable to save bytes
+        return (0, _ampMode).isInAmpMode(
+          _react.default.useContext(_ampContext.AmpStateContext)
+        );
+      }
+      if (
+        (typeof exports.default === "function" ||
+          (typeof exports.default === "object" && exports.default !== null)) &&
+        typeof exports.default.__esModule === "undefined"
+      ) {
+        Object.defineProperty(exports.default, "__esModule", {
+          value: true
+        });
+        Object.assign(exports.default, exports);
+        module.exports = exports.default;
+      } //# sourceMappingURL=amp.js.map
+
+      /***/
+    },
+
+    /***/ 6534: /***/ function(
       __unused_webpack_module,
       __webpack_exports__,
       __webpack_require__
@@ -45,7 +83,7 @@
         /* harmony export */
       });
       /* harmony import */ var next_amp__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(
-        94
+        7941
       );
       /* harmony import */ var next_amp__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/ __webpack_require__.n(
         next_amp__WEBPACK_IMPORTED_MODULE_0__
@@ -69,7 +107,7 @@
       return __webpack_require__((__webpack_require__.s = moduleId));
     };
     /******/ __webpack_require__.O(0, [888, 774, 179], function() {
-      return __webpack_exec__(9028);
+      return __webpack_exec__(8958);
     });
     /******/ 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],
   {
-    /***/ 8281: /***/ function(
+    /***/ 9557: /***/ 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__(1949);
+          return __webpack_require__(4173);
         }
       ]);
       if (false) {
@@ -18,7 +18,7 @@
       /***/
     },
 
-    /***/ 1949: /***/ function(
+    /***/ 4173: /***/ function(
       __unused_webpack_module,
       __webpack_exports__,
       __webpack_require__
@@ -29,7 +29,7 @@
         4637
       );
       /* harmony import */ var _css_module_css__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(
-        1099
+        2467
       );
       /* 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 @@
       /***/
     },
 
-    /***/ 1099: /***/ function(module) {
+    /***/ 2467: /***/ 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__(8281);
+      return __webpack_exec__(9557);
     });
     /******/ 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],
   {
-    /***/ 2744: /***/ function(
+    /***/ 5695: /***/ 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__(1697);
+          return __webpack_require__(7800);
         }
       ]);
       if (false) {
@@ -18,7 +18,7 @@
       /***/
     },
 
-    /***/ 1926: /***/ function(module, exports, __webpack_require__) {
+    /***/ 7164: /***/ function(module, exports, __webpack_require__) {
       "use strict";
 
       function _defineProperty(obj, key, value) {
@@ -68,7 +68,7 @@
       exports["default"] = dynamic;
       exports.noSSR = noSSR;
       var _react = _interopRequireDefault(__webpack_require__(9496));
-      var _loadable = _interopRequireDefault(__webpack_require__(4596));
+      var _loadable = _interopRequireDefault(__webpack_require__(4398));
       function dynamic(dynamicOptions, options) {
         var loadableFn = _loadable.default;
         var loadableOptions = {
@@ -100,16 +100,12 @@
         }
         // Support for passing options, eg: dynamic(import('../hello-world'), {loading: () => <p>Loading something</p>})
         loadableOptions = _objectSpread({}, loadableOptions, options);
-        var suspenseOptions = loadableOptions;
         // Error if Fizz rendering is not enabled and `suspense` option is set to true
-        if (true && suspenseOptions.suspense) {
+        if (true && loadableOptions.suspense) {
           throw new Error(
             "Invalid suspense option usage in next/dynamic. Read more: https://nextjs.org/docs/messages/invalid-dynamic-suspense"
           );
         }
-        if (suspenseOptions.suspense) {
-          return loadableFn(suspenseOptions);
-        }
         // coming from build/babel/plugins/react-loadable-plugin.js
         if (loadableOptions.loadableGenerated) {
           loadableOptions = _objectSpread(
@@ -119,8 +115,12 @@
           );
           delete loadableOptions.loadableGenerated;
         }
-        // support for disabling server side rendering, eg: dynamic(import('../hello-world'), {ssr: false})
-        if (typeof loadableOptions.ssr === "boolean") {
+        // support for disabling server side rendering, eg: dynamic(import('../hello-world'), {ssr: false}).
+        // skip `ssr` for suspense mode and opt-in React.lazy directly
+        if (
+          typeof loadableOptions.ssr === "boolean" &&
+          !loadableOptions.suspense
+        ) {
           if (!loadableOptions.ssr) {
             delete loadableOptions.ssr;
             return noSSR(loadableFn, loadableOptions);
@@ -157,9 +157,13 @@
         };
       }
       if (
-        typeof exports.default === "function" ||
-        (typeof exports.default === "object" && exports.default !== null)
+        (typeof exports.default === "function" ||
+          (typeof exports.default === "object" && exports.default !== null)) &&
+        typeof exports.default.__esModule === "undefined"
       ) {
+        Object.defineProperty(exports.default, "__esModule", {
+          value: true
+        });
         Object.assign(exports.default, exports);
         module.exports = exports.default;
       } //# sourceMappingURL=dynamic.js.map
@@ -167,7 +171,7 @@
       /***/
     },
 
-    /***/ 7063: /***/ function(
+    /***/ 7484: /***/ function(
       __unused_webpack_module,
       exports,
       __webpack_require__
@@ -194,7 +198,7 @@
       /***/
     },
 
-    /***/ 4596: /***/ function(
+    /***/ 4398: /***/ function(
       __unused_webpack_module,
       exports,
       __webpack_require__
@@ -255,8 +259,7 @@
       });
       exports["default"] = void 0;
       var _react = _interopRequireDefault(__webpack_require__(9496));
-      var _useSubscription = __webpack_require__(1181);
-      var _loadableContext = __webpack_require__(7063);
+      var _loadableContext = __webpack_require__(7484);
       function _interopRequireDefault(obj) {
         return obj && obj.__esModule
           ? obj
@@ -264,6 +267,8 @@
               default: obj
             };
       }
+      var useSyncExternalStore = (false ? 0 : __webpack_require__(9155))
+        .useSyncExternalStore;
       var ALL_INITIALIZERS = [];
       var READY_INITIALIZERS = [];
       var initialized = false;
@@ -303,12 +308,24 @@
           }
           return subscription.promise();
         };
-        var LoadableImpl = function LoadableImpl(props, ref) {
+        var useLoadableModule = function useLoadableModule() {
           init();
           var context = _react.default.useContext(
             _loadableContext.LoadableContext
           );
-          var state = (0, _useSubscription).useSubscription(subscription);
+          if (context && Array.isArray(opts.modules)) {
+            opts.modules.forEach(function(moduleName) {
+              context(moduleName);
+            });
+          }
+        };
+        var LoadableImpl = function LoadableImpl(props, ref) {
+          useLoadableModule();
+          var state = useSyncExternalStore(
+            subscription.subscribe,
+            subscription.getCurrentValue,
+            subscription.getCurrentValue
+          );
           _react.default.useImperativeHandle(
             ref,
             function() {
@@ -318,11 +335,6 @@
             },
             []
           );
-          if (context && Array.isArray(opts.modules)) {
-            opts.modules.forEach(function(moduleName) {
-              context(moduleName);
-            });
-          }
           return _react.default.useMemo(
             function() {
               if (state.loading || state.error) {
@@ -346,6 +358,7 @@
           );
         };
         var LazyImpl = function LazyImpl(props, ref) {
+          useLoadableModule();
           return _react.default.createElement(
             opts.lazy,
             _objectSpread({}, props, {
@@ -368,12 +381,12 @@
         if (opts.suspense) {
           opts.lazy = _react.default.lazy(opts.loader);
         }
-        var subscription = null;
+        /** @type LoadableSubscription */ var subscription = null;
         // Server only
         if (false) {
         }
         // Client only
-        if (!initialized && "object" !== "undefined" && !opts.suspense) {
+        if (!initialized && "object" !== "undefined") {
           // require.resolveWeak check is needed for environments that don't have it available like Jest
           var moduleIds =
             opts.webpack && "function" === "function"
@@ -415,7 +428,7 @@
         }
         var LoadableComponent = opts.suspense ? LazyImpl : LoadableImpl;
         LoadableComponent.preload = function() {
-          return !opts.suspense && init();
+          return init();
         };
         LoadableComponent.displayName = "LoadableComponent";
         return _react.default.forwardRef(LoadableComponent);
@@ -569,7 +582,7 @@
       /***/
     },
 
-    /***/ 1697: /***/ function(
+    /***/ 7800: /***/ function(
       __unused_webpack_module,
       __webpack_exports__,
       __webpack_require__
@@ -586,7 +599,7 @@
         4637
       );
       /* harmony import */ var next_dynamic__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(
-        1605
+        2123
       );
       /* harmony import */ var next_dynamic__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/ __webpack_require__.n(
         next_dynamic__WEBPACK_IMPORTED_MODULE_1__
@@ -595,13 +608,13 @@
       var DynamicHello = next_dynamic__WEBPACK_IMPORTED_MODULE_1___default()(
         function() {
           return __webpack_require__
-            .e(/* import() */ 437)
-            .then(__webpack_require__.bind(__webpack_require__, 7437));
+            .e(/* import() */ 181)
+            .then(__webpack_require__.bind(__webpack_require__, 1181));
         },
         {
           loadableGenerated: {
             webpack: function() {
-              return [/*require.resolve*/ 7437];
+              return [/*require.resolve*/ 1181];
             }
           }
         }
@@ -631,195 +644,103 @@
       /***/
     },
 
-    /***/ 1181: /***/ function(
+    /***/ 2123: /***/ function(
       module,
       __unused_webpack_exports,
       __webpack_require__
     ) {
-      var __dirname = "/";
-      (function() {
-        "use strict";
-        var e = {
-          800: function(e) {
-            /*
-object-assign
-(c) Sindre Sorhus
-@license MIT
-*/
-            var r = Object.getOwnPropertySymbols;
-            var t = Object.prototype.hasOwnProperty;
-            var u = Object.prototype.propertyIsEnumerable;
-            function toObject(e) {
-              if (e === null || e === undefined) {
-                throw new TypeError(
-                  "Object.assign cannot be called with null or undefined"
-                );
-              }
-              return Object(e);
-            }
-            function shouldUseNative() {
-              try {
-                if (!Object.assign) {
-                  return false;
-                }
-                var e = new String("abc");
-                e[5] = "de";
-                if (Object.getOwnPropertyNames(e)[0] === "5") {
-                  return false;
-                }
-                var r = {};
-                for (var t = 0; t < 10; t++) {
-                  r["_" + String.fromCharCode(t)] = t;
-                }
-                var u = Object.getOwnPropertyNames(r).map(function(e) {
-                  return r[e];
-                });
-                if (u.join("") !== "0123456789") {
-                  return false;
-                }
-                var n = {};
-                "abcdefghijklmnopqrst".split("").forEach(function(e) {
-                  n[e] = e;
-                });
-                if (
-                  Object.keys(Object.assign({}, n)).join("") !==
-                  "abcdefghijklmnopqrst"
-                ) {
-                  return false;
-                }
-                return true;
-              } catch (e) {
-                return false;
-              }
-            }
-            e.exports = shouldUseNative()
-              ? Object.assign
-              : function(e, n) {
-                  var a;
-                  var i = toObject(e);
-                  var s;
-                  for (var c = 1; c < arguments.length; c++) {
-                    a = Object(arguments[c]);
-                    for (var o in a) {
-                      if (t.call(a, o)) {
-                        i[o] = a[o];
-                      }
-                    }
-                    if (r) {
-                      s = r(a);
-                      for (var f = 0; f < s.length; f++) {
-                        if (u.call(a, s[f])) {
-                          i[s[f]] = a[s[f]];
-                        }
-                      }
-                    }
-                  }
-                  return i;
-                };
-          },
-          569: function(e, r, t) {
-            /** @license React vundefined
-             * use-subscription.development.js
-             *
-             * Copyright (c) Facebook, Inc. and its affiliates.
-             *
-             * This source code is licensed under the MIT license found in the
-             * LICENSE file in the root directory of this source tree.
-             */
-            if (false) {
-            }
-          },
-          403: function(e, r, t) {
-            /** @license React vundefined
-             * use-subscription.production.min.js
-             *
-             * Copyright (c) Facebook, Inc. and its affiliates.
-             *
-             * This source code is licensed under the MIT license found in the
-             * LICENSE file in the root directory of this source tree.
-             */
-            var u = t(800),
-              n = t(522);
-            r.useSubscription = function(e) {
-              var r = e.getCurrentValue,
-                t = e.subscribe,
-                a = n.useState(function() {
-                  return { getCurrentValue: r, subscribe: t, value: r() };
-                });
-              e = a[0];
-              var i = a[1];
-              a = e.value;
-              if (e.getCurrentValue !== r || e.subscribe !== t)
-                (a = r()), i({ getCurrentValue: r, subscribe: t, value: a });
-              n.useDebugValue(a);
-              n.useEffect(
-                function() {
-                  function b() {
-                    if (!e) {
-                      var n = r();
-                      i(function(e) {
-                        return e.getCurrentValue !== r ||
-                          e.subscribe !== t ||
-                          e.value === n
-                          ? e
-                          : u({}, e, { value: n });
-                      });
-                    }
-                  }
-                  var e = !1,
-                    n = t(b);
-                  b();
-                  return function() {
-                    e = !0;
-                    n();
-                  };
-                },
-                [r, t]
-              );
-              return a;
-            };
+      module.exports = __webpack_require__(7164);
+
+      /***/
+    },
+
+    /***/ 9364: /***/ function(
+      __unused_webpack_module,
+      exports,
+      __webpack_require__
+    ) {
+      "use strict";
+      /**
+       * @license React
+       * use-sync-external-store-shim.production.min.js
+       *
+       * Copyright (c) Facebook, Inc. and its affiliates.
+       *
+       * This source code is licensed under the MIT license found in the
+       * LICENSE file in the root directory of this source tree.
+       */
+      var e = __webpack_require__(9496);
+      function h(a, b) {
+        return (
+          (a === b && (0 !== a || 1 / a === 1 / b)) || (a !== a && b !== b)
+        );
+      }
+      var k = "function" === typeof Object.is ? Object.is : h,
+        l = e.useState,
+        m = e.useEffect,
+        n = e.useLayoutEffect,
+        p = e.useDebugValue;
+      function q(a, b) {
+        var d = b(),
+          f = l({ inst: { value: d, getSnapshot: b } }),
+          c = f[0].inst,
+          g = f[1];
+        n(
+          function() {
+            c.value = d;
+            c.getSnapshot = b;
+            r(c) && g({ inst: c });
           },
-          138: function(e, r, t) {
-            if (true) {
-              e.exports = t(403);
-            } else {
-            }
+          [a, d, b]
+        );
+        m(
+          function() {
+            r(c) && g({ inst: c });
+            return a(function() {
+              r(c) && g({ inst: c });
+            });
           },
-          522: function(e) {
-            e.exports = __webpack_require__(9496);
-          }
-        };
-        var r = {};
-        function __nccwpck_require__(t) {
-          var u = r[t];
-          if (u !== undefined) {
-            return u.exports;
-          }
-          var n = (r[t] = { exports: {} });
-          var a = true;
-          try {
-            e[t](n, n.exports, __nccwpck_require__);
-            a = false;
-          } finally {
-            if (a) delete r[t];
-          }
-          return n.exports;
+          [a]
+        );
+        p(d);
+        return d;
+      }
+      function r(a) {
+        var b = a.getSnapshot;
+        a = a.value;
+        try {
+          var d = b();
+          return !k(a, d);
+        } catch (f) {
+          return !0;
         }
-        if (typeof __nccwpck_require__ !== "undefined")
-          __nccwpck_require__.ab = __dirname + "/";
-        var t = __nccwpck_require__(138);
-        module.exports = t;
-      })();
+      }
+      function t(a, b) {
+        return b();
+      }
+      var u =
+        "undefined" === typeof window ||
+        "undefined" === typeof window.document ||
+        "undefined" === typeof window.document.createElement
+          ? t
+          : q;
+      exports.useSyncExternalStore =
+        void 0 !== e.useSyncExternalStore ? e.useSyncExternalStore : u;
 
       /***/
     },
 
-    /***/ 1605: /***/ function(
+    /***/ 9155: /***/ function(
       module,
       __unused_webpack_exports,
       __webpack_require__
     ) {
-      module.exports = __webpack_require__(1926);
+      "use strict";
+
+      if (true) {
+        module.exports = __webpack_require__(9364);
+      } else {
+      }
 
       /***/
     }
@@ -830,7 +751,7 @@ object-assign
       return __webpack_require__((__webpack_require__.s = moduleId));
     };
     /******/ __webpack_require__.O(0, [774, 888, 179], function() {
-      return __webpack_exec__(2744);
+      return __webpack_exec__(5695);
     });
     /******/ 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],
   {
-    /***/ 4337: /***/ function(
+    /***/ 7148: /***/ 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__(848);
+          return __webpack_require__(6179);
         }
       ]);
       if (false) {
@@ -18,7 +18,7 @@
       /***/
     },
 
-    /***/ 848: /***/ function(
+    /***/ 6179: /***/ function(
       __unused_webpack_module,
       __webpack_exports__,
       __webpack_require__
@@ -35,7 +35,7 @@
         4637
       );
       /* harmony import */ var next_head__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(
-        8915
+        4616
       );
       /* harmony import */ var next_head__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/ __webpack_require__.n(
         next_head__WEBPACK_IMPORTED_MODULE_1__
@@ -71,12 +71,12 @@
       /***/
     },
 
-    /***/ 8915: /***/ function(
+    /***/ 4616: /***/ function(
       module,
       __unused_webpack_exports,
       __webpack_require__
     ) {
-      module.exports = __webpack_require__(4828);
+      module.exports = __webpack_require__(5222);
 
       /***/
     }
@@ -87,7 +87,7 @@
       return __webpack_require__((__webpack_require__.s = moduleId));
     };
     /******/ __webpack_require__.O(0, [774, 888, 179], function() {
-      return __webpack_exec__(4337);
+      return __webpack_exec__(7148);
     });
     /******/ 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],
   {
-    /***/ 4853: /***/ function(
+    /***/ 3515: /***/ 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__(7084);
+          return __webpack_require__(856);
         }
       ]);
       if (false) {
@@ -18,7 +18,7 @@
       /***/
     },
 
-    /***/ 7084: /***/ function(
+    /***/ 856: /***/ function(
       __unused_webpack_module,
       __webpack_exports__,
       __webpack_require__
@@ -158,7 +158,7 @@
       return __webpack_require__((__webpack_require__.s = moduleId));
     };
     /******/ __webpack_require__.O(0, [774, 888, 179], function() {
-      return __webpack_exec__(4853);
+      return __webpack_exec__(3515);
     });
     /******/ var __webpack_exports__ = __webpack_require__.O();
     /******/ _N_E = __webpack_exports__;
Diff for image-HASH.js
@@ -1,7 +1,7 @@
 (self["webpackChunk_N_E"] = self["webpackChunk_N_E"] || []).push([
   [358],
   {
-    /***/ 7570: /***/ function(
+    /***/ 1487: /***/ function(
       __unused_webpack_module,
       __unused_webpack_exports,
       __webpack_require__
@@ -9,7 +9,7 @@
       (window.__NEXT_P = window.__NEXT_P || []).push([
         "/image",
         function() {
-          return __webpack_require__(3918);
+          return __webpack_require__(2330);
         }
       ]);
       if (false) {
@@ -18,7 +18,7 @@
       /***/
     },
 
-    /***/ 2185: /***/ function(module, exports, __webpack_require__) {
+    /***/ 5239: /***/ function(module, exports, __webpack_require__) {
       "use strict";
 
       function _arrayLikeToArray(arr, len) {
@@ -123,12 +123,12 @@
       });
       exports["default"] = Image;
       var _react = _interopRequireWildcard(__webpack_require__(9496));
-      var _head = _interopRequireDefault(__webpack_require__(4828));
-      var _imageConfig = __webpack_require__(2204);
-      var _useIntersection = __webpack_require__(6363);
-      var _imageConfigContext = __webpack_require__(1958);
-      var _utils = __webpack_require__(8030);
-      var _normalizeTrailingSlash = __webpack_require__(1872);
+      var _head = _interopRequireDefault(__webpack_require__(5222));
+      var _imageConfig = __webpack_require__(5466);
+      var _useIntersection = __webpack_require__(1311);
+      var _imageConfigContext = __webpack_require__(1801);
+      var _utils = __webpack_require__(9089);
+      var _normalizeTrailingSlash = __webpack_require__(2800);
       function Image(_param) {
         var src = _param.src,
           sizes = _param.sizes,
@@ -139,8 +139,7 @@
           loading = _param.loading,
           _lazyRoot = _param.lazyRoot,
           lazyRoot = _lazyRoot === void 0 ? null : _lazyRoot,
-          _lazyBoundary = _param.lazyBoundary,
-          lazyBoundary = _lazyBoundary === void 0 ? "200px" : _lazyBoundary,
+          lazyBoundary = _param.lazyBoundary,
           className = _param.className,
           quality = _param.quality,
           width = _param.width,
@@ -263,7 +262,7 @@
         var ref1 = _slicedToArray(
             (0, _useIntersection).useIntersection({
               rootRef: lazyRoot,
-              rootMargin: lazyBoundary,
+              rootMargin: lazyBoundary || "200px",
               disabled: !isLazy
             }),
             3
@@ -271,7 +270,7 @@
           setIntersection = ref1[0],
           isIntersected = ref1[1],
           resetIntersected = ref1[2];
-        var isVisible = !isLazy || isIntersected;
+        var isVisible = !isLazy || isIntersected || layout === "raw";
         var wrapperStyle = {
           boxSizing: "border-box",
           display: "block",
@@ -450,7 +449,8 @@
             onLoadingCompleteRef: onLoadingCompleteRef,
             setBlurComplete: setBlurComplete,
             setIntersection: setIntersection,
-            isVisible: isVisible
+            isVisible: isVisible,
+            noscriptSizes: sizes
           },
           rest
         );
@@ -619,17 +619,22 @@
         }
         return target;
       }
-      var ref;
-      var experimentalLayoutRaw =
-        (ref = {
-          deviceSizes: [640, 750, 828, 1080, 1200, 1920, 2048, 3840],
-          imageSizes: [16, 32, 48, 64, 96, 128, 256, 384],
-          path: "/_next/image",
-          loader: "default",
-          experimentalLayoutRaw: false
-        }) === null || ref === void 0
-          ? void 0
-          : ref.experimentalLayoutRaw;
+      var ref =
+          {
+            deviceSizes: [640, 750, 828, 1080, 1200, 1920, 2048, 3840],
+            imageSizes: [16, 32, 48, 64, 96, 128, 256, 384],
+            path: "/_next/image",
+            loader: "default",
+            experimentalLayoutRaw: false
+          } || {},
+        _experimentalLayoutRaw = ref.experimentalLayoutRaw,
+        experimentalLayoutRaw =
+          _experimentalLayoutRaw === void 0 ? false : _experimentalLayoutRaw,
+        _experimentalRemotePatterns = ref.experimentalRemotePatterns,
+        experimentalRemotePatterns =
+          _experimentalRemotePatterns === void 0
+            ? []
+            : _experimentalRemotePatterns;
       var configEnv = {
         deviceSizes: [640, 750, 828, 1080, 1200, 1920, 2048, 3840],
         imageSizes: [16, 32, 48, 64, 96, 128, 256, 384],
@@ -756,9 +761,9 @@
             sizes: undefined
           };
         }
-        var ref3 = getWidths(config, width, layout, sizes),
-          widths = ref3.widths,
-          kind = ref3.kind;
+        var ref4 = getWidths(config, width, layout, sizes),
+          widths = ref4.widths,
+          kind = ref4.kind;
         var last = widths.length - 1;
         return {
           sizes: !sizes && kind === "w" ? "100vw" : sizes,
@@ -802,11 +807,11 @@
         return undefined;
       }
       function defaultImageLoader(loaderProps) {
-        var ref2;
+        var ref5;
         var loaderKey =
-          ((ref2 = loaderProps.config) === null || ref2 === void 0
+          ((ref5 = loaderProps.config) === null || ref5 === void 0
             ? void 0
-            : ref2.loader) || "default";
+            : ref5.loader) || "default";
         var load = loaders.get(loaderKey);
         if (load) {
           return load(loaderProps);
@@ -864,7 +869,7 @@
             });
           }
           if (false) {
-            var parent, widthModified, heightModified, ref3;
+            var parent, widthModified, heightModified, ref6;
           }
         });
       }
@@ -879,7 +884,8 @@
           blurStyle = _param.blurStyle,
           isLazy = _param.isLazy,
           placeholder = _param.placeholder,
-          loading = _param.loading,
+          _loading = _param.loading,
+          loading = _loading === void 0 ? "lazy" : _loading,
           srcString = _param.srcString,
           config = _param.config,
           unoptimized = _param.unoptimized,
@@ -890,6 +896,7 @@
           onLoad = _param.onLoad,
           onError = _param.onError,
           isVisible = _param.isVisible,
+          noscriptSizes = _param.noscriptSizes,
           rest = _objectWithoutProperties(_param, [
             "imgAttributes",
             "heightInt",
@@ -911,7 +918,8 @@
             "setIntersection",
             "onLoad",
             "onError",
-            "isVisible"
+            "isVisible",
+            "noscriptSizes"
           ]);
         return /*#__PURE__*/ _react.default.createElement(
           _react.default.Fragment,
@@ -932,6 +940,8 @@
                 decoding: "async",
                 "data-nimg": layout,
                 className: className,
+                // @ts-ignore - TODO: upgrade to `@types/react@17`
+                loading: layout === "raw" ? loading : undefined,
                 style: _objectSpread({}, imgStyle, blurStyle),
                 ref: (0, _react).useCallback(
                   function(img) {
@@ -1000,7 +1010,7 @@
                     layout: layout,
                     width: widthInt,
                     quality: qualityInt,
-                    sizes: imgAttributes.sizes,
+                    sizes: noscriptSizes,
                     loader: loader
                   }),
                   layout === "raw"
@@ -1015,7 +1025,7 @@
                     style: imgStyle,
                     className: className,
                     // @ts-ignore - TODO: upgrade to `@types/react@17`
-                    loading: loading || "lazy"
+                    loading: loading
                   }
                 )
               )
@@ -1081,7 +1091,7 @@
           width = param.width,
           quality = param.quality;
         if (false) {
-          var parsedSrc, missingValues;
+          var hasMatch, parsedSrc, missingValues;
         }
         if (src.endsWith(".svg") && !config.dangerouslyAllowSVG) {
           // Special case to make svg serve as-is to avoid proxying
@@ -1100,9 +1110,13 @@
           .concat(quality || 75);
       }
       if (
-        typeof exports.default === "function" ||
-        (typeof exports.default === "object" && exports.default !== null)
+        (typeof exports.default === "function" ||
+          (typeof exports.default === "object" && exports.default !== null)) &&
+        typeof exports.default.__esModule === "undefined"
       ) {
+        Object.defineProperty(exports.default, "__esModule", {
+          value: true
+        });
         Object.assign(exports.default, exports);
         module.exports = exports.default;
       } //# sourceMappingURL=image.js.map
@@ -1110,7 +1124,7 @@
       /***/
     },
 
-    /***/ 6363: /***/ function(module, exports, __webpack_require__) {
+    /***/ 1311: /***/ function(module, exports, __webpack_require__) {
       "use strict";
 
       function _arrayLikeToArray(arr, len) {
@@ -1179,7 +1193,7 @@
       });
       exports.useIntersection = useIntersection;
       var _react = __webpack_require__(9496);
-      var _requestIdleCallback = __webpack_require__(7808);
+      var _requestIdleCallback = __webpack_require__(7307);
       var hasIntersectionObserver = typeof IntersectionObserver !== "undefined";
       function useIntersection(param) {
         var rootRef = param.rootRef,
@@ -1311,9 +1325,13 @@
         return instance;
       }
       if (
-        typeof exports.default === "function" ||
-        (typeof exports.default === "object" && exports.default !== null)
+        (typeof exports.default === "function" ||
+          (typeof exports.default === "object" && exports.default !== null)) &&
+        typeof exports.default.__esModule === "undefined"
       ) {
+        Object.defineProperty(exports.default, "__esModule", {
+          value: true
+        });
         Object.assign(exports.default, exports);
         module.exports = exports.default;
       } //# sourceMappingURL=use-intersection.js.map
@@ -1321,7 +1339,7 @@
       /***/
     },
 
-    /***/ 3918: /***/ function(
+    /***/ 2330: /***/ function(
       __unused_webpack_module,
       __webpack_exports__,
       __webpack_require__
@@ -1342,8 +1360,8 @@
 
       // EXTERNAL MODULE: ./node_modules/.pnpm/react@17.0.2/node_modules/react/jsx-runtime.js
       var jsx_runtime = __webpack_require__(4637);
-      // EXTERNAL MODULE: ./node_modules/.pnpm/file+..+main-repo+packages+next+next-packed.tgz_sfoxds7t5ydpegc3knd667wn6m/node_modules/next/image.js
-      var next_image = __webpack_require__(8114);
+      // EXTERNAL MODULE: ./node_modules/.pnpm/file+..+diff-repo+packages+next+next-packed.tgz_sfoxds7t5ydpegc3knd667wn6m/node_modules/next/image.js
+      var next_image = __webpack_require__(4033);
       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",
@@ -1371,12 +1389,12 @@
       /***/
     },
 
-    /***/ 8114: /***/ function(
+    /***/ 4033: /***/ function(
       module,
       __unused_webpack_exports,
       __webpack_require__
     ) {
-      module.exports = __webpack_require__(2185);
+      module.exports = __webpack_require__(5239);
 
       /***/
     }
@@ -1387,7 +1405,7 @@
       return __webpack_require__((__webpack_require__.s = moduleId));
     };
     /******/ __webpack_require__.O(0, [774, 888, 179], function() {
-      return __webpack_exec__(7570);
+      return __webpack_exec__(1487);
     });
     /******/ 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],
   {
-    /***/ 4786: /***/ function(
+    /***/ 6967: /***/ function(
       __unused_webpack_module,
       __unused_webpack_exports,
       __webpack_require__
@@ -9,7 +9,7 @@
       (window.__NEXT_P = window.__NEXT_P || []).push([
         "/",
         function() {
-          return __webpack_require__(7245);
+          return __webpack_require__(9257);
         }
       ]);
       if (false) {
@@ -18,7 +18,7 @@
       /***/
     },
 
-    /***/ 7245: /***/ function(
+    /***/ 9257: /***/ 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__(4786);
+      return __webpack_exec__(6967);
     });
     /******/ 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],
   {
-    /***/ 2783: /***/ function(
+    /***/ 9367: /***/ 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__(3122);
+          return __webpack_require__(7178);
         }
       ]);
       if (false) {
@@ -18,7 +18,43 @@
       /***/
     },
 
-    /***/ 7160: /***/ function(module, exports, __webpack_require__) {
+    /***/ 7280: /***/ function(module, exports) {
+      "use strict";
+
+      Object.defineProperty(exports, "__esModule", {
+        value: true
+      });
+      exports.getDomainLocale = getDomainLocale;
+      var basePath =
+        /* unused pure expression or super */ null && (false || "");
+      function getDomainLocale(path, locale, locales, domainLocales) {
+        if (false) {
+          var finalLocale,
+            proto,
+            domain,
+            target,
+            detectDomainLocale,
+            normalizeLocalePath;
+        } else {
+          return false;
+        }
+      }
+      if (
+        (typeof exports.default === "function" ||
+          (typeof exports.default === "object" && exports.default !== null)) &&
+        typeof exports.default.__esModule === "undefined"
+      ) {
+        Object.defineProperty(exports.default, "__esModule", {
+          value: true
+        });
+        Object.assign(exports.default, exports);
+        module.exports = exports.default;
+      } //# sourceMappingURL=get-domain-locale.js.map
+
+      /***/
+    },
+
+    /***/ 3952: /***/ function(module, exports, __webpack_require__) {
       "use strict";
 
       function _arrayLikeToArray(arr, len) {
@@ -95,9 +131,13 @@
       });
       exports["default"] = void 0;
       var _react = _interopRequireDefault(__webpack_require__(9496));
-      var _router = __webpack_require__(1368);
-      var _router1 = __webpack_require__(7465);
-      var _useIntersection = __webpack_require__(6363);
+      var _router = __webpack_require__(5920);
+      var _addLocale = __webpack_require__(4841);
+      var _routerContext = __webpack_require__(8940);
+      var _appRouterContext = __webpack_require__(2587);
+      var _useIntersection = __webpack_require__(1311);
+      var _getDomainLocale = __webpack_require__(7280);
+      var _addBasePath = __webpack_require__(9154);
       function _interopRequireDefault(obj) {
         return obj && obj.__esModule
           ? obj
@@ -133,6 +173,9 @@
         }
         return target;
       }
+      // @ts-ignore useTransition exist
+      var hasUseTransition =
+        typeof _react.default.useTransition !== "undefined";
       var prefetched = {};
       function prefetch(router, href, as, options) {
         if (false || !router) return;
@@ -171,7 +214,8 @@
         replace,
         shallow,
         scroll,
-        locale
+        locale,
+        startTransition
       ) {
         var nodeName = e.currentTarget.nodeName;
         // anchors inside an svg have a lowercase nodeName
@@ -184,22 +228,24 @@
           return;
         }
         e.preventDefault();
-        // replace state instead of push if prop is present
-        router[replace ? "replace" : "push"](href, as, {
-          shallow: shallow,
-          locale: locale,
-          scroll: scroll
-        });
+        var navigate = function() {
+          // replace state instead of push if prop is present
+          router[replace ? "replace" : "push"](href, as, {
+            shallow: shallow,
+            locale: locale,
+            scroll: scroll
+          });
+        };
+        if (startTransition) {
+          startTransition(navigate);
+        } else {
+          navigate();
+        }
       }
-      var Link = /*#__PURE__*/ _react.default.forwardRef(function(
+      var Link = /*#__PURE__*/ _react.default.forwardRef(function LinkComponent(
         props,
         forwardedRef
       ) {
-        var _legacyBehavior = props.legacyBehavior,
-          legacyBehavior =
-            _legacyBehavior === void 0
-              ? Boolean(false) !== true
-              : _legacyBehavior;
         if (false) {
           var hasWarned,
             optionalProps,
@@ -220,6 +266,11 @@
           locale = props.locale,
           onClick = props.onClick,
           onMouseEnter = props.onMouseEnter,
+          _legacyBehavior = props.legacyBehavior,
+          legacyBehavior =
+            _legacyBehavior === void 0
+              ? Boolean(false) !== true
+              : _legacyBehavior,
           restProps = _objectWithoutProperties(props, [
             "href",
             "as",
@@ -231,7 +282,8 @@
             "scroll",
             "locale",
             "onClick",
-            "onMouseEnter"
+            "onMouseEnter",
+            "legacyBehavior"
           ]);
         children = childrenProp;
         if (legacyBehavior && typeof children === "string") {
@@ -242,8 +294,22 @@
           );
         }
         var p = prefetchProp !== false;
-        var router = (0, _router1).useRouter();
-        var ref2 = _react.default.useMemo(
+        var ref3 = _slicedToArray(
+            hasUseTransition // @ts-ignore useTransition exists
+              ? // eslint-disable-next-line react-hooks/rules-of-hooks
+                _react.default.useTransition()
+              : [],
+            2
+          ),
+          /* isPending */ startTransition = ref3[1];
+        var router = _react.default.useContext(_routerContext.RouterContext);
+        var appRouter = _react.default.useContext(
+          _appRouterContext.AppRouterContext
+        );
+        if (appRouter) {
+          router = appRouter;
+        }
+        var ref1 = _react.default.useMemo(
             function() {
               var ref = _slicedToArray(
                   (0, _router).resolveHref(router, hrefProp, true),
@@ -260,8 +326,8 @@
             },
             [router, hrefProp, asProp]
           ),
-          href = ref2.href,
-          as = ref2.as;
+          href = ref1.href,
+          as = ref1.as;
         var previousHref = _react.default.useRef(href);
         var previousAs = _react.default.useRef(as);
         // This will return the first child, if multiple are provided it will throw an error
@@ -275,15 +341,15 @@
         var childRef = legacyBehavior
           ? child && typeof child === "object" && child.ref
           : forwardedRef;
-        var ref1 = _slicedToArray(
+        var ref2 = _slicedToArray(
             (0, _useIntersection).useIntersection({
               rootMargin: "200px"
             }),
             3
           ),
-          setIntersectionRef = ref1[0],
-          isVisible = ref1[1],
-          resetVisible = ref1[2];
+          setIntersectionRef = ref2[0],
+          isVisible = ref2[1],
+          resetVisible = ref2[2];
         var setRef = _react.default.useCallback(
           function(el) {
             // Before the link getting observed, check if visible state need to be reset
@@ -342,7 +408,8 @@
                 replace,
                 shallow,
                 scroll,
-                locale
+                locale,
+                appRouter ? startTransition : undefined
               );
             }
           },
@@ -378,16 +445,16 @@
           var localeDomain =
             router &&
             router.isLocaleDomain &&
-            (0, _router).getDomainLocale(
+            (0, _getDomainLocale).getDomainLocale(
               as,
               curLocale1,
-              router && router.locales,
-              router && router.domainLocales
+              router.locales,
+              router.domainLocales
             );
           childProps.href =
             localeDomain ||
-            (0, _router).addBasePath(
-              (0, _router).addLocale(
+            (0, _addBasePath).addBasePath(
+              (0, _addLocale).addLocale(
                 as,
                 curLocale1,
                 router && router.defaultLocale
@@ -405,9 +472,13 @@
       var _default = Link;
       exports["default"] = _default;
       if (
-        typeof exports.default === "function" ||
-        (typeof exports.default === "object" && exports.default !== null)
+        (typeof exports.default === "function" ||
+          (typeof exports.default === "object" && exports.default !== null)) &&
+        typeof exports.default.__esModule === "undefined"
       ) {
+        Object.defineProperty(exports.default, "__esModule", {
+          value: true
+        });
         Object.assign(exports.default, exports);
         module.exports = exports.default;
       } //# sourceMappingURL=link.js.map
@@ -415,7 +486,7 @@
       /***/
     },
 
-    /***/ 6363: /***/ function(module, exports, __webpack_require__) {
+    /***/ 1311: /***/ function(module, exports, __webpack_require__) {
       "use strict";
 
       function _arrayLikeToArray(arr, len) {
@@ -484,7 +555,7 @@
       });
       exports.useIntersection = useIntersection;
       var _react = __webpack_require__(9496);
-      var _requestIdleCallback = __webpack_require__(7808);
+      var _requestIdleCallback = __webpack_require__(7307);
       var hasIntersectionObserver = typeof IntersectionObserver !== "undefined";
       function useIntersection(param) {
         var rootRef = param.rootRef,
@@ -616,9 +687,13 @@
         return instance;
       }
       if (
-        typeof exports.default === "function" ||
-        (typeof exports.default === "object" && exports.default !== null)
+        (typeof exports.default === "function" ||
+          (typeof exports.default === "object" && exports.default !== null)) &&
+        typeof exports.default.__esModule === "undefined"
       ) {
+        Object.defineProperty(exports.default, "__esModule", {
+          value: true
+        });
         Object.assign(exports.default, exports);
         module.exports = exports.default;
       } //# sourceMappingURL=use-intersection.js.map
@@ -626,7 +701,34 @@
       /***/
     },
 
-    /***/ 3122: /***/ function(
+    /***/ 2587: /***/ function(
+      __unused_webpack_module,
+      exports,
+      __webpack_require__
+    ) {
+      "use strict";
+
+      Object.defineProperty(exports, "__esModule", {
+        value: true
+      });
+      exports.AppRouterContext = void 0;
+      var _react = _interopRequireDefault(__webpack_require__(9496));
+      function _interopRequireDefault(obj) {
+        return obj && obj.__esModule
+          ? obj
+          : {
+              default: obj
+            };
+      }
+      var AppRouterContext = _react.default.createContext(null);
+      exports.AppRouterContext = AppRouterContext;
+      if (false) {
+      } //# sourceMappingURL=app-router-context.js.map
+
+      /***/
+    },
+
+    /***/ 7178: /***/ function(
       __unused_webpack_module,
       __webpack_exports__,
       __webpack_require__
@@ -643,7 +745,7 @@
         4637
       );
       /* harmony import */ var next_link__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(
-        8168
+        8728
       );
       /* harmony import */ var next_link__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/ __webpack_require__.n(
         next_link__WEBPACK_IMPORTED_MODULE_1__
@@ -674,12 +776,12 @@
       /***/
     },
 
-    /***/ 8168: /***/ function(
+    /***/ 8728: /***/ function(
       module,
       __unused_webpack_exports,
       __webpack_require__
     ) {
-      module.exports = __webpack_require__(7160);
+      module.exports = __webpack_require__(3952);
 
       /***/
     }
@@ -690,7 +792,7 @@
       return __webpack_require__((__webpack_require__.s = moduleId));
     };
     /******/ __webpack_require__.O(0, [774, 888, 179], function() {
-      return __webpack_exec__(2783);
+      return __webpack_exec__(9367);
     });
     /******/ 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],
   {
-    /***/ 5863: /***/ function(
+    /***/ 4538: /***/ 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__(2550);
+          return __webpack_require__(8080);
         }
       ]);
       if (false) {
@@ -18,7 +18,7 @@
       /***/
     },
 
-    /***/ 2550: /***/ function(
+    /***/ 8080: /***/ function(
       __unused_webpack_module,
       __webpack_exports__,
       __webpack_require__
@@ -35,7 +35,7 @@
         4637
       );
       /* harmony import */ var next_router__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(
-        9393
+        7084
       );
       /* harmony import */ var next_router__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/ __webpack_require__.n(
         next_router__WEBPACK_IMPORTED_MODULE_1__
@@ -57,12 +57,12 @@
       /***/
     },
 
-    /***/ 9393: /***/ function(
+    /***/ 7084: /***/ function(
       module,
       __unused_webpack_exports,
       __webpack_require__
     ) {
-      module.exports = __webpack_require__(7465);
+      module.exports = __webpack_require__(1905);
 
       /***/
     }
@@ -73,7 +73,7 @@
       return __webpack_require__((__webpack_require__.s = moduleId));
     };
     /******/ __webpack_require__.O(0, [774, 888, 179], function() {
-      return __webpack_exec__(5863);
+      return __webpack_exec__(4538);
     });
     /******/ 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],
   {
-    /***/ 581: /***/ function(
+    /***/ 2644: /***/ 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__(6436);
+          return __webpack_require__(9689);
         }
       ]);
       if (false) {
@@ -18,7 +18,7 @@
       /***/
     },
 
-    /***/ 6436: /***/ function(
+    /***/ 9689: /***/ function(
       __unused_webpack_module,
       __webpack_exports__,
       __webpack_require__
@@ -35,7 +35,7 @@
         4637
       );
       /* harmony import */ var next_script__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(
-        2311
+        7635
       );
       /* harmony import */ var next_script__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/ __webpack_require__.n(
         next_script__WEBPACK_IMPORTED_MODULE_1__
@@ -70,12 +70,12 @@
       /***/
     },
 
-    /***/ 2311: /***/ function(
+    /***/ 7635: /***/ function(
       module,
       __unused_webpack_exports,
       __webpack_require__
     ) {
-      module.exports = __webpack_require__(5031);
+      module.exports = __webpack_require__(736);
 
       /***/
     }
@@ -86,7 +86,7 @@
       return __webpack_require__((__webpack_require__.s = moduleId));
     };
     /******/ __webpack_require__.O(0, [774, 888, 179], function() {
-      return __webpack_exec__(581);
+      return __webpack_exec__(2644);
     });
     /******/ 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],
   {
-    /***/ 4573: /***/ function(
+    /***/ 5577: /***/ 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__(5526);
+          return __webpack_require__(237);
         }
       ]);
       if (false) {
@@ -18,7 +18,7 @@
       /***/
     },
 
-    /***/ 5526: /***/ function(
+    /***/ 237: /***/ function(
       __unused_webpack_module,
       __webpack_exports__,
       __webpack_require__
@@ -35,7 +35,7 @@
         4637
       );
       /* harmony import */ var next_router__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(
-        9393
+        7084
       );
       /* harmony import */ var next_router__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/ __webpack_require__.n(
         next_router__WEBPACK_IMPORTED_MODULE_1__
@@ -54,12 +54,12 @@
       /***/
     },
 
-    /***/ 9393: /***/ function(
+    /***/ 7084: /***/ function(
       module,
       __unused_webpack_exports,
       __webpack_require__
     ) {
-      module.exports = __webpack_require__(7465);
+      module.exports = __webpack_require__(1905);
 
       /***/
     }
@@ -70,7 +70,7 @@
       return __webpack_require__((__webpack_require__.s = moduleId));
     };
     /******/ __webpack_require__.O(0, [774, 888, 179], function() {
-      return __webpack_exec__(4573);
+      return __webpack_exec__(5577);
     });
     /******/ var __webpack_exports__ = __webpack_require__.O();
     /******/ _N_E = __webpack_exports__;
Diff for 437.HASH.js
@@ -1,8 +1,8 @@
 "use strict";
 (self["webpackChunk_N_E"] = self["webpackChunk_N_E"] || []).push([
-  [437],
+  [181],
   {
-    /***/ 7437: /***/ function(
+    /***/ 1181: /***/ function(
       __unused_webpack_module,
       __webpack_exports__,
       __webpack_require__
Diff for framework-HASH.js
@@ -19,7 +19,7 @@
  Modernizr 3.0.0pre (Custom Build) | MIT
 */
       var aa = __webpack_require__(9496),
-        m = __webpack_require__(9260),
+        m = __webpack_require__(2048),
         r = __webpack_require__(8051);
       function y(a) {
         for (
@@ -7895,7 +7895,7 @@
        * This source code is licensed under the MIT license found in the
        * LICENSE file in the root directory of this source tree.
        */
-      __webpack_require__(9260);
+      __webpack_require__(2048);
       var f = __webpack_require__(9496),
         g = 60103;
       exports.Fragment = 60107;
@@ -7948,7 +7948,7 @@
        * This source code is licensed under the MIT license found in the
        * LICENSE file in the root directory of this source tree.
        */
-      var l = __webpack_require__(9260),
+      var l = __webpack_require__(2048),
         n = 60103,
         p = 60106;
       exports.Fragment = 60107;
Diff for main-HASH.js

Diff too large to display

Diff for polyfills-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 + "." + "b72a55e4a5d30197" + ".js"
+        "static/chunks/" + chunkId + "." + "040ce93ea5ad99f5" + ".js"
       );
       /******/
     };
@@ -227,7 +227,7 @@
           /******/
         }
         /******/ script.setAttribute("data-webpack", dataWebpackPrefix + key);
-        /******/ script.src = url;
+        /******/ script.src = __webpack_require__.tu(url);
         /******/
       }
       /******/ inProgress[url] = [done];
@@ -274,6 +274,41 @@
       /******/
     };
     /******/
+  })(); /* webpack/runtime/trusted types policy */
+  /******/
+
+  /******/ /******/ !(function() {
+    /******/ var policy;
+    /******/ __webpack_require__.tt = function() {
+      /******/ // Create Trusted Type policy if Trusted Types are available and the policy doesn't exist yet.
+      /******/ if (policy === undefined) {
+        /******/ policy = {
+          /******/ createScriptURL: function(url) {
+            return url;
+          }
+          /******/
+        };
+        /******/ if (
+          typeof trustedTypes !== "undefined" &&
+          trustedTypes.createPolicy
+        ) {
+          /******/ policy = trustedTypes.createPolicy("nextjs#bundler", policy);
+          /******/
+        }
+        /******/
+      }
+      /******/ return policy;
+      /******/
+    };
+    /******/
+  })(); /* webpack/runtime/trusted types script url */
+  /******/
+
+  /******/ /******/ !(function() {
+    /******/ __webpack_require__.tu = function(url) {
+      return __webpack_require__.tt().createScriptURL(url);
+    };
+    /******/
   })(); /* webpack/runtime/publicPath */
   /******/
Diff for index.html
@@ -8,26 +8,26 @@
     <script
       defer=""
       nomodule=""
-      src="/_next/static/chunks/polyfills-5cd94c89d3acac5f.js"
+      src="/_next/static/chunks/polyfills-0d1b80a048d4787e.js"
     ></script>
     <script
-      src="/_next/static/chunks/webpack-9302553dec9dd6bd.js"
+      src="/_next/static/chunks/webpack-61aca3a754613535.js"
       defer=""
     ></script>
     <script
-      src="/_next/static/chunks/framework-8755e6e713f733ae.js"
+      src="/_next/static/chunks/framework-044d557c64574856.js"
       defer=""
     ></script>
     <script
-      src="/_next/static/chunks/main-785a6ec3072fda78.js"
+      src="/_next/static/chunks/main-ad617351ca923611.js"
       defer=""
     ></script>
     <script
-      src="/_next/static/chunks/pages/_app-794663ada552fbca.js"
+      src="/_next/static/chunks/pages/_app-0f0eb226e227af04.js"
       defer=""
     ></script>
     <script
-      src="/_next/static/chunks/pages/index-5d085461d4b7e1ee.js"
+      src="/_next/static/chunks/pages/index-71b39a0d29d24c94.js"
       defer=""
     ></script>
     <script src="/_next/static/BUILD_ID/_buildManifest.js" defer=""></script>
Diff for link.html
@@ -8,26 +8,26 @@
     <script
       defer=""
       nomodule=""
-      src="/_next/static/chunks/polyfills-5cd94c89d3acac5f.js"
+      src="/_next/static/chunks/polyfills-0d1b80a048d4787e.js"
     ></script>
     <script
-      src="/_next/static/chunks/webpack-9302553dec9dd6bd.js"
+      src="/_next/static/chunks/webpack-61aca3a754613535.js"
       defer=""
     ></script>
     <script
-      src="/_next/static/chunks/framework-8755e6e713f733ae.js"
+      src="/_next/static/chunks/framework-044d557c64574856.js"
       defer=""
     ></script>
     <script
-      src="/_next/static/chunks/main-785a6ec3072fda78.js"
+      src="/_next/static/chunks/main-ad617351ca923611.js"
       defer=""
     ></script>
     <script
-      src="/_next/static/chunks/pages/_app-794663ada552fbca.js"
+      src="/_next/static/chunks/pages/_app-0f0eb226e227af04.js"
       defer=""
     ></script>
     <script
-      src="/_next/static/chunks/pages/link-5581225b2bbff8ba.js"
+      src="/_next/static/chunks/pages/link-cd9947d21ef7c72e.js"
       defer=""
     ></script>
     <script src="/_next/static/BUILD_ID/_buildManifest.js" defer=""></script>
Diff for withRouter.html
@@ -8,26 +8,26 @@
     <script
       defer=""
       nomodule=""
-      src="/_next/static/chunks/polyfills-5cd94c89d3acac5f.js"
+      src="/_next/static/chunks/polyfills-0d1b80a048d4787e.js"
     ></script>
     <script
-      src="/_next/static/chunks/webpack-9302553dec9dd6bd.js"
+      src="/_next/static/chunks/webpack-61aca3a754613535.js"
       defer=""
     ></script>
     <script
-      src="/_next/static/chunks/framework-8755e6e713f733ae.js"
+      src="/_next/static/chunks/framework-044d557c64574856.js"
       defer=""
     ></script>
     <script
-      src="/_next/static/chunks/main-785a6ec3072fda78.js"
+      src="/_next/static/chunks/main-ad617351ca923611.js"
       defer=""
     ></script>
     <script
-      src="/_next/static/chunks/pages/_app-794663ada552fbca.js"
+      src="/_next/static/chunks/pages/_app-0f0eb226e227af04.js"
       defer=""
     ></script>
     <script
-      src="/_next/static/chunks/pages/withRouter-8b03818d0ed540a0.js"
+      src="/_next/static/chunks/pages/withRouter-fb06f1f34bce84ca.js"
       defer=""
     ></script>
     <script src="/_next/static/BUILD_ID/_buildManifest.js" defer=""></script>

Default Build with SWC (Increase detected ⚠️)
General Overall decrease ✓
vercel/next.js canary v12.1.6 vercel/next.js refs/heads/canary Change
buildDuration 13s 14.2s ⚠️ +1.2s
buildDurationCached 6.6s 7s ⚠️ +374ms
nodeModulesSize 274 MB 260 MB -13.9 MB
Page Load Tests Overall decrease ⚠️
vercel/next.js canary v12.1.6 vercel/next.js refs/heads/canary Change
/ failed reqs 0 0
/ total time (seconds) 3.69 4.074 ⚠️ +0.38
/ avg req/sec 677.59 613.61 ⚠️ -63.98
/error-in-render failed reqs 0 0
/error-in-render total time (seconds) 1.35 1.413 ⚠️ +0.06
/error-in-render avg req/sec 1851.22 1769.75 ⚠️ -81.47
Client Bundles (main, webpack) Overall increase ⚠️
vercel/next.js canary v12.1.6 vercel/next.js refs/heads/canary Change
437.HASH.js gzip 178 B 178 B
framework-HASH.js gzip 42.7 kB 42.7 kB
main-HASH.js gzip 29.2 kB 30.3 kB ⚠️ +1.07 kB
webpack-HASH.js gzip 1.45 kB 1.54 kB ⚠️ +95 B
Overall change 73.5 kB 74.7 kB ⚠️ +1.17 kB
Legacy Client Bundles (polyfills) Overall increase ⚠️
vercel/next.js canary v12.1.6 vercel/next.js refs/heads/canary Change
polyfills-HASH.js gzip 31 kB 31 kB ⚠️ +25 B
Overall change 31 kB 31 kB ⚠️ +25 B
Client Pages Overall increase ⚠️
vercel/next.js canary v12.1.6 vercel/next.js refs/heads/canary Change
_app-HASH.js gzip 1.35 kB 1.35 kB -2 B
_error-HASH.js gzip 180 B 181 B ⚠️ +1 B
amp-HASH.js gzip 307 B 504 B ⚠️ +197 B
css-HASH.js gzip 326 B 325 B -1 B
dynamic-HASH.js gzip 3.27 kB 2.9 kB -373 B
head-HASH.js gzip 358 B 357 B -1 B
hooks-HASH.js gzip 920 B 919 B -1 B
image-HASH.js gzip 5.77 kB 5.83 kB ⚠️ +66 B
index-HASH.js gzip 262 B 262 B
link-HASH.js gzip 2.77 kB 2.96 kB ⚠️ +195 B
routerDirect..HASH.js gzip 323 B 321 B -2 B
script-HASH.js gzip 393 B 392 B -1 B
withRouter-HASH.js gzip 319 B 317 B -2 B
85e02e95b279..7e3.css gzip 107 B 107 B
Overall change 16.7 kB 16.7 kB ⚠️ +76 B
Client Build Manifests Overall decrease ✓
vercel/next.js canary v12.1.6 vercel/next.js refs/heads/canary Change
_buildManifest.js gzip 459 B 458 B -1 B
Overall change 459 B 458 B -1 B
Rendered Page Sizes Overall increase ⚠️
vercel/next.js canary v12.1.6 vercel/next.js refs/heads/canary Change
index.html gzip 529 B 531 B ⚠️ +2 B
link.html gzip 543 B 545 B ⚠️ +2 B
withRouter.html gzip 525 B 526 B ⚠️ +1 B
Overall change 1.6 kB 1.6 kB ⚠️ +5 B

Diffs

Diff for _buildManifest.js
@@ -1,25 +1,25 @@
 self.__BUILD_MANIFEST = {
   __rewrites: { beforeFiles: [], afterFiles: [], fallback: [] },
-  "/": ["static\u002Fchunks\u002Fpages\u002Findex-5d085461d4b7e1ee.js"],
-  "/_error": ["static\u002Fchunks\u002Fpages\u002F_error-48e41d26ff0101f8.js"],
-  "/amp": ["static\u002Fchunks\u002Fpages\u002Famp-a67fe6de8bb61a7a.js"],
+  "/": ["static\u002Fchunks\u002Fpages\u002Findex-71b39a0d29d24c94.js"],
+  "/_error": ["static\u002Fchunks\u002Fpages\u002F_error-f7a25bc135f661fc.js"],
+  "/amp": ["static\u002Fchunks\u002Fpages\u002Famp-7e272727af269b98.js"],
   "/css": [
     "static\u002Fcss\u002F94fdbc56eafa2039.css",
-    "static\u002Fchunks\u002Fpages\u002Fcss-6d59dba2fd31bfed.js"
+    "static\u002Fchunks\u002Fpages\u002Fcss-a95e3bc2c5ca8245.js"
   ],
   "/dynamic": [
-    "static\u002Fchunks\u002Fpages\u002Fdynamic-20b15c1c47d4d615.js"
+    "static\u002Fchunks\u002Fpages\u002Fdynamic-672cb693b0ca9d7e.js"
   ],
-  "/head": ["static\u002Fchunks\u002Fpages\u002Fhead-6ece0649d14938b8.js"],
-  "/hooks": ["static\u002Fchunks\u002Fpages\u002Fhooks-e3382ebb932b5bfb.js"],
-  "/image": ["static\u002Fchunks\u002Fpages\u002Fimage-19409da39fdaf4f2.js"],
-  "/link": ["static\u002Fchunks\u002Fpages\u002Flink-5581225b2bbff8ba.js"],
+  "/head": ["static\u002Fchunks\u002Fpages\u002Fhead-e2b7857f2aa86120.js"],
+  "/hooks": ["static\u002Fchunks\u002Fpages\u002Fhooks-a5d0da0f39070d96.js"],
+  "/image": ["static\u002Fchunks\u002Fpages\u002Fimage-a032795453eaeab0.js"],
+  "/link": ["static\u002Fchunks\u002Fpages\u002Flink-cd9947d21ef7c72e.js"],
   "/routerDirect": [
-    "static\u002Fchunks\u002Fpages\u002FrouterDirect-9669d5861da5e10b.js"
+    "static\u002Fchunks\u002Fpages\u002FrouterDirect-c2408dd9a1984376.js"
   ],
-  "/script": ["static\u002Fchunks\u002Fpages\u002Fscript-c439c95569fb9033.js"],
+  "/script": ["static\u002Fchunks\u002Fpages\u002Fscript-f309dfc4eea310f4.js"],
   "/withRouter": [
-    "static\u002Fchunks\u002Fpages\u002FwithRouter-8b03818d0ed540a0.js"
+    "static\u002Fchunks\u002Fpages\u002FwithRouter-fb06f1f34bce84ca.js"
   ],
   sortedPages: [
     "\u002F",
Diff for _app-HASH.js
@@ -1,7 +1,7 @@
 (self["webpackChunk_N_E"] = self["webpackChunk_N_E"] || []).push([
   [888],
   {
-    /***/ 3479: /***/ function(
+    /***/ 122: /***/ 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__(3653);
+          return __webpack_require__(539);
         }
       ]);
       if (false) {
@@ -18,14 +18,14 @@
       /***/
     },
 
-    /***/ 3653: /***/ function(
+    /***/ 539: /***/ function(
       __unused_webpack_module,
       exports,
       __webpack_require__
     ) {
       "use strict";
 
-      var _runtimeJs = _interopRequireDefault(__webpack_require__(739));
+      var _runtimeJs = _interopRequireDefault(__webpack_require__(3994));
       function _assertThisInitialized(self) {
         if (self === void 0) {
           throw new ReferenceError(
@@ -153,7 +153,7 @@
       });
       exports["default"] = void 0;
       var _react = _interopRequireDefault1(__webpack_require__(9496));
-      var _utils = __webpack_require__(8030);
+      var _utils = __webpack_require__(9089);
       function asyncGeneratorStep(
         gen,
         resolve,
@@ -282,7 +282,7 @@
       return __webpack_require__((__webpack_require__.s = moduleId));
     };
     /******/ __webpack_require__.O(0, [774, 179], function() {
-      return __webpack_exec__(3479), __webpack_exec__(7465);
+      return __webpack_exec__(122), __webpack_exec__(1905);
     });
     /******/ 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],
   {
-    /***/ 2929: /***/ function(
+    /***/ 3560: /***/ 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__(5590);
+          return __webpack_require__(9733);
         }
       ]);
       if (false) {
@@ -24,7 +24,7 @@
       return __webpack_require__((__webpack_require__.s = moduleId));
     };
     /******/ __webpack_require__.O(0, [888, 774, 179], function() {
-      return __webpack_exec__(2929);
+      return __webpack_exec__(3560);
     });
     /******/ 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],
   {
-    /***/ 94: /***/ function(
+    /***/ 7941: /***/ function(
       module,
       __unused_webpack_exports,
       __webpack_require__
     ) {
-      module.exports = __webpack_require__(4634);
+      module.exports = __webpack_require__(79);
 
       /***/
     },
 
-    /***/ 9028: /***/ function(
+    /***/ 8958: /***/ 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__(4628);
+          return __webpack_require__(6534);
         }
       ]);
       if (false) {
@@ -28,7 +28,45 @@
       /***/
     },
 
-    /***/ 4628: /***/ function(
+    /***/ 79: /***/ function(module, exports, __webpack_require__) {
+      "use strict";
+
+      Object.defineProperty(exports, "__esModule", {
+        value: true
+      });
+      exports.useAmp = useAmp;
+      var _react = _interopRequireDefault(__webpack_require__(9496));
+      var _ampContext = __webpack_require__(3131);
+      var _ampMode = __webpack_require__(868);
+      function _interopRequireDefault(obj) {
+        return obj && obj.__esModule
+          ? obj
+          : {
+              default: obj
+            };
+      }
+      function useAmp() {
+        // Don't assign the context value to a variable to save bytes
+        return (0, _ampMode).isInAmpMode(
+          _react.default.useContext(_ampContext.AmpStateContext)
+        );
+      }
+      if (
+        (typeof exports.default === "function" ||
+          (typeof exports.default === "object" && exports.default !== null)) &&
+        typeof exports.default.__esModule === "undefined"
+      ) {
+        Object.defineProperty(exports.default, "__esModule", {
+          value: true
+        });
+        Object.assign(exports.default, exports);
+        module.exports = exports.default;
+      } //# sourceMappingURL=amp.js.map
+
+      /***/
+    },
+
+    /***/ 6534: /***/ function(
       __unused_webpack_module,
       __webpack_exports__,
       __webpack_require__
@@ -45,7 +83,7 @@
         /* harmony export */
       });
       /* harmony import */ var next_amp__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(
-        94
+        7941
       );
       /* harmony import */ var next_amp__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/ __webpack_require__.n(
         next_amp__WEBPACK_IMPORTED_MODULE_0__
@@ -69,7 +107,7 @@
       return __webpack_require__((__webpack_require__.s = moduleId));
     };
     /******/ __webpack_require__.O(0, [888, 774, 179], function() {
-      return __webpack_exec__(9028);
+      return __webpack_exec__(8958);
     });
     /******/ 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],
   {
-    /***/ 8281: /***/ function(
+    /***/ 9557: /***/ 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__(1949);
+          return __webpack_require__(4173);
         }
       ]);
       if (false) {
@@ -18,7 +18,7 @@
       /***/
     },
 
-    /***/ 1949: /***/ function(
+    /***/ 4173: /***/ function(
       __unused_webpack_module,
       __webpack_exports__,
       __webpack_require__
@@ -29,7 +29,7 @@
         4637
       );
       /* harmony import */ var _css_module_css__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(
-        1099
+        2467
       );
       /* 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 @@
       /***/
     },
 
-    /***/ 1099: /***/ function(module) {
+    /***/ 2467: /***/ 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__(8281);
+      return __webpack_exec__(9557);
     });
     /******/ 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],
   {
-    /***/ 2744: /***/ function(
+    /***/ 5695: /***/ 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__(1697);
+          return __webpack_require__(7800);
         }
       ]);
       if (false) {
@@ -18,7 +18,7 @@
       /***/
     },
 
-    /***/ 1926: /***/ function(module, exports, __webpack_require__) {
+    /***/ 7164: /***/ function(module, exports, __webpack_require__) {
       "use strict";
 
       function _defineProperty(obj, key, value) {
@@ -68,7 +68,7 @@
       exports["default"] = dynamic;
       exports.noSSR = noSSR;
       var _react = _interopRequireDefault(__webpack_require__(9496));
-      var _loadable = _interopRequireDefault(__webpack_require__(4596));
+      var _loadable = _interopRequireDefault(__webpack_require__(4398));
       function dynamic(dynamicOptions, options) {
         var loadableFn = _loadable.default;
         var loadableOptions = {
@@ -100,16 +100,12 @@
         }
         // Support for passing options, eg: dynamic(import('../hello-world'), {loading: () => <p>Loading something</p>})
         loadableOptions = _objectSpread({}, loadableOptions, options);
-        var suspenseOptions = loadableOptions;
         // Error if Fizz rendering is not enabled and `suspense` option is set to true
-        if (true && suspenseOptions.suspense) {
+        if (true && loadableOptions.suspense) {
           throw new Error(
             "Invalid suspense option usage in next/dynamic. Read more: https://nextjs.org/docs/messages/invalid-dynamic-suspense"
           );
         }
-        if (suspenseOptions.suspense) {
-          return loadableFn(suspenseOptions);
-        }
         // coming from build/babel/plugins/react-loadable-plugin.js
         if (loadableOptions.loadableGenerated) {
           loadableOptions = _objectSpread(
@@ -119,8 +115,12 @@
           );
           delete loadableOptions.loadableGenerated;
         }
-        // support for disabling server side rendering, eg: dynamic(import('../hello-world'), {ssr: false})
-        if (typeof loadableOptions.ssr === "boolean") {
+        // support for disabling server side rendering, eg: dynamic(import('../hello-world'), {ssr: false}).
+        // skip `ssr` for suspense mode and opt-in React.lazy directly
+        if (
+          typeof loadableOptions.ssr === "boolean" &&
+          !loadableOptions.suspense
+        ) {
           if (!loadableOptions.ssr) {
             delete loadableOptions.ssr;
             return noSSR(loadableFn, loadableOptions);
@@ -157,9 +157,13 @@
         };
       }
       if (
-        typeof exports.default === "function" ||
-        (typeof exports.default === "object" && exports.default !== null)
+        (typeof exports.default === "function" ||
+          (typeof exports.default === "object" && exports.default !== null)) &&
+        typeof exports.default.__esModule === "undefined"
       ) {
+        Object.defineProperty(exports.default, "__esModule", {
+          value: true
+        });
         Object.assign(exports.default, exports);
         module.exports = exports.default;
       } //# sourceMappingURL=dynamic.js.map
@@ -167,7 +171,7 @@
       /***/
     },
 
-    /***/ 7063: /***/ function(
+    /***/ 7484: /***/ function(
       __unused_webpack_module,
       exports,
       __webpack_require__
@@ -194,7 +198,7 @@
       /***/
     },
 
-    /***/ 4596: /***/ function(
+    /***/ 4398: /***/ function(
       __unused_webpack_module,
       exports,
       __webpack_require__
@@ -255,8 +259,7 @@
       });
       exports["default"] = void 0;
       var _react = _interopRequireDefault(__webpack_require__(9496));
-      var _useSubscription = __webpack_require__(1181);
-      var _loadableContext = __webpack_require__(7063);
+      var _loadableContext = __webpack_require__(7484);
       function _interopRequireDefault(obj) {
         return obj && obj.__esModule
           ? obj
@@ -264,6 +267,8 @@
               default: obj
             };
       }
+      var useSyncExternalStore = (false ? 0 : __webpack_require__(9155))
+        .useSyncExternalStore;
       var ALL_INITIALIZERS = [];
       var READY_INITIALIZERS = [];
       var initialized = false;
@@ -303,12 +308,24 @@
           }
           return subscription.promise();
         };
-        var LoadableImpl = function LoadableImpl(props, ref) {
+        var useLoadableModule = function useLoadableModule() {
           init();
           var context = _react.default.useContext(
             _loadableContext.LoadableContext
           );
-          var state = (0, _useSubscription).useSubscription(subscription);
+          if (context && Array.isArray(opts.modules)) {
+            opts.modules.forEach(function(moduleName) {
+              context(moduleName);
+            });
+          }
+        };
+        var LoadableImpl = function LoadableImpl(props, ref) {
+          useLoadableModule();
+          var state = useSyncExternalStore(
+            subscription.subscribe,
+            subscription.getCurrentValue,
+            subscription.getCurrentValue
+          );
           _react.default.useImperativeHandle(
             ref,
             function() {
@@ -318,11 +335,6 @@
             },
             []
           );
-          if (context && Array.isArray(opts.modules)) {
-            opts.modules.forEach(function(moduleName) {
-              context(moduleName);
-            });
-          }
           return _react.default.useMemo(
             function() {
               if (state.loading || state.error) {
@@ -346,6 +358,7 @@
           );
         };
         var LazyImpl = function LazyImpl(props, ref) {
+          useLoadableModule();
           return _react.default.createElement(
             opts.lazy,
             _objectSpread({}, props, {
@@ -368,12 +381,12 @@
         if (opts.suspense) {
           opts.lazy = _react.default.lazy(opts.loader);
         }
-        var subscription = null;
+        /** @type LoadableSubscription */ var subscription = null;
         // Server only
         if (false) {
         }
         // Client only
-        if (!initialized && "object" !== "undefined" && !opts.suspense) {
+        if (!initialized && "object" !== "undefined") {
           // require.resolveWeak check is needed for environments that don't have it available like Jest
           var moduleIds =
             opts.webpack && "function" === "function"
@@ -415,7 +428,7 @@
         }
         var LoadableComponent = opts.suspense ? LazyImpl : LoadableImpl;
         LoadableComponent.preload = function() {
-          return !opts.suspense && init();
+          return init();
         };
         LoadableComponent.displayName = "LoadableComponent";
         return _react.default.forwardRef(LoadableComponent);
@@ -569,7 +582,7 @@
       /***/
     },
 
-    /***/ 1697: /***/ function(
+    /***/ 7800: /***/ function(
       __unused_webpack_module,
       __webpack_exports__,
       __webpack_require__
@@ -586,7 +599,7 @@
         4637
       );
       /* harmony import */ var next_dynamic__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(
-        1605
+        2123
       );
       /* harmony import */ var next_dynamic__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/ __webpack_require__.n(
         next_dynamic__WEBPACK_IMPORTED_MODULE_1__
@@ -595,13 +608,13 @@
       var DynamicHello = next_dynamic__WEBPACK_IMPORTED_MODULE_1___default()(
         function() {
           return __webpack_require__
-            .e(/* import() */ 437)
-            .then(__webpack_require__.bind(__webpack_require__, 7437));
+            .e(/* import() */ 181)
+            .then(__webpack_require__.bind(__webpack_require__, 1181));
         },
         {
           loadableGenerated: {
             webpack: function() {
-              return [/*require.resolve*/ 7437];
+              return [/*require.resolve*/ 1181];
             }
           }
         }
@@ -631,195 +644,103 @@
       /***/
     },
 
-    /***/ 1181: /***/ function(
+    /***/ 2123: /***/ function(
       module,
       __unused_webpack_exports,
       __webpack_require__
     ) {
-      var __dirname = "/";
-      (function() {
-        "use strict";
-        var e = {
-          800: function(e) {
-            /*
-object-assign
-(c) Sindre Sorhus
-@license MIT
-*/
-            var r = Object.getOwnPropertySymbols;
-            var t = Object.prototype.hasOwnProperty;
-            var u = Object.prototype.propertyIsEnumerable;
-            function toObject(e) {
-              if (e === null || e === undefined) {
-                throw new TypeError(
-                  "Object.assign cannot be called with null or undefined"
-                );
-              }
-              return Object(e);
-            }
-            function shouldUseNative() {
-              try {
-                if (!Object.assign) {
-                  return false;
-                }
-                var e = new String("abc");
-                e[5] = "de";
-                if (Object.getOwnPropertyNames(e)[0] === "5") {
-                  return false;
-                }
-                var r = {};
-                for (var t = 0; t < 10; t++) {
-                  r["_" + String.fromCharCode(t)] = t;
-                }
-                var u = Object.getOwnPropertyNames(r).map(function(e) {
-                  return r[e];
-                });
-                if (u.join("") !== "0123456789") {
-                  return false;
-                }
-                var n = {};
-                "abcdefghijklmnopqrst".split("").forEach(function(e) {
-                  n[e] = e;
-                });
-                if (
-                  Object.keys(Object.assign({}, n)).join("") !==
-                  "abcdefghijklmnopqrst"
-                ) {
-                  return false;
-                }
-                return true;
-              } catch (e) {
-                return false;
-              }
-            }
-            e.exports = shouldUseNative()
-              ? Object.assign
-              : function(e, n) {
-                  var a;
-                  var i = toObject(e);
-                  var s;
-                  for (var c = 1; c < arguments.length; c++) {
-                    a = Object(arguments[c]);
-                    for (var o in a) {
-                      if (t.call(a, o)) {
-                        i[o] = a[o];
-                      }
-                    }
-                    if (r) {
-                      s = r(a);
-                      for (var f = 0; f < s.length; f++) {
-                        if (u.call(a, s[f])) {
-                          i[s[f]] = a[s[f]];
-                        }
-                      }
-                    }
-                  }
-                  return i;
-                };
-          },
-          569: function(e, r, t) {
-            /** @license React vundefined
-             * use-subscription.development.js
-             *
-             * Copyright (c) Facebook, Inc. and its affiliates.
-             *
-             * This source code is licensed under the MIT license found in the
-             * LICENSE file in the root directory of this source tree.
-             */
-            if (false) {
-            }
-          },
-          403: function(e, r, t) {
-            /** @license React vundefined
-             * use-subscription.production.min.js
-             *
-             * Copyright (c) Facebook, Inc. and its affiliates.
-             *
-             * This source code is licensed under the MIT license found in the
-             * LICENSE file in the root directory of this source tree.
-             */
-            var u = t(800),
-              n = t(522);
-            r.useSubscription = function(e) {
-              var r = e.getCurrentValue,
-                t = e.subscribe,
-                a = n.useState(function() {
-                  return { getCurrentValue: r, subscribe: t, value: r() };
-                });
-              e = a[0];
-              var i = a[1];
-              a = e.value;
-              if (e.getCurrentValue !== r || e.subscribe !== t)
-                (a = r()), i({ getCurrentValue: r, subscribe: t, value: a });
-              n.useDebugValue(a);
-              n.useEffect(
-                function() {
-                  function b() {
-                    if (!e) {
-                      var n = r();
-                      i(function(e) {
-                        return e.getCurrentValue !== r ||
-                          e.subscribe !== t ||
-                          e.value === n
-                          ? e
-                          : u({}, e, { value: n });
-                      });
-                    }
-                  }
-                  var e = !1,
-                    n = t(b);
-                  b();
-                  return function() {
-                    e = !0;
-                    n();
-                  };
-                },
-                [r, t]
-              );
-              return a;
-            };
+      module.exports = __webpack_require__(7164);
+
+      /***/
+    },
+
+    /***/ 9364: /***/ function(
+      __unused_webpack_module,
+      exports,
+      __webpack_require__
+    ) {
+      "use strict";
+      /**
+       * @license React
+       * use-sync-external-store-shim.production.min.js
+       *
+       * Copyright (c) Facebook, Inc. and its affiliates.
+       *
+       * This source code is licensed under the MIT license found in the
+       * LICENSE file in the root directory of this source tree.
+       */
+      var e = __webpack_require__(9496);
+      function h(a, b) {
+        return (
+          (a === b && (0 !== a || 1 / a === 1 / b)) || (a !== a && b !== b)
+        );
+      }
+      var k = "function" === typeof Object.is ? Object.is : h,
+        l = e.useState,
+        m = e.useEffect,
+        n = e.useLayoutEffect,
+        p = e.useDebugValue;
+      function q(a, b) {
+        var d = b(),
+          f = l({ inst: { value: d, getSnapshot: b } }),
+          c = f[0].inst,
+          g = f[1];
+        n(
+          function() {
+            c.value = d;
+            c.getSnapshot = b;
+            r(c) && g({ inst: c });
           },
-          138: function(e, r, t) {
-            if (true) {
-              e.exports = t(403);
-            } else {
-            }
+          [a, d, b]
+        );
+        m(
+          function() {
+            r(c) && g({ inst: c });
+            return a(function() {
+              r(c) && g({ inst: c });
+            });
           },
-          522: function(e) {
-            e.exports = __webpack_require__(9496);
-          }
-        };
-        var r = {};
-        function __nccwpck_require__(t) {
-          var u = r[t];
-          if (u !== undefined) {
-            return u.exports;
-          }
-          var n = (r[t] = { exports: {} });
-          var a = true;
-          try {
-            e[t](n, n.exports, __nccwpck_require__);
-            a = false;
-          } finally {
-            if (a) delete r[t];
-          }
-          return n.exports;
+          [a]
+        );
+        p(d);
+        return d;
+      }
+      function r(a) {
+        var b = a.getSnapshot;
+        a = a.value;
+        try {
+          var d = b();
+          return !k(a, d);
+        } catch (f) {
+          return !0;
         }
-        if (typeof __nccwpck_require__ !== "undefined")
-          __nccwpck_require__.ab = __dirname + "/";
-        var t = __nccwpck_require__(138);
-        module.exports = t;
-      })();
+      }
+      function t(a, b) {
+        return b();
+      }
+      var u =
+        "undefined" === typeof window ||
+        "undefined" === typeof window.document ||
+        "undefined" === typeof window.document.createElement
+          ? t
+          : q;
+      exports.useSyncExternalStore =
+        void 0 !== e.useSyncExternalStore ? e.useSyncExternalStore : u;
 
       /***/
     },
 
-    /***/ 1605: /***/ function(
+    /***/ 9155: /***/ function(
       module,
       __unused_webpack_exports,
       __webpack_require__
     ) {
-      module.exports = __webpack_require__(1926);
+      "use strict";
+
+      if (true) {
+        module.exports = __webpack_require__(9364);
+      } else {
+      }
 
       /***/
     }
@@ -830,7 +751,7 @@ object-assign
       return __webpack_require__((__webpack_require__.s = moduleId));
     };
     /******/ __webpack_require__.O(0, [774, 888, 179], function() {
-      return __webpack_exec__(2744);
+      return __webpack_exec__(5695);
     });
     /******/ 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],
   {
-    /***/ 4337: /***/ function(
+    /***/ 7148: /***/ 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__(848);
+          return __webpack_require__(6179);
         }
       ]);
       if (false) {
@@ -18,7 +18,7 @@
       /***/
     },
 
-    /***/ 848: /***/ function(
+    /***/ 6179: /***/ function(
       __unused_webpack_module,
       __webpack_exports__,
       __webpack_require__
@@ -35,7 +35,7 @@
         4637
       );
       /* harmony import */ var next_head__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(
-        8915
+        4616
       );
       /* harmony import */ var next_head__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/ __webpack_require__.n(
         next_head__WEBPACK_IMPORTED_MODULE_1__
@@ -71,12 +71,12 @@
       /***/
     },
 
-    /***/ 8915: /***/ function(
+    /***/ 4616: /***/ function(
       module,
       __unused_webpack_exports,
       __webpack_require__
     ) {
-      module.exports = __webpack_require__(4828);
+      module.exports = __webpack_require__(5222);
 
       /***/
     }
@@ -87,7 +87,7 @@
       return __webpack_require__((__webpack_require__.s = moduleId));
     };
     /******/ __webpack_require__.O(0, [774, 888, 179], function() {
-      return __webpack_exec__(4337);
+      return __webpack_exec__(7148);
     });
     /******/ 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],
   {
-    /***/ 4853: /***/ function(
+    /***/ 3515: /***/ 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__(7084);
+          return __webpack_require__(856);
         }
       ]);
       if (false) {
@@ -18,7 +18,7 @@
       /***/
     },
 
-    /***/ 7084: /***/ function(
+    /***/ 856: /***/ function(
       __unused_webpack_module,
       __webpack_exports__,
       __webpack_require__
@@ -158,7 +158,7 @@
       return __webpack_require__((__webpack_require__.s = moduleId));
     };
     /******/ __webpack_require__.O(0, [774, 888, 179], function() {
-      return __webpack_exec__(4853);
+      return __webpack_exec__(3515);
     });
     /******/ var __webpack_exports__ = __webpack_require__.O();
     /******/ _N_E = __webpack_exports__;
Diff for image-HASH.js
@@ -1,7 +1,7 @@
 (self["webpackChunk_N_E"] = self["webpackChunk_N_E"] || []).push([
   [358],
   {
-    /***/ 7570: /***/ function(
+    /***/ 1487: /***/ function(
       __unused_webpack_module,
       __unused_webpack_exports,
       __webpack_require__
@@ -9,7 +9,7 @@
       (window.__NEXT_P = window.__NEXT_P || []).push([
         "/image",
         function() {
-          return __webpack_require__(3918);
+          return __webpack_require__(2330);
         }
       ]);
       if (false) {
@@ -18,7 +18,7 @@
       /***/
     },
 
-    /***/ 2185: /***/ function(module, exports, __webpack_require__) {
+    /***/ 5239: /***/ function(module, exports, __webpack_require__) {
       "use strict";
 
       function _arrayLikeToArray(arr, len) {
@@ -123,12 +123,12 @@
       });
       exports["default"] = Image;
       var _react = _interopRequireWildcard(__webpack_require__(9496));
-      var _head = _interopRequireDefault(__webpack_require__(4828));
-      var _imageConfig = __webpack_require__(2204);
-      var _useIntersection = __webpack_require__(6363);
-      var _imageConfigContext = __webpack_require__(1958);
-      var _utils = __webpack_require__(8030);
-      var _normalizeTrailingSlash = __webpack_require__(1872);
+      var _head = _interopRequireDefault(__webpack_require__(5222));
+      var _imageConfig = __webpack_require__(5466);
+      var _useIntersection = __webpack_require__(1311);
+      var _imageConfigContext = __webpack_require__(1801);
+      var _utils = __webpack_require__(9089);
+      var _normalizeTrailingSlash = __webpack_require__(2800);
       function Image(_param) {
         var src = _param.src,
           sizes = _param.sizes,
@@ -139,8 +139,7 @@
           loading = _param.loading,
           _lazyRoot = _param.lazyRoot,
           lazyRoot = _lazyRoot === void 0 ? null : _lazyRoot,
-          _lazyBoundary = _param.lazyBoundary,
-          lazyBoundary = _lazyBoundary === void 0 ? "200px" : _lazyBoundary,
+          lazyBoundary = _param.lazyBoundary,
           className = _param.className,
           quality = _param.quality,
           width = _param.width,
@@ -263,7 +262,7 @@
         var ref1 = _slicedToArray(
             (0, _useIntersection).useIntersection({
               rootRef: lazyRoot,
-              rootMargin: lazyBoundary,
+              rootMargin: lazyBoundary || "200px",
               disabled: !isLazy
             }),
             3
@@ -271,7 +270,7 @@
           setIntersection = ref1[0],
           isIntersected = ref1[1],
           resetIntersected = ref1[2];
-        var isVisible = !isLazy || isIntersected;
+        var isVisible = !isLazy || isIntersected || layout === "raw";
         var wrapperStyle = {
           boxSizing: "border-box",
           display: "block",
@@ -450,7 +449,8 @@
             onLoadingCompleteRef: onLoadingCompleteRef,
             setBlurComplete: setBlurComplete,
             setIntersection: setIntersection,
-            isVisible: isVisible
+            isVisible: isVisible,
+            noscriptSizes: sizes
           },
           rest
         );
@@ -619,17 +619,22 @@
         }
         return target;
       }
-      var ref;
-      var experimentalLayoutRaw =
-        (ref = {
-          deviceSizes: [640, 750, 828, 1080, 1200, 1920, 2048, 3840],
-          imageSizes: [16, 32, 48, 64, 96, 128, 256, 384],
-          path: "/_next/image",
-          loader: "default",
-          experimentalLayoutRaw: false
-        }) === null || ref === void 0
-          ? void 0
-          : ref.experimentalLayoutRaw;
+      var ref =
+          {
+            deviceSizes: [640, 750, 828, 1080, 1200, 1920, 2048, 3840],
+            imageSizes: [16, 32, 48, 64, 96, 128, 256, 384],
+            path: "/_next/image",
+            loader: "default",
+            experimentalLayoutRaw: false
+          } || {},
+        _experimentalLayoutRaw = ref.experimentalLayoutRaw,
+        experimentalLayoutRaw =
+          _experimentalLayoutRaw === void 0 ? false : _experimentalLayoutRaw,
+        _experimentalRemotePatterns = ref.experimentalRemotePatterns,
+        experimentalRemotePatterns =
+          _experimentalRemotePatterns === void 0
+            ? []
+            : _experimentalRemotePatterns;
       var configEnv = {
         deviceSizes: [640, 750, 828, 1080, 1200, 1920, 2048, 3840],
         imageSizes: [16, 32, 48, 64, 96, 128, 256, 384],
@@ -756,9 +761,9 @@
             sizes: undefined
           };
         }
-        var ref3 = getWidths(config, width, layout, sizes),
-          widths = ref3.widths,
-          kind = ref3.kind;
+        var ref4 = getWidths(config, width, layout, sizes),
+          widths = ref4.widths,
+          kind = ref4.kind;
         var last = widths.length - 1;
         return {
           sizes: !sizes && kind === "w" ? "100vw" : sizes,
@@ -802,11 +807,11 @@
         return undefined;
       }
       function defaultImageLoader(loaderProps) {
-        var ref2;
+        var ref5;
         var loaderKey =
-          ((ref2 = loaderProps.config) === null || ref2 === void 0
+          ((ref5 = loaderProps.config) === null || ref5 === void 0
             ? void 0
-            : ref2.loader) || "default";
+            : ref5.loader) || "default";
         var load = loaders.get(loaderKey);
         if (load) {
           return load(loaderProps);
@@ -864,7 +869,7 @@
             });
           }
           if (false) {
-            var parent, widthModified, heightModified, ref3;
+            var parent, widthModified, heightModified, ref6;
           }
         });
       }
@@ -879,7 +884,8 @@
           blurStyle = _param.blurStyle,
           isLazy = _param.isLazy,
           placeholder = _param.placeholder,
-          loading = _param.loading,
+          _loading = _param.loading,
+          loading = _loading === void 0 ? "lazy" : _loading,
           srcString = _param.srcString,
           config = _param.config,
           unoptimized = _param.unoptimized,
@@ -890,6 +896,7 @@
           onLoad = _param.onLoad,
           onError = _param.onError,
           isVisible = _param.isVisible,
+          noscriptSizes = _param.noscriptSizes,
           rest = _objectWithoutProperties(_param, [
             "imgAttributes",
             "heightInt",
@@ -911,7 +918,8 @@
             "setIntersection",
             "onLoad",
             "onError",
-            "isVisible"
+            "isVisible",
+            "noscriptSizes"
           ]);
         return /*#__PURE__*/ _react.default.createElement(
           _react.default.Fragment,
@@ -932,6 +940,8 @@
                 decoding: "async",
                 "data-nimg": layout,
                 className: className,
+                // @ts-ignore - TODO: upgrade to `@types/react@17`
+                loading: layout === "raw" ? loading : undefined,
                 style: _objectSpread({}, imgStyle, blurStyle),
                 ref: (0, _react).useCallback(
                   function(img) {
@@ -1000,7 +1010,7 @@
                     layout: layout,
                     width: widthInt,
                     quality: qualityInt,
-                    sizes: imgAttributes.sizes,
+                    sizes: noscriptSizes,
                     loader: loader
                   }),
                   layout === "raw"
@@ -1015,7 +1025,7 @@
                     style: imgStyle,
                     className: className,
                     // @ts-ignore - TODO: upgrade to `@types/react@17`
-                    loading: loading || "lazy"
+                    loading: loading
                   }
                 )
               )
@@ -1081,7 +1091,7 @@
           width = param.width,
           quality = param.quality;
         if (false) {
-          var parsedSrc, missingValues;
+          var hasMatch, parsedSrc, missingValues;
         }
         if (src.endsWith(".svg") && !config.dangerouslyAllowSVG) {
           // Special case to make svg serve as-is to avoid proxying
@@ -1100,9 +1110,13 @@
           .concat(quality || 75);
       }
       if (
-        typeof exports.default === "function" ||
-        (typeof exports.default === "object" && exports.default !== null)
+        (typeof exports.default === "function" ||
+          (typeof exports.default === "object" && exports.default !== null)) &&
+        typeof exports.default.__esModule === "undefined"
       ) {
+        Object.defineProperty(exports.default, "__esModule", {
+          value: true
+        });
         Object.assign(exports.default, exports);
         module.exports = exports.default;
       } //# sourceMappingURL=image.js.map
@@ -1110,7 +1124,7 @@
       /***/
     },
 
-    /***/ 6363: /***/ function(module, exports, __webpack_require__) {
+    /***/ 1311: /***/ function(module, exports, __webpack_require__) {
       "use strict";
 
       function _arrayLikeToArray(arr, len) {
@@ -1179,7 +1193,7 @@
       });
       exports.useIntersection = useIntersection;
       var _react = __webpack_require__(9496);
-      var _requestIdleCallback = __webpack_require__(7808);
+      var _requestIdleCallback = __webpack_require__(7307);
       var hasIntersectionObserver = typeof IntersectionObserver !== "undefined";
       function useIntersection(param) {
         var rootRef = param.rootRef,
@@ -1311,9 +1325,13 @@
         return instance;
       }
       if (
-        typeof exports.default === "function" ||
-        (typeof exports.default === "object" && exports.default !== null)
+        (typeof exports.default === "function" ||
+          (typeof exports.default === "object" && exports.default !== null)) &&
+        typeof exports.default.__esModule === "undefined"
       ) {
+        Object.defineProperty(exports.default, "__esModule", {
+          value: true
+        });
         Object.assign(exports.default, exports);
         module.exports = exports.default;
       } //# sourceMappingURL=use-intersection.js.map
@@ -1321,7 +1339,7 @@
       /***/
     },
 
-    /***/ 3918: /***/ function(
+    /***/ 2330: /***/ function(
       __unused_webpack_module,
       __webpack_exports__,
       __webpack_require__
@@ -1342,8 +1360,8 @@
 
       // EXTERNAL MODULE: ./node_modules/.pnpm/react@17.0.2/node_modules/react/jsx-runtime.js
       var jsx_runtime = __webpack_require__(4637);
-      // EXTERNAL MODULE: ./node_modules/.pnpm/file+..+main-repo+packages+next+next-packed.tgz_sfoxds7t5ydpegc3knd667wn6m/node_modules/next/image.js
-      var next_image = __webpack_require__(8114);
+      // EXTERNAL MODULE: ./node_modules/.pnpm/file+..+diff-repo+packages+next+next-packed.tgz_sfoxds7t5ydpegc3knd667wn6m/node_modules/next/image.js
+      var next_image = __webpack_require__(4033);
       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",
@@ -1371,12 +1389,12 @@
       /***/
     },
 
-    /***/ 8114: /***/ function(
+    /***/ 4033: /***/ function(
       module,
       __unused_webpack_exports,
       __webpack_require__
     ) {
-      module.exports = __webpack_require__(2185);
+      module.exports = __webpack_require__(5239);
 
       /***/
     }
@@ -1387,7 +1405,7 @@
       return __webpack_require__((__webpack_require__.s = moduleId));
     };
     /******/ __webpack_require__.O(0, [774, 888, 179], function() {
-      return __webpack_exec__(7570);
+      return __webpack_exec__(1487);
     });
     /******/ 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],
   {
-    /***/ 4786: /***/ function(
+    /***/ 6967: /***/ function(
       __unused_webpack_module,
       __unused_webpack_exports,
       __webpack_require__
@@ -9,7 +9,7 @@
       (window.__NEXT_P = window.__NEXT_P || []).push([
         "/",
         function() {
-          return __webpack_require__(7245);
+          return __webpack_require__(9257);
         }
       ]);
       if (false) {
@@ -18,7 +18,7 @@
       /***/
     },
 
-    /***/ 7245: /***/ function(
+    /***/ 9257: /***/ 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__(4786);
+      return __webpack_exec__(6967);
     });
     /******/ 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],
   {
-    /***/ 2783: /***/ function(
+    /***/ 9367: /***/ 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__(3122);
+          return __webpack_require__(7178);
         }
       ]);
       if (false) {
@@ -18,7 +18,43 @@
       /***/
     },
 
-    /***/ 7160: /***/ function(module, exports, __webpack_require__) {
+    /***/ 7280: /***/ function(module, exports) {
+      "use strict";
+
+      Object.defineProperty(exports, "__esModule", {
+        value: true
+      });
+      exports.getDomainLocale = getDomainLocale;
+      var basePath =
+        /* unused pure expression or super */ null && (false || "");
+      function getDomainLocale(path, locale, locales, domainLocales) {
+        if (false) {
+          var finalLocale,
+            proto,
+            domain,
+            target,
+            detectDomainLocale,
+            normalizeLocalePath;
+        } else {
+          return false;
+        }
+      }
+      if (
+        (typeof exports.default === "function" ||
+          (typeof exports.default === "object" && exports.default !== null)) &&
+        typeof exports.default.__esModule === "undefined"
+      ) {
+        Object.defineProperty(exports.default, "__esModule", {
+          value: true
+        });
+        Object.assign(exports.default, exports);
+        module.exports = exports.default;
+      } //# sourceMappingURL=get-domain-locale.js.map
+
+      /***/
+    },
+
+    /***/ 3952: /***/ function(module, exports, __webpack_require__) {
       "use strict";
 
       function _arrayLikeToArray(arr, len) {
@@ -95,9 +131,13 @@
       });
       exports["default"] = void 0;
       var _react = _interopRequireDefault(__webpack_require__(9496));
-      var _router = __webpack_require__(1368);
-      var _router1 = __webpack_require__(7465);
-      var _useIntersection = __webpack_require__(6363);
+      var _router = __webpack_require__(5920);
+      var _addLocale = __webpack_require__(4841);
+      var _routerContext = __webpack_require__(8940);
+      var _appRouterContext = __webpack_require__(2587);
+      var _useIntersection = __webpack_require__(1311);
+      var _getDomainLocale = __webpack_require__(7280);
+      var _addBasePath = __webpack_require__(9154);
       function _interopRequireDefault(obj) {
         return obj && obj.__esModule
           ? obj
@@ -133,6 +173,9 @@
         }
         return target;
       }
+      // @ts-ignore useTransition exist
+      var hasUseTransition =
+        typeof _react.default.useTransition !== "undefined";
       var prefetched = {};
       function prefetch(router, href, as, options) {
         if (false || !router) return;
@@ -171,7 +214,8 @@
         replace,
         shallow,
         scroll,
-        locale
+        locale,
+        startTransition
       ) {
         var nodeName = e.currentTarget.nodeName;
         // anchors inside an svg have a lowercase nodeName
@@ -184,22 +228,24 @@
           return;
         }
         e.preventDefault();
-        // replace state instead of push if prop is present
-        router[replace ? "replace" : "push"](href, as, {
-          shallow: shallow,
-          locale: locale,
-          scroll: scroll
-        });
+        var navigate = function() {
+          // replace state instead of push if prop is present
+          router[replace ? "replace" : "push"](href, as, {
+            shallow: shallow,
+            locale: locale,
+            scroll: scroll
+          });
+        };
+        if (startTransition) {
+          startTransition(navigate);
+        } else {
+          navigate();
+        }
       }
-      var Link = /*#__PURE__*/ _react.default.forwardRef(function(
+      var Link = /*#__PURE__*/ _react.default.forwardRef(function LinkComponent(
         props,
         forwardedRef
       ) {
-        var _legacyBehavior = props.legacyBehavior,
-          legacyBehavior =
-            _legacyBehavior === void 0
-              ? Boolean(false) !== true
-              : _legacyBehavior;
         if (false) {
           var hasWarned,
             optionalProps,
@@ -220,6 +266,11 @@
           locale = props.locale,
           onClick = props.onClick,
           onMouseEnter = props.onMouseEnter,
+          _legacyBehavior = props.legacyBehavior,
+          legacyBehavior =
+            _legacyBehavior === void 0
+              ? Boolean(false) !== true
+              : _legacyBehavior,
           restProps = _objectWithoutProperties(props, [
             "href",
             "as",
@@ -231,7 +282,8 @@
             "scroll",
             "locale",
             "onClick",
-            "onMouseEnter"
+            "onMouseEnter",
+            "legacyBehavior"
           ]);
         children = childrenProp;
         if (legacyBehavior && typeof children === "string") {
@@ -242,8 +294,22 @@
           );
         }
         var p = prefetchProp !== false;
-        var router = (0, _router1).useRouter();
-        var ref2 = _react.default.useMemo(
+        var ref3 = _slicedToArray(
+            hasUseTransition // @ts-ignore useTransition exists
+              ? // eslint-disable-next-line react-hooks/rules-of-hooks
+                _react.default.useTransition()
+              : [],
+            2
+          ),
+          /* isPending */ startTransition = ref3[1];
+        var router = _react.default.useContext(_routerContext.RouterContext);
+        var appRouter = _react.default.useContext(
+          _appRouterContext.AppRouterContext
+        );
+        if (appRouter) {
+          router = appRouter;
+        }
+        var ref1 = _react.default.useMemo(
             function() {
               var ref = _slicedToArray(
                   (0, _router).resolveHref(router, hrefProp, true),
@@ -260,8 +326,8 @@
             },
             [router, hrefProp, asProp]
           ),
-          href = ref2.href,
-          as = ref2.as;
+          href = ref1.href,
+          as = ref1.as;
         var previousHref = _react.default.useRef(href);
         var previousAs = _react.default.useRef(as);
         // This will return the first child, if multiple are provided it will throw an error
@@ -275,15 +341,15 @@
         var childRef = legacyBehavior
           ? child && typeof child === "object" && child.ref
           : forwardedRef;
-        var ref1 = _slicedToArray(
+        var ref2 = _slicedToArray(
             (0, _useIntersection).useIntersection({
               rootMargin: "200px"
             }),
             3
           ),
-          setIntersectionRef = ref1[0],
-          isVisible = ref1[1],
-          resetVisible = ref1[2];
+          setIntersectionRef = ref2[0],
+          isVisible = ref2[1],
+          resetVisible = ref2[2];
         var setRef = _react.default.useCallback(
           function(el) {
             // Before the link getting observed, check if visible state need to be reset
@@ -342,7 +408,8 @@
                 replace,
                 shallow,
                 scroll,
-                locale
+                locale,
+                appRouter ? startTransition : undefined
               );
             }
           },
@@ -378,16 +445,16 @@
           var localeDomain =
             router &&
             router.isLocaleDomain &&
-            (0, _router).getDomainLocale(
+            (0, _getDomainLocale).getDomainLocale(
               as,
               curLocale1,
-              router && router.locales,
-              router && router.domainLocales
+              router.locales,
+              router.domainLocales
             );
           childProps.href =
             localeDomain ||
-            (0, _router).addBasePath(
-              (0, _router).addLocale(
+            (0, _addBasePath).addBasePath(
+              (0, _addLocale).addLocale(
                 as,
                 curLocale1,
                 router && router.defaultLocale
@@ -405,9 +472,13 @@
       var _default = Link;
       exports["default"] = _default;
       if (
-        typeof exports.default === "function" ||
-        (typeof exports.default === "object" && exports.default !== null)
+        (typeof exports.default === "function" ||
+          (typeof exports.default === "object" && exports.default !== null)) &&
+        typeof exports.default.__esModule === "undefined"
       ) {
+        Object.defineProperty(exports.default, "__esModule", {
+          value: true
+        });
         Object.assign(exports.default, exports);
         module.exports = exports.default;
       } //# sourceMappingURL=link.js.map
@@ -415,7 +486,7 @@
       /***/
     },
 
-    /***/ 6363: /***/ function(module, exports, __webpack_require__) {
+    /***/ 1311: /***/ function(module, exports, __webpack_require__) {
       "use strict";
 
       function _arrayLikeToArray(arr, len) {
@@ -484,7 +555,7 @@
       });
       exports.useIntersection = useIntersection;
       var _react = __webpack_require__(9496);
-      var _requestIdleCallback = __webpack_require__(7808);
+      var _requestIdleCallback = __webpack_require__(7307);
       var hasIntersectionObserver = typeof IntersectionObserver !== "undefined";
       function useIntersection(param) {
         var rootRef = param.rootRef,
@@ -616,9 +687,13 @@
         return instance;
       }
       if (
-        typeof exports.default === "function" ||
-        (typeof exports.default === "object" && exports.default !== null)
+        (typeof exports.default === "function" ||
+          (typeof exports.default === "object" && exports.default !== null)) &&
+        typeof exports.default.__esModule === "undefined"
       ) {
+        Object.defineProperty(exports.default, "__esModule", {
+          value: true
+        });
         Object.assign(exports.default, exports);
         module.exports = exports.default;
       } //# sourceMappingURL=use-intersection.js.map
@@ -626,7 +701,34 @@
       /***/
     },
 
-    /***/ 3122: /***/ function(
+    /***/ 2587: /***/ function(
+      __unused_webpack_module,
+      exports,
+      __webpack_require__
+    ) {
+      "use strict";
+
+      Object.defineProperty(exports, "__esModule", {
+        value: true
+      });
+      exports.AppRouterContext = void 0;
+      var _react = _interopRequireDefault(__webpack_require__(9496));
+      function _interopRequireDefault(obj) {
+        return obj && obj.__esModule
+          ? obj
+          : {
+              default: obj
+            };
+      }
+      var AppRouterContext = _react.default.createContext(null);
+      exports.AppRouterContext = AppRouterContext;
+      if (false) {
+      } //# sourceMappingURL=app-router-context.js.map
+
+      /***/
+    },
+
+    /***/ 7178: /***/ function(
       __unused_webpack_module,
       __webpack_exports__,
       __webpack_require__
@@ -643,7 +745,7 @@
         4637
       );
       /* harmony import */ var next_link__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(
-        8168
+        8728
       );
       /* harmony import */ var next_link__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/ __webpack_require__.n(
         next_link__WEBPACK_IMPORTED_MODULE_1__
@@ -674,12 +776,12 @@
       /***/
     },
 
-    /***/ 8168: /***/ function(
+    /***/ 8728: /***/ function(
       module,
       __unused_webpack_exports,
       __webpack_require__
     ) {
-      module.exports = __webpack_require__(7160);
+      module.exports = __webpack_require__(3952);
 
       /***/
     }
@@ -690,7 +792,7 @@
       return __webpack_require__((__webpack_require__.s = moduleId));
     };
     /******/ __webpack_require__.O(0, [774, 888, 179], function() {
-      return __webpack_exec__(2783);
+      return __webpack_exec__(9367);
     });
     /******/ 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],
   {
-    /***/ 5863: /***/ function(
+    /***/ 4538: /***/ 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__(2550);
+          return __webpack_require__(8080);
         }
       ]);
       if (false) {
@@ -18,7 +18,7 @@
       /***/
     },
 
-    /***/ 2550: /***/ function(
+    /***/ 8080: /***/ function(
       __unused_webpack_module,
       __webpack_exports__,
       __webpack_require__
@@ -35,7 +35,7 @@
         4637
       );
       /* harmony import */ var next_router__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(
-        9393
+        7084
       );
       /* harmony import */ var next_router__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/ __webpack_require__.n(
         next_router__WEBPACK_IMPORTED_MODULE_1__
@@ -57,12 +57,12 @@
       /***/
     },
 
-    /***/ 9393: /***/ function(
+    /***/ 7084: /***/ function(
       module,
       __unused_webpack_exports,
       __webpack_require__
     ) {
-      module.exports = __webpack_require__(7465);
+      module.exports = __webpack_require__(1905);
 
       /***/
     }
@@ -73,7 +73,7 @@
       return __webpack_require__((__webpack_require__.s = moduleId));
     };
     /******/ __webpack_require__.O(0, [774, 888, 179], function() {
-      return __webpack_exec__(5863);
+      return __webpack_exec__(4538);
     });
     /******/ 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],
   {
-    /***/ 581: /***/ function(
+    /***/ 2644: /***/ 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__(6436);
+          return __webpack_require__(9689);
         }
       ]);
       if (false) {
@@ -18,7 +18,7 @@
       /***/
     },
 
-    /***/ 6436: /***/ function(
+    /***/ 9689: /***/ function(
       __unused_webpack_module,
       __webpack_exports__,
       __webpack_require__
@@ -35,7 +35,7 @@
         4637
       );
       /* harmony import */ var next_script__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(
-        2311
+        7635
       );
       /* harmony import */ var next_script__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/ __webpack_require__.n(
         next_script__WEBPACK_IMPORTED_MODULE_1__
@@ -70,12 +70,12 @@
       /***/
     },
 
-    /***/ 2311: /***/ function(
+    /***/ 7635: /***/ function(
       module,
       __unused_webpack_exports,
       __webpack_require__
     ) {
-      module.exports = __webpack_require__(5031);
+      module.exports = __webpack_require__(736);
 
       /***/
     }
@@ -86,7 +86,7 @@
       return __webpack_require__((__webpack_require__.s = moduleId));
     };
     /******/ __webpack_require__.O(0, [774, 888, 179], function() {
-      return __webpack_exec__(581);
+      return __webpack_exec__(2644);
     });
     /******/ 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],
   {
-    /***/ 4573: /***/ function(
+    /***/ 5577: /***/ 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__(5526);
+          return __webpack_require__(237);
         }
       ]);
       if (false) {
@@ -18,7 +18,7 @@
       /***/
     },
 
-    /***/ 5526: /***/ function(
+    /***/ 237: /***/ function(
       __unused_webpack_module,
       __webpack_exports__,
       __webpack_require__
@@ -35,7 +35,7 @@
         4637
       );
       /* harmony import */ var next_router__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(
-        9393
+        7084
       );
       /* harmony import */ var next_router__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/ __webpack_require__.n(
         next_router__WEBPACK_IMPORTED_MODULE_1__
@@ -54,12 +54,12 @@
       /***/
     },
 
-    /***/ 9393: /***/ function(
+    /***/ 7084: /***/ function(
       module,
       __unused_webpack_exports,
       __webpack_require__
     ) {
-      module.exports = __webpack_require__(7465);
+      module.exports = __webpack_require__(1905);
 
       /***/
     }
@@ -70,7 +70,7 @@
       return __webpack_require__((__webpack_require__.s = moduleId));
     };
     /******/ __webpack_require__.O(0, [774, 888, 179], function() {
-      return __webpack_exec__(4573);
+      return __webpack_exec__(5577);
     });
     /******/ var __webpack_exports__ = __webpack_require__.O();
     /******/ _N_E = __webpack_exports__;
Diff for 437.HASH.js
@@ -1,8 +1,8 @@
 "use strict";
 (self["webpackChunk_N_E"] = self["webpackChunk_N_E"] || []).push([
-  [437],
+  [181],
   {
-    /***/ 7437: /***/ function(
+    /***/ 1181: /***/ function(
       __unused_webpack_module,
       __webpack_exports__,
       __webpack_require__
Diff for framework-HASH.js
@@ -19,7 +19,7 @@
  Modernizr 3.0.0pre (Custom Build) | MIT
 */
       var aa = __webpack_require__(9496),
-        m = __webpack_require__(9260),
+        m = __webpack_require__(2048),
         r = __webpack_require__(8051);
       function y(a) {
         for (
@@ -7895,7 +7895,7 @@
        * This source code is licensed under the MIT license found in the
        * LICENSE file in the root directory of this source tree.
        */
-      __webpack_require__(9260);
+      __webpack_require__(2048);
       var f = __webpack_require__(9496),
         g = 60103;
       exports.Fragment = 60107;
@@ -7948,7 +7948,7 @@
        * This source code is licensed under the MIT license found in the
        * LICENSE file in the root directory of this source tree.
        */
-      var l = __webpack_require__(9260),
+      var l = __webpack_require__(2048),
         n = 60103,
         p = 60106;
       exports.Fragment = 60107;
Diff for main-HASH.js

Diff too large to display

Diff for polyfills-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 + "." + "b72a55e4a5d30197" + ".js"
+        "static/chunks/" + chunkId + "." + "040ce93ea5ad99f5" + ".js"
       );
       /******/
     };
@@ -227,7 +227,7 @@
           /******/
         }
         /******/ script.setAttribute("data-webpack", dataWebpackPrefix + key);
-        /******/ script.src = url;
+        /******/ script.src = __webpack_require__.tu(url);
         /******/
       }
       /******/ inProgress[url] = [done];
@@ -274,6 +274,41 @@
       /******/
     };
     /******/
+  })(); /* webpack/runtime/trusted types policy */
+  /******/
+
+  /******/ /******/ !(function() {
+    /******/ var policy;
+    /******/ __webpack_require__.tt = function() {
+      /******/ // Create Trusted Type policy if Trusted Types are available and the policy doesn't exist yet.
+      /******/ if (policy === undefined) {
+        /******/ policy = {
+          /******/ createScriptURL: function(url) {
+            return url;
+          }
+          /******/
+        };
+        /******/ if (
+          typeof trustedTypes !== "undefined" &&
+          trustedTypes.createPolicy
+        ) {
+          /******/ policy = trustedTypes.createPolicy("nextjs#bundler", policy);
+          /******/
+        }
+        /******/
+      }
+      /******/ return policy;
+      /******/
+    };
+    /******/
+  })(); /* webpack/runtime/trusted types script url */
+  /******/
+
+  /******/ /******/ !(function() {
+    /******/ __webpack_require__.tu = function(url) {
+      return __webpack_require__.tt().createScriptURL(url);
+    };
+    /******/
   })(); /* webpack/runtime/publicPath */
   /******/
Diff for index.html
@@ -8,26 +8,26 @@
     <script
       defer=""
       nomodule=""
-      src="/_next/static/chunks/polyfills-5cd94c89d3acac5f.js"
+      src="/_next/static/chunks/polyfills-0d1b80a048d4787e.js"
     ></script>
     <script
-      src="/_next/static/chunks/webpack-9302553dec9dd6bd.js"
+      src="/_next/static/chunks/webpack-61aca3a754613535.js"
       defer=""
     ></script>
     <script
-      src="/_next/static/chunks/framework-8755e6e713f733ae.js"
+      src="/_next/static/chunks/framework-044d557c64574856.js"
       defer=""
     ></script>
     <script
-      src="/_next/static/chunks/main-785a6ec3072fda78.js"
+      src="/_next/static/chunks/main-ad617351ca923611.js"
       defer=""
     ></script>
     <script
-      src="/_next/static/chunks/pages/_app-794663ada552fbca.js"
+      src="/_next/static/chunks/pages/_app-0f0eb226e227af04.js"
       defer=""
     ></script>
     <script
-      src="/_next/static/chunks/pages/index-5d085461d4b7e1ee.js"
+      src="/_next/static/chunks/pages/index-71b39a0d29d24c94.js"
       defer=""
     ></script>
     <script src="/_next/static/BUILD_ID/_buildManifest.js" defer=""></script>
Diff for link.html
@@ -8,26 +8,26 @@
     <script
       defer=""
       nomodule=""
-      src="/_next/static/chunks/polyfills-5cd94c89d3acac5f.js"
+      src="/_next/static/chunks/polyfills-0d1b80a048d4787e.js"
     ></script>
     <script
-      src="/_next/static/chunks/webpack-9302553dec9dd6bd.js"
+      src="/_next/static/chunks/webpack-61aca3a754613535.js"
       defer=""
     ></script>
     <script
-      src="/_next/static/chunks/framework-8755e6e713f733ae.js"
+      src="/_next/static/chunks/framework-044d557c64574856.js"
       defer=""
     ></script>
     <script
-      src="/_next/static/chunks/main-785a6ec3072fda78.js"
+      src="/_next/static/chunks/main-ad617351ca923611.js"
       defer=""
     ></script>
     <script
-      src="/_next/static/chunks/pages/_app-794663ada552fbca.js"
+      src="/_next/static/chunks/pages/_app-0f0eb226e227af04.js"
       defer=""
     ></script>
     <script
-      src="/_next/static/chunks/pages/link-5581225b2bbff8ba.js"
+      src="/_next/static/chunks/pages/link-cd9947d21ef7c72e.js"
       defer=""
     ></script>
     <script src="/_next/static/BUILD_ID/_buildManifest.js" defer=""></script>
Diff for withRouter.html
@@ -8,26 +8,26 @@
     <script
       defer=""
       nomodule=""
-      src="/_next/static/chunks/polyfills-5cd94c89d3acac5f.js"
+      src="/_next/static/chunks/polyfills-0d1b80a048d4787e.js"
     ></script>
     <script
-      src="/_next/static/chunks/webpack-9302553dec9dd6bd.js"
+      src="/_next/static/chunks/webpack-61aca3a754613535.js"
       defer=""
     ></script>
     <script
-      src="/_next/static/chunks/framework-8755e6e713f733ae.js"
+      src="/_next/static/chunks/framework-044d557c64574856.js"
       defer=""
     ></script>
     <script
-      src="/_next/static/chunks/main-785a6ec3072fda78.js"
+      src="/_next/static/chunks/main-ad617351ca923611.js"
       defer=""
     ></script>
     <script
-      src="/_next/static/chunks/pages/_app-794663ada552fbca.js"
+      src="/_next/static/chunks/pages/_app-0f0eb226e227af04.js"
       defer=""
     ></script>
     <script
-      src="/_next/static/chunks/pages/withRouter-8b03818d0ed540a0.js"
+      src="/_next/static/chunks/pages/withRouter-fb06f1f34bce84ca.js"
       defer=""
     ></script>
     <script src="/_next/static/BUILD_ID/_buildManifest.js" defer=""></script>

Please sign in to comment.